CREATE TABLE `role` (
`roleid` bigint unsigned NOT NULL,
`name` varchar(255) DEFAULT '' NOT NULL,
`type` integer DEFAULT '0' NOT NULL,
`readonly` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (roleid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `role_1` ON `role` (`name`);
CREATE TABLE `ugset` (
`ugsetid` bigint unsigned NOT NULL,
`hash` varchar(64) DEFAULT '' NOT NULL,
PRIMARY KEY (ugsetid)
) ENGINE=InnoDB;
CREATE INDEX `ugset_1` ON `ugset` (`hash`);
CREATE TABLE `users` (
`userid` bigint unsigned NOT NULL,
`username` varchar(100) DEFAULT '' NOT NULL,
`name` varchar(100) DEFAULT '' NOT NULL,
`surname` varchar(100) DEFAULT '' NOT NULL,
`passwd` varchar(60) DEFAULT '' NOT NULL,
`url` varchar(2048) DEFAULT '' NOT NULL,
`autologin` integer DEFAULT '0' NOT NULL,
`autologout` varchar(32) DEFAULT '15m' NOT NULL,
`lang` varchar(7) DEFAULT 'default' NOT NULL,
`refresh` varchar(32) DEFAULT '30s' NOT NULL,
`theme` varchar(128) DEFAULT 'default' NOT NULL,
`attempt_failed` integer DEFAULT 0 NOT NULL,
`attempt_ip` varchar(39) DEFAULT '' NOT NULL,
`attempt_clock` integer DEFAULT 0 NOT NULL,
`rows_per_page` integer DEFAULT 50 NOT NULL,
`timezone` varchar(50) DEFAULT 'default' NOT NULL,
`roleid` bigint unsigned DEFAULT NULL NULL,
`userdirectoryid` bigint unsigned DEFAULT NULL NULL,
`ts_provisioned` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (userid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `users_1` ON `users` (`username`);
CREATE INDEX `users_2` ON `users` (`userdirectoryid`);
CREATE INDEX `users_3` ON `users` (`roleid`);
CREATE TABLE `maintenances` (
`maintenanceid` bigint unsigned NOT NULL,
`name` varchar(128) DEFAULT '' NOT NULL,
`maintenance_type` integer DEFAULT '0' NOT NULL,
`description` text NOT NULL,
`active_since` integer DEFAULT '0' NOT NULL,
`active_till` integer DEFAULT '0' NOT NULL,
`tags_evaltype` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (maintenanceid)
) ENGINE=InnoDB;
CREATE INDEX `maintenances_1` ON `maintenances` (`active_since`,`active_till`);
CREATE UNIQUE INDEX `maintenances_2` ON `maintenances` (`name`);
CREATE TABLE `hgset` (
`hgsetid` bigint unsigned NOT NULL,
`hash` varchar(64) DEFAULT '' NOT NULL,
PRIMARY KEY (hgsetid)
) ENGINE=InnoDB;
CREATE INDEX `hgset_1` ON `hgset` (`hash`);
CREATE TABLE `hosts` (
`hostid` bigint unsigned NOT NULL,
`proxyid` bigint unsigned NULL,
`host` varchar(128) DEFAULT '' NOT NULL,
`status` integer DEFAULT '0' NOT NULL,
`ipmi_authtype` integer DEFAULT '-1' NOT NULL,
`ipmi_privilege` integer DEFAULT '2' NOT NULL,
`ipmi_username` varchar(16) DEFAULT '' NOT NULL,
`ipmi_password` varchar(20) DEFAULT '' NOT NULL,
`maintenanceid` bigint unsigned NULL,
`maintenance_status` integer DEFAULT '0' NOT NULL,
`maintenance_type` integer DEFAULT '0' NOT NULL,
`maintenance_from` integer DEFAULT '0' NOT NULL,
`name` varchar(128) DEFAULT '' NOT NULL,
`flags` integer DEFAULT '0' NOT NULL,
`templateid` bigint unsigned NULL,
`description` text NOT NULL,
`tls_connect` integer DEFAULT '1' NOT NULL,
`tls_accept` integer DEFAULT '1' NOT NULL,
`tls_issuer` varchar(1024) DEFAULT '' NOT NULL,
`tls_subject` varchar(1024) DEFAULT '' NOT NULL,
`tls_psk_identity` varchar(128) DEFAULT '' NOT NULL,
`tls_psk` varchar(512) DEFAULT '' NOT NULL,
`discover` integer DEFAULT '0' NOT NULL,
`custom_interfaces` integer DEFAULT '0' NOT NULL,
`uuid` varchar(32) DEFAULT '' NOT NULL,
`name_upper` varchar(128) DEFAULT '' NOT NULL,
`vendor_name` varchar(64) DEFAULT '' NOT NULL,
`vendor_version` varchar(32) DEFAULT '' NOT NULL,
`proxy_groupid` bigint unsigned NULL,
`monitored_by` integer DEFAULT '0' NOT NULL,
`wizard_ready` integer DEFAULT '0' NOT NULL,
`readme` text NOT NULL,
PRIMARY KEY (hostid)
) ENGINE=InnoDB;
CREATE INDEX `hosts_1` ON `hosts` (`host`);
CREATE INDEX `hosts_2` ON `hosts` (`status`);
CREATE INDEX `hosts_3` ON `hosts` (`proxyid`);
CREATE INDEX `hosts_4` ON `hosts` (`name`);
CREATE INDEX `hosts_5` ON `hosts` (`maintenanceid`);
CREATE INDEX `hosts_6` ON `hosts` (`name_upper`);
CREATE INDEX `hosts_7` ON `hosts` (`templateid`);
CREATE INDEX `hosts_8` ON `hosts` (`proxy_groupid`);
CREATE INDEX `hosts_9` ON `hosts` (`uuid`);
CREATE TABLE `hstgrp` (
`groupid` bigint unsigned NOT NULL,
`name` varchar(255) DEFAULT '' NOT NULL,
`flags` integer DEFAULT '0' NOT NULL,
`uuid` varchar(32) DEFAULT '' NOT NULL,
`type` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (groupid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `hstgrp_1` ON `hstgrp` (`type`,`name`);
CREATE INDEX `hstgrp_2` ON `hstgrp` (`uuid`);
CREATE TABLE `hgset_group` (
`hgsetid` bigint unsigned NOT NULL,
`groupid` bigint unsigned NOT NULL,
PRIMARY KEY (hgsetid,groupid)
) ENGINE=InnoDB;
CREATE INDEX `hgset_group_1` ON `hgset_group` (`groupid`);
CREATE TABLE `host_hgset` (
`hostid` bigint unsigned NOT NULL,
`hgsetid` bigint unsigned NOT NULL,
PRIMARY KEY (hostid)
) ENGINE=InnoDB;
CREATE INDEX `host_hgset_1` ON `host_hgset` (`hgsetid`);
CREATE TABLE `group_prototype` (
`group_prototypeid` bigint unsigned NOT NULL,
`hostid` bigint unsigned NOT NULL,
`name` varchar(255) DEFAULT '' NOT NULL,
`groupid` bigint unsigned NULL,
`templateid` bigint unsigned NULL,
PRIMARY KEY (group_prototypeid)
) ENGINE=InnoDB;
CREATE INDEX `group_prototype_1` ON `group_prototype` (`hostid`);
CREATE INDEX `group_prototype_2` ON `group_prototype` (`groupid`);
CREATE INDEX `group_prototype_3` ON `group_prototype` (`templateid`);
CREATE TABLE `group_discovery` (
`groupdiscoveryid` bigint unsigned NOT NULL,
`groupid` bigint unsigned NOT NULL,
`parent_group_prototypeid` bigint unsigned NOT NULL,
`name` varchar(255) DEFAULT '' NOT NULL,
`lastcheck` integer DEFAULT '0' NOT NULL,
`ts_delete` integer DEFAULT '0' NOT NULL,
`status` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (groupdiscoveryid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `group_discovery_1` ON `group_discovery` (`groupid`,`parent_group_prototypeid`);
CREATE INDEX `group_discovery_2` ON `group_discovery` (`parent_group_prototypeid`);
CREATE TABLE `drules` (
`druleid` bigint unsigned NOT NULL,
`proxyid` bigint unsigned NULL,
`name` varchar(255) DEFAULT '' NOT NULL,
`iprange` varchar(2048) DEFAULT '' NOT NULL,
`delay` varchar(255) DEFAULT '1h' NOT NULL,
`status` integer DEFAULT '0' NOT NULL,
`concurrency_max` integer DEFAULT '0' NOT NULL,
`error` varchar(2048) DEFAULT '' NOT NULL,
PRIMARY KEY (druleid)
) ENGINE=InnoDB;
CREATE INDEX `drules_1` ON `drules` (`proxyid`);
CREATE UNIQUE INDEX `drules_2` ON `drules` (`name`);
CREATE TABLE `dchecks` (
`dcheckid` bigint unsigned NOT NULL,
`druleid` bigint unsigned NOT NULL,
`type` integer DEFAULT '0' NOT NULL,
`key_` varchar(2048) DEFAULT '' NOT NULL,
`snmp_community` varchar(255) DEFAULT '' NOT NULL,
`ports` varchar(255) DEFAULT '0' NOT NULL,
`snmpv3_securityname` varchar(64) DEFAULT '' NOT NULL,
`snmpv3_securitylevel` integer DEFAULT '0' NOT NULL,
`snmpv3_authpassphrase` varchar(64) DEFAULT '' NOT NULL,
`snmpv3_privpassphrase` varchar(64) DEFAULT '' NOT NULL,
`uniq` integer DEFAULT '0' NOT NULL,
`snmpv3_authprotocol` integer DEFAULT '0' NOT NULL,
`snmpv3_privprotocol` integer DEFAULT '0' NOT NULL,
`snmpv3_contextname` varchar(255) DEFAULT '' NOT NULL,
`host_source` integer DEFAULT '1' NOT NULL,
`name_source` integer DEFAULT '0' NOT NULL,
`allow_redirect` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (dcheckid)
) ENGINE=InnoDB;
CREATE INDEX `dchecks_1` ON `dchecks` (`druleid`,`host_source`,`name_source`);
CREATE TABLE `httptest` (
`httptestid` bigint unsigned NOT NULL,
`name` varchar(64) DEFAULT '' NOT NULL,
`delay` varchar(255) DEFAULT '1m' NOT NULL,
`status` integer DEFAULT '0' NOT NULL,
`agent` varchar(255) DEFAULT 'Zabbix' NOT NULL,
`authentication` integer DEFAULT '0' NOT NULL,
`http_user` varchar(255) DEFAULT '' NOT NULL,
`http_password` varchar(255) DEFAULT '' NOT NULL,
`hostid` bigint unsigned NOT NULL,
`templateid` bigint unsigned NULL,
`http_proxy` varchar(255) DEFAULT '' NOT NULL,
`retries` integer DEFAULT '1' NOT NULL,
`ssl_cert_file` varchar(255) DEFAULT '' NOT NULL,
`ssl_key_file` varchar(255) DEFAULT '' NOT NULL,
`ssl_key_password` varchar(64) DEFAULT '' NOT NULL,
`verify_peer` integer DEFAULT '0' NOT NULL,
`verify_host` integer DEFAULT '0' NOT NULL,
`uuid` varchar(32) DEFAULT '' NOT NULL,
PRIMARY KEY (httptestid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `httptest_2` ON `httptest` (`hostid`,`name`);
CREATE INDEX `httptest_3` ON `httptest` (`status`);
CREATE INDEX `httptest_4` ON `httptest` (`templateid`);
CREATE INDEX `httptest_5` ON `httptest` (`uuid`);
CREATE TABLE `httpstep` (
`httpstepid` bigint unsigned NOT NULL,
`httptestid` bigint unsigned NOT NULL,
`name` varchar(64) DEFAULT '' NOT NULL,
`no` integer DEFAULT '0' NOT NULL,
`url` varchar(2048) DEFAULT '' NOT NULL,
`timeout` varchar(255) DEFAULT '15s' NOT NULL,
`posts` text NOT NULL,
`required` varchar(255) DEFAULT '' NOT NULL,
`status_codes` varchar(255) DEFAULT '' NOT NULL,
`follow_redirects` integer DEFAULT '1' NOT NULL,
`retrieve_mode` integer DEFAULT '0' NOT NULL,
`post_type` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (httpstepid)
) ENGINE=InnoDB;
CREATE INDEX `httpstep_1` ON `httpstep` (`httptestid`);
CREATE TABLE `interface` (
`interfaceid` bigint unsigned NOT NULL,
`hostid` bigint unsigned NOT NULL,
`main` integer DEFAULT '0' NOT NULL,
`type` integer DEFAULT '1' NOT NULL,
`useip` integer DEFAULT '1' NOT NULL,
`ip` varchar(64) DEFAULT '127.0.0.1' NOT NULL,
`dns` varchar(255) DEFAULT '' NOT NULL,
`port` varchar(64) DEFAULT '10050' NOT NULL,
`available` integer DEFAULT '0' NOT NULL,
`error` varchar(2048) DEFAULT '' NOT NULL,
`errors_from` integer DEFAULT '0' NOT NULL,
`disable_until` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (interfaceid)
) ENGINE=InnoDB;
CREATE INDEX `interface_1` ON `interface` (`hostid`,`type`);
CREATE INDEX `interface_2` ON `interface` (`ip`,`dns`);
CREATE INDEX `interface_3` ON `interface` (`available`);
CREATE TABLE `valuemap` (
`valuemapid` bigint unsigned NOT NULL,
`hostid` bigint unsigned NOT NULL,
`name` varchar(64) DEFAULT '' NOT NULL,
`uuid` varchar(32) DEFAULT '' NOT NULL,
PRIMARY KEY (valuemapid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `valuemap_1` ON `valuemap` (`hostid`,`name`);
CREATE INDEX `valuemap_2` ON `valuemap` (`uuid`);
CREATE TABLE `items` (
`itemid` bigint unsigned NOT NULL,
`type` integer DEFAULT '0' NOT NULL,
`snmp_oid` varchar(512) DEFAULT '' NOT NULL,
`hostid` bigint unsigned NOT NULL,
`name` varchar(255) DEFAULT '' NOT NULL,
`key_` varchar(2048) DEFAULT '' NOT NULL,
`delay` varchar(1024) DEFAULT '0' NOT NULL,
`history` varchar(255) DEFAULT '31d' NOT NULL,
`trends` varchar(255) DEFAULT '365d' NOT NULL,
`status` integer DEFAULT '0' NOT NULL,
`value_type` integer DEFAULT '0' NOT NULL,
`trapper_hosts` varchar(255) DEFAULT '' NOT NULL,
`units` varchar(255) DEFAULT '' NOT NULL,
`formula` varchar(255) DEFAULT '' NOT NULL,
`logtimefmt` varchar(64) DEFAULT '' NOT NULL,
`templateid` bigint unsigned NULL,
`valuemapid` bigint unsigned NULL,
`params` text NOT NULL,
`ipmi_sensor` varchar(128) DEFAULT '' NOT NULL,
`authtype` integer DEFAULT '0' NOT NULL,
`username` varchar(255) DEFAULT '' NOT NULL,
`password` varchar(255) DEFAULT '' NOT NULL,
`publickey` varchar(64) DEFAULT '' NOT NULL,
`privatekey` varchar(64) DEFAULT '' NOT NULL,
`flags` integer DEFAULT '0' NOT NULL,
`interfaceid` bigint unsigned NULL,
`description` text NOT NULL,
`inventory_link` integer DEFAULT '0' NOT NULL,
`lifetime` varchar(255) DEFAULT '7d' NOT NULL,
`evaltype` integer DEFAULT '0' NOT NULL,
`jmx_endpoint` varchar(255) DEFAULT '' NOT NULL,
`master_itemid` bigint unsigned NULL,
`timeout` varchar(255) DEFAULT '' NOT NULL,
`url` varchar(2048) DEFAULT '' NOT NULL,
`query_fields` text NOT NULL,
`posts` text NOT NULL,
`status_codes` varchar(255) DEFAULT '200' NOT NULL,
`follow_redirects` integer DEFAULT '1' NOT NULL,
`post_type` integer DEFAULT '0' NOT NULL,
`http_proxy` varchar(255) DEFAULT '' NOT NULL,
`headers` text NOT NULL,
`retrieve_mode` integer DEFAULT '0' NOT NULL,
`request_method` integer DEFAULT '0' NOT NULL,
`output_format` integer DEFAULT '0' NOT NULL,
`ssl_cert_file` varchar(255) DEFAULT '' NOT NULL,
`ssl_key_file` varchar(255) DEFAULT '' NOT NULL,
`ssl_key_password` varchar(64) DEFAULT '' NOT NULL,
`verify_peer` integer DEFAULT '0' NOT NULL,
`verify_host` integer DEFAULT '0' NOT NULL,
`allow_traps` integer DEFAULT '0' NOT NULL,
`discover` integer DEFAULT '0' NOT NULL,
`uuid` varchar(32) DEFAULT '' NOT NULL,
`lifetime_type` integer DEFAULT '0' NOT NULL,
`enabled_lifetime_type` integer DEFAULT '2' NOT NULL,
`enabled_lifetime` varchar(255) DEFAULT '0' NOT NULL,
PRIMARY KEY (itemid)
) ENGINE=InnoDB;
CREATE INDEX `items_1` ON `items` (`hostid`,`key_`(764));
CREATE INDEX `items_3` ON `items` (`status`);
CREATE INDEX `items_4` ON `items` (`templateid`);
CREATE INDEX `items_5` ON `items` (`valuemapid`);
CREATE INDEX `items_6` ON `items` (`interfaceid`);
CREATE INDEX `items_7` ON `items` (`master_itemid`);
CREATE INDEX `items_8` ON `items` (`key_`(768));
CREATE INDEX `items_10` ON `items` (`uuid`);
CREATE TABLE `httpstepitem` (
`httpstepitemid` bigint unsigned NOT NULL,
`httpstepid` bigint unsigned NOT NULL,
`itemid` bigint unsigned NOT NULL,
`type` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (httpstepitemid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `httpstepitem_1` ON `httpstepitem` (`httpstepid`,`itemid`);
CREATE INDEX `httpstepitem_2` ON `httpstepitem` (`itemid`);
CREATE TABLE `httptestitem` (
`httptestitemid` bigint unsigned NOT NULL,
`httptestid` bigint unsigned NOT NULL,
`itemid` bigint unsigned NOT NULL,
`type` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (httptestitemid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `httptestitem_1` ON `httptestitem` (`httptestid`,`itemid`);
CREATE INDEX `httptestitem_2` ON `httptestitem` (`itemid`);
CREATE TABLE `media_type` (
`mediatypeid` bigint unsigned NOT NULL,
`type` integer DEFAULT '0' NOT NULL,
`name` varchar(100) DEFAULT '' NOT NULL,
`smtp_server` varchar(255) DEFAULT '' NOT NULL,
`smtp_helo` varchar(255) DEFAULT '' NOT NULL,
`smtp_email` varchar(255) DEFAULT '' NOT NULL,
`exec_path` varchar(255) DEFAULT '' NOT NULL,
`gsm_modem` varchar(255) DEFAULT '' NOT NULL,
`username` varchar(255) DEFAULT '' NOT NULL,
`passwd` varchar(255) DEFAULT '' NOT NULL,
`status` integer DEFAULT '1' NOT NULL,
`smtp_port` integer DEFAULT '25' NOT NULL,
`smtp_security` integer DEFAULT '0' NOT NULL,
`smtp_verify_peer` integer DEFAULT '0' NOT NULL,
`smtp_verify_host` integer DEFAULT '0' NOT NULL,
`smtp_authentication` integer DEFAULT '0' NOT NULL,
`maxsessions` integer DEFAULT '1' NOT NULL,
`maxattempts` integer DEFAULT '3' NOT NULL,
`attempt_interval` varchar(32) DEFAULT '10s' NOT NULL,
`message_format` integer DEFAULT '1' NOT NULL,
`script` text NOT NULL,
`timeout` varchar(32) DEFAULT '30s' NOT NULL,
`process_tags` integer DEFAULT '0' NOT NULL,
`show_event_menu` integer DEFAULT '0' NOT NULL,
`event_menu_url` varchar(2048) DEFAULT '' NOT NULL,
`event_menu_name` varchar(255) DEFAULT '' NOT NULL,
`description` text NOT NULL,
`provider` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (mediatypeid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `media_type_1` ON `media_type` (`name`);
CREATE TABLE `media_type_oauth` (
`mediatypeid` bigint unsigned NOT NULL,
`redirection_url` varchar(2048) DEFAULT '' NOT NULL,
`client_id` varchar(255) DEFAULT '' NOT NULL,
`client_secret` varchar(255) DEFAULT '' NOT NULL,
`authorization_url` varchar(2048) DEFAULT '' NOT NULL,
`tokens_status` integer DEFAULT '0' NOT NULL,
`access_token` text NOT NULL,
`access_token_updated` integer DEFAULT '0' NOT NULL,
`access_expires_in` integer DEFAULT '0' NOT NULL,
`refresh_token` text NOT NULL,
`token_url` varchar(2048) DEFAULT '' NOT NULL,
PRIMARY KEY (mediatypeid)
) ENGINE=InnoDB;
CREATE TABLE `media_type_param` (
`mediatype_paramid` bigint unsigned NOT NULL,
`mediatypeid` bigint unsigned NOT NULL,
`name` varchar(255) DEFAULT '' NOT NULL,
`value` varchar(2048) DEFAULT '' NOT NULL,
`sortorder` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (mediatype_paramid)
) ENGINE=InnoDB;
CREATE INDEX `media_type_param_1` ON `media_type_param` (`mediatypeid`);
CREATE TABLE `media_type_message` (
`mediatype_messageid` bigint unsigned NOT NULL,
`mediatypeid` bigint unsigned NOT NULL,
`eventsource` integer NOT NULL,
`recovery` integer NOT NULL,
`subject` varchar(255) DEFAULT '' NOT NULL,
`message` text NOT NULL,
PRIMARY KEY (mediatype_messageid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `media_type_message_1` ON `media_type_message` (`mediatypeid`,`eventsource`,`recovery`);
CREATE TABLE `usrgrp` (
`usrgrpid` bigint unsigned NOT NULL,
`name` varchar(64) DEFAULT '' NOT NULL,
`gui_access` integer DEFAULT '0' NOT NULL,
`users_status` integer DEFAULT '0' NOT NULL,
`debug_mode` integer DEFAULT '0' NOT NULL,
`userdirectoryid` bigint unsigned DEFAULT NULL NULL,
`mfa_status` integer DEFAULT '0' NOT NULL,
`mfaid` bigint unsigned NULL,
PRIMARY KEY (usrgrpid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `usrgrp_1` ON `usrgrp` (`name`);
CREATE INDEX `usrgrp_2` ON `usrgrp` (`userdirectoryid`);
CREATE INDEX `usrgrp_3` ON `usrgrp` (`mfaid`);
CREATE TABLE `users_groups` (
`id` bigint unsigned NOT NULL,
`usrgrpid` bigint unsigned NOT NULL,
`userid` bigint unsigned NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `users_groups_1` ON `users_groups` (`usrgrpid`,`userid`);
CREATE INDEX `users_groups_2` ON `users_groups` (`userid`);
CREATE TABLE `ugset_group` (
`ugsetid` bigint unsigned NOT NULL,
`usrgrpid` bigint unsigned NOT NULL,
PRIMARY KEY (ugsetid,usrgrpid)
) ENGINE=InnoDB;
CREATE INDEX `ugset_group_1` ON `ugset_group` (`usrgrpid`);
CREATE TABLE `user_ugset` (
`userid` bigint unsigned NOT NULL,
`ugsetid` bigint unsigned NOT NULL,
PRIMARY KEY (userid)
) ENGINE=InnoDB;
CREATE INDEX `user_ugset_1` ON `user_ugset` (`ugsetid`);
CREATE TABLE `scripts` (
`scriptid` bigint unsigned NOT NULL,
`name` varchar(255) DEFAULT '' NOT NULL,
`command` text NOT NULL,
`host_access` integer DEFAULT '2' NOT NULL,
`usrgrpid` bigint unsigned NULL,
`groupid` bigint unsigned NULL,
`description` text NOT NULL,
`confirmation` varchar(255) DEFAULT '' NOT NULL,
`type` integer DEFAULT '5' NOT NULL,
`execute_on` integer DEFAULT '2' NOT NULL,
`timeout` varchar(32) DEFAULT '30s' NOT NULL,
`scope` integer DEFAULT '1' NOT NULL,
`port` varchar(64) DEFAULT '' NOT NULL,
`authtype` integer DEFAULT '0' NOT NULL,
`username` varchar(64) DEFAULT '' NOT NULL,
`password` varchar(64) DEFAULT '' NOT NULL,
`publickey` varchar(64) DEFAULT '' NOT NULL,
`privatekey` varchar(64) DEFAULT '' NOT NULL,
`menu_path` varchar(255) DEFAULT '' NOT NULL,
`url` varchar(2048) DEFAULT '' NOT NULL,
`new_window` integer DEFAULT '1' NOT NULL,
`manualinput` integer DEFAULT '0' NOT NULL,
`manualinput_prompt` varchar(255) DEFAULT '' NOT NULL,
`manualinput_validator` varchar(2048) DEFAULT '' NOT NULL,
`manualinput_validator_type` integer DEFAULT '0' NOT NULL,
`manualinput_default_value` varchar(255) DEFAULT '' NOT NULL,
PRIMARY KEY (scriptid)
) ENGINE=InnoDB;
CREATE INDEX `scripts_1` ON `scripts` (`usrgrpid`);
CREATE INDEX `scripts_2` ON `scripts` (`groupid`);
CREATE UNIQUE INDEX `scripts_3` ON `scripts` (`name`,`menu_path`);
CREATE TABLE `script_param` (
`script_paramid` bigint unsigned NOT NULL,
`scriptid` bigint unsigned NOT NULL,
`name` varchar(255) DEFAULT '' NOT NULL,
`value` varchar(2048) DEFAULT '' NOT NULL,
PRIMARY KEY (script_paramid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `script_param_1` ON `script_param` (`scriptid`,`name`);
CREATE TABLE `actions` (
`actionid` bigint unsigned NOT NULL,
`name` varchar(255) DEFAULT '' NOT NULL,
`eventsource` integer DEFAULT '0' NOT NULL,
`evaltype` integer DEFAULT '0' NOT NULL,
`status` integer DEFAULT '0' NOT NULL,
`esc_period` varchar(255) DEFAULT '1h' NOT NULL,
`formula` varchar(1024) DEFAULT '' NOT NULL,
`pause_suppressed` integer DEFAULT '1' NOT NULL,
`notify_if_canceled` integer DEFAULT '1' NOT NULL,
`pause_symptoms` integer DEFAULT '1' NOT NULL,
PRIMARY KEY (actionid)
) ENGINE=InnoDB;
CREATE INDEX `actions_1` ON `actions` (`eventsource`,`status`);
CREATE UNIQUE INDEX `actions_2` ON `actions` (`name`);
CREATE TABLE `operations` (
`operationid` bigint unsigned NOT NULL,
`actionid` bigint unsigned NOT NULL,
`operationtype` integer DEFAULT '0' NOT NULL,
`esc_period` varchar(255) DEFAULT '0' NOT NULL,
`esc_step_from` integer DEFAULT '1' NOT NULL,
`esc_step_to` integer DEFAULT '1' NOT NULL,
`evaltype` integer DEFAULT '0' NOT NULL,
`recovery` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (operationid)
) ENGINE=InnoDB;
CREATE INDEX `operations_1` ON `operations` (`actionid`);
CREATE TABLE `optag` (
`optagid` bigint unsigned NOT NULL,
`operationid` bigint unsigned NOT NULL,
`tag` varchar(255) DEFAULT '' NOT NULL,
`value` varchar(255) DEFAULT '' NOT NULL,
PRIMARY KEY (optagid)
) ENGINE=InnoDB;
CREATE INDEX `optag_1` ON `optag` (`operationid`);
CREATE TABLE `opmessage` (
`operationid` bigint unsigned NOT NULL,
`default_msg` integer DEFAULT '1' NOT NULL,
`subject` varchar(255) DEFAULT '' NOT NULL,
`message` text NOT NULL,
`mediatypeid` bigint unsigned NULL,
PRIMARY KEY (operationid)
) ENGINE=InnoDB;
CREATE INDEX `opmessage_1` ON `opmessage` (`mediatypeid`);
CREATE TABLE `opmessage_grp` (
`opmessage_grpid` bigint unsigned NOT NULL,
`operationid` bigint unsigned NOT NULL,
`usrgrpid` bigint unsigned NOT NULL,
PRIMARY KEY (opmessage_grpid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `opmessage_grp_1` ON `opmessage_grp` (`operationid`,`usrgrpid`);
CREATE INDEX `opmessage_grp_2` ON `opmessage_grp` (`usrgrpid`);
CREATE TABLE `opmessage_usr` (
`opmessage_usrid` bigint unsigned NOT NULL,
`operationid` bigint unsigned NOT NULL,
`userid` bigint unsigned NOT NULL,
PRIMARY KEY (opmessage_usrid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `opmessage_usr_1` ON `opmessage_usr` (`operationid`,`userid`);
CREATE INDEX `opmessage_usr_2` ON `opmessage_usr` (`userid`);
CREATE TABLE `opcommand` (
`operationid` bigint unsigned NOT NULL,
`scriptid` bigint unsigned NOT NULL,
PRIMARY KEY (operationid)
) ENGINE=InnoDB;
CREATE INDEX `opcommand_1` ON `opcommand` (`scriptid`);
CREATE TABLE `opcommand_hst` (
`opcommand_hstid` bigint unsigned NOT NULL,
`operationid` bigint unsigned NOT NULL,
`hostid` bigint unsigned NULL,
PRIMARY KEY (opcommand_hstid)
) ENGINE=InnoDB;
CREATE INDEX `opcommand_hst_1` ON `opcommand_hst` (`operationid`);
CREATE INDEX `opcommand_hst_2` ON `opcommand_hst` (`hostid`);
CREATE TABLE `opcommand_grp` (
`opcommand_grpid` bigint unsigned NOT NULL,
`operationid` bigint unsigned NOT NULL,
`groupid` bigint unsigned NOT NULL,
PRIMARY KEY (opcommand_grpid)
) ENGINE=InnoDB;
CREATE INDEX `opcommand_grp_1` ON `opcommand_grp` (`operationid`);
CREATE INDEX `opcommand_grp_2` ON `opcommand_grp` (`groupid`);
CREATE TABLE `opgroup` (
`opgroupid` bigint unsigned NOT NULL,
`operationid` bigint unsigned NOT NULL,
`groupid` bigint unsigned NOT NULL,
PRIMARY KEY (opgroupid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `opgroup_1` ON `opgroup` (`operationid`,`groupid`);
CREATE INDEX `opgroup_2` ON `opgroup` (`groupid`);
CREATE TABLE `optemplate` (
`optemplateid` bigint unsigned NOT NULL,
`operationid` bigint unsigned NOT NULL,
`templateid` bigint unsigned NOT NULL,
PRIMARY KEY (optemplateid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `optemplate_1` ON `optemplate` (`operationid`,`templateid`);
CREATE INDEX `optemplate_2` ON `optemplate` (`templateid`);
CREATE TABLE `opconditions` (
`opconditionid` bigint unsigned NOT NULL,
`operationid` bigint unsigned NOT NULL,
`conditiontype` integer DEFAULT '0' NOT NULL,
`operator` integer DEFAULT '0' NOT NULL,
`value` varchar(255) DEFAULT '' NOT NULL,
PRIMARY KEY (opconditionid)
) ENGINE=InnoDB;
CREATE INDEX `opconditions_1` ON `opconditions` (`operationid`);
CREATE TABLE `conditions` (
`conditionid` bigint unsigned NOT NULL,
`actionid` bigint unsigned NOT NULL,
`conditiontype` integer DEFAULT '0' NOT NULL,
`operator` integer DEFAULT '0' NOT NULL,
`value` varchar(255) DEFAULT '' NOT NULL,
`value2` varchar(255) DEFAULT '' NOT NULL,
PRIMARY KEY (conditionid)
) ENGINE=InnoDB;
CREATE INDEX `conditions_1` ON `conditions` (`actionid`);
CREATE TABLE `triggers` (
`triggerid` bigint unsigned NOT NULL,
`expression` varchar(2048) DEFAULT '' NOT NULL,
`description` varchar(255) DEFAULT '' NOT NULL,
`url` varchar(2048) DEFAULT '' NOT NULL,
`status` integer DEFAULT '0' NOT NULL,
`value` integer DEFAULT '0' NOT NULL,
`priority` integer DEFAULT '0' NOT NULL,
`lastchange` integer DEFAULT '0' NOT NULL,
`comments` text NOT NULL,
`error` varchar(2048) DEFAULT '' NOT NULL,
`templateid` bigint unsigned NULL,
`type` integer DEFAULT '0' NOT NULL,
`state` integer DEFAULT '0' NOT NULL,
`flags` integer DEFAULT '0' NOT NULL,
`recovery_mode` integer DEFAULT '0' NOT NULL,
`recovery_expression` varchar(2048) DEFAULT '' NOT NULL,
`correlation_mode` integer DEFAULT '0' NOT NULL,
`correlation_tag` varchar(255) DEFAULT '' NOT NULL,
`manual_close` integer DEFAULT '0' NOT NULL,
`opdata` varchar(255) DEFAULT '' NOT NULL,
`discover` integer DEFAULT '0' NOT NULL,
`event_name` varchar(2048) DEFAULT '' NOT NULL,
`uuid` varchar(32) DEFAULT '' NOT NULL,
`url_name` varchar(64) DEFAULT '' NOT NULL,
PRIMARY KEY (triggerid)
) ENGINE=InnoDB;
CREATE INDEX `triggers_1` ON `triggers` (`status`);
CREATE INDEX `triggers_2` ON `triggers` (`value`,`lastchange`);
CREATE INDEX `triggers_3` ON `triggers` (`templateid`);
CREATE INDEX `triggers_4` ON `triggers` (`uuid`);
CREATE TABLE `trigger_depends` (
`triggerdepid` bigint unsigned NOT NULL,
`triggerid_down` bigint unsigned NOT NULL,
`triggerid_up` bigint unsigned NOT NULL,
PRIMARY KEY (triggerdepid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `trigger_depends_1` ON `trigger_depends` (`triggerid_down`,`triggerid_up`);
CREATE INDEX `trigger_depends_2` ON `trigger_depends` (`triggerid_up`);
CREATE TABLE `functions` (
`functionid` bigint unsigned NOT NULL,
`itemid` bigint unsigned NOT NULL,
`triggerid` bigint unsigned NOT NULL,
`name` varchar(12) DEFAULT '' NOT NULL,
`parameter` varchar(255) DEFAULT '0' NOT NULL,
PRIMARY KEY (functionid)
) ENGINE=InnoDB;
CREATE INDEX `functions_1` ON `functions` (`triggerid`);
CREATE INDEX `functions_2` ON `functions` (`itemid`,`name`,`parameter`);
CREATE TABLE `graphs` (
`graphid` bigint unsigned NOT NULL,
`name` varchar(128) DEFAULT '' NOT NULL,
`width` integer DEFAULT '900' NOT NULL,
`height` integer DEFAULT '200' NOT NULL,
`yaxismin` DOUBLE PRECISION DEFAULT '0' NOT NULL,
`yaxismax` DOUBLE PRECISION DEFAULT '100' NOT NULL,
`templateid` bigint unsigned NULL,
`show_work_period` integer DEFAULT '1' NOT NULL,
`show_triggers` integer DEFAULT '1' NOT NULL,
`graphtype` integer DEFAULT '0' NOT NULL,
`show_legend` integer DEFAULT '1' NOT NULL,
`show_3d` integer DEFAULT '0' NOT NULL,
`percent_left` DOUBLE PRECISION DEFAULT '0' NOT NULL,
`percent_right` DOUBLE PRECISION DEFAULT '0' NOT NULL,
`ymin_type` integer DEFAULT '0' NOT NULL,
`ymax_type` integer DEFAULT '0' NOT NULL,
`ymin_itemid` bigint unsigned NULL,
`ymax_itemid` bigint unsigned NULL,
`flags` integer DEFAULT '0' NOT NULL,
`discover` integer DEFAULT '0' NOT NULL,
`uuid` varchar(32) DEFAULT '' NOT NULL,
PRIMARY KEY (graphid)
) ENGINE=InnoDB;
CREATE INDEX `graphs_1` ON `graphs` (`name`);
CREATE INDEX `graphs_2` ON `graphs` (`templateid`);
CREATE INDEX `graphs_3` ON `graphs` (`ymin_itemid`);
CREATE INDEX `graphs_4` ON `graphs` (`ymax_itemid`);
CREATE INDEX `graphs_5` ON `graphs` (`uuid`);
CREATE TABLE `graphs_items` (
`gitemid` bigint unsigned NOT NULL,
`graphid` bigint unsigned NOT NULL,
`itemid` bigint unsigned NOT NULL,
`drawtype` integer DEFAULT '0' NOT NULL,
`sortorder` integer DEFAULT '0' NOT NULL,
`color` varchar(6) DEFAULT '009600' NOT NULL,
`yaxisside` integer DEFAULT '0' NOT NULL,
`calc_fnc` integer DEFAULT '2' NOT NULL,
`type` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (gitemid)
) ENGINE=InnoDB;
CREATE INDEX `graphs_items_1` ON `graphs_items` (`itemid`);
CREATE INDEX `graphs_items_2` ON `graphs_items` (`graphid`);
CREATE TABLE `graph_theme` (
`graphthemeid` bigint unsigned NOT NULL,
`theme` varchar(64) DEFAULT '' NOT NULL,
`backgroundcolor` varchar(6) DEFAULT '' NOT NULL,
`graphcolor` varchar(6) DEFAULT '' NOT NULL,
`gridcolor` varchar(6) DEFAULT '' NOT NULL,
`maingridcolor` varchar(6) DEFAULT '' NOT NULL,
`gridbordercolor` varchar(6) DEFAULT '' NOT NULL,
`textcolor` varchar(6) DEFAULT '' NOT NULL,
`highlightcolor` varchar(6) DEFAULT '' NOT NULL,
`leftpercentilecolor` varchar(6) DEFAULT '' NOT NULL,
`rightpercentilecolor` varchar(6) DEFAULT '' NOT NULL,
`nonworktimecolor` varchar(6) DEFAULT '' NOT NULL,
`colorpalette` varchar(255) DEFAULT '' NOT NULL,
PRIMARY KEY (graphthemeid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `graph_theme_1` ON `graph_theme` (`theme`);
CREATE TABLE `globalmacro` (
`globalmacroid` bigint unsigned NOT NULL,
`macro` varchar(255) DEFAULT '' NOT NULL,
`value` varchar(2048) DEFAULT '' NOT NULL,
`description` text NOT NULL,
`type` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (globalmacroid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `globalmacro_1` ON `globalmacro` (`macro`);
CREATE TABLE `hostmacro` (
`hostmacroid` bigint unsigned NOT NULL,
`hostid` bigint unsigned NOT NULL,
`macro` varchar(255) DEFAULT '' NOT NULL,
`value` varchar(2048) DEFAULT '' NOT NULL,
`description` text NOT NULL,
`type` integer DEFAULT '0' NOT NULL,
`automatic` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (hostmacroid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `hostmacro_1` ON `hostmacro` (`hostid`,`macro`);
CREATE TABLE `hostmacro_config` (
`hostmacroid` bigint unsigned NOT NULL,
`type` integer DEFAULT '0' NOT NULL,
`priority` integer DEFAULT '0' NOT NULL,
`section_name` varchar(255) DEFAULT '' NOT NULL,
`label` varchar(255) DEFAULT '' NOT NULL,
`description` text NOT NULL,
`required` integer DEFAULT '0' NOT NULL,
`regex` varchar(255) DEFAULT '' NOT NULL,
`options` text NOT NULL,
PRIMARY KEY (hostmacroid)
) ENGINE=InnoDB;
CREATE TABLE `hosts_groups` (
`hostgroupid` bigint unsigned NOT NULL,
`hostid` bigint unsigned NOT NULL,
`groupid` bigint unsigned NOT NULL,
PRIMARY KEY (hostgroupid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `hosts_groups_1` ON `hosts_groups` (`hostid`,`groupid`);
CREATE INDEX `hosts_groups_2` ON `hosts_groups` (`groupid`);
CREATE TABLE `hosts_templates` (
`hosttemplateid` bigint unsigned NOT NULL,
`hostid` bigint unsigned NOT NULL,
`templateid` bigint unsigned NOT NULL,
`link_type` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (hosttemplateid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `hosts_templates_1` ON `hosts_templates` (`hostid`,`templateid`);
CREATE INDEX `hosts_templates_2` ON `hosts_templates` (`templateid`);
CREATE TABLE `valuemap_mapping` (
`valuemap_mappingid` bigint unsigned NOT NULL,
`valuemapid` bigint unsigned NOT NULL,
`value` varchar(64) DEFAULT '' NOT NULL,
`newvalue` varchar(64) DEFAULT '' NOT NULL,
`type` integer DEFAULT '0' NOT NULL,
`sortorder` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (valuemap_mappingid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `valuemap_mapping_1` ON `valuemap_mapping` (`valuemapid`,`value`,`type`);
CREATE TABLE `media` (
`mediaid` bigint unsigned NOT NULL,
`userid` bigint unsigned NOT NULL,
`mediatypeid` bigint unsigned NOT NULL,
`sendto` varchar(1024) DEFAULT '' NOT NULL,
`active` integer DEFAULT '0' NOT NULL,
`severity` integer DEFAULT '63' NOT NULL,
`period` varchar(1024) DEFAULT '1-7,00:00-24:00' NOT NULL,
`userdirectory_mediaid` bigint unsigned DEFAULT NULL NULL,
PRIMARY KEY (mediaid)
) ENGINE=InnoDB;
CREATE INDEX `media_1` ON `media` (`userid`);
CREATE INDEX `media_2` ON `media` (`mediatypeid`);
CREATE INDEX `media_3` ON `media` (`userdirectory_mediaid`);
CREATE TABLE `rights` (
`rightid` bigint unsigned NOT NULL,
`groupid` bigint unsigned NOT NULL,
`permission` integer DEFAULT '0' NOT NULL,
`id` bigint unsigned NOT NULL,
PRIMARY KEY (rightid)
) ENGINE=InnoDB;
CREATE INDEX `rights_1` ON `rights` (`groupid`);
CREATE INDEX `rights_2` ON `rights` (`id`);
CREATE TABLE `permission` (
`ugsetid` bigint unsigned NOT NULL,
`hgsetid` bigint unsigned NOT NULL,
`permission` integer DEFAULT '2' NOT NULL,
PRIMARY KEY (ugsetid,hgsetid)
) ENGINE=InnoDB;
CREATE INDEX `permission_1` ON `permission` (`hgsetid`);
CREATE TABLE `services` (
`serviceid` bigint unsigned NOT NULL,
`name` varchar(128) DEFAULT '' NOT NULL,
`status` integer DEFAULT '-1' NOT NULL,
`algorithm` integer DEFAULT '0' NOT NULL,
`sortorder` integer DEFAULT '0' NOT NULL,
`weight` integer DEFAULT '0' NOT NULL,
`propagation_rule` integer DEFAULT '0' NOT NULL,
`propagation_value` integer DEFAULT '0' NOT NULL,
`description` text NOT NULL,
`uuid` varchar(32) DEFAULT '' NOT NULL,
`created_at` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (serviceid)
) ENGINE=InnoDB;
CREATE INDEX `services_1` ON `services` (`uuid`);
CREATE TABLE `services_links` (
`linkid` bigint unsigned NOT NULL,
`serviceupid` bigint unsigned NOT NULL,
`servicedownid` bigint unsigned NOT NULL,
PRIMARY KEY (linkid)
) ENGINE=InnoDB;
CREATE INDEX `services_links_1` ON `services_links` (`servicedownid`);
CREATE UNIQUE INDEX `services_links_2` ON `services_links` (`serviceupid`,`servicedownid`);
CREATE TABLE `icon_map` (
`iconmapid` bigint unsigned NOT NULL,
`name` varchar(64) DEFAULT '' NOT NULL,
`default_iconid` bigint unsigned NOT NULL,
PRIMARY KEY (iconmapid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `icon_map_1` ON `icon_map` (`name`);
CREATE INDEX `icon_map_2` ON `icon_map` (`default_iconid`);
CREATE TABLE `icon_mapping` (
`iconmappingid` bigint unsigned NOT NULL,
`iconmapid` bigint unsigned NOT NULL,
`iconid` bigint unsigned NOT NULL,
`inventory_link` integer DEFAULT '0' NOT NULL,
`expression` varchar(64) DEFAULT '' NOT NULL,
`sortorder` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (iconmappingid)
) ENGINE=InnoDB;
CREATE INDEX `icon_mapping_1` ON `icon_mapping` (`iconmapid`);
CREATE INDEX `icon_mapping_2` ON `icon_mapping` (`iconid`);
CREATE TABLE `sysmaps` (
`sysmapid` bigint unsigned NOT NULL,
`name` varchar(128) DEFAULT '' NOT NULL,
`width` integer DEFAULT '600' NOT NULL,
`height` integer DEFAULT '400' NOT NULL,
`backgroundid` bigint unsigned NULL,
`label_type` integer DEFAULT '2' NOT NULL,
`label_location` integer DEFAULT '0' NOT NULL,
`highlight` integer DEFAULT '1' NOT NULL,
`expandproblem` integer DEFAULT '1' NOT NULL,
`markelements` integer DEFAULT '0' NOT NULL,
`show_unack` integer DEFAULT '0' NOT NULL,
`grid_size` integer DEFAULT '50' NOT NULL,
`grid_show` integer DEFAULT '1' NOT NULL,
`grid_align` integer DEFAULT '1' NOT NULL,
`label_format` integer DEFAULT '0' NOT NULL,
`label_type_host` integer DEFAULT '2' NOT NULL,
`label_type_hostgroup` integer DEFAULT '2' NOT NULL,
`label_type_trigger` integer DEFAULT '2' NOT NULL,
`label_type_map` integer DEFAULT '2' NOT NULL,
`label_type_image` integer DEFAULT '2' NOT NULL,
`label_string_host` varchar(255) DEFAULT '' NOT NULL,
`label_string_hostgroup` varchar(255) DEFAULT '' NOT NULL,
`label_string_trigger` varchar(255) DEFAULT '' NOT NULL,
`label_string_map` varchar(255) DEFAULT '' NOT NULL,
`label_string_image` varchar(255) DEFAULT '' NOT NULL,
`iconmapid` bigint unsigned NULL,
`expand_macros` integer DEFAULT '0' NOT NULL,
`severity_min` integer DEFAULT '0' NOT NULL,
`userid` bigint unsigned NOT NULL,
`private` integer DEFAULT '1' NOT NULL,
`show_suppressed` integer DEFAULT '0' NOT NULL,
`background_scale` integer DEFAULT '1' NOT NULL,
`show_element_label` integer DEFAULT '1' NOT NULL,
`show_link_label` integer DEFAULT '1' NOT NULL,
PRIMARY KEY (sysmapid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `sysmaps_1` ON `sysmaps` (`name`);
CREATE INDEX `sysmaps_2` ON `sysmaps` (`backgroundid`);
CREATE INDEX `sysmaps_3` ON `sysmaps` (`iconmapid`);
CREATE INDEX `sysmaps_4` ON `sysmaps` (`userid`);
CREATE TABLE `sysmaps_elements` (
`selementid` bigint unsigned NOT NULL,
`sysmapid` bigint unsigned NOT NULL,
`elementid` bigint unsigned DEFAULT '0' NOT NULL,
`elementtype` integer DEFAULT '0' NOT NULL,
`iconid_off` bigint unsigned NULL,
`iconid_on` bigint unsigned NULL,
`label` varchar(2048) DEFAULT '' NOT NULL,
`label_location` integer DEFAULT '-1' NOT NULL,
`x` integer DEFAULT '0' NOT NULL,
`y` integer DEFAULT '0' NOT NULL,
`iconid_disabled` bigint unsigned NULL,
`iconid_maintenance` bigint unsigned NULL,
`elementsubtype` integer DEFAULT '0' NOT NULL,
`areatype` integer DEFAULT '0' NOT NULL,
`width` integer DEFAULT '200' NOT NULL,
`height` integer DEFAULT '200' NOT NULL,
`viewtype` integer DEFAULT '0' NOT NULL,
`use_iconmap` integer DEFAULT '1' NOT NULL,
`evaltype` integer DEFAULT '0' NOT NULL,
`show_label` integer DEFAULT '-1' NOT NULL,
`zindex` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (selementid)
) ENGINE=InnoDB;
CREATE INDEX `sysmaps_elements_1` ON `sysmaps_elements` (`sysmapid`);
CREATE INDEX `sysmaps_elements_2` ON `sysmaps_elements` (`iconid_off`);
CREATE INDEX `sysmaps_elements_3` ON `sysmaps_elements` (`iconid_on`);
CREATE INDEX `sysmaps_elements_4` ON `sysmaps_elements` (`iconid_disabled`);
CREATE INDEX `sysmaps_elements_5` ON `sysmaps_elements` (`iconid_maintenance`);
CREATE TABLE `sysmaps_links` (
`linkid` bigint unsigned NOT NULL,
`sysmapid` bigint unsigned NOT NULL,
`selementid1` bigint unsigned NOT NULL,
`selementid2` bigint unsigned NOT NULL,
`drawtype` integer DEFAULT '0' NOT NULL,
`color` varchar(6) DEFAULT '000000' NOT NULL,
`label` varchar(2048) DEFAULT '' NOT NULL,
`show_label` integer DEFAULT '-1' NOT NULL,
`indicator_type` integer DEFAULT '0' NOT NULL,
`itemid` bigint unsigned NULL,
PRIMARY KEY (linkid)
) ENGINE=InnoDB;
CREATE INDEX `sysmaps_links_1` ON `sysmaps_links` (`sysmapid`);
CREATE INDEX `sysmaps_links_2` ON `sysmaps_links` (`selementid1`);
CREATE INDEX `sysmaps_links_3` ON `sysmaps_links` (`selementid2`);
CREATE INDEX `sysmaps_links_4` ON `sysmaps_links` (`itemid`);
CREATE TABLE `sysmaps_link_triggers` (
`linktriggerid` bigint unsigned NOT NULL,
`linkid` bigint unsigned NOT NULL,
`triggerid` bigint unsigned NOT NULL,
`drawtype` integer DEFAULT '0' NOT NULL,
`color` varchar(6) DEFAULT '000000' NOT NULL,
PRIMARY KEY (linktriggerid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `sysmaps_link_triggers_1` ON `sysmaps_link_triggers` (`linkid`,`triggerid`);
CREATE INDEX `sysmaps_link_triggers_2` ON `sysmaps_link_triggers` (`triggerid`);
CREATE TABLE `sysmap_link_threshold` (
`linkthresholdid` bigint unsigned NOT NULL,
`linkid` bigint unsigned NOT NULL,
`drawtype` integer DEFAULT '0' NOT NULL,
`color` varchar(6) DEFAULT '000000' NOT NULL,
`type` integer DEFAULT '0' NOT NULL,
`threshold` varchar(255) DEFAULT '' NOT NULL,
`pattern` varchar(255) DEFAULT '' NOT NULL,
`sortorder` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (linkthresholdid)
) ENGINE=InnoDB;
CREATE INDEX `sysmap_link_threshold_1` ON `sysmap_link_threshold` (`linkid`);
CREATE TABLE `sysmap_element_url` (
`sysmapelementurlid` bigint unsigned NOT NULL,
`selementid` bigint unsigned NOT NULL,
`name` varchar(255) NOT NULL,
`url` varchar(2048) DEFAULT '' NOT NULL,
PRIMARY KEY (sysmapelementurlid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `sysmap_element_url_1` ON `sysmap_element_url` (`selementid`,`name`);
CREATE TABLE `sysmap_url` (
`sysmapurlid` bigint unsigned NOT NULL,
`sysmapid` bigint unsigned NOT NULL,
`name` varchar(255) NOT NULL,
`url` varchar(2048) DEFAULT '' NOT NULL,
`elementtype` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (sysmapurlid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `sysmap_url_1` ON `sysmap_url` (`sysmapid`,`name`);
CREATE TABLE `sysmap_user` (
`sysmapuserid` bigint unsigned NOT NULL,
`sysmapid` bigint unsigned NOT NULL,
`userid` bigint unsigned NOT NULL,
`permission` integer DEFAULT '2' NOT NULL,
PRIMARY KEY (sysmapuserid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `sysmap_user_1` ON `sysmap_user` (`sysmapid`,`userid`);
CREATE INDEX `sysmap_user_2` ON `sysmap_user` (`userid`);
CREATE TABLE `sysmap_usrgrp` (
`sysmapusrgrpid` bigint unsigned NOT NULL,
`sysmapid` bigint unsigned NOT NULL,
`usrgrpid` bigint unsigned NOT NULL,
`permission` integer DEFAULT '2' NOT NULL,
PRIMARY KEY (sysmapusrgrpid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `sysmap_usrgrp_1` ON `sysmap_usrgrp` (`sysmapid`,`usrgrpid`);
CREATE INDEX `sysmap_usrgrp_2` ON `sysmap_usrgrp` (`usrgrpid`);
CREATE TABLE `maintenances_hosts` (
`maintenance_hostid` bigint unsigned NOT NULL,
`maintenanceid` bigint unsigned NOT NULL,
`hostid` bigint unsigned NOT NULL,
PRIMARY KEY (maintenance_hostid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `maintenances_hosts_1` ON `maintenances_hosts` (`maintenanceid`,`hostid`);
CREATE INDEX `maintenances_hosts_2` ON `maintenances_hosts` (`hostid`);
CREATE TABLE `maintenances_groups` (
`maintenance_groupid` bigint unsigned NOT NULL,
`maintenanceid` bigint unsigned NOT NULL,
`groupid` bigint unsigned NOT NULL,
PRIMARY KEY (maintenance_groupid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `maintenances_groups_1` ON `maintenances_groups` (`maintenanceid`,`groupid`);
CREATE INDEX `maintenances_groups_2` ON `maintenances_groups` (`groupid`);
CREATE TABLE `timeperiods` (
`timeperiodid` bigint unsigned NOT NULL,
`timeperiod_type` integer DEFAULT '0' NOT NULL,
`every` integer DEFAULT '1' NOT NULL,
`month` integer DEFAULT '0' NOT NULL,
`dayofweek` integer DEFAULT '0' NOT NULL,
`day` integer DEFAULT '0' NOT NULL,
`start_time` integer DEFAULT '0' NOT NULL,
`period` integer DEFAULT '0' NOT NULL,
`start_date` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (timeperiodid)
) ENGINE=InnoDB;
CREATE TABLE `maintenances_windows` (
`maintenance_timeperiodid` bigint unsigned NOT NULL,
`maintenanceid` bigint unsigned NOT NULL,
`timeperiodid` bigint unsigned NOT NULL,
PRIMARY KEY (maintenance_timeperiodid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `maintenances_windows_1` ON `maintenances_windows` (`maintenanceid`,`timeperiodid`);
CREATE INDEX `maintenances_windows_2` ON `maintenances_windows` (`timeperiodid`);
CREATE TABLE `regexps` (
`regexpid` bigint unsigned NOT NULL,
`name` varchar(128) DEFAULT '' NOT NULL,
`test_string` text NOT NULL,
PRIMARY KEY (regexpid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `regexps_1` ON `regexps` (`name`);
CREATE TABLE `expressions` (
`expressionid` bigint unsigned NOT NULL,
`regexpid` bigint unsigned NOT NULL,
`expression` varchar(255) DEFAULT '' NOT NULL,
`expression_type` integer DEFAULT '0' NOT NULL,
`exp_delimiter` varchar(1) DEFAULT '' NOT NULL,
`case_sensitive` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (expressionid)
) ENGINE=InnoDB;
CREATE INDEX `expressions_1` ON `expressions` (`regexpid`);
CREATE TABLE `ids` (
`table_name` varchar(64) DEFAULT '' NOT NULL,
`field_name` varchar(64) DEFAULT '' NOT NULL,
`nextid` bigint unsigned NOT NULL,
PRIMARY KEY (table_name,field_name)
) ENGINE=InnoDB;
CREATE TABLE `alerts` (
`alertid` bigint unsigned NOT NULL,
`actionid` bigint unsigned NOT NULL,
`eventid` bigint unsigned NOT NULL,
`userid` bigint unsigned NULL,
`clock` integer DEFAULT '0' NOT NULL,
`mediatypeid` bigint unsigned NULL,
`sendto` varchar(1024) DEFAULT '' NOT NULL,
`subject` varchar(255) DEFAULT '' NOT NULL,
`message` text NOT NULL,
`status` integer DEFAULT '0' NOT NULL,
`retries` integer DEFAULT '0' NOT NULL,
`error` varchar(2048) DEFAULT '' NOT NULL,
`esc_step` integer DEFAULT '0' NOT NULL,
`alerttype` integer DEFAULT '0' NOT NULL,
`p_eventid` bigint unsigned NULL,
`acknowledgeid` bigint unsigned NULL,
`parameters` text NOT NULL,
PRIMARY KEY (alertid)
) ENGINE=InnoDB;
CREATE INDEX `alerts_1` ON `alerts` (`actionid`);
CREATE INDEX `alerts_2` ON `alerts` (`clock`);
CREATE INDEX `alerts_3` ON `alerts` (`eventid`);
CREATE INDEX `alerts_4` ON `alerts` (`status`);
CREATE INDEX `alerts_5` ON `alerts` (`mediatypeid`);
CREATE INDEX `alerts_6` ON `alerts` (`userid`);
CREATE INDEX `alerts_7` ON `alerts` (`p_eventid`);
CREATE INDEX `alerts_8` ON `alerts` (`acknowledgeid`);
CREATE TABLE `history` (
`itemid` bigint unsigned NOT NULL,
`clock` integer DEFAULT '0' NOT NULL,
`value` DOUBLE PRECISION DEFAULT '0.0000' NOT NULL,
`ns` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (itemid,clock,ns)
) ENGINE=InnoDB;
CREATE TABLE `history_uint` (
`itemid` bigint unsigned NOT NULL,
`clock` integer DEFAULT '0' NOT NULL,
`value` bigint unsigned DEFAULT '0' NOT NULL,
`ns` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (itemid,clock,ns)
) ENGINE=InnoDB;
CREATE TABLE `history_str` (
`itemid` bigint unsigned NOT NULL,
`clock` integer DEFAULT '0' NOT NULL,
`value` varchar(255) DEFAULT '' NOT NULL,
`ns` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (itemid,clock,ns)
) ENGINE=InnoDB;
CREATE TABLE `history_log` (
`itemid` bigint unsigned NOT NULL,
`clock` integer DEFAULT '0' NOT NULL,
`timestamp` integer DEFAULT '0' NOT NULL,
`source` varchar(64) DEFAULT '' NOT NULL,
`severity` integer DEFAULT '0' NOT NULL,
`value` text NOT NULL,
`logeventid` integer DEFAULT '0' NOT NULL,
`ns` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (itemid,clock,ns)
) ENGINE=InnoDB;
CREATE TABLE `history_text` (
`itemid` bigint unsigned NOT NULL,
`clock` integer DEFAULT '0' NOT NULL,
`value` text NOT NULL,
`ns` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (itemid,clock,ns)
) ENGINE=InnoDB;
CREATE TABLE `history_bin` (
`itemid` bigint unsigned NOT NULL,
`clock` integer DEFAULT '0' NOT NULL,
`ns` integer DEFAULT '0' NOT NULL,
`value` longblob NOT NULL,
PRIMARY KEY (itemid,clock,ns)
) ENGINE=InnoDB;
CREATE TABLE `proxy_history` (
`id` bigint unsigned NOT NULL,
`itemid` bigint unsigned NOT NULL,
`clock` integer DEFAULT '0' NOT NULL,
`timestamp` integer DEFAULT '0' NOT NULL,
`source` varchar(64) DEFAULT '' NOT NULL,
`severity` integer DEFAULT '0' NOT NULL,
`value` longtext NOT NULL,
`logeventid` integer DEFAULT '0' NOT NULL,
`ns` integer DEFAULT '0' NOT NULL,
`state` integer DEFAULT '0' NOT NULL,
`lastlogsize` bigint unsigned DEFAULT '0' NOT NULL,
`mtime` integer DEFAULT '0' NOT NULL,
`flags` integer DEFAULT '0' NOT NULL,
`write_clock` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB;
CREATE INDEX `proxy_history_2` ON `proxy_history` (`write_clock`);
CREATE TABLE `proxy_dhistory` (
`id` bigint unsigned NOT NULL,
`clock` integer DEFAULT '0' NOT NULL,
`druleid` bigint unsigned NOT NULL,
`ip` varchar(39) DEFAULT '' NOT NULL,
`port` integer DEFAULT '0' NOT NULL,
`value` varchar(255) DEFAULT '' NOT NULL,
`status` integer DEFAULT '0' NOT NULL,
`dcheckid` bigint unsigned NULL,
`dns` varchar(255) DEFAULT '' NOT NULL,
`error` varchar(2048) DEFAULT '' NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB;
CREATE INDEX `proxy_dhistory_1` ON `proxy_dhistory` (`clock`);
CREATE INDEX `proxy_dhistory_2` ON `proxy_dhistory` (`druleid`);
CREATE TABLE `events` (
`eventid` bigint unsigned NOT NULL,
`source` integer DEFAULT '0' NOT NULL,
`object` integer DEFAULT '0' NOT NULL,
`objectid` bigint unsigned DEFAULT '0' NOT NULL,
`clock` integer DEFAULT '0' NOT NULL,
`value` integer DEFAULT '0' NOT NULL,
`acknowledged` integer DEFAULT '0' NOT NULL,
`ns` integer DEFAULT '0' NOT NULL,
`name` varchar(2048) DEFAULT '' NOT NULL,
`severity` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (eventid)
) ENGINE=InnoDB;
CREATE INDEX `events_1` ON `events` (`source`,`object`,`objectid`,`clock`);
CREATE INDEX `events_2` ON `events` (`source`,`object`,`clock`);
CREATE TABLE `event_symptom` (
`eventid` bigint unsigned NOT NULL,
`cause_eventid` bigint unsigned NOT NULL,
PRIMARY KEY (eventid)
) ENGINE=InnoDB;
CREATE INDEX `event_symptom_1` ON `event_symptom` (`cause_eventid`);
CREATE TABLE `trends` (
`itemid` bigint unsigned NOT NULL,
`clock` integer DEFAULT '0' NOT NULL,
`num` integer DEFAULT '0' NOT NULL,
`value_min` DOUBLE PRECISION DEFAULT '0.0000' NOT NULL,
`value_avg` DOUBLE PRECISION DEFAULT '0.0000' NOT NULL,
`value_max` DOUBLE PRECISION DEFAULT '0.0000' NOT NULL,
PRIMARY KEY (itemid,clock)
) ENGINE=InnoDB;
CREATE TABLE `trends_uint` (
`itemid` bigint unsigned NOT NULL,
`clock` integer DEFAULT '0' NOT NULL,
`num` integer DEFAULT '0' NOT NULL,
`value_min` bigint unsigned DEFAULT '0' NOT NULL,
`value_avg` bigint unsigned DEFAULT '0' NOT NULL,
`value_max` bigint unsigned DEFAULT '0' NOT NULL,
PRIMARY KEY (itemid,clock)
) ENGINE=InnoDB;
CREATE TABLE `acknowledges` (
`acknowledgeid` bigint unsigned NOT NULL,
`userid` bigint unsigned NOT NULL,
`eventid` bigint unsigned NOT NULL,
`clock` integer DEFAULT '0' NOT NULL,
`message` varchar(2048) DEFAULT '' NOT NULL,
`action` integer DEFAULT '0' NOT NULL,
`old_severity` integer DEFAULT '0' NOT NULL,
`new_severity` integer DEFAULT '0' NOT NULL,
`suppress_until` integer DEFAULT '0' NOT NULL,
`taskid` bigint unsigned NULL,
PRIMARY KEY (acknowledgeid)
) ENGINE=InnoDB;
CREATE INDEX `acknowledges_1` ON `acknowledges` (`userid`);
CREATE INDEX `acknowledges_2` ON `acknowledges` (`eventid`);
CREATE INDEX `acknowledges_3` ON `acknowledges` (`clock`);
CREATE TABLE `auditlog` (
`auditid` varchar(25) NOT NULL,
`userid` bigint unsigned NULL,
`username` varchar(100) DEFAULT '' NOT NULL,
`clock` integer DEFAULT '0' NOT NULL,
`ip` varchar(39) DEFAULT '' NOT NULL,
`action` integer DEFAULT '0' NOT NULL,
`resourcetype` integer DEFAULT '0' NOT NULL,
`resourceid` bigint unsigned NULL,
`resource_cuid` varchar(25) NULL,
`resourcename` varchar(255) DEFAULT '' NOT NULL,
`recordsetid` varchar(25) NOT NULL,
`details` longtext NOT NULL,
PRIMARY KEY (auditid)
) ENGINE=InnoDB;
CREATE INDEX `auditlog_1` ON `auditlog` (`userid`,`clock`);
CREATE INDEX `auditlog_2` ON `auditlog` (`clock`);
CREATE INDEX `auditlog_3` ON `auditlog` (`resourcetype`,`resourceid`);
CREATE INDEX `auditlog_4` ON `auditlog` (`recordsetid`);
CREATE INDEX `auditlog_5` ON `auditlog` (`ip`);
CREATE TABLE `service_alarms` (
`servicealarmid` bigint unsigned NOT NULL,
`serviceid` bigint unsigned NOT NULL,
`clock` integer DEFAULT '0' NOT NULL,
`value` integer DEFAULT '-1' NOT NULL,
PRIMARY KEY (servicealarmid)
) ENGINE=InnoDB;
CREATE INDEX `service_alarms_1` ON `service_alarms` (`serviceid`,`clock`);
CREATE INDEX `service_alarms_2` ON `service_alarms` (`clock`);
CREATE TABLE `autoreg_host` (
`autoreg_hostid` bigint unsigned NOT NULL,
`proxyid` bigint unsigned NULL,
`host` varchar(128) DEFAULT '' NOT NULL,
`listen_ip` varchar(39) DEFAULT '' NOT NULL,
`listen_port` integer DEFAULT '0' NOT NULL,
`listen_dns` varchar(255) DEFAULT '' NOT NULL,
`host_metadata` text NOT NULL,
`flags` integer DEFAULT '0' NOT NULL,
`tls_accepted` integer DEFAULT '1' NOT NULL,
PRIMARY KEY (autoreg_hostid)
) ENGINE=InnoDB;
CREATE INDEX `autoreg_host_1` ON `autoreg_host` (`host`);
CREATE INDEX `autoreg_host_2` ON `autoreg_host` (`proxyid`);
CREATE TABLE `proxy_autoreg_host` (
`id` bigint unsigned NOT NULL,
`clock` integer DEFAULT '0' NOT NULL,
`host` varchar(128) DEFAULT '' NOT NULL,
`listen_ip` varchar(39) DEFAULT '' NOT NULL,
`listen_port` integer DEFAULT '0' NOT NULL,
`listen_dns` varchar(255) DEFAULT '' NOT NULL,
`host_metadata` text NOT NULL,
`flags` integer DEFAULT '0' NOT NULL,
`tls_accepted` integer DEFAULT '1' NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB;
CREATE INDEX `proxy_autoreg_host_1` ON `proxy_autoreg_host` (`clock`);
CREATE TABLE `dhosts` (
`dhostid` bigint unsigned NOT NULL,
`druleid` bigint unsigned NOT NULL,
`status` integer DEFAULT '0' NOT NULL,
`lastup` integer DEFAULT '0' NOT NULL,
`lastdown` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (dhostid)
) ENGINE=InnoDB;
CREATE INDEX `dhosts_1` ON `dhosts` (`druleid`);
CREATE TABLE `dservices` (
`dserviceid` bigint unsigned NOT NULL,
`dhostid` bigint unsigned NOT NULL,
`value` varchar(255) DEFAULT '' NOT NULL,
`port` integer DEFAULT '0' NOT NULL,
`status` integer DEFAULT '0' NOT NULL,
`lastup` integer DEFAULT '0' NOT NULL,
`lastdown` integer DEFAULT '0' NOT NULL,
`dcheckid` bigint unsigned NOT NULL,
`ip` varchar(39) DEFAULT '' NOT NULL,
`dns` varchar(255) DEFAULT '' NOT NULL,
PRIMARY KEY (dserviceid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `dservices_1` ON `dservices` (`dcheckid`,`ip`,`port`);
CREATE INDEX `dservices_2` ON `dservices` (`dhostid`);
CREATE TABLE `escalations` (
`escalationid` bigint unsigned NOT NULL,
`actionid` bigint unsigned NOT NULL,
`triggerid` bigint unsigned NULL,
`eventid` bigint unsigned NULL,
`r_eventid` bigint unsigned NULL,
`nextcheck` integer DEFAULT '0' NOT NULL,
`esc_step` integer DEFAULT '0' NOT NULL,
`status` integer DEFAULT '0' NOT NULL,
`itemid` bigint unsigned NULL,
`acknowledgeid` bigint unsigned NULL,
`servicealarmid` bigint unsigned NULL,
`serviceid` bigint unsigned NULL,
PRIMARY KEY (escalationid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `escalations_1` ON `escalations` (`triggerid`,`itemid`,`serviceid`,`escalationid`);
CREATE INDEX `escalations_2` ON `escalations` (`eventid`);
CREATE INDEX `escalations_3` ON `escalations` (`nextcheck`);
CREATE TABLE `globalvars` (
`name` varchar(64) DEFAULT '' NOT NULL,
`value` varchar(2048) DEFAULT '' NOT NULL,
PRIMARY KEY (name)
) ENGINE=InnoDB;
CREATE TABLE `graph_discovery` (
`graphid` bigint unsigned NOT NULL,
`parent_graphid` bigint unsigned NOT NULL,
`lastcheck` integer DEFAULT '0' NOT NULL,
`ts_delete` integer DEFAULT '0' NOT NULL,
`status` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (graphid)
) ENGINE=InnoDB;
CREATE INDEX `graph_discovery_1` ON `graph_discovery` (`parent_graphid`);
CREATE TABLE `host_inventory` (
`hostid` bigint unsigned NOT NULL,
`inventory_mode` integer DEFAULT '0' NOT NULL,
`type` varchar(64) DEFAULT '' NOT NULL,
`type_full` varchar(64) DEFAULT '' NOT NULL,
`name` varchar(128) DEFAULT '' NOT NULL,
`alias` varchar(128) DEFAULT '' NOT NULL,
`os` varchar(128) DEFAULT '' NOT NULL,
`os_full` varchar(255) DEFAULT '' NOT NULL,
`os_short` varchar(128) DEFAULT '' NOT NULL,
`serialno_a` varchar(64) DEFAULT '' NOT NULL,
`serialno_b` varchar(64) DEFAULT '' NOT NULL,
`tag` varchar(64) DEFAULT '' NOT NULL,
`asset_tag` varchar(64) DEFAULT '' NOT NULL,
`macaddress_a` varchar(64) DEFAULT '' NOT NULL,
`macaddress_b` varchar(64) DEFAULT '' NOT NULL,
`hardware` varchar(255) DEFAULT '' NOT NULL,
`hardware_full` text NOT NULL,
`software` varchar(255) DEFAULT '' NOT NULL,
`software_full` text NOT NULL,
`software_app_a` varchar(64) DEFAULT '' NOT NULL,
`software_app_b` varchar(64) DEFAULT '' NOT NULL,
`software_app_c` varchar(64) DEFAULT '' NOT NULL,
`software_app_d` varchar(64) DEFAULT '' NOT NULL,
`software_app_e` varchar(64) DEFAULT '' NOT NULL,
`contact` text NOT NULL,
`location` text NOT NULL,
`location_lat` varchar(16) DEFAULT '' NOT NULL,
`location_lon` varchar(16) DEFAULT '' NOT NULL,
`notes` text NOT NULL,
`chassis` varchar(64) DEFAULT '' NOT NULL,
`model` varchar(64) DEFAULT '' NOT NULL,
`hw_arch` varchar(32) DEFAULT '' NOT NULL,
`vendor` varchar(64) DEFAULT '' NOT NULL,
`contract_number` varchar(64) DEFAULT '' NOT NULL,
`installer_name` varchar(64) DEFAULT '' NOT NULL,
`deployment_status` varchar(64) DEFAULT '' NOT NULL,
`url_a` varchar(2048) DEFAULT '' NOT NULL,
`url_b` varchar(2048) DEFAULT '' NOT NULL,
`url_c` varchar(2048) DEFAULT '' NOT NULL,
`host_networks` text NOT NULL,
`host_netmask` varchar(39) DEFAULT '' NOT NULL,
`host_router` varchar(39) DEFAULT '' NOT NULL,
`oob_ip` varchar(39) DEFAULT '' NOT NULL,
`oob_netmask` varchar(39) DEFAULT '' NOT NULL,
`oob_router` varchar(39) DEFAULT '' NOT NULL,
`date_hw_purchase` varchar(64) DEFAULT '' NOT NULL,
`date_hw_install` varchar(64) DEFAULT '' NOT NULL,
`date_hw_expiry` varchar(64) DEFAULT '' NOT NULL,
`date_hw_decomm` varchar(64) DEFAULT '' NOT NULL,
`site_address_a` varchar(128) DEFAULT '' NOT NULL,
`site_address_b` varchar(128) DEFAULT '' NOT NULL,
`site_address_c` varchar(128) DEFAULT '' NOT NULL,
`site_city` varchar(128) DEFAULT '' NOT NULL,
`site_state` varchar(64) DEFAULT '' NOT NULL,
`site_country` varchar(64) DEFAULT '' NOT NULL,
`site_zip` varchar(64) DEFAULT '' NOT NULL,
`site_rack` varchar(128) DEFAULT '' NOT NULL,
`site_notes` text NOT NULL,
`poc_1_name` varchar(128) DEFAULT '' NOT NULL,
`poc_1_email` varchar(128) DEFAULT '' NOT NULL,
`poc_1_phone_a` varchar(64) DEFAULT '' NOT NULL,
`poc_1_phone_b` varchar(64) DEFAULT '' NOT NULL,
`poc_1_cell` varchar(64) DEFAULT '' NOT NULL,
`poc_1_screen` varchar(64) DEFAULT '' NOT NULL,
`poc_1_notes` text NOT NULL,
`poc_2_name` varchar(128) DEFAULT '' NOT NULL,
`poc_2_email` varchar(128) DEFAULT '' NOT NULL,
`poc_2_phone_a` varchar(64) DEFAULT '' NOT NULL,
`poc_2_phone_b` varchar(64) DEFAULT '' NOT NULL,
`poc_2_cell` varchar(64) DEFAULT '' NOT NULL,
`poc_2_screen` varchar(64) DEFAULT '' NOT NULL,
`poc_2_notes` text NOT NULL,
PRIMARY KEY (hostid)
) ENGINE=InnoDB;
CREATE TABLE `housekeeper` (
`housekeeperid` bigint unsigned NOT NULL,
`tablename` varchar(64) DEFAULT '' NOT NULL,
`field` varchar(64) DEFAULT '' NOT NULL,
`value` bigint unsigned NOT NULL,
PRIMARY KEY (housekeeperid)
) ENGINE=InnoDB;
CREATE TABLE `images` (
`imageid` bigint unsigned NOT NULL,
`imagetype` integer DEFAULT '0' NOT NULL,
`name` varchar(64) DEFAULT '0' NOT NULL,
`image` longblob NOT NULL,
PRIMARY KEY (imageid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `images_1` ON `images` (`name`);
CREATE TABLE `item_discovery` (
`itemdiscoveryid` bigint unsigned NOT NULL,
`itemid` bigint unsigned NOT NULL,
`parent_itemid` bigint unsigned NULL,
`key_` varchar(2048) DEFAULT '' NOT NULL,
`lastcheck` integer DEFAULT '0' NOT NULL,
`ts_delete` integer DEFAULT '0' NOT NULL,
`status` integer DEFAULT '0' NOT NULL,
`disable_source` integer DEFAULT '0' NOT NULL,
`ts_disable` integer DEFAULT '0' NOT NULL,
`lldruleid` bigint unsigned NULL,
PRIMARY KEY (itemdiscoveryid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `item_discovery_1` ON `item_discovery` (`itemid`,`parent_itemid`);
CREATE INDEX `item_discovery_2` ON `item_discovery` (`parent_itemid`);
CREATE INDEX `item_discovery_3` ON `item_discovery` (`lldruleid`);
CREATE TABLE `host_discovery` (
`hostid` bigint unsigned NOT NULL,
`parent_hostid` bigint unsigned NULL,
`lldruleid` bigint unsigned NULL,
`host` varchar(128) DEFAULT '' NOT NULL,
`lastcheck` integer DEFAULT '0' NOT NULL,
`ts_delete` integer DEFAULT '0' NOT NULL,
`status` integer DEFAULT '0' NOT NULL,
`disable_source` integer DEFAULT '0' NOT NULL,
`ts_disable` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (hostid)
) ENGINE=InnoDB;
CREATE INDEX `host_discovery_1` ON `host_discovery` (`parent_hostid`);
CREATE INDEX `host_discovery_2` ON `host_discovery` (`lldruleid`);
CREATE TABLE `interface_discovery` (
`interfaceid` bigint unsigned NOT NULL,
`parent_interfaceid` bigint unsigned NOT NULL,
PRIMARY KEY (interfaceid)
) ENGINE=InnoDB;
CREATE INDEX `interface_discovery_1` ON `interface_discovery` (`parent_interfaceid`);
CREATE TABLE `profiles` (
`profileid` bigint unsigned NOT NULL,
`userid` bigint unsigned NOT NULL,
`idx` varchar(96) DEFAULT '' NOT NULL,
`idx2` bigint unsigned DEFAULT '0' NOT NULL,
`value_id` bigint unsigned DEFAULT '0' NOT NULL,
`value_int` integer DEFAULT '0' NOT NULL,
`value_str` text NOT NULL,
`source` varchar(96) DEFAULT '' NOT NULL,
`type` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (profileid)
) ENGINE=InnoDB;
CREATE INDEX `profiles_1` ON `profiles` (`userid`,`idx`,`idx2`);
CREATE INDEX `profiles_2` ON `profiles` (`userid`,`profileid`);
CREATE TABLE `sessions` (
`sessionid` varchar(32) DEFAULT '' NOT NULL,
`userid` bigint unsigned NOT NULL,
`lastaccess` integer DEFAULT '0' NOT NULL,
`status` integer DEFAULT '0' NOT NULL,
`secret` varchar(32) DEFAULT '' NOT NULL,
PRIMARY KEY (sessionid)
) ENGINE=InnoDB;
CREATE INDEX `sessions_1` ON `sessions` (`userid`,`status`,`lastaccess`);
CREATE TABLE `trigger_discovery` (
`triggerid` bigint unsigned NOT NULL,
`parent_triggerid` bigint unsigned NOT NULL,
`lastcheck` integer DEFAULT '0' NOT NULL,
`ts_delete` integer DEFAULT '0' NOT NULL,
`status` integer DEFAULT '0' NOT NULL,
`disable_source` integer DEFAULT '0' NOT NULL,
`ts_disable` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (triggerid)
) ENGINE=InnoDB;
CREATE INDEX `trigger_discovery_1` ON `trigger_discovery` (`parent_triggerid`);
CREATE TABLE `item_condition` (
`item_conditionid` bigint unsigned NOT NULL,
`itemid` bigint unsigned NOT NULL,
`operator` integer DEFAULT '8' NOT NULL,
`macro` varchar(64) DEFAULT '' NOT NULL,
`value` varchar(255) DEFAULT '' NOT NULL,
PRIMARY KEY (item_conditionid)
) ENGINE=InnoDB;
CREATE INDEX `item_condition_1` ON `item_condition` (`itemid`);
CREATE TABLE `item_rtdata` (
`itemid` bigint unsigned NOT NULL,
`lastlogsize` bigint unsigned DEFAULT '0' NOT NULL,
`state` integer DEFAULT '0' NOT NULL,
`mtime` integer DEFAULT '0' NOT NULL,
`error` varchar(2048) DEFAULT '' NOT NULL,
PRIMARY KEY (itemid)
) ENGINE=InnoDB;
CREATE TABLE `item_rtname` (
`itemid` bigint unsigned NOT NULL,
`name_resolved` varchar(2048) DEFAULT '' NOT NULL,
`name_resolved_upper` varchar(2048) DEFAULT '' NOT NULL,
PRIMARY KEY (itemid)
) ENGINE=InnoDB;
CREATE TABLE `opinventory` (
`operationid` bigint unsigned NOT NULL,
`inventory_mode` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (operationid)
) ENGINE=InnoDB;
CREATE TABLE `trigger_tag` (
`triggertagid` bigint unsigned NOT NULL,
`triggerid` bigint unsigned NOT NULL,
`tag` varchar(255) DEFAULT '' NOT NULL,
`value` varchar(255) DEFAULT '' NOT NULL,
PRIMARY KEY (triggertagid)
) ENGINE=InnoDB;
CREATE INDEX `trigger_tag_1` ON `trigger_tag` (`triggerid`);
CREATE TABLE `event_tag` (
`eventtagid` bigint unsigned NOT NULL,
`eventid` bigint unsigned NOT NULL,
`tag` varchar(255) DEFAULT '' NOT NULL,
`value` varchar(255) DEFAULT '' NOT NULL,
PRIMARY KEY (eventtagid)
) ENGINE=InnoDB;
CREATE INDEX `event_tag_1` ON `event_tag` (`eventid`);
CREATE TABLE `problem` (
`eventid` bigint unsigned NOT NULL,
`source` integer DEFAULT '0' NOT NULL,
`object` integer DEFAULT '0' NOT NULL,
`objectid` bigint unsigned DEFAULT '0' NOT NULL,
`clock` integer DEFAULT '0' NOT NULL,
`ns` integer DEFAULT '0' NOT NULL,
`r_eventid` bigint unsigned NULL,
`r_clock` integer DEFAULT '0' NOT NULL,
`r_ns` integer DEFAULT '0' NOT NULL,
`correlationid` bigint unsigned NULL,
`userid` bigint unsigned NULL,
`name` varchar(2048) DEFAULT '' NOT NULL,
`acknowledged` integer DEFAULT '0' NOT NULL,
`severity` integer DEFAULT '0' NOT NULL,
`cause_eventid` bigint unsigned NULL,
PRIMARY KEY (eventid)
) ENGINE=InnoDB;
CREATE INDEX `problem_1` ON `problem` (`source`,`object`,`objectid`);
CREATE INDEX `problem_2` ON `problem` (`r_clock`);
CREATE INDEX `problem_3` ON `problem` (`r_eventid`);
CREATE INDEX `problem_4` ON `problem` (`cause_eventid`);
CREATE TABLE `problem_tag` (
`problemtagid` bigint unsigned NOT NULL,
`eventid` bigint unsigned NOT NULL,
`tag` varchar(255) DEFAULT '' NOT NULL,
`value` varchar(255) DEFAULT '' NOT NULL,
PRIMARY KEY (problemtagid)
) ENGINE=InnoDB;
CREATE INDEX `problem_tag_1` ON `problem_tag` (`eventid`,`tag`,`value`);
CREATE TABLE `tag_filter` (
`tag_filterid` bigint unsigned NOT NULL,
`usrgrpid` bigint unsigned NOT NULL,
`groupid` bigint unsigned NOT NULL,
`tag` varchar(255) DEFAULT '' NOT NULL,
`value` varchar(255) DEFAULT '' NOT NULL,
PRIMARY KEY (tag_filterid)
) ENGINE=InnoDB;
CREATE INDEX `tag_filter_1` ON `tag_filter` (`usrgrpid`);
CREATE INDEX `tag_filter_2` ON `tag_filter` (`groupid`);
CREATE TABLE `event_recovery` (
`eventid` bigint unsigned NOT NULL,
`r_eventid` bigint unsigned NOT NULL,
`c_eventid` bigint unsigned NULL,
`correlationid` bigint unsigned NULL,
`userid` bigint unsigned NULL,
PRIMARY KEY (eventid)
) ENGINE=InnoDB;
CREATE INDEX `event_recovery_1` ON `event_recovery` (`r_eventid`);
CREATE INDEX `event_recovery_2` ON `event_recovery` (`c_eventid`);
CREATE TABLE `correlation` (
`correlationid` bigint unsigned NOT NULL,
`name` varchar(255) DEFAULT '' NOT NULL,
`description` text NOT NULL,
`evaltype` integer DEFAULT '0' NOT NULL,
`status` integer DEFAULT '0' NOT NULL,
`formula` varchar(255) DEFAULT '' NOT NULL,
PRIMARY KEY (correlationid)
) ENGINE=InnoDB;
CREATE INDEX `correlation_1` ON `correlation` (`status`);
CREATE UNIQUE INDEX `correlation_2` ON `correlation` (`name`);
CREATE TABLE `corr_condition` (
`corr_conditionid` bigint unsigned NOT NULL,
`correlationid` bigint unsigned NOT NULL,
`type` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (corr_conditionid)
) ENGINE=InnoDB;
CREATE INDEX `corr_condition_1` ON `corr_condition` (`correlationid`);
CREATE TABLE `corr_condition_tag` (
`corr_conditionid` bigint unsigned NOT NULL,
`tag` varchar(255) DEFAULT '' NOT NULL,
PRIMARY KEY (corr_conditionid)
) ENGINE=InnoDB;
CREATE TABLE `corr_condition_group` (
`corr_conditionid` bigint unsigned NOT NULL,
`operator` integer DEFAULT '0' NOT NULL,
`groupid` bigint unsigned NOT NULL,
PRIMARY KEY (corr_conditionid)
) ENGINE=InnoDB;
CREATE INDEX `corr_condition_group_1` ON `corr_condition_group` (`groupid`);
CREATE TABLE `corr_condition_tagpair` (
`corr_conditionid` bigint unsigned NOT NULL,
`oldtag` varchar(255) DEFAULT '' NOT NULL,
`newtag` varchar(255) DEFAULT '' NOT NULL,
PRIMARY KEY (corr_conditionid)
) ENGINE=InnoDB;
CREATE TABLE `corr_condition_tagvalue` (
`corr_conditionid` bigint unsigned NOT NULL,
`tag` varchar(255) DEFAULT '' NOT NULL,
`operator` integer DEFAULT '0' NOT NULL,
`value` varchar(255) DEFAULT '' NOT NULL,
PRIMARY KEY (corr_conditionid)
) ENGINE=InnoDB;
CREATE TABLE `corr_operation` (
`corr_operationid` bigint unsigned NOT NULL,
`correlationid` bigint unsigned NOT NULL,
`type` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (corr_operationid)
) ENGINE=InnoDB;
CREATE INDEX `corr_operation_1` ON `corr_operation` (`correlationid`);
CREATE TABLE `task` (
`taskid` bigint unsigned NOT NULL,
`type` integer NOT NULL,
`status` integer DEFAULT '0' NOT NULL,
`clock` integer DEFAULT '0' NOT NULL,
`ttl` integer DEFAULT '0' NOT NULL,
`proxyid` bigint unsigned NULL,
PRIMARY KEY (taskid)
) ENGINE=InnoDB;
CREATE INDEX `task_1` ON `task` (`status`,`proxyid`);
CREATE INDEX `task_2` ON `task` (`proxyid`);
CREATE TABLE `task_close_problem` (
`taskid` bigint unsigned NOT NULL,
`acknowledgeid` bigint unsigned NOT NULL,
PRIMARY KEY (taskid)
) ENGINE=InnoDB;
CREATE TABLE `item_preproc` (
`item_preprocid` bigint unsigned NOT NULL,
`itemid` bigint unsigned NOT NULL,
`step` integer DEFAULT '0' NOT NULL,
`type` integer DEFAULT '0' NOT NULL,
`params` text NOT NULL,
`error_handler` integer DEFAULT '0' NOT NULL,
`error_handler_params` varchar(255) DEFAULT '' NOT NULL,
PRIMARY KEY (item_preprocid)
) ENGINE=InnoDB;
CREATE INDEX `item_preproc_1` ON `item_preproc` (`itemid`,`step`);
CREATE TABLE `task_remote_command` (
`taskid` bigint unsigned NOT NULL,
`command_type` integer DEFAULT '0' NOT NULL,
`execute_on` integer DEFAULT '0' NOT NULL,
`port` integer DEFAULT '0' NOT NULL,
`authtype` integer DEFAULT '0' NOT NULL,
`username` varchar(64) DEFAULT '' NOT NULL,
`password` varchar(64) DEFAULT '' NOT NULL,
`publickey` varchar(64) DEFAULT '' NOT NULL,
`privatekey` varchar(64) DEFAULT '' NOT NULL,
`command` text NOT NULL,
`alertid` bigint unsigned NULL,
`parent_taskid` bigint unsigned NOT NULL,
`hostid` bigint unsigned NOT NULL,
PRIMARY KEY (taskid)
) ENGINE=InnoDB;
CREATE TABLE `task_remote_command_result` (
`taskid` bigint unsigned NOT NULL,
`status` integer DEFAULT '0' NOT NULL,
`parent_taskid` bigint unsigned NOT NULL,
`info` longtext NOT NULL,
PRIMARY KEY (taskid)
) ENGINE=InnoDB;
CREATE TABLE `task_data` (
`taskid` bigint unsigned NOT NULL,
`type` integer DEFAULT '0' NOT NULL,
`data` text NOT NULL,
`parent_taskid` bigint unsigned NULL,
PRIMARY KEY (taskid)
) ENGINE=InnoDB;
CREATE TABLE `task_result` (
`taskid` bigint unsigned NOT NULL,
`status` integer DEFAULT '0' NOT NULL,
`parent_taskid` bigint unsigned NOT NULL,
`info` longtext NOT NULL,
PRIMARY KEY (taskid)
) ENGINE=InnoDB;
CREATE INDEX `task_result_1` ON `task_result` (`parent_taskid`);
CREATE TABLE `task_acknowledge` (
`taskid` bigint unsigned NOT NULL,
`acknowledgeid` bigint unsigned NOT NULL,
PRIMARY KEY (taskid)
) ENGINE=InnoDB;
CREATE TABLE `sysmap_shape` (
`sysmap_shapeid` bigint unsigned NOT NULL,
`sysmapid` bigint unsigned NOT NULL,
`type` integer DEFAULT '0' NOT NULL,
`x` integer DEFAULT '0' NOT NULL,
`y` integer DEFAULT '0' NOT NULL,
`width` integer DEFAULT '200' NOT NULL,
`height` integer DEFAULT '200' NOT NULL,
`text` text NOT NULL,
`font` integer DEFAULT '9' NOT NULL,
`font_size` integer DEFAULT '11' NOT NULL,
`font_color` varchar(6) DEFAULT '000000' NOT NULL,
`text_halign` integer DEFAULT '0' NOT NULL,
`text_valign` integer DEFAULT '0' NOT NULL,
`border_type` integer DEFAULT '0' NOT NULL,
`border_width` integer DEFAULT '1' NOT NULL,
`border_color` varchar(6) DEFAULT '000000' NOT NULL,
`background_color` varchar(6) DEFAULT '' NOT NULL,
`zindex` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (sysmap_shapeid)
) ENGINE=InnoDB;
CREATE INDEX `sysmap_shape_1` ON `sysmap_shape` (`sysmapid`);
CREATE TABLE `sysmap_element_trigger` (
`selement_triggerid` bigint unsigned NOT NULL,
`selementid` bigint unsigned NOT NULL,
`triggerid` bigint unsigned NOT NULL,
PRIMARY KEY (selement_triggerid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `sysmap_element_trigger_1` ON `sysmap_element_trigger` (`selementid`,`triggerid`);
CREATE INDEX `sysmap_element_trigger_2` ON `sysmap_element_trigger` (`triggerid`);
CREATE TABLE `httptest_field` (
`httptest_fieldid` bigint unsigned NOT NULL,
`httptestid` bigint unsigned NOT NULL,
`type` integer DEFAULT '0' NOT NULL,
`name` varchar(255) DEFAULT '' NOT NULL,
`value` text NOT NULL,
PRIMARY KEY (httptest_fieldid)
) ENGINE=InnoDB;
CREATE INDEX `httptest_field_1` ON `httptest_field` (`httptestid`);
CREATE TABLE `httpstep_field` (
`httpstep_fieldid` bigint unsigned NOT NULL,
`httpstepid` bigint unsigned NOT NULL,
`type` integer DEFAULT '0' NOT NULL,
`name` varchar(255) DEFAULT '' NOT NULL,
`value` text NOT NULL,
PRIMARY KEY (httpstep_fieldid)
) ENGINE=InnoDB;
CREATE INDEX `httpstep_field_1` ON `httpstep_field` (`httpstepid`);
CREATE TABLE `dashboard` (
`dashboardid` bigint unsigned NOT NULL,
`name` varchar(255) NOT NULL,
`userid` bigint unsigned NULL,
`private` integer DEFAULT '1' NOT NULL,
`templateid` bigint unsigned NULL,
`display_period` integer DEFAULT '30' NOT NULL,
`auto_start` integer DEFAULT '1' NOT NULL,
`uuid` varchar(32) DEFAULT '' NOT NULL,
PRIMARY KEY (dashboardid)
) ENGINE=InnoDB;
CREATE INDEX `dashboard_1` ON `dashboard` (`userid`);
CREATE INDEX `dashboard_2` ON `dashboard` (`templateid`);
CREATE INDEX `dashboard_3` ON `dashboard` (`uuid`);
CREATE TABLE `dashboard_user` (
`dashboard_userid` bigint unsigned NOT NULL,
`dashboardid` bigint unsigned NOT NULL,
`userid` bigint unsigned NOT NULL,
`permission` integer DEFAULT '2' NOT NULL,
PRIMARY KEY (dashboard_userid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `dashboard_user_1` ON `dashboard_user` (`dashboardid`,`userid`);
CREATE INDEX `dashboard_user_2` ON `dashboard_user` (`userid`);
CREATE TABLE `dashboard_usrgrp` (
`dashboard_usrgrpid` bigint unsigned NOT NULL,
`dashboardid` bigint unsigned NOT NULL,
`usrgrpid` bigint unsigned NOT NULL,
`permission` integer DEFAULT '2' NOT NULL,
PRIMARY KEY (dashboard_usrgrpid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `dashboard_usrgrp_1` ON `dashboard_usrgrp` (`dashboardid`,`usrgrpid`);
CREATE INDEX `dashboard_usrgrp_2` ON `dashboard_usrgrp` (`usrgrpid`);
CREATE TABLE `dashboard_page` (
`dashboard_pageid` bigint unsigned NOT NULL,
`dashboardid` bigint unsigned NOT NULL,
`name` varchar(255) DEFAULT '' NOT NULL,
`display_period` integer DEFAULT '0' NOT NULL,
`sortorder` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (dashboard_pageid)
) ENGINE=InnoDB;
CREATE INDEX `dashboard_page_1` ON `dashboard_page` (`dashboardid`);
CREATE TABLE `widget` (
`widgetid` bigint unsigned NOT NULL,
`type` varchar(255) DEFAULT '' NOT NULL,
`name` varchar(255) DEFAULT '' NOT NULL,
`x` integer DEFAULT '0' NOT NULL,
`y` integer DEFAULT '0' NOT NULL,
`width` integer DEFAULT '1' NOT NULL,
`height` integer DEFAULT '2' NOT NULL,
`view_mode` integer DEFAULT '0' NOT NULL,
`dashboard_pageid` bigint unsigned NOT NULL,
PRIMARY KEY (widgetid)
) ENGINE=InnoDB;
CREATE INDEX `widget_1` ON `widget` (`dashboard_pageid`);
CREATE TABLE `widget_field` (
`widget_fieldid` bigint unsigned NOT NULL,
`widgetid` bigint unsigned NOT NULL,
`type` integer DEFAULT '0' NOT NULL,
`name` varchar(255) DEFAULT '' NOT NULL,
`value_int` integer DEFAULT '0' NOT NULL,
`value_str` varchar(2048) DEFAULT '' NOT NULL,
`value_groupid` bigint unsigned NULL,
`value_hostid` bigint unsigned NULL,
`value_itemid` bigint unsigned NULL,
`value_graphid` bigint unsigned NULL,
`value_sysmapid` bigint unsigned NULL,
`value_serviceid` bigint unsigned NULL,
`value_slaid` bigint unsigned NULL,
`value_userid` bigint unsigned NULL,
`value_actionid` bigint unsigned NULL,
`value_mediatypeid` bigint unsigned NULL,
PRIMARY KEY (widget_fieldid)
) ENGINE=InnoDB;
CREATE INDEX `widget_field_1` ON `widget_field` (`widgetid`);
CREATE INDEX `widget_field_2` ON `widget_field` (`value_groupid`);
CREATE INDEX `widget_field_3` ON `widget_field` (`value_hostid`);
CREATE INDEX `widget_field_4` ON `widget_field` (`value_itemid`);
CREATE INDEX `widget_field_5` ON `widget_field` (`value_graphid`);
CREATE INDEX `widget_field_6` ON `widget_field` (`value_sysmapid`);
CREATE INDEX `widget_field_7` ON `widget_field` (`value_serviceid`);
CREATE INDEX `widget_field_8` ON `widget_field` (`value_slaid`);
CREATE INDEX `widget_field_9` ON `widget_field` (`value_userid`);
CREATE INDEX `widget_field_10` ON `widget_field` (`value_actionid`);
CREATE INDEX `widget_field_11` ON `widget_field` (`value_mediatypeid`);
CREATE TABLE `task_check_now` (
`taskid` bigint unsigned NOT NULL,
`itemid` bigint unsigned NOT NULL,
PRIMARY KEY (taskid)
) ENGINE=InnoDB;
CREATE TABLE `event_suppress` (
`event_suppressid` bigint unsigned NOT NULL,
`eventid` bigint unsigned NOT NULL,
`maintenanceid` bigint unsigned NULL,
`suppress_until` integer DEFAULT '0' NOT NULL,
`userid` bigint unsigned NULL,
PRIMARY KEY (event_suppressid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `event_suppress_1` ON `event_suppress` (`eventid`,`maintenanceid`);
CREATE INDEX `event_suppress_2` ON `event_suppress` (`suppress_until`);
CREATE INDEX `event_suppress_3` ON `event_suppress` (`maintenanceid`);
CREATE INDEX `event_suppress_4` ON `event_suppress` (`userid`);
CREATE TABLE `maintenance_tag` (
`maintenancetagid` bigint unsigned NOT NULL,
`maintenanceid` bigint unsigned NOT NULL,
`tag` varchar(255) DEFAULT '' NOT NULL,
`operator` integer DEFAULT '2' NOT NULL,
`value` varchar(255) DEFAULT '' NOT NULL,
PRIMARY KEY (maintenancetagid)
) ENGINE=InnoDB;
CREATE INDEX `maintenance_tag_1` ON `maintenance_tag` (`maintenanceid`);
CREATE TABLE `lld_macro_path` (
`lld_macro_pathid` bigint unsigned NOT NULL,
`itemid` bigint unsigned NOT NULL,
`lld_macro` varchar(255) DEFAULT '' NOT NULL,
`path` varchar(255) DEFAULT '' NOT NULL,
PRIMARY KEY (lld_macro_pathid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `lld_macro_path_1` ON `lld_macro_path` (`itemid`,`lld_macro`);
CREATE TABLE `host_tag` (
`hosttagid` bigint unsigned NOT NULL,
`hostid` bigint unsigned NOT NULL,
`tag` varchar(255) DEFAULT '' NOT NULL,
`value` varchar(255) DEFAULT '' NOT NULL,
`automatic` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (hosttagid)
) ENGINE=InnoDB;
CREATE INDEX `host_tag_1` ON `host_tag` (`hostid`);
CREATE TABLE `config_autoreg_tls` (
`autoreg_tlsid` bigint unsigned NOT NULL,
`tls_psk_identity` varchar(128) DEFAULT '' NOT NULL,
`tls_psk` varchar(512) DEFAULT '' NOT NULL,
PRIMARY KEY (autoreg_tlsid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `config_autoreg_tls_1` ON `config_autoreg_tls` (`tls_psk_identity`);
CREATE TABLE `module` (
`moduleid` bigint unsigned NOT NULL,
`id` varchar(255) DEFAULT '' NOT NULL,
`relative_path` varchar(255) DEFAULT '' NOT NULL,
`status` integer DEFAULT '0' NOT NULL,
`config` text NOT NULL,
PRIMARY KEY (moduleid)
) ENGINE=InnoDB;
CREATE TABLE `interface_snmp` (
`interfaceid` bigint unsigned NOT NULL,
`version` integer DEFAULT '2' NOT NULL,
`bulk` integer DEFAULT '1' NOT NULL,
`community` varchar(64) DEFAULT '' NOT NULL,
`securityname` varchar(64) DEFAULT '' NOT NULL,
`securitylevel` integer DEFAULT '0' NOT NULL,
`authpassphrase` varchar(64) DEFAULT '' NOT NULL,
`privpassphrase` varchar(64) DEFAULT '' NOT NULL,
`authprotocol` integer DEFAULT '0' NOT NULL,
`privprotocol` integer DEFAULT '0' NOT NULL,
`contextname` varchar(255) DEFAULT '' NOT NULL,
`max_repetitions` integer DEFAULT '10' NOT NULL,
PRIMARY KEY (interfaceid)
) ENGINE=InnoDB;
CREATE TABLE `lld_override` (
`lld_overrideid` bigint unsigned NOT NULL,
`itemid` bigint unsigned NOT NULL,
`name` varchar(255) DEFAULT '' NOT NULL,
`step` integer DEFAULT '0' NOT NULL,
`evaltype` integer DEFAULT '0' NOT NULL,
`formula` varchar(255) DEFAULT '' NOT NULL,
`stop` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (lld_overrideid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `lld_override_1` ON `lld_override` (`itemid`,`name`);
CREATE TABLE `lld_override_condition` (
`lld_override_conditionid` bigint unsigned NOT NULL,
`lld_overrideid` bigint unsigned NOT NULL,
`operator` integer DEFAULT '8' NOT NULL,
`macro` varchar(64) DEFAULT '' NOT NULL,
`value` varchar(255) DEFAULT '' NOT NULL,
PRIMARY KEY (lld_override_conditionid)
) ENGINE=InnoDB;
CREATE INDEX `lld_override_condition_1` ON `lld_override_condition` (`lld_overrideid`);
CREATE TABLE `lld_override_operation` (
`lld_override_operationid` bigint unsigned NOT NULL,
`lld_overrideid` bigint unsigned NOT NULL,
`operationobject` integer DEFAULT '0' NOT NULL,
`operator` integer DEFAULT '0' NOT NULL,
`value` varchar(255) DEFAULT '' NOT NULL,
PRIMARY KEY (lld_override_operationid)
) ENGINE=InnoDB;
CREATE INDEX `lld_override_operation_1` ON `lld_override_operation` (`lld_overrideid`);
CREATE TABLE `lld_override_opstatus` (
`lld_override_operationid` bigint unsigned NOT NULL,
`status` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (lld_override_operationid)
) ENGINE=InnoDB;
CREATE TABLE `lld_override_opdiscover` (
`lld_override_operationid` bigint unsigned NOT NULL,
`discover` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (lld_override_operationid)
) ENGINE=InnoDB;
CREATE TABLE `lld_override_opperiod` (
`lld_override_operationid` bigint unsigned NOT NULL,
`delay` varchar(1024) DEFAULT '0' NOT NULL,
PRIMARY KEY (lld_override_operationid)
) ENGINE=InnoDB;
CREATE TABLE `lld_override_ophistory` (
`lld_override_operationid` bigint unsigned NOT NULL,
`history` varchar(255) DEFAULT '31d' NOT NULL,
PRIMARY KEY (lld_override_operationid)
) ENGINE=InnoDB;
CREATE TABLE `lld_override_optrends` (
`lld_override_operationid` bigint unsigned NOT NULL,
`trends` varchar(255) DEFAULT '365d' NOT NULL,
PRIMARY KEY (lld_override_operationid)
) ENGINE=InnoDB;
CREATE TABLE `lld_override_opseverity` (
`lld_override_operationid` bigint unsigned NOT NULL,
`severity` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (lld_override_operationid)
) ENGINE=InnoDB;
CREATE TABLE `lld_override_optag` (
`lld_override_optagid` bigint unsigned NOT NULL,
`lld_override_operationid` bigint unsigned NOT NULL,
`tag` varchar(255) DEFAULT '' NOT NULL,
`value` varchar(255) DEFAULT '' NOT NULL,
PRIMARY KEY (lld_override_optagid)
) ENGINE=InnoDB;
CREATE INDEX `lld_override_optag_1` ON `lld_override_optag` (`lld_override_operationid`);
CREATE TABLE `lld_override_optemplate` (
`lld_override_optemplateid` bigint unsigned NOT NULL,
`lld_override_operationid` bigint unsigned NOT NULL,
`templateid` bigint unsigned NOT NULL,
PRIMARY KEY (lld_override_optemplateid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `lld_override_optemplate_1` ON `lld_override_optemplate` (`lld_override_operationid`,`templateid`);
CREATE INDEX `lld_override_optemplate_2` ON `lld_override_optemplate` (`templateid`);
CREATE TABLE `lld_override_opinventory` (
`lld_override_operationid` bigint unsigned NOT NULL,
`inventory_mode` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (lld_override_operationid)
) ENGINE=InnoDB;
CREATE TABLE `trigger_queue` (
`trigger_queueid` bigint unsigned NOT NULL,
`objectid` bigint unsigned NOT NULL,
`type` integer DEFAULT '0' NOT NULL,
`clock` integer DEFAULT '0' NOT NULL,
`ns` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (trigger_queueid)
) ENGINE=InnoDB;
CREATE TABLE `item_parameter` (
`item_parameterid` bigint unsigned NOT NULL,
`itemid` bigint unsigned NOT NULL,
`name` varchar(255) DEFAULT '' NOT NULL,
`value` varchar(2048) DEFAULT '' NOT NULL,
PRIMARY KEY (item_parameterid)
) ENGINE=InnoDB;
CREATE INDEX `item_parameter_1` ON `item_parameter` (`itemid`);
CREATE TABLE `role_rule` (
`role_ruleid` bigint unsigned NOT NULL,
`roleid` bigint unsigned NOT NULL,
`type` integer DEFAULT '0' NOT NULL,
`name` varchar(255) DEFAULT '' NOT NULL,
`value_int` integer DEFAULT '0' NOT NULL,
`value_str` varchar(255) DEFAULT '' NOT NULL,
`value_moduleid` bigint unsigned NULL,
`value_serviceid` bigint unsigned NULL,
PRIMARY KEY (role_ruleid)
) ENGINE=InnoDB;
CREATE INDEX `role_rule_1` ON `role_rule` (`roleid`);
CREATE INDEX `role_rule_2` ON `role_rule` (`value_moduleid`);
CREATE INDEX `role_rule_3` ON `role_rule` (`value_serviceid`);
CREATE TABLE `token` (
`tokenid` bigint unsigned NOT NULL,
`name` varchar(64) DEFAULT '' NOT NULL,
`description` text NOT NULL,
`userid` bigint unsigned NOT NULL,
`token` varchar(128) NULL,
`lastaccess` integer DEFAULT '0' NOT NULL,
`status` integer DEFAULT '0' NOT NULL,
`expires_at` integer DEFAULT '0' NOT NULL,
`created_at` integer DEFAULT '0' NOT NULL,
`creator_userid` bigint unsigned NULL,
PRIMARY KEY (tokenid)
) ENGINE=InnoDB;
CREATE INDEX `token_1` ON `token` (`name`);
CREATE UNIQUE INDEX `token_2` ON `token` (`userid`,`name`);
CREATE UNIQUE INDEX `token_3` ON `token` (`token`);
CREATE INDEX `token_4` ON `token` (`creator_userid`);
CREATE TABLE `item_tag` (
`itemtagid` bigint unsigned NOT NULL,
`itemid` bigint unsigned NOT NULL,
`tag` varchar(255) DEFAULT '' NOT NULL,
`value` varchar(255) DEFAULT '' NOT NULL,
PRIMARY KEY (itemtagid)
) ENGINE=InnoDB;
CREATE INDEX `item_tag_1` ON `item_tag` (`itemid`);
CREATE TABLE `httptest_tag` (
`httptesttagid` bigint unsigned NOT NULL,
`httptestid` bigint unsigned NOT NULL,
`tag` varchar(255) DEFAULT '' NOT NULL,
`value` varchar(255) DEFAULT '' NOT NULL,
PRIMARY KEY (httptesttagid)
) ENGINE=InnoDB;
CREATE INDEX `httptest_tag_1` ON `httptest_tag` (`httptestid`);
CREATE TABLE `sysmaps_element_tag` (
`selementtagid` bigint unsigned NOT NULL,
`selementid` bigint unsigned NOT NULL,
`tag` varchar(255) DEFAULT '' NOT NULL,
`value` varchar(255) DEFAULT '' NOT NULL,
`operator` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (selementtagid)
) ENGINE=InnoDB;
CREATE INDEX `sysmaps_element_tag_1` ON `sysmaps_element_tag` (`selementid`);
CREATE TABLE `report` (
`reportid` bigint unsigned NOT NULL,
`userid` bigint unsigned NOT NULL,
`name` varchar(255) DEFAULT '' NOT NULL,
`description` varchar(2048) DEFAULT '' NOT NULL,
`status` integer DEFAULT '0' NOT NULL,
`dashboardid` bigint unsigned NOT NULL,
`period` integer DEFAULT '0' NOT NULL,
`cycle` integer DEFAULT '0' NOT NULL,
`weekdays` integer DEFAULT '0' NOT NULL,
`start_time` integer DEFAULT '0' NOT NULL,
`active_since` integer DEFAULT '0' NOT NULL,
`active_till` integer DEFAULT '0' NOT NULL,
`state` integer DEFAULT '0' NOT NULL,
`lastsent` integer DEFAULT '0' NOT NULL,
`info` varchar(2048) DEFAULT '' NOT NULL,
PRIMARY KEY (reportid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `report_1` ON `report` (`name`);
CREATE INDEX `report_2` ON `report` (`userid`);
CREATE INDEX `report_3` ON `report` (`dashboardid`);
CREATE TABLE `report_param` (
`reportparamid` bigint unsigned NOT NULL,
`reportid` bigint unsigned NOT NULL,
`name` varchar(255) DEFAULT '' NOT NULL,
`value` text NOT NULL,
PRIMARY KEY (reportparamid)
) ENGINE=InnoDB;
CREATE INDEX `report_param_1` ON `report_param` (`reportid`);
CREATE TABLE `report_user` (
`reportuserid` bigint unsigned NOT NULL,
`reportid` bigint unsigned NOT NULL,
`userid` bigint unsigned NOT NULL,
`exclude` integer DEFAULT '0' NOT NULL,
`access_userid` bigint unsigned NULL,
PRIMARY KEY (reportuserid)
) ENGINE=InnoDB;
CREATE INDEX `report_user_1` ON `report_user` (`reportid`);
CREATE INDEX `report_user_2` ON `report_user` (`userid`);
CREATE INDEX `report_user_3` ON `report_user` (`access_userid`);
CREATE TABLE `report_usrgrp` (
`reportusrgrpid` bigint unsigned NOT NULL,
`reportid` bigint unsigned NOT NULL,
`usrgrpid` bigint unsigned NOT NULL,
`access_userid` bigint unsigned NULL,
PRIMARY KEY (reportusrgrpid)
) ENGINE=InnoDB;
CREATE INDEX `report_usrgrp_1` ON `report_usrgrp` (`reportid`);
CREATE INDEX `report_usrgrp_2` ON `report_usrgrp` (`usrgrpid`);
CREATE INDEX `report_usrgrp_3` ON `report_usrgrp` (`access_userid`);
CREATE TABLE `service_problem_tag` (
`service_problem_tagid` bigint unsigned NOT NULL,
`serviceid` bigint unsigned NOT NULL,
`tag` varchar(255) DEFAULT '' NOT NULL,
`operator` integer DEFAULT '0' NOT NULL,
`value` varchar(255) DEFAULT '' NOT NULL,
PRIMARY KEY (service_problem_tagid)
) ENGINE=InnoDB;
CREATE INDEX `service_problem_tag_1` ON `service_problem_tag` (`serviceid`);
CREATE TABLE `service_problem` (
`service_problemid` bigint unsigned NOT NULL,
`eventid` bigint unsigned NOT NULL,
`serviceid` bigint unsigned NOT NULL,
`severity` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (service_problemid)
) ENGINE=InnoDB;
CREATE INDEX `service_problem_1` ON `service_problem` (`eventid`);
CREATE INDEX `service_problem_2` ON `service_problem` (`serviceid`);
CREATE TABLE `service_tag` (
`servicetagid` bigint unsigned NOT NULL,
`serviceid` bigint unsigned NOT NULL,
`tag` varchar(255) DEFAULT '' NOT NULL,
`value` varchar(255) DEFAULT '' NOT NULL,
PRIMARY KEY (servicetagid)
) ENGINE=InnoDB;
CREATE INDEX `service_tag_1` ON `service_tag` (`serviceid`);
CREATE TABLE `service_status_rule` (
`service_status_ruleid` bigint unsigned NOT NULL,
`serviceid` bigint unsigned NOT NULL,
`type` integer DEFAULT '0' NOT NULL,
`limit_value` integer DEFAULT '0' NOT NULL,
`limit_status` integer DEFAULT '0' NOT NULL,
`new_status` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (service_status_ruleid)
) ENGINE=InnoDB;
CREATE INDEX `service_status_rule_1` ON `service_status_rule` (`serviceid`);
CREATE TABLE `ha_node` (
`ha_nodeid` varchar(25) NOT NULL,
`name` varchar(255) DEFAULT '' NOT NULL,
`address` varchar(255) DEFAULT '' NOT NULL,
`port` integer DEFAULT '10051' NOT NULL,
`lastaccess` integer DEFAULT '0' NOT NULL,
`status` integer DEFAULT '0' NOT NULL,
`ha_sessionid` varchar(25) DEFAULT '' NOT NULL,
PRIMARY KEY (ha_nodeid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `ha_node_1` ON `ha_node` (`name`);
CREATE INDEX `ha_node_2` ON `ha_node` (`status`,`lastaccess`);
CREATE TABLE `sla` (
`slaid` bigint unsigned NOT NULL,
`name` varchar(255) DEFAULT '' NOT NULL,
`period` integer DEFAULT '0' NOT NULL,
`slo` DOUBLE PRECISION DEFAULT '99.9' NOT NULL,
`effective_date` integer DEFAULT '0' NOT NULL,
`timezone` varchar(50) DEFAULT 'UTC' NOT NULL,
`status` integer DEFAULT '1' NOT NULL,
`description` text NOT NULL,
PRIMARY KEY (slaid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `sla_1` ON `sla` (`name`);
CREATE TABLE `sla_schedule` (
`sla_scheduleid` bigint unsigned NOT NULL,
`slaid` bigint unsigned NOT NULL,
`period_from` integer DEFAULT '0' NOT NULL,
`period_to` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (sla_scheduleid)
) ENGINE=InnoDB;
CREATE INDEX `sla_schedule_1` ON `sla_schedule` (`slaid`);
CREATE TABLE `sla_excluded_downtime` (
`sla_excluded_downtimeid` bigint unsigned NOT NULL,
`slaid` bigint unsigned NOT NULL,
`name` varchar(255) DEFAULT '' NOT NULL,
`period_from` integer DEFAULT '0' NOT NULL,
`period_to` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (sla_excluded_downtimeid)
) ENGINE=InnoDB;
CREATE INDEX `sla_excluded_downtime_1` ON `sla_excluded_downtime` (`slaid`);
CREATE TABLE `sla_service_tag` (
`sla_service_tagid` bigint unsigned NOT NULL,
`slaid` bigint unsigned NOT NULL,
`tag` varchar(255) DEFAULT '' NOT NULL,
`operator` integer DEFAULT '0' NOT NULL,
`value` varchar(255) DEFAULT '' NOT NULL,
PRIMARY KEY (sla_service_tagid)
) ENGINE=InnoDB;
CREATE INDEX `sla_service_tag_1` ON `sla_service_tag` (`slaid`);
CREATE TABLE `host_rtdata` (
`hostid` bigint unsigned NOT NULL,
`active_available` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (hostid)
) ENGINE=InnoDB;
CREATE TABLE `userdirectory` (
`userdirectoryid` bigint unsigned NOT NULL,
`name` varchar(128) DEFAULT '' NOT NULL,
`description` text NOT NULL,
`idp_type` integer DEFAULT '1' NOT NULL,
`provision_status` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (userdirectoryid)
) ENGINE=InnoDB;
CREATE INDEX `userdirectory_1` ON `userdirectory` (`idp_type`);
CREATE TABLE `userdirectory_ldap` (
`userdirectoryid` bigint unsigned NOT NULL,
`host` varchar(255) DEFAULT '' NOT NULL,
`port` integer DEFAULT '389' NOT NULL,
`base_dn` varchar(255) DEFAULT '' NOT NULL,
`search_attribute` varchar(128) DEFAULT '' NOT NULL,
`bind_dn` varchar(255) DEFAULT '' NOT NULL,
`bind_password` varchar(128) DEFAULT '' NOT NULL,
`start_tls` integer DEFAULT '0' NOT NULL,
`search_filter` varchar(255) DEFAULT '' NOT NULL,
`group_basedn` varchar(255) DEFAULT '' NOT NULL,
`group_name` varchar(255) DEFAULT '' NOT NULL,
`group_member` varchar(255) DEFAULT '' NOT NULL,
`user_ref_attr` varchar(255) DEFAULT '' NOT NULL,
`group_filter` varchar(255) DEFAULT '' NOT NULL,
`group_membership` varchar(255) DEFAULT '' NOT NULL,
`user_username` varchar(255) DEFAULT '' NOT NULL,
`user_lastname` varchar(255) DEFAULT '' NOT NULL,
PRIMARY KEY (userdirectoryid)
) ENGINE=InnoDB;
CREATE TABLE `userdirectory_saml` (
`userdirectoryid` bigint unsigned NOT NULL,
`idp_entityid` varchar(1024) DEFAULT '' NOT NULL,
`sso_url` varchar(2048) DEFAULT '' NOT NULL,
`slo_url` varchar(2048) DEFAULT '' NOT NULL,
`username_attribute` varchar(128) DEFAULT '' NOT NULL,
`sp_entityid` varchar(1024) DEFAULT '' NOT NULL,
`nameid_format` varchar(2048) DEFAULT '' NOT NULL,
`sign_messages` integer DEFAULT '0' NOT NULL,
`sign_assertions` integer DEFAULT '0' NOT NULL,
`sign_authn_requests` integer DEFAULT '0' NOT NULL,
`sign_logout_requests` integer DEFAULT '0' NOT NULL,
`sign_logout_responses` integer DEFAULT '0' NOT NULL,
`encrypt_nameid` integer DEFAULT '0' NOT NULL,
`encrypt_assertions` integer DEFAULT '0' NOT NULL,
`group_name` varchar(255) DEFAULT '' NOT NULL,
`user_username` varchar(255) DEFAULT '' NOT NULL,
`user_lastname` varchar(255) DEFAULT '' NOT NULL,
`scim_status` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (userdirectoryid)
) ENGINE=InnoDB;
CREATE TABLE `userdirectory_media` (
`userdirectory_mediaid` bigint unsigned NOT NULL,
`userdirectoryid` bigint unsigned NOT NULL,
`mediatypeid` bigint unsigned NOT NULL,
`name` varchar(64) DEFAULT '' NOT NULL,
`attribute` varchar(255) DEFAULT '' NOT NULL,
`active` integer DEFAULT '0' NOT NULL,
`severity` integer DEFAULT '63' NOT NULL,
`period` varchar(1024) DEFAULT '1-7,00:00-24:00' NOT NULL,
PRIMARY KEY (userdirectory_mediaid)
) ENGINE=InnoDB;
CREATE INDEX `userdirectory_media_1` ON `userdirectory_media` (`userdirectoryid`);
CREATE INDEX `userdirectory_media_2` ON `userdirectory_media` (`mediatypeid`);
CREATE TABLE `userdirectory_usrgrp` (
`userdirectory_usrgrpid` bigint unsigned NOT NULL,
`userdirectory_idpgroupid` bigint unsigned NOT NULL,
`usrgrpid` bigint unsigned NOT NULL,
PRIMARY KEY (userdirectory_usrgrpid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `userdirectory_usrgrp_1` ON `userdirectory_usrgrp` (`userdirectory_idpgroupid`,`usrgrpid`);
CREATE INDEX `userdirectory_usrgrp_2` ON `userdirectory_usrgrp` (`usrgrpid`);
CREATE TABLE `userdirectory_idpgroup` (
`userdirectory_idpgroupid` bigint unsigned NOT NULL,
`userdirectoryid` bigint unsigned NOT NULL,
`roleid` bigint unsigned NOT NULL,
`name` varchar(255) DEFAULT '' NOT NULL,
PRIMARY KEY (userdirectory_idpgroupid)
) ENGINE=InnoDB;
CREATE INDEX `userdirectory_idpgroup_1` ON `userdirectory_idpgroup` (`userdirectoryid`);
CREATE INDEX `userdirectory_idpgroup_2` ON `userdirectory_idpgroup` (`roleid`);
CREATE TABLE `changelog` (
`changelogid` bigint unsigned NOT NULL auto_increment,
`object` integer DEFAULT '0' NOT NULL,
`objectid` bigint unsigned NOT NULL,
`operation` integer DEFAULT '0' NOT NULL,
`clock` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (changelogid)
) ENGINE=InnoDB;
CREATE INDEX `changelog_1` ON `changelog` (`clock`);
CREATE TABLE `scim_group` (
`scim_groupid` bigint unsigned NOT NULL,
`name` varchar(64) DEFAULT '' NOT NULL,
PRIMARY KEY (scim_groupid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `scim_group_1` ON `scim_group` (`name`);
CREATE TABLE `user_scim_group` (
`user_scim_groupid` bigint unsigned NOT NULL,
`userid` bigint unsigned NOT NULL,
`scim_groupid` bigint unsigned NOT NULL,
PRIMARY KEY (user_scim_groupid)
) ENGINE=InnoDB;
CREATE INDEX `user_scim_group_1` ON `user_scim_group` (`userid`);
CREATE INDEX `user_scim_group_2` ON `user_scim_group` (`scim_groupid`);
CREATE TABLE `connector` (
`connectorid` bigint unsigned NOT NULL,
`name` varchar(255) DEFAULT '' NOT NULL,
`protocol` integer DEFAULT '0' NOT NULL,
`data_type` integer DEFAULT '0' NOT NULL,
`url` varchar(2048) DEFAULT '' NOT NULL,
`max_records` integer DEFAULT '0' NOT NULL,
`max_senders` integer DEFAULT '1' NOT NULL,
`max_attempts` integer DEFAULT '1' NOT NULL,
`timeout` varchar(255) DEFAULT '5s' NOT NULL,
`http_proxy` varchar(255) DEFAULT '' NOT NULL,
`authtype` integer DEFAULT '0' NOT NULL,
`username` varchar(255) DEFAULT '' NOT NULL,
`password` varchar(255) DEFAULT '' NOT NULL,
`token` varchar(128) DEFAULT '' NOT NULL,
`verify_peer` integer DEFAULT '1' NOT NULL,
`verify_host` integer DEFAULT '1' NOT NULL,
`ssl_cert_file` varchar(255) DEFAULT '' NOT NULL,
`ssl_key_file` varchar(255) DEFAULT '' NOT NULL,
`ssl_key_password` varchar(64) DEFAULT '' NOT NULL,
`description` text NOT NULL,
`status` integer DEFAULT '1' NOT NULL,
`tags_evaltype` integer DEFAULT '0' NOT NULL,
`item_value_type` integer DEFAULT '31' NOT NULL,
`attempt_interval` varchar(32) DEFAULT '5s' NOT NULL,
PRIMARY KEY (connectorid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `connector_1` ON `connector` (`name`);
CREATE TABLE `connector_tag` (
`connector_tagid` bigint unsigned NOT NULL,
`connectorid` bigint unsigned NOT NULL,
`tag` varchar(255) DEFAULT '' NOT NULL,
`operator` integer DEFAULT '0' NOT NULL,
`value` varchar(255) DEFAULT '' NOT NULL,
PRIMARY KEY (connector_tagid)
) ENGINE=InnoDB;
CREATE INDEX `connector_tag_1` ON `connector_tag` (`connectorid`);
CREATE TABLE `proxy` (
`proxyid` bigint unsigned NOT NULL,
`name` varchar(128) DEFAULT '' NOT NULL,
`operating_mode` integer DEFAULT '0' NOT NULL,
`description` text NOT NULL,
`tls_connect` integer DEFAULT '1' NOT NULL,
`tls_accept` integer DEFAULT '1' NOT NULL,
`tls_issuer` varchar(1024) DEFAULT '' NOT NULL,
`tls_subject` varchar(1024) DEFAULT '' NOT NULL,
`tls_psk_identity` varchar(128) DEFAULT '' NOT NULL,
`tls_psk` varchar(512) DEFAULT '' NOT NULL,
`allowed_addresses` varchar(255) DEFAULT '' NOT NULL,
`address` varchar(255) DEFAULT '127.0.0.1' NOT NULL,
`port` varchar(64) DEFAULT '10051' NOT NULL,
`custom_timeouts` integer DEFAULT '0' NOT NULL,
`timeout_zabbix_agent` varchar(255) DEFAULT '' NOT NULL,
`timeout_simple_check` varchar(255) DEFAULT '' NOT NULL,
`timeout_snmp_agent` varchar(255) DEFAULT '' NOT NULL,
`timeout_external_check` varchar(255) DEFAULT '' NOT NULL,
`timeout_db_monitor` varchar(255) DEFAULT '' NOT NULL,
`timeout_http_agent` varchar(255) DEFAULT '' NOT NULL,
`timeout_ssh_agent` varchar(255) DEFAULT '' NOT NULL,
`timeout_telnet_agent` varchar(255) DEFAULT '' NOT NULL,
`timeout_script` varchar(255) DEFAULT '' NOT NULL,
`local_address` varchar(255) DEFAULT '' NOT NULL,
`local_port` varchar(64) DEFAULT '10051' NOT NULL,
`proxy_groupid` bigint unsigned NULL,
`timeout_browser` varchar(255) DEFAULT '' NOT NULL,
PRIMARY KEY (proxyid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `proxy_1` ON `proxy` (`name`);
CREATE INDEX `proxy_2` ON `proxy` (`proxy_groupid`);
CREATE TABLE `proxy_rtdata` (
`proxyid` bigint unsigned NOT NULL,
`lastaccess` integer DEFAULT '0' NOT NULL,
`version` integer DEFAULT '0' NOT NULL,
`compatibility` integer DEFAULT '0' NOT NULL,
`state` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (proxyid)
) ENGINE=InnoDB;
CREATE TABLE `proxy_group` (
`proxy_groupid` bigint unsigned NOT NULL,
`name` varchar(255) DEFAULT '' NOT NULL,
`description` text NOT NULL,
`failover_delay` varchar(255) DEFAULT '1m' NOT NULL,
`min_online` varchar(255) DEFAULT '1' NOT NULL,
PRIMARY KEY (proxy_groupid)
) ENGINE=InnoDB;
CREATE TABLE `proxy_group_rtdata` (
`proxy_groupid` bigint unsigned NOT NULL,
`state` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (proxy_groupid)
) ENGINE=InnoDB;
CREATE TABLE `host_proxy` (
`hostproxyid` bigint unsigned NOT NULL,
`hostid` bigint unsigned NULL,
`host` varchar(128) DEFAULT '' NOT NULL,
`proxyid` bigint unsigned NULL,
`revision` bigint unsigned DEFAULT '0' NOT NULL,
`tls_accept` integer DEFAULT '1' NOT NULL,
`tls_issuer` varchar(1024) DEFAULT '' NOT NULL,
`tls_subject` varchar(1024) DEFAULT '' NOT NULL,
`tls_psk_identity` varchar(128) DEFAULT '' NOT NULL,
`tls_psk` varchar(512) DEFAULT '' NOT NULL,
PRIMARY KEY (hostproxyid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `host_proxy_1` ON `host_proxy` (`hostid`);
CREATE INDEX `host_proxy_2` ON `host_proxy` (`proxyid`);
CREATE INDEX `host_proxy_3` ON `host_proxy` (`revision`);
CREATE TABLE `mfa` (
`mfaid` bigint unsigned NOT NULL,
`type` integer DEFAULT '0' NOT NULL,
`name` varchar(128) DEFAULT '' NOT NULL,
`hash_function` integer DEFAULT '1' NULL,
`code_length` integer DEFAULT '6' NULL,
`api_hostname` varchar(1024) DEFAULT '' NULL,
`clientid` varchar(32) DEFAULT '' NULL,
`client_secret` varchar(64) DEFAULT '' NULL,
PRIMARY KEY (mfaid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `mfa_1` ON `mfa` (`name`);
CREATE TABLE `mfa_totp_secret` (
`mfa_totp_secretid` bigint unsigned NOT NULL,
`mfaid` bigint unsigned NOT NULL,
`userid` bigint unsigned NOT NULL,
`totp_secret` varchar(32) DEFAULT '' NULL,
`status` integer DEFAULT '0' NOT NULL,
`used_codes` varchar(32) DEFAULT '' NOT NULL,
PRIMARY KEY (mfa_totp_secretid)
) ENGINE=InnoDB;
CREATE INDEX `mfa_totp_secret_1` ON `mfa_totp_secret` (`mfaid`);
CREATE INDEX `mfa_totp_secret_2` ON `mfa_totp_secret` (`userid`);
CREATE TABLE `settings` (
`name` varchar(255) NOT NULL,
`type` integer NOT NULL,
`value_str` text NOT NULL,
`value_int` integer DEFAULT '0' NOT NULL,
`value_usrgrpid` bigint unsigned NULL,
`value_hostgroupid` bigint unsigned NULL,
`value_userdirectoryid` bigint unsigned NULL,
`value_mfaid` bigint unsigned NULL,
PRIMARY KEY (name)
) ENGINE=InnoDB;
CREATE INDEX `settings_2` ON `settings` (`value_usrgrpid`);
CREATE INDEX `settings_3` ON `settings` (`value_hostgroupid`);
CREATE INDEX `settings_4` ON `settings` (`value_userdirectoryid`);
CREATE INDEX `settings_5` ON `settings` (`value_mfaid`);
CREATE TABLE `lld_macro_export` (
`lld_macro_exportid` bigint unsigned NOT NULL,
`itemid` bigint unsigned NOT NULL,
`lld_macro` varchar(255) DEFAULT '' NOT NULL,
`value` text NOT NULL,
PRIMARY KEY (lld_macro_exportid)
) ENGINE=InnoDB;
CREATE INDEX `lld_macro_export_1` ON `lld_macro_export` (`itemid`);
CREATE TABLE `dbversion` (
`dbversionid` bigint unsigned NOT NULL,
`mandatory` integer DEFAULT '0' NOT NULL,
`optional` integer DEFAULT '0' NOT NULL,
PRIMARY KEY (dbversionid)
) ENGINE=InnoDB;
INSERT INTO dbversion VALUES ('1','7040000','7040000');
DELIMITER $$
create trigger hosts_insert after insert on hosts
for each row
insert into changelog (object,objectid,operation,clock)
values (1,new.hostid,1,unix_timestamp());
$$
create trigger hosts_update after update on hosts
for each row
insert into changelog (object,objectid,operation,clock)
values (1,old.hostid,2,unix_timestamp());
$$
create trigger hosts_delete before delete on hosts
for each row
insert into changelog (object,objectid,operation,clock)
values (1,old.hostid,3,unix_timestamp());
$$
create trigger hosts_name_upper_insert
before insert on hosts for each row
set new.name_upper=upper(new.name)
$$
create trigger hosts_name_upper_update
before update on hosts for each row
begin
if new.name<>old.name
then
set new.name_upper=upper(new.name);
end if;
end;$$
create trigger drules_insert after insert on drules
for each row
insert into changelog (object,objectid,operation,clock)
values (9,new.druleid,1,unix_timestamp());
$$
create trigger drules_update after update on drules
for each row
insert into changelog (object,objectid,operation,clock)
values (9,old.druleid,2,unix_timestamp());
$$
create trigger drules_delete before delete on drules
for each row
insert into changelog (object,objectid,operation,clock)
values (9,old.druleid,3,unix_timestamp());
$$
create trigger dchecks_insert after insert on dchecks
for each row
insert into changelog (object,objectid,operation,clock)
values (10,new.dcheckid,1,unix_timestamp());
$$
create trigger dchecks_update after update on dchecks
for each row
insert into changelog (object,objectid,operation,clock)
values (10,old.dcheckid,2,unix_timestamp());
$$
create trigger dchecks_delete before delete on dchecks
for each row
insert into changelog (object,objectid,operation,clock)
values (10,old.dcheckid,3,unix_timestamp());
$$
create trigger httptest_insert after insert on httptest
for each row
insert into changelog (object,objectid,operation,clock)
values (11,new.httptestid,1,unix_timestamp());
$$
create trigger httptest_update after update on httptest
for each row
insert into changelog (object,objectid,operation,clock)
values (11,old.httptestid,2,unix_timestamp());
$$
create trigger httptest_delete before delete on httptest
for each row
insert into changelog (object,objectid,operation,clock)
values (11,old.httptestid,3,unix_timestamp());
$$
create trigger httpstep_insert after insert on httpstep
for each row
insert into changelog (object,objectid,operation,clock)
values (14,new.httpstepid,1,unix_timestamp());
$$
create trigger httpstep_update after update on httpstep
for each row
insert into changelog (object,objectid,operation,clock)
values (14,old.httpstepid,2,unix_timestamp());
$$
create trigger httpstep_delete before delete on httpstep
for each row
insert into changelog (object,objectid,operation,clock)
values (14,old.httpstepid,3,unix_timestamp());
$$
create trigger items_insert after insert on items
for each row
insert into changelog (object,objectid,operation,clock)
values (3,new.itemid,1,unix_timestamp());
$$
create trigger items_update after update on items
for each row
insert into changelog (object,objectid,operation,clock)
values (3,old.itemid,2,unix_timestamp());
$$
create trigger items_delete before delete on items
for each row
insert into changelog (object,objectid,operation,clock)
values (3,old.itemid,3,unix_timestamp());
$$
create trigger httpstepitem_insert after insert on httpstepitem
for each row
insert into changelog (object,objectid,operation,clock)
values (16,new.httpstepitemid,1,unix_timestamp());
$$
create trigger httpstepitem_update after update on httpstepitem
for each row
insert into changelog (object,objectid,operation,clock)
values (16,old.httpstepitemid,2,unix_timestamp());
$$
create trigger httpstepitem_delete before delete on httpstepitem
for each row
insert into changelog (object,objectid,operation,clock)
values (16,old.httpstepitemid,3,unix_timestamp());
$$
create trigger httptestitem_insert after insert on httptestitem
for each row
insert into changelog (object,objectid,operation,clock)
values (13,new.httptestitemid,1,unix_timestamp());
$$
create trigger httptestitem_update after update on httptestitem
for each row
insert into changelog (object,objectid,operation,clock)
values (13,old.httptestitemid,2,unix_timestamp());
$$
create trigger httptestitem_delete before delete on httptestitem
for each row
insert into changelog (object,objectid,operation,clock)
values (13,old.httptestitemid,3,unix_timestamp());
$$
create trigger triggers_insert after insert on triggers
for each row
insert into changelog (object,objectid,operation,clock)
values (5,new.triggerid,1,unix_timestamp());
$$
create trigger triggers_update after update on triggers
for each row
insert into changelog (object,objectid,operation,clock)
values (5,old.triggerid,2,unix_timestamp());
$$
create trigger triggers_delete before delete on triggers
for each row
insert into changelog (object,objectid,operation,clock)
values (5,old.triggerid,3,unix_timestamp());
$$
create trigger functions_insert after insert on functions
for each row
insert into changelog (object,objectid,operation,clock)
values (7,new.functionid,1,unix_timestamp());
$$
create trigger functions_update after update on functions
for each row
insert into changelog (object,objectid,operation,clock)
values (7,old.functionid,2,unix_timestamp());
$$
create trigger functions_delete before delete on functions
for each row
insert into changelog (object,objectid,operation,clock)
values (7,old.functionid,3,unix_timestamp());
$$
create trigger trigger_tag_insert after insert on trigger_tag
for each row
insert into changelog (object,objectid,operation,clock)
values (6,new.triggertagid,1,unix_timestamp());
$$
create trigger trigger_tag_update after update on trigger_tag
for each row
insert into changelog (object,objectid,operation,clock)
values (6,old.triggertagid,2,unix_timestamp());
$$
create trigger trigger_tag_delete before delete on trigger_tag
for each row
insert into changelog (object,objectid,operation,clock)
values (6,old.triggertagid,3,unix_timestamp());
$$
create trigger item_preproc_insert after insert on item_preproc
for each row
insert into changelog (object,objectid,operation,clock)
values (8,new.item_preprocid,1,unix_timestamp());
$$
create trigger item_preproc_update after update on item_preproc
for each row
insert into changelog (object,objectid,operation,clock)
values (8,old.item_preprocid,2,unix_timestamp());
$$
create trigger item_preproc_delete before delete on item_preproc
for each row
insert into changelog (object,objectid,operation,clock)
values (8,old.item_preprocid,3,unix_timestamp());
$$
create trigger httptest_field_insert after insert on httptest_field
for each row
insert into changelog (object,objectid,operation,clock)
values (12,new.httptest_fieldid,1,unix_timestamp());
$$
create trigger httptest_field_update after update on httptest_field
for each row
insert into changelog (object,objectid,operation,clock)
values (12,old.httptest_fieldid,2,unix_timestamp());
$$
create trigger httptest_field_delete before delete on httptest_field
for each row
insert into changelog (object,objectid,operation,clock)
values (12,old.httptest_fieldid,3,unix_timestamp());
$$
create trigger httpstep_field_insert after insert on httpstep_field
for each row
insert into changelog (object,objectid,operation,clock)
values (15,new.httpstep_fieldid,1,unix_timestamp());
$$
create trigger httpstep_field_update after update on httpstep_field
for each row
insert into changelog (object,objectid,operation,clock)
values (15,old.httpstep_fieldid,2,unix_timestamp());
$$
create trigger httpstep_field_delete before delete on httpstep_field
for each row
insert into changelog (object,objectid,operation,clock)
values (15,old.httpstep_fieldid,3,unix_timestamp());
$$
create trigger host_tag_insert after insert on host_tag
for each row
insert into changelog (object,objectid,operation,clock)
values (2,new.hosttagid,1,unix_timestamp());
$$
create trigger host_tag_update after update on host_tag
for each row
insert into changelog (object,objectid,operation,clock)
values (2,old.hosttagid,2,unix_timestamp());
$$
create trigger host_tag_delete before delete on host_tag
for each row
insert into changelog (object,objectid,operation,clock)
values (2,old.hosttagid,3,unix_timestamp());
$$
create trigger item_tag_insert after insert on item_tag
for each row
insert into changelog (object,objectid,operation,clock)
values (4,new.itemtagid,1,unix_timestamp());
$$
create trigger item_tag_update after update on item_tag
for each row
insert into changelog (object,objectid,operation,clock)
values (4,old.itemtagid,2,unix_timestamp());
$$
create trigger item_tag_delete before delete on item_tag
for each row
insert into changelog (object,objectid,operation,clock)
values (4,old.itemtagid,3,unix_timestamp());
$$
create trigger connector_insert after insert on connector
for each row
insert into changelog (object,objectid,operation,clock)
values (17,new.connectorid,1,unix_timestamp());
$$
create trigger connector_update after update on connector
for each row
insert into changelog (object,objectid,operation,clock)
values (17,old.connectorid,2,unix_timestamp());
$$
create trigger connector_delete before delete on connector
for each row
insert into changelog (object,objectid,operation,clock)
values (17,old.connectorid,3,unix_timestamp());
$$
create trigger connector_tag_insert after insert on connector_tag
for each row
insert into changelog (object,objectid,operation,clock)
values (18,new.connector_tagid,1,unix_timestamp());
$$
create trigger connector_tag_update after update on connector_tag
for each row
insert into changelog (object,objectid,operation,clock)
values (18,old.connector_tagid,2,unix_timestamp());
$$
create trigger connector_tag_delete before delete on connector_tag
for each row
insert into changelog (object,objectid,operation,clock)
values (18,old.connector_tagid,3,unix_timestamp());
$$
create trigger proxy_insert after insert on proxy
for each row
insert into changelog (object,objectid,operation,clock)
values (19,new.proxyid,1,unix_timestamp());
$$
create trigger proxy_update after update on proxy
for each row
insert into changelog (object,objectid,operation,clock)
values (19,old.proxyid,2,unix_timestamp());
$$
create trigger proxy_delete before delete on proxy
for each row
insert into changelog (object,objectid,operation,clock)
values (19,old.proxyid,3,unix_timestamp());
$$
create trigger proxy_group_insert after insert on proxy_group
for each row
insert into changelog (object,objectid,operation,clock)
values (20,new.proxy_groupid,1,unix_timestamp());
$$
create trigger proxy_group_update after update on proxy_group
for each row
insert into changelog (object,objectid,operation,clock)
values (20,old.proxy_groupid,2,unix_timestamp());
$$
create trigger proxy_group_delete before delete on proxy_group
for each row
insert into changelog (object,objectid,operation,clock)
values (20,old.proxy_groupid,3,unix_timestamp());
$$
create trigger host_proxy_insert after insert on host_proxy
for each row
insert into changelog (object,objectid,operation,clock)
values (21,new.hostproxyid,1,unix_timestamp());
$$
create trigger host_proxy_update after update on host_proxy
for each row
insert into changelog (object,objectid,operation,clock)
values (21,old.hostproxyid,2,unix_timestamp());
$$
create trigger host_proxy_delete before delete on host_proxy
for each row
insert into changelog (object,objectid,operation,clock)
values (21,old.hostproxyid,3,unix_timestamp());
$$
DELIMITER ;
ALTER TABLE `users` ADD CONSTRAINT `c_users_1` FOREIGN KEY (`roleid`) REFERENCES `role` (`roleid`) ON DELETE CASCADE;
ALTER TABLE `users` ADD CONSTRAINT `c_users_2` FOREIGN KEY (`userdirectoryid`) REFERENCES `userdirectory` (`userdirectoryid`);
ALTER TABLE `hosts` ADD CONSTRAINT `c_hosts_1` FOREIGN KEY (`proxyid`) REFERENCES `proxy` (`proxyid`);
ALTER TABLE `hosts` ADD CONSTRAINT `c_hosts_2` FOREIGN KEY (`maintenanceid`) REFERENCES `maintenances` (`maintenanceid`);
ALTER TABLE `hosts` ADD CONSTRAINT `c_hosts_3` FOREIGN KEY (`templateid`) REFERENCES `hosts` (`hostid`);
ALTER TABLE `hosts` ADD CONSTRAINT `c_hosts_4` FOREIGN KEY (`proxy_groupid`) REFERENCES `proxy_group` (`proxy_groupid`);
ALTER TABLE `hgset_group` ADD CONSTRAINT `c_hgset_group_1` FOREIGN KEY (`hgsetid`) REFERENCES `hgset` (`hgsetid`) ON DELETE CASCADE;
ALTER TABLE `hgset_group` ADD CONSTRAINT `c_hgset_group_2` FOREIGN KEY (`groupid`) REFERENCES `hstgrp` (`groupid`);
ALTER TABLE `host_hgset` ADD CONSTRAINT `c_host_hgset_1` FOREIGN KEY (`hostid`) REFERENCES `hosts` (`hostid`) ON DELETE CASCADE;
ALTER TABLE `host_hgset` ADD CONSTRAINT `c_host_hgset_2` FOREIGN KEY (`hgsetid`) REFERENCES `hgset` (`hgsetid`);
ALTER TABLE `group_prototype` ADD CONSTRAINT `c_group_prototype_1` FOREIGN KEY (`hostid`) REFERENCES `hosts` (`hostid`) ON DELETE CASCADE;
ALTER TABLE `group_prototype` ADD CONSTRAINT `c_group_prototype_2` FOREIGN KEY (`groupid`) REFERENCES `hstgrp` (`groupid`);
ALTER TABLE `group_prototype` ADD CONSTRAINT `c_group_prototype_3` FOREIGN KEY (`templateid`) REFERENCES `group_prototype` (`group_prototypeid`) ON DELETE CASCADE;
ALTER TABLE `group_discovery` ADD CONSTRAINT `c_group_discovery_1` FOREIGN KEY (`groupid`) REFERENCES `hstgrp` (`groupid`) ON DELETE CASCADE;
ALTER TABLE `group_discovery` ADD CONSTRAINT `c_group_discovery_2` FOREIGN KEY (`parent_group_prototypeid`) REFERENCES `group_prototype` (`group_prototypeid`);
ALTER TABLE `drules` ADD CONSTRAINT `c_drules_1` FOREIGN KEY (`proxyid`) REFERENCES `proxy` (`proxyid`);
ALTER TABLE `dchecks` ADD CONSTRAINT `c_dchecks_1` FOREIGN KEY (`druleid`) REFERENCES `drules` (`druleid`);
ALTER TABLE `httptest` ADD CONSTRAINT `c_httptest_2` FOREIGN KEY (`hostid`) REFERENCES `hosts` (`hostid`);
ALTER TABLE `httptest` ADD CONSTRAINT `c_httptest_3` FOREIGN KEY (`templateid`) REFERENCES `httptest` (`httptestid`);
ALTER TABLE `httpstep` ADD CONSTRAINT `c_httpstep_1` FOREIGN KEY (`httptestid`) REFERENCES `httptest` (`httptestid`);
ALTER TABLE `interface` ADD CONSTRAINT `c_interface_1` FOREIGN KEY (`hostid`) REFERENCES `hosts` (`hostid`) ON DELETE CASCADE;
ALTER TABLE `valuemap` ADD CONSTRAINT `c_valuemap_1` FOREIGN KEY (`hostid`) REFERENCES `hosts` (`hostid`) ON DELETE CASCADE;
ALTER TABLE `items` ADD CONSTRAINT `c_items_1` FOREIGN KEY (`hostid`) REFERENCES `hosts` (`hostid`);
ALTER TABLE `items` ADD CONSTRAINT `c_items_2` FOREIGN KEY (`templateid`) REFERENCES `items` (`itemid`);
ALTER TABLE `items` ADD CONSTRAINT `c_items_3` FOREIGN KEY (`valuemapid`) REFERENCES `valuemap` (`valuemapid`);
ALTER TABLE `items` ADD CONSTRAINT `c_items_4` FOREIGN KEY (`interfaceid`) REFERENCES `interface` (`interfaceid`);
ALTER TABLE `items` ADD CONSTRAINT `c_items_5` FOREIGN KEY (`master_itemid`) REFERENCES `items` (`itemid`);
ALTER TABLE `httpstepitem` ADD CONSTRAINT `c_httpstepitem_1` FOREIGN KEY (`httpstepid`) REFERENCES `httpstep` (`httpstepid`);
ALTER TABLE `httpstepitem` ADD CONSTRAINT `c_httpstepitem_2` FOREIGN KEY (`itemid`) REFERENCES `items` (`itemid`);
ALTER TABLE `httptestitem` ADD CONSTRAINT `c_httptestitem_1` FOREIGN KEY (`httptestid`) REFERENCES `httptest` (`httptestid`);
ALTER TABLE `httptestitem` ADD CONSTRAINT `c_httptestitem_2` FOREIGN KEY (`itemid`) REFERENCES `items` (`itemid`);
ALTER TABLE `media_type_oauth` ADD CONSTRAINT `c_media_type_oauth_1` FOREIGN KEY (`mediatypeid`) REFERENCES `media_type` (`mediatypeid`) ON DELETE CASCADE;
ALTER TABLE `media_type_param` ADD CONSTRAINT `c_media_type_param_1` FOREIGN KEY (`mediatypeid`) REFERENCES `media_type` (`mediatypeid`) ON DELETE CASCADE;
ALTER TABLE `media_type_message` ADD CONSTRAINT `c_media_type_message_1` FOREIGN KEY (`mediatypeid`) REFERENCES `media_type` (`mediatypeid`) ON DELETE CASCADE;
ALTER TABLE `usrgrp` ADD CONSTRAINT `c_usrgrp_2` FOREIGN KEY (`userdirectoryid`) REFERENCES `userdirectory` (`userdirectoryid`);
ALTER TABLE `usrgrp` ADD CONSTRAINT `c_usrgrp_3` FOREIGN KEY (`mfaid`) REFERENCES `mfa` (`mfaid`);
ALTER TABLE `users_groups` ADD CONSTRAINT `c_users_groups_1` FOREIGN KEY (`usrgrpid`) REFERENCES `usrgrp` (`usrgrpid`) ON DELETE CASCADE;
ALTER TABLE `users_groups` ADD CONSTRAINT `c_users_groups_2` FOREIGN KEY (`userid`) REFERENCES `users` (`userid`) ON DELETE CASCADE;
ALTER TABLE `ugset_group` ADD CONSTRAINT `c_ugset_group_1` FOREIGN KEY (`ugsetid`) REFERENCES `ugset` (`ugsetid`) ON DELETE CASCADE;
ALTER TABLE `ugset_group` ADD CONSTRAINT `c_ugset_group_2` FOREIGN KEY (`usrgrpid`) REFERENCES `usrgrp` (`usrgrpid`);
ALTER TABLE `user_ugset` ADD CONSTRAINT `c_user_ugset_1` FOREIGN KEY (`userid`) REFERENCES `users` (`userid`) ON DELETE CASCADE;
ALTER TABLE `user_ugset` ADD CONSTRAINT `c_user_ugset_2` FOREIGN KEY (`ugsetid`) REFERENCES `ugset` (`ugsetid`);
ALTER TABLE `scripts` ADD CONSTRAINT `c_scripts_1` FOREIGN KEY (`usrgrpid`) REFERENCES `usrgrp` (`usrgrpid`);
ALTER TABLE `scripts` ADD CONSTRAINT `c_scripts_2` FOREIGN KEY (`groupid`) REFERENCES `hstgrp` (`groupid`);
ALTER TABLE `script_param` ADD CONSTRAINT `c_script_param_1` FOREIGN KEY (`scriptid`) REFERENCES `scripts` (`scriptid`) ON DELETE CASCADE;
ALTER TABLE `operations` ADD CONSTRAINT `c_operations_1` FOREIGN KEY (`actionid`) REFERENCES `actions` (`actionid`) ON DELETE CASCADE;
ALTER TABLE `optag` ADD CONSTRAINT `c_optag_1` FOREIGN KEY (`operationid`) REFERENCES `operations` (`operationid`) ON DELETE CASCADE;
ALTER TABLE `opmessage` ADD CONSTRAINT `c_opmessage_1` FOREIGN KEY (`operationid`) REFERENCES `operations` (`operationid`) ON DELETE CASCADE;
ALTER TABLE `opmessage` ADD CONSTRAINT `c_opmessage_2` FOREIGN KEY (`mediatypeid`) REFERENCES `media_type` (`mediatypeid`);
ALTER TABLE `opmessage_grp` ADD CONSTRAINT `c_opmessage_grp_1` FOREIGN KEY (`operationid`) REFERENCES `operations` (`operationid`) ON DELETE CASCADE;
ALTER TABLE `opmessage_grp` ADD CONSTRAINT `c_opmessage_grp_2` FOREIGN KEY (`usrgrpid`) REFERENCES `usrgrp` (`usrgrpid`);
ALTER TABLE `opmessage_usr` ADD CONSTRAINT `c_opmessage_usr_1` FOREIGN KEY (`operationid`) REFERENCES `operations` (`operationid`) ON DELETE CASCADE;
ALTER TABLE `opmessage_usr` ADD CONSTRAINT `c_opmessage_usr_2` FOREIGN KEY (`userid`) REFERENCES `users` (`userid`);
ALTER TABLE `opcommand` ADD CONSTRAINT `c_opcommand_1` FOREIGN KEY (`operationid`) REFERENCES `operations` (`operationid`) ON DELETE CASCADE;
ALTER TABLE `opcommand` ADD CONSTRAINT `c_opcommand_2` FOREIGN KEY (`scriptid`) REFERENCES `scripts` (`scriptid`);
ALTER TABLE `opcommand_hst` ADD CONSTRAINT `c_opcommand_hst_1` FOREIGN KEY (`operationid`) REFERENCES `operations` (`operationid`) ON DELETE CASCADE;
ALTER TABLE `opcommand_hst` ADD CONSTRAINT `c_opcommand_hst_2` FOREIGN KEY (`hostid`) REFERENCES `hosts` (`hostid`);
ALTER TABLE `opcommand_grp` ADD CONSTRAINT `c_opcommand_grp_1` FOREIGN KEY (`operationid`) REFERENCES `operations` (`operationid`) ON DELETE CASCADE;
ALTER TABLE `opcommand_grp` ADD CONSTRAINT `c_opcommand_grp_2` FOREIGN KEY (`groupid`) REFERENCES `hstgrp` (`groupid`);
ALTER TABLE `opgroup` ADD CONSTRAINT `c_opgroup_1` FOREIGN KEY (`operationid`) REFERENCES `operations` (`operationid`) ON DELETE CASCADE;
ALTER TABLE `opgroup` ADD CONSTRAINT `c_opgroup_2` FOREIGN KEY (`groupid`) REFERENCES `hstgrp` (`groupid`);
ALTER TABLE `optemplate` ADD CONSTRAINT `c_optemplate_1` FOREIGN KEY (`operationid`) REFERENCES `operations` (`operationid`) ON DELETE CASCADE;
ALTER TABLE `optemplate` ADD CONSTRAINT `c_optemplate_2` FOREIGN KEY (`templateid`) REFERENCES `hosts` (`hostid`);
ALTER TABLE `opconditions` ADD CONSTRAINT `c_opconditions_1` FOREIGN KEY (`operationid`) REFERENCES `operations` (`operationid`) ON DELETE CASCADE;
ALTER TABLE `conditions` ADD CONSTRAINT `c_conditions_1` FOREIGN KEY (`actionid`) REFERENCES `actions` (`actionid`) ON DELETE CASCADE;
ALTER TABLE `triggers` ADD CONSTRAINT `c_triggers_1` FOREIGN KEY (`templateid`) REFERENCES `triggers` (`triggerid`);
ALTER TABLE `trigger_depends` ADD CONSTRAINT `c_trigger_depends_1` FOREIGN KEY (`triggerid_down`) REFERENCES `triggers` (`triggerid`) ON DELETE CASCADE;
ALTER TABLE `trigger_depends` ADD CONSTRAINT `c_trigger_depends_2` FOREIGN KEY (`triggerid_up`) REFERENCES `triggers` (`triggerid`) ON DELETE CASCADE;
ALTER TABLE `functions` ADD CONSTRAINT `c_functions_1` FOREIGN KEY (`itemid`) REFERENCES `items` (`itemid`);
ALTER TABLE `functions` ADD CONSTRAINT `c_functions_2` FOREIGN KEY (`triggerid`) REFERENCES `triggers` (`triggerid`);
ALTER TABLE `graphs` ADD CONSTRAINT `c_graphs_1` FOREIGN KEY (`templateid`) REFERENCES `graphs` (`graphid`) ON DELETE CASCADE;
ALTER TABLE `graphs` ADD CONSTRAINT `c_graphs_2` FOREIGN KEY (`ymin_itemid`) REFERENCES `items` (`itemid`);
ALTER TABLE `graphs` ADD CONSTRAINT `c_graphs_3` FOREIGN KEY (`ymax_itemid`) REFERENCES `items` (`itemid`);
ALTER TABLE `graphs_items` ADD CONSTRAINT `c_graphs_items_1` FOREIGN KEY (`graphid`) REFERENCES `graphs` (`graphid`) ON DELETE CASCADE;
ALTER TABLE `graphs_items` ADD CONSTRAINT `c_graphs_items_2` FOREIGN KEY (`itemid`) REFERENCES `items` (`itemid`) ON DELETE CASCADE;
ALTER TABLE `hostmacro` ADD CONSTRAINT `c_hostmacro_1` FOREIGN KEY (`hostid`) REFERENCES `hosts` (`hostid`) ON DELETE CASCADE;
ALTER TABLE `hostmacro_config` ADD CONSTRAINT `c_hostmacro_config_1` FOREIGN KEY (`hostmacroid`) REFERENCES `hostmacro` (`hostmacroid`) ON DELETE CASCADE;
ALTER TABLE `hosts_groups` ADD CONSTRAINT `c_hosts_groups_1` FOREIGN KEY (`hostid`) REFERENCES `hosts` (`hostid`) ON DELETE CASCADE;
ALTER TABLE `hosts_groups` ADD CONSTRAINT `c_hosts_groups_2` FOREIGN KEY (`groupid`) REFERENCES `hstgrp` (`groupid`) ON DELETE CASCADE;
ALTER TABLE `hosts_templates` ADD CONSTRAINT `c_hosts_templates_1` FOREIGN KEY (`hostid`) REFERENCES `hosts` (`hostid`) ON DELETE CASCADE;
ALTER TABLE `hosts_templates` ADD CONSTRAINT `c_hosts_templates_2` FOREIGN KEY (`templateid`) REFERENCES `hosts` (`hostid`) ON DELETE CASCADE;
ALTER TABLE `valuemap_mapping` ADD CONSTRAINT `c_valuemap_mapping_1` FOREIGN KEY (`valuemapid`) REFERENCES `valuemap` (`valuemapid`) ON DELETE CASCADE;
ALTER TABLE `media` ADD CONSTRAINT `c_media_1` FOREIGN KEY (`userid`) REFERENCES `users` (`userid`) ON DELETE CASCADE;
ALTER TABLE `media` ADD CONSTRAINT `c_media_2` FOREIGN KEY (`mediatypeid`) REFERENCES `media_type` (`mediatypeid`) ON DELETE CASCADE;
ALTER TABLE `media` ADD CONSTRAINT `c_media_3` FOREIGN KEY (`userdirectory_mediaid`) REFERENCES `userdirectory_media` (`userdirectory_mediaid`) ON DELETE CASCADE;
ALTER TABLE `rights` ADD CONSTRAINT `c_rights_1` FOREIGN KEY (`groupid`) REFERENCES `usrgrp` (`usrgrpid`) ON DELETE CASCADE;
ALTER TABLE `rights` ADD CONSTRAINT `c_rights_2` FOREIGN KEY (`id`) REFERENCES `hstgrp` (`groupid`) ON DELETE CASCADE;
ALTER TABLE `permission` ADD CONSTRAINT `c_permission_1` FOREIGN KEY (`ugsetid`) REFERENCES `ugset` (`ugsetid`) ON DELETE CASCADE;
ALTER TABLE `permission` ADD CONSTRAINT `c_permission_2` FOREIGN KEY (`hgsetid`) REFERENCES `hgset` (`hgsetid`) ON DELETE CASCADE;
ALTER TABLE `services_links` ADD CONSTRAINT `c_services_links_1` FOREIGN KEY (`serviceupid`) REFERENCES `services` (`serviceid`) ON DELETE CASCADE;
ALTER TABLE `services_links` ADD CONSTRAINT `c_services_links_2` FOREIGN KEY (`servicedownid`) REFERENCES `services` (`serviceid`) ON DELETE CASCADE;
ALTER TABLE `icon_map` ADD CONSTRAINT `c_icon_map_1` FOREIGN KEY (`default_iconid`) REFERENCES `images` (`imageid`);
ALTER TABLE `icon_mapping` ADD CONSTRAINT `c_icon_mapping_1` FOREIGN KEY (`iconmapid`) REFERENCES `icon_map` (`iconmapid`) ON DELETE CASCADE;
ALTER TABLE `icon_mapping` ADD CONSTRAINT `c_icon_mapping_2` FOREIGN KEY (`iconid`) REFERENCES `images` (`imageid`);
ALTER TABLE `sysmaps` ADD CONSTRAINT `c_sysmaps_1` FOREIGN KEY (`backgroundid`) REFERENCES `images` (`imageid`);
ALTER TABLE `sysmaps` ADD CONSTRAINT `c_sysmaps_2` FOREIGN KEY (`iconmapid`) REFERENCES `icon_map` (`iconmapid`);
ALTER TABLE `sysmaps` ADD CONSTRAINT `c_sysmaps_3` FOREIGN KEY (`userid`) REFERENCES `users` (`userid`);
ALTER TABLE `sysmaps_elements` ADD CONSTRAINT `c_sysmaps_elements_1` FOREIGN KEY (`sysmapid`) REFERENCES `sysmaps` (`sysmapid`) ON DELETE CASCADE;
ALTER TABLE `sysmaps_elements` ADD CONSTRAINT `c_sysmaps_elements_2` FOREIGN KEY (`iconid_off`) REFERENCES `images` (`imageid`);
ALTER TABLE `sysmaps_elements` ADD CONSTRAINT `c_sysmaps_elements_3` FOREIGN KEY (`iconid_on`) REFERENCES `images` (`imageid`);
ALTER TABLE `sysmaps_elements` ADD CONSTRAINT `c_sysmaps_elements_4` FOREIGN KEY (`iconid_disabled`) REFERENCES `images` (`imageid`);
ALTER TABLE `sysmaps_elements` ADD CONSTRAINT `c_sysmaps_elements_5` FOREIGN KEY (`iconid_maintenance`) REFERENCES `images` (`imageid`);
ALTER TABLE `sysmaps_links` ADD CONSTRAINT `c_sysmaps_links_1` FOREIGN KEY (`sysmapid`) REFERENCES `sysmaps` (`sysmapid`) ON DELETE CASCADE;
ALTER TABLE `sysmaps_links` ADD CONSTRAINT `c_sysmaps_links_2` FOREIGN KEY (`selementid1`) REFERENCES `sysmaps_elements` (`selementid`) ON DELETE CASCADE;
ALTER TABLE `sysmaps_links` ADD CONSTRAINT `c_sysmaps_links_3` FOREIGN KEY (`selementid2`) REFERENCES `sysmaps_elements` (`selementid`) ON DELETE CASCADE;
ALTER TABLE `sysmaps_links` ADD CONSTRAINT `c_sysmaps_links_4` FOREIGN KEY (`itemid`) REFERENCES `items` (`itemid`);
ALTER TABLE `sysmaps_link_triggers` ADD CONSTRAINT `c_sysmaps_link_triggers_1` FOREIGN KEY (`linkid`) REFERENCES `sysmaps_links` (`linkid`) ON DELETE CASCADE;
ALTER TABLE `sysmaps_link_triggers` ADD CONSTRAINT `c_sysmaps_link_triggers_2` FOREIGN KEY (`triggerid`) REFERENCES `triggers` (`triggerid`) ON DELETE CASCADE;
ALTER TABLE `sysmap_link_threshold` ADD CONSTRAINT `c_sysmap_link_threshold_1` FOREIGN KEY (`linkid`) REFERENCES `sysmaps_links` (`linkid`) ON DELETE CASCADE;
ALTER TABLE `sysmap_element_url` ADD CONSTRAINT `c_sysmap_element_url_1` FOREIGN KEY (`selementid`) REFERENCES `sysmaps_elements` (`selementid`) ON DELETE CASCADE;
ALTER TABLE `sysmap_url` ADD CONSTRAINT `c_sysmap_url_1` FOREIGN KEY (`sysmapid`) REFERENCES `sysmaps` (`sysmapid`) ON DELETE CASCADE;
ALTER TABLE `sysmap_user` ADD CONSTRAINT `c_sysmap_user_1` FOREIGN KEY (`sysmapid`) REFERENCES `sysmaps` (`sysmapid`) ON DELETE CASCADE;
ALTER TABLE `sysmap_user` ADD CONSTRAINT `c_sysmap_user_2` FOREIGN KEY (`userid`) REFERENCES `users` (`userid`) ON DELETE CASCADE;
ALTER TABLE `sysmap_usrgrp` ADD CONSTRAINT `c_sysmap_usrgrp_1` FOREIGN KEY (`sysmapid`) REFERENCES `sysmaps` (`sysmapid`) ON DELETE CASCADE;
ALTER TABLE `sysmap_usrgrp` ADD CONSTRAINT `c_sysmap_usrgrp_2` FOREIGN KEY (`usrgrpid`) REFERENCES `usrgrp` (`usrgrpid`) ON DELETE CASCADE;
ALTER TABLE `maintenances_hosts` ADD CONSTRAINT `c_maintenances_hosts_1` FOREIGN KEY (`maintenanceid`) REFERENCES `maintenances` (`maintenanceid`) ON DELETE CASCADE;
ALTER TABLE `maintenances_hosts` ADD CONSTRAINT `c_maintenances_hosts_2` FOREIGN KEY (`hostid`) REFERENCES `hosts` (`hostid`) ON DELETE CASCADE;
ALTER TABLE `maintenances_groups` ADD CONSTRAINT `c_maintenances_groups_1` FOREIGN KEY (`maintenanceid`) REFERENCES `maintenances` (`maintenanceid`) ON DELETE CASCADE;
ALTER TABLE `maintenances_groups` ADD CONSTRAINT `c_maintenances_groups_2` FOREIGN KEY (`groupid`) REFERENCES `hstgrp` (`groupid`) ON DELETE CASCADE;
ALTER TABLE `maintenances_windows` ADD CONSTRAINT `c_maintenances_windows_1` FOREIGN KEY (`maintenanceid`) REFERENCES `maintenances` (`maintenanceid`) ON DELETE CASCADE;
ALTER TABLE `maintenances_windows` ADD CONSTRAINT `c_maintenances_windows_2` FOREIGN KEY (`timeperiodid`) REFERENCES `timeperiods` (`timeperiodid`) ON DELETE CASCADE;
ALTER TABLE `expressions` ADD CONSTRAINT `c_expressions_1` FOREIGN KEY (`regexpid`) REFERENCES `regexps` (`regexpid`) ON DELETE CASCADE;
ALTER TABLE `alerts` ADD CONSTRAINT `c_alerts_1` FOREIGN KEY (`actionid`) REFERENCES `actions` (`actionid`) ON DELETE CASCADE;
ALTER TABLE `alerts` ADD CONSTRAINT `c_alerts_2` FOREIGN KEY (`eventid`) REFERENCES `events` (`eventid`) ON DELETE CASCADE;
ALTER TABLE `alerts` ADD CONSTRAINT `c_alerts_3` FOREIGN KEY (`userid`) REFERENCES `users` (`userid`) ON DELETE CASCADE;
ALTER TABLE `alerts` ADD CONSTRAINT `c_alerts_4` FOREIGN KEY (`mediatypeid`) REFERENCES `media_type` (`mediatypeid`) ON DELETE CASCADE;
ALTER TABLE `alerts` ADD CONSTRAINT `c_alerts_5` FOREIGN KEY (`p_eventid`) REFERENCES `events` (`eventid`) ON DELETE CASCADE;
ALTER TABLE `alerts` ADD CONSTRAINT `c_alerts_6` FOREIGN KEY (`acknowledgeid`) REFERENCES `acknowledges` (`acknowledgeid`) ON DELETE CASCADE;
ALTER TABLE `event_symptom` ADD CONSTRAINT `c_event_symptom_1` FOREIGN KEY (`eventid`) REFERENCES `events` (`eventid`) ON DELETE CASCADE;
ALTER TABLE `event_symptom` ADD CONSTRAINT `c_event_symptom_2` FOREIGN KEY (`cause_eventid`) REFERENCES `events` (`eventid`);
ALTER TABLE `acknowledges` ADD CONSTRAINT `c_acknowledges_1` FOREIGN KEY (`userid`) REFERENCES `users` (`userid`) ON DELETE CASCADE;
ALTER TABLE `acknowledges` ADD CONSTRAINT `c_acknowledges_2` FOREIGN KEY (`eventid`) REFERENCES `events` (`eventid`) ON DELETE CASCADE;
ALTER TABLE `service_alarms` ADD CONSTRAINT `c_service_alarms_1` FOREIGN KEY (`serviceid`) REFERENCES `services` (`serviceid`) ON DELETE CASCADE;
ALTER TABLE `autoreg_host` ADD CONSTRAINT `c_autoreg_host_1` FOREIGN KEY (`proxyid`) REFERENCES `proxy` (`proxyid`) ON DELETE CASCADE;
ALTER TABLE `dhosts` ADD CONSTRAINT `c_dhosts_1` FOREIGN KEY (`druleid`) REFERENCES `drules` (`druleid`) ON DELETE CASCADE;
ALTER TABLE `dservices` ADD CONSTRAINT `c_dservices_1` FOREIGN KEY (`dhostid`) REFERENCES `dhosts` (`dhostid`) ON DELETE CASCADE;
ALTER TABLE `dservices` ADD CONSTRAINT `c_dservices_2` FOREIGN KEY (`dcheckid`) REFERENCES `dchecks` (`dcheckid`) ON DELETE CASCADE;
ALTER TABLE `graph_discovery` ADD CONSTRAINT `c_graph_discovery_1` FOREIGN KEY (`graphid`) REFERENCES `graphs` (`graphid`) ON DELETE CASCADE;
ALTER TABLE `graph_discovery` ADD CONSTRAINT `c_graph_discovery_2` FOREIGN KEY (`parent_graphid`) REFERENCES `graphs` (`graphid`);
ALTER TABLE `host_inventory` ADD CONSTRAINT `c_host_inventory_1` FOREIGN KEY (`hostid`) REFERENCES `hosts` (`hostid`) ON DELETE CASCADE;
ALTER TABLE `item_discovery` ADD CONSTRAINT `c_item_discovery_1` FOREIGN KEY (`itemid`) REFERENCES `items` (`itemid`) ON DELETE CASCADE;
ALTER TABLE `item_discovery` ADD CONSTRAINT `c_item_discovery_2` FOREIGN KEY (`parent_itemid`) REFERENCES `items` (`itemid`) ON DELETE CASCADE;
ALTER TABLE `item_discovery` ADD CONSTRAINT `c_item_discovery_3` FOREIGN KEY (`lldruleid`) REFERENCES `items` (`itemid`);
ALTER TABLE `host_discovery` ADD CONSTRAINT `c_host_discovery_1` FOREIGN KEY (`hostid`) REFERENCES `hosts` (`hostid`) ON DELETE CASCADE;
ALTER TABLE `host_discovery` ADD CONSTRAINT `c_host_discovery_2` FOREIGN KEY (`parent_hostid`) REFERENCES `hosts` (`hostid`);
ALTER TABLE `host_discovery` ADD CONSTRAINT `c_host_discovery_3` FOREIGN KEY (`lldruleid`) REFERENCES `items` (`itemid`);
ALTER TABLE `interface_discovery` ADD CONSTRAINT `c_interface_discovery_1` FOREIGN KEY (`interfaceid`) REFERENCES `interface` (`interfaceid`) ON DELETE CASCADE;
ALTER TABLE `interface_discovery` ADD CONSTRAINT `c_interface_discovery_2` FOREIGN KEY (`parent_interfaceid`) REFERENCES `interface` (`interfaceid`) ON DELETE CASCADE;
ALTER TABLE `profiles` ADD CONSTRAINT `c_profiles_1` FOREIGN KEY (`userid`) REFERENCES `users` (`userid`) ON DELETE CASCADE;
ALTER TABLE `sessions` ADD CONSTRAINT `c_sessions_1` FOREIGN KEY (`userid`) REFERENCES `users` (`userid`) ON DELETE CASCADE;
ALTER TABLE `trigger_discovery` ADD CONSTRAINT `c_trigger_discovery_1` FOREIGN KEY (`triggerid`) REFERENCES `triggers` (`triggerid`) ON DELETE CASCADE;
ALTER TABLE `trigger_discovery` ADD CONSTRAINT `c_trigger_discovery_2` FOREIGN KEY (`parent_triggerid`) REFERENCES `triggers` (`triggerid`);
ALTER TABLE `item_condition` ADD CONSTRAINT `c_item_condition_1` FOREIGN KEY (`itemid`) REFERENCES `items` (`itemid`) ON DELETE CASCADE;
ALTER TABLE `item_rtdata` ADD CONSTRAINT `c_item_rtdata_1` FOREIGN KEY (`itemid`) REFERENCES `items` (`itemid`) ON DELETE CASCADE;
ALTER TABLE `item_rtname` ADD CONSTRAINT `c_item_rtname_1` FOREIGN KEY (`itemid`) REFERENCES `items` (`itemid`) ON DELETE CASCADE;
ALTER TABLE `opinventory` ADD CONSTRAINT `c_opinventory_1` FOREIGN KEY (`operationid`) REFERENCES `operations` (`operationid`) ON DELETE CASCADE;
ALTER TABLE `trigger_tag` ADD CONSTRAINT `c_trigger_tag_1` FOREIGN KEY (`triggerid`) REFERENCES `triggers` (`triggerid`);
ALTER TABLE `event_tag` ADD CONSTRAINT `c_event_tag_1` FOREIGN KEY (`eventid`) REFERENCES `events` (`eventid`) ON DELETE CASCADE;
ALTER TABLE `problem` ADD CONSTRAINT `c_problem_1` FOREIGN KEY (`eventid`) REFERENCES `events` (`eventid`) ON DELETE CASCADE;
ALTER TABLE `problem` ADD CONSTRAINT `c_problem_2` FOREIGN KEY (`r_eventid`) REFERENCES `events` (`eventid`) ON DELETE CASCADE;
ALTER TABLE `problem` ADD CONSTRAINT `c_problem_3` FOREIGN KEY (`cause_eventid`) REFERENCES `events` (`eventid`);
ALTER TABLE `problem_tag` ADD CONSTRAINT `c_problem_tag_1` FOREIGN KEY (`eventid`) REFERENCES `problem` (`eventid`) ON DELETE CASCADE;
ALTER TABLE `tag_filter` ADD CONSTRAINT `c_tag_filter_1` FOREIGN KEY (`usrgrpid`) REFERENCES `usrgrp` (`usrgrpid`) ON DELETE CASCADE;
ALTER TABLE `tag_filter` ADD CONSTRAINT `c_tag_filter_2` FOREIGN KEY (`groupid`) REFERENCES `hstgrp` (`groupid`) ON DELETE CASCADE;
ALTER TABLE `event_recovery` ADD CONSTRAINT `c_event_recovery_1` FOREIGN KEY (`eventid`) REFERENCES `events` (`eventid`) ON DELETE CASCADE;
ALTER TABLE `event_recovery` ADD CONSTRAINT `c_event_recovery_2` FOREIGN KEY (`r_eventid`) REFERENCES `events` (`eventid`) ON DELETE CASCADE;
ALTER TABLE `event_recovery` ADD CONSTRAINT `c_event_recovery_3` FOREIGN KEY (`c_eventid`) REFERENCES `events` (`eventid`) ON DELETE CASCADE;
ALTER TABLE `corr_condition` ADD CONSTRAINT `c_corr_condition_1` FOREIGN KEY (`correlationid`) REFERENCES `correlation` (`correlationid`) ON DELETE CASCADE;
ALTER TABLE `corr_condition_tag` ADD CONSTRAINT `c_corr_condition_tag_1` FOREIGN KEY (`corr_conditionid`) REFERENCES `corr_condition` (`corr_conditionid`) ON DELETE CASCADE;
ALTER TABLE `corr_condition_group` ADD CONSTRAINT `c_corr_condition_group_1` FOREIGN KEY (`corr_conditionid`) REFERENCES `corr_condition` (`corr_conditionid`) ON DELETE CASCADE;
ALTER TABLE `corr_condition_group` ADD CONSTRAINT `c_corr_condition_group_2` FOREIGN KEY (`groupid`) REFERENCES `hstgrp` (`groupid`);
ALTER TABLE `corr_condition_tagpair` ADD CONSTRAINT `c_corr_condition_tagpair_1` FOREIGN KEY (`corr_conditionid`) REFERENCES `corr_condition` (`corr_conditionid`) ON DELETE CASCADE;
ALTER TABLE `corr_condition_tagvalue` ADD CONSTRAINT `c_corr_condition_tagvalue_1` FOREIGN KEY (`corr_conditionid`) REFERENCES `corr_condition` (`corr_conditionid`) ON DELETE CASCADE;
ALTER TABLE `corr_operation` ADD CONSTRAINT `c_corr_operation_1` FOREIGN KEY (`correlationid`) REFERENCES `correlation` (`correlationid`) ON DELETE CASCADE;
ALTER TABLE `task` ADD CONSTRAINT `c_task_1` FOREIGN KEY (`proxyid`) REFERENCES `proxy` (`proxyid`) ON DELETE CASCADE;
ALTER TABLE `task_close_problem` ADD CONSTRAINT `c_task_close_problem_1` FOREIGN KEY (`taskid`) REFERENCES `task` (`taskid`) ON DELETE CASCADE;
ALTER TABLE `item_preproc` ADD CONSTRAINT `c_item_preproc_1` FOREIGN KEY (`itemid`) REFERENCES `items` (`itemid`);
ALTER TABLE `task_remote_command` ADD CONSTRAINT `c_task_remote_command_1` FOREIGN KEY (`taskid`) REFERENCES `task` (`taskid`) ON DELETE CASCADE;
ALTER TABLE `task_remote_command_result` ADD CONSTRAINT `c_task_remote_command_result_1` FOREIGN KEY (`taskid`) REFERENCES `task` (`taskid`) ON DELETE CASCADE;
ALTER TABLE `task_data` ADD CONSTRAINT `c_task_data_1` FOREIGN KEY (`taskid`) REFERENCES `task` (`taskid`) ON DELETE CASCADE;
ALTER TABLE `task_result` ADD CONSTRAINT `c_task_result_1` FOREIGN KEY (`taskid`) REFERENCES `task` (`taskid`) ON DELETE CASCADE;
ALTER TABLE `task_acknowledge` ADD CONSTRAINT `c_task_acknowledge_1` FOREIGN KEY (`taskid`) REFERENCES `task` (`taskid`) ON DELETE CASCADE;
ALTER TABLE `sysmap_shape` ADD CONSTRAINT `c_sysmap_shape_1` FOREIGN KEY (`sysmapid`) REFERENCES `sysmaps` (`sysmapid`) ON DELETE CASCADE;
ALTER TABLE `sysmap_element_trigger` ADD CONSTRAINT `c_sysmap_element_trigger_1` FOREIGN KEY (`selementid`) REFERENCES `sysmaps_elements` (`selementid`) ON DELETE CASCADE;
ALTER TABLE `sysmap_element_trigger` ADD CONSTRAINT `c_sysmap_element_trigger_2` FOREIGN KEY (`triggerid`) REFERENCES `triggers` (`triggerid`) ON DELETE CASCADE;
ALTER TABLE `httptest_field` ADD CONSTRAINT `c_httptest_field_1` FOREIGN KEY (`httptestid`) REFERENCES `httptest` (`httptestid`);
ALTER TABLE `httpstep_field` ADD CONSTRAINT `c_httpstep_field_1` FOREIGN KEY (`httpstepid`) REFERENCES `httpstep` (`httpstepid`);
ALTER TABLE `dashboard` ADD CONSTRAINT `c_dashboard_1` FOREIGN KEY (`userid`) REFERENCES `users` (`userid`);
ALTER TABLE `dashboard` ADD CONSTRAINT `c_dashboard_2` FOREIGN KEY (`templateid`) REFERENCES `hosts` (`hostid`) ON DELETE CASCADE;
ALTER TABLE `dashboard_user` ADD CONSTRAINT `c_dashboard_user_1` FOREIGN KEY (`dashboardid`) REFERENCES `dashboard` (`dashboardid`) ON DELETE CASCADE;
ALTER TABLE `dashboard_user` ADD CONSTRAINT `c_dashboard_user_2` FOREIGN KEY (`userid`) REFERENCES `users` (`userid`) ON DELETE CASCADE;
ALTER TABLE `dashboard_usrgrp` ADD CONSTRAINT `c_dashboard_usrgrp_1` FOREIGN KEY (`dashboardid`) REFERENCES `dashboard` (`dashboardid`) ON DELETE CASCADE;
ALTER TABLE `dashboard_usrgrp` ADD CONSTRAINT `c_dashboard_usrgrp_2` FOREIGN KEY (`usrgrpid`) REFERENCES `usrgrp` (`usrgrpid`) ON DELETE CASCADE;
ALTER TABLE `dashboard_page` ADD CONSTRAINT `c_dashboard_page_1` FOREIGN KEY (`dashboardid`) REFERENCES `dashboard` (`dashboardid`) ON DELETE CASCADE;
ALTER TABLE `widget` ADD CONSTRAINT `c_widget_1` FOREIGN KEY (`dashboard_pageid`) REFERENCES `dashboard_page` (`dashboard_pageid`) ON DELETE CASCADE;
ALTER TABLE `widget_field` ADD CONSTRAINT `c_widget_field_1` FOREIGN KEY (`widgetid`) REFERENCES `widget` (`widgetid`) ON DELETE CASCADE;
ALTER TABLE `widget_field` ADD CONSTRAINT `c_widget_field_2` FOREIGN KEY (`value_groupid`) REFERENCES `hstgrp` (`groupid`) ON DELETE CASCADE;
ALTER TABLE `widget_field` ADD CONSTRAINT `c_widget_field_3` FOREIGN KEY (`value_hostid`) REFERENCES `hosts` (`hostid`) ON DELETE CASCADE;
ALTER TABLE `widget_field` ADD CONSTRAINT `c_widget_field_4` FOREIGN KEY (`value_itemid`) REFERENCES `items` (`itemid`) ON DELETE CASCADE;
ALTER TABLE `widget_field` ADD CONSTRAINT `c_widget_field_5` FOREIGN KEY (`value_graphid`) REFERENCES `graphs` (`graphid`) ON DELETE CASCADE;
ALTER TABLE `widget_field` ADD CONSTRAINT `c_widget_field_6` FOREIGN KEY (`value_sysmapid`) REFERENCES `sysmaps` (`sysmapid`) ON DELETE CASCADE;
ALTER TABLE `widget_field` ADD CONSTRAINT `c_widget_field_7` FOREIGN KEY (`value_serviceid`) REFERENCES `services` (`serviceid`) ON DELETE CASCADE;
ALTER TABLE `widget_field` ADD CONSTRAINT `c_widget_field_8` FOREIGN KEY (`value_slaid`) REFERENCES `sla` (`slaid`) ON DELETE CASCADE;
ALTER TABLE `widget_field` ADD CONSTRAINT `c_widget_field_9` FOREIGN KEY (`value_userid`) REFERENCES `users` (`userid`) ON DELETE CASCADE;
ALTER TABLE `widget_field` ADD CONSTRAINT `c_widget_field_10` FOREIGN KEY (`value_actionid`) REFERENCES `actions` (`actionid`) ON DELETE CASCADE;
ALTER TABLE `widget_field` ADD CONSTRAINT `c_widget_field_11` FOREIGN KEY (`value_mediatypeid`) REFERENCES `media_type` (`mediatypeid`) ON DELETE CASCADE;
ALTER TABLE `task_check_now` ADD CONSTRAINT `c_task_check_now_1` FOREIGN KEY (`taskid`) REFERENCES `task` (`taskid`) ON DELETE CASCADE;
ALTER TABLE `event_suppress` ADD CONSTRAINT `c_event_suppress_1` FOREIGN KEY (`eventid`) REFERENCES `events` (`eventid`) ON DELETE CASCADE;
ALTER TABLE `event_suppress` ADD CONSTRAINT `c_event_suppress_2` FOREIGN KEY (`maintenanceid`) REFERENCES `maintenances` (`maintenanceid`) ON DELETE CASCADE;
ALTER TABLE `event_suppress` ADD CONSTRAINT `c_event_suppress_3` FOREIGN KEY (`userid`) REFERENCES `users` (`userid`) ON DELETE CASCADE;
ALTER TABLE `maintenance_tag` ADD CONSTRAINT `c_maintenance_tag_1` FOREIGN KEY (`maintenanceid`) REFERENCES `maintenances` (`maintenanceid`) ON DELETE CASCADE;
ALTER TABLE `lld_macro_path` ADD CONSTRAINT `c_lld_macro_path_1` FOREIGN KEY (`itemid`) REFERENCES `items` (`itemid`) ON DELETE CASCADE;
ALTER TABLE `host_tag` ADD CONSTRAINT `c_host_tag_1` FOREIGN KEY (`hostid`) REFERENCES `hosts` (`hostid`);
ALTER TABLE `interface_snmp` ADD CONSTRAINT `c_interface_snmp_1` FOREIGN KEY (`interfaceid`) REFERENCES `interface` (`interfaceid`) ON DELETE CASCADE;
ALTER TABLE `lld_override` ADD CONSTRAINT `c_lld_override_1` FOREIGN KEY (`itemid`) REFERENCES `items` (`itemid`) ON DELETE CASCADE;
ALTER TABLE `lld_override_condition` ADD CONSTRAINT `c_lld_override_condition_1` FOREIGN KEY (`lld_overrideid`) REFERENCES `lld_override` (`lld_overrideid`) ON DELETE CASCADE;
ALTER TABLE `lld_override_operation` ADD CONSTRAINT `c_lld_override_operation_1` FOREIGN KEY (`lld_overrideid`) REFERENCES `lld_override` (`lld_overrideid`) ON DELETE CASCADE;
ALTER TABLE `lld_override_opstatus` ADD CONSTRAINT `c_lld_override_opstatus_1` FOREIGN KEY (`lld_override_operationid`) REFERENCES `lld_override_operation` (`lld_override_operationid`) ON DELETE CASCADE;
ALTER TABLE `lld_override_opdiscover` ADD CONSTRAINT `c_lld_override_opdiscover_1` FOREIGN KEY (`lld_override_operationid`) REFERENCES `lld_override_operation` (`lld_override_operationid`) ON DELETE CASCADE;
ALTER TABLE `lld_override_opperiod` ADD CONSTRAINT `c_lld_override_opperiod_1` FOREIGN KEY (`lld_override_operationid`) REFERENCES `lld_override_operation` (`lld_override_operationid`) ON DELETE CASCADE;
ALTER TABLE `lld_override_ophistory` ADD CONSTRAINT `c_lld_override_ophistory_1` FOREIGN KEY (`lld_override_operationid`) REFERENCES `lld_override_operation` (`lld_override_operationid`) ON DELETE CASCADE;
ALTER TABLE `lld_override_optrends` ADD CONSTRAINT `c_lld_override_optrends_1` FOREIGN KEY (`lld_override_operationid`) REFERENCES `lld_override_operation` (`lld_override_operationid`) ON DELETE CASCADE;
ALTER TABLE `lld_override_opseverity` ADD CONSTRAINT `c_lld_override_opseverity_1` FOREIGN KEY (`lld_override_operationid`) REFERENCES `lld_override_operation` (`lld_override_operationid`) ON DELETE CASCADE;
ALTER TABLE `lld_override_optag` ADD CONSTRAINT `c_lld_override_optag_1` FOREIGN KEY (`lld_override_operationid`) REFERENCES `lld_override_operation` (`lld_override_operationid`) ON DELETE CASCADE;
ALTER TABLE `lld_override_optemplate` ADD CONSTRAINT `c_lld_override_optemplate_1` FOREIGN KEY (`lld_override_operationid`) REFERENCES `lld_override_operation` (`lld_override_operationid`) ON DELETE CASCADE;
ALTER TABLE `lld_override_optemplate` ADD CONSTRAINT `c_lld_override_optemplate_2` FOREIGN KEY (`templateid`) REFERENCES `hosts` (`hostid`);
ALTER TABLE `lld_override_opinventory` ADD CONSTRAINT `c_lld_override_opinventory_1` FOREIGN KEY (`lld_override_operationid`) REFERENCES `lld_override_operation` (`lld_override_operationid`) ON DELETE CASCADE;
ALTER TABLE `item_parameter` ADD CONSTRAINT `c_item_parameter_1` FOREIGN KEY (`itemid`) REFERENCES `items` (`itemid`) ON DELETE CASCADE;
ALTER TABLE `role_rule` ADD CONSTRAINT `c_role_rule_1` FOREIGN KEY (`roleid`) REFERENCES `role` (`roleid`) ON DELETE CASCADE;
ALTER TABLE `role_rule` ADD CONSTRAINT `c_role_rule_2` FOREIGN KEY (`value_moduleid`) REFERENCES `module` (`moduleid`) ON DELETE CASCADE;
ALTER TABLE `role_rule` ADD CONSTRAINT `c_role_rule_3` FOREIGN KEY (`value_serviceid`) REFERENCES `services` (`serviceid`) ON DELETE CASCADE;
ALTER TABLE `token` ADD CONSTRAINT `c_token_1` FOREIGN KEY (`userid`) REFERENCES `users` (`userid`) ON DELETE CASCADE;
ALTER TABLE `token` ADD CONSTRAINT `c_token_2` FOREIGN KEY (`creator_userid`) REFERENCES `users` (`userid`);
ALTER TABLE `item_tag` ADD CONSTRAINT `c_item_tag_1` FOREIGN KEY (`itemid`) REFERENCES `items` (`itemid`);
ALTER TABLE `httptest_tag` ADD CONSTRAINT `c_httptest_tag_1` FOREIGN KEY (`httptestid`) REFERENCES `httptest` (`httptestid`) ON DELETE CASCADE;
ALTER TABLE `sysmaps_element_tag` ADD CONSTRAINT `c_sysmaps_element_tag_1` FOREIGN KEY (`selementid`) REFERENCES `sysmaps_elements` (`selementid`) ON DELETE CASCADE;
ALTER TABLE `report` ADD CONSTRAINT `c_report_1` FOREIGN KEY (`userid`) REFERENCES `users` (`userid`) ON DELETE CASCADE;
ALTER TABLE `report` ADD CONSTRAINT `c_report_2` FOREIGN KEY (`dashboardid`) REFERENCES `dashboard` (`dashboardid`) ON DELETE CASCADE;
ALTER TABLE `report_param` ADD CONSTRAINT `c_report_param_1` FOREIGN KEY (`reportid`) REFERENCES `report` (`reportid`) ON DELETE CASCADE;
ALTER TABLE `report_user` ADD CONSTRAINT `c_report_user_1` FOREIGN KEY (`reportid`) REFERENCES `report` (`reportid`) ON DELETE CASCADE;
ALTER TABLE `report_user` ADD CONSTRAINT `c_report_user_2` FOREIGN KEY (`userid`) REFERENCES `users` (`userid`) ON DELETE CASCADE;
ALTER TABLE `report_user` ADD CONSTRAINT `c_report_user_3` FOREIGN KEY (`access_userid`) REFERENCES `users` (`userid`);
ALTER TABLE `report_usrgrp` ADD CONSTRAINT `c_report_usrgrp_1` FOREIGN KEY (`reportid`) REFERENCES `report` (`reportid`) ON DELETE CASCADE;
ALTER TABLE `report_usrgrp` ADD CONSTRAINT `c_report_usrgrp_2` FOREIGN KEY (`usrgrpid`) REFERENCES `usrgrp` (`usrgrpid`) ON DELETE CASCADE;
ALTER TABLE `report_usrgrp` ADD CONSTRAINT `c_report_usrgrp_3` FOREIGN KEY (`access_userid`) REFERENCES `users` (`userid`);
ALTER TABLE `service_problem_tag` ADD CONSTRAINT `c_service_problem_tag_1` FOREIGN KEY (`serviceid`) REFERENCES `services` (`serviceid`) ON DELETE CASCADE;
ALTER TABLE `service_problem` ADD CONSTRAINT `c_service_problem_1` FOREIGN KEY (`eventid`) REFERENCES `problem` (`eventid`) ON DELETE CASCADE;
ALTER TABLE `service_problem` ADD CONSTRAINT `c_service_problem_2` FOREIGN KEY (`serviceid`) REFERENCES `services` (`serviceid`) ON DELETE CASCADE;
ALTER TABLE `service_tag` ADD CONSTRAINT `c_service_tag_1` FOREIGN KEY (`serviceid`) REFERENCES `services` (`serviceid`) ON DELETE CASCADE;
ALTER TABLE `service_status_rule` ADD CONSTRAINT `c_service_status_rule_1` FOREIGN KEY (`serviceid`) REFERENCES `services` (`serviceid`) ON DELETE CASCADE;
ALTER TABLE `sla_schedule` ADD CONSTRAINT `c_sla_schedule_1` FOREIGN KEY (`slaid`) REFERENCES `sla` (`slaid`) ON DELETE CASCADE;
ALTER TABLE `sla_excluded_downtime` ADD CONSTRAINT `c_sla_excluded_downtime_1` FOREIGN KEY (`slaid`) REFERENCES `sla` (`slaid`) ON DELETE CASCADE;
ALTER TABLE `sla_service_tag` ADD CONSTRAINT `c_sla_service_tag_1` FOREIGN KEY (`slaid`) REFERENCES `sla` (`slaid`) ON DELETE CASCADE;
ALTER TABLE `host_rtdata` ADD CONSTRAINT `c_host_rtdata_1` FOREIGN KEY (`hostid`) REFERENCES `hosts` (`hostid`) ON DELETE CASCADE;
ALTER TABLE `userdirectory_ldap` ADD CONSTRAINT `c_userdirectory_ldap_1` FOREIGN KEY (`userdirectoryid`) REFERENCES `userdirectory` (`userdirectoryid`) ON DELETE CASCADE;
ALTER TABLE `userdirectory_saml` ADD CONSTRAINT `c_userdirectory_saml_1` FOREIGN KEY (`userdirectoryid`) REFERENCES `userdirectory` (`userdirectoryid`) ON DELETE CASCADE;
ALTER TABLE `userdirectory_media` ADD CONSTRAINT `c_userdirectory_media_1` FOREIGN KEY (`userdirectoryid`) REFERENCES `userdirectory` (`userdirectoryid`) ON DELETE CASCADE;
ALTER TABLE `userdirectory_media` ADD CONSTRAINT `c_userdirectory_media_2` FOREIGN KEY (`mediatypeid`) REFERENCES `media_type` (`mediatypeid`) ON DELETE CASCADE;
ALTER TABLE `userdirectory_usrgrp` ADD CONSTRAINT `c_userdirectory_usrgrp_1` FOREIGN KEY (`userdirectory_idpgroupid`) REFERENCES `userdirectory_idpgroup` (`userdirectory_idpgroupid`) ON DELETE CASCADE;
ALTER TABLE `userdirectory_usrgrp` ADD CONSTRAINT `c_userdirectory_usrgrp_2` FOREIGN KEY (`usrgrpid`) REFERENCES `usrgrp` (`usrgrpid`) ON DELETE CASCADE;
ALTER TABLE `userdirectory_idpgroup` ADD CONSTRAINT `c_userdirectory_idpgroup_1` FOREIGN KEY (`userdirectoryid`) REFERENCES `userdirectory` (`userdirectoryid`) ON DELETE CASCADE;
ALTER TABLE `userdirectory_idpgroup` ADD CONSTRAINT `c_userdirectory_idpgroup_2` FOREIGN KEY (`roleid`) REFERENCES `role` (`roleid`) ON DELETE CASCADE;
ALTER TABLE `user_scim_group` ADD CONSTRAINT `c_user_scim_group_1` FOREIGN KEY (`userid`) REFERENCES `users` (`userid`) ON DELETE CASCADE;
ALTER TABLE `user_scim_group` ADD CONSTRAINT `c_user_scim_group_2` FOREIGN KEY (`scim_groupid`) REFERENCES `scim_group` (`scim_groupid`) ON DELETE CASCADE;
ALTER TABLE `connector_tag` ADD CONSTRAINT `c_connector_tag_1` FOREIGN KEY (`connectorid`) REFERENCES `connector` (`connectorid`);
ALTER TABLE `proxy` ADD CONSTRAINT `c_proxy_1` FOREIGN KEY (`proxy_groupid`) REFERENCES `proxy_group` (`proxy_groupid`);
ALTER TABLE `proxy_rtdata` ADD CONSTRAINT `c_proxy_rtdata_1` FOREIGN KEY (`proxyid`) REFERENCES `proxy` (`proxyid`) ON DELETE CASCADE;
ALTER TABLE `proxy_group_rtdata` ADD CONSTRAINT `c_proxy_group_rtdata_1` FOREIGN KEY (`proxy_groupid`) REFERENCES `proxy_group` (`proxy_groupid`) ON DELETE CASCADE;
ALTER TABLE `host_proxy` ADD CONSTRAINT `c_host_proxy_1` FOREIGN KEY (`hostid`) REFERENCES `hosts` (`hostid`);
ALTER TABLE `host_proxy` ADD CONSTRAINT `c_host_proxy_2` FOREIGN KEY (`proxyid`) REFERENCES `proxy` (`proxyid`);
ALTER TABLE `mfa_totp_secret` ADD CONSTRAINT `c_mfa_totp_secret_1` FOREIGN KEY (`mfaid`) REFERENCES `mfa` (`mfaid`) ON DELETE CASCADE;
ALTER TABLE `mfa_totp_secret` ADD CONSTRAINT `c_mfa_totp_secret_2` FOREIGN KEY (`userid`) REFERENCES `users` (`userid`) ON DELETE CASCADE;
ALTER TABLE `settings` ADD CONSTRAINT `c_settings_2` FOREIGN KEY (`value_usrgrpid`) REFERENCES `usrgrp` (`usrgrpid`);
ALTER TABLE `settings` ADD CONSTRAINT `c_settings_3` FOREIGN KEY (`value_hostgroupid`) REFERENCES `hstgrp` (`groupid`);
ALTER TABLE `settings` ADD CONSTRAINT `c_settings_4` FOREIGN KEY (`value_userdirectoryid`) REFERENCES `userdirectory` (`userdirectoryid`);
ALTER TABLE `settings` ADD CONSTRAINT `c_settings_5` FOREIGN KEY (`value_mfaid`) REFERENCES `mfa` (`mfaid`);
ALTER TABLE `lld_macro_export` ADD CONSTRAINT `c_lld_macro_export_1` FOREIGN KEY (`itemid`) REFERENCES `items` (`itemid`) ON DELETE CASCADE;
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (1,1,'Cloud_(128)',0x89504E470D0A1A0A0000000D494844520000008000000044080600000049473D690000000473424954080808087C086488000000097048597300000DD700000DD70142289B780000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A0000130B4944415478DAED9D095C9357B6C0BFD6E7585FFB7C9DE9D8BE71AC4F2B90208EB6DAE9E8D4D73AAF4A36709916B58B1DEDB46EAD9DF6F5D7AAD5B6501F8E2BB8B405C55D2B5664114101954DF645F61D091076C2BEAF77EE395F022124102109A0DFFDFDAEC48404B8E77FCF39F79C73EF650821CC58E8B43DA6D21F67185B2DBDCFF7611F2B7FE3888CEBD8103A08D6661CB378F1BF31F3E78F672C6C7EC598882630D3173FC14CB599881D1EC373F0DAFC0DE3F17BA1C3FB54C0E0843E0600E89DE55478207010EC7CEB7FA75F27317F90FC9A31B3FE2D337BD9738CB9E0778C99D5EF19DEB229F8189E83D72C04BF615E58F29FF4F9FF50BC6F027E0E07C3E806A047F03654503093A750E181204D4493999996CF33330526CC2C8105334BF412632AFE13C313BDCA9849FE073B5FF2670AC32BF81A5FFC070A029F3EFF027DEF54FADE6799E92B9E66E6583E8930A066E040183500F4AA7A85E04150308B6176F3C5668C89601EC317BD4E856EC5988956D3E7D63D39EFCD8FADB7DA1FFCCEE9EAB583176F06EE7272F3DCF8FF275DD66C3B7CC0E68B43767F59FFEDA7E3CC25627C1F5F321F8198B9FC79D410A049C064F4688547178451227C3A1B411860CB51C553C19B4ACC7156F351E8EF0B377C47E51C99169490D3189626ED0A4DCD27C1C9527227F13EB995904BFCE2B3896F6C16B91E9D49BC22D3897B781AF92534A5E3B45F74E9B72E5EBE6BB61FFDE6D905EF09E867CF45CD00E602B4CBD485135535020780D185AF98F560AF412830E3F9560B199E78F9A497DFFA78CF698F80B094BCC6F8DC62129B5D44A232652432A3107B443AFD9A098F652482FE3F2CBD8020182952729B82E11B9345AE52102E0527910B8189E4947F6CEB76270FEF397FFDBF77E8E7BF8C2665C61BCFE1CF06D3A0D0061C00C6123ECC3C50C5D3E8ACB7B09E4685F012158C90E149FEEE78D12738495ADA99925F4612F34A49C2FD129290574212EFB38FEFE5961080222E87ED00470CEDD15932124D2151820260DC4D9592807BB9E46A582A391D104F5C6EC6757F7FEE46F4920DDF6FA666E545FCD9A0794003A136601E196D30B2C28701E7AF7C066722A87B9E78D527F6C7CFA4E497B665165592F4C20A929A5F4E520BCA494A3EF432922C2D23491408806228300427E7118FF05472C22F8EFCE41B4DB63B7B063CB3E0ED37585F833A9BE07FA06FF06898849113FE145C9E4D46E78C27FA5F2AFCF55EC1B16979A5D524A7A48A6451003265952443C682003DAD407F3084A51510B7BBA9E487EB5164FF95900AC1E63D9F30E692D9B89C04930066E9118060046CBE42F8B0343311CDA25EBAE5E4056B3E8DCBCA971754D4120020970200106417CB2908F2416100105461481808862C168628050C601A9C7CA3BB1D3DC3BBB61EFEC575FCEC652FE3D211560A08817673A029EA38D6A290C677F840ED2B854FEDBDE587BB76E79654B616C9EB487E790D9196D590BCB26A72BF147A955160006D004EA2836738D971C23B64BC85F51F11020C24F59A83FEA168701A15114A4DBD37F0346A630EC6153E387CB00E37B3E4337C6B4BC107DFED2EAEAAEB2CAD6A20B2CA5A524835006801008185A1BA07865C250C1484FE302840E80343994E30C466F7C2E0169682107CE5E4758B31B79EC7F0964E612C163F85A165F55034C611A82683D7D955C4245C56B281AB49F81CF813F07DF0FDA334F8642C001EC7417871C5D3E8F0519BFFFBD7FEF699ACB2A6ADA2B69194543790E2AA7A025A40565937A2305C096521F8ECD8554FC64C30177D02102806A76C9EC28822869BC5FF85D149BE703A7D7D263A913C218F851B1DCA99B8BA80F7F3DF780681500B3E3D120020F1F047A363450784277A759CB9D50719D25279557D3329AF692465350DA4944250525D4F4A2808230DC3E590648460CBC19FCF60E088673D0385CDB39C814EAB055D3AF2850B19BED562F061A8F32881B805632AF9EBC4D96FDAFC6AF6F215F47D62746ECD450BD8D0B44AF069FABA27464BF0C938AA1F55259D31E682798C99704D6074725A4D630BA9AA6B2695754D04B44039744D30C8B5C3205587A1A43F0C99DA60505D49F481818240FBF93B09DD0E1E619D7F5AFBF53F189EE42F7446BFCE988B97D2DF7FE5132F2E5F27DA68B7FB8B03E72EEE3D7BCDFFB84750EC25FFA8EC6B61C9A5FE3119353E91A972F79084E28B01D139872F07DCF9D0EEF8BE05EF7DF96E4FF069CECA677B571A23AB0D0C0C00251C53B482DFB0A15DB1D5E1F35E1EF5CDADA4960250DDD04C400B4097531046130CB13945E4E8B5C86EDBF3FE258F9B2FFB7CC2DC159FAFFAE280B393DBADD8E07BD9B589F7CB1096B89C12F421942B8B88F402EA54C232339F84A648315CED1393D97A3928A1F2F0D5C0709B6D0EFF60834F4BA6A14904B360337210187EBD0F76D35CFCDFB4BF46BDEBCDB50DCD1D0DCD6DA4AE8942D0D48220D4A8C020AF6FD20043432F0C55C683C19F2E11C1141CBA7CBB2C3829BB2109A292D45C284D05085E7D69C986A6D9A05338C25080308450107C63B23ACF06C4CAEDCFDDB8B1E8FD9D2B59DF81FA07908F18214D60D8D9CF16694C66EDA878D5B5C098D8E6D676D2D8D2461AA05310401B0C07866235180AB5C150DA0B43CE60301454A0BF00305CB893488E5C8B2431D44954371308825AC049230CE9BD3004A7E4915F42929A7FF00E2B5CBDE3C856C6DCCA14A3A1305623008161673F2E87A8036526593279C1DBDB9A5ADBBA9ADBDA49735B0701109AC6000C206047AF08CC2E0EE4333C280C1EE1A9AD3F7A47547F607FDA16210033890929E33A86864BEF02D16CC0070A34DE8948C8C86AEFE824ADB4B7C1D7F60ED20220E800038050D330300C004259B53A0C751A60A8E91370CA530B38F5C250893040C009B289103256E625D47D86445518D03CE806C3F5A88C8E63DE110D1BF79EDF83130556081616187D1CE300D0D90F5E2EAC91CD846F3CFFFADFBE6E696DEBE8EAEA269D5D5DA4A3B38BB4D3DE36466000D50DBE00A499330AFB9B89E1C0E01591D6E2E819DE24DA7AE01DAC838078039B917C6CAC02C0067DC0AEC1FA97DAFE83A7DDFD88A2757713D245FF194B306417571127DF18723128B18F66D0170CA7FDA2EBFE7939B068AAE5FA5730C884FE80EDE3631400EAC840B2078B35B1666F4B96B4A8826868DD00423780A00186F68161A85785A151330C953AC050A40603F80B05E5FD61806A23F00552F22B502BF49809993A0C1A329652CD194B250C008183C7DDDAED2ED7BDD11480EF841143C36B01C3397F33979930A60289F0C35D47890E6DB4C39040850666001C38F524953E60084EBEDF79C823AC7DE1DA9D42B68895D5028686C030EA1F133E74E9479D3F77FFB038F2804D230C3D264215061684BE30B492FAA6BE300008C38501840D00F8DFCBD1EA330C1786A31E772BBE74F2BA8A5A007C28C6F0BE80FEAB7AE72BD43F96694BB6149656D6906134A3C2A0127DD404C331EF48E21E91A6D14C684A5F67EB90BE562D6C094EC9EB3CE87EB7C56CF9C78B14D5CB130CBD22D0DFAE1DB059A0B6A0B60ED6B56622D19445EFDA758304F5D4461A865301F1E4ECED7B83FA0CC381C1D13DB472E3FE0B7BB11E017C293AB6A30A800177ED40D40F967EB360D386E4BD75DB1DAE100335551800049D6150F1170683014050850152C5A005FA642CE5DA3296432B6C710D4EACDF71D2270827118CA981978443133CD879A8EC51EEDA015A71D60BE632A6E2D760E947EDFF8EA317BCEF11233463C17083AE04C00F8099CF6A867ABDC300758BFBDD426A581F8A2EA5156569230A409FFA7D98EDA0E6A15A86A5F425143A6CE0A04EDF0CC1C69D82CDBBCF7DB6FF6C4C607C6613FC71B03E868100C18C6518C2D2F31100107E7F33A11F180004FA33DA177D606B83C52430D154762FE9BBEE50B7598F25DC0B2762FA123662425104143A9809C5A0EA459BED8FFCE01E9CEDEC13D50603A4AD1FA5EA136AF3210002836750107480A1450D86C696816100411DA17F837AFABA425BFA7A88852D4E3E918DAB76FEB4AB273CACDCDCAADAB5EC7E7E5020068FE9C3AC87BA37589BC28C874D997C2BEBDFBDBE76EBFE4BFEC9CEBED1ED8E5EE1E4E7A024DCA205CB1AF8C3D9A40F3BA8E084C10002E1212952E21A928C193617BF38B47D06D70A7A84E1ECED84DE245543B3416038773BBE6DD5CE1F1D189E700E4E384819C3E61928475376B66AF929D4C8C3A83B1C5CE5C30FC2A81EFD65A0FC89275EFF9DB37BE0F19BB15DC7BCA34860521E0EC8833618708887D3CF417860E08CE22F2861500B38B5AB86A2078001006643D17DCD843E61002DF9CE37CE17218B8A5554B3AC2D181381A28B66298A6BCCB0CC0C4AD5A0DA0AB289103B0093A12C62D50104ED331FD40E66A7ACA75155FF4728855AF1C93F0F5F0A8C6F74BA1183B16C18ACE1369891A0053C23D3D10932661B0A0C25F2867E9AA11F0CC3AC72BA169549B6EC3B1F4E27DB262AE8B7D1A9860E3BA3F1B1E82DAC41A44B6DAC4B04AD0C9B5A0008800134042C2175D8E1A4D9E6C3CC07E163250FD87AC99A6D475C6F9EA0B31552A3B54398F1BA34185008F38E441BAE66D0270C3ED199C4F6A477E17B5F395CDF7BD233F897808854BFC8E4FC5BD1A98577E2D28B82E2338A3C83E2329CDD0242761DBBE4BAFC63FBEFD96DF342019E9100DA4159CD3C48C999F60ADED954B5A0BD17BFBDEFECF5D093FE71C42F3E0707E4616FDA3296EA3018AAB0C53534191DE507296C894ECFAF7176BB1528D96CB78B9A08096A6D7022C17F58D8B3E9F531AD00F409E5023D607BA8BAB175BE7AEB1C757C40E5EB2FA6C7C130100CA069C1611E6A95D3E580C858BE78D326340F78300675E041AE1A20E85FC10BC4282A783FB273BEF43355F9700803D78C0343694D3D39EC1581DA6038256FA9D2D2E66F7F703D858EBB05751C2160A71253E803404F150F2C2BC0E93315BFF682E586AFDC4253BAC123059BC735DD60186E610B04845C6EC6E9ADB0658F8BFB4576F526E4A9D61DAA03C0CE7EC84061158FC4E6AC6F84F4CADD54FC50AE190F86D89C625C11E9ABCA896A84EEDDC7DD4E43593E3AF5E0DFA998825EDBFF9CE593B8A6A4B3FFCF6B77D87B4566D0757A11275D7D642C752C6C01184253A5981AD667C91B85A073F1BAED9FE086149562935E0030950B615EAA26E8FAD2F54E5C091CB604BF28D78C0B03049A40F0FAAE72BA161C170905BA98AD552936E955FFE02450CFDF6A8BBDEDCDB86CAC58E59AF161C8A23E80214ADEA836E8126DB0DD8A0123F005D82CE363ACF70FDE212679848B76FDE8E60E317D884A71CD883028FC05082E19AAB0E594E79DAB18DBC168A1B2E610A244508B8E513FC9928BFE51E9B07DA9ED1108F88C7618F45DE5E41791188B3B9DC1D79BCF561BB100B0275CCC84F46E405C566D8AB48C93CC43084372AEAC983D86CF7A0666783144AC2CE336B7329DBE74DD6AD8B664E85C3DD71E0C067D15B694D734B463E10E9ED2A25C0EAA0060B565F72608F9C20771EDE183A1545ED7DC1F001513F0ECC2D52BE2738A3B4165706D1482304C18F28ACA2B31858C69631B850950730283EE65C92080C0B5B10F837AFA3A3557761F6301206B90399B26565906F244AFBA78DCF6CB2E96777343FCF0C1703D28C68F3D9277E914363184C5222A81A059A29736D9FD640F09097D54FB706D0461D090B1FC70D7919D180EC663EE7A02418A50305400F1C566E32C24CB127264551038E0DAC3034345756D155671BFD077C3496F32883DBC792A4403DFDF76681F64939AB95CC043D35CAEF89DA1F25D80A65E65CB59DF5DBD982F16584001686452762EC494BBBA397760ACB782E2F2C2711656D698EC834D3D2ABB8DFA9683B1972A4D0547C1D4F2A34F4BABEA3BAAE992B09B8360CCB6CECEAECE8FBE39B6136B04A1D46F8A3204ACA80720EA7BFBA72976F79A882CAD36DBED91D7357541108143604C0690BA0F9C7277C68BB37A4E1ED930BE5F4918D1749C3BA40DF962ABBF7FED78ACAEB1A51B82099C39185BEDA49BFFCFD4EB5F8AAA1F6A3D351C43A7F9842F0C0CE1A58C73293DD6EBB71F71AC6D686E6F6C6D33CA064FAE0DAFB5B4B6B5399CF53C81671B4381AF968250A26567107B851B648BF0A8733CE94BF8DCA277B7664A8B65AD7465C041307A5B5199BC64F966BB2FB1241C663E081FEDFE20FB0288A67BFC4013CC8493ADE907C1167033D1EAAF1DCEB994C96B6AB8A11E5DADB2BAAEDAC9F5C685A75E5CF526167D40BC1FCE1798AA7D5308197873A8725B38FD00581E42FC18A3489225B05B68CDE77BF7DD0C8D8B949555CAB9E11F99D6D6DED19E929D9F79F482F799897397AF42670F3692C2665EBC9760F093C8753B18029C07C81882738867FF52DF00CA8CA97FC0F044EFCE5BB9F5AB7D27DCCE5FF209F2F70D89890C8B4F4F49CE92DECFCA2B2ACCCC93D15E24E3FA50BBAC304B5A5498965B9017959499E277373EFCCA8D509FED87CE383EFDCAAAB5B80D0CCE63C45A3FEB6938EBD9DB4D74BA8B40F7B37F95973C0208104BC6EB52608B32C000B762286ECF60AF7A5D01B767B0BB5825365C1F4EB77A8B8EE99B38A6780A8B5040FB62F61C26E11CAA9D4DD853D9A8970F7E5BCFE5D8BA5D7EF9E08740B30524139032CC1FC039362AF7E7E025900086251F3D50D60B9DC5F52176183FBC5B1176F62C33C16B6B946702B04BBB49EC8D2C7D0F8820863825ACDFD170EC8510DA6FD0523DD182EB43EFCADBC8F09A99C51A4E0541553FA45345F5704EE00077E8A99F6BC3F5A175D531B5518CF330CE0552EDFF02DCA524A9371DC0180000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (2,1,'Cloud_(24)',0x89504E470D0A1A0A0000000D49484452000000180000000D0806000000B36CAED00000000473424954080808087C086488000000097048597300000298000002980136D347DF0000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A0000021C4944415438CBAD92DB4B14511CC74F2A2122450F3D083D2CF8DE63F4120C11FE0783F8D67B10F66445D06C2F6D5941598A6B4B86CC2E66256E8CAD542666175BD3DA09476D6FCDDE9CBDCFEECEACB397F975CEC452C9AA90FB851F7338FCE6FBF95D0E0200B45320C4345114D37AE1D6E34EB3F9451BBE68DA2DBFAE477D6374E0CA3DC789A7B36EE91D1FD03FACFE04F6F5A2D2EF98E1FB869CC7F70D181873767FF3862B412903DE680A845002F8A0042BBE18D8B8F73233E83A8910DD7CB1FF51877970A27DB7CEEA544F1FFC22F80BD9421192B202B1741E4209190218F6C380C5C131BBA44DCE2F2B9FD64478B3B2AEDF665D8B16EBC4E13D016434D71ED82FE13354AA552896CA902F6A90C1B0C45F30414C827B238CBF71F0043661D91785EB63D31CF97F470059A8C974B675DCB520E83AFCA37205C3340C53FFC0564509C3B2E0DF4CC3462409339F85D2F901F6505D00459F6B7F3835C70BC15855CA168CD110D37AAAC1327915D238E2383F9ACA01D9977964AAB7ABA7AF0351544BAD1B632CA3DC025FDD5EF61E22D9250C53B512E4D42D88604838993360EB784F77598E25DEC872DF75D4E30D95611FD27171A42B75EB372C853B8BA464B00C3B8F21FBF4C7337241854689C0B47205140CB33A5E9D3696FBD6FD5D8406CB27C65486996B31963C34CE757D5DF3CB8D3096F38AFE727EC973C736796ADB33A59B7BAFDA4C96E127F4CD91673DFF15D6E7DD976FD88F90A9D47C7F0129D2E0172D250F240000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (3,1,'Cloud_(48)',0x89504E470D0A1A0A0000000D49484452000000300000001A0806000000F135DFD70000000473424954080808087C0864880000000970485973000005310000053101B7ED28520000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000005794944415458C3D5980B4C935714C7AFA82C6CF335E6962C4E32401E4137591337F6C874A81B4F751B922D19C4647318936599899A4D863093395FC8700EE7467460419D30C74307CA43606AA55A942ACFB640A12D2DB4E551DAD2F6ECDCEFFB982D0222C3514F72494AF27DDFF99D73CFFF9C7B090090892EB46984EC74210151AE8417F138F10E798C90A8E9ECFFC9B4FFF2EE71FB30A187A2D049DFC859E8F002E215B6782E2F6A45CC8E435F7EB8FDE0A6159FC48712FFF045C427E26906EC21833C78C4791B67928088851BBE4AD9F267A548562CAC3754D4CA6C976A65507A530A85D7EA6D274A84863DFC6241F067BBDE2301EF3C4581A71C80717E41949BABDF9A25B9A5D7046299CA266EE9845A990A6E4A95206A56C0F5A60EB8D6D00E57EBE550764B0A5965A2C184F4FC32E21FEA4178BC99530B80CEBB2F8B7E45209628A42A2D4814DDD0D4D1050DED1AA86B53C3EDD64EB885303508730361844DED08238773C206D87BB2443AFBD5F7BD2904571F2E4CADD02DB67CF90CF6F7C4B6DA38A38F1FF17DD7B75C78BB49A9ED858EAE1E906BF4D0DAA9031907D38830F5720DDC41189A19164681301D508ED9D89D75A18178626DE0F6C3FAF1F5581EF35A5C525ADCEA8D8991AE2FAFF367B61AC24C3A0013312CC8ED07D2F76BF47DB6EE5E0368F4FDD0A9EB0365370BD386302D084333D37C0F8C0A6194701E6B233E2DE76AF289C2BFB38B058AB29AE6C12B775AE1925866FBBDEC86FEC0C9E2D297C2BF08A44A36B900F8C259BC0FDEE850770F184C66E81B30418FC108BABE01188251218C0261DA298C9A8351DAC3A811A6134E55D4323035123633C246769B5DA96B83AADBAD7024AFAA6D43E2D1F50F522FF78FFEE2C867F7FD9A9B69B3D9C062B58279D00246F320188C1C4CBF11B408D3D56300F598305D58D812A814CBE00ED6CB50664408731D61AA11468030074F97D67BACFCE8055A179301E082DBC7EFAF4A6113D8D9108C09610610A61F617A11463F1C46EB0843EBA54050CFC03462F1D3CCD0E2AF6DE1940C61AAC42DD66D69B9C768639C30C0BF1D165F32C33F729546AB37C328664598410B0763BA3F4C89A8196174D0823052252A998253323B9823F955F279BCF50BC7A34CF73A4EA5CD6BF53334F26FC6C4C7261DCDA990E0877A0D26B89F8D08637084B9823D424595AC9B533235A764CABBB25C545D670CFE74D7AA21791D0BC4CE798CB8EFEBB3C8A2D0A5DFFF56589C5D22D495DF9458695A69BA69B19D1736321F1B8F8D0643A3AEED1D004D0FA764F6B2CCC150F5DABC376337CAED73CCC23AC4C03EC9C8F93098BB91F75C396749C4A6B567CA840A1AA9D18CAA0F75E641CC6AE560CC16E659BA7A1046D7CF29D90830A9A72F36271CCE3A9D9C995FB4FF78DE1F1BBE49DD3A67590C6FF868C2FE098A72F3098D0BB980730D55998769168431238C11610C9899BE01B3A32C230C6D9054768737CC5A6987697B72C67EE2B5E6F9A1A6C72A0DCE2A99458256BA57FF2FB339C0A02CDBF5185A0B5D083252C3A42029FC023EF6A7F96C7D0404B8867FFE5D34CE2E569822C37271E831DDE8FC580DB351AE36CD0F8A0E64CF1E581C2959E732A84A38838DB76126FE94FD357388224BD7CECD29ADAEA40F3A9B8DD53033F2CA8FE3369A4DC88BAB9FD891CA4FA0E9726673906584D995766A2B5910E4C68ECADE21819276B57313D899C168B2BCF5F1B620747E3ADB03B0A2F905E567A9123C0A967EA6E817DA0FEEF6017A52C243C6C5CB35429379D0E6CCCE5FBC2CBA447CC23CE9CE711C25E8958857A4F79EF433FBEA24729595B64F2732B952A34D3CC4DFC99CAF715E1B7998A3D7250BC3E6D1E3A3C7DBB12B36271DDEF243C6D99F7FE4E7674EC54ACB2E3CF6EDE1ACA4E0D86DE1D4273AEE0CBFE1186594C6EE4CB7151DA0FC82DD99AE3715CB6F9D3B73FFC4DC2FED1CF1E0FF0FBF0B1FE0DCB2A0670000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (4,1,'Cloud_(64)',0x89504E470D0A1A0A0000000D4948445200000040000000220806000000EF55DF8F0000000473424954080808087C0864880000000970485973000006EC000006EC011E7538350000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A0000079B4944415468DEDD9A095053471CC6575BADDADA6AADF72D348906A9F5AC578BAD821082755AB463D5F198D17A745A75EA4C47456CB5965A19CF7A753C40E9082A15B1155144E5964308844302E4E20A8124842360B2DDFFBE2406884080AAF09F5932191EC9DBDF7EFBEDB7FB401863D4918D543784BCBB2327A7D7D194753D10D7B3277D85F7C8F335F2FBEE704D477F6F9BEFB7433B3E654A0FE4E8FC26B2731E8458BC71C8DE858BD80B1DE92BD7C51EB1DC87A389BCFE6884676F06C8CB07D1311FE24946D6DEF56DD2EC10C7F593355EC7F79DB9FEE0515044922C243A5D13783F4579212C417AF4CABDF8953B8FED422CFE34348E3F0AB13DFA22F47241B47FD441E28E64C4D9AEB30FFADDB81E9729AE4DCA95E34739729C902DA32D364B86A385121C919A87C905D82F3C49E713703BC96DD3FEB5442D23D18899BD61DA742A00749EC38D8F751BFDD9EA1FD73CCA2A5009250A9C2129C5E9E2122C2828C6A97945F8B1A80827E716E2C427004586E3B3A53836538AC39273F1853BC9F5DEE76FC6F59CF885235510F1884E01808EFC307E1F32BFD97BFEB87C245B5652272A2AC7B9854A9C232FC3D93205CE942AB0D008232D9F8191620546708CD07020F05ED1D0B9AB3E46939CFA9994C09829182618A7A975BC81B65DF664BEFB9EBF7E4EA650E9A50A359694AA70414905CE2F2EC74D61949A95610DC6ADA41C7C38384AF3C197DB9CD1B8F9EF90CF7E839A2918A683C760F27E04622F18468CF45D0A1ECCB683A64C1B00909118EB31D8F3DB5F36152AD5F5252A2D2EAEA8C485E51A2C2FD3E0E660643503E3BE201F1F088C2C1BECB4E25334DE653262F3E64D5EB275EDEA5DC77C769F080AF0B9107A75FDDE533FCFF4FC6171CF498B2650381444FB1461FBE883737378B324C54AB54A5B83CB2BABB152538D15EA2ADC6618050C8C5B893906EFB3A1F907FD4313C21284EA641131D21CE2195912DAA232C4F8DF47D93A3FB2A27CE7EBBF971AE818A75EED8160DBC5207DAE87FDF9E0F06BDA1A1D865659ADC3EAAA5A6C8251A6A96A0843F97C184F1AC31097E28B11A9382653625446A1799A24980C948088212B4A7094A07AFFC5B0FB0EEE9B1DDB03C196D1EF8E267DDEAFCFA4C56E8A0A754DDD533DD6D53FC535BA7A5C5D5BD70046853518E52618EA0630F2280CA5190674FE6A7406856152C663238CA44630220522C36F7FDD4DEFF7D15763204FFCBF0020B971168ED9E87DFC303696DE60C04FF57A4C61D43584A169050C991186B8118C73E1C95415541992D2666184C408AAB71C093A4DCDB30D2A68FD8520330E6FCAE57F1E24622BD59130202C41272D95912535C1808CD110C6E16BF7653357EC9E85B8DC9E1D0E80598FC9E8C312C47173CF9316A9710B658641A648AD1146951946AD7518155A5C648471375544E7B9D8DA349131308416301273E406AFB3376F3061CA361534BFA3A3A6E7F916599686928DCCF4E94BB6FC8A6D2C8051FFB4F5304A892A2046DF4911592843651546B6058CDF2F47A4D1AC60639AB4DE790822F6AE03911DCFA1FFF465BC4D3E17CEFB064688FDC213757FC766D211CA2537019D6A6D196C80212A56D27D03C0B054467330CEDC8C2D462C670EBD777372F46E313936CDF75C2732E2EEEF73176D5E7D32245A7EF5A1A00EE61B74186E4255C58C1644D9A087E9D4880C06DB54D11A1869647E030C2528435DD5228CE0E8F4DAE1F356B9D3D408DB6E78B55B3C884E0BF0AFE76CBF1B761E9C9418DDB64301D782A3D27570232D152C7D7033065B2958C2D05BC2A8A730400D26182AA33220703D0F06E483A5DB7C03F81BF77AADDF73D277C7E14B7FAED971F4A77E5397F2116BE13434DE6D341DDC4653E499EC217BDBBB4C3E16189E109D2136B4B543ED29F8CAC630AA8DCAA834C3A8B102A3124709C5540D00436254463E5146B654A1BF1D2790EF3D7DC58F820033777A96198C00D6F580357EABEF45FF8854D18BEF790B3074CDC1A86460C46749290C489FA00CB95119963002C3625306CD5AB90071160F302981497844FA43E62CE785C409EBE08B5EB56A0D0C81B8D80CC3A40C6B30A253730A07CE583E87990E748927E6306EFEA813C1910F60A3F2AA9781668CA6308A4867CDCAD03E5386C20A8CE3976F055093A42B05ACF5135CB837E3322AC07C3A53598751F74C19169B344B18F11922291ACF73A07D877573C08CA5331EA489B4B81357B3301AED5865A5AA5AC4769BCA6406F283E5F2CD9C7861BE1A77916A09469E5CA1A6872E1480710AC4A4E596E02E588D61D41018318FB332108BCF614E94C0041D9C47863E4C89EE6C1ED036187A7CED4E6C9069DFC02C83242E3AF237F0F30A153506DCB5AB42ADD53AAFF17247ECD97DE93248C3003CBB235171DFA9C0634A4D95FE65A4C01751244B18761EF2DF83D81EC34C274816CFF5F87D606938EA1FE24F1C13AEED529D27D15A1F101A7911367A8CF9311BA386677E908E8839CCFD7AFBFAEC8242B9A18B4821FD498168D9569F0DC8C1D58E3E57B0D815363DF8043A63DC86C03AB962FBC1EF8F5F0A0D0889888B4D118AC4458A724DA952A57DD55B81ACA42C2A2943107023F2BAD7117F2F34C1F5437ABE41834FC32DF1734E83883BC2236C16FF3DD824913F9E40830387370BB178735FE9C6769D0DA75734E9B19DC7D23E405F18C7EFD6EA33C126FFE84095E1D4AB5334B857186D7A08D2FCA9D07F630D43FEBD29775D0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (5,1,'Cloud_(96)',0x89504E470D0A1A0A0000000D494844520000006000000033080600000068820D610000000473424954080808087C086488000000097048597300000A6100000A6101FCCC4A250000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00000D154944415478DAED9C0B5893E51EC0DFB0CBE9649E3A9DEAC4C9F2026C13B39432BB295D74B00147EBAC4CAD9E3AE9C93AA5873C7AB253E9732C2D05D3524951434BB110949BA2221707C81D06088C316EE33E068CEB06DB7BDEFFFB8DB1B18DEB80D0BDCFF3BA293E1FFBFEBFF77FFF7F431863345E9BAC9B98BDC50E21C124BA05BA4DFF0EFF8EEC7AFEDF787ED65193C1F8099D08D8C5E51634CDF57768CE923B9083FB14346DE95DE811FEDDE831F23AE3A53F2067D7C9E841C1EDE467B7219735B71840B9C906607882B743AEAE3753A183C0672EB90F71780F23961B0B39793C8A58BCC79123EF49F27E3EF9F95CE4C07546CE5E0EC8D9F32134DBEB7EF41081E3E2F97BE42CB8958131F1418C9DF0C1AC80E0E194CF5C3215B1798F20B69B2B62F35F9EB3EC23EFF7B71F3AECF3F3B99863E7920A8E4626157E1F7439757B4078D4A6EF4EFDB4D4FB9B4FEE7659CE434E6E4F5020D3090C96D79D54332638883138F5C464C089654EFC547AB2397CFEDC651F6CFAE97C626E625EA9FA6A413916E695E1B8DC521C9753826344527C315382CFA717E18894427C3A210F07C689B4FEE792E59FFB9F097579EDDF02728DD904823DBD2ED58889699A4659F8BA53EFE4F927E4C8E79013CF5DF8D6A75F5C4ACBAF1595D4E04C69154E9754E20C09BC32EFD38A2A71AA5886530A6538B9B0025F2DA8C049F9E514CCF9B4227C8A80381C95AEFDFAE4251177ED576BE975E1FAE02B26A0368CAEF0C15EB316DB836DBF95E3B532342E235F2C93E36BE57538AFB40EE796D5E29CD21A0C30B2A5D5388BECCCE22A1D10CB3062B34BF0AFC21C7C202259FBD991882B5317BDB588F88DBF50A70D3E660241183DE13391CD83C46E3F3BFF55EF4D79A5D5EDD26A051657CA7121815020ABC7F915F50C8CB20160149987114BB4E270549A6657507C93D7FADDFF442CCFE9D4240D12C26F01D4280020C2B727271FECBD236FE1DA2D07F696D6367697D53561698D0217130892AA065C44B61E4685218CDAA1C120FE2348780DFB862468DED976D4870098491DB40E82C1B6D3E71BF033C33D8EE1AD95854F6E026C3E87FB009CFCB55BF77F57A368D5CAE44A5C5EDF84010281814BC8EE1F46DD9061441187BD3B2441BB72CBC16D5413C01C419E010206270D3EC2593099C92FB87F44EC65F7D00DEF416B7AC25B9A04A23183615DD3C3443BF742B8F8C4ABEB37D634B674D734B6E22A8512573628B14CDE8C2BEA9B8D61D4580F46544611F60D4EE85EBE79DF26E2F0A751E74C37F10FA019B33C9D11C7731EE2B82F80034237BC77E43D86381E8E34AA8230190ED118F912EB091F3E309CAE595CE729F35E79B3BC46D12657B6E1FAE6365CDBD48A090C5CAD6819268C7A5318A5E66140A4E473FA8ACA89FFE17246D0FCE720ECB57F6EE5DBAF6FF2D9B9D1F7F8895D011197FC43E3B24E5C482E3A1A2E14ED0BBE2C24F9863FF7FD6DEFDE326FA90B9A41123FAA294C783B010010D3F3D453B7D353C7E1F2D37225C5CD6D1DB8B1A5032B5ADA7183B29D82A82320C602C6B1E84CCDE643A192FB9F5DF5C546DF63677E894E91A614947765145531BE43CC445309D7CA68FE114FF28F1851090EBE22521E894894ACF9DFE12DB7CE218922683368C328FA07EB9C7EA8D380AA9313B7EC832FBF6EED50E396F64EAC24BBB9AD1337B5F6C2E8D10A13180DD6830121ECDEB349F862BA582B32E33352C41049C998B09638F1440318B139521C1893D9FCEDE9D8AC85EF7CE6859C797F460F92C3354A9A609DD30F21276731B1A1BC574B2A6B1BDA3ABB707BA71AB791DDDAA122305458D9D60B836A85B5601010E66044A58BB15F648AB1992A3686912AB60C2332A540BD374458E1B1EEEB9514824E137E530098D34F220D505596FB33EBB61FF257757563B5BA0BC36B2779ED505986D16835180D263020B7D81B7A155FC92B35315359063020034F338251A187712153A2F936F84A9DDB873B0454C3A94FB0AE291A29003B1ABE39F16720969B202123AF58ABD5628D468BBB351ADCD5ADC16A02A23F18542B0C6128AD072338F11A942E18CD2837F519D90630328C60C8F43022530B543B4EC5C81EE6AE9E4BC3558175CB1D234FBAA076CFE6BB3871DFDDAC06891B2CB330D4E66128470AA3CE14069CF03D671389E06B8DCD94018C1C02839A281D8C4C3D8CDE1C23E0425AD32787C22369384B4D11B21B7700FAB81F922E369FBBFF447834EE675982D14160B4EB6050E76D04A363C4300E4424936CB9C2AC993284913B008C9DBFC6D6BAAEDEEA815C48786AC5A2DFC89C2F2D39783920366F85A4BC4A8E07B9CCC1E83480D16604A37360188D9661909014C7644B759AA1C0508F328221EB8541B5C2028C10614ECB7F0E8545E84AE0B78D0B00A3FE2D7C089AD2F35DEE7B7AC50622502D1EC63284A12630545686119C9087C3920B0C34A3714018F96660644B6B8816C4C9A92F8032074293C60C80BEC20926074E3D6489D02274F26423B6BBE7AA8DBB8E632BAC1E18542BAC04031A3B2763458C66C87B34A369401826155BB20F4624D52FFFAFDF4788FDE23D90F98F3A00BDE0E1B443040042A73515F7B988C57F9E245EAF11009B7D8E04678102F4F1C1235A70BDEE0161A88C61B49AC2809032203ACBD44CF585516B1E8661F9FC52A6A4EBE37DA77FD1D596AC6286FAB7F110E34369179A2AB405C87F7E12FBAFAFAFDF1510E8179A50B93F2C49FD7DD855ED1E9275FA8624E0DD6712F0CF31D934F6869B02B33262AD18210C48D802E372B0BCB91F9F31000C4935937DE792686A476074312DDC19565B611B8FD20C7A8CC6B29D87700BCAB530B1C0727F81CD7B6FFDBE90B81212556842487C0D31327C48B8797537135AC27BB82188A7C3530AF1C173A95485ADB5FA850191944A6D1606F4968D3463983000A64F505C3D9DDA0067DC53CE069304E3343D656DD00E7D9FA17F18E64F3EAD9D93F49BC39D07E585ED3F86251C8E4AD740B31C4ED6601708048A5ED159C534CCB4E6B20CA3CB040698128B66AA2F0C85218C6613187B42842DC889985E47DE42C4F15C408290A7A10A8066D1719A474944E8C4740249E63C88C90DF30D1510BE23EF4907B7D5EB8E5D4A6B0D12E6D19B198973851BB3A68F182E0C5A0A19120CA51E4605D97EE149EA05CB371C59B1D1C7FFE35D3F9ED8713838C2EFD78B718782A363D7EDF03FE8E0BE662D31D55E68162D83CFD6F98B29964ADBE6AB9A24B47CFC6FFFF23E199BAD8E1595D0C864A22C0886AD0FA385C280E42E305EC46885BCD96C974F52A5C0C2ECA28663E1F1C9DEDF1CDD4382942504C02C2A5733053DE3C1295019125ADE355FF0C6C998CC36E8B94EE46502A36F5D6A8830AE919CE05C9A98C2E8B79761D0728D4ACE95F2566FF1A69D38980464A227BB3E0074A6076C1787B7D8EFACB03422B570429DFC5185A1EB65F48CC5F468C6601B4B05E5B5AAB7377FBB950EA551C7EDACAFAAEAA21EE2B11F73BD0B7AA3AB3ED9FB3D4CA2C12FBD5E572F0CCD906040E31FC2D2BE9A31982E1F81D0B97CC3CE0DC4CA90A8F2993B0D2224F207A80589F56F9EB3D4ED6C525E3BD4D26F9445B3EF41C2803924739A31D896AB305B5C8AD81EAE34C8D1F516989A3E94174872B17EE771BFC854B1D543C6EB050664C70399A9812AB69B7C7FDC4E1339C81798F1175A6A9802E6E760687C1AD4BF6DCB3C0C803050976FA0966B8430F32A4499B49E46B3673AB844AB9A4F9F4BC95780BAD8D6207A19C36CB9661494C86812076129CD96E10F07F77B1F705DC54DBC56A6818BDB96F560F4EDF2553734AB9013FF251A921A0278E1EF9F0B520B2B6CD21F290C5DCBB5DD42CBB55AD1DC4101C0432650CCA300D82FDE73F36CAF67D2C4151D7001DBB21E8CBE2D5769655D3DC98E17D1491266FCB1D70987276489AEE7F87FBC601896CF53728A44F4512B186660262C7AC3509F80307F69955C6D13E1E8C080BAD4DEE361FB69271186D998305437DDC0F2B2BF7BFE4A5E91ACAE0348D996F557534B6B8BC34BEF7AD25E424F22867BE67B60DCC2C9E3D14FF71CDB57256F1E668BDDB6FAD104EDA7BE01DB69895A9F03E801E09B68310EC8B0DC5F8849CDCB8190C9B6ACB7422F279FA7CD9BE9B4AFAEEF27F7D6A50574EA61321DB275725F9A5B545E09E1934D1146BE246555D23BE62E73A30FA5D31284403FD2623A680BBD4DA22693E7BEFCBAB8BCBA1AE2D8EBA92C3DD62BAFA82CFFF93736AF4033B90E86CFAE61F32D499D438626336DA7B92FFD2532FE0289613536A730B4D5D0A4547EF5C3A9FD60D2E9280FD87D9A7819F786CD4F3C0304F85E06A0C6E12D6471D7FC23EC7272BCA2A9A5C526DAFE57A74AAD3A7F25FDD2D4456FBE861CB8F398E79705169F5FEE7FEE1F665F7A26E0E0592B36FFE5573EDCF6B97F50D499CB57B3D35373C48505D20A5959555DFD8DB6CB99D7DAB41C717ED079E1C52F0F04FEE0F1DE56EF491C2F3E4DB4584BA653734EFBC0839C8AC096C6110104A4CEE04466719DE95C0CA4D31CDE6262A6DC119BE701238A37D4E6F0F93015AE9B105C80586E73E81789C08907C14372CB9CFA7E47D9073F90DBF3DD3EA04EF00BA09C0ADA01E3E9347C251B7EF98DB0E9FD2EB6A79D2D3898200F70B0F6BA678DA9E007F760DFF0BEDD4AA07BDA1CA0C0280BD5921B701B8E26A2DE07BC873233FA7F8086396385BFB0100000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (6,1,'Crypto-router_(128)',0x89504E470D0A1A0A0000000D4948445200000080000000790806000000F1A3291A0000000473424954080808087C086488000000097048597300000DD700000DD70142289B780000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000033BA4944415478DAED5D07785BE5D53E92BC77BCF78EE378C4711CC7994D08653440080402348C42F9A18C104849986D082DA510282D7FA1A52DF42F7B43C3DE09213B8EED78EF29EF255BD61EFF7B3E4B89AC58B69CD834A1BE7EEE73A5AB3BE4EFBCDF7BDE73BEF35D49CC66334D2FFFBD8B641A00D300986E0507CB85175E38C36432796BB55AB34422D17CF9E5973DD300F8812F6BD7AE8DF3F2F272494F4F5FE6EFEFBF08ED130C1068F47ABD1A20A8FBE69B6F76F4F7F72B76EDDAD53C0D801FD072F3CD37FB8787875F1A1919796B7272724A7474B49FB7B737B9BABA120040434343A4542AA9B1B1512197CBAB7B7B7BBF3C7AF4E8EFDF7CF34DC53400CEF065F3E6CDF31213139F49484898879EEFE6E9E94952A994782B93C988DB080C2040A0D1680410CACACACCCDCDCD258383839BB66EDDFAE53400CED0E5AEBBEE9A171111F1FE82050B6266CE9C49A07DB15FA7D31D3B8641C080B06DABF6F676DAB76F1F7577770FAAD5EAEB1F7CF0C177A60170862D1B366C880F0B0BDBB574E9D2D894941472737323854241A0771A181820F87CB18F57E802F2F1F1115B2B1818041F7EF82103A41F20380B4C50380D80336459B76E9D4F666666FE92254B5266CD9A250C0AFF4EE5E5E5D4D2D2422E2E2E820DAC3AC0C3C383FCFCFC081A416CF9735E0A0A0A04130407071F361A8D2BEEBEFBEEA169009C010B28FBBED8D8D8DF2D5FBE5C1817FE9C3EF9E413EAECEC64C3EB61F42AF8FB43E8DD2A30800C7A60665C5CDCB28080005788450A0C0C14AE81F5C08E1D3B982D8C58CFBAEFBEFB764F03E0F4F7FB0130E077A0FE74EED14CF79F7DF619151515115C421F18E0AED2D2D28F010025C060D46AB512B805F76BAEB9E6A7F1F1F11B2116531904BEBEBE2242D8BD7B37F5F4F4B0ABF8064C70F10D37DC30380D80D378D9B87163D6ECD9B3F7E5E6E67A32951F397244F872F4723D8CBD116EE0F9929212DD098D2591C8CE3AEBACA4356BD67C9C8425343454B8828A8A0AE13EF05A8935EBCE3BEFAC9B06C069BA6CDBB6CD05D4FD97ECECEC1B43424248A552D17BEFBD277C7F5454D451B8817320EE3A1D36984422BDEDB6DB6E59B870E1FF227A90300BB0186C686810E21061E156B88187A701709A2EF7DF7F7F1084DD073939398B66CC98217CFF4B2FBD2480801EFD02DCC02DA3F57EDB0534EFBB65CB9683C9C9C9A9414141840880AAABABC96030B04BF80CBA600D2202CD34004E4FFF1F0F21F7C5A2458B9239BC2B2C2CA477DE7947A87D2CB77EFAE9A77F19B7D12412B77BEFBDF7D9B4B4B49F3300B8E73300E03E0891403544E532B8998EC9FEEE5B9FFE7B545B5B5BEED0802E4C6FD2B79256BDFFCD179EEE9A06C00416D0733CC2B83D080123B9C7EEDAB54B8838D0BFA6A6A66639C4DF412700C06EE081ACACAC8719000C24B95CCEF4CF19C35E4410F3110ED64FF677FFF08B9DFFA7D51BAEAB6968A646793BB5B6773DF6FEF37FB8771A001358EEB9E79E6450F811D0B72F87701CFA81F209EABE373F3F7F090C59E1CC75AEBCF2CA2BC022AF3300983DBABBBB45480816D0C20DE4C2D5144F0500CC24B9AEA1A58D2A6A1B48DED6390D80892E37DE78632EA87B0F7ABC2B67FD3EFAE82342CF2788FA0E44033F420858E5CC751042A69C7BEEB9472004BD3931C4A124A78FC100E6D6D6D6CB1F7FFCF177A60A008D02008DD4D2D6310D80892ED75F7FFD7218FB1B44001236DAE79F7F2E42383082BCB8B8780544618D33D7898989095CBF7E7D4974747404670C5908724E80DD0AAEF7CBEDDBB7FF61CA0000FA670668699D06C084976BAFBDF692F0F0F077D9687D7D7DB477EF5E82B062003443C82D473857EF2C00E006F2B18DE768C2D2FB454A198CF29B279F7CF2D7530580260B009AA70130F1E5B2CB2E7B06E1DEAD3CA8C300E05C3E67F1121313FB61C4E7DCDDDD7BA0EA8D6817130EE7F4AE09AFC57BEB7E7E0F637BA5A7A73F04571286A882D5BFE8FDBC4047FCE9A9A79EBA73CA00D0DA2E5C40B3BC7D1A00CE2E2B57AE3C0F06FC2D42B4F99CBC6100B06AAFADAD15E3FC30A430A0759067BC85E91EF44FD694309FCB2CC00347D000656092BF023CD5616161075E79E595BEC904007ABE6080A6690038B77099178CB30B4653E1FF55C25832182A06060A82EF9672EFE5A15F5E38A6771600EC46D8F81C05F0F99C07600030B340605621D41C848BF8CBC68D1B9F9F5400B40100358D0040DB34009C5956AD5A150D231D86C1C2D8C04CEB00419F46A3515992377C9891B74CF158F4FC06AF5D79C5F15C146A6D28B3052CBCE5C5CC6DC823866017F1062E460DC3A7598EBB75F3E6CD7F994C00B4B4750A064034300D0067960B2EB820DCD3D3F3087C7504276DE0E7C56A2DF6B07DCF2EC0DA266C40DECFBDDAFEF8D1CEE5F5E8D1A374E8D02115CEF5E2EB60BDF3C1071FFCD33400FEB30C10020014D902C07EEBC8A8636D47DBC7238BEFBFFFFE0098C6CF02A2CD5BB76E7D623201206FEF1422B0A1B9751A00CE2C5CDF0F0395C005449E8A719D39A7B8B8985E7BEDB55E183ED072FB077E87657201D02518601A00CE33801F18A00C822DEA648DED2C10B836E085175EE8020384586EBF6DFBF6ED0F4D26005A3B860150DF340D00A796D5AB577BC1B7570200D193D5EB1D7D56575747CF3CF34C1B1820C2A2017EF7F4D34F3F30F900680400E4D300709201601FF79AF1003019CCC0F5054F3CF1841CB78DB2DCFE89679F7D76F3E402A09B2AC10075D300706E59B76E9D4CAFD737F8F8F8449FAA8F1FEF184E2B3FF2C823CD68D7180B033CFDFCF3CF6F9C4C00B475760B06A86B6C990680B3CB9A356B9A008098C9E8ED639DC3C3C208FB9A4C2653ACE5D67FF9D7BFFE75EBE402A047688069004C60B9F8E28B1B0180D8A9A07FDBF79C05DCB2654B83D1688C17D922B3F9794405374E2600DABB860150DB300D80893040032281B8A9A47F5E797C61E3C68D0D7039F1965BBFF4F6DB6F5F3BF9006804009AA701300106A80700E22733E61FED334E2DDF72CB2DF51A8D2681EF0B57F0FA071F7C70D56402A0A3BB972A6A1AA8661A001302409D878747C2642781ECF7F1A8E04D37DD54AF56AB132C99C07777ECD8B176D201001750533F0D808900A006464A9A2AFAB76E79B9F1C61B1B542A95D5057C0806B8683201D02900D048D5F54DD300984032A81A064A9E8AE48FED96E70BFEFCE73F6F181A1AB202E03300E0FC4905404F9F6080EABA69004C04005530D2CCA9A47FEBF6861B6E68542A95711617F00D5CC0CAC904409700402355D5354E03600200A87075759D3515B46F7F0EBB004403D63070CF871F7EB8745201D0DB2F44E0340026068072D073EA54D2BF757BF3CD37D72B148A04CBAD0FC205E44D2600BA1900700195B5D300707AB9E8A28BCA0080D9531D06F21661605D7F7F7FA2E5D6850040F6A402A0AF5F948455D6364C03C0A97F120B0050824DDA54D33F6F376CD850D7D3D393687101651F7DF4518679121ADA0A809E3E8560800A66807F3C390D00EB525D5B1761329BCF339BCCDFA6A624D749AC959E443200A010DBF4C9AAFC196BBB71E3C67A00C0EA026AA0016633166C56B280C37CF2006864104C03A0BEB1C907FFC3A52693F96AB3D9B4125B99C96CE2C6DD6B329A5EAEAEA97AE7969B6E1ACACDCD3D84C3674F552998ED76D3A64D8D5D5D5D7196AFD87CE0C0813408509397979711C7984B4B4B4DB6807016085600F4F60F03A0B2A6E1B177FF1B01D02C6F75412F3F0F8686D1CDAB61742F9EC781AD28E8140030F196DF9B746AB5E6EB1DFF7E6F4E697171A4B5D073AAE89FB777DF7D77736767678CE5EB76161616CED36371717131AA542A038E31787A7A1ABDBDBD4D0083D1020293F30018181681FF6D00686D6BCF8351D9E857984CA610616C6174D3F12D1BDD640181DDE73C7FAFACB4842ACACAA8B3B383A62A2D7CCF3DF7B4B6B7B7475A68BEBFA8A8E847F8BE3A0080CBCD751E1E1E3A060483C1C7C747DFD0D0C0538A8CE3318115007D8A0121022B6AEA7FF800E8ECEA4E16463799D6639B3C6CD491C63D1108C300B0DF67FB9A6706D754575163433D69008CC90C07EFBDF75ED8BF3DDC0200554141C1B98840740C020B1078AB0518B43A9D4E1B1818A8ADA9A9611098C602C171000C5A442000F0B71F20007AFBFAD1BB4D570CFB7573DE084A37597AF9284070E0028EEF3F76BC656BB91EFCB5A9B1BE4ED2D1D12E7191C9C44C9F5301C2030F3CD0DEDADA2A00807BB58001AEC5FDF452A9940DAF67E3431368F1313F805ACD0FA36E6969D14D1400558802DEFEDBF61F0600060695ECC72F86B1D6E33BB17F773946E5CE18DF96FAC732BEED75ECCE359A8CE656B95C51515EA6AAAFAD6183B8A1B7BAB161613009A85B0A034B790B4127037DCBF8C9E2008C8C41C3F30D79FBDC73CF75CAE5F240B89C7740EF2FA2970FB1E1C1027ACBAC231DAEA961E30F0C0CA882828234136180FE81C16322F08C06804AAD96A1E1570EFB75132B799F137AF028867364FCF18060DD371620ACDAC160306AFA7A7BBE2D292EFEE6DDB7DF2CC53E7718901F2B27B658DDD0A3DD61447780C30306F50130BCF8354F2B6B6A6AFA02A1601DEE63C0717ACBD6808F0CEC02703D0DAFCC02C9C9C9FA9D3B773AAD01FA0794C744E0190900AD56370F46B91A8D7E251A3DC256B04DC448270840675DC088EB8D715DCB7E8341DFD3D7DBF7715151C1C7AFBDFC5239B79BC5BFF356C253C72CAF39E96436180C267E7228B6469E520EB018C002266CC57B16805A340218440BEAD73B23006D01A018540EE701AAEBCF1C00188DA63834EA7A4BBC3E7B5CCA1E8DFA9D7501A3E98271C064FF5D8EBF1EF9FD0C7A43F5A072F09DA28223EFBEF9DAAB722B10AC00E0054666639BE002C49641C15BD0BD993F03608CBEBEBE06D0BED159E38F0A0088C0B7FF7A7A036006D675687CF6EB4B4DDC5026278C358EDFB79E6B6B7CE5909AF8C109C9F1D1C4F378C76201675DC638403483CEF76A349AD7F30F1D7CF7B5975F54E0DA120B00D8E06C6C33E85EACBCDF9204B226804C134902D9026040392446033915FCD65F1F3BED00C065311762BD1AEB2A1652A631E8F6547A2D1F276FEBA06F0F1551615915E90D46CA4A4DA64BCE5F4E2E52A9D342F0F8F54E52589ACC5A93C9F8B1DE607825FFE0C18FFFF487EDB60F9A34DB6D4F2A0D7C02009801A0014E170030F297635D8FF532AC0136FFE8388D3A7116E079FC85E535B4FBC011AA6B6E23571719CD4D4BA145D919141E1A48358D2DB4FF482994BB8C1664A5516468B0839EECF8FEA3B2C628C61F05387D38F64D5CFB655C7BCF7557AD9BB41E6605C0A052254460F96900800C4B4FFF29D698D10E98508F1ACDEFDA189F7DDFDEFCA3B4FBD0515220140AF4F7A545F33261E4D924438FCF2FADA47DF925D4DEDD2BEE1D13194A7900405A721C69B47A727375199B059C7501A3E51446D722F5D8FF0AF6BF7CC3D557554E1A00862C00A8FECF0080E7BC5D65317CD67807DB3792A39E3F160B34C8DB69E7BEC374F86805218EA29484185A963B976627C7535FBF82BE3B5C4C078BCA48ADD5122772325213C106E9141E1C442DED1DB4BFA09C4AABEB29342880D69EF723F2F5F1764AFD9F7C0E6254301DC6FE97B0FFF59BAFBFA6F35400A014001816816F3CFBFD00801F76B0D662F415AC739CBDC1C4FCEA71E3EB8D063A72B492BEDA7788EA1AE5E4EEE6460BE6A6C3F07360C8195455D74CBB0F165249759D38DECFC78BF2F079EE9CD9E4E1E146251575B4AFA0849ADB3A2928C08FE6CF49A5AC59892405402A6A9BA8BEB915CC9040916181637E3F7B1670944D1C2F22B1B99E01E77E812D5C84F9FDDBFFE77AD58401A0521F13816F3CFBE8D40100B1EA8550AED7E0E56AAC1E13BDF8311F3901BA1D1818A29D07F2D1E3F389131E6CECE50BE7092A67A571A8A89CBE3D50486D5DDDE21E71D1E1B424279332521249ADD6D20130C1FE825262A194141B0950A45122B61A8D8E0A4AABE85071A5F88C470567C645D1B20573C8DFDB1BCC621052C63C6117E0FC60D428D75362FBAE452F7C75D7AD37999C01C01003000C505ED7F0D81B7F9E4200DCF5C0D6AA9F5D7985322B33EDA44A9A9CE921D686A96B6AA12F761FA48385659C92A5CC5949B462510EA526C6121740EC3A5020FCBF4A334CF373D367D2D2F973292A2C8878BAF477F8ACB0B44A18312B2D9916810D8266F85337CE65401CADA8219DDE409E1EEE94353B99B25393C014EE5451D748F925D5C4B4BA72D13C4A880E9B0417E04482CAE67A96D76DF8EC551CF3F2DD1B6E293C2D00B061CB0366A9444AC14181FB6FF9F9B551C14141311306C0188D658041F61796C2F007789A13797B7AD0D2DC2CF4F81C18CF4F0C797EB3F73015C1787C0D7F5F6F5A323F4BA87D366449551D046121D5C245F8FBF908A3E764A69287BB2B2201B91084D58808F8DCB0E019343F7316744302E9B43A3A82B0B1A0B40680D2D0CCF828441133291C1A41DEDE4D550D728A8F09A3A890A063C6740484F15C86338351A3B04629CE7B09DB57EFDBB4A1D91E002AB5C6321AD8F4D86B7F7E64EA0070C73D0F0A0048A412C2569B91366BDFFACB2FCD757373F39E90FFB7FB47FB0606E82BF4F62FF71C221ED8888908A3B397E6521E841B7FBE37BF58185EDE31FC28FC0450F8F2BC6C11E36B757A847825307C11F54000C64745D092DC4CF8F37832184C5400C3EEC3E73C7D8A693E35290EBA6016C5848752476F1F5C4805950238AC05E64013CC055B787B7850757D0BE5E3DC8EEE3E01C4CC94044A9F1927EEC761A6F8A9B8890AC1934872D91D8F434DBB865D84F9ED79D9D97F3A0E8046A101A614001BEFFD950D0024D84AC9452AEB38EFC767D52C5FBA68B1C4921377D6FFD7D437D1C73BF7C280C5A2117220D8CE81E16726C451674F2F7DBDE730845D010DE11F649AE7CFCF82FF8F8E80F1BA7A69E7FE23C2C71BE1AFB311F72F051B44C20528E0D3B9B7F3674C8F5E30604E460ACDCF48251F6F4FAA6E68A103702DF52D6D1400A6C8C9980503033046131557D60134D5D0052A0A0E0CA0B9B313291980EBEB1FA482F25AAA696A85C0F4A4F396E488EB9E54C2689CF0D63EC3690F04CBF5345E5EDEED6161E1F16EEE1E5409D7555E33C500B8F3BE5FDB32007A8144F42AF1B3AA1E1EA5EBD75D2A498C8F4B1B0B003A9D013DBA903EFA7A2F68BE89FC40E3672FCEA5B316CFA71988E34BABEAE98B6FF78B9ECB0DC10662D1C7FEDDDBD39DCAA076BF41085856DD403E5E9EB438670E62FF0CF19A9F98C94C50545ECD630D14111A440BC1222C08F95A85A0F8FD45A54243704E6001DC4312841F8BC0C310836C7CD605F151E1307C324587075313AEC9AEA109D103BB9C39B31284986C6AEDA4A338DEC3DD9DB20192007C367A786BE732266130CAFEDA12898C4CB0435B77FFCB7FDFBEED9AA91381F76F355B7BBE3D002C5B736848D0C1AB2F5F9B1410E01F3CA2A8A37F803E456FFFFCDB7DC4050CC9F1B174DEF285B4706E8608F1F61C2EA2CF76EDE767DE8BE33987BF72492ECD43CFD6198CE8D14761F87CE2B9F0319161C20564A7CD227E606771452D446121D535CB0533A581AE170314B191E1A4181C1459C0C3259582BE3909C411046B80D6CE6E3041397A4F135C8094D292E271CD6461CC2AB880C310913CEB868FCD8291E3E09AAAC01E45B85F3FA293200036038088C0E7E5082539D3188FEFE622939EE460D42414B798CDB5B80EBB8857B63FFCABEA4905C0A6071EB201C008C35BC0700C14EAA4F8D8BA75975C3C0BF1B5CB075FEE1606E6731643D49DFFA3859418174D9DF0AF9FEDDA2BFC3BD3BCAB8B0B62FB34B8813C8A8D0AA3AE9E7EE106BE3D5CC843C642ADAFC89B8773A34488B7B7A09876231AE801B8D84F739A97D9C0D7C78B1F9D4EBB0F1FA552F4527737572106E763F5F1F280719B11099489DECDE76543F065CD4E12DFBD180C7404510067D7E260CCECB424E10A588016C2050CC2A584C3E0CC04C1017E5452C3EABB994C601C7615B313A349A95693275709B9B94CEAC8A6A388698C34F4011CFF32279B9E7A745BF72903E0970F6E333BE8F9230060751383831A75A752EB865365E7AF58443F5EBA003ED88BFED9FA0F7A43F532B9BC97409EB5A182FACF466F5F01B5CF9F57D4B21B3828DC8087BB9BF0EDCB1192CDF0F5A14E08B79DFB8E0861A7D5E9282A3C8496E1F339B367E2BE0403D6D277078F52636BBB08FB3803C88A5EB880B21A1165301B85CC08A0DC2C8E02E248A3D60F4701F0FDEC025261440E2B7D3D3CE9280462110CCFE1660CEE95857031C017FB2B1B60F8266190997191608F38E80D1515617F3B80CDE058383785DC5D5C471A6B42F50D273D18657FBC01DB4F0518CCA61D7FDEFE3BF58401C0932A0000D34400C07F872B9B283B33DDB4707E92E1CBC01D6EEF05FE1F29838F8331B7FB2C7AC8FD098A312408B5FF39FC3FFF004244683040311F3E3C433CAFB7122AF76B3005C7EFCC249930C4B205D988D3C3057BEC2F2801CB148B2882133D9C0C9A191F237A320BBE43472B488D102F313A422483E2711E33C781A2721105F034EE4C6885B91626E0DECE54CF6E23292602204A222F4407456094B29A26D1C0B312A2291D86E7EB1654D4214AE9A1197EDE9481688159A2AB7700806C20230C330BA1655890DF382CE04CB430B112B751C03480F3DEB130C3CEE7FEF8B8694C005867D35C7EF9E5D2B8D44CC309D46F75093686B78D146ADB15949834935A02AAE98B8417CCDAD96D12BDF748004ACD320ADF9B45A1EFC2E747CC0153E40D8771E88DACE4BFDC7350503A0BBD25F3E788D5CF076CD0D323B2800761444E16658105964114868506527B678F48061D8521D11422919497359B4240E79C0E661750D5D02C94FC3C440873617CAD5E2FB4028B4116913CC6C09AC00DBEBDB00C8647ACCDCDC30C9181A841641371FDA6B62EF24374C1FBA2213CFB0695B846234459AFC841A442CFC446603F744377DF0034853F79BAB9394A008D5BDCE2B8C4CD717DE368C7FBF9F9F43EBEED57410E016031BE2427274786ADEBD917AC1972A6E7DB02A05F65A4196191D4E6DD404F856DA61F697E4233124CA6FC942FA5268971F83E0619A5372EA60D6E5B68B1CF5234601FEDDA5B84302F1F226E48E405380BC8E19A0C028B439E6FE006CAAAEBD12BDD85DF5F949D2942BCCAFA46313A585D3F6CDC5CF87D1E0FF0F47043F8D74C7BF22DE30133FC6801F6CF460FE6288041548AC882FFE3B499F1C26DC8C0609C0B28859FE7C10E3E760E3ED3E8D965D488A167D614AC07E210552887347019F50210AEF89E29095194848842A5D5E21A4DACD2C9CD45064609873B09E2D06862256E2759E86A7F3C97AC05F8FB89F194FB36DD211915006C7CEEF50505052EFEFEFE1EB8B8F7B9ABD7CA9D0580D54D706A40E6174A5D1EEDF4FBF0DBE9EC81B574A1E21A7A2EF67E92450F9917E9CF926C0AB997225D236877F777F4B4EE31AA88DF4FA13BB36855DDB5746ECE6221FAF8F777D848D68450587020FD68C15C010AB6DA11F4DC6F0F16204AE8A560F8FEC57001D9108DCC6F85F0EDFB1009F02C5A4E00E565A7C10891A0E83EDA0726A8802FE7E40EFB774E04B1A03B84EB95094048281D46CF8491F560A40218BEBA412E0698E620DA488E0D27B5560FC337504D63AB689394B808AC9122AFC002B15EDE4932B4476274182540DCF2EB16B88BEAC6769A11E04DB3E323C72F8639F56CA2B0898FB7B748790BFBC14EF7FF721400588DDFD5D5E58AD5CBD7D7D74FABD5069F77F1658746A3FE130160058965BF9B27F5FBE8695BC48D74DEC01574BEE22A7A34E2360AD7C7D2F5ED779A0CB35AE9CDB0BF4BE5896523524921A670BAB9EB5E72F92A5AE4FEB9F02135310E6C308F6625C68A240FFBFDEFF28BC467893151B42C17BE1FD4CDF4CCEE635F41A9386E56422C44591A446330F1D3B5F74044727A984526D37C36DC8756AFA58347AB442E82BF3F1B9D470C79C8F94869B5107DEEE83DBC7F16689D078C4AAA1005806DD86524432BCC4E8A054B11584A4E550004FBFFF8C81008C508AE29878855E07839E90D06C1049141FEE394B83936BEA3C8C13EFBC87DDA039190275C28DB4FD84532DC411FB87BE3A80090A6A7A7BB802ABC70E119106161D817030678D359EAB7D709433EEEF440CC75B44AB19ECE19B85C0020521F4FD7756FA6E7437F4BA6D001B33AB359A2753951A0FA57C4D24F77DF47E7E42CA2F09020E28722EDDC5F20C6FCD938C2F7E7CE11953E9C56FE0E2E80451F37CA1CB0C06244021C69F090EF1E08CDFA9676F285BB60F79009033345733EA0042E854BC73825CC61219F9F5F5A25E89B0B4CB8C7A725C508562B835BE05ECF868C8B0811A0F00298AA9BE438BE5988471E984A8350F4F274A77EE802DEDF3700A04687085048860BFF471AD3A90490932E80C32FCBDC47FEFE120B2BDB02E0C1CD779E08007E966E4B4B8BDBE0E0A09F9B9B5B1814729CD1684C3A7FCDE54F394BFDF6003002819B127F461729AEA3950397080044EB92E89A9E4DF45CC836EA97F5D006C543F475CEDF4CE50907A45C32E73AE4450B1B7E427778DD4DB1EE71D4D1FD097DB5A70DD142AFE8B91C212C9D9F290A3AF889D9CC1245A06837DC2B17826F6156BA68FCAAFA26DA8DD0B005C704F80F0F12A52727204218120C5102AA77E13232B800761B2C1A3917C08A5F943941DCCDC1CA9142657D8B283F1B526B293A2C186E2381FC7DBC107676E1F87AE2B1F910B8A0CC94580AC0F71A5469201E9BA8B5AB8F62008899B11142544E410268C4F5D891BBCA5C44826BD80EC3F692580C3FCCE012FAD5E6BB4607405D5D1D1773FA638DC00989D89F0C003CEA90FA2D37B1A57E7B77F152C4BF28D2904CCB072F120088D5CEA4F5BD770A000CC8FA6873FB1F6997EF077430F4135A6158697A78E6C35237B33BB575FE938203FF81F0AE0171BA2B95555E0E51772F50ED2B8CCB19424EEEF8F9FAD052F8FE9CCC59428471AA960B4439E1C475048BE7A50B21D737C0A56425C33D1E869F87989F5D002F9C7B60BAE7866531980D267003EDB3E03B545C25046328228979E9C930B41FB541731C29ABA55EC5A0C82066A6C421DC0B102EA81C60A96BE910C7A525458B54F6C90C2BDB8D018C9B00E2CE63ED80B69DD1DEF8FCFAD75B369D08806DDBB64977EEDCE9A650287CD915E3C058ACF159F3F3AE8A8C8E5D2C834F7096FA25365B83544FB53EAD94A89D2B0010AF4DA5AB7A3708000C49076953C7130200EF073C4F5B5B9FA758972EE3F2BC676549714DA3CC220AA5D7FEBD92767C1121DC020B421671463440414905ED82E139E1339C289A23F2F79C82FEEEF051F8ED7A72E5EC607A8A303E6B55CEF71F2EA902C0F422A99393315344184DED9DC23D70F83603EC9183E880C708F83D4702AD0837D9B03C981417110A97A0A7CA865630855CEC4F4F8EA5E000DF711340630E0039A5FE4D62F453141B5B8DEC0400B6DEF3CBD14520423F17A552E981C50F5A20949900378A9A11183C3B63EEBCD541A1A149CE50BFE484AD8CB4326F7A24E2764AD2A4D3BABE5B0500D45215DDD9F1D831003C2CFF3F4AF429A694A83F93CC6D91393B732F2EAB1B01829A86646A6CFA3545452C12BFD1B7BFB04C0C060D20746495BF14BA203E3A42A87DD6059CE66511973B2715864F013D4A84CBE0641067FAB8D864013EF3F5F64034810801D79377740BBDC06061D13630A4160C510B46E014737A729C1078DCEEBCAF047A418237AC1562A10D4EA6B47DA20920CE97B01661512119617C9B91DB118038EE0E1EBAD70100F8350B411F1F1F0F34AE0F9776A3E387400BB0208C884B4CCA4BCBCCFE8997B777C071EA1F1F00BCDF2491D1D688CD94ACCDA0CBFA7E2100A093686843E7A3C700F05BF94B14EF534829914F5261C393E84D5ACA4DFF2B147E1355D5659052B91186391B62AB13FEF829344C31BDF0C612C4F719B41C6CC02381FCFCBC9D070A450128C7BC7959A9C772099C20DA638910B8146C2142C300B8107EDAC6DE8272507EAB2832C94184302B3166B868A4A24ED40F7243A7611F0F2CF1C00FC7FDAC1754D0059CF14B4608C8A19E5363FF1398DD641F1DB0D1D56A8DB8C671816735F8F8C6E775DB7D773BCE0358934088C1E1065D3DB1FA180C86193886DD028BC3A8CCEC9CF31267A62C7105A78E67785B80947B94539147295DD07FAD0080017FB775FDE618001E6D7995627CF305000AEAFF2846FDE6C6DF450D9DB798BDDDD71962A3DC5CD5BAC7283DE533083DAD65BA9927FCFDED545675217DBDAF08E15C8318AE5D3877B628026585CFB9FDE194B152B8058E108203FDC11A2AF4F8D2E1513DE80216831950FD1C437172A7B0A29627888ABC3FBB1A0EAB785C221F0CD2DD3B00651F4E19A07B6605DB5EEBC8F8E3A56DC7CAE6717E6148C53F4DAF1F41E7D6D85E62B36F3C57B0EDFECD927133812B56AC90222A90858585B901005E5AADD60F6C3003170C052384FB050424E7E42D5A1D1E11359B95F27800B0BA0BADC4403A830F3D0B00B0F2FE45D743C700F058CBEB14E57B4800E048DDFFE21C83004085FC1EEA195C4479B31F3467A4D6497C7D4E2CA26D6C09A6E75EB9882282CF1686E7EF540630EC3A542874417C54984827470407D290460DD7512E1881FFDB392988043292212287AB850F96548A9ECDC3BC2CFCB8DA98C1935F564DCD6DDD622898EB017CBDBD4EA6087442C79B10F20EAA866848A9B2DAE7585B3A03806336B101C0C30F6C918C3B18640B0418DF55AD56F334682FACFEFC73ABCC06F83C3C2E313167EEFCBC0BFDFDFC439C01007F591EC27BCCEFF7E21FBDA9FBD7C700B0BDE52D8AF0DD6F01C0B338476B01C07D00401EE5A5FC9406D40B283AC2C79496F2096E319C56560E795271F91AF4E20DB887371D6DACA4BDDF55103F4F979340CB73B34445116B8643472BA1EC2B44CF663A676DC0C2ADB6A90D6C502E06967850874BC84211DA2941B72213D8D82A42BCECB444F1F914957F8D385EA556516F9F4280E0B841EDFCBD9DC073460BFCE6817B244E8F065A07851022726ADCD5CDCD4DE8039CC353BF82615CD60791F37217FE38353D6385BBBBBBC7A8DAC00600FCBAC7A58FBE70F99A56F6AF3B0680279BDFA530BF3D0200F9B5CFA117AB0400CA5A1EA43EE57C0180EE81A554DB7E2BCD4D7C9822237A60B03C7295DE856BFAD27BAAB7E98DD8BF92DA6B80323FBC90AEF2B886126322C47CC10288B87D8525A446A8C6FE9FC3433FCE257476D19EFC5211DAF12CA3055C3B08B0F0B07311FC7F6975A328FAC84E4DA404884B567E8E14BAA36711381A0072A4FE355A2D75F7F40A5F3FC2A8521B5F3F8ABA77D61D3CF2AB7BA5B67313C79D186265030041C2E304303203811F94E00B77C0B37FF9F7F1C27DFCFC12962C5B71715C42E21CDC4C72A2E16D1214169650E925B4C3EDDF00C00BF487E6F728C46FB700C0E1DABF436C298701D0FC6BEA1B9A2700D0A55841751D37D1DC843B49AB0FA2FAB65F997A432AE9B5D467A4BD312343C79CFE65B4FC9BF554B4AB450C30C5C10D70781802FFCF2562DFE5978858DFDBCB13864FA194B868115296D6D40330B522E3C845A119600A16919395B071647C16789DDD3DA4802825FB106E84514F0D007BBFFECC1521BFC9FA5432A7A786D9BA056C5DE01678D62FBB053FE884406603E116E2E3B3F2962CBF38283838D2BEE71F4B18D9B8895A491D3DE5F938DDD3F6E763003854F34F507ABF004069F343D43F345700A0B3FF6CAAEFFCB90080461726DCC38B21DB491FDA631ECA6C94C0598DF8CE3235228197AFA64B822E11C51D9CD4D98B48804701DD5D5D4468C8A961169C3CE0333C694425CAC4391AE0ECE354CC03B0BF1EF7F8F6CE4ED0BD7914756F35A8D4CEBF8FA4FC138132BA3BF87CC73BDEBEBEBE3AEB1349263C37D0365A001388DC010CE985D7EC1682F0CF31102272172E5A393767FE8F3D3DBDBCC702005FCE283522EC929144F63525473C41076B5E2437971E018092A6DF9042952900D0D1771E35745D670140841088CF073F4A1DAECDB469E051FA26FB6FA692F8BD527E40805777105D5279235DECB296B41A9DA80C6221C72A9FF3FE39E9B3448A96433A4E0F77F52A282A2C58E40502FDBD273CE43A660590830A60AE5F6C6E918B0213DB6CEA893D7C6CE38FCE06A36B810FDE7A3508BA6EA8A6A646CF2C7052B3836DF54159193F8359E6CA19241894DD82D007CC06FC234DCBCF3EF7A29929B3E6BBB8C8648E42446B2849D201F8DC7F524DDBD5304EBB004071D32334A04A170068EB5B454D5D570B00A8B43154D5FA4B01801E9736DAD2FE341DF4FE9A7645BC4D4BF44B4C77786E929A0D1231EB87C33DAE3164E1C723845C17C8C59F3C42C8D5BEECFFF3E6A652745888B353C04F69AC9EFD7C7D63B3F885B111461C1500D25119E164F4805EAFFB62EFD79F5F83F61ED8B76F1F3FA7C8784AD3C3EDF501878DB89E2710E68B9B0472FE80D9203A3A367DC539E75C121E11193F1600AC5946F6812A5D334506DE0617F0000DAA5305005A7B575373F795C300D0C45155DB5D02000A59376DEA785200E0B5C0A7E9BEB66728541D642C29AF94C2D0128EFF7910890DCD7A602F0CCF833C9EA0788E04B8E287CC74B253C09D4E00B1206D92CBA945DE2A8E939EA4F14FD002E38486069DAE55DEDCF46C536DE547B0473BF49B625200E0481F0C0E0EBA734109FF843A878D781DCAD9C405798B96E52D59BA8AEB0D464F22D9EB053DE9208EBA078992C22E2379EF45D4D2B34E0040A94902536C1000189229E88E8EDF1F03C0D6B67F90A9534AC5A5A5F0F3A9A6A57353253AA351C2A9632EF8E4FBF03C8079F0F32CF026710AB8C304505B5B3BD5D43540BCEA4E30E08921DB487730112D60CB0626A349D3D5D6F2456D65D9BBF81E0DD06A72B0724F5757D7A9B980B180601B36E266EE60031F34A6700BAC0FB02FEABC5517AC4ECB98B39835C4D800B0293895286948DD474A5D08057A3F8886F4870BB899FE11F43BD24887E8B6CEDF1E03C06FE52F92B6DB4045478B697ECE3C51365E565262EEE855486627C6D2C2ECD9623A98C3F97CF6B57A4E4E011FCD05F4291454565145FD8A013BA33A0F8089EA01F446537F6F77615D45C9FB68FF5A7434395C7327BC740FDE2B4F49044E541FF03382386CE4B432878DEC163862088F8C9CFD930B2EBA342E2E3E45324A8DC189238F2305247B0A324BE93BCD1E6AD77551AE66391551017DE0F61ADD67789406FB87E8C8D1725AB9348F3C5CDD10DA95535C58903EC0D7DDECE5E5E37652099B0964F3781E43596525445EAB1D4D4B1D50FAE4B803CD90B2B9A9AEFADF7D3D5D47D1426DF81F3AD0F63DD80EF0A02A567D7E7EBE71C261E0A9B885868606A10FF09EF5811F4463A035AD9C9B97B768C5D9E7AC9E11302368ECAA237B0038668B13A20E9BCFB97B949795A90D64767391B9C94E750AB8FD1800978D55D5D45145750D190D46C7C677920D8E33E0D8EEC0A0D70D74C89B3E6F6F69DA8DF7AD6C78B47737BE93026D3D845ECF032806CE01D83E9D6CCA9F13681F36725A19F7647D20D2CA0C041E64BA60F5C517E4CC5FC0D944B7318D792C9218DDC0E301C0DAC000A2A9A4B4542B7375F7308B7638F529E0CD1077478A8A49A552D919543ACA08DDE4B802DC5CDFDBD5BEBFA5BEE6537C2F9E4ADE8EE3BAE0EFFBD0F395E8646A4BAF378DF628DAEFE541918EC2467C396F4B0DA2D007A1E1E133D75CB2766D4A4A4A86542A938CDEF3270E00FB19CEB6514777778FBEA2B2CAE8E6EEE171524210FB38677F28BF80DA3A3B471990190B005207E19D53EEC0AC54F457B637D67DA8D5AAAB2D74DF89EFD383A61DE0E97A1D1D1DBAECEC6CC35B6FBD6572F468BAEFF551B1F661637474B4AB42A1F0E4688181006084601B9E337FFEFC5517AEBE343824247CB2A87F24004E74313555D5DA96F676E0CED5D55917A0D16AE8F091A382EE398E3C91A6A50EC6E79D48E08C617C9D56DDD9D9D2F889A2B7879F24D28A766B478FEFC67756E0B8A1808000CD68747FDA3C2B78B4B0115B9156062B88B432D688D56B2E397FC9D265E7787979794E16F54BA50EB405B6FC3886FCFC239ABE41A53BDE4B1D8DDC71E9774979397A7D9118657494811B8F0D26A20586BF9F51D5D7D1F66D77BB7C17F7785EF1FF745AE95E83055B5D6262A2897BBD330FA3FC8F3E2DDC7E26121A93879DBD39ADCCFA80AB9182838313AEB86AFDDA8C39737264525E2687FAC73A4739A4341E387058A731183CED59A0A9594EBBF6EC15B43FBA4F771E00CEEA017462A352A128EC696DFC1C6DD268A57BAC3DD04C0370A12A1BBA9FD0EF10FDC77F2F60347D605B8D644D2BCFC9CA9A7BE9DACB2F8F8A8E8A1937529800F58F758E5C2ED71D2E386A369AC9BD4FD14F5FEDDC6DAE6F6C963832E031553EAA6A77D21DD885861A95AAA1AFBDE553B54AC90F9A6C63BA4747E1D9B6FD4CF79E9E9E5A8040EF0CDD9F960018AF1A49AFD78BB4B2259B187EF19A4B7F7CF639E7AEF2F3F3F19D2CEA1FAFE2F9C93FFEAFEA95777778F207D2B114FB18C63F7178766C2D6032E8FB155DED5F29157DF9ECE76127A1EEC100BD60C841A67BBCD6A7A5A5199DA5FBD31A00CE5623E1FB86FAFBFBC75EF7B3EBD7E6CCCF5DE4E2EA221BB7E74F1000F615CF8F3CF684FACD0F3EF51C378133C6889CB37A000A53AB54F41E1CECEEDC85FF95E7668A648EC5F003F84EAA9E9E1E2D04B4F1647BFD690D80F1AA912C935782990D80FE8CF5D75CBB2E2121317932A9DF7EB0EA37BFDFAE7E73C7279E6319DFE1A08CB35A404266CD90B262B0BBE34B8341578F7BB3C86BE7640E68BF9F53B84CF768030367F24ED5F0A735004603826D3592451F045A26B1845D74D1EAE5ABD7AC5913103063C664523F6F796100BCF1EF8F3DA50ED2AF137507F65AC0A8D7B60DF5757DAD550DF10F5CB7A2B7B7617F27DC1FABFB416CD5B674EF28A6FFC10160ACB4B25D355228C0117DF3CDB75CB278E992E5EE6E6EAE9341FDD65F9E7DF8D1C74F00807D15CEC9E801B3C9A8540FF6EFD10EF6F3AF9AB65A445E077A7BCF54D0FD190B80F1D2CA3C89058DC569E5B0993367CEFA9FFFB9E9CAD4B4B4F453A57EEB2200F0FE479E12A9738339E38586123319F4EAC122F560DF2EC498C2CF5B451ED3BD4AA51AF2F1F1D14C36DD9FF100182BAD0C9A1C319B69D5AA0B175FF9D32B2F0F0D090D9950A46043FDB600789D01E060BEDD58B1FD0836E0805EAFADD72BFBBE31E874F54CF76C788EE9F1BD7BF1BDA794EE7F100018AB1A69707090F5C1B16A24B044E42F7EF18BD52BCF39E75C2F0F4FF78952BF2D005E7BEF43CFD13378CEB902321A7AF4438A6F4D7A6D198FD6B19F67BAE7DC3DDEF3889D48E6C4C7C71BA68AEE7F50007026AD6CCD2626262626DF76FB862BB3B3E766F32093B3D46F0B8057DFFDC073B411B9714343B35963D20D1D32A89507ADE95BCBDA8DFBF543BB28D55C3C6019A7FFBE0CFF8301801D10A4D007526B5A199E8127B1F85BAB91CE3DFFFC0537FCECFA2BA2A2A3A29CA17E7B008C9C9E359EF1C9447A6D8549ADFC8EC8C4E9431679ED5C99C3740FF13A88EFC843B5BAEF8BEE7FD00070548DC4FA0054EBCB6569EC16F03AE2B6DB6EBB00A1E32A1F1F6FEFB1A8DF1100C6D30252B3414EBAA13D6434F230612B8B3C363ED33D56CEDD0FFD27E8FE070F004769E5A0A02077DB6A241E760E0D0D4DD8B265CB950BB1F0F32F1C19DF1E00F620180100330DCA8C9A0312A3AEC4326023B7D23DEED9C78647AFD7FCA7E8FEBF060063858DF6935C972F5F9E7DFBEDB7FF14BD31C1D1753811F4CA3B3B3CEDAE6D6B7CBD8B51572A35E80E4B246656F672CB383D9765F59C2E74FF5F0780D1DC023C828BFD24574E2BDF72CB2DE7E2984BFCB09CC00000C0AB7600E045FC32A8D9D8E866D241E0995AB04BCE15B830B8E8F53C6237563DDE69D13E3F7400380A1BADD548D649AE3CC804571173FFFDF75FB16CD9B2E52EFC34A9630CF084F29577FEED637B3D19997ADC497F4446E65A9CCBA95BD1EBF1DA3A703368538F673CDD0CFF5F07004761A3ED2457BD5E1F04DA0ECDCBCBCBB8E38E3BAE4E494949E5731E79FCC9FE97DE7A3F40F47A32AB5D495FEC6A3656E09C0E363CCE6FB50DEDAC29DCF1EAF1A601701AE9039EE4CAD54888CBAD6163E875D75D77D6FAF5EBD73DF7CF170D2FBEFE76A00B99CADDCDBA5256F3303267F0388DDB6A2DCB827B19C4B9EAEF23853B0D80294C2BDB4E72C5DBC839D93967EFDBB3A7432A31F37C3A56F11CCEF11C3B1EAEED51A9540A7F7F7F953355B8D3003803C246DB49AE00C50CAE58C6E75CB9EC02706870783F5EF732DD6B341A250FDC9C4A59D634004E537DC0696518D99327BAE223DEF27E9E54C953AC54F6A19DF90C6CCC6900380082B51A89F5010CEF0A20B8C0E0524F4F4F6357579701ECA03F1D3279D300F81EF4010C2EC1CA358A1250BD392424C474A61B7E1A001304021DFF6503F39922F09C59FE1FFCA75EC13BC1567C0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (7,1,'Crypto-router_(24)',0x89504E470D0A1A0A0000000D494844520000001800000017080600000011218F2D0000000473424954080808087C086488000000097048597300000298000002980136D347DF0000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A0000047A4944415448C79D555D4C1C55143E77FE76F67F4110851A15D66D29155B6C09028235D1041FFCA1151AA535A68D3F2F3ED0DA072A2249638CE1AD10131F488DD4DAF6A5BE6852B14DA891861A3492942A942DCB82DDCE02BBB0ECFCCF78EE024D2196526E7232BB33F77CDF39E73BE75E62DB36AC77353434B0C5C5C54F949696BE9C48246E0E0E0E5EEEEAEA4AADE5C3AD17BCBDBD9D292A2A7AB2A6A6E6179EE7ED6030986759D6C7F8A9732D3F06D6BFB88282828FFAFBFBA71B1B1B770D0C0C9C22841C5EBDE9F31327376F88606A6ACA8EC7E38F4D4C4CCCB85C2E6D7878F8723299CC5ABD2F37DBF7CD8608A2D168706C6C2CA4AA6A7E7D7DFD8F82207C886489969696A32B005966631A20A0C3EBF56E451D805A616121E0FF74474747F0EE7DEC2A82756780DD666A9A06D4308BCC13173F393929AC00241B24307051E065F025020E5FB32B32601E9000C5AD1AB911EE6A3E72F47DA7D379079C9A699A045BD58DDDE5C28E228B1AB0F7D700A37C0AAD4951B526C3B20BE930E6E4E6C0C1F73EB06F4BD2C878387CFDB72B57629BF2F3DDB22CF7B32C1B40379D1AC7927B123C84B60FAD09F12A2C1C70C334E0FA8D71884971C8F27921E0F3108FC7132A0A85428AACA8A985859F5E797D8F74FEECCFF3D851060521AB342034BA93A7CF34BFBDB7FE539C503FA60CB3C93918BA3602A39128D0786CB04051B0E6F8CDE771811FCDB4CC8C1E0A3545956445FB5E53D2DF86B63E7DA2BEEEC58A1504CDC7DACFBB9DCEF28AF29D092147289E8848A81E0BA24380B4AC403AAD824D4C30751B6B8F80587F0EDB9112091C8B04CA3211761BC889E4DC71FC7DAAB3E3F87886E0C8279F5DF07ABC2F71820857B7FC6AF1052A04610B13FABB9C760F8D0234C30419C9545DC7773AD0125ABA0604BBC6E712C1324D24513224948C412F1CBAFD4C6565A5331E9BF2733C072E9187CDC9528609E731D3D235ABA2AC13A34C010A8D911B40CF5D8EE3709858602C1C029E8780D795C98696D6C67D0612D159109D2241411C2C15E78DD75EED7E34EF9119BF3F50F5B87B9383631C1020D3448D611E453FD8C3A24A40C9C1B2F1A063061428DBEF869C806F71467403A396419A9E415D6856149B50FDCE90E5FB80F6716D6DAD7B57C5735F3FB3A3EC4D973FCD19E6048A29C169F7BF7668B2C47A78BE80F5B9DD909BE5BB2330D5287C3302B762B78156C1210819437C4557B572B2FAC2A144070E1CDAF66C79D977DBB7EFD8268A0CCCF229F06A59908C4B326AC063C9385AEBB1F108FCF9D710E8A893B004CCF3AC959A9DBD284D45DEEAEBEB93C8BD6E34E4618EB5B6BE5B5555DD81875B40144570A2318458BD972EAADD3DE7B8545AE605C722B0039F862247E5F99943977A7B2FD84BC0DC1A879B8524DD7575753D7BF6367C555B5BB3DFEFF37248C46467E7B0B7E2713E530AACB76D1AE9D44CAC2B168DB48E8E8E6AF65D5173F73941E94615890EB6B5B57DF1C2EEDDA79FAFAE2EA3DF741416B331414FF7CF2567DF191A1A0ADBFF538E75DD074B8EFF20D1CE9E9E9E7D16902F594B67C842FAF0D53F7E3F4BB35DCBF9818CCA434FE5929212CFF249B096FD07E7378AC36FF5B9D50000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (8,1,'Crypto-router_(48)',0x89504E470D0A1A0A0000000D49484452000000300000002D0806000000E84AE8C20000000473424954080808087C0864880000000970485973000005310000053101B7ED28520000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00000C394944415468DECD59797014551AFFFA9A23C964323399841C431297641192800445401158964B1441C505FE40CBB5BC58DD558152AB40D42D4B74AB74B5D46555C492E5AA756545290F40969543399248C81072907BAECC7D4F1FFBBD9E193239882C90945DF5AA7B7A665EFF7EEFFB7DD76B902409867BE041BDF0C20B345E53D77A6E2AF180613B1E7EF8E1B4091326DC555A5A3A9FA2A86C87C371C1E974EEDF8BC7975F7E19B9DAF98795C0AA55AB0C4B972EFDB8A2A26221C330C0711C90737B7B7BA8A6A6E6DDFAFAFA575E7FFD75C7D53C831D2EF0EBD6ADD3CC9D3BF7D9ECECEC857BF6ECE16D365B43565656D3B871E3261A0C06935EAF7F223737F704FE74FBD53C871E2E02D1689441C9DC515B5B0B6D6D6D5FECD8B1E33748EACE03070ECCB6DBED6E9EE7598D46F3C05B6FBD55F88B24200802E7F1784C168B0570F5BF6F6969B190FBDBB76FEFEEECECFC421445F29B12249A3BD43C1FEDDAF3E0FD4FAD7F7244096CDEBC990B87C3A66030A846F084802BF57BB4407728142256D2E047F55073E975BA7B150CF7C088FA4020106011E06D66B399382CB8DDEE5FCF9933E73E0C1862595919DBD1D1918F3E00B1582CE3B22664A89175E243870ECDC788739FD7EBADA7695A8D60E7E2ED25281B151E62777737178944BC4AA592C6A8F4EAA64D9BEE5FBB76EDF94BCA841A6102083A53A7D34DC10164A5073B938116EAD9B76FDF34B4D690321A02FFF01010E207FCDC5028140C3A3AA065B82109D0F4C81240AD5F920086CF8BD728219900FE9EFB997C3BB20430FEF343014FB1008B7E22E1EFB9A17D78E42D104A021E0C787210E0E8CC11FC3D3BF482D0239EC8A297E303E8EC047818CFDC953A313D4C16189240D22A541C59E4E79C98A687D9071A1B9D9934EBBD1B857F371F13CEDC3C6D5AC38FC78F0F00DC5F4EA43A45120226348DC964526382E3713A5EEA572253C394071458222C8CF1E24A4EC92F426C2A49C4D507E9F64577DC0993AA2647EBEBEAC066B5282E65094200B1D2587294E07C0578B8B04EF2E2756CB808D07EBF7F06AEF44A9E17EE1125C89220D91D414AA7046034E62874B760B9C0F392DD66ED6C696AB160654AB22F939696C665666672E9E9E94A24D284055F35CE9D86BE101C3F7E3C354854BB6A0213B1F05A2108E272C45678112C409FF64E4413F4219278BE4E6F28D4646615C6F8F2483010FCC6D2DDFDE9D62DDBBE6D6D354759961510B888F5938084A2757575FCB5CAC4C53856E058894E368E2493DED5EE1D440A35F58D70E65C33E4E5E8E5BAA5B4C4040A8EED6391041DA542A95C945F58B8E899E79E76F2317E7784173F696BA83B823DB384ADA63478A4B9FC309A8DE3311CDFE368C6F1671CE3E2ABD9572ADE4000BE3A741476EEFD163C5E3FB02C0D1DDD362424C27F8E57CBD716BB132451EA4BA4F75A4F5A6606A4C3A631654D7FFBF0E397DEDEFCD1D8C14B89CB90D04B7F7963C15DF3E7BF54317E6CD5C0B0D8FBE0A6D60EF8EF896A60B1B7D56AD221148E80C7E707A33E0BAC0E27CA48029552013FD4D6439ED100E72F74C0D85F9980410BCA52480698544B8A5231DE7D9EA2A4E7DF7CEFFD5318AD3E1143E2F6356B1EB35C76356AB7DA73B76CDB51956BCC3EF6FB552B0A0C7ABD2911D321CAC7E0F00FA7A1BEA10546E51840939E066D9D56C8CC4883DC6C0304B139512995F23C36A71B8C3A2D64C5E28184C03DF5D339FC4F3A960E2CE418B280C5154D95563F594E224360C5D75E7EED8DFDA3F2F2F3863040EFAEC49F9E5D7F3F3AD4161C2807365A5A525C337BD68CCAC33F542BBDBE008C2EC8C3D56CC5582EC075A60268EDB2800A0165666440E3857630646981636870FBFDA0CDD480C3E1224B87A267C11F08811243A6DBEBC3CF24748A509C9F0B1CCB002FF0F29C2447C843485E0B29DF0922CFC7768ABCB82D43217DB561C3067E0081A79EDBF000A7507CC8C9041842029CFEA8408D0FC281595B19432C0796363D02B1730A74D66C0806C360E97142515E2EB85142515C712D5AA4A3DB0E1A3C938787C35150A915D0D3E385F43415048221B40207E1501438050D91280F05461DCA919643442FF8FE04523FF3768117768A0AEEFD775F79B106E54551E5E5E58A48389CC560DDCD30B4BC7743468E2E8369613B9931A76F93222E51B2E95BE1D88D7BE07CB4017B550D64A81054282CAFAEDF1F941D58AD5692D88FD6E02082A424A1370C129844371C47CB0BA046324DED1670B83C60757A0644AD3ED24A7C46B846AD3673B53E3DFD35794E0C5F14AEB6D1E77155C8C0E9DEA1442B280506D2BD3994C93C95FADAF98D5433E6207C7ECB3B10605A202D8D07B7C7276B5BA144C0D1982C91502802344325B6152560D0A222AEAE5AA5003F0227FE22E077247211C22266F0EC2CCDA009319504518646A3C16728C8BCD13E61D4E5B05F8845C25E9A495A213E267B27825688F7DE6A672EA53F38199EF971BAB8E4962761C59227A120DF8CA615211DADE10B04658990CF64DB44810F24A488B47C443E189DE26044C84857617010A0243F074619B5C9227020F8F8F64BBC2FC045953F13C6429C00F3DD77DF11569821FD0D1DAD2DDFABD5EA5C9DCE301A9B0D9A410BA8191564502A883012F430769028116E55F82873CB74686DBB5E2819DD4A4F2CDF86408BE042A71232D46A5942D14814F45A2DD8511A99E96A945A141B130A571F7D00BF2BC937823E3343262362AE20842F0E297EC6EC4F763864DFA0E4AE8C92F5484A0B24513367E6ADFF6413955F046F76555656BA6A4F9D6868BBD03CFB861BA7FC717451F15862912C4A0B55A20E82BC0F9AB806140525EBDD15CA6554EE80A4C960814A73508D93CD409DBD11461B4DD0D8D6091A04A1428B78D132066D06B8300A5D67CA033592483A67AAD6E3C91A9D39C683A3A707424880A5E33E295082EC4B9440818817483ADA270F903D1BB2A5B36CD9B266B3D9ECB0592CC7AE1F57BEBC6ACACD0F626196CD62EF318F9901C7259493549D88F11438DC39943F50097F55FF2475DF749A3A3BE608ACFA663D5A42054E8F170CFA4CE8B438609441072585A392912491D012A0E37A9117A5DB6A831EA753EEC248B24417EC5D75F94C2A594002BC4802D0A0BBD3E47E555515FA36ABC7EFCBA6CF98F9C4841B262D42A9A94898A5682F4AB00E7C610A9B0D1746211BBCCD0740640458D0BE58087A22CC688CF34D1D5D50906B80E2BC9C81311ECF31242324AEBB2C5668696D97F54E9C351909D9E439E51E46CC26A7D5F290B5ABEDF090DBEB84C8CC9933951E8F27D760304C9E336FC1BAF1E51555C43FE2090FB517F3A11EDB605FB403FCA20F4A5B276144D18AD6EE4E6172E5588EE85B069BD2D4A4C678BBA307EACC66F0622EE905CCF6019D24819D8FCFDAD9B6ABA3B5F93DAD566B46FF0D5CD6FB818D1B37D2BB77EF4E43072F282FAFBC63D69C394F1415179BE249AF77707DAE19E8ECEE8A7475592886E514FD93940F33F6C9EA5A68EFEC22BDF1A08093D7A8D498BBC77ED8DAD6F2263AF76997CB656B6C6C8C4AC9573E977BA07F3067CF9ED5AA54AAE2790B163C74EBCC592B8D866C0D9BC8DEDC206408883367CE84AC3D4E620D368211E8444D0DD4D4D6C9F21F003895044D4B41BFF79CBDA3FD9D4824F82D46A48EE5CB9707B09410AFF80D0D9115764D1C9230A04F8C5F76DFEFD64C993A753676592C77096B105002CF8B7FDFB235B4F3B3BD2A5415C324A422036507AE3A1F0DDB7D3DB66D986077A185CEE3B3DC2819A17FBFCC5EC18E0399208A3CAC53A74E757FBCF5A3C6E3C78EDEB6F49E7BD79597575C1F0741F71B0CC9BE34D64274381A93C153C98892088D4222D288021FF4FADCFB431EE707E833D5A8752B028F48975869FA2AB64EC423478E84E6CF9FDF867AFC74E386F5776FD9F2C1CB769BCD4132269D529210C044E75222548A423C9B261397200AC44218BD9CA79C5D17D684BDAE67F13F07172F5EDC7EF0E0C1B034844CAED94BBE59B366B1C160508BF35DF7F8E37F78EAB7F3E62EC9D2662A935222ABFBE22B9B423B3EFB42DD4FF71225C4DA85906707D6CC7B519AE730CA390793CBB0BFA54CFA0702C82E2B2BAB7AE4D1479F9F3E6DDA4D1CC7C9F52821F08F4F3F575FD43A25B9693EFC1512D88D163A85F72C478F1E0D4BFF07A86BBA379AE21F1604B47FED9A35750B172E5CB472E5CAA74B4B4B4793BC29FF4EE0238C18394109D1ED78E330326F2D2A2AF2EFDAB54BF845BD272661B7B9B93903C914AE5EBDFA91C6D6F6DBFFB5676F5021F1FF4697F81A0999D1077A4E9E3CC94B570864D8DFD427B239790FA04329E5E3F3B2F0763BFA4537CA2592A8C17E996FEA07ABAF309E3346A33176257219ECF81F3D0880D812A4D7290000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (9,1,'Crypto-router_(64)',0x89504E470D0A1A0A0000000D49484452000000400000003C0806000000D689BC640000000473424954080808087C0864880000000970485973000006EC000006EC011E7538350000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A0000132D4944415468DEDD5B09701367967EADD67DF81096EFDBC6C6273E201C018F434E8E21243B2159488A1C9B996442364C48323BC9EC26EC4CCDD4D6EE4C656633BB6CB2D949A5865C540E42428024600E87C336D8C6B7655BB625CBB26CC9D66D49DDBDEF6F49B66C8C6320800BC18FBA5BAD56BFEFFFDEF7BED7DD501CC7C17C796DDEBC99369BCD225CF41F3D7AD47F3D7E93BAD10050F87AE081074452A954949393532C168BB36B6A6A6A07F12597CBBD870E1D72DED400ECD8B1236EE9D2A53B351A4DE5A2458B1663D0E2A1A1214F5F5F9F115F874F9E3CF9AFDDDDDD43D78A11C21B19FCF6EDDBD32A2A2ADE2D2A2AAA904824E076BB617C7C1C944AA5343F3F3F233A3AFA672CCB16C6C6C63E89BBB7DE540C78FEF9E7D5656565AF9794943CD2D5D505F5F5F50C9E8B363232D294989898B170E1C214CC0EE8E8E880D1D1D1F79292929EDCB06183EB873E0FC18D9A7D81401085AFB524C023478E80C160787BF7EEDDE59F7FFEF9EDEFBCF3CEAA868686432E970B643219D97D6D737373D64D9302BB76ED92C7C7C7DF25140A631A1B1BC16EB7EB51EC7E8BBA1712BCBE9D3B77BE8200ADC27D14C88C68DC762F8E0B370B03A448EF24A43674767602CEB405D5DF1EBE0302D2AED7EB6B8826041993F5E69B6FCAE772F04FF61F2AFDE3FFBCFBF1E6A75F7A6D5E028081B3F8A624000C0C0C10E1B37BF115BECFF0F030879F8F12614421244383FB29E6727CB1449296181F7BBF4040DF332F5300679BB15AAD31168B05C8C0D91D45207CE1FBD034CDD96CB631C200866100D360018221BA0C8301E4CFBC04E0C2850BF7A9D5EAF564D9E974824AA55AB966CD9AD377DC71078B8132B8994553C4A130666049E401F0F97C29582D56A340EE7BF4D1473D73889F1FF30E8075EBD645605024370D18D8009A1F52875D7EBF9FC62C208227437D2029C222037CADADAD1674893459CFCBCBFBDDC8C8881697EBBE1700FC23A0E6210350D5FD389468723270E661B6111111C1BF9352F8D65B6FF5A32E14A2608AE768B1E76719C4D9F4A3A03141619B7510EA9341824186B0C417E076D19C011008E6A50690E0B95070E1633630303538A21718D81C01989B065CF732F8D1471F11CBCBCC36E3A1E56900500400344D734E018A9AA755800DBC66A57E3820C13278990C98C7659068C0E5D09F0CF40AE0F1F0D56FCE0C105082F99702E435530A4C07633A285839A86060736300CCAD0ADC28002E3B05D03D86D8239EB3080AE6290057980254B02912FD9022785D0068EFEDCD68EBECDEA0D3E948174873010ACC9A02D3874824E2F50AFD003986809A437437B40A188DC698719FEF2196E1FE5EC0B22B198E05A7C73776B6AEEE8BF7FFB627C260D07FAF010A0704679EA73EAEAB939393A3B049F26280A4836482FDC38DBF208241CB0522D126C6CF6C6558EE2E9C0321071CC97908BC43A4582CDDFAF0B647017D3ED3DADAC2EAFB7A45DF9702C132280902A0C1C6280901716467673BB0323810080F37C3B5BD60D65C73008418CC9D3E96DD2A124B36E1092A48A430713A5C60F06FC1657C29140ABAB4B48C2E2E5E4CAE0F58BBB4DA419DAE875CFD10C9E5723284D80388703F21197ABD9EC3C04F9B4CA6A32888524C053F06EF9DBD125C432B8C27B31CCF612BC3B00F62481A0AFF61B9D06C034CCC3C3F82EB105C9EB21D40A9524517162F8ECE2B282466E79C5EDFFFC9BE8FF77E8B9DE05858134521EDC7699AF623C85ED404AFDBEDB66383E4E32E7165F75AB4C3B948C9ADF87B5BD0CE674D060A933487A901FAFC0CB4747643527C2CC8A592C9CFA68034F17D4A229594A76764966FFFC50BBF1CF77ABFB6DB6C1F7EF2E1FE8367CF7EEB09A60087C1B3128984E9EFEFF7CF96FF821F0880041C0FE1D88AA39C2F6313391D38F910CDC3677774CC0E276AEBA1B55307F90B33F95CEEE937C292E24510A1904370E7A9A911CA90C041C5429A5E8F2DF1FA471E7F686CCBB6CD1FFB7DBEF7BEDCF771D5DEBD7BD9A09FE0BED70C5C21001138EE0F06BDE6A272C9859DEC44E081EDDA9E7E3872AA16DC9E71585A9C07910A057C77BE09A2544A589CBF9007C46AB343E5B252DC9DBD38352E6251403CF1DFC7714A1FBF67E3FD863BD76F7CDFC7F9F7E06EF557EB06A7005055555D525979EBCBB8F863D2BA5FC2C54DCB690EBC5E1F54D73540756D0324C569E0D6F262A47D0F1C3C761A0A7232615DE50A686CEF82FAE64E285E9409524C85BFED3B0CEA4815AC282B04BFCF0F4A85F4921AC185B103B727E1DB0B142B78E12F6FFDB5193DF51EFCFA7B3B9F79A2F74A00987267E8D9175F792D2252B5F1A9C71E51A624252D9C297826AC4E9BCC16F8FAC419E8ECE9456AE74354840A4ED69C07EB9803562E290289580275175A402997F38177F51AA0B1AD1BB2521320353116DA902DDE711FE46424C3C8980D92340B203A22700D9099E20782CBECB4F5C9FDC8F58593AC9FD9E3A1FC7BCB0B4A2B388AFAF4F0F1D367FEF337BF5C3E6727483A2E97CB5DFAE7DD6F67FEE57FDF39EE74BA2C3350009ADAB4F0FADBEFC3FBFB0E426E660ADC525208C7CF9C87330D4D5081D45EBA380FCE37B583C53A0AAB9696829FF1C381A3A7402E9322F5178305F5A1BB7F1072D353D1E38BA0BE550B328904FA0686E0445D13385C1E9E55D304725236264474822D3891B01A856137CD50C60BCD4DBFB25A2C44020497C5805FFCEAD5D7685AF02A961AE08790B62D595CDCB2E19E3B97A09A0B8F7E57C3D33C3B3D859FD153E79AA0014FFE96927CC8CF4A83D3F52D306C198565B88E0E904F0BA9440C6585B9601E1985B62E1DCE7E1244462AA1A1458BBF21809CF464E8C7C0C7EC4E484B8E455659611497D393E2C0EE74436E46224FE47016B0C1657FC82992F519D8E16749D7E97FD7C7327B2204DCD1575F7D959D15809DAFEC9A028030F8EE6759DBA8CB2FFFF13D95C2C6D89350653A0619DFAD84B54B5683582482E367CF83026777596921CEAC01EA1ADB90D629909B958AB3DB89C15B61F1A28530EE1DE7014B40AAA7246850277AF9EA909E1C8FDF1BC0CF7D909A1007FD8326BE97D7A823A1CF38043969893C580AA918F7E7A65AE54BA6CAB4ED2C3380EFEFFBFCFE3DFFFD87DF9FBF0800D2603CFFF26BBBB0E7F87578F0A161F5D170AEE800A75F7E86B2459B41EE5341D981FB60BDEF2718683A9CAA6D04FDA01941C80795520EA7EA2E008D295582CAAF331841AB33407E761A286532A8C71422A530393E065AB43AFC6D01A4E28C77A34620EB2021269A4F11A207D1910A68EFD68352298305B8EE1EF7A256445FAE464C6C2780CB6452FD7FFCE65F52263480049F9B9BABF079C723890E9013174C1B1A951CBC0C50B77DF373883D5BC43DD8F81CB72AEF16D85DFACFF027DBBF4149490E2C2F2F809A8656BE14AE2C2F22EE0D4ED65E80B81835942210EDDD7D60C61429CCCDE44B61B77E1016A20E102A13F03271A649EE5B5123F2903D169B0DFA4D23B84F22389C1E18B28C21703268E936F03A112A135C982F996EB9B930BF4126551D1D05D15191C99366095FE5E5E552A55299EE7639D3A7044E07DE092042F0828811838893C298D54F197BBCD47B9EB7397D66131CFBD11E7859F133F0FABD7C7D379A47A0A6B1154A0B7220332501CE9C6BE66787ACEB0606C180B42ECECD06A7CB0DFD4613069BC65703D390058A72D2F9E03A757AC84D4B066CACA077C00C7999492014D06018B242166A0549878912195E26277C4458F0A82252DC5FA554F02010164CF1015EAF57820D468CCF372EA7C383A7A60291E7CC011176A5B8067E8A8134ED4A8A3529611957CE6C8D15D3A9CB9FC41E211E34312FC389B32E387AAA0ECA8B1641715E36D435B7434652022CC5F573CD1DB89F1FD3238B2F8BBD864128C9CB84E6AE3EF40B3D287CC918F41096493D2CCA4802130A6857BF09B252E24086558399EC10BFA7D708044AD24A80E011074B916DECA43F20B79CA8FCFC7C8EDC84340D99FA44025A16A956A78945C489A216082775208E8D85282E1ACE2AAB21C59B85CE9D855EA116D68E5508348A2FB8B4640715A3EE447A77E10CDD032A05875AD08DFE40090B5114491518F7FB70F63371E6CD6019B563E0D958166DA0ED1DE02B0209AEAB6F10838D07894484FA3184E66A0182178BE722E08398DA2EE33A7194E4D2393BF919366BE04590F96BC354C012052E9004962B57AFDCC50340907AECB1C7186C2E5C2A85C23C3C646A1CE8D335CB95AAF86875541C4D0BA9F0AA2016902F49812587C1BF46512F2C1B2F01A9404FE9FA13A1B67133239748A9F2C5BFA58AF20FE0C967C2B1D31436457E28CBCF813E8309063045CAB1343A30052E74F44036E63E52105ABA7A21158531265A051D2888C429E6A3CF902210BC6DC6000381069783B31C083C10BCD7E7059BC3C1034005CF910AF9426AB245B86DF5ADBB26449034153A9D6EBCA6A6C68CE9D06CB7DBBF3875FCC80BC7BF3DFC7BAB65443F298C144FA50ADF0A88A3A24018BC4B859FE22CD0401A33873781F6F9CE52066329B9F487BAD00BA57747835ED58D46A9051D630EC42F88C67EE11CA891197918607DD01394176483B6CF88C08CC36AB4C8297131171BA04B74920460339A1FF3B0057C5EEF0420E12C095F9FD107042B025559594923080A9CF538ECF9738ACBCA1F2C295D72AF2A2242454E34C4063F86FEEF8ADFC1CF6D8F407CD4215CF3C280751364C5BF01C3B6D5782C29F781B20F6A2B3EE32FE12D6B590FEA8FCAA0387D213FE34417521362213176019C47109472191464A7F2604F96B4D9EB3B1FB87998779DFCED40727E023A20DEBC76D181C9A383934807D64F1D3D2C228FDE0967F0FB04113F9EB0BDA0A0C0AD5028461AEA6AFBB56DAD8756AEAE7C625141C12A343F42F203323CD83F312F0125B5E3C9C9F1C710794E88C70830C3E717510DDE1658FFDD76EE44F65E4AEA50C2AAB222A8A9ED8418343995B794C0B9960E5E0B962DCE4581134F08DCF48E73F2E2D26459B358ADA01F30920BA5C18069D2AB23D9D900F5598A5F6683CB2C859F110600AF8EE4E2AA5338DBB57B52207027EB8A152B5C6EB77BE89B4307B44D4D0DAB6E5B73C73FA4A567E4921F550A94408B228112FC147FE01B648602CF4D183C5F21EA851054860C4A335A0EA9ADB7B22D7E3D55B9BC846A42B5AF462BBD14B5408DD63834BB53949D9B49D939B0399DD0D9D50D0EB4CCA1990DE438AF4C930113A50A6E0881E272D8DB070CFA5DC8707AC614B8C4E565F238ABA0BDBD5D8A416B7035ABB4BCFCDED5956BB66862340BC21D23490D2FD38BB96F058F4F087F848FA0C2762F9C971D87CCB3B7607B9CCD757676B045B9E974727CEC0CB49EB0AE17D1DFE5F6406B7B070C1807A7519B0ED27D2ACDC3D3C1EFF78E990C7D7BFBBBBB3EC092DF3E323262D66AB5DECB7A5032689A84E4C227061B8F23F7EE75EB1F5FBA74D9DD728542229C6CA2826008603A38A16593C9E4350C1839A94C2E096F6C480AB0D380184745EFE8D0426BA79657FCC9FC0E0618CAEF702082C12365BCD661D3B1FEEECEBF62AC17B0DC1B1000475D5D1DB99CC65DD193A2C43A6767678B542A5504DADD24B55ABD64E37DF73F5550585C261262D914064E44480B215C34E969836C6B6D6BF38C5847D1E4098533895E8FAE0F6AEA1BC0E5744DCE6CB8C085013185050201E7B48D35197B7BFECFE3719EC6DFD3A19E8D56555579B9904382AB7C54960081FA20F1783CD108447A7149C95DEBD66F782225352D3910F0ECC18796C9031338231E9BD32D61584E4002370F0FC3F1EA336034992E9EE9694A3F55F591EEE39E8161A3FE03876DF4101EBFD3E9749A9B9B9BDD81CB995303BEEA678543FA60369B652E974B83C7CBDAB071E3D6DB6EBFE327D15151CA9900B8D4BADD6E63BE395AE5FDF0B32F85FD06A368469ACFC2028E611C76EBF0C151F3E05E5C6F994EF76B7263247860869414D48771A4AE75DFA79F1A8E57551DD8F2F0C34F2F5BB6BC422012D182193ACCE99DA75ABD80D6C4C6D23DBDFD221230FFAC5850DD0322CECB7BC0D905959EFF80637D0E87EDACCD3CB407995F8F60F610BAD7D6D64EA1FB35BD351604C28740D8501FDCB83AFC5F6FBCD175E2D8B1D50F6DD9F2745E5E7EEEA55AEDC941F1F1F0DD1A1516F04540841E8464399FDBA1755A863FC046AE3A4077D710F6366E72E99C9B03BDAFC9E3F2C13BB702648404B5418D4625FDDE4D9BFE6ED3A6FB1E898F8F5F30732A0440F8FA489577C7CBAF892F95DFA174C0BA661E778C7EC978DD87318626A4BA016DBC7D36BA5FB7BBC36169E1465B3D888DC9D8BECF3E331EFCEAABC34F3FF3CC4F6F5F73FB5A95522999CE80B0E7078286860A73754116E09CFB5CCE938CDBF939FE4C3DEEDB1D19196999AEEE371480196CB503D9E041F765F9F3EBAFF7EDDFB7EFD3EDDB9FFDC7254B969491071FA6DFC5255F236D2FB061F9CE01C379DDCD3EB77D1F6EA9C1C0DB30CF074522911B8367B82BA4F27579482A4C1FC69011EEB6B636F38E1DCF356FD8B061EDB66DDB9ECACCCC4C9AE12992100B3881CFAB07BFE720769BD5780CF27F06FA9055B6EAEA6A1F7795397C5D9F122314C500C82DF0116484E3ABAFBE1ADABF7FFFF19D3B776E43301E442A2B900D1301512C332AE63C27F1BD0ABF7B1EBF4B9E131E269EE14AE87EDD4470AE4249DA6E6CB2E4389BB1090909852FBEF8E2B35E962B7BEEA55F8B45E06F1071FE2ADCED1C96D6163CCF81A8A828C7D5D07D5E01100E04B6DDA47F56CA64B2C4B4B4B4E53A9D4E899B47F0DC3A50237A67B2B0370D00E1B61A19211E1B1B53A1B0299115C4548D3536367A66B2B0371D0061FE81A48640A3D17073353357F3FA7F49685BF974DCCEF90000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (10,1,'Crypto-router_(96)',0x89504E470D0A1A0A0000000D49484452000000600000005B08060000008C2580560000000473424954080808087C086488000000097048597300000A6100000A6101FCCC4A250000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A0000225E4944415478DAED5D07785465BAFEA6A74C7AEFBD878434123AA22E8A050B20AB28EAEA457DD4A58A8AC8E2AA5C5DBDEAA2AE5E752DA082C86557D0BB0A5C4A80908490C6A4F75E276D32BDDCF73F249884992484E86A6478FEE764CECC9C39E77BBFEF7DDFEF3FE70C3C93C944571FFFBE076F2A02C0E3F1040B162CE06118B76EDD6ABC0AC0CFF0B8E69A6B84C1C1C1D6BEBEBE7E8E8E8EB7E874BA20A3D1A8C2DFA5858585BBDE7DF75D258ED57815809FE071FBEDB73B2E5CB8F0497B7BFBFBFDF1001002765C7ABD9E3A3A3A282727A7B7BBBBBBD2CECEEE493C4E5E0560121F1B366C080C0F0FDF9F9A9A3ADDCFCF8FD8F188C5E2412A225401190C0692CBE574E0C0018D9595D5078F3CF2C81357019884C7EAD5AB1D6263638FCD9F3F7FBAA7A7278176B88C6741974824846093542A258140C0BDBFB3B39376EDDA65F2F1F179099FDD7215802B786CDBB68DEFE6E67670E6CC99376249D5D5D5949E9E4E3D3D3D646B6B6B605580E00BC2C2C228343494038455C289132718481AA552E9B779F3E6F6AB004CCCE5F010BCB4A8A8A8A36969691296D91F7CF001CB7425787E1F02BCA3B5B5B52D2828C81BC1DFE2EAEAFABBE8E8680134829A9B9BE9D0A143E4EEEEBEEF89279E587A1580093C962F5F2E484949D9336FDEBC3B91ED8C56A8B4B4D4E0E1E1B1EEE4C993EF9D3F7F5E3BF8DEE4E464D16DB7DDF60C84791B40E034E2E0C183646363A3CCCCCCB4FFEAABAF0C57019800FD383838D4C2E7FBC2DDD0962D5B08D95EBE73E7CE4873561305237CFDF5D7F35131D1CECECE949D9D4D5AAD9651D2031B376EFCE42A00974F41FCBFFCE52FDDB366CDB2CBCDCDE5E8273131F15F1F7FFCF1629385037AF6D9671F831EBC834AE0F4A2BDBD9DF87CFED7EBD7AF5F761580CB7C3CF4D043EEF1F1F17531313192DDBB7753464606A39A9D9F7CF2C92A4B00DC71C71D2EB0AA2D090909C2AEAE2EAAADAD65AB0B366DDA34DD740541D8FBEDA1075ADAE44F9555D708EA1BDBFEF18F8F5E7F6ACA03F0F8E38F2F9C3E7DFA112F2F2F7AF3CD37A9B1B191929292FE022D78DA52B7CBAA0654D5814A71620D1AAB0250506B484888CFB265CB26AC03070F1FC377F2B69F2D28A6DCE2D23DDF7CF8C68ADF02006B20C26F300106B7734D565C5CDC9AAFBFFEFAAF96B2993927F07D0D80F3170A85545353C3744005101CB76EDDAABD5200720A4BE85C51C96F0200DE638F3DF65A4040C03AD6607DF4D147A456AB69DAB469377DF3CD37DF8DA61BEBD6ADCB43E3368DF508CC8EE2733A80E8B076ED5AD5950270EE7C09E5C87E0300C0823AA0C33D82E62B894D35ECD9B387EB78BDBDBD3F426677E12D06AC37322A1A5C6218D8710606063E0CDDF063EF67228CCED9E0E8E8E8F4D4534FF55D3900A500A0786A03B078F1E23BC1DF1BE0E1A72388560C80B2B232B2B6B6269148C45C8DC5CFB2E36416D4DFDF9FF5001C6DB175D0820A74C9C7E7CE9DFBC6860D1B6413052057564A67CF4F71006EBFFDF6DDE86697817ABA91BD6A70B84EA150B0891E761006A3D16802A79BB014E1B8C400C8846118789D558209C1960030E025E2A9F0F0F5F56D069D25639B4B4051DF4C14803C5919659F2F9AF200EC4416AF6414C2B27E700C3E67DC3E783C6C1D1B6C0E68E4FB06C7175F7CD1060CDC0736BF74F3E6CDFB260C401100289CE200DC76DB6D9F3A3939DD672EA0964019EDBD7FFFFBDF5BEAEAEA3C590C30EE7EF1C517BF9C2800F945E59455289BF2007C0CD1BC7FBC811F0B14F40D2D3299CC7360F3AB5E7DF5D5CF260C40310028904D790AFAC8CECEEEC18966FCC8E77BF7EE6DCDCCCCF418D8FCC36FBDF5D6871305A0A0A482B2F38BF6FCE3C3D7A72E004B962CF91022FC87C9AA00F40D6D870F1F761F70498FBDFFFEFB7F9B2800850020EB3700C07F4BA5D287AF24F043FF3E72E44827BA6797010D58F3E9A79FBE3561004A2BB90AD8FFC16B5317805B6FBDF53D74AEAB279AF123DF7BEAD4A92E08B1238B03C6C62FBFFCF2B58902701E0064FD060078074DD463935501595959BD3B76EC9060D31276926DDFBE7D2F4F1400595915654284F7BF3FB501780B017CF24A033FF83C3F3F5FF9CA2BAFB046CD0E63DB810307FE7425006403807D531C80D7D058AD9F8C1E808DA2A222ED4B2FBDD48B4DBBA2025E86286F9E280045E5D59C067CFDFEAB5317805B6EB9653BBADDA727AB02CACBCB0D2FBCF0421B36ED8538BC76F0E0C18D570440010078EFD5295D012F0885C22D93D103B0C14ECA6CDDBAB50E9BF6C7780B14B466A2001457D47022FCF57BAF4C5D006EBEF9E62D00E085C9E801D8F38686067642BF1231080105FD0D14F4D8440128A9AC81080380775F99D214F40C9FCF7F79B22A809D9479EEB9E74A8D466304E2F02128E8E1890350CB89F05753050008A458241245878585E5B346959D52BCE9A69B3660F1EA644DC6B10BBA9E7EFAE96200108538ECFCF6DB6F1F1898BA368DF744FD2000A555B574365FB667F7AF1C005E655DDD2CD21BEF455096194D26672CEBF47AE3E75D9DADBBB76FDF7E0328E895A153CC5722C4EC9AA24D9B3695180C86487CCFBEECECECFBB16D83838383412693B193FBC6B1C01804A0ACAA8E7341BBDFDDFEEB03A0A9A929C26032AD34188CF7188D26765D3F194D46EE22DB0BC3C42DBBBAE44DA7D2D3BD4B4A8AC968305C7133A6502868E3C68DE500204CAFD77F8FBE603500D0E8F0D068345ABC4F0F9DD061170D9640B80840F50000EFFC4A00686D6D7527E2AFD01B0D2BB10F293F067B44E0CD00C12EB2ADAEAAA28AF2326A6D69E64E474EA402542A15AD5FBFBE0ADB0B46CC4F151414FC11FBA2469569D8920DBCA6C2BE6A2C8130084079753D07C097EFBCFCCB0500A26723B2B25A82EF5C6934187F87600A2F09F825D97F61BD89051E835DF66318F25CA7D5182B2B2A5455959586FE7E8595B39393D8C9C9695C7AC0AE0F5ABB766D3596416AB5FA7F403B6F0A0402167C167015F4A61F0F4557579712CFF5A3015051534F5979BF4C00F8388885C8A49508DC9D08A87458704D26F3996F0188D12A44AD52F75456565417CBCEABE59D1D46045388EA604380AC16A28913B0C19E632964AF83F75BDADADAFE899EE0281C960EDBD1B10A600060099652F4B7B7B7ABC7AA808A9A063A0B17F4F98E5F080028E97864D6BD08FAEF7150DEC303FA63202F6636D6FD98E117D60F7DDFF0D74C968119F80EB54653D1DCD8F8DD911F0EFD70FA747A87995D64CE0A52623020F0D855BD0180E8F1375BA5635AD0D7D7A70C080850E7E4E4E8C7D280CADA0650D0BF1F005F1C0884D4B8124189B514F47165FF957C76B86E18351A75865C2EFFFABB7FEEFF2E373797BB06885D3181801B519D2604DD3470058509596FECEDED353201F6F2F2D28D16FC6100D435721AF0F95F5FFCD901B0C758CAF1BAC9B40099CB3358C86C73C1BC98D14382C6042DBFA49262C38228D0D7737420CC077D045817D7A9902007B46ACD17278F1F3974F2E4493D026D4290B903494A4A223B3B3BD3B163C788865CCA329E3EA06A00805D3F1300228C1B3056B2291A0C2BD3B08C348DCEDFA64B8304CA008796507A561E75F5F651F2B4484A4D88A1DEBE7E6AEBECA298B04002695F6EF68FE6ACDAC13FBB41443B57AEB8F3EC306EBA8CA00C02505DDFC489F0AEBFFEF92705200DE35E8CE56C0A77C44E9BCFEC3182D221EFA113D9B9743AA790ECA436343B318EE2A242E97C59159D3E5B404D6D1DA8022F9A9B124F5E6ECEA4D5E9C9C64A3C91ECB79810A8CE52838976190C9ACF1FBAF7DEEA894C453000CE0280CF7E0200420732FD9E81BFCD3EC6ED5E065E2BA9ACA3A3A7CF52616905B23B98E624C7939BB3239D3A9B4F67F264846E88A6478551EAF468E2E15F465E211596545168802F5D3F2799BB0555C0E70D007FE9F75EA4BE8164189AFD3FD2E3704BCB2E23C5FB4EE12D3B0D6AFEDE471FBDBB6BBC00D434347322FCD99B930300CBEEBB06029F369E0D8D2DA446D268749471AE908E9CCAE6686656D2342EF05DBDBD74FC4C2EE5175790839D2DCD4C88A5A4D808AA6B6EA15339E7A9B1B58392A2C3404B11A4C236B2F28B5021D5E4898AB8F5DA592416092796FDA3540E3CA7D664301EC4FA5D5D2E76DF6E5DB64C3B1A00B500206BB20078FEE55777DD75DB92D898E888F8F16CC452160EAEEB9077D3E15359743C33979C1DECE89A9989C8EE08CA2B2EA56319E7A8AEA99542027C680E6826D4DF9BCE169622F0855CE6A72544535C6408DED302F08A88B90D2F77174A8A09237F6F0F9295D5D0F9F26A4A898BC467BD860BFFC45C93B9F775E1F35F194CC69D1B1F7FE49459001A5B3811FEF48D6D570EC0134F6D3E066B36DFC3CD3D63F5032B035C9C9DBCC706E0D20328AEA8A67F1DCF2076E16A426C38029F4CAE4E0E74ECCC394E6C5510DEE4B828F07B1C8985223A8175D905C5E4E7E541B39362C90F016697FC659C9351674F0F458504520AAA804DC69D2D2CE6AA20D0C79312A243492814D0395939F52B5534373996ACAD2493E19A2EFDACC1586D301976F148BFEB9975EBCA0601A803006701C0C79301C0939BB61C1300003E38962FE0ABE2636232EFBA7349AA4828B4B6483F0320A8355A3A95954BFF8BC077F7F4D1829949DCE89077D1A1F42C62779238486D696E6A02CD4A8CA5C696363A9A914B65D5B59488E03211168B4574E6DC794E0BF8E07AE6881262C3480EC1CEC82BA286E6369A1611CC6944574F2F65A362EAB19D30E8435C4410F52AFAA9A8A29642504D81DEEE93E59A2E9D93321AB35C5C9C5ABCBC7D6F6D6E9343848B01C0D62B0760ED33CF1FE3F1008080CF5D73CF0682DF74E3750B6B67A526CF3407407BA79CFE752C0341CE240F3717BA7E6E2AC7E32CE0DF9FC8A4AABA060A0FF24715245114FCFDD98222043E87FA556A646C1CCD981E4B9D5D7044594C0BCAE1785C39FA890C0E4030ABB92A60C29C8C4A8AC6E72BB8CEB3840B36A3A8E8D00068462BE5CA2AB87D8A03408E7636945F5A45D61231C00AE128ED8A5D9399CFB2180AC562D8E5DE0C919BEDB5FF751977DC9807E0D9AD1C05B1C00BF83F82C086B5B555F15D772CB10E0EF00FE44E9C94578107D311E8622E888BE6A791B3A33D1D41B61F86D8F6AB549CA82E9C9D4236D6D6087A36A567E6919BAB132D484DA45804AA0854722CF31C55D73723B3436866620CB938D85326C4361319CFB6970637E4EBE946B9A0A46C80CA7A82A498700AF1F326596535E5155590BD548A40079308AFE516575253BB9C22827C28D8CF8B2A6B9BA8073D45EAB470125D14ED49EBB687BEA7D76030EDC372A7BDD8747CACDF2B320BC0FACDDB00006FFED0C00F0342C037898482A68E3EBD57674F2F7FD1BC99742D027C5479988A8E3753417A3DDC8C945B376F4602B5B4777295910B2D88879B59882A700700CCFBB3C06BD45A647B2C37546A15A567E7739D7014B23F155520417665828EF2107C0F7C8E09AE9BB3039D2B2CA30264B80F8049840EB00A398B751DDDBD14838A08823E94A0AB2EAF6D247F4F5754933F35B4B5C35575522280922221C60384B979AA41FB6AAE7286CC6535180DA6CFF53CD3CEB7FFF305D9B801D8F01C001008CC5400EF2218A0283A5FD30A1B394DD335AB42FCA5F43D9EDCB381047A112D6EB99B9EB1DD46C5F90D1CFDB477C83920E6A725924EAFE7FCFF49F87D37672768413CC7E5E535F5740295C1F83D05C2CCFC7F37ACEA4980548A9E2102C14B8D8FE2BEFB4C5E3195D5D481D27C11F830EA44C0B30B4AA9AF5FC96943A08F079C510D74A59E02F03703A3A9AD930AE198980B8B0DF5E7EE942FAA6AC0732985C13D8D6C24275737B8F7E4311765326ABE7CFF8D379ACD02C0CEBB2E5BB68CEF1F117B14253E973F827E46D251738F86028343E8F58027C82540646A0FA8E25D9CAB505A53E2FEA5749FCBFD08662CD53436D30FA8820264713C023E2F753A32D79DF3F427D003B0AC990337341D995C5EDD40E900A805414B8A8D042011D4D5A7A00CF404F54D6DA8A2508ED3D9DF59D00196F90931A1E487EDE597545029021BE4EB49B1E181DC36F24BABC9CED61ABA10C835700578DE0E410F053505F97A505D4B07F4A7972202BD38BD9854D734E4B3ECBB1DECED0D2F6D795A780900EC36CE989818A1542AB59A7BFDE2EF8542619A19EAB9B0E45D58EAF922B27174A76DDE7FA0453D2B48EFD063CA9B7E90E7DAEB4BAB748FD26D6EB7D38ED6B7E85C4321397F3B8DE625247181678F6308FAA99C02F286A79F37633A37E9C6E8E364761EE9B1B3331362B8CAA8AA6FE47A02C6DF297043B1E89A4BE198CE0038B61F4C947DB08D1C886F49551D9C8F17070E7325E720E656A0AFE991C164035B9A5F520DB7D40E6A72A7F0401F6A87E8CB2AEAB963890CF426177B5BAA696EC76744B0CB7613CB7E3395C3426C05EB6C8F26532010D2B3EB9FE40D0380053F343454E4E0E06087E76E0B6EB879B7959575DC05CA115CA41E7355C097BAD276EF35745DDF1DDCF4E119E90FB4A6E9797D41C221C1FF05EFE569EC1403F3D441F440ED06927F27E15C4E7C542828290181B1E1827E1A1DB20B7A8439E88EC34137AC77E09A31EC6A5A02D6414C59A7CC44D9DACA8AA323771727CA829B2AA9ACA750043411816FEBEC864897E14079DC7327500EAB800A88B02F7480D14F1F7A8582D21A52838622F1395F0F6700D34915F5ADE4E9E240019E2EDCF78E6F5271F4EC67F732DB585B9190BB8B93C725CDE60D7F1C0E00FBC1BBEEEE6E2902EA851136E7DA456FD84AED82CD077D0428220928E8455AD0772BE9797ACAB23D428FB46FA517021EA2248F2863797816DF4417AA4CA8B2A215A736D27D7EF772F6F1FF4EE710BBBD93F13BAB027727473A0DB1CD406530E7331B60F8329A427396955FCCF1775A7C34393BDBA14F28A2E2CA0B3A900C37C4B239B3A0843B5FCCBA644F8835D30159792D79B838521CE88865675E4915C9D19FB00A08863E302A2AAAAA8783B2811678C26E0B26E51C058B2B735B62049EC7E35F0C3E0F31DBB271CD8F00B001EA817313388A44A2207C306EEE75376CB5B777F0E18FA41FDE104086F4089F7BEDA2484D3269F91ACAB1394E0F776CA68DBECB696BD34794E976C0D41092470BD437F21E73584B2AF9F7646BF337AAACB3A6AAEA0729257E36B6C5E37480053A18B67236B4C0C9DE8E9B376281F7F170E3ACA9BDAD0D9DCE3D0FEB5B4B9121FE5C57CC1AB1D3B945A45269383A0A04A7B3D7F3E0A2ECD1F025A00AD8EC692E025F0F816714C5B2BE4FA9A642BC8F05202AD8178E4832EE066C2C20D8462F24AD80E3FDC1C41D04E2F9A7D60DAF00F6A34662B1D84EAD56FB0188E8889869BF0F0C0D5F0440C416A967C87A8D50432D36FDD420AAA33CEB93F460E7D31C002F347D4C87EDFF870CA4A7553D8B0D735377082243CB2E8ABE5E6F4F87D317D3277B7DD10F847353CE2C034F64E553CEF9520A4627CB28492211C13515A221ABA1E89000F41B51D4D3DBCFD15637962CF011086229C49BE908DB06B3A5CCAAE623F065358DE4E705FA090B4085185119B5D01425B6E5476E835C3F8E69EBB1B2DF0087C7513AA79317026F0E80AD9BD60F0780FD00D2810307ACB021473C67991F24B5778C8B4F485AEAEEE51DC1786C24F58C0484C717D271FB3354689349AB3A367000FCB9E9333A64BF97FBA2FB35A914E9FB1659D9CC31C6C77C8B8F6849A99290AC6C111AA78DB0852AB8A41ACEEB47870572DD31FBAE1359055C271C83EE370D816756F324DC505B4717373BCA4ED4D436B45246BE8C743AD04F6C1805797B5021C02A80E8BA39D973226C6525A2F36575D4D0DA4191D0137F00326C12714C31B50C04FBB140E6C478605ADE00D57001B700C49F9EDE70890873F6B3A1A1418C2A605AE0820DFB20F0013EFE81B363E3136EB57770741D493DC3AB8347B512F87EBBEF69B9FC510E80971A77D1F70E7B886FE2D37DDA140AF77E83B22B3EA294B075A4D647187DDC5FE4F7ABCB492C7E9D62C2CF524D43347576BE408A7E6F3A8E064D060E67BE9E75D24A8D9AD201461DAC6732BA59E6745ADABBD0CC9DE72C6A22783F32D80FFD44239D83805BC14EB21EC1155A520477C47A02464F11013EDC3E8FCF460E5C1263327FFE805DD6C226FFF47ADD00BF0F04993718FC1F7BA78B0060B9EDD98D3C733674500F848E8E8E128542610F5A726340E0A5A0B8C4E45BC2A3A2E74B245692D128A95FA0268DC18636F82CA7ED0D5FD0FF3A7E4922A398EED12550A8D75B9453F901CD08BB9F4A1BD7918DB8C33477C6173C6F8F8E21B424A22FFF398BEA1AEEE64498CDFF1FCFCAA54A74B32CA06CF6B4A75741E910EA46F87736131A0F9098BDCC845E308A4944150478B9711D30135D0FE70B222C81BD9CD8F4C3704D60DFD1D7D747FD2A25E87E38BD8C04C21C0DFD79F3533C8B9DF060356467678BECECECACD9CFB9A0C43CB0DA4F2AB58F9E3173D652DF80C05854076F58150CE9110CD8FC5AD747E899E677E85BC7CFC9CA684D2B747114EAF936E554BDC70150D2B891ECAD4BC8DEA6886C6CE38D49D3F6F0454235E517CD43496FA00A632F9D2C3B4B9DE97CCEB2B2B92036D39A7EB680D83538B1E1C11CF7772110A77364D00205D7C445C1153130B20BCBB98027C6849023FCB7855391979C3FB8E4929861D96F2405DC5B5777CF85C66A28DD580060280D0D82F1E2739B78639E9264402C58B04000A4D9CFD0DAA0DC9C5111ECB6FE8080C0E0B4A4B4B43B5C5CDC3C87F608438742A020835A4ABBED3E261B839496EB6328C4F35D3A57F52E074071C3D3E4602323A9551955B7FD819243D75249CD76BD343840F8B6E4552A8D3A4D482EBAA67909DD55F528E5645611BB193A1C34331360E8747AF409326E06343E32849B8696C31165A23356AAB59C15F571779EB44B5DD81C554B5B3B69900423036B09084B3AF0F2F3CF08062FFA1DF59CF0202D25252509A00D121B1B1B29DEEF8AE18D11989236FBA6B8E909D75BDBD8585B9A374A179CA2064307DDAC0F0400EF0180B739008AEA3793A36D0100A80200AB2839E43FE874E97EFACCE715D2863699E47E7517B344DC2DA5EB773E4E37862C40972AE14E531657D6C08A067055A0D5EA38FA61F33D4C1B98C71FB8F777C499B1E14098BFC86B78F66B21AECD2DAD5CD673011C0CFED06CE7F12F713AC35F1B0E44C6D11FAC8F1D3BA6E57ED3683C57450C00C1BA6521BA652B6CC41E0D8F3B96BE365269E4BC05D72E0B0D0B4F100A85FC41911E0A066B2BD57A197939EFA0DCEA37390064F55BC9C9F61CD9486AA9B67D2500584DA74AF6D3DBEE9B29A5FF1A92B86B4DE9B1BB79D67D8E745FED1F29C534939B9E66A72B03E07266A12F608D0E3B27500C918D41871B0FB7231008C631893676F6B386AE1519DFD4DCC2BD365444870360BE124603E0DB7DBB9D5D5C5CFA8E1E3DAABFACCB5206F5A1BDBD5D848182B071C46A464BFE7EFE8129F3175EB7CCD3CBD3CFD2249E91DA48DEEF844AB81B006C23676936598B1BA9AE630525063F4619A55F7300CC522C221BA394F6BB7C40DBDBFFA6EF53F409D0F9F258773C27791AB93A482947568E5146013E9E340376D47648236518E844270404D6C9BBBBA8B2BA96D46ACDF0AC1EE166CC57C2106046BC863EA151DED1F272E1B9B37BB18D6E76D5DD842ECC6273478C9620CE4C1F6CD1B039335A62B615227DC38CD4998BA5767652B31379DC68A73EF4003CDE3700A786EA3B965162D0139451B68703606EDFCD243149E89F4E1FD3A6E61D94917986E2C342F4B393638485A555E87C65DC69CDD9A802768E792C1B39DE8BC4FAD16394555452875C7E9156CCF2FB082046D301B61E34A7E96C6DFAA15426FBD468D41523564D709A8ACBAE0073FA30685B954A25BBD9D90D20F848ACADC36E587CD3F298D869A968A605969AB70B7EBC8FD41054B1E01D6A903F492F5B6FA439BDB79000BD037350EB5B5EA7E3C7D369466A0AC93BDA4D3D5D7253725C043FD8D7EBF26DA485D94C1D34A4ACAA9A6AEBEAF03A8D4921A3399D1140987AE41D05356525BB954AC57984AC16DFD7021AEFBB2C0D180F2DE5E6E6B2A96C6B3C750008EC2760FCFC0202126FBCF1A6157EB04D969AB791B3ADD877D283AC7A750A6AE7B55294249A9AD0BD7201C7BEB206ABACAC5405132816084582CBBB6674E415D706AAAD6FA4A2E252D268B5E310D14B2BC112006A557F53634DD5BEEECEF60C1678C4A30546A64BA552292B2A2A7483BF6F3A6957470FDA568D4623D26AB5B6103127ACF2C2F09F3377EEF5F3175EBBC4C1C1C9C15C373DDA6CABC0D2FC93466394C98A347C91D88A7DFDE55E6DDDD121A79CFC7CEAECEA1E75DEE6127E37AB033FFE6DD4E9156D2D0D3FB4D4D7FC0BEB6BF07D0DB0F09DA06905FA2A2D327FD87D06937A79BA39DB0A305CF0E5DE1821B7DDB17479524ACA5CEEE6080B9DF458137F17336F00C48E8E0E5D6969994120B6B21A0FDD309ECFC9CBA7AA9A5ACE9D5D4A1D9681184D07D80D1CA09BAC96BAAAFD087839E25A8F636EC5FA5E8542A196C9647A7337FCFD2437680CB5ADB05BECD748ECB153EE58EDEBE7E7177FFB9D4BEF0E0D8B881C76A267E41C13EF4290C70B1468495DDFD82AE009F82273D9AF37E829BFB088720B0A49AF378C8BC32DB999914028157D15ED8D35FB950A45FE00DD3423C9BA241289D2CDCD4DB777EF5E8B97B9FFA4B72899B3AD00C203FD82FFAC3973AEB971F1CD4B5D5D5D5D2E877A4603831D64D6D96C75578F42823AE70F4E1FB06C4F3F7D869B431A6BBAE0D2205B06C0A0D3C8E56D4DDFF575C94FE2ABD9BD668D5656561DE07905B25F0B9B6918EB7F6EFA596ED263B615FAC067D31AC8465B88F4A06D0D5AF1FBBB97CE9A33F75A6B6B6BF1E550CF68A028FAFA0CA732CE68ABEA1A25DF1F39666AEBE8145CFEBC8D251D60401B358AAE8E93F2D626C6F35538BE3A1C4F2BFEEE198D6EFEAD77499AB3AD58E58A9DF6F1F2F1895DB9F2BE7B626263E2047CC4EA32A86768E58CFCCCACEB166B551A9DD8B2971FFF0C26B724BE51ADEC91F5B4351F4453C56EF0AE41FC18DDC8D97F9FE2EBEBAB1D8D6E7E11F7090FB5AD6C5A839D040225B11FCEF39B356BD6DC3B97DDB5C2CBCBD3F3F28479E4B810BC99D7DEA055AA470060CE4E8E0300834EDDD4DBDEFA9D56AD3C87F5D5D8EF462CDB91480AD08E663C74F38BBA517BA86D4526B1D956665B3D3102EFBB6FD51DD75E7FFD0D525BA9F5B0D956C1E8811F36FFC46E6CB86691B61F15309688F2863458239B2E93D1A050F5C88FAB153D27B0C9AA8166AA15FBCCDC8D2A2121417FB959FF8BF9A982A1B6954D6BB07B88215E2EAC9B7677778F5CFDC8232B1312935250213C4BB3AD664F8F5EB0853463C122AD52A3158F3D6F634607783CBD56D59BABEEE93A846057B0ACC768C2DF72504E3F1C8E6EA4A7FFD501604E1FD88561CCB6E240D9D938DF3973E6CCBC6FD5AA95FEFE017EE3A59EC147CA82DF818234E28B6E661CF336EC3D469DA65AD3DB75D868D0C9900C95E8651AB08B6DA0CC5E18098E6E2EE717557E35BF9632D4B6767676C2185973B6152FF93FF8D0434B6EBEE5965B1DEDEDA56351CF4500E65FAFED576BC596663047026032EAE50665DF718356758ED10DEB64F1D966D8CA6E08AC12C9714574F38B076034DB8AD55E68EAC2D7AC5973EF4CA835A88A6F897A8602D0A7548BCD77B53F56028F67529346794EAF529CC27AF60B5A4C641B50851D96A610A6340023F5010190000C36DBCAD9D6B4B4B419AB573FB22A2C2C2CD81CF58C04C0F2992C9E916FD0969BD4CA1300A17C20EB6B27EAE9A71400966C2B56B1D956775093DF1F1E7EF8A6BB962D5B8ACA7030F7D9410006B6338C868426438BC0A03E6D32E88B10834A4637AC93BD124F3F2501B0645BD9FF7EC46C2B4009D9B469D3BD786D01FB65144B00B0070340482685D0A4CBE11B75792CE371FC6CD4E3EF76886DEFA0A7FF29B3FE57098025DB8A8C65D31A3EA9A9A9094F3EF9E483515151914300500300AB818B6075129EBE5460D0666133D51895C8F85A7CFE2715D9290580A5698DC18BC85015BEAB56AD5A74CF3DF7DC0D5A724E99FFBBFE3EA5CA4644867A31E9B3C968605453F5738AEC940460AC8BC890C941A0A57B5EDBF19E7F577B4BB1808C4D38CE4616788C3A34763F9BC84E69002C5D44C66C2BEB1F1064D643D86028D9F4013B1FFB738BEC6F02007367E35005B600815D48C640D1816AFAD8CF8FFDDC22FB9B0160E4D938E88300C116020C3E96462CF5A01B1678A3E91774D0530E809115316495C9F40B3CD8FF077745D6E4B1A518C80000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (11,1,'Crypto-router_symbol_(128)',0x89504E470D0A1A0A0000000D49484452000000800000007F080600000027FACA070000000473424954080808087C086488000000097048597300000DD700000DD70142289B780000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A0000261D4944415478DAED7D09781BD775EE9901402C240812043791D462AD14B539B663D9969DC64B9AC475DA24551AB769BEB85F9CB64E9E9B67FB392FCD4B6C377DCF4DDCE43DB74993C64E6CA771B3D5511CC7892D458BB558BB288B5A4891E2227127C19D048865E69D339801EE5C5C8020C54D2DE6D3D59D19020360FEFFFE67B9676624555561A196A79E7A4A7EF2C927D5871F7ED8575A5AFAE16834BA6C7272725C96E56EFC73EB515CFC7E7FE8E4C993117521BFE87FE2455A88F3FAC0030F3856AE5CF9B0C7E3F990C562A9743A9DBE8282825CB7DB0D914804FAFAFA606C6C0C46474787900CE791186F9C3A75EA7BBDBDBDFEBD7BF746B2B05DC304F8EA57BFFA3904FCE1E5CB975F77CB2DB7584A4A4A40511440A0419224ED35C63691E1C2850BB06BD72E181F1F1FCBC9C97979C78E1DFFEDC48913E12C74D718013EFBD9CF96AE5AB56AC7D2A54B6FAAA9A9B1565555018EFEA4D789BE4F381C86BABA3A387EFCB88AA468989898F8F457BEF2954359F8AE11023CFEF8E35B7D3EDF4F366EDCB86CC3860D8072AF8D76FA6C9477ADD1BAA102AC1AB0DFEFCC9933B07BF76E4025180A8542F7A1FF70300BE12227003A78D7555454ECC3515F45E0A3DDD7A43D180C92AC6BB69ED649F66D361BB85C2EC8CDCD053413DA3611C12003820EE817029A00407FA1677878F8F6A79F7EBA310BE32225C0238F3CE2C5D1FE7A7575F5D64D9B36416161A106624F4F0F343434405B5B1BA09C6B403B1C0E1AD91AF0797979808A01E41FD07B68BF4182FEFE7ED8B973278C8C8C10518EE3F16FFBCC673E93F50966B858E7F2E068E33F8300DE44F69E3CFC40200057AE5C81C3870FC3A54B973479A7FD086E0801ED42A02524841D55C18166C183231CCACACA342210418804A4106BD7AE8563C78E91A978576767E7C7F0A35ECE42B9C808F0E8A38F5621589F282F2FB778BD5EC0F81E308CD3E49B1C3A0213F7FBD1C13B846AF0DDB7DF7EFB2812204AEFC5FDF977DD75D72308FE87F175CBC864949696C69580D481CC04AE5BB0FFDB175F7CF1954F7DEA53C12C9C8B880068D757151515AD40FBAF3975434343505F5F0FB5B5B59AEC23317A11F84FA1677F10657D82A23F23D983C08E20511EBFFFFEFB5FDABC79F30BF8FE2D14311091ACD6D857B6DBED94272013B1A6A9A9E97ADC75380BE72221C0534F3DE542DBFC97EBD7AF77916493938752ADC936D9FFCACACA0934018F628CBFB7AFAF2F28080589086124C21904F99328FFAFE37A1581AF8F7CCD749003893E83157D8607B30498D922CFC541FD7EBF1781B985462C81454091C377F9F2654D0DD0E33FDBD8D8F8666B6BEB64BAE3200F945FFFFAD7F5F8DA7FC66328A42244263A26398A742C722AD134DC86A4CBC9C2B9480880C015622B21D926800838029F3C77F2F871FB0D94EDA10CF3FB91FDFBF73FDFD1D1D14461231180F2064400DDD450585989247067E15C24044050D6A38DB613504400F2E6DBDBDB35B0707718D56027019B219954741A270606060E1BB903722889486412F40492134DC9C62C9C8B800028C556B4D937E5E7E74BE4BD53E837383808DDDDDD5A0208E57B18B7DBA779D8303A8A7BC8E9230210A9885C141A528F7E8184EB7767E15C1C0A6045395E46CE1A8143809103482AA02773FA4924A639BDABE2318E22010244282200650E8900D4EB2AB04E32B245D96541098058C8A564FF69C4130128FE27D06841520C846976679A4B7373731712C04F21241D8B8E6D4C26E9B38715DBB76F97B3902E3001D05BA75158A0E936E24CF69A4840EB345211AC8091F0998653A9A28228E803F4D1F10C025014601000077F694D4D4D560116831388E038087072DA0830C373D7C19A44074E99EE31E93D78AC7EE3988602E8A42202E4EFDBB72F8BE842278230D45371643A28E4A3914F2120D97F024C6F93E8D14F7B060A5543C1F7068CE9636A06017412E43CF4D043D9B2B1852600CAB382A3D146C0934F469E3B3552046A086268260A80219F4ABE83110150336A07743361411F204B808526007AEB9B7C3E5F0129008143E093E7AE834FC06D5AB366CDD7EEBCF3CE100248F97F220C1122CA6EF37D6565A58CFEC52ACA2AD2B1890806C128278066C18A21283CF1C413595417820077DF7DF77AECFE0E01FB08DA6989649F24DA700009245DB2AB11B86A2362632337233214F54426B2FD7AB1A84600DA479F4321277EA6ADB6B6F6BF23B1EA512D2EE267B6640B48E78900F7DD77DFEFE349FFB2EEE85DC011BFE2CA952B4E8AD3093C9A13A032309ACE9D69010ABD8F1484C027C0693690C84361A1AE3454DCF28FB84F753A9DC76EBDF5D6167CDBFD5988E7810078D24BDC6EF7CDE4A8210986A9E1081C217B8F6D9852B6E8A4E52140767CB9933CF6E9462006D8A40034EAA9728880A7631329481D5C2ED7892D5BB6F83C1ECFCDF859D9FA8079340111042382A03850EA8B69A433925F45CA8004C02E1AD049D1AF878756DDA1233B102F4F639D3B7D5D95620B6DAB7AC68F7AFA0C891C4404DF5D5D5D7DA31E866A916316DEF9234054CFD700DB0844220235248505FB3C831CFABEA4F599FC9D88F0D8638F0D23F01EC6C46409308F26802EDD527802889A91BB9FCD6638926C8619F765EB03E6D3041804301CB6546DAABFCFE43D3AE0942882AC022CB009988B119E0941C84FE0E698B20A305F0440272E82C0A75480B95005FEFDE470926399558005F201C83B9FED519DE9DF35B4D119A4109159B204984F13A0C696590378BA0D1540D5C33FE3F85913309F0A10B300736FEB53FD8D1480F301B20A309F51009F0798ED113E55A3CBCAB82820AB000B9D089A0D6730D3F7D8ED7629AB000B9B0852E762D4671A56A2092005A0EF61FC26AB6478A6D965EE093053F0674B15AC56AB1CC205BF4BFC376DDFBE9D54209485797EA28079B3F72255400590A3D12881ED32488261619600532CB352148AB63792CA0798ADC4101FF70B14C082C408B3E44052641DC1F920C0744DC04CD2C553BD871400B8CBCD3032C83A82F34100AA05982F6F3FD53E520012234E99B204980F022000D1AB8D00AE56157402443865CA9A80B926801E6A45AF760467AA0AA9DE8304A0AF62BAE2089DC2AC02CC3501C8F3A372AF9928C06CFA02341BA89797671560BE15006D2D9D78693E337FA2E9605C4C04C07D5905980F1F80AA3D1108693EBCFD54EF111100F76709300F0490DADBDB156364CEA65D9F8E2A10018C4AE2AC09982702E8E5D992BE2ECFE7A817F900C493AC02CC130174F0E9ACE7343636DA100479AE62FC4CDE235200C84E094FB9586708BCAC377ABF0B623784905281361FAAA047017C822AAB00B3490092791D689BDE9CD80AB195D2E5D9C62DE067CBAECF80001217A26609305B0460463E9D54873EF23DD84AB055910960093017E5E1E94891350173AF0086CDA70B3CDD3AF85E6CE57A93E77BD4F397A1F13E0DAB005BB6DD695555C5A52A6AAEA2AA2E6D9D7A6D5B5B77E27A08D727703DD694D8BA626CAB6AB0A3E1ACFA5F8E008CB4CA3A0148FAF37412D095BEB9E3E3E37E97CBE5A30B3D71F49339B01A57EFCEA52A501D60FFC020345D6A86D160D81B0C2B1051E849240A4C46A3FFEF5D77DCFD2D04D2852FB625BD1F5F87800BD615BA7375F23ABEA874E5BA00AEFB71FD32F6D4DAF45E6B782EDA86DA5B47AE150264FCC008DDFEDB75C0BDBAEDD7EC3FB6327D3D372F2FAFB0A8A8A8C4E7F39517141494DAED7617E5E9911C16FC1BDD4452BBB4DBB8C67FAA0B3F8D9EC8E41F1C868EEE6E68EFEC86BE8101F023F04343231055A21A80084A0C2C2180CAD480A7204182B8B84FFF9CD87E765D616F58358CED327EE73AEC4FE0A93B21CB52ADBFEDD2D8B54E801CDDF6BBF56690C1ABAB815327894D3717A43056B7DB9D8FA428C5BED0E3F17891041E043F8F52B5440E5C57911C329244C67519FF2E836C91039361189B08C0E0C8180C0E0D43587BB6500A205902B0A019C0C4DF97211984E4892B81F9582613669C2F883FEE466F0A9EC27A592304365923C6E9CE8BE702D70A01241D50C309644D01B55C7DBF4D278A852181B12D33BD66AF9100560FB1C2575C525C5EB1DA955FB0CC96632FC193E35004009AC14C00986AF4C75ECF8D5EF6380253C01229F93822DF45D5815739A7496381800CB2B14EB7C4DF8FA4785592E5575BCFD65E5EEC049018608D519EA3373B3BEA3902B0DB71021495947957AFDF786BA1B7F836BBD3B1014FB08507337EE25311211D801C013219C54202F0801BEBFA90D7D7803D95898054075DDF29A56FB5B224BF8AFDAB176B8F9E5E5404E04860349923852C68867268AFABDE747DE9F2D5EBDEEF74E57E004DC08D382A2D71FB9A0180199120C9794B72E638C005441082AE8D75F34DAC0C2224620F2327160F9D8079F2598C0C3155B0586D20D1F313A2110119E43654861DB8FE2F678F1E685C14044811194882065C2FFFC1F64FAC757B3C8FE30FDB4E5142ECE401141478A1B4A4184268EFFD83E8D80DF64344BBADEC54244821E753C8786A2967C1077D1B7479374820204022E68C1341E26480FE773A73F177964179F912F0798BA0D857047DFE61D8BDEF0D08EBB7BCA3D7CB92C42B8582FB5EC3FE9BB507F7EC5F3404988210F1A1F0E77FF9375B90E57F8B1B1F4110A458F58E1DBC8585B07279156C5CBF06B7656D544411A4C64B6D70115B5FBF1FFAFDBD18CE8593CC003FF2C5044800AB4C27D914977701E8F175C6DEEBFB8CC58261AFC75D08959555505C4440FBA0A4D807EBD7AE829A75AB713DF6149571746EFFFA912FC1C953C792FD04486922C881FC06B6FF38BAE78DC8A22200BF3CF8F92F6EC593FFBFF0F8F792474E0E980B4701B1FFFACDD5505652A4FF28E07E746C9BE2F8F30D973432F4F4F521217A201A090B46B1C2012E2044A6A0EBA33821ED3AD8BCBD5763A3DB6177E088AE80125FB136A209ECA59515B06563352CAD5A02F63445C9CF7EF72578E1472F69A48E8F78DD449814C0301B9AE308467F19FBAF1EDAF9DAF38B8E007FFDD8970B1194E7F0B81F65E3647211BC28F7D72DAFC091B0124F9E5DD38A38F032FF83132D1C8942DDB98BD0D0D4023D3DBDD0DBDF8D04897080A7B7E162C0811BEDC9CE9D4180828222A027A095E0A8F615D1432D7DB0B17A0DAC59B5020A3CD37B5A4D67572F3CFCF857A0B9ADC9EC1C9AD6138321C97904FD7C81B41BB71FDCF7FA2F5A1605013EF78527B72108FF4EB7865314B36D35B6490D725D799A0958B37239AC5BBD1CA8A0572479B2605F281C815367CE43C3C566E8EAE94132F4306488D9EDA2421F783C05D0D4DCA07D1EA85C8A19D2387786A49B8800E0C92F40B0D762BB0EDE77E7ED50BDE6BA199FA7A7BEF6CFF09B375FD78584013E3622E220430AB300E6B0721CDB17B17D6BD78E9FAA0B4280CF7FE9EFA916E04BD89E40102C2CE0FCA834A78325C877E7A359F0C2C69A35B06A4555FCC1D18639908D98594E26C6E464088E9EAC83FA46244377B7E67EAC5AB11C3E70CF1D50545400FFF4DD7F43E5389DF84C1664860C90960090907D8829C1EA55EBE0B39FFE3324F0B2699FAB93B5E7E0C9A79F01FF507F0264BE1790210978CE4FC0FF0E62FFC06F7FFEA3A67925C0634FFC43199EE01FE3717E8FF7A8152595979D3C2F20491628C4515B565A0C376EA981CA8AF2B804B24A602648821013C190F6191E775E7CFF64280CDFFCF60B70F6C2199303191FD91C01803109091F2FB6EEF5FAD074D5C0873E7817BCFB5D337B3E151DFB0B4F7E1D8E1C3F6C063D6EFB7932E86600A40CFD04A91BDBB65FFDF8C54BF342802FFCDD3339F8FE03E884BD3BD9DB663CF6344430D970DD67B05A7270041741657919DC72D3E6B8E79C641E900C2633214B09C5D0C882244062FCE3B77F8024A813938021030BB8D1FB7CA528F76BE08F3FF401A8A95E9531D05D3DFDB0A4ACD8B4FF57BFDD0BDFF9FE0F20140A1A0902A34B069E053AE57A729611B75AF03C6CFBC50F9FEB9C73027CF1EFBFF11D7CFF5F659645E31520D56B20A12074E3871C0794A277BD62D952B8EDE6EBD1B6BB937D030378D9500B9921494C099E79F639A8ABAFA307D49AE37B9E08B19302BEE2320DF83FF9C8BD70DDB2CA8C81DFB3FF08BCB1E700B4B6B640C5920A58B17C29DC75C72DB072C552F8C213FF000D8DF5A6916F801A5781A43E06320B38EF2842B259388BDD7B7EFA83EF0CCC1901BEFCF4B39FC4F7BE94DEFBD6433460A75FA739E5ABBFD7E5C8431254C1C7FEE8FDE8443A93154136E7DA65960CB81E42127CFDD9EF41DDF93A860066FB4E3E49697129AC5BBB06EEFFE8BD38824B3207FEC011D8B9E720462A1763239C498A381DB9505A5A066D575A92F2C5F15491C4640D993E250998B019B8305ADF3E42E6E0E5EFFD5374D609F0E433DFDE84EF3B82003B85A029D38FC58D491552066374929FE02D2C42676B05BC77DBBB213FDF9D36429053388B86A9980C85E06BCF3E8FE6E02C7E0493E9C3D355E22B810DD5EBE0E338E28BBC051903BFEFE0317813816F6A6E84707892CF059A36A524E053806F02998B10985EE253CC9C99C0F6D197FEE59BBF98B59AC078B6CB223FA155D0E0886193308A1E5629526CF44BAA94795C0E46658FD1DBA020DF035B36AC03373A761D9DBD3030348AA389EA0372C061A7BA012BE4E4D8D14C58E93B31A0CB8C69489C24CA3DFCCFBF7910BEFEADEFC3F90BE74C8EDFC4440023891ED8F1FA2EB8FB3DB7C2F2A51553007F1C76ED3B08CDADCD108EC4EE4161B5D978CC852C481AF5714790DD2F023C31F24DA09BD64D7EC1E770C72F6655019E7EF6391FBEA753A1722B351349575280AEDB7A601232E92A849584876EC1114D2957ADA75A4089B665741EAD5A0512EDA3DC824D7B8D45DB47DB5A8F7F2365AA7DE73C0C8F0DC625396E0AE88E63762754942F41DB5F05EFBD7D2B9A9E8A38F0070E9F44E00F414B5B0B4422193CFED034FA25300F7C894DA527ED17FB04900474FA75A9E65FBFF9BFCFCF9A02C816CB36AAB5938CF06DCAD12DC79521391123A75002C8607F14475E04426176C246B49ED8C74EE0683795D0CAD512797DE36F8A1281CB1D97E1727B1B1C3A760C9620199662584A2AD47AB915A24A443BC954A9A4A6C73DD5BC89C00F30EF4F10426C164CBE417A02FC15AE3C3C6B04C0D1B57CBA397699CBBE09D50032D8C79000D8BC3DBB1FCCE01B402FABAA82E19151E8E9EB650087A4620EBEB083DEDFD1D9AE35ED545B2454119BD9999B7AA64C6812CC45EC9CDD17EE4BD7A75CDF34AB3E407373D31DAB56AD49025AE17A55083AA49C75330398E2BA418E14A22AE438A0E887E458ECB07AD50AF8FDF76ED36C3A9992BAF317E1786D1D34B75D81C1A1C1F8C4250F7C34AA421946042E97039D3B549B68589BA0A2B4733442935B518844E9398851CD144463B5807AE246658D7D922EB00027178F24FB04E67DA9B745BEC1F0E0C0DA5925405757976DEDDA6A731E1D6DAAAC03986AB48B4901422200BF3DD59C3C93BEA5AB549D760754AF5E09EF43E0298914375FE8336C46A7921A55139F387D0EDE395B8FF6BC1D4627464C36D96A8D45319FFEF3ED50EC4B1C834844F31174534A0A2D437A1F0C4E6A8EE4D8441026020108E076507FC22911C620D0C4F804B45EE982C97000954432178F70C0B20525661F201970B6D804A4C4BEE1A101FBAC12A0A3E34A3F395B6680E534A08BE49D051D84763E793A563C279FB0DB0AE4B9F2B439F77B7EEF1670E7E5A6AF8747B3B0F5C6CD5A23F05EFAE9AFE0424323460E4A5CDDC70363F0DC0F7F068F3CF400381CF638891CF61CAD4D6721A2BCFEE65B50DBD98DE8844DEF37016F025C448884B248A2F090731407FDFDC15925C0B9F3677BFCFE7E282E2E4969D745F65B28E18C1D4F0D7A42DA690419E7C42000ED2BF47860D3FAB570C7AD374E1B1832096FBD7D1C1DBE4EB0E518956D894920FFF0203CFFA357E0A1BFF8B8E8CAA38C9653EF5C80575EDB0981C9092D4165DCBD4EE2CC84C9096481E6404E992D0476EE20F61BEA4E1D1B9CF53CC0E1A387E0C37FB45D5C50C1839834FD2A98834F220167CFE93FFC417FFC07776AE5E1E72F3643674F2F9478BD5AF1054DCEC4EE1195F972BEA109F6634877B9A38BF40363F818F8A2B0B8BDA3137EBAE30DB8FFA31F9C1101B66C5C0B76BB0D8E9DAA83CEAE1E181A1DD5AAA04460B3F303291D426EFEC00C7C2293D8547F0E0607FCE15927C0A1430760FDBA1A58BF7E8358CA33250264B64E8F96BB71530DCA7B6C3266DBD61BA0DF3F08DE42CFB447657D630B1C3A7A0AAE74766944B311F0AAC5880120B953B5B374AEE122C6FF859A799976E88CDF91BE3B3572162F3434C38977CEA13FD58BBEC7984E5E33F0AC7368023A891C821EFF1F1D1D815DBFF9E594DF6D460420705EFEF10FE1B147BF084545BED42555A239780129F869589E00E5C53EB8F3F69B4DDFC1575438ADEF7CA9E5321C3C568BA3B91B5449CFDA992A7A5526B2534D45BEC6D6E113A7A1B4B80836D5AC99F1041A25AF3654AFD21A119BC870EACC05E8EEED83B1401043568BC90F30397D02FF40347F4024DBF9DA2B109898981302689F450F847EE1C5E7E191CF3F8EB6D336456D1D089D3F91CDE7C960C11372EF3D7768A9DE992C2D973BE0C88977E08A017C0E07BCA8AC5B85E4048FCE0ECAFB7B0BF3A1724959FC4F0383C3701AA3891B36D780273F6F3A3915D8B07EB5D6880C540379FA6C03F4F4F5C30446107622A9281AE0E60F7827F1EDDDBF85DEEEAED9AD07D02F0D0357C992A751D21E275993650BDC70C34DF0C94F3C107B4A2870F576023B9FAEEE4EE59338C8E4DB6FDE021BAB574F1B788A0AF6EC3F06A7CFD5836CB52457F072D5BC49DB712150794DD0E6141EF8F81F6ABF79CF81A3D070A90DC291B076F24B7C85B072D952B861CB7A6DD672260BE516CED537C1D90B4DD0D3EF87108692C65D6F85E0334EE2F9B3A761DFCED7615C7BC8F608F6A3EF60C8BAE5AA0860804FAB3A01FE874100EA972E5D067FF1C083182F9708490049EB7C554E7271062594565496C13DEFD93A63B9A5CFECECEE8177CE35425B07C5DE21C06F6D22417C1E80035D4D22827971615848F9000287BB318976B1AA55B22019BCB0E6BAE5683256A3139833433244E0D8C9B3B0F7E071C8F3E4C62AA2809B37C07F5124CD892307E07CDD6918D3809F05027057026957FAB88ACBFF8F6CB13CC212801A5DF1FBF18FFD29DC74D3D62429E77D0048458C380100721D39F087EF7F0FCCF47ECFC1C9100C60C4D0D3EB87A191314DA63BBA7B3593629C409537F20049E4E012C3D3FE1E040CE51CCA7C45B076F572A85EBD22E3888542DC03474EA16968A6E2486D5ADBE404EAEB63232370F4D05B28FB9D3036363A2D02583319F590B81F9055259759B0D033FB7EF4F24B70B1F122FCC9C7EE47C63B920B2FD3128099919354D876F3F519814F77AA1F1D1B87DEFE41181C198511047B68740C1DA02004C361CDE9328628913431C879585501E82A5C05F6DA62B3C67E43FFF0307461D879F8E4198D0C356BAFD366195345311730D43D72B20E82A130D81C39C94EA0BEDED57E19CE9FA925A0D30EE4544F4EB16600BE718127FD123B9E88B45A76E2C451686D6B817B3F781FDC78C3BB35E7842580287FCF1360DDCA2A282F2D4A1A0D816010FAFC4338A24791DD13303C3A0EA3E3014DDAB5DBC431F22DE1B6C36231397062E0B9BF73AFB94AFC4D9EB341863E54A39DE89F506D431946151BD7AD8425E525DAB9EA1F1882BD078EC300FE46BA3782C369155E6A16084C403B9EE7AE8E2BB1D2F7A9CDB89004D634E0CB60BEBCDBA13555B54FF56194297C19D5E0CD377F03EF7BDF0734B340B2A70AAEB0E1C951989F8B76B30AC322BF06F0F0C8388CE0081FC7111D0886B4220F76FE5EC2E8C0213B12E2ADF232AE32BE1C7F152F1B0D4C21F6575B3ECF390A36BD78A4C73F0CED7B8F82CB6987FC3C1774F70D400E3A99AEDC5C61D5501815C1EFEF037F5F8F26F719724FCB0B8A486015D87C1E7CE33E00D4DCAAAA3832FDCD03037EF8D9CF7F0CBB76BD0977DD750FDCB2F5B6D81CBAA81A575FA7F2EE37DF3A192BD432A907B2101D2953C9365FCC91E17A32F03C51521A0298521AA4A96A43A4A4D7C64C9D04A38110E4BAF3CCAF65AA868218D78F0E0FC26470DAF7949021761BDD291540E264DF009F665662378652D569C736C3C343F0CB575F813D7B77C1B65BEF802D5B6E8092D2D2B80F9038F9B1DE962327EDE78B39D8A454E6C04352AA571504FDE27070161613F6C97583FC3E99CC18AA0149FCC4F818E837659FC9A7CAC6AFD0EFE4A6261180937E037C870E3EDDFEA580149AEEAC35D3DF4FCFF6DDB9EB0DF8DD9E9D505E560E9B37BF0B366EDC0C65A5E5602ED386A4C28E94644861E3D534B65F480C412A3879B067E81426612BA5799DF9AFE41492ED27279AEEA144612079F557493B03E7284F02AB40FA8DBB79E430239FC0D7EF05A43A676330F4F4F6C0EF76EF4455F89D5632BD0989B0710392A1AC2C05F069F625D9789533EBAA500152D9FFA91CC2ABF503A4A4DDB1509A8A5C296434C2EB59D41D2B6302A22213C0C6FA164EFA3D0C018AF0100E98E5A5AFAF17F6EEDB0D6FEDDF0B5EAF17962D5D0E5555CBA0B2B252538744ED9E481978E78EB7E582D725A39F76FF4CFC41494A9FA052F519CEF8154E7A9B83C5204054FF51D4144305ACDC0B8D7BFFE440E20650742730E396700599440157B30C0D0D612C7F86EA0E627268CDD154A1B272292CA9A880254B2AA10849A20A0036DB7795034A15029C0CA63A05D0EA34CE7B2C25AD55054523B1EA66ED2A0449B3EF3293A398C345D2F18CEA2A608A19AD9CFCF30A6010C0686E759E6FBF4A69D5AEEE2ECD64D49E3E19ABC87138A0B0D00B059E42F014148027DF03F9D8DCF9F9DA35040EBB33A5D3974C8CA9F6A72705814AE561541718033AAAB5D84D3194B85D8F37FDFA85795C8CDBFB525D40840D0B0D13C0CB3FAB002EDD0C30B78253ADB0C04B2814D2CC86DFEF379F5CBD9113E5761319DCDA5D3C6CB89DA3DD803247FB1B4D05DBACFA3504DAB502B15ED54123D229D1D8BA92E23E44D14844CB42D23E8BE03BB069F2055E8C9B7BB337F152443E0070593F23F9E3D29B534F042DF82FCA640285424FCA851B40C4AE1C8AF53C40A95BEAD758F4BF49F2A23F1D5130DFC54D62D33E322715EC73000C12B0CDA62AD13064976B69E9E346BFA914594E9338B0089A55894483D9737AED2C68AE3A78D079072195D7A38A5CDE682838A2AA4A247B6AAF1902EC4917BEC81CE80AD3A2BAD718318510AA1A8D06837DD9537B4D80DF828EEC1926099434A865C1A88FEA214348EF27F516D25B647274A855894627B3A778512FE1C9C9E03382416C22812C18F91106F809AE6944C070291818ECAFD7AE09CB2E8B72090426BE37190C9E3106AD8000940854790530D84240D39CE338367AC8C1A8DE8FEB44084643938381E181E6ECA95E7C4B687272AFBFBF8F6E0C11D4B1349240C9994062819E0D3494C090FF091D74A79E0FC8D143C37838313936D26E7338DD8EBCFCD2EC695F343990D6F62B6DFF57C72FC098EF2898E7034C89209573FC26F5BF8D31C01BB38446A8A8B169ACBFE73CB985B985454B21FD7D11B2CBDCCBFEE18BF5E7BE110E87FDBA5A07040A1097FF380152A84010CC0F7A309208ACB3A8B5F1C1FE8BE16060A0B06CC97A59CEB167A198776F3FD4DDD9F1C2A9134776E88376CC30D59C0F90140558056160844B08494CB4C0021F6698150E05C6C37D979B47BCE5953568127C5958E667999C9CEC3879ECF0D72F35355C60FCB454A35F6147BF89008C0A182490F50318B2AE708EA21116D26BB489220A0DFBDBDB8EBB8B8A9717F84A57CA28075988E66CD4477ABABB7EF7FA2F7FFEFCD8D8E800073C6BFB4DE0F3C7B1720755F4D230C30C0097405098911FD49BF181133A119CA3FEBEFAB1417F2B926085A7B864856CB367CDC22C2D511C6457DA5AF6FCF6D73BFEA3B5B9A99D89CC58E027199C4CE0A7AD0A66009720513AA470B90263F40719E0E94BB8F59EA68F9DAAA238077BBBC687FABA9B0A4ACA96794BCB57E5D81DCE2C8433F6EE030D17CEEEFCC9BF7DFF976DADCD3D1CE8012EE40B73765F11812F24806E0A802181CA10810D132719128CE904C8639A564F8087730CF6748D0EF576371696962F2F2A295FE9C8CDF56421CDD8B31F3C75FCC8AE7FFDD6375EC3F0CECF803DC18C7676D44745B23FAD2B83F417AB8C398870A16298518109C6F3348A4772F566D41238880803DD9DC3D8EA9DB979858525654B3D45C515AEDCBC822CCCE665627CCCDFDC74F1D881B7761FFED9BFBF78167D2B7E9407190F3FCCB4A820E39712FC9404E07C0289C91EB191824104366B68148EE431E01BFB8C849223303E361C6869EAEC6C69B211197CE515CB0A7D2595B9EE7CEF7F55D0C746477A11F41307F6EE3AFCEA2B3FA967C036CE6F88013DC43878A972FDAA9AC1A5DF5396773126C1901459E00F18AC1CD7411E3546BE88004CB3231986AE3435B4632332E4172FA95C965F50589297EFF1395DB9EEFFAC80078381117F7F5F7337FEF2C387DE3AB5F337AF363100B31370931CE8610EF42827F7538EFA6911208549104D1987F4E30518B360874481A99D23819D6B362483FF72637DBB7E1C1BFA8CAEA292B2B2425F71A9A7C05BE2F614F8642AEABBC61694F0C8E040FF95DE9EEEE6D6E6C6A61347DFAEAF3B7DB29703975F0F7380B3C0B3E73F69864F9DC60DA06774BB78E62A2200733531FBA8581B9346361E2D6BF40E6EDB58CFE152CF36E678F4487A4B61517191AFB4BC2C2F3FBF0005C28D2A918F2DCFE972E6592CF4C47A715DDF5CD6045A628FB151C3A1D0283A6D0368C307C64647FB870607FA2E35D6B71C3EB0F712EE673DF410D38704FB238291CE3B76D1AB01FEAA08300511D8BA429E103C2978D07398D719DB56EE587C999AF679F8552C9E42AFBBC05B54807DBE3BDFE3C9CD737BEC7687DD6AB3D95038AC162BF536DAC4FF72B41EF7D82CC80A03580212CF6418CF4B5851559AFAD6D6B10F294A149B128A4622C189F1F1A191E14154F1DEBEEE8EF6BEE6A686FE00DD9420E11B453875644165B7D9D7B25E7C941BE50A978FB92AE06785000C11D89A335940082BD3F3CDC61184DF3640B731C761C990EA79C56C0A1BC03C5125312750B55A6DB2D3E5B28642A1F06430C0264F800340E1EC6E14922BA7A20230C30C31A22946765800385FC9336D1B3F2F0498421552A9035F786A15F436665D86144F2107F3649505A67E9E719299E6A21C85CB7DA80260221C09D2B588601F1B5E47B9CFE6CBB794D918EDF3428014AA20220370E0A52248263D3BF2F9092C99035F12643E8193571048AE22500255306AD979F728F7DAA8E0782A47C039077D5E08304D424802F02401B0EC8817BD9E3F8E88009022FDCDAB81A84FA5104A1A6055C1A85638E2C15CC8FBA222C0146400CE5E8BC8C1DB7511F0C0810F199800358D490001584A0AB30102B0457F1729CFBC82BEE00498062940E0C84969A45D12387D52060A2022829AA2871492AD0AF609415717CB495F4C0498013144A04F05B43C4DF0610A7548F77A555DEC27F75A20C05512642E976B02E0A996FF0FB34D1EEB0232D91C0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (12,1,'Crypto-router_symbol_(24)',0x89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773DF80000000473424954080808087C086488000000097048597300000298000002980136D347DF0000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A0000047F4944415448C7AD556D685B55187E6F723FD27C775993B426B529A5741397ADB5B128EBA0E80FD14145E9FC338B5445A6A05044D03F326C0545860CBF50A65018B6F8B16E9DD4E8D6B1424D8A0C2DDA8E655BD2765D933669BED39B9B9B7B7DCF6D5AD2D221B6BEE1C939F7DC93F739E7793F42C9B20C6546F5F4F4E8BBBBBBDF37994CEDA22846A7A7A7BFBE70E1C2E0D0D090003B3055F943575717D3D1D1F1763C1E7FDEEFF7DF5A5C5C6C42A2CFDC6E771BECD03611D8ED760A4F7D7C0CADBFBFFF84CFE77B359BCD6A0C06C3F1FF85201C0EAB229188399148843D1ECF525F5FDFF0D2D252A25028D8774A4095C7A0B3B3F33D8AA25E94242949D3749C65D98C4EA76BD0EBF569A7D379ACB7B777FABF12D0E50F1A8DA6D1E572D91C0E870D1DC23A868787FD8140C0895BA6772551110DE580ADC86432443E6ED731B817812008722C1663774D90CFE7A96D9C03C683BCDEF90DA835D32081712B01A6ED3A01BBE32C22DE71EEC400BF69B1585AAD562B5D5757271B2A2DA682285B42F3B36268EECEFC6A3E8F17120C02CF27711ECBF37C8C5251B3986D57CC34F83011F2F74C53E4A8C0614FFBE34FB6B47ADA4E565559F6DF0ECE31C1B910A023942AAFC8251404E5662CCB41DDFDB5D0585F0F5AAD0EBE1B3EB7CA30B49763B97727C7BC7F6C5B076FBCD3F78920F0AF3034A372D53AA0A9B101F43A2D0467E720164FC0C8E8A82259B5D5062FBFD00DED8F7A60391A832FCE0CC0E5F17150ABD5282723B334FDF9C8D0C0894D04274F7D7AB49017CF17CA4EA9D36AE1D083FBC16C3400A7E1E0F2D50958595981AEA78F2AEF47BC976061310CB22C01851F955AB546A2A671A49F3B73FA83C10D82975E7FEB4AD3BE078E8824B8784A328A45118A38B755ED85473CCDC0B12C9C1FFD15388E83B6870E2A92A5D239F8EDF76BC0A38C2AD51A01198381EB57BF3FFBCD918D4AFEF9979FE2CDCDAD401B194506E278AFC50C4F3D76589129347F17C6C6FDA0A25910448948019566133CDCE2403237CC048210B81582643A43EA0906C6BCD18D5681016674B61AFAD4C71FC2B3CF1C83E6432D204932B8F7D54368210C89441A62892448941AEC363B905BFF1D98550E36F9E775A8B15AA0C66E855496071922E0BD780EB2E994A810A073520B2E59145DA954120607CF82CF3701EE030721B61205A7A31668860196D34175B5162422294211B6348AF8158E65C06ABB0F6ECCCC28598787E0886F72031DC22D1545FDBA5CD1E832F8FC1330F5D714603705A3C1082693198C462318F418704EA3C44153A1016D854ED9B3AEFDBA2101A90996AC14119942267D9BAC6F578D45A948DA08E47239C86433C0E7792501B6FCDD963B273DED4BF25342C023A68A62E187447861BC20F059D885A5D3C985E0CD1BAF61A24C12F568649350AB083E7C9BCF66AECD07660EF3B69A272C365B03C3B255A8E0BFF6A05C2E9BBD33179A892E472E9DFEA8FFAB542A75971C1C7DCB9B2A9964130E2684015189A8B53B6A0F98CC7BEC06A3A9126130198DAC4AAD4EA11051A9282DA2F39BDE911F7DB817D760B5E458DCB6556C6A526BD9A52975517509AA529C48DCC4120A044489EDFCFC03B71E6B6242A160270000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (13,1,'Crypto-router_symbol_(48)',0x89504E470D0A1A0A0000000D49484452000000300000002F0806000000A58249C90000000473424954080808087C0864880000000970485973000005310000053101B7ED28520000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00000B174944415468DED55A697013F7157FBBBA25CB97245B9223DBD80E60D3842BE14A4873113E0065723913326DA7F996F443DBA15F683B65683A30D366DA0E90494A67C8B4E9346498D264202199128E002D606C63B0C1E05360F9D061D9D62DAD76FBDEEABFB26C6CEC3009B86B3FBFBDB4FBFBBD7B57E6244982D92C9B376F366FD8B0E185F2F2F2F52A95CAE9F57A3DA150A8EBE2C58BFB5D2ED7CDEDDBB78B701F166E26021C2E3B76EC58BB66CD9ABF2C5CB870BEC96402FA0CCFF3E0F7FBE1F2E5CB6DCDCDCD3F55ABD5C7EF0709F54C276CDDBAB562EDDAB5EF151616CE3F7DFA34DCBA752B61369B23B5B5B505687915CAA27038BCBFADADED793CBDF15E13E0EF7470DBB66D457575753F426BD71E3F7E1C1A1B1B5BCE9D3BB7F48D37DEB09C3973A61E41F7462211D068342EBBDDFEC383070F6AE714814422C1A1B51FEFE9E981AEAE2EA1A9A9E9AD43870E5DA363070E1C38D2D9D9F9273C87C20C0C06C3B31E8FE781394540AFD77368619BDBED064CD8686F6F6FA772ACB5B535B96FDFBEFD98CCC3A228423299B4626E14CF2902084844E04594AC482486BBE2B9C703810011F3098200284614C39C4A620AA1EEEEEEA2FEFE7E181B1B4BA147F4EBD6AD2B88C56222C6BDE4743A0DB83F68341A6587A1278C73A68C6EDAB469652A95FA4D7E7EFE13C1605087E0380A152A9FCA42DB65656550525222328F9C4452BFDDB56BD789FBEE01ACEB4F3B1C8EE73039D3D8BC0298A8A3E9743A8CA492485AA5D56A39F402A096743A1D8FC7B4586A97E0FA46FCF8FD27808005B230765D1556222B7A82040A0A0A80F4E4752AA77BF7EE8D63D869E6440E207801AD2A8709E999D69127604323EFCC0D0254811490A4675AA7DC402F242994FE2F3DA010C0F5B9E1012507EE043ED70398F4108D4689F43D25C0CFE481E9004F26A49046D1CE090208247527C093D7691EC2304ADFEB249E96008E05E26CC387343544E681FB4B80CB2C3A4C48FD9DC04F458E79E0BE57211D8ACBE7F35551A39A29F62755A2347E36EB81FAFA7A5573E760B1944E73AE62EDF0891327846F7D1642EB17A0AAC51162557575F5F7707E2BC14E6BC631416FB55AF534C0E188A1292A2A02BDC108DEC03078FDC3104BC4E1ABD36742B1783281A3F5080660B120A48BD282C00969795A85B4901E451DC0ED405AD6A900AF520DF29CFA9CC1A03A35D0D1E1FB2608500858511C2845CC23B44F633617E6D52C5AB4AAC8625BA2D5E9ABB0F658101410C0348DD4E48D095A069DD18AA748338F02DD9BA37BF2721FC16EDE86728AE75527794E77AAB3E5ACF7AEA6518EAE08A062C26D7C79CB43F905965D368BE5C979952E7E7434049DF894E61F0E20A8DB41D2B6BC5F242D32D02CD9093CDE93EE4BBDA3D2550155F32A615E65059E2BC1071F7E08747715AF92500E6878D5AF2E9CFE77F75DBD9578139F898538B7239D4EBD69B7D9552B962F863247095A8A2796D0D5ED86EB1D5D70F5FA0DF007FC9944C699281E8F2168310B5A110E2458B17C05AC7C6429549697C3FC9A79E0B09728A30BFC78EB2FE07CE345D91B8A208914C7F3FB745AE9AD639F7C32346B023FFBF5CED74541F81D82B208C2B8656D360BCCAB70C1A20535E0B497CA64A807B45EEB001C45A1C255067BFEFC3EF40FF68F5B9C955993C9084F3DF104FCE09517A1B4C43AE17E878F7E09BFDFBD47BE16EB29E8098584ACC3185A3F39F2D15FF7CF48E0973BFF588F803FCA8644B6D28CAFD3C75C4E276C58FF345AB30CD468792243613130E483B777BF079E81013C4F94C7EEA71E7F0C36AE7F260B3C1C8DC191A3C7E04253337AA21A1A9A2E21E9810C78464226C0F1B91E9130BA5FFB68FF3B1F4E4B60C78E835A2ECFE74390F999A413592CE726601A346A2DD4CEAF019BB508B4F860A3D36941A7D58241AFC7751D8C8C8CC181431FC370701456AF5C0EAB1E5906CB1EAE83683C0E47BF3801C7BE3A8BC70220677126EF282AE5D0A41F9EE7E4E456BC217B84B679D540A5D558BE7DFB7661CA3E90D2F43F99AF33E74F4C4091593FA39598BE76A303DAAE2B312EB150C1C74CF48C0E49A530E48C26035CBAD206972EB7C90F3E94DC63A130453DE4E59965021C97AD1E32788E55A60CF89C90CA78C3D1E71B7B06CFFE624A02274F7DF950FDCBAF66008BE284B227834F8F27A5288DAF4B48A00A7363D5A34BE1E1BAF9F24D07BD3E387BBE09CE9C6BC0474F1DBCF6D2664C5A1B442351882593904CA620859A72A7A1A915BA6FF63242138567E1A4103976F89F95D376E2A69646CFB3CF3C07768773DCDAB9A07380D385D7AE5A06410C97BA05D55812CBB2D789608C5F6EEB80F6CE5E30184DB2C53FFBF224BCBEE525A8282F9B704F9F3F08A3636190785A1F661EC82531EE8D21CC93F6AB5786A6CD01A3BDEC5567A9F31F3FDFBA0DF47ADD94C0C9DA94138F3DBA18962FAE9BF0F9582C01172E5D81962BED1045CBCAD7A7BA9FA99560B514C1F75FDA04EEBE01D99A0F5695CBE094A5AF7F08DA3B7AA0DBDD07C323237259568890B7FEB66F3712687D1EAFFBF16D04A881E94B1C5B741AED07369B0D5E78FE1558BA645916BC942522C103A55658F7DD9513275824E50F04A1F9CA75E8B9E9C9342C822EFF8E6B03267C349E90C3C564D063E8954175A50B3DE8CC5E2B1E4FC2A7C74EC3A03F40290D7EDF009C3AF6395C6BBD0C03FD7D5902EA1CF0D4750D3878E5D3383682EC3FF8FBFBD0D0700E5E7CB11E9C8E32D99A4440AB51C1776A6BA017AD383A1681514C4A0A81D170345BF38D7979132CAF6865316B7499FBA2B83D5E70F7FBC0A46FC5D26C972B597B971B92A914E4E1BC75D3DD03ED6D2D983B912CDC0939C0C053A0964A42CA853CB237EAEEE982DD7BFE00AB573F068B172F436B55815AA386C6D66EB9E2486C2C9030804DC6CC7707F28F74BBE5332D77BA99404E5FF07883726899F30BE4DD9E5B6E884523B74DD1142DF4E241CDE61E1AD62C280BD103D5B7BDA140AB36349C874B979A418F35BEAABA06E63FB800AAAA6AC081C94EC93C4E4462866624D89890C52E4D66C1B15D622651556AEC271AD068B4100E87A67DEF4C731A9E2FA9993BC8E476940508D671A7E98F42C4EDEEC538EC87FFFCF7AC6C75BBDD9179C165CE07FA0687AA8EC968C086669009A34933E334F600AA686410F2889CBC541EC9A4085C8B8D50A59AD5146D64CF1D698580968DCE259220A8BECE3C9E4A2561104BDBF0B05FB61A81C8E88C15D9EBC79C63B84DFBB58AD6CA1ABED65D21C026E5EC232579517EB5904EC6C724312DC01C5D301C83A8DA9438E41970AA692328D4208663C1E0B5390A5E8C44C33BA94F52D5A65D6AC684BEB8184069A76A948A47C4907F482CB4D917CA33C01C58B089F97DDEC17742A3A39FE2E618114042929AFE60322571871F852C9F226F24C2A1803712EE2A2C752E292EB157CEF46DCEB7B5E0A369A2BBABE35F870F1FDA9F8844DC3479A044E950B60F906B90047D853448D3003BE926EEAF0E0E7AFA22C1E18AD28A79CB0B2D56AC541AF5BD009E4C2462DD9DD72FBCBBE7ED775B5B9AAE526833CBC715EB4FE8C48C449CC5568479E4164A59321173DCBA71F5A287E72DF9C5D6AA625B6965B1D5E62CB0D88ABF29CFE0A89E1E1CE8EFE9F7DCBCD2DAD27CFEF0A1030DF1789C3050D2869861099B28E5CC3F53BD95E0586955B386411D9ADA6221D305ACE41662592C76B82A6B9090DD603098B0FEE36F9E1EC5909767426DD6E37E0D954FECB249ACFD311CCFA32861511442424A08E1636A7068B0EFFAF1CF3F3BEFF50EF818D80893282B30A9C9C0677C26CE21C233325A263A462A8F899E351575CE9B0C35134EAFD7D3B680D68C3020C9493ACE804618D824B3B4C02AE494C067F556620A329043489D039A67C7B9492494F0127224CD2A5FAE56C02AFB246996FF85C2CDF6BF55EE40287742E472D6737343CA6D9630C55847397837B9F33FD0996C4041A692E80000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (14,1,'Crypto-router_symbol_(64)',0x89504E470D0A1A0A0000000D49484452000000400000003F0806000000501DCECA0000000473424954080808087C0864880000000970485973000006EC000006EC011E7538350000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00000FF34944415468DEDD5B796C1CD779FF66662FEE2ECF2597F729528765C9B268C9AAE3D4B22C25A8EAD4285A3B409BF60F418652D428E0B6A85114B5A43A810BA468D20641A0C0418AA27013CB8728F992654BB225459464EBA068923A68EEF25A1ECB63C9E59E73F4FBDEBE19CEAE96144529A8D6237C7C73EFFC7EEFF71DEFCD48D0340D96B3ECDAB5AB6CF3E6CDDF292F2F6F1545B129994C2A82208CF7F5F59D3D7AF4E887C78E1DEB871C58843B2560CF9E3DD6356BD6FCD1EAD5ABFFB1B9B9B9B5A8A80854556546F71A1919819E9E9E2F2F5FBEFCD2F4F4F447070E1C48DECF0448FBF6EDBBA30B3A3B3B9F59B76EDDCF57AC58D1128FC7617C7C1CA2D128C8B20C369B0DEC763BB85C2E2F1EFB96C3E198ECEAEAEA686D6D55EF57022C4B3D71FFFEFD22F6E803DBB76FFFCF9A9A1AAFCFE783EEEE6E50144546A0E308DADAD0D0508A0B14171783D7EB2D45B778756060E033BCBC27E709884422AEA6A6A617D0E76B464747E1E38F3F06ECE54B7EBFFF071D1D1D9FA3FF6BBB77EFFE6B748D3D8D8D8D4544427F7F7F092EFF70F0E0C1EF3FFBECB3899C26007BDA8E60B691DCCF9C390348C2747B7BFB6EF4F78BFA39087CDFF3CF3F0F6EB7FB25ABD50A641817BE3D34345485877DF72301E21D28205F92A4BAE1E161B87EFD3AF97C5F381CF69BCFC10C106B6B6BFB11BA472F1E630420715EB49AFBD5059644004A5842308D168BC51E080458E04B24123368F1CC7391A0C8C4C4443B1206783E20691624634D4E1370FEFC7907125047698EFC3F168B0106B8290C74B7F83582D610FC249DC37E40643FB132A70920FFC7A68CC093511C409BC094989500ECF109520092C4EA0324A112B38823678320A639010B9C4DB44E850E4A9F3240F9B66DDBFE12C1A9A80CAA02A9556B6B6B85B1B1B13A5407AB09A85640024B9D4EA7152F8FE55C25F8DC73CF95616FFF127B7603163AE5580B5851DE02499BCB3B6DA1FB2161803501E4E7E73302F0FC28127768E3C68D3F7DF9E597CFE69402B0B72B0A0A0A9E4630D8C94208D7C7B1472308348A99404680024ADDCE09D1C8F03C088542AC764015A8485C78CB962DDFC5FD27F096B9450081A4068159B1DA2BE40628692A790DCBDCD6F791BDF2CA2B3790281109B0E55C0C20FF26C36066D5073DFAC067B16DF37E1A2952DCC0756BCE1180BD267312B2025CCCF46B50442A650E5C724F01287D1941288B01BC9D0A50011A118064E6A6027402EE42052A2720F7144075909A5AEE48F619C614909331006B798A01EA1D024E338AA5540FDC8F04DCB614C602282D062CC70D904495BB932DE708C0F4450FAFDE2968B3D1F88013907B0A181C1CC4C24FD19693FE4C04B07BE17AEE2900C7F634C8D19693FE3209C83905E0034B3E9F8F86C2C2728B20329A19E24B6EA4411AF5F063F968F5E802D6E516416605E092336950422B406B40DB80967737A5301220E80A2072D73DFE789198803245534A939A5AA6CA9A0BF3CC94AA262764419990C296099FEF72485BEE6BABBB9D0FC06724D97BD15AD01EF47ABD8F783C9E661C0A7B7074E774BBDD765C779496963ACACBCBAD788C6682D908302F2F0F66E72230303C0253A11998C3F5EEEBD7E6A6A6A65DC9A41C9555C5AA28AA4555149A28C12A2BD52201C63ADBC613D02665599940122730084D8892388429F594458213637D7D23BF4B0274F997A095F3D6494AA00922EECBF6C2C2C2E2FAFAFA5A6F6555B3DDE9F68064299635A15891158B0E6E1EA8CA81EAA04925E9E0557E9ECA8F6BB4AEA59434FF6CA9891851947A24094E4A92F584D5A29DBC79E5CAD8BD2440E001D2CADDC16A325B717171FEC62D4FEC70B8F3BFE174BB1E43C015493969805539D814A8F99ED5F73317318155950CF7D1E65D28F57CFA330AF46CCC28AE545554C3E8584A0882247D49CAD044CBAFBACE7E76F19E4D89994811BFF7BDBF710B6EF1FBF8402F3AF3DC158DF5B5B0764D0BF69406377A7DD0D7EF87FE810136196A06AF0364EB0C3C079E019AEEA3B70C3C075E5850040DF57550575B03F535B5D856C3CAA62638DD7E017EF2F39F8188AA10445D1922A9E4535192FEFDF327B6BCABEDDDABDE1302FEEAEFFE798FACCA3FC487F738F35CB0FEC1D5F0C0CA26B0D9AC20997E7C6C7C12BAAE5D87EB37FBC0D7DF8F64C4E78322023348D07B99AD6B693DDEBCA2051E6D7D18EA6A1030825EBBBA19E38B33ED7946C782B0EB85176164748429422465E8CFC1DC44A0F576FCB3EBD377DFEE5E36017FBB7F7F8992105E5364F58F5593EFD203DBED0EA8ABAE8446EC9D07563583153588CC1B840C0E8FC2D5AE6E54C510AC6A6906F2AB37DADA20118FCFF73A81663D3E4F80DD6687279F7812FEFE85DD1854B3CFA6FFDB4F7F01EF1C39CC5D424CB5049AA94130A942A0B9B87D1FBCF9FABFDE31012FEEFF499105E2E7B1D75BE6C1CF13304F8606F998059A908855CD4DACC7240B11418488062118C1E1E8F153F0FAC137D96CB1AA71E05CF2349BBC65D326D8B9E32978787DFACBA4E0C41474DFE885C7363D0C3D37BE8297F6BE02D1580C285A994910798C60E08D164D12FEE5EDFF7E6DEF9209A0FBFED3AB3F3E8CE09E36FCD4085C664BF765ABC50A1BD7AF8367766E078BD592065EE2647CF8C929F89F37DE047AB34624B89C4E947C2BFCC18EADB0724563DA738C0527A1EDFD8FE0E4A933100A4D83B7AC1CF29C79E0C77843E8D93F83844C350846D660FB24E9F9D70FFCC76B4B22E0873F3EF01D59510E2F04349BB95D6E588BAE505C5C083624C266B380953E9A40A35841400BDC2E26EB9367CEC1C143EF3277686C68804D0FAF87CDAD0F414D5505FBFD91B10938F2E12770F6FC7998999DC9E81A960F8C96252D1309A299084198274010FDF5A5AEA6BDA6C0B8E0848864B36E1715294B4F6BC6B61EB5F5731218F0BEE8E864B256B95FAB66FFA62088AD45A20792C066B73155043090B57D1080231F7D028D75B5E0C5C2EA72E79730179963CF9297E7CCCC48FA0A8B2BA9ED4C2598DC4234B6EB835175079E7CF4B6044C4F4EEE2C2BF3A697B6A6E8CD8019DBF3EB462ACB88EC44427959196CC69E5EF7C02A0C8ED7A0B3E706F4F6F9405664764E617E013460D44F601A7DE8C1B52C9D527D9148CA2027536D924CC1F54492A947E0E0B21390E11668D7BB3BBFB924027A7B6FDAABAB6B3340AB69BDAEA7B05B5A8380D4B9759515B069E37A687D68ADF13AADDC5B0ADBB77E03AEDDF4C11B87DE83C9E969882713E02929863FFCD6D6455ED4AAF0C9A976F8EDB92F607A269402A6AB21733DC328185E3A776676497382573BAF4C3DB96D472DF9D3A23D6D809EEFF10757B5305F1F0B0661C3BA3518D81A6EB9FFE474080B998B28F56E88C5136C0C41D79EB970094A3D251814D7677DAE7822010E749DDA9A4AD0063454839CD6FBF3D5E2AD6A080C0DC2F0607F6849040C0E0E44DF7FAF0DFEF44FBECB7376664FEB249853990A9EE222D8B9FD9B58AA4A59EF4B03A4B3172EA3FC7B51D2099626093C95BB7A3C3E7EBA1D4A8A0AA16545BDFE7A9E65115A9C18407FFFF71E61361B9E83ABDDE446FD3018184D4DC00A26028C00294012DDE5D8BBEF2C793E407495570BA7CF7C06959555B075EB5359647EEB3AA5B89D4F3DBE20F8C9A91006BA4F2138359D4A91749E06A9929781D78CAAFFE8C9DF42184792D77AFB6002AFA3D8D0D25807CD4D752CA8D1928F2A7B6CD30666E17004BAAEF762393E0CC3A3E369994146A28F1F3F0A33984617258080A7F20C0D7A34E6ACEF1C7A0BFC7E3FFCD99FFF05381DCE546437556F66F93FBA610DFA70D12D3F42120F4E4EC1D4F40C34D455B36BA2B144EA970CEC29E80605D89CBE7005F47159DFC030B3D3A89EFADA4A5881E390066CF5C5ED76E2FE2A18088CB3EF129862F0DA99D0149C3E7E0CE53F60CAA35908E0E0453ED475E30318B3371D572FC3F08F06E1E99DCFC0239B37830D6F6E0C58B4542CA8F67A580F052743109A0D63800AC3CC0CB5B3108EC40C9074BE2059C1E9B4CCEF9B7F139BB69EF5652D82F20D8E826F6004F2717C50535906B555E5ACE7FB0602EC38CD4B50878C0606A1EBEA158846E76E19EDEA932D968CE1AF9DCF0495E303A415E15485FDE6E0EBF0F1898F60C753DF864D9B1FC560E4307A3F1A97E1834F2FA4C6F1DAFC684E0391E5716374A78131BE37B60D199834B050852EE85D28604D01E00F04C13714A452171CF83BD4F3C9780C8630E04D06C7179AED12F45FB0986461E593203401D2840F9997EDEA10A6AB436D6FC1FB1F1E81A6C615B072E51A68695E0994326D360707A399F2BF96D6FBFA5724696D1A01FAAA961D7D8686F5B901FA4CD761CFC32C118391E1A10515C4314B5C049A854B5FE2B33D34F343A1B719EF605F6C9448BDEEF3F7C12032FDD9A913589F3B3140B54073730B96B68DE0F194B148AC193DAE47F92C6D1ADEDBC0C78BB0444FB9123E3A05522B124024504659C262E39DADD2774D16132B4440295A355AAD39062C6549627EBE79F33AF87C5FB18729C0AACE534A738505E8936E1C27D01880BE1AC963C3684A7D34ECB551C0421049ACECA8F2A30F5214CCEDFABC0165173D361060024E32A72C62919635C96CE704D057EC060122278042B8879470B713B291680412810492116484A4CC6AACB35EB3A6EF4B5F4F6D5B33B64D53ECCB5D129C0051076E362B9FF4B42BC9F80C7C3D972BA630C2FC5FE52EA7725910434925160D2E128B7372C1BAE52615B926CC9A1E351434FA8887EAE4496A9564622C3E1BEAFFFA80D7A2E1D9997D1C6752EF5C9D00991FA05E1FE22C8DC766A6BB1391F0E8D7A0E7E393C1E0ABB158AC0337C37A0064D19F5EFCF2098608BD0C46F3F348C982FBECF84842492456167B2B5A78BACCA925168DFABA3AAFFC607878F0225777442780D501A6E44B2AA0B1F230DF478AA01A3214094DCE26E391404979F5DAFCA2126F2E004FCAC9B0FFABDE2387DFFEF57FC5E371C2348546813DAE83372A41DA401528FC6088CB438F09E416E3C9586C64D4DFEB9F1E1FA92CABAA5D5BE829ADCE1C58DC0F4B341A99BEF4F9B9C3BFFAE5CFDE9C0A060334B9C58147383EFAE6F1D639414E82AA33C4B3C12C676E98BF2C2D8B47E6FC83377BBA027E6B495149691D12515B58EC29B7E417E4FF7F00566439393E1AE81DF0F7755CFAE2DCF94307FFB7038B29BDB7C31C788C2B5C597438CCE381C0C1CB9C8C391E1B02BC50222B5492C98289D140271A0177399CAE526F5575A3A7ACA2A6A4B4ACC262713B7F47D15C0D8E8F0F8C0606BABAAE5EBDF4FE7B6F5D0A87D8405F073BC72DA6A7740E5CCBF6BA7DE1F702FAFC522A5358780DEDE01523998B5B7E464BC01D9E52AFB7A0C4E3C973BADC4E97CB892342679ED34D6FD79D4896C3459B2EA7C391E7A2FF8D228822FB2033AAC84A4455E4B9643211961372389188CFC463B1995834321509CF4E5CBCD0DE3334D41F3401D67B58076C06BD20F025BF1ACB204227C3FCC6D8C1B386FEFADC69AAB7F573B319BB2F4D923A9DF962381CD2A3B3CC5B1D44C2B42FCE6353DC94CF93A6EBF4824EBD1DF03B7E396A9A34317F5F249A00594CA4584CFB7402CDE0C58C71B9CAC1CA265F554CFBCD269BC851CD551D18934B4B07252C77D06352869910C1542B88E69ADBA422B39AF4E36A16031328D55496DF15E07B46C00284C022A95158A0850CB0E913035982E0BD0CAAFF07B7BC38A039A5AA7C0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (15,1,'Crypto-router_symbol_(96)',0x89504E470D0A1A0A0000000D49484452000000600000005F080600000017B4C2400000000473424954080808087C086488000000097048597300000A6100000A6101FCCC4A250000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00001AA74944415478DAED5D09901BE5957EDDBA463392E63E3D33F6D873F836600C3826608249C8C6040824D9DA65D95C9BCDA6B6B65249209B6C6D88A9DDAD902CCB1536F16643415CB049A08209C159C0388180EFDB339ECB735F9A4323CDA1914652ABF7BD5FDDD2DFADD68C663C361BAC1F7EF7A16E8DF47DEF7DEFBDBFFF6E09B22CC3A568F7DF7F7F8ED96CCE5EB972E51687C3717B2412A9C4BFE5C77DE3F8F2A9975F7EF93DABD53AB97FFFFE61B8829BB0D40408D81E78E081FA9292921F21F05B56AF5E9DBB66CD1AC8C9C98168340A3E9F0FBABABAA0B9B9D9333333D3363535F5E4F7BEF7BD5FCA97CA12AE240276EDDA6546E0BF6B3299BEB663C70E27AEB3FD168B05D4BF4324F8FD7E080402D0DBDB0BADADAD818989897DB8FEA5C71F7FDC77A511605EAA37FACC673E63DAB469D38F2449FAE2BDF7DE6BCECACA82D9D959D6097C740CD6911CB0D96C8C94868606703A9DF6D75F7FFD9ECACACA65F8365BAF34024CE8FE4BF2468383835F2F2E2EFEE65D77DD65A16D8FC703EDEDED70F2E449E8EBEB83E1E161B68FAC9F081145919D8732C5B6F1D8CA0B172E946DDEBCF9B58C042DB03DF2C82357BB5CAE8377DC7147166D0F0D0DC16F7EF31BA6F704305ABC172D3E60B7DB2DB9B9B9F9797979E6E5CB9743616121F308FA0C7BF6ECA16367F09C1A348A918C042DA0A1EC3C8EC1360B331D989C9C84975E7A09BABBBBA1ACACAC7B7A7AFAD903070EEC46EB9E4192C4BBEFBEFB13CB962DFB161EBB818E2F282860D244847476766623418FE2F6FD574A50BE680250FBAD5BB66CB9AAA2A20230AB01041B1A1B1B01411E44D03FBE6FDFBE76C452E24E79BEAEAEEED5FBEEBBEF1994A17B2816504C282D2D250228487FF24A4A88C48B7D830D1B363C585B5BEB0A0683E0F57AE1CD37DF248FA0FE1882DFA6039F35D4FBC9D3A74F7F03A56AC4ED76039D4B52459E80CD8592765F8680F4727E1101DE41E0515A49164C246066338505D6CFF0B568AA73F7EEDDDB3B3636F6120566F21C4A4FC91394B4F5D32FBEF8A22943C03C6DFBF6ED62381CAE26E0C88A9B9A9A00B701ABDD51AC72A5B9CE258D6F696979786464C4437183CE5333225C5F8D9E61CE10304FABAFAF17106C1BE5FA945E6251C5E4073DA33B3B3B5B9AEF7CB4F2713C6F00AB6146209EC36408DFA318B3234B8680791A5ABE8840658742212641580B00653608E0D0F8F878349DF740E087315362E723996A5A9A83D5B13D43C03C0DB59ACE671E4000928E9384200101AC84D321208AFA3F44DEA356CC4400BEAF05E3436D260D9DA76185EB40AC4C94C9908C908E534730039882A6E50178BC8FE487BC88E447AD92D19396650898A7915420F0261A66A0EC87AC582121442FA7294141029F485083B9326E5498198A98A3EDD8B1E3C3A8D94F60017535A69D8C8063C78EB120BC62C50AB2FE0815C924335C8F6F23C0124A5614CF75AE5AB5CA555454049839B14A9AA40C25E889E3C78F3F803D9C2140D776EEDCF9EF68EDB7E0B979983A56A30C992906504E4F952D0553A5A84A2790B32A9808A0F35439C2F41430908F63A6F5FB9A9A9ACF3FF8E083531909521A5AEA2D08D835A8D56124C18B8091B5CB8585858C50B4604AF32364E1E811F4371CD8ED069E2021E0D19E9E1E029C86B04D44209E336BB7DB7B6EBDF5D67AFC5BF7E0715FC59E2180D3FEB032AE6FC15E4C56AC76BA0E4052428D52528C07B88804705F08C115946EA163B00B780E6D8BB44EAF516A8B013C676060201FFF8E99BC01971FD89A60B104C8A4D36ADAC977DAA74A8BCBE5A2A519BB532587278B274DB7CFD4D9D939A37E3EF4086B8600ED185094075C4FC45CE4E8F719EDA758803126C2C5918C07E80BA874C09D8B9CB9482302507AC22A01B83F43809104A503F8422C5FDD47F10563477C2CE9833C2EB4680216036CBAE4281224A91E80CB4C0C58480CB858728800CC9C246E2A4BC603741E105D88DE2FC41B780952332A243C43403A316029E4471D8C4302641AD6C864417348D0A5901F75481AC18F5211A6109E890173A5A14B9D111101349CA17AC0075982C4454A5074A1BABE905A80085067CE7DD083F062AF88494B213FA9F62BE9677C9816C9C810A0F380C8A5921F5582780FA001D80C0189004CE6195ECAA06B1403E84F7184673C80E74095A0858EF1A41B1B14D99139D233041849D0A5AA05681F822E673C20597EE878533476C96BC9826E8A5A40CEC4004EF7B199948A341BF37351B1CC251B0F328803190FE0822E814F375FB8B0976385EAE009586CCE3F1709BC045DE931808EA10BEAF9D869B2547D3018CC550AA48BB2FCB9C85132A12B7B389AB37E22A080AC1F7B55201010C2E1F00C8DD1D09494A5AE05E8627E48922CE1A88CE9960C81B074F3D537DDF6981C95EC72349A1D95952E45ED5149CE9663DB109524FA4C01EA98A605705F4096A23318B068DEA41BF7F50851A93762117ABC9D9D0346F72E5CEE36E7BC2085009B62FD65D82B8800F2049BCD5656545454515C5C5C9D9F9F4F3323B2EC76BBD5E9749A1D0E8785A69AD3842D9AF19CEA62BCC96C8671EF040CB887C13D320A1E9F0F3C9E7118C31E8948311265CE4B548FD1EC9335DB09E2D5752257624B597B1CA5D203A228F4626ED12A8AA61366513C9E6F13CFB6B7B7CFFE7F2280F4D7893D0F3B494F31F64265DDAE6428740C4D51A17BBC0A5D2E575E61616131925088E0DBAD562BBD6612CCE82DB2608DC860094951CB6C2862A201371E5459052D25F0F21C64D0B66CB82D2BE7D252F534EE7BC63BCD7512C0D48839C00951301D8F88E637DC2D67BADE1702940FA7663F36A56763CFE1C08F13A0489ABAA4F34C35750D2B9655AFDAE2CCCFDF82165F96006E1E203912640E7CFDF1BC07C4A54CD9A71210035C051E14F0654D6D192380BEAFC893115B0AE2595CDD8B5EB2B7FDF4B1539795002EFF57E3814901D8CC6D8BDCBA69EBCD1FD9545056F10974888FE2495551FAD2D1484212640E78054C59B16C234FE04993354BCEAAE3C72A4B15787A1D12B18618487C63393EE221C4BEA8C61BB2B2B263F245379D8802234714841E5CDF6B3299779F3BF476F36521C0800C3E8312D4FED9CF7FE57693C5FA2DFC925B09305422A82C2F876515A5D0373004EEE161181E76431883AC21B03C19B24E420C09E0C1E7AC3CAA000EDA40AF141549D3B645CCB84A8B4AA1BAAA1A3F2B7DDE3258869FBBB3BB1F9E7BFE3976BCA812932042C67F5E378BC263C7DF7EEB8DCB4680BEEDDAB54BEC1BF3DF835FFDDB08D4D5F809A1B8B008965756C0C675F56CB26ECCB5057274E8EE1D80D60B5DD08F840C0D0F41440AC7AD39C98AF552C24B8A465E62DB9ACC2A0EBE0A7A6C98DB6E77C0F2AA4A282F2D878A7202BA0C6A5654E3675D0D79B9CEF8F7F2FA26E1CBFFF020B4B63733CF10635F822382932A416CC2CDFF3874E3F5CFCA0F3D14BD6C047CF59BDFDD2C45A59FA3E5AD252B952419F273F3A1BEAE06D637AC02ABCDA27C40214957A9B577F640736B27F4F6F7C3A07B10A448380E349F9A463596CD93A00DAA09F0633A6FB55861C3BAF5505E5686BD9481BD616D035457966BEA0CA3F6E8D3CFC0F3BF7C21663C90F8FC1A12285E88DC771384F7A282F8853FBEF6EBB64B4A00FDBDBFFFC787BF264BD2F7111CABAAEDF1340FDF331BF5B3B4B8186A9657C2BAD5ABE253D613812DE6CE22291A7EAFF32D17A0097B776F2F0C0C221998A297969422910D70BEB51D49EAD6CA4B12E83A9DA705FE575A5C0E6B5637C087AEBB16EEFCB35BD3FA7E6D1DDDF08D7F7A084647471901F1D800DA18A1E962DC1B02B8F8E76D57AD7DECA134BC61C1047C73D7A3455238F82C82FD89784A286B09881762CA32D7990B1568810DB52B614D7D0DB33E8123401413DE41E79E6D6AC578E1811DDBB78223271BB5B80F763FF702F4F5F5CC093E28190EF301391664EB6AEBE1C35B6F807B3E793B381D39E9C9EAF79F80FD6F1F608003E701C049694A2214793209C201BB1CDCF9AB5FFD2AB06404A0DE67FBC17E1841DD10D5CB441211B261EE5D985F0495CBCA60E3DAD550BBB29A81CF7B05ADC7B74531FE7A47571FFCE4993D18CCFB92C08F03AF6ABD2C40437D036CBB7E0BDC7DC747214BB901DCA8B5A3B5171516407E9E8B6DBF7BE838FCDB634FC26C30A0583E1810A17A04E8C017F51EB1AF24DB74D7EEDDBBC34B42C077FEE5D1FFC1A3FFDC1874E38247BBCE174102661EC5B0BCBA0A767E6C3BD8AC9604F8AA67702490555156F2F44F9F83FEC17E0EFC84EE1324AB15E077DE7E0B58CCA9475A1A9BDBE1957D6FC2C933A759AC68A8AB83B5F57570ECF4193877BE31919672CB38F820C4130B8D3C899C772462C32FD65697FE652A394A9B80EF3EF2E4D7F15B3E6A987B6BC04D1032171939D90E6858B5126EDEB605B5BE88D7D004E82A014282842E94A3A7FEEB5918181A88EBBC09F7D7A3D4DCB4F53AD871CB36B63D17F0AFFEEF5B70FADC399809F84173ED936DA001A8F5810006440889B8A091225D1D01899415E5E88BCFFDF8B167164D003D8A4C709478113C8716FC6422B48590960C352DCCC34C696D432DEABB1DAD8F9E9662856CBB1DBB0D7B364A861533282BF30A5A37E3316AE641ADABA71F7EF4D39F63E61423C182165CB37C39D4D6AC801BB75E0B2B31F0EB5B53F305F8ED1B07D0BA9B20180CCC71B515626072B2C3EF8BC702AE7A8639628292359DFCD9933FD8BC6802FEF5A9FFBE4188CA8752163FBA4228BDB17FFD3109C2B0E40733066A9309ADC764468BC66D8B192CB8CF6C8EF560300C3DFD3D10BF2EA114594446754525ACACA9866D376C66B7CDEE7BF36D683CDF0CB3A160BA591E47869048FDB86D813388C47A429AF45D164D37ECFEE1C34716341C1DBF1E68326F97C5548550B2BC247B8211F8609CC37301952AE630D606EA7E474E0E9324DFC404CB70E83E3359C976E24BFCB777B08FF5770E1D45F204088563839BEABD6BF3CD39E06FF0E441E65FE701D78E25F164F099117C12772E8E80BEFEBE9D2B96AFD0498DAE12D578828195F3C303D1E461027D07AE92CD75BAE0EA8D6BE1B69BB7218816387CFC0C34616DD0D1DDC31E75C313408D32AD8AF2120887C23112D9CDE3B8C4AA3B1296D83E498AB0216F22188B49456A54108DC8E0C1E6E428EE016000BC9A4109D0D3D571CD822FC8A8ADB5A559AC5D559BA21235B2F4A831E8290A270DF04A60A5F7C8CFCB87CD1BD7C1CD1FBA0EB2B212D64B819BFAB43F00078F9E82B60B9DD0D5DB876086181124355BB75C05D7E0B9296675A0572029A1085B0683B3189003F87E33E85D53F087F78EC2D8F838D0708F568E5213A15907AE66507A575B4B74D104B434378DDC79E7A7E2566E0C3A0F72744EEBE6C197680A8A9C0086C82D292A846B37AD83EBAFDDC46241AA46417C755D0D66446E162328EB50E3C12BFBF643517E015457951B0D286280B7B2CE93F2FA81F7E0E8A9B330393D89898145334AAAC01B0756B30DDA220D7452C49E0AD97CCEBD68023C9EB1E0201640D5D52BB4E3EBD1B96484D7794EEFF98BF978FE47AEBF8691D082566C315B18F09BD637CC7BA7FDC0E0301C78F7301B362009A1EA9A82B53AD6194299F9E5DE7DF0E5CF7D1625CC91CE282F6C5AD780DE13C22CAB0F86C7C634201B011E972C0D31C931A2A7F3024AA53FBCE82CC851B2EC1745A5259F7DE01BDF4629B0278F3CA6DB75B2B3B2AA123EB5F3D6F85352D279BCC1E0D008BC73F838B475F5E2E790E292A52441DC387F6C4143205FF88B4F6176B4B099F803EE112CD2CEB3D15B26475420265C62EE78C05D5B08F8FDF0EC4F9E8081FE9EDD92247D65511E406F37EEF1C0F32FEC81BFFD9BBFA3DB16932FAACB5C559AC6784D8E3D0B3EBEE346832CC3B8B947C6E05DD4FB0E2CC4C8006255AE2901BAB2A2B9D882FF8F8E7BE1E5D7F6C3A7EFFC58FC6F0CE17BE5B99C60CF4A3D44B1ACAC84756AFDE86D679A5AA1B77F10C67D93209A44C34A1974A92979F8FEDFBD02FEE9A945CF8A6025654E7105DB6E6E6E84DFFEF615B8EBAE7BC0685E506AE041430E2173EB4DD763D1959516FBE7DB3A61FF1F0E434496D8F585F84515CEFA35EB712662DB5D7D83F0D63B47E0AAF5ABE1ED83C7A003258624ABB2A20C6A5754C386B5B5AC204CD52A2B4A596719E1A01B8BB90B8C940904D68C758AB6628E6D10F8870FFE1EDC28DD8B1A8CE32E438AD9C5E52F98CCE67B99CE626F6858039FFBEB2F81CBE94C99C3270F0FC7E0A17A617DFD72B861F3C60549C2D4F40C4B3F5B3A7A94A028A74180BA1ADBA01A429DFCCB075F8A3D5598B6D6D65461505FC90AC0F9DAB8D707BF7EED00F803B3AC30042E130A0666E0D03B6F41475B2BF8BC1E98F0F9C0E71B4F4F8204357A24AE015B94656204B1BD0D7EF0837F85FBFFEA0BB076EDBA39E48623451938CB47D7BFEEEAF529BF181144B9FDF098177C93533031398DCB69CC4CFC109C9D65D359648DE4C87AD98F93A3E301523F434A8081110FF4BB47E1D0C946A842E9A95D59C58634F4D248F5C4BB4730F5EDEC6359973DDBAE9121CFE8301C3F72103C63A30B9F98C581AF5E64B7B2D90F067333A7FDD3B0FBA74FC3B6AD37C26DB7DD0E4545C5C9E3F23AEDA7AAF4C6EB37C5C7FD43582879BC130C68DFA41F26A7FC0CE840301477EB38D8E89059367B02725EF3F5FA6FE0D5F29CB5AFB6F50F8F41CF109271A2112ACB8AA1AEA61A0BBB62686CE9C058D0861956146C2C7E2406ECE8216183BD3DD0DD75018BBD70CA29B6FA47329B0D3E8BA858BD559982423A93325A1D46B68F9D38069B375F0B1FDD713B94975768D2CD84FC44A1382F17F57888C9C9D4D40C735F992E88A9F2C1FE47A0F1CBF1430BA0795DD668BCACD37B39096D79010408493BFB873DD033308AB1C7041189D25D0BD8CC89B494D2EBC9491F8C0C0D826F7C1CE6F9338292F1C94904289ACF83EF50265F15E0F1733E42923EC4A95327E0ECD9D3B061C35570D34DDBA16E551D678C31127CD301F0628F0551815991FA59F80135999710EEF538E43218CA8FFEF5C5FB00684642191A420C2C25CC82C56A63536D7C5E2F8482690DF2A9AA22F1249839E9014EF3739499703403AE148FCE4E375836359D8396962670B972611392B171E3555053B34AB9E74BD61092349026CB5AD2787931901C7E7F92AD5FCC640F215E7669E0B39AA97A8E4DABA4F9AB1313DE854E8436299F4CD27B80C04DB8CA52AC9F26E352225C8E50642DF43BF831461C397A08E5E928381D4E58BF6E03AC5EB30EAAB0F872E4B892C9E065C560841374E468E54647C2C53E7D5D09A8EA7C20BAC063620F9535B30C4910177563916ADC9486C9CACDEEB2999B6865E2743F376EFD44820CB68BF93E3398969D38791C4E9F39C58A9882FC423609AA0A7B454525FDCE00FB72098BD6790257E1EAAB5DD9908085C84FE208894649D924B098818A420CEC18E0025C6453A76D46141298F29875EE6151E67CBA9419D105312296F651011318B4CE374F416B5B0B9B954679383D35312FBF805D2DCBCBCD658F3B2319733AE91738ECF1E10A8DDAA7003A9503D0B07424121B9AA6E168894D3B4C4C7164964EB7C82AF5CEC5639EE401846348218139995997FD5815021C0A09B9CACCE84BFA28792A8E3C9E31F0FABCF14135B5E8A3D841D52F4D71B7586CEC32250540ABC58C0590955D1FA0D7453610A7A29F20470D6F9428B0E922CA7BAB20F3A05FCA86C62372F36945558AF404A82C652952443D2B2A452EDB7CF95404C59ECA1BC1250137C3B458E4882260C5F8654C7E5B5D17E1FDFC41022460502140A367A2410DC0CF7E663D1A0A4D40A65D6C3BC98D30A83DE91E313502AA0F58658E1C0905A7E00AFDA5BB256A34FFA585C3379E69F004A84FB40D2B81625659D255F1D9C86C603883E3E25A2422BDAAE029F186CD13A0824FD139A83036AD74BAEA3D1BF08DB747C3A1E90C9C0B06FFDCE4A4F7C70A01618E80240F90948308F049EC3EEC5E6539895E30EDF78C3661400C67604DAF614DE1191B753F0CB1E75E07B81434CA7B00AFF9218E00BA283AA2740FA5EF52243C3E3DE23EF77E67457F1A961F1E18ECEBF94E2010E8559424A87880A47A00AB84E91F652C487DE63F313501899BED3432159E0D84C7077AA6F24A2AD666BB728B33501B149A3EEF5B278E1C7C6A6666C6AD60E9E708D0C4003397FDA804849413F4F2A406E602599266BD437DD3E1E04C4D7E4979C3BCB79B5C212D2A49FEB6E6A6FF7CEF8FBF7F43017E52919F1905BF7810D68C862A5EA05AB95EE355690A2A6FE457862972A7BD9E40606A7220AFA4BCCE55585465BA428940B999E9EA68FBDDBE577FFDE2E8F0F0A002BA0A7C4031DC881E7CDE03781224CE4564CE2BD4EC684A619791807161D233D8EBF18D0C9E2F2C5F569F5754B61CABD12BE237C042B3B353674F1FDFB7E7D9DD7BC7868747146CFC4A9FE1321FF5E75CE439AF88E93C21A4AB0D54022615022843CA53C68C5C52249233D2D733EA191A385358B6AC2EAFB0B832C7E9CC87A51ED27A9F1B3D31D23D38D072E6E4D1834F3FF5C3D7C74747BD5CBAAE6A3D9FF14846966F48800109116E1951185549F0AAE02B0376AC2311D923FD3DC3D8B3AC367B6E5179454D41716995C39557F4A74A063D57C23D34D8D2DC78E6C84BBFD8F35E7BEB79B702F80C27332AE821CEEAA37CC663F4DEE6142CB3933822A206B1604A21C1A1F41CDD7A766836601FECEEE8C56EB366D95DA515952B9C79F925D88B1CC8082CC1AFB95EA2601AF1793DFD282B1D3D3D9D6DAFED7DE9687767FB18F7DD839CA5CFEAA426A21FCA99EBB791CDF3B91B97A286B96A39A4FC71D51B68F49486B1B395650EB7CE7A2818B0F575B67740EC7913568CD7598565E56505452565F9E8224E576E41564E8EE372FF5640241C0A4E4F05C7BDDEF17EF7407F47CBF9C6D677FFF85647D0EFE7819ED5813DCB59BA8A8BC4E7F873593DDFD2BE474C375F48E06A04F54A8FFAE00E9B4288BEDBB8AE1E67D18FBC2207D9798545F9AEBCFC3C576E5E6E8EC395EB70BA9CB6ACAC2C8BC56AB1DAAC16B3C56AB6D1938A2C36FAC7CC2E178AB16B07B200614166E357E1A82C87408E86F03B86C291907F066BF9E9C9C9719F776C6464D83DD2D1DEEA1E710F4E7229765807F02C272B3CE011CE18554B973801497BE07231CF8A10382D17B9CE3FC84325C4CC01CD3F59C5A63B867FC28AFE2120F1197AEA4780C45336E87E26C8B1DBF11C31EA0FF843ECE91ADA9FCA8A70D6C9CB4458076848B72FCC1DA7079C9798B4A466C9084841849E0C91F30E154C8B8E20B3C17EFE8A9109129305F40408BA21743000862782EF111DA011DD6B3C59FCFB447543C9515DCC5C1C8E4B31CC9F820C3D29820E5C51B7AEDF27E8CE1574E00B0604400A0B4DFA29451D41B26E9FACB36EBE2E922F16F42527C0800C484188A0B3665E5E0483F5B9804FCA197444188138D7B6FE5CCD52BE4417A4844B7DA12B05217A624007702AC05359BF11197A50C1C89253BCCF2503FCB213B04862C000F4F98E9517B8FFB2029DAAFD1FDEE710B125BBBB070000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (16,1,'Disk_array_2D_(128)',0x89504E470D0A1A0A0000000D4948445200000080000000180806000000320BF5E50000000473424954080808087C086488000000097048597300000DD700000DD70142289B780000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000010F74944415468DEB55A696C14E7197E6777767DE35D9FE0038CB9C261623087482348802828213FA234AA447E04A45655A4AAAA447EF657941F8D1A892A51A3A64242423489841285464D40A8342424DC4702C6107C801D03BEED5DAFBD8777A7EFF3CE7CEBD9F1ECDA28C948B3F3CD3733DFF3BDC7F75EDF6AC160B0351E8FFB0CC3D0C83AE605CB8A02C1F2F2A58D0D5E8FE6A1E1915103FDB15829E5E58D512A95D43C1EAF413FE331119D3092E49D5AB8A0CA4FA4D1C8A3626A3906D7DC6E359A989834C8EB4BD65697FB30F0E8E8988187014F8C465379944A32A6D7C4D47202B8E3692E13989C9C34743DCFA8AA0C7A53A914854261C3E74951BE3645E1949F928CE9F5DAE9CC81ACE59AC2F4C3FE817E0A87C2A9D0E870B7DFEF677EE6C9C9324FE8B1582CC00A50E3F17848D334C2A452060D2EA8AEF42FACABA5C6C6465AB060016DDBB68DDE7EFB380D0D9D26BC1B8D4669C99225D29E9A9A9213DFAA361392D1C6A9EBBA9C914884128984BC8F76717131E9BE0A9EE8806FF1A285B478F162AAADADA5279E7882DE78E3180BEA2CE5E7E753381CA665CB960951764C8CA530B2618E8F8FCB3DDE652108667930C0F813BE8685F5545D5D4DC78E1DA34B972ED1FEE7D7D1CD5440BEC35153533303D38E61A71757F09199CBF39E4863329F85E99555D5F2FDB2258D545A5A4A478F1EA5CEF63BB4777B13757B82C24F3CAFABAB9BC14F279E1B26E8C495652AFDAC4C543B7F3E75C4E2068FB71434819745454518FF9E5E50504085858532000E619AD797A14D3D3D3DF4E38F3FD2E9D3DFF3046FD28B2FBE48C3C3C3A2048A216A32AA6D3FC180EA870FA98E0966F5A7918101FA9E3187C7C604FBB1C71EA387FCDC7E74747488829D3A759519D5462FBFFC32F5F7F70B5315D18A416E9860402DBFBFC0C21CE6F1BF2B29A1310B130CEEEDED258B6C518886860611CAD858273D8C106DD9B245F040A77DEC6CB8E85BC2E3D7048382D9373A4A67ADC50241AC5EBD9AC642E1F4DA2CE1F92C5AB48896D454B095EDA1BE298D366CD820988A4E2786F31E74AE64A157050282D9CBF8171813FD10727D7D3D452626C9EBF18A42CF9B378FB66EDD4A57AF5E95F17530036641AD7E741ABA778649B975EB160B32C95A4CB242410C040B2075B5B7ED5768E5325E017F7CF659B6AF013A70F02075F1E426F93908C5E166DBDBDADA449B71AC58B142CED9B0D433588B35CCA0DF3FF30CB154E9AFEFBD471D2C64AC4460625CD3B64F9B4A589DCACA4A4A5CEF94FB850B170A6F9C18D9DAB0664D3E1FFDE1F9E785CE370F1C203F0B1ECFC05737D30DA5F34C8ED2405B8FDCC3E2421673C1C315BCDDC074EDDBB54BE8FCF35B6FC99C1526E8C478EC3F69EFDEBDA21458F450BCCB972FE7E9E88012A8D58F41A389D40C6198E0A60208F35C4E11A4EDEA7C6667B661BD0393A79E3BBD1DE6924AB98FEB86E1360F3B1E143C1333130F8C135AAD7BAC986C18594FD068A7D339273C9A0EB7C8C70AE3999AB6B8C05482733B150D19F46A9974D86937DB26CDCACACBCA671CDC8B0B80D953AB1F2B24118E640C8877366FDECC93BD26F77D7D7DF29ED3D73BFDBFF2CD308177D934FDE3CB2FC96082FBD9078FF3CA50BE58B4D4B134A0981B376EE4D619B987B9C6AA768B31EC7D0A136377B09B5298C3D60AC5BC95C23B57E3DDBB77A9ABAB8B9AF3CDFBA1A121F9C62DA671A31763B7339DEF9C3841062BD320DFC798F1CA178B301C8AD9DEDE4E6303F7A9D663DEC3152AF39F0B57B5C1DB56E6CB3BC78F0B26E88C5B8B1942578797DB1F7DF491B81DF0BCD8B486317101F00B6AF5E3A35064326392555555545151C141D962F6C3BD74EDDA351106FA4094DD37D9AF767FD5CE7EB19BC7CA67468C7350E5E7C957F28431CEE0E020391519E6B8ACAC8C311BF99D4109CEE0BF61A29DE367BBDE62CC2E1ED4CF3445D8E7175A4121CC2630359BFCC148C439172E5CA0965D2D549657262E08C2007FEC74E6A2F53BE6E7F74C936436ACC43ECBF443391E3C7840C52C00058AB1D177E3FA0DFACDD6260A721078FDFA75190782B28F9D0BF3122FD02B56F037CE82F55B4A06790E70BC5532AF54780BD9AA130A29AE61E7CE9DBD1CE5D760E580099854F7FDFEC1C292E28ABAEA4A669817E91105CB384245EAC42B6B6222C2D6C06F9918F3C73272E6D598799DBE18E92B19D3DF4C2250D2F3687E65990829CC049532E3D979D1A404458CE9CF33C7D4EC631A19634E5F35D779D94D649485E22FC8A772048ADC373830C4CCD1282FBF803CF0C35309F2B3F5488F61C7C8A011CECB9D76A74B4AB04214E6175230584A71E6F9085B2908238F237360C65868CA15D9BF150423831A57B7EB9C27043F3595A2B170D8181DECD7A058CA0AB09534B300DC405BA011623ABC9A042F95E565FCF23C2A0B0425FD0A87033C58179BCA2EAAA8AC2243524643AE8631DD4ED97C955CDDFA32AEBCBAD8DCE2A864AB525C2293E36093577F28C066BD83BABBBB19B342DE356CDF092EAE645E536A2EF66786FBB341C6F4B0A2549495CB7D7F5FBFF8E7354183067C95629D2AABAAA6E9B38F99CAA437A39F663E577C981A9F824E5339F31656618873F43C2D49CB4B0B68D45F6E625654DAF83513D75078D9F8EDE88FC723A25C9A759AE198D9D691134201B0FAF13226051351C42B03796B5D5D2D07B401DABE7D3BBDF4D2DFF8D93792B67570EE0A3F6DE4146C2AA38DF15454ADFA46395542BAE7F355D320AF8602C65DC8A94B90CD376A0F3B76BCC9ED6B9275B4DFC9C4B40744B361822E15E8C2950013EE243A19154CDC23B63973E60CADF696D3ED89219ACFF9F3BDAECEF48A748E9DEDAA022EC553E5AB514F0906D8DAB0204B98E72B998F3DACD8B76EDEA0F9C900752487C5ED753126E69D8B9FCE7E58111C8859D056D8E023167184E9743BC402C024C0F7AC59B34606F048243BFD12FC2598A30EE4910051819E4A392058679F2ABC94B7B6D286EA6A0E02F2A99573D04BDCEEE771215010FD90579F3D0B806F1C16F36806323B76EC9831AEFD547DEA0A3A16B00F6FB630AF5FBE4C1739F618191991201098F719C34E2778B169D3263226DB8579CDCDCD2248157839719C6DD0B992F9B48E5339A44BD7396E39C958E8875240A1E0DAECA098CBA6E635940A750B664B4B8B0875363C75C5D86BFBFBA9891518745E39778E4EF198AA0E80382D1A8BA75D883343D0A1DDB00228F6A8CA9EE650001C5F7FFD356B55821040C36260E273CDC90154C30CFFF5962D92ABF670E4ABCC90D262B7E3D4A9534C64325D34C1FBB361A936567A3DAF7085D979F3E6AC98B06C78FEE07FE6FC10FC211E996B4E0E813430E62BBC40A40EC098AEB4D978BB6EDD3AD22686E9CED96EB987B5556977AEFA83D7AA2FE05CC18AFD0A5B4BD0D9C68BCB2D05D534CAB0228A07A200CAC429BFA0B9E4E4CB972FE7DFAEAC39FEACF9B1D3F43063818B95AA821727260442D4969EDB9CB1B2D41F907383710AD3997AAAB4CFAF52272B757B245C471D4045DB10949906662AC0FDFBF7C9131DCB785F5500E7520370AB03A879AB7A0269D38A0F05DBB3678F588723478E7874552B5FB56A959840017128407979B9F8605D3F29F72823825900724B8D9CF798483814A23F7DFA2979B017C05A1CB2D216A57C4AC8EA406DDE5400F338C7A60D6E682E982A478E7040758B31BDC82AF819D23F60A4A36CA1721A1339F8C58B1769578359986965B7851845D5E7DD30ED6D607EC3BEF706E7DB924E733B6EED27A48B4F0ECB0A05E8FCA18DD6579BEF5D665705254CEFCBE4E0ABDA07F92FC737E73FFC50AA7D43700FB6804F65106405F8C8F290DE4201D89A18BAAA0841C0A8B5E32573C51AE9AA11560E80F6EC59CF42F0896F8679443DDDBE49E2DC18716E64A8EA0202B21AAB68836005CA644BA4A41F4110AE7BF76EE418A448E6064C9430B31562DC0A25939652C5D9FFDA3111D7C872D44C4CD0849C1926D65FD3442BF5A044E4C0441DC4BE0164C756025105A838F7F55B2B33CE4C9E6FDB0CC2F84556E14BC55650B0582249F3EA9B68853F204A8AC00DBE3B5B11C8BE4984730282B5825485093C15F0025305C06AE3482998B67FFFFEDE8686861A30182B0C675777EF6049B0AC2219352B82497E314373D356479B752736FB2665E68706E746451CAD46C743E67DCAF8495BBEEEDBA80E53C9CA5F5C1AA0F0C8503ACACF2C1FDBDD5296D1B49C5398F104F51360868607A779EB403557ECCC11B5B910EFF252212BC5E0E090D1D5FE8386FD8D7DFBF6490C77E8D0A11EDD5EB65581549273CC025DA315EB9AA52287A0EFF1C71FA72FBEE861C1B74A5916AB1F51AD5DB39C5B956E7DD9B652C7C72312216FDAD022E322E86B6A6AA2CF3EBBCBE6B355560BDC02B6669DA6DE8997ABDFFE2C140A53622A4E1BD6AF1386A00A08DA5ED9584BF7F2168B55C06E1A5CE06C984E1ADDB66DD3663C3E499B376D14B770FEFC790A0FF7D373CD8BA82FBF5E30C15B60CE15CF8DAF19DBE3C964DA52C30A1D3E7C585C00BB8394AE4AC030193855FEE8D5BD691F0D7381099D38F1B1D40190AADCE19CBCB3B3D335F776469AB2C5CC7EAD005127EAD37C1D62131FB57603319E2A43ABDC5D8A421C517FF2C9610E5CAECA5E043051AB77C3C88689AABF17E68AFB8758C8A00FA9D3FAF5EBA512988CC6E41B28972ABF76DFEDA22B91117137B76FDFCE0806DD30ED6D1FD383522CB2F224D3D46FD520C0FC952B575AB1801950A22E005A43FC5D47473B754C0D4B1F3055CCE0469BB3EDB7309130C7515CE2318109F78E05E3D37D6218D42287CB051F240B5079BAFD3492A90C038AA0042B039528C80F051A2B8898532A08BFD6D8D141BF7BEA294955FE79E4087D83ED606B924AE0F66036C441236A01AA6FE7CE9D33B64973A582F87ED5BD7BF42AD223F6E37F3F7488BEB514208DC982F0D8301121C3D251DF15B987D2A958245BEA67EF83326F635EFD165BD08C79E0FDF7E933C60226E60E2B13894CA4E30E15605715FB29F9F096DC3FF9E493A27073DD82469CB29B1577CF8E1D82F99777DFA51396C2621CA4F862012CDEE17EF7EEDDBC984F98FB02D01408589D2022954ACEF0A0888E5107C8960ECDB6158CDDA86266004E44ABA87943D9907998EFCDF45D67CF9EE5159972DDEA9C4B4AA633038A51EAB6FEF0A22C1C98309D9F4FD389FF398802B8A481B952317B9FC415A093155C15919C3B73F603FF7158BEB431233D7ED42D681F302D3A5510EDDCF6C65CE0FF116022DB81B233EFBD3A18625700499574BF33B5A4A79F7E9A3EF8E05F8F9C87AB13E6B607D54456B0040B9FD16582AA50E416F4A0FA77F060C78CC2C66C79BFBA42C114668A05A1A2DF744EAE6542626B1696A32A8702E4C2143A1526F332899D40AB449B2E3E6999FF7EB971E3069BE1487A1AEA2F76B9F0EC0A87639CE9539812C85A825741ADEC04F2CF0B2FBC203C01CF91627306E21705801981E0714209F24BF40C7B8C4008FE50D74D2D3E79F2A4A42F6050B6FAB4D377DDE6F3F4B7DF521E2A6B9C56C6785520B8449A028138C58FAAA4FA2F1E0EFC5F0F65DC5C984E1F7987DB2781893496573D56225C17842C984666F10934C134BEBAD94C6FBFFAEA2BB1884E7F9C0BF3DF2CBCFF1C3F8EC8D85434FE16AB5AB9272726E8BF70EE2C3DD76406D4C08702D86B0FB3D17994B13EFEFC738973E248ED5876F85EB90B5825254F7B808A673A34029D500275169594A62347300BEF201F7EEDB516CEC72BE91EFBD6B56BD7A60B47F608D9B96F3D5B1F821E6084C3E3F833AA100641403131FEEBAFFF8A31EB65AF1E98F0A3D9C6CAF5DF00671B98E3D83861E500C3B0DB880580E0D0BF7C396DF2150A2FF097AD7C4B79B2FDD7C1D9CE361FF9B30D333E2FCF744108A2A1146BD9ED04562CA5167FA1283902522766B6FF22CC85E6582C2E16003C045FD5C618B2008D997A89B5C500F1CA129404CB26CA6A16FB13B189E29FF2576FCF9C1278EB5D5D9FD2743D968C468BE81738DC7274C64C68BA2FFE4B61BACE8331BD5E3D31158B16CEC2B49FEDD0BDFEF8485FCFFC91C18184BDEACA8B29FE7F92CDED5AF8A47A870000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (17,1,'Disk_array_2D_(24)',0x89504E470D0A1A0A0000000D49484452000000180000000408060000009463FF180000000473424954080808087C086488000000097048597300000298000002980136D347DF0000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A0000011849444154189505C14B4FDB401480D1EFCE339080ECAAF481229058B1E137645F7E7DBAAD5A09894A6451CB5128D89E3B733947B6DBEDE9C7E3E3A6D54F5C7D110ECFCF7C3B9DF81513B7370F6C36CA300CAC9F9EF803749F7B40501CF3E1C0F93411EEEF79FDFB9B8BEB3B8661E0EBCB0B3F4550D529EC76BBACADE17DA556C187C8FB6A8534509D29C51011EA7A8D2F05039A092146F4EC0CF51E514562469C23E58C5E5E12A699E3F1E85DD775D00C284CD34C356354C5309C87FF6F6F2CA5F0AF56CC794AA9346BD4AA1484D7DA00A8E6D0A2B4D6185B238440DFF7E2F6FBFD29AFB245BF62B33EC75B631B02294652CCF45D474E99EFCD9052C8399153C439472C0B7DABA4942C8891520433AE9685B2CC8CE3583F0013BA8E908485C7E60000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (18,1,'Disk_array_2D_(48)',0x89504E470D0A1A0A0000000D49484452000000300000000908060000007477AFE20000000473424954080808087C0864880000000970485973000005310000053101B7ED28520000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000004AC49444154384F4554DB6E1357145DE7CCC51ECF8CAF1927B11D038E13C425F4A14A0952C8A51212156F7DE4B552FB1D3CF01FFD15FA042FA8524B0554248D703071EC90D8F175C6335DE7D0C258A3339E59FBB6F6DA5BA4D3E93600EFFEDEBEBBBFB72B5AEF0730641FA66561369D613A9D603A1E438EC618C473483B853841B2BBB32D9E3F7F8D60C184340CCC660A3BC56C34829C4C711ECE202D1BC55209DDD6014C378F62A188F97C8E19BF4D89894643885988B32844DA7192E66A531CBC7A09BF5C43369BC53C9A633AA34FFA9D0F4788A3087DDEB3689EFCFDE6F5A85C0E86F2EAD5AB6EBD5EF77CCF132926DD7AFF11FBFBFBB8B3B181B5B5265656561098267EFDE121526767104890B24D61F1DD71AB8B9D9D1D6CDCBE8DE6EA2A6AD52A9AB68D27DF6D2226369D4AC17733B8DEB8829889AFAFAFA1525966210564320E361D07BF30C669A703DBB245D6F7505F0AB4DD6AA381A5A54514F27990643CC8FA78BC52C3E969076E2623F6F676DDADAD2D5F3C7AF4A83F994C7CC7F592DDFBDBE2F0B08B38561D30BFB2CA0E64423245D624034BC3C4F7FB7B78F6EC25164A364B82C6AA8E85C43AC49EB273969341295840FBE8002937AB598DC8E0F43F6C3219C3E4F3096F3F97C31A4978F3C7EF282C56E0B0B8907E14764AAC18B3B324A1CBFF76DAC1D1E101AAD5EAC0ACD56AA2DFEF633C0D6190D53831353B524A2049F41DB3881C1DF6E9D06097D43B2904933190225BFAE2BB44E199B8EFA4B52C0CD3804D9F699EAA488BB68276B1F2C96404637864B743BF266568126B89B90EABB0EA8AE358630D7E4F117F46020C436A3F2A4749A054EC59962912823F1C7FC4F6F6366EDDBA8566B3A9AAC4029D3DD9DC84797E4E5D46BA034ACB9D931EEEDDBB879B376F6295EC552B153458D0CFEBEB087BBDCF49D1B651AF68BCC22C2F2F6B596432197C43EC8FB4E9112B85D4645417039E36AE5DBB46092D214FACEAC67DD7C5C320C019A5A9FC2A5905416088A74F9FF6DFBE7DEB77CF2F928D1B3744A7D3E790F56153CBAADD21872C224349AC062A84244B2AA98D8DDBF8EBD53B262235131A4BDC9CB7626CC2AE49D342B15840A77D8C94E3E9A06C95C6451CD088C3ACB1FCEF643C2C96031C1FBD839F2F2145ACFAA6B021B173621579E13CD6F13B271F71F7EEDD89541A570CB869475CB9526790A26652B1E4B16A9743684B811B9E87541273809CCF434686A230C32DB4801CB5ADB00E83DA4C719DCF2675E0D1B6902F209B52F23090CB6575118A1C499F0E136C3099313797654ACE53913142FD9D83AA3BA264A5164796D8153E8FB8B9D40269B55A78F1E245284F4E4ED06EB7A947E8816DB53E684934B805F40662DB8A0CF298ED372E2E34238C8DE170886EB7F705ABA4562E97B1C2E00F78CE3E7DFA3C13C4D62A4BDAAE42621658B0EFFB5A16D789DDE2F305FD0AFE54B28B41499F0A5B2C16BF60EF10FB2D89B9BCBCD43E554C622C831AFB89129A546AF574A15414B66924FF1C1D627039C439875B253AA1447E3BFB8428E3EAC14B848C4BDCEF713C4B7ABD0E2E06035CF407B8E4AEBE64F0973C25B131D4A09949EBB80D2F974F144153258930A26D822E89F993B2743D1FA66D27A661A1DDE9C2F1FEDF56941A25A316C007CEDD1BDA7AC47208E3EE6987AEC2C9BF78BC39D24D63522D0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (19,1,'Disk_array_2D_(64)',0x89504E470D0A1A0A0000000D49484452000000400000000C0806000000D2F3BBC90000000473424954080808087C0864880000000970485973000006EC000006EC011E7538350000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000007504944415448895D564B6C1BD7153DC37943724851143592F5A1E4C88E637D6CB96EE5204BC3710BD8591428BAE82248760D90753701BACABA5DB45D6613A4408174EF14698BB6A88BDA559554AD23D3526D49D4CF11298922298ADFF9F4DC478E237788C7F799FB7BF7DD73DE28DBB6D73B9D4E3A91EC2BDF7AF3D6C5D9E959A4D313F8EFD37F6160208D442201BED7ADDD6EBF3C66737D1FC7952AAECF5F312EBD7A29B8FFB7C748A53A181B1D85EB795ACE75455EF4BAFACD6653CF3DCF47DC8E231E8BA1B4FB0CF1C13138CE10629C6B1F6CAE34D7EDCE5B2D7438F6683730CC606EE6B5C8D2E26270617410BE3D8073E7CEF13DFDB4BB318ADF4EC7D56BE2B31B7707B9C7B9A3A8651AFDFDFD3595C964D2A6693A1DCF3B4DF7A70DC7C9E0F0B081C07731911D478B4E1B0D70EEC135008FC6DEA856104422F86DB188E1E16124B989FE548AC9B28D95AFD6F1DE7B77B543695484EFB95A3F43F9EF5DB880DF3D7982C56A15737373F099C0C9C94918C7DB689926EDF4699FE2A7D3EADA6830803BF4D70A027CBC95C7C8C808127D29633093C1D4F909E330FF040BB7BF857ABD0E5F92D56E691DB1933D39C1DD9919FCFAE1437CC5B5D9D9598C67B3D6F56B57D3E57259A9F1F171300128F314E589D011FDC0300C249349DD075C9026C1CA894629E3F7D6CF3E9665E95EF4C48E3CA19E9C9AE29A4D198373E385BEA1C772B2A2138FC7F5BAC8BBBD3579AF7DF6E29077B2268FD896271A8D6AF9504F29A5633529273E23BD58453F168D1A520DE24B8DB254250152CA7566E8E0E88819CEA2500890CBE560D17058F69E6497ED2F5494521A1C74F4BCC57195996E349AB8FEED57F08FC57FF25DA65BBA0C4297B2EBA1924EE3A3FD021A03037068A3745C260412D8C8E7516A1AE867F0CF9F3FD7C1777ABE24419615C5671A4E84D6D83898060D9FC3C343E477F6707E6C0AABAB6B4813B21EFD48D94BB24C65619B95F98BF5753459A923D4AFD51B28140B5EBBD520D4D3AE927292E7A8548645C74962DE34D994A9D74DC97CC464F3C0BCBF386DD38C40598A29E558B9B0B9A1583C469C2A24EC36224644373929B1C173D1B2F2A74C0597BEA23C19A55815C4BC850EA1E27D534EDC40D75BA05B1048D54037598A702027482558017986EF65CDED5549E007DA86AE40B12515C79F19315EC425D5A51CC7C1D6D616B3AC741909216D6C7CAD9517161634AE4E4F4F35A6645CABD5F046A1008F063E26A62581A227E5DFA44C2EB78E0F3E785BE34FE4C32636129B9BF821F1F89B2FBEC003CE673896CACC66B3F08A9B68D0CE057284C887FE640362EB478CAB4E1FBFDCDED63E2DCB445F5F1FE66667B0B7BA8C5B3F7853FBF846D760F37089F3775F7F1D3FFBFC732C934FA6E9F32C34558A25221090D44A7665EC384994CBAE4E8C380F5B484845C118E5248B52E6660F8F4288F248194B20221FEA494FA2C53392DF690FBB41976C34BCCA4CAC1577B0BFBFAFB17BD6A7B41DC1774FC7D395D2E598020F23ECC5E7FFC75BA6ED15DAAC5347F385AE081F57AE5C1108C4949C9C10E1F6EE1E8ECB153C26EED36907CD561B1B3C31C1A3EB0A89750390327D10513A881431DDA25C87763799AC269D5EBB368A7F3F7AC4D349D1A1A73129B2A25B27BC3E2D14E1F1E49C988DFDE2016CAE952BAB68987DB089DD1263D09091600D81591409FA7B20B750E0223B799EE5CD78B88967EB1B38A5FFC1B157B1B5BDA32BC2D757A4E85988B33F8AC6F0E9C101BCF12C26780D0B07484C21612AC97658E21992D35566C6B6B338A99634C68CDE09753ABDDE2723B79BB0186485998F276C8DBB577895DDB871036BAB7FE07DDC210FC4BB777144EE700A324B1E7D2584DCA8DBE6353B3C34A40315DED95AD9E5C60710ED718F4F920B7402BBDF0111C667D1CFA904CD4351E4A0F3931378BA9A839D8CC08D0D13DBD0890978586E8FB85D564194FA4DEAD67840C3FA5BC1C5E2E222F809D0562764EF52A9A4B12D952CCEBEFC724597DACD9B377572CE36917F8BB22D6EE2E76B6B18E22648299A50B689CFA74FD7F1CE3B3F469858B11BEAF6B1A27E72FB363EBC770F7FAD54203750089D66268D3A713E3F3FFF423EE40EF1F93E658FB9F90FC91F222F5522DCB3F09DEB78B6FC1077BFFBFD97E20C752FD2FE4FEFDCC1FB9F7C8225CEA5DAC91FC6D4D494BE45D401CB43F053AD54F495234667672F3209EB3A4BB291B085D8FA235B8A272749D2A7A3A27A23D3D3D3FCFF0CCBCBCBDA79F8C5283AD2C789FF8F9696348784DF16C2DC12EC5EF11089D17E7DF5865F9CA19EF4F7A81BED71C7D9EF80FF3C5A4192BDE875BF30DB2FB50ED77E75FF3E8A1C77757DCC5F9D577DC9842432AAF2F9FCFEEEEE6E9510A8546AA7632BB9356368E89CA1EC44705CAD692782474F48C724DBC723D88CC635BE078747B4D17AABE5ED7DBDAF7EFFA73FE3D6EDB9606FBFA81329EF7CB9CC9820C5ABB44D3CFF5DEE686718E399411C954F8238AFCE93FCB6111BB948DB36F1AB60C548B02A46351BB6DFE58F1DE919FC6BA97ECE3D345DDFCBEFECAA54C681337439A8910BE2E495087D58B60F9BBCE5F77496D8C72E5DC665DAE9101EF9CDCD13729A47C2AFFF0F76E33820C635A0230000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (20,1,'Disk_array_2D_(96)',0x89504E470D0A1A0A0000000D4948445200000060000000120806000000A472DBF20000000473424954080808087C086488000000097048597300000A6100000A6101FCCC4A250000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00000C154944415458C38D585B6C5CC519FECFD9B317DBEBF52DF63AB11DDB499CD88404A5710837D10AC8431E2B21A40AA90F4595DA271EFACE4BA5BE2221E853A9A2A2482D1214418B2008D4125292364E1C4262C7F74B6CAFC9FA6EEFDADEDD73FA7DB3677667379B84638D667C76CE37FFFCD76FC6AAADAD1DCA6432D52262B1C5DBBBF69C7CE2F1707D438344A351CF71E2924ADF95D5D515A98A548BEBB9E2BAAE78AE97EFBD7CCFF7FA5D61ECF7B95C4E92CB2BB9C78EF43898EEB577B44B2A55254B4B236259B6D801BBF2B79CECBAFE7BCF58333F677D6B4B828EE37576B4DBD333D35EAD979240431BD6CB4A4D348A39929F2F6E7E5C26A318329AFBDA486FBB2D8D758168B456A6A6A6BC8EBA90E4A22D92256E4DB5819197C97BC0DE5D2DBFE72999EECECD7B7333D3AB559148AABABA5A1CC7493B507A4330188C5B96A51465071DB7A1BECE7AACAF578E1E3D6A7DFCF1F73236322C4D4D4DB293DE926C369B5FC86FFCA6D0EFEC480DFADA5048D6D1A76C5BAAAAAAA4A9A15ED6D7D7ED46F49D9D9DD60B2FBC202FBFFC7BE9EF0FCAEEEE2E0529C12A1F7BE9B4D441BE30E625F17E1332B4B6B64A385C0FA5E4A4AB73BF844341EBBB8B9F497A392D5D5D5DB2B1BA5A2267255C677B5B62903107BC05FC9F4AA564EFDEBD52150CDAD19A1A79E2F831191EBA6DB9D6AA4C245665FFFEFDB2BEB2F24039D51858D5998C5443DE0DEC6D050A86834B474787C0D905D66AAAABAB6B8AC562FC66D1A9AFAF570AA0B771223D523F23232392482CABF1ABAFBE2A3B5030DB3604AFD4EFDCBE2D6FBEF8A2C89E3DF2FA5B6FC9403028584C685CCBCA6352D01B376EA831BDE095575EA98C658CDB2626E475E07E3E3C2CE70707650572D2B02918463F0D88D853BDDDF2F5445E516CE53866DB42F4FC028EF23270FFF8E187F2A74442C95603C5A7773305DCBEBE3E694E4DC9F8745A9E7FFE79E58095F0F43A5B0B0BF2E73367A4B1BB5B7EF7CE3BF20564A46E239188589B29397DFAB4C20C87C38CAEA043057133B45E1A9377A5F8E4ADEAAAB14A075E69DAD1EFCCA61FCFFF5E7F2B5611976B15E655C0782026C7E63BF4960F1C0804E04879E7A1C14DAF37B14ADE1B7B35D7B20C5943309295CABFB0112D0FC5F34C44A500B557CB07B4D1534E463DB1D81C86024383DECF4858DADA297CDFDFDF2FA3A397E5CE1D91F7DF7F5F09430F20A8D9B838DFDB00FED5A79F4A0C069DC5DC1016E3EF9EA1282EFADC73CF61F44FE5851F7CF08112CAC4317BBE1F87630C7DF28942B8E72B9BF2E671F3CF0A52C3375787C48EC5657E7E5EA6A7A7D5EFE5729AFFBF078C7FBCF79EA4917AF81B15A5B28057B4C0CD9B37A5D5DEC0A8462E5DBA54D87FB98C057C7CFF9B2FBE901A44FF3CC67A6F3ABB30FA67666654C4421719EBECD9B309A4A138BD7F6D6D4DE692ABEE13BD3D762D0CD3DA1A97801396C5C4BCFA2DCAC2A60C8BC572AE2A3039169B9C9F035D3F1FEADF0AC52D271B5B6939D4DDA91486DA22AB6B9B10641205D89148288CB9F979F7E56C03936B7939B75030D3E96D0947AAA46D6F5C26A7A6C4C2DCC6E6B82A78D570024BE0B15294EFBEDAA270BCE23AFE3CCF0A487DAC4639E638D25F635D4CA2B17A287157AA9036450562F15BAD8F9CC675F3BFE58CFD70E33B999C4C8EDE51CAF70DB0A82280758096621EB3ED0016A9923D4D8D2A8FCECFB9120927258BEA4F833898C7C297CBE6142B507D212AB218DFDF2358651306E08698FBBA0F1C907FFF6B1C35A006511790784B5C095B8269F6B9E21A85B5E87DE88360500D903F09E7C825A7A19966711065CCE5AC3125D19A3523B718C959F33DE4A0A228675363A34CC000B1EC9A64DD1818176A1AF405D2528295CD95660557BDCB15E4542917D1B5B39BF2EB61B139F46A16085A6973731306B048ED241E8FC3084DF2DD8D2914E3DBD2D3D323CB4B4B85D03353911E7B1B1BD2896FE97D638B8B328BB9C4A1E21D282A04C13BDADB55BB70E16F284811A5A44462E13E2CB38F20FADA312F83FF47D6D76509EF0E1D3AA470290FEB587B5B9B4C2E8CCAC4F8B8F4F6F6CA06E6B195E3EAC694D00A87DB0743AD61DE00D2101DF0009C231474940EDA8079E5CA15097BBB32323EA68AE7CAF2724107E5A958E90599E43075009D4E4207637EBE272E9DBBBCAE290330BD2CA07A53190183054D4E4ECAD8D8821A23553D92AD6CDFBA256FBEF4528105CD225AB8B859D8B8F8F5EBD7D5985EF6205CB36F871C64419F0D0DC91272E80A14C0881583AD3437374BFD912EF9EC56425A5A5A54F43E94ADA0FEFC1CEB6B16741DEF281B71B36E5141274F9E9448E2A6C8F296AA892CA095F00AEC0A7AFCC34F7F9A67416FBF2D237847DC7CD12D2533CA00F47EF25FFD5881A20118C62D2D75F0D007B3159315F19985D521A5AA15DAD26611E6C3A830D9C7A398550678B3106219DC5E8CB53C83C770F3EB1B9B3F9AADB06D41718B886AE22B197D2F31A9F822F6D3E1B915595B2596C5760F726692C992FD6B7C46CAC18307E5F8F1E3323E3E1E74C86C703852DE4FE6601B8B3FFDF4D3924C0EA0D8D5C9B973E7145D355940F9418CCAF9EDC08054C3B3D661BC3A60B3B8D3D37508D0C39E7CF24984E45750DA9A9C3F7F5EB1AF92035D19F6F758F31BA402A6B075608681450FB6A0681A967318C117FF7B5BF61DE8552C039B2BC1A984FB2E70CF7DF49164613CCA4525E1C028D1DA98929569EA36CE364B6114F5685CBEFCF2CB82124DBCF2357E7DF9B204BEFD5652302CF74E1DD0C92D2B5098A7199AF5C61B6F24E0E9710ACD94F3C37ADA6D8C56D9E4D401DB1107F9906197D9CD532ACFA23595AE7DB69FE7E36A6889CF10B47F1A1E0065D1302C5091AA6A650F2514FF50774ABEF1A4886BF978FE6B4F9F32E881601EE14858C995A24158D4602017453180825951462D95578CA0F23583C80A1EE47490B353DB29D48390220B2CD6EC4B62CF333ACF2BCAE8157FE05BA51A30BE2BDF7C2DA74E9D524C1007B1658716A38299C7D84064657FFB411526274E9C906BD79288826B8A677723AFD1A28C027EA3A3819EA20BB30EC92D5F21C4649D9984817B0EF6A92B045E45BCFBEED712689950DFB2A0168A189A89A7FFD79E475C7D90CBF9B4B1AFAF17B56A4CEEDEBA2AED47FBD5FAA479BC3E29C7D363DD732E65D4275C321C0B35A0A9B14165860B172E48570D0CDA7A44CD5557157E2620069BA903FD3FE792D4D0B952A9B4D2416A7B57FD3E3A3A2ACB28E6D853D6D18AE4C6D82410561F333531ACEFDE5D020BFA4EA5237AEC06984EA58DB0B77FF8417E8662E8C183BE854286A1340AAC0E697E0AE20619E65F7D751998D5B26FDF3E65DC4A78BA6F01EE31186E01DF0D22BFCEE1DD91234754683394282B8BB0DD522FC323232ABF5209CCDFE5C6D498DCF74F78CD817A34837917B077D691C3870F03339FB3C9AE5823F7C67272094A7BEAA9A79452495A2A61AA31F47316543500855F9B9B93FFF92C8858B67F8054853EFF8DE750A95C8C8A658B36440A358006181C9C159E3D18360F6540ECA1A0D74E9F562CE8261891EB332075CA348AF0D5AB570BC6E0DDC8A370DBB189D79E7D56B1A091C1C1E2B584C1AE1859F1ED76191E9851E71A5E7E3D94AD40E1FD8810CD826CFF5E295F2C8B7590F73F3B772EB2CC2B2A6EB2A08A774CC0F92574A55810CE109ECF82F24CC8529140676114C190B6438BD21AB42A0D50DBD85C589C29E7F87107E13D2AB3B3B36A01ED3DAA2E1863368F477B1CDD3D586CC75092BE9FD1CF33CF3C831474551986B5A71CB37C9D1064FC048A1FA54797F168FD2C81CDCC8E4CAB42C46FEFDDBB57229BC6D36983D173077BFE3B8A7B02BD4E1B4A5186AC9751507BC2DB6ACCB4C1EFCA653465DDC1F87314EE309C770B637DC5A15910D32F2382A4077DC4613A20D82A429BA9A0ADDB295C98D100C9640E130FCBC58B1755BA204879F815F23F4E8E7F651EC5B7AB98DB86852814AD6E5EC6D15BCF9C3906C1EFAA68E0FF3A84CD5AA0FF9F04EE2C366EC3B3B7B17E1330A90886348B1DE725405387E696E5D0E32794F2A92CA60F13C7ECB98F4BA867FF999F976DCC6B0013A33312371A0BABDF1925346CB0C6C6B9A253DD0B919A5381E5873A3DB67038FC0B746AC19937316E413A220EF560811868DDEA546421050C62D15012BC15425B878F9D0CC6A2557B2801267A05675054DEBADFF5FCC77ED00F9A1905822910AB1A5E92E8BB91D249953F7DD8C3AB18271CCE850212CA64726E21303C17D2DBDE8F43A930C50E64B0D560D00958607FE675AC81FB08292B28646B2B951DBA3110C0FE33FE757CEAFFC2F8362A4F39594A0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (21,1,'Disk_array_3D_(128)',0x89504E470D0A1A0A0000000D4948445200000080000000200806000000DA2270250000000473424954080808087C086488000000097048597300000DD700000DD70142289B780000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000012124944415478DAED5B696C1C659A7EABFAB0BB7DDF89ED90C389E31C0E21178782920021419646485C5AA4956656CCB9935FFCD81F2B062131B33B1A21E6CFEC6A58105A4644C88878A2109189476449E22C0B28C48921977360E772FB6A5F7DB8AF7D9FB7EA6B5797ABDB6D8E4D18ADA54F5DD5FDD5F77CEF7D7C652D954AD1EDFEDBBD7BF7727CF0D8C563078F22A779F9ECF5EBD0F36DAD3BC79CB0A66947F9F3307F76F2DF19BA03FEB4DBA100BB76ED2AF2F97C0F5984DEF45D0AF90E559C9BFCDB5FA110BAAEFFF5E0C183B7FEA615E0D9679F5D97482494C0B7F2F0DE4E01DEAE35B3CD63AF709ABFEF8442783C9E63EDEDEDE1EFB5023CF7DC7395B1586C2713B69B3120F4857702A3BF274A11E1711C0AC1E3F0BBEFBEDB9DFA8E04F5AD29C0D34F3FED2A2B2BDBCCEE6CB7E9DA37F3D0BF0FD67707E40773CD0FF09070E176BB3BDF78E38D1B778402ECD9B3A79E05BECB14F8233C2A6F7722F65DAD798779932F9048C23B442291A36FBDF5D6D4FF8902BCF4D24B5E06DC9A4C269595B7FE0D64E7DFBB6AC3367F9A47175F76BA5CAEC39595959FBFF8E28BC97929006B937BC992256EEB0FEC6A52172F5E8CBEF0C20B4D70EB3C6F77AE12ED4E11DEFF2B050DA3BA808760433DFCCA2BAFF4E754808A8A8ABD6CD50FF04305FC90E0159794BA2BAAAA5D0B16D6FB5C2EDD977D63791098E7AE59E1C85B5848A18949FAE6AB6AB60C3BF309F5ABCBED21AFAF90C29393E975B52C6BE4654D79DCB83D5EF2141450786AE26B2058D74B39A3DB164D2593A1EBFDFDF1E0E8682A1A090D7BBD5EADA0A040E34A23CA3F77B9A3D1E8B670385C6F9622A26D65553593353535C5ADAB9A69E1C2855454544477DF7D377576DE205D3F4BB76EDDA2050B16505D5D9D80707947F1789C58E3E413F7D691ED3BEBFC60708C868702B4E99EF5B23630D7AD5B47870F5F17CC818101F91E037BCCB6EE7C308747462934364AEB5BD70ADEA79F7E4A376FDEA4BF5B5F43570A9B687C7C5CE8AFAAAA92E7B261E5331476743A4AB17894EE59BB4694FE934F3EA1A9B1617A746D230D143464607E533CF3DA5FBF7001C513C954383459C661825801845EDE4F899B3582F02506188B4DBA74176BAA715FC856893910F6A1437F666174D1C68D1BE9FCF9F3D4DBDB9B7E460DA77B6C449F9AA202BEF6A03460451BE14D4463310A8542B461C306C689905BD7D398ACA122ECFDFBDBC9EFFF54E69C3B778E382CC91C2B4E2ECC42581DDF0373D4EF27567662A5A7D6D656C189F33CCC0716573174F5EA55BAD17F953E9F1CA765CB96098D972F5F4E6364C355989E48840AF81EE54F827102CC3BE04120AB56ADA202BE8F27136238F5F5F5228C71E6C395CBBD74213A488D8D8D8279E9D225474CEB7D1A93795800BEF23DB084B7D1A860DC75D75D223F0EE3A270A0190A063EE059B79F9902E12BEBC7465D9E8C7480262626E8DAB56B0CCA8C64CAB66DDB261A343D3D4D5CEBCBA7F5DAFE39C92EB69919FBA3071F242A2DA5D7DE7E9BBA8A8B69606444B0B129BB438325DCB871231D6676EEDC294A910DC3BE0F3CBF9231FF61FB76C1FCF73FFD898E9B0AA0ACC0F098333EB394E7C1EBD0D049B9DFB46993CCB36238E1AA6B28F3C3AC003F7CE821C17CF58F7FA403CC74250CF07A7232336187A5D795B052DC3C27F75BB76E95FD65C3B05F43368F312FFFFEE187893598FEE50F7FA0C3A6312BDE862351B96E6969113C28625F5F1F3CB9EE86203149B9722C9AD45CB3A20EDC63241223C64A5BA075589315A7DF74DE40B18FD309C6D3588BA24C00E71E5452523293E4689901ECE38F3FE63D251D1322A73DD831DD0A93190F0F00416014830887580D8B971E6DA7A100CA2B5A87B2BC6CDFB9AC7432260C0A03D6A7B217ABD2AD5CB992F4D0089D351500F39C30720D3C53CC34824EFC4186F85E373D2AD88ABD6CD9B24568C77C784081F3F166A1F9CAFAC1A050343E4B0176ECD8417BF7BE3D6F41A831C9EEB8872D128C89B2E08971B129B559A73F58FD9B6FFEC7BC70AC73C7D9F3F45CB96260B2C269A6E041A7313795A100086B23EC9596A824D14101E6C21C633ACF9898A08D4CC12BA102CFAAE667CE9C21776C2ADD3183D0D4FEB20DAB82E06F94BDDD190E53C04CF0B3C054F394D661DD93274F8AC141E618434343710901887DCAFA4174349E9989238E70999836D083070F8A8B854B4E9831D4C93AAC31EB1C8FA3DDDD1203638C19E5E7A078A3A3A3E209343309B55A23E221572172DFD1D121EECE6E214ED70AF722AF77ECF4692AE47D4699607C070BC03ACA2D6BB650F7C1071FD0CF1F5C2CF7478E1C11B76ECD8FE6A2F57DBEFEE0C409D2F83A62B1501522247FB7D039363646FFDD759C7E704FA3DC1F3A7448E62AEBB5C77C27CC037C7DF0F871D4F43872946731204F843C8D733A5DD7E80A2B261400037C60BE27C503E00B08128290F81B8A88BB4FF0E2C36C1103810067AE09FAC94FD751205045FDFD7D1C47560B619288A413940425B1312885F95DC292BC648C8431B7BABA9AC6589960793133831D1A1EA6C0E0A058ED2F7FB981F16BE95A7F3F352E5A244A97562C333357C950321B160F7F62E6BAB6B64E62F1E86810662ECF22F182301083E3CB96D226AF8FEF83AC848B984E97F1AC499B7DED84DA4B3235B32FEB1ECDEB185B672814266F8197851C638F73413EB7DC7B1F152F5DCC9885341A0C4A9C86D2E5A2271B3FD3FBB35C4FB027D44CA5809169A692C8755B5BDBF58686867A681DB405095BFFCD814997B7B078515D0DD7CA2E1A1C1A125B8944CA395F08CAC2BADB3547C5AC39DF69CE3391A8E8BA9B16D45573BCD645F1E45484317DBE200B899353977BEE0A5CA33C2B79A6271AE19ADC4F556525622160BE24667A9886933E510C274C4DCBB31BA0CDFE25129D661EFAA9BCB4D80819F0A45A827C14A771CEE513967C212BB3F2E1B9E5124A160C0653C1E1410D96AFBC00CBFB861B59AEE90E644350048D055051E4A7C68685E28A51362007F8ED6FDFA7C1C1FF92A49117A4A6A6A6B4F5E5D30B80F58238B842898F66B68F10545B5D4501B6FCC6FA85B474E9522991506DBCFCF27EC63A26D9382CD40933572DAC30A1D8AA96073E68AE2C2F138B5CD4582F78FBF6ED9364F79FDA5A693251428525C5C20F3690748E94ABAFA086CA09C2A1703AB422E4C0DBD6D7374819B8F8AE46AAA8A8A0F6F676EABD78817EF4D03A8A929F3CBE42590F984E6B67A317D68CF9539C8328392AFA6BEB1650D0D45ACDA6BDE910800688AA0F35236D4C4FEA67F7FBD5575FD1D1A33D6C29E7E9C9279F1461D8DD6EB61A190C681818A0C54C70928531C8E5DD2916C0302B11F017B16BBFC5BF5BB7867A1CC23E72A49B93DBF3F4D4534F89D239613AC57F60D633CE120E3149664280AF3F673A917340F810B878361314B910F0A08C1313BD14980C483880612841DB856E6D0EA9EF56B04237309D29A6F316F3F4387F620DB8F4E5CB97D3142B85A2137C476EB5A2B19682637D1488A6E8FEFBEF4F633A09DADE9082A05B5816F54C678A8DA48F31FFC72C2351FF237F9304D892A8662800AC19C4F7F4F4506565A5111B746D969BFBE28B2F588BE348DE65513C93AD06B77F4A1F8009FA47D4AAE5E5F4EAEBAF939F179A604B54798793534386AC360C4F64ED03CCD50B4042D7C29FBF78F451A98F5F79ED355136580894DCC95542116B6A6A28D1DD2BF7B0423031DF9A1C6BB7B2107EBE7BB760BEFCFBDF9387F9A9AC71066F06144AA18747E9E6993EB937926D2DEFDE0378BB9EE9FAF1638F096FFFF977BF230F2B1D7E9F49D067BABC7683D1412086792864587F32354B1E6A4EAE926CAE5E8055AB5422A23669F4E1B55998F17832A3F4742ABDB20EA728C9B8694CDB0465E1D6F389B96A72FBEFD91205EBEFDA2CCC4406E67C7A004669A9CDC2B37A48A3C432BE43DF67D7AE5DF4281B061B94E686556140DB6121E94D5A1684AB42574CD73F967B9413B0B03C7BD1A2A9298EEFFFFA97BF1083D1205BFD84E9A6B0A119C66476E580497454EED1025661279F388C98AB5B314D6BC13C78AF999A5CCF0875F0843B6A8C7B743F91A3585DBCFDDAEE8E7BD8BBFCFAFDF705F33ADF47CDD8AC4A49946AD632106DE6C0B5ABB4DC3C63CD87B776CC6EF63CBF3E70403007785FD366FD0F4CC557CD540A780684413C27AD60550E3CF0C0035CE205D2D6A1848187CAD9B5206EB6B5ADA18181292999C0E0C58B17A76B4EE53DD25EC46C6A284B1F65F73AC1DA2D09193A57BC9142163E8432C8259FD533A6CCF210CAF1F8E3ADBCAFA83469B069841F3BA64A8232CA1B9C37F0FEC6190B8C98E451660A1F49E08859652851601FD7AF5F17DA1E5EB1991ACBABA55D0A4CE4460A43792D5C635D30D44A672F7BAD5E08190D350E03453C179E0CA10EADEDAAAA6A1CD1A513601CACF55EE9A375DB3650A35E2EB916E8AFADAD152553B45A8795CFB8BFC082076682950F98C57C0D3CEC13BCADA8A81467A71254847AF001B2D59E7FFEF9EB9C75D743F83871C3B8DC776DB2B4A2B2D80BB7CCF9C0D45428235EA6B8A6D65C7A8ED248732C5172554F49668ACF5F4A2E2E893033140EDB7E4FC821557EE7B15A5E47B6700245A5E5948A478599611BA65106BA66EF7C4E5A7355831A1B5329AF1D157C94A2D639090E072EB7DB71212D0B8E3647F9A933DF46464753572F5DD4E0E99F78E20931AE8E8E8E9B6EE546AD09149A171E2D452DCD2B24290273D6AC59439F7D864EDC25A9189045AB33049599E6FA9CEB37D4FD11B69A96D5ABA41102CD5EBD7A359765E382094B01A60A53F3C174DA03C6D0D030737C9A56AE582E567AEAD429F1048F3597D2B582C5E28A61FD7258656936655B2F1F9AD1EF482539736F6E9635BBBBBBD95B4CD1BD2BEA68C853275E41D1992FDE5CD79362C046198BF53FFAE823510056F8945BC511755022AE831FF47A3DE9F88FC9383CF8CD6FFE4D8E83716276FAF4E974C292AB244B0B8BD7855EBBD01A45FC67A6AAD32CAC5DCA38B158301DFFD5FB00BFFAD5AB721CBC76EDDA34A6537BD411932DDA033769C104ADC8D6A15CA5A525148A18D68F7086F88B10305818A0CF2747A42A387BF66CBA2D9BADFD9C818D362E62307E47E7CF0C13C04599595464B85EAC8970F6E5975F726818A67E3D4817A2C67B16B9301D3F2D9871540866C8C1EF5060BFCF4F63CCE7B8742243526283BF9274E24BB83EEB482612192E04C99771346B246B8F3CF2C8ACE3E05C2521AC6A2933F6A98D1BA151F4CEFEFD7482CBA5000B029687FC021BB3BA2E242AB07A9558B7B5B5CD2AC9E63A0E5EC689E3D3F7DE2B987B3B3AE838C7C72913537201A655B760621F721C3CDE23F7A8C9731D07DBB141C356C67D7CF366C17CBBBD9D0EB002401810287229E3DC630614DF55F957120D19A5E7F6EDDB338E83739580AAC4DECE983FB8EF3EC17CFD9D77A8D3F4CA301618705C7216A31C45FC0746575797283EDE0812A660F36A4892630B24274E9C60E5308E83E77B1A883F307211DE206282DD663DAF8E66672A8FCCD875ECD8B18CE3E0F99CCCE1CFC7162F982C78B7591B8309608A53C06C66B76C1C07F7E4751AE85422A2BFD1D4D82874EA8CA9DC3114C0E9353A7836390E3EDE3BAF1348EB1EC0C326F656A0D37A9AA86A7F957FA9C41A4A688635DD8D1B280034490DFE7A9602A02BB6776FFBBC05A106183FC0564D381F47E6CC1B7199D63153B36762A215FCE69BFF9915732E45444E81974EC86C8A000F0C8297733A82C65B38F03C0D398E83E7EA0BE0C06784DD2D99E59F660A3EDD7BB02939DE72724FCF9CBEAACA225F3CA3D73F4D23EC05141F74B3FC5359BFB401D8D53DF3CC33423BE6E3153FA6D5230A80388CA114A0C05F92D10740E6884E9CFAAAB3B35318A5E271B6F8648D9197797471F2E1C571337B8029160EDCB0AAEDEDE25747D0EA381847D06805DB8F66B36162CDAB7C7D82310BD08E35190BCD87C20BA66925EA0FEB83B61F6EAA4D7B3DF0459DCCE57A1D4C5D7730C6C17DFB24EF905A9B695547B3469329F3854E94A3273FFB8476B654CBFD871F7E987E6B291B6FEDD7EFF1DA07DE7BCF380E86F2984AA7FA15BAA59251CFA45F5481CB9723438B121414A9B8A109B3D01041B2F2B39F6DE0BAB25AEA65C44AB8527BB69DAD676D1D7EFEADD4BC46C60BC603276936A0B00760A2FDBC67CF160A04EA2407B16266C3C8865B88F70F2CBF815660EA1E4F46D307D50E3535D3268FD1A3C01B3B709BF9E0D97FC77D99E55A0E6AD0E1F4185D55D4FC0883CD2B5BA86CE50ADAE4350C02CAAF30E78B5BCCD795B679D3AC14F000C8A9A05CAAFDCEFB4969EBD7AF3FC54CD740BC624A717945A4BA7159493216F57FA37F3B9AC7DBD59AE64A686EF73463FAE6F5FAF5D77C855B9ED25D71CDE58E2562617FFEABE9DF881FC0E4DC209698B6D0A97D3BF464EDC030DEF08D6B65A34303D36479F3883D70EC7F0108698FD5A38C52720000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (22,1,'Disk_array_3D_(24)',0x89504E470D0A1A0A0000000D4948445200000018000000060806000000D9AB5E130000000473424954080808087C086488000000097048597300000298000002980136D347DF0000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A0000018E49444154289185904F8A135118C47FDFFBD7AF9BF993C45132C8B81AD45518F00CA22E0457D979214FE201240B5D78830105575E4026A3E2A4EDA4DFEBEFB50B276EAD4D4155511425E338B2C772B99C596B9F02CF4B29CF44E474EFFF87BF96523E88C8FBDD6EF771B55ADDEC3B25C6F8E6C5CB57AFEB78745C551253CE92FA1D590BD3A313C42A43CEF4BB1D2967BC01EB1CC607D2AD56D70DDAB7D48753F2308C7DB7DDB65D7BF3E5F3A7B7F6E2E2E2DDE3470F8F839BFA935994EEE777CE53CFA6AA38BB7FCE6C12299A395D5FD109CC4E2654DEFF9D77BDE66EEA397C7046D95C7330B943D76EE46C7DE5AF8483F97CFEC42C160B5155C01242205615C55A4A51721EF0DE1342C055150561181401BCF7D81028C6A0AA08E3BFAC840A80B66D314DD38CC330607DE277D7313ACF3711C4188C516E362D2965D6CE63EA48DF6772B9FDBF69F8E51C591595C0A08A738E1F7524C40820E6F2F2B2F52130AA10BCA7E4CC3D6B1104303475C458C3B42863DF136385B3165585ED960320788FB302E3484A89E394D03CA0A5E81FC739C561226564990000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (23,1,'Disk_array_3D_(48)',0x89504E470D0A1A0A0000000D49484452000000300000000C080600000024BA3E510000000473424954080808087C0864880000000970485973000005310000053101B7ED28520000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A0000053E494441544889AD554B6F135714FEE6E199B13DB6E347E247E224240DE1212A955208AFB41554455D7483CAB28BAECA4FA01B547E032BFE45B7A08A765321A42054A9905425C1896DECE03876E2C41E8F67A6DFBD0EA88B2051B5231DCDBD77CE39F79CEF7CE78C120401DEE7B97EFD7ADE75DD2FB9BC46F982927AF3ED9F3E0EF3F73EDF29CF154579C0F77DC7717E7DF8F061E77DE252DE95C08D1B378C582C76914EAF514704FDE16101FC1FC11FB27679EF6FDC3FE0FAFEDCDCDCD2EDDBB7FD4313A06807890C6EDDBA35E3FBFE351134CF3EE799FDAECBFEEDFE3F26D7A4FC2C12627CF7EFDEBD5B7A9B80699AAB83C12073FED265FBB3C545A5B1E54055F6605926FA4E1F4EBF8F3E85F4916B3A80E70738F7C9193C7BBE81E4888E9011A2AE43BDA18ED4EDF5A8E723164FA0555F8761A7904AA524620EF55CA947FFB4133650554C158BA8BC58463495A36E52DEE5B8435D1183B843F86EEDEEFA7F2D3FEF66B3D9BA5A2C1633535353B15432A9244712A8961BB87CE922E68F1EC5D4D42472D93124BC017E9C3F8A50ED15745541D8322074374A0D2C9C3B8BB9D9594CF2F2B1D10C8A0317DFE7B270AA15D8913032C9044ECC4EC3E7F911FA4B33303B6241D7147CD0DDC7B7DC57CB1BB042218CA653288E266184344C8C17E41D11D3808A00E719C3D77614D54A19A94442BD72E54AF4C2850B797D6666466617305BCBB2303D9DC3A3478F64F9243A0259CABDE565F4A35184348DC804B06D1BC5621A4F9E3C19227EA0EB537EAA54A08F8C8095854B79F9B20C239AC0DADADA5B3D217BB47B5DABC18EC5E8D39367E5D74D247351944A25B9EFB192E2FD9862753AF25E6FE061696909131313039DE8636F6F0FEDCE1E3A7CF75D1FA6A950CC0392B1E80CB8D5EB42B7C2A400F7818F9D9D5D0C3C452663327145E8515C02D1E1651AED05837DCF87467A884727CA2AD72A4150F81614D9F73C4423119AAAF4E741A30F917888BAE24CEAAB1A443BF458C5307541FBE13985816A024193A5D2F9A152AEE3D3C5459C387E1CA23A857C1E498672EFEA55E8CD2D782CA52E1D2878556DE012E976FCD831566E1AF95C0ED3FCF6C3E9D3E86F6E42D77526676276322FAB344B7F6363A4643C0E8B099EA0EECDF979D4580591A448A4400A093B01EC2829C94908833D76351EC337A4E966BD0E43577966F0FBA8A6DCB97367777575D56E34B771F6CCC728AD37885517268D860DECA2CF32EA7D071D22A412194D0B6161E12C1E3FFE03A9A42993719C61A30DA8AB12A936AB106265D2990C6AA5355228CE868E497407EEE0806E3D285C3769176752939345ACAE3C4322934584C988E615FA4237A0DF80D469D3778454DE20C5161616BA3ACB186C6F6FB364869C12B55A9FC6862CAFA485F8C9F41514C9BD173B3BA49125A9C1A6273D4C7232CAAA78073F231FAA03E478C13E2F8F84C344358AA8A5C3D75489BA4BA445BF69DC1BF49F61A337D8CC21A26ED3CE543C39A90C41A183512AA812A66E982CD966D282017556E2E9D3A79E2ACA57AD56258A02C1F5F50A4E9D3A85594E1636892C799206DF712A294C5450417052A0B2B9B98593274F4AAABDD11DE7C55F65B3E8351A1200E1B758C849BBF1F171A4D369490B31308EF0FBE704ADD56AB12714C9FBFC685A52A850284840A3222926FE11C1389748A0DD6ECBFB678674D4B4442271736565C51DCB4F589CAB30CC10A7C60BECB2E3B7E95834769783EC97661303A2291A352036598ED781EF62AB51439B0DDDDA69A3B3BF8F1D36DE126D14EA7A444F6330D55A1D513B8E9EE3CAB9DE276D02367F9355FF9DD41053480B9912F5579C4291585CEA88FF85686CF19419F49FDCDB764C542468345EF70878F76F6265D90C03A2C2520000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (24,1,'Disk_array_3D_(64)',0x89504E470D0A1A0A0000000D4948445200000040000000100806000000A6E779290000000473424954080808087C0864880000000970485973000006EC000006EC011E7538350000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000007D54944415458C3CD564B6F14D9193D555DD5EF6E77BBFD1AF7D8A63D1690F070060424AC4013C646C922DB2C461A468A50B28C94ACD820651B947FC0229A153B56D10488128949C691F10C5826360663FC6CDB6DBB1FEE47757555CE77ABDBD8D89308924869E9EA5655DFEF7DBEF35DCD755DBCCBEFE6CD9BFAD8D8D8393E8EEABA3E4A3DE7F9ACBFA9EFDBF41FF6FD2DCEAEF3DB3DEE5F341A8D3FDEBF7F7F09EFF8D3DE2601D7AE5DEBA9D7EB239AA68D3A8E73859F52FFCEF9C3FEFB4F82FF967353920C59B55AEDCF77EFDE2DFF571270FDFA75D3E7F35D9480A5D25CC387C9FC8FAAFCAE49B1B81E4A32F8FD8BDBB76F4FB8FF22484D607BF6EC59DFF8F87883E79C1B376E0CB0BAA31234DF3FE2FFB1FF9740DF02117BBF6F48BBB04D15426EDDBAB5AF5DB45028F40D619D0945A2F9EFFFE0623A93C968C9441AD9EC730483619522F6D9FE657BBBDDB0D55E28953194E9477B2A85EC4A159AAF08EADD77BE75D669B4641BA8556B080403F0691AEAE52D18E124E26D7165D36938076D3ACE6B7DAE83BEDE5ECCBD788EDE8E245C7F18E148F80D5F1DEAB1D5EEBDDB28EEEC384FBEFE2617F01B7A3C1E7FA947A3D1742A958A5158EFEDE9D68E7E90413C9A8255ADA03D11433C12423860C2EFD3C8700DB8B685E3E522CEB936F29B1BCC4E1D91901F94C5B9331FE2ABBFCDE0485F1A895804D15000014387A1BBD01C1BD1C23646F83D95DFC2DACA123AE978B22D8663478760D64A70A92B60F8A04BA0560D56A58C4AA988C2D626BE532EE17B5615AFE69EA3B09D43C83430403B215347EED5347D8DD306135CB7945CB95840717B1366761557180316E631F77C16C9784C4F2493C1D3A74FA77A7A7A068D743A0DF6394AE58A8204E18FA5A52CFC7E3FCE9C39839D9D1D944A25B5CB2A168B38BBB5853AABD6C8666118061C564451F3FABADA4F9C3801CBB20EC8C66C1B3F1A1AC2F4CB970AA2BAA6A9F3814000897814E5601043FCBF755E56B95C5636CF87C3280A82E89FF88BA6EC602683D9AF570F9593BD9F323FA13F5F4E4D7936751D7D7DEFEB03030320F27DDAE8E8E8068348AD66D7978F1D3BDA7BFAD44974750DE0E1C37BCA314DE059AFC3A6F3B2CBA21732EF50A572515AB56C7C387C0A172E5CC0E79FFF01B19885301DF66464594A4EE0AF13DF36DF776A3544A2510403419E0DE1C5D463B4F7F62B9BA2B365AB4E1DA24793E0F95EE6B304118EB6E1D489E37870FF1E067B3BE106E36CD9E0AEAFB2A4080E77F1B7C6E70A57B2BD1D534FFF51884723F164329933BABBBB95C202B32CC25BF93C7C4601422141F671381486A594D69542CBF20CD4AA55F8F8CDEBCD3AAA0C68796505A619222A1C65C873E24D5926A2AA81A9A5BD06CF3650AE54E12794A55743B4179040E4FCAEDDBA4AA2EC11DB4B8CA6B92A2883ADE0E7B20D136C652553B7F6CA4912EBD0C9373E9E176E94A24ACC6A75757581B3938EFB55D5DA1309ACAE6CC3E2B781FE7E44A311262108935017C80AA95C647F5D62BF6DACAD916EE934892C1A89D01113E3E333181E1E463C16A35C0801BFE9419D963B3673F8ACA3033D9B9B585D5D4182FD1FA4EC91817EA422A67037128936A6C6558455270F94A5ED0A797CCC647E4435AFE6E751AD54943F6DF138C93783ECC21C863E18548109CA2459D20225F247E7C63A7E2171900B16171798E0E0EE949065C4E8A8F4556B284A56020173970FF62E1190DD6E3EB7DE75E949FE84F95B72ADFFF63D4BBBD8CD69D0FCAE359DA9B15A5A503B28D3647E9B01DB7B7C697140A5E271578BF9F7CAB56CDACDE9A346A3F8CDEFC2199C027EDFC8C8C8AFC901E185570B45C30CC41C5634160B22975B433E5F203C2B282A22232313F602AF7932F52C0311D4384442DD1662D23D72722B585A9E5746A5ADA4820271816B9E7213D4B5E93354EF576A964AC02611B15528C30C86141AA5AD04CAB23BF45912FC8C0FB384B2204DA7BCB489D89E7B398FF6EEF790DBCEAB73D23AC21B6EB3A24572CA57D45F525C1351455E5D5BABF5A5D3A49B80A54B8F085CCA341CE51C7D9FB3B523D5A7C8C8343DD8ABDB922A9554C681C5207C342241CBB4F013E61DECBFCC9123AC4858415FF3AE8CCDAC534E12451B0E6D99AA78AEB21762D029F245C0AD79320A114EF3BE40B430685BF860876392C5107F4597F823720EC772C8A934DBB3B17BD7B0853FD80A55CA596C050811B3A50C264F744C4C4C607272B26EC888910A94B84B40D2474F9ECC2A45972F5F3E740CFE90E72DB6CAEF5EBC50C46330F3527D1983D3D32FF1C9279F1E3A06E3ECDF9F9D3F8FDF3E7880BF140AE8ECEC54728A8796A32811E69CCF074699D8FC7932890293F91B3ADECEC07DAA55039C3EC31C837FC5D59FFEF8809CAC01FAF1CBAB57F1AB3B77F077BE73F6F35EA26BBD2CB4C46D88D359CEF302D95F6A6D92C88E1FEFC6D8D8341E3D7AA402A912FAB20B3CE5F94B1A08F35C6B44FA838637930707D5FEF8F1E35D3991693D0719C89DA74FB1D1E40087B06641541FAFAC6F22D81DC7B367CF7665F6CAFE89B246F3FA2AC5D19A1C30C9F92EB4363333B3EB9F37713CF90675FF9E71E4640C37B9E5E4C993BE18C99D13D0AF5DBA746972696929BCBE91DBB97CE5E3EF767574B2223D58595E909E52765A5749A779BD6C28E75F5F3949606EBAF73D8D15758B45B653B9C0B60868CEBE73ADE7D7575C8E4957A6804A64ADC2AB6C4C5A4A934650671CCFA64784CE9E6F245ED370BA521DFAE2E2A2DBD5D90EB956F98908EF0A2DE4D778C3E786B22FDD383333BDE6D8F510B9AFF44F6BD5282037CD73570000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (25,1,'Disk_array_3D_(96)',0x89504E470D0A1A0A0000000D494844520000006000000018080600000005E9F8940000000473424954080808087C086488000000097048597300000A6100000A6101FCCC4A250000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00000D224944415468DEE559596C5CD519FEEF329BB7786CC7B1E32CB6639B903DA10941590802140414A4AA2A45A4CF3CA03E21DE7800893E50F5A51201A52A9578404195401555687042C8AE40C0C106123B5E623BDEE338DEED19CFCCEDF79D3BE7FADA9D4953200A52AF747CCEDC7BCE77FEFDFFCFB1E1388EDCCDE7A9A79EDA883DF6A33D819F7BD0828BE7DC090DB79BF313AFFF16ADDE308C63535353A7CF9F3F3F7337E563FCD40A78E18517A2F178FCB1B4C029F88A9F9170FF57EC18E69C417F2C954AD57FF2C9278DCE4F2CB01FAD80D75F7FDDECE8E8F8455AE06C3BD0AC7B2DDCBBA49C2178C6717CAB374DF3D8E1C387FBEE89025E7AE9A53286956432F904087A1CAF8AEF85706F37EFC7AEBF43ECEFE91D5448381C3E75E8D0A1E9BBA280175F7C31505050B00B6EA8AC1C6B3671EDCF5138F7707D1CED1C95C1FCF1CE3BEF34DC49B8520AA8ADAD0D2512094FA09D9D9DB1575F7DB592C20618E3F8A318E7FD1F0BF787AC1F4E87AB63B66DD7BFF9E69B3D1915909797578FA4B90D931DB665CB2BC25555D539A170D88AC5E3924C06C5B2E2004D8961983F28CEA5528E244054416E4412734981B215AE69C65C3732163A9366CDFFDAC8E0708964422C3B2039E190C46231094842E28E254E0AB45A664627BDED9BF430991209D8A6040301851B3292C8C6486BE0C3308DF989467654BEF2BF9DC3D375AD23317C636832271249442211090402976C086313045F8C0641A5C40C469C3595AB8CF5EBD7CBB66DDBE4C2851E696B3B2928C9A4A4A444388F02748598FC8F31BF43E3323939A97A2857AD6BEBE894FB6B36C8EAD5AB65FFFEFDF2C61B7F97DCDC5E999999916834AAF6D618FE1E74AB9E58487C0A97DFC8808B3F275BB66C96D6D65669BE7846CA6A374A4E4E3E99936030981153D3CC3D496F5C195A52C6C7C7A5B0B05082915C292F2992B56BD7CA071F7C20B54B44CCC2D50A1306EBC9806B32E16B5C2D03E2969595054A97950586870623C4C9CDCD259E6973434EA2DB9059D334D2D66748737333847F8B21490E1C3820B3B3B38A585A057B7FE3BB19CCFFD5CA950274F9B4AB4BBE04211515152E413E6BA0B01A1A2ECB430FE5CABE7DFBB2E2E93E1FB87BABABA57568481A6EDD9216D049E14C4D4F2B37B12C8B0C4A4EDD4A69E81F909D3B77CAD2A54B3D2CF2B518978A7F68624236D4D448C377DFC93FC01BDFAD5AB54A627309858BC42A2BC14F65785C4E770FC833CF3CA3849C894EDD6640E3EF4A4B25525C2C9F7EF1859CC2DE94654E4E8E8C4DCEC8F2E5CB65DDBA75EA775F5F9FAB006E44CD112CE9131535D7DEDE0F06455929BFB35111FE9E8D424841914F6EDE2C307939DED0E0C549D5FBA2D7B56BD7B05F4A5974515151465C5A097BE216E7E7CB93F0C6935877E9DCB9794CB634B9A42F7F691114D027A1504850342CC0E55E862FA651903550DA2F1F7C50AEF7F68AD3D7A7BEBB34CFCFA3B0A4F3A21A53561A8F464BDA88ABB19511E3DDE31B36485155959CA20CE2718F5E1AF78E1D3BA4B2B25279279410B4972C59A2DC8A56C23033369BF036DFB46993747599D2D272594E9C38213A4CE9B0E0EF55F841FBE3D9B312407818F20BDF17C389F1C8238FC8C183671533C425233A2CF8439AC61F035D7F3A754A26C0F82DECBF10D77D6EDCB8214DDFB440D1F9720B5E323C3CEC097A71E86123F649BC6B39724406305F870EE2FA158593B05485585DDAF21D3C85C2E7BC4CF4AA3170FF7CE182049B9AE47A3CEEE1E9FEF8F1E3CA58D8C0F7AC4D4BA16609CC091373E32A699289919111B82463ED7A15CFE88E14D66266BC06B76B4D1363AC5923D55A398A3947114E410D0C0CC8B3CF6E8487F5AA776565E55893505E9148509949B7D7FB00B78563B86D3EBC214CD7479B46C8B0918469383DB06223372AB52BAB5528205F342C85319750F82E9D496F7C136D88DFB17FA50A2D3197B7A42BE081C14131C1EF54B858EA9697C934425E141E4BEBF504AF7957FBB8345F617E21EFAB2B654D2A09D9BAB87CB4C768AF511E400590090ACB1A9F96098C7BFBFAD14F6352898A89D333B372BDA70F85404A098D3DAB0D0AD6EDE7DF6B61BB1685E48AB50EDC6F746C4CC6C627E43C2C24910CC8F46C5C6C2B21D73ABBD4BCC5EB35BEB7A77E97FE1D430246B923C3376FCA18B00B429612400C7CD8D8730A0A5A88E55A78CA4F2FE9272F100E2B2A621BA62DB3F0CEA1C1213717988E328E18046B817E85E1685CC7E333E5A38DB8AA8C43E5184295C6F934160ADDAF04E5015402E3269540E75B929F271BD6AF93FBEEBB4F8E1CB9226D575B54528BCD4E7B995F572DFE710A4417605C000B198510C6B029ADB0385AA8ACA7086EC7F8C7C4FBDC737F4095852A6636E9E60F8D91A1175A1EE684D086208431609797974B183473CE6A244E968CDF9FFB54264763528D843D367A6B81B0336187406F2130E9313DF8CD24CC2419CEC9937C14129B366D94CB9771D83562D23E38AE681F1F1BF52A283F9E270FD056803E07C21D05DE0DD0C0F98C1E991E9BE510ADA7BBBB5B09CB32E7B3E5D5AB5791A9DD58FAFCF3CF674DC2BA9F44DC7B0B252693F0CB6FBFCD8B13E5AEFE984AA15CBA7449456F56024F3FFD74D6C4AEC74B41C72BC065127E0F317904CCB20C9D8195EB87C97CFBFDD5F279EB88AC58B1C2AD6616E1F81B0DE2B750DAAF1F7D54DEFEE823F92BC22285489A1C5FC9B6810975BC5DDA100D76EFDEAD8499094FEF33D5DF2F7F7BF86195845F3E78508E4109E499854E2C31B5C0289402B8212D804252CDA7007FE5C0857AB1BF5FDCFC87297F1564FA94C00A22E54BA6999A1F3FFB29D4597040F31273BA5848F9C28E1FD77BBF08737E7DE613AFC6CD8AB798569FA0FDEBE9A19B512DB6B5B5056C5A286B75F63D3D3D0B04F5204AB4D6D673489622EFBFFFBE9AC33C91CDA51D7CFBCDC71F231687E406AC2B9C766F8637F15541B424D3FCA74AEC3CE850D1D9C20F7B13D6D5082B0D006F10B8BC6AA5C539BE328845C3E98B9725182D975E24E48E8E0E4F40FE50E9FFFD17D076F8DD77158D9A3686A108A2827E9AE0D5E5F61446F972E6CC19AF0ACC1A32E121078E1E951C600D0397C6A6BD83C6A22B307D7E305E7BEDB50178C1328620D6E74363934E59D1122314712B8EFCBC5C3037A6625F80824C272DDA8FA313B01A8B3716C5B83B4F74C2825F17151628D7585EB15C795A2F146EB0963614AC8BE7A42D4CEFA37EBBD85EF24B9F01D4893827570A40633F4288655B122D8CA21A89C358C2D84A2759C75BEF62A4E6F1453C3EF477F219005608063788444C39E4E6E6493C362BC1B02B03C5739AAE793C97363F1FA93426EDC4312DF9F2FC5975C3C0121FF2BE69EB939D8E6B042C45C2E595010F21CDCD384E9B4D120EDA2A093196E9BA5FF7996A62C6587545188F2BCFE9EEED93952B2A54FDBB67CF1EF9F0C3AF6559694C591D5D5297B67ECCC5E70DBE9B51954DCA3B381A60AAAA72350A841919EDBA2C36728185FD4A4A8AD45E7EAC6CB5BBFFB4AC0200EFAD900F994BBA71A22FB726C5C8AB41DE09CBB265CB549EC886EBA797B44ADA5B6D1E2CE3EE1E5DC04CEF99B43920431418438261B9FF31A4D6A994C1C111B972A549B66EDD2A3751EE653D03B032C0E1673BAF36A0A46FE1515740880E6F56FA8A83551743CE679F5D94EDDB43EA9E88A12F1B265B01CE0E6B316F12F434E16CD28B77BC8AD0A5208D82FB98C31DAA7060E26445477E162B500B897CAF85602A606CFD38059F82B02830567E8665AB8B47D2C610120D3B72B1B5551E78E001191D1D5587BC4C774BAA61CFDD505E0861ECDBEBD7A5291DDEEAEAEA249E743C453364F2BADA9E4967695E3B4C4C4C486E618917FF2898C6C61E085094D5DEAE02623F896AEA15CCD355D07C2E4A2D48965F7DF595AAABA998BD7BF766AC7CFC7D29FA97717A6615D4892AA8D77F1591C62D2D2D95929A55D2F14D8FAA8858F665AB547415F430F6D755D0E9D9595FC1309F4777EDDA25C9F60B184DA988A0EF7FB255585368BFDFB9D3AD82DE7A4B1A7D27615E45301FB2D4A517C1A04D5BDF2EB214A512F2A2F30AE0C4BA3A473A3B9BD509D67F41A6DDD6FF2E06411FC571DD8105C47CD95F2738FD6CD9B2057F2F7827E3FF7619674358471B1BA50D9637B7A8D2D0A8B4CC81EE7EF73A1956C9DFDADA32E1B3B563CEBFBEFE5A86D1FBAB32C307DC887D6B02AE15D3406F7721A96482BD4F36374B047CCDA4AF223C5CC88037C18C0054446D6D6DC42628BD802E41A22BAA2CAF7AA09B8F8E5A1208D44A7D7DBDBA71F4DFAF2CBE864D22FCBC078506B1F1282CB20C1B91286ADB7F1DCA5CF2D8631B21A0EB72FAF46975C8CB7667C3368258DE0D3A2DE04CC0BBA2BC8680524C860A71AF0DFA517F5F6AEF979A0D5B65686808A173503199E9CA588F4F20BC7C0EAF8A238415A018A08018BAA2E1882A1638664595CAB3900F2AA5A1A1419D3F386F01DFFE31B00E214C1A90E704C2501164401C756119087A06A2E930506A7E838F41123D323262D4AEDF9A1F2DCC2B3271C49F4B261CCF70D5CD63A67FC818D9FE25E17D56B7842989E74582A15432E9F0AE65E10223E3FAECFFF334D2A12DE99881603268990130E3A43C6B4B1938503A77F02F988C1F50F8266DC1013D601989B984E3FBC712700D673180713B30DFC78989C9C4D5EF9B60DB29E55238044FFF1B7E86C6BFCEEE897A0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (26,1,'Firewall_(128)',0x89504E470D0A1A0A0000000D4948445200000080000000600806000000D57A7A490000000473424954080808087C086488000000097048597300000DD700000DD70142289B780000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A0000351D4944415478DAED7D09945C6779E5F7B65ABBBAABBBD5AB56CB9225599BE50563E34DD8181B830D780984254372806C0472CE4C801CE624B3713287335B92C984330B64920C13E684B01A07B398252CB665E345963759B2B574ABD5EABDAADEFECFBD7FBDD77A5D5DDD1660036EA9CE79A7AA6B79EFD5FFDDEFDEFB7DFFFFAA0DA594BCD26F47EF5A5B5CF3D9230D3977FB896FE62BFE1B18863158ABFDC1B9509EA500886EEF79AD19C66F21105E0E709D03C02F79F61B73D12754B7BC20AD5A8697DCF714D7C95BBAAB3FCDAE4FDED5DF11DC51FDE0C43B7B3BCF01E097F4F6FFEE14D33868EC9258EE5EF4E21F8B611BCEAD51A0F6C99D3D5DCBEEE82EC38A6EEDB941DE6F38E9531D5154B526E4435DE3EABFC8DEF30AE700B0C4C0B9BFD3BDE1D9376CCEFF224EFE4D4EC7E5C6B858D653CED717BDF8472AB6A3CECF185346391E8D0FCA72E75818E81537FECF33939D95F4A9A2A566E3BC9C528FC5BF16EE9CB8FA1C00DADCE6C2C15EC78B3F3E506874FC224EDE99B1FE98BC3FB7DA9D96BD869D3E3FFBF6CE55FAC1FF3E3611AF31DFA59E94DEA076F269D9BBD76EB71F2F42C21F918D8E3845F95786E9BDBFBA57E656B9618FFA5E5413233A62FC7782FD1C001664FFDA62A150FFA8CC19FD954A1BF384D7F9E0A715F713EF32CA2FC63EF10BC69581AD94D559BEDE3FD5FB5ED98C2C078DE7A7ACFB74C0E00BECFE9EEF845B8CC3D18FD5BA46F1D1DF59B49F4B8C921AF5FE201855452FCAD97270A0184FA80FF97D231F887BECBF09602D821FA97575D57B897EFF877BBABCF7756EC902EEAC04801B45FDC651F3EDB16F8C89E9D416BCF8CF36E48378E6F7BC1BBBDE25B7AE2EBDA8D34EB754DBEF12B36BBAEBEBEEAF57AE5CCA897BC5CE8F8547E372682B31EDF87D613DFEF5C6E6998B8F4EAEB1837DF18572FEC02A1DA48989BCD5977F7780BD44C7A27F2B6F30E6A5600A067136DF79C87B207A7F18814BC2D8142732E3205EED3D6FBCC73961441A0073CA084782AF4EBF637D772D083FE03D25DF70FB06D69ED500884D35101D54FDB1A8C7E55387DC052FE2EFB054BC4F1D519FF407E73E2677EDC82DB9A33BB73B8DF774FE8DDCB966DE68DDF95915C50142B1CFFABABC69B8D8EE63E1F3F2AB7EA024546258865C1B06F10EA3D75FE71402330C94E189BF2BB8BD6BA7BF39FEDC9C788F8545A5FCC371C7DC40D76FA6FBA8C22548B7AAE920632B345C25E5AA1F174C333828DBD490FA4A8433E76BFE41D56D45C160F88C7151E361B53AB4BC7F715603C0CC35DE1ED41478D6F9A776AF178B271E5217185FF5BE241F758B473EB0A48616C69D70BFDCC28FE8BF6FE8EAD500ABC4F7FB87E2E25C79EEC34D5658F8F9605AD63230D6065B2CCF3083D9A810C6B9C7AD20EA0A44493C17AC0F5E908BD40BF6F58557A9BF502543053102FD94FA439C4B13905F38396B56CC3F527030B9AB2C55182CD465F4D950C572D09D8A0DE7B835E86C713400BCD9D808DDDAAF4493AA83FB99FB7EF83EFFF6EE8BCE4A00903AA313EA96B0AC549433F3F21B1D03344FF2FED5A5DAAF547F77F22E945D9F5441D12AFC66DC236EE36BF28986EAB97411F5C394CD3E571FF69E539D12B9793E3755521F9A7B5307C8DBF896CEBC47E4C382FDDD54EAFC8DB9770FF6E33D263FEC1F898B2101306849FD6428D655C6C18EBF3DB1BFA8826B3533F8E6A0FB58F43EEF7824C6FEFCDBAD7ECBD4993EAD2AD23D3CAFDF66607D4BFA0DB7F006316A97292D37CE85C6FE0847F1676329AC01C0AA66130423F1DB55D9F479DCC6786C4DCF849F7DA5F7097E2A00947B8CADFE61B521720C9AF0DBA78F597F553BDFD9E94E4603FE33F1BF29C7CE7AFDC6CF8D8E1917CA9FF873B1E1CF84FF4703E3749D6ECD74EFFB5FEE887A2C7063A39637E3E48CF60433D6C76CBFBA2FC4D9358E44F9292FFA1FC158FC7B8D03F527A6DE5CF9F4CC7BCBEFF5C0D6D26D8A5930245E1FCDE42E377F7B9F188E5F8B7F358FAC8D8CB8379C515B032BA81B977813850D8E181D86402A6C69443AD0D18C7DB359B08A7E4DE5651334E7AD635D52C61B2B32600E19AA3E15E9012A9DEF0883EE8EC41B9C55864530F0EFA9FBE3CD56AFFF91B30B00EF310AB517C2FFE08EC64E585726C6E1ADC171B93CB8B7F00E335615F770DCE557BDDD47EF5C5BAC7FB47A49AE647D2ACA29A93D146F448C37CEEFE7B818FE49F5BAC6689C8F4C08B95934E9DA91A165F7487C95EC9EBE3E886321DDBACFC6B72ACBB0E79E887A677EA0DEE93D677E1035BA74ECC88B896F903FDFFC54FD7BF167767CB2F269ECEFB2E25A4BCA5B6DCF9F9052E8AAD81B8F9F100848D7F69C043E1EC1E8F993C68ED897B5B235FCDDCA4539838D4455B236D7AE197D0DF67985B5511AAE0766C1FE0B83B694D6430A3CC9395563739C6B7A86C08F65E2DEF88353B777AF3F7B00303DD0E99F48F4B7C7948265ACF246A32E99369F57B6E3860858ACE26D7D7BE6DE6655E47B56DEBE5EBA8DD0ABC7529B88FF5CDE3DD82CEF201120E3FB221B05C02A538CED339A968DAA1AAF9F8C73B9E7739F34BB2D3DD07387A3DCF40FA30B7416CE44C6E40FC30BF9D8E934712C1115A9D787C78D1EF570FE8EC61119E093F18471993FABEC70DA28CC7D43AEC4D1A4D86F8BB3DA14F72353EF8D63F3C3B3BFDF316EBC60FD7667C59678DC92B8A13EE51E92FFA626CDDD854EA718F94673FF3428FD96F88D587253F6E6EAD682A4C671E6B9A814CE583B562E00B456F777A49D34D796B25F5703211EE7872D0644A2825279DFFA82590D8A1867236AC870FDB1E886E001ABA08AF19F9A6553D3A67B34A6699AAFEFFB22F541A32AAAFBAD39296E6A6800945E653C1544B1B8C763A3EBC2BC84187E9F2C00190941DC0C3C59813A0FB3A637E7706E6B2F82A2468D5C7D3A922030253A625CE7CEC666A164DBEE9832A3064EAC4349E7AFA3CCEB5277041FEAFACB93F7F97F577F26B65580AF79D416D530FBD46AB559956229C28454D7404A107D13C7CD038C2E323E443D595D9F13A76ACD83C0B3C36D2B1600F5B7AD1A1A351B9F9E0A4E5ECEBFAD1ED509ADCF29F8E88E01476A41A04A97DAFFB178F7A9A3B3338DBB022396D893EEDAE1F892FA6C882A4D8A5D1B730655D79D89F38D5A804F264D94E1DA8CD12D9EB1DD176FADD22EDFEA3662A7DF94B9E958F25DA694D737F59703CDC7A9FE7A412CF5F130690A20537137F6B4AB5F5374FBC70C9380A9E01C1BB3308200927B6543CC6DD1847CBCE38F8E7EDFBD7B762CB28F1E688867011C27A140086EEE9A50E2F303318A4A3A7A2C1D7C5A43AB00962A99E2BB4DAB32B80B2C807D72CB79C6FE150B00C38ACDD08F37BA5DD147B8F0C2DB58BB2E88443A37414F4B9194B69BDF3456A16CFF4F5DEFA81F93B70CDC5084663A737E5DFABD28AE85DDE1FDF94143BA60A4BC3928792E67BB9332ACD96463E5528878C1C080876BBDF2E1BDE715A23963B3B3D9A8C760013AB5551716C4860B67603BD739F359C7BF278EF8CD9E00291F813979D817063D5F010320752BC30E0268480DF2135CE74A749927C6D78AD5B107C32F4AA7EAACECB1A0FB4AA26BEB120D83C90857FC1D4AD44C7BF6A7F87A1FFE86EE970008BFDE0440A5C796C12D38B71EC3ABACCA3FB97201D088E1A365953F1DAF5F83BF6B078D3D160A9F3E04460A1830C374A71F501F0C4FD89FA81F8B2FA06282F8F3DE4C548E63E54C3D1C6E155764008305D650622B1802394F503EC5AEF53F07B616253E052D0FCD7F9E3BEFE4BBCC51EBCAFC80E9C43A679179F0085DEB723AE8F90E533A864F8360FC28028EC007D0E691E7413BE7E524CFACB598B2900600C1F594F4DE82BF6F6D88755F410A4FE54DF72430FAAF41E7384A61270074B127E1F5759C1F80045251FDE42D3019FE6E5CE849B439D078E8E873C4AD477A5C6C8063ED650519BE26FFED42251A5F990040353E3612FED9A9FDE1DA629F798FC851DF1F559B2467B03D26D1A4855ACEB8B9BB2F9F778E58433323A165B918F939F3FAC0336CDB304BB52755B73B8181C591065FEB78E187273E3EF3A4EC7F61DAFD5AF0B87181C5283F076484C63BCD4B823F53AEB1AE1AE71CC339DD01E6C0073C594461CD4E00C64ABA736089438FD4E5890766A5EF1D001ECEABA3AFA92E761E06B56489714128DD7F8C4F3F8732F080A3E99C8197F5C8783047F7C69C367A6107FE660309F1A507088742F172780E0008CF03D0FA43298089BC469C5823D120EBBCCC28C9ACA1561E00DE6F38CF97CA5F1E79C87B93D969F895B0FCE74FC876CB9B8CFB017FE1F20B038365CD9966A5C79199D150EB728C11F68E19D599F1D02CE6E0112661E83068E16A0CE00760971AEA2F82FF5AFECBE7BFE65F7EFC71BF69B10F838A5D439C3D2809378592376DE9196E4ECD33F30AC87C0B55221D8583FBA16DC579163871D493EA6B703E5B02A96EB4A59A7CAE500600FA50F75F57D7C7305FB0C57B434DDCAD08A8CE74437A2EB7A463322FF6FDF0B7633887195333400454461D7173746A9093E1405CC8847A8D2F3E98219D9D3002FA03B563D6760A2B0B0028D59E1F29DF7BE41BFEEB617CA5A3D7B9DB302367A3756A380CA56C174F676748278E013EFAACA70362A2A657B4CEC8C64AB7ADF5D75F158AFF963904DA3E5EFB78F1432FDCEBDF5E1AB264ECB827DEA5AED0DEC7184CB30F004280947D3AA1EC4233DB4ADD0080DFCCBEE14D0529D2854B9309729B0086F5306F1F9D91DCA591F60EEC0F189B70ECB5014DA918B330717543DCABEB283B59AAC2545E0760AE0B24581B4AEEEB65B17F58D020E0F789CAD80F829FDB87E7F0D980FBB9B121ABFE15C07031CC26939ECE36926A70E5D4792B0700EF5F5D7AFA85D9CF1EBAC7BB3640208DA2110E6D2D7E5119D6D5A652BBFD50151C64571A22CAEDC1C7EB28CB62612F2707DA0504A473C0D699C7D2CB79374C0006BF706F79DD91FBFDB7F6BFD61267BD21A58D860400807F15B2CB6AEA6F3D8A4F4F38A1D89CBBBCAE9B31F94E18304FCDD3EFF62B2A52C5313AFB1DB1FAF15E666D0EE7506B82132422C126AF194C6C018C5CCC78758652BC22D6E71FE239EF8A864415047B0615C0A379312791F1082EFD00BF5B61DC16EBF1BC28F604708CB0074C4716E98BF43E74536873F0AA15038099496FC7D107FD9B597B33BBBAB758CF3A8E7A4EC5F10E84689D729453E8349B59C6E03F5B93F266433A8740DB434DFACD152DE91DCC89872CDAF8EFE0A4BB63C9DD5316C70740AA86ACFADD481A53B1545019441564E92E4F0F3AF5D75E1D890F8DA656D76FAE4B6CC7DA9977556D89FC6665A0291E40DB7355975C7C55A7E4D78B068FF5644EACE38E0608670CC2C148EF93E10ECEC731BAA0E9D871D72DB166007A017F20A0E7177F4320DE269F3D0D301880C273C0D7315D53F2CFE2C188DDDC178E1302448D759EF8004ED88DAD1ABD6201B060510367DC2EA9153F00CD9E7735F935EA3ED3347BE1E9F704AB839A1D494701FCCA013EF25C436651340DDE6A8BF36518AE89269E8AA0FF68C092F8120FBA1E897920A7CB2DCF8CA5B8C1D041370AB6ACE92C8A3F1249B03AC97A4697D9DA1B89330B5DC7C1BC9D011B345284E33AF4435F032B3D37BEDDA1592C37C143BDE68B0E10A008A8B81930CD26749B9D1A0DCD5B24F3FB1104BB715143D8AC880BB17E2DEC8277E985341C4365E1DA521F870CF4260745D6133031A4CAC7B9C24F6C59110C702786776244DD90D6D95C3A31D8552A45DDD127A2B5C12EFF0AF7ADEE0CC4A06AE8AC1A39EE4B791B060B83517C5D2CE50B4DADBDDC9C35C8BA6DC83AF83CF39425DE6657EA7B6B62F688A6D34DBF658ACD8564A39614A1BFE631473F1F31C30603DD80CC7FABAC1DBA7B6943FCDB1AD27707CEAB375AF005349527F2D1D8EC49ED9A9A84306A6414D23ABD055FD3D99B0022FD9B99AE92C7347E212424CDF200554163675D5CDC070045882DFB791F52D0E0F72B1300AABA2218A0165BBDE38783FE205961BD7377453A3CE7DD1E32B18E2FAB9CB87B6E0481BDC91775C4168540E70693120AAFE7A19FD69C2D01DCBABF26D003C78CE3640FF53700C59A074C0D1EFF3C04790A2670B32FCE3F56A4F2F705997CC79428D06A80C1B579668772E21EB6F57B0546D2D86BA0DA9895EAE79AE31DA35C73E113E2BCD28164D6D7763590A9C8DCA7F312D9CDE735CC5526E353E4B4FCBDE0299C77BD0A3400042659A91ACDB349F3FD78D24A3E1489BD2200706AC63B7F7632D2AC30BC362FEBD737DB9DDE065F0204D49CB664EE380234D8A4E54D17E1F53E4FD7CF5603266FCCC660812A7370FD784FA407C8C0E3502C6637FE2EED8DF5FB49A3F16EB769FE14FB04CD8D010B281174F10842F18725E8F48C365B1C709FF5F93A5F0A2FE4A48E8CAFEF70A1EB4DDA4EE3E2E2D87E57A4EB742D0DF1C2B82DA0C039949FC7C146D8F4FD3180988F470CF97D6B5666EB75F06245CAD5BC74ADAA638392602B775952E9859F198A5072CA032B0200B32A788D9E90295BB2E3F52598401A9C58EABB5C1D3C65C532781B6A6B0C6E0E03D7D963CBDC5A98219AB7310C5CA3A928640666A51E7C1AB0BE50025D2E62F4BB9A59A3A997060F8F6BAFAEEB9E42643503A95083BB786C21759D1370F9D8C2415F52073877595D3F5FDB8672AC92E87A4B6075B327C964C3B7B00FB8FCE390A6E3A840469A010FEC4D38A79274ECDFAF91A132BBE1A7E32258609A66D7920900E2C999D3072977960052968C53473FF27FE58F5FF90040F9873A7B0F1FAEDD9993E055AEC4D36CB999DA40696D04E5F6BF078334866C07D5B34E225F68678CAC6DC06455E6600669E1517BABA03991D2ECC4C8E240250CEA7786A7475DF77F6399DD83CCFB5159376C144AC83823FD5E77281337CE8029A226C527FBB24E562437DAD00176928CE6E3DAD0455238392EF9E3C7E70F4F30061B19E42603A98C32A8842ABCBA42F865D98B4A6AD3726ACB4DEAA9573C00E626E37250970D2CA17A6E30C45DED4B9E3361363416D994EA9FEEFEA124323D436B3CB39841F0ABA14C5F5193E8E118D999944C41B35DBA887A5BB255B5D1E3DA26578AD071D333E1C6837900B0CEB7477BC4393A23A56FE67580730C34CCE4E8EBDF24435FFAD2A2C328F8142D332D59AED24C4F0011E5F3F01F3D60BDAA04DDDD52397020B48AAED88E83E3477A0B791F86B2526EF300E8B042A7518F3A872FCE897171A09B2774D7AC73B5964789EF9905314F9B3233E489BBDE93002E5825C1F12BA14C5E3527966BE8CC57D1C2E0B60BF48287EA748BD53E61CA6C5FA7149E3F29BD9F4E028DCD427978E2866BA5FFEB5F6FFB85544B166783EC97E02710DC10C16580FD55AB74C9525FB7AE795C0FDFA7BF5F3A7EF843294016C64746E662CBEAB5E048B9398582F4F6F68A5BAB8993CBE98E54B152E95F1100A8D3D4F7C5DED03B51B2C1D5DB08B484895687D92022931C98B1AAAF1D389DB78459F3CC8E9C3A1D8D68894063B3279A413527D74AF1D0887EEC8C621B6FD6F3A3375D213DF7DCB3EC17C86674844C9D5BB346073760A03B3B75ED172170F50D1BC49E9A126B721226729D54BFFD6DA9CCCECE5F53AA92EF3679DB6D927BEEB9E6A98721921DFE05C0486F458068FCD8B1EC298CAD080094368D9F187E8739CE691B9DEDA46F3877DECFEB2F351B7230B7C5D533727AF0C225323A796C81B275F622B0F6A92E31667BA4E389E3928369349AD3F972F2BA9D52BDEFD48BCC4B43723A3A507FF788D7D72763D75D2751B1088982DC58602504C9705D9DE1F6C4841410C489ABAF96DEBBEF5EC40CEEEAD52233336039B508442966CF96DB3C009E78B5549D50B6A7A3A09B1EB1CC374616E55DA69366002839BAEC13D67CB0A53180FB588AC7A64E9BB7BE2E690CF54BFEE8E8E24C061533637D527342D1A4E6D19B6FD6AF07E5B2D8C8DE228C5CEF7DF7E94CB61A0DFD1EBEBFF39147E6B3381BD4B88D24A8767E00008B708C18E7D1D8B2452280ADF7D9672B7E10E845257A5FD07F1BD4DF05E9D0C7E17EE2B8634500C071ED8B69E9D2BF0398BBA817149F74C7748BF514E879AC136EBAAE83AC3768756DF545527DE4D1053B76870BD0F2E0748091A90CAA3B38289318440F5AAABB3DA4680CF6891B6F14677A5A423C2E1D3C2895C71F9755DFF8861E680EFEF4EEDD923F791286EFF84275E1EB34704B6473886344958A065788FB185B00063905AA57900C857331E6E650B92831A0EDD691231223E0D6C888CC4E4C347C48404757973E4603AF53FFB5F6E33C4DFA87B9B968450020E6FA0852F6ACA183CAE05AB343523A844187C3D6948D784EEDDA21D54717069B0BBCE224C069F67A3053CC2A13200830E83904D781E61631B085D15148434D6C0C7C09039E0DD8E4C5176B0A17CF93A88D5BD7999B642BC1A2190001D5C7C6312903E98DC09ABCE1064E186883977BFA699486C725FFE083F386CF3FFF7C29FEE0078B59820A58AF6BBF1FE23B2800D56F9CFE19220BB2C33E406376B6B1220070DEBF2CC6D6B4A9A0D9F393FD53BBD649E5D12685C7CCDA816E69403F39F801B382038B216ABE06CA072D53A7AB8F3D26DDFBF6E9D7783B81200CB4B8760F018B53BD4DDD3AF61762DF756AF4F0B0046009966634710C660D8160E042043C7FE89058001065C101882C802684E6777DED6BF02DC10263C72073DF367C81B49186A5D8E3ACF200E66C351774558CDA86EE66A984ACF559F220180C0A83EB60AB3CFBACA6621B266A7AC7623698DAB54B72A74E2D306F044A030009011AB201F59C52A03309D44ED6E0BE4D02063A6B005074EC1EB476D597BFACD960014B00509D94879680696D4F65A11D7B64DE47CF110058218CA4810A2186BBE7A6E803F03C5963F08107AA940093D9CE5219E3C27210D581EE0D2452D0B72200E00E0F5738180C7C170C15E93AB5F20C6A6BA0A9E964025230D920C2E005D0590F2EBDBE7EBD280C1A079912C0C735BC8F4EDD4550BBBFFF7DA9227BB5CBC46D1C01EDB9F7DE455938073316B304CBD0B26AA92EB9EF18E7CD8A8000ABF13308A0C2DF31CE4F9F075884E7E28109349BE17D2618C300A51BF89E04B851AF8B01E086D75C23F9CF7D0EE56F28A3F5FA1420D99DFDDE036BD7CA09304EE676726534829E7A6A42071B1ACC019CA3AE32B0D4597C690655F7D8E9C6A1DFCC568B6557D250E97CE2099DB566A2935EC22285175E386DC81824661CD8236EA1DD8880622001A4F4DE074B4C2320FC3B6610B94C1BC7E57E276FB9A5F9796627B2D17AFE79710E1C681AB9B1311DD006805562305B7A060D7C3687F250B5E92528DF9728635ECF1A0998DEBE7D557DE3C6666943BD44907C00A0E7A187A417199BEA79960DD2819BDDBE5D6CC88260E0D88C09012017F2A18D191D386995C10798A8EBAC00681AC9222640448D3F856059085A8CF718308CB963C7A4822051E799A93E1884E7957FF2C905016357CFDFBA55F2F7DFBFB00BC87B304C96F6972A0F977A6DE99684A10DA0DE8C57F62F85CC9F7CD7FEFDE35DFB4F5FE0A25D3D190081A317D0148FAD013668C0A0E9060CB292A68C81993BEFBC669623D805386D13C134918DCC4477F366E98609D4EC10864D874D9387E01551EE2DC84EF80A13E0B391D10B66E6922D6A71EB519B86632A0D3C47F6F56924850C026F413988C16EDEAB5FADF55E3F9FF401F467F15DFD37BE513F1EDCB74F7B00EABD915403161EF7AF5993CC04C2607A5EE78A00009C77791AF44F7AB5A18BACE149F3757C59D27C11545E3C7C58CAA07A2B09246BF30AFC42D684CDE2B98EA429933E6F6EDAA4B5363BEB960D2A01C44A821B03269401068A5240B385E783A1211D400F2CA503576BFE2A0D9F8B93C99B18659D39D6ECCC52C375E9B66D9B4408B8097D37F81AC06582590C50BD2290B17FF3E187E78DA39101E388EB4E0158DD347FDC570D9F3D3D1DDCA94130373535B1325AC1C78ED5B0C92428BE2BA5F8645068C6F20000E99AC10A18982458353A686A34CD1882E6C3ED73468D8FE324AB98ED1337DFDC0C16071CC1E3C0F3331E1825828760C61B49CF9DC1A3417411BCD237BF891DF8E2408A78AF5025346EBC510A2CF75AA8DB7BF39BC541D5909DF2D594BE674F33F8F87EF300A4D47537FD5DB4C474F059E501509695262FBA48D33E295EEB2B506E01F50C5C0D0E9A59C0E738AFCE0C3251BA51BF5DB04409F26127CD165DAB23A87C8F956624BB8BC84482A1F8E31F2FD0EADA6B5F2B856F7F7BD1A20CE3820B444E9C98678C6CC097ECE3B7793ECE4C502C2A1D5BCAC8D6E7E7CB64C84901CCC45630CB424E0A990071A15C5E1965A03D32525F3532B260406648F199606936C073E52CC5736105EBF6A347170E7AD22B3732831EB74CB6CC9771D8A2844584DACDE740AF2CE382D5AB9B7A9E9495DA7B70CE004CC5BF0D9AC9E4B598C673EF5EFDB7DE0FEB794A01DE1FD3E0A60C836309658CAD68F629D6677EDF81AC006093BB061F7AA84ADDE77761EDCF39810A5E1FC7383520697C2E8EE395510636AAD57CEDC20B7533846E5E374A90C52EB49706302DEF1828376108F601D8D225ADFBE973F01026A75939B8FAAA8C4877EE2C560949A0F85E06913D026AB2EEB35F7EB97E6F441D1F1F6FF6E7210B94074A428C2AC06060C028E6030FE8C01A5C9C81529112643DF69898D8386143F9D01E00B263B091D4621CE54D6F12F5A52FB56500FBF6DB25F8E217F5DFA3BEAF3D4076C0C8026EADB6F22400659F5F8223AF8376CBAC061213C5F28F595F0213B4D2630D925184815AE0E2F15C214BF118D41A34BB08CDCEBE2F40E9C62CB4602C174CD75E769998070F8A3131D15CCC9BD23200C5E0AB642E7EFEFD64004E284D4C2CA6F564D6AFF57923CB424B740DCFBA5670A352C9916E59F24942897AA60CB449632708984A7A04D4F6B4067701184DC1346EA44A64B6BB71E382ACD3B53ACA44C9042344A60B4D65329B373F810303A9D825E45C7FE6796DD8F48F3FC40B276D78BE38A6C239EAE793D7F95993FB20836402CDCF5BEC14D2D96701969E0767082919BCE6D0751DEABD0343CB5290134079EC7310E363D9CDA10B3CEF15BD22C84807606AFDFA1BFD9E9E7F4CEB61668187F22D8F6C9CCF1EBCC632CCE1A44A3247AE176A60406CB64793D62EDD3FA5C2C0401B5353F3FD02D6E01180603DF594AEBBF93E7A8468E74E4DDFCD966447B3FD4B7ADFBE5D8CB437C17A9DFB27D000BAF899679A1709F279968A040DCE571D3AD404015F831C29B6B4595AD23F504278DE0406C0C7F32378E2C4A8EAFDB17D5CAFEBEFF6D74F3C71B25EAFF771295808D0CFE2F32AF98E9932F091CF2A75D12B9E01A0C581995026F5DEA6762318365CFD02EAC6E0392DDDB80899C1A06AEF40C74CF3C752907E003A6EA6F44A50905592DE8195EE17D96B646463DE38C22B18FBF62DD66A667DA6F337DF6F00ABC4F00731CBC5963E0441121D38B0803D0C1CD7DEBC59BCEF7D6F51E9A8E728C29093FD7D691F200DFECA2C033B3A721E4C205BAE0E4A2FDDAA655D8F20449C3C6186D117B00F90183E4EAAB06D4B374D16D0034B13C90C6256D28D23BBB594B0F667F6B10D9C4A060D1B0D1EE83DC4B1F9B71E689A438209D94813A88FCB2D793F33356E316F6913274A6604DB957971CBA452BA52FD27990EE622104A021784E8FB577819382F016395CA75B8FB164D5C9E862FBB3002FACF468D2495C0FC3CFB9E3DE2B08B9619B400CFD999CE9AD6C9D7BF5E2CAE07484B36DEC36FB06C13488C064A3237A09091F4068AA68EBA4F30D10052CBA9BB00A202F024599943CDD6B40DA9315811B06F90F8002391007D4FF0A59D3C1E874002B59B9CAB6083887F138CC93DFFFECCF3CF8F23E2ABD8FE95C423E401F09953A7C4E7441898061EE0D1CFC6F1EE573C0304FDFD85C6155734339CD3B97A0DB8D5D4620C1441C00CA496EB8E1DE700A89FD0694EF35253D9A9237384D4653C36924030CB8C348B53B0208374BD9E5CAC316FF868D0C02A2A990B9877EE6C44B17B98D0F87C86426A2CB047F0DDEF2ECAE0024ABA4652D2659B3CC5DB6E93FA17BED07C9EBD840494044619A563FD9BDFD47FD7A6A7DD3A409FA57E4E074F8E2D5808AC568404C889136EF1F39F5F78654C92E1F3148AC1D2860DA51B8D9D994CAE043086066A773DEFCE16F075D76933A78D18414167FFE637CFF70148EF3AD094060CA83E26FB010092C9852200806E2327C0A2A6D38DAB369341F40BF41C510BEDA70CD4AECDBBE079CA0EB7A4B2E1638F3D0BFEAE611C072BBD1C9C0740383C5CF2508333386CC29062230683548C2CA00788711FD1B9836EB3D057A0510340313259265CD6C58C4F5AB93A202CD5F8FC430F9D061AA7842111E1E38F8B41F0805EF55233BA6CFA073081C5D93C1E83CFA30230E82338B9C3E311883069793CA73F4FF920E8706F0E0D8973C925BAAAE0B91360BAC24867056916B365608B57583050F84C0EA0E57D3F40CB9290121406C1CA6805CBB16375CEC107175FAC339C668ED41E4187A3DDBBF59CBC6EA1726D3E25829FA13626664D711128F49AC0D1F71C64028999CDCF6666DAE2ACE3261B3030005A6BA6E6B8E0F33BDF59F47C1E34ED7EF5AB8B7AF7E53BEE9039503E8F4D30782815F91EEE871E22C6B95849E08B7BF78A4913CB3674A6B36703A49D642B7C6EE8D147BB7961086B7EB684EBF013E3902C1FE75BE2BA856619B8325AC17E77779ED9C906891ED4D15131324B9FCC166327E92C1B2582AE9C3535EB6B78026DD49821C840D6E65CE0C936AEAE0C98B104108D1D3D02EB740602C023786206839F076816ACE36B99CC69EBDC2905D46BB200375628BCF1BC706C6FFFFE05EFCFC3701A007A7D896B0A8E2B3589BD55DB4D07FFCCEEFB0CFE9BCECFE3BFBA9E6600CF8BA8C37A1A97DD3D04850B2734DDE371B8664DF3A4A895CC56068EB53EB59E994EB7CECC67F0D23E41F2054C646C888CCD0EAEB56D9BA665BA7606814E9E9B4D238A7D73E28555408ED9C80123CB906D38C308BA2FDC78A3064B764B7D459CEA793A1D9C4C4CB5FA8438533A9E6919D8124596828EF1D2FE8349F58BF10061186B4A67278D416739840C9796324F71D28612C1EBEE9811975E0A6B3CA07D826EE00010028DE462120692B44BA06889C8C8413A3D1BA5C0A1894CAA8310D41DB548420E5A1E819582A347939F706D82C6616712E00C01A410E75D7ADDEB74B3899F71009490134B3C277C2607368A083AFA1BAE6B24DBD14412E00451763979B6F667A30BE04AEBFFF9AA8093478E5396B1B1760030CE30D06A89CFA9565CBD1C8C6067766EE82B65AEBE5A5368DA1357CC7CB65199D93484BC1E80E6892D6252380770D72E5D9E65075030F8268011736610EF35B92297460DACC2FD308074DCE6451735D7EEC179F3BD26EB7D945911E99BEE3C93C50BAE23A0D760D673F510CEA7BE6FDFA2E055C11E13FFF00FA79FE72A65BCBF7AC30DD21819118BC7C7DF2580CBC2BD5E5CCA657089740C3FF2480F3D00375E14E2615C3817702259E89AEC775AE62F825F36F0AD046364EE9703C2CBCA0AA7AF0C8204C8134F344B39AEBEC99E31E85A3813472DE599B147CF660C8D10331F996420134DF6FDA9F5649024BB430E1636BD1F0C720EACE2665BAF94E85B6F15FFD967F53E293936C0E2ECD82136BC4298CCFEF118640F07E711224011D824A40C91F693CE60AB4F98BF4E203D16670D09483CAE27731CADB781BBEE92B1CF7D4E3F3E2E420FD0D59286ED32DD398380CB8B047D2905522FA71F98074094CB5906CA31065590F53ABB49D70C009820622790349DB994CBE41A428225B95C8BA55AEE55AFD227CB4C67402DB083EED4316349A5D817571C47000A299B32416DF7592E62739F7E7A7EFF95DB6E93E9CF7F7E41065B3846E5A69B74D998E324144A5576F31C3E26E5B38C24A091AD7CAD04860971BC00A0092841C93CC1190EA7B194F6B3242C701D82E3F4E0BCED25685D2D43F98BAE5D5DEE1C2007EAE59082850C90ED9A912EAFBA4A2FB0E0AC9979FDF5CDDF7FA3F632986CB1122CA0525DBBB369C38106BD072D4BBE0A6F7883D4B910939771031874E5361823475F80CF59085407E85A7F06741B0118216582FF9192149FCCCEE90B497901298E5D03005A53A6FB965B64E22B5F69029053B85C74021096C1601DEC5A52F7F1BC837360A693F2F95E1E8B2021B31060FC5CC80529C2AF5ED08B40729CC8E245A3C9AA60DD3D0598A64E9D9AC9CC6B2DC702714B2FAA75D981D186195A25A3B58268CB0E7AC653A9458F9707C09A3565135AC839F418944D77CEBE78C88CE4F46DF23E0B591F20EB191C06D340E998BFE61A9D71FA80F83C67E568BE22E8BACEC8F4726C1A430046334EB2A6D0650996292F8BD8BFA66AF6D9F1D9123C09CF895D47760709983CB2BDFC9AD748C86B1109386C7172F958EAE8F5C5A5ECE861D3EBF711B8DAFE85FFD7A1846AC7023B3520070C3AF5DFC3F9755D79A506C2C0830F76B2F4E3E7EBB89F4BCBCACC74307F444216FFE2EA724B0FD3609B67600ADB01A1756D4BDB9232FB5CF258B503C269093872A4864DCCDDBB2506ED73AA549765A061065B9B393A7A368312AAD54D1E0C9E0396F033D3B6640C3A6E93E0C03D33BCF496B7347BEEEC9E652FF1E6C965BB709C86C640BBA8466A99A9E8023B80691079E10A4A446E456477CF79E749C06B17F177FF5BDFDAFC3E90AF004CC26AC2A6B1CBFCCA47ABA6EBECE7774385910509A0CADF05AB32D84BD5F290811C2A206B093D574B64F572D566BB60C799FE99D18639E40C24A82D1BCC03C0D8B2A56AB231C21F6A40F6C6CCFA84666D663DAFF625A52298ACE15962F16FEDDC79E50FB316D91322E338F85C58A9F03840E9969A3302C161778F9771016064902E00CC82F3D780624501596116869C6DE379A49545321BA79984976F81A13C6C3E8E416699FCCE77167C31966D036F7FBB4CDF7FBFD83090056CA5E4DA4066BD2E03F11EF60C48F75A0638091545ED359F920216A21CA4D3C271532A0B6D00F06201592E80AD414F19462DB3EFF8C582FFE2B3814F3E39A5E0C449DFCC5C076E5D9771D462CA022999AD62B657290B9C1A8564B8040606D2C27B2D5073055E41B756D9BFE79534C8AA80810210CC24C319382F0106B72A4CDDE43DF76876A03E135C3964752F74DA4BD6F2939229333C170294818F96599C19F19233BCCE8C6EA5FE3EB0D149948764901C671301883CBF334092E33591C9FAC2A11FFFB82B4AAF6402A85D781102205B0662E467E5CCFEFBDA999479EA0CB658DA5CF0DCC64CB6630AD5CA02A73B818383450BE68632E03FF040B3878E007B0C30A56078587270F4346F31DD3B9B21AC9BF13800A507AC120E1F5E509373A2C7C68076C204FA780F834873E6F06210300733DD4B96934749B7CE05381AC904920D309E4CEAF834730990EEBD7B254039A86B772E49E7CA25FE3045020C6E613261B5DC8D1E82DB5265602201CB9681AA39B02FD5BF96FF49023EDFA7928517342DB59FB615C4E9B980C949CFE6A2C7EBAE13877DF4A4DBA6D70720B80DB08320F3F3D0CA06034C478C4CB591399DA0F13859144A0AD73FC986E072A3DE17703F91FDB1267CB6F3F2CBF5C40B3776E47A6FBF7DBED54C50B82C3F5BCC4D9474F00204781C6E7F413A010843EF7CA77EBDF3D24B35ED53FB1950ED2B90D504469098C29FF5C632908B439C5CAE5B4647AD9728F822CB5FA36A2C039074B67C595648CBC9140876E2108D7B6DDB67F633C86E62E858F691DA8B085681AB68D839A321E20211320582C4B9736A619D4D24F6E099E1434392DFB2452AD75EAB6BFC1C40D275E38DE222B09402BA7B9FF30E78DC60EB3973EBE65A029C5319A6CF46C6F725C0600948405112A44D00B52F8096CF26CBD7B3B70A00A117AC601FA5AD5BF5C524FD4919C86F9F650E1AD50503669A9AF6752948738BEF37001FA32F8881B13C3536369D29038D970800B24420E3CC7D24B2E85774548BBC186D8C67D6102A3BA590D785E18FFEBD690EEF54EACD08E37A7CA3CBAC38BE243A7EBC8B1D42063B663B98990F6ACE412EBA11600E3A9B3B5C04EA410298BD0DDCFBA078EBB9E7B49BD71A8E8C2C423EFAEEB843D3AE45A640D0F2901666BBC795419CC7E78F4880710892A9EF7D6FFE843B5FFD6ADD1ACE015C167C400A0C068C0EDE8537614097A47B56160B7FD8E1741988F3A4B41458DF032404876E05A30CE4B22F0E96070F90D5FEB40C84F95567E8018C3635FD72C6D16CC9F0EC85D0514BB6A732649E819758F0BA9D6940181F8EE32979E081BF4E766615C0101F328C0B76C5F18D96529BF1E65D761C6F89407934713CFADC830F362B0538F93CB4BDF7AAAB340D9392756F00D9E661E0A9C9B5279FD47A9D3A76062F87CAA007EC4050F033FC9B81A84372082666A74A7A0834930CE20C9C7D7A2BC2D917366CD0D243094ACB40BD7F1C7B0E950C8F198C8D2D5D06B2B9848D3237FD831F9C5E22010F40ECA5D3C1CB04F6A5F600B284B337329A6F2D5101B42B47B320CAAE99D51E206E59AB11250731113EF34F947A4C9E7AEA8914141703FCB719C69E01914B06EBF5EB7CA536E2857E4A814B394056CC02147AE73066058062F56FFD960E1C03CE8AA1CCF7229B081452BAD6F4E4122E6DF640B779808099A803877DD29DF3BD7C8D52325F01F08255046FEE9147F4B6C0D0BDED6D3A706CF2B0B9436F90EA9F0B96E2E29028993A3ED35630CBBF025883A0E0CFC5E6CBE51E3976CC5CA2D7FFB37800F345F43E5E8641D2F785C916B7F9FC3C00DA698F91D9CCCC663D24E23EA4D4B7F0F83BB27FFF9F721FBF22B27A3700D123B2A71045D762476BF8FF9698D573D80AD0CC34C00C461E7F33EBF99881640956DEB1433C808274CED66F1D5EA4BC7DFBE92A80B5385906EF5DFDDEF7EA0A420784252A9886FD065D5A667EC899725207EB70CBDEFAEFBC533392057016B1BF221844923634CD6283FE86656B181AD47ED23D570531E8F400D390A709B0113D008E36F11232C09900A35D9D9F3581612691C3CC16B534949A0048DCA0CA988356041B4B0022D51CEBEF440E623B8CC79F97871FB6C00E79A8E8760CEB1ED4501755C3F06A492EB2D45D37D0327BFAACF769DAA8C30409753ECF1F82A06B478098F564115DAA71197A62D4C80E29A0C82805F888C2FAF53AB05EB22C3CFDBC036F92D6F5F3238A40D37CB61A504AC6D0BBDE2521F4BE0380EC7FFCF1325BC11334AE09537055F0CCC2FD192F33005EAC5C8C5BBC41906C7E9BE0ABD696B0BDC432A4330584D906103642E0FE9908857A9F7EFE9E7BAC2B447AE0EFF70C0110A82376E70D836BE9CB6979573B70406F15CEDE011C74FC64854EFE702440A01779A0A2A04E9B49374E9F28B29F264E1B3998D3530006BB872C012933AC0008181A394E2173D6910D1F760AA3CC8F4AA6C0E0B9CCA20A62776754843AD3B55C29582A164B3239699E81015467B850E427F108AD01F733810F64D1AFE32D3317F022EBD2960244B40C3BCC03828F61ADDC1F347F599BBF1869F79D3A95BB6D72723358627B2FCC252CDCAEBCC8E6D4C93238338997481D3BE99E0D24561EFDAC02927904ED01D26B0B33AE9F5B0D154C299D4700C0F25CE98C4CEFB9E926DD9822107CF80C1A4EAF4DEF21BD712108B5BF04396019C88B45F56CE0C444FC123280B14CAB37ABE969C0B3F7410BCDAB33594B60FCAC73CB691FA1E50B984B3084950022DDACEC3DC0507ADFB66D7B3BC7C737154E9EDC843CDF8117FB5200B49BD1E394320D1ECBC6F2CE9DDA5032937597110C405F50E26F14B5FB2CC0C07EC3348056E0C415BD087C077D00C7E5EFEFBF7F360EC30A9784F14A20CE06B225CCD7D232706A6AEA19B8945F7B89A93DABE1ADD9ED67821D65CAC325B3FCCC1685FEB467BC9021D2756CEA450061B503044C44E30F0F1CF87C1618D78B0CBD0A9271A1655D5DF4FD0BB0E3B5BC2678FEF849976FEABBDFD55B5A5ED24B745F7FBD5E03C01E845EC089FB0640C1B67476D227A6E97CE619BD4DDE77DFBCE984CD9CC317ACA4B3811ED72E2E8E98F1227D00E30C74BC55BFBD36010F33C18EE5A789F6CB0180E5009159C5A25EC43F982D8C6027CBACEC6F881CC276440E1CE0B2620B829C7FA3C8055B4476821A76F49A26BDC4E082734070592A72ED40DAD72730758F01F4BDEA8D6FD4FD05CE0632BB3528D8E8CAFE4064E682D3EC8DA51FA5A0CCF51090925CB95C451968BD04D9EDB56878AB797B4902FEB203A00D18DA01C258C63F64C16065C0A001310D2FF1B722BC5E8D3F656617A7A6EC3D0F3FDC7B89C8D6B5F0132845B7C3596EC3073B5ACF45CB02B61CAA065D5E26B38F4580A2C28B5F78410900C1DE0341511C1D75F2EC5B90EEF15E5D06F2472DB18F310206400B162F0A6D2DCFB2DA9D0D76BA2DA5DF2F57CC7F7E00384340B433947E6BA99901859305452308ECEF0741E3FBDAB40B3540FF44D4EB45D6BFE5D8B19B41DA1508C0B682C846A395AAD9CF47B075B329319C9C3C9A7DE411CD14A55ACDE14AA0996455535A06F20AA1255CFE52D9ED6632BC5DC07F2EC1FE8503E0A7A830C236EDCF56B9705A361B1F74EE1679FAEE7FFAA78329930CC347BE0E2C71BEC885E520782D2250C59B7BDA9D170D25B753F024C6326520223785C8B2FD585B22BB97D4EF5F54C07FA900F01300221DB47089EA22CB0E6DB7E308C45F21CF85F2F1E52F7F869FBD5CA41FDB85908E6D40C25648C72616074BC51B917C6ED6F727C0175FC1F6D001916792ECF633741EB62BC7D42FE90F4FFE52FFD0F18B00A25D8561B561875CCB7D2A21F68F448E63E3EA936F731F300DF6C74E9CB87E0EEF190220F81B2648EDC333000DA864DFB8C8242FA36F63D67EEEDAFD52DD0CF50AFE49D4363D08A3050CAD5585D302063BC32459D969A5F3A04D76BFE282BDE200B00C186409EF90650853162EA78A5A2650B2341EAF8460AF6800B401C352EC90FD7BA935742B32D8670D009601446BD9D6AE443DAB6EC6D9FAC5CFDD4E3BE873B7730038773B078073B7730038773BFB6EFF1F6F7C8B1BF3E2652E0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (27,1,'Firewall_(24)',0x89504E470D0A1A0A0000000D494844520000001800000012080600000041EC1E9E0000000473424954080808087C086488000000097048597300000298000002980136D347DF0000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00000369494441543811B5C1CDAB94551CC0F1EFEF3CE7799999FBDA1DC597C29B24227951304245A556AE24E88D68E92AE81F701141DBA27D6DAA55B86FD5227011AEB216891712830A3135EFCBCC9D79E679CEF99D5F230A4584D3A6CF47CC8C59E2C5E5335ED28D2B3F0F066BFB57BA2B85EDE7B307EBFC0762663C14DF5D7A495BFBAD5CCC4A3EDE5C1FBFD9DF6B8BED913CC8D15873DE89DC4BBD7845DAECB4DDB65738942E753F197ECE0C626620E286AF2E7C23257792973E6A1FC5717A3FFE2EC7D3D88ADE9A1FC7A195D9B3E927396823FD3A3F35BC15AC3A2E67775D1E5CE5093C1F88BBFD5AF7C3AAC7411BBA17A3262FBBB4DB3D2DABEDE56C6E63AB25DE4E45679F30F1FA7CB53BFAF284A7EB0B993C3DF6CCE07FBD5E9DDABA69EFEC3969B43BA95B1D4EEC347A3A7BCEA477CE93AF97C4730D320FB23BF8A602DBD7A22722CEA5C80C7EABE5AD5DAF4B4F1723F94222F4C09749C624ACDF924E3AD8C8E1C7A2E9DEC927BA3D977DBABD31F865A3F5078ED4E1D2059EC8CF5D4877C358C8EEBBE06EECDE29EE556DB659783FCABA6EA7E9C4B939DAB224AA96613229AD69B87FD76E8D5B3BF6FDB75233835FF9626D15E960DEE72EA5658D11CD329A22213D4F52256D6E1245B0188955852B0AE7CD70297966F029EB252D0AD40C0B8164468A110512606549AC2A34256C32416344550921904288CCE02731EA1496129A122642604A048D11055208688C685DA3CEA1AAE6BDC7A79431836FDA36A973281052C29C23C588360D3A1E93BA5DD47B529EA3DE837364A391A4D18818823283AFF33C8F55858D4644E74866A808A92C094C753A2810DB963818A0AAB4759DCC8CE07D2E221E3020316553FC8D1F8D462D53D13934040C083162DE13016B5B625D23DEC3FC3C4E843CA5AE1F8D7850D70BC0121081044411098002F6901F7A7F356D6F1F7355B566228B1148790EAAA82AA24A363F0F22C4CD4D4C957A674723D03AB7082CF3880101A8811A684424FA97AF5DFB52442E03C57B2B2BC7F6989D595A5E3EDB71EE68D63407AA7EDF5B96A1DBDB4855E1AB8AA269F2D0348C542B601130C000052AC001AD992531331E9229FE92019DC3B072BE28CE3C531427F7F6FB2F74B2EC501EE3535F0D06B72631AE7E371EBFBDAE7A03D80686400D04334B3C2666C6BF91291E112007BAC0C21B4B4BAB716BAB7B137EB80E7F00CA6336C53F8899F17FFA13E957F4FFE373D1E20000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (28,1,'Firewall_(48)',0x89504E470D0A1A0A0000000D4948445200000030000000240806000000CF45B90A0000000473424954080808087C0864880000000970485973000005310000053101B7ED28520000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00000B404944415458C3D5586BA86565197EBE75D97BAF7DF63EF773E6CC9CB99D9933A37373346DC6746A94D082404D12956A42050BC27E4844F547240821210A2A42FA11989009D19F402235210B31F152E3389E716E9E339773DBF7BD2EDFFABE9E77CD3A769C4693DC102D58ECB5D75ADFB79EE77D9FF779BFB560AD454FF63B2B975D3886BAD4F57FDC8142CF9EB56A77F07EDB8DCA83520A1F66E37D69D77D383B7E08011EA81E78F7DA03D531996B7A4DF5D3FAEEA1EBD1E3CDB91418DC3732195DDDF7A98CE22DAA7CA9814B5F1AE95F398EEF1EB81F464DE32B233B1057037DC4F9A9BE6B641F1E564E54F71EC5E503555B57D7E853F6B7F896AAF6924096EEF76C5FBDC68F9AC71E771DFD232FDEF4921E38798FBDCEBCE4DFDB795908B56F1E3DD83718BC18AAFA13E1847BCFE08F6BF5D6F5FDEF28E58EA909FD2813EB332E9F32F3585B558D2DB573FD1DFF06BDCF9EF6FF10BE908E966EC2E3C638693F3E731F9E7C32ED7D06FACE79D1DBE666DDF5AE6DF79FBA4DCF7B4F777EE53E81FBE1855F1F9C8ADAC92F9A85E543711D3B31933ED7B8B3FA58B868C7B10E693AA636C6A173BB1A70AFEC2ED9093C82B2DA6F8FAB2F247EDCC690BBD547F7BCF3D9A5E7F4A1F6E4EF77F52203DEC5271AA71B41FBB4193413F89AA9DBE3C5EBCD75D1EFD486C57AF5877649FF466B35693D6C4D5B6ABAF1F7C4B1A9DADBB7D143A01C273A6EEEA4026DFB4DE395AF7575FD6FA5EFF881BF3545FC4B6F58B9E5510FCBA7ED68C8B0D54ED8472A4A7DCEFE9B043E4206E6EFAD3E1816CCADEE940B1BA86E12A9AB1B7F34B7051BDD6277D1DC58BEC3AF073701C53D6EC4A18E3BE6C10C028B6762784A394B87B597D4E0EBB2556A6F6ACE3C866FB6BA898B49BDC35FEF2059AF293007EBF6179114CC4CEF32C0623B7BACFFD6F6E9F41B8561F7AF63933EACC215AD7311528521A58D53B9D52E9E7D3CFED3C45D6E4957E26F97C72B700B0EACE3E3C80B4DCCCCB4307E55097D8E077D7B07F6F562B1705D8CC2EE1449DD811A354837C4B035174152C2D8FEC251FBEBAEED0981E6E191E9B79F6D3EB566B3FF8A1E492FF74B0A0B8C6A6A148A03AE93EE48D07CDA3FD034A11AA620AC6BBDC22860D71A846F39D8B2AF82644F88D2740AE7550FE1F6182A3008AA29D20ECBFAA40B3D9E30C52EF0E510E1730EC2D1F8AABE5E65E0C452FBBBCB75ED5CB1B752581AE9AC6FCE6A4457441839D507356510EFD788C7AC5A5BA0B4962DE2CD114A059EBFB14B32458CCD97D0DC1BA13B9CC0B61512636027627A1CD0ED6390C394D922A1851262C58C7CB205EB29AF27123A718F2A35CE160E6EBAA604BD3BDE9D3453A88D06EEC7F9D06718E1C91861C5C01CD462BA30733E74A8A0794E3714E25BDAE83CAFD0DA146580A39D1C7FBC007F8EE3CF95E19EF1503815E1159BE0A9B9C4064FD96E50F1EBBB0F248737DCD0030241BAC6754A4BE5D143168D0D21BC0241FED9425302AD9D219201834431A2C905B926438C7208B4271338B30A85A30524F3050C3F1AF0E438CA47976C38B64E790B0B08272690160A88E318F56EE36863A9BEBDB650283BAE5B3EFA7234FBF9EFF780C09AADE7BACDFD5E2D1AD2E3DA0A5060797707A92689B104FE591FC5C32EDC8501944E7704645A797389E0B6B84EA7034380495F1F4C42629CB03E35AA54BB8D68781868B5E0CECF239A9C847EE75CAD1586082A1534EB754956AB372EF49035CECFFD31E7480995B309BC858A094E44A1C1A4E7B554212D97A1D23403AA64A596246E73DB06F8EFBC03677919E1A64D701617D12548776909A943672A16A9FB1076600066688875D1861D1B0B2ACD66968D01920BA3A8D2331B9DF8D9CE2ADCBCA6B476D220287BDD2E92FE002E81C4555E8EC452150CC159463EA63C5C01DA6864D7FDD75E43B8650B1C46371E1D85E238C3E90CC7D820804E12C7B0B87D062235A6B78B39EBF926F57D18463821188974C8E8599288791E1239024928130241C2281B21C8B19DF17168DEDFBAEC32983367107B5CC4BEFA2AECEC2C3425644E9D827669A35164848027C79A0D2D4D4DEF1A9965E7646A33F08C745C2A41D56A8825C24CBFEEEF87226091115964320181C8E23F2518CDFB0DC7D9F5EB33D2E99E3D5C2BD4B2FBAD04E0C409E86E379255438DC55DA22C9330ECF48C4097293604E1106C2A11A42CE4E10E6520359081E23D582121BF04661951295E23BA97E395170DCE637299C879CBFA30CBCB25C51AA9B226248B7EA954EE9984E4619611930664442E04C494236206B4D4005D2615DD93A4E66FC48CC4049988E4E41CEF49E82E722D21D184634536096517334309C98AEE55966CBE45394E6F6B80E0ACE8381519F1C1228B849910203123AEA5509989342F584D19E8C14124721F752F36AADF7C33031D1F3E8C84AE15CECC20A2746292EBBCF20A3A73731D0954C4ECB99CDBC9DA5E8F241433A599550A19C982E85B5C44342C5ECF885B5AA51D19813D7F1E86BF86805988506BD7421F3B066CDC084DCF77A6A761E84429FF2B923524AD76ED82B7B858B6B4DD2233D4A09488BEDDB30C48B463662016024C6F5698E216E234927E3E50D39512463591CE4AC029759DF09CB893D9B62DCB86A5B58A5389198843C9AE29C3CCB55C57797C8E6441EAA040ABEE59060844413240FD670529A0A42EF202C6D818F4E9D3507419C34C2846396134C5E3418086F503014709A624E088FC4828EB059C2724E166BBDD01EB0479A167CEF7AF8F062BBFEF595E7F98979D8C8016D710E07C80A4DCCAB1EC0424EE649801776A0A31E583356B60E9EF102B2458E42EA4A40E48CAA1DC9ACC94614020054E39056C70857A3D08593B8C3C42799E9B75CE20072DBBB9E83763F89F485C201086D670622B5ECE87A66293B9D71BD68043CDB709CA6526A49005AC910296D0491D884C48D29175CE1B6F2020D994241D922C70CC8527796E999293261670FCB95A4D809572C059F9AD3A5E01CD242BF34199B950C4A25F89AA00931BA4DD0B1949B71092E2A4BE4301459052BCA9EC6289241ECFCDC1E5F90E1DA8BC7D7BD6D4407538222F91A0F404DE2B72120BD51CCB65481551545A251DBB0AA8CD09E9FC375D4D5094B742222B62765225F61933DA9A0F48281D9D17A1F8BDE5E2ABCBFAB02CCE9880B4783A49CA6C31970C1ECF5B4AA9B273A7ACA5A03857266F1EA7329EF7B7E6E6E22E03E0E5D738961D11C57C2FE5729297B472BE07AB76B9872D1D6E8EF9DDFAE1BBB8727FB076EDF4C0F9F3D70E0E0DDD608F1EDDD5BF6DDBC748B102E9B61261EAD827894CE3D2B1F3DE205DB8C09AD02457E002CEB06865936C44E25CBC5FE425D61CAC5B57EE6380EA3481F2059772736097EA07AB3310E5E7DC55E7574C2E51F9042A6726BB5F25EB43C0CECB06070F166BB51DC39393FBBC30DC5CDCB081698AB3884AD43B6C541E65E773412752C9166BD47D67E6C2078792BC07C83B018370A4D138F67ABBBD55AC342491539DCE83CF03CFE0831B9ABD0834F598BD47C83A8A0B016BBC5C4B36D7964C9634D9C67E02BCC005D98B9054CFCE06DB80E1BB943AD0BFB0B063FDD4D427EC912353A58181351EDF07B2C226308FD1EED2328BCC4AF682C3A985A014B3AC68A576C41C0ACC62D1987E36CBD2C55F0A5739D16AD0ED1C74B802FC921FB6565577BAF2CD56642E13BCC517B5EF2D2C9CCCD27EFCB868B47263BDBEF9E0CCCCFE815A6DFBBA4D9BAEB6274F6EAE6CDD5A12A0B24B21CB84DDE3C7D15A5C8CA50FC842CE917A33C6CB25B45A2E2B116EE7C7517EDEBC5F5FF8C02F03ABB2939122A1248F029384856781D9676BB597850C4E9EACB2DA2A5FACD5F6AE5D5C9C9EF0FD3D238383BBD5FCFC046D55059E574AD8F05C66A0D56C36887056BE11E773AD44385EB1D10FFBC54E7D942F7BB9E4566AC7CB9D42B233C05DBE5E07D3C0E01DE3E35736CE9FEF7B0398EF7ADE8B7FD1FAD53CC27A2540FFED2746F5113F4D5E4C06ABACCE5DF5E952AFF2716B7BF5D05E12F85F6D0EFECFB77F027609EFBFCBE612740000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (29,1,'Firewall_(64)',0x89504E470D0A1A0A0000000D4948445200000040000000300806000000A14B7C1F0000000473424954080808087C0864880000000970485973000006EC000006EC011E7538350000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A0000124F4944415468DEE55A598C1CD775BDAFD65EA7BB67E5709D2187EB9014499112174596252BB2A5D8826458486225B11DC4B2B22080F31120F14FA28FC4800103897F12C14A820846100341E2C4366C481F06035974249291448ACB90438A339C7DA6D95BADEFBD9C5B5343B528468BE32605A481625775BF7EF5EEB9E79C7B5F0D85D69A3AF90A1E280FBB2F56C7E923FA323A7D03CBA667AE5F3C214CFA33F1EE7BF2E7FC7ABA7B3D3D25EC8F16005F15591242FC5CB3FF7AB9227C3A929CF31C9BFA7BE558D77337821075571EA7A7F6DBB219FFAE9C2F7F9B07DF7E0078C15F29EF55BAF4DBAF7E992CFE68E28975D9F79AACFA58A5FC8EC07CFD752984133ED8BBCDFBFDF2A728333B175F1523D1B1D24BC90000E13DDCF3683C4DBF16CC9DFF98ACD05BE171F5797AA4B28EBE985F7D7B01F8D488132DE9BF0CAFD1D49D7F4BF1ABC850BFAA7D337EBAFBD075CAE2E57FB63CB4C2904CA4FFFDBB6DDF45E7C493716CF445F3F11FA931F90CB9545403F2EF9BAFE8BBFD2FE377C746ECE84AFC9D385043B22CF7C557CCAFB516955177E4F3B519F385E8A99E03B70F804A980BC7C5215DCD4C301F76C4E3FDBE41FFE21D8D7F488D427732067A8DA6F4F3741F99DEAF761D0A96D48E878CE2376ABF57DAC4146ACEA9AC2E083BDE21D74692D6D72F14FE50949C6F45AE267F49FDC5ABB3632AAEE829F7617959F55863FE380D9A231605137AAF7745AFABBE1E7E9F1EED2BDE16001ACED223ADB754216E455F8F7EA36B9F6CCA6F76F514DF0C24896A6C7C8B3E2EAC9A57FC42ED9C3A32961D315B13FA6FA4238CE64BFA0FFC97E4C9F95F2E1C97108CD12B227BAD31A11D910DE78CCF075EDC74B63814C77ACDEEE7EC9DD666416A8F247B8BDE1E6595CEACB7A9B5A8F354349C859371DF5CC1FFF35B0B00D379FF7EDB5FA0CFC98C1652C8C3767F66C25F50FB5BF9C68FCDED42D6CFCBC769DD80EB9FD5A7A85FD0C89F8E3941A4D75B05B35C9B97E6D2795D983F1AEF11DD2619425834697EC9BFAAF3D13C6D6CBEA1BB8BAB0CB21F506B6A7FE7FE89ADED8D3AD09F8EEAF26B56C512960B35658428AE769D10626A4EABCFD0133B9D5B02C0D8C39BDDA9CFE5BFBA347AEEC1B0A6B73BC336896EE3E2E282F74555D4C58597E2D5993556C10FB4457B1BF9FE4F5AA7EDBB74D4C851C61A12BE250D72D759640D18D4427F716D3E22110AD118D3461CA227A86A4B697CB7DB239A32CDA91FC48F2FCE0542696DEA0371A65031297634654A26D9684F7AEF70486608123C256F0900DDDDE4864BFA7782A65A1B45D45318B4497A34E48D1BCFE42B762E6851AE7E4E5B9523B6F4EE5287AB35F5C3AED5B61D5DB5FE29DB6D5778957D5B5C32F206655699343B13D2D58B3E7979496E8F49F93E8B0A8705891E4DCD97C586AE87C870F6680AFB24298CD15945E17D2DB28790794FD2E00E97FA0F9AFF46FFAC3B0FC0CC43ABF24B93577F34FFBA1CEEB1F2C7FC50E7D8CE4B8EED2E9C0F4D396BE6281256753A14B9239AAE7E83FEF8CD7FF00F2A5EDAB0BADFECD74EA617D446F002E95BB71BC30D8C9BF2A9F4A598F2FD16E5D65AA47FB349200AC5C392B29F0030C39A8C3336854A931A50248B92E4675B148F46C4AC51BDFAC0CFDD877C6000508FEBBAF6ECF8D1E0A03B689C505ADC6F66C95242D3D4BC4F214639D0666E954DF9FB88745D9841AC0F66B60AF21EAB136310F6C7686824C59B233232829CAC41A3F774D1DA071D0AB744649998A42429B4700CC4643E1A901A54E4AF8E89A6014C2028CE49728EE6281E0023EE0FC85F1351D81B6DA10EF6EB498343B37DB9D98BD73EE36B45FDBBEC53E176EF118B8435331F92B73EA0A101D8B9145440E6E34331C5AF9B5438A8A932E990B88C4C6D84D67B11C80538F88116194B26E9454DE55E8BBCED11B52468BE15E9441CB18F407B239C8305404E976292DB907DDC5B0C0754B8E090AA1A1477E1F3FD604225CE75B455E77F2627E3CAF4E5283FB23547C592FD85C6BE9AE1BD6952A96052F6971499F598C47FD9140F8514642419DB021201167C47407AD222F3B44D11B2969F4526EBA0D56300EEBF6188A75DF286438A034DF53B9BE88C107CA409C4A295941A7578C2A42077D2A6B1254517E21A75BD4C54461F982F2B2AE7C542C701A8CDC5070D9CADFBB449CD919611808AF97BB088E32655FB31004B4082282A488A4C85AC2932701D4299E1885C0E0651C5DDA0F625979A830D8A7778E4238B7E19EC68A21C620E6B12523ADA47CE4448F6958874AB17A5C1267B763699637C6DABF1833151C06414051115CA5D5428557FFC57973A0900F4EF679D2343D0AA8F8CB28E15D86CF5A1CD5D0D7AC3C86AA31E8500C5CFE2BB652627BA5F8E5C27D77C5EDBA0C89D86E17D0FD2A80F526E6C9E7AA7306FF7362A9E3D478A5BE7C16E128D0629CBC2FCAB49DA3619E532F49FA3606AEA623637B79BA7CBE6F364604C6DB118749601A7483807752DBF0FD9F55087E1C63A58CE686D9B4F116B934D6EC3F23ACC0541F6B44B168CCB9D8096FDB5943F334DCEB4418D8D5BA978EE1C692CBCBA6713C9560F4A9C43515717C55BB650542A81F2D0088293C522655F7B8D9C304C8089B76EA5E6F878B586FACBAF3C7E535B5CE47B5FEB2C00A8B1F6F7CC6EA6B321518658A3D0AA093D3B571565177B2873A545CE140604FD2A3BB168846818FC810112128E5EA9801D156A8D72DF6B502D0D343B3646E6B56BE46DD8408537DE48C8122148E7E2458A0B050A3047637898341840085AE2B3CCD050B90B41AF34A4E5FE7E0A3DAFD2710F287DDF2DD87308BAD9AF72E797244CC06A0E6F8463C5A4B259325A2D04E99270A5D1BA7B33B9D06C667A9A1888CAB1634970B5EDDBC9C4E225B21B9BF092356BD04576530C30BCBBEE4265582285CFEBDBB691C07CCE2BAF90C4B5C4186362226159230CAB9EB15C99A3001501D2F0EAF5A58E03903BB1B55F658AA40DC3A86F1A31320830F7D65B1483A626CE23BC736082E9A954A2DFC6BA7549796E1E3C48F6DC5C42EDA0A787B2A74E9175FE3C799B36917DE142A2638F83AE56D1ED81FA004463BE104C213048394E220905CABB9393657761D9F40B18A770AF6CB1D8790698BEF455564002924C04C9B46C6CDE4C0E321A819AD94B97C8999CA426E8EC0298080B0E5DF840AD968C856792422625B227474692AC53B34911E688FAFAC81C1F8757C04F009075FC78C298107230CF9C4932CFD732F580461C5FF78016CC12DFD73A0E80402A0D98119B175BBA82FE848732060A1A58447DED5A8A11B403DA7B082883859BC8B28F2CBB3897002340966D802391D118DA150040631EBE56F88D06900AC0447BF690669021ADE88E3B9231847BF175161E500253F8A5908C1200F35BAD7CC70180168D1088B33699920640900C062818A13C31181A0B6AC2F8F8715D04BD73F912D0A977F83099972F134106DEFAF5649D3E8D0A017FD8B831C9B0F9E69B14011C03EF9C6D056FD0CC1C1CCC1A66909E9949E4548FE36A0BD726BC811361612DA661581D07001990C6FC3C859C71802011AC444638330C886056F0018A276D390E0D703416AA780CC6B2BEF97B09B628649B52D757D0BB60200102617ECD20E39DD80B608CCC008D4A42BDBD941F1F2F3B5887840C9C4C86AE0154DC67B1E300C4888A356D40E76C52261661C08C245861229B6C460A0B64B70EE10316A89E30071937B8EE7366F1B9E073066708FB59F806FF4EA3D429780003A811948674B8EE0BF843F2397B00BE1300BA3E35D58838F3CC023090AB401445E58E3F118AE35809767B644E206066408080154C304076226489CFB9F663E34011020910BC9A9AA200A6C7E0490016B2E9711964F384CB73158941756E72D81863643C46F5500028E2AA3038488A4D13F78A30CEE9EDCD58083C86472C613D0CA05FAF573BCE80C8B2CC100B13685C42642C3125DC9C1D5DB05E61464C6BD67C84C5EB6BCBCD99C66F1239205309AD99CE600D1B5AA26D3E0738C412615920CB9ACB1ED77FCC4F0856C06324DF837B0E00CFBAE723C3DE83F932C562B9F312E03B717690590681835758B8466DE78A903444A911AE5CB39635BB3B589000866C2B18A002480476C8575F4DA4216098715AFA8C1D3B283A71223937711E9E3CB9EC0100C2C1387F6626A871AB9C96C12680C1DD6E01035005241067534B4C0E41247AE520F139A11472D6399B1A6ECE8647F85CE19C407596078F2504C18ECE9916F7DE4B8ACF31CE3C7488241B1E823276ED5AFEC30FFBCBCE9DC9FD140015003357ADE68BD6B22F1B584BF7AA5514349BDD9D0760656387C019086E5AB8AC25343E7B761918985C1224CA9EE260E0F802A54E72F691714A29CED5437010F83EE20A01433551197C068ECD0EA58F302F67DF84B45806017C47833DB0FBAAEF38EF6885FD66B3D6F6C03A793406D074FBF9FF1980A4C481DE498639D3C838C1FC78F1021993CC04068375C9257245BF00260658CC00CE98FFB39F2519B5E11D3EA8CEDA7741F5008019BC11424623DEEC60ED59001AB35C00940350B80A7455ABE50CC6F2F7DC0AC768CEEC6CB620F8D1FA0D4FEE577286734D6F3F5FF9D0802C33404A4D1C3C6796B7A74C79CE169A16D6743223B3002028D6282F000084D8D018C86E04804CE8D506ED63766FC8C7397080628C4D2404D018282E392D5491182067005203FB8695577E749496C6C7530758F6006601EEC994C8A441B61FEA26D7094B3E0C08CB0C304D2179EFCD8D0D16AAD1CAB24693CD0A7FCFAD310385ADAC01660490057FEF40C38A37482867DCE4B09663060EEF26AE03F40B0DFCC601484DF408025B641772C97125018B8AFBF793E0E6096D334A2095366E2C175306700C59C86A7669C9C3AD9D1B02E5E731A20D8495929E8CB99115EFC58EEB1E20785383850850537199E3BD013732A066885657A26E5BE8FDD9B14DF4F04929E35E9FE5C393F006EAE597934C67618CD5175F2403342E622BCCBD400E19B6009E66DA73806C7CBC4F007B3C00D3041B107ACD07136D6ECA000CCB2A97CD56B0B1B26FC280F62057CE657AA89B7D0F60D48D402C03E07911973203755D3203B8B63328FCD88AB30D4A5B0884172BB83AF066060BF4018C85F2D780C125C1626B1CC03CB9B617EFBE3B9140628CDC5FE0737E3553DA33E55B6FBC41167EE7E2BE19B0A472F972790E0C60EADBF81D37434DA27ACA807724F326D7ED00DCECA09435FADD0CA8567D7BF7EE44CB89D639430830006D6DEEDCB829C2A2183E0BB4F4B0C9F1E1DC051824673CC3D9E53E3F0536425768711D47807C14F7EE25138C32D8E8184800C8F32465134C88004E086017E0011EEEEF0240DE0B704BAC3DAF3B65C0FBBD549B3C568E382538B5C9E6FADF599809162ECC3B89BEF2F4F9F3CFB9B3B3FB8ABDBDF7A2191A3584D894DDB54BB0E32B2C9E3734ECEA8B3FFD29991C086A7BCCE6C70F4B609A26165C47C3C32E5F0498DC38E5E111363B3C7B0B82668FE0121BB011B269A20C1ADC7CE17B5E52F7F0706909520B3166093D0497C15AB3D96081B517819B04DFEE0F715BA68D34C9E60DFE71FD10E960233DCCF4703E41D4F72B0303F73A3333DBD1F6ECEBEAEFDF8B1EBF5402CDD9C579E1BC5D665DD7500D38A012EB1DB437796BCD2BC1B983206BC78E25D22AC03B243E33907D9B4D9319C726080099354717168E2FE6F3FB4CFBED78E73DEFAFFFB5D97CF6039AFA8D46A9DAA4C14CE027BB7EFA0EFBD2CA4A0D41A606B1825EF002E4FAC2CCCC951441976667DD2789468E4C4E3E20C6C7370194DD952D5BB6D74E9C305D5481E29D77262594E905DA266592E9EF83CE4CFB10CC30D36D72628200AF06C630880C02035BCA640A5368AD2300CC65D0E3A74A96256F60C0BBFEA0FFBF00B1120F071BA6817BE9B95C3142EB2625422F57BE442851CA0CFEA1F13CD1D2F3E3E3271340608DA3939395FB95DAB96E7272EF867CFE1E79EEDC064CB82A8FA6874B1B4BC0418B9B4C85E9D9ED793FC11587106801DFB3841246F1F3070C74D1666770F076987D60717151A70088F7C9BC6AD33C07DB6ACBF64AD0EA5DE87DD09E41BCFD175AA3EDB056C0488FECC788567F72EDDA7BB2131343E824760DECDC390A26389CF52E660900E08CF3919C83018DD75E4BDE5F223A39EBBA7BD2845017E43559AF3FFB1FADD63FDEC4F0DA69DD4A93E4A5D7D10AFDDFAF29FAC08F9BDA2692A96444DB021AA977D83F219AFDC9C4C4197ED8CC80749F39937B8068D30EAD778FD4EB87E9ECD935A869EB0BA3A3824B229B649E9F27C22B7AAE5CE9AAD5965B7F7E2CC665B0AE7523CD7EDC166CAB2DC361BBDE3F6C2B2C7E517F794E01116D666AA5D4CDA460F0C34DFE6F76F646A2D2934343F738972EADEE43312C126D2B8D8E76FDE8D4A9D7B1B9DE85485A9952E9F2FCB56BFF7995E8BBAF139D6E0B384E03D6FA17B078D1A93FBDA780B44BC54A1B9A6C0A463E05272951BF353838144F4D75813A63385E4303D46CCBAED41D5AA8E8F4FF15BE093BDACBADD12EABB643EB5BB1B05B05C07B99AABE5D0BB8DD007C545E06FD3F7FFD0FB25CDE52518571F30000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (30,1,'Firewall_(96)',0x89504E470D0A1A0A0000000D49484452000000600000004808060000000967F0630000000473424954080808087C086488000000097048597300000A6100000A6101FCCC4A250000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000023314944415478DAED7D69905CE775DDFDDED6FB74CF8AC10C00622156120B0112E0022E224532A4683A914D2425878C1CD9DAAC248EAA9254F4C38E92AAD8B17F38A9248E9DAA5454962A8EE5B8CA4E282B52289122B45012201220C5153B06C00C304BCFF474BFFDBD9CF375BF4663082E62A86828A9AB9EA697B79E73EFB9E7DEF740A9344D6559BD1EDC989B9D9DCD0D3C33B3203F032F63B99D50A8A63F35D0944DF233F25A76041875F978C3094F5DF1E5BF508E3C3C5E7CC38D9452D9DBC337DE68C78F0EDE230FAADC4F27019F5546EF05BFABAFF729CB98556B2A8717A67BC18D262A7BE2FEC5FF347760A0FABA6D0E2833FE95BE0FCA81EB1D7EDCB3E5644135E3DF8AD3EA7F918F29FBA78B8003CA0967CB1F940FAFFDB14457BCAAFA3189C4948FDD6877C94691B2CCC62199347655C2E41979585D9909DE582E9D30FE61F8F2C456FD399D9538AF5E4E9E970F85516DEB4F0F019F55966F953F642C9A1F90D835AFC888C7464B6F3B2B10B1F2ABEBF25725E08CFACD309F46F1E4B97BBCDB86F78727CB8F069F2EDF2B7F9C8666A978207E466DF6C2DA7FBDA26644C1D6F052BA2B48D566EED7F5FABE6038D693412355E179F9FC616481FBA9E2B83EEE7B9980C6914AD59C35FF59DC3426E4EC94DFFDE1D8C8DA78DAFB8F8B8F8C0E5D75C30F5786E591D5858CA070B8FC0BC1C2DCFF78DD7A1F2F8F84CF27D7C6696A0449F899B8993C12BA3214BD60FD917CF6B386EF4451BC299D885E4E7E497E71B8A2B7F9BB837DDE99E049FF6CD2970EC7D5C579B72F7859EE09E324E7C3DDF9DF8D776CF32BBBA305E33F378BE53F38B60CEBC2DB26C0CE952AD18974431ACB37E5C934EAD1E8A9204D779861EBEBF22BB5FEA5DBB981DCE68ED6FFD5E18F8AA5F7238B07DD6FA61F083E32B0AD376B9A0D75208852890A862DB3E9FE643C1C8D03A318B5D2FE70F5EFED946B836FC625B9E44D2766C3F6FFB07DF6769C0CC985A44F4938966870A330B5E319E37369BF123F48245854FF38386DAC6D7E3DFD8DB181C1EDEF59020CE5EF0EEAA96D5A76431737143DEF43E5BBE4F3532DABBFF058F003D9D6ACA7FFED0AB782F7495EEE0C5F540FEDC1C7C5BF5DFEB85C7AA41E9969EA9E8EFF22F86879B33C565BAF0BAD6B3CCAA8CD8D591224519ADF61FC6E62AA5D912F4EF3FF989F885E55A3E6A8B9C39754C28B6ABFFC3924E54F269BE9A0FAA7D64D86943E9A4CA579339131F1C2B958FA76E684EB7AC7937BD244ECD64C6A3427FCBF9CCEB2E73D45C047862BADB3D1EF85469AC6897A78E144F94F5CF3C20AEFA4F1C7EE238363A7EB95D7D476F55CF37072FF7C351ACD52A36E2EFCFEE257E41F4156B4E6FBE78D4FCF4D7CF9E6B8ACE2C543F116CF559FBCF0EDE495FA072B9FF34F25DBD29A12555262EE95FF9EAE8D37265EB2D35A6DAA703EBD33280493A6A14C67AD25519496E50F4505736A87312437CBCA44D4CAA85689DCD0DEA45CBF118B89FDD82B4D695D480654D57090A5523F1C8F1BE3C16FBDE708705B4ECD7D2D5D1721521395FC7DFF92DC1FF946A17526BDC648ACDCEABF79F18FCCF1F4A0D7485438ED7EAE5D64D33452B2C69BC7167995C89C246194E6A4687E2532C4F4C354169E497EBD753EB2EA07E3479B27E272657B4E122315F744B23B3965FD07EC7F4DAE64E5C29974205C5096773191DAD69C448E98AD3FB5EE4D5ECBEFC8F5991F71064C898BF107E71FF2FE8DBD5AF5795E22712232B0232FBE9F1A85217B2CB6900D90B8D927E24F2E3E363AB2FC09806BC88A56B418AE06B88633664A70291A4E47E598B34225BE9F388699D482A78DC79C11F3911017D97A2DD9D7980F4BDC2E99317ED35E6FA6F97B9353F2C534B6D7AB69F77C5A2AAF73940F5D689C8DF30164A205E25C3F15280F0EA6A43298DB629EB48717CF27B68A94E9CDAA01A3610F354FC64AD512A97E38AE249EDC78E99F98BF13BD680C1BD326D835FE461A261F35CEDAF9DA5A473860B16C25694E89E51B766D4B1ED296486B3A2A58A15F5CF6042CC8AA6A312AFF991C583DE039EEBD5A9F5722FDCBF142A96CFD7A63D63B201551738BC12DF32F4769D232864BEB1D41C4E3B223538EA9DCC8FA8173464DC5F65DE105EE337F637AAAB51049BECF90C26A5B280BD95F2E0B53A110B97C64C9C5977D00960A7892C6C5D028E54C71C358C2FDAEA8A1F4A599DF701E997E2E5A3579C2135545C423A3CCDDC8B6959114062D31613A5333150BC78A5A890CAE73C4AA1AC814099396152C7B022006C3ADF3C9DD0BB63FE8B972F3C00D8E38C34AF223C6135E2D79DC9B4C3F32744B3EC125EFF7E324F61A516B78B32301645C5989D128CADAD6E6994F95D7D856DC976C68DCD53764C6E64A1954A9C0FB8C5C9F9718ED5671D492043D2C09BE741AF900029ACD48E6A723C9D5DAA7E7F49BA8ACB138FB1349AAB1188F17B7378EA7DBABF7E360DB62F16E76250173890317950769C8C4605520C813A90CA1A8BB8998D8D586BB4A525A6F1E2D56CDF9654D40FD6FF5D726CFCEFFFB188AEF844614D4934DD05A49812E107F205FB7572D9E49D68BA78C2490FD922A67F6505C45E195913BEC30F9CCDCAF05FFB634EE7ECFF81D27843ED7D5BEE057FD43F2927373B16A2B824C79280C5BC2F668C575059D018B00FEF4D1A64C05AED49019C511ED5CA5B6CA166B4F227D9F4486BC0A79993624B70B6E08F5A2B2C39064750802D0C8611FE9482C6909F673BF27C9B5A138E386B49001261C6F7148C9F843E621F1A6BCE54B00BADAB9F9F04BE70F07F73A65EB8B79DBAB43FF070D53891103B4A65DC81986CC4D45F86CC8FCA96455BE604B7D22946004E9FF6B41143E6B3D73EA8BD1574F1DF4ACB880C804606A7B724DBCDD5723AB50413BEEBFB4C2A6A391A1358EE4FA0D9D05678F7952FD5424A5F7A5521DB5992CD27F8D2DE103AE443E022087066B3414358A827C0B4075913E2741D419AB9D052B42C403EA0F5AC5D6ADAEA4EF4776AC877491F510E26827B74A69ADBD3C09789FCABF7ABCF117670EFAB7421692A1D1DCE3419C1F0F90FD5691DA926AF04EFCD0153F8692E03262E8F42022D5C50546377B623CE798A7FEB57CB9749D329BB022E13E80C0CB45548603912844AD59C076F85CAB997429FAD01B6F2C8BCAC382960C49D744123FE88A3D8C63E00CA30DF8DC8FDE2F06B0E5441F478D21AAF745126D02D27553ECA70B922E1A1216910BC8D4FC77F019E716EDF525FF7702093720405AD43375AD2C466AB91060F57E3851297FF2F45FBBF7F37D65DC3A95CB1B0E8AE0BD096CA39347AA0383D3A75C295F634A61D6100B6CF40D238AE179D67DC29218452FFF62CEB10643C9DF8E28BE00F9D9EE4B042D16A8870CC512238B9A370040446BDE87A59C8C759417CBA6ECBBAF5FBC18608790681C4B354C31A0E7E1BA401F3BC9613F43F87D14FB5E8755F05B7CBD2FEA9C253980CF6090048162A762CF5B621DCD897BA32BF1100E7E9D8B75F2E28D86C5E6A727B68C893CBBBC0880779FBF18FD3D6A31637260ADF54C5C4EEF4AC68352B1258EE0A2CE9D8633418A8FECCEC9989BD7856D68CC9178A72FD6ED81A8C3058910A9A51B52BDE735EBF392D4E15A52463CB47930D23E3F2E201BB6F85A32DCD700AAD106CE415D305170EBC0CB70213795589245584CAC1287A40912331C71408A422B3A2374D526297D5897074210B89B782E38BF095BD2ADE8871DD404AE739B27218A781A9B5B64D91130EFF6CD9C8E365287875638327A4DEEAE68653812DCE82D86DF17F16A915C9A0D6400DAECDD8422691444BD02A0E0A85BBB3C89119DA999C8E2FD4D31BE0309B805B6D5851B0198F9FF5D96E61D8B200719508B250770FCAD9EB8D86E648B21EEB79131C7A0E528C811004EB04D00C2EABFB420A5678AA25A20236C0786F6A949FB4FF6E22FB193EAAC119C436BB327D69425DE582051DCFE3EB641FA50409F003321B5652741A72F7AE3F5A9A8C0F73BF69471C66ACCDF00ED2CC4B5C62414E4FE50566D73241CF12029908DA69218D7138EC6B07EB087289021A23FAC46702CA644061AAD7D2D5100A688222CF300B18C6DFA13291CB3C5395490E62D4DF85D6A7A5372276061C742BD4D1CB76145772BF5BB1ABA39EB8EFFD2CB7FF99699629D37C4C6629D33F4FBBF429776AA5197D24B15E93FEA4A7508923A884028D932B42A42A619AF2D3B02E616A25DCCE66BD0319A9B63F16BD05EB89A08000D1E303500D5B223F3A3BE06DE9C698FD7E322D609DB4D4FCAE80578E940DC06AC106B941AFB172540F4338ABDD1404A271D29BE9097C53D4DED58E2722CEE164F5A1B034DA0AE171D75D153253825026B4C0D497EA28EF728BAE74166BC0AE9674BE1CC194D46B64CAE1139FA7C2AFD237999BB78F9DE7EFF484D0CFBE2D7FEC11F244F2F2B02FEFC803237558A0F9896923500DB5F0590A1F9B06CC2BA56DA9D8AF1248A2C8B1E523C826637F6B4A4F29D92B6762C90294063116EEBF29507698D7510C57AAD4D9E145ECBB52D61D8F16158BFBE17D2356F8873C4D4D19C34374AE59553625F40545F848DC57E67F6ED94DA77BFDBAE01247F0C24586DE5493B8C25962573E7F32F18A677FDD52E78FA9C4C6C7B240D961501F73803A5E37173C3EADB6D8977A0A9013831EC5CCCA206904CC80D6580E005F9B6A369ADF5C5851FB7EA964469DA83C295D17B856C309AA1E70B632622B925B53FCB8943802F39E297B748F5C84BDDF566F78D4BE107137AD3A4033897D0346167079051FDE8074635E0ADB131BD4D303C8CFD5D10E7F871A3A21661610D44FD88E40A05F15D579C7C5EFA0607572CA769A8266020309393DB92E9DA43289A68749C0534356CA0A20C484807B2A285F65E839181CDC2361C7490C9A29092819F10B58C5E6712D1ECAE93CA4B67C5C67B0B513EBB6F8F0C2092BBFC58A678DBEC36D8B91CE4AF26EE8A1592ECDD0BD76448542C8AD9426D0090F59D3BC5080249F17DE5E04161C1D0E4E0BCE2DB6F97C2F7BE27F3CDE6DC3CAD53577A46204517B358985A7604C875975AD5BD0ABD148A9D67681DA73C249D0A9158901D447CD2C988EEC6B30418D6F1520D11DDD460ABE600481A90F2F153DDF5E6F68C49E1950BED9A01104300BC70DD751295CBA831395161885EA224E1CD37EBE82EFEF087527BEA29B11616D04C25328FEF2BCF3C73390B10FD8CF6388A7A6B727B1C4155731CCB8CDA7655479052B25C5F6D887F1B97F93FCD3BB34812C80CE32AEDF8717BB20070430DB033095F9E5E237D47261089ED0B6BAE5F2DA51327DAF70EC62B12AC5A21F3C58AC4958A069072310310FDC141299C3D2B85E3C725373525C54643EAFBF649B5075C7ECE9D3CA9DF6789465023484F0CC2C2BE3E98831189B02F1F7F53489082BC488780456C5F3E71A2AF54AF4BB15A1517C7E035310BF2C8A466A331BAFC08E09B3346EA4CB525432D8E4AE9F8B4385326A2109DEBFAF56D8011498CD4F91DD74863EB908E604A0065C3A51EE3029D4B9734B8B9E96959C476D5A347BB113AB77BB7548E1CE982AD81B56D69219A096C02C2BC55AB24015911B2C4989F6F175664CDC20D3748B872A5140E1F16E7E597C569362506C021A48A9FD39E3A5177DDD905106F829CF9E9E92BA4687E6666725912B0EE5F968B0A8596402C5CB70D8D504B5ADB4B701F689E00BA87936704E651E44AA7E04EE6E6C4032059E4535A5AAB574BE5D5572561A1C4BA3EE4A4BE658B961512E503AC188007F86CCFCC68B018BD2181E7B6DFFA96E47EF003FD7DF3965BA478E810B230EC829BE03B6362A2DB87459D02ADA7A0CC109C438A2028BA6EA5849A61398E94ABD5AE04E5F05BA9561B589604CCEDBA29A136172111C5D3A77504BBE3E35D80F95ADCBC59ECD9598940923734240148F1A9C5C800039A1B02000F9F23009A07498563C7C444140720B0EFFBDF977216F988F02264477AA2968537F17DED6A12B81592D2BAE61A4900220380775862120812040598EB88E769E0591374A0E077F3C517256D34A21085BACEE8C731AA902B6682075240D8E2B224A0383111371021941582E8420AF8DEEF006A414B592C1580F67041D5E79F1703F2C2E86C8098D22BAFB4A31224B8909EDC6BAFE9F7218B2BD66F5C7FBDDE0F0109601B29339A0C7C6760DF94AF06A507D9619D3B2726EA44BAB82806A426DAB1439C6F7E53ECACD802FC1899653FFBEC150D5872C71D62E2B84DCF73831E1FCC624D423A52182C4B0298A6D46B1B60B4D6ACE9463E2390003B88A0182005B8F800693D0750F89BC28551A319C15AB7E15C5813B81E33AA0040F2D06D0352136CDD2A25D8C47CA7D813A216223AF79DEF5C061136D3029982F5BBDF41CFE39E6C4971AECC146622CF21E592E33DBC610976ED92EAD4D4904FF2901D093283C597FACFBE200AC3E5598411F506B5D9EAF86D6601DD0B0BAA42AAB35806B8E00234BE8034A7A6B710E979109501B378E38D5282D4649F9B00C33C7346131201241670175ACFCF29F6A7895ABB163D9ED2000A2428465DD1C0625D35DFBE7318E3BCE2DB6ED312A3262785B7D4126C136FDFAECF43CE9F07932D514F3C2129F631DF68CCCE215B7BFDBFBEB3866B5AB645B876E448B8B871A338B818164A46568428A33C6842202301961011AA359F60F17BCA09EF80D3CB0328FFEEBB45B0ADDE0E5910DD74934400C286A428D40F3A9F80128546CCC43E8A943180E9A32FA0A4581DF2825B6F15F3DBDFD69962649980EF0C7EC7846546A04631130435ABDB0F909C284AE43DF2EA1230B3678F4DCDF6A8D9908E3C8A710E17A6250640E65F7A49F2D451E8696BD326C953263AC0781B36B0FDD7171F216B480401EF4A0832C37AE185EE670170295C54D73A9270463A330164B2CB4D6C5B678CFECC85C5999F33C2F91D8E45F9916C3D6616F6393039391422006CFCC62CE0082240165BD8E7B21C45E812303F9FEAD4D69DAF251E4024F08C7416CF103A4AC9509DC80F3ABFD346D2FA05E80318F142922857B4ADAC096888582362446F8C0C32504B52DA5A68BF2607DB515608A88F262A01C006239A520879622397206314BC7E0257C573E3F152DA4B92CC510465880B8A78FC8D6FC88CEBCECC45D17B6814C15BA57041316C5F1E1795E71C856E0717EEF444728048B70142EF67ABF33BC948B0BD0DA0BAA301D400ABC7A9C490238335224D2FAF0362544756F4D8005A9FF4D411FD35C04E507BBA45987D058305F5A9773D13E4C7081010F2BA7FF8662228980128C4D565494063D3264B4F1971B1993564A46736D4A45504C82CCE49661D5944115D8CF0940332CE76D01F304285BF2303747384A22A28A849677AA93F73CE43F038740309DC56E05CA8EB29481046392CA87EA13027FC0EFBA23B12661E171C8B99A33ACD9AE0B389F58626264662EC3F931E838FA4E09C8B38C6ECC58BCBD3863AAFBC12D9B8085E8CCF4846A46751AA18E9BD910F0F6EB1FDEF442D3FDB9DCF5A6EAEBD56F7082A8BFCBD7BC584FD3432FB4930D1F5A63D43B414D9215827FB4E3113F03921B19DEFCCFDFB25443F90155B41C028901AB1F9CAB2830F78C5F1C5B934DDB8D40559201F84B8CBD386AE5A65D2121A702A2C8A9C364658CC4B9774D1D3832F44B440D35910992DCC04C54807E82CBC3AB211B5FA2F9634EB569935002F650443DB531C8796538F924908DF333B207929B51BDF1BD877C263707BCE9B1018068A73DCD343181D3774458FD0FBCC0DD6E7F881F7034C5C431EB5A73638B872591210E5F34A5F180160EA0314855A60C0E7B3F06A8F8EEE989D66F74291190A9991453AE7F70A51ABB2D9CD0D3788EAED5611E529F51D8D97508A281F28C609E73F1C1B70B289662DA615666146D1E6D8C15CB74EE4C2056D8DADDB6F6FAF07826390CFF7F648FB6167C571060264E4CC9991149217732087633890CA69F60AEDF3B8B03CA7A1CF3D17F2F13D467F48D7810BA1C3E1382201D0D45EDD1BD0BD641A4E3BC8CCE8447AC26E93910ED034918C6AEC4FBB1492CA4C80CB49B92F164B2C26877133335D5931396A3E795212664A873887C3BACE0D1C4D3CA2DA06511E87753D915F440FB2F8E4933299245A82B26B63062CFB3EC0BBE1063BA1B5E3400CC58CD1A40B1E2505002A80A2080A7F87E62BF405DD4C80E6A7AC1174267428948EAC66B099036931DC120B332DAAB16387A873E774C346593211D50A9E3E06110A516F82740B7291740AB581EED9C988EDC896013279C32626F12493528563B197E0BFB871B06F16611BD1CFBF0328F67CEF359BCB53828C679F0D53467E26299CB76CDB26829A90F0EE12A2994D9026854D11359F91CF3E8063045C200190AC71A204913C90A6BB64D6162E00CFC67E82E79EBB4C204831B76F97E0F0E1EE777900EE1E3C78658483A8268AB774663F0E88A114716461216858B08B207BE8FCF9216615357F06D293D95E16E5FACCCCF294207FD72E5BFB6B4A0AC7BF940C64816E78185D2CBE58E4F9E7DBD1D689FC6EA4239215DC53CCA9286D28160B35209D98D0D348DA43C5E68CAEA46317B56EB3D8E258CC000BEBF17D4C3B4A3745A2B3DB8ECC2E76DAD0757D7C2C2CF4B4AE5EE70E5A56802FA5E9A545914DEC84AFF86F6120A82CA4061284F52E55EFE01F9CA7EFF27F5CA34B00278E2C5CC24E15A02BCE683AE92ED75FAF47C3BC41CEF78C76BA21FA71BE5776E761636E4799600F41C2B0AFF08517BAFA6EA3D3F5F958494F5433D25B8C74648D01D20AF81C81C40811ECECD9A3F76D23FB020EE178BF984598B58AC5993D06CF8F0519E71773748D05DDBB9507790E7ED7D20322388E26DE70451574EBC612ECD5559EE1485FFF4CC78F731C8D229CA2B0B14072B6C2F90DA3923AAC2D65B5DD4026B850465D0C8292CEFD5683CE855E9CAE06516E41BA14A7A800C066E4B3F8C2CE1A9CCB0060EE9F7A9F80704A083346838763711CEEF674DFDC7FE58E3B64FEE9A72FF703A81336806DFDF0875A0E0DEC8F4B1F08F39171FDF57AD5C5F12EF1EE1982A8B71F40CF51EF5CF752D0D325EF55CFDF2E111971EF562674098877EEB475C7C901178B1A8AA4762B3D5A6D427262D841C13A02FDB5D6ACE9126452BE380CA3E3E18D1D64807633202B87C8777B6EBC338A5D4819C18F5E7D556C14F532EA0FA3DC04B0FC9D7D006D266741FCCE8615E53E431CAF6B73B57F8E3491ECB463044203E77B89B785978E22101CEC094018D89873DE02FCEC1E7F7A95DF3B6AD696B1778D80F0F9E7C3147E5CEF1C059172A3DB7D3A14B812CA8ACE026605A3F7CC19ED40C29EBEC0A1C4C0E71BAC1DD826876D992526B6C9533AB03F926A036C1FFB88E6E6C43F7B565B4EDAD546CF8D990A8AE93C6744941A8E424056EDBEFBC4C3712DD61BAC9F1F1FD77294749E8A28202878D3A76F66A68F0F4E72F6C3FAC31B33659C13A5E8E2C58B75B9F2B1FC74C9927496A519203DDF49DBA728B554A27E54522E9FC8962D96C188A627E7E324B848363531D2D880066740D381D89027CA08239FFAAC239F9E1E80988C52687F046069295B1D67A3EDFBCD37CB22EF0563314010B3A60AA003C8830972CB20C9C47E233EC586FDE679FF192485FCCB7BCB703424257BE5E98220412E328DAF79D4178B599524511DDB5451ECEB90A2DE1B32497B5067BE09F8460FD0E61BD484AB6DD7CD8CA575FBCDC8B95C84D109B3B962D1D4DA8EFDD8D05401298C7A8B5D290764EC0538847BF9E5B68E639FCEC68DE2812076AD0EA4C2D9B9536C640733A7C8FBB47C9607FBB620251C3593A0B0634B2DC8DE5C47DFF9AA80DC26EFB8C1BA32736C2CFD77DD2501A4CF0680FDD81FA3DEA0F5E58D7A481C6B07E589FD4000C051A5BCB4338A28E2D82CC644954F4954793F6066C67A83A27BB5F74BC1CC9EFF4A7A817FBBD2F5C636F4D0A190C5D280CE3B005D37459C50E2AF7FEA9444883E0BE00600DA40B41A00B3C0BB5D884CBA973CC701D0FF905A8CAC717B1AB532A27C0151CF88B7200583BFFCCBE2621D7D0238661500F33E8287636860791520204166845872381649EAF62C7CBC0485BE05A22CEC93D952421DC9B1BF40F11F39776ED8A151E093127C900004CC4EB56F0304C21271E5BF0C7A9B6E6769C4F7CA55464ABC44A67A1D567AB5BA71B91143113690B21CE32688361FD24110A8DBF9BD7BC558B54A14E4218788A5F32030212E6AB12331BCC8DCE6CD5DF928C2EDB03962B4337B6CF4083ED6F7F1D90150F55E40A1D5151C835E9F36B60FEF6D009B8D28B87E71D3261DDD8CF4AE71E04D1B2C7E87CCFE7BEED144C1EFCC200BD6759FF8A854327940CF671740F6D2FF748D7A1BE0CB12E0E39E1AA17AA42BB90A416F9E0164E66B96E5D9D75E5BF44F9C1013205BBB77EBB94C0C995088380FDE3CA0AD43A4E6107D212501A45062083E673F5A6A8E1C9185679F9508C09421278D4387B44E3B88E2E1871E121FDB316A6BD07B3DBA40A41240CA870779E2A2C1C47E339248900D32B98DEE2F203DEC016A77DFAD1D118909B190BC0E5ACAE84C3F730C209C7F368A98ADD74980F50E0C4B3680CD8035AF0274D459A443502FC19D0183BAA2605BF8823B35FF328A36DD11C7EF5751B4D53E7366AF79F6ECEEFCA64D2B3CDE89C285594C735C30359740B34788A8B7DFFB9EE4204DCD8E27CF23D2FB3FF0015D582D489579E79DFAE93676AB1E80EE2DA23C99C1071ED056D3C6BA04D8EE644D0EE4923482CB4C24714580DF2B45BA08734088EF591F68816B38DEE8B97343D3F82E9B82F68E221A0B0B8D3790A0B74B42BA240B7A97AC26184BA42859225DDDF759EA648BD93939FDF79F8F8C6C1CBB787167C53076E7D3744F75D3A6EDAD575FB5F5136D008F52C1468712432B497DA7AD341075F3743BD93D5968BC0F208A94281663DE2983BB0900741E40CF7CF5AB97D745E413644A90C3811B96C2DAB5E2C37EE6F1B789E2CF7EC1C7C2DAD0EB82B2D797447ED012D9DDDB8091EC611C6BBED178FA0BF5FA27DE02E8377232E9550A71BCA416A45721AC373BA26C1B0446A27A0EA696E8594648468A0DF5CF3D2AB203EE9BFF8A6CF7E0860D7B83E3C7BB0F3AD152B68E1D933C8AB8C959109B29640CA373F6892774C1EECACBC1833ADA0B28FA8CE21C328CA016914D734F3DA50B72DA799A2D234537549414D483227A0976CFFA3145CE85208124D44703F978AB75242E1677D286F21F66E8510424CEC77AF566F34B7F15C79FF97FCC8037EA21963AA5A85DF7BB4BD8932D5A82D4526BDAE3639792D19B219A10FEBD5B64182DD66E78A01BC676ECB8C33F7A742D562C67969235C0622306B928C2AE52AB0B008F1D2B9B2ADAD18CBC7934626CFEF220A37AEBAD9A10CA4A0EFD051D0FC125C876C7F968D9CB4E169930F4F0C3BA863C353777EAFCD4D45A9F96B9F3687A960968D9FED7E322BFFD363320FD110A746FA4871DC0F99F44F097809FF63A21EB4DA67DD9EC2379034274767C5D64110B6DC897E5E8D1DF8789B40F886CDC0642D6B55AEFC3D9AC46EB7FEDE2DC9CC1268B20339AD930E59029830F3E281E64CB01487D208CEF5D80C82CE2BADA89F144512306EEBD57D7044A9CC139131F14E343B7585FCF9290610DB8B20BE8C9BC9E3AC3E2CB268C7D40C375918EB3EFA406A837C8862CA233D0FD0EF059D4479934BD6923F636C6AF57236469769838BAFD796830DE3F2F2FBEF8A7CC94F548865F8074ED76DDFB70962B8A22DBD1F40D4668FA1C3EC29EC90B081A78FFFB359894AD3EDE844114BB2085BA4FEBDB6B5FB94E71EB56F48745BD2D4964115E3931313007E9E32822828CB5F0BE0972F894F4DCAC4E39F34704BCB7982E9516AF07F87069417EABD1C48F1C09BD84B0AFE8B15B460F2957D48E13228D7F27322DCF3D773093AEFB44C6D167EFDCBEB070376FC98394CD00DEF12033EC8459D433CDAFA188C77CFA0EF698055D5B56382A8E3F38B6EE9522BE2EB48771AB19F5BDA3884E36F03FA365BD85EC484F745F4D52FC2580778BEF3B9F05BD938A74E5C1E24EFDC8D2F1CD6A8703DFD3C4720AA4FC35BF47AB94FB45912DFB215B2A8E579644B63A2049DF7204192CDADDC9262DEB6DB7E9C11EA5886E89376E5823D853D0F6B227E0ADC81AC7E39DA15CA71173AE42C09B4949AF8E47BD6EE75D9D86BE1BAFAB10B254AED4D2EC20195C60CE735F10F9FE175E7CF1486685AF1719B853E4FA9B1A8DBB80CA302AFB166C5822C0EC3358E07B8BF0E0FDF74B1E5DF3CAC9C9815948CE227A01CA4F3F08CA8A303AE456E73CA21E29E905DBBB8A9CBCA3E8FEFF4EC05BD48FA49321D1558A796F76E43AA4E45E8069C172519E7D96E16F5A6DE95ABB47A99D1B5DF726B03B5AC067C5FFDC07229CD952FFD6B7E43C2408088E2F09F126907E01C6F56BF838D901DAEDFC0D97C8C98F05ECAB169A9FD4FF7FC09BD8DDD765079BDE1E62EC1EC2CC1522C5FB513F50E8B7ECBAF3CEDB9BDFF8C6D057E0CA10E955007E14E17E58F5F5BDF6B5850592D8EAB184D18F3BBA9735016F93904CAEEC1E42723D8BDDE368920EB0DE1AFCCF1991B9AB78F0E42709F6B226E02D0859DA99674BEF04F275ADFEBB55287F2609780B425E777B70B945F64F1D013FAD2FE3E710FC9C809F13F0F3D74FEEF57F01BD129E0E0720CA810000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (31,1,'House_(128)',0x89504E470D0A1A0A0000000D4948445200000075000000800806000000355B26160000000473424954080808087C086488000000097048597300000DD700000DD70142289B780000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A0000202B4944415478DAED9D075C13E71BC7D9A3ADB6AE0AA22C4185305440EB42C4ADB8C1554414B50E0415151544D1CAA80A560554B4AD9BBD05441C2088227B6FA50E6A6DFF6DDD03F2FCDFF7C8E125E432206040FBF9FC4C808CEB7DF3FC9E716FEE24004042DC14A120A912212F59102E2779205C5652431CB7519C25761B14F9856417A4FC0845494070215C5EB201C18D0997959818262321D99EDB929898A81C1B1B3B3A2E2E6E29D20674DFF033542115D5455226EA2BC9CB915F4A02020B912CB0286A315C40704BC36425EC11DC2EA278BF909010E99898188DE8E8E88908D86A046E3FBA8D442A080B0B7B75FAF4690808088083070FC291234720383818D0DF1E220522CD41CFEBF2192A1F4577953C15DD4512105888C260597023A870E59064259F21B88711DC01AD79BFADCB2D7E39E6EB9E121511761F4182C8C848F0F1F1017B7B7B58B56A15576DDCB8113C3C3CE0E4C993F8F1EFD0F3AEA20F831392CE67A81C8AF946CA35E66B4988C6EA8AA052E19251FBC19259702598086C6298B4C4F45029092961DF73CD5C93188779C6B07EAE31ECB45F5070EED713A9B13131CF305C7F7F7F70717181D5AB5783A3A3236CDFBE1DF6EEDD4B442D8E5E1CC5289A212E36E6F9A5D8A8F284A8903BD7C302A3B22EBA4DFF0C1529B687D492D8EE5210DB4D0A105C8861816D8ADAAF3E442D174B0614B580E056874A4B6C4270BF11F47D37599A246F9D6F049BAD8C61CD1C1342F656235FF96C5B9E131E12948DA2B001473002F7F4524C78E9B5988BF9D7224EDE490F399C9719E4712FFFBCEBEBD2B0BD5078CEB94905E79CB77DF2502FF5921A17D753EA6D5C0F049504CB821BCD0997B72563B0582F10DC6308AE1EBFF75E3D67581406B96EAE09382F3002272B23588F2217DFE2DFFFB876C6CD82F3DB9B8071022C3CBF0DCA23BDA034740F9485FD48A83474F7BE4F1A6A7C6F29DD4BDF4AFD830471BD907A2251E152A396CE9215D82D9915B5802C1910D86BA1921273432425A4B946AA95F1B54D968D514A82744450B7A0E8C5BF77B51D978EE11507ED24C095477A12B78DF7BDA0246437145DD801E463B03EE9484D5096528E5796AA8D579202041730D84B54B02CB831C25AB21C3BDCD046B8B508EEB61009899E9C91BA0141744610B72D180A38BF9236BC16C97BEDE4FC925077288BF0608F502E518B01E3C79586EDF1FC24A126F695FE3251453A3BA18F1420B8C00696132E356ABF91E46EC95FB05B7238A7254B37C17D8DA2F617047728DE8E8D96C6C9182A09D39165BD38C762A82852D3A8008B2E6C47F0DC899FCBA3BCD96E4B82771176FC4946EA655569E9CBFDA42F21B080C042021637B8BD3E5872AC682D1950D402029BBECF40356BCB3C0471BE31914BC928DD6C85F3AB31FCB46E6A010656866D17038CF66EB25BBA88FD24A126A9491FBBAC260D082E20B8D004B78FF407B07496DC9D8F25F32BA4D82D99807B4E4116BC7554C065A6010112456F537E2523950E6071902B8AD49F1A0BA5F01F097D7285D2154D69E72B1AD290A48E4405CB0697BB25C789CC9239A216095932044949C2917E3D60BB990E2A941AC1BAD99A65E0C8C4799500877326592821DBC5503F00FE040BA5642DE985C9FDA599082C1060B9C1A5462D9D25F7E463C95D3E58B200BD2DA725133AD5ED4B7037D200EF5593F38A83DD9AB7329C518B72696938B2E908CF4FA750BA3A4066CC556D9937082C10EA8FC0927049B05CE17280EDCDA3906AA925CBB05B720805EE45399977D7668D80FC804D8DD178D19580C99E671BEDB7E8A2CBA79353AFEBC80CBC3648E6EF6B036500C10504971D2C275C2AD8965AB2F0E346AE964CC20D959682C4EF74216BAF1D11959F74A1748321F3ED755D991A041610586802CB0DAE20968CC12AF328A47859B2F0BD2D9B25938A56ED0537574C81C2D3DBD85A9AB2F07D9DBF4F4DD197F9E2869ECC1D0416B0105C680697044B67C9AA8D4A6C95254BB674DCC8D59249857FA50857A70F871CDFD54DD68C7BD5FCB35BB74B48484872AAC3434D3594954A3590894A319001041710DCE660B9C115C49205EC6DE3DAA2B7E5023744521212866A41E64E1B22528B83777B2088D21449B1D46E70DBE4456F0E913D9C3A5816520D115416585AB86C964C13B5EA748594E0962C48211529606FDB0C2C4B51BDBBBD4B18C5B8B8A34B971EEAEAEA0A5A5A5AF20C06430EC19461016E17B0227FC13423D94D3787CA02020B3731580EB86C607959727F1E96DCEEBD6DB37123F7A8450A9694FC678BB6F69DD95A5AFDBB75EBF675AF5EBDBEEADBB7AF220B2E19B9921D066ABA89EC3CA48634635940708184DB0816895FD4F2B1E416F7B6BD04EF6DA35AD8DB92DAD3B7EF63073D3DB067304AC76B68E87FFBEDB7BD555555BBF5EEDDFBCBF6022BB217BAF59DEC885BC3655FA70F9305041648B0694339E17244AD1EEF428AD692D5F858326BDC78A99DC68D18A85FD7AE751828A9750C46F92835B5E17DFAF4E987D413472DB6E4B6B66291BC48C64839AD8C11B24F115840600971C265B364431E96ACC3DB92C5B5B73D2727F3DF465D5DA042C55ACB60549AA8AB8F5152525227C15222B64DC0B6FA056E8F96EB797B945CE5ED917290315216105C20E19260D38D9BC315A690A2852BE0B831BE8DC78DA13212F52E5AFD999C402960AB8CD4D4C6926039AC58BCA0669ACA29DC31954BBF33460E105C4070115839026CC677CDE1B259F2101E962C82DEB6B5E346617ADB834ADFFE63AFA7F714011408AC8A8A4A8FB604DBE227DE1D2727996926179A39560E1058C060EF8C6E0EB7C99287D15B726A3B5872424B2DB92B6F4B3ED355F10905DC9FBCC0AE41568CC09AA268554515717774FB85919191ACA80BA7964335973B88C0C25D3339C8C4A2C06D16B574966CD4724BE6396E5417CDB891DF529AF02FA55E6C1934900DDC2A5DDDA7745049B0C3D4D547E3E289048B808A146C8B9E943D41DE3E6B821C648D4750CD91C67D009B694A0FF7160F4BBE290A4BEEDF8A71630B96D2EC53EFF7821BB8E53A3A7FF1033B5C436314B2E1BEB8DDC17DAC28C10AFD849CC9F233B327C937644F9407126C967973B89C60692DD9848F251BD05B727B8C1BE90AA9C0DEECED0B55EBF5F4EA4FB9B8BCE50576AD9E5E85B1AAEA080454455D5DFD1B518215EAC1B953E54D72A6C8BF44602167923C60B054B82458812C995F21D5524B16416FCB6F294D7877D9BF37327469819DF3F67EF5E79F7FC2B97DFBDEF1033B14F5B1FDFAF5EBA3A9A9F9350BAC4C6BC10AFCC0BCE9F21A79D3E49FE44E93070417105CC070B349B813E41BA3763C7DD4D25AB220BDADF88C1BEB5DB53569A3D065C68CE71828A933EEEE6FF958719991BABA49CF9E3D95F15811CF8C5B0B56A007E5CF94EF963F43BE34CF421E105C20C1E6B2C052E10A65C92DEA6D0518378AA0B7A55B4A7344ADD7135ADB1D3CF84D6D5515930A15EB173737BE608D35348C7BF5EAA5D4BD7BF7AEACA9538BC1F27D40C16C05F982590A290533E50181857C0C96032E19B5BC2CB9A9906A034B6E9B7163F3DE365859E1B1233D1CE6F58888B79C4049056EDBF686A7153318A5269A9AC678568CA2B64B6BC6893CFF58345741B2708EC2C5C2D90A80C02221A82CB824D83C326A5B6AC962DCDB52E1C62949BF74D619D84007E5D0BA752FE880920AD8BC992F582355D521BD7BF7FE16836DE9389137544B05CFA2790A503817690E1209776673B8825872532125724B16416FCBC792BDB5FBFE8F0EC6A6D1A35FFE515707FCA062F96DD8F09A0FD8621335B5C14A4A4ABD5A3A27A6FD43F17C851F8AAD14A0D8520130D822122C52010B6E3ED592A7F3B1E4093C2CF963F6B6028C1BCFA877ADA5CDA3FAFAF54577EFD60B0294D4CFF6F6AF04006BD8D23931D75F962E549856B240A1BE643E828A85E01671C2E511B5BC2CB9A990E267C9A35A61C922EC6DE3D464FFDAC4A37D09F6F57D250C50523E3FFCC00F6C9191A6A65E4BE6C4CD7E51B6587168E962C5E7A58B14A06421D2022416D8A6A8A558720115EE0C3E963C898725B770DC9826B27123D7A86DD8ADA3F99C6EC7BBCD99F3BC254049EDB7B37BC90FAC71FFFE0C61E7C46C3F942F51542DB3567C5CF6BD2220B880C1962EFC00B798132E356A85B064410AA94C31E86D8F0FE8F93BED4E1F3AF44D6D4D0DB4062A96B7AD2D4FB0EBF4F40A4DFAF7D7C5E34441E7C44D772A962A7E5D61A35884C042B93582FA7DA34AA970A9514BB1E442612C790A0F4B1678DC48534889D09263B4151E38EA3168DB97D4D8D877AD058AF5E4C913D8676DFD820FD882615A5A3A82CE89897F2A9729CA56DA2A5E456001ABDC06890A77F107B83CA396CE925BD8DBDEFD48BD6DF2009997DB190368477C47376E7C210AA054B07B172E7CCE67A4983F525D7DA0205327E29F2A3BC53395CB1501C1050497005B4182452AA3C2A546ED023E85D46CF6DE369F1AB51F6BDC68C8DF927D74551ED3ED5C2753D3177FFCF10788122A0116BDE62E4B4BBE6087ABA86853A64E5C0B2789EA955FECA95EF10520B050458245AAE084CB236AD90A29212C59E071E3B8B61937722BA44275BB54D1B62F0606EF4B73731B440D940A76E7ECD93CC1AE63307247F5EBA7897B583A1B96F8EF7E61DA43EF89D5082E54AD5064874B82A5B3E445C25B72BE30963CA18DC68D34BD6DB29EEC53273D1DDA950B11FEFEAFDB0A2829EC023B66CC78C6076CCE780D0D55960D378B5689BABABA7FFFFEFB6FF8AFB638F7A1A7D9EF4D518B446BC9D61F2C996B21C5AFB715CF7163C35E7D0DDA83DBEE5656CFDB1A2815ACF3D4A9FFF1017B77AA9A9A1219AD6C50CBCBCBFFBD77EF1E3C7AF4089E3E7D0AFFABCACD7BF0E3E83A915A32AFDE7666DBF4B6B7855C4AF39B418F0ADA9D6864F4FAE1FDFBD05E5009B07575B065D2249E60ED198C3B8B070CE8D90C6A6666E681FCFCFC37A5A5A5505D5D0D0F1F3EC42FCAFCABEC4E41ADFBF0BF692DD9E68325732DA4F8F5B6735AD1DB8A78DC983444F1FE069AF6653D6A5F321213DFB5275052758F1F8393B9F9BFBCC0A2EDCB58A6AEFE4DB3EA372525A51F827B3C3737F77D494909545555C1EFBFFF8E6D8059977FA3F4DE4EA3E70259B258F7B6DC97D2A499C8BE72D1D3A6ED138F393BBFF818409BC02207DD6466F60F2FB048B7B60E1CD885EB44E9E6CD9B9A191919A77372721A8A8A8AA0A2A202EE23DB41D6DC509371E97EB5CBE037CDA2D656F0DEB6B5E3C61C518D1B29517B74701FDA6A77CBB8712F9EB441FBD202B0CC4DA6A63C17B339EAE9A5AD6530BEE23AFBC595545C5C1C03010ECFCACA6216141400CABB80F32EB26666C9D5903FABB6E9BFA7B56491F4B60AEDD2DBC60DFBAA9447FBF2AEA2A0A0E1630325F5E8C183860D63C6D40902962B545C26E371949F9F9F695252D2D5BB77EF02CABB40E6DDDADA5A6641C2D97FAAB6EAD6136097F329A44468C9B922B2E4F491F24F37EBEBD04E8D620203DF880B50520F6A6BEBB79A993DE10576DBD8B1E53CA1E2E3792A2A2A031C1D1D575FBF7EFDE99D3B7700E55D282E2E86CACA4A1CBDCC82B85FFEABDE32A8A12D7BDB36584AC3F41AA2F1806EC7EC5BBCF8B9B8012575EBE6CD87BB67CDA2851AE0E2027CA1220D4460C7C5C7C727959595C1EDDBB79928EF427676369079B7A6A69A591073E2BF9A2D039882F4B6425BB2887BDBE0EFBA17D05A98B1F1AB47A8481457A828B01E444544C0AE19339A6DFBDEF9F3F1E9E005866A7EE9D2A5245C1163611BBE75EB16130950DE059C7731705435371444FA3DABD9A42576E346126CDA58C57BA87DA19B1A35642627BF1757A058687FDF8B8C8C7C16151E0E6E16161F8ABA912321A2F11CFF2D834A0ADB302AA898696969805A22C8CBCB03DC12555654341486FFFCBC66A3266D6FDBCC92DBA0B7E51C37DE1D2FF77AE7606DDA2AF2A4ABEB0B71068A8502A8DCD8D878CEA953A7FC2243439FEF9C360D1CF4F5E1F4A14304D056432555585808A8D765A6A6A6627B6ECABB6565A50D8521075F546F50178B7163E070E5423AA0CE13263CC787C03A02546565E5C94A4A4A0C1B1B9B4141A74FFB1D73737B4B021519542C54111315F2B56BD7980830907917032F292E6A28BCE8F9B2CA4195ADB7AD6887DE96B4E46BE65FD1025D6F68F8AEB2A88829EE4039A1E235C278FD128ADABE08E611A4B722854A858B6D38393999892A66484F4F07B2252A2E2C6828BAF0E3EBAAF57D45376E1460294DF61485BFB618E8D04E8DE2CF9C11BBF64518A8F88039668718A921A8A7440E950A17476A626222F3EAD5AB40CDBB4505F9F5456777BFAE5AD7A73D7A5BE6C161EAE57440BD6D6DC5B67D11162AED6A4251412585C78C186642420213452F907937272707F273B3EB8B4FBBBEA95AABDCBA71238FDE36767CB74C3AA01B860F7FF5B8F100C667A82D111E336298E8759849494970E3C60DDC1611D19C977DB7BEE817E777956B7A8B74DC983543B166A33EE33DCD22EC86EC9494FA8E0454ECA092AAA9A921F26C4C4C0C13593350F36EEEDD3BF5C5A736BFAF58FDAD287ADB37EE43B56897789EDEB3E76547032AB65049E11932EA71213A3A9A89AC1970DEC53FE35164D6EDF4FA92131BDE57ACEAD5E271E33933A5DB7440774C99D221DA970E0795149E21632BC6D75743EF0157AE5CC13D2F61D577336ED6171FB3AFAF58D953A8DE3663F657B9B4436F43C3B73565651DA27DE9B05049E119328ED6F0F070888B8B036ADECD4C4B795FECBFBAA1624577BE965C345FE1EF6D8307D14E8D922E5E7CDB51817638A8D4B932068AAF7888F22E6E89F0408368893252AEBE2F3EB29259BEBC1B4D6FAB088747ABE6D1013DB87265876A5F3A0D545278868CDBA0909010888A8A82F8F8783CD020F26E464AF2FBE2C3CB991576DDD8A2F6D28C6E39B4DF211D31E245476B5F3A1D5452F8F01EAE948382829AE5DDF4AB89EF8B7C6D50E47E0377177EF964A30183FB37B5F5F5EBF3D2D3C5661543A7815A7BFF7EABE0E2C37B286299172F5E24F22E9E715EBE7CB9B1254A8E7F7FDAC3B5EAA09DDD4B8F79F360E78409E0646CDC04F582B77787B75DB184EA65650537108CD6462E3E02141A1ACA3C7FFE3CBEC52D115BDEA51E022C2B2E06F73973FEE92C40C50EEA9661C388A839F0FDF79085AADAD6C2C5932864C9CCB367CF0267DEA51E02AC2A2D15EB83DE1D1EEA96553F82A3F10870343080131B374209DAE9AD858B23F3DCB973CC3367CE60C810111141B44464DE7DFCF8B1D88C021FD6D6743EA8EE2773C0C53F0B362CD9060E0683C1C9C808823C3CA01AF5A8ADCAD7B5B5C4B21A14A96F0303039FE4E7E7BF406DD14BD416BD7BF4E8D147835AF7E801E4DC888198801DE0EF680EE13F6FEC7C503D4FE7C1DEB365E07AAA049C3C2F838379E3AAB8EDA6A61077E244AB8B292C1499F0FAF56BA2B0C205557B43AD2AC9851B61FE707EAF0D04AE3182E04D2690E8360662778CE89C507D2E1480775005EC395346442CB17A6F7B10388C9FDDB81ACEC20252516EEC4850EB1E3F84DCD458883BEE0AA7378F878B1B8C21DE7514A47B99C36DEFF14D8A731909113F6FEA7C50FD428BE1E7F02A02AC7B60360172B35F2E381E2D00C70DC7C1618419F1BB402727B1865A5D9A072911C720CCE37BB8B0E93B02589A073B444E755AA88191A51010738F00EBF95B6EE31193E379B0F9585123D89F11E84956E0696929B65013029C2066FB48B8B9CF8C2744AE500F3B753EA8A7E3CAE197845A02ACCFF9FCC62FF39ECA0717946349B00EB3578A35D4789F6590EE692EB462B77752A8BEAEBE7036A18A00EB17524440F53A53D0986359605B0B157F79BA2DA15EF2590E297BCD8456A4F308883CD209A16E9F3015368F3285437B4FC0898846A8BE170A3F144F08EC8639ABC41CAA1D5CDD6D2AB4C2B70CEF9C5063AE95C3E19D0761A39109388F9B4C40F50B298643ACE20983DD34EF07B1861AE7BB022EEF1C2DB4429C8621A89B3B1FD4E4DBB59094F527842514C1BE65EB1B7BD4E99670F0C8A526B05BAC568B35D4589F55A8E81925B42E6E34E99C5053B31E404AFE5F04D8C86B558DD52F824ADCCE5F013F1DBF01CE0BC41F6AD4B61142EB9CA371E7847AA7E011DC2EF91F01F6526A0D013328A10C8EEC3F0F9BC79883A3BE016C9DB148ACA1C6F8FC0061283F0AABD3F6461075744BE7839A5B5A07B955FF12609333EE379E70EA4A3984A53C42557135783879C3368B05E20DD577355CDC344C68FDB27648E7845A52F9044A6A9F116053B37E27A0C65DAF84D88C3A02ECF9E407B0CB7A9D58438DF65D0BE71C8C8456E01A4388F2DBDAF9A0C69E3C0B950F9F1160EFE43F6C5CDD97564DE45812ACBB8D78438D42507F5B3754681D5F65D0F9A0E283E318E21E8B9970252201F24A1E133FDFB85DDD543C61B07B6DEDC51BEA217B085C3D5868F9AFD087683F67F1808A4FE4419EF3A1B587C52E9F39032EE3C6354E92162C06970993E156564D53F19494F5043C96AF176BA891BEEB2160A581D03ABC5C4F3CA0E293F263A8E8BE19827A5924DFA5A9AA82202FAFA685618756AE831BA9854D60BDECC41CEA2107388200092BDFA50C64BF1F192A3EED283E213F92167A913189898909225DD79B9B0BC71C1C501BA30F8E8686E0E7E40AD76F55C1FE950E620D35C2D7017C10204175CC1E415DC5808336BA1F1DAA143EF3333E673B7A92068AD6EF9292922EB5C5BADECCE46462A521B1E0DAC8189C4DCDC41A6AF82147F8C97A90C0CA0C37842B81FAE8BE0E44FB6FFBB850F17550F069BDF1855B516E1D72EDDAB5A8B65CB49D74F62CB89A9B1370C51BEA06F0FE7E90C0BA136108C9270D88FB1F1D2ABE060A3EA5377E22823AE882BB7B5A4966669BAEC6C7F936D8DB9BA8943B0B547F7B1DF879E5A08F0B9533AFB2AE87A2EA37776EE9CE7EFD2074EB56A82E2D6D53B8D595959D062A55E20095B060FC24DCDAF8CF9B57BCA3776FC0DA33681024FAFAC2FD7BF7DAFDBB351D196A4CC0769140453C26090D951AADB860C236EC6D6B3BFEC8F4E90F48B058FB478C80B4A0A0CF50DB1FEA440455175F92B32550F1E5316448B0B8C5396A67E78C60BEA2C20D98350BF2AE5FFF0CB51DA016161696A1E2753CAE73F0E53859970A130C2A0758696CC5F805F005D151AE553A666B1BBC5747A78104EBDAA70F9C5DBD1ACAF3F23E43A585BAA3D5EF5F5454548272AA290A326D9C165997099316EAF2D5E4C558F11371458C8B27326AD7CD9E3DD8DFD232CF5545A5296A776B6A4294BB3BDC639D87FF3354D142CD484CAC40963B1CCF0F70114B5E9B46E80BCD53C036452DFE84E03E167F5A3C972E5DF8F3A4494FA996EC69680857F157296A6B3F4325A11E7369D17B96A6A743A48B0B780D19023E66662FD0BE37E8D1A3870AE5F260524243A5814BE45A9CA8D1A7E51B5C891D5DBEDCDBCBC8E82D15EE217373C88C8DFD0C5548A895393910B76F1F1C183912A8FBD3D7CCEC39DAD7FD5947D0BEE07AB12161A072CBB59C963CC1C44433C0DA3AD1BD7F7F2675634E2E5A044519199F34D4D8E3AE3C5FFB5E490924A156F1F0C4896C2039A03E43FB5A89D745FC5A04955BD4522D1957651BE6CD33F59B33A70217504DC514CABDC14E4E50555CFC192A4B0F50ED71FDF871A283A0EE2B4EB9A9A981DFCC990F02D7ACD9C1EF729B2D86CACF927112C79FA8FD4B97AEF6193BF63FEA06EE193000E20F1C80FB35359F18D49DC46B3C7EF000D2CE9E8553C8BD76F6ED4B0BD24559190E8D1FFFEF713BBBA0B5B36619E043A13D7BF6EC22D0F55345216E968C37006F088A60153F5BDBC07D0606F5D48DFE69D830B879FEFCA70175F14038B3D916CED8D9C12E0D0D5A9058DE26266F4F2C5992B27BE9520B5CABE0B486F7257642D605E765F85EE958C460D92C1927736C1778FA31DBD454CF7FD1A2F45DC84AA8FF1347A74F879C2B573A1D542F240F0B6DF01A6B08BB347983DC3B68504380955589EFF2E50E08601F5C08E19900AB56A1C29416F89AE46D00578AB5016C968C3658798BA5E58CC316160F5D9494D8ACE6CC8A15509A9DDDE1A17ACCD4869F260C853D03B5798274535585A316168F0356AEF41DCA6068E20F3E6B1F75C1C180F71B763D4A644A9181C373FFB705546EBD2DDE38FC89232D191FA7F5B1B575D93F7224DBC87197BA3A44B8BA424D0BCF03F1B1A07ACE190007A618C38FFA3A3C41E20FB2EFB871CF8E2F5F1EB66ADAB4E1B8EEC0FB83E566B83D54E0169582C06C73A8FC2C195B0BFE64AAA9A9691CB5B109A58E1CB1F6E9EBC3958000A18717ED09D5D372201CB418065EC6863C411279D2C8E8DD716BEB34376BEBB9B8C6C01D02EEEF497B65B527B2149052C2806C57A83496CCD6DB624B5E3271E2707F2BAB7CCE6AD0C7D4146E47468A0DD4506F7BF09D3B12F68F322152062F907B060E64FA5B5A961D5AB16233FA20F7238B1ED624EE0B5E51D9AA7DDD5E50051937624B765DB870C9A1C9939F72EEA013F3E743C1CD9B1F05EA23E416A9BFFE0A815656B09332E7E626BC9000157E757E767647BF633006F0287A645B6AAF620595576FCBFAE412E346644DEA3E36360770694FDD61787871C1C1012A8B8ADA1C2ABE186D4670309CB6B5251A7F7E7912F5E2CF8F2D5D1A6D3B69D268FCE1E453F4882C2AC506AA20E3C67EFDFAF519C260E81EB5B6BEBC5B4B8B6DE4E8AEA505715E5E5C8717AD818A2F809B1D1B0B17D6AE853DDADA7CF3A49791D1FB638B17DF76FBFEFB45CACACA6A6D51F47438A8828C1B712E5A397DFAC4A3B36757728ED1BC8D8DE1C66FBFB51A6AC1D5AB10BA7933ECC3DF93E50312C166FACF9B577970D932177CF8ABAD8B9E0E0955D023407807BA2F5EECE0336EDC7F9C3BFAC8E4C9907DF9B250504B333220DACD8DF860F003898BB7C3D3A6FD7974D9B213A3060FD6A32B7ADACB5E3B0C547E964C8E1B91B40FD9D8FCE2616858CF99D77E5BB60C2AF2F268A156E7E7433CB26D5F5451F3034954DE63C7BE08B0B189B7B3B030C7791E57E9ED5DF4740AA8025AB2EA18636393230B1766B8A9ABB381F8C9C8880D6A555151FD95C387E1E89429409D60D1E6C92143DE072C5A94E5B270A12D3E6EF9B18B9E4E0395DB521A6E4780D07DCDF5B3665951478E9EFAFA6C50777140E726F7C63C597DC0D6D61D7F214C9C8A9E4E075590712369C91ED6D6BBF68F1AF58A132ADDA12DDC1E1D9E3AF5E9115BDB5FC7A01715D7A2A753421574DC88A30B41D03BB1664DF413D4EAD0413D3866CC4BBF254B2E2F9B3A752AFE469FB8173D9D1A2ADDB891B4640C055B262E68562F5A342EFEC4893FC2828309A89E8307E33C99EDBA70E10AFCCD783E458FD8DB6BA7834A67C938BA7AF4E8810F2477C7EB9211B0BE87B66E5D7764E5CA9D6A6A6AEA089E2A5E8147DA6B6B0F6F7D86DA4E96ACABAB4B54C938F23038D697A6BB77EDDAB5FB37E83F0CB2A3153D9F1C543AB84818182E701430402C6D6D6D792E203B7C54765AA874B64C0128DDD941765AA83405956467B25641F47FBF6882BE724DFB2D0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (32,1,'House_(24)',0x89504E470D0A1A0A0000000D4948445200000016000000180806000000FEBE0D4B0000000473424954080808087C086488000000097048597300000298000002980136D347DF0000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000004834944415448C78DD56D4C5B551807F0E7DE964BDFA1043A0A8CB1C286C8E8C88848CA4450D064EA3682236101B78E38464C8C6612753A58B2AC44E6074D140C3234594A34E21CB82540CD8A803A0B38C78BC828E56514182B2DA5ED2D7DBBD7DB52B0400B7BBEDC9373727EE79C7F4EEE414892047FF53317799E70215F391CE435D2098D274852FF56E101CEC18C82776D41E12FB359AC870902ECEBACD74AEEF89B8FF8836F4721498813FDCDE5043EE120817080D5E524E586285EB346B2AF2D3949FC777A4A620AA0846EFFF10F239F08EE3C8044BA70DA1F141AE772A34E0037EE7280A76DE0B12128FDA98967A5F97B113A6D61FFF1F777ED08771C44D80C92FE2B05A4FD8F026C58C0FB45992C5B4856EAD4B56953867C60C01010FEA110A1C568B116D241BEE2C19C9E0828D0BB5B2FEEF2F6B9C766195CD540CC6EEE3C82E4B40C0E3EF20BF7BFC4A8239DE4B9D5C99BD00D71AC8E595DE8587774E21E92C3C16D66F3A3C99595AC76B57A61033CF83AEB03D24E54AFA3DE087C8FEEBB20D567E9E4C6DB7992C3C4A9AAAAB0AB4545CB2B4B4BDA7FF4FAECAEB9B9C71EF8C1296611B513393519D931026FFB3E44DC1FE7EF89FDF8E64D3E8AA260C371A286C21D46E3CC98D198FDCBCCCC22B2D823572C359DCF702E1B395B51DF3856C7F4F6A0FE0E52945CDAD080468B44D8DAD171B399F8F4E449A3CB649AD459AD39487373F3BE1801FF2232A5CAE3777F16465896B10D11F89CC2E940669B4D22BEB8F8B4FD88541AB2F926E02693ABF6CC193D4ADD4A4FC6252525C28A8A8AE9E9F1513CCC30B4127EB7368C309BE9DE3CD72220DA74516AA33039EC7C6363380428A542D1BE3C3111B70ECB64B259F7C0FCFCBCF3A1E681456018B4EEEA6D88705A2C3477AEE34BAC1EC5626C4AC58D1B5C2687830682BBBABABEADAEAE3EBB055E2BAD566B9F1C1DB2C62C0F59987F36E1D70704BB8F5EBEE24A914858B04D058471A311EEFCD80EB9854780C1E1C0E4E4A46D74640467A1A825EFD8B198CD9069611A8239A180B178DBC31683015A3AD4B030330FE5E75E8060361BDC57AAB7B7D79C9999C95903C71475806BBA804D2781975D0182F8B49DE1CE5BBFC3A2950E0527D281CDE77BE0BEBE3EB344225987FFBAFE1E3816D59EF6DEA39740204ADD1EB6E338A85A3B00894D85D4A49080F05DF945783CA6F2B4334E5F858838F156585A581879A1B2728E11B27A351D361BDCBB751B52F27281C9E3F985BB9B64A0EE6D836026027965B510B127792B9C9393432F4E48500813130F3F9D9F4FA76118F8D676B0BB5E7DA76E1DEE562ABF91D5D494ADFFDD1004416BCBCB9FC3ACD6C6F8AC2C517C6EEE13C32FBE2103DDA006A6552A1B121A5AF3667D7DD59617845A805E5F56F636CD6EAF4C29280889148BFDC23DF24F60E1DE08D8750E82C6E44EB122855F5C696FFF52AD56DB2993F4FBE65138929696C63C2B1637328383F39F292DC546B55A73FAA1439C71A512C63A3A488BD1A86745477F37303777F9F3D6561DE5B83618815EE9B5782E15178BA231EC27278625D8351A8221142A29E542537FFFBFC3C3C30E3200B02DEC1BCF4752A9F0FBEEEE05EAA86E8CD869CE7F4552180558747E940000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (33,1,'House_(48)',0x89504E470D0A1A0A0000000D494844520000002C0000003008060000006A9098E10000000473424954080808087C0864880000000970485973000005310000053101B7ED28520000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00000ACC4944415468DEC599775C53E71AC7334820C55107A2202E2206C35270946A411C2DE0069CA888E38AA3CE8B560554B84ED40A5AD072FD2848951050212053020A82B202C680A0809F6A9D54114145F2DCF73DE4E0099B88B77F3CE4437272CE37BFF37D9E379F373400A075B6049AB4FE911C7A7E048B715CA04EE3B6777C6C6CAC964824B2140A85AB6262627E4A4949D150E5BAB83AFD86786D9A66540F7AF6956E74B8FC0D1D2235E872219B1E1BCEA4D9A2D3D1A9C76E983FD6D477F79A8C3F422F141D3C7810366FDE0CDEDEDE101C1CFC262E4A109C2E38EEF8558105341A53A4451745F76640D4B70CB8DA830E57341138870E11EA7410326925E10CDA26745C4F0278B6C5D8CD8E16B00595A7EBB4B23B82C30F0B85FBDF49C33CE19E600FC8847BF2BF2AF0355D66606C7F06C4F46380A82F03A27B21F09E08BA3B82D624D28608360257A3550B19B4DF0E1BEACCDFE6680E9B1C2C60DB3C8B6A59843790B0B8A4E15E795F0D3871186347FC2026C40D64C2351D06C46A23702D04DE0741F752A44D6A82D366D100690267B47A80B72517B63999574B2F61D8BD702FCC0B3D7AA184F74ABE0A70328FB93089CB94270E6342C2102610E0BA087C0082D656A44D684287ABDD1B3489E434A60D481308E6B0EB5317DA4061903B018BC1A502CFDC2E074E3356B312F3D53E5CE7A941B2811A2070481C8AC00723703D9C36131A35E9D3A0C9D59E94B4494D50DA023A8267A94182B529E41C5A0DC591FBA534D4A8B426CDAA32F0ADD16CC31BA35895A9266A2036528394916A707D04021F8EC0F529690F6C489BD424BA0FA529BB353465A326286DD4944445F4ED215BCEE3590E193244034133BE08F8F6185AFF8C71ACF2740B16DC18CD82343316A41A23703E0237A4A44D6AA2D7A049EC004A53F66E68CAAB645336D1E460BF7EC51BF8FC37B30D0C66F7EDDBB77B47A05B7C52328DA69935919D9D69C9868CF12C481FCB829B187C1402375523C089B4494DF43F6BD2D894ED6872AE3BA764BD91D1AB9F8D8C003D56DB73B94E5A5A5ADDDA836E3E6B9D68CCECC96CD19D496CC8FA810D9913D870EB3B16A0B4217D0C023757A44D6A62F85913A5A6A46822D2229BB24193C86E8C975B78BC4FEBF8FC6A373EBF86849E397CF85C6D6D6DCDB6A09B3D916BA71E98FBA33AE44C51873B366CB86D8DC02722F0EF15E064DA5813D33634194CD1A4BF9226F2BDFA839F1290C6C675F1172FD6AE37357D4F42633D747474BE69AD1195FE2998C5D92199A10EF976EA90FB13829EA60E286DC069DFB642E0386DAA26E69F35696C4ADEE7A6C49AC437D1E477BD9EF7301CAEB33E3E6F9E3F7F0E79E9E99FA8D0B3B8DC198A46A4B70A2C75E22CBAEBA0212F9CAD019299087ABA3AE4D922709CF6D4067022ED963419DD9A264C254DA206B2CB3719F109D8EDB6B6951896ACECB4B4BAF526261F14D06F1D0C0CEC5A8226FEC8166A58A1FA706F9E06481D35A070AE0614CC42E0386D7B05384E7B0ABB41132B8A26D4A66CA289D2EC1EC6ACDD6938FC35065A6766F6AEBCB4B49E0A8CEB8E58FC910AED686060CBE572D5A9D0B4FB2BD986F79771FE2E76E640D1220EDC5B80A011384A1B0AE760707590E0B4494DA62A6B9249D5640C451313654DFC78038A142AD4270985354D61C9CA4C4AFA80DCFE0CCDE54E43C0AC46E0BFFCE62495AEE040890B07EE2F45D0085CB61081CF47E04E081CA5DDAA2636144DBE57D6E40645932B7C4D29E9ED91B56B2B5B83252B3D21E13D098DE67495338F674D4E0E5A6969E9D31765D2BC3F8FD89696B822E8651C285E82C01763700DC09ADC6D4913B2295BD0843ABB5347B15E6CE3F38886DA6869F9FAD9B367D01E30AEB4D8D8DA466823A3D76BF9FC310470626262CFCCCCCCBD3299EC4D59416651F13E9B1725CB15E0544D9C289ACC6C43931F9434911F301D52A61861EF0BB3B3EB3A024B96382AEA1D7A5F2D71778C8DFFDE646232BAC10B24B58F8F8FAE4020089548F2EB6E2747BF927A4C7C8B35295E4A499BA24901A9893D4513EAEC46E061637AE5902A5CF2F3ABEA0C2C59F1E1E12FB7585810E7D8696353D5088C87B59D9DDDD4070F1E407272726D7676767D665C64A574F777EF94345940D1644EEB9AA45B6B94A211568F2FE4E1E0F04A15585C0F1F3EAC0EF2F52DD93A6E1C8406044033E0478F1E012EE436C4C5C5D5225DE4E9A28B95B29D636B7053624D64AD6892AFD024E747F55A0FB3E1C46AB661F4E8AA3F2B2AE4AA0297979757EBEAEA9A05FBFB2F8A8E8ECE691598ACFBF7EF033AB0E6E6CD9BF21B57822B8BB65BBC6FA689A3B22667270C2054D8606CFCE926FAD0AAC25281F97C3EBB71E1680B982CD494F2C8C8C81AB1582C4F0D0FAA94B98FFA4068B2A84113A94293B4E9DD72496F4FB9BBB73BC2BE1A305977EFDE95878585D5242525C9C597022A8BB69A7E2435299CC779E16EC2ABC2B05B274D7AF9A5B05D024C964422A90F0D0DAD419ECBAF5FF0AB946D36AA3B6239A49418612626EF4AA4D24E8DB02E052EC8CA02D1E9D350515EDEECB59C9C9CFA73E7CED520CFE5D76262AA9245A2AA9890902F56E18B80B3C562D8BEE904782C580962A1B0C5C4B3B2B23E9D3F7FBE322A2AEA555959D9878E023DB897076961C7202F2DAA6B817D4FA7C18E7F07C0C6B5C7E1D0F235505450D0ECB8274F9E40017A1ECDCE8FAD01FEF5E431E4260B20E1A41BC4784D06B1B715641E428F978E762DF0E9A044F0D97D063C02B361E3D6B3909590A012706EC205B8B97F52B3125F3AD6B5C0273D8F81D7A2D5E01B9401BFEC0A6E11F8F1E3C7ED0327FE01F19E139B9538EC78D7022726E743E0FE40D8BFC1133C56FEA23A70721844BA8F6F562961BF762D7086381B2E0684C2D594523871384465E0BCEB4208F9D9BC59A508FC3A0F6C6F6F3FA525E00768790EF6F48480CDDB419C5102E702235507165F86C0D526CD2A45E0DF39E08103077266CC9861D5D662917BE306F8AF7103DF95EB540746E3CB77A9A1529D75E7434AF8A98E032BA059CB67CD1A971612D2EE2A972210404166A68AC0D17068314FA94EAC32540998E13C71E2805FA74E7D79D2CE0E8D9F8476C1BB0A18576BC01515156F11B0693360121ABB1CB862C5C14316161FCFB9BA822C27E71F052ECACF7F8B9846989B9BB35ADCAAC23EE317174E9EAC1DE8EC1CEF3372A43C62D72E78585CFC7F03AE40D74AF2F78753B6B680AE5FAFADADDD0F7131DBDC6EC569E34D8C7D4B968C3B397B76E97F8C8D21019DA4A52F405D019C18721C528382E08C8303ECD6D1817D0606F20047C7A280356BD6533753DADE8B6DD81D67E21DC5A3CB97FFEBA895D5DBA3132640462B5F803A0DBC70049C5830018E4FFB013CF4F488F2B7B77F7A66D52A3F271B1B5DC556155369E7A743BBDE0A4DD009BE3DE5E2F2DFFD26269F02E7CE05496A6AE757BA9428F077B602FF1953C06BE850D8D9BF3F1CB3B6AE3EEDE272798B83C328C5CE250BDFE13637033B08CEC09FDAD9DA9A7B72C182AC3DC38641E8BA75502C91B40DFCEC19E4C7C541D8C68DE0CDE3C14E6D6D38686E5E17B078F1AD03AEAE737AF7EEDD034F81A6697ED1CF5E4D35C1BBE5BB172F9E7EC2CEEEC91E7D7DB8EAED0D8FCACA0860F2FBF05D74072276EC800366660424F6F2948343C989152BDCD1A8EA83172B742EB58EFEBEA11230356D9CCAA041837A1D7571F1386C6959EB377932017CD9CBABCE77FC7802127BE96767F7FC94AB6BC0B4B16387E20F8AF56AED967F35606ADA58133D3D3D9DDFDDDCA26FA354F7EAEBCBB197BF2D5B265A87564FEC7E4B0DA4D235BFE4CD4DC0D5707A3E6E6EE3BD5D5CE6A2E6E9DB5E03FD63C04D1327BDEC2A486AFD0FCBC58EA110BF6B7E0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (34,1,'House_(64)',0x89504E470D0A1A0A0000000D494844520000003B000000400806000000A4C00FB10000000473424954080808087C0864880000000970485973000006EC000006EC011E7538350000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00000EE8494441546881D5DA075493571B07F0104280EAE76028DBD93292220A4AA10AAEA2965A1504418A1450BF5641501495218238505B4645A155111702828C02828CB287833D05515A51B115B5AD15519EEFDE246F7889490009D8EF1C9E030792F0FEF2FCEF784F2E050028A2A8CB92940FE3A5C4EAE2E8D40309148AEA3BBE8E587272B232AA5931313174515D1B51227991D4D114F984D162CD57468941BC342A49B1D77134B1F8781A65A1B0E7392F9B2E197A648F27C2C5474444B404040474FBF8F880979717040505BD8C8C8CCC467FFB26252565D2BF029BAC44F92079BC7849D2583148FC8F1820345CF90081A5C4204E520C2E4B506A63A9944D3114CA68DEE76EB560C8B8ADD685EDEB4CEE8707EDCB3D772EF27E6060201C0B09791E71EAC7BB97CF9DBC959B70BAB82836B8A43CCAD7E7BD62F75228D4D40962893FCB512159860A49E3A89088D009188DBA7C459A83A623348DF20CA183115A9D8C7536D383ADABD9B5C55C0F0A4FBADDAFBDE40D75B1BE5017ED0375317BD93F47799D79AFD834256A68AA02155226A092A7C2CFB2083D1EA35197C770BADC1B6D889360A17B62C528E9D114CAF26D5FA8CB6DB5D003570E74F3AAD970FDCCEE8EEAF3BBA0E6A20709EC03E80D88786FD80C35AA7BBAAA385C55168734452A10685697113A09A3F9459BCE8A36C48AA3A252EE1D66AAC08E2F75C015619DCD6643F1A91D0F6AA3BC58C8EAF33BA11E816BA3F7BCBFCE664E13B7BA3645BC2763B238A4AB21B00A022B71D013395D26477B8CC06863305CA2512164B21C782ED282D2889D8F708C31B03ED60FAA2FEC6277F6A2E7E911C7666BD08CB33EA275654E17876B53514D11878C4908AD4AA0495D1614ED0FD8D18E23A2CDEE32A0F10C099315BA0A9D56201C01F64591DE8DBB1C36A2D83C065D2B478BD699A349836C751A647D4803D465169AE8729F684F24455B8627DAA304445B8C8D8E1F3B0A72CCE64265D836D6D845D13E43A150C4700D3B364F97A298A72D712FF7631AFCC2A4014203EA32A02E23B4381B3DA5174D443BB59F685F21A22DD937DA311C74AC3815AECED17C55E0BC2A9EC160D011560215F55DD0037A500E8332BA404FE256FE2C09C8D391805C6D1AB0D00C8426BA8CD07CA3AD2C24DA6305459BD227DAB822E8F4AA6F198C70656565591515156984151F2CB87FE87C0AAD489F7EB5688E0414CE9680025D09C89F89D033D868A2CBC2A27DB59F6827F613ED68AAD813370D8DAE2D4C26ACD7D28A525252529D3871E2280C1629B6D4887EAAE4533A141B4840D127088CD0A8CB80BBCC4693BA2C28DA9378A2AD408AB62C4FB447BF15ED9EBD93541B3194287B4DCD3804561B2C58E81FAFCFA7FB9419D30181A1642E021BA242E0227D52970718ED8C7EA29D2C20DAA1F2E39B31708396D6AF64B08396563C8AB40A27D2D421616F2E91B2BFB1980ED717A25A4007167A1E42E32E1BF676F99DA3AD2224DA9C6D67CC3889361706830B74323078C20B4658E58182F9FEB26299A449F932C9EE5B4B24E1E667927063111B5D369FDDE5D2B91CB401A7CBE468EB088E36EE32FF6873BA4C8A76920CF59F5DEA1FFECD85CE9CF9775B6B6B8FFFDAB57F91C18E082C2B2BAB3479F264A9FEC06FFDA276E5289DCAE592CF2B4C25A1FC7349B8B514814D502DE6A0892E8B22DA9379A24DDA761E9DA27897003933996FF25353BB3A3A3AE0D1A347E06B65D507BC1E8D6179797985E9D3A74B0A03F7855A48AB559949DDAF5A2905555F4A0242030BBD0CA197B0D1DC68CF17126D3D9E68F3ACCDC2A29D86D0512AD20D64CC3177F767184A140B6C69F9272F184D5813386B31DF2589FB43F9D7E3C6D55948D5D4AE96821A7329A85E85C02BA4A012A12BBE6077B97C29073D8CD14E5593E8D8C6D07C4D20B62D58F00CE3C85816F8E143F031337B4E066F6030E2D12C2D2708CCE92885DE60239D536F2D05756BA4A0D6128131DA0CA171975790BA2C2CDAF37AA35DC41BED99BDD1C65DEE13ED0FB9D17EE3A739E501779C6A6BBF6CAAA979CD0B2583BD56ADE205C7E18D87AEAEAE042F9882BEC49AECA42F36DA4A43C357A8D64A43BD15076D41EAF24A76972BBFE089F66742A2CDB336F7469BC637DAA7D5656AC8179E7CE6CC0B415032D8E3CB2F9F919FB7514B2B8EA1A222C30BA6B4384A1F6A769086DB5F4B0342030B6D83C0085D87D1A8CB838AF682DE6897F0467B766FB47197F34813589AA6648B0BB37799D96F67F7B43F2819BCCBD4F42919FC0D024F1D3F7E2C79D341E96C6B286D0F5CDED0EC88C0F6088CD1EB10FA2B0EDA9AD46584AE26A2CD3B810D21DABF68D3FEDACD54EFEDCE9C397F3EB87F7F40503278E7B2659D64F0B74C668C2A8522CDC5D6D6D6B6DEBB770F1EB7D656FC76646933174D747988D12EEB2FDAA8CBC1DACADCD9D789C9ECBE5950F06A3050A21E22F07613933E1B8FCD4CE685BD9CE58892939323555454E45A5959F9F0CE9D3BD0567BBDA1C97FD123BED1B66647BB9688B61929DACB79A26D2224DA86BDD14ED41D5D49BEB833070F3E7F1728510F1E3C801D26261DE4D744750E83B933D5F1E3C747A7A7A77BDFB871E36953531354E45F7D54EB63FCFCAD68AF1D7CB47197F945BBC050B27D3B53B38BB8A8DDA6A69D438192C03DBB962D6B278377191B67F54ECB482E232333C6D0D0706E7676767B717171777D7D3D5CCF4C7A52E733EF2FDE68D713D1B61412EDCF79A24D5A9BCB8CE8AFFD674E6DE3C65747E7EFBBCDCD3DA2C0E24249FD63BFB53517FBFDE6CDF01656515151B7B4B4F4766B6B2B20F0EB82828237D5D5D550921EF7A4DEFBD3BF6F135D1E64B46FF144FBE2277237C9DBC19CC4C47F4405C5D5D0D0F0F86C6464C67E2BAB1EEFA54B2131214130B6ADAD0D70E1719C9F9FDF9D9B9BFBA6A2A2028A53633AEB3C0D5EE06837BE4BB451970B164BD791979960171791C4975C682876A0CDC527DF1F3EFC697444C4CFC9C9C93DFD62896A696901349975A388BF41E31A0A932F3C69F098F392776DE61BED3E6BB3D4730F1DF53FB8DB4123A3A778D9182E2CBA1B1A877D083B63C058A29A9B9B212323E3D5B56BD77AD0E3A020F1EC93FA9DBA5D7DA3DDBBEDE48D76A8810A77F6C5DBC186CA4A81DB415162FBDC080C144B149EB153D16D575A5A5A4F616121E4C59DEE6CD8A9FB4A60B45197B33E1F574A9E21AF8487FF391C509163896A6C6C84A4A4A4AE9494941E34AE2137E6C7CEFA1D33BB79A35D6521DDE6A6ADF58280FA595BFF315CD061C3128597A9F8F8F82E0487ACAC2CC8893ADED9B07DC6EB46F632D5ED3F7BDA1D6E57F5F49EDDFFF5D761830E3B96A8BABA3AB874E9D24B04C7631BB2CF8774C66E5EDAB87BDE3C70D5D6C6CB4CF78D5F7E79399C50916283D7AF87ECE868A1E89A9A1AB870E1C2CBD8D85840E31A2F5F505E5EDE13171EDE31DC5091627DD76F87AD6BDD20C0CA1ACA323385A2ABAAAAE0ECD9B32F10FC399ED010FAF7A1205A1B6B203FF114DCBD5D3B32D8832E7BC1FF7C23B83907818BA92D9C7072821AB4F60A7BCEE3C78F7BD0160E3233339F0C06F7F0413B54165C85F4B01D70C5DB04D2BC3E859F3D0CA1A1A26864B047DDFC2024BE053CDD4260C7C17470F18E0357A325D08C666641CFF9FDF7DFF17E15D08CFD6C20C89AC2144809B084546F232838B0104A0216712B1581470CFBFD164F884869867DBB43616F5026B8FF58035B566E80DB6846161536E7D44EC8DF3F9F6F257918406345F1084D504EEEE06BBD1E7CED5DE1E8892C56A4B79A6D142D36C203AEF918F1AD3877FD91C39EDC7310AEDD7808FB1DB68087E96A3878281ADC2DBF112D36720F24ED36E45B51AE7AD058593232D848BF4350D6F0044E1E390567CE66C101173F705F6E25526C76A42FC4B8CDE15B914EB3460E7B7A9717D4DD7D06174222203EA104E2F3DBC1C776B368B1E7F6C359E7597CEBA76F74A0A9AA7464B0574242E080B9059CF4F287F4ABD721F36607F87FED245AEC850008FFEF0CBE15EAF8F1D0B1727272FF410FD0292B2B6B1286C5D580360B27B76F07FFD56B2029361302D66F112936F3E25108B267BC55C18E0C08B463206CD9D0B0F8936C2525258D9B376FD6F587250AED73E1A88D0D6C9D354BB4D8A84008B0D178AB2E1F6242F046CD2163C5F0477EAAAAAA4AE75D5DDBABF2F20684252A272606EEA01BFBE1C61E59C7FE3E242C072C2E2F2F3F3AD4DCBCC64B5919CE6FDA044DE80207831E6E2C5103C1AAA8A8E80BC3E24355341CE7E31B36781FD6D77FB977EA5448F4F38356215D1B48A1BDB168B1D5C2B1B76FDF7E84275B94D631023F79E780A938D2F37575E5C2ECEC2EFB6968BC3980EE4533C3C2007F54F26FC7D6E4E642E2BE7D4FF1FC831B2710CBDB657C3863CBAA55CCE3161615DE2A2A10686C0C250909FF02ECF53E8F6F2C2B83245F5F38A2AF0F1E1327C2A159B35E4D98306122FE60BA5F2CB9CBF8081D5E960EAC5B671EBC74E923FC623F5A5A4215BA217F9FD816F47AA90101AC06E06BC2E5F7D1473D27CCCD1BC3376D72E23D452314CB8316C7D1C603FE98A3A31F1ECF7812BBE8EC8C268BAA11C31EB2D08020F3B910B27811782A28B080DEAAAA70CCD4F441F8C68DC12B8D8C58A7DF38470DFA1C2619109637DA682C7CA0ABA1A17862DDBA2B7EEAEA3D7BA74D83447F7F686D691916EC212B0D08B69807DF191B809792120BE8A9A808810B163C0F777088755DB95207EFFE38C78368820E720E0ACB2FDAEB972CD10B5DBDBA1A77F9C08C1990FDD34F7C27B1C16233228F40889531042E9A07F8B589981E9E33A72BCCD6366F9FBDBDA99A9ADA78D61BCF3E4E20DEDF11DD4163F9451BFFD37D3636D6414B963CC61714B470219425250D1A8B3F6D2F8E8A82085B5BD8A3A6C605EE6730DE84AD5953F39D83C36605050579BC17E09C7912D8459162F9451B9F430AB4B70FC0EF3EBEC893D6D6505D582814FBB0BD1DCAE2E3E1FC860D80870301F49932058EAD58F15BA8A3E361E6B469AA53A74E1DCB997086F7BCF120A24DC7D19EA9A939E9988D4D0A1ECF3882512E2ED08EA28DB17979794FF1B9A6F2B4348842931B7A0C17881F1BF4D9679D610E0E17D72E5E3C03E16448934DBF311D112C6FB4F14481A36DBB70A1C10FE6E6751811FDEDB72C6CE4B66D2FF0068500E23A6268F8CF095BDB4C774B4B139C0EFC86BD4B4C47142B28DADE6BD6D825787A3EC3D843FAFADD1888C0AF8F5B5955ECB7B3DB806F3EF09236D498BE172C6FB4656565C7E093A3970E1FBE78DCC6A6FA0747475F849B8C4FA2F1C4745890C38EE58DB69696161DC37044F1F7FED6C4FF4B2C9F4E53898966A49044FD0F55A3E6737511C09E0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (35,1,'House_(96)',0x89504E470D0A1A0A0000000D494844520000005800000060080600000099BCB5F40000000473424954080808087C086488000000097048597300000A6100000A6101FCCC4A250000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A0000174E4944415478DAED9D07581467D786573AE633B144A508A2A0940524014505451463B017442C2016940404141114455014D46814691A5B8C82D2A409A84855E9257410B12218F325C69298007BFEF71D7660D99D05161676C9F77B5DCF05E8CEECCCCD33CF39E7C519680040EB4F454989F844490E4A8D90A0AD08A3D144FBFBFDFB5BFDFA66318369B637060F82286924A941102931E859A4186D0F023DB237FBF5F4F414898E8E56888F8F378E8B8BDB1C1B1BEB8B1471EDDAB532F4F52DF4F74E313131AAFF6AC0319FD216C40C19D41CFD9F4170E313A4C1AD90919B31E88F11E2B44B487ABCECD3D9FAABB93F9C3C148920BE464021383818DCDDDDC1C9C909B66EDD0A5BB66C816DDBB6C181030720282808C2C3C39F22D801E8B50BD13683FF3580E33FA3E9C60E15791FF3D92088F9741060C8D14CC8374837B7828608315A56B8286D2D72B54457FB755AA667B763A51ED8AF9CFEE1B887D3BDC8B06B056161612D274F9E24407B7979C1B163C7202020002E9C3FDF14161AF2FC766C4471F28D9F3233C203D30A423CB60E78C0893234A5F811220D71C345207618D2D056C8C8CDD0C1CDD26D6E8648711A848BD11A910E84D26872DCF6FDEDD2C9D64E667A4068851E7CB36C32B859CD7EF5839FEFDD94A88B05F7C2FD4BF2238E3F2BBAE6F567E91557C0AA08F384D2AB6E507EDD03CAAF79F80D68C0F18AB46137478A542041FCE72210370289808C44BA9915B47487D8001419D8D14DE122B4EBC8D186540E766482DDC1048D1DBD6DC5E4971866F9B57D50197E102AC3BC888F15D7F713801158A808F782B29F76F90E58C0092A34C92459D1F4041911B8391A69542BE4780C79783B68223686748C8D28D6D8102762032244691026422B46A0372149930EDECE04EB8CA362F96402F67673FD06EC500CB68373D1C7B25077E2F3AAC84308B887FFC0044CA30D4A1A231A92242F0A89722290208BC4844CBA99044DC4C667DD8B0D0C1AE5332047FF17413EEA61A8EAB1CB5CB70DAC0372B30BFA7AC72AFDC68AB0FD50157598702A5665F88156B011DE6DD007AC836F2B89F9DE5214855B0AA2804023C84818B24C3BE87832368673890D6E4550BCD5CD0832840FA23102658782C78C89E0B2B235877154D899E9BFC0394BC444E85E4204D0903D08BA0F01BA32E2E0C074F0EDF122B677C689C26D25A4B108B2622B64D2CD24687EC506061D368806178748C1E1496361D7D22FC0C562CA2F0444EC5AA683B19B7126B346C6807370CA04D105C92AA2CDC9CAA270673C023CAE1D32E9E6B6D890E18C8D3832368676121B9C45B035361064141B1022260AA7C68D7C5F70CCA62D7709A018348A0DC2B903D1C1296AE2BA29AA62EFEF4E1483BB13C400812620B3BBB91F6283008D5D7D536B1CE4B8AE41203DDB628215FA807170AA9A9452AA865863AABA18A4A821A9B64326DD4C82BE3596D3CD6DB1C1AD08B2F5CE1CB121D11E1BE12CB1418046BA31F233485B6D0CA5175DDB1C3C60BA884C2DDAB0742DB18A344D3148A38B01020D04680C7922276841C406A9700931B83D6B12E41DDE80007BA3966D9F1F8D461361D120A1028C7BDD0C1DF1F48C496290AE8DA485206BB240566305CDE9E6B622A84042E6121B5445B0EB91BB431164058D153741FEEFE425D342B6CAC90D56515191D4D5D515478045F90DBAE71BA383C8FC523C140932BF1007041A08D04CC81DDCDCDFB141DD3B73400E1115AD73A0D36F4D515292193E7CF8A763C68C914670C5F909B9C71BDE9F22E17B7FB238DCD343D24590316802B278073793A03BBA992D36A88AA03CA79B7B3972772882D769B48F6E2A2A6F1D3435E15B4DCD747579F9097272729F8F1E3DFA137E42EED1465953C56D1F4C158707FAE2707F0A12099ADDCDFD1D1B3CF4CEBE3232AF315C52B6747A96EA98315AA3468D1A3D72E4C8FFF00B32CF1BE4184A2ECC369068CE9A2E0159D310641234BB9B49D0DADC6383CACD6DB1415504F934725F18225DCF0A97D4563A3D47454E4E0743667572BF01CE3616D7CD9929F13E678604641B221920C8D3C5218BCACD7D111B7CE89DC3A444DE38ABA9C13774FA534AC81A1A3913E5E52721C0A39890C57AE3E26EBFB0689694529EB17863EE2C09C8359200041A08D00464363793A0D9DDCC1A1B74EAD8A072331F476E86E7F8B17F90306D34341AB840CEC6712123233312E5F2E0DE40EED68B4A16D08615984856E6CF9180BCD948C6083209BA839BFB2636F8D53B078D1EF68C1DE6664DCD5FB941565750A0E3C2C7EC2E7A04B9CB173C34A54916CE934C2FF84A120AE64A42BE8904B481667733099ACACD24682E459000AD4E1D1BFC18B92386893738D1E91C204FD8D9BD0DDAB9F32F2E90B3E88A8AEA08F0702664515E2177D9EB169B4A8516994A42E1D748F310641234829CCFEEE6BE880D3EF4CEB1C345FEDEA3AAF2911DA09381C1FBC68606F8E5975FE0B4A32337C80F26CACAAA61C84A4A4A52BC42EEF41F8B1749F9FEBC50128A174842D17C241234959B49D0333B898D295C62834B11E4D7C8FDBDD2688EAEC15E4BABA92C3FBF19C325E5676FFF2717C8F7D5E4E42622C043F1D4C70B64AEFF50BA4CD2B6648914942C96849F1721C8ACA0D9DDDC9BD8E8E3DE39544EFA0915B4EBA74E7D60854BEA84AD2D37C8F7F030327EFCF8CF10DC6E43A6866B26B9B07CB95473E9320478291202FD33091A412E66753309DA4412288B20066DD8496CE871890D3E8CDCF1F2A2BFBB68A8B5B0C3F258BEFC2D155C52DFD9D87CE006993E668CF2B061C3306489EE0C221C7F51653158AF7CA5D4FB723329285B2105A5CB9148D04CC8BD8F8DFEE99DBD272ABE6687B4EDCB2FFF7AFEF831740618EBC8860DEFA920A3892F63E2A851E3F0DA45772077F8A2D2424A09A9B162951454984B01020D65246804B994DDCD2468D34E6283AA0862D0D3FB36362E290FADE580ABA9C9C88C8FFFA72BB8A40E5B59BDA384ACA191A12E2333F6F3CF3F1FD2D548DDDEEBAEF96C58D55AE9CAAA35D250B95A0A1068C0A0CB49D0087219AB9B7B131B7DDC3BDF1C2F51BF9DAEC101C6DFD9F96D77E162BD7AF50A0EAE5E4D09F91B0D8D740459B1AB758BD65E771B4DB2C64A3ABDDA521AAAD74903020D954CD01516ED6EE6880D6E45D0B41532D7D8A02A82FC8B8DBFF7D12770407136327AF7AAB1B1DB7059217BAE5AF59612329D9E4E979555E86CDD82E8756B364A873EB496869AF548560832025DC50A9AE9E66EC706959BFBA9770E5097A9E368C9B4B5FFA92E2969E1152E2BE4FD2B56BCE592C9A9DAF2F2F2DC466ADA231B69DFDA4DD250BB511A1E6E406282AEB66A777315AB9BC9D830A38A0DC956D05445705E2BE4BE8C8D58F5C1B58E14106E9C39F3674FE1B64146EE775FBAF40F2E4E4E99ACA424C3EC913BB898F6E66979E60BDF39958F360F0656D035D6ED6EEE2C36CA5863636927B1C1CFDE9962E44ED5147FB34B53ED1FF693F7B2B0E02977BB82BC67D1A2375490BFA5D393F5E5E547B0BB98F6F4E9D377F812F8ED4959EEF3C346B5B59BA509D0AC6EEE101B046469CE2268D6EE6641C4C6512D85171C27AEA7F7A1FEF973BEC06585EC6A6A4A09D94E53F3D61255D521AC2EA6151414DCAAA8A880C7A8376C686860FCFAB030FF99F78C673CC7065511E46BEFCC7DE4BEAE33B482A2256BC94D4EEE764BC68B1A11649779F37EA7828CDEF7A6B5929254872EE2DEBD7B73F3F3F3B3CBCACAA0B6B616EAEBEB19F525F74A1E794C7D4DB8998C8DF59DC4C62AC1C446EA64C9173B343518EC277AD6DDFD5D5FC02585CC08CE2626FFA5828C14E749A74B700C1AE9E9E98B7272728A4A4A4AA0A6A6069E3D7BC6A8BA97F0B4DA5DF73DA59B2D3BBAB94F7B678A91FBFE54F17FF64F52E158CF753131798B63AF2F0113905FBE6438CF99D3C805722C86DCB16743E16C6A6A2A191E1E6E959191F1B0B8B818AAAAAA707C300A6F85BDAE76D3F9D8A108AEEFE8E6FE8E8DF37AA339A3415BFBEFDA8A8A1EB764BCAAFEC50B86DB575FBDA482BCDBD8B88003301D51C76B9F8A8A8AF4A0A0A08BF7EFDF6F2A2C2C049CD38F1E3D62E4275CFD6FF52ECDBF89D8E067EFCCE3C89D3C7D7035554B76F3F2E55EB764BCAAA8B0F0D54173738E63F1DBB103B802969191D1D8BC79B31DEA32A0B4B4143233339BF3F2F288CF517C30F2E37FFCEDE14E7A93206223C748F28D9BB61AC78A97AFB5F51FFD0D17EBE79F7F7E151B1D0D07CCCCDA8EC573C912888B8DED1CF0A64D9BEC500EE32C060C1AED08D2D2D25A504E139F57565632F263CEFDFE70A77A332FBD736F47EEEF75153816721CF5F5DF37D4D7F73B5C2C14A32F76EFDEBD27322CACE2C08A15E03C650A445CBD0A717171DD074CEAC99327505454042929292D595959C4E715E5E58CBCA8E0DF1F3AABB6F4756CC4CF1C5A4CD11A351766643409022E09184DCBB3C78E1D3BEEF2F9F31B2EFBF93DC6707B049815346AED1877EEDC6941390DA89F86B2D252465EB8FF9B873B2630FA62E4CE9927F57C879646133BE04BDEDE7DDA9275173062A68457D7CCCDCD25626363ADE3E3E31FF71830293CA0A0C860DCBA75AB05751E909B9B8BE3A325EFFAC93F1E6E57E6676CFC73405799E3676BBB4D4D0592BB9D01A631EFC10E0B0B93E8356052757575802283919898C840390DD9D9D9505850D09217F2DDDB5AC7F1BD1EB9438C46157244838ECE5F8F51C11556C01C83466F009342AD1CA0C99071F3E64D06CA6978F0E001E4E7E5B5E45FF17D57EBA0D4A3913B6BE127158E5A9C2D597278F84741C3ED77C0A4F0C88D0B210A7A46727232868EA224BB25EFB2F7FB1A3BC56E8FDC08F29BDD3A6A1C73FF715B5B814783400193C223372E84D1D1D138A701E77476D68396824B5E1F6AEC14BAEC9D03672896B2C3DD317DFA3B34A60A1CAC500026555D5D0D4949492D376EDC0094D3909A9A0AF733339AF32FECFBB3FA1B79CA913B79F1D0028EDCD5D26A2AC9CE6E163454A1034C0A0D2780DA97E6C8C84840390D77EFDE858CF4B4E6FC1F76FF556D2BD756048B577FD2B8434B9DE3BF3B851E3F2ED0964CE801932A2F2F07E4E666D4CA100D398A11484F4D69CE0F76F958652BDB72505F996301C563C992DF040D53A0800BD2D3A1024D76BC6C83D736C2C3C39BAF5DBB0628A701E774CADDE4A6E8B0B057D1172FBE893879B225C4DB1B5C8D8C3E3C451D8AA0610A14705C703038EBEA42E8A143508B3297976DF1DA466868685348480844454541424202EE42801CC7D3E3E284A66B10286017EB3DE0347705B8191A42FCD9B3C448CDCB3EF01AF4952B579A9020222202E735E0360F39BDCF0137BCAC87F2DC54E106ECB9F722785CAC841D3BCF81C3B4D9E0357F3EA4A182D6938105B9F76D6363634B4C4CCC5F7979797CFBE930ABEAAA4A2033FA0708F7B1862BDBA742B0BD8170033EECF523F886D410909D165882A3B51738E8EAC3776BD7423E6ACD78D91FFEE1E2EBD7AF895C2E2828E00BE086972FA038F3262404BB41D89EB970C3752AA41D3082EC2373085D7034146EC0C70EFF04A7221F11909D17AE859D27EE81E3F107E0B8C6051C27E94032CAD89E002E2C2C7CDF53A88FABCB203DEC14C4F8AC821B6E0690E2D50E945D420FD8EFE815381BFF8480ECB2781DEC3BFD005C82CBC0D1BF041C96D810AFE96FC0B7FCEDE081EF6CC8F29DD3A52E380939E0136E47E172E22302B2EB927570E84C36111718B2C352C100BE8D006778CFEA96CE0BBB838FD838C1AE5973E1A4CF25D8B3742D9CB894D79EC9CBB608C8C1DB20D97366B774CE61867003BE121C066151D9B0DFCC12B67FA907470F5E6ACF64B3AD82011CE008897B0DBAA5738E33851B70D8F908482B7E0D09398DB07BDE2270313281DD4BD6C051BF247035B71508E0A480ED10E336AD5BFA41D81D1CFD6314E454FE4640F65A690957A30AE03BF753B07DF254705D682110C009813B207CE7946EE9ACB0034E0C898692BA3F08C807CD2D212AB1142233EAE1D28D52705FB94140809DE1AA935EB774C641C82322E4D051A879FE96807CC8C20A12EE96117181217B59D9090670900B5CB2FFA25B0ADA26C40ECEB97307DC8D8DE1C0C2C5702732117C565B424A46455B267B5BDB0B04F0CD6057386B3BA95B0AB4EF07C08A8A8AC3646565D56D6C6CBEE5750DA1AEB616AE1F3902CE7A7AE0B568092444DE69CB649F8DDB0402383E7837046CD6EA9602EDFB3822F0D397F03DB9727272AA5BD11F5E0193AA2C2E86B34E4EE0A8A505276CECE07672311CB571100CE033EE70723DBD539DDED4FA31A03F00ABA8A87C3A6AD428657B7B7BEB9E02268517788E5A5880A3B636B84C331008E0B833FBE0C83AF54E9510A80597F7D2C1DFAE8F01CF9A354B0CDFF7853618E3EAE0B0F6495D5DAF0093C28B3CFB4C4C040778AD5AA7BAB49B0E7E5BD4FB163013B2087E2E02DA6084D7DAB55B7C757521EDD225BE40C6DFACB2FC7CA1044CCABF2F23827431BE1509BBD877FDFAA57BE5E460CFE8D1E0376F1EE42725F105F4BF14B0312F80F17DB712F8C5A7366FB63E616CFC0643769791818BEBD743796EEEFF0366517575F573D4DA1AA1CE6B2CF3B65AEE805921E382876F11C57D71F0C68DA70FEBE83461D0FB1414207CD72E785459F9AF031C606FC4F3FE6B6A6A9E214ED371DD62DE52DB396036278BE15B44F1ADFB0B0D0D9582D7AD4BDD3F6E1C03833EA0A60649DF7F0F4F1E3FFE9F055CFFE409A45DBEDC88C07E89AE7819E6C39344BA044C015A1C6F8C7B64770B8BD9FE8B17D7B9CBCA12F97C6CEA54C80C0DFD9F018C6F55C842E77BD1D2123C1415F1F9FF8DD84CC0031A1ED47802CC02194B14EF80D9C68DF87ED3A66DC767CC78872163052C5A044577EF0E68C0FE5C00E3A753E54547C3952D5BC04B4505C873661AEC23762FD59302BB05982A36702BA7AAAA3A043FE73170C3860B8734359B8942885C7DD9C606AA0A0B073C607C3363317AEFEB8E8E70505DBD03542C4F151546D0F2E58FCED8DA6E67760F1DDCCB33607637E3228863035F1A165F7DA511686191E531762CF1E6FB9594206ADF3EA86BBD637440012ECFC880283737F0D5D1E180BA6FCC18DCB2BE3EB379F3D9454646CACC6585C1DC9E7AC233600A378BE222882F0FFC18C2BDAB562D3CB560C10BDCD2E1033AA4A505770203E1298FFFC3A7BF01FB2C9F08DF994E86C393E81C50B18E1B1A7E386B6D7D73A7B9B9213E4FF281CECCCCE5FAE4EC1E03E6161BCC758CD1DF6FD8B0E7D8F4E97F92077862E64CC88E8A122AC03E2B55E1C4E2A9E0ABA74309F5F0A449CDC1AB57E71FB5B65E879FC68ADD8A8DC47CF046B71E49DE6BC054B1812F191C1BCACACA0A01969661DE1A1A2DE4419F31338392CC4C8101F65DA50627971BC05183C9405E65AC42058C118872D57FD32694766365F10C805B5416B78A91507BFC603A7EC5060E7E7C39AD9A33473760E5CA223CA0E093D82B2F0F21F6F6505352D22F8063FC77C329F31970C2D800DC99A33FABF0F1F87DFDF56B344C9DFFDAC0401D3FD6163FE14F8EF9007D2654515EC0F609606EB1810F16B731A87FB638F5F5D7AFDAAAB0B232C4787BC3E3478FF80EB8E1C50B7870F52A5C58B70EC86F2C47AECE98F1E1CCFAF589DB962D9B858F0F5F75D814F898D97F2B419F3E3FB8B7B1812F2D72E4C6E3E4F1F5EB7D8EE8EB7F244FD40755EB9473E77A0DB8F1E54BC84539FF136A13F1378F0A2A7A2F2257BDADACACD0F1C853142C9E22406080B98DDCD821F812541F3F7E82BFA565FC0155550679F2A74C4C202F3E9E27C0B8572D4A4A826B0E0E70108DEE545071AE062C5F5E870AAF2702AAD855C1128EDFA3D173D044EF8C6303150FD975262646A757ACA8C039480239B7660D946565B103EE70F34B597A3A44BABA82CFA4499450895C3535FD35000D4126D3A669F2A360093560AAD8C00EC2278D5CA5E06161617372EEDCDF580125FBF9B5012E2A2A7A5B9D9B0BB1F817A1EAEB5342257335D0CA2AC96EE9D239388EBA2A587D7ECEFD09985B6C6057E1CB161599F1C7ADAC4EFBEAEAFE836105CD9FDF06D86FFEFC266E507DBEF8A22970F5EA028FD5ABAD998BDE7D52B0060C606EB18173514141416EB28686F6E9356BEE9E3333639080BDB5B55BA872F5B8B5F541B4AD0A2E587801AA2F0BD68003CC2D36302859595945F72D5B96E6C5C6BE494A4C8443DADACDCC5C7D7DDADAFAE26C7DFD2FFABB600D48C0DC6263C488114310E4CF11C431673C3CBC82366E8CFA66D93263FC6319E6C2F670320284C5AD420D98CDCD04687CA96388B848E14C1D8AFEE0BCC6058B056ABF15AC010F982A36981025981217B608189080B94487080B78A186CAAAFF03B287F0DCCFCD12530000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (36,1,'Hub_(128)',0x89504E470D0A1A0A0000000D4948445200000080000000500806000000D1007DE40000000473424954080808087C086488000000097048597300000DD700000DD70142289B780000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A0000296B4944415478DAED7D09785BE599F5AB7D9725D996F77D8BB778CBEAAC40580209490861874217A6A5B47428B4D39676E83CA50BC3B4408769673ACF749E29745AE84F29744A292D242121AB93D889F7DD9665CBB6646BDFA5FF7CD74B6479939D00094479F448BEBABABAF7BEE73DE7BCEFF7DD1B5E381CA62B8F4FEE8377B9038087C7D47B1C4BB8ADA32B231C0ED98A0AF2AD57C2FB3106C064E079FBF6EDE33DFEB5AF6B355AEDAD3894BB00838DA150D88BE37A23140EBD180E85DF2C2B59E1BF12EA8F0900A602FFBB575F95979494EE14894477F1F9FCEB107431329FF0CA9880107C42F0F11AB660F9CB58FE626579E9E12B21BF4C01C002FFD5C71E133CF4D017AFE20B04F7F079BC3D08AE8A0B3617F4100BF664D0431C08A6DF4F0081ADD38D755FC2672FAEAAAA68BD12FECB00002CF086016325B2FC6E04F14EEC6FEA44D027821C1DFC5940381FFCF3EC30F1DD9358FE523814FADFF56B5699AE00E0127B982D635908D4DDD83FF62C9908EAEC2C9F06C03C2C30F3F399A0B07BFD64B07AC3765FD0A210F17F93AF117F7D73ED3AE715007C440FABCDAE43B0F62158F7E075035E79D1419B06C1022C305FF0D9FB603044C30E1FF55ADD6476FA4924204A538A294525266138ECECB5F9CEF9C2A1D753F89E6776DCB8DD7705001FF0C3E9724911B49D212ED343DB27CCDCE2418F2DCBCF6FC31F0850EFB89BBACD2E72FA02A49208292B4E4AC94A11B90341EA1FF7D080DD4741ACAF5788285325344B04F4D2803DF8D7FB775EF5C615005CC487D7E7E3233057214077E3752F02A49E8FA6C353591E9304CCD67DBBC74F9D2376EAB6B826828B4CCFD5CA482B1391D9E1A5AE313718C14B42018F3254124A578B884F3C3239BDD463F593C317249D44E028D40A9F13F2C2FF75D375DBBAAE0060998F402050C5341DC182990BA52E29980B51FF1C1260B2B9A9D564A50150BD109563B64E41B9F17212F379640013B49B1D64F304480926C8D1482815C10F80097AAC1EEAB3FAC883F73AA900A010E3954F6358B7CFE6274F306C5709797FC853F3BFB2FBA61BCC5700B0F8231BBF71D7A4A12B09C5EAD4630C7EE47B7F20048AB75193719C2C2E2FA911DC42BD9AB2107C1F02DA316CA30E04DE87F5F408789E4E4E897211D9BC01EA343B21035EC216393064C7894826E4D1A0DD4F3D362FD6099194CFA734159F52647C0A84C3811E5BA013FBF967B13FF4DDAF3EB067EC0A00CE3F7478DE86E7DD78C2CC8578B1D0787456C7AAFF2EAF0F411FA3A6A131F240DF53E3E4549CACA16468FC88DD4D2D4356EA8504B00E5276BC820AC0042CF3876C1E6A1B75802DBC2446B0B3210D396A092010A66E78829E310FB9611A353003592A11E9E542B261FBBD90864157901442A20C059F12A5641BF384F78F7842EF695CA6671F7EE8F3814F2200A478DE3C19F4ED788AD8C2F054F0E609FE8548C008E8BDBE7F84DA4CE32400B51720DB8B53B5A4120BA96BD4468D60020600A948482BF42ACA4B54918005D7E2A416938DC6DD7E8A938125E295941E27212798A06DD489007B38BF900283C8E48101600815433700617607285E26A06C9590B4123E0DBB00087B80C6C010F1621ECC237F58C60BBFD4E70A1E7CE2817DAF7DDC01C0C7F3EAC9A0DF82A73A7A856900CC4BFD4B0B7E3018A4CEE1713ADD334286313BA965622A4F8BA7A2E4380A60BDA6010B023FC60553A7945019966723C01E7F909AC104AD9001C612691A19150210490A31681E2C31ECA041308290CF98404A795AE617C2D40326E8B078C885EF3340E469C42483611C4029D9CD4CA23F44C9723084924FC003F53B82D4670F5210A7354F45FD4992F00B661FBDFAD5FB6F6FFF3801A00ACF7BF0BC03CFD485565C38F873077D86D64F028005ADBE6F844E750F92D5EDA3349D92AA3213115C158D3A5C74BA6F94DA06C771E2C3948980AF4CD3518A5A8ACFBC7416A0E818B1410278949FA8A462B0814C24805F704236AC6401132891E545900726033ED07E3BA4A1D3ECE63C418E167E0172C24621BAC0025D635E0A6079965248D9A81AD8FE77C138F623F07C80264321A074198FEC00472F0031EA234A9352578E3CF48380DFFFFFBEF0D9FBC72E4700644F663A7B16C7FAA5508C65DC7C2C60819B3FD63548677B4D1C2D17A7C753755622E914526A1F1AA7533DC3D46FB19348C0A712D07F45BA8E945231F54202CEF49BA97FCC414AB1884A53345494A4E618A409F4DF0CB03891D5C900493140910EEDB7B8FCD434CC4A463700C28734C8010809F910C816B30B12E026111822572345E0855CFFA0CDE223038CA2147E2017604891B38A012C650D9085C982148CA2E0911080E9728469D40B80C8422733A4E1A7702EFEF4C5CFDEEFBB9401101F61E66AD9FA4BFD8105BB750BB040A7698C8EB4F6531B8C9D5222A29ADC24AACCD2835288CEF40E535D8F89AC4E0FA920018C09CA90F12C439B8C16806284AB02925572AAC8D0A2FC53D118FE3E6330C32FD8D82628374141A5C96AD2022C8671279D1BB271E5618242442560880C643CDB46D3B0936B20B1C6D10A9D9432D4623203282D00C900CA420D78BF402BA62418C421C842FBB89FC611F81498C35CA5803BA60E5B8086DC61CE23E428C39C0FE9721099BD14CE9207FF922A0E7E0FE7E1F057BEF0B9F0250580677EFAB3773FFFE9FB562A150ADD7236BEB8FECF0CBE2F18A0339D4374A8A58F86AC0E50B99AD616A451718A8ECC0E371D6D1FE04C9F8FE9B156496B72F5C86A1D39BC5E006218C018E1B2B230298EAA321290DD32EA0113D4411EFA50FE4941FBA5A91A2AC5E722E83803433D8CE2B8CB47E9A0FE720042AF148335DC1C208C762FD7292C4954E0558C807B0008179960085945B0225E420930917DA8225A20F40E7F0026103E01EC10808CB4020C46540B7A09A4472D203E8F8121880A224CC00CE529899482100DB9880C1EF24AF9E1238532DFC38F7DE90B8D970400BEF4F8B7C23C01CFBAB976DD995B76DCB881CFE70B970A8019DDBC3980C096D990C9EFB5F4D2D13603A7F565A0F80D85E908B28ADA0CA374B8DD401D43163632482B5275B42E2F95D2B40A3282DE8F761A39E327100890ED3AAA011B30D7DF6434D3C9EE111A7178281E66B01AD2C124C0E3F753BD618C1A1078D61B2844B657401E94623EA7FB67B07C0CCE3E5B0740E0330D1C7F174AC8B3430EAE6A60D54269A28CD458BF13E6B0193EC1E30F53AE5644057162CE2C36030C43D846920C32122782B10C7360304002E021A94045DCEB1080D06E0FA3D4244A9186284B16E4CE53A74B308253733841E47FF4E9C71FEAFEC800F0E5AF3D11E641F3F83C3E89C5A2AEDBF7EEB254AF2C5FB524002C2201233627FDECADE3E446E06B11F47578323D3FDE3140875BFA51C6B9B880AECA49A6750529A06231B50C02146D46EA81B1D32924B4262789CA91F1ACDF7F02F45FD76D2217B6979BA8A69AEC78CAD42869D4EEA1137DC3D43468858EF3692598A03C4D4302ECCF592C3B33304E5E00A208D95E9E124732219FF30A2CF04E9F9FF2E1074AF1995CC4A3E61117C704011C43118052A89390D513A073236EAE5C4C818C14EB44F89D30C0E0A75E48851A52B1224E400928964DCE103583096C3E949A308BF90A260B21EA74A28A70F34881EFE5CA02A4158682262FEFCCA89F5717E60BFFE9C56F3D38F0A102E091AF7F7B1A007CBCF270E2B46AF5894FDF776742B25E9F73B1F49F513A7BEF0495FFADBE9B8E751800083FCA38196D5C918120263338D189CE413A049630A36CCB498CA3F50044A15E43C33617BDDF61A4863E33E703CA91EDAB73F4A4938B51325AE93898A06BD48A6C96504D563CB45F83A0FA200D16540863DCB13116284B5171FBD160B472A0805FA4157A2500A10050881A86EC9C27C0EAF00972041E5506FC40C390930B7CBA4A4CA59005563E3642E03BC77D600A1E1583EF993934B903D4044098994740E08B200BA07DEA40F5D085E08B2111F98A102589C384A282DA9C3C1A0BF028451CA46C89DF8D7AE335ECDF8B38677FF9EE371E0F7CE000F8CA3F7C671600F838C390027F5E76D691BBF6DD52299349D50BEAFF121A40AC957BA2D340F530786B40F325E909340EED3F082660FAEF4586576525D106F882248D9C5A61F80EB50DA01A18E3FA016B60146B201F42EC6703A4E308FCC430AA8874C8C5DAEC44AE1164B2A2AA805F6886C633635793A5A332BD9A1C608CBA7E0062D086CC25AA48555359B20AFB14A6536007561D48C00A15C94A045ECEF983D3837664B38FB2504194EB6508268F1AC00CAD281355D848598298D2E0152CDE20D58F78C8043F90241750491C9FD460924E7B00EB865814A850C5A30C79183E224C2DB63021F3492F0E51BE3C4832FE2CCF3482F3F61B24D88B4F7DFB1F8E7F6000F8FB6FFC63980BFC6C00707ACC17F0C6D75655756EBFEE9A2A3E5BB844FD5FAC01F4C7BA367ABBA18BA428E36A0BD3B8C04B84023A89B2F0002A0493D5451930831B0A535105C483F6FD74B4630865E3108CA11FE65143EB010AD61A66E30087F1598FD94E493087EB0008A6FFC33076470188560498B5876BD2994954911D947E0280681A7670630AD5692ACA47E0FB51119C1CB0718E3F4F2BA5CA6405496128CF80059A47DD2417F2A83249065088B801A433260FF5D97D94082F511E2FA67818C26E5405E7503EFA83083C642157C5E7FC48D37898FA5C21829DA015CC2708438BCD6A62CF76BCE7A6B9FDE8BB4F745E54003CFACD27C391813F0F800850B057C8DA75576F0EAD5BB33AE5421A40D1DD3FD6D96B1F345356421CB910D083CD7D74A875421ECAC00E9B8BD2512920AB2101EF81254E2090AC4EAD41B9B8213F995452119D4105C002CFD6C98327A8CD4BA42C80A67BD44E87BB87A90B3E221126716D5602E85E0DD3886AA367949A018844E62F323494AB535027AA88E3FDE3647278B9B18455600889803816386B824F41E0AB00867CB83B365E706AD0495D9000AD54409589124A5508E1057C7466C40BB609518146004F20E41A4DCD9600B5C313A080A012358F92A414FBB99BD96739CA494428FCDB1F7FFFC9D10B02009B8B070084E6CCFC080030799892091E05C76FBF658F2C2F374772A10DA0E836707DAF89DE6AE886F6AB695361066915626A1D1CA3FD4D7DD4681C45F68A11F4145A87C0B342FF28FCC2E1F6418E09CAD375B4312F99121068D6003AD83E4403A8FD33210DB5399086042532DB49873A87A91395006B13AF83346481395A0190233D161A7179A908EBAD499F30887503308E461B89F1BE26554585F15280344875830E6A35B3BE019FAA93E4DC2092D1E1A793A8F546E101F25015AC4C9010F49C9A2C7E6A1EF371256929982053C96399B3DCE047AE1FC0F23FE3FD8B78FFFA4F9F7ECA1D3300A62EB4D8B76F1F3FB3B02CB024003077847D50CAC4EEFBEEBA43AA542AF93347F72E7C0088ADD73D3C46BF7EBF990C16D0B9464157AD48E7B2DEE6F1D2FE6603823FC49946660437C228CA211BA7C0040750399851721625C5D126008205BA13013ED06E823438C01090130022552DA54600E570B799CC087C31BCC37A008265F949F8813A839510335A053094EB15DC38C30900E22CF45F0E40AC8669CC873C8CB87C74CCE82483CD4BD92811ABE113502000205EAA1FF5726DEB721D2B1F8508C4C252391F10A2833F0770ECF8FB552C7F11EBBFF3F39FFC28342F00A6E6DCD7D4D408C462B170C3B6EDAE05A97F0E004C1946BFDF17CCC948F7DDB26BA78CFDC252C6FE17668E294660741FA6E2D47800C1466F9FEBE5DAC20A8988B6C02FACCB4FE298E070BB91DE43E099C9ABCC88A7CD608804050BB085F6B70D8209DC54920C56C9D773945F8FAAE03D3001EB0296A15AD890AD23B95840C77B2D74BCCFC25519ABE013AA52D4D0F0109D348CD329A39D80315A0D59603D0256121E31D8B871831425CC698A9C12E001DA2C1EAA1B72930B7A5FA285718C673D02BA18339C179F3135B1DC989696FCFD6F3FF6F72FCC02000B3ECBFAA6A6268146A391D8ED76D9F5BBF79962CD7C7E14307893DFF3BA5DBEF56B56D3EA55D5E2A50E00C53203781846F017FB1BB806D235A519B43A5BCFD1FEBB4D063A84CA818DCAADCFD5D3E68254780221C7047F6B1EA0518787AA200D9B0B92290E5EE174BF99F68309C6DD3E54001A484602B25540477BCD74044C809FA4B5991A5A9516C7B5928FF78FC1248E73E76E559A1AFAAFE49A40EFF759A969C481808B687DBA8A9B62D68DAAE0E8809D2CEE20D73DACD64B0978588221BEB0E0B3F752A9B47F5575A55121954A6EBEF1FAAA190098CC7C7E7E7EBE302E2E4E2A140A557EBF5FB76DE72DF5730160C884F2CA344241FC689C5A45C5C52B48C017CC09802906F179DC9E1D375C274C4D4D112EC508C63A033888483B3C1E7AF564275705880502DA5294429BC106ACAC3BD265A2BF0114368F8FD6E626D296FC54B08580EB11BC0B86B079FC1C20B6803914C8F863587E104CE0C76FACC9D47112C006744E20E30F0110CCA0AE4AD3709E20100AD25104FE143C810ADF5D9FA1A6029D8C8CA830DEEBB3C103F8285723A175A90A8A833758CEDCC6E999CDB19E93C9EF0AF83C474971D1497D7CFC7A04458278D4030095D100E033DA47E065D8685C3018D4B361DE6B6FDEFBFA5CD46F341AE9C0C143D3D2A1D1C4D1DA356B2833236D56E0235FD9C59B0886E7E69D3B8043312F56DD5FCA896A44FD3F0443B72E2F05EB04697FCB0032DEC075F936C10F305048B03F87E013DE6931726CB12A3381AE2E4AE632FE082A83FDEDC3E446363323B809609140FB59D3E8DDCE11AEC3C802BF21474BACFE3986E547200F42019F3680215682094650291CE819E324808D326EC85051B25C38EBF8A6DE2F06EEE5B000FB34232DF5704E664621CEBF9EC565D2DED5EFBEE986D900D8BA75ABD86AB5AA00023D9665E29973DDCD7B5F988BFA0DC6013A70E0D02C47F99907EE237C7F5E004C3189CFE70DA42426F8AFDABA4576316700479E145657FFE24023B541EBAF2E49A72D90003618B3BF7590FEDADC8F4006B9E6D035C5A9A8F3057418D9FEB7E641B2A3C45C979D405B210D6C7CE074BF85FED23644E32E3FD723D89C1BCF01E578DF181DE81AE586A86B9934A4ABC9EE01E0BA2D131280806FC6723697E08338BED9DB39BF3DB55A75B6B8301FA110164F5D3C3D05003C6703E0B6DB6E1374757549F0771CBBF40A81CAC16BFEF5BB6EFDC19C001818A0FD07DE9B0EBC582A23B91AC6A88C4F3919D79054265910001C40B02D87DDEEAB282BA5E21545E265517F0C278FC9542018A4B7CEF5D3DB4DFD9C57589F9744D70314ACF173A4D3446F36421AA0FD6B50015CB72285D4F00A0D70FB6F42324C760F55A468695B51126965423A6D18A3B75B4D6447C9B72E53CB994436C7E05D80819586ACBBB8355B43257A2573BE4B376B31067FAE7323128B8C4579793D72B9AC96B955EE1FEF7CF0278040F57B76DC381B000683410CE3A786FB4F4280D8E48FDCEB77EDFDC95CAE9F01E0E07B8749AA8C23455C1C55945A48A9403D2B0CD2E848021517EE9837F09100E04DEEA4D361736FDE502BD6C5C70B629D01BCD42C691D1AA30618BD2D8508300CDAE1F621FABF863E1A7379685556226D2F4FA37800974D2CFD63433FF58EB9A834398E6E284EE166169D353240186918E6B13A5D4BD716E809CA400711F843900036516473B69656C313F0B84658ECA5ED02AE3D264F84D3E882FC1ED769B56B713E6591419FCD0073008049406969A9502412C9B1612D029482F7E99BB7DDF043B9529513EDFA6D0E071D3B7D9656579B60023DD0BF30F9FC02F278043087095451360100F66BC14080C41209CC087F46E0A3AB874000641AF47BB76EDE248519E12D47FF63CDB6FF3DD60E3630504D5602ED5C9949492A29B599ACF487FA5E6A1FB651A13E8E760010591A39B58DD8E8F5B306EA313BB951C2EDC5C9A441D5F01E02FF6EC78449DC98A5A54D393A184F5ECC7D8D184AB6988E2F51A77D3F39392907E7316532C03477F64FFF5D7FCBCED900E04A40C602A0333996C5E14712B138A9A4A27A57464ECE3E8948A28A2CFBD8BF81C1A3949EDE028A1591C32926B747486EA79ACA4B6EE600C0F4F1BFFFE75754909F474EA78BAEDEBA99B45ACD3400E6EA2BB85DAE409C4A11A8AEAE96862F82419AAFA676C0F573F30247ADF4FBD33DDCA8209B3CBA7B650637A1A4D7ECA0D7C004CD8363949FA8A29BCBD228552D4359384A6FC12BB0BEC26A30C13630810A1E62597A3DEF452E8B075F2C117564A6A6F9C1D8C5D3418F0AFC3C3250BFF7E69B2AE7EC03C0080ABC5EAFC8ED764BF0500602012D3E4A502814992B57ADB9579F92B655C81708223337141AA3B32D75949F3B48FD462D4A2B1E15E6DFCA0180EDF4F32FFC6CDA2B20B369EDEA6ADAB07E3D49C10A0B0D348D8F59BC79B9B9BCCC8C74F107D920E931DBE8EDC6016E2E61259EEC8AA2574F77D3C93E33A56914B467653A15E9D5DCACA237B0DEB0DD0B4F10473795A6C0E889973CC0158BBF59E8F8F0872D5E176F04DD177141E3D1649023B27F6120CC0D80E86610F37678C8584F00ACC08090989C9ABE7265F5EA07B43AED8AE87A7F78B48BBCBEA3D4DA9E43375EBB651A00CFFDEBBFCDAA16AEBE6A336D040866788B593E6162A72DE65177C5CA9562954A29085DECEE58C455C3EC3D9B44FADC3BE7285E21A55D1519B43A4347E786AC00442FF58D39B969E4BBCAD3294B2B5BDE0CE70BD1FF6030849A7E343D3D5D2B100A44E783CC218022FF9E0E7C54F6B3671800D8371F0022DBC1600336BC2B843164D5811C8BD578C663C7F5651555DB0A5694DC2193CBE323EB7EF66B23660BA526E9B91F6307F4EC4FA7BB8E241489B96A212F374CD9E9C55459B66141004CC94DC0E70FB99C0E6F656585144CC18B2598CB75DE6CFE401C4C62EFA89D5E3ED5C35D4B901E27A7BD95E95492AC59108017038C7301CAEF75BB929392850AA5523C95F11411E88580102D0338A900C08ECA9846035977B0A6A6860141E4F178A472B95C8103D230590039A4ADA9ADBD3D2B3BE73A8148249ECBF5B39DFFC9F3FF4A52B90281D752618197D2926D933B469495FA0069E212669788DCB6661B459BCDEE170B05C1FC827C69F8E2F6C8676D67D0EAE2CAC3827815CAC384C951BA25CE6D58AAFE476DCFE7F6F8144A7938212141723EA367067E3610A265601610EAF7EDDE5919D37C80C83B719D3E7D5A08FA1159ADD66959C077F5C9A9A945ABD76DB82F519F54057B302398ECF9CAEB7FA6F48C512AC831C314B26E206A1697981BADCB4EFB34E9B409F366FE7CE30C2693C99BA2D7F3E31313453175C5A24623E70BFEB26F4671C1035C33C7387C7E5F10CEDA979A9E2E8B2AE16851202CEA07A8FEF63DBBD855DAE1982F0C594C160086A492B295B59535ABEE56AAD429D1F57E6BC719B8D6FD1C43884541320CAA499FE0A434FD83CB0200FB1B272F3C3468F464E7E44A645209FF8206976265938B7085D342C10F058361489D479F9C241173A41A41EDC49B0708D1B41FBD7ED4BA440DB7EFDD5D353167271C5ED2A5618BC982402048A9DDB475775171C90EB1442C8B348AECE0EBEAFF4489FA36B23B2538603E15E7DD4B5A4DD2A2D43FFF1034CA468F37386E19F501085C0324F401057F39B7A459CAFD0DECB6718F5AAD1628952AD1B4738F0AFC9C4058A21FC00F9E7DE607DFABA9ABAB0B2C19008BC902CA461D4090A8D56A73375EB5EDEE8CCCCC75023EAAC688EC1E1D1D27E3C88BD46D50D1351BF651824E1795F9338130370066B7992D16B31F8F504A4AAA64D189A8F364ED74C7F122DC8F28D6061032DE8FE5C1F8F804E9F9922DAA93376F462F0684D97E00FBD8F81F2F3CBF6AFFFEFD3EFC6E68D95707CF270B6C3C0101D73159285CB1A2BA76C3967B7409F1D9D1F5FE99738D545C50484AA57C41EAB7D96DE4F705482215539C4ACDFADD0BB699FBFBFB3D4AB95CA850AB85E18B7C338A453D43A4D75844FF7D3E4FC86EB37913F44952EC3B8F1715F8A50321363F10F4070EFCDBF33FDE8EC4F5BDF2CA2BA10BBE3FC05CB2808772726029110797B461F3D61B2AAAAA77432ED4730E0C2D40FD7DFDFDF4CC732F507666268169E8B65B77D3EAEAAA05C71998967677777B987B4685C28F9E5114BE80797717CA026C7BA3C326B75AA3154B2412C154E02922D053819F4B06E6E8EDC7E407F0FB4E8B65F4676FBFF97FCF9ACD66CBF5D75FEF7DF2C927C317E50611F3C90282A166630B4C16542A55E6D5D7DD707B6161D166815028986DFAE6A6FE7E433FFDE09F9F9DF17B2B8A0AE981FBEEA2D4E4E405079A5C2E67D0D06FF021CB648BF60C96C402CB0BBE6574C4CB1708F94A15749E22747A56D0170742AC7E805D9F333A3AF2EEE1FDFB7FDCD7D7DD0299B4E0E96A6C6C0C5C9004C42A0B38810A0684A926526E7E7ED9D5DBAEBB3B2535AD2816D76F300CD0534FFFCBACDFDABB6B07EDD9B5730E269939E0C4958D4326DFD8B895D49A38F1C59480581B4076AB2DE070D8021A1DBB583C3AF0D15A1D2503B396C5EE07EC366B7BDDF1633F6F3C5B7F14923C8CCFC7C562B1738AFE97650263040145CA027E54EAF3F994F82D0DCC62024E4ED2BADA8D5B6A376EBC55A556C72FE4FAFB0700801F3E73FE3E34934DA58A723B29A47974DBEECFA0B4942E0880A9EDB5B7B77B0261124A2512E162C15CAEFE4706DFE3F386868C835E8D5637A9F3340F8DC7008425F8019FD763696E3AF7EB43FBDF7D037F8F20F816C8B21D2BB0411E3F0C6070497D808B210B4949496CBE814C2412A92665418F9D4ABBFEA69DBB2B2A2AB789B8C2773600D8DC83A77EF46392ABE210F838AA2A379326CEC35D4EC566F814E57C918A8B2A660E354F8121BA7AC072D05FB8B9B9D92392C8A4001DEF83680085822130579F5B2492892552A6F30B19B668202CDF0F8443415F4F4FCF9BFBDF79FB259FDB3D8065A3D8271B8EDB05DDF756555505A632FF43BB4D5C2CB290919151B87DE7CD77E6E4E4550804FC19F5BECBE3A69FFEE2575458D04BC97A3BD73F605D44BB434222518856E43F4CA5852B17CCFCB9C61B6C566BA0B5B52D205528A51733F8A6C121AFDBEDE129542AF1C263F3170F086C06E0A869F8E4FB07F7FFD26834B4B2AC47828DC1903BC0BE5E7CD58FBA3F38D5FCF9D06F1439972C600765A026C5942CE07D724DCDEAB5D76EDFBE0F35714A74C3E7E8C943E4F6FE867C0111C9A47EEAEED3525A8A8D56E47E090C50397336F202818FAE3C50367AFB0D033C308278590DA04920D86CE301A37130A08ED34A6319949933F0CBF0030E9BBDFF54DDB1FF693977EE288E6B18FBC91A22769D4EE732180CFEA9AC9FBC5C2FFC91DE2974215900007400022B1B5376DCBCEBC6B5B51BB6CBA552D944753001847038487FF8D32F49A1384D769704B5B49036ACFA3400501D11D889201FAFABA3B2E212EAEEE9A1CA8A72EE0612B327AB4E828CF547CF9E735B6D0E310F2B2EA501E4F1FA429D1D1D5E199804ECC59B3FB093C18DCEFE65FA01BFCF676F6B697EEDC8A1037FC42E0FE1D84691F156ACE394C964DE49AD0FCD95F51F1900E692053601050651CC64018BB926123389894949397B6FDDB7AFA4B46C35AB1923B3D7641AA163A77F445DFD12BAE9EACF517969D1ACCC7FFA27CFD3E9FA06EE64262626D017FFEE3354B9B23CAAD49C79BD830FA6EDE4C9535E4F20C8EE79C80B2D7267938E8E0E4F30141289593D4FBC99141D1DC8981A388BCB00F62760E8EB39F0DEC1FD2F7B9CCE3E2C1F66748F04B223F3DD78F597949404A3B5FE920240B42C949696E2180422D6418A9685B2B295957BF6DE725B6A5A7A56348D1F3D5E4779B9D9949A92340B003FFAF17374F0D0FB337E73CBA60DF4B5AF3C4C2AB56AC6BA635E0B25C813A77DC7A879345077AA3E10E2F1A47335808C03033ED38899E44A8578FE5EFC3CDDB80BF003E691E1C6E3470EFDC63438D888F36562748FCFADCCE421EBD9DDC602B164FD250180B9D8009A25889405C606AC9B88CF93B7DFB4F39A6BB66DDBA1C623BAE11349FDD300F897E7E8C0A199FF451052951EFCCCA7E88EBDBB6600E05387EF227D7C02FD53E10F4923D54C33447B47BBB7B1A58D5106372DCD6A1D0FB4B777F8518A72D2742183324BF1034EA7C374F64CDDEF3A5B5B8F0602814166F2266B7A07D8D3B390C9BBE401B0145950AAD59977DF73EF9ED5AB56D50A4562E142A6EF07CF3C4B07DE9B0080582627659C96CA4A3C9410EF247E584B8F3EF4CBE9EFDC5F77071DDFF42665F514D323B26FD1CD09B790903FE119D8E93976FCB8FB8D3FBF1D0610D88C65FE6C3D5F40E397E80722D7671DBBCED696B74F9D38FA268EDF88FD31E195D5F4367CEE36994CBEC54CDE650380586481B59419100A0A0A8AEFBCE7DEDBF2F3F30BE703C0F7FFF9593A7EAA9E141A1DE56479A8A47098BC308DECDA05D3B092BEFBF557CE33C0C9DBE9C4D56F4EEC83974F37BAF6D10BCA5FCD909BC79E78322812890573F6E229B2854B74A17E808D0E1AFB7A4FD61D3FF29AC3E1E866260F2B8D4216C7DD6EF7924CDE650580586581F50ED894F56BAEB976C3EE3D7B76E9E2E3E3A301F0D63B07E98DB77F4F576DEC86B91370135146CC7292C902D4DE9940CF7FFF57D300B88F01E0AA3F9D970AAF843A048E19339BBEFAAD7F9C06C0BC8332CBF203338160318F74359C3AF1DA88C9740EB119C2B10E23F096B94CDE72B3FE9207C07CB2C0A6AB63119B8914C79A4808901E2727EDBE4FDDBF63F3962D5B9119E248A3E80FF8E9C5977F08D7DE80D2D147BD062DC56B9D30790A7AEA9BBF9B367D771DB9954E5EFD67E209CE03A053E89AF618ECC100206400882ED96649C1F2FC80DBE5B0349F6B78B3ABBDEDE814DD33938735AC3846E7724DDE650D80C56481B594A7AA858C8C8CFCCF7CF6B3B794AFAC281770972E9CAFF7FB06DAE967FFF5EF949FD74E9D3D3ACACEB0D0230FFE651A003DF61E7ABAE77B7434E72FE448327300E812B928F2BE578F7E9331804830776F3E763F100D04983A6F4F67EBA1C6FA337FC5F118F0A5212C1BC16F8F5D0C9377D9036031590000D408B8765216926B6B37D6DC73DFBD7BD2525393A3670DBDBDFF6F74ECD4BFD399C6647AFD573F9F0680CF662599564767ADF5F40BEF73F48EF60D6A538C53C47F4B0C007C674E0658AE1F6057780C1A0DE71A4E9D7CD3ED74B2BB810E22165CD60368761C97EB6298BC8F0D0096220B784DBDE79E7BAFDDBEE3A66D6AA54A1ED9F061E5DC7FFFFA65FABBFBEF992EF75ED9B299F2366DA2AA279E20B15A4D4DDE065A29AF9A79C7B46F7C7B02007375EE960804EB9865E0DCE9BAB7CCA3C3E7A6E89E993C00791CC7E460260F991FF8A0B2FEB20640F48DACD8554C53B20093A444F668704C9C2C242424643FF4D0C3BBD6D7AEAB110A45FCF96E71F3BB9A6ADAD6D242FDAB5651FA77BE43C9DBB773AC31F39E890080502C9879B9D5D2FC80C7EDB675B4341EE8EE683F8ECF8D2CEB234D9E070F2CF35D4C93F7B104C042B280E391E13CCE9085CACACAF2CF7FE10B7B503666CE058057AAABE89EA6266E9B56918842F7DD47DAFFFCCF9900F887278282A92A60D675770BC902582718F0F77577D6359FAD3F80FD3320D8835359CF7E124F974AA5F27E1026EF630D80586581958CAC9B78DB6DB76DB9E38EBBAED7C56BD591238D2F579D07007BB8C462927BBD337EE32B5F7F0212106102170D3C3765216C320D7634D59F7AC7ED72754F66FD109B9D83D771364923C2E4B1C087C21F72403E1600588A2C20D332BEF4E52FDF74EDB66BD749A412D6D6A3DFAE5943D73434504A28B42000040C00D1BDFC798060B78D8FB4369E3D601E363164B1F6AD91993C363B472291D8A24C5EF8C3CCFA8F25001692059455720021726C21A5088F471F7D7457454565816BD844679F7E9AE46FBD4525F002C13900F0C8D718030805735D6E1599FD3EAFD7D5D5D672A2BFA7F3241619A7B27ECAE4B95C2EA752A9F47C5826EF130780856401C7AA4010D8DDCD1358B5C080B063C7CEB59FFBDC676F4C4D4DD5D906066814DAAF7DE925D2B6B5CDD8DE97BFF6AD0909A0B9AFBB0B8543C181DE9EE6AED6A623C8F201FC169B92659C9CA461010819DDBB3F6C93F78905C062B2000AE66E7EC164011291F6C8238F5CBB7BF7EE4DAC9BE8B55848A29BF9BFE47CF9F16F41028482B9A6689987870C1D4D8D475D2E472F960D4C397C6C9BDDD69D0DD73A3F2A93F7890640ACB230552D646464E43DF6D8633B6A6B6B4B79915D2062FF7DCE3751068A04912D5C0784BEABA5F1F4B8C5DC36D9C8E1823F39566FC1321B2BED0030DF4765F2AE00600E204CDD0B794A160082A92612572D6CDEBCB9F2E1871FBE2927272779EABB0F3FF68D002440C83611F0F9BCBD5DEDCD83FDBD6CC08695738CEA0722C7EA59FF9E99BCECECEC4B2EEB3FB100588A2C307FF0E0830F6EBDF3CE3BB7AAD56A3918C08FD2513068ECEBEEEB683B8B754C91590F1631B1864E54D6072FD5C07F6201B0982CC030AA1910A66441ABD5663EFEF8E3DB7FFBFB3FA8DA9BCE35B99C4E0B96B351BA2116F8E8AC67F3EFD3D3D3839772D65F01C0D264413F593AB2BF8578EF61033693B373862FC7ACBF028025C802B1FFBA4728D480F299616426D08BAC67CE9EFDFFBFD6CB45EBAF006099B2C0869C116C39402145C6F391E501ACE66233713FE8B1FA2B00B8046401F5BB004C20B2D96C42A552C98344000721BFCBE50A7CD46DDC2B00F81064E1C9279FE481DAF9232323DCF83094210C50842F47BABF02800B00C2D49FC4FD4F441F7D0BF7623DFE3F3221A5A39C45D8950000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (37,1,'Hub_(24)',0x89504E470D0A1A0A0000000D49484452000000180000000F0806000000FEA40FDB0000000473424954080808087C086488000000097048597300000298000002980136D347DF0000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000003864944415438CB95946D6C144518C79FBD7DE9DED1DEF56C1B11DA0AE5D0943642635FA84AD52812BE8049B589A117E35B9068359870490946F18B5A494C13133524980A6851230DE103DF88244DFAC1C60FDA0891EBD583EB95EBD56EEFF676677666777DA60583B1503BC9ECECCC6E7EFFE7FFCC3C23F9BE0F776B5353535B99EBEF230E313821A75B5A5AFE845534693901DBB66B1963FB6CC7E9A58436134AC128DA902B947CD326573877BFA7BCF0F92B7BF766572310C6DE8DBD17814F10420314C1D766E7213B5F049350A09401E50C98C3C07339F7B9F733E16C3854CC7ED1D7D747EF287072F887B75E78EED9A38AA2548AB94D085CCDE4E08FE93C30CE81310E94B14501DFC377B1E638B8E6828BDF5CE658DCE51701F8898183AF9FC590FD7F09BC73F8FD9135A150DB63DB5BC9D34F3EDE80D183619620393307E91B7F41099D3828C011C8712408E5E8C4432147882F39827260A0B8244D08F9C672D8A9CF3EFA606251E060FF9151CEBD4782C120544522B4EBD10E29168B6922F70514BA3A3D07C9DC3C1074E0BA4B601BA1028C7B05510D2022BB20FE17C189B12A1A1DABBFBF7650EAECEC0C363ED472B6AC62CD33A5D26F5243FD5310AD8C80AECA767B5BAB160C8564DC68B0B05FBE3E0BA9BC010B257BD151B5AEC2FA7219E86D606C931BEA6A0BBAAE6F5355F9C0A203499202AFEEDFBFE7BEF51B8E2F9846B565FF0ABB77BE018A2C7BB659A40D9B63BACB5D69E93459909A35102E838B6922948008A0681671CA9CBABA7A5D535509F713344D39F0CF294211098740E2F09181B5EB6ADEDC1CDBA2E5F379285916343EF8002F18060F57467501BC15AD18F148FB99CC35525D5553866E0302ACAA0A38949ABEE7EFFA4F1D08A1783C7EEFB6875B87A3F7D4748DFDF295F45AFC138C4603B3B0406766F392E74B1A45A1C964926011CA15E1B0AA2832E00309BE97CD64CEA78DB9F8C9C1C18274A74A16693B74A87F67F3D6A6136D6DEDEBFA8FBE0B3BB63743F9F361D878B9D1BA70E1A74045A452175011B52CCB90CF65276F5C4FF70E0D0D8DF937C1D2DDAE8A5B691B3876ECBD864DB589E95CAA6CED16171A37ED714F7D794E566EC2AD62C14CA7921F9FF9F6F487C87357BC2A9613EAE9E9A9EEEEEEFEBAEBD2A55DDE4B2F7B9F8E9C97B19879269DBA98BCF2FB8BE3E3E333FE32B0FF25707BDA1289C48EF68E8EE3DFFD385296999A7C7B7474F41C32BC555D762BB911696B6A6A0A4E4C4C94FC15007F03CC7928673F920FB10000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (38,1,'Hub_(48)',0x89504E470D0A1A0A0000000D49484452000000300000001E08060000006AA49DC10000000473424954080808087C0864880000000970485973000005310000053101B7ED28520000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000009A34944415458C3CD58096C14D719FE67E7D80BEF7AD736BE387C61F00136E62A0E041BC78823265C7609A41052084DACA60529540AA547AAAAADDA544A294A88D2D048546D699300A58423C440A0226003C607870D3EF0B55E7B4FEFEEDCD37FC618D6612949A090919EE67AF3E6FBFEFFFBFEF766084551E0616C046E576FDC98C6CB72776E7AFA4D78441BF1A0049A9B9BB340A75B030AAC9415254514254592A413A224ED9605EE9F53A64CF17EE3080483C1C45028F4AC2088AB25592E40B0208A2236DC4BB7F678EEF08584FE10DF68659437BC42F487DF993729F038095858965D86E05623C8B9B8D769A06F831F04CE0A02B4F4F9C11BE4C040E920C809A02314EC270741923F2375B073DD33A57B713CE5511060B0CDC73ECF21C0320468088F7038014F8085AB3D2E104419F424A11130AA0478017809AFE900BCAC00069DA2F67147D1BABFF787D80F7FB466F9D1874D80C0360BDB6A6CE5D8ECB22C4794880ABEDDE981A61E37D0085040A0019607AB81867E244462E4D5380710B8892180132400752C59C164488066011DC82D2141FE3409C46D2FBEF85CF7D72670EAD4F9C459B30A5EC1C355D8C6847792B4280F811781C3A85E6AEB812E971FCC0C052E040B388E9921C1E90F42145E0B601FF5191332F323010609067809485083A19290F11919B383449090825142995DB550C20EA7C7F48F375F7BB6F72B11A8DCB2F5F9585B74E5F7D6ADB12726C4A785770A8F7E7D9B03AEF7F463444968EFF382D5C8E02028199605AB9E813E7F000C34093A1C3780FA67504E7E8E47E9A09CD01F6A46D47164CC960A5C25A2A8D950349F6872C39BBC1EE4134149D9373723F6EDF2F272E9BE045ED9F293E7699ADC45D1A4302E35F5F355E5CBF24C266394367058F4D56395405BAF1B5C03E84B49013D4D409F370876B30141739A0F1037F8433C44E949F0E21EF96A1252810B9A7C1450A5A932C2E823390928CC4E48F51031781E4F8BA05744072F8A7FC3F7EFFECD4FB756DF93C00F5FDBB68EA198F7288A02B59104111A97363654BE6C890D7B10B7B31066DC81100BC7EA5AC1829AEF720F00061E24EC13E445CC0C85D96091000503282102E5C2E2330AEE097930DA1492F4E03D233EE7E74430530AF83809120C58F248491B6BF07DB7DF7D15F7BB31687FD9FEDB5FB4DC2650515141C6A78C7B6984D9BC5D05AFDAD8A8D76B44444110BE3575B23C63FA347DB889A53059DD70B8C1E109401B4A4AD57CFF400862CC0CEE59AD22F95951D3BB5A1D38949109993AB18F05D3D21FE4C18625CA151420DEA843F0C4B06C0FAF7A83E79839764266E6F6CAF56BB7A86312D3A74FB74F9838F9E7A353522A55D01F1F3A0A469311E6979680D168D4880838099414CFA6921213A92F666268E0D65E0FF4A1AC9ABADDE811343782C44C62A5513453DB301B9D9E20C49868E8C57BD106B5007010632021DDCAA01C2355BAE104E2E362CE64A4A7259324E95AB2687E3E51545444F97CBE94AC89F9BF4CCB9C504123D883878FC29854012C6633E4E52CD608D0348513120A4114D8E2394FEA1986D1DD6B06F60559A8BADC013246DD8B0013AC7AB8D13B00F1517AE841AF586EF9C28CD9CA8B37691E183ECEDD63EA19FDD58CF45496A1A93C1D16046CB5CBCA16E66B19C8C9C9318FB0D932F3F3A66C4D1E3DA68C133CB4D373161F24607276397CF0D17EC8CDC986E9530B90080D82C0494686E60B0A0A8C5A890D271296196F2004D5ADBDC0A2279CE807239A5DF5875AA1668EB16176E488CF85471FC7F7C7C7C536454747E7EB0637206F1158BE7851BEE601752589246883C110139F943473627EC1B684C4E47CB7D703F1B123E18F6FBF03A3461B904406CC9CFA340C197DC0E7E363EC36BC378A89343B0F45B1CDE9031712A8EB7241D1B838342B1141DFC39F1324511143A160F298317A4C3715061C1BA111285F52963F6C26461E3A5C3D1AF05AD2C4BCC9153979F93FB0D96C23AB6B8F81DD7E1D7A9DD1B0B064E32D0224D0B788F4F674B34949C994C96CA68640A8154408D3B0748F08DF1D7D94A0C7CDDAEC7632CA62A1EF80BED3D46B68ADBA95CB97E6455C0BA955E9CA952B16BD5E9F32676EE9E6AC9C9C152CCF195ADA6B61F68C058304D013C140104C68F2284B943A1129DD9D1D6C42F228039E101AE8FF11E148D1F77ABD024E6A726C6C9C5E1701787816505AE7DEDBB9A3F09E8BB97059C5C52514149794FC3823337306CD30C450E477BEBB0B5A5ADBE1FB2FAF87DCEC6C2D2381C080D8D3E3106DF61843E408DF1DFD402828F5F7F6F1B1717146AC2EA0238749651870C42B39BABBF75EA8AFDDB4E7FDF73BEEBB9CFE82ACCAE614176D1A356AF46895C05B48408256484C2460E592D7C166B5DF9657575717E772BB09466F6422D5724DE73CA7B4B6B5B166F3082C327ADDBDA23DD4FA9C8EFA0B35E75EEF686B3B8155D0555555257EE9EF812159E140298B9E5EFC52E1ECD9AB481ACC9F1C7F0757962E7866C1CFB0462780CBED01034E82F123E380C268363436867C8101465174E43063B7B671218ED321783A2268F2CEB581015FDFB586861D8DF59776F33CDF555353C32AEA94FE55BFC8866485EC63D1DC9396ADA8D83275DAB4279B9AAF9159E3B3202A2A0ADEDCB1134E9C3A0D951BD7C38AA5655017BC08130CD9F2C59A4B9C3FC8191C0E87D8D67E531A61B118EE802622EA5D1005AEB5E9DAFE9AB3677E8F389BC68E1DEBD9B3678FF4C09F94E1B2CACDCD2D5DBA6CC5E6ACECEC0C553A6FFCE12DE8EEBB00E9E902CC9DB5193E1F7F0A4E5A0FC16EE3BFE1DAE9EBDCE1AACF1892A288BBAA8B1A7162F0182727B9F366EB85DA9A73BFF3783C67700EE8397EFC38A744FA7879908FFAF06AB560E1C2B565658BD746DBACD17FFDE0D7E0F2DD80A2C297219817805FC5BE0ABBE8BD10FC0FF0073FA96222571842934F7F9FB3F372DDC5779D0EC75E5CF3B4A4A5A50D7C31EA0FF5AF44B8AC4C2653F60B2F7C777349E9534FF5F4F6D15123CC40FC6B3F18F252C15E3A176A4F35F2078E7CCA44D27C2814F0375D6E3878B3B5E5CFA8F33AF48BB3A1A14150EE03907888FF853459617D4E1E3F7EFC9CF5EB376C2A2C2CCCEEDCF22AA4EEDC09D4F9F370D2EBE3F71F3EC684CB07FB0BED2DD7CF375FAEFF13823E8DE0DB117870C8A4FFF7FF429164D5D8D868C5F92365DEBC7915DF7EE2890DA30E1CB0C76CDC0827FD017EDFA1A35A067026551C5D9DADCD571BF7081CF7315EBB82045CD5D5D5C223FDB1753F59E16956256ECB972F5F70A9BE013E3A78C4E0F7B85D37AE5D3EE675BBF6E1E2F02C02EF0C2F8D8F9D40B8AC264D9A64C4E8E267446261E9FCF91B8E1C3DC63BBB3B0FE37B4FE0A4D784BEF1AA13D263FBB5F865B6E2E262CAE9745A106C229E5AD5885BAD56C7BD4AE3378EC090ACF0E389ECE8E8209B9B9B85AF239748DB7F0178B0CFEEA76491710000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (39,1,'Hub_(64)',0x89504E470D0A1A0A0000000D49484452000000400000002808060000004ECEFCE90000000473424954080808087C0864880000000970485973000006EC000006EC011E7538350000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00000F274944415468DEDD590B7454F599FFEE9DC7BDF3CECC643249264FF262080430521AC000D51A8A085A4B10105ACFEE1675A554B4AEF882D2A3ADBB9EDD233D5DED39B6A7ADA0AB6CD7EDC36AF5AC07CEAA298108E44120EFD72493C924F37EDDE77EF7262193210F68517487F33F7772F9DF99FFEFF7FDBEDFF7FDFF4388A2089FC7ABB1B15157515111812FD88BF8AC0820F075F6ECA52CAD9EDC4610E40E41106FE239FEA420724713B1D86F2B2B2B03FF2F09686B6B33D0B4EE6EFCE45D8228AE170441C1F302F03C0FBCC08F5F79218EE30F1CCF1F5511C2BB4806FB652740E9F3056FE704761702DE8CE0B4E34065B049E027DEE388B13CF4F922E08FB16CA149F59627CCBFBFFB8EEAD7F0B3C42F0D01B158ECABBC28EE44696F43803661022097045E10A613E18BC6A17D2404B1040F59063544590E46A20CA4D30A20003C6331B6C9A117F7DD5353D3F24525A094E3B89D18E99D08AA2845DA9723CC0B53EF39BCDF3F16844BEE00504A1281533018884184E1201BDF279084814002CC1A123424018361160C2AE8D328C56381187BECD19D77B5DC6802EC38EEC5711FCEBF792E6927034F302C5C708D4197370059460DE82925B40F0741A500C84BD3823B18036F38010E23051CC7C340280E669CA35311E00E33A0C6793A0508DE18D797AB219FF30563FFFDE877B77B3F2F02F438EEC6B113C76D3814D24D4106285C19F524227CE12834740D832F1283051946943B8BC091049306D27534B47BFCA80A11F2CDB44CC070380E39A804692983C13858340A50603EB8430C98D40490680BDE180F66959888B062939E108E149A95AF6FDDBA95BFDE042871D44C80DE82439BFA80146121D9E09288E81EF6C1994E179028E3A28C34E81909806B2C04CE2C332811510BAAC144AB90081A3A3D2188731C2CB068D11718F060C4738C6A34470E861178A64E090954C5688C834C4C8D107A468415204D0D301AE741478AA1282F9CD62BD8177EF88F7FFFFE7521E0D91FBFF85875D5CABB6E5DBB669554C7677A804F01CFB02C7CDA35048D3D6EC8B6E8215DAF81B3DD6E6071F115F936180BC5A0DDED8782743DA6800A9A07C6404729A0D0AA85EE913044121C145834083A0EC1188BA941C118121244900EBD123C115626C24291E08E72A055E07A4501C6E2026451228C312290A2E0D52884B74209F18D9F3DB1E7A3BF9A80BDFFF4CC2125491ED4E9B4CDDFD9B18D285E50509E3C599A9B1AF5B6C111F0062398EF1CFCA5AD1FEC261D2CCE498756D728788251A8C8B12048165A0646A1C0669053A0C9E50525AAA4C0AC870E54092F88B2127AB12C329C00B9260AFA7D311010A855A3940D120B062E16CB0492E0D012E067501108DE4E8B30181540896B33A90470C7C4A14235FBCFBC187DEDF9030746AF8980470E1C3C84F23DA850600E920A31D36EABDFBD7D6B91392D2D7D8A8029F052B993CA9C746DEDF700AD54C2074D9D2069A722C7065D98EB7DA341589A9B2E3F7BB66F042B80066C88A6D9E593159167D6C045AC0E122179981A6DDE30A8F003AC5A25748F46C18CE59144E4AE200385461504904CC90FF2F50AB95A48E44924F48505344C1172690E8D4A5E1F8BE5F93D4EE08F6A80FDFDC18307E3F312B0FFC94387140A729C001C4A1C044932B959B6D11DB5B5768A5293F3558020D6F953ED2EE8708FC18AC24C70F9427061D00B0B33CDA04290E75109F9661D58751434A2279835E809061A9A877C60C00A60C1BF2FA13FD8F56A040E3209C5161AA2711606D0278A4C6AB942487E50A027A03BC82161229418D0A545E1CA358DAF2B88E3B7C8C8D1745A7902C910AE2000539EDCFFE4B387954AD55393E0652294B21A80E75876F1C2526EE3861ACD5C1560F27E34918037EB5AD10C4DE08F2490845158E2B0C8913EDF3F4E8259AB8673FD5EB0E9298CB40ACE0FF9651528484012C2509A8EB1C394E840124ACC14F89184618C7A9985825E4C0B16BF67B15989BD8338DE7C25AD434829C9496B7561257BC361C978E9A9A7F60FC804D4D6D62ABABABAF4ABD6DFF6BC4E6F7C48022E7D80CFE7034BBA158C7AC338214806138F25D6A1472E723AD5F33540E31E318A2E1F057F9485464C81250E33D67712CEF478A0C08AC6A856C2A748C802AB0E9B24021A07FC5066D3CBB23F3F14042792106304E8F245A1DCA6914BA30FCD72998D962BC27C2539B55AD134D5B37C698547ABA57EB965C3869F4B4E4FE036558BA08B2BBFBAFAB98C2CC71D12D84824027F78E75D50625EAFABBE058A8B168CAB415606097C221EABB9FDEB6AF407C595C0AF5C8C0BBD208A15E3770D5D50EE184F87D3DD1E28B39BB0F151407DEF0838ED06D0E2F79DEAF362F47572E3D134148045197A082618E8F3C7A132530F59D81DCD44F65C0141A0C1B2D2A2B3963473154992D863910F6EDE54F38A4CC0B265CB4C086CF9D29B571E72E4E6574B20C348C09FDE7D1FECD95AC8CF07C8C95C0DF68C3C19FC648A88A82595824CDCBA7E2D4D900A62A6C508294448E5F1BFCEB4439A468DE55009FFDBEE868576239A9E1A4EB60FCB4A30A3F3D7F58C8213814BDD513392B0DC61C434A06156B267F93E7C2F64DA333E7664663A0905994EA2C1220192513F78F7A68DE304545555D18944C2915358B4D9E95CFC039DD19029A5467B571D46DE05A108B6AA89255052B41C2EB57780DD960E8EEC6C98344BDCDFB336AB995F5AB1949E8AC2DC5171FBC3700E53C26ED0C20717FAC181AD711E96C2136D6E2C897AF40424A1D70B4B5015CBB24D48F63828819F27EA49F2D7D054735E4E8E1A555C2A356768E8304900FE3D4E80045432C075EBD6A903818045A552152DADFCCA9EBC8205DFA4685A130C0FC2C8683D50AA72246009FCF467AF48F36175D54AF8DAFAB553668923E01B8B1717172932ED99AAF9F609938BEE1AF1CB7B83B7CEF44006560649011FA2124AF0BAA6D0826D30C0D5784D32F11CCB45D22D695E8BC59A4F207092C0884F5C6522E42B3C78CFE64DAF245701024950E01657CBB26C86D56A5DB67C45D52359393955C82021883C2E540D4790002B9A54D92211ACA63258B1ACE63201D24086C5B1D19178B9D34951B4869C2482E3E78E5E1C374E27DB86C0839D63CDC24CA0B075BE6A839BB8CF62C9105926E6C8CDD5A854D8D225014F2540A120A613907494459697972B753A9D0189C8295DB8E8F6A595373F6CB15AF31448DBC94F3E80C28276ECFC54100ED9E16BB7EC86E4BE61D2245986E183C120535656A2C1605DB56C679A2324CD993C6B1092E6E1F61CC2C1602CC39EA1D668B58AE9919EBA4E1121DF7BA8F6EE3B5F9E7537281181DE40E15B0B125150B5A6FADBCEC54BB62331FA31DF20B475BE07F18415EEACD999420039ED6FBFDF8FBEC70A5999D9D46CB215E692F63CE70DC1809F5153D847A499D5E3E67639C7A71320DF9FBA876DCDBE5DDB6B7F3AE779406A5A982C96C56BD7DDBAB7A4B4742D7A85228CDB5E8B256D1AF8D30D67211E4FC0AAAAAF409AD178990C976B204EAB29A556AF575EABB467021E8E84B95824C2D96C19F4A4B9259B1C31ED3A3D0D3020FD635ECF8EFDDFFBDEC757752072455A389D6BABABD73D9C9D935B922AFD636F1E878F3F39055AAD160E3EF938E4E6382E93802547ECECEC88EB0D460ACB2639056AEE149856469984383434144783A3952A157139E23312305DFEBCC02506FAFADF3CF93FEFBF8041EDAEABAB8B5FD391586A5AACA95EB76DE5AAD5BBB0194A9B94FEEBFF711C4E9F6B86923225D8D279D87ED7613099D2A6558B582CCA777674323A9351239D04258317E6686EFAFBFB62A83C15ADD12953A32A5F2F1391F27F04881EF7505DFD271FFD8BCBE56A4053F722F8046217AEF94C30392DA4A3328AA29C776CDEB267E9B29BBE8E6DA6AAF562075CEAFE15184D71F00768D874DBD3906DCF9E562924B224428687DD4C6FDFA0A8A2D4D4ECB92F8007E7F9034130184DEA2BCB598AB9A5A820180CF4369F6B3872A9B5F53DEC7506F1FB230D0D0D9C3801FCAF3E159E4C0B9AA68D1835475151C9AA4D9BEF7CA8A4B46CB104F2CF1FBE0143DEF350BBF919C8B465CAC0DFFCCFB741C47FDBEEB90B8C06C365425A5B5BE3C3DE5125AE7E9A3F040341BEBBA79BD11B4C1ACC9859EA390133A501820DB65D6C7DFDD3FABAD7707DDD0683C177E2C409468AFA753B169F3835222A2B2B69B55A6D6618A6704D75F5960DDFB8E3DB76BBDD160C8720CD60C40D082D03DDB3F71118700D624A98E0E5975E84FCDC1C38E33F0526AD099C9A72B1FEF499B83F14A6130C034D2D17E2B833A550F12441CE10F1D41C9F8838B6E75C7F4FF787F5751FBD8C2A6DC6E73D1A8D268AE0797106B0D7E58791D4B4C0C5946EDD76EFDF55DF52BD51A7D7539391FE8787BF0F71360ACE720128B5083F7AE2381C75FD128E141C8207F8C7609FF6498C7A807BFEC597444AA351A546754ADE33D678717878E8425343C3CF3D9EA18F31EAFD1890404B4B0B971AF5CFECA731292D8A8B8B551861032E3EC79E9575F37DBB763F5879D34DCBA56EF277EFBC03839ED77157494034A6841F3EFE36FCBAFF17F0C2A2FDA0E228E85444416AB61E3FF82351819BABF9CAD9E4351C0A785A9B1A8F7577B6FF11F17462FA781B1B1BA51320419C07E075FF6D70222D484C0B0A415BB04B2B58B566CD866DB5F7DE5F585890CDB07178F537FF06C3A36DF0AF878FCB8AF875F45578CBF40BA83774CA9FF183670E8BA81862B67236099C6112B1AEB64B1F5C683A770CE7B7C4E3F1414CC570B2C9DDD05F8793D3028928BDEFBEDD3B37DDB9698BC56AD10E0EB9A1302F0F2E1E79090C5D5D90FEDCD360C9C8979F7DECE94348809220529A9AC934900EFD067A7BCFB7369E3D8666578F72EF429FF14D96B62FC4CFE3B3A585B4C9DAF3C003DF5D5BBD76252E9ABCF0931F43E5E1C3102A28004377B7FCCCA34F1D14492420B5AB93A07BBD9EFE8B8DE7DF0E047C27F07E2BAA6C702E93BBE104CC9416D84415AE58B1623D12717FBAC753C01D3800592D2D40C7E31387B312010A22D9F8A2E170B0B3EDC2876ED7C09F71CDE730F23D9148C4DFD3D3C35C6BD43F7702664B0B24A26CC78E1DF76CFFD6B7BEA93D79D298B67BB73CEFFB079E9D304169D3C231FD3D1DE77BBB3BFF24705C03CAFD223EEFAEA8A8881E3F7E5C10FF46009F2B01A96981CD8911CD2B47AFD72FD9BB77EFFD1B376E5C8369A1DCF7C43322C61EDBD781DE1E343996654EE1334DE8233DA15028D8D1D1C1FE2D51BFE104CC96164EA773F5BE7DFBEEFFF7577FA5ED6EBB7806CB5B3DE6FE599C7A09E53E82353D7635A5ED4B41406A5A606475A8063B4ABC086F67E308E07F75E0E847F02104CF8A9FC1626F3801A96961B3D974D8C1E931F20C9211C49A2E9536FE33FBDE2F0A01C97B0B5404894488D7C3E4E67BFD1FBE7BEA5343C65B240000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (40,1,'Hub_(96)',0x89504E470D0A1A0A0000000D49484452000000600000003C080600000099D4BFB40000000473424954080808087C086488000000097048597300000A6100000A6101FCCC4A250000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00001B454944415478DAED5C09745BE599BDDA9FF6C5BBAC788D1DC776623B4EBC64230B24049AA440422949688796E5F494D2D2164A3B14DA59CE749939A70B4343D7694B4F5BDA613A94522890400849C86A27766CC7966D59B665CBB265EDEB7BF3BD17CB516C794B3225A528E73FD27B7E7AD2FBEEF7DD7BBFFF7F8A88E3387CF078EF1EA2EB0900113DF8E7679F7D56BA7ED3A64DF4E576C6E238C1C8C4BF2F2A2A1AFF0080FFC7C0EFDEBD5BFCD4534FAD9232CC1E3144BBE96B65B12C0B96A3C1B22196E55E8CC7D9E7E412BC5C5E5E1EF900806B14F8AEAEAE62A954BE97037737ED29990878D2E02EBD16FEC68DD2F36FB928FBCB952BABDFA1D3701F00B0C047E7D0508686137D8482BE873EBDE1F280A70C3AA61DC3F1FBE2DDFDDEF0E15030FEEB3DB7AC7BE9030066790C0E0EAA18B57A271B8FEFE1586E6B9C65A5DC4430E935383EC8DCFC8088C559D8C703B0B98388C438E4EAE4C8D648CED8DD91132296FBEE3DDB379EFD00808B0F89DFEFBF9182B68732F6360AA0667A16CF15F44BFB029118BA47BCE8190B402D9762915E0183420ADB7810764F042AA90816AD94A5E7437DE391664621FB977FB875C3D0DF1D00D16874658C65F75286DF45C113C494E312999E8A5266C97EDA3FE20BA163689CB23E08B35689229352F89BD515C0A02F8C2C8D0CF93A05E2746CEF58080E7F0CE94A092C1A492814E70E8E06A26F8B75A26F7F66DBB6F0FB19806221D32F8ED2E9419D12746E062026FEC683D5E3F4A075D00D5F2882A20C2D0A0D2A380361740E7B311E8EA1C8A844BE810105189DA37E78823158888E16E9647087E2E87587E189C491A392C0AC96B89CC1F8B1502CFE9B2FEED9F1F3F70B0019343E42630F9DA781A7148E4D91E9B30131858A829128CE0F8CE2DCC018141231CAB3F5C8D629D14960B40D79201303A504460E65BC6D34888E118F60838A081C335582CD138495AA002C90A797214B2545BF37823E6F146A9EA2D462AA14AECFE18BB76A25DC538F7CECF6A37F6B00A868ECA4B197C6161A527E273719C43982CEA506C2E50DE28C6D18ED8363C8356A506936422115A3D9EEA28CF710080C9666EBA057C8D1EA184707016250CA509AAE814E2EC605971F5D44497A464A6030C2BE4E02C84EC1CF524B50A095C21B66D14D5A41CD1DF234621016E8F5C5066512F6A56C15FBF8FD1FFDE8C8F50A8084C68D1341FF300DCDD403388E9BB798B249EEC73A3C8613DD43708CF9519E6BC2321A4E6F480063909C4E69A60E15B42F1A8DE36CFF287A467DC837AAB0344B87683C8E16AA8AFEB1202C7A0625692A90F6A0DDE987D31F458181A723051CDE30BA888E481650485521A69AE97247E189B2C85389619401B6409C0DC5387B898AFD8A5FCABEF0857DFBFCD70300AB787AA171178DACD90E5C48F68729984D3D0EBCDB3920D0C7CA822C1467E9D1DAEFC2A99E210A2C8BE58BD251916DA0E0FA71BA6F04A3FE10D191016554050E02A679C00D77308A25196A94A4AB314CA0B50E7911245B5A96AE420ED15127554417D1112FC8A5460502F4B91DA32184E31C8A4827E81058C7237085582C229DD0C938F47A5984E26CBC4C17FFDD7040F45A578EEAA7BFDDBD3BFE5705E0C8B113F734D6AFFC0ABD2C9DEF89E693FD63BE208E74F4E144D700724D5AD4179BA165E478D73A8026CA78938AC1CAC24C14A66B718EC038D9ED84442242B5250DF92635DA1C6E9CB18F920E885199A3A74A60D041827CCEE1859AC4A13C8BA72329CE5155F03D42BE4189128382843B82F323014844222C31C941EC84B6D13009791CC5444D6A99089D040469398AB422FE62D0E9E32015712856C7877D11BC4612F23FDFFDC2279EFFAB00F0E92F7EF940469A49F9E0BD1FCFC9CA4CCF9BEB2417E967E6ECEF1E1AC55BAD3DE8181C45557E161A4BCC70F90278A7BD9FBAE23194661B098C6CE87830BA0671AAD70933D1CCCABC4C1854329CE87112FDB84807D4A8B118A057CAD1D4E712E887A79E6524D43CF5340F8C63982CEBD20C0D0AC9AAF68C06D0E2F4C1209760693A4F4F4459C301A14A78201802A2958020EA41A95E4AC188A36D9C8598025FA21182834E2F0772B52854C5C180EDEA0B8BDB9462F689EF3FFAC0E9FF37001E7AF4898312B1E806B1581C295FBAE4C8BE3BEFA85528E49AD901489DFD3DC4F12F1C6D45655E166A0AB2D1DC3B88436D7D70FBC3585178110C7F308CB73BEC820057E6A6A3AE380B01B29E473A1DD47879509E63444D9E89BA5E16EF760FD33E1F96E6E8B0DCACC7B0278453541521A2976ADACE25CEE7A9881FB95A0615996A12DF289A867CF47D808A7486048DC3B99110BD874539012111B138E78A0A6E6CA95E4215C2A17D3C86D13087C574D506292754842B2C420101912E8973D690C84697F76A99CCF3D897BEF4A5B16B0AC0C38F3F71502C12F300801F528974F8C60D6B3A36AD5FB75A24128953D2CF1C221C0885F183574F62CC1FC4DA258BB0AA28872AC28537CFF76194AAA18180A8A18CB70EBB098C7E8C0723A8233AAAB198D0E3F2E1A87548D081DABC34D206A34047276C4EA8A813AEA5638C5415A7C931750CFBB098346159B64610DF53F671C14D2DCF520BDFE58CC3471AC361592623504CD3500811DA5F494068E5206022700458AA0831B219112E1010F600874235070BC3C146D2DC1310215B1E471E1385846323D464BE14E3D85F8E6B942F7DF7A187C2570DC0E71EFFEA410AFC240089A150282EDCB1E316AEA26C49E99CFC9FC2F9C4851147ABDD89DF1C69255F2EC3BAA51694641971DC3A88B7DBEDD0100DAD29C9C6E24C0309F230DEE97240463AD050948902A31627889E4E52E01791EFAF2BC8101CCDB19E11C11D2D371B5099A5A50ED98F137D63824D5D61D6526F11C789FE71FA6C0E2BB2D5908A45383948821DE55045409814629C7506A9878891669065D54829F01174D1763ED9D5628D08763F8B0EA2A73405D1939A855C94CAD971EE381B7B9E8D8B9FFBD63F3DFE16DF165D11008F7CF96B04806802001109A144784E00A154C86D77EFBA3DCD62C9550BF49394FD5CD2E45A7C620A2215108E510F947219FE74A68B787F00A54433EB4B73A127213E44401C232D305390D795E492504B71E8C2203567A324BE063450658C136D1DEE1C12DC4F5D7E3A96666A7056A88A31E410F5ACCA330834778CB645F4AFD6A28582AEE128558497C47745363925B58C2A20800EB2B1257A39CAA80AACEE085A5C61EA9CC5A830483144D5706E2C020D3571E57AF2DF126E5E169BB66D718EFD15351DBFFC8F7FFB7ACBBC01E0E7E81FF9CA93048064BD644A055C1AFC2581356AD5FE7D7B3EAA56294996E66D43938020BB79CE3E8C2CAD1A3EA2A8D75B7AC80D3951451674FD120B02E108DE68EB876D641CF545D9A82F4C47B7D38BB73A064938E3584355514C8DD809DB0855868B5E93B3CA3362884039DC3D02D23134D036431574B87794282C8A5504043F6FC453D139A2AB42724955992AF47988AE06FDC8A0CEB93A430E0F356D278743D46572586E92529588E611F48B549C6236E00CCBC59F8328FEABEF7DE31B03290198580E1455545448B7EEDCF5BA542A5D3B35F0A9008945A3B192A2FCD887B7DFCA5C36B53CD714C414CD384B81EF22C15E4DDAD0E574E3B5161B7C04C00D5415D579E9E47A9C38787E000CD9CC0DA5D930EB9554010E9C2237C457457D7E1A594F3FDEBAE084826CE5DA823430C4FD87AC238216D42FD2A3941AB526A29EE344470514F8BA1C2D86FC24F6760FF50462ACCA510953DDEF0E92532251AFC950C0425DF442BBFA5912919ED8037916F33F7FF991870F4E02905812B4DBEDF24824A2BE61CBF6976472695D32F5C462317A9680611429C108878291F58DF5A8AA5A2E5FD0C24AD297E5840938375E6EEA41757E064A4807DEB9D08F036D76E4EAD5D8B83457E075BE2ACEDAC7504B416FA4AA681F1AC7C10E07543209369664414974718080E823401AF379D1267A228B7AB8770C66AD026BF2F482337ABBC70DBEC35A4D55C1D0751EE9F750071D436DB6128B0D32707368DB65993EDBE4E2C4DFD52A95B576F9F251A59239B9FD962D0F2603206E6C6C545090F5B49DB3EEC69B7FC1285515C9013E74E830FC013F1472391A1AEA909E96369D9AA888629150F0D69B6F966566A64BE733F936D305062331FCF04033E452096E2AB780B75E7F6EE94387630C6B176793286708BDC0EBE707A92F9062D3921CA8C9EFBFD63608EB88176B0A3388F7F5383B388E373B9D30AAE5D850601234E980D5455D740CEBF30DC8A00C3F6CF3C04A1D722DE94265062308FB7CA6C967BCBE29EFA3D88C572E2D3B633218568BC42219857BFFCE0400FCD8B06183241C0EEB28FB7369BB6CCDA62DDFD4687505C9D4F3C6C1B7F855AD045DE1C33B3E84ACCCCC494D98044122064B69A19049C2B7DCBC959149A5A2D9B23F799DE032FA4ACAAAD75B6D78F55C1F362F356315391FBE31FB336D6768186C2D370B8B337F6EB59335F5602D01B3BA300DE71DE378B5FD62556C2EC9103AE5D785AA08625D8151585378872AA299B4A09A2A64658E1A845FCAEF993014892ABDCC64CC52DD9467F145B9E6C3342A29F0263E6E02D38B44FB6FBBF5E64B0010EFCB886E0C3299AC9082B87CF5C69B9ED4EA74B9C9D9FDC6813731303008994201834987E2220E4579AB613464A7D008914057A1503066CECA88AD6E68601692FDA92E2636B13EF0345545B656855B962D12A6315E6EEE4553FF28D62FCEC20D645F2F0C8FE3E516BBB054BFA52C8B8E55E22FED834263B626DF48CD9A16477BDD34C650464DDA3AAA027E2A622E8D62E73BBD3EF13EBD4E7B7A7141814622959424023F39C420006EB9BC025C2E97562E975BE880256B376FFD37AD4E5F9CEC7ADE7AFB08A25C0C55CBDD483304E1F12910F2E7A074F18D98C92D25F6FB3CE3E1CA8A72516161819C9B710D989B97CBE0ADA58C38FED7C72E0895B0AE24079BCB7260A73EE07F9A6CE49C62B8B93C0725191ABC461570B4C745026D1444F954BF1B6F101DF18B383716A7C1447A3297464DB7D3B37F57322F7D8B0B0B06A867AA9F167861080CB2FFF6EDB75CAE010482DCEFF71B685FB65AA7ABACACAA7D303D2373355586880F227FDC98FB75E88CC324C85244A212B8468A505DB15EF8DB6BAF1F80DEA043C5D23264F2D424BA4449FC33FFE13E8F3BD8505727D76AB592F9AF92A5CEC66EAA06BEFB1DF206F0DFA7BAE1F004F0A14A0BAA2D461C6C1FC26B6455AB730DB869493651D338FE445A61A4806FA3AA58A463E6B4920BCD7E2AB8803933F38C41AFAF25BA5188C4D3832FBEF47A1A007C25F020C80281809AB480E72B73FEE2D2354BCB2BEFD3EAF505896C0E059D181879073A6D08E3EE7C2C2BDF2464C9779F7E46D007FE436A6AAA70D3E64D9053A335B53A48E8D9682414262018FE73AF46DCF86DAB739C8647E811F8C6ECC5E63E724F5A02231703EE00FE40DBFC637B8599284733E3F2E8659C3E9FB5EAC4FBC8B6CA64126BAED99C2695C9F4B304FDD23E310FC0AD0FA6EC036A6B6B25A15048C1308C96B6D32968B9CB56D4EE2A2A597227A360B4894076F576201A96A2AAB24CF852DFF9FE7F4E3617320583EDDB36607965CD65029D0C86CFE78DAA95CA785959193317A75EDED8A406CB4196F395D67E6ACED2E1271AFADDE91E8C0522D84140ACCA375D2EEE0BACB69992231A090732D2D258BDC1A0991E74203505F143BC7FD7CE29004CBD4DF0F4E9D3528D46A3A44D3DD15016A3562F6E685C73AF7951C106A9848825D9F5F0007CEF3FA1D4E860C96350581084411784885D4F94D43883465C04C6E574862C66B32423335336FBDAF1FC2CA12718C12F481FF8F5831B8A33853580E4F74D752FD31CCD2CD596784D8E3146F6389A63362B67CBF49906F1C4FE3B6F9B01802420784A127BBD5EBEB15293433246A3D19CBC82A2952BEA1A3E999E915196082C7FD2175F791DA5A556A41903084524F07894908B6BB0B266C39CDD343FA13D3CE4082D2E5EACA0D2135F7E1B0B3747F6B357E8601698FD7CC6C7635C2410089973731929398119038F84DB990104E0D93B6FDBF1C09C4B92C9D31306834141FAA0A55D022D55D5AEBA655955F5DD6AB5C69408EC90B30D3D036F0B20787D0C14D22AD4ADD894BA0226C459224AEAA623E1B87BD415295E5CA29CB6C6CC710BB78413599C4C61F1890E76615AC3C2E31E0F9AD24C32955A2D154F7735F31A89F7D1B5FDE8A3BB6E7B809ED9792DCA2768E9F8F1E332028201BF46219566926D2D58B7F1C67D254B4AB7CAA4725922A8C74FBF0999FC14D8D86AACA9BF2125F5CC665DC7C646A3B14894CD369B15F311E2AB989B9933FB7D1E4F4442CD9CC968928B164033B3E90119919FFEF8074FDF7FF0E0C1F8826E4B49454BFCD445667676D5FA8D9BEF35E75AAAA4C2FC9118C1700481801F3959592903DED36B834AC520128EA26471514A30EC7DB6904AA592AAB53AE9822C6122E3AFA86A2E82110C06E2019F37929E91A54CD0EC42337D8611F379BD8FED7FFA3BDF3B79F2646CC1F705A5A225FE062D12EADC65D5D51B1BD7ACDB6B3018B35366B9E4D2EBC3878FE237BF7F01F1781CF5752BF1915DB7233DCD3401D625E7C4CF1F765BBB4346539A823E437CCDB37FCAFB283B39E7B0236434A42B6454D4B3D28C781E81C7A5E3A89A4EB536373F79FAF489C3C420DE0557C04CB4448D95928223B8251A799BB76CBBB3AABAFA5646A954CE443D8708805FFDE6D24D0639D959F8D6BF7E7DC66E3AE0F7C57B6DB688C994AE8C73DCB47999A9F71B5D49F60F391C210ABA54A5D648AF2CDB5303150A0687DB5ACEFEE8CD036FBC40D7D24FD4ED3E72E44878DE1AB0105A22004C7C3C4D26D3D26D1FDAF1B1C525A5ABF8CC9DAA033C00CFFDFAB79048A550690DA8AA8A412157E0EEDB1E8546639C5123861C4391E191114EA3D52AAE55F6F39AE3F3FAC8CF1B15D7806226075577A8DBDAF5BF87DEF8CB4F89297AA9BA5C6AB5DA6BB15822CF3FFF3C311DC75D939B7353D112E943065D5C6E45C5B2C6CD5BB7DE93959D9D97EC7ADE3D710AFFFDF26B58B5D28B0C53801C10AF1D1C562D7F1CF97985986B31A8BDA33D14088549FA15D22BBDE53D1808C4FBFBFB233A837182E771D5419FF8991B37343878F4E8DB07F70F0C0CB4D0B9878972DC3E9F2FD4D2D212BB7823C9C5C05FD3DBD367A225FA53DED66DB76E6F5CBDE6368D56A34904F16CEB4174D95E46669A1FA36EA530BFB469F5A30440C19499D5D4605086714DCD4D215624E59D99683ED9CFD3562C1AE5ACDDD6909C512A6432B9786141C7AC5AE071BBBB4FBE7BEC275D17DADFA6EF3840DF719428C7AF5028A23CE77353027ECD7F1F90A886A9B4449F63A6CEBA64D7EEBBEE5E56B57C2D5588D04DF3370EBCF8CA2FE92D2711E724D8D8F01816592EB9A2FEC141381C43F00502D8B46E1D2866D380F1783CB1E6E673319154C6CC95FD365B6FD81F0C89552AB56CA6064A2C5EB8DD0C8742EEF6F3E77E77FCC83B7FA0EBB513DD0C9383F386E8416E279E9CF57F955FC84CA5252A3F1D65413A6584A5A4A4A4F6C3BB76EF2D28282C49B89E31771F7EF8F3DFE3DEBD1F83C59C3319DCD6D6363CF6C4D784736693507FEABE7BB17EEDEA141A21426FAF2DDC7EA1932228954F6DA446465CD13EBB3DAED1EA9899A8467C053E9FCE1DEDEBB61E387AF8ADE7229148277D4D0751B03B23232340239AE0FAF7EC3762095A723A9D3297CBC5CF9DF04D5C163D2FDA7CD34D5BB6DCBCED0E6A728CA91775C46821001EFDC7A726CF279648F1CD7F7A120D75B593C1BFF7DD7DF866CDBF23576D118272FACC99A07D704846C92FA560B0ADE7CF87158C92114B24A2ABA29AA4E3F9C7B0C371F6D4BB477FE1740E35F1EE86C6483018F4517547F8ACE75DCE75F123BDA9B4148D4635C48B7C1367E657E1F6ECBDE7238DAB1B37308C523E95EFCFB59EC7A35F791252B91C1ABD092B6A82D06BC328CADF815D3B3E2100B6C6B60C928C383E2DFA12F619EEA37D12442311F627FFF55CB0B77F8091C9E592ABCDF8E463BDDE71C7B933A77EDBDDD5F9166DDBA80AF8DFA18DD323D4D9D9C98BECAC59FF9EFD4C35152D1110825BB258F296EDFBF83D7BCACB2B2AF9BB311295D0D9D58327BFF51D2CAFF46391D94D6E895FC502E4D2F5F8CCFD8F0995B2A6B712A395366119F289F0B7719FECB3C27B9F79F6C741DBE09032C57CFCDC419F68A092034F14E3EF6C6B79B5E9D4C91769BB87C600C5CF359BC85E97BF139E4A4BF4309068096EE9861B36ACBB63F7EE3B73727232135560ED69C5AB07BE0D9DCE8D711F43819040AF69C0C30F3C2E00D5D0558EB12ADBC5BBFAC24FE173B22784F73DBDFF479300CC9CED98B332C839C5EDB69EE34D278FFF3E1C0EB7D3C7F4118D3AE933C8F4B8C353ADE5DFC42FE5931780F8351C9E96888E84268EFE54B8F79E8FEDDCBA65CB4DD47029139AF0C7575E465BE7CF41C90635538F87EE7F5208F49F1C7FC42F44CFE044DE417C21FE353C22FFAAF0194FEFFF61D03630BD0216623B478687ADCDA78FBF303AE23C4DDBBDFC4F9EC9D88CCD5764AF5B0052D112D954862E8EBF392083774B99D9D965F7DFF7C05DF5F5752B28E34413DE1FDF7EFA19E875267CF6C17B11F57AD0F3873F60C9BEBD7825F412246A6087E2CE8B00FCE087C1DE0187F24A02EFF7FBC6CE9F6D7AA5AFC7CAFB792B9FF5B47F842AC09B10D92BCDFAEB0A8054B44443452DBB3E414BAB56D5D77FE213F7DE59545C6C99EA96824E278ED4D5C152538D826F7C0386AAAAC973F200F4F4270000E6A305D4A485AD17DA8F75B6B5BE4ADAD445A38786834EC777B2C19A9A9AD8D566FD7509C0545A224A92D36B7ECA5B68E24898F3EFBAEBAE6DBB76EFDE66341A27BB691E80CEC646D4F5F7C3A7D542F1B39F4176FBEDC2F9BEFF83679300983DE3F925B801BBADBDFD5CD32B54856DF499DD14783B55DC087D073AB536722522FB3705C07C6889DC53C9A71F7A68D7A64D9BEA19854212181E465B43031A072EDE741CFDFAD7217BE2894900BAED8373AEDB8EB99C8EF696E603EED1D126FE3F70E1B93E612DE9B3835723B27F9300CC444BF410DC12EDCEABACACAC79F8E1CFEEAE2C2F2F3AF3B5A7A07DF14594B6B4804D02E07BCFEC0FF62401306D9A38E0F775B69F3F3668B71DA7C379BAE9E61B2A7A76310CE3BB526BF9BE0160265A22414E4BD0D2CE9D3B377EF2939FFC905E2E37B87FF213A4A5A743FEF18F4F02D0DD371D803811BDBDC77ADEDAD97E982CA695CED54587DB886AF8ACF7A49AB5FCBB0560265AA2D73AA224BE89B350B6163DFCF0C33BB76FDFBE96684926128B130004AC7D03AAE46962E7E0405F577BCB9170287481AEDD4A19CF673DCF5F2E0234903C577FBDFE5705D70D2D9125541125196857165D475E7E7E7EE5E73FFFF93BEAEBEBCBF8E308005F97AD5FB869CAEB768F59DB5B4E7AC6DDE7699BB795567E1A81BA5B2701EA996BD6F2030066A1250AA09AE237494B24D0AB3FF5A94FEDF8E39FFF22397BBE9DB17575B40C0FF6B74C345282B5E4A711AE6543F57705C07C688974A260D9F2EAFAE6A6D363B4EDA543FBE95A7B68F00D959382EF25EA0ABF1759FFBE0160365A2220F8B9A44CFA137F93579040E097058782C1A09B783E4080C5DEABAC7FDF01908A96888A54E46AF85FF7CB20FC275E511F811230994C61B296EC7CE6EA3F00E02A6949A7D3493C1E8F84A88625CA89FDB5ACE5DF3500538148DA755D053EF1F83F3F4AC8DF08E055B60000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (41,1,'IP_PBX_(128)',0x89504E470D0A1A0A0000000D4948445200000080000000770806000000CBA9486A0000000473424954080808087C086488000000097048597300000DD700000DD70142289B780000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A0000469A4944415478DAEDBD09741CE775267A6BE9BDB1EF3B081204778AA424521B45C9912C99A216CB9215CB637B3C9ED87EF39289CF7B939997F71C5B19FBD867DE49CE8B675EF2C63E4926893D5AADCDB22D89B24459124549DC4970074010FB0E347AEFAEAA77BFBFAA1AD58D060190A028D92A9E6255575717AAEADEFBDDF5BFBF6A1806E52E122FCE8FD64A79B6577B3172F60DE77123DFC37DB2642DEA02892F5D84113EEC972CE5127A8E7BF884F88B65008BF83671656B5FCED9B7B7570B09F2115F77ACF667831F47FF040916C8000EE23B89AE58ABEAD83ABFA7AB840486630591356B4D3BF635FB5C3CDA274C701106C8437CD55A5DD6EA71ECDB4C215F259BC0C891FAB4B5A6784D58DBA4754F36238009A44F98E0E22AC066005BD241742FAF3EC76A3382EA60820F93016C023A896F133ECE6BCC5A15EB73EE6F7E6796FFF1F40B2FBDF6DBF73B7FFA5FBFFF274BC1004EE2DB12EFE73568AD05D6D66F7DE77620C1876910DAD7D72C82DAC48FF21AE135CC6B28473D19BF8BAAA0ACB878A7AC2A472E1B011C567FAEF407EA56ACBAAFA8ACEAFF54155552555972A9AAA4280AEF2BC4C74855B12AC4C7F833AFAACBFC2C56955CB222CE51C4F9B2B96F1FE3DF2B2ED9FC9D754CB6AEA3F0B9380F5B1CB3F7C567C9BC9624F3BE2CBE3764593214591C334686065FFDD2A35FF8768E7DA05F258FE50ABB43970FBC4E04901D0800B80FF21F2872B9D480496CC522B8B52A4A8601CCCFCE7394ECCF8A4D74E76745308193814C46318F9B0437BF9B610045105DB1892F56BE4B49861D43962953682156DAB205520E26F8DD5A9640F1E653016E4BF707182F7D8A452C152F9B5F70C60294B01AA63B60606BEEB3A565AEFCBE259D09A3F37BE7DF1A62CB3F3298163A43B1C6ABA4898F06A0195FA567C4167F49DC141F9014BE96A1886BB1A8F3751432F85A06AE0BE6900D52DC2EC128BAA6B92D7565DB030987C1FA3B8502B2242F0903487910C06DA18017F04C7A8AFC5E3F1504032C854C1A866101CDAAC48C6142372451B52514E7C892208CAC307198D0E6C5F9B30646D1585AF9BA695E0D30071F914DC2524A12D7D3F9B306A99700F326E467F6C1888221717C468395545533CFEAAAC356B10D56392790F5BB01004B8800B96A40A0001F7043CA37B4B5D1E6EBAEB7882B5B30AC0862CC6C2D6816902DCF7C97F7378EF3ACEFB3CF551CBF993977F67733D7EBB9D04DA7CF9D234D170CE0B59E41CD0964FD6E6900495A72159015FCE1F7EA0203AC685DB9F4CA67116CBE90BFD6D4BC8C4E9F3ACD68A5AB795C55E9432248DEBF73A53C8FA53402295F14909F87D15C12C6D7C743240C5632B026F212FF8AA8801C2F4A2C0F3DF490D87FFAE9A70DC7394B9EA092E5A54580DC2DA32C38E063427CF386C54DD3DC49ACA526BC64137C6464449A9E9E96E2F1B874E2C40971CEDAB56BC9EBF51A050505464545850186B0F9652918612955403E0703CF2843BF2E89B5F121B835B2627A2A57324CED94F81D3B76C820FAA143876426B09C4AA5C4DF2D2E2E16E74C4E4E0AA7269148187C8EBE65CB161DCCC0BFD397021596DA08CC5505E21EE53910E0B78786E9ED43838CBAECB4B195CF4E99E9FAF1676CD9B46762C0C7338FC3B993CDB0BCF82C1BE631E7EF29F37BFB7A9A807571AE7D9C3FAF5FB7867EF0831FE4D589922C5D11C8CF47785BCD54555529A15048F5F97C8209D2E9B41C8BC50CB7DB6D3082EABCAFF1391AA38388473012E86082CB45852BC50099056E17A26EF95EE36428499DBDD34C1FCD74E0412CDE373F9BC766F6CD9C8C241CFDD9E799DF698EEFD239BFB3CEB37EE775BBE67821F215B1F66CB807D4777676CABDBDBD72515191C28465CF577131C155BFDFEF6249C767A5B2B2D25B5B5BEBDBBF7FFF443299D43C1E0F9F924EF15769669C34B67830561597C508708DAF280388C08FAAB26BA5CDFAEECE1B6AE8F6EB6B8421225BFE3A7C7F49046624711C6E9A9471DF48C40F24C53CCF0CEB9A913CE1DAC9F6BEE470F52447D44FCAB87F5E8F27EFFDBA114E965C578CF0807A10BEACAC8C3D245965A2BA755D776B9AE661E9F7FEC9B7BEB575ED9AB53B0B0B0BFF40370C2FAB80BD9D9D5D2FFDCF7FF9A7D7060606C27CB924FF2EE972B952CC08A9CB6704E9CA32005B8086CBE3A59EAE2E5AB37E63D6775EF7A5C50132FB4A8EDF9FF94D8EAF9F132FB0BFCB5DBABB3AC9EDF593ACCAC652121EC61D134866A22A0CE32A13DC859525DBC3F7E6FDF297BFBC6EDBB61BEF2DAB28BB5B51D44A66064AA711E1D4A8A0A070FBBA75EBB67FE77BDF0F8F8D8CFCE6CCC9D32F3EF5D4E37B1939E2600666842418014CC0E80146D016C308B2245D690450080C303C3E41636FEE219FD7C344322381080F9BC4C84EDE8838BE6C2207228272E65C392BAE2F1845440C554BD255716D441625B155C456C9208A22A27E76F44FB2E203260C4AC4224865E555245FE8BE6C1D9F4B7868C37038EC62030E70EF79E081071AEFFACC671EA828AFB8D7EDF1B482E85A3A4D69DE8256997F86B9323A064BCBCAEFBB6E5BF17DEB376D1C1C1D1DFDE5F1E3C79E7DEDE5974F30E1936C2BA49829C008E9C5308274C5114084779920FC8ED3C924F14BE087212B5963256E209D76424796731239B220AC99F091330CA3AA363A209C2C5BD73199248DAC215F43939D9140730B62E35DD80F6E58FFB9FD3E2A707BE852DCE2F9086FE979F7CE9D3B4B1F7DF4D17B2BABAB1FF079BDD733D16548BA9621BAB077C53E5984270713D8E7B0C9505D5E5EF96F6EB965C7BFD972EDF527C646475FF860FFFBCFEE7BEBAD016684A493116CCFA1A5A545CFC7089274A56D00C4DDF9B6BD2CCD2BDADA2850583803C702FAA58C0A7042BC88D9AB26C1715CCDE87B4B5D58E7AB82A836A3D8E95DF33CD53A47FC2E2B142C67FD3DECA79329A10222D1082DC690CEB5EC59CF4B2CE5B0E34078575B5B9BEF7BDFFBDE1D7575750FF9FCFE3B0CDDF00888D7D23392EE24307B2AC74F77D2F1339D74C7CDD7F333488261673185F53B97CBBDA6A2B26ACD9D77DEFD6737DFBCFD9DF1B1F167DFD8FDF24BDDDDDD2130023C075637E97C8CF0E2AB7BAEBC1720DE8F9EA6E52B57514979C5D5C905CC6103645DAF40A692D212FAE0FD0F48D774E95288CF96BD625BF63FFBD9CFB63534343CC2CC701FFF9D529C2408CF6EAA496853DA21D22026AB747AEB832374A6EB02AD68AAA3AA8A52FAE9F32FD38AE67A6AAAADA282A09F7C6E778651C8629E19A620C5EDF16E6766D8FED9CF3FFAFD4834FCF2D8F0C8D32F3CFBF49BEC3A269811D2B98C00665B0227601E06300C14D291D7EBBB7AB980052E503DE974921920BD280D6013FFE73FFF79EBB265CBBE1808041E66A22FCB89E56713CE92E0BEC1117A7DEF0714610658DDD24415CC84474F9DA30DAB56D0356B565047773FB95D2A8D4D4E89736FDAB44EA8D51995E06082CCB529E0F1F81EACAAAD7BF0AB5FFF77439158F4B9A1FE81275E7EE9F9A36004C4129811B44775C17D225877390125753E3F53963E3E49341DF5020BA8FB705AF9D0F790FC7F7AEAB9EFDE75FB8EC63B6EBF7559FE848EB9EAFCE20F1E3F45EFEC3F4AA54585D4D25847078E9DA2C327CF32D15BC9C5AAEF42FF10AD5EDE44F5351574AAA39B5AEA6BA8ACA48876EFDD4F2B9B1B840AA9A928CDD831B6ED60E43018DF6895C7E3FD465D63E337BEF4B56F9E8846234FF7F4743D79F2C8915EB8E638871141417471CF9E3D97145D9CC70B302198E48F4728589F81D4052DF0ED61ECB14BE74A2493A52FFFE68DEBDEDCBBEFEC171F7ED0BD6AE58A2627024463317AEDADF7E954E7795ABD6219B53637D27B878E09625E7FCD1AD6FD1DD471A18F56B534F2B9093A7CE22C9FD744CD4CFCE1F149A10A0A0B02D47EEE3CD55797D3FB474F53735D2523848B7C1ED78C4A713082D3BE60E458E3F1FABEB3ACA5EDDBB5F5CBDE624F02D15191F93C7FFE3C5483663382334F301F23CCEB05C84A7E45D3D13B4DE7FBC30221109E95EC0A21848F61A95BFB3022ED7482BD669D87EFB195C9FA6C571B59D7C03D1039FE06515D6D35DDB36B571E31D5495B60E19725FD48DE280CFB2A33BB0CFB82757DEB4F9FFEB951565C7CE64B7FF8505D2C910EFC7ACF3B42CFAF6768AF282DA6770F1C1544DF7EFD263A72EA2CF9BDE3B48699E260FB696A3FDBC5CC514F67BB744682612672154D86A6052AD45555503812A3C9E908AB55371D3AD141D5E5259448A5D876A8316BA0B2EC0BCAA808877B89FCCCADACB628E03256DDF699FBFE29118D3D7E70DF6F77F3B124338264198BE2D7F395C3ABF365D76068E55BDA3BA6E8C537BBAF4A2878DBD6EBF23280CE0C60E8C682E01FEE1E12386CF4C908EC28CC010EE3520A47A22BFFDB8FFF213911A3C4EA478A5CCFB87E2CBFDBDB465F6DF95FC8E7F3D2C973DDB4911962F58A663AC2F08F77BCBE6DB940825ED6F70DB51574E26C37F50D8D523D13BEA3A79F42E1081506FC343032CECC504EC1808FA2F138AB0D95F61F3BCB285141F14492AACB8AB35CC719A698653B2061FB3997D7F3B92D37DF36924CA69F4E26E33F7D6FCFEE03CCE09ACD0497E50598AEE06C6C5EBBBC8802BE964B460045325D24D9B46418018C4521407E0D228B08DC42162473D8EF96D8DF96F9452A482367791DFCDC6EB7CB5DEAF7D1DFF6FF1D15AC4DE86F6F7F424E1C99A6AF36FC31C55365A6C1B77A394B7FB3D0F5705D9BEB6AE864C77901ED4DF5D5D475A19F827C8D9282A050058DB595E4F7791809A2CC0C3E1A1A9B6406090A43B277708CCA8B8374E814A34863B5B06910049B51070E7B214745F052C17FFF2BA595551BD893F84FCF3EF9B30F6C26B85839FCC593418A62B07B42D35393C47E70D677CBEB0BA8B5A9E823130A0E87A7F921515CBAF05030EB7E89215FF2FBFD9259FB301367B0EFA3C0C34C956462EEBD496E4B7F5A1F6E6D97BEB9E56EA97EED32DAF1F617E9E80983D6B5B508783FDBDDCBC65F3313B98AFA87466879632D151715084468666600024C86C254565C48BD03C35454584905CC04BD8C12B51565D4C3E745D87EA86204E8EA1B66242822BFB00F66E207E46404B2914132545939142C2A6A5055E5E67878DA0BDB866D1C8399C08E1DE45505F326833CBE00F2DA9448C4C8E3F664C2B2F9093913189232F5FB765047CA848925597614905AC120C98A284A8EEB8B7D3963D0981B1339CC523113327496FA31BEC782A2924595FC225DCB4C80BF6148D20C233A99506195539EAA10D775C901B97F2842AD876E34289092AEA9F15343D92B74E8D81636ECB6512C9EA04E1882EC014C31B13B7B06A8A5A14648FBD8C414553391BB581514050354C144EEEE1B12866094A57F7432245440EFD0182386975635D78AD0B286BC42AE97E0701DD35AAA87DF6B9A69B319C7801A89B4A686422185D14D675567D045AAA1E775035D0C652ED54FB1705820011482205E66108792A786DFB94A399FCD97AC661D9B091367982963C59ABA5D63EB4ED7CD448BA69B9FCD30AC4E40A9D28A4A5254B73867210B2C665C9E1940C73A36D2FF57B5F54D45B2DBB56E26386522DABDE3BBE883C2A3CC0CCCC09A4A8901B7F48789DB69EDDA7FA475EB4FD2B51B7E454FBEF8676CC8EDA0A3A73B454008D27F82ED84E1B1096A62229FEAE811D25E5F5D21186379630D45FC26EC37B15AB830C0D21F6543734583E3D98C2CF8A78CE41B944A26A3E17064D8170834417D81F0F6D888783CE6F27ABD0AA380C6AA4EBF0C37D0649D742A4D2E85DD9502B799DE95959910708611A40CF133D2E31CD193F59D94511136438858BF62218055FA2D598C8B2770E933C112BC10CDE40C1301783B1D0A91EC7623127851C20306716D245A0E1D3A64D4D7D76B535353E983FBF61D3AE43EF8C5EDB7DEF648754DFD37F9A516D9B908B7E4A355A9669A964C3B43A84739C52EDD4D343C52CC84BB47DFB4EE45B9B9E1475455F147F4D26F9AD9F81B133EFFB1331DECE679585DD6B30BD94DCB1AAAA992A11D4CD0DA542BCE1B1E9FA2752B1AC98E38DAAE67BE9C027FAF0FF4F78FBBDCDE2297DBDD0C8697A44C058F899669941C286A24124943C5C1E3B1EB1317C500B8AC9E4E919BA1B9AE65C5552B0B9F652FE4B9DE407F1F1D397A3CF302E75B601C21AC8AA40BBF58E4E613463A1D79EB37BB9F292B2B7B77DBF6DBBE5E59557D97700EF9FA8D5A03E9EC109DD4AA685C1E633460DBC0502899228A6BA7E589C97AA3AEFA1CF3C7492ABEA598CE1DEE27D7541BAD6B6D1141A2C69A4A110BE8E81EA0B6967AC1B43D2CF5AB781FD1C24C1AD961FD3BA11F4CD0DFDF178BC612B2DBEB2947E92B905068414B58D00E01FB69BE31542681F8FC7CD2252300AEA6692996969AAB170A5E6024B2AEBE810E1E3C40FCE00BBD3951ACC9BEB38E8A1D9FCF978846A332EFCB6363637DBF7CEE99BF6A5BBD76F77537DEF88DE2A29236E11530233EAA3D424FC94F9B1E0786BA60C412635447DF3A69622A453F617BE2C8ED7F21C9D7C9D4BFFB5EBAB96B27DB048D74FC0C5BF64D7502EE3B2F0CB0E7D0C8B680DF546956726976F6D014DAB1D131ADBBA747F7787D62A4165C5D1DC4262B2D9ED9379921954A8B77C0284788175CA60A309624EFFC612C292B273F2FE52D3580A8D98E1D3B321C6D490C5EA2C1B68F76EAC4F183A74FB6FFEFB77DEAD377ADDDB8FE51F60A8B61D07E59FA0219BE618AA63CFC768E5BD7545822151A4C8F49F7FCFA3FD0E9F2BDC6DDC907A45343FD542F55D01A360C4F77F5D0CA65F5B4FDBAF542E2859E27A77B478E3437A28F51E3C8E1A3BAC170A9AA2EC5D6F336E6CF30808502BA60A151360E8661D8B20148CCD0971909B443741F8305F1F1851A81362FC0166077096154629D496C3809C3905FA8A8DDE3979E7CF38DDD2F1C38F8FEBB3B77DDFF8565CB967D5A868255EA29E06DE217BE8C55E409B68302BCCF46A2E1223DEAA2FADE6BA523877B69DDF246E3DC853E09C6DF9D376DB10C582D8FA467E979DA7FE0A03E3E15925C2EC61DC9B4EE4DAAEBA60724605FCF3000F83F1A093F79E6E8B1BF89C54283A845644350B4CA59BB76AD61058516890064EADA0F0FEE2F3317A0E1452D2C1B68A1008C239D8D24E40508E5DBCC0442FA9175836A505535C92F3F119A98883FF12FFFE36F57AD59F3FAA7EFDAF9D5CAEAAA35A26E416D22BFAF852A4B518F78237D33799E5C457ED26536CE142F824052799157F7F9037256669172A27B16239C3A7D5A6F3F755A525D6EF019CD58F77AC60596244745146F93C9D8FB03DDE77F3432D87F823F4F31CD527EBF5F63B52618E0BBDFFDEEA5DA007353E5F50F8678EDB3CABBCDD1D799926E91C94A9B9F0DBB998766ED6B26E75AA5E322EC2B4ABF35F139533E6E978D5BD79330DA1BE7F38BD8B4713DFDCD8F7E941701347DE191002713E023AB03C0A611080474480F72F02C494002362D52A8E14B9C387E3C71B2BDFDDB77EFDC75EBCD37DFF2A8DB1D2C53ECF881E2A74DDE0DD6F0783E56630F9557646628E3C891A386EAF1CAD9091F13F38786868D377EFB9691D20C8BF08643B767CC7C0B00CC637A3ADD3F3C3AF8F7833DDD6FA6D3E929BEBF08337182D12C190A85B47038ACAF59B3C6B85838F8E22A0083B495FC0C108EA66870347655720195E5657322403ABDB8360033E555A64DC0680026D0611C161515891B60E2A7E129A451704084CADEF82BBFFEE52B6FBDFDDB035FF8C2171FDAB871E3A7F9982BABB2C9E1ADC0E361D522DD76DBAD527FFF80D17EF214A3838AF82CC56251FAE5AF5FD187C62664050D3850FB28E98E7E07FA8CCEB75D63438B85C6C79E1BE83EF71CDFD718AF2126FE347F1F65D48A336AA5D8A04DB38BABDBEEDF2585824529B7EA62C19BAD5777DE52473BB7379891C14C59B8E5CBE77503A56C97D12E139B150A96E609059B41A4B972F626722C7EB15E90E1A815806D80913C88A669FC77D3FC92D38002D805FC9213E1A9A9F88FFFEEFFFD07D6B17B1EFEC32F7CA9A9A97943D6F3E5E416F05CCD4D4DD28AE5EC1A1E39AAFFF3E34F19FB0E1E4685B94844A1FF819403F394F1EFC5564F4423EF8C0FF6FC34198FF782F07C2F203C243F06E2A3D218A11B665E51547A79C9205931BC5E3F4D4F8C93D717C8B2074CC24B1F895C006877F8D0414AA661045E5E0308DB43B02447A80588A1DBEDD6F91E34188618E4C1865A924F4D227E70F2E4C9F8637FF1ED1FDCB36BD7365EFFB0B8B8B43213C370D4503A19E1FAEBAE95FFEC3BFF39CD2A4B22D2F3BA7336F44B3A2B422D752E323EF2CF91A98976FEBB53FC77A799F861267A94EF25CE7C9960FB25C544C7E013CDAE1F9CAF26409DCF0470F9BC0209C68706C4B85B3523A1769857B50A47244770C72CF336A3866495749B2821C93694C962049F94F94BB6259C5D3265C0B01331505D44F934C3CEFBEB42E4B14DA6CC8088D75FC0DF5F7E27987C6A0189151855500F6004B611601F64D00044F8C58B2FEE796DF7EEA3DFF8E637EFBDE1C69BEE66A671CB39C5AC3613081D6E18BAAEEBB3DC39B3458AE9EEE9863E118F4E3E1D9D1C7D838F4EF1F7D37C7BD3CC8480FB18743E069BA0B47C6A6A4AA82C26BE6133F065158488C02760DAED315D97744A9485CB8E913F666790DC12EE995E3E92DDC787EC7E3EB63E9BC95118566ACB4E6680E43082D0560604D6C5563319C0FA0C7FDFFE0C0673FB03223CACA597AE15D0C5D0002F1A8C0038C0200F1B0D58F7C6FEFAAFFEEA7FAE78E9A5BD7FF2EFFED74756AD59BD292BC9640989B8BE6668C2D873B873F6A0633E96D212F1D7E2D363CFF2CB1F05F121F5FCE7D00D4DE87AFE5BF0503252BF69D3265BEA175C1636AF0D6068690A87264452C8EDF559FA5EB2DAC298102DB27B429FCF0CF392C4A0103533744C308C2467868E4916F3CC0C0F339B3D896B90F91DE20F88B349765B185110A058F50556B650B841493A7ABC9D42D1303381464BB95C0C0DC6C7C7856DC00820BC05A0019F0A894C749E3D1BFFD33FFDF7FFCFAE5DF76DFED297FED5E7ABAAABAAED77E3902F20884FB260DE5603FCCE0F27A3A1278C34FB9426E1432C8061483D6F63401C18A3CC8828128515AD1F3870C0E075D1AD71E74100D4DC27C8E3F6516169D9473A17B0B26D15FDED4F7E42A964FA8A44ADF2A10112337019B1D806A2153710B103780B2FBEF8FC3BAFBCF2EB13DFFAD6B7EEFACCCE9D77BB5CAAD7C10129D3CFB77D2EA38F9289A7E474E29004B8976561E4F11AE13F1F6382C7715DFC1D364E91E9D3D8CDD3170AF78B660074DB48A792E40B147EE473015E9F4FC4EA1752166E8F09B0DFD7638F3D36E7B9DFF9CE7768F6889C6C34404EC142038CF113DE02332DD4428209C6421A8FFDF0873F7C8609B5F7CFFFFCCF3FB761C386EB2553DC93962A08CB46E2176A2AF91B48BC6DDDF3F530A034CAFB31C420C05C401CF8F896D40BC9BF9C6613F31A811FA79E6A696BD4CEC51E89892D2132C69223F66B6A6AB2387A6C6C4C2A2B2B138FCDDF195FFFFAD709E7B7B7B71B601430842D1FF9D0004C6005905288C859F6011821C6CC12FEDAD7BEF637F7DF7FFFAA3FFAA33FFA57C29332F457BD94784ED6688C1922CCD78980F0CC4042EA59D8E330F29889527C5FE9E1E161DD92FA25E9843EAF116856DD7C3C720190FE397201526969A9D4D6D60682CB309C311E00C70706064419221B55080583F8228182A4D0C4C484B17CF97223168BE9ECEBEBFC5B01B7CC10B9E15563EBD6AD7A7777B7E80AC2922A6C04261ED353D889227804286786F03DFBECB313CF3FFFFC81F2F2AA123F2546C124400A308925EDC2B5038AB0B781EF84D4E33E9642EA17C10073D37E783C4EA353095121641A7C64167ACAE6BEE9254876B32161B8C9966F2B7A4EC852A68054B6F6ED63665998798E621785CAE6319C5B5A52429B376FCE130A4689549617200A3FD1DEB6AEAE4E6E686800C1512AA532911526948282500CF404F1711E32824C3074F630104AE57334E406100DE4DFA6D9D7D69811B4A79E7ACA6026321819D00748E2F3C064C47F032802DC4F332210BB66B00FEC50729CFF0EFA1A8BAEEBA3A34383E820C2F78048239824C1F79B60F44858529F66D522823A97ABEB2F9901E6FA53FB8E8D5ED5B2F0677EFE4C1E04C8CE06A22D2DBF74947F2B4C34374BB7C4845098F8E821E86642BB9821053130C40AC487C10997175137101EC401F1E0E2415231566F707010C916DCB871CB2DB748172E5C40FC5E418B1830426565A51849CD08A217161662A4AFCE8C83E2932433058236E83380224DC96E2103294770C98A2DA450CE858414C2B9B03720F54B01F98B6680B95A9135D70668C7B53566BD004AB6C5000F735F16235974B3CDAB886E5925DEB9E79231F37B69665F26DD0A7F671FB77FB7BC65597E15E08803A04E0E711836D0D4EAEA6A3718805F3ED3D4E56642A2C419AB97CFF3D53534AE9715B5C83074D1F516C6AF9D9FD7D2A989D0D4E4A158243CC8EF5EE866263EFCF0A4455839180C8AB91478ABA24B18E8047BA0BCBC5C67461085A708202121C4BEBB86FBE22D882F2241252525B80E10030CA7B12AD1F85ADA9592FA851B81FCD65168994CC48495ED5C36B496D035ABCA2ED90D5CEAB27096220A85A3C2B207F199D0324BA4C2C4F7B044AA2C512A1FF3F377E08292FAC6A66D8545C537BA3DDE4DFCF3801960D2ACE2532BF86415A2060A8B5017D9178E84BBA291D07F4D84C3EF01CAA11ED01F88CCCEA4FE548A8AE0AAF1DFC818838811F0318DB73A131DA8026283114440895504D2CF69561F3AF43C7EF7F0C30F6BAFBDF69A601E3616E9C73FFE315DA9092FE645008F3F40A189119A1C1BC67876335023CD047BEC3E40AA15D09132A5DEE6796690479ED9DA811FC9EAF861957DCB8EEE1FB215E4219BA9CC5620A64D619F239B0356F0BB443C417BDFDB4710FE34C300338DCC7A5965C9F232FCC3B0C3679FCFEF2FD9BCE5BAAF0682059F6229F7CE1079FEE8212BE6BA503852C7DAE2667741E9512D1AFD0ADB69E3E811C4F75F1025EFAE94A27E5742B763C318935DDE0E89B4FD6E35B547D2927DB00358C291514CF3BD688C0E80FA74717131880E3480FB28D08291826EB8E106090802E9677B83606F383C58FAD08C404865C01FA471668044346286716DA34D323B76D8BD19659A495BCE8E171834531041992A1811F2C531D4B9593900110E36CC70B09046EB58DE55334439B8BFB098548F1F9E00A01F2366DD2C55015E7DBCEF69686C6A5DBFF19A3F555557831D5A5EE81263828C4D4C38EB0E36A841FFD3E9C9D883FCAC5E5D525792E2FD73C5CC5FB87853CD585E6D18F24D4949FDF7FC1D7AA38F93A47591A21F74798C37BC52AA03553CB02D18BDD2701959ADA42CE3117647DA2EA4406A9A0D4BB8A4BAE57DE87061ED18C5158B0398410A9D92A80C767BC9C3ABD0CD769CDF2AE19E61063BDEEFCC6649568DBF230F6090990832A41C57C3C8C41EA45906A83113934045B8E35CB6CBE86CE7790C92106D09D1B28D2D673F135F815EBEE1A69B6F6F6A5EF6289FEBD1B5C5E50A302874646C7C76CC21AD2DE7E7A9E277EFD63C45DF51D058DBCE69640DE5129FE06D5418B25AC1DBEB9386F18D04DF8AA16B9346523F2FC9C1836EC5784349D309A8101883F002F8FAF023D3A3A3A36946318D66E63D10C8C04C80913F99F8C4A530C3BC0C801141A94492CA6BEA3F92A160C96A25D7D3D3433FFCEB1F413AD1E6C5CBF05FC04C1078E0C1CF7DBEB2AAFA56DD4A2C2D8AF82CF9436218F65CEF5429337CC1CFB13FB95C71105C332CE6CC6A1F438EBA3FF19DCCBAAA94F7793536A70CE36B2986412D2D8FEB5AEAB822192F16ABEA6E559513AC32E081A4AC55A003D408A3850E2FC14204C426163D33CAC543C1862E25F825F8831FCD50B018374F66FA985F0415057D343E4A68F5E2E7557DF0A1876FABA9ADBD55D3169F21C430AF81A1E139FB0D30AAE9BAC7B3C1E50DDCEF546BD87F3615A10B7A8A9A24959A64951AD9DE29B3D3DC598C4139E3FDE016AA6506796EE5CFB74EF28DA76389417645DEF3B9E889228F72D44A022511580010B18D934201281B8C69780E768DE342D1609E5C00896AA08F7A20D06937F03B87FE2FB8EFFECFAE6D5DD9F6078BAC1216CB2843FEE8F8F845CF61F409C9C1D2AF43EF3907709C6335D4AE2745F0EAA491A6D39426F68829C02FB1816FAE8199A18E142A37E41994C8650AAB1642656873BB5CB5FCF901FEFCC0482A954C2562E78D74E2F5E280E7F1804BEEB7CAD4124C7CD81249361653CC04DA927408B173F41F650E302C23915F84DD934FB97BE7CEF5D76FDBF60797621B85D9D01D1C1916ADEA2E1A1D73B90BD92B929DE3F7D27CF897F18999192AC4F077730809F2B79DCC105DBCCAC26F94A88E99A196D5185A43545853E464F723CA660C663A371B8A2B797F25BB10DF188AC5C2C944BCDDD0D32FD4177B9F62B777925503BDF5D65BF01AD2AC12A4CB2C08D1E9439D654D5A9CD4E39FF0DF354DD404E0586BEB8AE0CE7B767DCA9CBA6871F71E4F24E8FCF99E0CF1F1FBA191112A2B2D154D1C2CB528BC0E9FBF40CEED01F8763444239A393D8E087393D9FF80464748631B456E594E4A4989380E5CEA3134EA13D5D44972F3C3573333881508C1ABE2A81C9E610C5BD56016B682A03F10DCCA9FB64EA5D3DF8F4622439191D1FFBCB1B9F1EF11A0A2054C9475510680CD04AB39DF6B7CE5DD7E7A656F9FD9D11B215AB2C3B696910A4EB74BBDAD8EE0B291B63E6B5607712BCCEBF89D9409055B65E3524E9858D2E9DACD9BE8C73FF9B15925C4E7B0121481A0F2B272DA79CF3D15F0AB17ABF7E349F624CE75655AE2F4F50FD2FE4387692A344D0F3D70AF6000104065E21795556659FBD89F6404DA1D9F16155392E5122B96C723575691363E49FAB973246FDA44A963C7C8BF798B78669B5160CD0CF1E711F41AA494204C3933432513BA92B765E8DA9A354C3CDBC8445713B60DAAA3D3E37732F1FF092FF562E301168800C69CE6648AF12E96485F2417A0E5C9056899F3E4AC5C803E7F2E80CCF3145EA3D1A81503D045FA37CEC40703ECDCB91363FE257D91D63ED0E31C131F08C4D615BDBFFF10759EEFCE5233780F1EAF874A4A2ACD59D07260FAA5D028A50CAB438AE140000C693F7C885C75F5E46A5B49F1BD7BCD8018334CE8572F91E2F551D1F65B499F9820B5AACAF4862CF531C1CC30C5CF7B8E9F5FE16B16B39B5D0166E033CAC99CC1CDD9582A1A0E017184938DECE7F83C76CCFC0C2049066E365F91C53DB7D4D1BD3B1A3ED45070A66C4C96CCD1B4A934255872113993307CDDA72EDAD54BA69274BAA343A0C9F474987A7AFBC9EFF3515BEB72668C94B8762A9DA2EA6005050B8A4976B92D776EE6C59F8947E9402C2CB47886F8821198284F3D49BEEBB7919B891BDDBD1B79677EEB0AC50F1E20576191288DD3C7C62879E10285F7BD4BD5F7DE4FF1BE5E72171692ABA4CCCC969AA3E0699AFF6E8405E2020BC81DAA8F5C42C1180E0698C2BB41F65206F1DBDBDBE77509E7350215978726C74699FB7D2C5D9E0F53CDCFB9D8032B91B38FC6A262C652848A176BF1B34D4DA7CF7560342D8598F8181B585D55415E9674AFC78BBA00739F579FCF4FAADB47B92E9FD9C24DA69B9839CE3223401528B6F4F3B6E80B8F923E3040A993272978E38DA4060B28FAFE3EC00E15DF7C0B450EECA758FB715299E97CB5B5143B7B863CE5E5143D7D8AA4FA0692748382CDCD963169AA9432564741973B4B05E8A25F828630BA66CD5C22A347D065750963902515C5A0BE000DF4749B15B8E6AC1C44343342D549599146238932839B8D193FD72C61D1456307DDA1C3EC70AF617662147A1D826C3643C4796657105BEA24C30E534BF4E0671FA43686D6C5EA7C48F589B367998992A2072098A1B0A040CC45603200B65EB1F5F8D025DD2370D9C8A387D71514D23A262CBE1B4925E80C33E5396686CE788C22FC0CAEFA7A52580588D1D67C526005AB823367287AE82079D93E483303176DD840D3478F526A68884AD7ADA7F13D7BA8B0A1910A5A965936056526E66C60A1C4E01867C4311A0D0BD4846CA8C840A5D3A2E885ED008D2EB5450C089581544898664EE1225DA41DAF41B9E150C3B4E710F7B7DBB819E6BEF9D96C74603862FE2241638F0310DF69A45B8C607AA566F4EFF6DB6FA7D5AB57D162753EAE79E2F45911424E2493E2EF1415156411DDC908490B6D80342E972ADE456EDB369B31AA151F55315ADE6C949A5E045F1F8CD0158F5077324E097E10A8834075B51922671513E135CA08E163C997CACA68FC9DB7C9CFE7143636996A90AC6E6B96B835303AA924650592A6C647CDF884B837C3CD760D862508A223388489AC6014E6A2813A5F3108E031169AA282A222BE41BF5595E318D625295686D03963889529B4B28192330B28CFCC1292192F60959A67C61020DBA890F51B79268FC00C9082E1C72F951D626A686A5E34F1B19C619D1F8DC604A3E16F14B1BE9D91FA6CE977B95D74DDA68DC21E4042686C6C9CC627A784BD1065F4408614AA11E7390339B69D50C70F52CBD7BA894AC4BD0EB2CDD2CD0C7181B77D8938A519FABDEC19C816910D6634D7AAD51439DF05BF945C8C4AA2BE42323D8B227E6F452E570E0312251871C050A313533B8E9F3EF7C7A5A5C1E7B6AE5B7B26140A25101CEAEFEF1745AC7651ABCD08F3AA80241B3745EC079794965F955C805D46668E02322511567B5151F12515AC5EE8EDA3B1F109714DB876B68E37A5DE9BC508B8A7B5ABDBA8201814BF2D2B2D215ADE9255848A6B8D8C8E8A84D1E46488A69831705F814050A8CFACE81E3F4F03FFCD7AB6276EB4F4F680C5083D89180DB107A2FB14E13E96A0258F65009ABD121DD22FE21433F09FE0DFDB4DB518D16A2643D3FF9199F43FF6F58D451EBC4BF43E8ED7D6D6A6D6AD5B875031DCC34CDBB88B3380664878D95ECF87DF2D3CA33EC0AD56EA37C92F0B0C00E28339166BF18FB30477F7F68A412E18CD842EE868E0E4C923FD2827ABADAEA2D292E2396224EC9E7576091B62E3BA3559DF4D304274755FA09EBE7E668C09815A858505EC5D046675FE6A6041A8E7FBB89E1102CF33C4CF38C0EF7C80D5C5582A9979DB7644B1D1EB2717F4BFC30619E81BC92036D0C9FECDB6ADD706CEF40C3ED65A5FFD433811EC3E27AC390D5187A8CF8F00A25B459AAEC622395E341800B90FB864056C70B94437B0C559FC30F4A0F75DACC7FD3EAF68F72A0C3C5E7D5E87C5CF5B37C339D0A0AEA67ACEEB411D2070545B5335EB3B20C69A552B69F3C6F5E27328344DE7BACE53D7F90B22BB8841AC258CAA85FC2CCE6171604A1B21446899BF18668607538CE2F9F9992BF81E737306E313A6FE1FE66B87C311B15FC71E85C7ADD27832FDCDF6AE9E6F32AA461841F73145BFBDAABE76FFC30F3F2CBA86CC1F0AD6AF4E2EC0B00230D813FE3EC31C241695B68B957C40F5B1F653A22153794990826CB1CFD6F9A60A60C389A5768C962F6B9EF37A0383438C247D74C76DDBC5EF9CCBF90B3D74F0C83166301FDDFD07B78963907E3083CD10D34CA413A74ED3B1936758674FB06A29A7F2F232DB0A9889FDC3E2679550EFF359FD12F3E40860A8B34783C218A837480E0CD56DD76DA29EFE41D1A0428CA54CA7036CF37CAAB8A8601323413DEA10E7550186D30BC859FA86A3D43F1AB34AB966FAFBDA9FED322FB32CDC0A8EC894E9F76BEB35D9EE129EB98E94E9202E14A0E51A565694D1ADB76EBFA4DC443BBF6C247960ECA1EEDF49F05C46006C03DACF9CED60555328D4405D6D0D55575688A0148CE2D3E73A69626A4A1887B94B3D9F0B15535355393BD11489505FFF00353736D2D66B378B1591C7E3274ED1C1A3C768606884554E29D5E01A56E879766F6072740C657533312E0CD9EEBE5E766D4D54DCBA65B3886B08A35C358363A04761810FE89752A4B4CAF640FAB1C71ED3D5B984CFA2BF59B295E7A40327C7AF485938720AB25811779718C6647EF9E5F4F84FFFDEB65E1745FC8EF3DD343C324AA8046FACAF65B8F7CD967E4BEF8F8D8F8BF3676C86491A65343874F4B8B039AA99A80D75B5B461EDEA59B6017207C7E0CAF1756EBDE986D97107669CF70F1CA6FE8141561B356456A693682A0D4373E3FAB5E2F34956531F1C38449D3D3DCCB025A2025AB599811C96BFE5025EE8E9A64824CAF03F2610A4B2A25C08CBD8F8A460220D55D90810C11B619536159A928381A0DCD5D525F5F6F64AEAC510982158D80AF914406B43017DE6E606B3D45BB6CBB9ADAEDE6496830BCB557294804B33DF2B8EF33225E0B2993D33DBD36999E38F3C74BF80C8C5067B609D9FEB3C2FF65B9A9AA8985DD9B9A41F2FF1C8F193F9CD5BD17C33CD2FBB571877884206037E66A87A6A6AACA7E68606265601336A25B5CE51B21E63D76FEBB59B28E068BA0D4242F281361BD8905CBBAA8DD6AD36577C77FCE429DAFDC65B8C36215ABD6A15DADB66A9639C33C95EC879403F89E6DE74E3B6EB29321D3189AF5B4D273449DC1F5443783AF26C79C0835952C000B36C002367E55F2B140E4DCDEA16BEBAA588D6B6962C592E40CEB4A637DF388CCF241B40D0A5B50C898BF5F7619D1F3EDE2E5E528D05E359011E87EB07E2BE77E060F6DF90E6F678206980D8A3ED27043AE06F54313AB43435B0158ECEEABEACA9768E9D3849070F1FA395ADCBE986EBB638CBEE69556B2B5596970B64C929C9A7F56B56534B73938841BCF2FA1EDAF7DE3EAAAF6FA0FABABA0C03401545A371F1F91A4611B4CB37CBE6156BC8B9265006EA6C626222D45051F45FD8A036508EEEF40266139E44330E4D62ABB9B7AF4F3433C2D800D951B62D65023BB2357C4BCECC3364077924E7D87FC91C2266168A2AA6C4CBE6F8437C6758CDB044353033008CBE3BEEBCF3928C48BC74C02EACFD6BD6AE61E3D16F59FADE0C1378D8E003F1DF79EF03F69F5397E5B242B7F7B044BDF1DB774450A8A5A99156301AB42E6F11845CD5BA42D8063345A56966A0930251EEB9EB8EBC5E0BEEABFB422F7DF1F30FD2239FBD8F3EFFC0BDF4DEFE83F4C6DBEFF2BB52184D7C6CB30C0850282D2EA22646A2543221548628CA45A08BDF2FBC12335914F98BC2D202A173972D5B66300ACC3202ED9E6F58F14652A2EA4E51A9B7BF9F34F64D7523339749A6D05127232B2D69867ACDE209BBDBB7A1CFCCAD2742BE9A63DFB2F6C531A132C4640DF45F7EF043F1308B4DF2F4B19E1D1C1E16FBD75E738D184B684BBDC742019B701F1C3CCCD23C7D49910D9129CDD3960E21E6E3274FB34A39219E0D05252B57B450DB8AE5CC10CB84A72159ADF091750423E62EB8C74DEBD7D14DD75F97B95FFC661B2308D6B31D5DF4B53FFEDF843A02A26EE3F3C00898B19544199F29FDA85F00E30D0C0D9DA92C0EBCCEC751648A1E883A2A899D08A05B5B9BF8A212553430E08B048ACA1CB5FD342B25EACC4A1916C167EAF92D6267DABDE48EBEB1C60158C527B019BEF8F987A875C58A4B48EFA684F4638105DFDAD29CA5F3B3BD833334343C326F902B5FABDC4D1BD6512DC3FEC9D3A769747C8A064746E7BC27F8E760C837DEDA2BD07159738380FEB5AB56329CD7CE0E559FEB10310B7812F014F22D4F3DF762666CC3AA95AD6216924C03494BF783315C1E17D4A1EE53E53FE353232839472F219142E773D55CD8B72A2F50C2169514399E194061E4247BF254A5987EA99E35C043C0B961257BAC811E330CA0CD248274D3A78591B876CD2A7AF0FE5D97D49CE0284B1DF4BFAD13ED38BF9413CB80CFEC2CFA58548093CF1B1B1FA37DEFEEA3C2E2120A85C3E2A755EC2A6ED9B8818DBAB3D43B382CBC88DCCB222671FAAC49E0675E7849C435D6B4B5B2E1B78AD6AF5D253292355555E2BD2C6FCE1F8B787BDFFBF4EA1B6F0AC62C2808B2A02C6364F392D93ADE34FA64967EDD4A238D8E8EBC5259E8EF822D8A318D18BD1C0C06B3E2008643FA933603280AC6A95BC060386BF1B21311B3096F6446F6648DF0C987008E6C9F64253DBEFCE82326BC2ED2EA47252FFC78117CE11709DDABE4E92938CE96337CEFB9CACEF336C7CE3904DD1B8A4629C16A0B317F7C0DC8BED0DD4DEDC78F5379F58C6403829BD805839D80D9439C0BD4CFDEF7F7D35BEFBE27DE1D8C41DC37C2CBF906E6A244EDAFFFDB7FB7549044D76DBE866D81804016CD32FAB09FD6C4542A140A8562D5C5C1EF230C811E044C7C0C3211238CF2A980B405FF302BC3B2AAC6CCFEFB46F63466F9243F0FF16DDDAF6772FC0E06D01C0C60CC483FE613BEC0440CF18B5AC330E9F12EBC08E558FBC92C88CE477C185707D8F55A483C215F0014888278C2D0D028AB2FC36A506D3ECF2BBF79838606FAC5EC258816C223629F9BFEED571EA5C3478E90918A53BFF020A6F3F217040891C48EAE6E7AF617BF126E1B42CA602C4411E1C9FCCDDFFD8426A7CC78FF32F610CAD8BE41EC410C69B7023E68258FD15C78C2E8F4F48FFC4501B49D01E7253176C0592CAADAFD721D4C603380F4DE9ED75E381E287A875DB202FE034126AC8F4FF760DE633E5DB16B1474F37AD21CD1E4993C7CCE01610819928C56E85EBFCF5D10F4078BD09F35A53D7CEAF459FF91A3EDB49C75F8268672EF3C8C00E91AB32057E8FF3C717C58DE078E1C15DB4B5960906EBF712B1D387890CE9E3945C5651582A1B080081114A656550BBB06526FF6304CD2134F3E4DC78E1FA3652BDA281C8D2EAA4A79FFA1236CF91F124C56C296FEB0656B209FB16AE5722A455654B2665ED34DE98F24CD51D2232323BD6585FEE731ACDDA2691A43CE1F7EF8E159E960A70AC8103312898CF38A27F4592B8641BBACDF658A542ED57D42F52EBF54A0BDDBAD06FC15E5E5555FF9B75FDF35393DEDD7AC526FBC8077D91DDAB07E8DD0AF41D699F9C6061C35B35C99A5A2AC7496AB06B72B66F9CC97B280715E637FFCDD77F70A624EB12423E0F2D95D9F61D83F467855C313532CA1A1CC4B840FDF3F324685E555AC8BC72E32CC6CFE05A9675B70D0301BDE85DBE3162824026FAC02927A4A14B9A4D22943D1D3FF972CBBD1702A8641233E9F4FC328636751889A1304B2C533E9F89CB45502229722C260AE4EE25F1213A02B873592D75B5C5C5CF8A57FFDD53B8A8BCB5A4A8A0A6822141206130CAC383FD09EB7DEA55FBDFA1B114943046E595383F0B18B8B0AA9837DE9692B0B664A876F16A39C3DD79931CA2EAD5ED1FC36C6045D7FCDE64C9E046AEBD0C14374E4E85131C39A614DB409C6B869DB752298D5C9F7D7D9DDC3DF49667465BEBF295DCC16914496B2A2AC5CC0BF09FDA6D1A7B1DE1F8F98CFC8D2FF4E45D077C2A25B1C7D0C31450EA4DFD1E8CA6400BB075E0E683B5542D221F54A26457D790502125BA418C9EBC658BE929212C5EBF36A631363343834486E975BC4DC910646260FC59B80D6C1A11161BDFFEAD598805FE8E4FB767E3A735140F143F7EF9A1517C07AA94B390A624A8A583FF78AD62F2227611526E29ECEF70F92AFA084EF3549B6D501DD3DC8F6404747279555568AE8DC45A39917C9B83ABF42CC60357B0D0D6C87D8011F19B614A03F1A16D21F8E4492255EF75F22F18826D268208DDE46A8089AAF24CC703081CD00B2651CDA129FBB5ED282C91A21FD2CF9EECACA4AC4A653AA8C962969610C41F261196BA9345DBBE51ADA71CB8DB46FFF417A9B8F4DF377A22C9C5758FD46C6402BA0473E7BBF59B9632D309890DD5B80619FF7206209EB99119F7BEE7951D8E1F1CE84C411D089C763E6C00CD1CDD46DA102D189536758DD844D14EBEECDEFD14A8B864C5AB7B64DE41C0A8201F10E4CEBDF34BA2726CD7100A189897F2CF6BBC7F96B58FEF0E8D2E878962F99A63A7464A65ECCC10C56C37AD2E780FBCB620074EA424B73560129E827D12FC276112DAF21CDFAEDB77BDF1355BB2B19F21FFB3FFE03A25A6C71EFA1DD7B7E4B306E019508AA7CFA53B765A2666602262EB26B0B50457352077AF7F95FBC444986EE7822452E8F46417EF93BEFB89D0EB27D82D87F1FFBFCB975B298BF4856DDA4C87671AB96F5C2F2CFC374F1635515E5BC565053439D302504F185DFAFD1C0C490E89036363E3E52E8551F47A349BC026612510F88AE66F92A83D53C71EDCC8992E4E8DCB0903B5CC4C2EE081800192E31AC19BD735E7DE5D72FDFB47D47414945D96D8383C3C509DDD925441711BE03AC6BDDAA4BA45CBFF2858785A4353735B2EFBC6A96C176F2D4D9B9A7915BE05DC38A87D4CB4A8A7C6C57A012C9C3EAE985175FA243870F5343530B91359C0C29621867D3E1693A74A49D7DF6D06555433917B884AB56AE10E164B7353FA2EDF7636C04EC1B315E221AFD9EEE96316D4C042D6BD1CD8C577DAE54FA3C55C1995FE432C4652F77DE79A784797ACACBCB710FA20D1B3876DF3B6FA15DEA51B609EA56ADDDB0633A1A6B1E181E519DA8301D89D0B32FFD9A9E7CEE45E11EDEC5920F1709C691FDA06758F762BCDF828DAB798E89F671960E4739D8E8C808155754893C88CBAA4FBCFEDA4DD471F61CFBFC87A9A2A67E492BA4DA98F88810227328205FD232E5F9DDBDFD96E1377AD8E7920EC2ED630680EE87FD2662FEBC5ECAC4917332C4922CE87983F668E88F834005263CB2DC4D997596F6EEDB6FFE1CAEE78A956DEB3CC1F2CD3D7D8325985E3D933BC0D83996B27F79EA19FA879F3E2E2CFFFB76DE459BAF59CFD677F292010AC406C2E04577759FA78ECEEE59C36C4BCBCA1C1DC54C94D9BBEF03EAEA38C70C1A254DF18A1A3F5A00E4CF678B00592AD9EA47B818255EB6D1876C5F171BC4313136329E76E989BFE49B0FA1A53C7A1BF25643D4EF6285342A5DA5053705AB14B5693054C0B50C611396B1693344216F03674F9F7A1FA8E0F5FB8B562C5B7ED3F854B8E5426F9F2BAB59143F20F4F5FFF78FFF4C9FBFFF5EAAAAAAA04AD697019F6FD1F78694F1D98E0E7AF9955768D9F2564168BC78C0AFD783F4F800F50F0DCFFA1D6A048ACB2BA9B0D49C1A2E63F52FD06ACA87AF60C6D6D615B46E4D1B0502BE8C3D81F73731394ABDECDD988521633F75933184B6F27CFF70FB52E8309A6F30C84782017053686ED4DEDE8EC689500170E445BB34F4C487FF8AA951785B0093016B8CE1E24CFBB15FF0716F734D5DABE4F65D7BAEABBBCC46055B45E0252321741ED53B88A0B1AB585E5E2A6A15164289483422BC87EABA0651C983702E3C0C620FE5E4C90EEABE70815DBBAA0CC1107740E46FD4D14C6AC1DA729ED396373752154BFFCAE5CBCDE49928F1C2ECA0713A7EF28C55BA36D1EB32528FEBE6E451114C2481F67374B9FD01AEF402EEC4FCF6A5A5A568A78A19300C87F4C38A0DF036C844050314609FBFC3EA1F1AE8434CF554B15B0DB6AC6DDB36303ABEE25CE7798F2D7533E9668D864646D9521F1286545D4D0D13D437AFF421955A525C9C691E895AFF8EAE0E9A189FA4404161265175EDA68DD4505743EFECDD4BB53595EC960E2EDAD59CEBCBC2C2A02885BB61EB1647899726B27D308831329A055DD3A2A1BF900C639255E9344B7E1C6DE76EBCF1C6AC90EF479201EC001446B1DA7187C2C242F43F4AB0FEC2CC18982CC18FD6AE203C18811F120C60A3829FCF8D0CF576BFCAB2FDE6356D2DCD4952AE75B9DC95F97A0AA2AFC0C93367484B6B22D75E59592E2A95164AB0E2A252F65A8A852760A7B121F5BF796D37192862F1F917657348F3149BAC686916DE4DA5B037B4CCAC229DE7BB44032B11E7181B7D921FAE9BEF2764E6BA6229D84FB921DF8F24033899C01AC56A8C8D8D69838383E89A898ED92E7EF02812507C4EC86206C4780B2C2408A24B27B6608648681221EBEEE282C083B144B252CB493F3BD3D0A8EB478816D5B928A5425E7DE1649A3986EC5DB0B88CE289B8E929684B336711D2C240A06DA220C42EF4D04580ECF0B16326F12727FB8D64F4097E479356C83781269368526DA77B3FF20CE060028C55036C61AE5BFDBDF7DED31A1A1AF030E8992F5C44F4DBE73564D906A0580068809599050623FAD915ECFEF54B8FD7D5D5D5B7AE5E77239BC2D50C9352A638C58AE1DB0C811CC2E163ED42C28A8B0BA8B1B69E0241FFA20D5AE19BEBFA9C528D733EB5FD162A08FA442592ADBFF33118FBED545E564A9FBAF516F260C22ECBE8C3A45D6FBFFBBE882E62FAC2C8E4D85F329C4D604E21BC1F4C1B87FEC573057D3EB20CE07431315CC99A94016DD2E58A8A0A942FA5311D2A381C63DF59CF611A95B0E53206A016F87311BFA462BE4C31A2C23D3D3DC9DEDEDE41268C6FDDC64DD7F9038195E393939E395BCEF23A3C324E0383C3620411EAEB9BEAEB44C5CE522C88DE1DDCBF8F9E79FA19FA4FDFFE8E885F6084723EE84709FBEA95ADB46259B34014BBC40B95CB6356DB9789F1B16798F85DFCCC93FC3ED0C15C483FA3A7B198F1131F1906C813921661686BBA163171039A2BA3FB05225C984A8591018C803A37CCAD03AF010811618980DA280232B071E93FF8C17B6FF2FEBEA69696A6F2AABA6B2743D3A54832E5670433F288FA82EE9E5E61ECD5D65553737DBDC8C12F228793B540E5D45655D1CDB77D8A3E387058246DF25D0465654146A03B6FBBD54AF698BABFAFBF47201596E9E9D040727AF2097EA649CC21C8CF2BA4FFCC9933101A6309670DBBFA8C60C3273E433DA0EF3EA66371AA07CB6D84E720B656F50B18A2C87223A12AFCE73B3AE2DD9D9D5D3E9F3FD8DCDAB62DA9E94DE31393EAC55001F0DBD57541349102F48240CD8DF554182C20459D27D093338803892B973760CE6B94E774E4312AD85D45E20B65EC8240CC0409468A975FDF630E184DA7F5D0E8F0F7791F319329FE3E8A994630BDED8E1D3BC0008B7ACF1F5906984B3D90391D7A967AB052D6E8B69DC45C3B60000496201D96912856CB9BF04722E1F88923075F4542AFBEB965955A105C373A3659A4EBA92C14C8B7F6F6F69BF105AB54AE910D488C072C62D7509AA33C66212001266F6095033775F386F559DFBDF2FA1B9951BF93E363CFB1A3D7C5520FE917757EC8F5DB68B9E4CDA23F0EEA01FB56F3644CCE809EFCF006F0C6420E4FA1C01954B23C0A5F4F57C761FE7C42C53CF095355B929AD1343A0E5BE1222DEA1DB3979E3E738EDA4F9E160C01431065E835D5D5A270C59E0574214B79A93976E1EE3B6ECF3A8EB105A7F86F600987C3835323834F32F127F8EFC12B8AF273A76A6B6B752BD6BFB4F3067E4C180188A041F73537378BD93CD918C2546D0209602C324CDA8C10743202C2CC967AF0A51289F860CF790C9C70F9BDFED24045D9A6702C5E37323AE69ACB4E70AE2273C87A1D163E565BAAC10888E5A34A1961699470E516AB62E816023E5BB76CA2CAF2B2CCF189C949DAFDC69B621FD3D24D0CF7A3D1C3383338E61016D93E86FE746565A57E2903673FB60C30172220B7505D5DAD031231DB5671717192A50653B8000DC28E3882CD08014B35081B0188C0E77863D1703C1E8BA0FA52AD292EAA52BC818DE3A1E9EAE1915145CBC30473BD781CC79070ACF91634BA40887987359AF857BB5F1759CCEB375F234AC35FF8D52B62A08B19F019FB453C1281D53F6147FC3097E0A542FFEF0403E46104049430955B861158DA30BA49CCEE8D383910017104CC1DC4FB3633046D44B0ED04D86408404D4F4DC4A5D0643FCBACDA5A575517376835DB0B95C363E36EFD22FD1316B2A0C52D0A453128166313CF32F131B0E5674F3D2B3C8EED166344A391E1D1819E27F8DEC601FD30FC50E685221A867FC3F2FBE9F796012EC60896D720E6E8999E9E4E5A53B062223FA8061FC3A998410C2860E51D0296AAB06716C3EA41EBB5E9A9F14EFEEE4291CB9083950C2FA4AE8E2612B59353E160341E932FE7DE31540B452CF63A323A618DC3D4F5E1BE0BFFB76DF5236906AB1F851EF0F931A1D442227EBF170C908F11F2790D988D132F1173FAF27E9899414C1FC7D225A41FE8603181B011C004B0136C54007ACB12C5BD941AF5F914B5CC5724A7A9A45297D515D178B27A626A3AC8B0BFA84284742A110E0602DE4834A6A29C0C891E14A02663B15F45A7A73B6112C0AB61433386546F4747C7A27DFEDF1B06B898D78097068F01337825128994553429BC063ECD2D2681B212501632088FC1CA4C62608C0FE758F90920831827A190965034ADBFC8454A7145814C352515D1A4D11889C72B63F164301E4FBA99A84A5E55904A6B83E73B7F415A3A595DE8F5A68B0B6F18199FAC1B1E1A09C5278705F4A35806412E24CA3043C8A5F8FCBF770C308FFB28F5F5F5E9A848665580D9BB14967C154125188DBC0581BD203A98C162029FA51A7C3622582B5001E7BBC010187329A552719F447D3E9F2A1356E625C3905C494D2BD449AE481B465952D30BD84C09F4F59C3F994EA726851BA7A5438A967EAAA6D033191D1F44CA0F469FF0F9F9FAB0633031F565197EBF770C305774D1A91E6C54884422628E5F865FA41DDC9817D092769BD85E8BF8BE9C7D9F652BE05C0CA0C1B03B4C4D2BE627C616CDD73DAA8C3A877E0953AB126B0E9F9A8C4F4DC09AB70B38B0454413441F65E2C3ED0B21BC8D0ADF8181812581FEDF4B0658082AD84623FA2D63381526A0043230F4BA603C82B820321FF33041BC963AF0F167AF850C5EDB68247318DD0C2A481256CC3422329F988BD8523F5831DD3CCAE3309124BC16F8FAA3FC19C61FCABC924343434B06FDBFF70C301F2A80194A4A4AA49E9E1E94A8C180C47CBF2A54057F467008FB2ECB28F4D82AC3B60D2CB5E0B266167559CC0054C02A63726ACC180E2FCF927884B1050AF0F19495DC42954FC84EF6A07C7EA9A0FF1306584084D1A92290164670098359D166054CC116B9906AABCF0208ECB6A4DDC58483FA0003B82C467159E7BA2C14C082C921A31602601FD28FBF9B468C1F8C81D437133E59505070D93EFF270C7069A820540460D74686CECE4EC9361E09D316B0FDC82EA5C2B6038C48317816C466220AC312EFD966141C2391F637090D66C28A29E3EDFEBDF87B289567DD0FA947C0278D78FF42AB7C3E61802BCB0C86534DB0CD206182EAE9E969CC580A74909911C4E0598FC7235B0C01E58E55188418168F1032660A071380D870ED58CF635671C3EFF78BFA48B44AC00CE336F1AFCAECE19F2C0B620671CCC910EC4548555555343636060F4362699620F6600EECE37CB8735830B53C0670B091872173E26FB0FD616040677373B371A588FF09032C11335C8C21E05E82291821A8A5A5453086F3770D0D0DFA9933673018C5D8BA756BE69AF6355003615CC1C91B3F61802BCF10646F77EDDA95F7B788E7E7127BA975FD5CCBFF0F7AA46003BDDAB0A30000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (42,1,'IP_PBX_(24)',0x89504E470D0A1A0A0000000D4948445200000018000000160806000000DA7D5C880000000473424954080808087C086488000000097048597300000298000002980136D347DF0000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000005AE4944415448899D95794CD36718C7D10D9C9B66997FCCBF66CC2E991ACD260A0C127153608988504B951B2688DC3D38CAD196ABB450AEB2022D052C57A1E52A1410142B97A82071611E88782128BA2563C6C40DE877EF8F8811C236B25FF2CD2FBFE47D7F9FE7FBBCCFF3BC262626266B8936127D41B473056D23FA98C81480C97F893C6B967D9B7CB875DBCE5C0B2BDB7BFBBF3F38E9E4EC3279C2C37B3220286892C5624DF279BC8722B1B89FACDBBC1A80AEC3707C39E033C7C347C6CAAA6A50A7D3A3F342370606AFE1C6ED514C3C9EC4EF337FA0B7DB3047D6ED5A1EA99D9DDDBB7BF6EC317D3BEA95005F1DB277BC1F2F10C12F2C05C1EC34B0B86988E30B919C928E1A7535EAD415F364DDDEC54DD44FD56AB545FFC080ECBCC1D05054547C8CC03650E95E11E04A67DC2F5496A152AD814EDF860BDD3D18BC368CD1D1514C4D4DA1C7D04539D84B455AAD69709C999919FE65F4AE51DBD2818AFA16D4B7B4A1A246FB549C9B2F2B2AADE452A025003A83F12035331FA7A324602564232E390729A25C6466E5A1A5B919BAFA5ACA8105959288A8B80AB654F022A28D3557DDA041C1991A88652548CB2D42F64F7208445946661C5F4BAD5D04987B7AFBDCCD931540595A068DB60E6DEDEDE8EDEDC1D0D0206EDFBA85165D23E5C08272E0EEEEFEA92055DC2E69CA34AACFFACD25948B202BA9824255050E9737EB7D2AE40501CCD8D8D86C7CE3C0CFCFEF5176E11930F9058817CA912A2946567E090AE5A5E8E9E985BEA961C1C1EB0D6B77ECD8B1299CC939AED3EBEF8D8C8DCE6BEB1A670F3AD1661D69EE46678657BF9393EB374B1CF80704DCC9CAC9854C26834AA58256AB21A9D1A1A3BD0DDD06038AE585738B00A23502818082985959596D552814E28B3DBDD3BBADED262C6D0F045A5A5A6EA6D3E9EFBC7D06DB8382831FE5C92BC04E922351A48430A714B90565902B55E8BF3480367DF3BCA9A9E93E8D46B3A152ADF6529695D3A552E9BAF0F0F0750E0E0E9BACADADCD6D6D6DB790F7FA951ACDDCCBC76B2C36261A71D11CA42625422C4C4176463AF2242214C9A488E1B0E73224928C4EC3C55FF567CF4171A61219B9B2DF1232652F7D85D9734C816832949BDC18C08E7621D19B510E57EDA0AFFF125A5BF5C6A1E1EBF3DDFD03C894168093988CBCE272D065C5783F29199B1378B04C15832EC947B030C718C84E1CA752F9E69019C74F8C725891E04486239E38E1C77391CC4B442A9F87A202196EDEBA8DE19F475053DF84F46C293A0C3DE8EAB90445A31E61A5E57048CFC4AEA85858A40A112E2FC3291677D6FA80E37E2A5D0B0EFCFC4FAEE840595681B1BBE3181BBF87BECB57515DD788EB2337708DC02626A7303B3F8F274FA73172E326CE765D8482345D85AE1D6E7E81F00F651A3D4F856451802D2EAEC7AE44443211191901369B034E5414A288FAFAFAF074FA19EE10482D89FED5AB57683DD7056579350A4A542824D157691B317075104FA69F2FC06A1A9AE11B4C32919C0EEF003635A14DD65BEFFFCE659F8D5DFE6E0BEB92ED5F5B947CBE7D7709C3CBB7A3A1B9159D24B2B6CEF318BFFF0057868651DBD8BC00C82B2C8654AE84205D8293616C780686223C2601FE214CC889F3600E574D9D83C9EB3CBD4739A12A8A92999999794A9A5044AAE54F39A998BE81AB0B696A3F77011A0250A96B490A8B17460333361141AC18780484E088BB2F54D51AA465E5BD0C0C0C5CB83FFE71AE53E5E6E1E16113C58D2B0D61C73C53914158D7D442003AF2730584644E49A48588E6A5E03401500EE25344D0779C473833E687C57EF8D7CB83AA676A3433188C2F23222233D332B21E46727973115C1E35D4C027D513CD4F815F70047E0C65E1E1C4634427265D5ED2C9ABB9A5A85C52206767E74F68349A67C0E9904E9AA7FFF36F0F1DFE6BBB951DAC0F1E46AC20CD982496CC9261F8D1924E5E25E0CD2D4645676F6FFF0101ED3A7AF4288D28F6088DDEE2EAE696EBE6E3E3BCD860FF0BB0DC1505A3A6665858D83ACAE1DB2362517F034B66C609ECE617C80000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (43,1,'IP_PBX_(48)',0x89504E470D0A1A0A0000000D49484452000000300000002C080600000023163B670000000473424954080808087C0864880000000970485973000005310000053101B7ED28520000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000010CD4944415468DEBD597B705CE5753FF7BDEF5DED6A57AB9564C9B265640B0B18C731B101DBA549A96B120782834361E29A4E9CD04CC80C0492D000D3061A98E91F506813320D0CA450D3695AEC0C01031636D81023DB922D4BB6852D59EFDD9576B5EFBD7B1FFD7D572B4B9665F328E1CE9CF9EE63F7BBE7F13BE7FCBEEF72A669123B388EE3310890E9F1931CC62CD1CDE9493F878363EF82F24C611BC4057196CFF98FF3FFB2D21A240F4943729012E6353E2B25EFBDF779E7E38FDF9E9DEF9958F6BCCD5951D1180CD76F1378AA9004C12ECB92202B3229B2C4C9A24C922C912CCB1091D8B588519224531224D366934B2E973B036BBA7EFE0F0FBF84F9129857FDAC22F1C57555BFC5B0695E03CA9E760A82BC3C5815FA81034A3B1D36B229367260B4DBED645714B2D915B2DB706E63CF601844C67D59826122465CE70A85E398ABAD1C0D1615FDB33080E72E8EE86903EC22E9952D8B1A68CD756B2DE5149929A958A32CCB33F7D8F59CE74C54B548BB76EDF2622E3F64A80CAF8B630FC7ECEB4B454B10F84B1AC026C24F0487CFEB218EFB78C09F7BB8DC6E12384EC1A972A9FC292BCEB5B4B4881E8F475055950B8542FAFAF5EBF5B6B636A36CCB79C6081F1181729C60823875B9EF708C8E9D8AE2A1064D209C86B2A443549CEBD63D810937F5EC178FFC9C16D42FB0A254B68FBB94E23E9F4F29140AAE9B6EBA6969636353D30B2F3CB7671CC78A152BF26EB75BC54FE735E49206F03CAF0D8D8C9256CC93471468FD650C3A0CE353F846C29222B17B12CE314A56129388DF9EE8EAA0DE13C749D3CCC2C5148772029456B66FDFBE70D5AA55DFF2FA2A3649B2DC9CCF17E8BE9F3C901B1D1D69EBEF1F78E93F9E7FF6F5D6D6D60CE66686B01C325F79EDED8F3680E339AEC2EBA5FAC54BA0DC34C6CB98670A2B5219EF30603A07CA06B1E725AD44870F75087395BFE5965BF82D5BB60456AE5CB9D9EBF5DE2A8AD2970AC5223F3C1AA59E9E5ECA17550AF9BD0E5F857F8362736CB8E7FE9F8E8F4F4CBC323C38F45B18FCBECD662B1A86CEA6E2E68BC83903449E177D1E3779BCBEA9A4FD8449CCEEB51FFC409E1B009B37B8C410E467AA23912FC147FC3128DDDB3740C9549A345D275DD768241A87334472B14AA74801A7D3B5B5A67EC1D6BFF9EEF74FA753A91DA9C9A41BD093608336175A33101278931784FF570E1874BE83186C8C52D1FFC1E18E355DDDDDB1C492A4C7191194E5EA6A282C91815EA74DA944A94C96E2E3098604B2B35E23092C828D92A2DC7FB2F714FDC5576F7E67ED576E7CF6F8E1F77EC5A0356D843893E9BC9ECFE56874B09F1607446AA9F6A17995EBBC5C16E483A248D63DA92C228C4EC4C62836364CB96CBE38DBFB800007C858D1B3D9EC412AE4A92B76C2483674717F357E359719A9470474320C83583F95914F79B544495525970DCD12B58C3D8318BA69289541FFCF2626269E2BF719CB809972C793A9381CF00AFEC4B1A79CE50D4160224051D14A58A630AB56EC1ECB4EDDD0817F0D9ED4A864E8B3E983190C068DEEA3877AC68687BE07000F35AB0D545768E26B07FCB87CCF58DAB4930A4AC62A087895F56EAFDB410BC295E4049C98F26323A399783C9E1104B155D3F40AE4846DDDBA75FC3C10E2443651A4AEFE53E7404FCF49DB6C08B1BA8E9765DBDF7BF7771D1FBCDF7EFD0D1BBE77F5D2E5DF34F8882D573CCABF5DC8507FB8CD5CF5E15738874D217F95DF7204AB4CC3C323E6C953A73487CBEDB2E13D2A228368755DBC8CB236543EEF3C95A03303297437C312918D28CD126F4EDDE34CDC434EF06C34E9AEEF7E87AA23D554D44A73BBABC138D1E2C58B138886FAFAEF773E72ACF3C8CE8D1B6FFCE1C2E6BF5EFD35BB8E8CC2CCB26E44A363A09402178BC668F75B7BF4926E0A70B6C414370D339988477F79BAE7D8AF8B38366CD860CC1301A0C1D02C4CD687ED541DB097891BC3BA082FF32401467239C124519CEA0900AA0DDE8B45C7289DCA96E67A68DA88DADA5A1DF82D0EF4F5A5FFF55F9E3C73CD75D75DBFE9EB37DDD5505F5BEF88D8F91557B5D28BFFF95FDA732FBE2C28369BC0E6E44A6AA990CDBC9A880D3D65944ABDC8B938BA77E1A1871E321F7CF0C1B911100DAF2F48C978D45290855406335018F384E2122FC1E325E2759E4A682FAA6E52DAD4510A0DEAEBEBA54251A39C5A2CCDD76C58C52837A53CCA61098AE4DFD9BB77F2DD7DFB0E6EDBB6EDB68D37DE786B85CFEB1225B1A86A9A932FB1F7940E6527D24F9572B90FF0FB31E443BAA1A1A1F8F2CB2F1BF3965193D3C57C364D55B50B3E1599C3CBE9178F3FAECC479B1E7EF8E1E926C40CD1901799743A0D1AA4A69F79E6992777EEDCB9FBBEFBEEBB13956899A616C775ADF09B82A1EE061A06F1EE4426932974757569EDEDED17D08B994E6C0A3C6B2A2C11A21305CAE6B2800E6F414442F591D9392A0FBBC7CA9D88FB2C523268E0CA955F20AFE22543D3AC46E27038B88D1B374A8F3DF6981D4AD8E041FED1471F3540575484DFA2DA50A808C5F47C3EAF2693C9C9BBEFBEFB744D4D4DB58B53C781F971E8398ECE9D41EE94E67A7D5E03E01A9D79911D89944A237118C093558BAD64856AD0D74A5A5160C9CB59F7D8F51557B45AB993CDE47444856F6A6A723736367A03A1D02A97C77B3DAAAB472B6946A190EF8E8E445FD1B47C372375681A1582A6A9289345E4C740341A1D04C64B28D105703B15554CFB2842C795E96F4DF3B2CB6FDEB6EDCEC7D2897196D01624041EF5195E0705200E9E9E691A26B105A389DECB6AB7C994CF15A8776078707FDB9B3FBAE38E3BE46BD6ADBF5F14A4E6624925157CA788E694484ED2782281559CF0EB54263F5A3085BFC74C2AAC1F3574BD0308785D32736DE02323800E8B94CA96AC485806BD79D70CB30C587ACB6DDFBAFD9FC2E8039F2607F2851CFDE481876236497C61CBEDB77F0749E7B0142F1B303E91A0D1588C29C19AE1F122C94D054397F66B45AA856BC27088006FA01492AE95727A493D89A8BEE612B917EDA23180C8E40F1C38A0EED8B1E3BC559E508691A73250D9DAD272F9F5DE8A0A464DA76CC3682D99AD912B2F76B899454FF984955411D2D171D8FCC6E6CD5FC0B953B7889A6E75EAD37DFD144F24D0A4746B1E9BD3138053C437B53CBD5BCAD30934B44E70AD5160B4C0F20BF5D9A3D8C376C57E8DC1CBDB3325FAFEC8447A93A8D8CD2307DF3B8422304F153239639ACCBD7F344EDDBDF129E266B51AAD4CEC58F39A2672BA45E44434B59F3DF06352EC36DA78E3571D5843F3ACF94C1FA0C6148DC7A9F3580F5587ABE8CAD656926C767EA858A0F7D43C29C8253E9D2173629CC6C0AD26143B9D04ADB7811507B0C8AA02941BED5E072270E5F040DF3D98F2DFE184D20564CEE44C4D5535FAB0FB28F9E1A5B5CD2C07C07B041979A060C133C57D4039304E458465012A0BFD7ED72B584BAF239FD7CB33AC4F1FC9548ACEF40F80D398B4FEBAD5140E0589971D16C709A03ADC46D57406D03B0D0E5844DFE141B1CDC94920BF482518AD2E6EA231F8F44A9B9D24F41D4357398F272C40F7D2051100DDE3585206AA2256E7B53AB03CC53C0581B151618A81A2A909D64E8460113AF044C2EA8AB020015F99513E9BCD51FFC0203941101B16D4512858494B973459C42F3E9E246F22499598C7E4FCC44516D01822D20F19860CA099B2B582D366A32ABC3B8039C6913FC542A1FEA55DAFBF964AA536B0FD2724B731630069AC6292CF1FF858648E19C6A280D2486EB7E73CE59992A7FBFBC98F7C0A550628080904FC545713B19E7BB1706A6E5A481EB79B8647C6682299A0607C9CAAB01E305C2E12E1C409ACF04631B713F987164D2740D9510484EA70F8DA33631309ADA4EF4583FCF28C01067FAE467D9C058D0432B7A0A692EEBDE7877389031D3DDE4DD5A12A8A44C2140A0468143C69EF3BFBA9D3E7A3EAAA1021516859F312DC8F51B82A4891EA2AEA3B3B407F76ED1A9A048CFE78E80815A2196A451E70802883DC646A12954EA5E5CB16101AA0E875BB57320489E5850153BF9000FE6C836769111634CD619F05A5A9758068F505365AD0413EA07ED3D557AF26467567E3FED4E93EF243D1D6CB975A9E1F8392A7B18464FD62742C6AC18A45EBB53D6D54571DA186FA3A0AF8FD042E64FD5F45D9FDF2BA6BF17B93BA7B4ED2C90FCFA08225E90CE658BD6AA5C599ED98371A8DFDD2EFF0D1B401454E10933A12763096B4967ACC6A560659E9631C5D05C10239B4943540397EB0FD4E60DF773EEEB1A21B1A1EA16F6FF9267900932860D171ECF8057B4991709846C6C6686874848E76F7205FB2AC0050D3A285D48C3C7103466C9E96A59759F2E3877E6E45290443D9FB6313E3F14535C17F3E72E4882ED2D4E66C8E13A82F1E8B756A5AC9017C49E88AFCB411258DD5F412B12AA51B1AE7B43BC46030146693CD56AC13D059B27891A57C064AB51FE9BCA0F533E526C663804381352C4AA5D3D4725913A27496DEDAFB2EBDFAC61ECB790B1199E5CB965ACE6BEF38469B36DE80EE6F90AAA966319FBBCB5E1548328E74CE80DE9E9E4EC8CDE5AD4107CDBFC5CE5556563A9E78EAE97F449286DF68DB4B3E4421025CBBDD2E2B21D7AE596D45EB70E751CB789AB3D505E24671F486DAEAB0F5FBAA6010D188523A9B3BF753A6F4B1EE1374A8E3A805A9B5D7AC012CBD9404C4CF9E1DD85F13F0B6A11215592FE0CB0D81ED0DA42083906EC81148FB5C013B6C07093BA9D81CFE7E245D2818A03064370C397EE2247DE36B1BA9BEB6062FEF4175522FD88A645B973A946B69BE8C26D359E291532934B1D168FC82AD3CAE6C756D2442575DD1427634CAB383C3259FC7711788DE245BD49C5BD49B5307637E05481A929C4FD851575737B9FBD55D0FB81DCA814C3A9BDFDDB6CFAA1C0EBC80ED5CF7F6F511EE5F807B563AD38015565BD4036319FC4228AD603F9672F36D484A289F5FDFF897E443998E239F4647869ED072B981279E78E2DCD6FDC7F988317BA78D71FD4924DDFB07F6ED7DECC8C1FD3FB5F3FA6F1AEB2283BBDF7ADBB875EB763AF0C74394621D75CE7F47464741B7B3A8385EE488978228AFE3A82E6CEB9C3BFF25651E0636B0E68B48EC46CAA0381CEAE81CF0D9E57FC3BBD3D35B2A53EB984FFE0D82DBBA75AB0263DCF86F0009570BAC2FC4FDBA4038F2E7CBAFB8F2EAC9C914C776166CAC93862A2D4F328FB38A552882262047D2E5BACEF817BB5F2C0BE351EC9A25FBFD77FF9D950F2FFDEE7FF4E1FED39B249EDFFBE4934FA667D36A9E3EF9613EFBECB3C5FAFAFA7174E80FB1A23A080376C3A03FC447867EB577F7EB8FE8C5FC41C0221B43D8DF3F7888DE787B1FF57E789A8AA0D58C3BB143661F4B1CF699EA6457ACFE62F11BF49A6FDFB69942307EFFC10F686870E8795484C3A3A3A3D9B96B02EE33F80AC4AD5FBF5EC0D2CF066E540943EA119546161130C8C6506DFD75A974AE6E381A1573B93C388E66F5818A0A1FB960007B7B8191B97284D878E5F265E8337F4B070EB6D37FFFEFAE915C227A031C759239EE4F61C0B99DE8152B5688CDCDCD7628E283112178BB01F33760ACF287AA5B414A569C1D1AF6C7E2135C2E9F9F8200B0EE72BAC09B6090CB4155A016575CDE02235AE80F6FB61903BD3D5BB082DBFDF4D34F276763FF333760F69C9B376F6638918BC5A20784308077D4E27A21C608ECAC20D9715551D317E50AAA1F154C614D6F5A8FEBD75E630E0E8D587A35D454BF9C9E18FB514343C32098A736EFCBFE549F74594450ABB9AEAE2E40270756EDF02157AA108D08C66A3CAEC4BB3DB876283657555ED7EA6050C8E37426782DBF87B73BAB39B5F0783A9DEEDEB97367FE628B7BEE73FA266DE509925E413374005EAC82F9604410C660FDC4796188BBBC8B3786F32CC628AA584F63636382F1FE8B4EFC397E54A7F257166210733A9D12FAA20DC969C7B98C47320CE3C0785917646D5C8DC562D93D7BF668979CF3F334603E63D8AE1D6066F53228CCA19A993B76EC98F6F8472AF77F85959895F5D1768B0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (44,1,'IP_PBX_(64)',0x89504E470D0A1A0A0000000D49484452000000400000003B0806000000CB8C8CDC0000000473424954080808087C0864880000000970485973000006EC000006EC011E7538350000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00001A014944415468DECD5B09705DE5753E7779FB223DAD4FB264D996BCEF98CD2C610D365B9B1070429B342421D0A18466867426A49DB2CC3493A614C23443636842D23681E0C685409612C6369B6D8C171959F2266BB3F4B43C2D4F6F7F77ED77FEF79E2C6BC386927267FEB9CBBBBAF73FDF39E73BCB7FA5DAB64DC54D9224997718C5BD441F6DB30BC3E23D368B3E619B5A10BC28AC03C359D83B3E021093053730341E780D1F5BF664D43F0900140465817D18A518C1C2F16410CE1780A2F0698C718C58E1388761FE31847BF89FB7DEF9E883F73E3F270005B35758E0D2CA9A9565E19AAF2B921C5455C5ED50150736C9A1623854C23139D5FC5EE5BD5315E7AAEA24957F5765521555FC86730BF7191E97271B08FA13CDCD875EF8E98F7FBC9781C13BFF2856E0F7BB9FC4EEF90FB280A2E90754A76379A8ACF28B4E08E2723AC8ED7491CBE5243786D385633E773AC9E5764C1C3BF19B8B81C1B1000883C15255064901280E2A2D2FA7C181FE76BCA30D238BA1FF31405065E59C5C402AEC7DB665967921DCC56B57013D1FB49BD7ACD0B6436815D720A09A17902D808F1D798D0B61D5E2398457B0E7870F8FC528994EB36B0530C60A6EF5B113A22CCBE70C0043E5C4EDDEC6F975B464F94AA14D4741A8A2F917CF8B5A9EF99EB3AFF1BD475A0E93A91B1EBCC35578D739714A819CC5E11D77DC218EB76DDB562458FA200B3A1F000408F80355913EAC55CE2E93A96BF8D55627BDAFF807F65C824368B9A3A3430E04020AEFF9DAD5575F6D25120973D1A245CC257601077B6600A47302A03819599214994DBBB83DF5FC513AD5350C63D549B273183A8E796F906469E21A5906EC197B1BE7E2BEFC7E5E4D05EDD8F1BA788EC3E12429AF8D3943EA64C1DBDADA94E3C78F3B7C3E9F6B7C7CDC5D5F5FEF2D292971E07A0C7C93C36FB9952B57EA2B56AC306703423A470B98085DB22ADBA9AC465A2E274CF9AFEF5C7E6E2EC0FB19EE13DA370CD27483D1A5D9343E497879C3860DAC7547301874E352E01BDFFCE6358D8D8D9F0DF883D7EA86AE0E0E0EBDD97EF2E44BDB7EF9FC6B00661C80649B9A9AF4BABA3A06C29A0C84721E1650604D5930D38EDFFD06A42615C88FC90EAC5F1050E510A8F07566784400579EF8F2A4A788DF14B02F9C89E4428AB1F6A24B3FC8CF2508AE40B36A3299747FEF7BDFBB70C992255FF00782B7C25E2A73398D721A2CCB9028140ADDB066EDBA1B9A162F8E4547867F77BABBEBC5177EFEF377745D6720B4C9403CFB8BEDE707009386D7EDA68D37DD4C30BD59357B3E24A840BE23870FCF2A3C9BFBA14387D4A79E7AAA0942FF39CCFC76A4268B59604DCBD1582C4ECD6D276870780C737253B83C443E8F0BE6AD94969684EEF42CF3DDF9E0B7FFB627161B7BA9ABABE7176FED78ED287882334F432ABC632EB23C1B0089243F1EEE74BAE8A39701F98D43A11356624D9F83780134AE3EF60FFFF8D4A51B37DE0D1616815B83F0DD7DFD74B2A3872243C3005321B693783C49C9780A7E645369D04FA5010F599645B2A2CCF7FB830F2C5EB2E481DA79F30E2793F1177B3B4EFF12724B004399EA1AB302904F0ACF84E7639D314A654C5214891CF8495144A880994BC2BFA060ECF3D7F81E15D754BE07C741BF97366FDE2C9EA343209EE8D48DCD7E6868C8FD5E73F32D6DC74FF4DFBCE97A53757B1BFA0686686C3C4136FEA6ACC44FB17802CF55584194CE64059F44A2C3D4DDABC3629D140A0658BA22186B5D6EDFDAFAA6458F0D444E9B6B2EBAECAECAC6C6EDD153A7E200C29C0AC2341770383D13E73D03698A8EA6F0420BC11B0F97ADC2B18D3D80E173CA5F9341C48A943F57F05B7959C904004EB895694E03400287718873C25D1080D59A1D6FBD43472BDBF5CEEBDF506F3F7D9F141AA8A10C48D9EFF5523C91242E269DE0A3642A4DBA6E88872433391A198F0B2594C245446CC57D966D29B9ACA6385CAE67ABCBC2DF5D346FC1A3F869EB5410CE0640516CC3D0A9A7FD38B93D1E5A1106D1D5B9407CB2203F07B4C084E774E4D35CAE01980CF32498CF0015D61454C5D6DC72683FF1ABC66209003073FD03E293E126769E439CE4737A1C4D7B36D34BF5BFB02F6CACA31BC7964AED5D2B04D9B2F6B3D95CDEE2709EE58805EB628BE0615AB6508465E5075E6D1BBAD656120C8431A74FE572B99F8073ECC969F874120C0411EAB362C22C0C3F865D0305D2A4A8E02C64794EA111A700C30100E10F3626020D988645866D928EE7B8FD7EA40BD300B05D2E978D77EA3DA7DAEF6E5ABAF4B180CF77E1BAF42AEAF20FA076A8932E5443E4AE78DBBE7443B374E4D82594CD35C0E45D02084DD305D05CA704BC2ED42D0E112934440C960DA418075886CFEF5FC9B25826A900CB198D46F5395D0033A7054D4BE68CEFE79B0AEF7B770FE9F6740BE02406313F7BACF570F389A32D5FBFF8B22B3EB762D5EA7B575163A58984CBD053D43F1C96949883FE30EF5D5BAF3B2C5D7068539E8700BADFEB86FFFB8415E48A828FC7AC8E531D9A073194E76218851CC4B615DC27238B94662741B02643F541A9EDF9A6C23C61B3E0B3932D80F37A102142B81E676BD8FDE6AEE7DF7FBFF9EDCD9B6EBA7BE38A0D7FE2F19253378F906626498BBAA5EAA13ADB842505FC5EA9B1B2063CA00BC1D9DC33D92CBDFBEEBBA66658B2D3E576EB109C530CB612D3D09B63D1E856B89B05CE999B04A54972BCB627F29148F03BDF79483CC782099AD6740B603FE42E1142950DFFB4E0625A2E95CABCF4AB17BFDF7068D16F6FB9E54FEF6B6CBCEA423748F42198BAB25495507ADBAD2D47E051A62C7C1DEEB667EF1EBBB3A7CF46C9AE308FC8AC75088EEA76646468E0D9BECE932FE03D030040ABACAC9C1D00F8BCED70B927CEE787BD545EE2FAD061B0B8E998A8AECF4C8205104C2627A4B566696929A2A696E9387932F9C3A79EE8BCEEBA4F5FB3E9E69BEE0EF8C3B5B012F8BC4BBAF2CA2BA5542A696F7FF915EB85EDBF96987CE06A80D2107C05D1B54C22F66AB4AFF739D3D4BAA1D868369B4D969595E9B03A6BD628C09BC7EDA5536DEFE71B1C90B892094EA4BF855457E608200BC213292F5B0D04C6159AA85E11F132897142C24E6CB209CD9A350A4C0241242B5CED613330E11CE6907AFDF5D7E26FBCB173FF57BFFAB5CF5F7BFD759F551D3E2F734B7575B504F337D259CDC5442C046757D312FB6389D16732C9E411CC6D08CF1CC7F3D2105EDBB56BD707E7010AC82B180AE501500B4D0E47BEB353CCF58BE12E3F64F1776C723C0159CABB9154D8733448F7F4CE09401104DE152A3B0BDCC020E878471623F9A31FFDEBD6DFFEF6373BBFF1C0035FB96CE3651B3107445A250B927349FC6EDB3E6DA6C67F6AE6526FE1EFFB3146E152C9919191DCFAF5EB8DA99A9FD50232A90455D6D4FF9F36449C6FBF452F4D2741A990A74F054258D28103070CB88585B06580B973786EBABBBB3BFE37DFFA56DFB5D75E7BD1FDF7DFFF6558A6DB340DC9A119DB0D3DF36B28A28FCD1D8F89E339198FC7A3B5B7B75B18B3F60CCE02C0966CB891F621B3FED9A38005DFC444276E5CBC78B1B46EDD3A251C0EAB4F3EF9A41C8FC7C51FA304B6A135EB9E7BEEB16A6B6BCD471E79C406083A88CB42CA6C721F20856DE7CE9D633B76ECD877D1251B2FF05AFA3110EF10FC6714C08D01A8542C16CB71889D4DEBB3BB004967B591FEEDA593D47D7A8CF32992B9D121612F9A1EF956BF4C86687EC8DC28215D9CCBA25162504DB89CB66D7B310F2C9E6B00000827A1DA53962E5DEA5DB870A1CB8B0DC590079356E02252269331E1AF39089F40359A00101A8E25DCE3A8A9A9917B7A7A7490640C1820EA65870FEEDFD7E972A9563A9DCB40F81448922D456F6D6DB530EC7369BA4E298624DB8190532C5CBEB069217CBA71A2C9E928647C22F3635EE0FE8052DCAB136931EF5D0EE78449F746FA452D8070A6AE5AB52AB06CD9B2F2F90B17AE0E876B363B5D9E8D5053197C59E6D86D68DA783C993C958A277FB660C1825711115CEE60E852179EB3C2EF3F063EC88D8D8DE9A823B200C2C4330D284DEBEDEDE510A7AF5CB9D206D9D9E7DA719EC6013EAF9F4EB61E422CA77C5E2F31E323EC494A9EE531A4A2C5E31D79EAB2C9E4A4D9E4B86C8AC444A4C3087D1A921509CFC42DCAFCF9F383307FEF159FBAEACBA1B28ACFC12A142E6A587051C9C1FA0CD32A892752F32DB2AF71F982FFA499F1DDBAE2FB2500546D8F07558E957055F87A2ACA6A9AC386F1BACF69EFE710876767D845D8346139E6A38F3E6A3EFCF0C34CAA74CEFD00D67B3693A1F98B9691D7E7C9174082CC944234289060B10DEEC8FFA62AF956793E75560BADF4FC6F5C03FCF867FFCE16E282E61BEEFCE25FDC07CB5FA64F274591D20E46A322B9C9739274A5E40D7DDE65939AC2B5A465CA65B65402B05603E4D596C3FE52DC346DD3E14E82BBBA286DBD167099FFD1D0D03004E5A5C12FDAD6AD5B8D2D5BB6582FBEF8A208B3735B003497CDA4A9A4AC222FFC478C0279B75169F5F265B47BCFDEC0BDF7FDD5378225C1C5C60CC28F8EC56870688826A7A296A4D6B8DCCEF9ACC097B3E3D462E7A80416D98067D6C322E7593285C821D9961DB06D8F0045B3CC0723A94C5CD7922D92696EAFF0A6B6C12DC66111695884391504754A0892503E4E9C47A219141329684F2E94BF92586D51C51258E11A67895C268B73597002DFE70197AC5DBB06B97A8E3200F52B77DDB5A1BA3A5CAD1BFA34E161C28227389748A5D3140C04A07D54A6DE60035C814E6A193A626A1055122ED53E3A403DE11AB1C0E0852FCEC33CC238ABC628B31D9C2D06612597835B2ECF68FAE3C3C9F8402A97D9021076B35BCCE102C8E31D67DAE2EF1C1EA4C8401CAF40DE8F2131EB63705D20AE498573F8BD2463D867EEABAA08D1E38F7F9F7210AEBAA6962A59F81934CF001D6F3FC5551CBDB3F700352D6AA0B5AB565045756D217A58F4726C5008CFEB4C72224E32AE99070F92A3761EAFB151B796A3E1F90BE828F717705E092EA982421A25272FF149AA43AEC9F68CAE01C3EDA5292B5253AA41589329D150E43479BC3EBA768D9BD4F5FE82F6D5423A5C58FA129ACE67836A213354278E65418EBC22A4221AD4CEABA79934CF95DCD113ED343A1A23176A90CFDCBC893C1E3755876BB93B8362C6A6613D47CB31176736436308A57622492ACA44A9B48468384A6636472AB256DB3940D99161722F594609581FF88356F3753C6374A89F798B0597A73649A75980C3EBA52CF2789D5773A47C7E2F15989FF54E85BF35395472EBA9C0F8CCE216A200F7F10C5317B7D5D5CDA3DB6FBB4D6871EAC6A56CEBF113944E67A8A2BC8C4A4B8218255456564A999C4E590CD5A5522DF2FCAF01007EFE189B3FCAE06E2D4B3D20EBD1BED3A206E1EA4F0250AACF4F3EBF5FB8C642878B3C18DC8CCDC105C1D34E64862E90A159B082E91D219629938C53FD828513ABBDE74382C5D618CC8852C914ACC89B7FCB14005801474FB68B46457555059514846710D6AC5C8E7ADF2FEAFB91D1318A440669786C8CC6A1F900F0DF585E4197DA242245ACB69E7A705F0480F4E7B294839539785D82018095B8312F5E98619E6A39DAF1D4FEE6A30FDF72D5A54BDF7AEBAD447979B90E3EB0D4B33C00D998656874E64B99F3DB5830EEC07024E19E2283C1317EEA76B2A3538057120C4C689E896F5E4D58089FAF4ADDC4D1A2B1B1812E0EAD2B448A3184C9611A188C8A156707F8636D304817C821A1E918875158C228F6F5BE8030FFCE482F883543090078C1FA35659D036343B8777824327A0F1EF9F2594B633033DB3893B3D3DE962890CFE59322D92AD4FE08CA12578E76FE9C1B217C4DCE5FE386C8C517ADA70B376C10663E758BF40F523295A47A105851EB81809FDA8EB723EDEEA57055A50082398575508ECA94B721E407D01A95E17C695313AC6354FC6D734B2BB47B9CC6E329AAC1DF559684847588A628F6D1E81075A21AADACA8202F949249672487AC56DA12DD845AE11575525CCC7FC4242974FE5B3E23E43FAFABABA14B2EB958F401A66EE3F1389D38758AD6AD5841951034AFFD20B51D3B09ED8E0A8D0F0C0ED17B079B8505D684AB841BF0C49B162D148D17DEC662317045489C7BBD1EFAE21DB78968B27BDF7E6A693B4E6E70C17CF00F73D7C8C82842A746576CBC8485271B9655162AA5FEC8E9FF696B6B93D44949A0813FD0E209C4DC43FBC5D71F7EA838E091C58B24910ECBC23D44DB5B2AD6FF92D0145FE7D6D5ADB7DC74A63132C53D0EB7B6D192A6466A6A5A3461FA478F9FA49EBEBEE924097F3ED5D945C71025F8D8073E59D8309F1A172EA0DA70B5981303CACF109D698C0BD6AEA6654B9A0447BDB3F73D3A05CDF7F4F6D1BAD5AB44F66ABB5DE4F379614DC3CD4DF5F3DE6C6A6AB28B16C0769F452E9E9421389F7007CB36D8944CC1C0DCD3E382861B1BECE70634AC17CA5C5D43BE0F50BEFBF70F4123DE19435E47578FF0C92B601D2C3CE7FD91FE0184C193678AE929B82D86B0FD43511A1A1E1121731F2C63F7BBEF8979D4D654C3151A69F9D2252222F19CFA613D4CA2BCDD7AD30D74F7FD0F5249202840E3DFB9838584C80CB99D7F393A3A9AE67E4311009E7102B17898FBEDB630695B4C382F7C3ECC19DCDC84E0CC13FC404E6C0C01824937DF701D2D5EB4684607E14CEF18045DBF66B5303FDE62E3713A04FF9DAD93C056D4DCD22652631FCCDCC865C4422B629920CF535DDD74A2BD83B6BFFA3B91972C85E639E5AEAA28A77075153DFBD3FF447619A14DD75F2B5C889594A11C0D7577FD6C41B8BC3B1219E6CFF668B20524BB7ABBDFD52DEBCBB96C86CB539F6D5A4EC478251F222D2AEEF950EC396F9065052416A828BBFDB6E7B7BF5C33BFAE165A58212655DC5ADA8E0A6B59DCB8B000488E0EBCDF3265BDF06C184241BF28CC38A1A942A86C87B0CCF40A46774F4F9EB80A7F92C67DFB0E1CA2DD307BB63E264E4EADD93AC2D5952214B292FA2291D1C679558FA3944E70918431E102CC589991FEFE3E8C9848B1F3DFF3A84434EB67160865722814F27CEE4B5FBA0693ACD1601DAD60E4577EFF072A0D961083510F32EA02BBF3A4EAE7D50A2B3A0CCDF3826961F97ABAF6E11ED19131B1BC2623BC1C3C70900225A5E2EFA11C1A4F2609F17A1274D259F00DC06DD8D7375EB401BCE4A22CDE350E77D332898794F2E0B0DFEFCF15CA64520B1D59A2331F35724D1D2F083E674280CC4A417D5F5A5555AD777423DEA6D2E44119FDD95B6E14E6F9AB5FBF4A575C7629AD84266EBDF10621EC31647F49143CD22C8FADAAACA0DEDE5E9172D72274B11997575609CD76F79C16DA9695B9231513F335575E269EC5C5531491A0B3AB7B7F5D796867341A4D3EF1C41366B128528BF1AF00825518269DC327B2DCDEAAA9A971B7B5B5B45E7EE5557B5D2EE7FAEEEED3AE8E8E2E31D15B6FFC3458BF896EB8E62A417A5DDDA745D93BD7C661D0B4F3EB0E879A0F91D3EDA51078A3AC24400CB269DB67E5173391E7C2050DB46ED52A41CC9C51B677741A254EC74348CC46B87334B924562785297BD20FE7F40DDF962D5B14B84012FED5B7E3F5D77E884B0BEA172C58DD30AFF6535DBD7DE13777EF937EFFFA2EFA97AD3FA1BBFE6C0B983B9C37D71960E57586C6BA06242DA705E9F2E73A55E11A41B41998FDC1AE2E51A09D21499AD18A3C6E0F6DBEFE1A915E33F99EECECA4A18181E76ACA02A74646465285C6C8EC2DB1F3D9B8EBFAC8238F64BABBBB7B812E78CE88F67476F6621C8045552D5BD878D56822B912C98977C79B6F8B28C07E5D8952995779CECC5F1284C851417CA18ABAA2BFBF9FDC10980B254E7272288E58F3A6359B6EF245DB65975C44CB972C16D1E908F8E8547B475F38E47F16E763030303C69C0D910F91FB8B107AEFBDF7C600400696308C49F4E05A258EC3A73BDB7B2058E58A86DAC6450DF59B3089F29C96A6E111C475D4F025C8E3D94FB980112E857A807D3D07AD33E971E4181E1EA6E1D111E417FEB3486FA62D8CCC71F3A7AF46D873533B2CE6E8F11396994D7C5B2929E90F0402E91FFCE007D3D0FB4800147178E699670C588219894472D05C1C6E1165B70018E500209C4C8CF737EFDBD3B572F5BA8DA1CACAF5394D2B65D3EE0333772241E2BC82A3452572FDB36C3C1F1260CEA5C2158A65795539EA03DBA49EC8D0841571E6FA999B36511DDC666C7C9CF6ED6FA6E8E0E036AFCBD59C4C266348D08C735A19FA089660177A0DDC84CC85C3E1244C6E0421672093C9F05255B4B5A57918BFEFF5F87C558B162FDDE8727A1B07D219571659DE91B663E20307B7D34D30170A0603B3E608A3B1718C31F1854A31695AB37A255D7DE5E5A25FB1F3EDDD003732A898D9A76DC539C8DF123EFDF4D336989F3E1600A60041DC74E0C54EA49A064010293622C628AC21825BC2A944227CE4D081D3384608AD595455567EF1486CBC2A954ECB23A9518AEC19107ECF0FABABAD4185584501DF99D5666EB07850EFE75B6CFCED6009DD76CB66917CED79EF0075747659F1D1A1BFC30DBD784E62E7CE9DD39AA11F0B003380310184D3E9CC689A365600A18C499279627030324083115EF008D655CFBB206B98CBBBFB22012631B68896D6A322712A468A1097D0A525488F7D28805461314B173789AA9043E81BEFECA1E1A1A15724C338805C62841751688E2F543F3600A602C1A115AEA1C31FD3C81D4600463F8464C2AC0028D5CC15837DDD43EC2255016F45556970DDE0E858C35074C49BD3AC7C9202CD7379CCA3B85D7CE17A7A1F35C37FFDF72BD48454BBA2AC74343132F843585D3FAF0D70A49A6B7E1F3B0093B128BA060853076166F95B5F70C4102CA117829763C2550C443A91A8C0DCBB4A54DB1F0C87BCF0E385A8E51A93E94C452C1EF7663239D92E28D5E6E54F53EF0BFAFDD5D1E11115ACFF18CC9EA3CFF873CF3D27F2FD4F0A00B312262F863261E27A04D74B713D045038249461842453EB43CE7EA8CC2DBBCBDC25CC7C2EDDA6724B522A92F198AE59DA7EAF2C672DC3EAC925B58300320A00B462BEFF89026036C22C5845BAABAB2B06C2EC07005EDC12802041987308F7F0925810D7BC3876AB92E4B02D5D570C2B6658561AD772B82F827B7AF1B7A973591AFF7F05E003AC225B5151910081B1553853A914EA2E8F1782B9A15D370475F331B7F030C6F99B00F08901D3E725F238409D93F83E7100CC66151CF16019B95DBB76A5F09302BE10FFE1869458E57F67E37B79451884AAA7D369FE88C2DABF7FBF71AEC27FE20098090C3EE42F450A9144F8F4A38F3E2AB5B6B68AC88072DC2E2E8317EF3F9FF7FC2F9799D8BFFECAFB820000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (45,1,'IP_PBX_(96)',0x89504E470D0A1A0A0000000D4948445200000060000000590806000000C1ED215D0000000473424954080808087C086488000000097048597300000A6100000A6101FCCC4A250000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00002E684944415478DAED7D77781CE779E73B657B436F0440825D043B298A14498992A5D0B22C4BB629C58E4FD1D9899DF81ED9891D3BE7387E2C3977973B3BF9E3EEC993BBC48ECF56747191EC9314D996AC4A35B3486207488000088020D11765FBEE94FBBDDFCC2C76D10816C98A9E5B3E1F676776303BF3D6DF5BBE6F25D33469FA4BC28B37CEEE1CDB6BFD3267D99AE66C37F83E7A4985CF5740781E72C1283CFE4E30C12C20BC610FDED7DFEF8C100C9885F00A868AE1B2B7CA1C8CB89692EF105D9B36747B18EF4726A885CCB009CD447763F830BCF670DBE73A1A712DB460BAC971089DC5C860A4ECC1FB396606E4E43DCB845BBEF52DD5DD19F7FCFA9FFF2671590C28907ED92632133E8011C688600431FCD39870ADCC502113349BD8698C38C604C62446ACF0DCF72A13FE64DBAE6F3E977BF31378BBF24A34C0917E0F13BFBA7EE9CE92AA9A2FA98AE2515459551555555DAAEC5224ECB8485154C9ED52B155C8857D97AA90E2C25671B632E12FECA110FE9E146C5DF656C5E7B82429B2C2FBA62ACB7C2D13C70C7C8FE67179722E972BD7D971F6E7DFF8FAD77E52E00F8CF7AA299115C55065C5B812135428FD6C6E42B24B5DE20BF8B7BA999818CEB6F8BD5A749CF7C55655EDF398F8F671FB98C31466186F9981CE5661A6802132B6B284214B3430D87FD2D6C4AC3DF4025FF11E64824457CB008F3039A611646915928A4F400B52EC214B264E360B3CB2014FCEC3B4B71886814B804E62E864EA380B173160ED4C8929680A4A624F50D3FA1B5C55D649D1659258BB540F69B91C9BC3906D92920540E0BD8968E8CA18506882D8CEFB410ABF0A12EDD9B19D1A1A9708B321A455997D6B9915FB7DC15055E7BD5AF0B99C3F2E8EC985E759C7A2D1513A76F204699AEEB5FD51A1FFB9A60C601F78AD7C8A740577A64EC3FC161364F296448254BF788920DE74624F27F4F463EABC0C508A19A0CC64406DDD223ADBDE469964DC6B6BA56B1A0CBE2A824F437ECEB13C13AE9421B22C5F1318AA4A4C52457967D454BAACF39C1844B95AE217105EBAF7DE7BA5E1E16129168BE5AF170A85CCCACA4AF3F1C71F379D532F971192245D1503F291AF224B922AFD76CDAD84EF97A4BC765E71005848F83D7BF6C820BC1820BE9C4EA70B455644E0CDCDCD061861ECDFBFDF703463A18C90AF920145372DABC5EA343699A56F3F72120E530715E042B19519BAF3BE1856E03AF5B946B2699DC7FBD6E7FC5ECB9FCF5BB23FFBCEB7FF2BDD72EBAD450F230921B832E2CF46F84C26A3949494A8A3A3A31CFFB8FC7EBFAC691AA0B56A60ABE3B886CF359CA781113A3382B582DD8463A2E66386749526A8C8964D37411EB74C37ACAD1488889110DF93EC0C413043980DE7187F2EEC46C179E298D8B2581BE25AE2986C526D6DED8C8729B807F35A103E97CBB921F51E2F5E8140C0FFF9071FBCB9A1BE614F7FFFC091C77FFAE367BBBABAC693C964069039130C0673D012ADAFAF4FC775F48598275B60AE09034C2DA7537C72824A4ACBC431BF57A57DB73515219EB950909A0FB8A69D378BC32D3CE6BCD2A914E980B01EBF5FBB521B0F620A5001C2BB1CC2E3B97C7FFA677FB663ED9AB5F7E0F86D269911483E85C2E17D5FF9DA5F7C736478747F5767FB538F3EF2C8FE4422110723D2914884199163466CD9B2C558BA74A9311723E42B4441331F0680DF1B8CD0F1132DE4F35AF1000755AA1D54A90A07588A08B2C4713E867D378E2BAA7D0EEF73D4CC8CE0F364652A3A760230D9223C07306C72F851C471FC5D5DC362928E9DB81CE2E7090FA957407015C30D61F77CE10B5F5873FDF5D7EF2B2DABF83060707D0E44D7721AF1D6C0978A842449DED2D2920FAEDFB8F983FF69D59AD191D1D15FB59D69F9F92F9E7AEA0898C48C1039A9A3478FCECA88A77EFDF2B5F301EC80992801102E1C0E0A93C14457A7497B910608624AD84A969902313918E320CC947432142B8C1554B603359DA35E8D833D49981CBE7D5DD74805612005976D6E401C05765D1D1F1F777DE94B5FAABFFDF6DBF781701F77B9DD6B59D273203A6F99E04CF889589CA2E313545D512A8E3903CF545E565676FFD66DDBEF6F5EBBA1331A8D3E71FA64CBE32FBEF86C37AE97814669F82EAD9011D70205153B133D47EB6FD8466E977B4E7333B709BABA3880B76FBCFE2A08965D8851954108B6F3EA830F3E18DEB76FDF4741BCFB20F937B10902B184A41712B8ABF7029D6AEB14DF934CA7E96CF779AAAFA9A48A9248D17942235DAE65A565655FD9B673C7979B376F383C3E3AFEB32387DF78A2B5B5358A6BE7A06DAC113ACEB7D4D0E6C24291933A474E43F2B85C5714585CAB176B859ED3E44B991D26FE3DF7DDB7F48B7FFCC7DF0496BF1B8703CE39EC47980C3C58FA0F1C3949FD83C3E4F57828994A0B13E8F5B8280B069DBF3844274E77D2AA650D2269E8C3F1626698B24B756D2F292BDD7ED36D1FFCCF9B6FBCE9F9F8C4F84F5E7CF697CFC3D4A5B2D9ACC2760C6650BE9C5862760D20CB2CBC1371C042B594EF9BCDD17CC467B3C392DFDBD3BFF5AFBEF3DF777FFC23779CDBB1EDFAB585D7181D9BA0570F1FA14C362B046A1C66A71C921F0A06B8C443BA69503299C6BE8FFC3E0FF5F40D503293A5AAD230909F8B4A428122463020C3D6EB76B9EE0A9794DE75E7C77E77349D4E3E313A32E232749D033C176B44A18F988F0973A0204564240B5F99AC4E47DB4648962D8CCE5B919CE37D308BDF4BE298649F4376224F12CC949DCF67F97B3EB66BD72E6A6C6C2C6000D17CC2F3F0C30F131E90713CBC36B9202B0DFFFACCF30D2FBEF246E727F7DD5392D5CDF2A3A7DA44E63501694F249254555E4A6591B070F4E96C8618E9F94074BFCF0BB764501A84175959DCDF70744268860F4C08057C1401831CDF51CC10F05375FDE1C0603F199A9EDBB8FDA66F4C8C8DFDE8B5179FE964F86A07747332419D4B4A65B5D809C6931A7DFFC9762BA0B28764E6ACADC1FBF6FBFCE739FBB873ACF873C9C8155DE79FBEF78FD31800273D8FF2B6B4B448C0E632075538D1A5DABE04845CF6A39F3D698C9AE9F4997DCF7872DEB474CFD9CF5264A84A68001355823478DC6E7C4996137E423B3C2ECB4FE16648D30D91A9650D61A6300387A3E314F47B85C9522D824E31C13673001640AEEA5F46CA4ABFBEF7EE7B0F6AB9DCF70061FFCF5D77DDA5CFC58439E380E91EBDACC443FFF88D9D050E57B6918F938C93A739523B9D5D1407C853893BB9E03A3806A759F47D9AC6819A346781837339303F92CFE7C3EDCA4A61321044904361C9EB3A5D4FE98A3EA3A3FCB8DCBDA89D3EDCF300B9639064363D862E88EF76BBC43D88929CAEE3BE64616644240E46B1066512295270DED0E80460B95B149CC201EF741F911F1002035A2585ABABFEF284DBFD93A79F7E5AB8A4D99830070324F205C2D47BAE03EAE91337332F0A2A4240724106559E9939B589CED228D9E9067E6691F611E6CA92521920405216586192677E4F5857299829236940954F053BCDF4920169A4FC0DDA1930A8E3DC6E32658FEDE2D8D718C45539A68D535461C6A43219A119160C97854F08FA3D14F0B867202B6700B975783D5EBFC7E3D90E3E0CC339BB39D107E79C87AB97660088E2F3F9459A40677B8D0792B8A2E5B62B5E5CE9724F55C1DCA2E2E59E591573DB553111C429E2B890305B855902735A4E6C3930CA023266B239E12CDCBEA020CC5C2F4E0D400B4C607EBDEDC4A917823B027F5F565EF60720BE579823B8851DF12DB43FFC3AF9E31592FB5409DD50DE66AE5B7B4672B9E3341A5D4D67BB1A48725B68C7417C7C8FA699122650B624833C7625B0AEB2D4BADF5C01F1C9F20BA9547232194FC67DC1C0727E3E5D17518F0426B81147683045F9169B05C501B96C5AD8BB903F9C8F58F9C13849C7EF85C4EA9C4234280B3B6E18A60872B2995C01DE77CA8C53E648961D73250B66C8B62972FB205D818038164F24A8A7B76F5E06B03471E6922D472A351E7BE5F95FFD5D6363D38B1BB65EFF67BEF2F29D7C4D9FACD29ECC2EDAEF799D0C58B3B158B5F4F2812A209B2173EF9E9F4995E5B7D3E1F67D8222ACD94C387E06BE677E1E2EAB7278B8BCB15610D4927A9A323518F01FFAF99EDE98D7E70F4340C306EE5947E0699B7090525639E9074191662B00CD15070083A7A9BAA9C9CAEBFC1602B1BEBEF3944925943920AAF0519CADECEEEED6E03FD290B4587777E7999E9EAEAF6DB9FE869BD76DDCF479AFD7B3A8428ED03DC69DF4B2F22AFE6E4448EC58AC42FAE50BF7D023DEACF9F6BE3F94761DFE386D3DF94161EF99E91E085E0E9AC88467AA710C614C0BD01835B5B79DCD66B49CE2F1784B38E690748BF01297609909C297698CD4E604DFB3063A92012324BD33B58085C701064BDCBC6733C45BB26489E676BBB3204C12630204187EFBCD432FFCF89F7FF0471D67DB1FC5B154D0E5A18F793E445EF566487719AE0D0D373C949A7449EB5FBC9B9A5B77190C49D9C667B16DACADA2E6E58B853018B3D8F9EEEE73C6818387F46426E366030DFC2F823E669E1870F0D0182D118FFF5F4E75635C6E1CE0A4567F7B051961D22C3B4AF369013301810FE7F1CD542A652412091D2A9FC5FBF4B34F3FF5BF8F1C3AF0D29D1FF9E8679A962EDDA5BA564A41B5993463188E7E90D6660728A52322CE8581BA0D93B1FEAA25F5524EE48D7245769EB723C323E6C137DF32897B75144B5B249674DDCA03E942FA75CA66336F0F5F38FFDFFA7ABA8EB202215216B585D922E3397C803423B33799C8D10FFEF5B4C8E34B76FBA62C0A2C867DCC7A2F8664EDCBA6F5BEF86FECCF9C73EDFD2F7FF94F69DBB66D530CC0C3999A7EA9685930E1EDB7DFE69CBD8998C004FA3060C2F8A173B0BF99A1A1A1E4F7BFFBBFFE7ADBF6ED5B6EDF7BC71F54555635F9BCF500094DF4800D165CAB05B090345D334F1C3F6148AA4B7622691EA9648A9E7FF125633C969015972AA9EC016D625B484E129D207A2633383832F4BDFE9ECE5FE3EF46713C09E9CFE2BE38323667AB6BA8735926768E34AD600C783D551F949C5A61E13FC32ACC08A2CA79224F1D73DE2BA2154596A698323DEF648840CC5C80A99AD204403DB3B5B555347181B07A8EB379B29CE671E8C081E4E183075BEFFBC4EF7D1851F7BDF00FA1E2F845462C12906EBE79B7141D8D9A478E1D17D1C0FE575E355ACE9C9514974B667F28394E5697040D2403FFE5CC746C22FAE450EFB99F02760EE17A51DCD624FC440AE631575F5FAFCF0641E7334126384D3A20976A174A4201177DE1136BDE95820C4BDDF8440C8FAFE80BCC1B0926D80F69421B0C405403A64843A0A6411BB220461AC4483DFED31FFFF4A5179E7BE3337FF8D9DFDBB061C31E45F41F147776D42DAA93162F6EA4CF3DF8A7DAD1D6369553179477B096B96154A50314E5D2A9DF4C8CF43F02953B07BB3F06664F60701F13131FFCC86A070E1C30E6AA2DCF1907945556531A7030191BB7A5DFEE60730A2A85D16DE17B688E245B9D6DB264075B42F72411E64F85EE858ECD10CE4E981D9C97CA66C950DC6481BE0527EFF23979471BBABABA848A81101A0801D3AE65709F299884E4DF7EE7DB7F77FDF5D7BFF4A97FF7C0034D4B97AC74D05EE18049823F3554416C6176F4BCE93175AD2B161B7B24159B380A8247717C1C23664B7D9A5B2B1904CD47FC794C9095905301C7B8EECEAA26A0646135AB508A597A38B2B589CE4C102D0D7642D52A695B5D700E84E374803033BAC500C6D94EF633AB8121B88EA15F7E2BE82CDA60F6F5F5B13670CE5E03B1B2F8AE0CB6A9B7DE7A2BF1E69B6F767DEA539FBAE5A31FFBD8BDE565E5A58E7059690329030E781C73A3F3D6D4C67389D8CFF5D4E47360E828AE3386E799C4F9095C37059A6481F9B5356BD63866C7BC826CA8449363231408472810299F41EC773A0ED060FABEFF831F004D64AF08864DD306DDD1865028C47E814D524E2478B359364BC9471F7DF4E9279F7CF2ADAF7EF5AB1FBF152F10D565FF7DA600E9E4243DFB62269BFC3938D1CF761EA7B0B911528F58848BF95C3FD6417C4E3B18575C0F80444A5A2E4B1EAFAFB885EC5D7A21B0A1F2D232D23229E5122D85F4AD6F7D6BD6CF1F7AE8A1428D301C6D80741A2096CE389D6DB4A30D205CF2E1871FFEA7279E78E2E5AF7CE52B9F5CBD7AF506495652C2446AB9A3722EF963E86E17E8300A783C8EEBC56009126068BA50EAC17013A8CCBCAA8AD81458FAED15640C43A3EC4C13243536364A20BA0462C9BC2D2B2B93CE9D3B273534344C41E6C949F38B5FFC227DEE739F33EEBBEF3EB30029096D3873E60C85C3611310D50806839CA5E40921699C963876ECD8E4FDF7DFDFF1C0030F6CF279D4AD1E23FB038F629E00292641D2491BDDC4D9A123E6C8E025500E886EB4B4B4980B91FA4B9BA0590264BE6432ADC1DC98A4CA0671A2520148C937DC2A4E878393A6B69B7065273B2A4FCB90CA536969C05B98872224C48158611C800796A0E240278BF9E6DC08B414201C251A8DAAE5E5E572329994AD34B626EC6E4D4D0DDB7B6DC58A151A18C584E7AE373A74E89009E9362A2A2AA8A3A383E1AFC1D2CB7011C4E4C9213CC3C5FFC31FFE70109F3DE702C0D734838F73A49D842FE12E6D76E6A25D7ED3A64D0BB2F597A701B3BCA21319FADADFBDFD8E16643E74E79DF9EF134ED9B49C321E96892F373535A9CB972F17FD3E207E7EFA14CE7571CD56B25E3C83864D4C16B69ECD43925109882F0876C30D3748907C5720109057AD5A25AA9B2323233A8E39F30F38AD11E74A1B2B0EA711B8F8CE3D426072361E8F67B1D558EA21F15724F59766803233100B220EF8A37DABADF262BED4689723ED12A4559A94A6CA947629D2D9E6CF9D769C057FC3C68D45DFC7CE2FA78B34B104022A8B162D72439AA54824E202D178CA5408E6A3A6A6AE7E177C55B36E182EC3D0659807E6007C983606813E1A8B4DBC9198983843D6542726A4525B5BCB4EC08DA899136526CC918EEBEB70CAE6C0C080067AEB5CECB1B5C960330373C34467AD62476E3CF7DC73065D83D99B736980E90BF869727498422565C0E4163AD9BC32C26990390A318531813AF3983C95A2968B2A628AB826EF271177F0FED0E0007574F702D62A3A131F26C60D02852B2B2B15486E685573F38722E192BDAACB7D1D08AEB0B66802C64E0D4E81237ABD2B99C999BE52F7392D97FA935C3C7E94B54593A48AB412FC07496580A91F03E55FF078E82CAE9D8566E538780293397660FFA08F8D8D01187808668DDADBDB45F56EC78E1DD2DEBD7B4DA747E0DA6A002E150C95028767C510D35A4CCE91CBA41B808976354BB6F32085BEBA285F0EBC2F86CE5BDDCA12629FCB8D9C41E4DC3BD75F75CD6A98D20CEE58B35A495835F8EF20E5AEAAAAAA10A4D65F575757B963D7EE2FF8FC816D16A1E78F1346A2514AA5D37C774B65C5F3A4ECC9EDA65C8E3435F81080DE162BD3296D3315E573A478393819278FAF57761B4755597BD1AF538B24E5D27633169BA62C408098BFB66CD932D159FCDDEF7ED778ECB1C74C46638CBC2E971992CD049E81C273B1AA3096DCF63B77DC7DE7873FFC99646252B4095A5D0C72513951145A64BBA8621F7386E87493E47C7026B1F44B76F79B5D7674127E923D1F4CB26BB00AF68747A3F4F21B87E85C57E7CB1DA74F3D06D393D8BBF78E159BB76DFB0FF8DBF2296937F2123F5D03FA078728914C16830B43FB7A5A33BC86EAFFA6512428B3D776212C40E4DA0424A1D734F4636E457A3AA41ADC2FC94E39CB4C81D6088DB1DBDB9DAA97B15066CC61820C8A4D8C51455DFDBB5E90516C269EEBEEA6CECE7637CC4FC9F61B6F5CB563D7AECFE3593CBA7EE9F4D0E0F0C80CE25BEA2995ABFEC8E71D2DD5307E9D4B5215BEBF11C8AFD494EC4A97F539BC30620D5709DE978015EB317E3F0AE78218A9978CEC6B7E97FAA82B9B3D47D6BC661E399827917E86666880CAC6A5A640CDCA0003FAB990077DA7E200FE6E6E1B71CBAA67CB962DCBF67EF043BF07A62C88F8ED1D9DB3F6B2CB926C4A3EFF9D6E45F53B4596DF6493F4A699257C22C040184C6884B636904275785F8EED0CCD80449A1EEF525C83C7032399542A9BCDB4939E7BB6CAAFFC08DA1005724AF5F7F7A711A364C1046D3E26CCE903CC7739FECDABBD6D42B8F85D595911F8FD073EFDBB70C4FE8510BFE5749B3063CEF50ADA03E1C254C9EBF3AF76BE675CD7E8955CCA4273A6D54C9C964CEA00F43D479A88847C78FE45B24AB56044AD60882C9C5C21435C6AD0E7F7073680191B12BAFE1F4712C9F15C2679844CFD5FA2D189C7CACA8415D22F2F15C1FF8CE2BF49A434FAE5EB3D53933344B6DC28785F306983739A5C882998C031B56F4FDA206B9F1BA07882C6273FF9094280249C33609FF0319FFEF4A797FA03018FB600E27775F708E26B20EC850BFDD479AE876EBD7997D5E3836B45CACAA788071BF3CBC4983041AA24E5A7E11A1D5DA40F0D926BEB5692E1ACF54090FA40BB7E51B33045FB5DB5A450354C6495A452B92989E9B953DAA1B2E6B2C9BA150CB9F5626FD7BA322AFB1A07824E6A64813E409A31253D07E472B2239A9F8264CD0FB6A61D59539134FBB89E9F7AE44C5192856F2A98BEC49F19CEF4246BDAD26DB77D8010645116C447B043376CBF914A4A4B1764767A2F5C14367F3216A3370E1C164E5CE4F04134B7EAA6D2CA2AD1EEEE10FF743A4927B3A929E2F313C7E23C3384BC9B3753F6E44982F3A14C4B8BC8EE06D6AF174C94004547F1DC63A6416D785EAE8C95E3F30A8C1A7CCE3EC4B08BF6C9448C645DD4B465EEE2BBACCE380E2519B13084243B3D501272D35F3FB875E14E5855175490B1D095D514C5929F02213510A9BCA2821642FCBE8BFD340AB8191D1BA71818D70C2DD2C1D41C8049D01FA4521052525C537D9DB8F6D3C35181CAC4F44B466B389E3D7A945C8B16510EC497D219924259AB210DBE28D3DA4AC6E4048556AE266E42F7D7D793CCED2BB8FF98C85D18E487A9AA92A73AAA476213884344414946142E5D56454C4C490A96D0E8C0C5BC4390ED228B28B6D890917B6624CBA658C7C8AE01F027F96EB769693D3EC19CE65E6CE230C3D7AFDF408B97342D88F817FAFB69606808921F1797ABA9AAA280DF87E1273F06202249D000472A1D0DF846C3323A9749515B32419DD086F3D934796EB945F80166863E3A42FA204C51382C9ED14CA5C8C4F58C71302E18A6C9B7DEA292952BC9555222FE864D6C83DB436E49CE339A103F01D1718E4981439619112DDC07300EC3C55C5E1FA451170515A9A0ADCBB097CE70AA59CE977281C5EABB74822F1BA7E31A22F0D2ED00AC08B75B7FC37CD9B665132D5BB69C1662F319E7B3F4A75269D1B51688842DA28BE1132D95395C3B93CB92EAF28868DBB4F13EE0255DE75269356C3CEF67717FDDE93475A692D40DC60C725B644DADD0922C98AC43C358A39919FAC438052ACA2900EFEA4C5E0EC1BC5578BCF9169654D28AE8C942935EC431B96834CAC19ACE5DDD85A668D6406CD7CD1FB87BF7CDBB3EC319CA8ACA9A6B5E9071D213AC35CC24C038989F2CA2EF9060DCF4A06AFAFE48748C4EB69E1601145F5710DC21BCBDADA9AAA4E6EB560B068D08133546E3937198A984980FC0A90A4E89CCD6729EC677F4C21FF464D27401DA118543161ACED3A7F0776938EA605575DE8CAD7079A9D9EBCFFFFDB98E76B893047574F7A48787A3ADAA2CBFF2A13DDBBF3931319145542D161C711831BB0F900D29872F2F59DCF48E1564EC4893AB5EC459E050A46441DF91869F38D3DE21DA0679FA5431E1ADF7DCD7CAC4E717274D1B16D589C16DE89CF2E0F362305B0343C3D40F1336323A46C9748EBC38974D2C3BF0EB60FB579B614BA21959E17B2F403B06708D586D9DB584189B5EC872A33F40882FF20C48B006E061C0682FBE73735975D5E6E1B1C9A72A4B234E149D0303F4B97D80665C513D7681A49FC2FB2006A246487E90AC4627FD12451A20B1D36784C9F1E76DBD6FCAEC60CB91F49AD5AB6665F8A9D63382117C7E08DFC9A36151AD48AE71235677EF79EA397F0191F4A8D09448492979BC1EA1C9AB60E3570643E23A49DCE700846608E66D027F570B73E7405C36D90C59A3639334311913CD0C1BD63553FFC0E0FEC914B0A4697440A3BF71EB0D9B9EE4479A2B12B689215D73A97708C9034124F984C4FA2E9958E3D7E9F6B394014261671B0C068A08CF5B4EC98C4F4CD0C58101AAA9AE120F2F203488F4EA8183B475E3068A84C3F9EB9D077CE5F8E1A61BB78B06AD15CB968AE10848CB99366A3D739606016B4B4BCBA8241211E62A0C8684DC2E5A5ED82B6ABF1FEC1BB0DA17CFF709EA6DDBBA498004BE17105EC573AF0E05035F8763FE057C42760E276C55A48A0A329359FA2FDF3F51B0C480967F9F2FC208EC6F2D5F203E37B4A9B8C0CCE53BE9B855D2EB92E9B65B77D337BEFEE70B72BA3D904E76BC0D75B5545559516476580B18671F3FF596B0F967BBBAC4FD57C259D6D7D6507D7D1DEDDEBE5DF4FC3BAFCE73DD82A037EFDC51F43D1D5DDD70EE1769CFAE1B69C3DA6631D854B68219474FB488497E6508EA6A6AAA67F51FFDFD1781CE86844FE3FB8CC0AFB136713BBFA4C954561AA14422C56D94CA962D5B24755A25D8B4C300D398163378DD0ADDB2B5A660A902B2971D30F3C7E482F7D6B20434F33CD98A2A79DED5673E73FF8234879DEE998E4E2A2F2DA5258D8D33CC0FFB83577F7348CC2F28345717FB07E87CDF05D20F1E160460F3B3A4A181962C6E10B0BAACB464DAAC1C9D6A6BAA68F9D225F963275A5A61263302A1AD5B739D20F24998B2D7F07D091C5F0ED4C6F3229C547C3C364983F02D0C4CB65FBF99E289A43099B29816E5C17796D2F8D8F8E392D727B5B6B6CE608061A34C44F406C501B94A3884E7B8C0ABD0DD7B165F71679C6C4FC466F306EEE341AB0554BC94DDE7CF4F8208FC10EBD7AEA19270B888013CE5F4B50387C49C8222B430CD7AB2669C6E3B0B3FD026AE590E18B97449232D6B5A4C8BC1144666A7E05F2ACA4AC5B59DD7D2258BC5BC85826E0CC120D62E1FFCC30BFB5FA35367CF530382330F40C1F9BE7EC1A48DEBD6088AF27D6B9295B2E77B07732E365695FE087EC7E47E51B590F0763E3B07C09555E1D9BBA0F672DF79581723FF408E1D2FB4E76296885ED0E1266C3CABA76EC703A628C858785FA23B6EBF8D56DDF7F105055B6D9D5D5C54A16D9B36516D75956DF72DE2F3EBE8F193343C323A77B5638E0383C3C3C257BCF2C601211C8B1BEB69C5D226F11DD3937B6B56152F84188546BA3D6E61C2F6DDFD61418B378F1CA37F7AF427C2F1962040634DE584A29BEC2056F1D85D75B92F13B9B25C870600C9C350675542D6E134BE34AD33B1105E0BE2DA13D784B321C38E282D69366C7FE1045D46BE4F5E77FAE405132C629B42EAEEDDF7D105999E18A49A9D64457919A4FFBA227B2FEC38EC353BBB85BC2AA0C9DBB66CA0336DEDD4DED553C47C76D20C6D99E07C3C0C74B472C5725AB372055D875108220EBF7D0C840F513DCC59A15630743DD3DE2E34E9C66D5B0472E2E39AAC91AC29E4F2A874A1EFE2C1DAD2E051EE53E576184ED0A905B65FB78B0A09044EDC15509C2AA6A94CA231BDE4C844B7A35F2BEA752629388CB0D68670BB14FAEA9F3C2810C742A4FFC4A95671EDCDEBD70B261476500F0D8F502B88395FA9AFB000C179A21F3CF22805012DF99A6B11272C6D6CA0370E1EA20B70AC85AFB1F1091C3F4CAF423BF8DCC5302F0C6DD7375F479B37ACCBDB7CE7954CA6E8DBFFE3EF054D56AF5A41914838EF5344950F7E2F1E4FE4CA03EEAF72FF28505FB6A9A949CC1F56F325306BE1540E122615B77B92D3BA4E5DC0B4E7FB1B6621138C295363D77A674ABFF5DED4AD952643909C51A82F3BA24244326B92ADBF9F864646849FD8B4BEB988F84C4C363D7409F23BAB1832CE0F427B5235752210E37BEAE9394F870E1E245544B00655C1A6DF7AD32E3AD5D242C75B58135279E163C4D4D6D1453F7BEA17E481E9698649626CBF71FD5A1171FFCFEFFF50385E8E2BD85C71F0A783F8B2BD145D1674191B1BFB615D596800DF9D840FCC71839813093B1AA0D91A103B75E2C88B43172FDC93CD64783D9D60CEC8F97912324CBA6A55E81DAE19F9A5540DE77FE79061D8F3CD141928C51D8E448266BABAAAADA3F377DF3E7E829A602337E221F88166C48120D08996D3E2FD22C0CEC2862D8E9C8F1C3B29187E49932F3A6C64DA04E77DE0D041384DBF605E241C120CF506C3F97887AFF7D453FF4AF1548632F92512A419653C96F6836F1DA1370EBD29EE9319C73929BEDE0D5B375219EC3F0B273B5EEECF49A653343A1A8D56857DFF887BE776C60CF78E3AFD87B3F980D4D8D0D000062F1BEC276B29630F4D2DA0B7E04524B8A7C7E3F1A8BEB2B2C0AE9D376EBCF3231FFDEC249C14C3BAC36F1F150E70E5F2A570580D70820DD6EC750EB8605A92764DB7B2BCAC085A1E8359E26506E892C6C7DA326119A232242D05F2E1006DCD8A65F49B8307058A6198C82691353C8E404EA7E9EB7F4AF396523936E157D392066AACAB17ED2BDCE5CD0C494E24C504BF5C26FEB0A9F8C7407C7E288DA53F9F0D75FA261DE12B6006778AF11FB8686AE542F91202379D0172381CF65454549420E888404DBDA525119894B508FBFB04EC7BEDC061FAD5732F513C9910D06EEDEAD5F92B334E5FDFBC267F3D7694B158AC5838E7F97E8E1B2621F12CE5F50DF562CB26F0A9679E8526E5002F4382F8B7DFB4930EBD7918CCA9A40B1707E67CBCB998C0669203B672405891E9D524CA61CB2BB20C0D0F9F2CF1F95E83A38FC1F4647B7A7A8A56FE550B7BEA696A5960A3C024152E5D7F39793909C4976B6B6B7D1830F91E230D69BC0049ECEAEE15F8FDA377DD41837080FB5FFF0DC2FE7620940E01F1766EDF2620E147EED89B37513D403BEC13E6F0B4336E6D15A49C531DBDBDDDA47A7CC2143183D956872325762E4A1708E857CFBF00014889495452910FB9B4A231DDD8173435348AC9E81CEDB2F473AD02C65EF74BFA5F1886340E3F94BA78F1A236BD30A34E9FD8300D15CDB662E18219003CAC5457572B6084363E31D65F5DD790EB4FA65CECA0A3E3E3F4D42F9E1548E1037B76D3FD9FD84787DE3A4AC74FB5D0EE1D3788918F8447A3D48B88F6D22D4E533777B6F31CF583085C750EC3806EDBBC911B73C5326A69FB9C50284093B10465755E33C2234083A66B0BF99AFC6B515D0DAD5EB95C3860617A60FB0711C0A66066A323234F843D4A2F231F4E45D7D5D5CD58F95D9AE7274C88AEEE1733A44D9B3629CB962D0B80FB3570A4CB716CF9BA0D1B6F099755EC84AA97B279E03224E74D3855CCC868EFAD7B8406D42152E6DBE0656638F79FB3D1CBCCFA802198385FFD80F713F1188D83E96E9F5F68DFA6F5EBC80B89EDE83A47E7CEF7E7D1D1F4BF9FAF36C1587FCFCE9D882F360A84C8D74827D374B4E5141CEF585CCAC4EF80DDEF71BBDD51487F9ABBE816344DB5E0A42B6E3C6526DE7DF7DDE6E0E060865720C42ECF28193875E2F87E6C8FFBFDC18A65ABAEDB1D4B259777F75EE00E67102845FFFC93C7E97B8FFC0BA0A3873E76D79DB476CDAA79D60D9AE920D9F44442613A7BAEABC09E038A82F09542CA2D22B2FFE9E2C089D7030A975C517FD36A04691BD6ADB11DAF053B5B7ADA84E34DC4C6FE26E052A3600ACF259855FAE7D4806BF5BAEFBEFBE4D2D25217181084B32B038AA906232AF09DE5B09325D80F633F5853B768853718D9DED1DD5B01272909AD8046F043FEC1FD9F12814F6565B9C8B5E4A55ED766B6266ABAC0E0C78E1D251F1C6C2920E1F6AD9BA8BDFD2C45276222B22E966443980DAB3F756152EFECB3C3FDC0CD3721485C2BEE85B5B083E385B31D34343474CAA5673E87E7EC0D85422C78DCA0652CB82BE25ABDD8E17067586F6F6FD26EF5CED8CB098C605BCACD16BCEDBFD0378ED0EBB44755C3EB572FDF313436B9AAADFDAC57B68B34CC108E4E59C5AB2B2B0461E75A2A1E112735352DCB136DFF6BAFB339201782311F0647C00C6D5BC1947308C61604A7A6BD1839AD5EB19CB66E5A6FF7C84A14872F39DBD945C9442A4BE9F85F1A8A320AB39B282B2BD3A2D1E89CBFFA21BD0BBF06C2538A64D840955BC3813ABCF84E5E6529088246C00CD6FF12DEE238EF87B10D044391464F30B273CD9AEBAA9C950F9DA527F97DC0E78603AC1758BEA8C8AFE9F9C5986693E232C0E0236FBF45C148A99803A74FFFDB4BF9015C7BF9B2A5F4910FDE2E8249CD1690675E7899C6272769F042DFDFCA7AF6A7207E1F1835B175EBD68C334D6AF6D948EF42D721AB1F42F11CCFD185438EF10C43DCF40088DD8BFBEAC4E0A44E3B4CD259BCEFE262556C72BC253A74E17145A25E3C8861E8C51D16D1F1181D397152C411DD3DBD96C99A3D782D7A71D3565DC312F20782B3A259966E0700CCF6E238A619B69F530ECEAF871C4770C84D61D1D1D116339B7A8613A610B084DFEFCFA71CAE7A8AD2559622F31017CCE0004FEBEEEEE6F66E5E4680E7D74EDA4E3AC49DC81865EC2B0C38B0979E7BE627EC27D6AC5BBF35102E6DCE64730127CB2AA4131AD189B8820B369CF0E3DC3E9B2955ACFFB39064451170A08D6B56D26BAFBD4A2BD6AC833DEF2C2696AA8AFAC0EF7C608F203C434E2E6B9E81DD4FA5D3D9EC64F4615E250BE7811FB12C4CEF257F6EE55D61C03464257E0989B58267B4F35202C16030C3613A18C2886102A78E715292138378CFF370CB4F1D3FF62AF6DF8C9496D52C6A6CBA01C7EA321943D60D3D9F8165D3D4DA765654B15805962D5D4CD51515A240244D43D4D21C35EBB33D88375C5E6A873D9FEE1EB880BF7BC776AAC235D91C4EC2F4EC7FFD0D91A61F1F19FC7BEE15C37D8D01F3A778191DC0CE4BDAF7778D01B331C3EE16E3650574EEAB8799CA42B2786E6E8227CAB14F65A7CDCC00D3CA583BC6A3A3718C8BD01C7F655DC37AAFC7DB8C38C2AFE7EB1116BA61661C3FD16A2F3B43545F574B353555140E06E75DE57C1C4194CBE3CDDB7D87FAE150889A20FD3BAEDF92D786E75EDA2FD20D6363D1D6746CF2D78AE578E3761A67413FB725BD177E92CB09FCB85909CE5AFCA01054D8CD8B0FE2236196B02DC57E296FD969DB8D6401B188AAD7571D2AABBC3E9ECAD42493492557B04EB4B3F68FF39E4D166729972D5E0C275E9D2F37CE073FB948BB148EF70144EB0D7621E6ADA3C7E9B9975FE120323BD07DF6DFE3DECE605C84204D0C0F0F671F7BECB105F5F5A8F41E784D374FD008CECAF24C452D1008A4418438AFC9C044B77D846084CD9850369D8A8D5C60DB411E7F30B2CC152A59171D9F28E7998EC5553AAB50A4C161B7B6B58921BE130C61CDE0E45F085B5ECC95171AB4FA5B89AAAAAB80F79BF3C41F1E1DA597006FC53C83E1FE7FC0775CC07B5EB02301E26B7335E2BE673560368D606D808F90795D505E0DD5C30BB921A065AD809A87B08DD89AC04C88D81AE1FCEA1F435D37B4626D4637575D1C180E4FC4262567C9FACB79660EB8EEDC7B1BB5777489947563C3225A0494348AB8647C7CAC75A4AFE7CF211C5DD0B2C1542A156F6E6ECE3DF4D043FFB619309D11DC5FCF9019EAADC4E3719EDFEB867433239C9F5C149A81AD8823ECFD00DEE77F85C9747997A7B2DA8AF1C95859747CD2BDD0E77618C0B560869A1CE8EDDEB18D936FD99EB6339F85A29E8630F4410BC62F5CB890656071D54B15BC575E85AB9EB049E2E5062A2B2BB5FEFEFE2C88CF2B25728E899DB48FA12A88108634B2364438A8B3612D33C247D9541C0EA5D517F6AAB561BFDF54DC2B53BAD130198B9722CA76CD5661CB57E1600A23413F2F0C118EE6C624C01CCA2427BEA7EBD93E7C9F8878B9CC78B9C47FCF3360B6E4A0AD152C691AA05E16617E1A7E829B082679E124263859BFBE17B6734DCC84A0EDB0FD82196478243D3DE633CD2381B047AD0A54BA3226D56B065569BA5192D5B410E20D6F3A93514D7CE5C0C5BE83998991B6B0626AE125F54D99442290C9269EC7B5863026F93767E80A7F6E57FAB7FA13BDD3CD93B52C84A2BA7816752EE701F139DDE1E79487AD05CC187E1FB4DF8B722B4F7DE55F54B285917F5DC96E7C165A97E31931B2B5CC8153A4E2A0917B61BA780B1F350E4148CF956C7B5F68C042CC13B77BB35670CB07023BB1EA094C860B8CF080311ECE3FD96B4CF8712C08C6046C98EBD4BC7930F475E398F30B8319FC9730ADD2AC587D851788C576001A37ECF7FBE3A150284B57F163D3D2FBE947AA9D78827FCCA7B4B4546A6F6F97797D098E0D402CD60C972DF1CE4A2BE247AB799F8F3313F05E386D6E28B0032A0E06D9D7E478DD08B2D6151AC7E7E3887813FC2B4B0BC5FCEF2B0D58A0AFE0E564F44422C18B686711BD0A24C5E60A5B87214C6C17AF9E622F55C6088935872FA1F17237BC161CF679BE973043782F1678E2250A2E07F3BFEF19301F33C89E16C4B105B442E2008FA36E105886C952703AFFE00FFF74B5C22BB0F0E250B6DDCFE1331EFCB30026CC9AC939FEEEEE6EE34A50CFFBDA045D6EDA835FECC4BBBABAA4A54B978A1FF8844D97B9B9165A22C1C4985C4A840689A5F2F97C5E361FC196397DB2DDFF67C05532C47915202BF172883D57EAE46A5FFF0FFE9FEAE508C4E5AB0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (46,1,'IP_PBX_symbol_(128)',0x89504E470D0A1A0A0000000D4948445200000080000000770806000000CBA9486A0000000473424954080808087C086488000000097048597300000DD700000DD70142289B780000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000042924944415478DAED7D07941CD775E5ABD0B97BBA2767CC600683418E0401E624D2924052A468525AC96BCB3E92B5DE635BDEF591B5ABB54451B62CDB3AF65AB22DDBD27A751C762991546010259212098A240890C879069373EA303D9DBBAB6ADFFBF5ABBABAA7270224C0150AF8A762D754D57BFFBEF8DF97354D83E245C0C5BACB1B94585FE9452BDAD6ACC7B5522F776D2958E465125F588411DEED8F2C14137A8167B846FC95320027BE415C916F8B45DBC6FA4A214129E2AB9666EC6BF83AEA352458260358886F25BAC49B6C595BCFC3154202CDD288C80A6F39CBB6625C4BAF768D0916618012C49779B3F1E6B06C1B4C215E219D402BEAF539DEB2D8D27C9DE1CF6430023181708D091617010603183D9D88EEC4E6B2348311640B135C0906B012DF207C0A5B923789EF5B45857A8DDC0B334029E2BBB17979F3F1B59B9FB35B90E0DDD60334DEAB550BF113D8E2D862D8A245E249BB260A1661008BD66F308001F99EC6751B3EE4AFACFD1FB2240BB22C0A3659162449C26D09F018C8323509F018EE63936DFA3E6B32D844895D23B1EB457DDB3886BF976CA2FE3B7E4CE4F791F05ABA8ED674CCD866FB827E2F41C46D919DD74451D024911DD3A627275EFCF58F7FEC0B45FA817A852C96F7140288160620B8F70A20F86D36D9A3135BE204E74D924C06D0F7ADD74885FB924174EBBEC498C0CA403AA3E8C77582EBE7F20C2031A24B06F159C3A71444D26380AB32651CB1725C17C85A98E0DAB20C1160E7B2DF8378E99238B164FAD8F8814D0D50A0A6E9E680466B7D1B352DBDE1F71654248C8ADF1D7FABB135FE48435AA808C50A364161BB1A41339DCAE5BB2DFD25F650784090F05E9AC4EE855D1DEF238186F7D2E8BEC41CA20692DDC6184555143B1757863E90B628ACD750A00403082510C0CE51C049F00C6A16DC4E37F8BC1EEC85481A846106CDB2808CA14337F544D9E8A1748D2830C28812120709ADDF1CF7156214057B2BDE37874D23E6C023A24E58C80AEC7E2AEE2BD4EB0582791DF2CD6D6244C690743C2FC1CA6BEB906755D9A2AB180AAB58E4C8BAB62C6005885614C00376EAE5DB3A3B61D79EEB3971450EC31223467ECDA19941B6983F57F23796EBF8F9C26B25CB6FF2D7CE3F97BFDFF0D02074F5F480A2320670F277908B1C59D79625444081F307BFAB8D18605DC7FA12DED877CBF12B2CEBAFB5B4AE85AE0B5D8856AA5CC254BD46FC15F8014C2F20422DA2B9C094AFF7C482CCAA316DA224F1AF89802510A0788D284B1C20BD675E865B06A502585705E11F79E4317BDA37532565846A546B3DAAA286D05099D9DDD9107AF4D147D52B8D00C5184F2E0291E42B08EFD2F7BBC43F234ABAA50257C04DFDC9FFFA5885A60A77684AAE1D8D956A5555AA544DC5B556A5AAB456AB54B75A266551C1D55494540A365A0BF0E6E951F59E0F7F2A82FB33C81433787E4653B5193C3B838AEFA8A609AFDDB9B7EDE43BC124F242C4E70CC014B052CB2F8E4FC1EBC7271075F19950CB47A34C37FD709FD6A8DA2331C8C6D38F937127EA6E79B62F6AFA31EBEFC1FCBD713F85C13ABBD6388EFB5BB76C82AF7EF5AB251E5C20ABE05D81FCDFFFFDBF75689EF84D4A4E7D1F1AA77723EBED428289ACB308AAEE93D004FE5EA52089FFD3FD17F4D415B8AE1025613D99CF1A59505ADEBFF1FAF1A1F0DD0F7DF255648803686FBDF2D3EFFFC3E9CBE1D594173B49661779DD4A7DC64834037D2373481F4537E08958B8ADEFEBC7F2DB7A4C466086FEFCEBF4738AE55CAEE877FC3AFE3BA7DDB680BE28BEA3DDFDB38F7D7D9BAA68F7A86AEE6ED107B728AAE8228004F27130C2236B93A92A90AB4365A631B12D1E615D40CC632B089C49046412125D881464C2824E52CD5C335661B716CAB13D80D73E408C73FFC77E37F8E0C73F734090C45740C87EF707FFF277C1CBCE00CCF123CB685A29F3CEDD73433DDC797D3D7B4991DBEB64FB0BCC3123B0E364A609A6F906CC7F2048FA75BA5B57F7E431D34E34B6058BA92758BC7E8269FE391D8E92CF6B2777B260BBEC84FFFC57FFFE839AA2FD317E8F1B6A6BCAA1754D0383F191F129181D9B86743A5DA08882C0F941357AB8CABEA54AEF86BD5BC5DE4D8E315523421736A2BCD1AD9D4E07D4D554417D6D3534D455B3F5D0C8183CFFD26BF45D2BF1DE0FE17D1F1224F96B1FFBED3FFA5710E4BFF9BFFFF467172E1B03A006A8D91C4E18EEEF874D5BB7179C73DA57E70730B7A522BBDFFC4D91AD5FE42F30CE152F83FD7D6077BA4194C5CBE6E97BECAFBE7533F2FED7917177E5B42C6CDFDC015B36AE63C424C6DEBAB183C9F10B17079030E3303C3A01C9744627367352A99CE0D8B3559DC02AEBE59AB9CF1AFE0B94F918916BAAAB90E895D0D850039B3ADBC1E37699CF9348A6E0F93F790DEC76BB291A58130517AE3F8D1DEAB77FF377BFF82F6093FECB77FEE7A391CB80001210034C85C2107CF500B8902345EE0924F7B04E8CC2E00DF3E38B3A7290475034AF150BFCFA8C5198C750E63D5D66F726CFA2C0D6125B4B26A248CCEB6778FF04EE1F10445DDF73B85C5059550BE2D0E0A513FEB1C74439B0E6F3A2207F499034C9F8D0672EF4C3C0D018F6C42AE85CD78AC4AA60EFB57BFB46D8B3733364B359387DFE22F40F8EC1F8E40CB4B73631F43C71A69B135C3589AEB2DE0E260364730AF87C5EF88DFF703FFBCEA596A77F7200829159930140D0513ACF0C22FDFF046EDFF39F3FFB67BFFDCDAF7DFEC7978600CCBD8B04C16F9CCB6420168B81E117300338D43B8D808E281605724446583DE0239A0C23CB063A903B59E4F7D19924475143BC87225A3D81FA9A88ADBFB72EE90D3169C75EE2B33B40BC0C0AC0934F3E29B9AADA7E841DFB5E92DC4428E303D3F3A43239E81D1C878BFD2350E1F74173632D6CDBD401814019381C36B8E9FA9D70CBBEDDEC7A7A4F5D64BD08474E9E9F0FF59A2EEBEBEBAAF077DBE1AE5BF7B16F652C842EE1D92854960760723A0887DE3E95EFFDBA96CE1921CF049C211AB03DF3077FFCB58FFDCD9F7EF67BAB4700F2BBE31776626F5ED7D9099EB2B23C1C33E8174C11608578E6B3977582D371D994F75C5CF0EB65465483518CF0AE7E9DCCAF61BF2B70058B057F8FB673992C1301F1441C2E55311E8D685F9124DBBDA248269A1ECCD29534BDF7E6D72244E349388DA870EA5C0FB434D5C183F7DE05368E76BA2EA33FE7AF3DB21F6C361BBC7DFC2C675C5D04342092ECBD6E2BDC71F31E769D95F03F7FF5301C7CFB24CC8422D0D2DCC0089B53147018BD7F1E034081586058200AFFF6B92F7F3DF4175FFCCC4BAB4300BAAB9A83F6F51BA0BCAAFACAC40216D0010AEEE713A1BCA21CDE7EEB6D403B7AD538F0F7DFF9FE5EBCE7E758E20897DD44684D33D685CA1B110AFB0012A899C9EB7078165C2E2742B81DD1C0C1908C89417CD6FFC89840422638CF885511F0C1FBEFBA09766CE934894FF77BF9176FC1E16367602A18E6286283D1F1695DC92D203E377C2DC4CFEF9BCD868CF8177862950CA069944887DAA8EBCAC50296B990E8C9E532C800B9D5DBC4B2FC2BD8314BF4762EBF558D13DF7A5C83C1D16918189962D72B8ACA7C15845C4CC7B1884B423597DB494C0A73F1343CF1F4CFE0A73F3F086B5B1AA11CC5C9A9F33D30139C65C4733A9CC52191BCB74398BFB6E44314A3C1CE3FF9AB6FEFF9C21F7EEAED55E800A667ED3DB130825D42DE472C16BFB7CCEF9FD7CB4DD9AD5AB4788B265FCA9CCB6BF802AC45B3714D532D2A90E3104BA4209DC9EAA240D39F36188EC2C45488398E02655EA61092A730A7E89911A22858086C41E7A275F1B6D190E1EEC6C32B67009D8B25B82CDAD5BBE00A3608B1DA656060A066F7EEDDF95EAE1611B79801166CC014C00DED6B60CF8E8D50591160F7BF7EE716C820F18F9FBE0007DF3A0D49C6081A5300776EED349F83EE91CDE6D8B564FAC59349B8D83784BFEB864C56318373F39140C82BC9427E3F1A9DB3AFDA0A104BD8DCB4F48ECCC1C0588C6B9D1AFB432C43882920C0615077851AE104A3155C47E7692D02DF37B28DF83DE819002C7F03D046AE837BEFBB6FFE432171944BF096F7F5F745F6EDDBD7526CAB17F670B5D086D774A5AE32E04505CDC67AF37A24FCAE2D1DE0F1B80B1F0F2FEEEA1D84F33D43CC294E329D7EFDEA9BC7A1A2BC0C15C97AB307DBF15ED4BC5E372AB74978EBE859A65750828DF11DE7890110B8134A30B74924C593A989D559015CD12AB59CED9D85675E1DBC22AEE07D7BF7946400951367B54BD785AEC8F1E3C7E0BA3D7BE63B6BB4F9CC60987236ECEDEFBFF306F0FB3C6C5F282136BB7A06E1F8998B301D9A65C47118DE4CCE402FBDFA36FCEABD7740C0EF9BF75B72067DE4C17B50C751E0CCF95ED43926600415430D4A8801238782C5223418991A4311905DA51F4010B82938FF8536B7FBC1E36A5B3502481C9E289750F766692B4280D21204EFA628AB933EB8B46FBD199E7DF639A8ABAB83B56BD72E2EDB2D0870E3AE8D8CF85662184B38128597DF3806A1488CBD3CB9B1F9C8D582E44405775E387018F6DF75039C40B3328448B2A6B1163676B422B3D8B9922AC18EADEB59CBE57270AE7B0086C7A6606C2AC8E220854820C0D8D818CCCDC574A7D3AA824192A4D9511B9D9B8DA0F65A0867ED4D3EE868F15F35AEE0586C0EBF292597AEDC15CC53E3C9432F2AC840DFFEF6FF82FDFB3F08B7DE7AAB09DD0590CFBD77B45E535F09EBD63696BC2F4309BC756B531D245343480881FD8EFF07CB86EEEA4D2BF0E48F7FA1CB43520E67FB9119FAA1BEBA1C95C81A58DFD66CCA7FCAAEDEB6691D6CD9D08666E359142BC36866DA39EC2BD0D73B804C14D69F7511457EC96090C3E581482402E97412659CC374CB962664DE312498F9FB86534730DDC482285A1248B93348E01E45C1727FEE7D9B6FFB7298E3724EC5170EE233FAFCE52B4EF915F4AE43CD8E5F4BA2FBD2077CE69967A1A7A7171E7AE8C350555555B2F77B5C76B86EFB06769F543A83BD7D0E66E7E2301B4B60CF4BE0760232D8534999B6D91DA6E7D2ECFB46E4AF806BE62BC6C1681C66CE92C3A98FC509D63456436B733DF40F8DC1A90BFD90CA28A86F78D9B5A150182E5EEC81542A6D515E17F68D2C69069207CB26BB21198B31242081C088670EE2904AE4F05B9B50B4AFF768B9E058DE4D6C3213273A752292EDA4CC30D308E5A0C2ED6D22142965845215D53520C97676CD0A896F24C17AF163D9AC9DE5DCB97370E1C20520CBE0831F7C3FD4D4D4163080CFE78663677A201A4B42329DD6459001EDB896F0DBB964398F0626CDB5425A6BA5285FC244C2FF33B3C80C284E4E2033289ADEE11C7609A6A66750891D84B968544F34B13C278A0B91DE55D334758508A0CBE41C9A2436095FC667D7C3BBA29477019B8C2098C417C5E2009195C0FAB5A2795E32C587207104E0A9DF024FE3A7A7B6A946A8547F2945E70C1D01704D2F2EA256AD2ED30C30609F139F34AF2AEC290E28527AE9631E397204BABABA60F3E64DB071E346A61F545557A14D9FE55680C81C3786450025D6665F2FB15D08005A4182CB42BCA060479845D40B06433039390DF1789C6718A979065079A0299396754067E363B5653300FD253597053B427363DBBA2B96163E4F5F2871BFF1B1513879EA0C43856512DF481E25E5A6025B1D76107B696B481745C3C3234C1C9E3E7D062A2B2BA0B5B5151A1A1A5044543293CE54EE0A923A16DF5E2E001021E7E6E620148CC0F44C10C228DF4911D4BD8F3A2A9228D41940332D22A277269934B2A4D5E2F191F2525F4A4113A2BABAFECAB98297E9896C6C6A8663C78E524876B90F67F47E0F67805AFC2E0B30805410DC2106A48F3E39390989441C262626A0A2A29CE90A2E978BFBEC4533E803DCD2B1C27FE1264735456144252710859633D450B78846E7602618844C26A35FC308AE70D19827BEBE2E4401FA238954D2182761D44F588908D040788F645367F1E3E5966F061203D83802F8B1059819B180392C08D6F18862C1BECE102A324382318BE1E051155D67C9293906D906B1C86145C4C96515247486B986B3485C4658CE040AFFAD82BFCDF1DFB29EADEA0129E695347A3BA140311368AA19ABC8A653C6BB8A2B62002301E35D73055FE2C27AC5F29440EB18086334B4239349CED81CAEB5A51C625604D0730384798C904F5D93780C216FEA194E2495F7604664CE1C744C33CC4D959B9A8617B2609D27AC15EA8D1E6F105F51F3A2807E33393E721116181FB93802805810A7BEEA63010A7D98654503B5A2C6460FA7E2B3431E5FC59E920E31512C480CC933825870CCD8D7C56CDE6F0016E78FA6E51544D3AF50702CAFECCE6BD6D432556F56E52FCF047C3F978B9D3F79F0FC4286A6BC34414A53E5E5B727B18DF2F46E7DF4B599D2CD1C20397D5F338A79287C5BD1D3C779EA3873FBB2D46F85ED9BE9E346DA38BF9F40E28BAE1754D8B97D2B7CFD1BDF288900CAF25DC11A97895449841598884C8F9EF6056A76DB9D9ED6620428116B2F393CDDDA61348BCD6F350F0BAC030B53184487528EA7851841D52CE220CF040A5708C786FBBE89FA4492BFEBCACC4092FD64B2950C9DA209343193BC22B1801AD4BA1742805C6ED9D120A3C2085516097353D0313E78EE89A6F61D9F96649BBFD8123074814246C88B04E3585EC9CEC37F0102584CC402BF8025B8944F0BB72202948C4B981A7F11234442D32F1C79FD274FF277CCAC9801582AB76CC31BCF97ABFB6F6984FDB736EB9E41332D9CDBF225CD40A1D06434D2C4E6B98285255CC1BA13A9B4EB1538722CD1F535CA74A1FC6D9301425C17107299B43AD67FEA1F6A9B373E6277BADB0CE21767DFCC8FCD17C6EC0B98C06ADF6B5A911F402BB20E0ACDC802E629100D5084149C2118F115756A6CE8F123AF3FFF8FFCDD62FC5D57E607104449733ADD30170E81D3E52980379DF0C255110BA0773A71FC18645822C5B2BDC186EC27111031A408B67426954C0E5F3CF6F7354DEBEFF606AAEE2413CAA07731E1F34C918FC9CF37F38ADCFEDA7C0760B12F402BDA2E5028C1A25F1421033EFB78D799237FD57DEEE86B78D10C7FB7147F376D852200BB85CBC990203439CEC6DDCA660F35DCBCB299FE9477EEE869DEBAD710784AB78E128268842D45A6970AE65F325E4A28C897D748B1636FCD951BCD88FBABECABD03A9355D92D9C6E1F9E5F9E08E028608881844524A4788F999D1AE97E323435F48BA6B64D777B3C9E1B2898572AE267BE85509ACB4AEE17107E3E2A944291F9CC94BF3E954E0C0FF5763D71F2AD577E8C1646908BB539FE3E593D5F465B1903B0002BC1B4DDA1FBDD73599604295A46FEE895418A53B8F3B57C04435102D19493C043BD06E1354B8EBC91D665D8BBA6364BA68D45BB2553CAD867B6B7DBC3DCC3CAF27580622630CACEA5390350CFF1E732A9E9810BC706C707BB7FD8B979FB4D0D8DAD9B5C6ED73AD02BA814E4EABDD34B31F552E9E44424183C393ED27FF0E89B3F7F959816F42A6931CED41943435F681CE1923A8086766A2C1A664121BBD3C5E5BDC0CBC2E810CDA27B4C9EE78779096C50886C0E1D630C2388E6D031C1F0AE09F9216182710FD0CF91FF812A0509465918961020F1FC021E2DC4461EB25367CE423411432658593E808509340B13A42C4C409E42773A191B3B75E48D5E6C5437C9BD71EBEE0D1BB76EDFD6D6DEB9D1ED26AB41939663D916F38BB0025358C966E742C1E93393E3C3C72F9C3B7E78A8B77B88EB3009CB3AC5096F68FDDA628348E5A59C65A81481C3EE82B28ACAAB3A16B0BE73037CF3DBDF866C26B7E2AEC83F90A1181A4C90E11F34CADDA846E14C27A2A1F3CC89B786B1BD4EFB8140A5FF7D1FB87FCBCEDDD76F696C6EAEF5FB033ED966C366F7E1B3B996040823DC4D7E5784BD4C261B4BA712D1443231974E262333C1E98BBD17CEBC75E4CDD7CFE1A319444E41BE4066C642F465117E590C40A904B96C065C9EB2AB3E16E0241F3C79E09691166ED44634BECF638F3DC6D65FFAD297D8E103070EA8535353D944229173BBDD9973E7CE1965738C225A360B53D82391A0E3A9C7BF7301DBD396EB58F3F97C8EF68E0D81BAC635E55595D5E565814099DB5B5626C9B2233E37178DCE86239150383C333D191E1DEA0B8E8E0E4573E426CCD73E36889BE6CD287D9785C2FAC8068A692B1936BEA412F85EAAA9C65CAC8B338080C41688D09B366D62DBF5F5F5051C1D0C0685DB6FBF9DBD3645DFBABABAD4F6F676EDECD9B3B9643209A80C8A3D3D3DD662DA465D656B0D65738DF7104F1C7B5B046A85852B8AAB9C5B8B5A5AD756225B89AD167933575505754925D0C82F7B2F2CD4FB1788050815151542676727115C4CA7D322F66A468CF1F1711613A0244D3C2E54565652C2A64643BEABABABB59A9A1A0D09AFAE59B3064D6227EA9F6AEE85175EA06411B3D6434B4B8B180E87053C478D122F04BC9682EF42241259AC5A4971D5F385F6D512EE6B582DD157C0000BD37E2A948299D934CB10D2153ED0133D457D5BB71204A3D81053DC8C91ACACE684289809A422DF368EE96961FA359291142AEAC7E8DA8AF272D8B56B570957B0C60753E41FDF6EB7B3F2B68D8D8D62737333115C42E2CA4864446159C2EF27A14C27A660D7E1B68008AC513E642C1653F11A051560059981C9D7B2B232E5339FF98C525E5EAE7EF39BDF644C838CA5C6E371E69CC0DFB02F862284EE81FAB1A8F5F6F6B287C17B188C03455EB952F6DEBC63EF449DE3251960A13F79E8F4CC154D0B7FEAFB4F954080C26820254E22F104FCF012F67C3BF66E219BCD4A0E3DCDD68E84B6D1F839D02BA25142282B8A45262F59064478FCE639FC4D068FA7F15826954AA5272626B2A81BE4485410B20C0D0D89B5B5B5740FC1EFF7B382112E974B45E2ABBC3CAE160A8558CF45D1A33DF9E493B079F366F6651F7DF451ABF7F05D97B84B3280B84028B8B5C103B75F57AFE70B50CA361BE0A16F53E9582A8EC08A65502914E029DEC5D78296FFBD90DFA661D982918B60396EFCAEBD6D6D691160F10350B530ECFD222A61725D5D9D9D1800E537D2D466C70FEEE679004EBCCED5D8BC66AB28C97ED4C059D55B527E0DEF9B92CB86A3B391E3C9786C02E9134382C691F80964A20C129AF57CAFD7CB14433C27F36A21243614420FCAA9E166A68A4AA58A08A022F155D43560CB962D2A29A04F3CF18486C735D249DE6D86586A5C8046899699749269D9D6655B4739ECD850B96A33F072A7859382168D2598664FC447428BD80B2524BE03E5B88CD08D9699CD8DE7880BCA9BD6B4EC2BF3076EB43B9C3BC9D6D71D4C0A4F3E55CD819E74CC53E6A7BCC8D1583CD69F8847FF361D8B1D46422788C0882246655277360B7E44FD14F57C44911CDE23ABEAF169D6083508558829108D541447CC3D4BC437E4FCA73FFD69EDDD64882511C0E1F640343C0D91E014CB3B1779D50FC3D963D40192B943473053BDF5EBF28914427EBC3F3F278842618285209A49282C2BD8602ABD1488AE5318D788FA8015FA5D3A958683870F0175FE1CC200328D884A988C72DA89F04F8A1DEDBB5C6E77F9AEDD7B7ECBE3F5DD85BDDC9927F2D2DEC37426D3188DC51B515ADC6CF7559C5212894F284A2A84BF2544F125C0795F5692BF2450B5634D0B92E817403D6283EC2B36411941DA31F38DC40931033E634E375C14EB14376471309430180299C064088B057BD99861691180C4F4B8BD1042064827E2BA1BD750DA04BD6287112D132D63D3E62BBDF3439E2C6D4AB50EBCB48EC8B564BE688561CE82A6682C1DDC5D1600D9E1264B80A09FEC6F3BCA670F3617D9E2CD6B5A3AB66EDFF107B26C6B365CCBCB5D92A91404C3616BDEC136D9EB7E3217493E84EFEA5405793D48CECF4B7AFCC286AB3A541EEA344DBC2923489FC197A1DAE8214155FA502E1EB30BF0B253CDF610432023134AB035A203999A0C25B29418C84DC19191111219840E2AF755A85674B81466585A09C41E92A1CC60BB131CD8986C36FCFC3C853BCF0C86BFBFB07A856809973206D1748B58D084225343337D0FC23C05542B08A4A8966B6910C4C5BE01EC4E2C4D5B40A8B5A132E646E24B289FE51B6EBAF9CE96D6B51FC76B1DEA0A478F269329980E86E6FB1C724A3BBE0F4B24551CFE47252AAC5D9CD5931F4544D646B526CAD5B8DE9BD2B4DF496A365553950872F10092F0985D82579C39E51C55A14150C8204364F0FE591225333333394431A5D80740E8F0F0C30FD31A56CB0C4B32008D08CAA6335055DF7455BA82055E4A6E787818FEFCAFBF41BD53C01EEF44F8F72113781E7CE8573F52535B779B9129B322E263CF9F9C9959D81402A95273797F15EDC976C9427045E3CC5994D903858C21A2ACAAC06D6CDAAE8CA67D328358A7E4C490AA64CF4882F64C40965F9265318DE28B2C902C6F6495E4F098821689DAD4D4A47244D0101D563C33CAE2AE604D15D2F811DCDEABD315CC46E2821E3EC60F017EAF0B42332051EFC7263FF4F02377D43734DCA6AC62CC781251657C726AC17A03886AAAEA706CB3393D0F1466F268F0836C1C86D42CB40832B48832AC417DA7D208731730861102369902CD50B95203C76DB87F5B041F3C974C4FA02972D86583EFFA1DD2297205A388CB90324140843A4E3693C928B1582C8768A7A089A9222A2C1B0DE425332755E5AA77045AF506FCE624FF7D1F7AE0C39B3BD677BE6F2543C58C6506217F26145AF41A449FA8E8ADF834B0215779A2F6A0183AAB6698F3EABC96832E3400D022060F7EC4667CB86664864690A04A13F32851CC143C17424668B3DB6C0DB8FF20EE3F388D0A64369D1CD072E997031EC7E31E9B3896A3BA3808D448FC34EA0F14B7C8221328CB1505F25201686384EB554B7CAE2452FC849E551244E903FBF76FBD7EDFBEF7AD46378AD1408FE92956E06951EF98CD5E865691684DD3CAE1E11FA7C2F9192AD8F0773662904571FA9021FAB189CC6E14A01199A101C5583D3244359F22A7B862A8953190E9EC0E87633D6EAF47CDF13F4D2693B14C3A755653734F37059C4FA0D91B41D100AFBDF61A791C732812969C2B71091D408577D53925ACACD7D33F634004E504D0B18E8E75DEFDF7DE77973E75D1CA9E3D954EC3C0C0B0497CFAFDE4F43454565480CD1CE4A932ABC3E5F68985B580005E4F44615AD1A7C7616E6ED0EB1FC0CC3428A8A3886DED2095979BA3338635054659367506ECF8F275C80CAC114260934A2483E6954C9A85CDE7757BBC7B716FEF6C2EF795443C3E199F9EF993EDAD6BFE99BBA6D54B4200D299486B2EF5195F78730C5E3838AA57F426172D186E5BAEA412A71BA9DEBC22B8A8E5F8BEC22B887337AFE57782E90AE669E342919B5850E1BA5D3BE15BDFFE96393C8A46D59023A8AAB20AF6DF7B6F353982562AF75319B4247AFACD9238A3631370E4F809988DCEC1C30FDECF1880082023F1FD953505DA3E6D4710815E4ACDB18C29819BC412B778C49A5A5042A8F0F7F480B87327644F9F06F7AEDDEC9D0D46216D6612F7A7B19D812C234C1532430D12BA06D79554B5D59A155CA464223A90F95B97980BDD83C4FF17FAA8DC64BC142B405B509DCC22DE25D3B94562014A895880625E2716C402D4A563013CCF41027D0896CA074050F83785C42706D8BF7F3F0DCB12D4156AFB841E3D487C42201A8FF7D691E3D03730582066E83B389C0E282FAFD167412B82E9E7A23390D5788514CD820034A4FDC471B0353681AD733DA40E1ED41D62C830D1E79F03C9E902FFADB7811A0E835C5BAB5B435C7C84911966F17D7BF0FD25BC6700CDEC6A6206BCA20AF419DCC0C2148958940D50A73F4B318AD0127ACCD20C20081AAB925922C67EEF2D8D70FFEDCDEFAA2BD84C1B13F5220E346C3D8D3D17CD211068F8BA4B5EB1A997C966A0ABB797A1099553191E1903B7CB059D1DEDAC4A17DD3B9BCB429DB71ABCBE0088363B40112C77A7127034196352DC243E630424CA13DF03D7F5FBC08EC44DBCF412C59DF1AB4B903A76146C657E961AA7D2C0CFA121881D7A13EAEE7F0052A323602F2B035B79A51E2DD547C1C31CFEDD38768821EC2077CB2EB08158308228119BA56F43D14B91887FF6ECD9254DC2259540C9E680487006B99F46BD3ADE4D31BF706E1C1F444981974432C1AA6992AB78A51A3FEAD4D0D5D3CB46E34691F834C6BEAEB69A9569A7F1FE9423C0B6B1B95C6E90ED2E2836F998298ACC791332C7456404120592D1FB71EDFFD8C7411D1F87ECF9F3E0BDF14690BD3E48BC758860070237DF02F1A3472079F60CC8C874AE8606485EEC0647551524BA2E80D0D40C82AA81B7B5952B93BA48A94471E4B5D9E78D09C09E4A6E74F222B23F8FE6A0B2D4A4D98BEB00F84FA664509707C68707F50C5C7D560E302A560845D98D2C8C0642E1A817FED1541D4F596107D522C3AC152D40350640EA43BDF49FEBA35E8D5E2768869B5A80873EFC107422B4AE54E653AF3E77F1223251069928C998A1CCE763459C7406A0B593AD1D2EAA1BE160B8AC9590C35B7C65B005094BE7A6B369E846A6EC4166E84B25218EEF606B6A020945001B6D4DA565D6A128E8EE86C4F163E044FD20870CECDFB60DE64E9D82ECE424546CD90AA10307A0AC790DF8DAD6729D02CC89399B6D0E3638C6EA714C24627C9432501452A6AA2094F4827A80B2987368710450B53CA4520F53F4295C8445CAF1160C7B32C7B1E9FB6619373E9C49DF079DB8169FBF620C6FE669DF1A53F67446D0AD52DDFB77E79D77C2C68D1B60A5329FEE79AEEB227321A73319F677FC7E5F01D1AD8C90E168434863B3C9EC5B148CCCB188843AC905B58896376B15BA1581F72746E84FC56130938234BE0889034F5D9DEE22471113C79640847061CF172A2B21F4C6EBE0C66BCAD6B4E8621078B535DEDD9A119D64100A1C49B3A119DD3FC19E4DB3A35E83EA909D119D9C4354EE8694C2158D0CA24B091E93D159F0F9FDF8806E9E956319D625483C42689D3184470A793450B04601C5FC2C21E678019E6A6E8E21A068A304FC37F98199A4146649F1C38F8A063134B7B4AE98F8B474A3CC4F24928CD1E86FF851DEE67B7D61EFB7D96DB067E776A60F5040884AB28422B34C5F48207A50849444235D6775E4187A4223BE4803DEEB262867CF3A813ACB2032C410AE47D329C821F43BD132103991356434DB868D101FE827BB146C884A22AF3D48D7F8F1BBF96DB62206044823E21043CD84676F3FD3D5F37B1515DE1FEEDDB2B93B1A8DA6C939343636461E428D87F94D465852046450B9F1A31D5C5E5175456201A2A5E8218904EA89A4B5FBFD815525AC0E8D8C4230A457E226D3CE90F17AAF771630023DD3E68D9DE0F37AD96F2B2BCA01DADB0A9250E95ED333332C60148944611619839E8BAA76C9B642A6A0B98E9BF16F36A13E712397DBE39C1186D34998440B447549CC7C2CA7923C5C01D46B255A7A3FF353E4E13F8DBF378A6A21A2D547A2739F4326FDDCE86830FED0FB6FA3EC995443434376CB962DE42A26F350337483C51940D104FAD84EC7BB5F2DDC141FAC74BB1EFACDE0C7220620E21373AC54E3A7BA798323236C900B8D66A22AE82E92F1257A3FA59335D4D542457960011F099A677DFD4C87D8BE6553C1B9302244FFE0100C8F8E216384196A9595F9D0BAF0CC1BE0D98C1DA1099FE37A44087A9F497CC771FCE6E3282E822C75C0A864A17B14D738DD947A54A0838C8F4E9B884DE864FC66DFDEEB3CDDC3138F7534D5FD391911683E131AF0E4297D0CDDE20CC0EAD6E4E04A2C82E543130350EC834C321F2A5C36560D6C651A3F297A24F76D28C7DD54D3DFC5153C6C2EA745E3C735D5E8253468ACAF5BF07E240EC871D4505F3BEF1C21C6A60DEB61D7F6AD6C9F6AFCF4F40F40FFC0108B2ED220D67244D5327C17EBB038624A0321986B194F4C21C31353CCD0FBE33B57E33316C70C42615DFE4FE1BD63B138DB6E448BC261972194C9FDCED9FEE1DF41548D23821E428A7E614353C391471E7984E5262EED0A56AF4C2C40E30E18DA62F63EC21CF5588FC7B3E29E4F507DFAEC05566BA7AADC0B5ED4D8E7CB7C5D04507D9F69B4CBDBD7B62E78BFF18949449251B8FB8E5BD9EFACCBC0D0301C3B799A158BFAC0FBEE60C7A8F71333180C3187443A77A10B4E9FEF46991D46D152C52A8D0986F564F8FE49E34791D0E472F17A89256204A4A8A34543893124DEA8E790A2BA6FCF4E181E9B60E565D958CA5CCE833ACF5D01BF6F2722411365352F290234AB1550B48C4E25606C26C953B9F2F57D8D7DB368028099126ED40C36AF039EEA6D661941BEBE302FDE0ADC34ACA9AE84DB6EBB7555B189B3F8B129C843CA1EE5FD5B095ECC0804DB04EDDD177B51D4943131D0D8500F7535D5CC29454A71574F1F846767997258BC34E1B52462EA6B6BE6079AE271181D1B87D6356B60EF75BB5823CFE3997317E0D8A9D3303E398D22A702EAE91EDCF55C5C9AD6BA4FFFC3E1105364074747D83C03B4ECDDBD8BF93598522EEBCE31A24799CF45E89795849C8CFA40EEB1C71E53E5853A1FA7BF9EB255E2A2A3E743EF485A38C51444D6C8EF2E208C896CEEBCC7FFFD9F8BAA6F2C6FE91D1864553429137C4D5303C2BD6B7EEFE7723F180AB1EBF33A438495673B7EEA0CD339EA90A8CD8D0DB06DF3C679BA01C50E4E932987F7B9EDA61BE6FB1D9071DE3A7A02C6C627506CD49B05A0EDC82CA4686EDFBA99ED9F4731F5F6D1E3D0373C8C0C5BCE32A0658319000A269BA22343C383108F2710FE830C4168DA39EA2CC1508431914259D9E420226B0445DA6C7456F47ABC627F7FBF30323222C88B21304230D3154A09808E661F7CF0E6663DD55B34D2B979556FD0D3C199E62A5852C085FC79C9729D99022EEAD133BD3C9D621EFFE8C30F30885CA9B387B4F39EBE01B6DDD6D20201346517EAFDF4114F9E395F5ABD1580859B8786479872475E48AFC78D0CD5042D6B9AA0B5B91989E54346AD818E0552D69368FAEDBD6E27782C45B78990D4F3096DB6A122B97943276CD9A8373A77E6FC0578E995D7D8CC611B376C40FDC757208EE99A085A210304FDC08A7BC38DFBAE87F85C5C27BECA67285504F67C241A6273F11F54791CA2DFEF270698A703140F3FC25F4B108BCECEAB16BEB1CD0F9B3BCA2F5B2C40344BD3EB5F9C94CF8C3EC0021A1012576AEF93767EE2CC59F691EA398C1738782CA61F11F7F0D163857F639171FFD4D308624F9D3DC7D081FE462DA2435B4B336AE15459DD5530D5CEE973E7E1D889D3B0BEA31D6ED8B3DB9A760F1B3A3AA0A6AA8A214B514A3E6CDDB411DA5A5B980FE285970FC0A1C387A0A9A9199A1A1B4D0620519448A4D8FE0E44112A97AFA7CD4B7CE65285A10C89B370381C6DAEF6FF252AD4DAECEC6C811F603EE1F512F68A805AF3C8E828249309363640B4A46D0B96DA79FAF02DD19C67C870F208D6B1FF823E444C4F1495F41E2FEAE30FE99CC66B13B36C60640052FAEEBEE79E552991F4D1097649DBDFB179139BBDC361F5F42103D0146C44FC370EBF6DCEE3B35A939564FB30F6A8577EF106730AB5B5AC817588061DED6D8C901B3AD631DD209F549A43063ACF10E5DEF7DF5DD26AA1E71A1C1A815FFBC843F0D10F7F083EF2E0FD70F8C83178E5F537F15B496C2289E1D1713E0B999FCD5E96CDA499C86049B98A3E7F3159257AB028FEC5B20A1F93B96BD7AED51005E62981D611A96C0832CBBA936418191B03056D5363C64B6B3123D5520DCB0893EAAE5BD5ACF69D9F7D83BB7C15CB36D7F6D9313EE31699627FF9D53F672FB3D220CF28CAD989A929B67DDD8E1D6C2CA1D1EB1D1C050CC2BD7DEC04F6E6B95579368C499FE7E516A4D208DF5D2852CEB177A38492F5EBDAA0735D3B32C45A73FA37FA3D451D1DF6F9156AE919776EDD02375DBFC77C5EFACD3E44106A177BFBE193BFF7874C1C11A2EEC3EB881168C65660697C7AEFA7FC0562BCF1C9C9EE9A80E7653C4E49A60A7E07953289AD08608C403588CF3251E90504BC89C75F69C9ED877921D1C2D265F90997AC152B0B8A19168CBEE1E30078F209E90CBFF69187A163DDBA558477B3ACF7D3421A7C475B6B81CC2FB40EBA61726A7A492757A952B93BB76D810684FDF35D5D30139A8589E999059F89EC7362C8575E3BC8D0716D6B3383FECD1BD6239C37CC7755F7F4329F0559126429945A9EF8E133E6D8860DEB3B50BB77E48B5671D94F8C6173D8481CAA2E59FC23BC344E29E708FF0A0BA1D3BC84C5B00FF93A3909411253E6008AA232E7A5B2524A4DAC98AF5C5D54D7D6188AA5E6CF11D39092B879D30678E881FB56559CE014F63A92FF864C34FCFCC5859DC866B6267DACC8C1499338848270E8CD4350162887682CC67E5A8BA6E2EEEDDB50A9BB08231353CC8A28BE2DF924BA2EEA047EEAE9E7985F6353274D4ABD01B66EDEC02292F5B5B5ECBBB4B796F645BC7EE82D78F195571963D27CC31DEBD622B239D9F734943E117BBFCAC3483333D32FD494B9FB4917A5318DC16050F57ABD057E006BC954A31A4542926C095DF3B6D4B92F36478C630584D7CC913D05237C4A218025DA27F0A0C76F7CFCA33ABCAE50EBA74C5EB2E399F3053F24C95EA9444D419A55836CEF85D2CE4B16C72E3A44B2379A48401AC516F9FCE93441F6D0E0209C3D7306AAEAF23D9B20B8054D30D21362F144C17D48FC1C7CEB08BCF6E661F6ED4819A4E726F772A981B994A2F6D77FF74F5C0409B067D70ED4053C0C5914AEF4E9D3CCB2A954201A8D26EB02DEAF901B02BF770A894F834CD808A352222007965269A22C27F5A16B96796E16EAF925886FC87ED58CF117D6B3351940CBF77E9A4F78088918C50FB50961D2E15C7E12CAE9B3E70B20BA14F149B93A8AA6D772FC09A51CA08428E44F989C9C41F1A5E50B33E3FBBCF0F35760727C8CCD5E42DE42B288D0E6864F7DE2E370E2E449D0B229186316C45C49FEA20E449EC4DEFE41F8C1B3CF33B38D5CCAC458E445244BE6EBFFF06D88CCEAFEFEB5682154A27E43BE0736A49D3B7C54411FCD456F98989BFB86DBEF99C5F76555C368EC80355954E655B2040B13180C201C3EF0B3A7CF78FC6FA049E6C33FE045C2BAF07207CD94C6AB62319D5ED5EF272CE04DCEC7E18B0E3045481390CF6C92D3EDB2FBBC6E2F6AA67E25AB3C72A1EBA2FBE4A9B3D08E327C2742B9730946A0DE15E490CBE47F093F3E69DE474F9E02BD04CFCA1752486FBD712F1C3D760C2E765F8040653563285A880834C163556D1DD36BA8D7EB350C33F0DDEF3D09A7CF9C86B5EB3A219648AC284BF9C8F193A8F91F674C568E9AFE14D735289EB1617D3B54505454E033AFA97AEF8F67F451D2D3D3D3239565EE1FD1B0764ED3DCA64D9BD4471E79645E38D82A024C62C6E3F110367A43176F340CDA987DA2B8E6CD6AB468013F2AA1BDDD2E7BDCD55555B59FF8D4A7EF8BCCCDB9159EEA4D1FE04D3487B66DDDC4E4ABD7E3293936E0941EE53297EACA8A79A61A995D496E33AF6621C6F919DAE36FBE79901173167B32395C3E7CDF0711F64F037DAAA9F02CF6D0A8F911C9861F9B0E4259552DCAE2E022C3CC965E28F46C741C2A984DD685DD616728C41C6F2802326A9625B96473594D52737F2C8AF628324F92068DB85C2E8546192F34638866E99E19CB7E06F275F3EC50580C49B894F83055E5E023799D8140A0ECD77FF3B7EE0E042ADB6822E57034CA142652B052F842075E7B139E7FF1E7CC93461EB8B52DCDCCC60EF8CBA0176DE9391E05D37B876B1EA35CECE93395B2D5E52BEA6769BAD7AD3B76997112125BC78F1D8793A74EB119D6343EE71031C64DFBF63067561F3E5FDFE0309E1374EFCA527F53584C17115894B2BAB28AC1BF0EFDBAD2A7A0DC0FC5F577C4DEFF46B5D7758ED30D3F6126B77BF76ED6FB49F61730001703C5A06D1509194BAF97203FD9C2A5240808A891D2485E3B8DE52B2F2F979C2EA7120C0761627202EC363BF3B9531898227994BC49D03A3139CDB4F7E75F4C32F82599FCA1FDBF62DE94A0F8E107EE9BE717A0B6DAA58A1262CAFD289F47A806901E93E08989F44C036313E0F295B3D93F0CAD8364F704EA03BDBD7D505953C3BC738B7A331789B85A4F91CF60235A0DCDA887180E1F91742982FE448CF5FE583C9E2977DABF4C81C7743A9D447194412457282368A99430CDC2040603885C39B4CE38616DAB5A90F06C1C3FF67C7B4D4D0DF9A6B3B228695450839421EAF9A4192BD91C5CB77B07DC7ECB8D70E8C831781D8FCDE13963EE1CD2FA355341F3C1473FFC809EB9C317529828BAB70CC5BEE441F2256C4546FCE10F7FC4123B1CCEBC4B9C1C3AA954521F98C1AA99DA392A009CBBD08DE226A6A3D8E048698B56583164C296CD9D2CE6E0F37AD837D0B57F5DE90E47F47100D170F83B01B73D84A749F3278B2E170E87B552C134D92223CD7C310B3308901F8F5E0AEE2F8901A85217956243119025F9C4EA4598131EF19AC028DF7E71F030CBDA5D8F90FFD87FFF2C79B550E33E002F1DF80590724B50494E955FB9EB0ED36BA60760522CBAB60C51B4207548EEFEE8D9E720A35041E62CD81C0A78F1E3EFBFFB4E3886FA09F9FE47D1E62FCE93A5F98B44D90E92989FC6050A3EA2B04C8EC81FABADAEC2560D2DCD8D4C9560C46776BF02E3E14956212D180A4D9739E5C7F1DB91A941561CCB07A42A23B09C6AE146D954FE61842264102E031FB305CD1162008A70B161CD0853EA8B2FFCE4A737DD7ABBAFBCBAF28E8989A9405AB55609519987EF28CA5ABB6C6321D74F7CEC11D6D35A5BD6A0EDBC619EC276FEC2C585A7915BE65393164FBD5E94B2E042BD8232911C289E9E7EE639387EE20434B7B401F0E164142226E56C2E3607C74F9E459B3D7A49D950D6854CC20DEBD73177B29DCF8F68D8FD343682F41B365E2291F853D52ECEA2661DC7EF96A1BA44D8D48542E94B640517D62B1784CB971A74CF3DF7087D7D7D34D51A3D032BC3461C7BE88DD77E4E0E3DD4091A376CDE76FB5C22D93A3E352D5B51612E1E871F3CF713F8DE0F9F61E6E1FBB1E7938944CA91F1A2DD287B69BCDFB295AB258EB1F2715C86533AD8CCF43404AA6B591CC4C6F313AFBF6E27F45EEC419BFF0454D7375DD60CA94E243E79082972C8205F50CCF4FCC19131AEF8CD9C70D9846364F6210390EC6755D049E9C3B68A71010B33C46559A8E60D2A2739AA8F438E0A24DE2C3737A9F2A6F2E6EBAF7E9F4CCF75EB3BB738BC55BB864727CA698E5E33764063E7B097FDDB134FC1FFFEF7C799E6FFA1FDEF875D3BB6B2F9F6560B50446C4218FAD0FD8303D0DB37386F986D4565A5A5A2988E32070FBD0DFDBD3DC8A009502427CBF1836540FE52BA08214B0D6AFDE42EA6142F43E9A3685F3F2AC44936363295B3A9E92FE3C353ADE13815A3C235AB46B658228D0C5768A18722AD9472D3485121AE45080B7365D36088325C7B2E765D788B50C1E976FBD7AD6DBF29341B6B1B1A19B5154F954AF2FA1FBFF3AFF09107EE87DADA6AA84179E971B956FC6C1432BED8DB0B3F7DE10558DBDEC1084D1F9EE0D7E9A0F0F8388C4D4ECDFB1DE50804AA6AA0AC223F69D34AB4A652F84ACCD8D1B10EB66CEA048FC765EA13F4FDC291191841EB464F0C09FEBB1DB449FCBB317C7E32FBB2A858ABA506835C150C400F45C58DCE9E3DAB50C9132AC048DF80CAA7E14B90F32986971022D0644E9498EF4D225C749F3DFD2C1E77B6D637760876D7753DFD8395062A1822823E32058406287B873C68682A565555B05C85E550229E8833EBA1AEB19965F2903B972C0C400BE5FCF95E181C1A42D3AED62418F91DC8F337632926B56C69B9C465EDAD6BA0167BFFFAF6763D78C652BC0434395370E67C374F5D0B8FD8B4ECE3D809A2F81CF144229141EB4A814BAD0FF04E2FC49D88026A4545450EEDD5143EB866E9FDA4C57A70ED45A21203F8681BCF51734F8E8F924FF542C02E7BDB3677EE1B9F09ADEBE91B7018BD2E1F6E5660727A0635F549A64835D6D723415D4BF63E0AA596070266F148CAF5EFEDEF857028021E5F9919A8BA6EE776686EAC87370E1E8486FA1A344B27566C6A2E74B2ACCCCB52E16ED8BBDB92E2A5B0681F29C434321A3BBAA224A25F14342D82A2740E7B7E8A4ACDDD78E38D052EDFAB92010C07148D6235FC0E65656554FF288DF22B29CBF21C12D14DA55D89F0C408F892C400062AB8F1DAF8E4C8E08BD8B75FDDD1D9D69A01E93A9BCD5E53AAA620D51538DFDDCD66ECA4587B4D4D15E833C82F8F60017F055A2D01738A56724153AFFFF9CF5E028D92585CEE15E91CC212C926EBDA5A997553C3F40D85C7F905E81BE86705AC989F2338F33D7CB9417C9EA81EEB4A66497F2A76F95E950C6065023E8A550B0683CAC4C404154B4CE347B0E18B27280085D7443933908FD7C791C04B553A694DCC108F46C8653D18F0791E4AA633354A51F8D91A86A6BC7E72D152762EA552515C7DF964CA1FA3E89D375009A9744AB714565191ACD442616142A07D2C21C448F4509983ECC4E9D33AF12391312D93F82E7EA30877F9A63D1E0F397DCC70EF55CF001626A0B16A045B1A15533E7CF8B0D2DCDC4C2F93A13A79642222E1C8B68D72DD8028E62134A086CC420A23D5B3F3BDF493E71E6F6C6C6CEAD8B8E5465485EB102685FC44CB5A0143500CE1C4E9B3AC8705023E58D3D0041EAF7BC50A2DB3CD5575C15E4DD7DC75EB2DE0F3BA58269221BF4B3118DAED5055590177DD760B3868C22EAEF4D1A45DAFBFF916F32E22F2A9F148F0CB086761643CEAFDA42265A97EF1424E9FAB9601AC26260D57C2C68A1E1E387040ACAEAEA6F4A59CCFE763892A34F61DE55C023F768C9B8C1E120BB8EFC78F14C0DB04C82B3C3C3C9C1919199940C2B8B66CDFB9C7EDF1AC0F45228E054BCE629B9A0EC1F8C4141B4144F9F52D4D8D2C63E7722CE4BD3B76E4103CF5E453F0DFBEF028F35FD008E552D04F29EC1BD777C0BAB5AD0C518C142FCA5C0EF2B22FE150F029247E3FBE7304BF07553067BD1FD1535BC9F889AB86014AB8A4991B9AA00C2D0536710355DEA6EA17E4E1C2750A91811881F2DC627839590D841071EC112436FC840CA85CBA8FBD7DF855DC3ED4D2D6D65255DB785D243A574141A6D28CA07B1E29BF60707884297B0D8D75D0DAD4C462F02B88E1142C24721A6A6BE1E63BEE82B78F9E60419B5237A1B4322F22D03D77DCC6833DBAEC1F1D1B664845CBDC5C743C3317F92EBE5304DB1CBE2FEBFDDDDDDDD4692EDF9C4157032318F049FB241EA6A7A7559A8CC12A1EB8D94896035BF3EC1762083F37234954B8077A7B53837D7DFD2E97DBDBDAD1B92FA3A82DA170445E0C15087EFBFB87581129825E2250EB9A2628F3FA40929770F4140DE2A0C095CDE9D1E7352A7139C531AAD15CA5C017A5B133022113A411297EFAF2017DC0682EA74667A6BE82DBE43399C5F309448D347E17E5F6DB6F270658D177BE6A196021F140BBC5E28187ACB394F088CC90220620C712F50EAE24B2C6AD09773C1E4B9D3B79EC450AE835B5B66D907DDE2D33C1885F55B3052850AA8D8C8CE9FE059E2AB70615481A0FE847D35058203D663920414CDE8C2287CCD45DDBB6169C7BE1E557CC51BF9150F08768E8F563AFA7DECFF2FC28D66FA0E5652F16FD5E100FB4CD8B27E750E667B1979035405F2C6AB1147C56A712B7285CC3FDBD2770FF9C6CB77B2B6BEA776714AD652644BAC22225EA2DB3977675F7C0D9F35D8C214811A434F4FABA3A96B8624C2ABD9CA5AA421FBBF081BBEF2C384E630B2E74F7B0ED582C36313B3DF13D247E18FF1E5945097CEF6C434383CA7DFD977BD6B0F7042310222824FB5A5B5BD55028A4A03294C14B181290B28830693082D7CA08E466E6E2C1954DA75313C3033470C2E676BA2B3CD5953B63C954E3F44CD0B6909E606D2C7288729D347C6A46AF2646205F3E6529935B9A52B88A935569E816397CF6EEDE09355595E6F17024022FBDF22ADB4682ABE1A9312AF41042069FC57BB3681F427FAEA6A6465DCDC0D9F72C032C8408145BA8ABAB53091291117281402083BD86A67021348859FC08062378B868603A0221025EE34C2662A954324ED997727DC05F2B393DDB43D1B9BAA9E9194929C1040B7D783A4E43C2A9955AA8D005B9986FE7A3899F7FE96516C5BC7ED70E961AFEF4F32FB0812EBAC327F86C2A1E27AD3F6C78FC70C9AE16FAFFBF6080128C400E259AE4D16404EC6D34BA8914C514F9C90911C88F407307E1B6C10C5E03110C3D8174327240CDCD8653423432867D56EE68AC6D4C69B011F5859AA960C8AE2E523F61390B95B8A544511A144B63132F22F16960CBFF79E207CCE2B895334622119F9A191FFE2E3E5B88A09F143F4AF3A2241A847F8DDBFDF04BCB008B3102B71A94AAAAAAECDCDC5C863C8CF8016D6806926870219CB219C4080578DCC1C3458531B3183507955E9B9B0DF5E1B921BF4D13BD35082F206F4CA4D30D91D99837914A8A97F2EC34548B92588C363D13E6E33055756A74E86B86D64F4133D2FA29D1836CFE6F7DEB5BCBF2F8FD5230402946286535A0E24453B2A4713B89DB316406367D1CF62ED6FB091D3813301D819880F404031508BD4501524EC8CEB85C925CE9F28B3928AF5145795D2295A90BCFCE7911F657948890CBA6635E8FC7194F24654A27A3400F25A06692C9E71373737DA4129055838A669242BDBDBDBD2BB6F97F69186031AB813E1A590CA828A2DE97CEF2A4496635E065763609140F4071646016038F4CD2C018175DC3E313840C6C9C84044A5A529431BF0DA440B54F84FAF2EA44465B134FA56A92A98C3795CAD891A825A798CF6673CAC440DFB3A0E43275654E672E5076C37428D23835391D4D45A618F453B20C39B92850463384ACC6E6FFA5638025CC4761747454A58C6414055989E69A1345999C4AA434E29A08EC24A2133370267071D1E0321081374205BADE460C41632E856C36E51260D4E59245A086BCA469822DA328652A88D5394DABCC28AA0FD514CFE8F0C0F95C2E1B61669C928B4A4AEE89FA324724119AA0901F297DCCE6C7FB931E934306B824C5EF978E0116F22E5AC583810AF1789CF48414C22F851DEC342F20EFED06B19D9CF8AEA26D17D715E85A1A4043C3EE686A5A363F31ADA9F8BA431629CF614CA0A9550125874BCEA466C3C654F0C6086DF26812D16790F864F645C9BD4D19BEE3E3E39705FA7F29196039A860288D546F998653D10494840C08BD36521E89B844643CE6408238B93870E1BE932383D3501A411F4697470541A0C66617A7C827CD45CCC50F359A3B90D2E314D24FF0DE64EBCFE03E297F94E695999C9CBC6CD0FF4BCF004BA10231437979B9303C3C4C296AA4408A894442265181FBE41CA26D1B570A1D86C83074032E166C7C66511B670642056A22CD27CC67134DF01E9FE1B388D2F12C0F6E51964FD408F650FAFCE582FE6B0CB00C0FA355445058989C4B349895CAAC1053A046CE7A35AFB34004B6F3DE6E43C291F82006B07146B1F16B6D1C0568A1C921131C01689B7A3FFD5D9A77988E91C69F40C2677C3EDF25DBFCD7186075A8C04404C1AE810C7D7D7D82A13C024D5B80FA239A9412EA0EA444B2C1B3446C2422532CE93B1B8C42C78085FD7542133351A3E9638DFABDF4F728551E653FF57A72F8E4C8DFBFDC2C9F6B0CF0CE3283661513A833083441F5DCDC1CCD584AE8202223B0C1B30E8743E40C41C29D1A530869583CB99071CD4AF210B1C9B44339AF5162ACDBED66F991542A01514635887F45660FBFB62C8B19D8312B43A01521D4D6D6423018240B43C0DE2C50B727E6A06DBA9ECC395A1049541AC0814A1E0D99637F03F50F8D0674B6B6B66AEF14F1AF31C0656286C51882CC4B620A4408686B6B638C61FD5D7373B3DADDDD4D8351B4BD7BF79AF734EE413910DA3B3879E3350678E719028CF57DF7DD57F2B7E4CF2F26F6E596F50B2DFF0F44B91E614568C69C0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (47,1,'IP_PBX_symbol_(24)',0x89504E470D0A1A0A0000000D4948445200000018000000160806000000DA7D5C880000000473424954080808087C086488000000097048597300000298000002980136D347DF0000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000005B449444154484B95947950D46518C7D102B3ACE88FB27FD266B244C6C1692092B4014B896654405A500E399215976BD993E55896639705966B71818585750159586E5840906B39952BCA1011F106AF6A3AC61953E0DBFB6384A152A9DFCCF7BFF77D3ECFF7799FDFD7C8C8C8682DD1EB441F126D7F86B612BD43640CC0E8FF8AFADE7C7FEBF60CAB9DBBAFDA7EB977E680A3F3CC118FA333FE0101332C166B264628BC214D4AEA23E736AE56EC79800F1CF61F9C529F2E43659D1EAD1D060C0C8D60FCD2246EDD9EC1AFBFFD8E1E43E71C3967F1AC02BEC182B7697EECDD078E049959D2E9FF72497DDBF6D93B5C8B1449E11B1C0F065B0C96408C881809E2E21351A62D45A5B6789E9CFB64E952B434DB53A6289A4CCF2EFE83199184C3C77808E289714A5B3B1FC817DFF6A0F3D37D9822D365C0219ADBB51C951A255A1DEAF44DE8307463686414939393989D9D457767FBDC1220427CD235235F0769563172D415A869EA40729606E5352D902BB5E0C7C91121564094ACAC5F06D0DCDCAE27A464E104570656541A22E2D2112FCD404A6A261AEAEB5157554E39B0A22E58EF710C4BCBD5A2B4B613DFFD781963E353D05434A3AAD1809E7363E8EA1F4541A91EC224E50F4B0033CFA3DE573215D95015AAA1ABA8445373337A7ABA313C3C844B131368A8AB995B02BCBBD93C6B8BC5E7642409D0E90DE81A9C404BCF186A5AFA5150D64C9C1581C14D848B77E8C8B2035F5FDF9B6939A71016938D48891209B27CA4661520475988EEEE1EE86BAB971DACDFF0C6E1CDDBAC7FF16184A3A4BA0D6DFD1750566FC049753562652A0487536FC27D6CB9DB217CD9819FBFFFE5D4F40C28140A68341A5454E8C868EAD0D2DC04436727F29539CB0E88D6989A9A6EDA696B1FC212C4AA32728B0DA9B9C55704B1E9833E019CD30E4E1E024B1B7BB3955B641EC060DCCC5416831DAB44B45405497A2132B2D550AA34E8EB1F4093BE7EDED8D8D85AA7D36D28D16ABD54EA229A5C2E5FA7542A8DE964356934DA4B14F879FF819997B7D754389F87081E0709B1D14892C4232D3911993229721572F039ECB964992CB9B5B3EB27FD99B3C83B5582E40CC5CF51298A873E92B4B930917426481057E3CFE63913988948245AFB9F1DF4F6F5A3B151BF303C3A366FE81B408A3C1B9CE83864E61781A6C8C7ABB171D81825C4A70949A0C9B2C090A42FD0D9D1D34B8E161FD9EDF091490E8B090E330491C4494CA40071C26824C408919BADC0C5894B18FD9E3C66552D12D3E468E9EC467B773FF26AF4082E2CC2578929B0E086C32A418210A51AC7598227367B1C6C49ED358B0E7CFD8E3DD3814A5D8CA92BD3989ABE8ADE738328ADACC1D885718C10D8AD99593C999FC79DBBF77061FC22CEB47721AFAA01C575CD70F5A5C32F286CC1F378602A05D8E47CE89BF3A1CC303099A160B339E070B9E012F5F6F6E2EEBDFBB84C20E5A4FB478F1EA1F16C3B5445A5C82ED02087747FBAA206038343B873EFC122ACACBA1E3E0C3289B8441CF56753096DB4DEC6F60B67EB5D76593BAC6C0ACC3FB62AD862BEA3C0CDCBA7A5BABE11ADA4B3A6D6364C5FBB8EF3C3A32412EA17019939F9241A541025CA702C980D4F7A1042F851F00B0C8392386770045AEA1D8C9ECEE915CA09B551944C4C4CCCE2C51229D9963F9564637A070617C7D47CB6033A02D068CBC908F391765289B0F06804B0F8F0F00FC441771F684A7510A7663EA43F4DD6E7E638B56E1E1E1EBBB88288C24036FFBE860461656D0301D491E27990909C92C973C013C6E30401500E22E3A5D0B7B421248CFF35D5F80B0194A87DB6B4B434767373FB28349499224E4EBDC11408E742054288A4A98821DBC38B89872F2314DF06B170E3D66DF0A263CF3DFDF18C5605ACD01A0AE4E8E8F89E8B8B8BA7FF89C056174FBF079FEDDBFFD87CA71D6CF6EE47B848BC109B247BE2EEEEFED6CABBAB15FE9B28DB5477F6F6F6AF1190859393930B51F841175AC32157D70C576F6F47FC2332562DFA022DC2ECECEC5E0E0E0E5E47395C19114BFA0B7650F272BBA723970000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (48,1,'IP_PBX_symbol_(48)',0x89504E470D0A1A0A0000000D49484452000000300000002C080600000023163B670000000473424954080808087C0864880000000970485973000005310000053101B7ED28520000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000010684944415468DEC5590B7094D7753EFF735FD2EE4AAB5DAD160909014620102298C405DB404DA64E87627742D43A8C3DF1389D90BA6DDA4EE271625AC3C4F6D4782693C1539AF4154FDB090C9E34894DEA87EC20E300018C400224210492D06BB50FED4ABBDAE7FFE877EFAE40484A82DD84FECCE1FE7BFFD5FDCFB9E73BE77CE7AE609A26B14B100411830499193FCE65CC12DD9C59F42E5C027B1794670A5B21251047F15EBC93BF2F2AAD41D290042405C9635DE3AE185054D4E6282BABF7FA6B9F92442A5324C9A6AA8AA45A54B2A88AA0CA2A29AA42AAAA4264629F658C8AA2988AA49856AB9A2F29294D62B1CB2F7E7BDF61AC1783E4EE8627E4A2010E4952D7782B7D5FB3436987DD4A568B95EC186D361BD92C16B2DA2C64B3E2DECA9EC130888A795581618A851B97CA64BAB0565BD11BCC2BFADD32C026935ED1B8B48E363DB8992B67519992163EAAAA7A6B8E7D9EF39C492E97A5A3478FBAB0563964A4E85DBA1B06B017013992DDED72221EEE0C7773AF92D2529204C1825BCB9DC44FCBBE7DAA334ACD592D1BD0F2BA2F97CFFBB45CCE99D3F213F9BC16363523249A7A5FEBD1FFE8FE4D06142E1126C8858F1F9E0FD3A5AB213CD4A00944D0909674480EF73A9F93980885672FBFF4222DAE5DCCBD54B46FC16DD8B7EFBBEE9C243F63B55AB679A7D5C69C98B74BC81F8660600745322589649654F0CF944DF25694D3DF7EEBE5C9EB0343AD9245FD71539DEBF0F3CF3F6F2C6880288ADAC85890B46C9A9CB2445B5730E8580AF886620858B2286C4EC13D46850731C9F8EE95CB1DD477A58B34CDCCFC2AA7BDF09D1FECD6ADF66F072ADC9EA575D5E47295D0E08D510A86A2149988D168304CBA8ECD01043EB7ED017AF0F73E45FECA0A7AF55F0EB922F1A99D9224ED1C8ED1B35FFDC60B7FF54FAFEC699B678080BF2C73B9A876D93D506E06E345CC33852D4A11EF306026068A06B1E7792D4FE7DB3B16AC1FDFFDB71F3D62B3DB0E2A9A42F1448A4E9FEFA252878DB66C5A4FEB9B57523EAFD34FDF6AC306E8F48547B6F135DF7CF73845A393343A1EA6B23237DB6078495A234AE24FF6BCF8BDC6179EDB3D729B01B228CA6E6729395DEE42D07ECC206673E7CE7EA42E64403A99D853EEF140418DEFB20E45D9D87AFC2CF764D3CA65B46E4D0375765FA313673AA9DCED246749097FAF6618A41B260C00B0046684E832057A0ECBFEF9ED1092445394A4FF530C18B470DA3F71E2847DD7AE2F92C694D70D3230BA9D25D4DCB89416F9BD349948527B672FD2B69DF25076E3A7D7920C5DD8A6F55CEDA7FEE1208522711E1B0662647070283B0F429220EAE9548A82C383B4CC235363951BC5AB98E7D5A2201E2C1685CF2945612F8A85C7293C3E4AA9E974761EF851E5EB576F4A1D3A748876ECD8411515153CD3DDBB661919D8DDAB0323340CFC472693E40654D81EB4FEA21DCF4C18E9A09A2A1FDDF7A9D574B1A79F0687C768E0DA20259289DC0259884C0B76006B222BB07504161724494C901D2499072C5398652B36C7528D6EE85C1136E60DDD98A33CFB4AB9A16BCEAEAE6EEAE9B9420F3FFC07D4D4D4441D579018B00E539404853CE5E53453B8CDA227D98EF70D06E9747B178D21C104C7C7112F1A6A4E46656BB34A3F0B4282CCF018585CFB8963A0A7A7D73AC701ECF332182049B2C203B1AFEF1A37786A6A8A962CA923B7BB8C1741AD181BD96C9652E9344D4FA768727212DF4B503A9DA14C068267F95C9EE2B1B050DCFCFC2D0358192ADE775E8D51FFD01402C6E022B311B95A11CDC29C60620E3121B2D1A4A7BFFA15AA0A545156CB2F94FF8D442C74A6DC5F5B2FCB2CF5CA45F8C97C63A462DCE5A0583A95A61460CC0C48E13E93C9F2CCC482BFB0F339CAA433B99E8B677EC81D757B10030546214BD4FA6D54E5B115895BE16516552445920B738AC4DDCF6B822C120A138543E394989ACECF519ED5856BB1F0D0613043873550BB0D5EB0F194C8A0086170E1D0310BE36C619E2AC0D3E07A4D27A7C6AEF776BDD4DF7BB97B8667CDF2806CB8DC5E8A47425C413B9452C10C2C8C7942714554B0E37912759190B629A79B9430B13B80FDC0401FDCAB512A97BDCD00865140758211BCC848DF95647C6C834D1577BADDA56BEAEA96D4F0F71774E7DB6916D16FDEFC0F8C50CBA52622E3DDA1E0C8FBA73FF89FEF034A41B631334CF7A601A6A0CBE9E90455562FFE44644E86975E7EE515CB02FD86D9D2D292BC866B707070E4A313AD6F434A7E565555BDE391967B7D95557EC4874710C532640D3599989A9A8CC7A3C944221C8D467A4FB6BD752A9D4E278BDECC62397D412A219892A8EB1A4F71A1890C4DA7A6011D91434441F651D93D5CCEE654968D30CF3CA582066ED8702FB92C2E32348D031AF95CD8BE7DBBB27FFF7E1B5C6F6D6E6E16D7AD5B67003A39ECE0E4B163C762030303636FFCE887E7011181492C16138BCD9139BBBB634EF875CDD12C0FC0054AE1636C2A4763111820B20A4D8560856AD09707AD2CB1E015F81CFBBC766D5311A3291D5E11972F5F5E5A5F5FEFF2F87C9F2971BA1E4276756A79CDC864D2DDA1B1D01B5BB76E651896919BDCB2AE67F037694806998941D0006163D0A33B69888422FD5DD4B06AF5E79F7AEACBFB13B1280B680E09499489556746B004ECF42D8E0CAC1AEC7F0419C32F533E95A1BEA1D1E1936DEF3FF3C4134FA8F76FD9FAAC2C290DD97C8E72D91C65914162F1498AC662E8E2A47F9D4AA6831953FA3BAC9483F541C3D02F9886F18E4AE9636EBB3D78A706CD3260E517767DF1F17FF0D7D47EA218486752F4AD3D7BC35645FEAFC71E7FFC2B80859D2B5E34200AC6190C8779764131ECCA92BA3C63E8CA492D4BD5D81A3F3644C26EF08CA3E5537A3ED70BAFBE53220B876CB231E4743AD3A74E9DCA1D3972E4B618908A307256782A9A1A1B573FE42A2B63D4B4601B467E58C147A1D8EC08B79A9EE20D4BA92CC777749C3777B6B4DC8B7B07276D4C50A1AF0F0C522416E3399DAD6375383DD814F97D2D4D27F269BA92495227E01E0446332CBE909F9D169BDF66B1DD6F88EAEE649EFE726C22F1A86CB19917CEFEB27DCB962DE6FC1830056386CC9DBE18A1EEBE4881B84118692B103B56BC66889CCE899C8CA2F6F77BBE49169B95B6FFD10E3B7A689115A5992B3A31012216A1CE4B3D54E5AFA466D008C56A1347B219FA652E4D16C4920832674E44691C056EC262A35ED07A2B58B107F5A21250AEB7B9ECF040F3E8D0C0D7B1E4BF6313F20BA451131D9D46D7BA2F52397669F30AB9586C54C4810534A0C07D403930163CC2A28015A59F1D7D03BDF41672BB5C22C3FACC15075DE81F1CE27C67EB831BC9EFF392A8DA7971F2203BECA22AEA07F4AE830366517744D00613F40198A33C8CCE2D5B4EE3D8D366AB8D14D41D43CF094EA75F82EEF9791E30749880A0F454060A659E5560B5C03C2589B151A9400150D424C650E5422545F0910B7CC65D56CE4BFDCCC5B8CCE0D030394010EB16D790CF5B412BEF598EC647A348344EAE589C2AB08E29949310584CE3F0C8206414328462CAB891C36AA54ABCDB8335A2889F6C26537BF8E8BBEF20B8FF10AF48B1F6F29601A4B18C49EE72CF1D91396618F302522395963A6F539E29797D7090CA114FBE0A0F7A5B0F793CE554B328C09FBBD038352C5F42CED2521A1D1BA789788CBC912855466364A09191B18913E8F08258DB81F82BC1665E0165471290AAFCFE07FAC727625A5E3FBE6FDFBECFDE32C0106FE6A83B69681490B9C58B2AE81B5FFF9B3989CDA48BA0CE55BE4A0A04FCE4432716044F3AFE8B93D4E9765355A58F1028B4AAE11ECC87D1F77A29505549033786E8F71FD8449380D199F60B940925A90971800ACD21373935894C97A335AB16533299945DA5A51B1882E499CA07F53331E0CF3A7C8396A2A169F0BB39940A7D80CCEB021B3974C40209BBEFBE8D64859766E3FEEAF501B4846E6A5ABD92EFFC3894BC3E30C4EB45703CC461C5BCF5CEB136342B01AAABADE1BD4099DB5560A548BB9FDDF200EFBCBA7B7AA9F75A3F32589CFAB1C6C6CF6CE09CD9867543A1F0F7CBED6E9A31202B48725C47C00E87E3F8E3220BD4F59B743697CF732ECE9405BFA7AFEDFE32B0EFBE1DF7A0C223A363F4A5C7FE849C804908B0E8B8D435EF2C29E0F7D3189A9391E0185DECEE41BC4CB30440CB972EA106C4492960C4D6695CB982CB37F7BEC8BDE483A1ECFDE1896864E922EF772E5CB8A0CB45CE9112241A8884C39D9A96B7035F0A941450540466449E37E17962594A3734C161B3CB5EAFCFCF169BAD5827A073CFB2A55CF924943A77A1735EE967CA4D44C3804386152C9A4A24A871C57278E906FDFCF8097AEBBD637CF396C0336B56ADE49B77AEE3123DBAFD61547F83725ACECCA6534FDB2A3DF1D75F7FDDB869405F4F4F27E4F3C5A3415BB1C8CD6D5004F4B4F603FF78F00504A9FFBDB6E3E8A8DC1400AE4B4B4B78406EDEB4917BEB7CE745EE419A73D4158FC72982DA505DE5E7DFAFF47AE18D1025A65337BFCA94BED47D85DA3B2E72486DBE7F1360E9A238207EE3C6D0C9451E571B321163A6A6582C08EC20760A320C6144AB03D20E39375B5C2ED7B9C6C6C65E8BD55E3E88A0F3793DE487B4C290AE2BBDB4F391ED545BBD082FEF4176CACD3B8A6447973A946B6C5841938969121153532862C15064FE4E15ADAE0E0468DDDA46B2A150DE181ECDBB9DF6A7A3D1E8E4DEBD7B4D9A39C3340B17A3ADAC514840E20B09BB6A6A6A265BDF3ABAA7D46E39954C4CA75BDB3EE499C38E17B093EBBE8101C2FC3CDCB3D49900AC2CF84E0F8C65F0F321B582FD70E5163A9054903EFF78FBE7C88D341D413C05C7460E68A9D4D08103076E1EDDDFC98F18B34F1918D79F44D09D3EF5E1F1FD17CE9E7CCE26EA3FA8AF090CB7FEFC03E34F9FDC4DA7CEB4F3467C2E6D1C0B0641B7A791715C88111779915EA3C82EA220DDAEB750B484B1814D9F4660D75312C9A1BDA373C86D53BF87772766FAE1998EE9E39E680B4F3EF9A405C694E26F3D08B86A607D09E66B3CFEC0B6356B9BEF9B9C9C12D849829555525F05DF49B6E3BC2967270B88914431AF33FEC5E6B345613C8A7D66C1FEEC5FFF058F87C33FFE893E3A78FD5145148FBFFAEAAB89D9B45AA48F7F99AFBDF65AB6B6B6368A0A7D0DEDDE5918D00A83DE8E8C8DFCF3F1D6775FD2B3E9B380C574186E3F7DB69DDEFBE043EABB769DB2A0D58C3BB14B653F96D86DB7B293CDC2EB0BE737A8355FDAD5423E187FF2EC4734323CF29FC808E783C1E0F4DC9E40F82DFC0A24A0C392BC5EAF15DCA80286D4C22BF5CC236090F5BEEADA07A712A99AD150486647251A6A08AB03ECC0B60406B0B76718992B7A888DCD6B56A1CEFC199D3A7B8EFEFBA747C752B1D0C3D8A85EB671BF0B036E9EC2AD5FBF5E6E6868B04111378CF061B7EBB07E1DC6CA725F551348C9FA1B23A3E5E1C884C0CE7E380480F512470978130C2AB15325A8C5DAD58D30A291DE7EBFCD18EAEB790C1D5CEBC18307E3B3B1FF5B3760F69A2D2D2D0C276A369B7582107AF08E6A7C5E8231003BCB48B5AFCB6AFAD25426578E0C6661456F468F8736DF6F0E8F8C71BDEA1655BD9E98187FA6AEAE6E18CC535BF065BFAB1F12994790AB85CB972F033A29B06ABB1BB152096F043056E17105DEEDC467BBC55A5299D6B51A18E4733A1C31514B1F136D8E2A21977925914874BFF9E69BE95FD5E00B77E937691E27087A0B8AA11DF06219CC0D23BC3006FD93E082216CCEC0FD38EEA7318690C57AEAEBEB63737F56FAFF30E0A657D8FB18C41C0E8782BA684570DA70CF4E9B55763E04C6CBAA202BE3B970383C7DECD831EDD7AE79370D58C81834250C66BC96416101D9CC3C72E4C8CC8EFF46E5FE1782657CFAC9003A450000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (49,1,'IP_PBX_symbol_(64)',0x89504E470D0A1A0A0000000D49484452000000400000003B0806000000CB8C8CDC0000000473424954080808087C0864880000000970485973000006EC000006EC011E7538350000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000019464944415468DECD5B097024E5757EDDD3734A33A39146A391B492562BED7DC272AD01E3050C9823366BB38E53603B95041C274EAAEC4AC510279838762584025CB888B1E3007612DBAC83C1E0D806BC2CD7B2F78156D2DEBA6774CD68EEB38F7CEFEF1EAD562BED017665BBF6AF3EA6D5FDBFEFBDF7BDE3EF550CC3A0CA264992CC3B8CCA5EA20FB619D6D0798F4DA78B6C532CC12BC2DA311CD6DEFE01809829B88A51E281D7F0B16ECC44FD6200C0129405AEC2A8C1F059C73341B850002AC2E730921809EBB888A15D340058666F63816BEA1B57D6861BFFCC26C93E45B1B9EC8ACD8E4DB22B187685704C0EC5DC2BBC7728E25C511CA4F0EF8A4C8A4D11BFE15CC77DAADBE92E787DD5E90307F6FFE4991FFC60070383775E3456A0CC307DAFE2B02F0FD4D6DFED80204E879D5C0E27399D0E7261389C38E67387839C2EFBF4B103BF3919181C0B8030182C4561906C00C54E35757534361A3D8E77F4601430CA170B081500785F65E85AAD07C25DB1761555575741BBA66685B6ED42ABB80601155340B6003EB69B1A17C22A9573086FC39E1F3E3995A04C2EC7AEE5C598B2DC4ABF982C805DC08159793A5A17D092E52B8536ED965015F3AF9C57B43CF73DA75FE37B0F751D24ADACBAF10EA7F52EE96222C10ACBDB6459566CD2FBB5CAF965D2CA25FC6A2833DE57F983F37AD97D5FFEC6EAB25A5AAA968CA0AA95EB34550D9631545573A8652D5636CA311D7B4DD362924DEAAB77E5773DF7DC73A50B890222F64B924D66D3AE6CDFFE712F9DE89F84B19649328A18651CF35E25492F896BA4ABB067EC0D9C8BFBCC7D736390B66E7D4D3CC76E779024CB74BE21F56F1EFA6E88D4CC6D4555BF4155CB378029C2C26B647EAFC4715B3C4F927592158914CD46BA5D82CB99C695D45DF93BEFF9AB5D9AAEBF02927EF967CF3EFEDEB90010A14B5664235B2851A95814A6FCD79F597E7E2EC0FB39EE13DA57552A95554697CEA5F1279E78C2399653BE521770FFFD65EB2E7529361B0D0C45E864FF308D4EC4F00C993459231BAE2BBA469A66275DD729545F4BED2D4DD4140E51536388C20D41F7F77FF8B3EB862363D7D964DB3FDDF3E70F6C511CB6AF3DFDED6F1C3B1B00A4005566A6ADBFFA25484DB2C88FC90EAC6F09A87008B4F17566784400A7497C26E9D9C46F782934633313084C7ACD65579DD3141FFEB7FFBA4AD57D3F72DAB5CE7CA14CBBF777534B53032DE968A59B365E45A3E3314A245214C3F8ED1B3B21BC8E8C4A276F9587AEB9721D7DE2F61B48C7B56C2E4FEFEC3A4053893488BC9A4193649BBC19EEBDE94B5FFD972F3FF1CF7FFBC4BC00E026F2B85CB4E1D6DBA8AAAA6A5ECD5E0809DAA0F943070F9E55F8C79F79A1C66977BCA848B690AA690093B5ABD1C9C1284546272054915A9A1B28581BA0F5BE6AAAF2B8E9D56D3BA9BDB591EEB9EB76CCD54D6FBCB397DEDEB98F12C9AC90C3EBF572860B379184E530BF613CF277DFFAEEEBDF7CE00B87E60600F757BB9D88E9CEDF1951732874C04AF4B384FC743CB629848D85662D6ABA09009B376B7AF7C1C3B4737F8F380F067C140CD6507D304013F1143DF3D397C8E3765132951116E9F7C9A46AA2F43001C06040ACBD0316F9187EFCE89C009849E1A9F07CB82F41D93CFB9C4476FC04D7E350013307E1002D28187BF31ADFA3E01AF3101FFBAA3D74CB2DB788E7944B2531F9F9B69D3B77D67F7AF36621B809802EEEE763DED705BCE21D6B57760A97602BD973A007A6DE452EB79B3E7DE74DE4F756999C83BFF9C56FDEA4E37DC310489E0182B9CF65F30BCFEA0276877BFA7C703407946152928EE00DC665D615C706F60086CFC9BC26237CDA24F3DC86DFEA6AFDD30038E0569A363F00BDBDBDE36FBDF516DD78E30DC252F40A0018F5013C67E3E564D66B44432363F436044F65F354051F478D49AFBEB19B2E5BB78C72B982708B3B6FFD08C5A69274A26F84FA86A39448E50480F9429EC627637DF30360B319083B3478FC884076451844B7C009E29305F9D9997D1533B961D2E31A80C9D024413303648666B4651061D7FE3D3C3F41486CD273660F30BB852B3638B66EDD4A7D7D2769D3A64DD4DCDC2C84B7C1BC365CB60299649252A92C25D359210C1896BC10DEE0A0827FC5B24E6FEFEE16CF7BAFB78F42709105E120B52D08533A5F4414D2697068842223115275DD383B097A7D08F505316116C610BE0413C73815151C5696875AC0C105924DA4C632FB8321910676D6549D5443A3329EE3C26475559B4B780EDCD5A54236ECAEF201807E7AF4D1C7E8FAEB37D2FAF5EBA91559E9CE8327B89170DAF07A4F092FA499C52F99820AF78D523A93A1C9C9189DEC1BA07C3E2F6482826D0C7AA53771060098392DEC5C72D6F87EA1A9F0AE9DEF52D9D0E64A1DB9F7D05C2EE6DB18005316830E1DEAA6783C4E4D4D4DB464C91200D122589D1562BA062BC5945BD7592833D728816B8A8502848ED3E8D8385C2287EB657010062C5B83128AC542A5DF513C93040DA84FD7CE99DA5E682ACCFE875A60AE9F7832C17229679B6115D32EC502E7F33998BF19D3191C16B25084A048D68A85A2D8178AE6BE58B96E1D3359AA782F0BCF20305099749A7B122EBCA7C4D5E8191620CD90E39577231F88041F78E07EF11C1D13D1F43939802F165253633D35C105499B62F7B3D0ECFBCC21E6B19564B13B56DC0056C08313215D9C1BC22A6692A71945389CAA42F0320F904164E8E40B331B32A70180971876A76BFABC35ECA13ABFF37D87C1CA56C6E4CA656DAEAE11F7068675553D383E7CF4C9BAC645773B1CFE1649242E66FC36C3974864208826CCDEB0DCDE1CC6196326189AC825342AE473C9C1BE234F1CDCB5F517FCDE4A2F42993D2BB7CB43277ADE331B1C90B89E094EA4BF56AA2B73049005E1899497AD0602E3CA74A8E254229F4ED20B5B7E2AFC2E5DD2E78B027C11D516EDCFA5A762B9F4DEF742CD1DB786EA837F00A1FD660C3F0586D961B324AFB41D5968EB781A04EB98AD03E1579D880EFD72EF3BAF3D96484C1EB6FA11DABC51006648BE40C00440B19A1C76B3B353C9F52BE1EE94B95A9AE2BD64BA9164ED391AE40687E70480B50021CB1608198CE8F8C889A3B1D1FE9F2C5EBEF6F2E5ABD65DEEB0DB56841B1ADAAC26CA796D857C766C6C34F25E746468FB9183BB7F3B3111EDB3042FCC6ECA9E6101F96C9AEA1B5B7EA70D11C7DB6FD10B67922037A3256B2EFAD7BFFEF5FCB66DDB8A478F1E8D47A3D181C387F61DC4F8EF9FFF84BC4D2D2DC16BAEBEA1ADA6B6AECE53551D70B89D0187DDE58776E54C369D48261353E9643A9E4CC426A391487F6FD7EE01AB019BB784E6DE8036570BEE34000CC99054B5F43EB3FEF9A3007C5C9051E5C6C58B174BEBD6ADB385C361E5B1C71E9353A994E8CC7FFCE31F3770AC777777A72726269200446A6C6CB4E73319E5D7FFFBFC6EF8B42D93C9C833ACA1D27DD62DB3D62C3F2957D6222A96763EFD00F662CBD7CCEDDF5F38867A1C9663A09EE7468784BD687A98AD7ED092687EC8DC28C13BF95C168D12951AC375B465CB73D62C25842495439BE4F7FB6D4B972EF5B4B7B73B3DD820901B5663838B48485634B85571E5CA956954A369E40025E4022AEE9110D381A35A74B95C1A2CC400407A7D7DBDB162C50AE3A1871EA2F311F69C00B045DA91B7570A973FBCB91D3EDD31DDE4B45B199FC8FC9817B83F60ABEC95E9B498F7286FA7139BE14854D40298BCB26AD52AEFB265CBEA5ADBDB5787C38DB7389CEE0D70CA5A082773A8524B2514769913D954E6D9850B17BE8CB8EF74F90257B9FCB586A2957AF1FC3C728202402A0218EE2E6B4F3DF594F6DA6BAFE9CF3DF79C5E59E7395F20CEE0802A4F351DEBDE8F584E665ECF2CCC610F59AB2459EDA8E98E9E611132D896995763E6D5441812E930421F676292879318B2B5B6B6FA60FE9E6B3E7CDDE702B5C14FC22A6CE5B219A3197411EA34DD9F4A675B11E9373AAB7CFF5AD252DBCBB6AA9F0240C5B03939AEA5A081A182AEEF579CFE5731C5DDB0882C00293CFCF0C3455851F9DE7BEFD56015DA830F3E689C0B8CD300D00583E6A975D132F254B9CD02489099CD8A06160956DAE076F337C566B6CACDD459B15AE9E66F5C03FCE0D91FB28538A1F9B6CFDCFDD92FC2F29795E7C80C39CB1B9B9810098EC949D2B59227F069A7414A16D732BA26D71A520DC0C2305683D53E3BA56906F82503EEEAA75CFE15AF53FB515B5BDB38949703BF94601DEAE6CD9B2BD6717612C49B3961207F6DD014FE034601D36D145ABD7C196D7F7787F7BE2FFEC5977C7EDF62750EE1E353091A1B1FA799A9A82E298D4E97A39515F86221495D4691FCB0C8363CB30516D9ACCB1420BB844CD06B18EED50C4A49D7BE12C9E653E552A64BD2B4E7839EEC165847121691834568B3415066C565492D9F8A0291893CB2AF2CB4275BE52F677B3691084D5FE32C91CB64712E0B4EE0FBDCE092B56BD788BC9CF3F93FFEFCE7D73734841B382F3F236EA380619EE05C228B02C687C2C780A01E8FAF0DAE40C74A793AA49520AA245CEA787C9406C38D6281C1035F6CC63CC2386BC0A835ECE4723A7DB092ABC12D57E74BE5472633A9D16C31BF19206C67B7388B0B208FB79F6A8BBF73708C22A329BC02793F86C4AC8FC17581B82659E7F07B49C6304EDD170A06E891471E16D559436313D5B3F073689E013A72FC042592097A67C75EEA5CD4466B57ADA0604393153D747A31312684E77526399D2299BB46FBF691BDA999D7D868A054A4C9D685D4CBD515CEEBC1252128A44372F0129FA4D8E5C6C2607C0D186EC7EC15A959D520AC4993683C32446E4F155DBFC645CA25D596F6152B1DB696BE84A6CD6CB052B929D3C7B220475E1152100D9A9A5B682ECD73C5D67BF4384ADF043951837CE2B69BC9ED765143B889BB33A2C8992C176939E6E228E4690AA1D44867487143EF357EE48F13A4A1225490B51A8E512AC426C9B56419A5617DE00F5ACDD7F18CF87894794B37D73E44F265CC6B01768F870AC8E3CBBC9A33A3A72689DFA5E9E603171964E8D38C6F565F66A5A66A6571DB8205CDF4A94D9BAC26E5E95B19A6DC7DE4286AF63C05EB6AA9C6EFC3F0536D6D0DE58B6594B865529C0A3539ECF42700809F3FC5E65FDF088D176810641D1F191235888C28220128A5AA5AB4C9D835DAED4E7263703D50840B82A71D6EB7DB0932D4662649A703C0454C26452D0BDBA7577B2F84042B753CCC88B2992CACC863BE651600AC80DE63C7C562494328487E4B780661CDCAE5A2DD9587EBC4E25314898CD1E4D41425A1792FF0DF5017A4ABB81102D0134D2D3488FB2200245A2C50115666E77509060056E2C2BC78618679AAABF7E4B7F71CE87DF0F6EBAE5AFAD65B6FA5EBEAEACAE0035D39CD03908DE96A894E7D2973815F454030AEBD3992704F91C1E0183F7B3B76B24F80E7F779A735CFC4D7DC1816C29B55A94B34333A3ADAE88AC03A2B524C214C4ED2E8D8845871B6833FD6FA7C74A91C109A4E70188525C4B16FA9F20AF3EF8B0C8BC5923400BCF49235B57DA353E3B877321689DF8B47BE78DAD218CCCC504FE5ECB4A36B02C817CDA448D6ADDA1F4159E2CAD130CFB911C2D764F31A3744AEB8FC12BA6CFD7A61E6B3B748748C32D90CB580C02A5AE71E5FCF91E348BB87291CAA174030A7B00EEA5099F2368EFC005AA35A9C2FEDEC8475C4C5DF1EE8EA86768F503295A546FC5DBD3F60364A744ED2749A9818A73E54A3F5C12079A0947C2E2FD965A5DE90E8D62D5BB6BCA4CC888BE6474C92ED7D7D0B65362774F87D235D79E515A20F307B4BA65274F4C4095AB76205D5435053FB3EEA397C0CDA8D0B8D732F6FF7BE03C2021BC321E1063CF1CE45EDA2F1C2DB542201AE0888738FC74D77DFB5494493EDBBF65057CF1172810B5AC13FCC5DB1581CA1B344D76CB89285270396551BA8A16864E8373D3D3D9232230954B94F964A23E6EEDF23BEFEA8868ABD6E59BC4812E9B07CAA412155EA7F49688AAF23D7A73B6EBFF5546364967B1CECEEA1259D1DD4D9B968DAF47B8F1CA3C19191334912FE7CA2AF9F0E234AF07115F8A4BDAD953ADA175253B841CC8901E56788CE34C6A56B57D3B2259D82A3DED9B19B4E40F383C323B46EF52A91BD1A2E27555579604D93073A5B9ADFECECEC342A16C0765F402E9E9121B8A827352E0275D175355B4B9A2868CCD6B22ADA5365ABCCE58623AFC17DEB1FEE87463C7386BC93FD83C227AF8175B0F09CF747A2A30883C74E15D3B3705B0C61A3E313BC982142E62E58C6F69DBBC53C9A1A1BE00A1DB47CE9121191784E51580F93286F77DC7A13FDE95F7E85FC5E9F008D7FE70E1612222DE0727C211E8FE7EEBAEB2EBD0200CF388D583C59823095969261F5D62A4B55DC6565D3562B8DC6B2B967506EBBE9065ABC68D1DC1D1A30F561087AC99AD5C2FC784B2453B4BFAB7BDE4E025BD181AE1E911AF362A85ACC8B8556C432419E27FA07E8E8F193F4FCCBBF1279C952689E53EE50B08EC20D21FAFE33FF89EC324237DF78BD702156529E8A343ED0FFECC270DD40243259121DE8191690E91F1ED859D6F5CF150B792E4FAB0C4D7720C6DBCC10A95365CF8762CF79832CDB4062DE60EDA736FDF8F9171B5B1734410B2BC4A42A5B574FAFB096C51DED162045DAFB5ED7ACF5C2D36108F8AA4561C6094D08A1F2388465A697310606074DE2B2FE2487FB76EDDD4FDB61F66C7D4C9C9C5AB375841BEA452864258D4422F18EE6D023C96432CD4512C6B40B3063E563D1E8084642A4D8E6F73CCAD97A710865722010707FF29E7B3662928D2558473718F9A55FBF4A353E3F31182D20A37EB03B4FAAA5B94958D141689E174C254BD367681FEE31119B12AD7119E165DFDE7DE4F5D788BF87722895C910E2F50CE8A4D3E01B85DBB0AF6FB87C3D78C94905BC2B09772BE5D3F7DBEA7C93D5D5D545AB4C26C56A4CD28C8F1A79C52465097ED6840099950DF57D4D28D4503E3980789BCD911B65F49DB77F4C98E7FFFCE265BAE64357D14A68E28E8FDD24843D8CEC2F8382479AE7B1A1FA200D0F0F8B94BB09A18BCDB8AE3E24343B303824B42DDBCE1EA99898375EFB21F12C2E9E261009FAFA07F62CA80BBC3E31319179F4D147B54A51A4CCE8CED2ACFEDA39BFE7E1F6566363A3ABA7A7ABFBEA6BAFDBE1743A2E191818729E3CD92F267AC7C73E0AD6EFA49B365E2748AF7F604894BD67DB380C6A86B9EEB0FFC07E72B83C14006FD4FABDC4206B86715A7E311779B62F6CA375AB560962E68CF2F8C93ED5EFB0DF8FC42C06704B334B6265668B7AC60FE7F50DDFE6CD9B6D70810CFC6B64EB6BAF7C079716B62C5CB8BAADB9E9C3FDC323E137B7EF927EFDDA367AE2A9FFA0CFFFD1663077D834D73960E575868E056D485A8604E9F2E73A2194BC4CB4BCACBDAFBF5F1468A74892E6B422B7CB4DB7DCB851A4D74CBEC7FAFA687C74F4E9C65AEF89582C96B51A23F3B7C42E64432625DAD9030303C340173CA74E0CF6F50D63EC85458596B5775C174F67562239F16C7DF36D1105D8AFF9EB0EA7D33943739220448E0AE20B55D415D168945C10980B2573ADAF2C34AFCDFBA18559B47DE8CACB69F992C5223A1D021F9D387E72241CA8FE3ECEA7464747D5B33644DE47EE2F42E87DF7DD97E066252C61129318C4B57A1C8787FA8E0F42B0FA156D4D1D8BDA5A6EC624EA8AA51C4DC610D751C3FB91C7B39F7201235C0AF500FB7A115A67D2E3C83139394993F118F28BEAD3486FAE2D8CCCF1968F7E447C32731C16D37BE4A8AE15D25FB5F9FD51AFD79B7BFCF1C7F5733645DF0F0EDFFBDEF75458821689448AD05C0A6E31C16E0130EA004038934E460FEC7AB77FE5EA751B02F5F597144BA51A36ED1130731F1224CE2B385AD423D73FCDC6CD900073AE11AE5029CB4375A80F0C8D0623E3D356C499EB276EBD9916C06DA69249DAB5E7004D8C8D6DF1389D0732994C02099A7ACE85910F680986D56BE02664311C0E67607231849CD17C3E1FC5EF13DD5D0726F1FB0E77555568D1E2A51B9C0E4FC7682EEFE4E5EE433D8761152572395C0473219FCF3B6F8E104F2431A6C4172A95A469CDEA95F4916BAF16FD8AD7DFDE0E70236336ADF0A461738C21E72F3CF9E49306989F7E2F00CC0282B8E9C05F8323D554018248B11131E2B086086E0967D3E9F0A1FD7B87708C10DAB828545B77452C910C65733939968D53E4DD51E1F7FCB0054D8DA81043E27BC0CAC60D1637EA7DB3C526214AF869D3EDB788E4EBDDDD7BE9645FBF9E8A8F7F0D370CE339E9D75F7F5D9BEF23CDDF29007380310D84C3E1C8974AA5290B845A2649E689B1B1C8288D450EA3FCF52D6868BEB4A06ACB0746225E2631B688AEEE5E9138552245804BE81A3FD2E32A14408AB098A58B3B4555C821F48D77DEA5C9F1F1972455DD8B5C22363535553EDB17AABF37006603C1A115AE51863FE6903BC400461442326106014A0373C5D8C8C038BB48C8EB09866A7CEBC6E2536DE313314FB1A49B490A34CFE5318FCA76C56597D07BA8197EF6F397A813A976B0B6269E8E8D7D075617E5B5018E5417B432F4FBC4A2E21A20CC3208B3809C3C098E1887250C43F03A4C38C440E4D2E920E6DEEF578C6A5F38E0811FB7A396EBC8E4F2C1442AE5C9E78BB26129D5E0C56EAD3CE2ABAE6E98988C2960FD7F84D973F4493EFDF4D322DFBF58009897309B9A9AD24C98DC30C2F51A5C0F00140E09B55C17495A690439FBFE5A97ECAA75F999F99C6583EA74C916CCA412E5925EDAE391E582AEEA83C54C691F809C0000A54ABE7F5101301F615A5691EBEFEF4F8030A300C0835BBC10C407730EE01E3F1FE39A07C72E4592EC865E2EDB543DA1EA7A0ED78AB82F827B86F1B75936FDF35920FD7F03E01C56510806836910185B85239BCDA2EE727B20980BDA754150171F730B0F2389AA34ABF2DA79B19845869902A8E5F3FDCF18170500F35905473C584671DBB66D59FC64035F88FFE1869458E1FFCE26BEB37338102C4A65FE7E607C7C5CDFB3678F7ABEC25F7400CC05061F02844A24113EFDD0430F49DDDDDD2232A01C372ACBE033BE1A39EFEDFF002B9CCFBC01A03F340000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (50,1,'IP_PBX_symbol_(96)',0x89504E470D0A1A0A0000000D4948445200000060000000590806000000C1ED215D0000000473424954080808087C086488000000097048597300000A6100000A6101FCCC4A250000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00002C514944415478DAED7D09905D6775E6B9CBDBB77EBD77AB776DAD6EED12B264495E458C31D8310187CC0C2140C114542826AE09613C1E84A6B214496A3209C34C30788050A13CF60CC1408C318C2D5B966DC9B2F66EF5A6DED4FBF2BAFBEDCB5DE69CFFFEF7BEFB5E77AB9F6CD910D55CD5AFFFDEFBDEBBCB39FF39E73BCBFFB7A0EB3A146F026ED49987ABF4377BD357E8757DA507BC8536C1FE7E36C253136DCD7EFEDD60826E23BCC61B1DABB73A2318035620BC844DC6E6E0BDB40A236EE6C83789AE14359537ED5664826C6706273411DD89CD83CDCD9B937FD794889B2105C52AC72474165B065B8A373ACE1133709CDC724C906DA35FE44426C2FBB10579A37D6F11136E961AB23341E1C44E638B635BC216C516B37FF75663825C34FA5DD87CD50D6D07C3D5B57F244B925392455996645976C8A24312F0C00192240B4E878CBD040E3C76C812480EEC25B317017FC19B04F87B90B077F05EC6CFF1922089121DEBB228D2B5743CA7E17D1497C39573381CB9AB03FDFFE7F1C7BEF294CD1E68B7A20AB28F7E523701C921377B7CDE3D4E222636B32FDC970BCED331EB65997F8F88CFCFF37326538861D41303CD5E22A6204344EC45019B28C0D4F4E4252E8559DE549BADB82519E0622A47D7FC345AD948C54F901620F1260A3A7E59B759640D2D39359DF7D8340D2F8174624D055DC56FE14534D476BA4014D41925F18851D3F80D5E55544152451048BA641728B91CA9C3005749491B10805B5505919EF72229BC3292E8AE03FBA1B1A985A90D365AA5957B43ADF07D5B9365735FB67D2E5AE7D939D1FE3DE35C24320FE72F5D04455149227D45F6E79662805884F90D2688E02E0BF9A1A1B9C5D0D58C8046CF8ED768F2759BA3B03996B7BAFA75E073B920938CBBB9543A8A60F02DC58062182A0B34A625E9DD713C841BFA9EE98348B722F18BFD00CBF395444190855FAFB40B787F6482F06E38808F1C3BE62C9B170FE440D9A42B4AA5AAE995AAAA552A9A5A05D8AB9A5AA9A86A85A668695557E635559F57356D5E55D4790D9479558579B487A34ED9F9F20BCF3E3971B3185010921065B1E0DC42340B5FFFFE2534982A52014D28F62241773A66CD705CF39F2B20EAC6F7E8D8F89CF615EBFBD403FFEC2FBFFE1770F73DF7E44703519F0D829B43FC47BFFAF5CE6C4678BFAEABEF2F57A53B5551F309880074BA87A0B2ABD3DD54C1A20108A2104470502D881ABE0B7E80341134070326CC31C1FEBE8F7CB64794A417F1EB2FB93DF24B3FFAFE7F9B7FC70C100D5C5E70CEE514E1B6AD550C11111212080D998D114C636AC33C479F33BD61FB1E3BC77A7A598D5D8B9D1375A8ABAB2B1C0485CFF0B660E7578EFD5D932E088F239A7BB8B16E5DE5EC5C04A2F1247B3F7D85CBD27309AA81D608C969487809D1197A7E88EA740A4881CE7F43CF565B5509EBEAABDB53E94C7B4FFFD017045DD03FF6078FBE85C0E24F9FFA9F7FF5EC3B6180AEE454884797A02C5CCECE79DD327CF4486B01E2590D05C996C355F43D6939E2B19F33B7742A859A400397D7ABBC1DC21F3BF63DB7EACEFC7BF41C1FABA9087B0E1FD8CDFC1222FCF0B50918C1363C3A09D1581C44BC8F4A239C084D449734466CB64F0447884C7E4C6BD33AA8AFAD86BADA2AA8ABA984B6D646A82C2F8374260B8FFDE9DF810B4183C85487B8177D981F7FF20BFFE9A420097FF2BD6FFCE79337AE8250C1B9FD21B870B10B3C6EC31F9065272214EE54990E95C36896834568C951F8B9857E386364D38396C8E932CE8B92C0449E5E9C3966888EEA1B9B41387FF18689FF177FFBFD07E5A0FE378226B711C167234BF08B175F8786FA2A686B69802D9BDA606BFB0676BFFEA151181C1A039FCF03A8DFE1D5536791F13AF3610CE21B8DB4521D12FF339FF8087B27FBF6DC2F5F41D8BC8474721B6ACB505DE44C1E4446BCFAF92FFFF94F5C0EF8DC7FFDB3C7A64B66001960228A0F6F160CFA9968CA92C318B1ABF904A432E8C646889539613A5A2B72B4543C14343AC75F0E75A9C6BC5E348382C47E470F4D0FAFAA0AC88A42A3E08689FFD7DF7AEA33C8E0EFD0E815558D49113121935390D8E3D07BF51A549405A0A9B10EF6EEEC849D9D9B61CFF62D86178EEFE0F1B8E0E5D7DE3298A0EBCC0E6DDDB21EEE3EF43ED8BCA1C508D9E2358F9F3C03139333D0B8AE0E4E9EBE086E0F129FFE09603181EECBFB07B16F7DF4D8DFDCF55F8EFE51A43409C01F839A83EDB7ED43D175AEAA6E565741D773C4A442476C15B574F2D5572097CB8AA512FF7F7CF7476D4E59FEA626E65589443D6B5CA560CB64734CF52F456378FD1CF87D5E54AF2EB4710EF8C8878F60EF84975F7F8B31E5F06DBBE103F7DECE9E877E7BE2F5B3F0EAE9F3303BB7C8EE79E6420F23B239FAC1CE00531A8CB0CA363C710C7FF2C5D26C8024082E7488888BBFAE8DA442CD29253F80EC747C4050359745705DB3886E3240D78DFDDEC16B706560949D53514A8950743F620209AF1B094ADF3BF9E62538DFD5076DCD0D308E237E7E6189DDCBE3711704848D78B281992D3554D49096FFE6D8B1635F3A7AF4A8B6B60480A14EDE0D3FA054478C5400A9A352B72B577A1FDABAB5D3329E26F1758B19BAC500EA75F61D43D590046CEF580FFB7675204A4A4057CF20F4A1BA9A995F002F127B3DDA8EE6865A0A8D404EC94116018A826A3287FDE8181AF344CA466C8382CB9900412D5B1D22445F020A925844D2BE65B22A9CEB9D035134303AF52C3847C7C82CDA17D839817F077820CF185DA2F9F90ABFA773870E1D82A6A6261B030C2694BAF5F6F4CCEDDEB36B39D14D836A33AC12DEB4B62A0C4B88823A36B6C0CEAD1B99F1A7CD8DCC98289B636AD5EBF58082E375612906F7DDBD7FD93DCF5FEE83A9D90878D0C8311B66E8A0BC2DB031229D4E8BD3998C5EA2238684910B8D603CA9C0933FEE331C2ADE043D67F41A1DF37DEBF31C3F6F9E2BFC5CD07205D7F9CEB7BF55C4008D19EF9219D0DB3B7BFAD4693878E8A0416C3EBA89110643F8C8C7FD7D3B3723126A5B2671DDBDC370AEAB1FE16982A17D8FDBC3707FFFF004545FEA855DDB36433C91647683B69D5B37B13634320E83086B47C7A72199CEB20106B6D14F83626C7CE2C6FC00A148579497B9E05B8F1FB4195C84A662DE089B48226F487938BBC00F102D14C5A2A0B6E828E95DFBA628E4A8095A696A4D10D66F3D243CFFFCF3ECF88E3B0E3320A19B6AC7849478BCAEA67C19F1692375338884CCA29A717B3C86089AAE1AEE9FEBBA0AB3F34B303635073E544BCD0DD5D0DA580F35D5E5D0DABC8E35DA46C7A6D0765C868CA2320948A5D230323A0A49F46D1C9974A90C40CBEE0BC2E8D000EA400FE3E87551500102128DA8A9B52FADD0440BA61928012CF125F59045FD2A22081024492B81F82C9781847650FAE1B9E79E8337DF3C0D0F3FFC11E8E8D8C2A5C050416E04E4FB776F61486871298E2A28C9747E14FB251CF5E9ACC2DE57E794D78DFF2C677C6E31CE060A49E6E0B5196CB310F47BA0A1AE125A1A6AF0BA0A74F78FA04EC5C187EF3332720D2626263900405596490BA53100DFC9E3F1B230814AFA1A892650A8D8C9335E94E972E6B3604EE674399767C59C3C2BC6C2CE123B2F316A0B8C30A651A35E41AC9E4558C86022DEDFE9F1A311D64A213E85AA039AAAF824D1C9CECFCECEC1134F3C013B77EE84877EFB21A8AEAA62F773E3F3BCFA560FAA898C0130F47C78819C3F2F12CE1CF1F6D15F1C0FB1533187DC181A9F83A1B159233D8512373F1F818181ABCC4BD678728A06416C312291B4DA73DAABFA01B96C9A8D98803768E46EF988A7201DEDB311AB52764B832CEA71D2B9840CB2999C0DEF9B69C6BC3A1245535D898C192257454E8F0375AB8F9D8B271228B663D765002F269078D1409DAAE4C292C359F09D9E9E1E98FED634B32D5BB6B4437373135457571BA3DC32F2A6C70B7CDF24B65E142AD20B0E390065BF8DA1319F8F44606E761EE6E6E77150290CDE52D354CDB043F8BDC8DC94934777D5B5FC00C4E069A8696DE58998F7DE111B1BBB069954E27AEEB0C0336565D81A510282CB7C097EAD643209838383B0B0B000E170190BFC5557D780DFEF4329757215611058B0A1309303F4798E49690EA127496A16075A06161697606E6E9EE9791A7C6663C4377B1B1C8E8C8D52764FB25776AC2C011A2A21E1DDC90594EE07D04B2BC21AC924074FDA57A2CF20AD14D5359BDD0691079C4C26C0E572B2201A492F9D23754804264233B5A8904ACC5AE7720CFBF3EFF07DEA4D9F43D55426B54478854B405E0A746D6666C64C2EE556CA88D91E1C782CFED79790612A4D554BC9E8B12C5E2A199D5839AC2E5A467FA5A6DBEC00D74BDC49336249E6E70521695D5FE6F0B14684D64CC26B2CC067305281542231383F3F912D26EA2A36C08865D8B7682207DFFDC91516C71778F9A6C8122C1A3F67ECB32618C7A26EEC17FE867F667E971F3FFAE8BF837DFBF6E519802FA02BEA5A455D8A59C8158B4C769555D64FCB0E578D9D0106CA2A445DF673D6A5F4BCF397EF8BF78B9ACDBF58C6109B04501BBF76F51F6CA535D767000D2C328EC50AD78146D5CA0F0A66AED0FE4F3312338CA8A245E4FC39735F62A528A290674A71DC49638E98BE1603B2DCB59FC097F64D8DF4FCA0AEA5E3D38868CA5789C730886D3246E0684CE790D34CB7587BBAE5925BB0B4900976274FB71CC0BC4A62EA489B9E1CF9E1B9D77FF9235E5EA3AE89824832258494882C9851A42DE073C0173FDEF19E2464E8F916D1FD1705495D8301A44BA97C718C854B52B1E468EF9B9395EB367C2018AEBE1309ECB4D71DE725C0F07504A15002F204CFE31EEB34E8795EE8B67D4B7A964B463CB6D4D37FF9CC3706FB2E9E205F0F8C5A57B5243FA0BCAA06D2080793B1453EFA79059B955CB111519698AF20891C5AF2EA3633C66F41360B5ED875693E64C0D40E798F68F834C989FA657511A05124189E32BDD41C9786251C79F333D7FAA6A3F313275CEDBB7E271C0EEFE091817CDA5110D6000436861480CFE2FD22E27346657399C8505FD793674EBEF04F9CF024A5091A30C575ADF2AAD68DF039FA01A465E941199434896F9513E6194084E7992086FDCDA0147370CD8784BC01330366AA6A88B2A12B8DE867564166E075B4351C31CE04953321C75F9282F533E9647CB2EBEC892B91D9B1F6D68D5BF6006CE80895855A3972BAE95B26939A9E9F9BB9343B3D7EEAE2D993BF8A2F2E4EF06749F0C1A1AC5454BC6A2822BA3007BE60087CA18A65C47EB7FD00827F4F7EF7BB90CD6685B5E12A7B29954B037190DCDC18970AFFE4B5A1ABD88EBF86FB1E8F277CE08E233B76EDB96DFB96CEAD1D5EAFB7CA4B21CF65704FB075C2B2F3386072E80744E7E766FBA62747CFF4769D7FADEFCAC5214EEC38EF53FC5954B8CE041379150C2E28E86CB8DC9EE2477A4F3697CB0D15E172503229E97A9E30BDD3B163C7D8F1D7BEF63566BB8F1F3F9E1D1E1E56504A530303034BFC1DC96173A75229CF8BBFF86917B61FF1730E97CBE7DCBC794B797D6353B8A2B23AEC0F05CABC1E7FC885FFA553D94C22BEB4105D585C5C589C5F98999C884C8C8DCCCDCC4CC638FA4A7342A739B1B35038A964CD993DF2AAE6ED5D227BA98E98A6A1C7B95C05094D4D4D02125D40828BD49797970B43434342636323FBC2830F3E08D16854EFEFEFD7DBDBDB33DDDDDDD9B2B2B2E4D9B367259BDF60CDFCC96412D2C58B67046CA69364778034C85764AB454DB1F5E6E779CB516232435E0584AE201500C9B482EA460799EA6528E78A20C52AB8E52A44B4C2D4BC085734A3A362518454CC87A511DE0602810224C48CB3CD0F703A9D82C3E1109A9B9BE9E19C389A255429522412912B2A2AC46432291A616C8511A1A3A34341B8A9DC79E79D0A3243438F37874D476F54A8AFAF17914962269311C89B9D9A9A12C859F2F97CC2E4E4A439F2B4426B5B3879B0F8FCDB9D342297FAC5C85206BEF28DB7DED584CC071F78C0BA1F33CABA62C67488F8626B6BABBC61C306368A3D4662964D9FC2EF3AF0FD59590E8FB3E029359BC60D7F9B6C69694923D14D27484066C9A8FBCD51A621E1B58989099D98874CD18E1C39A2A3E430821E3D7AD4F417DE953909F22A19F1658E981FFD807FFBD17623BD68A51A793A92A7208DD4A4904F53F254A4D95BDF2D3A4F037FC7CE9D05F723579E42BD388A051CFDD2BA75EB9C1B376E1442A19003094229A980DFEFAFADAD6F3884B6AA139D1E87A6A922222CE200DA30652193499F8BC5964E2696967AB861A69937124A9B1B19E434477A229150508A72785D05254245E2ABF1785CC3EB6BA8E6745477FA238F3CA2777676EA379B21AB4980EEF179213A3F0B81B272C4E4063AD9BD29842A485C251163CF8AC9CBCF89F910B558901193D835E938897E071DCF4C4FC1C0F028C25A4925E223719CC8806055559584A335B0B9B3F383A160D97DB2C3B905092E1507BFA851085C72383E9CCCE4744FD839A4E4525FCAC5E3E7485A1441A84C4BFEBF27082B807A5E54945F8292ED436633438ACF9045463386901A4334A622F1D56030480CD16E26435635C2FE40187178963536AD45A7DA1811DD6B848966D11177F1EDB6DA1E3B5916A4D28CF02CA51B2956C2C2B72C68C543B91A451D8DEC118906FD0E47A1A3BABA3A505757E745355275E0D0E12F7ABCBE7D66C0EB7ADB5C2402A934CB42B58992EBC7A22B7718288229FB8F22D0DB638410847DBA207D2E0D4E0AE62C82AE8E0859ED9C2CA9BF7269705914B326C2C9A1DDC8213372F84E0A318404F589279ED09E7EFA699DD0D8DB618660836914D6ADC6D672E4B7EE7FE8810F7DE8D3C94494658A441E47B1A71359A2C5EEF9DA43BFDCCD379D3381463F2BD913790D8E6805FC78E19255D227E1F1EC7C045E3A790A8606AFBE3470E5F2D3A87A12F7DD77FFC6DDFBF67D017F5B911FED9A35E28B2560727A0612C96421B8D094C7D28AE6D664EF57B58281B272B00D070B2272650947C2A8AEA9E79D92F0D380AC5DE4B0338BEA2A8B12494C2946425AA9CC58450569105B5A80CAFA86F73C212371260E0D0FC3D5AB7D4E543F65FB6FBF7DF38143873E8FEFE252D70E51C3F4ECDC32E21BE22954C8DED0E74D2945D7147E914B4235DEBF09915F58177858C4F85C46F1D0754719EE97212BB663FBFD081A17F4914641CB9EF03AE41F38B2D9212E214C4ADC6E770E6D3F498682AA4A2B4E4196C4000DE5B394177DB7FC00BA3795083A45D9B567CF9EF5F77DE083FF0A995212F1FB06AEAE58CB2E0AA22E78BC0F3825D96B462F5FCB26E14D3DCB6AFF090C0491094D28AD8DE80ED4E37E05F6CB240347A4EE72B7E135A87D722E934A65B3993E5073CF577BA51FA23444C80944389B461F258B4C50AEC704F97AB1A8F7D2FFB5C49EAB10CA4E555555FA7EFF939FFA5D34C4DE5288DF75A597A931F37A66D08D5D5B9205B7C7DB6EDE675155E0E55CCA4073F8B222B6B4A0C30042DF21F4AD08A37AF0FDD78932D42123EA1843C47C229F3787ECF778BDBE1DC88C1D0955FD93B944723197499E455BF28F91C8D2D3E5E54C0BA93724012C68A615FE269152E09F5F1DC94FCEA0A9AA6C5286B96F9BB441314D4AC4D82670E48FF9A40D308E29464A13347EEFF73E0EE8B932E38C589CD9984F7DEA536D5E9FCF5542660C06874718F11524ECF8F8245C1D1A817BEE3CC4DE862075A8BC224F3CD431FF9C58602A4816046B1AAE363008EACC3438F6EE05118DB5EAF3C318D26E92E52C90D8F8B435820435A822AB05192A50728402E99049724965DD830CB9676274705B39947F050DB44A36E1066C80B06C4A7A0E91CBA581883505C9981F6C78E3C65424859F57ADA947E61425917BECD6F425FA4C33A72719D3968E1CB917D0C962C96EC4E070DBFEDBA12C1C2E49ED8C8E4F309D1F8DC5E0E4EBA79911374A0D7570CA4E085755B3727793F857D249B8944DE5894F6F1C8BD3CC1070EFDE0DD94B97008D0F64BABA5874D7B77D3B63A2E072C13CBEF782AE412FBE2FD5FE54E0E795D86AF173B2211ACF15241331105596D316BBBABA84D50CF22A3600AD0F2FF3061E1E280B38E1CFFF706FE94658964B4AC898795B7A361AF92924A48244AAA8AC8452883F3631C94A42220B8B1043C675A214A9C8D41C0213BFD70F6124A420390AF2BA3F9D8D3054C6823F84D6F07CF6DC3970AC5B073924BE90CE8010304A0C65B44599EE6ED0A24B10D8D48E765C006F4303A0EFC0DE21C6429F1A785155558B0E4B1AE6624BE887B0849288905578E69967F41B71C4C0EB2F83F9A909CB2098E93C628C68CE0201A307D32700B33A586485B846B55B51588FBEA01799174E1C62F8F6ED3BA0B9A5B524E28F4F4EC2D4CC0C9B6A4497ABADAE069FD783CD0B5E6C0811414009D0ECB95D64C0E38DEB61289382DE6402AEA2345C43A8EFBAFB6E66078819EAFC1CA8D3A88A8241F68E7A2A053A5E4F5B44C6F983103D7306CA366D02475919FB0DA9D846A70B9C8268311AD07F4244A79023890659244454BA0D201C861773B8A93A58650915C11679D2F8D219565ED42420CF91AA96F3C571BAA61A8E97CA1DB002DC6EFC86F8B26FCF2E58BF7E4329D5100CE7D3E8A79A1C5AB3C2170A1A4467CDC38AAF7278ED4C2E0BB2C3C5BC6DB3AA01E1256C71C8D08E3A9E8EB3F87CC3E9345C4D25611819334D6591B5754C4AB2C86415258C249A98A12E2D82AFB2027C685DCDC9CB01546F952EB7951B4E250D8F1E0C34E9463F26178944C85953296C6E57452B3A6287EEBCF7A1C3771EFA3445282BAB6A6F7A42C60C4F88BC7218611CAA9F2C7ADF01C6B862A7AAF8782EB20097BAAF30078AAECB086E129EF7B5D555D0B9A59D31688EA9A805588CC6514D2520994CB3500585442CD5646B69BCC728DA83914C1AC6513A2268909984D3F429FC5D1A0DB5BFBAC652631B1D6EE8747BADDF0F0DF4A13949C0C0F0487A7636D22D8BE2CB1FBC6BFF5797969628C4C1C2DB262356B601A226E4F0E665CDADEF5A42867B9A94F542E2A721102A2BE91E69B4133D7D036CD6234D9F2A24BCB14F75AD447C73364BE3BA7AD6A8C88A859DF17B544E3835330B93A8C2E6E6172099CE1973BD4463A99D2DA8FBDBF5A031A20959E17DC7513AA6F01AB1BA7A237140AA17C77293D7074EAA2BE50C489004E0CB20A3DD78CFDDE535D5BB6717A2CF568543A6179D4306A8ABDB00455B331FFB0E489FC7FB480CF41A71E4FBD9485E4BEF93B45CBAD2C3548ED7D2F59EBCDAC19E3CE98EF6CD2B32FC72770F63047D3F80F7A44613EDA8E299F202C3A3D760E4DA387AD2F34C5242656170B95D4C9237A38EDFE40FB0EB24F139A770D0CCA07A5BC2DFD5F17276E65D6B2A83AC9185289B8746C50C3BB675C2E4D4F4F1680AB1A4AE0DA0443F7ECF6DBB7E4CAFB49A27CC8921DCF4516F12924D9843E3E66123D6B366608D4D43EAEB870C221432B654D7E92B523B1492595C5A8289A929A8ADA9662FCF203412E995D7DF80BD3B774028982F21BD86F095FC873B6EDFCFAAB937AE6F63CD1C205D3DBDD0DDD30FD3086BC3E172280B8598BA0A2243024E076CB0156F996A6C7A6C8AF5C3D7C618F5F6EDDDC540023D0B125EC6F76E0FF87D8FA161FE19DA84EC2A46D8C848152464A259F8B3272FDA961850AC7D2B09C3B0BFB17C01FB5C53F27E819EB32AE9645907B7438423F71C86C71FFB7249467704472719DEC6FA3AA8AEAA2C503B240584B32F5C3EC3747EFFE0207BFE2A34960D75B5D0D0500F87F7EF07A7335F107175689811F4CE83070AEE3330388CC67D02EE3A743BECD8DAC91AA9CA6E64C6B98B5DF80CB3508E4E5D6D6DCD8AF6637272824DE8239B46CF1942BB46D244E5FC82224279380489444AA78CDE9E3D7B047979A18BB13AA156E433B89D12DCBDB7D6B65401F0650774EB9C68DB37962580E5DF130DAF32E0F3C0A73FFD899224878C6ECFC055A80887A1A5A96999FA217BF0CA6BA7D8FC02BBBA9A989C826B63E3A0BE719A1180D44F4B6323B4343732585D1E2E2B9A95A3B209D91BDA5AAC7317BBBA514D661842DBC6277C5C42557602EF97C0F31B10B59993B78964F15814A6D1B61030D9FFBEDD6C4A9393CD38A559982EBC67181617169F11DC1EA1BBBB7B1903348E32D1A3D7208E90AB8C5C78F20BDC123C7457F3DBAE8C63E5805CBD21F7F1456B18545C4BEFD3E7979008F412DBB77640593058C000377AA7275E3FC5E61414A08522ED499271A5B71FED402FBB6605C2C8B6962658DFDA0CCDC814426697D1BE549687D9B5CDADADA599CD5BB055633006917479D03EFCEAF809B8DC7F0D1AD139732128B83636C998B4735B07A3283DB72218217B7A7664CE445375F8876877F4B6B6365DB6139EC7B37308B8B2325AF641147B71EC1A6A17CD7A21538FDBF539C58E34353F1F2B3F57979766B37A4995E37D01EE7FFF11D8FCC8EF94E46CF55E1DA4A40AECDBB50BEA6AAAB9DE37884FDBB90B9760766E7EF56CC72A27A6676799AD78F9E4EB6C70343735C0C6B656768FE2E05EC7E64D85EA1825D2E9723215F6D1873EC468F1E6D9F3F09D1F3CC50C6F193A6824A91450749A65F292CBC879A8B947011CD9B9B9391501880543CD55094986D378D3344DD71744D9202E2B9CE5C60678C9B6067C2A285805A9AC169EF57907CCAC8F3788ADB351F7B18F3E5C92EA89E1A826235959518EA37F4B81BE677A1CF53519BB52B64A94E47D7B76404F6F1FF40D8E14309F8C34415B22389D0F223ADAB47103746CDA085BB0D941C4E9B7CE23E103D080EACC2E15045D7BFAFA9824DDBE6F0F434E745E11151015091C2E19C6C726DEA80BFBCF218DD27EBF9F05E8649BEE57795221818E539CF07241A8188A4BB20B6BE34DEFD7F07A0B272BA87C9E94D321C11F7FE90F19E22865F45FBCDCCDAEBD7BFB76C6047B05F5CCEC1C742331AF97EAB32720284EF4DDEFFF00FC082DE99A5BD14F686B6A84936F9C82F1E9D982DFD2CC979368375E41E9A0EF36A37A2168BBBD730BECDEB16DD9821DC9640ABEFEB7DF643469DFBC1142A1A0655358960FED5E3C9EC855F89C7F8C4C8921EACBB6B6B66A8C71B60224B3D63E2A399D510AEBE62BB4752B5E9367827D1980FC549CC2D16FECEBAAB1D2640047CE3C8A2F19223B225931C8363909337373CC4EECDADE59407C2226A91E5883FC665930E17C3F4A4FAAB6DE9A424433184FBDF106C8CC83D5A01A75FA3D771C82CB5D5D70A18B2421650D3E424CBD0383F0BF9FFD199B55D3892A89B0FDCEED5B99C7FDDF9FFC1E33BCE45790BA22E78F266718732C28D4A1D1F4A8EFD59707A6F0DE49B481B98F7DEC63BAE909EBB6C90EACAEF2F2C5B3FF776662FCB7B3994C081FD89FD3725E1CC10E54E9B291A137B9A659E54B9AF9BF794AD3F87C33494494E20C86427E3D5D53DD3B70F577DFBA70115A5147EEC497A0175AE60722812E765D61FBEB1076DA0BB6C8733E7BFE1263F89A2A9F55D888B00B8DF7EBA7DE40A3E965CC0B05038CA16E7FD0F277E87ACF3EFB1388A73290B196481096A5F168B4BF71E62C9C3CF5267B4E621CC5A4E87AB7EDDD09E5A8FF697092E1A5FA9C643A45B32623D541CFB7F0D963A8AA321D1D1DD6DAA72BD980D4C2CCCC1436AABBF782B194B10BF20BE895BC8804D5F4B85C2ED9535EEE3B74F0F69D0F3CF8F067A368A408D69D7EEB1C33809B36B4A1C16A4423D8C8D290CCE142D592E439DDAA8AF20268791ED5523A9B5973F49B3D1196202A41D230221F72D03A36AE87D7DE7883A1188289A41249C2E3E8C8A936C929902661F5A0206DAD2D8DD054DFC0E69C5195373124B99464F3C97299F8D774C9BB80C4A7975268F45BD1505EE26D0D3E1B33A8922CC9EB28ED7593258787F021C46030E8AAACAC2C43A7238462EA0E978550A56C45B77F8CC1BE13AF9F86E75E7811E2C90483765BDBDBAD2B134EDFDED9615D8F0C652C165B5EC0BCCA467E4314473C8DF286C606D6930A7CF6E7CFA324D152350146FCF7DF71104EBD791A995305E31353ABBEDE6A4C2035490E5B05425816E95504C8619F44E83B333B7BA9CCE33981863E86AA273B323252B0F2AF6CABB33735896EB30999150A564B8D4F08487CB1AEAECE830D55BE4B4BE3681CC79138383CCAF0FBC31FBE1FA6D1001E7FF53574FBFB10A10C30887770FF3E06091FBCFF3E4B458D20DA219BB08AA55DF6689B719453A863747418649787A9226230E9EA60A88CC7A25486809EFBE5AF7000A4D8242AA1C086AC2D684437B205AD8D4D6C323A79BB34FA295781CA5EF50AEA7FD0346111ED506A626242294ECCC845931DA00815ADB46261C90C403C2CD5D4D448C80865716961B2A6BE3137994C39C840471617E1D99F3DCF90C2BD771D864F7CFCA370EACC39B870B90B0E1FB88D35CB139E8FC0287AB46B9738E51FAEFFEA1050A12D659D83A840F7EDDE09A74E9D02A7EC0073C58640C0C716E6C822339C4E17030DCA5A4BE414BDFDBAFA5A68DFB4811960A67A50F74FA3039B42351B999BFBA7A04B1A25E443A1E8FAFAFA652BBF0BD7F9132600EFEC2F6608BB76ED92D6AF5FEF43EED7A221DD80E7366CDBB1F3EE6079E54114F530A9074A4352DC8442C5848CEEBBE72E2601F5E829D36324504753ECDF3EFBBC303FA031265E2F7F40C789780C1691E94E8F9749DFAEEDDBC08D237660700886AE4DE6275817FDFE7AB909C2FA771D3C88FEC54E8610E91AE9641ACE755D46C3BB101732F1FB51EF8F389DCE088EFE3455D1953445C9F6A5B75D804A4C7CE8A187F4E9E9E94C229188E321AD973675F9E285E3D85FF07AFD95EB376F391C4B25370C8F8E538533122805FFF0D433F0EDEFFF235BB7E7231F7E00B6766CBECEBA41CB0D24A99E502008FD4383367D8E5014095FC546B94144B23F83E43821D303C1B2B755DFD48E4EDA8E6D1DDCF01AB0B36BA49719DE446CE1AF7C0E39824C892303561CFDAB4AC0CDDA1E79E411311C0E3B90017E3476E588626A90119578CF0AD49365781CC4637F6DFDBA8D6E7F68FFC0F068251A498149054A04BDE4673EF1AF99E3535555C1622DD6A85795E5A589280984C1CF9F3F071E34B0618484FBF7EE82BEBE7E882CC598675D389235A636143EA9BA94516F1E93C1BDF7CE3BD049DCCA9E85A47080FC85FE01989999B9EC50339FC3F71C0D040234F0A8404B2BB92AE2666D6470A8326C747434C9274E64F0199690E873D887A9D882FAC9F1B14574BDAEB86439B8BD7DC3819985E8E6DEBE7EB7C8933419BE2E0389784D552523ACB08A56448F135A5BD75B443B7EE2555207E040678C16D7230F98A06D373265089DB192E054D146C8A97DE306D8BB6B3BAF9115208EB6A4FFEA202413A92CA4E3FF5193A47954BB89F2F272251289ACFA573F84F7E0AF81D094221175A04CA5E1883ADC784F0F4A801F091A426690FC97518FE7E93888BDCF1F0835B9FCA1831D1D5BAA737C9D06637D0685EDFB3C4E34800D0CCB1724F915C30B5FCD2E94230C3EFBD619F087C26C0E9C5AFCDBB5EC005E7BC3FA3678F003EF67CEA4C207C8CF7FF5122C46A3303D3EF6D7A29AFD5F48FC3164D4D2DEBD7B3354CABE1A03DE8B6511490A3474C573F8502934C831EC23F8D05348EC517CAEABD828A8D3872AA91FF7072959158B2E764566C69FA145B2F145344D2DACB0882CC6E0ECC54BCC8F181E193554D6CACE6BC146455BF58D2DE0F5F95744B334BA4D00B0D2467E4C27EA7E0A39987F3DE4023A87541416999FEFD2B3A99F53C0140758C2EBF55A2187773C45E91DA6222D888BCC603309878787A9BC3B4D0F8A848D72231DA04A646CB4D440A58606ECC5177EFE14D9898E6DDBF7FA82E1CE4C36E75335DBE84489B88A7E05256C28E047B17D52538450AE178E5E0538C0CE8E4D70E2C42BB0B1631BEAF3AB85C49265961FF8AD7BEF628427C84969CD1ED4FBA9743A9B8D46BE86836816BF87FC886551F5AEF9E756DE130614212BF69790482A8E1F3FAE793C1EC5EFF767C84D4786106258C2AFD2CC726A51DC8FE14B555CBE70FE153C7E33142EAF5DD7D47A1B9EABCF643451D5542B024BAAA9BBB79F65B14804D6B735434D65254B100945885A582567DD3F82FE86C30D7DA8CF8BCD0325F00F1FD80FD5784D528751543DC75F3DC9C2F48B73D3DFA45A317CAE05C4FCA99696160561E79AFAFD3D63C04ACCE0D5621A8AA94A75F5A8A6B238B252F871021B4D788E93D1266620D3CA493A1623F3716C132839DEAAFAC6ED6E97BB13FD08AF6AE5230C7443CCB870B19B79BA74B786FA3AA8ADAD86A0DF6F5B2362F9B6884E94C3E5B6F4BE49FD602000AD38FA0FBC6F8F250D2FBC789C851B161622DDE958F417926178E33C8C53D29FDB127E13FE2497E9F851B1121A6BB6081F8AB0134793173F626A09FB301E87A90763952C0ABAFBF033B7D3EDA9099457BD2F9ECAD426934929C78D3533DAB685959821C7F314A55CDFDC8C46BCC64A375E0F7E5292B60D0DEF27D15B6FE4899833E72EC00B2FBD4C4E64766AB8FF0FF0D97AB04DE0405A9A9D9DCD3EFDF4D325D5F5C8F01BB015AB2794088ACAAA68A8159FCF974622C471C4934A0A721BC118C11913C8A653B1B971D21DE0F2FA43EB1D81B26D91C5A50A9A075C98A53312450A1AECEEDE5ED6D83D9121241914FC0B604F8B78D34283467D2B40754D35E2FD4E8BF8B3F3F3F022C25B36CF6076F2EFF11EE3B81FC1674920F195D50A717F63256025892069401B21A28D10512DC9E86D5254D64D5281621EC03EC42581981082C2BFFA4750D78952B135A3EA9B27A666834BB1284D5D65527023EF4C0ED703F71D81BE814116B26E6A5C07EB1025CDA35FB2B8B8D03D3736F2651C1C832865D3A9542ADED9D9993B7AF4E8BF6C06143382EAEB0932A3784BF178DC89CC70E2E82646F838E1996460CFFC087EECC37DEBAF30E90EF7865456D9B8188D954716A3CE52DFDB6400E582096A92A377F8C03E0ABE65477A7B3E8B827A0507C3184AC1E2F8F8789680C58DCC9294E13778335F849B08155593565555A54C4E4ED25CDE34BE38C598C8487B08AA221182381A491A42E4D471584B8CF04036154783D2ED09BAE5BAA0D7AB4BCE4D29556B8CC6E261F4B21D2B65D8AC2C1CAAC290DF9B40A60723B90501610E64924BDF56D5EC18DE8F79BC9466BC51E2FFC63360A5E020970A1A690A42BD2CBAF969B41354441045624488E060FCF5BD208F351113FCDC607B19334073096A7AC1A3EB677D41975CEDAB726474685034A85654AD2CAB2801F437DCE94C46D6F1965313636F6496E67A8392AE045B1A5A3389842F934DFC12AF35832D8A2A32036FF3CFED0AFF52FF3069B17A329685906407FD15D05C8EFE8E00853BBC14F2E052408CA17D3FDF67E9569AFA8AC7E6EA29F4D76579E13393BA1CCD88118D650ECC2415398D540B33483DDAA8455A8B62B560DB2D2101A5A8272AF726A9A0920F74EC28E7422AC3818C7021635C147FE26B4C78F19C1F19E3E330D7CC795323E84BEBCC997F633383FF25742335CB962DC0CF63D84FA1C4CD7ABDDE782010C8C23BF863D3C2ADF4F7914D7F026D85100E8785BEBE3E91D69720DF00894592E1E023DE5C6985FDD16A3AA6F3C404DC67469B0A0AB84345CE20D99A1C5F1E2D8DC78BF8F9227ABC095A53A254CC7F4B494089B6424315A526120901476E16BD5786A4485D616F328488EDA0D553A82729A073B4EA0A2DD641CBDDE067295A1FC2E974323584FBA4F3D3B444C18D60FE5B9E01D76306F06941E45BA05408E4E091D78D0416516549F8750919427FBA5AA21558687128AEF769A5436A785AA3F584748AF10F0F0F6B6F07F5DCD22AE846C31EB491111F1C1C14DADADA04F46205D4E92215D7A29408A862744A25A204E9F8192314328F2D53533CD9EEFF33E01D32C4DC6CC88A6D26B1570B9DBCD3EDFF019AD0BC84D284ECCD0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (51,1,'Modem_(128)',0x89504E470D0A1A0A0000000D49484452000000800000004D08060000006E486CA10000000473424954080808087C086488000000097048597300000DD700000DD70142289B780000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000028C74944415478DAED7D07785BD799E58F428200C106B0F7DE295222454AA20AD5DDBB23C7762663C79ED8291E6726DED89B38EBCCEEACB3F9BE4D76767637D96F67B313C7768AD793EC38892DC92A56A50A8B48B18955EC1D2441108520B0E7BF202410044050C52D44F20C02EFE1E1E1FEE79EFF9CFFDEFB24B1DBEDF4597E7476F744DAECF603769BFD09BBDD168DBFDFC2DF6FE6E766B7D3DA63C587E4B30880AB7DFD2A5CF77D369BFD49047D3F9EE57826049F107C3CDBF8F93C5EBF89F77F5D5C5830B616EACF380006868665B8D6DD369B0D3DDDFE109ED57CED083E2D0BBEEBFB36BB15AF0FE17880C1FEFFCAD617CFAD85FD330480E191D15204173DDDFE1882186BF71EE86BEFB9B08003188BFBB16F16E7F817C10C36FB91CDE5A5B635007C0A01303E31998EEB7A1C417C1281CA71F46E9FBDDCF1DA35E8CEE35DF7DB163FE7D83F84E75FE1F9CDAD9B2BEAD600F0093FA6A667B4B8960308E21308E216CFC17409E292E0FB018EA5C1773FBE19C7B15E786BE7B6CADE35007C4C0F83614E89002C8A39FB7EFC1D60F71130F7E07B6301F7F73C02C173CAE0FF9FC47FDFC4FE77F6EDDA31B506805BFC309BCD3234F22EB66D68F487F01CB294AA57A2746F2CE02DEFFBC902CBF58219EFFF912D25DEFFE3DDFB765BD60070138F79AB75031AFD4934E66368D4382F8DEE39E8BE82EF3B885E82EE23657806870EAFDF596486530FDC7D877D0D00FE3DD21080C7858AB7D972DD1BDD3D00EEC1F7D65BDD83EF1908CB41E53DB5F84819CB99E42ACEF1169EDF7CF8BEBB5BD600B0FCA1C5F6056CECD7B76093F8EC5DFEAA790FC78F8E8C524B4B13998C26CACEC9A5B88478DF2CE05B08DE400AB2D5321070FCAF1E7BF8FEE13F670028B1DD8BED496C77600BE037FDA76AFF1BDD6AB552477B3B35355DA689F1710A0C0CA4D4B474CACACEA6D0B030018A90D0100A0808BC8914B00AFDE1D8BF80E7230EBD60FBDD970E3C32FBE7000029B65DDCD3B13D8C2DC4FD00F7DEE7ADD19717749637BAC160A0C64B9744E04D2613821C4A79F9F99495954DFC0B3A3BDAA9BDAD8D666767492E97D3FAD2324A4C4A5A7E3E0F81F6167C77407A63123740CCE1EFDF2FEA85C34F3FF998F5F30680F58B3DFD316CF1BE0E5C59B0AD4CBD8303FD5473B186DADBAF904422A1E4E4142A282AA22404777A6A5A00A203FB161616D0EB03041B646465512800323C3C4C4303031419154DD131318BF9FD96A6005AA11C3DCA63115C6378F6CB4F5CF82C032015DBE38B81CFF3E703D71A7BD56ADD46D6F979BA7CB9892E5E382F8218A45452614121AD2B2E46CF0FA3AB3DDDD4D0D04003FD7D021461A0FE9CDC3C4ACFCCC46B29757775800DAE800DF4A4D16829353D8362E3A10F0012B8113044807710DE500AF00BD46DD8FF168F567EED2B5FEEFA2C0040E31473D82AF9D8D59CD82B45FAB07E33333374EE5C357AFC4541F9D1D1D154B67123E5E6E58BE31A1B1AE9527D1D8E9B26A9544A898949820D121213C5F1CD6083AE8E0EA11392C014AC0BC223343467345277673BF55EBD4A3680203E2191B2001829C0B284E25D83E8729DEE405875CA58EE6ECE38C6236CBF7DE1B967263E750078F5EF5E2FDDBEADF2C77B776EDF7EA3275E8D67EFEAEAA6D3A74F51D3E5CBA247E7E6E55179790525A7A4D0F8D8185DB87041ECB35AE749A10812B9BF685D117A7E040D0E0ED0E5C606EAEDED2505046156760E65C111289541108913D47EA58DFAFB1CD5DD60B59A5252D2281EE9035F4EFDFDBD422C4646C7E07BC903F5DFF672F43C8E7F1FC7F348E57B7FFB8DE74C9F0A007CF3A557AA48223DA656A91A9FF9CB27E519A92979AB3DF14A5537B3C542B53517E9C489130844BF1075151515087C39A9D52174E5CA15AAAE3E0B3AEF12A0D068B5B47EC306CACF2F24994C4AAD2DAD4803F5C209444646527E6111A5A7A71347927B7A4B7393D8C74C118500676466091D306B98A59ECE2E688B3E9C47460949C9140F2691C9E464B198490E1DE157AABA095DE3457F4CE3F8771D6312F6E32F7FEB1BF64F1000AF5649A4F6634C9112A9C49E94107FFA99BF783C3B3424247A55F9DFC38FD5E97474ECE8313A75EAA4A0ED94D454DAB66D1B9594940014F374E1FC39AA3E7B561CC701CAC8C81469200DC19D9D35507D5D0DD2403D9794293D2303BAA08462E3E2C80C67D0DAD28234D044737306210859136466660B708D8C0C53074035363A42EA9010211663E312D0F00BD407F618004B30C324A7A6511C00E12BF81E5D8DA794E13A4CED81497C14B8FAF1DEDBCC0CDFFBF68B8D9F0800A432720240E44A894C325BB17E7DCD83F7DEB91981095C9500C4F31550F1A14387A8B6B656F4CA8D08EAF61D55A0E4641A1A1AA693273EA28BC8FDF310804A88BE52D8B88D60040D72783F9CC0F973E7A8ADB54504B6685D311503302121A100CAA4D005576001D909B0FACFCD2F408F770842168C575A5B697A7A0A0C104B9970085AB802A3614E884576197CADDAC828C1062C321924E3D8C2212023F13E4F1AF858CBD14BCFDB20520400F1DA2BDF1EF85800F0AD575EADB293640900A478662A8682EE7DE09EFD436525C515BEF3BF5D50EAC953A7E8E0071FD055D03253F5CE9D3BD1E3B7932A3818A2EE121D3B765C80831FB1B1B1B4A5722B6D00D54BD1FB9B1A1BE92CD2C000520407A2AC7C231516AEC335C8A81B81AD056098EEF9BA929293A9B0681D0461121921FA5A9102AEB4B50A41989A964699D006A108EEC4C40498A08D86870645BD80839E04AD1110A8A0217C4F7FEF5580D04211DA488A8B4F10EF4F8C8F51685838052A14BEF3FE4D14B8FC18D8E2B1CAE38B29E2DDBF7FF5E599DB0A00D6009E00C0BD97FF0E51AB6B9F7CEC91D0F89898CC65133A907BFFF4A73FD1E1C38749AFD7236885B46FDF7E2A595F22A8FBA38F3EA2A3478E886030CD1742C96F072832A1DAE79016CE9C3943E71078FE6C167A6CF9A64D2215CCCF5B05682E5EBC4093F82C57010B706E6684B0F070F4DC31B1BFABB30362514139700FEC043888FDA0F92B6090C9C90952A9822905A060BA5F58B0D2D5EE6EA4803ED1D03171F14213F06F65304C8C8DA20DA482216213920438E45C65B47919C3F03106E12DF83EC7445CC728AE7FD688CFBEB7E8243EF8D1DFBD3A7F8B01F003570D000038032F5D048144D02B9E17929312CE1C78F0FE4295521971194AFDBDF7DE1301E400545555D19D77DE296C1AE7D9834801A74E9E1434AF8622AFDCBA9576ECD8415AF4B60150F171B0416D6D8D004559D946DABC658BD83705FAE614505B5343269311EFB1202C85F02BA40078FA4E58BCFADA3AA49241713C33417A66067AFF8270016D2DCD426F446834C22570AF37E867A9BDBD8D06FBFB445A61DB9880CD62B6206D748914C0C23026368EA2E3E3C9045619C6351A66F5140AB02524A71137DDED1B91F46E4BDDCE3B8ED7BFE5CAE37FFEFBD7CEDE32003835807BCF9748963EF331D5A74E9865E84B269349C515BABBEFBE9B76EDDA2DACD87958B8F7C1068DA0733E07EFDFB3670F825B29A8BCAEAE4EB0417B7BBB48115BC1049BD0E3996E99DE592CB205E407E7EF8D1B2B2008D3848B688018ACABAB25FDCC8C109325EB37088FCFCC71194CC02980754102DECB81758C861B181D1D154C30323C24B4465A461625227DE8F533D4DDD121E89E01C12C101BCFF585591A0013E867A691B6D46088042122192033D33A8021025A216A9533916E746EC38A035B9DF89C9816FF5F7FF41FDA6F18002FBDFA832A8BD97C4C11A4F20A00273BCC4199FFFA8D9F8B5E9D9691697CFDF51FF6AD2BCACF3E74F020FDE10F7F100DCE3D9AEDDDBEFD77C0C6E509357F02A2EFC8871F8A34900D9ADEB57B37E8BC48FC987A04F6C447C785B7E72A20B3413904610404A14E3721D8A0E1D22571AD79107C2560038D2602411D112E81078B38BF67E7E6E1FB0A281801EBED81356C6A142980CF93959B8B1C9F2802DE71A55558C6A0A020A48674B880649A86B8EC051330B838E0FC5E4828D2CCC8208D0E0D392A6510931A16890B369A9A1C278552854DE935EF2F49053EC4A4D782994717E29549CE2F8E54FEFAA73FFEE1D8AA00F0E277BEBB6FA4AFE720E7CE28203E0839D38DFAAF01E0D4B123545F7341882DDE58696BB59A797570704038A872DFBE7D08FC7E8A42430D0C0E800DDE17C167BFBE79F366DA83C073AFE5419C93274FC00D9CA0A9A9298A81676736282D2D15DEBCABAB8BCE9E3E4D6DE8D51C90B2B272047E3D29708D1D1DED5403A6E1A210EF2B0490B82EC0A065E7D00C06E1B2309783F3F20A280AE71EEC1F406A68C277E928183D3B0DAE2101397E62629CBA3AAE88C0B323484A49A530006674789006A113B8E123A3A3293A365EA480F1D161D221F8FC220442312232DA1100AE9BDAC9CF9948B7A11C7D1D4056B0E9BBA505252FFDC5930FF5F9048084A38CC7B7BFF7EFAB24643B3AA31BA7E989310A09D750642C2BE28025006041F4BBDFBC4DD36844270078E307D4B8FDCEBBEF997AE9DB7F13021B26676D7009BD56833CCC80D8010B1812A246EE1F84583C04D1572D3ECBA26EC7F61D94959323E8BB0EB6F1148031845E1787006ED9B295F20B0A8467BF547F892E5C3887EF770086470033B3B285FB608668BEDC88BF2DA25E900FF7100EBAEEE9EE12EF7339390C01E3AA613C348AA813C04A32D5F3B032A7062E23B35B602658809E88864B6121C8C01AC3F16300050783D380262A064095930E4C323335297493263A8EE44865FECC6DF05985BCC1B90D809F353B33FD4C4A72F23A92DA1F7CE08E3B8E7B058033F88F3EFAA83439AB68A73C407A98DFE2DAB96E6C0854AF272D7E10FF50A94C2A0070B5BB934E1C39746D9CDE7DE39E9B92926A5707AB24F9C8C1F7DC732FA8BC5C80A8B1A1813EF8E07DA10D542A156DDDBA8D764034B20E98410E6726388DFC3F3737470505854230B2729F999E1660A9811370067763F92688B824F4449DA82E72159083C4F50016849C4678A8B8A9F19210831A6DA41090B150FC83B07E6DADCDE2BC5C6DCCC8CA11167068A08FBA3B3B210A4D087C1C98204DA87FEEF1AC09188021004A4C5C120522754C4D8ED10440C181090E09A5706D144991862C261319D17681480FB2C5390ADE26B9DED4CC66B7CF4545696B0AF272C2E552598620233BED7CE09E1500C0C18F8888908644C6EE02FD7FE0AAFACD50C113C87F36D8A6E8F824A05E43B517AAA9B3AD45F4544F00706E6CD14ACBCA6D5FF9CA5350DF7AE99FDE7F9F86060741B909B41729620B04215BBA5E50EC51E802B679AC1B2A2006B76EDD0E0BA605BD0F0A50345CAA17F9BDB8B844D8431EED6307C1A0E06161065331C420079EAF9DE9BFB1A15ED40698410A8B4AA0EC63A0F47BA8199A8003CF168F2D23533BDBC176FC26AE2C72E0D3D233446EE7E2502FD8C30C17A246805913F0F31434C5C8503FCD038C2A7508CE114B018A20BC36930EEC6936CE011061A4C266772D2879B17EAB72151E8E570605F51415E68F2A158AF2C5B88A8D7C018083FFDA6BAF498E1F3F2E8D8A8A0A48CCC8DE1DA40C7ECF93EA37C0928D03080A85927AA0D2F9477A0ABA2750708F63B156BE7123DDFFC00322572FD81684853B74E820B5B6B60A8BB773E72EDA5C5929AC645353139D387E5CE479AEF26DDABC053DBE8214410AA8F936AAAE3E232C265BBCF28A4D62A088EB0575B0938D971C2563E1102014B5E8956C192F233DB0EA67BD920776E1F90203E8F1ADF82EB6796CFD32B273859E6091D805BB380B5662AD90989A86EFD28AB433D0DB43C6390329A191A2A195586CB2189E004BCCA29DD4D01021115AB49BECD6A700B7F34964127D4E46466D4478F866C43BD01978B13942ED1B00DCFBF15A860653A4E5E4EF016AFFC593E8E3677C254DA361AA4F9F103DD55BC03D6DFC6081B667CF5E4A494E144E606464843221C2F6EEDB2F067CF838EED1C78E1E11FBD8C6EDA8DA4145E8F5DC8DEAA0F4B99EC0CA9D67FD6CDA5C290A3E0608C9F3E7CF0996E0D4C5F304B95EC0BE9DC701EA010A0E3C57F88A8A8BC52820F7784E0DCC040C086602CEE9D3C8E36D2D2D00F83802ACA2D4F44C8AC47E30183441275C824EA496386882304DA428288D2305E8C647056344C620FF0706DE8269ED2BE67D5B7C5CCCE9C4B8F85C8426EA5A8F278918E1BC0E023F00303636C6CA3D28353B6F1F00F01B6F00703E7FF4E10764432EE48099F13F9BC926C492B7E0BB82842D17079645DF534F3D2500300DE57DE4C3C3A252C81541CEFD3B77ED12FEDF002DC02EC0A90B38B85BB76DA3A4A464317074F6CC696A80F7E79FCE76B26C63B918FE653DC0256376015C902AD95046514CF5C8FD0DF575348900F3686101528686F50780D0DA749946114CAE45B018E49A00A7049E53C0E28FD35542528A00046B2DEEF1237020AC7962002E6570C8B2805DAFFAF966013FD6375EB380A1C1EA86B4D49440B95C9A2B71449B246E8177A601C4CB3700AAAAAA64A9A9A9728040199390921B9B98F44BB91C02C20700AA4F1DA705E4BAB1D051EA7CA481A4A14481834A8A7C37890206157E310207A3BC62336CA2F69A78634DB06BCF1EA1EC272626E9E8910FA9FAEC19F1E34BCBCA68DBB61DA48D8A449046842EE0F9005CBCE1DECE81E79EC925611E596456E014B001B6910B418383FD02101CE0C8A8285A57520ACA8F15051F7607BD3DDD8E9144B88994B40C00DA2A02CF6561BEB684E4545149E4F2F0C4E82818A4470424263E51884B9B4FEB776BD6370604C8075393927B83948A4D926B41BF1E784F40B0496C3B1FB9E71EFF1800EF85E0ADA8F4BCC2674242C3FF5226932A978F0B48A9E6DC69B2C10AF6465EA5AB2FD7903479C171D6513945FD4326051FD7F80CBE2B23F0600E3B856F7CF39B8219B80A78F0E007C8E575600B8570015B610F4320B47AFB7AE9A36347C5D02F8BBE8DC8FD3C81440671C82383E7CE9E1501E52164012E008945E78573D5781E10815A5F5A2A02C953CA3905744240F2230381CF04BB70DEE67A00570739004CF5A919996202C9946E927A000A13041E079EF33FB7C9CD4D28593905005BC698A8A84B11116125B09941CE20D3759A5F4AFB1C787CB6BBB3833272B35706805303E05985A08401F15A589DECD4CC9CBF0A56876E71DA3F27002ED55E20FBBC5904B2B6A29AF45FEE25498463C5B5743C80329EDA44B669F2290C5D37BEE00D651B2934442D067BD896718590BDBF421148EDED1DF421C4224F10E5798095B08EDCE3B9378A790448036CF3580F6CAADC4AD1B0AC232343223DF442F5B36328C5F15CED9B47EA6A6A70D40AB891D241F57948473CE3A807F6960521D713582FB020540607D32C5254E79556D8CD09316894086BC88058DD2214CF03409E672A5FFF9C4A15D4121B1D1D2D97C9B5D7E8DD196CF2DCFB79CE642DDA85531318F0C16F7EEDABBFF7CB0540C92A109060EC0B85C8D3E0392A262EA13C313DE34BCA2055A233258841135820CE891CC0ABB15D34B8BB9D2CD9B324232965BE5241342925A3D44812A3C4A73E700509F76A9EE8F1C4935F1295C04650FC21B001CF0EE23A41D5CEDDF841A5A204CBB386CE2CEA029E3B58095DE0ACF99F3EF91175A2077361871D42764E9E106BCD48357562EE8105E9218DD6C136B2E2E711C3C64B7542F1736ACA2B5C2786818DE8E9ED7028C3481FEC00D2B37260F9D437B31AD9EF6165899D26E1E9E78355C131E442F3AEB44F6EAFB98A598FCEA943FA2C2A592F86C271CE5D071EBEFFB8DDADF4BBA40EC02078EFBDF764F1F1F101F8010A049F177C84E06F66030DB628B0C15D710989F701F92AEE4535674F12ACC792209A17CC2238B6791B5D2EAC27FD5DC3249D939162504551EF26936C24C02F56E0B1FD440837A65AAE19EC6197806099D1334FC305704999C5198BBEED555514053B370E77C2B6914BC03C61A462D366D1B3B97178C6D0856A477A60F7B061638560051E45ACAFB928042157FF0AD6150B2BC816B2A3AD857A003C3558291300D268A36E6CEC7F95134A6CB6F9F960459041131915EEACC7383AFD622FF70004B6A06DCD9771BD9D225D1500C00110B27C0C5CD1EED6CBF5C71163BB2B089695829DC520286B39B640F446D6042AECE2851FE1F85B13A45225E5E6AFFB82363A7ACB85D327A55A4DB8D740D6155C20FD77BA48B2388748D21F40513FCB24F5475ABF442237167BFB3BEFBE87B682D6B9F4FBD1B1632238C54077155C02F7780EDEB1A34785F8E3C9269B71ECFAF5A542B774B6B7C33D9C00754F8AE963E59BB688A2104F1ABD78BE5A502533C0BA920D821178EA380F10B503446C73B3F30A281E7A8193B0B719C0DEA67FDDD0FA46ABC5121D1B07AD27975CA37637A1E70A047EF423C55D696DA23058D882629E2D15B6440F58CCE67DFFF4B3FF7E0C62DFE60A82658341AEE940A954CA8C462340A4088432562218C1A0FB1004261C8769A363E38B70D1CF87A9555A46A9A7001AED463A7DD787647F544712D9E2774CC929F399CD44E352BF0A48BC71201808B4E804F6EEBF033D3E0A81679770588C19B0B5E4C00B4188BCC7799FC5E2F0F0909827C0FB788D00D7FBCF4310726D80052607DE314D5C225618B136E0F490851E9F01FAE4DF76BBD637BA9ED76234DAD1F918C08EF8924B316749E0AFFFCD95C8B696CBA2DD72F28B047379D20373B386BB7FFBAB5F1E413C17105B9B63E296DDEE7134D00982A6A62689930D66676779BD9F422E972B1110359E61FA2802EF67C4C6C6BE0E0BA9F6164C83CD40CDC57534F1500FD9E32D020829FF09283D16EDB740746E5CF1BB0B6CC0D5C4E6966628FB7342836C8120E400F3D470A6F4A31F1E169A814724B76CDB2EF481118A9F7B3C5708C54C24F494A27525621087F37FEDC50B34333D250461FEBA754210DE8EF58DEEC79BCD73A48098E45147895BE0BD0181DD4B777BAB18DEE622158F55F06C694F8E80FF98D4E91EF8FD6FDEFE10E279BEA0A0C0EA6401AF0B439C83432EE2506A3299E43C2194F581332D207061106025F0DE4F676767AF532995526FC1D34BF4341B324D0B81F3A4EE88A0D1B011EADADE42725C78E08C8234C7E3286048E1172B700148ABD588B2F0FE3BEF82F70FA2F1B1713A72F8905820C253CBB74010729AE086E7E1620E3EE7492EFA949597A3F7AB442DE1FCB93334323424344749E9463176E13EF6EE6DBA96AF428DAF19C0FC1E8F1FB0D3E052B4D4B574BB2CF0D7D3009F67B0BF576C9191D1949299254AE62B09C3D1F19147FEF59D773E04939BD46AB5F59D77DEB1F904803B1016EB0412675A080E0E0E6091C869818180F344CCCCCCDC013678146C90E22925B807B23EAD8674DFBB4252E5E297411F68DE48A1888371649D5F9915B8A1B76DDF41959595A264CCF57F6E0C66838ACD9B49062F5F5FE7184EE6CA220F316FA9DC2602CC2387D5674F0BC1A485B328ABD84C71B0761FC70D29F818B69461A07BE4D6EB74BD58B7F70684C9F1511AB8DA232A9429E8F5EAD0D0657AC01B108606FA1F3B72E8FD4393939326B4D13C3AF5825F00F096162C168B0C270BC0E71508B60002DB46F4B06804EE8B49494977C14D84FB0AA27101FAE0BE43647B44E7B2A28428F6F57C0A3B12E3570189376E901C0497E709DC7BDFFD6003959815CC6565AE277025707BD52E911FD9019C3D7D8A5AC01200B1083CCF0958F5CA9F15D6377A4B01AC3F02031414AC0EBE1E7497C0938BDA77EE33C1E272C59187A6E39352490BEDB32CF0EE69C30508B8C6C9AECE2B0F579F3A75C9603018F155D65503C0575A80F80A4020445A0000D460064E0BA9C8CD5FC9C8CCAC0C0D0909F416CC41D500B56CAA23D38323D79820704045B9CF6CF75B203A372EE9DE73CF7D622D004FF0E09540BB76EF150B444C2633F4C259A482F3A2514A913A8A21FE580B78BCAB88AF25E07ECC00769FFE3507E0B1736195EE39E84B7B3FBF2706988606C4849BC8A8188A044331AB791686EE4010A6C53A3333F56E6DF5C59F8C8D0DF621367CDF02F3AA52803F40E0B480E0C8915F38D09003E88244C22D0020A5608C2F232D1462BFC453102D560BB5A736D374CE182D68CCA41A0CA58477B3C92031D058D40829478329C010407693DD2F56C8445EE4B4B06BCF5E3122C7B57FB6815C33E011C54D5B2A892FF1162D01F799022CD01C53702AA11161A2BCBC44C57B093C3B9D19DD04E9C6C7440592A7E505062A96E9015F0EC130ABAF6DBEDCF08F3D9D9D0D389829560F001A2726262CF7DE7BEFC28A22701540E0DA81A4ABAB4B1A1212220B0D0D656D1088C02B11709116581F4037DC919C9272201E89D6DB0C22F7601EAB3A48922F4E11192524EB5552D4BB2914762E6A4945D11B2BF063FF1D778ADE333D3D2DA68AEDD8B55BCC37B88D4BC0AF1772705D3C89848786D9A52C0BBC7B1D7F110826A38174622D8204541F0B00A8571486AEAF2D66CB70577BDBCF1B2FD51D431C26D03ED3F8FE593C1BC10016D7DE7F4B6E11E3CA06AC0F783C8137B68DF8D220B68DB810BEAF6F281A36067AE1405A5ADABDB023C11C3C5FB47E7CC361B2BE30746D61BA7D1EB4F2C7584AFC1FF9B460F1BFACFCB5AF7F9D52D33284685A713DDFAA96807B0EBE0EBAC3326F21A54ABDB487BAFB781720F0F5CE4E4DD03CD24408D2843A2CC2637EF70604DB826D6E7070E077F517AAFF2FCE35C681475BF3EAA139EC3773F0DD6B00B7F42651DED202021000C11884DDC236E2A2581FA46BB4DAA75253522AA14865DE02382A1FA1B30F1F26F92EE3F5BB13E072137F5C44E187E2FC9E89F48D6FBE405F38708006FA07681CC1E15E793B9680F3D0334F73E73981BE7AA92B1098EE4D06BDD882009860049E97C5AD240C1DAD2DFE639BD24D9EA8AFBDF00BFDD4D4555CD334F6CFA0E31940F9260E3C7B7F1CB700FF6FF7590ABE85405892162016E5B088D7AA890C046CE10046597272F25331313139FC314F41641034ACBF40FA070648BA38D218DCA8A1DCEF56FA2D10D919FCF58B2F3A5636E1F3CDAD2D6434CD934C2EBB254BC02D16AB9852C6EB28642278E46572C6522058CD4632CFCDE23A0228481D2A269DBAEB015FB6D03867686B6DBAFCF3DE9EAE4B78ADE3C0E3371A70FD46EEF568F379BD5EBF909E9E6E63DA5F5CB769BFEDF709744F0B9EAA890C046603048E8737F76665653D01FD10C98DEF1E401E74EA0BBF4AFA281D59C34CA4698925556F2835A537D054DE28059A141430A1A098D38924D12FAF3F9494ACA7FFF8C31F3A16B770434A45AEA486C646B24B64628ADB8D2E01EFEBBB0AF09163D0C5E748DDF540F2AD6AAC66833847A02A18810FF2A807BC01C13A6F9DE8EDED7CABA5A181676EEB98EED1B966F1F71CDA165AD7340F676675EDF59E827FDB6F14E9CB36829EC4201382C225E47050558C46A3790C6EE16EA485207FA8FDD0CEF748FEF4F4B5D420695452CC1B991452A311A391CEE3B8D0F34FFFFBE72E00902EAE7794D0F8F80418A19524B2805509411E6E9EE4798162D1CCF55EB93CBF5FA76BF16435090048A1EA6508BC3FC2D009025C87797C74F40F97EB2EFE16ED388A604FB1BA476EE7C00BBA07035939D73B077DBC05FE63BD55ACA76AA2D336BA5613B1852160E9098989CFC4444797639FD497C8BB98708E46BED544D2F0EBBF818562FC4F0A28E270DC9281A45FFDFA372E339A962D72A58EF64EEAEEED0310643E83CF8B4ABBAF3A96ACF1F9AE077EB90F772DC7CAEC5692D8AC6497CA2191031D9FF52A0C97D607F8A19F9EAE6EBE5CFF8B199DAE13D736C5748F801BD0998C684B8B1BDDDB5D85DEA7E25EC1ABA926B23EC073594E4ECEB3B02DA99E6C23338269C144C78A0ED2DC2383248DBEFE6F3FC8461454F8F59D649B757C8ED711FCF32FDE5836A5CD7DD22B07B8A6A68EC67453D7E6F03B81C069886F5BC323590C28F2E0C13D01412EB5538084938C84166090EC5EF480372080CFBB7B3ADBFF4F7F6F4F0D7EB3C8F3789EC5EF32E23AB8AE2F049E3F74FF8903C0575AE0F10508C625D544FC482D74C1BECCCCCC2FF1E8A327DBC881698D6CA2CEAA463297E9443551322FA592BFD94B0143418E52317CF84F7FF63F9750BF27003801C2B79839537D9E668D26117C5E9738ADD78BFB0C2C29BE90C42B10643209A9E48EEF332DD869C1BE7C80C663D017DF5B58989F1E1EE8FF4D6B53E3FB786F129D631A6DA3C73687DF6382939A5F2DDD7F2A00B09A6A2218826D6338DF3C046EE1F1E8E8983BB953791B57304867C9A046A0E6024831AE5A9202FEEAAB5FA5BCBC7C316760A5E9EE623FC032383040FFF0D3FF2556FAB8DB2F6F4090E1B3C10A7C7F808C4CF36029EBC262FEF754C0F1600B89E675E36387AF3437FE0A411E62BAE7C0B3BA47C730A243589046AD3742F79F2A00AC641B796CC1B59AB89816D2F3F3F39F0B0E0E2E468F90F83B8F00E7A4471E7D94C620DCF8D6B2199919E2E60F524F817702635127BCF4EA0F844D73B763EE81C74748AD545008363382AE375A84765822EC3CD0BE2B100CB3FABAAED6967F9E9C1C6FC7F74FE2DA85AD63BA5FACE1CF23755AE1A86C3742F79F4A00AC544D64DBC845240602CF3D406F8E50A954650C04EC8BF30500E7BEEC9C1C7AE69967C58DA25A5A5AC4383C8F1CF23C435F0070AC947E4DDC59D47DA1852B1054B08011A12AE144A60CF0F616AB5FC2F05AF9D6621918E8E97EA3B7A7B39A038F6D1A0017B60E8EC8E4B475E8F9B69BA1FB4F2D006EA49AC8FA0096F1AEA4E4E427ACF3F34A5F96B1AA6A27EDD9BBF75A80F93E026DB07EBC72685DD13A0A8F085F42FD52976033003C31003F1481011415114A4A3C4FCE186886475A3D0A43CFF501FB826D766C74F8779DAD4DFF8A77F88EA1C2D671F9D659BB77E679B0A2DD5B31E77303007FAB89BC6EC19916B0C51417173F8DB4B013C1F6681B0F1C3820EE25ECDAC3D9D67576760881C7338F79191ADFD2C649FDCEC7DF7EF7DF5D630067EF974353446BC24913A6269DDE40E3BA1907DDAF200CE97AFE5F9899D21DEFBCD2FCB6796EAEDF69EB5CAB781A8D66BEB1B151E4794F25DCCF3500FCA92642090739E726F268231A2F7D4B65E50B60831CD7E0F332AFE79E7F5ECCEFF324FECC2633D242B39851949B9B2B6E57E3A47F270064B2806BC1D44684517C94864C660B0D8E4D8A9B5B7A0CBCBB2D5C0482C938D7DCD7DDFE8BC9F1F166F72A1E849D19ACE77715EF730D80D5561379ED0203016EA1222727E7790045C3A980EF32CA379D5A49F5EBA6A6C4CDA878D206DFD68EF58100C0BFFD3E49C100A1EA604A8D8F11E0181819A729FDAC473DE06D7A1680393A3CD4FFF6487FEF095CEB24079ED53DFEBEE12ADE9F0500FCA9262E968E83C9F18F5684A351B51B376E7C303232F2A1071F7A3888A9DD13003CA9FEBEBE3E211479BA1803E1873FF947CA4849A488B0501A1C19A3C1D1095A5C4DE553183AADA21D943E3D35FE87EEB6D6DFE3F528D33D023D0310CF71158F6BF7B7D2D67D6E01E0A99AC8FAA0A8A8E85A35116008E22292531FE070ED7DF7DDBF7DFF1DFB1F0D0B0BD7AE0400E78399A3A3C3A10F7816F1D8E41475F70D8AD93DDE47EADCEA0308A2413F73BAAFA7E32DB3D1D8CB553C047E9ACBB75CCC71DABA9BA9E2FD5902C09B6DF4564DE4B480868E79EAA9A71F2A2FDFB827305011E85EF07155FDAE0FBEADCC8FFECB7F23BD61CEEB0A5C4FBDDF6232758C0CF4FD72727C540CD3B2BAE7F2ADB38AC7B57B30D6C2C74DF79F1B00F85B4D44AF16B69181C06B1B333232329F7EFAE927B2B2B28ADDA9DFDBE35BAF7CDF3141C3C7044EE7E71716AC93BAF1D1DF22CF1FE53CEFAAEE7972C6ADAEE2FDD903C09F6A22982068B18824D202CF3FB8EBAEBB2A1E7EF8912F46466A635DA9DF23005EFEBE5D2A13B96279EF77DE7FC76EB7E867A60F0E74B7BF8BF61CE15ECF553CE477FED7CA8DF8DB723BAA786B00B8C16A225E47E0EFC8E79E7BEEDE1D3B76F0FC03A5B7F3BEF8F2AB362923C0E3DD3788E7EC5F1CEABBFA96D1A0EFE4C07F9C55BC3500F89916D013653C53D9594DE449AAE458E91C91949494F2FCF3CF7F11BDB242E22117FCF577BE67450A90BB4FD8B0CE5B7A278787DF9A9A1CADE1D13A6715CF752EDEEDAEE2AD01E006AB896C1B5DE71EB03E0013943CFEF8E34FC4C6C6A62C01C0BF79D50202087456F1ECB6859919DDE4EFC606FB0E72F9D699E7B99883A09BDCE7E2DDCE2ADE1A006EA29A889E1AC893505CAB897CEF83679F7D76DFEEDDBB1F54A954A18B0C60845350925D62351A668E8C0EF6BE63B35A8799EE798C9E6D1D58E613A9E2AD01E0165613A10D0410B8A21883C70B2FBCF085C2C2C2BD7001468BD9DCAA1B1D7AD3A09FEE5ACCF1D36CEB705A8373CEFD2751C55B03C02DAE26228042282ECE51548209D25ADB3B43FB7ABA1A116056F306B67438C51C2FB3FEA4AB786B00B845D544D7256DD815C8D6919FD13672677110A0B0706FE7CD69EB3EE92ADE1A006E836DE46D6E6E2E003D9DDD83140C2101206005A556A6793085C8F19F565BB706809BD407D9D9D992BEBE3E297A38EB04B10F5AC18E80DBA11D6C9F97C0AF01600546608DE0BA9FBDFC6799EAD700B04A20787BD83F670DF6FF01137CBAEC0E9053820000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (52,1,'Modem_(24)',0x89504E470D0A1A0A0000000D49484452000000180000000E080600000035F8DC7E0000000473424954080808087C086488000000097048597300000298000002980136D347DF0000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A0000036D4944415438CB8D545D6C5365187ECE4FCFE9FAB7365B4117420C9BE0EAA8CAE06209CAA6F166C9C2606162BC592421811BAECC8C3F373823241AAEF47E5BB417889A45B36886E90523862C80A6800E28821B5BBBB6A76B4F7BCE777E7D4F6189982DEC4D9EF39DBFEF79BEF77B9FF7E35CD7C50621E4F3F9377466BEADE97ABFCED82C635ACA368C1F7B7A7A346C32B8FF097084FD9AA61DD599718448E3748F5ABD0ECBB241CFD075BDCA18FB4133F46F6281C04C6F6FAFB519815708EF10DEB26D679BCE74944A0AB2F7B2C8E7F2E0780EE14833784100CF8B6B42D0185B21B1F3ACAEA54E1E7F7796E6BBEB0A7C70FAB3CB470F0F4AC9AECEEEF9DBB7B1B8B0801C117B7FCB7E198661C1340D9038449F4890093E126124A23746C203CD60A9BAC652673E1EFDFD098153A31F1662D168CBA5F4C562EFABFBFDED1D1D419EE721F0020CCB248147E49EA06DDBB04CAB71EF9324B81C4FDFCDC759B1B5F16628E0FFEAF447EF7FC9F7F5F589E1501875B58A92996B999898088E8F8FA3582C81190C4C633089C0344988265B34DA8E43353151AFD51AEF1CC72538705C071CC7953B773DBFF2F24BC9D1865346464650508AD72391E6D7CADB72CDBE6704945801577E9983A294D1D6D6F6A8F474F1566FD2EA1DC786BF298840380CAF84A6657959B82287E5E7B66F6FB24C6367B55271F675EF39DBD8A2E1E1614155D56062F7EE71D3D20F3EE0B3DCBD67E721A442904419DD7BF762477B47A386815008B1580B913E7615A190CF231409A349F653B60CB458083E71F1A7EFBFDDF1844DBDED4A2412EDADF12DDF956A2B893F225761E76CD4660DBCD0D98943878FC01F0C361CE4112F2D2D41230B7B0E73292B59962149B25B564AD355A5706C6C6C6C995BAFD1FAFBFBE5AEAEAED75BE3F189FB0FFF6EFD6DCFAF7831BD0F5F9C3D876CF62E32B7FEC2FC9DBB944D18B2E72A41042F8AA8A9951B4AAE70FCDAB52B57D3E934236E97DBA893A958DCC0C040D381037D27C86B9FFA44513E383888602080D4F90B502A2A6D9F088BE633A6E7CBC5E27BAB85DC85C9C9498D389D351E7EA30EF4D4A7A6A6EAAA5A39777166664B7CEBD64FA8046A341A855F925CC60C28ABABDAF2E23F672ECDFCBC2BB770FF6B7260EDBFE4EB1D151B86579F6432191B1A1AFAFC7AE6E69B376EFD799955CBA732994C7E6E6ECEDCEC59F4D420C749743CC8D417C6F4F4B4E13E85E05FB8DA080B38BFAAE40000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (53,1,'Modem_(48)',0x89504E470D0A1A0A0000000D49484452000000300000001D0806000000EC30EF6F0000000473424954080808087C0864880000000970485973000005310000053101B7ED28520000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000009CA4944415458C3CD580B705467153EFBBCBB9BEC2B9BC76E5E64F32890101A5E050A550A532AE561AD0D56C930C51922A0D60E6A61C01119EC74A4D5B1753A5A1C4785D82AD8A10333425B71686D3BA0502B69424C489ADD24E4B1D96437D9F77DF9FD7F489A84F028944E6FE6CEDDFCF7DEBDDF77CEF79D73EE6A5455A5DBD9DADBDB1DAA565F2D49628D244985A224BF222795BA3973CA1BE933D834B74840E80B0657CB92542389F243922C09004F9224133FCAECB3F4BE2CC975098DFACAB2050B7A3E0F04348944E20B4951AC01F04701D63102F60AE85102F23822236BB2284B7F5744A94E95534757AE5C19FDAC095402C8065956BE8163C15500AF10884663A4D3EB684226C6088DAD45F13D47534AEA901A8F9FAAAEAE96EF14817CEC5FC75E837DF6B5A29B1245BA78B191BA2F5F26BBDD41A224526E5E3E994CE6A93332E17EB907C7971555ACDBF8D863FFF93408D8B13F8A7D03F62F62D7B245767E3298C1C1413A77EE1CC56251CAC870516F6F0FA2AF27A7D349E150985C99592423338E8C8C2BF74F4960FCFF0DB228D62929F54FDBB66DEAB82502CFFCE257AF6EDAF0B5B9EE9CECA2F117288A32F6B09696163A7FFE3C9904814C160BF97D3ECAC97193C160A070384C4E000E85429488C701DE49F1589C32B3725818C8807B2679635276F85185BFDE4225AB5313FABFEED8511BBE69024FEEFC71935EAF2F2E9F51F6DE86EAAFCE1504A395AD2712497AE79D7F72F01E4F2E0D0D0D515FA08FCACAEEE2A0D9C35D2E1775767692D168A4F4F4747E8D252D9DE2F118A112915130E2495ABE661C2532D11B53158304D68E8BA2782890E53CF9526DAD785D023FD8BDB709269C0E1224180C81B2E222BF2A25E746A2514D5E5E1E353737935EA7236F490975767402681A0982893A3AFC949D9D438AAA40527178C14EC160908CC88A46ABA56422C141C762317E3D0398EE70904EABC33D34B5B426AFC9725012C5BFC073875EF8D94FCF4C4960DBF7B677A559EDB96648C300126FFCED1824108B2F98378F16DFBBD86CB3DAC8EFF7537E7E3E0D4786697060900AA74DA3FE603FD7B915E77B7ABAC96EB3533295E21E60C023C343949666E57E11606E11E70CC8540A478B258D5819D26875D72FC513B3732933C3F1DCDE5D4FBD344660FDFAF53AEFCCBB2FA6E29132A657A72B8B5E3BFC3205FB47C0798B4BE4C7373DAE8945A35A6C2051C03A30405B89D167D7B9E185E06090F47A03F7C410E4654336D8914927C13361245194E02B99743A03B2138397D241568247CC37949646A31DA89839BDC169B7BB1E5EF3A50A4E80EDA8C7A6928AAA06C168F4EA745AF2B75DA2A6867A9EF66834CA8F26B399962C594AE5E533A9B0A09057A218CC9A0B7975767490CD66053095868787B999FB0301B2432AEC7EA351005115E64E9005D21B82D16D7627F78811B2325E5576276602D994F2DC9E7773DCD9557A9DD68E20FEEF2B6B56CD1825A05DB76E5D5A6979E50E7CE97618D11C47BA4FF5BC469D1B1B29E7E76524362B9C04DB19E0AAAA2ABA7FF9726A6B6DE5751F99A128EE712173DD97BB28333313461E06706403E007070690D511520E6706CF062BBB767C4663BB56D3E3FF9B4CA6FA823C8FD5A03714B1ECB37D70A0BFBDF69B9BBC631958B56A15CA046539333317794BEEDA91919935EFC2B9331A5F693349FA24458309D2F875243769784493C924CD98594E4B97DCCBE5919D93431FB5B571726144977DADCD61E70D8E9D0BF4F651BACD76A5248BE4F6A04F6A35D7D0F9E8311577DA1D6187C3E11E05CEFCD4D7DB4D9EDCFCF6CD9B361643DE2AF780061B6464C08DAC74E67BF20AD6EAF5BADD8A249A58D49BCBEAC9BFB19EA6ED9C43628B3A262B9D4E4FB32A2B69F98A153CAA2910CB853F5A5B9AC903322CE2CC0F26B3055E0851A1B71895C83C45E5F998402A25922C26951CB7470B0C00AEE31EE9EDEE226BBA95B2DD1E16F8D683BF3B5071E2C489D4845162EFDEBDDA86860601117682D3D282C2C267044128668D29A0EDA5C450922ED4BC4B19A73DA47F336D4C564E48E1FE15CBD1E04C8407C307431C485656167575755271491924E4BA6E9541BD8737062131271F4558C481814203FDACAE70E0ACC4B3758554DF91BA3F561E3B762C72D52CC4B2B16CD9329DCD6633237A5966B3B9C6939BFB7D45966D0C6C4B6E23B5AFADA7E2A7E752383E444AEF4846E2205959399B97D92A94DED64B97A800669F565C7C039D6334190872905654AD51B92461F0548275741737BA169263EB28C3BEDEBEEEDD67DE7EFBE8F1E3C7E3D79C46476585AE9A8E8FF9A5A5A5BB51161F4136F40C70A7E0A7FFFEF01FE47ABD80EC0773C764C5EAFF030F3E480FAC5C4582D9748DF161E47304FD8495602B06419D4EC701C228008EA607D931E98D12420063BDBDDD87CE9F79EF45F4101F3A7EF4F0E1C3F20DC769262BD47C635F5F9F03299C357BF6DDFB5555A902588DCFDA4ABE451729F3D522EA29F393E52D07257B457A68F51ADA5C5B4B8D8D0D941415745C750278E6958FD0478CF003F3080709B928528A8FE446D3C7C0113C2534103CD554FFC1FE4824D200A2A18A8A8AE49E3D7B949B7EA1B9920D369D9A51E733DD6EF7CA92D2D27DD148249B49A75F0ED0BF6BDE24395DA4A21FCDA1C5B396D2779E78021D5DC7FBC20717EA29298DC8A8B5B58DE298AF0493C00DAA8334F45A56B7F0C735CED646C0E3FB9B3ADA2FEDEFF0F94EA39C06B0254E9F3E2DABE3407FA2574A4664DEBC79FA828282347CF44C9F3E7D0BDE03BE150E878460AA9FDA663452C6BF3C54682FA22D5BB7C1C499989FF4A437E8C987C9F5C0EF0F716930700CA48075A3016384CAC6F6118DB3462A89A960A0BBE7D7CD4D1FFE19A5F73266B1C881030724750AB0B7F44ECC6475F6EC5903A2624754BD4BEFBBEF69687F79687050C37CB068D162BA67E13DD07884BC455E3EA1B292F8D49E7D9C9001C0ED691612E197A4287383324260910C0DF61F6D6EF8F005006F83FFC22828A951B97C9A2FF563B242FD17103917A6D0F90B172D7A0EB5BFB87AFD7A62132C8B684F77372F875EAF9776FE641F65A39CB22D3C1C1DAF733516193ED3E16B7D36140CBE8FA0F4E3FB12478E1C51D41B00D4DCEECF2AA3B2C2DB98056348CEFCF9F31F5EBB6E5DCDCC19332B997458EDC64B0AC6EE0E3A7EF20D0A0C8479471E052FA692BE404FE72F03DDDD2761D01E5C17C54B93A4DE24B0DB26308E881623092671BD1540F257AF5EFDC89A356BB6C0F059A3D76CDFB567AC5C2AB2323414EA3FD8D5DEF6078BC5E287DC86162E5C285E4F2E7794C0A46A654475CA40172FD9BA75EBB7972C59F265F8457872D71E0572572097D7FBBBFCCFE3D917D18107702E793372B9E304A6EAE68876764949C9DCCD9B377FF7F9DFFCD610ECED7931361C3E0BEFF4B19F592697C5CF0581C9DD1C95290DCFB121D2AC630F83580411673A576EFB197792C0F8B28B48F39F699019E593EAFC7ADBFF017777D42D7614FC5B0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (54,1,'Modem_(64)',0x89504E470D0A1A0A0000000D4948445200000040000000270806000000BF984E3C0000000473424954080808087C0864880000000970485973000006EC000006EC011E7538350000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00000F754944415468DEDD5979701BF7757EB801022071F102C09B94784A3C44893AABCACE5492E3588925D1B54B27E9B4CED46EA66D9AB6761CD952279D8CE2493C492793C91F49D3727CB4D24C93388DEBD6634BD64DF1924452140FF03E00900048020440EC2EFAFD9600095094C3D892E3149AD5028BDDE5EFFBDEF7BEF7DE42128D46E901BD24C3C3C37FC009D424F0FC239CC09F1304BE79C6E97C67FFFEFD1C7D4A5E92FB4DC0F4F474B920449B389E7F8AE3851C5EE0090410CF0BC4897BDEC545F937A382D0BCBDA6A6F5FF0501814020331C0E3F09C07F0280B53C032A08C42F0316C12F1F4B78BF7CFC36CFF1CD61E25E7B78F7EED1DF37025200FC08803601C8670048B60EC004E06BBF4B22298AEFCE0B1CD7CC4742670F1D3A34FF692540CA71DC015C03D0FC1710715D1CA01003C7258047CE277D66FBE563AB44AC5CB74A521029F3CB88106D3669550FDC2F364AC0166C4DD89EC422AD1F2EEBE5C8864221BAD3DB4B93931354B7AD9EE47239FE9A34F93C769DC07F58AAB878817B83E7A8F9C96347DA3E6902AC0C700C382380D8B91F2A6B00F7CCCE5247473BB95D6E2A2E29017005F5DDE90576096DDBBE83B808472AB57A831E9144D26D644A734408BFF64C53D3E883224087ED0B31D00798E413BF64E7726B161797F940FF005D6F6921A9544A15159534333B43DDDD5D949999498545C520C445B320C79E93430AA592224B4B6449CF5C264258930E09840A2B9F57488AE2BCF3489966615171F6AB5F7D6AFEBE10F0DCDF9DCC3AB0B7BEF9F39F3DF48700215BEF6461256ACBFB60282882EEE8E8A49CDC1C2A02D09E9E6E1A7238A8BCA282B2AD56EAEFEB47D4235404352C2C2C80A83E32180CF8CE4E1ECF2C194D26D2A7A6DDA5A40D1A691074FC828B449B17BDD3FFF3F2CB2F731F9980BF78E1857C65543EA451ABFB9A1A8F2D56946DAA5E7B727C01EE1937BDFBEEBB343C3444F5DBB79336454B57AE5EA1C54080B6EF6810F3BDABEB16A50258C9A64D343C3C249E9B9F5F80A8A7D3E8C808095181AC363BF9BC3E9AF379A910E7A124421DAA8D8117EE4A1597C0FC22C2379F78FE6FDB7E6B02FE06049044392493C9488E2D23DD72E5CB4F35E6190D066B5CFE5DDDDDF4DF6FBF4D128984F6ECD94B2EB79B2E7C701E32CF02F01DE4743A45E363D1CECACAA29B9D9DE4F17AA8A2B28A94907D3FA29FAA4FA52C9B8DC641C2E2E2A24842084AF27A3C50839996901AA950884AAD49AE28312212D321A9C14A4EA3DB115EF837A9947BED5B2FBE38B641024EE543F8430CBC2CB6E17D302FC7D691614CDD76E9D22565717131D5D76FA76BD7AE516BEB7531FA9500C74CCF05F0DBE0F604B3BB76F52AA9556ADA5A5D433E447760A09F7273F344B93382984FE4E6E593DBEDA285F979CACCB6D2BCCF07420264C9C8203F5245269353AAD18873E5CBE6FB1B55B08E5AE0175C64B90557F0A1B3A74F9F5EB827015F7BE1546128B830986634251240E7DE7D879C539391C6C6469784C836ED9CA683070F92D96CA6F7DF7F9F1490FBAE3D7B687C6C9CAE5F6FA1C2C242447C0BF5DEEE415B3C052FA88462A4D48D9430994D64B7E7C223066929B244B69C5C9A71BA44E059569B980A3CC791C9928E6A32430A859252F47A0A06FCA4379812400A1B2BA7C9E706D17FFC428872CD3FFEDE2B6F4763C0571570EA54A1E00F0E06FD0B6430A7931652E5615E675EFF572CCC879C8D229F372FFD7163238D8E8E280B0B8BA8AE7E1B5DBFD64277EEDCA11D0D3BC80A1057AF5C11655CBBAD8E6666664522D8B9968C7490D005C214945B904FA343C3E279F6BC3C72433D68B0281B4A70B99C22F969260BB9A727C5F7BA5403CD7967C535C9946A968FC90D566CDE486AB084BB1B33B55A3DBAADBA6A5AAF561C3F7CF8F0C80A01A74E9D927AFCFE12ADDED4CBE4199807602E8228F174F5E239B1A9896F9A94146674427151A19445EBC0430F8BA5F0C207172071A39806DDF00A9044D5D5B52457CAE9467B07A26F86ECF3E8764F8F48787E51118D8F8E027884F2608E531393A231327F98C67B763C3D339BBC305C76DC88A0F817E6456029BA541CA37BA4C5DDBD041B573617175DB758CC3BA512898AE4928223070F0E8B04B00DEDA6ACB4AAB6D29C91D111973F6B007A6EB6D3C4D8E80A780C3C2BEFB350E2F6EDDD2BDEA0B26A0B6D2E2DA5CB972E62917EDAB96B37CDCDF9A8A3BD9DF2911236806A6F6B138DB064F3661AECEF17235E8CF7E323A3B86F08E715911329C3AECBC92D10D3C1EF873FA05C066196216C69304929BC61E36552A04C8BE5923DC75A2C934A33597099814B15D264028E1D3BA6D0683479F6A2D2FF54AA54157123743BA7E886E32A39FEB493D4033AD2BD9141A185F00A1911A448E596AD540849DBED76DA034258DDBF75EB26A25F43668B0529719974C8E3B2F20A3105584F505659496300CE4096C22366514D2627C6A9007D443018241788B0C334C5CE120A30593248A3D3890E9FD8880931F9AFAD0CECB34AA5EACBCFCD59522AE49512009732E0D2E5BE4E1E95171C39B24601B82055A6D1E416176DFA4A7A66D6D388560A9376DB950BD475FC2ACD3F3E4E969F1652EACFAC4929C136B942417575DBC88414780829A152ABE8C2F90F28035D6039C0B6B7B6822CF8425DBDD8134C4F4DD1D69A1A9A4705E8877F141597105BA463B09F6C3049AD4E0F650C91C1682613AAC2723EDF73924C52415488FA2D26E3709A21AD5C8A9BB2161CFF01BC4454D8E8F0306DADAA2B6E6A3A36B8E20190851424288D46632AA29A9D92A2AF2C2E2F7BCE6CC968E8E96C930898465CC6499278643450DD43BC3D48A9FF9E4DE4902511C1FA81924D25545B5B475BB66E15532282DE9FA5C4F090030007A9B6BE5E8C5C67471B721F84A6A54119372923234BAC048E813E444F0DA32CC4EA241B6980E22A884A04613E3B3B2B05F387421A03CE08082D069176BD506406E5151450302C147FF189230E560956AA00334298971C04A4E0C6461CB259EDF6FD0AB9F279B94CA28D83BC5D7683C69FBD499288948A9E6EA0A5592EC923D8565A564E3939763A7ABC51ECFA6EDDBC8189703B524147972F5EA44C34497900D8D9D60A53D5D0A6D20A2CB04F54C9A6B20A421A263540DC1A734B9A0F703CB41888A6A5A545F5FA5429032E89455C80538E0D3B4499E743654A945576DCE39D29738E8DF5A175169286212881F9014B14250069B1B7E0FBCFA05BFB465AAA3E8B952D06745A37415EBB8B342D06723CDC4DEAB114D2BE63A650709508663665E5E5B47BF75EA441059D7BEF3DD2C30BB66CADA1F6F6560AE3BC5A3455AC124C4F4D52152A86018DCF46CD4D040EBF88E2B309ED753CC725B1BD67C645F3A2A1E6538A56479204450C0F0FD69E7DFDF5AEB6B6366EDD7198A5445D5D9D0C0B56A5E2851CCCD26A75CF665BB39F42E3A38E83F4713EBAF297BF26BEC64F69FF65A5F4EF1427550AB621AD6833DCFEF38F1FA5BEBE3ED1EC768294F9B939B13962269A8B3278EFC6E66EF9B34992F52646B3057D858C124D2E145C84A93A51922D6460554354C4AA0F401593DD9DAD0706070787CE9C3913B9E7F300A68693274F4A585AE0A306A96184024A6C76FB37016A0F6428650067246E1AD87993A20A81D2DF282067FE38A9EE688977094964B066A861E72EDA0432AE5CBE448568ABABB6568B3EBC56D27187E7D6D476769E1B8D925A9D422A8D7A25A2A2BB831C9FC74D32345A668CD9EC58A20F509422B3B3AEB31D2DD75EF1FBFD433E9FCF7FEEDC39FE373E118AA78556AB55609E67CF0B2CB8F96E007A51A55216B052B8E20FD65B347CB285A4334AB2BE5A46CA8BFA24353030FBF6EFA7C38F7C561C7C7E9BBEDE8BA12A805E0079BE92E30C1C4BF0F0A25FEC5AF5B827EB34139D9F9DBB30E76DEFEDEA7E756262B415417441D47E449F037661C3CF041911AC5CA23CAA743A5D2A00A1C7B03C61B5D99EC51AF42CDAC17090DAB75CA6C9CFF592DAA5A592171A28C00788F3AF1A654D4D2D7DFBF4694C86FDB41058446323FB9007A9024007C42E91CD04324C6B4926876E3182264A8D715CA152AFFA408C80F052687AC4E1F851FFEDEE5F2350D358B7CFE1708459EEDF350B6C9484785A78BD5E0DC830E0702EA6C4AF83D547D0DDC918C8402840612E4C7D193D34F21C9A28879E327F5A44D23B4ACACFCFA757BEFB3DB1D162E5B5F3C64D2C94235E9CF8568988703C0DA16C4A005AAE54C622BE0C5E2241E9C6B52CF7E52ACDF2F1980FB03D8C31E8724E9DE9B87EED5F808F3D3EF3C2C71677ECD811C1FAA3D104D01FE9B1783C2DDC6EB7027EC0AA8519F7D952595575124BA8585A5ACE7D0FE7A1CBC7DFA6E03E4C76D31A2AFBF37D64D019E9D5EFFF8096BB4DA94804C8A40E10B1C42D1330363A461E989C4A931273F5B8A489142CC2486841AA48CA7131F2C874749717FB7B7A7E303FEFED81DCDD88BA1FEB8CB07C8FAE03F663FD3092981672B95C8F2DC364321D8422FE0129616269110807A82FBF8B22EA3065BC9F2B5EF7CD132F613EB0268DDD6CCFD2E267AFBD490AF52AF0B8DC35E8361572292DF1518A8A7F3BD9E4C2C1A063C431F0C3F1D1E1F3B8761AADFD1C93FBA38F3ECAAF8DFA7D23606D5AC05DD520C1807BDAA086AF18D2D29EC43145E220C59E077EF14B5FA2D99919B4C0C562994C7C08F3F72FFDA3F830245ED3554A05A56935629A843040AD443C4600CFF1F3AEE9C9E6C13B3D6F623913B887177F2BB89EDC1F0801EBA5457A7A3AFBD5C882C514EFDDB7EF250C40DBF159C20868D8B913F3C243E235A3688298E44B511A113111F0D74F9C022172F1418BC598CA467F9A5B0850748D22F08FF37967FF77A4BFF74718A0FA71BB19CCFB01EC97E0F0427483C0EEFB8FA36BD342A150A4A35A34D4D4D49CF4783CD6C6279E101F95C723CEA6434855EC120BD0A73302B22C66D2A14576CEFAC45E60ADC9A1F5ED9A1C76FCB3D73B7B1D7FD289416E3EE6EE2CCF85FBF5C3C87D4B0B90918632646D686878FC738F3DF668616161E9DAFC6746C814D1D2D64E6ECF1CCDF90377B5B75C64C93DEB9AFAC9F4F8D8AFF07902E47AF1E782151515DC46E4FE8911B05E5A204A29D84C907CCED1A3471F3B74F8F0D366CCCF0C3C03187F7DED1B2F8BBD413CC71970AC31BCE0F3FC726C74E827D14864E4A3CAFD1327606D5A40E64ABCD58384744C6FC5CF3CF3CC9FEDDAB5EB8F104979FCDCBF7EFEA5A80CE3672CFAD1C5C0428B6B72EC87FEB9B95B00ED84A2E6D1912E2536331F6B6D9F04018969F1D65B6FC96C369B1A1F0D6CC8AAAEAEAE6F6A6A7AB6A4A4A4829DF757CF9FE0A00A3917098FF9669C3FF6BADDEFE1BC49D4741F2AC6C792FBEF9480B5698148CA11E11480654D94EDF8F1E38750B3BF7CE29FBE43019FE7E7AEA9F1FF8032D88F1AB3F087002A4BE4E3CAFD5341C07A69816AC1862C034AA10966C9FA0637BEF662EF47E4C3F7EAE27EAF09589B1656AB55817AAE60C7A10C0E33C3128EF1F753EE9F3A021289603B80153FC7F60F1478FCF57F0F62DF64389EEFB80000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (55,1,'Modem_(96)',0x89504E470D0A1A0A0000000D49484452000000600000003A08060000004F8D5CA90000000473424954080808087C086488000000097048597300000A6100000A6101FCCC4A250000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00001B124944415478DAED5C697414E7957DBD77ABB54B2DA9B5A1152124815824B1098401636CB31807BC81633BE78C2771166C666213C7269E9C3327F327F333936DE28C719CD88E1D2F079B5D60641601424212DAD1BE2FADB5257577D5DCF769714BEA6E89C5F15AE714A5AEAAAEAAEFBEF7EEBBEF7DD5286459A62FCB525B5BABB7CBF2363CD31EC9212F9724C7BB24395E4B4E4E3E4F5FD345F1253080B2AEA92947B64B7B24597E5092245FAC24C958792BC9E490A42AD9E1785DB22B0F2D5DBAB0EA5B03DC81A5BDBD7DB1DD2E3D2691FC28808E1803DB799569BA21780B639CC7CED764C7E8DF323333BBBE35C04D2CDDDDDD510E5900BE0780A67A067CDAFE89559EFC6CC3B91FCB0EF935FBC8D007393939C3DF1AC0C5D2D3D3E3A754ABBF23391874691D56850B306FDE1053CFEBC5F66D875D3EB43167CD69DC56FEA61B403B3434B44522423295EE9765490FEA205950883CBE959CB6F2D8569EB95F9AF85B9E76AEE4E2B32CB60D88B2D71536F9D0E6CDEB4BBE490650D8EDF6550E87BC47961DBBE1DD81EE69C495474FDB277BF27E57D1E3EA1ED255C941AFD955D21B3B376F6EF9BA1A6001B1A74B12737BAC672A990AD2A4973B9D83E44C7ABD01ABDE8531E64259AECE81A895E5137687E310D986DFDDB56BD7C057DD0061581F66E0B12E9327BD519E43129DB9CF66B351654525955D2FA1BEBE3E4A484CA4B4C5E9343838445E5E5E73F07E57D1E3D210BC7F08EBBBA0AB433AB21F83311C5F150318B13E300EFA46ACAA8903B2273AF0E0997D7DFD54585840A525A5F0781DA5A4A6D1BC98586A68A8A78AB232EAEDB5507C42022D4A5FEA0ECC5BA4ABC9F3DAF0DD3748B61FFAEEA38F5EFE321A8041DE340EFA8E7123CC586ECEFB25AAABABA3CBF997A8BABA8A620078DAA2C51410104025C5D7A8ACECBA3827362E9E12E72741CEC85455510109DB05432C213FFF805B3784C7F31CD7F1F7219B43F9FA33DF7BB4EE8B3640C638E84C3321B35D642EDE3F3A3A4A57AF5EA50B17CE535F6F2FA5A7A7D3E2254B6960A09F0AAE5CA11B353564341A69614A2A28683E7574B483924AC9D2D34371F109148B7564781846AB241BAE159F9044466F6FCFA0DF5AB28790923E618A720C2ADFDAB7EF09CB3FD500FFFD9BDFFD6AEFEE071F0B0E0A8A9CCB05C6E8C7BDF7A3F8A2BCBCB374F1E245F2F7F3A3CCAC1594BC7021959797210AF245D28D8C8C8277A75364541495959682928A49A552D3029C173D2F86DA5A5B9123CAA9134631858480A6E2C817D76AA8AF23AD564761E11173F3FE3946A8D3FE11ECFB5042F21EE80A3E7CF0E0AED1CFDD003FFEF717FFA1542A372F4E4B39FFD8EE0733B45A8D717603CC1C503900CB3D758A4AC0EFA9A929B46AF51A0A0A0AA20BE7CFD3A54BF9222252525369D9F20CD2A8D574E5CA652A07EF8799C329352D4D005D595E2EA2C06AB58ADC109F9028EE575559411DED6D148A73A3A2E791C361A7AECE4E0A0C36914EA7BF05EF7793B0A78CCDD18D7BBFE990E9D0817D3FCCFBFC0CF0D39FFF43A9526E871148AD56B5DEBB6963F5BA352B572970AE3B034C14425650C4A7797974E2C409A166B2D7AE05F0ABC962B1D099D3A7E95AD135F2F5F545146451FA9225D4DED646172F5CA0C6C6064A4E49012D2D21BE6F5161A1005EA7D35152F2428A4322EE40A454226AFAFBFB457E60E07B2DBD547BA35AD0981951C006617A532A55C815FEE2B93C79BF3C6B913775FFC435648754038A7A5D76D0A183079EABB8A306F8C90B2F230214DB55004239BE7A190CC58F3FB24B15131D95EC8AFFDB00E4C71F1FA1DCDC53141616461B376DA2C58B1753E1D5423A75EA24D5D7D7535C5C1CADC9CEA6F9490BE86A410122E19C8882E51919B40892B3A3A383AE5C1A4BCCE6F0B12888888CA60A80CEC6508392E62F5820F6D5D7DDA0EAAA4A61FC98D838328586514B531335373590C160A0B08848788B82861139FE814118A5E2E6BC5F96E7ACBA609C8BD81E72A8A4BFFEE781031DB76D80670F1C640ADA8E2810E08F1942C15E259BC3423FDDB37B67A28FB7B748CC454545F4FEFBEF434A16D28A952BE99ECD9B291034731211909B9B2BA823233393D6AD5B8704EB4D9F9C392D7241486828AD5EB506C9355EA81E4ECC9D3000E786C5909C3A48D222246C069FCF4D5E984AFE5049E530447555157923F9C62351070404524D4D1535238202007404A2828DDA545F2BB661E60832FAF8502F12B91FCE556B342E0D319BF7CFB1B6B1637B0454F59ABDDFE7FD5FFFFA59EB2D19E0B9175F991101132BEFC3F9032DF5355D92DD160D8015F7DE7B2F6DDA74B748A61F7D7498CE9D3B477E4890776DD840D9D96BC5FE93278E537171B1A09D35D8E70F7AE05CC02B13DB72E481C5A09F9E9E6EBA8C28A8ABBD41894949429EF2008B61E8DA1B35140ECF664A52236754945F175E1F81041E8DFCD00B9A633AE2F14446C790C1CB88E30D3408CA32212A7DFD02A80752D6E8ED43DAC92AFBF6BCDF43B2EF47EDFD773B395E0BD6AB730F1E3C28CDD9003FDCFFFC71288B0D5AF0AF33F0E26F44457969091DF9F07D24C59891170EBCD010141090F0C1071FC093CB68213C78CB962DA09F74BA74F9121D3D7A94BABBBA2827673DAD5EB3868686864462E6841B0ECE5EB97A15258192380A381730A72F5DB68CD2D216511B92ECD5822BD4DAD242490B92110529A88C07A8F8DA35EAEAEAA4F8F8448A898F13C7AB9194D92831C80D0683911A40517D7DBDA0B248F20F0AA6F69626C8D96E44A78902F0998FB1671B7D7D88873FF79AE196A46E13F2C55F1C92FCDA6F7FFDAB6B1E0DA0C0F2FD7DFBCFF67575ACF2F1F3A7C090302107C72868CC081FBEF316D5C11BB97DA007DF868787DB376ED828EDD9F39896E9E7E8912374ECD831E1E577DFBD19149401C9594EC78F1F8794AC100073144C28A2F3C80506BD415018737CD9F5EB7429FF220D23A1B321598A363536213117084A6343B0C7D7D654A3402BC7337889824D87676143F4A17A8E420404434535373682DADA28D814822808A781FE3E6A6B6EE47152A029149160A0011883AFA1C438E7D6E2B835A9ABD36A5BD35292FFF0D49E875F726900067FD7AE5DCA98E4B47795A4D8DA6FE9A2010C2628345C243206BF1B9E77F81F6F0BF0996379CB6BA8D94C89898936D9E1D02C5DBA94B68096E26263E993B367E918A260707090D6AFBF4B28224E8CB9A77301723EBC38815667AFA1909050F139FFE205F0BB0F2D87D1E2E0CDD7610C8E02954A05632C01DD44D275D4094C3F5C11B37198D7393730CFC7222A58093535D489BC108CEB4644CD43E40D52635DAD90ABA6503379FBFA5177673BF5E13BDE50653EFE41E298C36E279546EB06CC596B0697E7B21658909878DE6C0ECD00C4C777DCBB79C70C0330F8BFF8C52F14252525EAD8E445EF60C0F731E0B802F574B402E4510A85FA68A8ADA5C2CB1727819F58D9187CB338E8F4FBEEDF26850407283911B322BAFB9E7B888D5285E4791C91C151C08999252AC90AFAE493330264501AAD58B58A4CF0CC2BA8130A4053018181A8133229C86442522E40915622EA841450142FC54585C2E3E311019151AC8E6A4574B2C7C7C4A1721E19A13A24E9213840584484F0FA6E14739DEDAD2247F06705C669E9EA201BCEF5F147A2D6E96FAD6E70113D612121E713E26322554A5524471DD6F776DC77CF4C03BCF2CA2B4AF0B8CAC7C747B762DD86B7546AF53DACA527A8C7363A425DADCDA2F2644E77067EBA31F87BB1909C4F3EF9A4BC6DDB360527E523473EA6FEBE7EBAEBAEBBE0F1D9D4DCDC44A74E9EA40A1883B5FFEA35D95C73888AF91A14154B4BAE98BD8C46CA87426219CAFBD2972CA511DCB31006EBB5F42002988EE226E9880D95889CC2415D5D51262236028631C379F8EF664486061ECE3295E9A70B7966A0CF82083791C1DBE7B3A252BE9D024E866CD7572E489A3FA8D568D2C780170CC358BA37C0850B173438C12B75F9CA37351ACDC629C9777CCDCF3B038FEB7109FEF4CF4C119191111403CFDEB67DBB888202E87F8E822E1871EDDA75B472158A345CEF341233530B2B218E02C921A1A03B2BDA0F9C809765648A02EC72FE05A17652911BE213E6439256D0F592620A04452E4849258D564B1530564B53A3003E3A361EDFEBA3BAEA4A619470ECF3859777B6B58282DAF07700F9A37A669E7005E6F4026C36EF572815DD09B131C590E9AB01B84A803EE6F9632B0CF0802B03ECDEBD5B3530300021A1F6494A4DFFB197D1FB05A54AA599A805948AB16D69518108D792D50534BCDC42867A2305FC2592A46ED9AD31B891C6451903C1932C2C5999822A91304F2031372151AE58B90A8A6835F5A28AFD04F981B53E1B230351C01177FEDCA7A229B774F97261106E451482927C7C7C45438FA565190C710391608E08A784F9C982362BCA4AC90AE5153D0FC55A9899BAC0FB1C057C7E68781421D26F6EAEC18D2180A13DD4147CDE640A4A5328947E5340775AF1CF7B0F6EBDD7750430FF43261A71C1C0D0A8A88C8888E8E7F55EC674E728282F2DA6014B37152DBF44BDFBAB858657D7EB29F2E925245964B791C1F7E02EE7438F3C42815057478F1EA101484A4ECC2BE1F10D0D0DA0A413A0B87ACA02E8192B56425E36D359E40796A6CBB3B22835354D14665C2D73B5BB04B503F78BB885CDD238089E9C92B6186A46259E93BBA9DCB48B8262E23C518368D1A83514897D06A81E698EED87A9F3D453E7B3F91A069DAE2C3CDC6CC0B5E74D508DAB95151AC4C0D5FF38F8F212974938272747A54501C051808FC148C4663CEC7DE688A8BD5A9D3E900DD0587F83BADB5AC8AEB053D9D2ABD4BEB39AA4F0518AF9E512D29FF177999C9D3FB36C654ADABA751BDDBF75AB5039C7901FB858CB062531FDD422D19F3E755200CF51C16D8AAACA4A3AF7E959A1F5B356AC02BD4451290ABBA2AB57C8C797A360995033A530463D9270D4BC1824E605A27D5D05C5C4DB180804567377AA00037096A0C0008BAFAF6F8C3BD079E5DC5300E112841A2475D1E2C37B1FD97DBFECA4FD67A82028071D566F0CD61FA087601B95989CFA6888D9BC1137D71481870D06BD00D4EAB092553748CA4E355D4F2FA2C1EC0ED274E829E8ED4852D66BDC1AC40C25C3AA47A3510B4AE21AA0BCAC1C947494FAC0F56C8C65A09B0AD40F6740494CE02B56AD11DDD072146DF917CFE3BB1A911BB8DDC06A881512F7901642218106204D4B44FB9A5B1670A2CFDAE673E9827AA01C07129446A5EC0B0D0DF585932A27C12667AE5708A397145D15635E0407E1E6208EBC5F5A78F901602D4F18614A1D30610470B146A7D319B0DB8729093732F9FB07A5242E5CF8445D4D75AAD1A09B01EAD5B47CB2FCB49208EA55615151F84BA9A42DF076AB967865EFCECACAA446E401968A776DD82480AFAAAAA493C80FC323C3949DBD0EA0A621842B4149A7C90EAD9E91B902C02622019740115D167303E9CB3244345C4714B0149D8704CCB2581458B325D23978BFC3E120FBE8B0DD640A51EAF47AA55B9EC7B55895B110989FBC507469278E01EB0F4F1E39BC13C5AB63C208332A6136426E6E2E602435B8568B5D5EF8DB17D11084BF43A134F625C4C7AFE307720673C83E44451917A967572DC9263BF99E09A5C85FA6CD4A4B4C6D9C701F79F431D2E9B4F4F14787C1D97DB46EFD7A5AB27419358EE707EEE3AC806A4A05CFD754572131E741A5A9901F5688417204941617C1DB23452ED0E9F5B7D3CB99B28FAB72484BF243FEF244375D88B81BC8355C0C725B840BC8B1634A21452587E3E357FFF0DBEF00831160EC9861800923F096ABE2808000654B4B8B060F8180D019414DFE00DE8CEF3C0D0AD9121810E0351DD42E4307F505F5905713BCBF47A2F27BAE920A0FE05D10485E577CDD1AC317D529E787EC756B69C3466EEEB5D1896347515CD509E0976766510BEA8733B9A7444F29336B2525242589F9E22BF917C7A36039F90704DEB15ECE288A33C93E2A267AD851DC013F6C1D125297ABF2B88424617C57E7D96DB6E37F3DF4EA6E5C7F282B2BCBC64D3AB793F2CE86E0C97948488DC56231C0AADEB8400064EB4218E899E8E8E84C246F952B501BFCEAA8EC6779A4343B886C0AF27D3B9C42FE27DE631D91B4600125803A9A11C25990A75CA4F1E4CEA913C74501C7051A4BCFA6C6063A979727DA0799388FBBA277AA97C33437D8D72B9236277E77C0C3A3A9953BAE03FD140D8FF781134DE603E5CCF36DA3A327DE7EE3D0C3A869064C2693EDCD37DF74CCFA5A8A2B5A420234F06BE4304620BC3127CC6CFE9770B3398EAF359D722E2DCEA3CE3D5544810EF1C6E6BC979792E1537F8FB4C40030F039EB73842A62C5B32C230392351B859B853EC93D499D9D9D9409B9CAEDE9B142EA263B996E12716F77373CD840062FAFC90A5631C5FBC7F659A06EB8ADC1FDA620AC9EA889D791E191FCBADAAA972EE4E5E5239A06678D007786E096455C5C9C1A40E900941146F0032D85E03ABBE6CD9BF7A83F1606D019D87AFF5A6ACDA8219BFF30CD7B3B85A4160535473790BED98BB41D48E8A3AE8DC113EEFCF6C4F6071E10D4928B5CC0051CCF23B30252AB35B3A89AB937D0B85064CAF19985E74740375DED2DA297141C6A16DD624FE73B6CB68E86BA1BBFC9BF70EE1D00DF012AEFABA9A919D9BA75ABE3A60CE08A96582D198D463DCB567C0E00F051C0FFE9A8A8A8BB71238D3B2FBF907E9606F7D5913C42643C1642E63F2790DCA170A994F87B2C2FC359BAC6C6D0FABB3691D1C7DB75453A39C7EBE105DE698618B15AC5FC0203EF89E7996EFA7B3A851AE2363D3B87BB739542F148236D2D2DEF155CBAF02A927813C6D28DB51FEC31ECEDED6D7FEBADB7249749F866A281690994A4C245B58804031E8E7FDD120843A4454444FE2824246411B73CA7835AE55B41E53FCD230AB18BEB69AA8C94F8A395641FB67B6CF47D7CF498A02495666CF0B7F3DE2803D9DCD4249A725C8FB8F5623CDFF060BFF07C6FBF00D2C3F3679CA3FC0C785EFA2C96F3D78A0A7EDBD1DA5A0E6CBA70AF5EEC1EC218469DC1BFED97735DD11206E7851BFAB16CC5B537C4C7C73FEDE3E363E6013B835A6E2AA51B5B8A6838A30703204A7E219B74C53E1E13F4EFFEF0474A4C48A001146BE51595A275ECFC5A8C6BEF9FD64290C75E22181E1E111331EE3C788C3E4668D43A481A94447AA3F7B45C30960F940AA5B31AAAABAE2AFF7D7579791E9EA3132C60013B0C7A79790D8376EC4C3BCE45D81D793B7A3A2D21DCD4504C7A6CBD71C81FC085422D3D02B5F410BCC1CB19D421C71075F8B5925D3D4A7E55C154195E46CD1BAB486BD392F795200A3C1536253F1CF8D98B621E61FC2501A1846A1B1A49A5D6CEA99AEDB3F4524B5B2B7979FB4CF3F271E09513C514CE1FB1025D2569F446D15FF26428C961EF6F6A6C7CA3F8EAE57781673BD8A01B0E37C03000137E99CBC15E3FFE1A8FFCB9FC3E60DC103CABA6E0CE2AD3124043C9A8F461B504C0636263637F101C1CBC0EF754BAF2F0FCA44FA9737F19295478508826E399608AFEAF34B25BC78ABE3D7B1FA79D3B774E6991F36DAF41257575F5908CCFAE0C318CE4CA6F4F68B47ACF60F200243B4091488173154A95479E6760517C1D2B2B2EFC13C65C8F7175E199FAF0AC562C0CBC3D2727479AEEF59FEB2F64A6CB562C3A18C00BE1E88B434C4BE90B9293F7E975BA4406C8996EB89ACE5DF711591F6C218566EC7A11BF5F48817F8F12C7773FF430EDD8B1E3B397059CDAE5A3B651BA78E912F50D58C727DAA1E72507D55455D330BECB1331AEC11CA3118D92DF4486C1607D69925694E4DCE1746E3F40FB5FABAEB8FEFBF6D6D6427CEE649EC75807E17823EEE8E69FF6132577D5341ED01B099AF343889F9FDFDDF109094F03AD49D9CAEBF0E830954617527B661DD94C4334EFBD14F2BD6412C7EED9B28576ED7E88544E2F094C7F6D86EB838B972E534D7D2335B7B4B9AD4A27C0D4C0885E5A158C4534E290DD9E37916C514CB535D6DD78B5B6BAF2049E9B5FC4EA81730D0C0E0E0E634C364F74F34FFF91DEF4FCC0BF1D436ED073938F652BB735121313BF8BAA700700D6CC90A0F06AE71CC08D3A9EDC494949152F67CD9CB51BCB0DBC7DFEE55F8A09177760F214A8AF974E3CE7E0880DB982DC033F262BAD9DEDEDEF559414BD816769C5FDBA11D97D188395D50D28C7311BDD7C613F53F5D4E4E3FC80C1C4A72F59F2AC5AA55A0AAF52B892A0BCEFA9EF7D8F4243C3C45465B0C944C90B92455B7A72E66EDC200CD8BFFDFC17A406ED28A755B07CDCCFDB48069D867A07AD3462B3BB057DDC7FE4FEDEDEBCCAF292FF1DEAEFAF442477E1997B71AFA19BA59B2FFC77C2D365EBD0D0901E0332829AFC7038187235031EFE1CA49B797A35CDEB0B070E10CE11C07097947FE8C1BFA0E157609CA98817610054CACE6032F0817EDED40FE07B0786C43BA39EC01F1EB65637D5D6FCB1B5B9F12257B1C0CA026533800274E456E8E64BF14B7957D534CF3D4C34F9B0862425256D8B88887812CAC2F059B7D4979EFED7EF4FF174AE2D2A100D3C979CC6AFB4232AC62F4FFB5F3C3869006E25478404D108E8ACBDBB57D4039EE8C66177583ADB5ADEB85155F621EED58EFB7015CBB2D2EA544CC9E3B8DF16805FD87F55E0AA9AC66EA6259E120D420498D7AE5DFB0300B001FCAAE4F74C17A7A78F291FC567AF4AF29627734A4B4B45E732353555FCB06FFFCF5E1609382A2C84E76DA9B1AD8386507C4D017D5AC71248D8FA2D3D476A2BCA0FD96C238D2C2B1181BD30FE504747C7C85C64E557C600B335F9B89AD66AB54146A331313B3BFBDFB66EDF1EE36D341A5C299F89BFB9C2E57754434343E9F0D113141E6AA286D676EAB2F48A8EE9D47C30B5C3691D1C2C68AAABFE23F8BE946525BE60816018C4330C9BCD665B4F4F8F74BB74F3A534C06C4D3E00EB8F6734454545253CF1C4938F2F4C49598164AD98AE7A26A887C7C3FDA2C3478F537D739B9823507AE856DA6DA3CD1DCDCD7FEE686B3A03A377B0BA81030C8066ACA040DB44EFE64E03FFA532C06C4D3E3CA30FC009C4E190D5AB57673EF4F0C34FC02BA39D55CFF4E5B9032FBBAD7A05DD48D2A0A5BBF3DDE6BA9A7790775A59DD701F0DF71A9A6B15FBB533802B43C4C4C4A851E4F09B1A463CEB44351DF6D4534F6DDBB871E34E6F2E085C2CCFBEF0B2AC142F2DCCA87CA5C181BE332DB535FF077EAFC1A99DF0789695A26986C2D1EE3C69FE55FABF223EF76A1A80E9C1C94C4B7EF058881E53EC33CF3CB3373D3D7D8D92B9C869D9F7FC4B0E44806A4A153B622DEF6A6DF9536F4F5701F631DDF470D30CC6B5DE2959F9B53180BB261F1C5EC3F2949B7C5C4D735B232B2B6BC9E38F3FFE24E789C9DFBA3DFFD22822403BDEADECB27476BCD1D9DA740C4AA98D65E5CD36CDBEB106F0D4E4433418B88803A0416C88BD7BF76EDEB265CB433052C04F9EFFB995A5CE507FEFE1CEE686BF619CCD882051C5DE4AD3EC1B6F004F4D3EA76A3AC0DFDF3F74FFFEFD0FFFE9D05FBD5AEAEBFE66B50ED4E16B3DCCF3B7D334FBD6001E642B8A242D0C2266E3301E2EE6F86F1EDB28AB1A5E792EF6769A66DF1A600EB235383858DDDFDFAF0125A9F938FF3F4150363618C8FE45F2FCD7D600AE0C317FFE7C45434383E8C82117C8005F9A00FE8BA69BAFAD01A653131B637C3B3938F94B3AD0FF074DA05F0457DF4F530000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (56,1,'Network_(128)',0x89504E470D0A1A0A0000000D4948445200000080000000660806000000032399540000000473424954080808087C086488000000097048597300000DD700000DD70142289B780000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000041224944415478DAEDBD099C1CD5752F7C6AE97DEF9EEE9E7D46B36943FB8690B0C40E5230600CCEB3FD191B2F9838B1835F5E127F7102BCD879C97B2F7E368E4D3E2F1F24C1B1836C6CF6C58A598C9040484212A36D24CDBEF6F4F4BED5FACEB955D5D312C286188186A87E53BFAEA9AEAEEEBA67FB9F73CF3D87D3751DE6DAB672DDE6C4C9137D75E7E26FBBF0A28B7FF1D4233FB961AE8CA5087374DBFAA77F0F69DD0B9CC003CF0BC00B1C703C1EE3FF1CFE2FE0FFBC2000BE0922CF8120F260A3633C2FE0AB4DE4F0BCF11E8FAFEC7A1E40E078F65A915590540D64590149C25715FFC7738AA280ACD0797A1FFFC7F75455C1F31A08877F098E52C6813F2F6AFE4C15F714EEFA79067887B732EF81B144054411896D1341B409788C0F6443629AAF22E0396406154FD8F13A5EA4F7E87A63B7D18EE7E81E36813ECFB36BCA92027A5905195FCB02EEBCC2CE9535DC91D865DDD819932083C812C718A3DB1300BE9243F601670DD173B8CBE719E01DDEEC28C14E87C88827220308ECD5383698C13A675D23801D8FEDC818C40C7646FC590660C447D12F21A14B28D5254585324AF5ECAE4305354245D5D92EE1FF32FEAF68B8A31995351D748DB3E8AE9FCB52FF3E6100019C76EE54829B4415ECB38C611017DFB31BEF11E1EDA7115E1404663A88F816B1CB48643AAED0FFAA497C05D82B330D784ED16807467C553369AE57897F9E01CEEA0F47C2B99CBC29E92613D80C7360AB6A05E3FD2A9398EF9D427C7CE5380ECAA8CE4BB2CA885F22A2CB4470620424B862487ED9D400924A128F4C60121F0F510B402DCDCF33C059D700A8CA9DF659B54F4CC0086B7FA3EA9F3511E6AB6031008244D4DA25C9243E4236227CB9AAEAE9158C63640249D34DC92782734CF56BB8D32B5E8A14E72CAA9F6780B3BD9124BB9CE22C08ACD10255FB4FBBC91036BC86272088EA5EA825BE6CDA7A53E513F199EA47705751666D7E4533249F115F33D4BFCA8E8131015900AE4AFB5318403FCF0067617308A401C4AAA45B9E80CDC4021626E0791D785040400AB1F7F0333C7A05483728CA4A0DF151F59B925F2E5520509884E18A885E800B251F55BD0AB3C4278947B2AA26E155D4068CFA06063C8F01DE951F8EC47509B62AB1AB1E80E9E6F1E4FB23E12BA924040B53D01470C191723D845ADAF12CC724BF6212BE6CDA7AB2F9153401C55402FEA0538072A50C8F1F1B8257A40828362FFB1CD97AC5243E630230094FC18359AACF09E99FD30C40011B874364522D9A7E3D3102058418E1D329F06646616D431082F17AC8E40BA04925A0C82753E70CEC11F16196F8A6AA67411F14FB582800B75E1884AB1333F0F0917ED8510A812ABA51EA7926F51AEE3A0248FC5224B56AD980F30CF06E6C14B02113603355BF40114093F0EEEC18ACAA0F42B8BE955D2BCB3254240938DE8BEA1C89AB700CD91BE85E634C50D1A0C6C7D7D8F5A55209DC6E373446C3703BEE1F9C4AC2B6D787E185821F39D08304C7EFC45DE7543CE46A7FDE790638DB1B0D38A97CF20448114BE969F0E5C661554308C28D6DD5EB88F8E572191405AF115410515009CC49CC8D33096EBDAA0623C8483649323E47C121A7D3C9EED5148BC01F5F1A811B27A7E1DF0E8CC2AF733E906D1E64009E31834172FD7400781E049E2D06004D81526A1A02C5295889121F696E3FE51A0ACF121169979011144E37E2F82A30778EED9AA1F60DF50FA68F4F580019A0C2B11801ED0E87A37ADF96781DFCC9157570D344027EB27F0C7E9DF5826AF79DC700EFDE86B63B330321751896350521DAD6FE862B3494708BF8A4CA89C08A0866140F8D8549687A55981600C3CF67000F980928739A01EE3943BDD732016D6DF551F833DC6F1E4FC0FFB7670A744D9D7326809F7392CF7102AA5961B94F85CB97CC8368387446E213D12D0628572A4CA2158ADD9B84A7481E233EBD9AEE9D445A03494E0C50AE48A7DE0377322767DAE2213FACAE772003503448AB7503CF6B80775CF6755D5DB56EB376B828C0CCB14158D0108680CF57FBFE29446344440690791B73DDC887B78238AA399143717C55AF0DEC180C60C7639E9B35039626B0D96CEC75746A1A9E3C3C09BF9C7142410CC00ABBDDF409CF9B80B36C004077D535821C0CC0DE4C02C4DE3ED8B8A8CB88E9D710DE92E012EEAA1D4C02EBCC85534C6620A125E2EB26E948895390883446093104980933DC698C40E0F0BE570660373481EAF5E1659C3917F40613704E33010F7374A3B0AE9DD039DADDD6B0FF14E25748E5A30DA7D7D9FF6543D299CAC757E406430BCC924C67E15CC3B72F9B9F254D50C6CF96C824D46816D234FFF58A25D00D33C0A98A659FE034F57F1E039C352CA0AB904F8C416329016D0DF12AB119E24797EF2422F43C65F020A128698362FB1A186A5E538D289E950EA7835EA51F1DEB08334A784151D161BCACC393132A7CEB501E2673A44D66BFC781A6E02F3ED00A4DD2388B41983608CE63807761CBA792D00259983FAF057DF659C046D23D8084E2976D842CFAE6C5A11308EF4751658BA00B36A6DE5583CC60919FB3C2B960DA7C4F000E569A20AB0930E96A0035E0060D19E8BEE1E370DBBC0A6314CB14047D5EF8CBF571F8F3972619F15542A073641E604E32C0CD37DF2CA0921682B97158B1744135D06348BE02239902A84D3D108C4419A0131D6E28B7F430FF3F24DA41514AC0A364DBF07F179BE133A7796947F69090768A5B84A2D8C5C0409C9C0E0EE9299269688447074EC24D5D7C1510D26B53340C7FB9B2023F7A24C7C2C8B815CDB1E5CF0782DE5917905FB56A556CD9F2D5AE8D17F4B0408F05F64AA532EC3F70007E78DF03CC569FAD64E73E047FC5954BE153B77CDC9C033298A1A7A501AE5ED50DBF786CC073C9259708CF3EFBAC3C17C6949F43C4E7D6AE5D1BBAF4D24B3FFDB9CF7CD259EBEB93FD3F71F224FCD3BFFC9831C2D9CC742710B967DF01F8D9430F3346ABFD0DEB2F5C07375E77F5D26432D9CAE21573024BCD9175015BB66CF1B7B7B7FFFE473FFAD16F3B1C0E7BB15834227C38F0B97C411F1CCF704EB71FCA782E97CBB2BD58C8A39690596AB72C4B4C6328B2CCCC069DB78E2DDF5EA45DB4D51CD36493DD9C70B283C7E3059FCF0F5E74FBC802B844195A9BE2803F075C2E17DB295AB863C78EC77EF8C31FDE7EE0C081718A5B9C3701BFE3B67AF56AF7A2458B2EBFF1C61BBF41C4AF89D069789C7CEAC927FEDCEB8D3F76E5076F7421F08FA1568EA1D98E216B87D0723B34E01C3C074EF4021C08DD1CE54AF916A922B965CBCFE7CCB5024874A7D3D12F08E25308112BA8DC699AA0CCE3B1C603AA1698412B34A969DC54299F9EF9D10FEFF16FDD7AE53FB6B6B6AE4689B79139A0FDA28B2EFA3D64D009D4525FC5F353FA392C65E7BC06C0C17485C3E10D5FF8C2177E128D462335011E0DA53FBB7DFBF6AFA1C4DDD7DBDB9B3AD340B7B4B4B82AE0D8C483D80302D76E176DCD1FFBC4A7AF9255CD3F399980E4CC0C9BED8B45EB201E8F4162727CE8A16D3FDE8EB71AD454ED84522ABD9E4A8DEC7F13C6B4F9FDFEA537DD74D33FD5D7D7CF47E614490BD01432125E7FF8E187BFF6E8A38FFE9F83070FA6CF552638A735407777B72312892CFBD4A73EF5C3582C16A9917C1DD57961E7CE9DFFB86FDFBE1F9D89F85D4B367E249F99FE1BA902F334ADC4B9DD1EF0FB021089D441B8AE0E128969961BE8B0DB8D4412537A9190AD7E9FE7D66C260DB25406404B5E57DF5E16EDAE17454FD3EF8F1CDE9EB4BEE3D5575F95D134BDFEE4934F7EE1FAEBAFBF3F140AB590ED2750888CC0E17B5FC9E7F393C824FF8CE7F2E722139CB31AE0820B2EB0A3442DB8E38E3B1E58B870E192F22CE022E21771F07F42D2BF6CD9B2D1C6C6C653ECEC2F9E3B704972E4E42F73E944354BC3E3F542281486483802ADF33A2180C78409545567F69C328BC8639B9E9E82C1FE13904EA5209D4E314C616DD1C6CE43CBE7C7972E5EBCF8944143C4EFC6DF70E535D75CF31D9FCF17438DC25B9A0019A0FCC0030FDCB27FFFFEC7F03717CF33C05B43FC2212B6E3F6DB6FBF17D5ECA504F42CE24B925441897FE9A5575FFDDFA1787C5810C537802CB9AC3A8747D37F9FCF2437950A19BE58C8315B4FA9E35E640402732E971B1CA8FAC9EE53568FA6D352B00AF3224A08300B08209178880D0470A3E6707B82654F20F4B5B6B6C043A77F9FA6AA5CA55472FBECF6AB2FBFE492FF8684F72203F016309C9999C9DC7FFFFD37663299179F78E289CA7906F8CDC41756AC58D18C68FF6FD09FFEA815E523D44FC783A3A39091142D180E83C0167F72E8CB1ABE38E58850A208119462FA2CAAC7739C11B9E3E97F7A93BDC752F978EBD8FC0CDD43303F679CD7D93546D44F67DF2470E6BD8CD8B1F1BD86372DA1961A1EECE7421E0F47DE00610B8B09464646C6EFBDF7DE6BD1453C40A6E33C03BC49A067CD9A35B1AD5BB7FE29DACF3F5651B26A409F9E4CA5B8483406B1860618471BDEDED4C8DCB8A9541A9A11C0D1044E01AF8D864290C9E5D81A80204A7C3A9B033BBA6A1E24C84C3A8D847181C74DC719E6B6F95055D3F594DF1F0906986330914C4263D458E43B399D84FA688431C544721AEA1143D0F12402C838322231411ADD4E27DEAB821AA4F7F583E0C57B22B6D0090B584C70ECD8B1A3F7DC73CF0DC8187D683694F381A0D3B68D1B3706366DDA74CB95575EF94574A138CBEEA3E4AB44380ED5754F57272848E880C7CD7605B5820BFD743F0EB88094139118A87F8D382C12D2E574808E3E3FCD1ABA9009E87A3A76E2BD54CA13C09DD60AEAAA826ABFC05613DB9171F2C834742F5A3E9E4ECFA0036168982C325BA958626B80745982C4F434332F4ED106535309F0793CB060C102189B9C24E6C4AFA8E856A8BAA7A767FEA73FFDE91FA0496839570245FC39447C1F82BD1BAEBDF6DABB51B50B96E413F1D176E6871349EE9A2BAE80582C0E53332958B6681104020126FDD671329B85A58B164210A5385328C2A29E6E884622A021F1BAE6CD833AF40058966F7D3D3B0E47081486F138024D0D8DE825F8A03E1E67BBD3E5448FC038F6FBFCEC3A3A6E46ADE3F379D9717767275EE7C2E318B4B7B5828BEEDDD8000B7A7A6011FE266402091940A99DA646F376D1ADB7DEFAF78871EA49E39D7703CD40CFBC79F32EBDF9E69BBF89AAD251135ED5D0F6670E0F0C96BAE62F08A490D8B4E5F23994BC043B4EA36640894221D400ED2BA2F8244B0923043F3935C5A67C93C919764CAA9A2496805F1EEF41E71C0ECA29D058583781D70D8F8C18F7452F60786494CD19922770E8E831082363D1BCD0F1FE01A8940D2C378E92EE46CD4266238DBFE3D091A3C8305E08F803106B6C740EF6F71F6E6F6BEBA160A369E660C3860D37A0B61947B7F32EFC7FFABD740FDF7306A0404F30185C77CB2DB77C1F5F7D35215E0D5568F6F917773CD0B6F8823FD8B07A25B4A0ED1F42A22CBB6031B4363733C4DED6DA8252D9C4A6738726A79884D23682C7AD2DCD0CA08DA26A6E6F6D657EFE04628745F37B18802C22D14913C45013A43219A8A82A74B41B29E5A3F879926AB2F5B2A28217CD4D137E7F19094FD7CD33AF4BA1EDA7EFA7580281BE0A9A85F69616365154A848FCA1DEDEFD535353B6582CD681DF2F5A9347975D76D9E773B9DC04BAA2FF80FFBF6781A2F7140452A0A7AEAE6EF997BFFCE51FA30698570BF890F8F99776EEBC0FFD2FBE795EE71FAE5ED0833EBB0A270606A109D5ACD36E871994520D07341A081A0C303101ADA8DE691B1C1F87798D8D0CA90FE3710B9EA7813F393C0CF39040341730818C81DFCFB00181C974B10C61AFDB60A0F149686EA86784647906F84AD882FE9F46AD434093B4433A9DC59FE866C9211447A01A036EBB8DCD011353F1A23072DF0F7EF01768BEFE3A1C0E3721E814C80C112844E2CB3FF9C94FFEF0F5D75FFFD7E79E7BAEF05E30C17BA60128D08376BBE7F39FFFFC773B3A3AE6D5A87D227E71FFFEFD0FBD7EF8F0B62B6EF8D0BFAE5EBC102E5EBB867D2E532CC0D5975EC28E1F7AE229F8F096ABD9F1EE7DAFC1559B3641AC2EC2D47214113C6100DA9EDBB90B2E5E7F213BA63C3FEB78EF81832C04DC8C924D66E3573B5E824D1B36B0F75EDEBB0F5A90D1082F50C068F7FE83B07ED50AF6DECE57F7C062D4228419F2081C8F9D3C092B972C31A283AFED870ED41C61641062D85D7BF73539FCAEB1EDFFBEFD2B5BB76CFD06D2386AD97E6402DB0D37DCF0CD6C369B58BF7EFD53F4F3FE5368000AF42C5FBE7CDE673FFBD97F58B76EDD95B5513E047D6574977EF58BC71FFFCA8265CB824B56AE79BE2D16E508A9CB920C9952B12AF123486892787A8671B4E70D08CC4842892882CDCE249134402A978710DA657A6F0AB54603328786C449209824C048F581E8BD5C4502BFD3C8FD4F23A0A4E8211596A27B1450F5FBD175D4341D8AF85B09FC096652484521A9B7A31BA9B19431B7C70B4079821CB05CC4443A79FF433FFDD7BF8E7823575D7ED9E55F47C207D15C709626989E9E4E7DFFFBDFBF01CDC8CE071F7C507A5F6B00727FD0D76FF8D0873EF4976BD7AEBDB236970F8FE59191917D0F3DF4D0579B9B7BA6E72F5CF8674DB11877D5E68B59F065D79EBDB006A590217B55837F7F69275C7AB121B1CFA2F45EB872250EA8F38DDF893B45FDE895249D024A6FBC8234C54E58B56C197850A593F4EE39D80B6B972F65EFED7FBD17714713848241662E0EF71D671E076D478F9F600031566754AEDB7FE8302C59B8800594B2C87C078F1DDDEA0B35FC6DEFBE7D0F79DC9E087A3C7F86E3E0E1CCB422D456A18F7FFCE30F7CFBDBDFBE160171EFBB192812DF65E2F3A8FAEBAEBAEAAA3FBAF4D24B3F6EA57399EE9E9C48248EFDFCE73FFF93482472D2DD146AB33BDD5B441CA243478FB2CF1F39719CE5E04D4C4CE2C0E650DA4A70B0F79061B347C7E0782804D51CBFD388DBD5318F610062809388E24FBDC8F887BC89D78F1C61B69EB6E999241C3A7C84D9FA14DA7D92FC006A050612C7C6699E88451E691DE131F42012D3C63C113E07ECA3F804652DE3AD1559AE0B45A33174730777EDDAF5038FC7135DB56AD567F0F7B8386383D6D6D6E6CF7CE6330FDC73CF3D1FBAE4924B4EBE5B81A277D5045C7CF1C5217CF05BD1DDFB5B42C416E8235F39954A0D6DDBB6ED0F1010BDF0E1CB2F77A43D8E351DDD8BEFC6B189210104BE1AD385D950AE95A74FC81AAA4BB8D875D5FF69968F7105721FCFEB56E817B8D9255F82112BAE7E861DD16A635DA70FE9D5EFB1B8C544F2664D08AEBA5E00CCFB52DD418E958B61670551504F0C0CFCE1AE5FFEF2197C4615C7A0E9DA6BAFFDBBC58B175F8FA0D041E6C08A16EEDDBBF7F9EF7EF7BB9F7CEDB5D786DF8D6492774D0320577B11F57F1041CFD7D005136B933AD0274E3CFDF4D35F191B1B7B717864B8FCE5D0CD483267DFD1A387BF8C03E922C2A99CAA0B206A68BB75228A8AC6581474B40448545ED5455DC4B7545D2582E12B7D86BE5711045AEBCBFEE81CCFFE370AF7F1941D4AE7CD73F4BE84277855A84A8550BD8FAA5BF760D7B2CF544050049D220282790FE4E6EAB1CC5ECBC029A2A47BBD6924BE8244D55000461F7DF4D1AF2206A843E7E70378A9DD62A2952B576EFAC4273EF177787C07EE1374FD9CD700E4EB3735355D86A0EF47E8EBFBADC91D33A327B57DFBF6BFD8B76FDFBFE19EB67ED76DDFBB4D94C625A1D05BE05065B21FE9F3F974340F7A2FFDD3DB0BA150889D6F6C6CD49F235BDADB5B7D98D3A76CDFCBEDAEBBEED24F77F1502044347B0B3EF2918FDC8FBF7F296A019BA505EC76BBFEC4134FDCF3C8238F7C6DCF9E3DC9B3E91E9E7506C007752227AFBBE38E3BFEADBEBE3E3E9BC55B62811EF47FFFF7CE9D3BBF87C49FD6E762E1E2DF61434D60CFE7F32BAFBBEEBAFB11087622E145CB33C031D37EF18B5FFC056AC67F447390395B63735663D114E84149BFE0F6DB6FFF7E434343BCD6DD43755D40B47BFF8E1D3BEE47E227FFB3119F3672F9703C5E7BF2C927BF94C964C669DEC3F28888365BB76EFDEF1B366CF8D095575EE9B63C8639C300942F87DCDC8DC4FF4E474747770DE0A38C9ED28103071EC107FF764F4FCF59B773E7F28668BFDCDFDFFFE233CF3CF3DF100BCD9059B498003502058AEE89C7E397AE5FBFDE3967188056EFE04B2BDAFCBF5DB264C9DA1A3F9FA27C9513274EBCF0D8638F7D1DEDF9104A810AFFC9371486625F5FDF532FBCF0C2DD94E84A1AD21218C43D1EC409F7A1F95C4526E31DC70077FD8FFFD3B1EBA517AE433C7D4C97CB079013477F1789A440CFBA75EB1AAEBFFEFA3B2FBFFCF2CF58E95CA6F44BA3A3A3FB1E78E081DBF1FF5E74F92438BF59E3C6A17B4841A23F42D0FC65947E4F6D32C9D0D0D0E0B7BEF5AD0FA28771E83F1A23204F78CB962D4D8AC62DB5395CDD6B2EDCF008F7B15B3E5B191D1BB75BCB6978745F795E50398193F103153C5F4007258FBE78063DAF193444D32AA8137A451D2BC8A5814C62E23524EC38AAB1323DC48A152BEAAEBEFAEA3F46D5F5E728ED7C0DF1E5E9E9E9BE9FFEF4A7B70D0C0CEC468EAF9C27FB1B09844C10479BFF97388E9F442670D6868C0F1F3EBCFF9BDFFCE6873B3B3BFB77EFDE6D1345B1311C6F58E6727ADA45416C14443E0E3A17D53908A16A0FE2B157E77437E5ABE89A66D3344DD074DD0A82D0A49AC4FDFEC73F234F279362B0A913382AA7AA916F5B81422605D94C8E45CE282C4A3B5B59A32AA02A8AB9A2D6C892A1D4274ACE14054189C722FA97FEE80B2E9A1EAD41FC3A123FB7ED67BFD8964A269FCDE733BDC81083C8D5E9FF8CE0EF74C96F6D6DA5B9813654F7DD76978F88D9BD76CD8AABD6AC5ED56C65185BFB638F3FA13DFDCC739AA2CA02A5CC69A6AEA668252B982950495C91CD6FF0E64E092DBE401014D10EAAE8005D92213D7A12EAEA220AF7D15B3E5F9C494EBB84E5574121348F2D83B2DB6CE07772E0A532ABBC0A025A04419381A7C0945C018DF2E5D5324B89D22B65908A392867D3A016D2F0A9FF7213CBBCB5884FFE3E2564FCF8DF7E0AB9428945EFCC95383A328C863F50E205AE82CC5F12383E8F17A4915BD3B96C66D72BBB5EFCABF70391D75E78F15F0702C1B51A6861944A3FF2BC179FD18DD2E85014D9AE6A2AAFA97AD52567AF38E6976CDA88607A6595F8A40928E7E0E78F3F0DA3B90A380375203AD165B4A302A7C0341258707941E56DA8C66DA020C443EA415EE5205BA63A0912C8B206DE997E50F73F0991685D49E4794EA1B62B3AAD97236EC29D5335C8290248363B3890831CAC1E1F31064ABC5C827A29C962E08AAF0E02E130E3B6E9934760A54F67E952B353BB12ABC57BA420C08A8F7F91155E50A512A8C8345AB9C849859C808CE32A67665CD9A9B1E0F8D0009B3C3159FA8A7863CBD1C9B1E11FCD65E2D737B57E4CB4B9BE3A3E696430793D1E686C6D8750BC091C28950E3FEEB4D6D0E101D1E5461A3AC0863BAD4D94B22998C826A10925BAB646D175D75C01CF1F1F0368EC62092AB6E961E80A3A205F51E0652504E0F443595259510CE355AE2986A581AE568023ED00822C22212B785B1F2545D2051C2B95A62313E82CAB92C70F70E60E0A0F4A6A06D68725E868A4DCBC04F41D3D01431207ABEA1C10418EAC2675548CCC99DE8C0ACE9E55F8806E56952B5F56205F92F1B5027200CD4A5461451CF14D6843EE1329F54253C136F53A3CF7CFDFAE9BEBD22FCB4ADD86DFBF15E4F8421C5C1164944899E32127520D0254D976A3758DC7E500AFD3062E2A7F6B36BEF0449B60726A101CF951A8F39E5AA3E8A2F618EC3DB21756B43743704133FBAE93A31350C923AEB659750F349015BD5ADD9C8659436DA09B269CE7411251F596D9FA485562F57288F09C607C8063DD31A8091332022B85AB31FB6F01C65838C476CD3444B54BA5E9F347531570B42E02CE1D804C45851CDA1EAAD14B9D55ECB41C8B4DC400CBBE9539AACE496559506DE1350D5EA4BDCEFBE7BCFEC767107D6198AC10A17956D276B68F8155E05A64194454BB58C681F6E335540D9D1821D4320FC68755B097A6C09CD30273E919AC5FBAE894AFD24CE105AB08A662FC4FC52F6959BB8AF4A342391CD2D0343715AA7B51D150E2045566D5B2386B278253497DFC204F4CA0194513A9A692761A6EA31F54ADC84553BBC86AC7A61013342F04D11F82026565733AC317740FAAD8C9338F832C17125F438EC4CF202460B368E882A004384903F9E63C03E033909D7682D5C3809E5B651DCBAA9D4BECFC6CC5737CD5F0F90B483C8ED7C081D70A681A4626F3D025CCCE7A5ABB55B28E31806EF431D2CD32B8D6AEEB66830BB3E43D683263088EE7CBF873B812A960C6009A592A4BD3599D7D46745419126F68069A4CA50881A69DCA00A7976523F51F40624E8EF641B62203E78F82607300421443EAD94EE6853A711400F269F0A905F0D86D30CEF940A5D62EBC939665CD79138004AD13ED4EB0017526A32966191AB92C4CE770CCD16B73B8EC26E1CD8E263643F2A90C6E6E7C088AE3C721022570E1FB54EF40539D55A1B3765114AB0C4004260D4A758F657DB62A1A15C964E5F088760AD21A698E1E618944B24809924E4532350033C18824D94C1112C9A8ABCBE14D79D10089B5F4AF2DCA585BA34FC6570F820F473E097927BA20AD4B10F420237046A16615DFD7320970E71270598B1F96752F808964067EB0771A444F14DD19076A043132D71940E084880D19DBA91BBD0C75F48AAE58148480DB010FEDED87A2A315917C18EC0EABD905CF5ADAC8E934D8865E07BE9082220A8BE6B0836626AAD40242CB1C509633D30066E93B4523D7DD287B4B0CC034373103991174F589E61CA71545A4475142B40E160390ED37894F9FE2CCCAA7BC7973DDACB0C90C484D94EF4C8CC0D027AA72C58F6E8CD7C30640C56BD57402C49909D888C071F9EAC5AC3883019824A61AD920A0BF8A2A2A34E72D00C7856C0ED47E9AC0BA93497919318F06419F073EB161213CFD5A1FBA74E8C33B1BD0CB729A26410067AC014AFC5AA89C38003C0A1135A9E42A953714ABB4D2CC89090CF3CC310690C9B49AA57029D6AE56CD0032038E33D11CDF2A8A78AE408404A5C23ECC6E007A55FA0DCFC0701F6871249D67953425E98C842F9975FA547C1829D808B68E25100884D0CDC46F4B4F819A1885656E0D96AFED34FAF6D4821854530E52870E1BD8F04B59346BCE63402E28A27FEED04583D1E9F94C86A7E7DFBA7A01EC3EDA0FBD09D4C28E7670B883466F231402575B27A8F58D909F1C87DCF103C8001974C3E5EAA2D45A2D4059482A33A92A5BF24EC7CCDC6B9CD9DD4433AC3B5DAF50E1CC0A2D8E2D8822CFE52B150AEA941912559991E79829B0DAE0A82613189A00D842894A4DC144A6054C89A79ABCD3AE00F0F31641B8B189955095B269288CF443A74D86658B1A19183CD34659B5ACA52B6BEF4AC858F753E2442E97634F4A0921673ADEB3670FAC5AB5CA32499CD3E9D4AD637AA5FF4F3F4FC71D1D1DDCA14387D8FBB1588C1F1A1AD24DCD46AB7B4F396E6D6DE5E87DBA16BF5B482412DA99AEA5D7E6E6666E646444A7F3E462B37E860A111C9F88873730FE9AF9F3203A3E09BB46FAC0D1DE03F660882D65A7289E68B7836A47E90EC5607C6408ECC387A1097184701A2350D26C19FD7EC5AC8068B97E32990F3205AA511F917C3F0DE95D417A51D10AC427AE54B95C4205506037A4944AD6084933D885D34C5360320411940518AAA5542BAC3E5F199F6C4873432ED609DE8616B0A14DCB65B2A027C7A059CDC3E59DF5E0B0DB7EA3B450A8592B65817ABF4AE431F3BC7F66666601225DF45C142D9BCD52F50D36D878CC065E55557EE5CA95CC4EE1B140D934B4A16A14F073BA85928D3A006C63E7D01E8AFDFDFD2A43DD9A264C4E4EEA5639787AC573780B5EC3FB512E21BDAFD03199F542A1A0D1440DDD8B5EF1EB102F233C733A293C2BE4F379C5EFF7F3EC1E82142C4E8D82C2A30DA7E0596E1A9FEB8DD0A6BD210E216F1E9E1FEC45977811D8A28897507350632B89B4B2CD037C630764BD51989A1C81F80C0A14AD8E679D508C7EC924802A553B37719A0AD6ABE17A9B320CBA5464CBDD1C0E674AF4783C49721B2AF99C61A3890138B6E29E690493FECC14D05A795223A46618F1F1CB8BA8DA8F643518F5B781BDA50D5C1E17101F668706A04B9B81552D71703BDF9A29AF0BF8E0C25811310072276A83B6DB3F1B6868A8FF27607996464F16A26D4D6E045FA306AD9C09D353E2C0E003DE0AAFD231F10677DAB560FE537B0CE6E7ABF7A2FB989F3DE5BE35DF557B1D6F322A97CF170214E9337249C98B72810FF1D099B680CF0BD7F438E1C513BD88FBE7831089438573B25E0615C260D4ABC8EE0135DE09273C75D03F3D02DDA93158586743B321B33677A4F235B39329F3FD9929E0D80EAC31366AEF6286ADA5F478BC49D1EDF12589837233D3E0C4672A6AC680B24E98664CC0AA7549E89DC237D466AD28AB7060AA0807853840630B38DD3E105D0EF41E7828A593F0B1263BF89CAD6FCB5E46C221B657B7455D34CA2BCF9A7D7E9BF350FF91EB63B1339CD78C9EC3679C1CC2FDE2AE66D83FD807C7332894B116904597D9E60669A01B09ADAAC30B854827EC2BC7E12832C1E25C0E35870D50A5994D2D39A6AD35B3CB996EF2B81B853C37936459D55E9F2F297A7D8114D99B4C360B314E8602F97A46210D1310B2FAD9ACAC3A2DB4545D3ED88B4CB0634683196F13387D4170386DA0A0DAA6562C3C4D4BD8DCF0E2F0285CD21A4675C7BDE9C0BD1B04988BDF4B9A647E3C02EE9904EC389202BDB9071487C7E85FC89880639D4D28AC5CE1DC20473A60875462913F1251CDEA7FC099B26BE9379EDA9A2B30858C45F51051F85388B7841CA15242EE3CA205BD9A77CF9BC08CF000674405E93E76374CF05ED414C0225B14D7266F81823AD49C919A30A31D80935A3BCC1C3E8C3E7E10DC769169935366BBCE13FD375E4F4C10418D7A092FC3AF4EEC8752D302509D3E64028E45FB58A0871882A776B73A780417D20E553E4A2143FC60D00D6A4A10309BA41B53FA360496A26043DA0B5C5160B168D2130A65831865D3B9D90F6B5694090CE628C89AB9188363A1465ED3AB4CC05EF17E0E7F18CA8E65F0D4D83158EB2DB287A109A7DF3620964DD74D86B140DFE98364DADD779D906FE77BCDEB66F339D9C0EA67FCFC19EF49A15ED4AC9735BAE1D99961180F778344134AC404ACBB99C6884C2A3E8D1CE161180ECC8AE8C6B4BBD1D79011D490604D66DF65F6582C8A88F20BE496B0EF470271A2F9434DB5A1930AE7C034058811A8DF9E6E944EE1CDC821FD183A261791B56825E0415398DE00D8E65D00BB2706A0233101ED412F72A8C46CE01B1E9801288131D66C5C80BE5597054178D3B57214DD222631015BF5B8F6FED6399399ACE6206F46E0DA6B7F1343E83566FB4CC7944483AE074F613A83B135639E5F79B331385D1048BBDA09CCF1E0141C28F928BD68A22573D2873A9FA866932B5937A6F145F37FF6A0BC11B8AB9A00BA270B011B15D318ED151E0AACDA168B1228A6E473D5CE19D602280B4CE4694E4030E204BCE91AF21613A8B442068C664C02FE40F225101CBA5BBB613CE583DC781F74FBD1AF956424AE728A49A07EBEA96209722A0E96DDC1A688CBD3E33035707C773C16EDA53C79AA1B6452A74A24CD988A24D4CD4AF5D3797C9EEA3158DECFA9A3ADD57EDE1451CDBC86B78ECD6B348BC90C7ED378EB9EE677586E27A3B9E501505EE5E8D8F885ED4B565FE36E6835C2BC04B29393B0A03E0C72A5FCA60C402E1D4FFD876C229C4C96E038EF805230028AE840D5CFCDF63C226C463B813DFCBF80E7BD348D60493E7100124757B9AA8BCF69463A2195BF23DA8B82CE1705C134018A6474C3648981B30106DD28B786AADFF027D97C81A5152C4620E9D78D30312DE2524D57847EACDDE102677D0B681E0FF49EEC85769BC0A69FA92E9F35B54C018F32821AB1A58B2547D08446A52CC3F6EDDFDB190EF9FF818881FE3B119628C2A14FAE2A8AC2469DDC3B3A672DDB32276134EB7D499234CAAD43FF9DDD836207B4DA88B2956A3F4F1937742D7D8E2D233BC37D6BCF59C7E654388B0958D752C1A95426EFE8BAF4BA6BDC5DCBC0ED10C18E03C4F51F45B096354ADAD77A02A6061488F0820D264A00231A02BF580770AE207EB18D690216D235FB9390BA5798DB6E2C892501CDA18626A46F6871DD7C35CC00136AC53201F85D487B11354A81CD47331562AC69D74DA937B48051638FDC8A0A9B42148CF7CCB071D5533063D0AC21939580A05B4C002CCDCC198A8273D12A181A3802917205EC782FA95464AA9EF29D79BB173C757520788250AA207F671A41E17875DFBE7DA3247037DD7413B76DDB36B6D4AAB7B797A3E55F78CCE179B6148CCED1FB356A9E11C3FC1C3B479FC59D0D397DCE3A6F5D4BEF99EF5BC7D6E7AC63AB09C4299FB37049EDB58DED9D822712035F30044E8700762448D9ED81CAF4342B46C93EC3E2F9480C87033827026C858324170025D600B6501DA8821319864CB76EE467EAAAD9B57C36E0C39881245D313C04076F786C50F50274B3A9156F68791256963B481A40D60B640FD8595D368183D90CDBB4FF7483920266C4C930750C18D66003C2003A6704210CB504A63B6269051E34B40F4E7F08C2F3974261F42494C74EA264A0A46733A02243E8761F734F28046AB3E183E06039445B1007EA4DD3A0EFBCF3CEB7EDFFFFB6CFD4BE6F1EEB35C7B5EB18F433E088EAB59DF32F08B8F019585B7B4AFCE08D69765613812676282700B5A3CDE3832CFAF0454F3DE8A118787C619078279450236A8AC6C68FD91FB3CD8D06467C5F634EB7CEECBC4EC4150C1C40BD8E3C4452CE98D8332C215ECB2B40CB5F2D1048B417A73D5AC132019C241B7682DD9837B37E792314C9CD02138D33AE514D5CA1990C61C58C54CD6AAF6EDA2B1DAA9A4043F5E4F0FA21D4391FA44000727DAF838BAE95F1BB092C51C60C0E164D678A4E2715750CCFD5892097D319B1B99C08B878C604340FCF51BC44633E34D8BD3EA8A05B5DAE6B065B84CAD1454012EDE8DFDB90F028E94CEA0D815234438A89D02CB7873368C2C69DB304D5105A1A6B028A3603CE18EF332C80FF4B8A652281682FDEF9C94F96AFDAF6B0A1C134A91A30003372C4DAA86A86AAE22C7B627EA1316F60107F561756734A8C1FCF7AF3999AC10C50D03987C30DEEC65696419CEAEB057B2907029A082ADBC6D194287297C86AF9DAE72C038836475870BA8C546D626CB4E32E2A3B138DB3C08E1A8E830FC7400CD48166771A5A96ECBC62867051B40D69374797FC7B0B83E98664AB8CB8162E15583735A206B5CA1545D3F6EB06006474532B861720083AD19E4DCBA1DF4EEBD66D1AE58AB13ABB7C15385043659DE3AAE9DCEC86FC2CAAD466CB26984C308BECADF431CD9C8F56F55960C8269B101778D14652BD9D622A091EBF1FD5A11734E4528DD627A0BB2488C29C9D1216052128C815748B6977006983487B272491C96308F6046F10CD9E13F02919F1354E35E3F79A21E9C400FA6C4CC108E4E8666EA06E4ABE4564D2DAAAE1C1F1065DCAA88A9D3C57F5EC18985765CB0D64AAC060004E40D1D76DBC52A9FA8BBA39AB44C89213CC6042B588326FF8EB3C57253C57E3BF8AC8855E44F92E64282772103A7E78CE28D72AA396D1F1BD12791C5219B45201CAF93C14B35950CA7928A432307872D0E8F6899F477765CE2686E218F91FB8EB2BCCE77621C1DBBB3AC0130AB05C7EB797D2C13D0878BD28084ED06CB468C34EA156962FE024588CE32C502611C5F89154158E37894F63CFECACE1A5B171571970331129A383A2F10C88F3359A9B574C0CC01BB115D1E454D9C08065F6A53ACBD4D5F14754208484E325847AB43044A5EA19085EC896E1B59C8430452E025F2E0087BB5ECC829ACBC0F8D438EC1D1961B573D05D633BA54551FF1DCA77673E31ED68F3C91FB5B25AD6AE5B0B5E548F89C919689BD705D1589C3040D35C6580ADD7DDDC44B3A689A909DC2721168DB1B512BB9F7DC1D0904CDA8D5557C4EC72B5A791C42AA251312BDA1D7611E2CDCDE08F37B1CA651E570001066A4A34A39ADD83BB0B34D1818CE4408C85F841B0A359B0B3E452D43DE849D959D635C36B72D9706705419AD5000257A11F34D3BB139AD293289905C82626601289582AFD6EA5EB4A25A361934DA6E64B92D1848965C0DAC0819210AEAF83FA7823C41B1A2016C7BDBE0156ACD908E9541A92D309A9F7E0EEEFCC5506387EBCF73B172C59F5A5CEEE1E7B105D4109CD41627212EC4E0F4C4E8CC1C4C438BE4E4085F23188F08A3156543C4B968C2657B415710CFBFB8E03D0FE36370F9AD778731344A30DC039BC30337CC2703F05BE627888F8CF87FFCB2D032FFEFAD76D60BA740A72E49BB54A7FCB08D8ED66008FD6A5F911ED070241088642100C86D92BA589F98341A3AE6F2AA56733A972219F1FCF66D2FB8686FA7E363678F267EF97D5C35414B3B9B5F3C6A6B6AE0FE3582CF778FD0D7E7FC0190A87297004D9741A32991956F738939A8114EE994C86925ED85EC8E5A0884CF2BBF4C3233794BC3D13A0C1C60F6C1CFCE98FFFB95D3462D69AE2F1D719E081A510ABE0138D050B36D6464D641935C66E67AF94DD6323F5EE2015EF00A7C350F5944D433B5D43C11FCA3EA50444E46C55522459AA944A23C3D9CC40FF89A94236BBEFE440DFFD7B5FDEF1F2FB7991A8C9C83F36F76A16C98A8B2E5AD7D1D6FD499F2FB002C73A866316400671D545EB70C8ED8248E388E32F99EDED287E20D18AAB8A0C65A9C2CC0395BBA7F729C74F962C0DA2B0B2F812332BB2D11A07771670A2CC64D63C5B9F05815DDD3D7F35303476AF2429ACEE16ADD810454145FBAC515CDD38E65591E768DD8E6ACC67A8B28ADF285778C9110AB7A28FE9C8654A4242AA88085DC5502422767474F20B175FF0FF7F78EBA64FC3F9ED4C9349BBCCFD8CDBB6C79EFDE189E3C76F1D1A1ED6D3333314A5531C2E876A27AF4D952AF96C6A18C965D3741571B766E3690A4EA4CC7B5E14789B202A82A0A8A2A0690AAFC8AAA0315CCA09769BA074762DB8B36A02DE36BAE5384AB4A3150A14C1B53FF8D8F37B50BD34F41E3A02B453AF9DC58B16C0A2450B912B8BC7FEDF3FFD93FB119E4EE99A36A1A895D17462F4384B3AD2F5F26FF91EEE0C133973C70B788BBF1F2FA3B11403D1C62E4170362191EA11B9C7BEFE777FFF292AE470E8D06136AE6452695C69575565FCE6DFDB4499B092B997F16BDEB6DD16DFC6C350C66438146DBE31DAD8F9317CA216D41621F4209C99749A27C42E0882696B04D3776513753DF5F50D7F93CFA6D19E6598FA09C7DA34BBC335D2D2B5EAB6AE16FFF66834AA27162FE636E3D56363635C2A95A2D270FCE73EF7393EE5F1E8B7DD769B429DC1EEBCF3CE39514BE8EEBBEFE6F139849BEEB8430C150ADC17BFF84575626242A7B276B525ED0E1D3A24E424E1B278EB827BE572B10589CA73BC023E4F00BCFEA0E191E99A15B8A98E2DEDC964A221DEDC31A2285A195DC1145E3C1C89B7FC78666AE441BC3DB5D17B4B0538DE9206A0BAB6D1A6EEAFA3CAFF0355956D06A8B021980BB32EDDABD66C40A0B308A610E18E4F4C41A158040FB5701105E843E45A44CF82800D357120BB457E292D928CB57417962C9BB77AE1C28521A7D3D368B30BF58260AB471731EEF3B85B5D4E57633235539C4E24FFEE78FFF167EDC562E17BDFFB9E72AE6A04F2B43E77DB6D226A406FCF9A0B37C7E3B13FAB0B053DA57279345F280CC9AA36A12BEA84249727CBA5D2E8CB3B77168706522F4D8CF479C8F2D26311AE228F2114AA034F3086E6B90B31990CC54209BC6E0FD4D7C7208EFBC1838760CF2B3B203D9340103D5305ED82689305D1FE9DC468DF57F17E85DF9901A8E68F37D2B429DED0FE4C726240B0A62E7D84F011C9078201686DEF4117D4694C23EB6622075E63478E95E53C6BC04800D1E7F7427D432334A35BE2703AF448304873F102B940B46A867C620F3E24810C022D1E97130AA53204FC3E383638B4E7D0A1A37F3C7EECD0FE93ADADA5E7EEBA4B3D57188154FD4D0F3EC8DB1F7ED8D3BA74E9D2250B167DB3BBBD6D1535ABF2B91C902F971902A785B07974AB29D043F90E22EB2BA0ABC9549A4AE97063A3E330313E0639FC9C2CAB144A66F99574ADCED2ED04C39727A08E8234D47F043269F4163229C8A1A7606D91FA76757CF4F8F5C5D4E4E3BFD5FC9CE97D4B85A1B40A6A5D9D70ECD557433389D2FFF206C2973B9DF688DB257281800F39955CBB20C4E371A88B46201231327AFDC81CD4402195C9B2762A34F345851150ADC354621AEA2261861388B054F1A25028C202E474AAB5DFD4500F7DFD03501F8DC2C8F838ABD74FAD5C16E2FB13D3D3FA2BAF1DD836D4D77F772E393680A6A2B26DDB36ED3DEBB64184BFE926DED9D6E6F4DAED6D0B7BE6DFB966E9D29BEAA375DCE1A3C7218ACF39323901AD8D0D30399580AE79EDACC8F4EA15CBE1086A46967F80639346D3E8F578591B5BAA389E4326C9A316A5C65684F683FE002B3B9F2B1658C83F914CE1B549981A9F8099548669D66C268FAEA2A2178BE56431977AC6E128FCD58A4BAE9E08562A0A755F793313FA0606B8E4EEBBC55B972EDD108F446EC6779AD1ED6B713A1CF5289D7E9117DC9C919801A3489C90DFCFD416856DA97902F9F4056AC3827EBE1BA5776C720AD6AD5CC1DCC9E777EC8425085EA8AE7F1AB9D6ED72B14CE408B56BC187686F6D81040EC0FCCE4E664246C7C68C3AFD85024B3372A2B4144B156843ED319E9856F6BCFEFAB77AF7EDF9961E8B25DA1104BDDBF8804AE179162FB671D96C74F1C2C55F5ABDF8822FC563117108A598989E1669D08C9E975517D759530AB7DB05C74E9C84BA701806868650CD07617A7A0682013F6ABA228403416888C7E0C0E123B0E9A2F5CC7DDBB5771F34E2390AC84DCFA49856240CC0840BC790CC29F53668C4FB9319D01849D522C70B5924FC8424C9C308254626C7A7B67DEB7FFE8F1DA797A217ACE4076B7BE291471C3645F9F3EECEEECF85FDFE05B148B8011D0A1F8F687F7C6C942342B3180012753E4A655747073E408075DA9CDFDDCDA60706F1E168068CFC56E26A6A9D42EA9D3A6F91A5242EA77E3C13C80CA4FA69BA33890F473DFF281A460C4083D4D6D28C0C839283D70E8D8E417D2C465A80FAFCF1CB172DBA28525FFF19B950CA0E8C0C9FF8F7279F545F79E5157DF3E6CDFAD90678CF3FFFBC2DA528C1056D1D9FDA7CD1453FDDB07AD566155DADE9540AEA502B4E3346EE60BD08A9A700C5EB51CD3386A7F7A8D43DC54A58457134772B972E637D0E687E857A0F6690B8193403C3F8CCACCD1D0AD9040A13B5BAE9686F67F75980634D2DF4A8240F8D33C561C86C4E4D4E7075E188DDEB76FBC28140030ADF7C55E756EF3DB04FF3391C4F5F7BEDB5BF99017EFDF8E3425E513A7881FF40A554B6AD4509A6C51A7154C9D3A88A49B24965937F333038C4BA70F59DEC67DD3A48D2A966FE456BD7B2BE3E88D9D0F6DB186796CA12ABBF4F44A76D060784EAE92FC101229B46AD5EA248F4A1E111D6A0696C32612458E02035E2BD998648265983A74C2E6F1451F4781C17CCEFBEDAE9F37DA4A4EB837DC3C363CF3CF288FAC10F7E503FFDB9DE09754F9D4E8E4D4EFAC30DCDD7AC59B3E6679BD6AEF988DD6673508712625CEA4452AA9461C5920B580027878C4C6BF04650ED1381A770ACC8941173BB9D2E46C41C3E4B02411CBD52C7B2340A0B4DE05087141A6B6A7A4D4DB2E6B5B521438C328D428B4A0EF41E623D930687469099EC2C20E4A46E27BC08AB962F8508455BD1C4EE7AE555181A1BAE0C0E0E3E580A875FBE7EF366E5379A00526DDE96964697607FE243D75D7B410209D68DB68B961F0750E5A32BC306BFEFF87158B5620553537BD076B3757DC8CD14152C9A3582BA905BC3A8E6A83913D9C3180ED0F1FE7EC6E1D4B59B9A2F5103065297F12875EFAA83C37D7DB06CF122A635C84E1276A0E4105A904A9D3CE91E03C3C3B0B0A79B0D1631054D28BDB86F3FE473B9E7A646263E75A277EFF03B5D8114B186F0EB63C75ADA1B1AEF0BF8029BD7E32013D825C6A5713984BF751E6AAC49C43864E6280A4AAB81893988E8A4255F43A2D131FD66C20444B84C368F2633C82279D4FB90FA1B12A310EE211C9444221F1F1802975D448640CCA0482C07937228572D5BCA846ECFBE7DD0DDD5C56844E1641A17EAA8D6D77F12A2D1383CF4D8A3AF57F2F2D613BD7BC64E2F32F9060660C0E68E3B9C5E495A78FD75D76D4FCFA4435B2EBF94A9A4C9A949C8E58D45A4C6624B23B3845AB8512B95BDFB0FA0F4AF314AC620E73FF7EB17D97B295459749DDFEB616DDBD6220822C2F61E3D860F59C78020B58309E2405A39F4F1589471F141B487C4803480D4318CD41D790987FB4E80A42A50AC486CA045563E454F8D8F8DDD7CE0A5975E78A77BEF6CD9B2C5B17ECB968B1BA3B10775E042248594EB40408DEA1D2DEAEA60BF835AD374A2B4121108CC2E59301F924894A984D1CF9066F533991C5CB87A051312120E6A40458CF20A0A523D32148D316914C25843A815366FDCC83408D1EAA55776C34A247C0A7114BD47615FB61A5892598E00016DA3D9A50F9EDCFE2B088443A99F3DF2F0952EA9EED0F7BE7757E974C07C462F80B440A4AD2DD2D8DCF847976EDCFCD5519438526B61340574E3DAEDF91D3BA013259DD03D252F54A4326B9A48B6EEC2552B1971C72726512B14A113B99BA4FF859DBB5092232CD04192422AB11E095E5BEFC6CCAB87B189097879FF41568A2E8D9E03CB5A660D3D385D51E46CB9583C922FE4F62412C917D01C1D108AC571048EB9775A03B0FAC7A190D7CE714D68EE9684A3751FF0797DAB9C2EE70251B4F98D5A1ACC478320323A69AC75A8251AEB8D0059ED462691084FAA9F0847D9C1D49F78D3FA754C0B9C40934AADE8C8AC9220BD8CC2416394416FC16137B0431405E7C4E02082C58B4EB937E10BC253AF1D38084DADADF0EC8E67BF7EE2E8897F28241289338DC9191980B4C027EFBACB0153530BD09E3E2357A4E87A24260571483D915F4AE8D38E80851882DC3A52E9AFEE7B0D365CB88EDD830A48EC7CE51594DC207369E85B488B2C59389FA9366B2976ED46523084768EB40499803CAA31D1D434049764499ACEE773BD857C61F7D8F8F88E4C3E3F8CA7B3227E942F970BE80B57162F5EAC9C2D8F8000602F2A3D5FB1E8D0F2798FE070783549F23BFDFE96A6786CA3CFE75BEDF67816DBEDCE3AB66482D55250C08BB61901357BEE16F46248FB9DBE913620B3401E00790594F9E3432648A5B3B01EB52A990BDA5E7AF965B4F1CBD9F81226CBE6B22CC780059190D1A85D1EC55C76EED903A2C39EF8F9A38F5E1DB5DB0F7FE31BDF28BDAD40103DEC6032898AA0EDB3976DDAFC7554ADB079C3454C159F699B46BB761239726626CD9029CD125211C3954B97B0A8203006C8C2B1E327600D024BFA5E0284A3E8CB92B6C8E48B2CC994C29D848C3555D1CA95F27821973F90CB67770F0F0EBF54D2CA1308B67382AEE7CB3C5F84584C4AA0CC6DC6FD4C5D39CEA6FF4FE9E8CF21E48AE2EECCE74975796CAA8A084DF1A167538FD27751C0E75DE3F17A963A1DEE064E1058A37BC24A541D8DB00FB9CB14F720EF864C1FF53EEC41EF8130056DE40DED414976399C4CF8A8652E61B02E94EC48DD99CB27D134F2B3BF7E091A9A1B61FBF3BFFAEAC9E327BF5F4E26936FA6117F6324F08B5FFCA223A7EB3DD76ED9F2944DB4372E415BD5883F7862721291ED18B343C46D647742C81874ACA25D26C44A1BA9394A64249B44B69BA47B606494A9295A5348E641672B8F290356960BC5C270219F7F2D9BC9BE3C383CFCB2A4EB33E892E62A9A9647C343AB38E4542AA599EB01F4732912480C41EB12C8B342228928056EA9CA10106E6A6A5DE7F7FBD7A196588EEABD4514EC364E30D65752CB79AA8AE2F3F9611E12AEB5A989694872FD8831080FD1D68F02462BA82859249D49336F8C34018D3D69963832D2389ACC03478E51F2C9F8438F3FBE4576388E3EF826D2FF5B1980B4C0D1B1B17067D7BCFFE78ACD977F83B257C8CFA5668B51F4E5A9D41835605EB16CE9ECDC3781B68E79863A47625373475283940E4D04275F95A440924BE55CAE7012A57B5F7626BD737472729F54A9A4ED8290E32B9542D6EF2F850A05E55C24F8DB610864069AD01251A65D1AC72138907D1AC8A1A6C6B6E5C1A07F3DE288E53EAFBFD36677386D669A1C99035AA749D5429B50780848939091BB4DFD08AD6DDFFEFD2C0A4BB11432CD043CA7D1BD8ED7D7C353DB7FF95F27FAFAFEE5BE7C7E46FF0D78E8B7CE056C412D50C7C9DDBF77C5D6C783FE406B1B6A800E0473D6F6EA6BAFB1C00EE102D20C14F7CE174BEC0753EC9A12428CFE80A51CAAA76308D8F62653333B2626A70FF37A254B2A9D773A0BE8BF94DBDBDB151C347DAE11FC3FC2101E5D771043F0C4108AE28FD5D72F884622177BFDFE1568027A9C4E978F40B16833023C887B101338C1E37499311781C560080F58DB4974B107D0A4667399A1279E7AFAF7A0AEAEEFBE3BEF2CFF6E9341A8053E9148849A9A9A6EBEEAD2CBBFDB77F4086CB9E20A16CA9C4C2480A7444F54FD24DDA4CA5922A32CE9F9423E954E670E2120DF3339997831954DF6EB2A9FD36439A73B1C8530E2C48391884AD3A2DB1E7C50D34F5B65F37EDE3863F52879163C323B37303020CA3E9FDD23081E49D3BCA22CFB3DE1C03C94E48D7EAF7F953F185CE4757B42769B9DD644B2CC1E32A9548B51532416A4A3EEE84FFC723B74CF5F004F3DFBF41706FB871FFC31AA4FFDB778436F693AF8E6BBEFB63BD3539D576FBEF291B696D62E9AADA2EC5452E565AA3855296BE8A22490E207F3C5C2EED189B197CAA5C288AE0A391BCFE7B55CAE986B6DADBC17806DAE690902964B92492A3665936C368F8C0CA12343A0A7D1D8D250BF0171C21A34C14B02BE401471024F0B69C8742076A2922F3032327CFCA95F3E733D57289CB8EFBEFBCAEF4C3E006A818F4E4E065A9BEAAF5CBBF6C27FA1A9C94C3A3B96CEA40EE017BF3C323ABAAB542A2574B4DF22C7E51587A3581E1C64A56CDE6FEAFCBD6008CBD3102B15B7A2EB5E4E557D76B73BDADCD070A1DFEF5B872070A93F106C24D77CD7EEDD9FC88E8E3E7DEFBDF766DF4AE7D1B79C1246B384AD894440E0F93872A51325BB8CE8BC403E784A964B0DE728427FBF318485231063894949723B45916909A2898E34096ADA245E9379AB7D85DE564E20790594E345695B94DAF47E046C73912108475834C1B7B4B71308FBBFB5F4142699E3861A0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (57,1,'Network_(24)',0x89504E470D0A1A0A0000000D49484452000000180000001308060000008AB0CD3B0000000473424954080808087C086488000000097048597300000298000002980136D347DF0000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A0000045649444154388DA5946D4C5B6514C71B5F37C518E3A21F467C19488C88400824487438FDE00783C9483F383256322D4244601B93C150E85A406C6F7BDBD2F6B6E596D2D77B7B694168A59442A1851270CBDC5C94900988890BBACC2C8EF7F6F83C4D34338BE0B60F27F7DCE7FECFEF9F9CE79CCB0300DE4E514ED86FF03B4740609D86DA814B706E6C0EAAFB2F42B13E04C56D4C1C691EDFA97E47388ED35DDE3F2B9C33201ABE0CD22BD7A13A7A0D8ED0417849168637446E2481A4FB32F84CEF5E35DA18189F98801343DFC1BBBE65B0312EB0B06EE0B7D9B0C1DEFB3238A575AEFA030190EB0C50865A94DFBF04C7C52AE03C7DC09732D8E0917B36282C2C4CB53B9C7FB4B4CB6ED513D47203695AA923E81B3532E352B58858615DAE98442279F59E0C323333F79BCDE60B5285E277A5C170A1B3BB674E6D34AD694D964D9DA9E717D6EB9D5151D44FBDBDBDB790C9B37765909393B34FABD50E2955AA6B0EB707060323E01B198540681C462393303639059333B3303533032A8D66956198DF9A9B9B1FFB5F060505054F1004411B8DC61FBF54A9E71C7DFD9B1EAF6FCB170C6E872293DB8381E0963718DCF287C6B702E3E3DBE8FCA6482472592C96ABC8E4811D0D5253531F158BC512ABD5BA505454F4DA6E03707B747474440D0643F40E83E24F5B6225623A5E4598622724C4B6D5EE8C97D436DD2C3D255A3C7CE4E8F1DDC05873F464CBA2E0ACF4BA4CA18AB72B75B11AA93EC1C46CDE3BB53238A40A02D1ED8421BF1F1A493D94E97D50D9E98163675A97D124ED4177F2707E7EFE5E9427E136E03C3D3D3D09BD3F74ACBE75B98CF48090998546EB00701C0766A617DED64F0366F30E56B6C5B3BF1A86063D03279534B45ADD30120CC2D7833E90C854EB0A858296C96476F4342B954AB35C2EB7932469416145EFD636B97ADDC17980F5F44373E03C7CACE3A0A9D30CD9CA29C06CDE9B15E2D8CB641432E84B50E8B90A75CE6160D1E4D8EC0EA0E8EE985EAF5FC4178EFA3B8F266B09E597298AC2F93CCA2F921A5D8CEE3603EBE240DE6D8783EC0F0916666236EFADCA73DBA9EA5948367C0F59EE0510847F05917F1648C6030D5AEB06DE87BCBCBCA77373730F6464643C959D9DFD7C5656D60BB86DE8FCC546CAB681B5E2FE312819BC0259AEF9040B33319B577858B0F67AF91770A8E22CBC57590F1F549D8E95D7D66FD4D435AD947EF809BDDB25977E54D55553F7F94A79ED990D5C8B1998859998CD4B4B4BDB979292F24CCA2B39649344B1299669D6DAE5EAB0C3DD17B1B83DDFF6B0EC73FF05A76DB603965ECFACA3AF2FD22A25A7C58466B549426E2296323939793F6627841EDF37EBA31361180D47602C12496CEB28DAD650741AFC13E13865B3386E07F3F9FC07299BCD81BF610DD626361CD7220666B9BDBE8D7F16AD87E36C135351884C2371640A86C642F181E191B52EA7E3BC94A2846834EFF8630A04823D520D25C41AACC535B8163330CBC4BAD87F6DB299E57EA6596688D0A9DFBF9B0DFE3BF07E90A8B68B75FAAD1CB720140A9FC4E77F0196FCBFB5EA865F170000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (58,1,'Network_(48)',0x89504E470D0A1A0A0000000D4948445200000030000000260806000000828D18010000000473424954080808087C0864880000000970485973000005310000053101B7ED28520000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00000C984944415458C3C598795453671AC6D376BA9DB63375AAD6D6A5A756A1AD5BADA3756B4BD16AA95AB72AD45DABE086208A232E6C0164470861094BC8C212484242488004020924AC0A58B756C7F5885BA76AAD755A499EF9DE5B759CD39EB63362FDE33DDFC7CDBDEFFB7BEEFDB6071E00DEFDC49C15FECF7BF1C5989FA8C70241153CD3ABB138A70E9F4BEAB1BEC0868092466C53B760ABB2116BA5562CCD3061FEDE72CC88526181EFEE6B2CC75FEEA73EAF27042C1154624A4C153E115AE02569C52AF541F8198F23D87E16B19D9711D97E099BCCA7E0A93A8C29B96D782BD18AC1A195F00A12DC6439FAB378F4A10AD8906BC6A2AC06AC2EDC874DE58711547712E16D17107FF82AA20E5EC1A68673F02A3F8EA9F907303AAD094363EAF0D26E031606A57CCF72F463F1C8431510A46880BFAA1D3B8D5F22B8B213E9FA3AC4371D43D4D1EBF06BB98445A63308CF5160B1500397E446F48FAA45EF9D0678EE149080BE0F5D4088A61991C683482ED4A2CA684443830DA1063B02DBAF6091E502A6EB4E42902B435B5B1B0A541A7C1CAD40EF501313904A025E78A802667DE6DD3B4A5C0CA3A99A03B4DBEDD0E87408D4DAB0B6E9326699BAF08EFA04F82919A8AAAAE2EEA148932AE0199C7683E5E8F5D0BF005F530F6949299A9A9AA0D168902391C25769C1D2FA0B986A388B91CA93088888874C2683C96442A5D184D7A24DF0FA49C09F1FBA8088021D2C562B34DA3204B337CDCF2D80B7A6050B6BBB3801A354273135428CC9095A6C4F12A1A6A606B13905F00A492701CF3CD465D47BDDBA394636EE75E5E5D8B8230CAB77C563E5AE582C0A8A81E7DFA3F1E9D628CCDD1289599B2331C33F029FF885212E2919B5B5B5888E4BBC79BFF5EFEB612F2FAFBF9597975FAFA8A87084F323B5C25C956791AE7E992047B99D1F9FADDA1D957673EBEEB81F229372BE0E8FCB4C16C9747E25E5362F49A1CE335324BA66655F4D2010E43E1401D3A74F1FA252A92EB289E9080F0FD78C1933A6375D7F6DC4C4945E7D073A3F98361B7EDB23B17CED36F8068661B0EB48F41BE8FADD9031EE6FD37D0101012E797979374844424242C81F2AE0DD77DF7D492E971FABAEAE76EE15081CE932F9AD82526DB742577EAB586FB8A5D41B1C4A7D854353657496D7989D65C66A87AEBAC66130D77657D659BA8D566B77ADCDDEADD29577171616392D168B33262666F91F2260C48811BDB2B2B21ACD66B3332535F56A99C1000603A3A51EC63A2B4C160BCC0D0DA86BB0A3892D972DEDEDA865FB82B99E5DB3D9D0D8D282F60307D0BC6F3F6C2DAD2850143B954AA5834D6C476464E494072A60E4C891CF242727ABE98D6564649CDF9B21BA516DB1A289C1D85BDB50676F64F036066A8785F56DCDCDD8C760099CAE591B9BD0D6DE81D6FDEDB033781B13D3B2AF1DFCE8E8FAB2B232271B8E3F868686BEF94004B031FEF89E3D7B84F5F5F50E8944F2CF35EBD7FB69ABD8EAC3426FAA413D83A3375DDFCCA0F677E0ABE327D0C844B53071D5D60626CCCEFD4D41F7DAD87D2484A2CC68BA121C1CBC57AFD743A7D37DC744F4ED7101BB76ED0A6213AEBBA8A8E8FA92E5CBE76FDF13B331312BEB4C8248D49524129D4BCECAEE12E68ACF09C579E7B30B0ACE1795965E12C9E55D59F9F95DB9854567D8B5B379858A2E4971F119B9527546AE529DCD57ABBB14DAB2D332A5B2956A444444A82B2B2B515C5C7C998978AAC704040606AE60EBF62D36566FFAF8F8ACBCDFB5FBD7223A3ABA89F615A9547AAC4704AC5DBB763A4BF88356ABBDE5EFEF1FE4E6E6F6A7072980BDF92792929268858348246AF84D01F3172EB9B278CDC6EFE7792DBBFCD1CC79FFF8F0A3D9FBA7CD9C5BF3D18CF98A5973E62BD898FC816D560E3F3FBF62171797FE3C1EEF9107054FB9070D1AD4CBDDDD7D9A40907A8D76EBB0B0882F898598888D18899598899DB7D467B3C32DC90CCF1C1B36289AB1A5C88AA4D21A84C8742829D5C05051819DB1C9F0499461558C184B4305CE45DBA21D33177B7FD553E0948B72526EAAB1314D892D994A64E58A51575787446909E224250896E8384662256662E72D5BE37B6B7CAC091FA4D9304FB61F4B332BEE1E8B6942256449B04DB71FDEBA23F84CBE0FB3922B312DAE0A8B22B2BB7B4A00E59A166FE272530DAA156C3D8D28B519252525CC5F34704C61B94A8E91588999D8799F7A2EFBD784984A4C48AEC7D49C36CC49D57337DF9E48884FDA8B00A10CBEAA16ACCBD420BD50834061115625E43B7B4AC0E749854ECF940A641528B146548E6DB5A7B0A3AA133B824321140AC18E2CDC0BDD91A5E418899598899DE73E6DE67793A274189D60C5A4CC164C4DD4C15C5B87FCFC7CF013F62250AC4444753B448A52343636FEF42684126CCA5039C78E1DDB6FF4E8D17D6EC7CBC3860D7B62D4A851FDE93A8D67B6770CA2BEABABEB73AC1D48E725BA8FAE4D9830E169B631BE3A6EDCB817FCB3B4CE9509F95CEE0A668C76E49522E1E835441DB804FF54099253859CCFD89C51CC3172AC8C99D879EFB97B7C3339528B37E2AC1893D68CC9890608650A2C4B94620933E84965E6BBE077A28239AB127529D46AF55596F89BD2D2526AAFB0A0F62A9BF8DFB0F65BB6BB5E63FD2B6C05BBCEFAF4F7B7B451B1E05A3AC9526875E5D057FEC7ADD9D8AE1D57A2C796E62EACB49CC7ECD2C3D8B0370F8B53351C23B11233B1F33E983AE3C2E408155E8F6FC0B0D4668CCDEDC0DBD243785F7D1CF34CE7B0566947BE520D135BD66858DD1B6411594B4780BB41F38605B50E76CC060B271DB76FB74E83C1703768E765E1A0B69C82798A3BA1AFA8045FACC0DC8A531C0B31111B31122B31133B1B42B34E4F0E2F866B921D6F0A5BE19AD90E57F1418C511CC714E6A696375C84AFB6117BA545C82F2C043B4620313D0B91A92204050599F97C7E318B220AB6862BC2C2C20A582B0F09092964C70329EBE7DD6E73D9B51CD6CF6621623B7BF6EEDDBBD3D9F2ACE60B73109D294676760ED84191D67FA4E6E4C157AC85BBE618C7424CC4C6313256622676DE94E99F7C3529341F2EC94D704DDF87FEE91D78557C18C38A8E6372D96978D69EC7E6B6AF11D6C48C798E1C69D9B98891AB9064EEC01057D7D934EE274D9AF41C1DF418E4A334DEA94F1B1EFBED591AEBACFF14059DA7E8377A86CD11EEF757060F9E2168388264BD0531F109881108B12D438A0DA62358507982632016622236622456622676DE548FB99D934364189ADA824169FB3120F30006E51D858BE204266A4F634E7517D6375F06FFD055649CB88A148319B27D47216EFD12C3478D5D72BF2B10E5C86D398AC28327112D2F81F0C84584755CE26A526D62201662E2D81823B11233B1F3A6CD98D7347D7B0A26EE51613CBF0813C3E5981C26867B48263EDE25C0FCEDB1F86C5B04966DD98535FEDBB17A632076F3E3B1614B30E67AAE08B85F01948372514ECA4D35A816D5A4DAC4402CC4446C1C2363256662E77DE831AF6EE09091183078385E7B630CDE7C6B22DE7EC70DE3DF9BEE7CFFC3594E8FD95E8E854B57DF58E9E37F719D7F50A7F7866D854B96ADF5A1E5AFA7F601CA45392937D558E5E37F816A526D622016621AC6D88891588999D879343627B8B9BD3ED6CDAD1F1B937FEDD567E0BB7D070C9105EC8CBEE4BB3D063BA3D23069CAEC0B2F0E7439D4B7BFCB325ADFEF8D9E38FFDC138FF5E93F74C58B035DBFA09A549B180276ECB9C498A4C4C6CE63BD89959889FDBF12F5193078E8A0A1A3BE1F3E660256ACDF8A207E1262D96A132748438658EA2C546B7E28ABAABA595E5D734B575DCD3CAFE9C7BC12F5D6FF57486E49C92EE69B7FA45C949372530DAA1527C8607533194322C7424C8CEDC6F37D5E1E7D6FBDBBF02ABDFE82BDB5D5419ED654670159452BB38516B6A9907FBD630BCD2CC83AD6B2A8612ECBD2D88CD22AE3F5F48262F7DF0B2E90CB3DE8197A9672502ECE8E526E2E6C5C4DAA4D0CC4424CC4468CC4FA3301E979790D46731D67F9EA983524CB67B1B1C42CC82ADA5A5B39834E3E9625416B47271AC90BB7ED87D9DE047595C919979919F16BE01E1E1E4FC60AD3E3E95E7A869EA51C948B72721E996AB07E2DE7AD1B39066221266223C614B1B8ED6786862C9CDA6070D07F0C280E1E3EC28CB91D0DCC98B7767470A6FDE49933387EF2142BDC463E161295FAFB54A9B42336232D2C342666C0EFFD023BE3235E89CB4C0F4995483AF394AA9B948B72526EAA41B5A826D5260662B9C3A5D61B1C9F6FDA34FC171D998C9D5DAB6A6A39A3DDFEC517D8D779009D870EC1C83E1FFBE44E894AF56DBA4C6E8D4D4F5DC7043F7BBF13F9CEB3A1A1FECFC7A50B7D2837D5A05A54936A1303B11013B1894B8A350B362F78FA1705787B7B3FCEC6974363A8808A2995976A2E66CAE5DA188160CE82050B1EEBA995E7B70479F8FA3E19979C3C3B5326D71203B1704C0643F7D2F5EBDFF8554F1C9190309EE241C3FE2F82D8CB7B624F7CFCD88894C471D4BFF79E7F037BFF6CE432A5649F0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (59,1,'Network_(64)',0x89504E470D0A1A0A0000000D494844520000004000000033080600000027DF0EB10000000473424954080808087C0864880000000970485973000006EC000006EC011E7538350000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000015154944415468DED59A0754D457F6C74936C93FFFEC66B3299A58A2C46E6CB1478D0AD1286A445151C4500C58500151208A06E920481518CA00432F03436706180686A177502CD8359A62E226465D6380EFDEFB5BC87177DDB39E246423E7DCF37EF32BEF7E3FF7BDF77BF7F71E5A00B406C256ADFB486CE41E03C3A3E930F493C23040864D4139303A9E8B8F42F3601E5600CBC802584517624F4C11AC638BB02BAA109661B9300992C1E85806D6792643DF351E2BADBD616269B39BEA7DE1D7D6A935900158E3578879AEF9D03D5A8215216A18886B6194DC828F659DB05174E1A0FA32DCEB6FC0AFED2B78367F81FDEA2BF838FF2CD6A5B56389B81EB3022B31C1A3044BDC32B1DBCEC981EA1D4EF6872726005BC24AB132408975A24A6C96D4636B461BACF24FC34E7911876AAEC1A3F94BF877DE8257FBD7B0AFBE8E8F1517B03EB3134BE35B313BBC166FFB9543DB55011D5729F6EC3B644FF50E257BFA890980559C1A5BC455B0486AC02E5907F6C9CFC2497D09AE0D3708FA1B049CBD0DAF937F857DFD97B02CBB82F5B95D589A720273A29B3029B81AA3BCCB31D4598145AE19D865EBB49FEA7DE3890A8063461DF6A437637FFE091C5276C14D730947D5A7E05FDE8EE3E7EFC0EBF46D38347F0DCBCAEBD8507811EEB119F8204A83C9A2468C09A8C2304F15061D9663110D811D369FECA37A073F510170CD6FC6A7F24EB8979F87AFB21DD16999A8ADAD4568462EFCBBBEC381F6BF625BCD57D8587A0DCB72CEA154A914AE7B46A760CAD162BCEEA1C26B474AB0D84386EDD607F752BDAF3D5101F054B4C34FD184E814A900D6D4D484F28A0A1C4BCE84CB895BB06EF8069B2ABE805ED155CC9776214B2643555595705F4D4D0D5C4449184B2F511DAF1C6CDBE5604BF5BEF2C40460E55AE3B8E309E9020803B1A9D56A64E7E4C043920E87A6AF6041ADAF5F7A030BF2AE627A7A17622512E4E7E7FFD3331A4D15D67B27C372B7BD0DD5FB17B2A79E8C1E60B025E658BE06B1E999024865652572083E4E128F435149B069F8121F5552EB2B3EC39C9C2B783BF51C02838291989888C2C242D4D5D5214D968B695EF978DF370F1FEFD86F4DF5FEF9C909000D81909A339048FFD1ADF3A8654551D10419847DC763B1A3FA060CCB6FE003F935CCC9BE8CF1A9E771C4C515CEBE41F03C1E058542210C1B8363E914807C986EB7DD43F5FEE98909000F81081AFBDC9DB94503E2921079E233B86696C051A6C6DE8A8BB0283D8F4D0567B15A761A3AE99DD08928C3DC8436CC8BAEC3B1F068149794A0BABA1A9601893032B3DA4EF53EFF440460D2A449CF39BBB877700B161515C1C1E113FCE5B5A178E9D5C7B76123C7222C2C1CA5A5A550A954B0D9E7E435105A7FF50A0D0D0DFFE0EDEDEDC0F0DC8D4343C3BE8E4B2E70132717060447A5257807C5E6BB7887571D760FBEB6FFD0D1FB360EEE0FEC0FFBDE77720BBA74C43B4CE31D1C971718992EA1FBFDC3E3D2431313937E2C2B2BE3BA1EB8BBBB8FFF5D0780FE9E727575DD4463BEB7B8B818515151372D2D2D87F75FD71E376FC250ED296523C64CB960B663FF9D6D766E785FDF1C7687FDB1C670EBB7AF8F98D035F4AD2919DADAEFFCA5FF197B7BFB35696969DDE5E5E5C8CDCDBD7DF0E0C1577FB701707171994FADF523775B894472C7D2CA6AA68E8BCB338219EEFAD3B8690B4F0E1E3E1AC3B4C763F1F23530DBB90FDB6C0E62EB2E07E8EA1960E498491832723CC64F5F2CED7F6EE6F6EDCF12F4DEACACAC5E9E4629189F5B5B5BFFDFEF2E007676766368BCDFE3EE9A929ADA2B8A9320213B0709B21C64141421BDB00869F90590159720AFB40CD925A5C82F53A1A8BC02F94A154AABAA51ACD6A084E67D755D3DCAAA6B515E5B87EAA666A8EB1B20494CECE56994A7D3B8B8B84EEE6DBF9B009898980C96C964B7B89B4AA5D2EEB068314A08AC96C4172ACB504E70F52DAD28AEA8849A939CB67694126C3581F13D25D4B2AD274E404DD09535B5683F711295940734D37D0DF45C151D779CECC4F1F0F0EEBCBC3C615A15894425BF46107E31FCD2A54B5F4A4E4EBEC4DD935AA8FB88A757A78A80F34B9404DD22C01553305ADA3BA0ACAC4219896FE93881323AAEA296AE6F6EA160A8D14601A820F8DAC6460A509B10888ECE4E5451903808FC7C25BD587D7D7D3B0A0A0A841C21383838F29706E117C14F9D3AF58F62B1B85EA3D1F00BAA87DE01928894B47B8DADAD28A0A150ACAA105A5E5E564E2DDD24B4AA92BA786B4787500A70746F59A586604FA182E6FC766AE9EA06EE192DE838750A5574DC79E68CF0FCC953A79155985F46E017797AE51C810272E09704E167C36B6B6B3F1F1A1A9AC922287FEFF5F2F252BAF8F8BC9755A480825ABCBCBA06B9F212D43436516FA084865AB6968E6BA8BCFAD975B451EBD63434A2B1A50D4AEA01FFE8091A34B6B6A1827A10B7BAA6B65E18264D74AEAABE9E02473D4753F5C072CF9EB76808DCE4699682DFEBE3E363F49B0660E6CC99CF1EA33F86A72CAF372020A07DC182052F1E0908488F4D4BEF16C527F4246566F5885352BBB98CA5692C254BD6932ACBEE4DCBCEE9AD6968EA9597A97A3372F37A32F3F2F97C4F6641614F1AFDCE2E2CEAC92C2CECCE95CB7B72E4722A153D798A123A56F414962AC94ABB3DFCFDDFB4B5B51D1F1B1B7B87A75B7AF774BBB9B92DF84D02D097E8EC21F85EEE86D40BAEAE5AB5EA65BE666161F18AA1B5F5A0CDFBF7BF666C65F5B2E1279FBCA4EFE8F8A289BDFD1FCD5D5C9E37747179EEA769F1714C474730F6F9B03D34F32CA68FA7073CEDCAE5F21F68088E19D000F4253A6BE885D7C3DD8F129D5BC6C6C6A306EA7BE271CCD1D1710BE5063D9C2ED34BF8BB03070EBC3C6001A008CF522A950F4A684C53A27377D7AE5DB3FF97F0FD8D42899213274A3C0D53303EDB4EC9D3633FBFDEC8AC4A7FBD7187FE3A63B5BEC1A6AC956B3686E97DB8F6F0323D7DB379BABA8B478C182144942A1D412FBBBB1400D0B4F780B2B1D5FF6BF88783E0ECEC1C959D9D2D2CBAD0BBA18DCFB1766660166662366614588999D9B50C0C3FEA31FA341CEB8F88B1D9350AA6AEE1D8EA1C84AD4E3E30DDE78C2DBBF6C1C8745B0F7D94085F65E9E9E9303631FF66D9CA351DCB571954AEF870834C6F9541C4F2556B9C67CC7877E240C3B20FF6C53ED9376B602D4BF5D65CB67770FC81B3459E963DBC8FF6B276666016666236666456666676EE013FAE74CF806EB01AABC575304E6DC5CE9C93704E5742942A43A0AA0DF11959C25A9E8C227C24321987729B609352050B71314C43B2B1C53705466E62E8199A5E1EE800B00FF6C53ED9376B602D87729BE15EDC8E63E151E8CF16C3D272C06B12E9948E5BE5760A6CCCC8ACCCCCEC5A869BCDFFF6817322E6FBABB0445483B509CD30496F859B44262C6535D2BCDD97E5C12B3A094734976023EF8279E609182536614DB81A7AC74AA0EB55844DFBDDEF0C7400D887AEB71C7A7EC5826FD6C05A58936BF55504D65F4544740CFAB3456650D03BCB34B34360634666656666D732D868F2FDFB4E3198E9A7C27BA1D55816D3807549CD381C9BD5B728296479FC01024FBF00D847A6C1A1FC22AC8BCE625B462BB60724E2585C0656FB15C0E470C083810E00FB5813AC84B5281B76A24C6C8DD7085A1C2A2EC331A31C87DD3C384546525292B018C36B8B458A62AC4B6D13D89891599999D9B53E5C6B744BC75E84A93E65981DACC1A2A806E8499AE028CE425F96C76F7C040606E2A0AB070E2417E27079171CE3F36968640B3D444969AF71A41ADBBD23BB073A00EC837DF19239FBF69764606F662DDC1ABF8077FB5738149F8D4FDD3D393F414A4A8AB028934F5FA27A092D021B33322B3333BBD6B295EB3E5F641782099E4A4C0BA8C45C513D74629B601B9929ACE5252426C23B20087BC5521CA9B900AF927AC4A567A18172F4FEA5EBE252254C83B2B0C327A297BE0F8653A6F8D2ECD9B34791BDC129F3B469D3C64D9C3871C8BC79F35EA16BA3C986908DA0F3C3E6CC99F3EA3BEFBC3376FAF4E983E6CE9DFB673A3F819FA37A06CF9831630CDF4BC76FD1F5A193274F7EDDD23DA477BBA412DE51C93FF94FC9298053563982BA6EC3E7CC6D38D47D8EDDE1290808398ED4B43424A549B138AE5960634666656666D7D25BB5FEF2226B3F8CF756E16D7F0D6684D561417423B68549111123816548328C8B2F6147C5154467E6A2FE21F07EE3B1964DDFFAD9B9793CF6BE25FB8E8D02C8C7DF53799BBA23FFBE4BE5F794B57D4FE55D6A1D3EE6F22EA5B477A8FC1B957729CFB847E57DCAF0EED1319FFB81A65F3EFEA184825D4A3D8ED7051ED620A7F39EC5F538D0F839AC6ABFC466E535ACCE3E05ABA078F884C76081B85960634666656666D75AA1BFFEEC422B4F8C3B5A8E09747172681D6645B54047D28C77133AA093750EFA8AABD8A2BA06B7D4029A0DD4C24BF15156413345BF7152C2F6F0311B4FA58F325E48799471DED16F9CF2B23D7CCCC689195B218D751EA29BE99DC09A7564E73127E914DE4B3C8959D1AD021B33322B3333BBD6CA3586ED8BB61FC1585F35260456E36DBA695A5433A6C4B4634A4227E6649CC3D2822B58AFFA5C58C63E905E224C2B9C74F49B4C26430EB57E2E4D3FF4BB9B668C1FA87CC0C6C7745D3847769F32B61E2EFB8EBBE99EFB74FD873EBB9F9999D97FEEBE542AEDA1F26F741F9FFF914B69561632B364C8C8C8E0ACEF274B4D4D154AD6662AADC792FC4B8276666016666236666456666676ADD5069B6A17593861AC1F4526A80613C31A3121A219DA116D9820398577D2CE617ECE157C587A035BABBEC2BEFACFF1A9A211A2A454C4C4C4402C162334320A1E2979708E4AC1860D1BBD284BDC4C99A3257DAC6CDCB3678F31A5CCA6746E039D33DBB973A7D18E1D3B36585A5A9AD2357D36FA8832A272C5B66DDB0CD8ACACAC56989B9B1BD2793DFABDC2CCCC6CFDEEDDBB17E92E5DE6E01C978500452DBC82C310417EC3C3C3211245202A4E0237EAEA26A22C412B6B66EDCC20B01013B33123B33233B36B515AA85A64B61F63FCAB312E842214DE8437C35B303CB21DA325A73129F51C66655FC632F96730AEFC02368D37E17AE2AF7057B5E2684C02FC6976F0090C4644E30504577662F8C871069486FEE151E9EA43F6F4C3E7FF5B9ADB7FFCA6F6B8B5EC23A2E9027C2263E0E3EB0B4F2F2FB88545C331AB0256AAF3D85C715DD0CA9A593B33300B33311B33322B3333BBD65AC38FF216195B6374600DC61D6FC0A8F0660C13B56178F4098C949CC1D8D40B9829BB842545D784AD2CAB3A9A6ADA6F2180DEB8218DE71198950FFFB824C4765C81A8E102264F9FB373A0A640AE9B7D484EDD80AF2419DED17170932AE0D97059D0C4DA58236B65CDAC9D19988599988D19999599995D6BDD2693D4C59BB66174501DC686356158683345AC036FC69CC2C8842E8C49BD889914CDE58597605A7C1E7B555D70D674C1AFE62C22EACF2052DD08716513C24A6BE09D9A87B90B759D072A005C37FB10A9EA212AAD427455ABA081B5B026D6C61A592B6B66EDCCC02CCCC46CCCC8ACCCCCEC5A1B369945CFD6F9100B9DA231CF2104EFDAFA61DE1E77CCDF7608F3CDF662E1460B2C58B51ED366CDC7E0A1233168E85BD01E3B195366BE87A5AB36C0D87C37EC0F79C1F56818DCFC227B2DF6381C1DA80070DDEC837DB14FF6CD1A580B6B626DAC91B5B26641BBA98DC0C24C021B31322B336F30328FD2DA6462796CF8A84918AA3D1143464EC4883153317AE20C4C98FA2EA6CE5A8859F39760BEEE0AE82E5F8BB59BCC616AB1A7D76AEF81077B3F71FDD6C6DEB96B979D5381E5CE7D87F4F5F5C7FF569FBFEC8B7DB26FD6C05A58136B638DAC9535B376666016666236666456666676ADBD4E4E43E62D5E9E3F6BC10779F316AE902ED4FD30497799BE5877B97ED4FB2BD68518995915D97EE2FAFDCAF5E60F5C7C23B0CBDEF9D337464C7A5B6BD0A03FD10BEAD9FFF53A00D933ACE58D116F4FDAEDE0729835B256D6CCDA9941576F4D0433311B330AACC4CCEC8FAAF4E957078F30193C6CECCDD7DED0EE5E6960029F90781859EC87C3916358BD71ABD0DD5E1BA2DD3B72FC8C324747C717031213C78427A62E4CCACDDD16121FBFD4C5C5E5995FFD1B60FBF66743259225EC233C366131FB5C6660309835B096B7C64D81FE467341236B3D7A3C012BD799801988E5AB57078D307B5483FD5334D9C9F805FA2F8E9E34AF71FCD4D9BD0B74F5B075A72D3CFCC3102A8E8738390DB1A9E990E617F4E61597F61629553D4A7525782384D7F6559A6A945059A054DDF41689A63FBC80F9735B9882F9B44B48F8BBF9CAB2AF4BFA7C08BEC827FB660DA4A58735C59136D6184AD3B3FBB1305858EDC3FCF7F5C02CCC3472E4C421CCF8F0D4FA93337F72420E6E35B4B6FDA8D454F754D6D609BB37F5CDCDC21695B2A25258A3E71D1A754DADB0EEAFA67BD454F28E4E5D4B8BB0CDA5AAAA42197D42ABAA6B212D949FE6256C86F819ABB54FB904068E9216C9CF705D429D5437FB605FEC53DDA741D042BF591B6B64ADAC99B53303B33013B311E3372E7E7EEFFF5B00F61E38A01D9D9872BF863E76EA1A9B04AB6D6884861EE68D090D7D5757D53508DB59BC6951462DC11537B5B70B5B5DBC01C2F7F006480D89AC6D6E416B67276F6EF606C749522323231FFB7DC14BE8C112493A3FCB75705D5C27D7CD3ED817FB64DF424369AAFBF610EB058D1A2A05CD748D19FA79988D19B7DBDACEFDB70070770D95C41E96524E5F2BECD8B40A9B94BC63C3C75C213BE39D9BCEB367A1E9DBA9E1ADAD662ACF5DBC84EF6EDF462539D7502B64D387892453D62B4A4AFE363836B6C2452C7EE57103B0CFC3E3CD90B8D8327E96EBE0BAB84EAE9B7DB0AFE63EDFAC81B5B0A6C63E8DAC9535B37666E0636662B6E362B1D7C3ABC6FFFAA279214BAEB8A3A231C63BB8A7BBBA70F39B6F84EEC4BF79EF8EBB19FFBE7AFD3AEEDEBB87B3E72F08C2B28B8B119F95DD13959A7A3324264EEE11106046DF02AF504EFFFCBF8EBBC719FBFC0CFF1F00D920CFA020D360AA333225F56BF6C1BED827FB660DAC8535B136D6C85AF9376B6706FECD4CD972C56D632BAB51FF715F80C7EAF1B838DB6CB95C184BBC1BCB51BCF1C5973873EE9CE088235C5CAE8654AE40726E5E776C7AFAF5E09818A9BBBFBF3E89FD733FF0CF19F7FF31205417FFA3C40A0A88F181032FBB0705E987C4C666C466645C670DAC8535B136D6C85A59336B67066661A64051E4A17F7D313F6ABA7941A6507CDB44DDEB1475ABC25225E4AA72E4169722A348FE202E33F342488C38CA2D2060216F79712BFDDAC08FD1439ED671D1798603F2314DC3F452D309114745C549A51759236B65CDAC9D1998255BA1B865BC7BF7C8FFBA33C42041D1D1160A75656F4E69E93D8954DA19141DE9EBE4E737753505879DF6CDF34FFD8E36469EEEDB437CCEC4C4E48F9F7ABB4D0F8C8A3CCADA69B8DC6716DFB0303BBAFBA9C7DA1AE320704F30B4B3FBFF7F6C68EA3CF36BFD4BCA6F9521F66DA43E67C70C643AFF2139FB3B95A8F1E9CBC720C20000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (60,1,'Network_(96)',0x89504E470D0A1A0A0000000D49484452000000600000004C080600000092F6B2750000000473424954080808087C086488000000097048597300000A6100000A6101FCCC4A250000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000029AD4944415478DAED7C09B85C5595EE3A63D5A9E9D670C7BA63726FE604121242184212E6061A4124088E403F501FEAB37DEAFBDACF07D86DBFFE7CDDAD82BE4F6C5AEC16D0061504154184080801131230818490DC9BDC79ACBA359FF9FD6B5755B84170448862E5DB39E7D43975EE396BF8D7BFF6DE6B4BBEEFD39BFDB9E88A8FC57FB1E5C799C5AB56E3889F47AAB5EA87F77C49FC8FFDEAF772FD84F8A6FA0E12369ED8F3ABDFE03F7EBFFA3B8A6D6DFFD0C04BB474E1B22F7FFF3BDFF868ED8FBE298250E928F9ACFEABB7D37EE358D274154DAB6E03D86ABCD5C5B18E7D23A052505728887362CBD76AB2B84ED7142ADB0E15CB36154A36152B68A62D8E4B150BCDA672D9A20ABEEB5B3142D1916722F8D3ED35E18FA2B96F5905A8B0E6B0A11FA900DE42D0FAE17D9502D80F42D841B1AF08A5E8AA22AE295A10BEE951C1F2A8687373A9846D09DB32B61534D3F5C946F3AA9EE1CFB17EE92DED01B22C41012C6C8D54343DF00A45CCD906F5AA02EA56CFDB125BBA5515FACBC2F7ABC2777C348FAC9AF06DCFAFE215D5F0EA4D829FA34A018A2C5324A4BF42D8733D4115CA1190C40A1282AF5A7E81A186856EB9420925B4AAD0D9F27DAAB0F021746EB6CFAD1A0AFC6AA8F0DE54CF3F6A3C40925E01412F0BBFEA15AA10B60A4852A00455558502F235E1976AB0C3DB12E200430F2BA152B378ABB675D05CCFAF86E92321E82DEE018A4481390AD0EB4A105004812B32E96493A4E9A406759280FB858A538319E03E7B0060289A3D4861DBA6E7FD14F09EAA96EFB2E089A00FB1F504DCCB75AEE4CD81A237DEF08E1E0F401086602346004DA770889B4606339CD20C25FB9FA293FC317287F621E8CA02DB05ECB855CB678C2F5B16A54A13F4811529BAB661987A8B03645B262CDFAB0ADFAF0A5FE23F26682DFDC5030E474249A610041E10945321958504C12732076979572B0516F4803E9A242B55E157EC6A60151EE0561BE3BDC9DF95CBB4B0BB9D3ED94DB4676088FE6B7F99B63B4D401C89834D3567F0A47A4AF01705088140360C3B6CF17E7186E2B383B4BC274DC1C66E71BE52A940B015B29C20F910B2E9F8A209CB175B3428C1E43CA05812206318062DEEE9A0EB7AAA8AB8636F81B63929F22445B89CFF9718F00A2554B2D4303D4C2B58F0ADF30E7F6FC2F28BC522954D8B4C5F23DFAE2BC015F85E06D673430A20026D01D772762C41ABC16050DC8315F1595644FF20FDE70B05F239401C1903DE1CE83D1A04EF9985404C93E8CC469F8E5F340F1C3F70F89C055C67E1170A0564B215725CA6932CF83AAFF74433996242EC15E101C5C38D9537F7B3785E27BD67698C345CED794778C05BB72B420E44CC9CE5D31393156AB5C7686157BBA09936D84C5D90A55209AC06420F3BE409E14B357AE9D5A8A52438BE83E352A928380E7B808CFC829BA669F4F40B07E88E43442F79493A5609FE25081FA10470FB48EF32CA64C668747288DA9A1A8FB0646EA0F864053CF29C1AAD04BB719956FAD5EE37074A6025D5638004C1B312B84522114A450D1AC1F53E944BAE7C5464C2470D0DE5AE18339FA196CC216A6F691616CF6C66746A9A4633B3801FC4011C7312E51EB6FA5A2F684D7E90B708C4F9B2497B662AF4CD0187760F4F8998C00AEC696BA6BFEBB348772AAC9D7A2FA9F7170FC0C7AE94293EBA977A411F19EF5960D3B93C9517AD212DD94A9981FD640E1F204AB49003BB11C2F7B92BDA13144A9600395A8006DB57D1B063514E8B0BCEDF9F9BA40F8E0F506FCD138EE9EDA48F56FAE927072C72F079B313B1A342015387F6362D6A5F03F6D32184CF6D263B4BCF4D9529E01C22B97F886C301E5B8E100DF69374E80019F0020DA20BF91EC5198EB887B3E61555931E249FBB1C20E347670A1451ABF18095B061F97C2A8D3F4A4F5A26BF7FA986046F4D05AC5AB52A7ED9E5977FFAB44D9B0E63FDEC6C8EFEED966FD081FE4354866778EEEFDF4DCF020F80558D7475D207AF7E7F3536E0BB73CFD80026E49E78ECB1C7869F7DF6D9E25B1282F8E52FBEF8E2FFB171C386F79681EF82EB972BF6A1D1A927AEBEF653FB8241230471C54CCB8C978A8504AE69A898A5A855B122E57249A9403915FC8E19135F6A84C37E40D7CB8140B060048D5C281CCE0443E1AC22CBB38E6D1586FA5FE8308CC226284061259C7EDAC6630061FF7BDEBC79D7F5F7F757DE520AC04B07DFF9CE77BEE78C33CEF80CE8A6C4C247B66B6EDFBEED2BDFFBDEF7AEDFB3674FFE95BF89C5DA1B03F168CFBCF97D6BFFFA82B77F65B658A122E86B58D5281C8B537666EADBB7FFC7ADFFCFB7CA07A6A6062710649DB9BFEFEC7C8F71F9E5977FF2F8E38FFF3414A00938DAB0E113C81586962F5F7EF3AE5DBBACB78402D802AFBDF6DA73F0B991F197311FC2B72180EFFEE0073FF887B9C25FB8FACC2585E991DBCC4A698566285A221AA6CE742BF01EC91712B3D9D959012B1C4F5DC7BACC30D4CB6691E5269A3ABC96AE45070C23F1D181BD5B7FC4F71A1C1C2C43D0FF02484AAF5CB9F24AC40415F454DAB871E317A084F1356BD6DCBD6DDB36FB0D95C51B3D280FE14B575F7DF5C9809E07A2D168289F07D329971D08FDF11FFEF087FF6DC992259373AFFFC5AEA13BC787F69F655965719C4C355263AA89D21D1D946A6C46D0ADC607DBB6686C64982627C6696A720A34B6408AA252AAB57BE094D50B56CEBD27E0260ACBFFB7A54B979E190E8715CE11F00C26FEFE995FF8C2179E804CDC3F4B05B0F02FBAE8A263AEBCF2CA871B1B1B9335BAE90F0C0EDA05CF9F0C47A3AE3C2779E20E3AFE1FBC3F040B0F83D5A8541DBB9125D1AD5C3BA0EA6FA8DACBECC3B03D45915D5DD74B7A402B2206B8E27AFCA0FE9B4AB9224F0D0F35B5B7B5055801DC666666F2DFFAD6B7D6DD7EFBED7B2017EFCF0E824E39E59405975D76D97D4D4D4D42F848B6FCB1890969D1E2257AAE62B677B7A7690289572A9910CCA76259148F46693293A15658FED8D424B53635896B5A1A535440B2C65D0CA1601009DB14B53737D1F8D48CD4DAD4A8942B15C5715D3D1609C799D2A6E271CAE4739488C6C4B3F06FFBC08C763EF30C2BCF67E348A5525178E6C378B6E319B1FEAC32E1152B5674027ABED3DDDDDD59A39BFEF8E4A4AD1A610A85407680E99669521982F1012BB3D92CE98A22FA75E0A6C48CC705CEF3D6B24CD149C731803BDBC088C8C6313329DEB2727DDCAF50288AFB89FBE277DC6F3193CD887B70962DCB0AB57776D1E4D494CBC6C0CF954EA75B2EB9E49287376DDAD4F867A380B56BD7B622E8DEBA78F1E21575E1673299D9E1CCAC7CC686F5D4CD789E88D3A2BE5E028DA485F3E609CB5EB270012CBE19D6DE487DF37A704EA3BE9E1ED2413BE7C17AE3B11825D0E675758BA4ABBBA313C7510A1906F5747620B572A90BF70EE05E7C2DDFC3B61DEA48A745675D127FF3B895C752389E90A1841C2B81BB40162E5CD8F7EE77BFFBDE75EBD6C5FEE41500D69104F5FBE7D5AB579F5E4FB410788B3B77EFBE7BC9E2252A0F9AEC79693F2D85B04BA53225013F2EAC9701987B3D874647A9BDAD55DC2B1C0A0B905720D0DA9022F87F504C69090603A4A88AE8FF67E529F01E55AD6E63103EE048E40BAAA68AE00CECA742B12492B4EECE4E1950782F1855918D839F1139CA8950C2AD78FEC81F533ECAF5D75FFF47BB392C3E0AE17F1AEEFC01860786066C4B5BB76EFDFB96BE056F9BDFD19ECA82464E656600290EBDD87F8022E130CD00F30BB89E7FC3F8EF38368D8C8D93E5B854C43D72F9828015C6760BE772B91CCD026E6C7CC7D092634503BA72C52AFCD880AEE94C96032F277A385712BF9B2DE44522C74A321A62F1C77EF6B3CF35373571A2A672509F3F7FFE92868686F0E6CD9B1FFDF8C73F6EFF4979C049279D645C7AE9A57F8344EBE33C9C58E3FA956DDBB77FF1C0F8F80F2391685F73324961788006CB44B014FDFF0DD81A3C2E0CA144A10C61F94143309700AC37048BF71023D873AA3348255C1F14F180AD997FC38A0B683A10C816F94210F7E367D0E119E150104A42F0861794E17162D40CE70D3DD03955C83CFACC33CF7C0E3064D7C7204E3DF5D48F20765DBB60C182C09F0C0B4242A3E1C1DF06E17F1EF451245A0896D673CF3DF7ADA7B66EBDF1F477BCFD7FF676B4CB9DEDEDF4ECF32FD0F1AB5682C91834082B6F073E4F4DCF900CA574821571E34F07AE6598E1D1B2857D7DC2D2EBE7F893811734A692E27C061EC2F74900E3C7911330E6972B26D85552DC8321AF3DDD268E27A6A7C5B512F8EFD9E7FCF515DFFEF77FFF07D0D7D6E38E3BEE9A9A2748A79F7EFAFF81710CE3BDEE7CBD13B5D73D0FC0F3CAD75C73CD2630891F008F8335BA69EFDDBBF7C1AF7FFDEB57AC3EFB6CEDB8152B1E8C85C24B145C5DB24C1FFB125BAA059C0E42F0263C81B15D125308A9DADD8C9D5834420D0D3128D3124AE273B2547564C77504FEFBB80773CABA6BABF004D7A97A4200E79949C98A22420807EE203CC92C57C454454955F77DE79E7B4E7CE28107ECF7BEF7BDDF58B66CD90560680A124636201B59FAB948D4B6BCB28BE3A8F100B616087ED505175CF05D40445DF82E32CF1D77DE79E7D548FF670CCF4BEFDEB9F353B8385EFB9987DCCBF37CC9F7207199C5227A94151CC8F88ABFC33112236469BECC03B9D857141C7BB22F691AF234CB57F83B5FF170331F419C6FE2A968306C1FD60DB93BD08DEBAB9AE621481F4EB23C5DF7A23A4FF9223911F473F39B9A66FF63DF3E67FDFAF55741A1F7F5F6F69EC8FA44A2A69D75D659F7E09D4EC1F173AF57A2A6BE9EC23FEFBCF316BFF39DEFFC4132996CE02E0608DF1B1919D9F7D0430F5DBE63C78E513442D01FC577D3E5584CA2F171C6F2235C30130E1F3E0E3734F8343020F66185D5EF61BDFC194BA55EFEDDEEDD809B843F778203F8BC38BF05AD69F7EEC3D7726F1B2CFBF0F175D75DE74B2FBF447DAA0A3DF6D8639973CE39E712C0D1435D5D5D8B59096053E173CF3DF7A1E9E9E9D5383EE4BF0EF0F1BA2960D5AA555D603CF7B4B7B7B7D6853F3E3E3EFCE0830F5E7EFFFDF71F98F3B04EADBD219FEB7E8B6B5E9E277DA43C1F78E0813158FE8588650FB5B6B676C29B246C53EF78C73BB6CCCCCC70B63C75542800012BFDA10F7DE88EBEBEBE8535E1FB78C0992D5BB6BCF7DE7BEF7DD63F1ACA707E8F0F3F372CFD00E2C0C52015F7736F057B3AE869CFFBDEF7BE1F23289F8EA03CFBA6D2D0458B1635E2616E42E272529DBA8197E7E1C21F1C1B1B7BFC8DEAD4FA232AC11D1C1CDCB97DFBF67767B3D9423D515BBA74E9EAABAEBAEA36CE75FE20E8BEFCFD57DF5D2A14974BB2320B049C41FC9A42C41BF741BB2CDB3AE498953D6363837B5E6DB002DC388687F81C68DAB5F5C95368C5C71F7FFC1370DFAFEFDBB7CFA43F930F32621DEF79E909279C7033E29151EF4185A1DD7CC71D77FC2D3CA134F77A90117DA2682D0AC9EA125D53BB24454D2B8ADC0A28E03EA624C25543281ADAA55A15F30257526523D1442A1217A79CA7CCCC0C55CC0A39B683064A184ED089276F7265557391CE9BAAA294C0F34A9B4E3B33B871E3C636B6FA6A3743C97E64CBA30FFCE2E9ED7B90F884E1ADD69F2AFCCC25171D1D1D896473DBC29DBBF6C8C57265CB19A76D3AAB3EAC79F2C9275FB367EF4B9B4F3BEB3CDB737D036C2B80CC5D75C1D9980CDBAA46AA8A4C1B794E2C9922351C014DD6A9949DA04AA9325FBAF45D57996EB4599FEC3D9DF4A04A91A046F100B243C54780F048937D52407B657069D9B34982922AC55972B39374F1A675B55EC78248EF1F78E027B4F397CF53B5EF1D8445D53D4D955D054A43002B2B925274C99B181F1ABA66D7AE1D3B8F26412F5BB672656B67E7CDAA243723D30E83B11AAE6BEBB6EBA88EEDCA753B0A23D35EBA6C116D38E524D16DC239027765DCFBE4B324C75B89F400815293E6BB540E3690EDC9621A4DD995285BF145358F653AD47CE0A7A4E4C72D5552145721571432F80E9211DB27983A8590AA1B419D42019594C2149DD9EC50FFB44976F702F2CB395A15EC16AC410CA423CDDF3B59A4E6F3AFA6732F42DA2FA61472BF4B49469223DBE592E6544A11DF2C375161AA67DFDE7DD7E05D3E78342920572E5FB360E1F16BA58626927483946088F4902106FB39290CF316F2E08E4017EFB76F603B2D9615D195C14A387BF552DA365DA1B055A4C56D492A942A747F3944B61CA462C512D59B268CD71613883D61DCB20C446198907CC7E07996B2572DE391A008C5C5B1838B148F74D3A4B6C6A4689685E4CA3329004D8BE144A4F8FDD379B2E6AD222D18A36CC9A2595B221306634B0AD99A01E54690E8E09FE25032DE49AAFCEDC6A30D6A14596D94BB8EA3694B41F6AC891A8580A2930951953C8D0A0E90C157298EEF0C2843597A12F5EF798CE649745809A7CF6BE2AC43DCAF58E2A9F41E9972B542A7DEEC9A8C65C7E2EC1B1EE0E36F38151E0F111720F3145D005CCE2914A1FA2265AF7F909888297D35BA49D33928A47D2929B106CA553C788F8C6B14381DB08F58A98E487F24B7448A1E265D93C89310848E36AC274A7075665052C433CA768102A1040582D5B22935009CC0B982CF90ECE27A971CD510833EA2E0A936945A9F0ECFE9BCC553E67DBF561AEB8989C4BCF5B838C4B5B883D154C1784C2B97235D72713104871F49B07AF600094D81125CE7E5316AAB36E254673D4EB948DAF38F53361827A9FB180A20602B9246161ED28715389943B4362E51634B987E78100F2B4781A3A1A34E01A150B05196187615D22A193A7F7E901E1D1C232FD046C168B256B30638963C9ADDF1330A6706296A04A8287A65FD39E3D8D58960AC800A8C999B103E0C9CE79739F85E87F2CAB92CFEA661028ADCCA34588F86505184AB2962D671D55D8815C01AABC9BF3E5DFC65D6535582592A935F040B4BA629184B5009DFB993C3B45029D2BAB5EDA2AB796C7286741C4B9A4A2DCD2DCD479B025ADAD2CD92A610682305F1BECBBB9AA93B55A21FEE1EA25250A660A41524852B34A1A0BE65547E7686E4525EC4C1B9C2AF4F89171E00E3B5E4AAF01DA44336F962367740B22993CDC25B8C8A0A7829F3746E83FBCE15836C9F2108C10517CA3528F2B8CA10EA9B2B74B10FC11778AA78CF326A58BC5ACCCF2C8E0E515B698256F735523CDA7AF805B9B7D208684201B196D628F7ADD49334A67AB5ACF3F0B69E89CE3D3F971ACEC9548FD87F25ED7DC579B9B67BC4B5BC7FE1E55745785C4294C3D63A9CA3E1105DB2663E3DBAE7208DCE7814ED9C07284220EEEEA364CF7C9AD9FF224DBFF014C9A2764D390C433C2DDEB25D3155DE21861F7EFFEAFC55317715B2A8407EAEEF94A5CD97BFFFC95DBB76AF4B5EFC099A541255BCD3ABCB03E8A2101A5A9F1DA1FFB5027807A862EC67C1CF14CB3466345378C5097039F8CFC420C5F393B4A23142C9865F1D4A3D383246F7EE2F9364C428B7F51EFBA5677E3EDF0318C25D916AD84A2C1693CBE5B2CD93A5344D93A160073987C2BD9942818E835DD9C26F74961FE8A0E5BAAE5E13AE83DF6AA083DCD32903267DC3306C6C83B8C6E56B9197187C1E7F8B7B4855DEC72999B7F85BEEE235A7BE145E7BBEC683365A7E98AEDAB0E288E7DF7D70845E0A3453ACA39B02D1185520512E93CD178006FD7B2935BA9B7A1A0C865791A04D154CBAA3D80E0FD0413BC132811E8EE588DCAAD1CED2CCDD9F07F55DBA55C5B39478048901CA5725461D92FD6A4133BFBACC050D683C7ECA9E325D28D3F366804A7D275224DE406E3E4BE9E1415A9BD0A9A937FD9A2E1E0D05E9D8680696E290BD72A976CE49ABEE9863A475836421D70D5696AABD9352DD8A49D45CC8A26F9FADB9762DCD7104794E17029FF76BD7F3BDEAEB411CDEE7DFF179DE164D4B538C92C85F0278AF5FC913BAD3949ACED0CEC117C9ED5A48A61AA232131708D84C2FA47D607707475EA2C55387A817F4B404AECFCB2254CB633D21578727D3F31F00311143A1B252421E201744CDBE6789A2059E53CF3F92045FADF610EAC0C5D16C86764C5A34D004BAD991A408AC9E4B4597985374DAFCDF0CE9C9789C4E5D591F0258C02FBDFEB7E887A1DFF59AFA711DCDEAFBBFE9BEDE9CEFA41AD9F895778886691D68F7132FEDA26CA28BEC505C1484547C408E14A06CB28FC6ED4EDA9D3D4409AF440ED0C316153C92983AEF897E571EF1B0C533C88A56E472DC827820F600994411B3274816090F607AEA36B4D037FD349960EF066868C8235114C735BBBBD566F2F7ECA1755D4DD5757DE6BCC86B09E7F516FA6B7C27FDAE237FBFCD7DD9D3D646257A7A7837ED8B7493136DAE566C7ACC22252804596FA49386B87C4A304847F4BD333D17B5546039122828DF5791E43CF03690E703A9E601F5C64C57AAAD7AC486C4CB01F04219660D964483C6B44882F6AB8B69F6E07EC0101802D7DF7ADE6F14E85C0BADC7C857E9A63F1C2BEB71730EE4F81C43E6DEEB95963EF7EFBF468C9EFBC7A4390FF3EB0D01572E8F21512B0DD39352904C3D8A9850E5FC2C6C2E183720700459C8D117B21477976B65518020A100050AC07739B166826BBF6C37B5E6F26F3C5C60B377284221EC15961830ACB6009465207D2F2101792A334C0B2AE3149649CC6E9B0307821970353C13119ED5E03B760901D09A0B191C14B115C007E1F2D0975B8F0DD8BA2CC47A5D17B67CDE9B132F045966A5F0FE1CDC17F7C23ECB86C79E19F71D3E4F62212E989E6585242D90921495473EC5A42D5D918F30A4BA6244E11FAE73F11E998A4A4E58134629A8A6E0FA72B5FF87C7A8F90504ACF862ADAFC34EE9543D40D6D45935108C4E5721C8A96AA8E601125793E3512A1E631C8119716C90448066C1333DD599668972514053244E722844FDD92825879FA738E4E158D5DE68A6681904A5996092145C971FEEA77B6EFAC7CF26E30D3F85000C0883A7A36BC8B2556634F8C03064FEB1C6FB60363CE8118282141C17A0B8204FBEE2715E5C8743A5C2F7E163BE178E232E8F145B5609D785715C579E24BA5E702DBEB7B91E014C2B3C399DD9B8F9939FFDBCD1D42E16812A1DD845DD51B09772F908C1CB9A2EAAEC47601BFD5A9C2A0DADC886836038D5257038C9125C9F2B36DD9A1D2B92A865F365B9CA6658216ED5038C6030A3C61B2213C20245DF8424D6661333066AB38D79310C485058BE2B342A893F26D7561EA9D6E656536D1F1960A0B9830AA0B095432F50CC43266C56AA9A0F8429BD6819F97A58CCCD711C257BC10517ECB8EEBAEBBC57F07FB966D97593A9EFFB35FCA82D2127D5CFFBD75F7FBDC413CC38AF98CBF5E75C7BF8BBCD9B372B77DD759757CF0BF8379DDD8B56A5C0F1A3E96ED2E028B9C224E541ABB9709085A1F1BC24087FDA43436E6327D2A41A09E2B9112E0B9FBB25840224AA765254636801FF4555A966D4FECB24CD75448F712C9118531BE2C929EE4E156E21CDC12A89036D4D218C67D549E0E28FF0BD74912873C9289A5ACDF0C45260604791D64E0251A722289B34F81279F0045F0F89E5C5A0767282210A868D040B7F6EC255DBBAAF1CAA7DB5FD39EB3C8843DCAB6EADDEAB5C7BF8BB3BEFBCD39D0329E27BC3082434402827619A00031BC2AF883E3019A4A31C88919DEE232FDE82C78F0AB4F6B8D7D87785D5737075A49769A6580E87CB6081A6150846AFC91F4028869D25A7BAE84834DC30AD061084559E27832FFD5A2AED577B370E339DBA6788C08CADCA7F40042AAAF25BB1109227AAD545FD2E29144E36533412263391A4E29E674943F2A2C3927C5EF12A18E084A5E5A8E9078A465BF44050F4802A781F239E20676A94BC708CA48E5E3212AD148C355209EF5741528537159EEFFAD58ECA7AB5B1B0FC3ADC54A917A01AF212D39B6A390BCF3F82AC79E69F1108E65528AAC8B3D0A0F22A0392ABADE2D5D6D511C7F5205AD530C7B6FA32927EDD13E628C2E120C418178E521C697B24D5480ACC460B28E0D74876CC22B03678D47449EB81404AB68AA49A6564F52A35F72DA060531B3413262996144BE21461E22E8F107A556FF7EBAB6E493537ABC1B6C7B2F26B4BE1F03E2BCDABB222F125A30A64CDAB7EB1EC5547F18BDC07528720B6700EAA8201D5163662E10720F4A8542124F8682E05CA0E057C9B02482A788B241F7064236654A8CCC1B752240F186A166629CB530DD93D79B6F3E0A078F0B6F68ECEA34501E9D6CEAEDBFEFE33E2193BBA3AC55A451CE7E2A9040562713138230542E4E94172159E711D109D768AA45350D1294C604208CE256043C553298FE38AA09C1C8449C0B4C58330A27C07F2B46D31439B658FFFBD224FDB2E4F0C517AF8299C34C92E15C0ABCA24C12AA8C482CC5361629486C646C8345F7D6A24C79100DC380078D1F580183760A6128946A9A5B58DBABBE75153532B6D3CE35C71FE99ED4F658E160574F5F666DEB6F97231933A3B3341531393D47FB09F5ED8F11CE50B79D10BCC9931178698C8844D100BF7356A9779D4ACB1B98D922D6D241911928211F2D080BBA419D56D69EA90983ACFB297FEF9E69B1BEFF8FA6D93C343C387FBFB3DCF7BB5C44970F8FAEA231C1B14B0237047311A146B68A0385A2295A2643245F1448A1209D1EDEFE77239B3522E8D954BC59D13E3C3DF7D71F78EFF7AA3AB117FD38727142F5C76DCA54D2DE98B43A1F0CAA0116A8D4663017EED4C6686B29969315961667A8A66B3B3349B9BA5423E0F0A6A09CFE66241DE72FEE3BD4622278BC12AD17F481D1D1D74D995EF6A5275D3CC4B72D08BA5DA645EEA250221EB60323CBD5B17EB770644650A0B9AA14A3FBC62A1EAF35614C9C99C247925686E1A1C783C3B3D7D707C6CF885D9C999FB7FFCE3BB9FFE5398FD503388DB6AEDF067E399179CD0D6DE728EA66A4B3445ED6E696D6D694BA753C0E5100FF821E393B844D6761C208B2BBC85EB11B854CAB4EC6A399559F520138D933B5160A2E89E903D6BEA5DEFBA62C1E8C4C45284972297ED0614351F0C8673B87799CBD9EEBBEF3E4E8A787EBCF6AEBFF9F0926B3E70ED934F6E7D9AB63EB58D12F1065AB76E2D5995D2D7FEEE637FFB7FDD805928CA729EC6C7AD5AC6EAD29FF047AA67A4E9B416B6ED986A05C29FFB977FFDA46E84AEDE0A1964E00DEB4E5843274206377FF5CB27DE7ECB4D2FF0D8155AE5FCF3CF0FFA7E24140C2A463E5F8E916A476D1E20F7BD707BDBBCE7BFF9CDAFEC1353136FBFFDD67DD8EC7B953F1E4522B9B0A97DC1A780246BE157A99DCF3C1311A53E8A2A309E3D8DB5FDE29E3D57A7BBDBAE6617D570ACA5FB0A9A6E7CF9861B6EF834BFC0C0C0805A0C85D4B05E521529212BC5222BA6F4B5AF7DCD7933E70E5D73CD351AB032E45A16A7CB5EC8B29C5273B3D30384C6B3E9EDF3977FC6322BFFDD36CB515D8F50B2B591F6EEDD438B972D17EFCE326059B04C766E7FE6F1A6746F0164661AF4E5E9071F7CE47396551CC1EBBD66C5A5F46B3ACBE4E6AEA59FB12BF9EB3CD715FDE6CD2DADD4D292A6968E6A111DCF0532ADAABBB97691662646289B9DA1703442A95413B575CF2B9D75D6861B930DD165F0A64E5D57D3A54211F01A324A9655C9E772FFFAF4B6876EDCBF637FEE91471E71DE48C16FBAE106B569703076D669A77F34146BF85848D782A552B91C8D46CA15D31C9514797070706860EB933BAE1C19EC0FCF2030178A05E80A310E4156512362E08A8B0A4346003270686AF4108D8E0ED2C4F89888A3B2A200A6835F9A187EF163BFB50238556F6D6D550F168BFA2F9FFCE52720AD4F5815080D71A1A9A5899A5B5BA8AF6F2135007AE2F19818EFE54557B9D488EB7A6391A8084CD17044ACE10398140F98CDE54559112F519CC33EB325A6B9B3C5527EC72F9FFBD0F32FBE78EF8254AA50CF8EFF589FCD9BEF52F4D6C7C20B17F45E78FC31ABBEDC100E47B99798CB58E34816399872395303880557E1D4A6AC830D15441CCCE70B6201719E76C2B900D7A165B3399A999A16147B787898C6C7C68561EA8170A594CFDC72D6BB2EFA54607ADA1D5BBFDEB96BF366EF88E1D5B90A6077FCABB7BFE333C0F54D08B69DB22427F2F95C080159C9174B1207632E012A8386251BE2A2E6B6A5B189F2F084EECE0E9A989C12FDDF3C6C198E4444311DC78832E89D8154DFC06FC72627AB952C3EAFEF69F2CC0051E3B5B7FFC0C0AE3DFBAE9CDABFF7A9743A5D79BD1521DD7083FC9EFDFB8DAEE5C7AE5BBA68C12D4BE6CFEFE1F7602F366A3568FC9C5C086E227072411FCF6EC8CE6691D14711098B1483517125660BAEE91F1CC27188C6A7A6208B06CACCE644F913FF8E872BA386E19B8EEDC6229192E7F919DB7506B3339947EEBEF3DBFF78EBADB7565E7576B405FE357068E04AAB523925140874878D60CC773DB56FFE3CE9A4B56B907848A09A31C1F9B9BB95B9AC6957A3BB8D88CFE3A95C66CA85D7CC93D945792C9495C28AAE17D1B175956141F158547804CF9D3C66F1A29EB3379EF2D393CE3AFBA765595E76C5155704E70C45FE214154E67B7D5292969F71E1453F3D73C3FA9FAC5CB2B8476106071A1D8F35084BE76789C268D8C0D8B21D5E1213EFC493B45CBC6B18EFC4EFA6E39DAB7981293C9EF19F272C08D9C462829E9FBC66352DE89D278192AA2C432040B759B64EE91F1ABC12C289CF7DBE23EA03A2AE5BEEEFEFBFA7ADB9F5433E70BF01378CC38227A0656E6B8E5D29A8E9C8E81805E10145517A5A14383801CBE6F2D0154B96D0A8374EF3BBBB45311C9F6397E6C19C6160E3A2F9BD343832821891142BE18A7A24BC40235E0E2F23CDEFEC5AD7108DEDDCDF9AFEC687A3D18F4180F93F24487FEA9FFE29DA986CFA425F77D7FBD6AC58CE83FD1485B0D913C54250B8755363A398E1D7D3D12E9E990D84BB57C2015D78434F5737ED1F3828E682F2360642C3349DEFC59D6C3C4B901799EAEEEA4256DD4ADB76EEA0E65423259045F3350CB953F9BCBFFF40FFBDBAE3E45E3306B0C55D79EDB56DA79F71C6FDBE651FB364E142516FEB894E39A5BA18062E9FD7DD4563084A0B7BE7031B8BF4FCDEBD026AD89D93F104A0294B6B561E4BC3C0425E16A008B764C8D1785D1F58521384CF2EBC08BF1F1D9FA0E94C8626A76728C7F38DA02C45E6711377746C68E87C2A959EFB7DE1E8AEBBEE5276F5F71F9BEEECF8BE2CA9692E3783450A413643E1A94482DA5A9A69EFFEFD34AFB35314FE31D470353D930E2E89E5B8956E69A16DCF3E4B4978CBCCEC2CDEC110F37A962D5E2CEEF5E2FE03D48AFB0C1C3C589B45288958C2F7E0F77DE145104C4D796ECBC30F9F77CB4D378DCCED9DFD95207CEE473E125898489C7AE1B9E73DA0F9BEB416EEC4D78C4F4C88079C15C1342816BBE0E50258A81CC07AA0FD5FECDCC9E39CA2EF88939304E0AA1978C99E541FD81887E246E009933359B1C086984F2391639AE5F152A9F40BC49C47860E0D6D81754E8541E76EBAE9A63F688A3BC34F2522274391786367AA6D2388C3A6A0113E3EA0075B20059547E7DAC0D81A93716A07C1607CAF23DF6C2E27E25A0642E71E637E0CAEE2E7B2DAFE43874469ADEDD83480E0CB9377B9089CA18CBDBBA5B959DCE7E96DDBC89664FFFBF7FEE0DC9D23835B1E9983FFAFAA00F682F77CE0034D679E79E67DE180B1B633DD060146C583894535AAC37EF4CBE75F1033E4B8F49FABDAD3BCA643739398BEC2F8CF41991F68905901049D81E28A5014632F946396CBC5C1522EFFC44C3EFFF081C1C1A734CDC96B6494E19F651A1AB2EA8326AF1FFBD9AC20FDD7717FA3E23821CD3723DDE99E1322C9E4699148E4242318EA945525E003FB99D1F1DCA6A6C61475A5D3C20B0EC26339F64560FDBC5ACB083C97BD890D8D3D62F9D2A5549F26C34830897766583A34328AF72E3DFDE0E38F5F78DB17BF38F62B13C75EED1DF1B07AEBE2C527C00BB698F9BCDC377FBE88011CAC983E368015F0E4231634C311BB234311AF7CCEF16104F86AC18D1947996A02474BA562E1A55C6EF6D199CCEC43E38383CF3B86515059D8D96CA5A7A7C7BAFEFAEBFD372A21AB95D3CA05D0ED0494115414C3B3ED70537BFB32C0E3E9D158C3A9E170B84F0B04429CC7339DE6053FD2B0EA34BCC4322D114738E8F60376583185DA120A1CD778B19066C495970E1C203D12F6BE77DF7D67F4170A4FFCE8C61BCDDF2A11E307BCE2C31F6E5C7FCAFABB3AD2E90D3D6D6DD4058BE6FE8CED809993D7AD134CE0E91D3BC5007BA158AE4E38E2411BCFE1154766F3B9FC0BD97C76CBE4F8E44313D3D303BA24956C45295963639565CB96397F6CBEFFFBB0A5EB2FB9441D49240C4B550D39E08712B1E69E542A7546AC21B61181798961841B90F1F24B8AB1CE7018790D88E4DAD5AB4462FAF8935B69CDAA95A2C3EDD0D0100D8C8CD1F0C8F0CF7EFEC4CF2FBDE54B5F9A7835037BCD4C9873022D153BEEA2F32EFA79666A4A5977FC1A4214A73C2FA00D7AC643759C7E9B56C543863895CD6476224979786C72E491FC746E0286539AB5AC72ABAA56DEECEE86DFD74B56DF7CB37AECFEFD413B97334041428148A4A5BDAD6D533C11DF148F275622D96C84B065EE05E509084C59A3C8717AE7F5D0D66DDB29D1D8E47EFFFB776D181B18FAC59D77DE69FD4E5D11FC79DFB5D7A64E5D7FF27FF676F79EEB89C17787AB5E9C5C2E37329D99797A7636F3C8C8F0D863B6696681AB65B50CD4C7E7F5C6EFA345211B376E543AD7AC0918BE6FD87ED9B02998E84DA74F41E0DD9448A5D6823EA7434648D5797A0B7CE4C0C1FD3FFAD9CF1EBDE29B5FFDEAE46BC9E3D7D6091F6A6A9A7D76FB8E8F40A6053418F9ECA307C70E6D934DBFA019360266ACBCACA1C17C23F1FBCDFAD4DEAF5E645EACC5911129167B71D7F0F0B76D2A1BB2ED453BD23D6BE2A9F87A23108AEFDAB1E333CF7B5EE6D7C9E6374ED9BBE1861BD4919191300F5FB506021560A2FD5610F8EFCBB40AEBD7AB915DBB82091C6FDFBEBD84F66BE1F7FF038B84A8764D512D380000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (61,1,'Network_adapter_(128)',0x89504E470D0A1A0A0000000D49484452000000710000008008060000003CB0866C0000000473424954080808087C086488000000097048597300000DD700000DD70142289B780000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00002E2A4944415478DAED7D09901CE775DEEB63EE6367EFC5620102C44512104110342829162959174BB4A8D31669279293942B152B4E4A652B4795CB7139716C9712A75C4AC5A25C8EE492CB2E53A22E8AD64191020F48E22188007110C0E2DC037BCCCE7DF4F499F7FEFEFF9E9EDE99DDC1EE425CCBD34057F7F4F674F7FCDFFFDEFBDEFBDFFF5A721C07BA5D245CBA39CFB9918BF696752FEA1AC093F8DA163F7E7E0FD4CD02A20F3C019C74F8F06149D334A9D168B4201589449C6834EAFCE4273F11600AE01C3FA83D40377E91DAB5693BF0F6EFDF2F57AB5559D7755A954C2623D9B6CDCE9365D929140A0496130A856CFA8C80DA04ECE9D3A71D1FA81EB83D306F2288410051F2E4A5A52505015453A9948212A81A86A122400A7E97BE4F5F711445B151422DDAAAAA6AE16A974A253B1C0E5BB8DA8944C246406D3F983D206F028801006592BE7C3EAFD6EBF5502C160B21406104304C5BCBB254943A5980689AA6851248209A780EDBA2C49A042882686227301148737070D042956BF780BCB920320077EFDEAD94CB6592B83082184150A20852144F89E2DFA3A84A435BB66C498D8C8CA44F9D3A3587A0DAF83713CF31F16F069E6FE0315A75045B4790F5783CAEA3B41AFDFDFD264AA585D7B17BAA750341F40148F64FC966B321029040C3868FE1F1388291C0F3E377DD75D79E23478E7C00017C07821643A02AB55AED32827E1155EFF9CB972F9F7BEDB5D7AE20701A9EDFC0B54E2B825B4769D4F078637A7ADAC46B5A3D69BC39202A1313132AAAC030AAC0081E8EE3B1041295D4030F3CF04BBB76EDFA28DAC6BB56F3191130C45EBB8CD7388FE09E9E9F9F7FF599679EF9091EAB2288F5818181C6E4E4A490C61E901B08A2EC9742FC5B6CCF9E3D63F7DD77DF234343438FA0246EBDD11BA094D6D1364EA17A8D7CFBDBDFFE373FFDE94F5F47E9AD9064A23A36D03EF6A4F166F9891FFBD8C76EDDBA75EB6FA304FE0A97C61B5A90C5967053BCE5965BD2B8EE45750BE7CE9D7BEB8913272E23A8A462F562B1E849620F8A0D0611A5C679E28927AEBCE73DEFF94BF4075F4466BA1FB5EBEDB8EEC6752BAAC312AAC5793C2F8D7F1BF77F1749502E9D4E9B870E1D1AE8EBEB4BA324923402DA42181D1D3D8C1DE22B780D62B60A5E67A5E84F6F592388CC39DFB163878D2A55FFCA57BE720E55DF156CF8EFA1DB40EC34828D1FC5C6275B499F930F3DF4D083B7DD76DB8710D0DACE9D3B637BF7EE1D20CD2CC0F32F684BC788D5E2AAE239B21F40E6A7F454EA9A16B91D2721C79C9C7494361DDB554380AA085809B7455485793C278FC7F30866FEF1C71FFF0602FFF9F7BFFFFD63070E1CE8C3733ADE2C994C8E2824E68E232390B4B2305E4F1A3708442E050E97469B7C39548B3AD92F04B08E6B15F7CBE8BC1751C20AB445108A284095975E7AE902AA51D377AD6537A263488EFA51522748951280789D1E7837491209010A915957AE5CB1D017D4B1C11BE432E05A4377A1867FAFA27AADE296F6EBA87A97705D5CED6628DD1174F893225CD76BFE9B60131D1E43035F7C13C1943883A42080448C9282DB28453285E0F038456334047176DBB66D5B56F11D6D3CD716009234D288480F860D66A7825C04C0640DCD01259629A33A3511481666C3AF58E8CC5F5FED66089A6371B6D393C49F819FE8678A81E08CCD879B48A2BC40368298EB064492C41E91F91981D8413AD94794426F5C903C03DA47D2297501A200BEB7DC646273238B07A612F02DDA315402D10A3A8FBDE50D07D1C30CA553E9421281C61D7BCDBE3941846E4024554A03C6D08B956E4E1069947FB57350933A1CC4DEB2194154568AB7F924B1A74E370988C44E29A38D3353E1867403222337BD66DF6492285C8C763631C850290F47D7F59E246E5675DA8D24D2D268347A92B889D9E9AAD7E27E620FC4CD0A22DAC855A33FBD31DF9F0349EC85DC36BF242A5D485A4F14371B888299D2B6933AF5034BF1EF5E936F6E75DA95B31F3C46D3E17A306C1E17A39B6BF500DBCC20761976EB81B89940A4B09B1F9F2EC36E3D76BA192551C44F8524AE246C3D49DCFC3651E9C2C97778829424D2167BD96E6F2088B95C0EFCA318E427AEF61D1A4F240029FB9B00A494455EC04176FBC1F2A50751179EC106129B6E2236E44F2A24B5E457925B52ABD5141F6B75820CB65B1CFF29AB6A75830094BA61A7DCE1A784639AF31F364D339C4C26EDD1D15129168B51B106A74D299576AE89D3469DFF93057B4D2052430741EC469DD27830CDA6A229E3B8D5E9106592D3FC7EDC375145DB547D8398EFF8F8B823583081CBD324BD7B8B204100EC95F67F6EC1DE284994BB01510EA94935144A217206D95352AB3415808A3350A58D442261A18D148954B608EB51B88E86B108D0F9F9792FDFB51DD8EC477189F64785D600B6D44D70623380BD261083D5A488A4F8C36E9D66452532A9B1DFFFFCFFFCECD4C52BCF1CFBF6334F9E3D7EF22AFE89665CE9B4521215954CA1522AD88694056073B06C5E9DC3A16977B4455B4A9DC0E63EAA07368149DBEBD7AF7B29242B811D94EE7F8C60AF591207060680BB0752B7EA947E6A381AC9ECDABFEFC3BBEED8F7A17C76E9D5D75F3DF59D27BFF4E563A66136687E07CDB9A1B91D5C126D0E94B792A4123054EC88C0E5603340E933DD85B608362B9044600B80E973106CAA84E5071BED339B292D8219ABA8F2950076D602F65A00DF3075DA15B1692DF327F50F0F1E7ACBBBEF3F74E41DFFACDAA8379674BD91D7353DDFA8D773F56A2D5FAB54974AF9622E7B7D7E69F6EAF4D2CCA5AB45028F0023C96C07B6D8A254B31958FC7C06321DE3E73A624B924D80D5EBF516A9A66B7020DB824D3F81A4BB4BB03784A4750277CD208ABA6E5C457565133B75B0645C49A493F1846E24B6AF9495EAD894B6AA178D8651D01B8D7C436B10E0F97AA596AB96CB4B85A5422E3B37BF74EDFCA56C6E214B6ADAE260DB7EB071B5C4BE00960010C7489251E21D21E97EB0B9647BF69A16BF840BB083767B9D608B213FA91D98EB92443E9D516208762589ED7B58320A50D600E2F89B54B5B3D271C009196678A86184877433B9E2ADA8568EDED00B0DBD5168D4B5BCC65692F06AAE522CE70AD95C363B33B73475FE724EABD56922AD25C0E624CA0FBA50E56C46985F9AC96ED3223EC7E3714F8D8B63026CFAEC276968B76125BB2D085AB0C82161E9077243D429DEB44B9BE87432954073AA54FE34944AA59B12E8E87898768B0686109E130939908CD9EC731B1DC16EA39B10AB47C2B19011DA124B25DC9C575CE91FDBF295CE360DA38280E7097426E10838AE4BF50A015E5A2A2DE697B2D373D9F94B53059EC1EED96841C2FCAB005BD8E74E242D954A79242DC8C8695FB85C082ED550B07D75F1C00FE4BA41E4315039183B6DCB5057B84E2C02902DB9A010A0E11095B15A493225EF9A0818028EA09B0E580EFB71A0A2F60AE135FA930EEF3C049EA8D309DEBE6E81546BA8A99A2AA5D468787B0C124190BD0E40D28A20164DDD28182EE868C31B39B2E15AB9B6542B96974AD97C3677EDFA526E7ABE4CE005557980A40955EE27696C9F16E17251CDBC52A964901BB67FFF7E9357ABB405906B0251D49F11B3C34912974D6DD31BD845425DC1480D2473553B9CB6974F41C5CF94FCEF020560F8EA35D0D7C2686242AA0DF1A88B8C2B5F4D20B8F162583650CC35DD819A4133B4F0BE08762C2CC16052C667F09DCB358700116933543449A9369C014D9507D45818225CB23D29F7836E590DC3308B28E57902DC6C1839025CAFD5738D4A7DA95EAC646BD9C252FECAF56CAD506E70156BF96C367518132550273F1A9B97D87B239BCDD2B47B43A858026043D4693A9D0EFB1995FD0F8FC3993FFF13D8FAC56F40A27FA0E95F5635B8FED269B7A1E947DB6E635FC2BF1D7EE7ED148DC33F49902D2E5793E4851258C9189E611B1046C177420A361E070C5C901C0202C58CA4B2866069B835AD26A0AAE2A03A96A03F2EA1C44BAE7A751FA809B80FB82A01DEB0B0E358105565946C0542B2CAD532B7D4BEFB9BF83C153CBF548308F6BB9150481E5110703A271E906CF13DCBB4AAE8621550C2F3885C8E0047E0B366BDB188FBF38D62E5EACCB3275F23C062B198532C165BEAC66E048812B22BB505C4A3DF85F3B91C68278FC39DF7BFCB3B8EC402CE9F3CD396426FD91E87D8C49E65C7B5A512E8150DEAA532D44A1528E58AB07DDB3678F8E187C1B02D383A791C0133D08E62C334708B2BEA24D88BE7C45306D48D0A93F2A684491E48B44A4C1DDB80D406EA0D5C719FF2B95CED80F617A5341595B00385B8491740B892CA3A0D016153A7B1F07E16AA741B327115C6FA428290B91DCC073675BE72C384625D8792632764494DA82165AB021108E10911DE39E95E966E5C9DFAC1AB1F207FD81D0CB22C9446EB8E3BEE90BEFCE52FAF1B44A99D241A03C37009FBCAFECC402B20750D161616DABA1ED3578660DBE0045E2CDAEC0C8609D78EBF0E954A05A8361CBB86A6C1DBEFBF9F7C53B60EEA613875F21C94F345169BC51F0A478E1C81BBF7DECDAEFBCDD32FA01AAC2D53777EA243F693A43315936190CFD013E780D40A00815547B0AA9A0955943852CFA204500425351E91211956017BB57B2F57BFB37B09F54C0774CB041AF7194C8660241581785886B3D78B50C16B2F9354E441B89FC0363648A5E2A25329EFC5C5457BADC446F2FB8964179106B7183FF9D77F137647D3B0F3CE43CBD829357C3B498C67FAA08252660F87BCC75ABC761D88861380040E81843F00F00734C735E716E1CAE425EF18CD261F1E1EF69CE689BE113853BF0C34A3CE421D379A1AC0863750CD1AA03B24A93A546C93195726551263DB148662FB7E364B5B7A74B2A151047B3CA682A27289F4C89C50CF781D5C3594ECB266408940C7ADC5AF1346F69688A848DE1446E22A28953B8793F0FA5C1134B4D77E105D0F468A51E935AAF89C4C2665CE4BD8CFDC109B4820FA81896CDB011FF8EDDF650DEA9FC9164F24E0F637ED67DD8092E324D257B812B0E9FE34FE10044AF46CFC5F2995209FCF031A7822530C4892C4EF7CE73BF0E637BF19094A035E78E105989F9F67F7A273086434FA80EA86DDB3AAD799EA9A7CE904FCF1A77E0F32990C68780E9DA7690DB65F4735BF84EA3F972F40B1886BA10CF972012AA848E474AC85AD92AA2CD51D28D47C8D1C906CBF248554042BACC000AAD7AD992853D1B65F3AC1ED18D7F255EC6031D8379682533379B49376D325C236A4A13BE230BCB0211B442F97CBD28639FB54E0B62BB0F12187F76E877653148BA82D15B555DE07C6474041212FA33A8D25623030360C7D83FD3032B105BE7EECFB90CF2EC1E5CB973D004982B043B1C8C79D77DE09B1910C4C1516A041602D16A1BFBF9F9D8744C2954C5E44901A2B1E4F808C0F904AA66068C805F7E4E957A114D2E02DB7BD0CD34B5B6034338F6E5006F2F501B8E79697E0DBA7DECDA4752510C946D690522F94ED4E7E2A122509F66FED838B8B6518EF8BC1FEF10C9C98CA21B1F24064C9D93CCB5EDA90B01B893235986FA8476D5591244D15F2FE5ABF87DE7BAD5C62AC54781BCCECE05777DF31025174161D9250D7FF81445F1AEE7DF01D502D965D12426A0EED4E241187F04002CDA70C5BF7EE6464268220D31A45C73E3D32003FCE5DC49E21713B66F36AE3E4AA2070B60B9E6909206D0F50D36E821B0945A151AFC2973F1FC17B177045A934AB90DC958657FE2A06E30F192047958E7E6537924AE793CABDBA5441C61CC64E5783AD08E481890C1CBFBAC4B488ED26098A526A2CAD85F679986E7DB153715114F11662639AFF1526279F839D3BBFD74A6C2A35983A3D09BE6AC72E38B88DA07DB8F32DBB215F459B29BB7F0B45C29042C9431103AD5A734B5BF17239040C81B6EF6D87A1389FC5E7B118C8C41674B4790ADA3C99E20F928F9458EDC0B39BC74C77F5FE6EBBD223AB2A3144501321B0909C017F061BEF018E2C6640C3C307BF0A7FF7E203B067F42AF4850AF0A3F95F80470E7E131E7BE97E6884920110ED16D0E74B7548A38DA5D8C07C196D37AA710275A1525F75FAC386D8442A42DBFA169AE791904C23C1B80A89C476DF38A4CE6C1C1FE1F7C064405E08C39E7BF6415FC2419B23F19E6A337BA8A03F188987583446418751417029B58ABA50241985A49D816AA1C2CE97149256B72308B26133BB23FBC013009A2DC7FC52E8DA73B7D165BCBF59D3B0B722D9A1A84348E19AC504351EE6F700F8F33F40B7E640018E4F26A071A50EA9076CF8DC1F6D07755705427BE3AB4A2AB1D37D6369269513193772C457BBCDC8D19A63A76D23D828898CD8085B572E8F41363B836A76B82535A35AAD3010FD6139B11DDBB51D1617F0E1B7A6508DE1B90D0719601E8E7EFD09B47D16DCF7813DA0A66FE7748C98A4C4293B7622944872CC2D6C54925402D9619DC4E614DF66AE825FE24C04B0450A03AB897FB3714B4FB7E39E04DCBBF7021C3D3D01EF7AF8247CFDE401F877BF3F03DF3875273484445147C4CE6353488940B65C29069AF16736D9A664A10DAC5B10AA59300627D8B14A3809672FA4C040DB7D7431C79E6F52B261FB4ED44EBB90816717C66AE3DAE8DC5C7CDE3F14B6A1A31888618B24C662BF07070F9E4570132DD58715240E44FFC5B9B4652BAAC1ED7B6E4567BE0CD9541CB60CC9E88BD10926A007E0465A220AE4AF3D0FC78FE6E04DF72661E8D65DF0DCE36750D34AF0C17F7F088E7EF71C540A26BCE9FEAD60A2245F3C5D81E12DE8FBDD7617A3F5BA6E0680B29701B70C5052A7B8169571385F30E0F06DE7E19BAFBF1F3E71DF57E00B2F7C901973BF3D0CC75141D8E846E0EF8C8675F637352AA1ABA1BBEA13EF39FE7ADDEBD49A8A92AC5A104F9540BB80BF157F2CF9C6266E4D5387BEED2A346690D8CD1563998C3E82206EAC3AF5B324EC192D7E622C760076EDBA7D59F9E80C128E83A36F71A3456ECCD5753764D7AEB0864595369B03D83A08681F4D74035CE956D12F730CB7032A248996C6EC94125518D8F57C19EA450B54055D1154ADD98BF3D09F0CB3D01849485D36E187C78EC1C14387DA4AA067137D00D7EA3532C20C8C579F97E0F9330023BF6CC29FFECE56481E5A84E88E61D404360F06D8F00B0F47F0E11AF0D3ABE3F02F7EF515F8EB1FD970E747558884EBF0D215C7B39D622B4276E1B802F1FBB682B65080A5A75FE5E7A069080FAF36867063A318FE445EEE7C021FE42417A3AB0161C6446560B6865A971A8B879AB1C78619F3A413E8C86CCE81F181348CEEBE9549ABA18EE2F9B3EEB3C81402733B483842D79640E7F51C94103092E3AA5DD96576F8A87BDE76081E7DFC6F00BEF4FF20AC8671551170B125A75D659A820523B053915B32EF94A02F3CC1AE411D8124C9E19A8C6CA3CDD53581FC6B87BE057FFFE27D904AE9F0E103CFC0177FF84EF8F5BBBF075F3B7E04C6320578F7CE97E1BB9387BD8E4D40298A052CA3043BA53C1C05D043F83B6ABEA8C972EB45A1371A67F48F126D48D82D38C1F445FB55786DE135F8F8E0C75A40ACA2137DEDD2E5B6C354B71EDE077BF60D43282A7146491D270CEFFAF05B6036EF36989C1C81B17D699052193010C4787F1AD9AB82143D44A974108A21D810475B56E060CB9EBA23BBB9FBFEBB513D8B8002D93C02C062FE588380771CD75E1A0D90871404649C45DED935F86C76EA78449E48EDF9FDBEBFF8C30908EDAE402519812F3D360CE1771AF0579FD90ED2780DF24A14CE5C4C01BCD36E91C4701819B564FB094C9BD417C71B67F567DC6F283B25B5AA282D6E3A7CC67A14CE3CF723F8F003EF835838EE3B17ED4BB1D802AC90E8D9CBB330B2EF56A4B0762B83F3EDF7EF3908877F518192E636C4965B6FF702CAEFFBE4B8C7F606C776C2C4418B911CD6E0226EE9A03421C8FE007833301E1CB672D0416F405933DDC8CB701A7EE7BF5F812FBC7237BCEB372CA8A2949ECA8E7A207ACC55E52E108D1D23F024BD80F69C85E66C975C793E25B7B9326D25B76305B525954937CD96A40867436D2245475CB5D00A62AE9203E952036D5ADE03911E9A0014EC340862667C1006E226AAC3101F69E083B76CEB128899BC090DDD81A5B2E532CF8EE3797CD097A93BCB07A2EF7CE81C10A7607405C19BE88FB05106A63910882FBCF211F6F797B2772FEB640C44028EFB908ED954C136762499016BB4A8532235B49ABEFB2FCB78F049A24903A04D1EB2AEF40C29406E5A6C223DCC7B2B6F851F360AB06D68BBD7F368ABA2BDA1D86570E49F801CDDB91D2E5E2D4112ED20C8F2326778B4CF3D66D8126886B5620424088AF03919B860AF1A51D99289A3F3ADA1A710855B0663BEB8A9507B6E07B17DD7D9FDAF3210891A70FC5A063EF85003BE752A0EE36F4AC3505F197E383904FFFC13E7E1B34F875AD4A9B7DF499DB6263DFA4BB0391BAA4EF9455B88CD7FDAF61FA0F69F7F7319B1A1E8CB6D9983AE6E90DD20B8FBA23F0968A45C6FE8CCDF93FDF1480E8A0818B700D0E23CDB1D41B9D1B098B8978E36F35AAEDA1C3B142145109FDD510FA67A2B23EE60B764C1175F3CCC1058AC22C59E1F64E31A8FBEF066D8351283696BDE93440F48DACA6DD4298D84C80EF8FCFAB67671DD7E2267A8CBAE1309455A5C0CD7D70B811C8DF9EC0F1FAB638D21B1C80C7000838D4C12E4B241C99382B5C62AFD929A8EC9B073380EA5BAE13D4B5973FD3AEA50BACF515FE97ACBEF6F2F3B7FCF50B245123D8914DFB79D8E8228C6B5DBC1B02610E9A5243C555138FC6AD78A589678969A2F024E36056D493811F55225828D826D8CEE806BEB260654CFCED1583725A035B0B11B68321AA6C5B676D7EA5386AB4B3536921043AB908854F14808768F243C8DD01E447B15F5BD1CE4172E5C87411FB1310C8E8B50CDABE715DFBCD86937E54FC8EEC5D329903331F76145EC546A4AA24C44C0C70EFD8D52AC5928351236B8DED28832AA1A1A21271008E4041210B2BD1248CB1AD9937A5F434791C44C2DD5219D0CC3B9B9321C88FF18669786201BD9C1CE73A37B360CCC18F08B078E80862E4A436F604731403770DF32597A0805DD75DB642923061E2317281FD1A1A8369F5772EC166223A4D1E123152BC5B95926084F67E45310D60EE2E1C387617A7ADA2F5B1DE726D26C621A951F1919610F9B8E2461283386042002D1481842E110A8219581C7868788823B96375C445B133FE72A45B8B63407B70C4558B2940706A7B00DB45D86E94A23A54E30A9B4289BCD6E2329765B491948845843BEF0DD3EA484E883DEEB9EFF4BB78FC054AE06DA74010607871038044B3758609EB6F499EDB3CFBA6F1F55476E11F2C3F63297427CD634873D63C46E76AA15C68D8282B3B1C9C37E17E3A9A79E82A79F7E1ACE9E3D0BD96C161E79E411F8F8C73FEEFA5AE8A7F5A90994A824A4532948A7DD6D145D959596333397E04AF63A6EEB6DD51745EF284F46C51DB2CEA416491A559E72E16FA0767E21B3E18AEBC690583B66D34E118067AF1760B4AEB34C009D836470009BFBFAB2E3A661B6A872913E229E9F4ABF325783464CD466F4CABF18868282207B19201B4A6C04A9E13651F18378ECD8317F76B8A73ED63CB74B024F7D0E26E721112D40C388A0D39F844C7C09E68BC38C81536A62B11E654356E463774774EC964E914042D917AE42D6F1AB3A874579EA8D860792C125AF55125B259456DB47C21CDB0EB818867B7DAE1ADBCD72A0691E7E76BAE136D1C74E15FF905320C57F9963BFA64168DE1069750EC613D7507AEB7071FE5678E8F037E1B9D7DF0683E92CEC1D9B84EF9F7D3BBC77FFF7E1E2E24E98CE8DC13BEF780E1E7BE541B863CB0558280D40AE9686172F1DE029890EF44555484654E6E093B0E4FBC6616BE6222C5C729399689484CEA5118D8627897A1B490C4AA5C986BB6C9F6B044E6BC406DD7720C15AA9A2B670F689438A574CFA1C7D67A3D4A9C74EE7E6E6E0C2850B4155EB8128AF1944C99394333F1E81130B512FAFE6C77FFF21376FC64AE1761BFE5A0B9E0EDF8F861A1B11BFF97CFF11C8974A70868208129210BB0095E4120CDF320C776C4DA19AAEC26259435B2BA39447201D1D42691E80DBC688119BF0FA5CC14B91A0BC9B16E96B914AB1AF7BFB486FF07B6A331A132036BAEEFA8621610B9D769E801B765B89B2AE09443E8A21F9FD44CA27FDE4273FC9EC60BBB976EB9928CB5E1BC7D592971F639A2D5B6F453B53AB348F2D5CA586A8C194EFFC91B795C1DA3E8864A9CAD20F1391182C551AC84E0B2C2AD3D60F44E24499762D6A73159B68C824897213C4803AA5E7A1510C21892BCD5EF199F49BE262B0D7BA3FF1C413303333D38EF4B426E3AE439DF2492DCB81EB006A27A0C9FD20264CCFA3C80A9C9E2DAE12D1713B902B891D6C621BA934C30462C817175DAE4E9927BBCE17146C143B55FCD96F9D6C62A773BA50D84D495C05B8E0DF82C728BB92C27D6EF407BC01DDD562AF64133D761A20349EF4055C0E907C4101E20481488DE304406C133B153691116D9F9FB8AE0078A08C97C4552625B5AE0A6277D5343BA9531E84E66AE846A59156029081288337B26E0702D9ED40741BDD6AB1897EF05A196993F4A88ADCEADEF8888D7B7F97D8ACA4A182B1D39B369E48F5BF2931772510DD0C3758973AF5DB921B95460AEF0A1065CA7C739AE911761BF5B91C44A7C526FAC1333878415B198D84DABD1BC4DB8A6A2FA12ED4A924DD049BE8CFB121497CF0C107E1C48913F0B5AF7DADBD4D84B54B2240D34F5C8B1A250069ECD393447A85BC6D7BD3DA82A0B58BE82C8DCA50AA5CF55C051A85B1C3540EC41DBC64017EFCA7D80A441D3778511E50789685E3C55CFC111BF7F95670319CB6AEC0C6B05331B9548C278AA9DE9FFEF4A7E1E4C99370F1E2C5F6EA74ED3E4C539DB6CB505B014CBF04D24A6052C71244C371BA1BBA32FB43A065D4AE4749FCCBFD1353E8DD38F083AB132D138AE819C9DE356D22AC949ED1CE4F5C9F2426120936294548A2202E74BC9D8BC1D4C83AF4A90822075D8C95546B1040B1123F351D87FB9FD05E7DAE3AC8DC99CD0697579F1F82480149CC1D2C4717F8E80FD05C51C22F1DF0235AC36E32046A3FB19834D511DAE81C1BC517986DAB4EED75446C5AFC44CBEECA8DA0FBFAA5CF0FA28E84C360EA940F57AD004A47A2234272D03EB5A2C50ED2F09BE566BD0B75DE92D940F9C60BE88E941C88C4922C699956EA0F3E67DFFFFADF96FA7AEBB289C22EFA2B677CF6B39F650CAE542AB19C9A542AE5D9C4BAAE41B15204DD6E40DDD0A05C2F43AE5C801002EF0887D7372153FCD0A546D9231FBBEF0FC3C7DFFA321C3B7700A26A036E199E81174EDF0607775C822B7303309BCDC03B0E9E83678EEF81BE440346FB7370E2FC76B873F714BC36B90386FAB2F0E3D9012F966BB7952CFB86079957A68F1264523A50553A92C4606796EB36845FAF80D330219D1905BDA1A1F469E0E8A879A212035200D8EE5EEB96C476C5F9D87CC3749AA956C12649F55E39770E644562C69CFD104914667135ADC3E7D00B3A66E1556B7D0A6871C90371AE3A087F79ECA3D0301550B00B4F166E81453D0DF5990C0B7A17C371385B4026991EC55FA7413C1C027D28054A3FDAC1510562831AD472A8FA3D9BD8F413EFDE7E0D5E46BB25001D4E9561A91A039ACF7923EA33B854C623F0F6FB66E1DC0F86A13A1201CD74E7460E1FDCCBFE3ED3C84005EF65291460AF8213C3C64828702E07B0674887F02D7DD72EFD40BB40C2C1D5F1BA6CE2B2BA1628D65237056B09E7F1B76E013B24C1A545AD6DFA026D6954E2E4DF9E67DFB9F3A17E5878AE08D5820D3BDF9681FA6C01E6269110DE1B87E2C06E76FE5CA9CF05B798F6AE3795CF78D7FBE9F436B69D5C1862C74ECD8E791D42729A3381A9B3A5179740C90F82DE1761DFB92775195E5E1A8759C5BDDEE19119D89A2CC25727F7BADF4756FADF1E38067FF0ADB78215769BA03FA2C1BF3CF21AFCD9B3F778C9BF5471E72F9EBB0B7B3732D6BDAE05A45E9F8309AF7DC404CF58809C524B188BA5B3857CB1447E651040D6B66BA6FC7CBA376E956EAA49D981A426BF8A6AC9F6720CB034770D5110BBA6838DFBC4D2684BC515C0B19AA3E1BEB579CC5975B56C1FEDE7DF79F11F06402AE9DEF59EFBFA08942E49DEE7B3AFF4C18FFE76D8B37F3439E6D13FDC0FD1623342ADCD29F0D8677683BA916F18C4A6325DC3D8367F435E0F8082C80875BA62257EAE783A8127C0F587EC4361242C3ADF57512D8B3F29525740F9AFDB1E6CBB55230406846DCAFAB69AD732E9575ABEA034CF0A977C6F13B4797796ADEEE2C413FD65B877E775B6FFEEDBAF423AEAFEE08F1C3A1F1CD6776E4AC48666B4F1E27CEA4AAE8137A2ED01D99938D48C1028A9287BE4BA85CA057F94A2A28D934360C85190930EE872A409528088AC94FDB6ECEF5EA2B17B6CFB5D352823E9BBE0B865C4124326441326E41C5E650A3B4F326100D58572F8FCC850144989D404D1E19645EE5210F52909F4497C884180EC4B61883674A825155838868C9AF277522AF846F43766643F58B0B6DBAAC3B68890F80A0EEC19F34DBCB485B4C661EC13135EC31EF9B566CD98E12D4D50C60369F8D466B1900CAF5C5BF246283AFB75764BB2AEF01317B7F4BB89C179F7EFFABE308C0DD6C1BEE89E571B0AC3FB3E3605E79E19F17ED7CE5FA941AE6E416EDACD7437E20A7CF0772FC3DF1DBF03B4DAEACD5BABA8B078053B2BBA7DD72F25C04862F3A624B87C320DCA5E6F9CD1EB12542564439287FD056B837EE24AEAD4F69C76076EDB9280D7AF9759350AA24B32CF7C9324CE07587EB1C346D6E9DB34A02CF1CFF41B583932F685A6C4E56B261C9CE88797AF2C76E5BC8B6C3BF1B7A95CAA4552670A09982EF8E692E0B9FFFB99C32DBFEB990BDB5A7F279EF37F5EB8BB7B73272497D4366512584D952C79D96F8E2785EDDC0C75BD36B15B4914F92A74FB215411D70B75D8B7250E352400A6C3E7CEDBEE280545534CF699EAB8D96CD692C55201DD73280B8E9C7536A2E153C54389082B9670F7F641D00C93D7796BDA62F0CDD50006BA067DB1B04F52BB73DE3772D1E3323CF4AF2FC3E74E1E82E1031A6C1F2FC377666F85C3EF5F849325192E37186FF5575FDCD800385FE4E0849AB6510B8A4270890C618F2BD7A92A930DE7660AE5D2F5C59F38549D5F42F7163172887EDA0EBA9336AB2E4C8507589150B638B61BD140000D53B64C53B10D33641B56F8EEF7A61EAA9AFB54C907942BFDF6B2BC5396AF130D33C96E67537F568B9150E11B337B99145E0CF5A3AB9464483D57DD0E9AAD8AC6B6FD111B962FEB7B65E14638FB8CDC74359404CD6A4A24599480AB55AA333FFCDC573F879728238DAE51354104DC6CD3F3BC6A1D7C103A84E75395A524229BC6F3FBDEF51BBB3EF4AD99109C2EA49A0173D608C1510AC903D6AD23E356E320126805BC6167C58EBC96CE2F1C6E5E630EB7B38524F31B754361AB8CCF51A845DC84797606F84B5BAF3F00EE2F9349DB582C16F2CF22EE54895FCC3960CA4D7233C069C20AAAD12A01887F2F2020553C5743D66B8A22AF6D427DA2CA71183771AA41CADFDD18A6A3BF7AEBE596C615710851EE84FA1B4DE2A2D4FF90AA30151D8BB8B3954E9D99823DBBB7B47CCF304CCEC4D5B69FC5CBCAFDF769F799EE4BFB745C519935878211B67EEBB72E7CE98FFFD7818FECEAAFA504C92293A1F0E9F074BFABD5F43DFFF6AB5EB5E38DB189BEE88D944824C2DD04B6C5D81D4BF6A5A2128AC4EC16625045C9AB202015C3302AE17058C3AD210AB00741A497A150692C64C911165BA662AB9214C6BFC5B8F96B791C31EBC33D26F932C75D1222B27259DD00BB39D0D29C2D22054255AD9FFDE7AFF69967EA36B31C6C4A12D76A06AA0547E25574C533B9A2C24AA791CEF0D527671A4A14225A73D8CD5F9C2F1E8F87BBB4A1EEB4EB905B679432552B1ACB2F2913D306720B2DAB8E0FAAE1D6E09578DB82C8CB6359FC7908402A49413598514CE5161DE80AA92B81D82F9AC363923BB187B15C56C58333626E19C4F71445F27D769379FD9F852159ED336513A8B6E3C1CB6C317B0C494783E4B0729EEE708DCBC0F93F22E7EEA086C54A48337E200CFE7AD4A96F3614D53A0D7527892E9027A64A6CBB6D200A0D83CDE22D1308F8701A5E8B9581ECEBEB33272727DB4529241EAF2549A420BB8A42ABE1FD09FC1AABF4AEAA2D2A9DD4176A6077B28AC381C01E24B3A974EEFC48AACC418D8C9601441EB4F89EC2BD76851F9779D4487C16230C4DF5D9F9334D3DE73509DD67D099545551DA6C9A76C03A3AE5E550E173EA74345D9D812D99D8E6067FF98B1DAC30B5661743D8C4643219EE16C48A6EC09E9184AB52F12B949C8BFB05BC1695806CA01D3432990C01288AA507B905BB27824CB92CD89F4C9D6C28FE40FA7E98F84A38A480BF849DCCC7EE1C1FABA04E48BD9D0023154A937A14FC1C45B61A8EA8ADDF53E5960C052199DE67F177DE062B7D569137DB6CAC536653F9B83014512A2C7A16367F1F9FC3E41A82D94E99892BBDF445A797BFF8405C93244AC1B1445E88A82B10D1F6D997AF178B0EABB5C422D8D4DF90A45A57F1A1EAA9548A401412E849A1DF8A8BFB5021F31D3B76905EA51FD720564BF341A8685428AC8482895AC1F40752B934A193351063CB0ADB8FA1CF18E625BFBCEFF9BEC37E87202A4A33012C9810D6E9336B7B8AFB4A8E5B7645614465114135D53081C8553B57A704B66AB1CF06B633692953D3346B6464C46E42D16521F70E356C245EC326D4295EDA728DBA397FF48FFEFA3FD2080C315162A444666AB55A1DC9113E9B66F4F7F75BD3D3D36D010C6AE62B57AE58E3E3E3448064EEAB3AD30BD2E7A64B521F36169A1F47C67E26B32C3B9907FADDD9AD2462542D47C2F6215BA410AFA036B7CC7462EA9CA4F1BB9018882092E4824E294FB2FB994DC526A3EDBEBF13DC1A3D789C74A0C3ADAC24A88D6BFDDC4E830CC5ED3FA58A9DC5A3F32F1E2F3F36BB35F4269BA12789EEEA9084CA6AC8999D6B7C97340E9A1183D8B8EF3D19EB4B94E2953318885DA953D7612502432E0563A3A406518A3452A30820BD2AC05A0940476468F1F74620A9B2CAE5B24ECF423DF4539FBAF067A856A9D49C424364FEEC83761AC55FA63578DE4ADFEBF0F76ECE69FBF7CFFFC9C92FF9B3D944457EFC0D0699197CCE0681481D1DA5B0A5A36F48CAA2A8EBD64594836E4CBD9C98649D93110DA550C787B2666767AD26FFE97C310E24DB27DBB97BF76E9AC84AE36D1612231AC7A1D7F9C99C394B1D1A7B59F87035803A5D6735A0D6704DEFE526D8B604A449EF97ACD7EB06113EFE4E8C968EBEEE917D51617135101D377046EF4DA4F7F210213168E5E07944A69B3796F980B41148F683114C0B7B2AD36DF48A09961651A948DDC68057EBAC9D92A357BAC66AD7EFF47791A65F2A95D81B6AA8830E0D0D59E2A52641D67EA3202E1B590E56585C0944C9A5CA1452A397761029E948626E0048C6E43921620685A6A4AFE5ADE1C161B61B1D0C6803C64A51AF1587ED08C4818101EF5D513E15BAACADD6A44E45F887AE458588BA697B1EC8A67723128016F5B2D1D151BB1B15DA25909E27ED8F66DCA066B959CB5AEEE3B451B16D3BFA0D8328C23EFC9D46961BDB76A00B864A2A82D429A3C9A42678247E5D4306ED5C907568964DBD74EAE8F20DFE6056A6116D0D039054E3638F3DF63CDAB5852EBE4FAFB6130E2B51481B7D4367A37FE4CFF3D251B06EB407F0F7FA11082C8A303F3F5F78F6D967BFB5D24449CAD442576016A54FC77D83D4295DE7E8D1A36B56A5BD656D92C8F0240241AA90A207447D2962F2E8A38F3E71E1C2856B9DBE8436EA124AECFF20D0290088805AE8ACDBBDE6FF1983E88877E8B88C9422EA268D369074A19F567EEAA9A79EA4B979C105C12AA1C4FDDF8585058AD4344882F90B22ED7F6C36E9E74512199E48486CB48BA4520DEEF3351E7FFCF167A7A6A6B24135FACA2BAF3C8F20BE4C00A20A35F0BB26455AD6C34A7BCB3AD9A950A9E81ED05B3689A490F8D14B1AF560DA00CD1DC866B31728E5023FB237712233B51717179D9E14BE4120FA63975C255A7C00974560A4361C9FC6092952432B1122C797F4D393C2375012854AA5883A49178DEBD150892206DB7CBE221FEF63FE21C5027DB6B007E01B6813D942E12062993C1F46E7ABD4C6E1AF92DD24B06940935707EC01B809402449642A95FB8B345CA251265AB0DA30E5D008564AA0F7F5F5F558E91BAD4E855DA4F7BDD3C841A1502049D490AD2E3DF9E493FF05C1DD826A7510418B534E68A954BA8C524BAA9688CD8647697A8B9B3F7AE35F92C46835281313132AFA893422154530C3681FC3B8CF249C480F014892480950434343061FF8B57BA4E68D25367E8243AE8649AF8345D781D42B0D3351AE0C0391D828B98B08A08112D832A0D95BDE60490C4823CB3647D52AA3447AA3EA740E85E7C86EA21D6C19D0EC49E12601D1072408200F1F3E2C0507637DD2E7F4FCC34D08621B20FDDB16BFD24F8C7ACDBEC9406C03664756DB6BEE9BB3FC7FDA8DE87B9701D93C0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (62,1,'Network_adapter_(24)',0x89504E470D0A1A0A0000000D49484452000000150000001808060000001589B6480000000473424954080808087C086488000000097048597300000298000002980136D347DF0000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000003E94944415438CBAD944D685C5514C7FFE7DEF7DE4C3A9949DF74A6934CD298DAAAA5A895A86870D1550971212E8442A1455CC44DD1853B5DB8D49DB871AD3B2952908ABAB02841A148E807384D6D12F23D9D2699CFF7FDDE7DF7B8686B9BD685A4FD6F2E5C2EBF7BFEE71CFE06338388E4C8C888A5B526DBB655AD564B9899B14B194424A6A7A79FAF542A9F5896B55F2975657474F45300BD5D4301703E9F0FB7B6B62E4C4C4C7C343E3EFE8110628688BE6766BD2B28333311CD974AA5FAD4D4D4BB866108D33407F01832008099F5F0F0704A440C004AA9F4B1A1F724A534981949923C51A80400ADB57EE2D0288AE4D8D89845440A80BED3A1FFBF623BA042080900232F3CFBF199D1F78EB45BFECD5EBBBDBABEB0B0542C16BB524A4D446C9AA6164270369BD5994C866BB59A06C0003433F3233D8DC31005BB70F4C88BE5A3CC006B0DC609442A515D27F08330709324EE3A5EB0EDF8C1A61744F5438D37E663DF5B755ACD39225AF8179AA62909C0085C07F3576AD06A186B2B6D50ACB1B6B48C63C75F3306FB7205AFE515DAE45773650B725F0E03AC70E0B90A944EF0EB9F372F97CBE5E33B2A85605366236CACAEA174B084FE721E8EE3A2FAF23358585DC1DBA7DEC7DF0B8BB87AE15B58A31622222449083BEB616D29C1587EB37AEDE19EB214B21300A6618204A3FAD45E346E69A469824CFF00BEFAF96B701C62DFB14144690C3372A084403EACA3D38E7120D7CE3D3228934C6959165E3A3E81FE8A8D9835F60EF6C38F1348A580BC819CC8E0563384DDDE8B9643D8C838E88B6344A902985908717F505A6B9A999919D8D8D8C0A9D367F0FAABAF6079BB8E6FCE7F89A0B70D278C9019AC222E15E0B53C5464194DB78B68B30B27D7834AADFF5EA966B369121148883B1F3163E57A0F9B0BB7D16C3631FE4E05DBC247C771D059BE8C56A783DE10C3F703686D80E8CE2EEF804E4E4E46AEEBE2FAAD392C5D5C437DAB016B8430542DA04A36CCB289C4F7E09A213A0763246C42A48CAEB31F9A251A9E76A594F7ED3333158B452A168BDCE85CA2BAD34014B9B0AB152456159B8E07C31008C308611482B4860186675AD818781A765F80956EA10EDCDE59291149A514672DD02F3F5C7A2B88A215AFD932CE9E2E9F3B71A4FF90E6147EA5079206384D414280B58B762455BFA969AB4DC5CFBF7BC0BED69A841086D65ACF5E5D3AD798FBEBB71BBFDF700198E2CC9B17950A24B3A6AC340409C9CC244810484A5209771922DB67E86B43434389F1701868ADF54F5F9CFF707171D1BD1BE0C9F4C91FCF1E3E7C5828A5E8E1F70FDE552A15353B3B7B1FBA67CF9E647979F98F344D4B4110B8F752E9EE99EC2AFAD6D7D795E338977CDFCFDBB6AD9E489E327342449FDD73F538D07F00057E13BF79D7B3C90000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (63,1,'Network_adapter_(48)',0x89504E470D0A1A0A0000000D494844520000002A000000300806000000678EE8A60000000473424954080808087C0864880000000970485973000005310000053101B7ED28520000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00000B8C4944415458C3CD59EB8B5CF5197ECF75AEBB337BC98EBBD99B9AA44A62BC8434511052A52136D45602A5D882D00FA508F6435BFBAD1FFC0B841268FBA1885F425B8494122B2DC5D605C536AED6DD1AB3C9C6ECFD32B3BB337366CEFDF2EBF39E995927C96CF2417133F0E35CE6CC9CE7F7BECFFBBCCFEF1C490841AD8F840F6F9A833FA23948B45FB80B1FA9757F60940F1E3CA8AEAEAE26354D4BF2B94422E1BBAEEBADAFAFFB380C706DB4AB4019E4F0F0704251943CF60B274F9EFC662693E9595858989E9C9CFCD4F3BC2D8CF2C6C68685EBC35D01CAE3C489134A3A9D2E1C3D7AF4277D7D7D2F209223AD0B7CDFAF856178F1FCF9F32FCFCDCD5DC2707783066A6B676464248DA82D148BC5BF388E93191C1C3C91CBE594C3870FF767B3D9A79697979F5A5A5A9AC5A55E8BB75F29508E0ED21D01C4028EFF58A954DE4444F7BCF4D24B5BA0C0CFC051027002F0716CD5B642FBEA23CA4502B01C292E1A17E997A6A6A62E3DFFFCF3ED8AC0939276AB98B653DFE41D4737445105A87E834FB5E8184591D84DA07287730C56747575A90D596D7C5050E16EEAA8BCD317C96452B9E95474570245A5ABEDC708E8DD079453AFEBFA0D40C1D1BB33A2A9544A692BB4BB33A2FC414495F606B49B7D7E47A0B22C0B44F486D40741C0D9977655F03B7E81CF4D403570375D2814AC43870EC9500501C322DADA69FBFE976E0BD5DBC893D67E3C70DFF0371E7DF2D8BF3F9C78FF13B8281B4DC11F1B1B0BD05643D8C2C0B2AC005BDE8FF0DB68FFFEFD6C13C59735A18E4039C548FF0D3ADA3F3CF8E8F75FFCD11FBEFDC3E7AED60D6BCD75DC0DD7764B76DD2C1946B5686C196B0B57AFAD5DFB64A682C20BB8BBD56AB5780BC313C2F0F04402703F344D93F723244D6042E2A609B54F46B426D21128B74AFCA1D6AAF8C62F05B3531A1CCC1F90877207B6970038ED83BA2C5E7CA51F046CB66BB6631BE5AA55B24C67D3B6ED0DCBB24BB6512F1A466DBD522CAD2DFD6F66DDAC98362815601261B95CE60905AD097186BABBBB3DD08DFD47B463EA118918A879FD2AA943A3E41A16B9659FB43E9DD4EE6C0C30826249A1408A25705AC212204221469AA4C8BD9296EACDE692E311859804E42D0A29C4F7B68FE1F9383E459EEF59AEE7D6B6CAD686693B9B98E1A66B3B1B9EE3147DD75B2E5D597EB760DBD7B0C2B0D51D5CBF845969140634353D458F01E8E4C47B74F5F215DA3B5EA0675E384375C3A7C937DF211716F0E7BFFC05FDF9AD0B64D74C3AF9AD53F441E90A299E033001B9F80FB63232282F64A4448A88D90FECA46B6A3A9592D3F9EE64C1839588B07880B6D0F58D3A39BE4F0145AF143FBAF21B187BB76344E1F6799DA791A2D2E3CF9E21F6A40F3C7698F67EED5ED2610122DF21C7F569D32853EF403FFDFDBD7768E26F6F53229DA043C71EA3D5CB73F4CA8B2F53C5A8D17AB148F3F38BF4DEC7FF21ED5E1F5970E1BC936449991814479AF545474504D84F6A3215723AC03A649B761A3C4E80EBD2EDE44913A2468B8BE76960E03BB438F3192DCECD537E4F9EC60EDE0B500A3D7CE21869991411C613DF7B06491634EF6E9257B7294084D8707B48B3A6EB94102A2D7EB24E018ED5EE346983A04B6D15C496C954D2544EA662A002DE673097A48C2E7337A496B5DCB198584725A98B7A7A8E379A80A650EF3D7B289DEFA29AE1902C99B8F1C738AF53B62F476A0A4C41BA8CE555F224411B1B9B64C7AB03976C8733E0D2E0C124457644752D4D354BF0BA16B07C24CEA1EE794163F90F68AED245FFFAED069D7E56253D3B736A5D4A9DBDAD3CA198D408E4DFC0F13DA89C442A898A4674405D2D21938A9B8D1FFB3A95AFCD2112E01E7758CCDDF54DEADA7F1FBDF2FB57294064458082936412799D92C534493570AF3722DD5A4113615EB26CD429AC0B52FA5C92F70E50DDDA242559205589A3797B79628ED68549FF9DBE48A71E3D4D9FCD5CA5D5A515CA0FF4D281271EC0EA54A2C25037F5150EA292C3986B58F8532F6F31B247F7E1B8715E5764E2EAAFD92ED150863C28859E8072A0D0F85ACC843617DC1838D4AA814D3444949D1CF49576AC7A4E7D9794A5EF3E7E26E6DA8328927D8F3FCCD1A672DD2701394A6A021488C0475477C0D213A05A1B376F0CF02DAF912A0754B6025AAF39F1F910E7832881A16E17901ED6C9F502F2B530963ED17C4073C716CAA987F8D2F4F4342FA569647884FAC0D16C361347CA07B8954A914C6FABA19F4A4458BC500E45164488208AC46F02BEFEF1654A8C8FD2505DA223A347A95AA952B566905143B19A259ADB038E5A283C17934CFA8D2ED2B62CE2ED2D408F1C394258D8C51C7DE38D37E8ECD9B3F4FAEBAF534ECBD24343FB687478EFF6B5EF5C9EA48F6627290975105200EEDA64793A722223BA1A6D59039450654AF727289950A856355158282E489BEDF864DA1E79559B7C7016C21F171C07E07394DB40778CA8847E9C62A04DC78F14DFEAEE42CC7CF15395EAB3D03C1B202D2BDEF288D21A3DF4833DF89D203FB387564A06E5214D25A841A56A50D5E051A3BA6D029C06ADF6C04F37EE762D94B8416C396F9B7A887C726D6DADE54F3B9A5016178E440B1C73B9B59FCD3574B162FB54AC59F1BE1B78542C6D36411A680806F90245147511D3CCC5D85EF160828AF2F98252DEA9EAE13B83A79F7E7A1B287588A8401FE43F6F816B81851BA2EEAE6E448A391AC4E9E4FD523EA2CBCE3C2D2A252A6711C902917D7F8AFA550BE20E7EFA5E5C680DDF04A313C60FF0C41D05FFF4E9D3B17B025F630DAD5B752A1B55E25509F3DD463FCF174C4AA3298688966D8628883465D0A94422452E40F28D1B8031B4886A7B249C93E38AC73F37D667D73DCA66B2B13CA9E510EBB51CA40BFA2B0B013A75068A8848CDB6A51E3F7E9C1E79E411AA56AB74DD98A58B1397625EFA668D1CA34216F665EED5F71F42D45DFC994F128045D8B75C99ED156EE853D62B636201ADA1BFF7845572B8D8421505EA5231CA9038A0503D9F27337892BC4025ED8843FFDC8273593B704192963B577DF3016E5CF5ED2E5CE9D1249B9A91012F03E150046D0C51C181AF203A301AD80671F4D45843F369741ED83A943305689D7E378097C06BD8A7848AEFCA6054AFA0AA9D20EA8224467D748F64918095F43199C5E5CCD61D7514BC545BA619822EE07BA4424E05BB611672050A470762E2735ABD7804D48FB96DD69C466A312905F472D110567574213D8CAFAF0E261135854219BFEDC2047DA98DF3D023B351482A26C2757F478E32D06D19623B1672130C69E2AD8BBFB62BD63429C209BC20F27D5F78B6934E0967ECC73F7DF057453DC3AA127B4B065681FC8CA5799A72BC80951AEB8078C20D8801B51AFA7A55727243B29A4D92CA0D232CCB89BAA2441D81429698A3323F666C332928BF306E71D595D2DBD7DF9D7A1F3DD96E3EFAE1F57F6FD81D1D3EDA9B4101C810771572D368950AFABC0B7AA4527A0CC843C1704527700D6B265FC3899361AA674A09AF3F1B6A3DBA0FDFABD2792B3132FB572DDC91A30026DFCCD152CDF2ED20F461ACE661ACAB737373BC96115B5B5BF2E8E8288A305AD0137056B083FC3448511B4055552185C1A3014800A80228370F15D771C483A0E1BA54393EE76BBA126532B2C2DFEB89B0C60BC11D817244DBA31DFA81F7A7977FF71CA238833FDFE0B724AD970ECD4794261667F317FE619DA95822C10989A448D1E05C22852528542309CE4996B85149A102A8A0170806B114BC2B299A2C15978C0D451129BD5BCF2809CD5D58B0DF4610DC52A97463EAD9DBEDDBB7AFD30388102037C1C72DACE99DF637234D2BC6D1ADBCF65ACF0544E0962682DF4A2D9FDBF674F09673ED0F8A79593D3838E8C3E2F16BA3CE11E5B5385A9ADDB65CE647E726F8E80368D4210322AE8ACF5FAA7DD13735F1DFAEACAC6C3FA0906FBEE1ECEC2C4B8239313171BE254FE8F95350811A7819DEE9C986F8E29FA83944FBBD3AF5FA08CB0D13F6EE4D148A011508CF9D3BF72A5251E78CDD55CFF0C11B7EE9554114592783E5E5E5398FEDCD2EBC5FDAB133358B23807BDABA74E9D239ECF772A52F2D2D05BBF9E256EA746F2E88F1F1F104AA35DD5CE85900EAEEFA4BDB1D9EE34B6DD48876FB35F8FF014D1ED598C339C5660000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (64,1,'Network_adapter_(64)',0x89504E470D0A1A0A0000000D49484452000000380000004008060000004FF7B4B20000000473424954080808087C0864880000000970485973000006EC000006EC011E7538350000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000011534944415468DEDD5B5B6C1B577AFEE74A52244552B22C47F24576E4C44EDD24B69B5DEF8373018274BBD92D8AB68F4190BC7481BC1479ED5BDEDA027DE84B11044551B4301A6483A65864936C36DD6493C57637B16CA7B11DDB921C39962C5122C5FBDCCF4CBFFF0C87A664D9528A14B53CC280C399C333E7FB2FDFFFFFE71C295114D1FA43C1C11FEB6ECB86D1463FB88B0FA57FBC09B0E3C78F6BE57259F77D5FE5FB866184E9743A9C9999115DA0E17601DB03D805A78D8D8D99B8CCE0FE80AAAA297E2684F04DD3F48220F05CD7F58AC5A207B00103BDDB414A8009B8919191F4C0C040DE719C6100DDFDF4D34FFF4926932954ABD52BD7AE5D3B7FE6CC9959806E026843D7F5F6FCFCBC87DF8BED00509D9C9C34DAEDF6E0134F3C71ECC891237F313C3CFC479AA665FA1B0358BBD3E94C552A95D74F9D3AF51368B275E1C205FF6ED6A29E5C406BEA8B2FBE78627474F465F8DC61060D402D682ADF7DBE020D07274E9C383935355503A6771A8D86C5B81302BAAB01160A05F1EAABAF7E9CCD66CF846198E713E0869F7BEEB9179F7DF6D9EFEFDEBD7B04A4439EE7513E9F3F0001A4E18FDA066C7B571D6A1202606A01FCCE06B09A6DDB8B60CDEBF0B7AF3FF9E493FFD8BB776FAEFF47F0D35198AF01A1A8773B8BEA09DD33CFB03F754DCE03B9F0B5313B3B5B86CF5587868646FA050341F0A9DCED007B1A886E1E1CE304B424E08B018007209FC69A881FB7B9EBC1AD01B8FE48A5529165594C1E117C51ED02EB0748DB1A6037F8B3E9322A6D030D46DB1E60728050D6038CEE090D2678C0A66B00825CB6BF89224C24E6C9A6BA9189D23D6BA24935712F99687F38B93734887C53B22894A76E4032F78E0619E43D49327DFEB79106F9E06A43EDD6CACAB605882C46610DF6873E562030A580DB449561703366DABE53ED3B7BC7FF6BB974070D2A00B956831499F81882062D541E3AAA10D734CDA0D96C861006FB6D88934D3BE2B91C4EFB90C82761275A3F91B5FEFADB4C24360588A45B6AA4FF9D03C5C13D7FF50F7FFDEAB52BB33FFBF94F7EFAF6D2B5850A6A459F9373000B004CF0276E09D48C0C5C400802F743082B4C04C1807942EBFF5210CAEDA60D8F1F3FAECFCFCF972627278F9D3A75EA5D36CBA4E0BDF4D58C6F173423B6F148E07ED3B6DD9AE77835CF75575DDB5E753B76A5D5EA54DA8DE64A6571A9FCF59599E5A5F9A50EC040F181582F08BE46DF0104D013049FF57AFDB682E8825D0F7ECDF4E6A61A2C954AE62DEEA3DC2C9506D2B0E2AC5E524B7AC90B72B74DC143BCAFE3FA4EBBEDD66DC7AD398EBD6A5BF6AA67DBD58E6555AC667BA5BE5A5FA92EAE9417BEB8B202B0BE102200B09E3058328EE3085840D06F110C9CAD026E22CB3C9EF1C398E58CDF6D01A223D6AE0269DD0478B35CEA635454C7BE42ECA5A61EDF0F8482732D38B680819492CE65CC5D22327679FE0079222411E259244820B4723B81769627A246DB69C21AEA9EEBADBAAE03EB70ABAEED545C290C6BB9536D2CD7AF9597EBF34B75B60AE60008C46DC16C4647473BE572D9C5B885BE89FF29F97C3EC500C3B3BFA3A9B96BF4FBCF3C4B9EE3A8673F9992DA5281EC3B3FFA1E418C546B29E4D4DBA4041E655042EE3B30418BED559E57A5D013A4664C6A39018084A4A91184C26C1C91E5C3FC8350DEE7732045CAE040BA1045A90200EFF3011ADA5F230CBEB63C9FEA96EB410875DFF56B41E0571AF3CBFF72E9F50F7F3A313121E6E6E6C23B02640D42321C024819DA4139DB95F73B6D8B4EFFF6D338CE00D8C4A3FB696CFF1835CBABF4F907BF2114CAF4D4534FD103DF3B44EFBCF1F7D4AA37E9C9279FA4C71EFC037AEB8B5F51B3B24A46A491253C0AA280B2199D105CC8C8A5A5163D2F941A0F2590903851346121214ECBC3F380EF0B1A30551AC9E7CCC5A6BD73B9493BC1DF0FAA86FE05ACEEC36C36DBE6A997DB0204FB29DDAAC2946EB7EF7E7AE0BE3D9268F285417AE64F7F0874008E93071461208EEBD0E2D2A294F0E5B9194AFFFA43FAEFB39FB3B9532693A183470E4353829E9A384A478F1DA346A349ABF53A2D2E9669A9BC44E72E4DD3AE076DBC0C9A8586971BC312A0E802E5CF94AEC015142980961B928DF10CA6212C4FA3D50E48D0F5D9E252085F72C6EF8E1AE4492598A91E27D8F300A2C1A40609B447B57225E61B4DC5C01F2637D0687064884EFEF90FC8755CCA0D17694573E8D0771F251D32CAEF1AA6F7674F93EBB9B473E74EC9C6302E02A192619A34582892392DE8CCDB8B52705A364DE97183B46286865337A436ED20456DD7A0BA6DF600F3D88673060D650DEAA0EF280C38A4A95B8A836CA23C3D1883FD886EDC18A0F1F13FA476B3A59C3FF3795259D0FD472769F8BE2CE8D4A685E939DA7FEC0045F02D2D9DA29143FBC8B16D8A521A05302BCFF7A4F4191C8852024D4ED7F568E2300F1C16C4FE9875C80A5374E53F1BCC60A496300EC52565BC40AA2DE8406A86E69B055A9823B21B2DF8BC4925FA7AD7FC56023D1859E9FA601CEFD43FA3BD7B23DC0F494F9974E4B1A3D2FF34BCB86DF954E401F96DBA76FE320DEFF0A851B7A8B658A7838F8DD3A58F17E9C0F131B25A0EE5260FD317E72FD0774F9C9020DD041C4EC777C9197C10BE3E43666051551B833004ED7D38221F256803A96F36DDA156354D850597D45C9986E16A977EEB516BB1428FEF2D92A1CD1EFB8272D19633192619FEB4159266D24B625545C6D4D00749E453D25C0AA5221DFBC149F2AD0ACC5225556B426B2AD81283EFD8844086DC4FA5B73FFF98FEFD973F83AB71A7E853C496603C3042697CFFEA5C207D3A7B4250C659A6AA374883CA2AE502F8678410E4E525170402FD0DA5C81F74C89EA9E17D2558B7925440D13732D137C53B347826A2A71FF93E3996AD9CFFEC5CAFDD9E47F64B566B23EA8C1F1C23DBDB4985AC027F7918038DE83B130F4970F1E262440F815D939020BA6CC9A983ED055469BBB4FF893C1A0A5AB004552B1A09C7A3FA3238031D441983CCA22701C29E1082208CAEE0A3F82F628BE8743A5BD22027DA12E033D149D21EEADE84F6F61F3AC89222D5D0A86579189DE8B15D2E438877826A1DFF1616147DF41F7F8F7F3794D53911A021E41E221A93CF87D8D20E96A8986921A734E21022545AB90A93FDBACD84D2EDAF7F1137AE61373351857D902F902AC936A3DA08F9D998143404ECD10727D840E3D2498F09E42600029D13076CC4AC881CF8AD87601F8471FB7EC0E325447535940463434E8B0D6BCD736E7F6D155A84390B0EF20CDC150435C904E21680EBF2D34D4D14B6ACF7C546D9692E97A7DCAE1D6480FE351D1227113324CCA5E35890A0430D689435C5124D1B885DF0BD40A662AA1440085FE293339446AD4E416511EC3841050CF8F1E1631270BB63C1CC3B845C952CDBA26B5A9D2AF990EA2D8B0664E22FA41FDEE486A87F16626B3E98B0E84B2FBD44172F5EA4D75E7B8D0C84CFFB87F7D1EEF131BA6F74E79ADF5C5898A5373EFD05B28C1AF92C759854285FA34AFB91190AC51A8ABA0268D9B8AE4370BB11DC6B1645C368AB22E6F28977F1AC6584CC476D8258B2F80D6227FBA065711C0D7AFA8A641EBCC57A90837CA2414EBDA6A7A7A5F63834447798B5676B61A99AE5AF286B76304E2F362D3C30530EB4A8C864FCECF2C3348678C666BB6F4F81C2DD21356D92B966A3D944D8F04114D06027D6205F3B912B5919A848971A746316BE699E3D0D26C3D94A456FBCF2CA2B32DDEA7EA73B95990C3E4095303365C0CC3232FB61D38E4F3673475EEF3851A6E248964A033A5D412289680321B4E5801B08DA0E061F03B4BA003BE49AD0580883820059831C3B0D06B87640D20713905B61517D6161A11F306D56483333DECC4EDC5B4E3653AE4258B3D50EDA06A2C7A60ACE46B341B6EBDDA24151887D581171FF0AB932114874C798742D8AB6C2A26C8EEC7FD2448F1E3D2A4D34A91EA24D169698701230FDA998D7653E946052506118E7929281BBACA96811CD5FBF0E8DFA712A07A01EB4255082799974EC3E22F6417074DC0769FFBB39996EA0D75F7EF9657AEBADB764A79B693019F0461A949508C0F1A933FB4631D12400657C34159A3B186B0A85313E218828D50B05BF2756E8B26A729543D5AA474511F656F7226892BBDC328B263EC85A7BE18517687575951746A5162CF852B3DDC2775312439278B7AD0E8844D0A193488A43900A246F5921D56A06E506D2A4AB69108F468B0C301472E00C30DC202188E3A058632F2BD7D364623CA87260BA48EF1A11656D6416D92245412443D096E3A04C5ABA73A2CF3FFFBCD4086BA161D7E8D71717C83A17075936127B75194938D3BC4FD9119D16D53D648C6420538FD306E498782718D50778450DA85DC5E0BA5314E3EA127D150CD39EF40ACD764AB4375FA5D95A8146B22D6A3B26524083F6171AF455A340DA232A79E534ADE05DBA789C664596FC718F7484AB5F2EA1746D1DFCB9A294A32D870936D1F5CF32C534B5E0C736E250420EF6D525CA96907F7ED9A6013547BE62501B5215A1D14DCDB85D66AD8670CF8789554F438B4704AD7C06FF3D2468F91C62DFA84FCD1583E7FD887660DCBF83191EE24C278BCC812BF11C09354B4369171544288974A53D404E3D5C74DDAFD905A26F9CC9243EC603E4D43965706DAACA8C24F3C03E593EEF39093FCD6AD22DBC0C13898A802F9044FBBD54AB3F1765F31C7A54D0AA17D28E231EAD203BC9ED434047074C38850C4C3C3069E7619B2A516EEDB4BC0D2B5842CCC56F7CBCCB181084CA33DC128BF6F9E02D6DE03132D7E42CC4F6E30147289578C0EA401CD47BCBF84A488378B9A9A79193065D01B1CFC5A6CD00A7BD92F4B58BA224FB9FA7C1F84510602B90FB01E9623472AB9521E6E7F31EA928B704B29DB41E503352C22DF9206B8F4BFFA49A581BE742008789DA017D3935FDA6556F9D8F54C51681EF0B8C98D32721A031D74FF91DBBF8DC73A33FBEE01D1CE6845B9A67771A91C3CD4ADBEA91CD373D84A1D2F54CA13B26358EF7BC814755C3CD58544940AEDF61912CBEF0B41D4BBF3AB7F0E1F5DF9CFF88F7B5F1D47DE2BF202313DA2FA28FBD8FBC9CFECB3FDE7946CEBF70D7AC454D43CAE60BE2658F5ABD83043E4D5CB8C82400E518CF1CF0A79C938DBA73B14A3227AB10EF6CF9AF69A5B27F2C353892B64CB6080D09FD07BB8DA37FF391F24F5D1F8C362319352978FB631F836BB99EAC0ED06A116DAA88736D5077904C77E09A772FF2F72CEAC740C360430C802BEE50847230DCA5868132481DA183EFC91A9381B01B6B6A2FF98A949B1CC01EA6C509878FE61824FF2EEE9334C5C378C4A624532C1615840565FD0604392FEABA4147F87EC7F159E0375AAD9655A954DC72B99CE4F2BCB6C10B2F1AFAA8425B5E2A6D90CE5A01109100E45A1268F2288132E994BC66DF6521B01063105D574EB076031DC766DD14B66E1A61261DD78D2C24DD50DAB8760B8542B8A5389868B0FFA89FB9FEAF6FBEF1C63FA2A31B00513B70E0800380FDBB7FE5DEB7898909CED02B9F9D767E7CF64B651C6CA0A300D654E9DF5C12458C805711B548F1A5ED292197BFBC03095DA842E1C7303F39D5C2FC18B2C2E40E25A15CFDB231F3693E9D1FDC69EC30542534D28A3D7BA5F33E2F614C4D4DDD796DA2AF5CD236587DE27DA2AB4897EA4B4B4B363A131BACDB47737373FEE4E464EBEFFEF6D22FB2D9ACCE7DDE6E035FD7DF7B9FC918D6DFEB6F873E7BBFE76D67C89D7915CF3D7CF8305BD39D3598ACDF6D64A278E6E005B6C7A90DB12BDEBA29A1BB839137B2731B7F6565455957B66DBAB4D7FF0526DF5B14DAA83183ED2EA9850C6EB3E533B91E67DBB68F0E6B1B2C6B3BC8495D5ECBBBD39EB57E93DD12A23B2C73F3AE8FAD1CEB17456FBB468F02933563BFFEFAEBFFE6F1E44797C160926548EA57ECC8FC6F06DFE67273F42D1C5BDD8410CDCFCF239E87F6BBEFBEFBF9F9F3E74F77E93FFCE0830FFE19DFA771ED6E871D4FEA1DD41C2296F122629BA9BEAB55F7BDF7DE7B1F0E6DDFB871E3AEDE8CBE955C54FA20E382BF795D5663ADB6C09E1E6D837F0AD90C6084CA3B40106F57ABD573972F5F2E22333181A9C6FFFDB25D36E429B7534297D1D4B1B1B1142AF81C027E8A9358C49AF6D5AB57AD6E7888B6A50FF6FB217CCD85261B00C72B9EABA55289C189EDB2EB57D96C9C7DB149E967F3EDB219EF7F001FB18C82A58423490000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (65,1,'Network_adapter_(96)',0x89504E470D0A1A0A0000000D49484452000000540000006008060000008380557A0000000473424954080808087C086488000000097048597300000A6100000A6101FCCC4A250000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00001F754944415478DAED7D598C1DE795DEA9FDEEBD2FECE626922645911263D13635E3F1468F12616CC09981B3F8C1405E922002F260C44F49300F1A60E6213230C8C30C3C40222441C6831960A031AC51EC2C1622C9B62C531E5324C5A529B2C9DEEFD277AFBD6ABEF357D5EDEAE6ED66DF963118A3BB1A85AAAEFA6FDD5BDF7F96EF9CFFFC55521886B4D32261D9E97CF8B80BECB345DA0E8F149052B25EBC78511CBB72E54AF2A1305E93FD7D0FF02380A68094793D75EA94DCED7615D77565B495E236A12CCBA1A669412693098686868218E4DEBA5F81DD04680CA61403A9B45A2DD5300CDDB66D8D97200894B85DA0AAAA8FE39EAEEBBCFA68EB67B359FFFEFDFB3E9AF8FB15D41EA069308F1F3FAE369B4D1DA0652189591CCB619BC1AA721B1F0BF63D6C1CB47100B40350790B8C6D677C7CDCBD7EFD3A831AEC3750B702AA30988D46C328954A39CFF38A00A904E12CBDF0C20B5F387DFAF4571445C9421AEFA2CDDCE2E2E2ADF7DF7FFF26F61BF878D7719C0EAED1C167BA9393930E40F5F69BA40A4013E93C77EE9CBAB6B6A643FA720CE22C96CB972FFFF3999999DF81044E6EE3E5592C174DD3BC5DAFD7DF79FDF5D7FFB45C2EAFE21A9D85850597D57F3F01AAA6C10530121C8CFCFCF3CF9F3E79F2E4BF29140ABF0DACB38FA155ECAC0C7CEED89933673E055097BE8B058ECC012BF0E0ACA41413D857808AE5D8B163D9A3478F3E03903A9665BD0749FD18ECE418D4B9CAED21A9A38970422ACB13131374E9D2A571B49B84892048F37390CE1FE472B90E2C013385803560BF48691AD090E9CFB56BD7DAB76EDDFA33DCFF77D91961CD02D03CC0CA82228D7EE52B5FF92A18C073300F23007E12F69218485E79C13566B1AFB33D4687C8FBCDCBCB29321E423D03F6D0589827B5014C1DC7AB90C455ECAF61BBFC9DEF7CE7CFCE9E3DDB814928F60BA28AC5E20C1C970AF015802DED4B40D352CA74677575D5C1BE0560DA00B10970EB90D275A8327BF3161CD7C27617046F2DA17F4410005A9550B17DB3A8E9983C963821AD20E8410C8607BBE8F139AC06030DBAF430F5B97EE1BDCCD2B9EF25348C9718D4208E78BCA5A5250F5EDBE305A0FA376FDE7CC0B6733B1A15D3B17D07665F2FBF35C1114B6D00F5676FCD521C743A1D6B3BA70DA0F7757264502F1CC67652D921AB171C003AE00240D5ED008D55FE00D0C7C6A850F70433CE3CA5014DABFF81CAEF61019ECAE3CCC201A003AAFCB668462A2F40E524F401A08F517B0E31E1F1E5C7007A20A183787A5DD7B795D0031BBA17F2AAAA4A1FC93CA04D1FC129C9DB11FB0395DF9B84EEE4940E547E50C7D44FE50F00FD25DBD094533A50F941A325D026651BE93CB0A17BFA902C3F2E523A48DF0DE8E5D5AD317C9A87329871C65E8E3B2DD812FB87FB5E42536124E74477744A3CA68445CBE572EAE1C387B9AD127F971C590E498ED71D977D23A13B39A5781C290B5C7358ED66B329F1C01FD73F61E59AA8D0300CD139D7AF5F0FB72454D2921BA640DD51A2FF3E49FC9E00DDCE2989739A5A80DA0F6175D9E167B35983EB9F78289519001799398EC3D42B181D1D15557C49351F2E2BB60CFAAF2AF07B01546295DEEEE4F0F4F893BFFB272FFFE1BD5B73AFFFE0CFBFFBD76B0BCB55E068713199E7793EF645755EA7D3090098CF432A00510CAF589625F67941DBE05711F85D039A1EC14C679BB67E378813E54BC5A3E73FF9F17F7DF6D90BFF626D71F1EDCAE2DA8D76AB5DAE57AA95B5C5A5F2FD0FEE565882F9B200868BF918586112F8FF18F820013E3E1E24E0A78187E087003EF8BB067E3BD00792D0840AE1876A3B0870CA34C8C6ECF123974F9C3A7CD9F624EA517EA0EEB96ECB759CBA63DBEB8EE5AC9BA655B3CD6EADDB6E575BD566A5B256A92CDD9BAFCCDFF9906B01FC0478FC864DC0C7B1445FE07960D134CD4DC033C0003ED80DF0994C868B3FFA019F80FE48D5F6C02A1F0DDFEFE0E5F19776CF393D241F40E6F01B65291523905282EFE2F56872D0833FB35D89BC5468E0F99EEBD84EDD16ABB96E75AD9A659A35B363D63A8D56A5516F54AB4B6BE507376F95DBF5B61503CDDC4D981776866CBEF9781015B0FADB018FCF31B84102FCF2F23257D23C023C576D33E890F420A18409A8BF742FDF6FC96921B9106E691B0DF2614D1C51492A91810EC8CB615418108AAD16E4D5090AD58920CC10FF6CC7F7A96B8764B92105FC8783BC02FA8E637975C7B1D6D109EB0E4BBD6555BB6DB36A3621F7D57AB9BAB05C5EBEBB501355C3B1C433F05CA0CD121FFF2FCC4D3FE0616E7C5E6BB59A074AE84E4D4D7185A168C3A00EACF20053DAD4115C24B6036514E9668866B325D16891252E7D3D800353007C485343D2D5A8C6828F07621B81C59D1FFDCFD21E49BC01A39335A26BF077B0350A48CBE396F24168CC72573810F5B6E591E904E4871BC0033196DAA6C7A03BEEBA0BB383B58A0EA83800DF6A772ACD955AB9F160B5D22AAFB7D3C0E307B2ED77C05EB836C15C5858B0F8FFD80CEC5E4253A1A4D4A34DB645E5DFF92CD92FFF579A38F6843864D6DBB478FD16894E8E4DCBB94F7F0C06694400D1EC4A9BACAD12D824B936150B43142200B31C4B988DE4E6A3FC402040B3BD102621E0C056809F6EC38053983A863F0D7D3F565005980EBE3CBA167740A084A48E40E247F818F81C354C875A001FA86D5C139FF3FDC086E4AF7B8E57F71CB7EABA4E2570BCB5CE7AF36777FEE2FFFF00921D42520300CB37EB0FAAF2C92C100168B8BA4CBF582B53E9C33B3D409B8D06DDF8C5FB0933105B3DEFD1F14F3DD773583E7EFCF2D5396A54D709B68B2BF6E81BDFF806756C935EFBF10F29705C723A26EB363DFF852FD2A2B54EB7CB0F890D8D0EF3A148610FF408CC20060AFF07E23F0160C7C67EE091A1CA02DC0D490F62A98E4053A041878733C4DCC574614EF0FDBE9007712DA3696AD3E596392D6534526076F87B609B4E425B7FCC120B13E026C5C5EA204026921A4F5E20E9C8710ABFFC4FE8F4C54BBD86B66513A2A374868A3A6D8BE04068A4581237B134374F776FDEA676BBCD911517F9C60E2C43F7DE799F1AE8143E7EFEFC793A34394DA3DE18DD5C9DA766DB2473A10A5075EA7A3624D6251BEC4BE88E2C930C44D49C41D9E122AC4C48195DA65C46894D8FE8821844DA3027F873611A6A6D5780A92912E50D59D8FB4038D89086722A1CA5466B2D4B7480B0D79EA3E25A05D8DD76A150E05A5869CF4EA9E7E501D6F3FFF1F745B12D03C0CBE8C4385DFADCA7A31B14C58C320D4FE6C86CF17C8692902013A6626D6D8D60C7085E97EAF53A5DBB768D6AAD06CDCDCD89E3F0B462FDFAD7BF0EE7630BB5AD7C304FFFE93FFC1E3EE350C7EC52B76BA2533A54AD55A952AD52ADB64ECB6B2BD4CC382467086A1C0A35767C0688B74A0F90206553D9FA6674858A5974882C09B0E379410058A6BA69D3705E874DF6A8D2B12353E0050AEED9E04411EE5FE672FA3DF1505E76F2F26A46A7C2F42805911844B86B1A4D4C64E27F259A3A364B874E1DE5AC1515868738BAA26BED055ABA3B4FAD768B0A30012353E334313B4DAFBDFD7FC92A28D18D5BBEB84937AE98E695CD8A6E6468787884744878696898DEBEFD339A9C59A0462B4B5399BBF4C07B86C6A4395AD43F29C008B700CAFB76D7A7F54E90B2CBD13E3BC927A74BB4062D1B2F1A6443706A1D0B26C113BE04DF2FA713397B8A94E2EC119675A8E78B64187FC4493D71A40529997BFFC6A608EACC27CE50E6C4B470483254AA303A44CF7CF612356B750188A429F0FE3E4D1C3F4CBFFED517707316045B222D97A125AF498AA945CE22557EEEB9D1360D6EF2BF0B89BA792D4B0128C5F55B2A4DFC7A48F7DF9769EA1F0502BC9CD2A0C9EC2275FD1CB9F0CF19C3A66A2B4F559896472538A0FBB5160D677572F11B87B21A55607AB61B2EDF13B1E7585EF4727095EEDDFB091D3A749B8686CE89F3DD6E97565656D21D41DECF894E5C380DB50AC11F71CC6F5375A54C1028CAE48BA4183AA9E041907F1A3A344EAD6A8339258EE3188015942776701B00FA1BFBEEE6FFD92E2A3A4207B2A83482FFD0FDF9ACD3A34E95059FE66FC05ECE28E4B74C4EF0E21336A967831E90614A82D7F1A3D97CB16373F03D7C1DFF97157AC64B3C45F1296AB59EA233674EF6E2FA0E6C1ADBC0B8E2591C2F8E0CD15AA543B3B379704270D1EE325D79FD4DFAC4174F90D9CC52AB1ED2C96727E9FE074D1A3F9A27CF827D6CB934756A82D6572B941FD529D0F290527F93246E95CC0D3310D2C8D9497A6AB682EF1BA7A6D5A2CC8551BABE148305BB180298100005704432A42FB01CD16999A647D9BA4BD323B7A8BE60923EA6D05B6F6468B1D586ED36716F36BDF0C204DDBFF7C1730F48DC63982AA4DB1DA0A00490C47B8FA4EF2469823EF399BFDA340B64E2D0145DFACDCF08672473B762D5A1BADD26A4B298831D0AE961396A2BC30B371FCCD3CABC49474E0674FBAD9B54FAAD33D4BCF78056176C9A3E7286AEBFF6013DFDC563A41D3947ABF51AAD95CB3031994D52EAFA5BA416F767BA2AFDFC6D83CC304F796785EAC553240F47F6532AE8F4F97FDAA1771F1EA74F3DBB40D7964B7462A2427F539922B5E992D600772F7AE0C600309B27E3C951AAFF640554AEC3B693347904DAC6A3116AF89125140E494EC7F2E1967092298C0430051F0C22BAC22AAD80C3B1AAACB5429A9C9EA6339F7E968CB1310A3F5C82EAC307C7637B9C760199A65C1E34D489AF0D76C7DF33F3C933F4EF5EFAF7A485F0C638C61E5891C10D65DE2AC2EE762D8B8C8B87C577555755D8678FD6CB3A654E5AA40E19E2F75C1C79977EBCF42C5D9AB8427FB376864E16EE53B53D44B3D2436AF8A3116BC18FD734B00D74BA767A989C1F7541095B717E41262E8E4F062ED3457103474A31A802D095B04C5FBBFFAFE8CFC7BE4D592D27DA75EA4D9ABB716BD3678F9C7B82CE5C3882102BB2498A92A7272E9E81648534F5F15FA3239A4C3EA4EAF465D0AAE230158E1994016F71951C4D3C751CD2322C38A13194A7A7BEFC1B7DA94FE2BD8BA963C387642A153AE48CFAE4142C6A8625611BFFDF9F82AB5EF6E887FF3343EAA590AEDC80313F0C2756EFC217048202B2FACB32CC02CC4C72ED64C92350413B1C507A07930CD5AE011D1919A10E445E8E1601E8EDF01E2DBE7797E62FDCA727679FEAD9D0D5D555B18F7651B8875EFE079F7F46543DF10D59D896B2510C1E84A374744C06670C687C62580031395112B49ACF4F4E4F6E0A2737C2D1AD514F2038A401677467B58D68076727A7C8D4A0B605CE60C15E3A91D3E19088B580C315C13741ECD971719AAB6787D1AE5683D4E711FB53B0292DD96CEA54A908B6146ECD990E1C7A727224B1A1CFD093F40FDDDFA053874E6F8A8C4647473706F7D0F4D08963B4B00CC750CC6F92AAB122A4103756EF86B4D6F41EA12B69E9DBEC791F3DC7DBD9910C95AB0E4D41B5D91B87219C4D988B3B6203F873DF18A31BAB453AF7CD117A6F718C3EFED926FD7C61929E79C1A7FFF5977E4F4267663AB44485A81352125A2C39343E1EF4C01C54E5A524AC4AB2F589840E4945FAC37FF69F37392526E94F1F9BDCC818C556963DBFB69554B3D4300509A45436E851DAB2938ACF8EE851DC8DBF0CEEA6039EBBB8DEA58EE36DDB09736BCC373BF4C1CA38B62DBAB38640246C93E94F4378577B91DF871F66483B1108094DAB7C2B96D074F1C7C0C3C84CEC755D179469A7413A0E39994F26E9B688AF0664E4B362EBA756CEF2B0E2E60D89268A324D14641AC9C99487DAAA0AFFDE8DB68158C3781BA4AE158A644618C281F8265884B6A99DDF678DC0DD587D4EE9617BAFD2122C2191D013275AB1E9D95C0C93CBB10D0D43CEEA393DCFB947620F2C77CCD817860A30B8919A71AC2F245412C9C29E142652D3EC72424482C4D83D0992998C40830C70C49CA1881EF745A744B2EEC7200835C6310BAAADA3EDE2C2328D79F37433771EF659A3C3850CE5EF4B74FAF859B24C130185499663C7AB4336020707AB0DCA7577A4DD4B54DBB64B7AECE5EFDE35483E1E0A87996633AE2B91656DAE59E0E112360103D326A1EFB1842E2C2CD0D5AB574562E34B5FFA124FEDA621B548A7264E21B6468C3E5C424F96E2A4AE1F4B48B4757C97FEFBDBAFD17846862D95D106E0071BCE2701DD8F259D7AC6231A6211F53E9C2982BE67750501864C6BBF5028F70590734D82B4B5E9AC050E0AFEC583B4AAA6936E3B00DF466701540B2BA2232D4067062D015A647E122FEFC31798540B8A1448C126D7C35A1E9BCDBD3BA5249667094D6CE88B2FBE084F5813E73FF7B9CF459E3D8E90543431541DEA9CA57E4520891AAFD43DD8C10FA96515008E8255C62A090762BABA50E9ED1C119B04F6ECB57628A29ED1098B9FCF1103130ABBDD41286C0148CE6A5958932D031AED3BE4E501A01C7FCEF3631EEA53B38DFD2C475421ED34B2BCBEBE2E58D09EBC7CA150D01380D25FC235B8E2FF5D56D070B324469F926E515ECA920B7D577597B21993A646CB20FB88A4CC3C5900D60B351A2D366828DFA2FFF2D66F930E1B3B5A3092671A51213B44A5536308330D91C098C7B55D84959DAEB9016202A800D3E91D135A134BA8071320B38462F5EC20A257EAD6EA18107B57EA39A481434FCEF5B184B2CAE7F37991567AE5955744CFA4E9D260F50152CF29BCF1EA09214D2226C7D675B3D82F6D3966611F12EC428D4F5EA54FFCE34FD27CB523A8124BBB0A63DBB64ED06AD3A4FBD5769C047645B26603CC08444E82A701160E4C8EA53F952F182ED954ED33652007625F1A0E93E1E48FE69400A87EF3E64DFAF6B7BFBDD55945A9B85D4BA8D4B35769E07AC98E3EC77AA4DBF77BF68EF919039BA652894970DDA0BFCA5B69F587CA7B2A71641E7582CFCF5112DB3BF7400D9F01F537365B4AA64DD5CA6682148FDF0F1ECB23C4D2FA1529735494A8F26EC7543686137606307D4E9453AADA06EDA1B06F0E5300EA059B543E0170C37E466BE0E785530C628A17A5007D7AFA698BE6FB149794866C9A9C640CE4C19223E94C7412CBB38472A6BD1FA011D0BBAF420C62FEB71380E97D96BE6C362BEC75F2D9F4766B30E06E527927653F37ABBC17C016C78427609BC9120AFBFBD39F86347ED17FA4282722F6127D24629F60CC93BE4E9F3E4D972F5F7E04D06498761040392BB593CA272B5F1B5C4FACAA302F9B497E1093FC3481AF19363DA83CA495C632D5BA6BD4B2EB6423220A409B948C4F59D0B5FC08C054E5DE13137DDF8F73AA3ECDCEBA8F907A5EB2598F8AC547C1DCB5CAF3831C92AA647E161EDBCB975E7A897EF4A31FA1C7AD9E0D4D68D35E2474275045E21740B274F2CA1A92A651FE36F17EFDB011EF2B5BC2DA34F58A96678756A9DCCCD00A8F9CEABA289C585E06706341CFE6278B69AAE0BD3D2DDE5BFA2E458FB48426A5BF24915049DE3DA0216DD8D0ED406589611013E9E45551A3E28528DF940E231F9754D90C6A7A99BB3E0467C4C51188940C43F882F1F1901CF9D12A43C3F0117EF6AFCE5377E93FD24EA9F7F081975F7E590C01F338FCD0D090B04736C068996D48AC24220CC7B3A3103495768B3A40126ACB91D0575F5CA3C5F290A8EAD1141FA163578476E55A06E02A22A00B0295464B6DB29D80E6AA63003A5D9A13F495BEEDB252FD636AA28CE489EA15EE34FECDB8352AE61189FDAC4A6385C364AB5D48678793CBC4FE71CBF3BD06CB8726915222A1BC5CB870619324B1FA2FADDCA3A5B5FBE2C67BC1626CA07C806B992E19232A423A80CA794ADBA7B7EF3E43A1E8729FE4C0A3ACDB45A808873421C731BC287223AFD0A01051545B6226E3C759A0009DE0D053334BF4EEFD5901DA538796E9EA6294473D3ABA8E30B424809C28B6A9DECD90ED45A988E95287569AF9C8AC1D536966BA41377E3E429D9C49E5F009CA1D9BA0B25D2073065AB36A915F02EE08AD3F0CE1A8A6A6DE23AAD147CE876EF7F08124AB54383D442EA473BDE13C62D3C27B73347FA54AE77F6B9C56FEBA42C77F6D88DA771B141890D68B1F4F4952BE2F0D0A57277AFB23B95842713F56D5A3B99F82D75E000FB63CEABC0D2A742C6A37BCD02429C8529091A958C17107925FC87379147DAC51A5953027C6BD3A8E4AEF3D98221AC3CD8CF183D18628A97FE1FFF4F353BD7B5DE4EAB087EB7700E8239192BC5BA7242E0C638D55EB57B91C3919FE0BB7499F8522C516FD8068AB1868874B2BAAF4688AADCF9A3EEF05BE48A688840AEEC7ED4443D63C65A2FE50EBB57F702347921BA97965394B4E4DEEE9E7BD9F1649F1B7BFEF8CE6D199A91A15330E9D186FF4B6D14D845CFEB877DA9478F99DA725F6DC443C769D9630D023AD4899A3E3D446EF1B47C6A8AB95C81F1EA6606494387F255276BA021BAA88C2ADE41A7EEA1ABD1C666C0A044B30647AEE4B15D1CE83C33DF7F9462F9A9A3865C12646A869C3014DCF767B9E81CFEDC8F31A3877157754017BB9EEF7B6D1C7C370AF4E89FA158A6D57BD1C0D371015A062395D8624C5B69455B6749226CF70439886DF8C8E8DCE8462C493ABE53CAC9C8EE3CF1C19CFD19D95E6B60EC68BABEC84DA03C4EF559E8C23A7807E22CD0A49E56575BA48AEAD88AACEC65886E42C4EC494A77D36436159DAB6929E47129A4B1AB927646AADAAE41E8BB634259288C1D631F93D8D7A6AFDC2A40DD3104B5308F55004403251AF74308CC774C22DC318622494879F1512A585CC1B3310D1B300A369BBE2869392C5C48B17331A087B3B92E06033456A981B3FB1DCCEF5F61D38A3D5D6C6FF77D6467676C48642E73F5DA31FD68AF4F473557AA3764C6C57BBA2E82DD8EB98D2D629353BD6D7535CAFC9F5F2FCFFB51B0FAF74D75BB7D01D26DF136E1CE62F04EB818CF9504C9F2BA9B16B7BB2E7DAAAE7F8998CEC8F3CFFE5E9AF59CA89F87ABD42D91E355A376D7A62BC4077CBCD4D3CF497B9F89A44EFD20C79D0B69FA5B691CA47D2B927094D5277715DD3F612EA47548601609EE9201EAEDE5F7CF3C677DF7A0DBDC84ED3E43AF6F48F88EDB20A64F951C545F6B1B95C38FBFCBF34BF76C78AEC5DC8A1277F2D4BB4E750A867D135262144A1E726342E798D067A597B158364B411244FD64802550B99E971AA368CAF038726B1C27174C7D5622C235CE4C25199A683E03B029ABFFC49F8E1B333D2D4F1D34E5E28B98FB05581D9084CBA3B4287FFC7F744EDFDDE543E97CB49ECEDD33674ABA78F9C52E46DD9730B2E1A8435B45B0788757CB61B3F907013A0E0AF8C2927C95C9E2AEA385241C64D7F627C5D48B9D975A854CC8901B44ED7A6B19102359A5D5131922F64A959EF88DA4D9ED33B3C94EB9DCB66756AB64CFC7643006A5A0E62F00CF8B227689391D5A8D5B6446D28F7069F2F15B3D4C6311DD1D81B35E7EEB393F9C9F3B3E23E702D8B4686F320F70EE5C2DC746A32433808B117CF0165D39948D34E2ACF0EA66020D6755CB27C1E4A08ABF8D216A2A8363F3D9CA7B9247382124A86EBF3D8B4CB85ABFCA877C7099A1CC28ADA288A6AA458FA1824B1CFA5372A0FE045C72515C77D499400711573728EF7E5DE754884C55252734551218622C5C7E2A11BDE17653DFC594572C42C1099EB0BE2CFF3F554418EC4DC299E8E93DCCB5E22A51DBD3C4BA6C69973DB131E7ED9E6949B5FE62A47C4E7D6D8D898333737E7F7A11BCAF8F8388F06F02CAD363AAE2903147E9A11DFA4E76B889C140194E1F988B7E1B40C55D85503CEC940E749C2612A62ED9DC3563734711D461EB69B749E992EA236FC5600A3731B9C67705918F8BC9F45C40614354DEEC88AE2E9B829EE386ECBDF2D988C248BE7F7B3B51A18D0940D957702143E26B8B5DCE84475C69C980B03D0A0657EC63DC04AC00CFAF1B742A1C0126A73CD3ADAAF47AFC65024BE31CFF0C9D0A3312BCEAEEB5051DFD78413D27183D98C262499EBE319102020CE19D81A862B40E6EBF8BA2FF6D9E24027C43E5F974D054BA1E1ABE218E746590B8CACBAAEEA8AA7F14409362186263A49D85B856C9EC38AC53B74E85030702C9F38A59D9E7B17DA5EEB8DDFFF6FFF162ABC085078D26C1DDB0E3E67F1435D1330B7CE93649BCAAFBC989A9AB2B93D77E0F53BFE4BDDBBAE0A530A03E5AB6160C78FDC0F35493279AA9C2A0AFDC8E267E972C52C185734F309F2A345C3CD201524E9F036BEC495BBF8F9A1021B1388714C889DC741961A467714CAA1AC047C4C10B850BA75B5FCC36C9E563F98C97E0C47D056E37E76345D771717CCFFCD4E3693C978F18CBA70A0895FC9A42F2EB1DF1AC3A7F69907D501087BF4063FC3997B113DE802D09DDE0F22C684795E7DA552E9A2D3FC6F7EF3D61F27EF1F4957FE6DFDA06118D236F3A9FAB597066D77F34AE56AD2E9EC84704FE2951D2C246CC6262727F909C07BCF87EE1829851CCA879C71EE0208B687F6EAEAEAE3C04C9EFF1CA0A7B9B837AC56AB3C6B4D761C478E1FB3210AD01EF74CE77EE7B73B96CEE5A686C5A53E15DB8F743C1C91CF92C9606E7DE7C9AE014D48EC63E679720F72EFB9102E7E8A83074003DAC5FB401250E3D708A507A7F83D4E8FFD7DE982B6C70D890F9210DA925C17F7F0C4134F88DF094109F694BE4BA642F32CDFC73D99317E92838B1EF4F9450334C0CB5592076A6F158B6488763749F0BFC3A5EF0BB976936D12D39A795A34B62E9CC7073BBC258C2747D86C67F8FD4AA997560D3AD364D025F8A86BAA4EE9B16BFC99BE82B22B40799A3354D8639BF8AD6F7DEB7BF3F3F30FFA39A672B9BCC8337421C90EFB13FA157ADAED20BDB7A336EF4205895F1200156655B6E1285ADFFFFEF75FDD5AEC70FBF6EDE5575F7DF50F00BEC56D171616F6E55BBFE45DDA0A7E76BD078A62B3FD7FE59557FE0FA474796358D50CDE7CF3CDBF00A8F719746EBB1D813F00340695DF37C78F0A625AC4313973B15E2545AB65BFFBEEBB6FF1393E9EE76912FBF49D74EA6E6C0B7B7880C412E7411A1D381D339D168D09BDC9CF67E277D5C56DF7E5632F772DA15CF2DC6EB7F9D91C1C1E76D380F2A323002A3F4AC2E16731C5E5D17400E80E0B3FA884A303B69100B4DD6C365B08135B8D46C3E1E728413AF9FD4B0ED3A562B118EE570995766BE6F8E17F6C22106F1BFC12C0E1E1E19142A130542A95F2333333FA3BEFBC73BD56AB35C7C6C6ACB9B93997F6FB7B3D770168F20255B55EAFEB5C34060AA5C549138FDFE789C8C806C56287E41FBC79760050CF9D3BA740D5C5EB7D45761891542E97F3D3F9CE0340070335BDA6F9EABE7E2FF29E004D81BA6D64B59F97BF05CB08F82E5A1304D50000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (66,1,'Notebook_(128)',0x89504E470D0A1A0A0000000D49484452000000800000007508060000008661E9610000000473424954080808087C086488000000097048597300000DD700000DD70142289B780000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00002D244944415478DAED7D098C25C779DEDFEF9E77CFBC39F722B9BC564B522B5214098781144BB148D986AD58909C204182200972208865048265C489A5C45010045060C7B08DC876C0F8889CC48865098E1C03146D4BB2A88006143A14459A22B9E4DE3B336FDE7D7557FEBF8EEEAAEAEA77CCEE1B7265CDEEC3EB57DD7574FDFFFFFD47FDD5ED31C660DEBF3FFDC6FFED037805F18B81AAAAB7E13A66E2C75CC72CAA2CCB645FE1B1FCC5C2D2C4E36828CC71AC5FE36E3FE9D8EC6B8E7B98723C6BEE8C79748CDB3E46FAECFFE88FFCD0DABC34CDC0027F41C0F2A3D1105E7EF925A8D5EBB0B37D6CC9849F9FD8119D66135B678E85891D962F97F0F3105B1DEFEFED41B7DB866DA4473A97AB2C42D305192080A7BEF407F0BFFFE08B706CFB38FCF88F7F2C1A786C4274C95A8CD8F3113E89D849849F4D6CB3DFA323F661094F5FFEC487DFF8CD5F8572A90CEF79F7F7C1EDA74FC35219E07BDFF33E387EFC046C6D6EF3412F4C6C9D986F5562DF00E197496C701C7B290F3EF2A37F1B3AED161C3F798A507A890C80A349A53370E6DEB3BC7FD1193B24B1F5895E94D8960D722B105B6FFF90C44E528DF5FA2AD46BABBCAF8005CB63008608C03C8F8FF4A92F7D053A9DAE3691863298A3B159575AADB278B961FBCC519ED48E399639AE37CACDF349E553EBC49A77CC284BAE57AD55E06D67EFE6C78B917F7123108D4CD179B3D9827BEE390D35EC3C92206368C6ECC625DBB415F452BA863E01F391E918EF373A0E38971333063E0B8FFD80EA05420A8851F1985F2BCBC3E3B0BEBACE3C1F30F10DF25BB5C5C7A3D795FD86FD69654138061075AD73E1B76CD7F8CDAF8DAE01ED5CA0DDA3BAAE52A9C1DBEE3B17A2B1C7BCE5AA004F83EC46630DD6D75713A1D580EB245873C03527021A3734893E1DFB82407E8065BE8FDFF4DBE7E5FCD897D7FAA29C26475DE3FB8AB87ED80E2FE7DF20EB92F744134705C4E4A25D864C072173B83EA2DFB05D6DACEA4304E36DE9F57C79AD7E9D7E9E99D7848C1FD86DE37DE2F869E28240C87ECA0B96C9008164004932293537426CFB58DCACCF6F2C24309F68A6113ECE044C27B63CCFA533BC36106D06D135D164B28898EADAD8357162F93623B808EC0721EA24F515125F49BEFD3118C10F91493181A20DCDA3E779CB55019E06D14430D57112E11731D004744E50FA83B894AB63C63469F64DC26AD7FAFAC46B84F46D424934600EC926B52208E89BF5922437C61026B195BA0866B5E5620466F7A5AEF1A51A61BCFDA53280D2598A726A108721B6AD3218530414126E1333D0A478AA646B13EEFB09C4502AC392667BD27DC9684C631CFBD880FD29C7CC375140D4F5433B661E26306C9520B241940AA0236F996EA04E6CC510FC66E622B6EE42994C202053487F04E311014262C4881D97E618E1557DE6D0C39AF4FBDAB58C994CC089270DD148E5B8743DE3689128E11602987A3F8277965087B1380270C997311A2E945E6AB92A806926BFB2761721B66D249A926D4AB44E6C75CC12245B27A009E352FA2C1837F4B8AF082824D2D4D981A577FD29BA9CC58C3836831158A2AE8F5FCF98D5170B42151C48BDECA59669046AC416C46361C7B3086FB87FCA704920B241405F23964E48DF847B66780C964D2021D80F2257521C9BF0AF540E4326E06D69D7070BD800B6A48692CDE640839069E2926FB89CEA5A4D05702F200896EB069AC40E64C7B3896D1FBBA53C0821548753DF926066314128E5CCB4E299AE4A34222B379105F3D802BE110F308DCB20A6BFFDC08C0FC419C6D2F989BADEC1005AEC228C4348B51CAA80546AF90800A1EBA119810B84466D3D6D103E46EC2091F08126CDBA5E8FA45C6FC38F4FB22FA5D3E1BF27EB70531DC41082457DDAC476E97DE630F8981584B283583AE308006032A01521C1728D40DD67971DCFB3E821021781A6EB1D8477C0B80AA6D806986F076234A9D583412A52181DEBC4888C3BF3589378164179485487F41B069A331269790F9A356F4BB6CD003A33E94CC364EC5F451E17A4FFA22A00C20E23BF3D986BB52B7010C0B0C69925D931C3CDD4DFB67BE60AC82886D3998039D0454813B99B7162C5022F86AE9E6DF4457A5B0B11BB5C3D3B546C4B7C603247384E16D96342C8966E04328DC03A0324AF7031A647C8148C27C0AF6FC3755CCAB97433DF72FFE2563A633282A8057358CC7A8F7EBBF4B6322E231BC374D76C7D6D33811DFF9FC6443AE1151A4C23BE5203BA11B85C06E02E07335482E2BC2426E037EF20BCEE9EF1897111DED7265C0B141956B2AD3274824A48F775D7CE77C5DB7D53E2FC6466088238F49BD7BA209F85167B1203B85446B4E89320F9A15706E13270B0DC405004314C11D78A0EEA6BDA4C412E33096FBB7026519564478457C121C355B35CACB88F1E98923DC5620F9C61578D309AF4334B25D8AB8371E3CD5E2164A6CEB70C3F66B569D4B1BE63B481651B814C9378197F0E8CE8A0B60660F9C2BE15BF3708EF33CD555392ED27125E197491DE654EBDCD82C8F7E7DF8CC5092FC3CA4E89B70D3543D7B3B82BC7125C3DA7BE675397AE23A68AD02389F8A0A9E280B1E5DA002216207F4360650569CBB986FFCD346207A1FEE6019798F1E65BEBFC0EC9F6FD7072A20822733380158767FABABFCB708BE97B0723D8019B90A00ED877187CD1DA3EB37E07CEDC02D3EA6753D433005B2E0348C8D76027EC385C226631BF5C4C6A145D13F01EB7DA85CBA507762CE8F6FD702214E1FDC094AC407333A7AEBBC7023091D168C60A024D02592C30E4D2DB2E48D763FC2EC2C7247E01E21BE979C1928D40B5F810ADDDEB6E616059ECCAE562E17ABD0AA6846BF86AC995E9EE1D3342B581A643155CEB913C97DE7546E094C1A9C3B28B491225DE91F5E330FCE23ADB36F6E2BA3E66F0CD497C3B46132CD70D9446A034034805840C61186BBEC3D717D01FADAC69411EDF541531374CB3B623C233B79FAE196B2A4DCC1DB491710939F13EF32DBDEE0AD4987EBA0EF14E7F7F1E468845F698561EA580CD4A9F0CC2B4B5252F07078C69C11D08AD74C64CC32C72F34CC2C7247B4A968CD34A4FCA9A49CC037410DEF6D50DA964B1689D2B049BB4B8C362FA7E1E5D6FDA113A13CCA3D385F5CFCC70FDB25480CE617493139EBBA741318B96548D45182B4D2AD0B275ECE5517F9AFFED6B4112CD88F36DC90E587C793546F864372CE9D895083A4DF7C7205E259926105F97FEB933ACF595DAE51A819AB509429AFDC984737C943861E9548BD811FC4BF7CCC1043114B08CB199849F12420D2CA87745E39C04760464A2312B432E9E716C5BFD49869F6D442EF4A7858297EB068646A0CCE143424CAC6CDB100994B1C63D0093F0E6B132C67C9EEFC72CC23B17631CEBE6E6B55AD086B13844C75C34795FF6220D3325DF6DED27196F6EA9662C39B07328E2DB6EE0F2034181B201B9D4930A60D22FE746973C8EDC30661886462C5E115E4E8CCAF73388E94BB5E274F758DCF50B9283327628767624CE8AF7BB8C3E3BCF3F26FD49EA408DFFC689CF806979014B8E03E83901DC7A4715E08719377AF68D06DDC65ABA65F42544E27483CC953AC5662CBBC6974FAD85166770C6E587C7E3EF26E4EB0C902CFD31B8D7087F23C4B7D3F596BE354C6505F14E4905C4D2B8584C7FFB52DF33A6790192F089BE78C2EA99DBA8630E23CE659DBB25D415D29DA69F5D8B3B86C433369D092CA95FD4704B7203812DDB0B08022D2F50A475F97E6A661C3ED4F7464E9B9FB870E2DBA9528C4DCD9B635A7E5C3CA6EE32F41CC659C2C24EDC804B807F0713C4B77C2D81F8861BC860D1E616CE090C8DC0D006F0E27176630DC0B2D635FD1D37DCA225DC64974C23A0964E1DD7F51A4C4F0DC2CCCB00B6BE77BB74B1EB0D23310EFF37EB2FCAD5583602A8E0845AC34F4D0CABD954037E14AB772EBED81B33AD689CBE31D2B757D484959FE8AA4D594B8F056D12FCF2985BA874B5C3784B74F134265816F14D15C08E4E05885D3B307B1935B651328ACBC7207A8AFE8F2C73DF195173FAEBC012C3B549C69B4BF7DBCC054E3D3F1D31D832882F697144F9004C8B5031340003BE5DDCCEA563C64E1913BAC375795FDFAD635BF3A67D1033FA9CE1589765AEB67A3367C83766F91B56BFBDDDDCA1EF8D3A71048824DE540937FF4FCF0738222350C08D3202FD78E244E22E187710C645789309CCBACE289CCB659B06D55676AD4DAC443FDF70E12C8488C1FDB2896F0782961C0A0E1F6AA0529121DAA51A58926D66E2306333648CA086BE5793E986785DEA8125A0438CF00E98B63759588B30361398EE9DC9502C543771465836F143DD7F887E320B028DB148418619688B1C4ECBDC09DD6ED8379E8EE15A4675847F67BB648AD8BA51961C98B10334CE889DC6044E83EF28891FDA00E60EA1A57A013201804BB72755413C0863AEC5BBB635B977C1C4213BE6FEB129113B9B0182084D42C94D4CC470C33FB376DE305B1D2448FC51105FB701D8B27302C30C20A502C887078DA87E7C3D3D3179C2159A0D92A36B494914B637605BFD717FDDA1B75D844F24F06CE23B1337970C01A167B2FC4860E40570FD0EBA5BC6DC615B437FB358E64EC098E9D75BF17AB0176A5C8467A6CA5061D118B1020784CF88E0E976030073067ADE34E2DBF900CBDE1D6C3C1184591B2BA6866399635F9BCB2F8F74B66A3F665527ACAE25866413DD335B6F9B718138ECBB08FFE6135FD7FD8B2A9C43A585AB2784FAF6E60B2D32C7021BE6DD8994AE4C1A434FDBD9B331972B705AE646C42EC12F4F6282F8824EFCF16C4CEE920A09FF26113F5C0D60D103378E260E10FED6B27D753B80262894FC08EA59901480B16302C991B93009D2E1BA19C61B3037FC3B2CFDC032DC9843EA9DD00F6F36F1415377CB4E0A65663E40B4F923391FCECCA40DE6600287AE76E87E96147A75A0453C6AE75613519B2EC227EBFDA3B1F467A98023080507563E801FA6746B811E434FDB51B660461A95236CEB20BCEDD6C5023496653FD5E0B37DFD298CF05624BE1D0A66EC08F3013802F80EC9D7DC3ADD1A8FE5CB057AC42F49B2A767DF44EB13F6F553F4B813FAE725FC5B8DF8DA6AE0D2E3004C7F549C72FF7C737F5C109890EEB0A65D3179F7B26A1231130CB8847A497179B7BE4F420E786B121FACAD61FE11EC0B502921E4054CB474AF242460D6E2492C34EB588C09B467E0B04497CF45D0B8DF3F4B7F27133EE9BAB70EF1F5743D26D5F2D18482D51AB46F1B68B6E4EBBA5CDB15AB1327167889E7DDE93989332DF82984B763F6E074F9CCBAF01627BE124E1A9AEF2F3529D4DC0CCA3786E85140E6F6EF23D7CED2E7CE0596B8BF6D4B6CE072D36270ADA3845BFFBB24DB752DBCC5890F2CDA1A269E1EBE240650C40E830F0133167B18E8891AB6CE9E6298B9883DC57D4B34E262F03D2FE183309072CB11DF8A04924DB64415C0CC7C00A63D965D93F69011F4094F78E2852EB56E14B0966695BE9B01F78A09D59EF979243D16DC61875B637FB354C011E504EAF90051F8D76DA5CF5865B3D7DD8125AEC7DB1B28E68DCF27111E9CEE9DF6815B87F80A8DD9D1A8002D12187B2842C24A5B6292855B1500242FCCD87A7E26D1F5BA1027384C41855BE52FCACE129ED9728D40ED91302C30F7E839E13DD0E09DCDA1DFB5C7D0B81666405F7CB1166440837F988A00DF39C48FD602E452F532BD8070F32668A1602DE72F69D1244884F4A46BA64178E086EC297A1D120C3E606F5606CFF26C007FA946A0F68CA014CDAB6F46F2DC1B222C29663095095C126D246418E7674BB953E72722C0AD497C3D13C8F397FCCEA0E8E9942928952A90C964C395C2D8E4AA90B1A583F5C7994513CF4CC90C8D30701FCB97E4A97717008B1E57A7B707461D300C3BFBFCADF8575F6D181B4316FD5B5805288EF3F01F756EBC3FC0D24BCE332CE1158D8E972A324779E24DB229679DEF330448BA98CDB866AE176532FD6B0EC24C7979E5ACA1F78783105D177D75E4A11F171FB089F59A764DAAB4FC0193EEEED7C8E9EFFF5DEC35EED1CCCDF37A1A98F3D8E86B9157C23A8EE77EC9F4DC6F484F7E133ACFD35CA60AF0B528E074C23B88ED20FCDC6F19D3FBFA2EB16342139BF3E5D9003E7F2FDD7704B16710FEA6115B6F7FEA4BB3E72176125AEACF685E2A03D08B0967BFDDFA50C49E83F0DF25F66C35B9D4BD81AFBD7EE145ECE35EB7911637DA98F58A70665A4687F86D5A4BCC3A79B8DF36A3B97E43DCD85DF4B7E3E91D8BBB9D2CB9441E20407F71690CD0EFF57F17FBF9D85FAC49BFA5FE86787B1F5D1E030C069FC319FCD87727FD2DFBF7EF5F79EE999797C6001F78FF7B5FBA78E94A9FB16045D795C990CC1C30C562B0655BB4DAA54EBF5C7F7BA97D7D2202B1B89FCF58DC696756BC823999DAD6DBB6203884406FDCB683A6AB3AD33252B12EB36386C679B750C8FFEEA21CE32D229D3FF9C94FFD1A5EFDB7F4A85ADC13701983F13266BB8F2CEEDF3336C5DD89C50458A2016A8ECBF166538711178D2BF99CCB0DB6C71CF78812E6C2753FAEBEA6CC0F7EF7F0E0EFFEDE7FFFF5FF76D319E0A77EE6DF6DE1D725ECC8632C61420CA67058D2CC65CD2633879B612CA6704D888B0113194697F6690CE32E8B334C32F19219799AF024307932538CF0BBF1F9CFFE97CE4D5501994CFAF14EB7EF8D4643235E1FC6E7C9FDF040CBFD13BFA387177A722BB91C6810C5E00319D7A7870DD0F9149AB2EBEB8DE98193F9276486442E1745683E2E5CBAC09FA3E4B9A4DF7323A9C7E7D053CE5DA2C745475A13502E1573F57AED7BF1F0F3379501D2E9F407FEF8AB5F838356EB48AC9947DEF90ED8DEDC7248C7F4D8C374145940B5C450E1704CF1FAE58B70E5EAF523B30269BDA6D1587BFCA632C0BFFDF47F4C8D46E3C715F149420BD91CA24286900132D90C3108F47A7DBE5EA07ED379FA3D9E4CA0DDE9410ECB33B29C3E5ECA836BBB7B90CB64453BF4498BBAFFEFF917E0856FBE18B693CD88EFEEA00FC3FE1052A91496C97EB05D5A1E6EB73A7CE2B39914A4651FF4D9DF6F625F291C374732AC83EDE1A7D3EB85B905E9748A8F2D8DE787F4FCE3F124DC0C92CDA6F93942AAE1700C2ADA8ED3108EAFDB1FF07951DCA4C6D71F0EF95CE91E118D61C27CF002336ECF25D913E8E8799E5187E68A9034E5E17DE031DDC3C49FC8D5598F970DC723F2D468D1E607B0F09FDE3406C0C979174EE26A2E9F83D16804C55C1EF29902F4BB1D68F5DAD0EF7590F81D78E0C187A0B9D7813612957E5379BFDB863BCFBC0DEAD54D18F4FBD06D1DC8736DD8DED9864A690DE1CE837EA70D07B2CE70D883B79D7B188231F0DFEDDE3ED669F3FEEE3A7B1FAC5636C4EF36F6DB156D1D3F7502D66A1B3041C2D1EF0EF643D7D7D76A50C3F27C76458C13C7D3EE35F9F1E93367A158A889F1E0B5BD8EB8970D1CD7DAFA6DD8D628BC8F6EBB0DA54A09B6D78E41BE5084E1A0179E0336C131ADE23DAE7362A9B10E7A5D585DAB43BDB2C9E771321E8B7358278F4CBFB1713272E0657BA3499F8FB7902F86C4A7FBE9F55BC8E82B50AF35C23A9DCE1E647345C8E70AFCF7E5EBE7E1A08363ED0D6EFF1B7FEF9FDCF95F7FE51766BA84A979E1BFD96AE3641524B621B7912422A186C33E3FF6272398A034D18DF073FCD383019ECFE70B9C71A86C20CBE998541C3D2E5EB4D50FDBAA552B14740ADB19A836F1BC871260F421C7401B2288F8BC4FED9CEF8F2198F8E178543FD4A698F87EAC7F7A023AAD7B4465A2BFF178C8DF9344DFFA3D8E50EA5442C6501BEB60D0E56D89307A10CD177E469341B891733C1E85ED4D709EE8B7CE18BCEFE1087C36D6C2F2014789D1A81F96E5B279FE7D80CC9A49A79EB8695EC0CFFEE267BEF6875F7DE6D12BD7AEC2EEEE3E1411C272086BB97C16E13107855C16F22B7978E38D4B789C871CFEE6E7F03A224CABDD851E4E522E4BE539E4FE0CFF1E21C1AE5DDDC5EBF1B7AC97CF67A0B0B2027FFEEDF31C42F3740E6F8CCAA9AFDD26492FB645E764FF796C8BE07077B7C96134C3CBB02D6C8FDA7AE3C22501BD08D7BC0FDE571A5AA896C6A331D79BBCAF7C1EDB236845A9EB1351275C4564F3A23D6AB7D56C736375828425F8A73E8A78EFCD568FC3332D93FB93A83DFE3475F9728DA8BD2C571BE3B11F2EB2A9F68A851CAA93311F87C8AE8ADA6369847A4873759649D19CA5B0DF0E3F4765748F4D44315231EF7CC7B9CF3FF98B3FFB4337CC003FFF99FFDC180D4757BFF2CCFF495DBA7C059A074DD844A8EBF72308A4CFCEB11DC8162AD06B77B4F236C27E171E7EEC7DA8535958A6CEDF71D7DDB052A8E3EF6ED80E41E436B6B5525CE53A382A17DFF73FF808CE584A533178AEDF8153A74F43A5BC69B443DF9B9B1BB0822A23EDA563E7EEBEFF1CE4D345E33EE878EBF83634D64E7194E86BE7CAB512AA817528AD548C3A2394E8F59D6350AB6C186A43D429A34773CA80792ACF20F14AE506948A9508E6B17C3246E62E95509D6D49B5310AC7450A7B6BE394810E9DC10134EA3BFCF768D483572EBECA8FCF3D70B65F2E96EABFF2F39F1EDD900A40AE7C7FAFDF4B954A4594D811E7BCE150874001831E493BEA380171BD10EED022E5868980B29E518F0CB5C17010ABC3131B2613AB8F3E22011A68E8860EF47209DB5427EA23EA879061E28FC3F6071A0CD3134C06430DFEE53554673C8ADFE318C74A46973DAE2EDA15942165A80DF9194F861CEAEDF6A8AD893F0A09A9EEA983F00D2CDAE5C355896C6B826A96E698AB0DD91E19ABA1347B844839AE1A5AADCE0AD2EEB11B360211369F18224C968A2B28697D0220D4452328D58AB0BA51E5163C417B0F0732E80E60FBF816C2D7490EDD742364ADBE76E10A87CAB5F53A1A2D1B1CB6B308677BA81AC6C8F1C5321A378D0A4219C233B645CF1EBB72E53A6FA3586AA0BAD8E230574623ECA5575E872CF2ED4A310FD5D5B2501FDC3B1842FB609F5BF1D5B50A34361BBCCF2CC2F0C58B97858EC46BD7B1BD6C7E07FBC940B38B44458F829867A54CED95B86A234B7C77FF9284E514D4B09FC6D62ACE41112E5DC53E3CE16E911A29A211BB8DE31BA05D706DF70D4990A8BD14DED3B5EB6F709DADDAA371D37C5E6FB690885DF9DE059F433AB517A0F57B7D8F620713A33D9AB7EBFB17D1E24F7322A7B9D79282EBBB1784A7802A288DAA40D806233A4F76C0970ECD00BFFAEB9FF5B091C7C56B5D4550A35A2CE104A07B83D6E65E6F3784BA336F3F87EED9089ABB1A9C2234DF76C71D5043882203ADD58CCAC7A301DC7BFF43904222F551051CECED87F078FB9D77219C3644F97E2B84C0CDED0D64960664A87FFCDD6AEE86E7EEB90FBD83FA263FEEB6A89DEB42351D3F06D56A8372D879BF4DD91E19ADB7DF73162A85350EBFFD3E8D41B4B773F2046C344E4815D0460F006D186CAFB65A8172710D89570DEFF1605F40F7B1DB4EC1FAC671547958A72FCFEDEDE1BD57A1826A238F567D382FA8269B7B4D58DF3E8EF7B9CE8D3EBDBD12A98DC60E27A8AE862018613B15EE09104DA86CECA37B9D2F43B158E648438C4B88CB1902E0FB918C3F71681580D2FF20927D8B60A52FAD66144F1302119AF8FB7E7D6658D30309CD6992688273AB7C7595DCAF5E649D6B6D920F3DE46A43D511B0CD5F48155AF4FDC8ABA073811783662AE706164A83EA577D46DC73F043B533D0C6409E0349A6F21A54FF64ED937AD055CD407ED33D8E4603D19E767E8C563AE5EA8BB6A24F178D350A7FF2310CCC3A1384776A6BC4613E2AEF1C1CF0FD985C6DC8F954FD2A8F4605A148BD8E2693FB7FECE3FF72E7D0084010427A9FF47FBB2342CB43F453098E57D1BFDE4098CD6609B64AF0FAA52B50A9976075BD86F02EA0892612E985FE2A1A36F934377AD2E92DEE1D1410C2CF5FB80CB974162AC8F1ABA41E78B02785708E1281F09C2F22ECA3C199CE6C713593C5CFC54BD778A0A78C2AA8BE5EE5019D0C62726730E6129E45585E2DD66123BD2E023868F15F454F83BC83C24A16AAB54D6CEF18FAD919D86F915E1F236C7A38061C7BA3C6DBF35055ECEF5DE7AFB9A136561BD8DEE63A4A5E05C77C1506A90E0FF6E48B591CDF067A073B3C204BD247904DED91C158C7F6CAE5125C45CFC9A34D34482C6AAF8EEDAD637BC1640C57513DF8F8ADB79747CF65AF794D30C878CC619DDAA380D70451E0CAB5D7396353608B826B835117AE5E13CC4E01A170DD82827268C3E1AF270FCD00A467CA486072B172784CD04CDCD8ED2ACEECC289532779E0628865ADFE01970AB2FEE973E6DC430899357E6DFBA0134ADAD6B16DA86079C091A30BADFDA8DE5D67EE474B3BCF7FB7505294941D43682E976BDCA512755A420AB1CEDD67CF41B6B2C2CB7B6D259D5DD8397102AAE53A9F1C82675229743D3DDEE6D8E97BA094CF0809A7F6FAA2BDED13C761B546D03C16967B5B1A9008B9456CAB88903BA4FB93E31B62BB5B278EC1FADA717EACB717601B2BF912571BD42F6FAF23C6B7B1B309DB9B27B947A5B7574311A6F9A471F7641D75BF8DED4D54455BDC08ECCB735964D8B5D51D1E9FE041A6DC88475FB98D20EC8027175601FFE3735FA8A13FF93DDC67463F78771F8D1F343E8668BD721710DDAF4EBB052D84A511FAB3011A8ABD6E17A5BD0DEDF6015AA14D3C6EA11ECB7082D360BB619D7D1E152384A049E16DE1B56D1925A417480E62759AE8018C78BD01EFBFCB6194FAA2BABE2FBC867E4F8CAD8D65ADD601F75CC895A22824D914A24E8B8F8FAB2684683586AE1CC3907B268370DCE43676B09F2B972EF1F0EF48AA0CDE9EEC6B84D70FFA6DD95E34BE0BAF9F471F1DF879826C7DEE06FDA1742307E27E657B972F5DE494218F47B41BB54784270F82CE295A903741F73F1A0EF927831D5220AD8848E2A5BC277EF2939F4A2D1C07F89F5FF85F1F223EA0F8F66B6FBC01BFF0CB4F421E1920ED797C558BC7C1F183E804D995120FCE00C5B789AB1086180EA8582EC27E67C4B791A5405C4B49A5740DF9BAED832E874B5546F58AC5027A0743AC2356CFA82CC5BFA99F22AF934AA78D3110EC0F26E89D8C261C16A93DD197070584E0D67E57AE614463E0708A3ECD080D575187CE8B7AC56A951B6362419385F5C88267D90222DD805BE6748EC64FF54AF51AD6E9F0C097DE1E568154A184E831E4A8A38FBB5CABF260943F09E4669BE87E0BE50A127D889EC3586B0F50FAEB70D0EA8AA7B3C9F6486590814E86365F1B40B5DC4741F9E0F73FC1034458EDD19FF9A99FF8FA422A0075C707D23C729643FDB2CBCB4AE801501CC047A89948C922376E7B15F5D988A26362C0A381305E0A08E385FC0A8E272342C56311E6240FA050AE42B5B22ACA27A23DAA5746A6A16822E9625FF5416DA26435B0FF3A5AF474FD98D71973F7AB545C8511DA1AC4707C5C746E24BE5790016AD80FC5027C5FB647E7D0A02B35B660255312F7E30FF9D8680CA54A954336B1FA84CEC9F10D7A2368ECAC42215DE4657CECD816A14C8579611DBBBD35ECBF80760E49AFAFDAC3BA748F2B850A4756EA27BA5FB4BBF0DC6ABDC211C00FEF778404F3D0135841DD5F08DB5B29E4D1E043BBA398E36A80793E778BE9ADAED5EA0A964D687570310620F78F8C3FF2002E5E167E748AA538C4122C2AD784B8BCBABE8DB0DA0EDD9FBE8CECE5560A48807559C73C57DFD8E106585F8B02D235C4AEF915D47D03BD8EA8576DAC13C818D753798086518EFAE130AFCE8976F345F2ED2BDA98C5376363B87B75438CA16F8E2143A1EC429D13975FAF8DA3B6B12D17A97ADA1870DC69945A7411297C6BDF53B9DEE048C1D590D616C5497268B006A96CAC3D422E8A8310D4EBD1C803747D374EDCC1A55DB53718A4218F0295C27F54E6A54420A98B6AE3C4F16D448C0EB983FF666E15F0FB4F3D7D3F22CB73DB5B9BDC25FBE8C7FF155CB97C0955409EAF7C89D7BB89B7856F6DADC32EC2320B63DDE4A6087DB471EC04FAD003B94B58D6A1FA685D5750FA065D8AC6F964EB86E71BEB0D68B6066269543E8790FA247BA18E93DF6F0FC5BB8598843BEC73ADB10AFBED110F52D118789B4CBCA1B44A9148945CF144B3897833097E089A73A5356480A1D60FC1EA043D927568B5C518F83DF167204CB89F5D45A62175C7E4B562A7F304C7BD0E4DAA13BEFB286AAF86E77A9D313F0EE4CBB4A9CEDA5A1D5ABD094FA611ED4573B4B6B9091D9C07F15ADD80DF2F04A2BD6A639BEB78F19E669FDF6F796D0D061DBA1E151B8AF51851F7EC997BE17DEF790CF6F70F82C168D8F817FFFCC79A732100C13F2D56542B2839689C5CBA720556B279B4DA2BF28DDF63F98D6E4DBE806EA2D82A2E5E113BE66A80A2992974F1CA95827C7BB8AC8303ACAF56E0A0EFA36B754C062C3C315932A1627D9DF13791C807D1804C91E1DF85B5A23C1118091A8DFA8A5A260B1F56CD1F5F83FAB5400B2944149E9F402FB9A20863018865CAA5AA7CD8E5448E71C217A68AE88292F6A409F7E91CA910BC2FB2B8D3E99AB8275A69E4E726A8EA0A901D045C7D857324CFD15C96CB79F1300DD51E9EEFB4BB50A1DDBD7E4A9B23D95E2607C36C005984755EA6B5974603428C7BC2999ADA2357B1847603F3858065D2015CDFDBE56A1BE9921AEF4FFE2AD974733100B90EB55A8DD28BE0A597BFCDA34EA4A746C391059728F9A9BB709A72689C1D8490AC60EC5DEB5B681B0411ECC9F3C710962A8DE3E81317C2278E532087D9EF1F0C5F30ADAEB15F53AF5D1368D7B069D788DF8542018EDF713767705D65D0E7B6D3A7218F2A601CC26F744FF73DF44E60E38C5907CF1D1CAC41195D31924CBBBDD3F7DC83705E0D2D7D1DEA1F78F8514073219A3B796EA7BF83B0BE0693DE24A686EE42C9CE66AB22EA28CF6D1EDB41FBAC10AA85EA6A0D2E5FBEC643CEB4B278D06A3F3E17037CF94F9E292303FCE5F5B555EEFFBFF2DA6B42CAC81083315AA301373AF2F9141A18456E81769B3D1EC449178BD8611E25A5C20D2E22C6088D12B2BAC33A9522ACA22EA78DA6640C8A18B648C9A2B689BB5384CF3C1F2E6DECFB174810C4B26CC5002582F07DF2F19758020B8C57DCD2A42849A5E04C3A5544B709A50DD1A986D679A737E42843CBC0644354CA68748DAB7C557180862FCA03ACE0F585420D6A7E89AF3B104A7154B4DAABA03EEFB4FBB2BD4CD4DEA4CA73FFC800242F83B797A70496121A74E86DE0F83C3FE0C136DE1E47830A5F93A00C2B0ACBE60BB44C5E8132DA5BCD832E9F0F1AF30ABAEECDDE015F86DF44B57AE9F2D51F98CB084CA733EFC52944FBADC0D7B23BC8D1F79F3D63A52E99A94C6C07C2081493CFAAD1539AA2D52A2FBEE7DFB38D1247BEBFDD168B8A98D6766C038117DF47A5C6AE32F8CC7A2CEC6F2B364ECF48EAF720BEF75FA83273F780AAB6A57E8307B14D085E7CC317B36ED0B3F6216CDAF5F0DCFA31D59F108ECDE3C7A14B696FD0804AA5BCF373BFF4CB67FFD93FFAFBCFCF60009149F2E7AFBCCA7B7CECD177C1638F3C7C84E9DC3796B9BB77FD3ADE74372149D3B5F123F9B906F666905A7D15A5B078637B2112368D3A72FCE31B44A7EDB84E4862A5C4966FBEF0A2A06D2643B49DC5003C7498D0B82B3BD775CEC514F1146FF7A6871BDB60F1C5DFFB02BA4AFBB147D0B87ECF5BA67EDF7DEF19F8C11FFE6B47B32964D174F7694C113107D9019F4E64806FFCD9F3F76632E93B92367EB8D3A61DCC70449B426C29217D3F409D9792E951B68BEB7279E77BC894F87478AE5D7ACA4EA1241489A3DC9B8422EFFECC93BFB1F20FFECEDFEC3B1940483F9B83E36630C591EE148A6E7E6F779F5BC58B1075DE0F198FB4B6900E1960BEAD656EA67033C03414393C5318ED16F0FB3D78F045270350F6CF8D6CB0703EA8210E4353206A966A71ED148ACA5EF9F6B779BA9A7A8AC96109ADBFF144FF1C349BDCBEA856AAEECD2133B6962D7FBFE15C5BCB9E7032C04B2FBFB28206E05F99DB0073318536116F068ABC7EFEB5E861967312DBF59673FBA3CE1173BD71FE3C3CF0F673B375B7EB29278E5D448CC11C4C715351E471A70D80BAFF3D58A130DF7EBA04E698014D4B650AFCBE7EFD1A2792CB888BBD9AD67A3AE93C6594D3F7E20BDF84773CF8D0D1EE379CB6197571A638F3D9DFFE9DDBFEFA873EF89AC100A4FF6F7887EBA21332278A24BB44A66AF9E08F7C8847E26210EA7A76400C322DD5A2AE560F6094D7ACADAD713B006630F9DC423363D7F292540BA1C07F3218E0F79FFAA3EDB4E7FD3153C1110A59C8A082471BD36470270C4878FC0F3CD5A847EBD81E8FE3C8CBE99CC73C554A411EAAC21F34CBABAB1DC49EE84B3E7E4AFC52D7C9DDAFF23FE3DD89F6E560F8791162F23239AF54C9A9608E68834551244FC561C45283B84F6130E861293118118AE43B743D31704F4CB007CD66D3D3422E20321AE4B48989F6C250989C2226D328A23810F3C43DF38950774E7310B62D13123C7EDF81783C179F05508410930A81B84A8E4F5C2F532FA8ED405CEEB1B077EF7D3106F8ADDFFEDCF7E0D7A9303AB6A4BF65B51D6FF6E6F5E3CDEEEC16693BECE2DE0FFFF00F9A36C0A5CB5752F34CDD436F3F038DB55578E995F3F0EAF90BBC6CA351C7F2B3D0EB8FE06BCF7E83121078F9F6E63A9CBEED385CDF3B80175F7E753659BC43DDD6E224F7DE8CB6932F74550932015C7D026D9A633EACFD490D2ACF95F8850F3E7015DEFBEECB70F9CA0AFCD6EFDC89768920DB439DAB70FFA0092F14EAF0F5F2D6DCC30919A0D7EB79B3871CC0737FF675B8F3F63BA056AAF1C450BE25A9BF0BE9A005274E9CE2A04D8908F4B77FBD0DCD0AC0EDC74FC1F3DF7A090DB4117CF76FCE7DFE993EB4BFF22D08CE66602FB709414BEC301E0F2EC2EE955DA8D0C2D064150E0E725C555CBDF4025C6323782077199E5ACF833F2792840921773CF0E845FCDA996F78413C9FD4538FBB30E3E7298F56E152371592FF22FD319C3F8FA52C2DA19E1E6210123294F296CEE9664FD2DF375E79EE9977180870EAD4B17F7CDB89137FA95EAB3E9CCD644E99ADA7A60399177FC4DF42BA6A9147DCA63C3B94CB6E44EB7B72FDF150C49196DCE189BB78DFDE94B8B6E74DDBE7C3FCC170F4AD56B3FDA7AF5E78E3AB5353C23EFAF14F9E6281FF7E14F2F76345CA2459BDA906DB61D1600920F2561ACBACF14CDBC9EDA5EC7A1EE5A43D8BDF7F886CF6F4380F5FFEB99FFEE9D65C3981FADF473EF291747DE7E42338B0C711F8BF0F47F1087E32371DEA6E68BEBD9BD853BC495BCAAD5404FD5B252130ABC3D8B59E199E3042167A6882AE1B8D065E40CF8147472F972F04A9543A00ED7C04C0DE79A4E81F4190FA527BD2FDF23D5B5B079FF8C427189B42E41803783208F0E10F7F58A6E440AED3E9ACE4F3F9125E5B49A5B2DB5E367D8252E239FECAB8BBC773F43C361C0EAA572F5FFA9484A4CB274EDDF6AFA5674C4101A66C08A68EC3404210EA358F7277E4790D25198BCA28E98756FD3CF5D03AEEF4ABB799F063995AE289A7270BD73860D1F900C27AC22D67625C344C2F7C15A73A2F9FC83117F730C66672A40826CD57E7EAD5ABFF7032999CA3E36AB5FA1FCAE5F24B7A1D392E1F7FF7F198A4BC8DE3ED8CC7E37E2E971BECECEC8CF7F7F783FBEEBB8FD90C113200111E894E4A243D1C0EE9592345DFF74B38D01A36B686A71BF8A9637919EBE42C2BD0504D588F3FAB0409C4F0335C2E68DE22C69C45609B9966318D889B255F83E7033C3F467AF570FE69E7E93E96ED23ED9A58DEC6F26EBD5EEF3FFFFCF3A3679F7D76A29820A3113F8B5CB25228142827B0861CD740E2D113896AF89B884E08404F23CA78532C1F3A45EBF1619C4AD4393426CF2B75F2193DECB0ED780B1864C18CD773BADA7294B145EBE8D31E5808268F5358BE82DF69FC1490116A488B0E1E1FE0F7FE6030D83B79F264EBF4E9D33D2C1B1313700620C93F3838C8168B4522721D894F15572467F6F133C24F332513FF38F0CF79430EF533F3C6AD0966F34CB2482E352683CD43605A3D94D295742D4B8A66BAFA50AB918B8CC16628D7DCD9755D0C4088ABCA0271017D4D32990CD1CFC76312DE1C32C20855C1446A66162200EAFA42369B5DC10A59BC08053F4D1C35159A54A753741D5BB43E65F5DCACB666D5A5DD44F3B43DCFBDE2BC259E57C1B179EE655A3BF38C15E78FE96DD1A7D7EB31B41F7C14F4C9EEEE6EA8060C1B00B9C27BFAE9A7397EB7DBEDA5E8EC4AA5F21DF7ECF88D8D8D5BE29EC808A46FDD10FCFF013D9216EC86CAAB0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (67,1,'Notebook_(24)',0x89504E470D0A1A0A0000000D4948445200000018000000160806000000DA7D5C880000000473424954080808087C086488000000097048597300000298000002980136D347DF0000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A0000041449444154488975544B8FDC4410AEB6DBAF190F330A210A6483088F031220AE48C0250838844B243844E202FC037EC1DEF3173845E2C68548110214E58684142910A415E288C2E3B09BD919DBED76BBDD7CD5B6871976F06E4FF5C3FEBEAAAFAA4B38E7889FEFEEDEB393C934E8B0EEBA6E6B0C6BD7AF1DD6D6DB61ED76CFF14F5AABF6938F6F448C2B697856AB42AC8A0A1FF4204CA4EB9A6AA5A82C4B529857554535AC62ABFB3385A1B5F6FBBAD6188AAEBEF77E38E26E084CDBD26C960FDE388095D4349A4AD84A9554AC0BD88A8AA20041E949ABB2F27B3506CF9527E4754D67086A7811CAD04B520D0045B1C61C110074DC63908A2DA2E82352BDC5BE1F58378DD947D0501004BD671EACD880B357BCCF000CC66B55F5606A00E53396B48512C6EC21D090833FDCF5B418EC1E4F871CF83CD57D1E2CC0BDDCFB08147463C07F3D2D37A01A675EDB21E97D527B700DA286C1ADDD803603D17F08142D97CB8DB628B54186DA27B1AF92DA47CA964147702E8CEDC7ECCB0147C004A39EBD87DB9EEA1D50AE30D33467C0C78ADC93E49A56EB95978341466D7BD01E8CF7D98EE0E3253D43B03707A5A262B5F660DECB2D298C693696815B00FC1F383F8C71960080519252104614C5892F379B5B5486F1F30E49E444F25C00DBC38364C7E29779F53E8996ABA20EE22C13B2A3006F498B1B4D63CF71BD75431FDA6A27DB3D8BFF78FE785D9CEE101C1E1E06172F9CFF0D2FCD6D67BD17D61A4A93D4B04FD8C7C0BE75D43A5E8CC0D619D386AA6922308396A37402F2FDB5436082E4AD070F7E7AEDCAB30794A529803A7F834FB4F1B948A7138A42E9E5AA2ADC09E428839C420684F64B1A3951A8B8288A484A49C6B6CF7D70E3D3376E7FF9C50F0113E4F3273E4B7148EC21F40BD00BA759465916130942521B8AA4C03AA5499A500260F637065814C78834A63896C88DA3289014E21BD1B59F6F2258E4F9BB095EE44BB442834B626EE502D5C0FD49A2820C15429144AFAAE07D18711170C291ABD091100211C6D4898E04D0A58BE9E0994B573DC1F7F7EFCF93483E95E713CA2145B7EA289FCDD036349D3B97C3434909A20B211194A793E36396DB93A78868369950E5CBD950CD7242E216525E38BF98DFBC796B2A1E1E1D5DEF6CF71527CDDABE22EC581996E7967E79F833DDB9FDB5BFA17C895AD3D2F50F3FA2E75F7CC997EE584976F38D2F0076E49ABCF3EDDD976B65EEC93090EC214B834A68396C2E78AEEFE274993E7DF9CA944F6D6BFDC78FFE3E2ED675AB21BB602904E459474A3E19B4C29D844E4FB21690AF8AD7DF7CE7EDCB970EAE2DE6B3579099088D2AC8B249CDD0F8869C10C39575C37DEAAFB0F046F04D415D0AE2E26CDA4646C20AD706FA71511FFDF1E8CF6FE442B63F52755C9CAA9317106680212B291B06E9F8F678EF003110B1655986F5CEDED83E50AA1685F8FBC585FCF51FBE850151224F49460000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (68,1,'Notebook_(48)',0x89504E470D0A1A0A0000000D49484452000000300000002C080600000023163B670000000473424954080808087C0864880000000970485973000005310000053101B7ED28520000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00000B1D4944415468DEC559CBAB5D67155FDF7E9EE7BD37B9A979598AA58814DF087954AC03A926A21050D041111C547120084E3ACA5470200ECDD09150C89F50A3246D4144A4A8A54A620A499AE69A7BCE3DEFFD3DB66BADEFB1F73EF7DC9C633BF05C367B7FEB7BECDF5AEBB7D6B7F67745599650FFFDF1D65BE3E974D2DDDDDD05EAAB2EB0772897E42BC63C719C1D03AE6D6ACF84E4A8B587837D68B77BC397BFFF9D9D3ADE04967E511CA5228A60BE289E0074BD4284A601AED1B7022C2CAFDDEC3720A08C45B68CF79002DA1878F7DD3BB0BDD5778B42F542F02B1338034A69D04A81327849055A6B944930BAC4BBE267AD0D5E34C6D8B134476B9619AD5C3FCED376BEC1B6A9B5358DC7773DF7DC27E1DCC5F3B056018940B22C85331F3FB5E4E6CA22B4F062B100591450E0B5281650C411CE25AF210853F0A5B58442E28563691C2959E0189EC777091295A4B694EE4E4A4A3B8FD6A339D477F6ECD36C90F51E7056A089ABA8A10D812F78F16261C15B4524832C8A1A58A72081550CD48E098011AC7DB66DF29A74C0692C61F17DE409F2DE7A0F283711EFCB81492FF00002385280C0A232852A1CF80A68212B650238B6AA6F4B1EBFAC8076CFEC01A2A5B1D45BAB80929AE3402E79C082B78B579696CEF50B2773206A962720812EEC095D79C029A3950CCAB0B5D9F2D27A8DADAFD8F3A4CC7A0594720BA8901D183C719EB949D491C1D20C3E80A940781AADB2B4A58FAC59D9C582A38AF7867263E8D99051F5260A68AB2D2D48812BD9F20B509EE3B2E26CE0BEB77421036DF4129F95B3AA0D4CDB5635C594034AA03D6DB433A64F241BC5000DE220760002A71D90A29E316A160D63A40AAE6F72BB0AD460799771BC320CDE29E22DEF7FA529D9B81B5368369B39DECA90FA0260B2B2E37AE0B8942E73A8269F9768A20358E5F8EE2C2FFDBEA18302F59FDF77365280AEE974165EEA83D7E7679F65FC8B97D3A0A5816B3B4A583EEB400D25AB6C6737417524F8E001B98902BCA882F97CEE324E33C87C36B1608AC396AE830BFCAE2C2B6B96D635DEFBF6AA54693D506EB69115D22E3A9B995A0036B96E39AE02C73D6D2A4E7B4A5496B7FCD69C32BD3296AE6A2D78EB01D388892315A0ED5F5116620FD468510B48EF91CAD2AAA28D03E3C79A005686F862D03E3DBA7E4A934FFA1957C26C100376C3507211F27500BF1C8035609EC7553AACDA0DB00E3C1769C62ABB0E3C7B0015909B78C05B69EE36AE3AD0658E372C4BCF35EAD0D6BF0C3E04A9AEDA9B80670F108536F180A703A5D13A005553C297CD3A585A37BCD0B4B4E2D2447BBED33E63FE37F0DE031BC500D3045F42556600BF9439A4B2F54BE0748D327E13F4F421901EB8EFA7FBF297E05A0FE03EB01985A4A5825C142E8F5BB09C49743DAB54015881D5559FF11F2E9EE7FA4383670FE03E4065FC5A056883E20F16AA7F54F5A5550FC82AED2947151DC0DB71DA01AE7D7D19FBA5F561C05B0F948C6DAD028BC26E5285F34000AE9B99C37BA40ED27E0C5596B63CD71F19BCF580E1CD75BD02987D28E8C8033618752D1875C30396DFF56F5C1D64C6C94AD7FEA83FF20065C68D1488E318CE9C7D269C2E344E073098888FE04ADCFA1189FFE8AFC69B705C02CEF8DE0B762C349E7DCFAAE7384919DB060A20CF8480284DC2B1880725F031AA018C6AC721F571EECCA471358F50569CFFC0D1472AFCA79435DC3A05EEDE7BF07751969FF71880ACE88F578C5DCC78EB186F51E70D6F31BE4C657163411BDF0910C01837BFF246607DB85532F187B50A3C75FCF85FA3487C82DE6C0DE1ED85F62FEDEBA8494FC2F6970001631944C6D9DD4FA01E1144252B6850204A671FD7E55F4A4D613B4A4F85585C5BC62BEA99E147D7AEA5D93FEF0EF003A5E3DDB8CC73DFDEEAF7214D925A6CD4385F1B47963E24AB5F18E407A33107A8A71069CF638DF324CF058ACDD18B5FFAF4CED5AB57CD4A0F3C7D30FDF2EF6EBED9E9B75A1047D8898143A53405755128D8DEEAC2603886043BE338E5C5F356866587846E3B87F16486F32248D294B358DEC2FBDCA0A2E421C1992B41A595466346985621E66C4531A71161449C8C62DC7B0A5C23C38C865E1606DF873814664635E9BFFDEF7BE710EA9B1E73545760329BFDA095C5B82C400781E55902ED2C830C01A508AC93E79088185A282F31A546961D7C4498E33CFA7E88059D626A10D89F21184D60886B3846A0C27124AC0CFB80B0A38CD6C75C8BA0F1DD6504598277118140598AE073C490C402B124301B4F7F58C7DC50204FD2974A7695807EB7CBE796090227CB4528A3D21A8DC532B20E8129B5BDA7E82D819C1571C47B81408091D510E582D88A32CC6E4944C7B490A1C2B4C9918CBC4DB2143D4D4793E4710C189E4BEF3568FD04E79177F193F69B2B15F8ED6BAF9DCDF3FC34EDB0A4BD7216C3E95C4EC4F8449F97112EDA428A91F962723DBE103130580290B88826ABB31294926D9EE2F1E44152A88D6B185E83E60A966569E2D20552334BAD0C07283E2504DEE1E3383AF593575F3D76488176DABA4CBB2EBD607FFF313CDE1FC0DEA33DB87BE736F373EFD123984D1730194F60341C0055C20F1E3C008DB1313E18C3DEDE2330B2B4321C7F707000D3C918ADA7E1FEFD7BA87E0C2394292C5548B6FFF831EE2311CA46E8E99265B3D914AD1CB38C9C665C4943734B493B3D50E210FDB4F7ED430A6CF5FADF9BCDE64423D43E873C6F43869C7FE6D96771B108033247F72790201FF3769BBDD46AB7D8F4295A2E4D737E6EB73A4C170A64CA5211F2B985E3C99329CEA56C1C71F6229A952CA33E92B5F099689AA6943C0A3B374FF81922633D857FDB3BBD971B59E8C68D1BC9C79E3A71F1FEFDFB40FFDC4871521C277CCC8E020ED40C5D9EA22CDD3A0ED21087018E1DDB0152BA838A50205242691FEBC1683C46598EE050E9A9B4CA73764A28C930E5C84B31A527CA3CC2CA68AD946243A74415A61F15973417E90DD3598195C21C4E9F3C79BEA140DAD9BAB0B3B3D53A75F224CCD0EDAD3C63E05AEF32DFFB0888AC132539C783405E129F39287171CBE198EF14843EFF531876FB435C2F45CAA19DB1AF9553BA9DB28CCFA93815A30CA949323242C9E35A309A4CC2384A103BA86BAFD7A104D3FDD5B56B9FF9D92BAFBCCD0A60CABCB43F18C277AF7C6BA970AB6F46E6C8CDC8B8316FBD710BFEF2E73FD9F2D9D8CD88EE435762D3D817BEF2227CEE0B5F5C39BF5904DAAFB043EFC271FBC303E8669D6F2074AF40EB925905DC2D4477638E005E53F23F18C883C12094D8BEB4AECEFD253CC4206F5F681D6D0C7318F4113B3B29F04BF1B73B774E25DABC43291707095B81D8B4571A4EC6546E90CCF695B6FCF0322C05ECBD34E2D6CD9B30DCDF771635FC5DC1DF05B5F689DD1370E1E20B4BE0CD61659E5082386316F34E765C9CFBEAA5F3651485ADB9DFEB726AA2CA31C1BC3E99CC51D681C783030E362EA09AE514AC6892E6AEB8F397B38BB02518A91C71E9236C9D6EED465986EBF4C54E217447C39971A4B7B7E6E2C17B7DF3F46C18DFEE1E971C1038A3DD4ABE96BC7FB03F3C7D6CF78D5EBFDBA605B496895D94BE8F3198B2D44CA7E36CABD79D3B80E5066A845FA31AAE8F17ABE54E61C88B24D60B19E938D3A311EEF3EDB67CDF143966BC39293B180EA71FEC3D1A876AF4C73FFDF9F3268ABE9E08F112BAFC0C97B3488FF1F8A0D5DFDE99FAAF03FB725F263B8B05A0411A9EABFE2559B5802BB821D4A291B0AC9C8E471DFC2C15FDAD9D7189324CADF770C8EB5A8BDFFFE6D7BF780F1CBFE1F2E5CB39A6CB4F61B07D1665CF535CDB45CBB8288A3EE6E001FC1F7EF47EB69710FE40888E25FE85D73B58D5FEE3FAF5EB1F24D47BE5CA956DCC107BD8F13A5D98DBD912740A40CF9AF67AA0F23A096EC73EB448DC908F46A3F072EAF372BA0F8743A8B7E98E3B6EE3CED4C9F3128DC96DCC687CF76D4CFFE5C3870FCB5EAF57DEBE7DBB24ECFF05DB589B61037CD4180000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (69,1,'Notebook_(64)',0x89504E470D0A1A0A0000000D49484452000000400000003B0806000000CB8C8CDC0000000473424954080808087C0864880000000970485973000006EC000006EC011E7538350000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000011654944415468DECD5B7B881DD779FF66EECCDCD7EEDDBBABD74AB22D591BD98A2D45D8726A9716424A1289BAD01412421312F2809842FB4749FE0821500CA5505228D4C550681BD3FCD3520A2E694A4B6DD21857D84965C54AA4C8B6B4D99776572BAD76F7BEE771CEE4FBCE393373E67177EF75ECD2912E73E6CC77CE9CEFFB7EDFE33CD608C310B2D7C51FBFF18F06679FB16C1B0CC300A289E8A272281FE2B2782F9EF1068ABEB0AC68557D440FAABE88BEF03BDA5852E392034BFA0E39044100E572F5854F7FF2E92F6579B5A0E0C206CDCB977F040FDC7F0C0ECF1ED198D519D207347CF092B984F12CB3E9B6E3315BCCB8DE7708AB6BB7A0DBEDC0A90F9E6916F15A2800CE187CF8DC5370737E01AEBF7553D5EACC251F8B98553509434399E54A308A59FAC715939C274C0D4558385C21FA58B8ECDB46141F3F3627781A59000C7B0A5800B76EADC3A38F3E540C2D35888871AA6701C1CD176D033F10D0A332C38F8B67AAA7F701435AAA97343E3D131DD1631F8CC93E98CF54FB40B42126C47390DC659D6C4F772EFAC21F0FC478CE3EFE6B7068F62094780863218021539655825AAD3692BD1263BE110018917D73E0A101262A95E3C70D13EB1957EF70A03C8899E3B1C07C29B4F8A73D2B814642D37F42C04124C08446084229C1E1E32080E0828CD1C0A9BC97BD92E47DCFC341A210E201CBB2EFFB09233E69DB8F99F5D5A0E51D9FFD2C631A92020D3D1183513D8B10C4D20208985004DD9932AF910420E0CC6463925ECC6C81A3928C7931B392E1B41062867DC968A0988E68220D927058642A7E5ABBB13905416C42C9B382BF32151D01A44429203E0E0288984B049014F5F0A539259DD9B81C09410D4E6895EA844D6B08114C44CF7E6CEFB1F68B20CED2752CD27E90F809A6A381CC8B4B04F0701C0190A756D00F221348851D5050F6632DB358AB91A675F8B3944D4BA846F5FE707BD6A09ED4B358B84C738A4CD3BE14028B191782606338C19071051F2E3AD59D20173695D8B3AFB497D6BA5FE0C8F6603628D2AE0679DDFB6799CD685E1742A4443E9E13948C4B5F1024F19673CD7E75C635ADA718925A2621F128140AC61254140981156835ADDD48185250C45C221C96304F8E8F820FB50DD97826C094FD042222802A4BED92A3F22326E2F0A5435A693003FF34B3AC3864A5EC3A613AA649BDCB403ECBBCCA5184198FE30443955CF0304CEC2890DA968E8B49FB2721F84A43E259D56B4C04436D39EFB1F5F0A53396D57E9CFC28E8F39420B8885E5A4893EFC270CC4C50C5D03896335FC24C695F786DCDA675ED096DC7E50266B38CC719234FC33F622EFBACD3325D080CB293BB502469638741163BC1813B508CFBCA0464E6E6FB69CD067A28D2ED99B31CE4130F9E81BAE6CCA2B436096579A80BA6F970E6A5098012DCD82620A5ECB99EA6E5248E8B4164851067632C1FB3335E3CEFB915B319CDCA2C2EAA67855A27018543201E4666CCC79C0CC9461C5CCF958C8AC167E2B866E7A94424C8DAB51EB2D2F13B6222CAE48A1C1AD7CB3C5FB7EBA526766321808551FAC8C01B7871D84A2727699B4EC767960965413CE820E7C52386823D99660ACA3AECF7BAC2C8A4C772825116A51010DBAE9697B3CCB434A56DCDF6F54425501E3C1DC278AE2E7EE62C867EA2F94400A35CA172E86C1C13887D000AC0C3890E0B58719292D126BDE7713DCBC56A1D01C2B1E90CF3B420B8A6FD94D615DD38979E178C6502D4C873339A150C2AAFCC932968948DA534AD249F4A6062F816309C6152178044001FEACC7645007B1708883518FA99D95690C4E1A2EC8CA773F304CE2ABB64FA3D6FDFE259094087BD10C4102DEEE5052432C7F1013C9A406022E4BB5A36C652713CFF2B0863997095D7384F79F68886EEBAF6DF1DF33211928A1C270CF264C09EE7A76D39483B3096736C459E3BE92F9DBC24CC650522EFBF1AF37118A4AC968DB526C8955D9313C499DC1078A7B51A79F4200DE742E635ADC770E76987C7A500C25F85793D0C8EE304E522825A0F200470B52ACB8BE3B4F4B259046418CE6A387EAF0B407F9799D4BC6B00842A7719733D20CA03FCC04B79F38471A5ED4CAC8E53569ED874CCA85E97D5BC629A84FF5E31AF87C181DB1F5D009EEB6A4ED0CFD87ADA69C58C6AD0D51D9ACE645EDBB23ECCD8FBB0BCFE5D23001538E8BBA30BA0EFBAF1828898FD65B41F331E33BBBB4D739E61BA480891CDBF87CCC7D361FC5EBF3F06020694FF076A49999C208F4C408FCF19EDB2226687084038B7B4A37B3F988F5684C88449A9A30B00A5255784E48248A4F13003EFC4CEC3BC7DF3BCAD872901A87228CBEF07F3FA6CB03F8E09B883815817B46D078E3F781240DB18496D5B67373FA34D4CED9EDDB4046D733345AF6336F5ACEB3283ED1C5D86062FC334A1D7DA01771C27D843B8944C43F66BA81D216D1062D086B6736BECB1451E9F07C897F73A7730CE1984EC06AE5EA64DD7D105D0EFB51DCB2A1E706E6BBA60DBAC88590853DA1FEDC005A4CF06EC71F822DEB582CC76B91040D01E59008B0B2B7F8FB74FA5CE01EC79CFC37FD4FBFFC1D53543F6AD910570FAF489375A3BAE8BC94839660E7449D3D8433A3E13868A0B55A1DE84C939072A1A618C52D1D8503DA82E8D10D21BEF4AA6A2B7F8348211F230E540C2E8B31118B48189021D093024ED2BAFBDFCFDA5910530776CEE8FB07139397E928168181A6A9446627F61E1719930733C2647A79D26093375D9E33145FD696312D148FF8E0CADA283CFFFCE673E7FF5DFFEE9BB7F3E920056D6D63FFBF68DF902A84782C821425C8F7DE83454CA65F9F1226679916078CC080FF342C86EC92F2EAFC0F64E6B6C133A74E0C057F196138091EDE4DBCF3F3FFBCA2BAFAD2D2EAEC044B98269AA0F139355E8763D8CE7AE280F0626E6031ECCCC4CC1BDED0E1828E992890C986541CFF15DB5DE104BEA9CFB50AB4F8AE48A730F6AB5090C49985BE01CA3522361D948D703A76C41A954837EAF03E57289CEA7882CD4B2489326BEB390AE0F56D901BB54167425A7048E45E3E923EA39B6AB8B0C76E0F5A15E9D04B364804F93B9904167D00DCFCE3D3AF39DEFFCE5B6CEAF998384619D773D4F986DA904303959A7608A03B4617AA60925AB2C98AAD62A603BB64862CAF8EED0EC213940BB0453CD29B1214AC76226EA55B5AE1F40A55A1186ED7A03CC314AE2084EBFDF11266BD918AF7B6D4441008E63A1900648D717E198DA4B3A79C426A243AF80CC77051D9DC5A1BBA0C3B17B580EB19DE7F769890BE9060673828F67F9CD0920F0D9A74C64D8B66CD8DADC869F5D7913B5DF8795C52578FD7F2EC2D6D636668A1EDC7CFB1D58595E424D86B084EFE66FBE0356C9868DB5DBF0D6B5AB38A736A1B5D5866B3FBB8A032AA1707C5878E726301F132CD386F5B575E8767A683213D0DA6EC1F6E6164C4C34C147BABB1B1B50AF3590CE81D59555146223A62B9916D24D235D20CE204D4F1F4244381060BB99E95941E7A3F01A8DFD601A657CAEC354E3200ADB824EB7FFB95D4DE0D9679F356BD3075B2FFDF70FEB2D64DE2A99E8453942750206BDAE9068B98A6584B689F5B57A1D3A9DBE2837671A289C2ED233D8BF7F06D6D637B17D0951C0056A088A26C1B45A450D7AA23C315183767B80A3E03089E56E8F90E2E3E0B1BEE389B5496A6FA3297A035F20C0761C84397E257085D900948509D9B681B4653193751C1368FA5F2E57C14504D856053ABD16DC77FFD19D7FF9EEDF368722E0E4238F3C514591757B3D013582E9FE7D286D842CC1BC365115766922642B55FC98E70A01952BB65A29F28559942C53C0B66419A8C90AB6F104CC2B958A985B1024CBB60514A6E81D099ADAB9839EA0A3EFD2377126028E6D895365B43659429B3631B525D80BB3B1A8DCC17E7C1C5F19CB3D44B02B1CAB89A6D345A64DE463D097F4784D7DFD9BCF9E1A2A0094D48509D26AAB835005585A5882C5C545340117AE5FBB0E3FBA7811990C61F3EE3DF8E94F7E82361740ABD515EFEEDEDD44060298BF71136EA079102CD76EADC115A40328C1F6BD6DB8FAD337C5D93D9A9BDFBC7103DA98A39B680E44B7B6B28C4CD4906E07AE5FBD8642AD81DB97FD19D83EA223DF4030DFDEDA81AD7BF7A086CE8EE86E2D2F4315CB06D291D958388F714A55310D6E4CCE888D56EC088558FADDA126F0BDFFF8AF376E6FDC79ECF9BFF93BA8237CC8B357EB6584B98B5A02684CD4E1CE56076DD3440F8BDED940EDA046511160DAA841B443725A13F50AECB406386874A2889AAD9D9ED05E89B2066C436829617B07B546E640DF99999E828D3BDB82CEC60E3D26F327744788245BF806EAAF8A91A3D37645B9D99C84BB9B3B0241F46C62A410A6866320A7DDEFF9883ABC0FA443DE3F7B101E3B73FAD29F7CE36B4FE410F0FD575F9D6E4E35CE8A188B9E9D60EE6098F17D860109E14B50C47F6628435EB54C83EAA3F47B08B5369A8327CA9DD6367EB08FCF03E8775B88248A280C5CF4216D7C47B02527D5EDB4C45A031A3DD6E18011F674789204E890447920DA552CF243A1A203A8A0A9909F20928A63891D6B934C8A2A68190DE970A8D89FA433C47238B6C57E292C379B53679F7BEEB9722E11AA027CECD0C103E6DAEDDB5076AA08B116DCDB5C87E37327D12BDF817B776FC37D0FDC87B6DA808DF555849B05070E9F007BAAAACEFE6168C430471BA9DD0E6DA6D004C480955B77D4969AA4B9B3B1191FA9997B58C2FCD6CA3A6C35EF4265621FAC22CCB7366FC3A9338FE3F73745F9D8891368360CE96E63289E44A73C03ABAB6BC2A41E3E4D7477F187741F3889FDF948B70233FB9A684653B0BCBC0AB3478FC20E9A4C091177E4F0ACF58BC5C5DF44965F4E09A0623B170EECDB27163C6A75071A5387E0FE078F52A68ECEAF06274FCD21C41C0C255D98397012A15D8736FA06D340E9A2D7AD9955B228841A3A2AB435C3300514B180D0378453E52A5D95A921174EB0D36EE300F763828442DF6943737A0E35FD9038555B43F33B7EE27E61023D74CC4457AF9149B5A1D19C83871F79080241771885741FB673A05BEBC121A2C3FC630BC37063FA042AB42C4C6272AA219031D568FC5E2480D8075CBAFCE60A0EF06894F373FD74766ACE9DA4B7310D6472F4ECBA00DEFFFD7BFF2A92A350E5EB515BB922A4BE0932776F341AF091DFFA58E67C72C15C20F36D28A8CBA6D56ADC57FEE0CB5F381B23E0CACF7F7EDA719CA3431BE62743BB0A263BF1E9F707B0F08B79B1C29C5D1B4CAD13AA09CCF4CC0C7CE2C26FA7D606C221DF8670F749577A8D22AEFBD00B2FFCF3EC17BFF8E9752180AA53B9100D20ABB9DD241AC11A86082C9AD1BDF3F65B98F0B487329E3D38B9B3B38390EFC2D454B358C343668FF93FA228168CE8C70E3F81A4FF200460D9F60548FD19CB08D3581802C98225AF5AB5061F7EF22979642D1234578BA9D1B4552C90CAC398627B1ED152C6ACEFBD9856170906ADEE3C0940F880DFFFCA1FBE8EB6585387FDC98925C9814AA10C55872E2EF52C63A9A411B4862052EF0CFAA7DE490334C148F72B8AAA5D283E2E461705E8B8EFE85BA69199031BB27D3C5C6D0D959203EACC48E77C3476EC77FBAFBFFDA79F140278F0CC931DACAFEBDD9E39751C96563731096AC3938F9F86D72F5F1309C7534F9C851F5EBC04FF1F2F77BA03EE39068D97A6E0A3BF710B36361B70F5FA247CB4B5040BF503B060D574F2DBF3575E9B150278FC23E75F78E0C89163968D71A4E8D211110AB5868553C948BBF90DDAE1CBF606FDDF73923AF43276EDBFF8D5C0757B4BCB6BD72FBFFA9F7F1C87C1679E79C6B627A77F1D73C0F36824E7D1161FA3606E18E3E8C018ED8D3174B491E968E56411CA805858A15205A4E8840B917FB7643B654E7FF207725DB01F1AC66BC8EA0F30E97CF9AFFEE2CFAE466B9996B409C33C77EE1CA6BECE8F0F1F3E3C8F9EF8257CFF9061597583CB0F743AAD53AEE71D99DEB7EF6559975F67E7C5CB4C9A7D4A5B55071EC2DDC4611889E8D5E2AB318A6C0783C17E9C003DDC6C36FF17273EAEDA1DF67016B98CF7F95AADB68CBC5AD86710756A3CFDF4D34D24F800CD88717007F1A58DBF52118E348713AF0867EB2326B3751A337ABD91E9AB4860B93ABAEBCE2F6A4775DA891269AAA6490BCA5419E0BB1ED22CA270E65F7CF1C51D432D6F13024A939393F433DF4F4755A954DED7CD807ABD5ED8FFC2C2829CF354ABE1C6C606BF74E99240C02F011020422FD5D773700000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (70,1,'Notebook_(96)',0x89504E470D0A1A0A0000000D49484452000000600000005808060000000AB1F2F80000000473424954080808087C086488000000097048597300000A6100000A6101FCCC4A250000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00001F924944415478DADD5D698C1CC7757EDD73CFECECECBDDCA5484A3CC44B0749D99605079102251215DB70FC830E8200F963C07F0223700003091C245110C53F12C08612C4B0013B896DC889895C4E62C431104970E40396E54B914DD922295A2477C93DE73EBAABF25E7557755575CFB1DC916464A4614FBFAEEAAE7EE7F75E55F73A9C7318F4F9D60BDF7B31934A9D94EDD436D8515B79CCA407FF70B9D5FAEB6D78F04FF2569D9EC7B73B390FB7C69C702C3E366BCCFAFDC7B6F131BAAEFBDDF7BDF7DD6706F1370D433EBEC7662F5FBA083FB9F06378F0971E865C363B32B381EF90496360B63136ADFFA8CC1ECCE43E63D4FA775A6DF8FEF79E87C3878FC2DCE29ED961FC1D2A00CE7D58989F878DCD75C8A4D3C0181BC2E4214C1AA235D179876BF460660F1ADB28CCBE35454867333051998442690279C561D702A093E4F305B8EBE43D506F3493B546676EA246C3D01B81214C96BDFAB98F24A6C3A81A0DC3980CD698062BC2A183C7C0719177A8BCBB16808F1AEF38002F5F78057E7CE1A7502C16B521CB3B4CB41DE81F5E826362D07AFCD0F721FC6D1C37FB3806F3A2E31173B9A1D1515FCD5AB473074C8F98AB9F4FBF8669193CE201FE4E673270FCE471989B9F06E68FC50218B0709047EF3C04878FDCB123F7A1981DEEFBCCC7B8E28BF37ABE87830CB748A32D1DF3B00DF33C217CE6139D814FC77CEA1B6EC37E9CB1601F2D353A167DC5F899EC1F6D99D68673161E937DCC73D0BD8BF6E1B582DFBE18BBDE9FFA1D3C7C1C8E9D382AF65329066388015C5C584A3F1E03FA33DB761F92D97EC86C4E4C0B99EA899B954CF6C53EA31BC36342585E242C9DB98130FD18E3D5716DABE8FA6F1E31556F2798CB4201EAC7C27D298040C0511FE081DB16EDF99862003878C280B3A6000630DBF6D18126471A2CF699AFE862EB49C648A607CCF5422110B3230B0A3552B39424E6EB0C17B4B03F6D95F5F82CD27CED5CBA65282118C7B96631812048A0A21FB64B33361E174402E06144A70B2533B93FFA50CC0FB59F06E979A14BF03CC3F43D4F679E17D35C72475C693C33DA2469BCD456BB8DB23EA60B2964226DB979AE98D67316FCD6DD11F3559C61E135C6E08202536261F01216300AD40B2D44F9ED505B03E64B8DF7228D54FE3AB4082B16046DBCD0BC23ABB1DD8ED44A93F9A6164782D204C9A2F3A958A56BB72E00D27216F97D5D705C9C9FABEB8C070509A9B270602CC6641DF1E8282462BE1C243369D2D7FB516065CC37826514344357A369A42D84C81FEBE78918C924D324330DD7C5549B801E0945B72CFB1AB2AD725FA4AC8CABB1EEDE02E8E4C05552C1849999CCB65376E51B259342EDF7342DC30C1B07E919DAAF335D324BBA98C40069309FC6E8594C6706F3653F758E30084BF7C399765E2508CD6D299F9F200416F417EE87878AC2C7610122D20681450880069A90CCE8BF83A0A9F97311F4BC80E98AA1813F579AADE0286E991731C18B904A0CC9D8DA278F333DF0720DAA6A8CD7ACD21610D3D08ED27A1E5DCB4448C16F9068917115BC39E7E381A12CBC11E992FA65958186449A4CC1D2D37CBCFA860261BA5BD2BF1AD2513EDBF34DED0DB55D61F03EE8874966E8DAAD319A18160BB83A93C36B30666ABF2E781EC6A50021EAFBE31080342F3D08272461127A2998296FD89309970637FD00027A469033DD470413590CE79B09501FF4A3B9101983B86129CC48A0CCE06C69BFE672243FA405E8CC97BC914198F331C15016467662B6118465CA2E828E6F2015050F433712F87FCF400C9EAEA956F00D9230531B937DB7E92EE2C1D2D466D94FA229DD9DF8A162E83E3FE6AAFCC81D71CE0C21496FC03853EE710C3180A94C18C26CD6A89784D2F6A4E6F3C8E72B7FEE85D6A160A41705614DFB6D4D36349F2CC2674670EC979946EE26BE65CC57AE32EECF7D839986CBB1E20D709EC87CC1A35040E3C984FD48DA51262C518F8ECF99D2769FB158129588D1FD289B4D84909ACF964CD61196AFF7513E9FC7DC53DC9FB30437150A8771C382A2FED1BEE9F3792CD8722603F2186B41B21411447CD0343D32732ABF46F092094DF73C1677235676A960A4517349607EE8EA6CDF6EFB6B037A6A0C968C8BFCBFA9F9C1BD9A351E66FB786B3F396E72CD6D8FA11614986D6401868FD76EC2EB53201326A9E0653CC5D7B1B8EE2A924A0736FEF6ED60A969735F46EA6E47B91066B58F12B2C8E70F67BE8C01C139C7301FC03833A4E979BE59D2651A2CF49891C20BDFAF054BBDA42B19C7F502574CEB5932D3ACC06BF8EB0401446E67147FAE07DD2866C8F2C3282586683C63B1005F251574E15EAF179492FD90B986CFD7E1A4272CC6F3A36AA55D53977183C75C52E48F7D3BEB4C4A920658808D544CD869FB7C16F3FFDC0EB623F87516F6F1C722003980F04648007642A24A087A3C607178A8434285546CD7A2FC378FE0A9828C5A7EE1C7B353853E0CE6FA894232999B2CCC5B61BE84EEE30BC23E53018C18450288EAE45AC6AB9515B88A1166414BFAF5E0B855ECB2EAF006F23084C614DAD1335266B90DA5387E32830D7FEEB3583C082A00266DD44FA03C81428C2908330D4246FEDF937E5E04572EB6064CF4B50AA42A1D240453DFCC2C7D8BB1064E57A93E338B6631A412CF70A5006D0C1FEBCFB95156DE09F3253C67CC194F2D8869B5A0C005792AE8EAB356411D9D6BAE881999AFAFFBE3C4A2971F415EDDC76B4537154C998E8ACC2C555523FB6ABE8E68E26D22E6DB09D6E81F15BBFCB1E4015126EC87D383B1890AADE86517AA740C6FF87066264A894C331228AE15BFCC5A8E8C27BADB3082AF9F1C50ED76F238DF05F3A5D23AE17DECBE1461CD22510CB0AB868C25A7FCBE91FA9B6E245E9F4940317D921FDD9DF058C01C1C50791FA4332EE647D3B810CE228EC105E930D4F37A461D9EA9ECD2ACD12BCD058BD946661AA12B53680930D076374968C54F602E0BE62FF47D5B383226706D7BCB9FB04A00FED8041099AA2FE671B9A179F182976F20156ED55192EB2E7AB0B698DF0FEF1BFE9C0D6863FBF464E68F3A873B6A0C600E1F170C957940E05F7B4E3FA462FA7F96E036CC926E34531509D8CA3E13981F4732BECAD4230D0F67C2C0EC2767C722A5E22367B73B31812873F6C703437D2D2B052F9E9DDAC52DCE58729D26B40055F46266FD4555117972E264CC38712B78135D5BB160045CAB8CA096418E9DF9DA1C0AF7C79309FB9219E1CA889E8574F4F2420C65F87DEAECC66C97E976A2B9553DC86ACB41380CCC72215C4263F87ABB8EA3CAEAE3677EAC82BCFB29492D080BBFEE27CC8DDAC134B95A29E756A3A9C1FE75173E08C9E85ADFC7DFC7CEC5759FCF5F37E6EBC9EBD88A71CA47AB592D93B93298EA9A2DB63C5E91B4D37EC3E7C7343F2158723BDBD54A078C25045C8DD96F00F3F529C9B1CC09736D4E58C2508391464DA50F06173E3BB95EC36579224CB012514C2286672663FB0A80A965EE6F04F365F22AE73DC69407F85A1EE0C718A827564A8395CFE646F265FAFC689E997196E07EA2D9B74497C378382F2DFBEB2E28F2F772AD8E8C0DAFF747AF9F8DAD1817CD7A792173B9050DCD4C971E2A50258898F6EBF120199FCB35A85C83AC7D7D7EB895E7D4DD12D7B47E5709D64E8A7112A6F3713DA0C1223741D38D863FE7FAAC96D4DA2424632EE75050D2C2F8B2DA192F0D44AE3062AE157079B4324D325F87A56FD4472A67CFF3C69309FB56D08BD5DF35F7A2B42D29982660749E8872AC8449D36AE5B62C81D9B0F2CD62BEE219AD7BEA8E410062825D253A5C5443A32AA46F15C424460FA62BB9952801E35AD0B6991C31CF868EDC4EA0B8EDBAB8E1F375C6BFD1CCD7810BB9EB5D0BC00BD7E7476B3F3D2D2EF499E448627EC24226D33A8245C01133E37EDF168EF2F14C5EE3CD67BE1E377BDDDEEE05D093B0937363A9C8A0829639E5173136A6D9961FD719CFF50C3C21C335DC15378FBF99CC071E65C2C4BB310820985009508D5C8C2503A98EE18704539E5018E37D345B0FB606D434D18EDC3AF073C27CBD824C88B1370E174413303E3D25E3A815CD5CC04A8D3189CC676AD5B4422FDA6439B78B621A32E236DA498093CAED00C4E2C39BFD9145C5B1A020E9824800FAF2C108A327CF3AD98B990C58A9325313921A0208DB989ACF63CCD751D5CFC72772C7A4BC63B080C0E5A4B80B53D33330512EC79E121FF69E85A4F744C45E2960BF7945FFAD3FAD2E9E8F8F3F9B1CA541B7E8B777957A459F72B902D5564B788DEE38624017FD98E3A049E17F6ECA81949B01836F6031DB60669F87B855CD0462CC1CF47A196EF48B0B20FE0E086E3077A0C0135EE0A13F8C0ED6FDF47B01496363037A7E306D0BE388013E9ECCA1374FD0C3193CCE6CDEEF7535233FC4AD3389F77F05423F668FF2269501CCBEB5B7BD0C19A39C1B1EC79424E501A9544A5D386EFA09CC1EE5C549AF23B3CD3E03DE0DD48FD930C26B6B46B8D7B1AC0BDADCAC5E705C678FF15610085EE011E15E23048577AD3666236EBE76C67C9D8D88AA96DBD0EC5F9D3AFE8466D4277C86CDF6EBEA61F3B8FFD6274EF437A2D8B35CDC3AA92CBCC5DBAAFE3FDCB5006EDC5CFB026E1EE4C0AD1BE5BBF80DC64B9346FA6DBDFEE6E7016E0EF9B4F1FBC15D0BA0DE68FC5B269DFE040602C7D6B89DA28491BA384E8873ACDF3B04391CC62420BED326D23AD99F5FFCC1B72E0DBDDD619AF47B7FF4C47BF066FE2516D412FCBFF9B2A3245AFFD8A1BF48A9AF5F357CB7F5FEB73E2FDA1BF492A5E85A43EE27F612A9FEF7153D29C95F603DF6EEFFFAD72F5CDB9505A432E98F40D243D94A1009376307BAA1428A983A5C48A63F8E31A24FA01D26A4FEC21A5148F6D8393FC333F014FE7AE8962DE0A31FFDCBF9D7D6AFADAEADAF3B8C85812C0C945C6322D7359802A5233018301DC584373D373B0B7B16E6129833D24D0D1752A2B5587D1304B15DABC1D5ABD762EFC00B3A38D1FD9153B41343CE63019FF667A6A75869BA38FDE5CF7FBE7A4B16C0B2FE233FBAF053E7DACA8A786F5C1AE1683A9D165FB14C9DF9E237C1540C11D06CB6C4A024CD755DA8D5EBE26D8BA9B0EF1A262A9B5BEB788CCE938214D23AAD0E78986FA4B07D2A15D0EBF5A6784F51CA0DFA71BC7EBBD9168B5E451B3C1FD5A57ADD6E60A9A9F05C9D96E00F450FBABE9B7291D60D6838C654DA150A4473DB824B44C36B6C6C6D42373C17B573F17CBE56CB211ABD894F5FED4634F13E2B3C115D4B9405E5716C5BAFD5DDC5B9B98771EF9F6F490078D2776E57AB2210CE942AE0F7BAD06E3430D5AEC3D2BEBDD0AC77A153AD41BDDDC08B6DC39193F782D766D06AD790595B3037370319ECC79151ED56031AAD0D98DFB388D9621BDAED3AB66988EDDE0377E0B95D459B9E2983E714218537D76A6DA280EA5099A940B1380FAD461DAFBF2568330B0B50C84F43A3BE0DF5561519C92087D72BE62705ADD1DA866C2E05A5D22C323E030D1C6373BB0AD9520E2AE545A14044A3EBCE9667B0DD94A2797E1B0A850AE40B2545EB226D7666592DD7211A73185426E7C04561B47B4D5133CB64F2B0555B87B5CD75F418CEBB6E55004EBDDE782C97CFA26637C1EB745043DAA839A885BC2796DDF550DB7A5E971690C2C444016FA40B3EB6A3B6A4D180CAE6B5DAE2B7D76B636212D4465ACD1A747B74AE0E6A4C4F3C4B4C8C9734C64AB86D893248B787D7E87504BEA77E24004923AD6E34AAD8B726C6865783FCC4B4412366D02452BBDD0AAE8BB47436259ED869D46B8A962D150C1A1A058EBB8BB49CA2811BBC18900A038D46404BE733A29F831D1CE443A7EB090BCD92D5E27FED56F35DB71403FEEA939F79CB4F5F7DF5DBDFFDDE0F6173631326F225E4A72F06818607E95C117AED4EE883194CE00D6C553BE82E5C619244CF157238002FF094D8C671E9B58E59141CEE3B7EF8DE4906A96C41CC9F3A10D0262727D025342125CC3C58649BC7F3F7DAD802052469B93CF6EB3928AC2E6AA02FB4102F80B24A295ABE98176370DD8CA221B0C0336783B231D2682C0E32CC75221A25FF1EDE46269D5334F49A78AFE426338AC651E8996C49B820E13A5141B2999CE0D3EAFA4D589C9F87C3B7EF3FF6E9BFFEF8851D59403AE33EE6D35C00BD0B13AFDC43ADAE5537D1D56C21834A509A5A80EAFA3AD4709F68B7EDDF0793534B50DBAA8AFD5A6D130E1CBC030755867A754BB53B71EF19F4DB1EFEDE14B4149AF06D074FE0F97B82466DE617E7A1589A814E9BAEB925E87B0FEC8762611635BB1ED2B6E0D0B113180B328246FB8D7A15EE3C790ADD1957B4222A41657E2F702FA295CA45585A3E82BFAB8A36BD300F333373624C44DBC4ED9E7D07A08CE39034DEED4119EFBB8CAEAA1ED2E84180999929A1F54423214C55E6440D6D13F9B58DD740819FC586177664019FFCDBCF7DE3A51FBDFCF6AF7FFB79742B5DC867B3229866322E94CB9370F3E686F89D466D7229EABB0E54AB2DD4066C83834863F0EBF61832B14BC244AD20B34C41A3DD13256EEA97416B99AE94E1F26B2B782CA368A58922ACACAC8B9BC96452E27C1464B7AB4DD43447D118A7C0DF56340ACCB478B88BC294B489521103FF761894035A2E97C520DF16C532B29A0CBA247221BD5EF0DE0A6C26DA31E1EB1D45CBE532E8627AD836AD68F94216E314DEA3187F06950BBD829312C79ADD9650E07B4F9E78F66F3EF1F1874616C0534F3D35BDDDEEADBDF6DA35F79FFEE33FA1922BA1F9B79516EF47CD669E83AE694DECD3F7F8DDA7904925A1ED9276EC9ED3D06D796ABFD369C091E3A7049A91B4D9B969284ECC0B3423698B7BF760209DC51B6B280BD877F0765482E9D0BAB6C4750E1D3F81C2CFAA7E443F76F719F0BB4CD18AA53C5AE6226163459BAC4CC01406D36E27BAE6D4EC14CCCFDFAEAC8BBE734B7B5041F618B4A5FDB7C344714AD138C6C3126A7CA53C2D689D1E828399BD62A268636B05C8019F387AA45BC9C2E4934F3ED91949009FFFE23FBEAFDE68FCC3A5CB57E04B5FFE0A14D16F1730D8D09BD373246544002D0CAEB96C466813BDD9B0855A4D70329F434DCFE6F09B82F5AD86C807F2D8268B6D27CB2578E5CA353C5F06D1097DD3E8228AF0EACFAE21737342C388E6A25BB979635DF491D7E8A1CFADA27BCBA095485AABEB2312AB07D6857D696C75D4FE0EC261499BAA4CC295EB6BE02012CB65035A797212AEAFAC097496A376786FD97C1E36371B782F5D4523F85BAB23A0E8453404BC88F2BA060DA30A74D1B229CEE5D0223ADD604520C7D8D2C1FB470B80B999A947FEE289C7BF3A520CC8A4B367F3D91ED4107266D09514F313A871DBB05A5B115A76E2EE7B70BF092B420BB605ED2D0F3C885A8638FFE656E80B0116F61E12816F75F346A8EDB35040B8D74641ADADAD07DABEB4885A3A8788A201EB216D79DF3E281551A3F0DC6B37022BBBFDF01114D694B896A41D3E7E12A169E08F891658C06948157301EDE61A5C7FED3558DC77483CB3256993951AC68179C12441C3EB4E4D5730B6CD8B8710E99E883683D63933B32F80B9216D01C73B3BBB2CF665DF251C6F40430BC0FBC8168BC8B332BACC3568776A28F81C2A55FA3164ED6802C064E5ECC4C4046AC49648363A88935DD74746E5102BCF89B9CE144679829E857C0A96969081E8A2B8D7437FEA42656A02CD791E36B79B02319166A7D315984133AFD65A02B6E60BA875990AC693325A130633EE85B429DCE6A0D9AA615F0F998E5697C520873EBFD9AC0A5A21A4D1E280560BCFC73CE18BB3482358DC211A9D0F21345D9FD04AB7D556B4A949640EC14AF1AA61A2A15560DC6934B683E40BDD0AD18AF91C5ADD0D84A99D8086E34BA373AF55D7455E2369043F035A5D5C2B83D7A8D636108E230CA6243545895DFAD790B5BF3B5400FFFE95AFDC8B2E6389A4767DF506E4D2187C1156651842341CECC2FC2CDCDCA8212C9C400DF244B42F14F2E8FB109EA10BC8206E2686A4B27928149D3069F144DB1442BA42211D3EA69413CB5D9C34993F9E9B16FD6A34CA3F1823B897138CA65939829D44CB120DDBB92E0554A465749A836EC6A4A511A180D69772D50CBA5527E3281A9DBB86312AABB523B7D4C2DC44A7657239E8353D8396C680ED63B0963482C829E41BDE2C0AB9271668150BF93BFEE0898FEDFDD38F7CE8EA4001A4DCCCD962B120D2F31B64AE88D15BF57A18843043C4C80E2E667AEBEB2A302DEFDF0FD3D3CB8882AA8A76DBFE03C888B2705DD25C0F1C3A881A5414AE45B63B74F4186A695EEDD3F7CE9377A10C535A70DD8613F79C12F9834E3B7EEF7D98797B6A6CB4BDEBD45BD102BA26EDCCFDE22F5B485A1313B513A7DE86597D4BB559BD7A45B8AAA05D406B5431ABC62CB7D7EB2A1A59F76465C9A0CDA15216CBB318073A8236315586225A7D9BCA29590CFE98C856D0EAAAB5FAA3C8E2CF0C0CC25F7DFA6B4F2F2DCE3FF4938B97E0F71FFF339829955018699428C23534A54C2E2FEA3402D2A5C49228D43034398475A2564413F7D8D6C520D0A8639223EA3BAE684F01B98D6649C18D60A4809254436A34C31A5340A354B381D720984BFD09D25231B081C1559C5FD47D5CA0724EA7E30BE84A74BA4617F17EAF67D23A025E3211CFC4D814CD172E42D1BAC10387921624560170913452CED5B52DB12F6994385EBDBE1EDC13D2F21883B6366B01AC46C090410FF15BBF710E3DCACA973EFCC1DF7E4F5F0B78EEB9E7CA8830DE318FC1F2BFBFF675D456576487B5EAB6D29E3BEEBC132DA2A3F61B14944F9DC1768822B63714FDCE1377A155EC355EC4C41015103AA13A4AA78D088675C4FB2468BFE9B7CDB6FA8B9F7CF99E519376F42EB40A44249B9AB69F3CFD16A4F5623442291BBA559C7E5B48BB19D0EA5B70F7E9FB435A08AF8976E6ED78BF2D8BF600D29A8A46B1E9E4A9FB15AD32554225CA8B7E7EAE8BB43AC2D432C6B5D6C3E7CF9F4F9D3B77CE4F140073330FCF4C5532D35315B8F4EAABA2A4D0A0BA08B69A9C9EC413978359AA1487322650935354B359C0E3948DA2C622849CCECD08F44055C86A7D03E49C96FC6B17548E206D73495B44B1212B0E3ACA2405640735FB2B1769858BC1F4F5A2C1A3A01883100C14277230B73017BC0A3346F3025AA920F202A2054B47341A9B13013CA0E591B62868549FB2693DAF63D018D1BA513BAAA476F15CA4706E98B411BA5A989B2D5DBC72F5AD7863DF4C14006AE7596AF8CAE557E1A1773C006F3D7DCA98837512261839244F53326E1DE5A0B8ACEAFFE29C4E58CF67C6DCAF03D6DF6E512730EBFD8E232783AC455D492B2FB85A36602F6CD2A7FA83EBF0F83A2663E25F5798F000E3D63859740FDBF59A70E5D9947BB6AF00D00F9F2517D0409FBC8C5960BFB535F109908419A641D3905C5BDB3060A6E9A9CFFE1D9A7743ADB78C66ADB8F13762B8B6E2C1FEBB34CB7B6F835F7DF77B8CE9C8A4FB499ED81971F6CBBEAF84F37569A93AC2568C0B1488FF382680175F7CF1380AE0803DB7993C0D684F478E7253D6DB76870889DC46A351C758D1369F94D404107B8A32E17709410405F89D4D438E3EADDA7FAEBAEF9CF1DB3EFDE9F333EF7FFFB90D43004E367B36C386CDB10E92FCB039E34173B5F19B5AB97E15837F35B6FAB9DF6F7D5F7F86E1C6EA6A381396EA3B1D694F9B0EFAB357C326F647B0161732FC97F1C7170D0164D1FD70B6CB150EB13F2135A290625AC6E1D2C58B628A7018E3935EDEAD6F1B8D06DC5C5DC1BC647F82D68E36B1DFEF4DF1FD956EE8C4FEA38600AE5FBF5EC46CF141EE2698E22813E03B59E130C8B569B406267FD33333CAFF1B9A6E3FD8A13D43A096C2ABF60CAE5DBD0A771C3CB8A3150EB732B13FDC5A549F478D44ECA5972E3CEAA4DCCFB968ABC1BB9E04B8001EE116842A843F31DFC6CC898BA7355CFADB4A62768AFE7539AD8520630FB6411F01081C4E857B47FC25146AE00C5DE13092B50CF83385839464149060C7AC1D2F83B1D6B52608C94DC1DDEF7DE73B5F1416F0A13FFC9383C8D3F95B5938A6AF62BBC5756704FBB902FE8E44784E4453EDC267039CE02E852CC5FFF89F5025D1276825C4EC467D1D13A93A625E93F370DC6A9D89138C2100A28ED034A58792166A26E7DA98823FB4E38821B8C1C579C49BA09D1837AA2A8DB2902F9E5402B87CE98A2B71BECD592A82DD7BF2084C9426E01BCF7F5F64A0C78FDE0E7B1616E17FBEF902262A3DCCF226E0BE5327E185EFBF045BD59A26948122933BC35BC5A5BD33E5B83562DF235BA737A0799F078BE76721554DC1DBEFBB0EBFF0C0267CF6EF0FC18DB53C54BC16FC7AF567F05C7101FE373F95781E9A88532EE8E0DDF77F1085F264DFE5294EB066A7E7A7C2FDF0A10D9609F7694A02716EBA28A6F5FEBF7FBC740BBF4DC8776685ED4C143B98E5D6E0F2CF66C534A98BB954A5BE0A9DC20C3433F964D377E0372FFFE05B4F090B9828959E5B5E5EFAD8D29E85E3592AC8BF011F519C7B033EC1C3256FCCE7E8B1E12EB7D16CAE5CBBBEFAF22BD7AF3E9F580DFD9D0F7FE42E1F9C47903FBF82477E1149457B39B8B3239BDF81504665569FEB8CBA64DDD9C9409DDD085F44901FA3123CE372F6344BF9CF7EFC8927560796A31DB1060F9C73E7CE6102999E748A9587D2AEFB1022BC19074CF782996AB9BAB97E5BCA4D751796F7BD2C39C015040A17F604CBB57918586534E4E1F514CD8D7E734716611CFDF102AD0F371FA37078F41408453FD99F3932308741529E33EC28CB350E306341A8E3A4A4AFD6AE159E0BB9C67CEE5EB9F8324D33C2E2F26DCFE64BC56AF47E26CE1055AE751AED67AB1BAB57B2D96CBB56AB759F79E6193FBC751E1300DE94FBD8638F6572B95C01B17411F7A7704B4FC62CB9AE3B87DBBCAD0F9EE795DBED361DEF158BC54BA36A069ECBE9B314F275730FFDAEB99BF361A228DC752693A9BA34676B1EEF216D1BB7ABB85D417EAEE1B78609620B79DC397FFE7C8F042104F0F8E38FBBDFF9CE77F2D870161B2C61C32564FE2CEE9742C6E79C21CE546AF2B81E7F487AC06D07D7E03B741543DBCBF18C3A064AA9F0E3E1B68D3C6C212FEBC8DB353CB482167163737373FBE9A79FF6D2E4723EF0810F90BD1551A309D63491740DBF37B01349D9C10EBC8FC6F25EF43032B78FD1968ECBDF836E5AEECBB6F2755FA3F4D5DB78F466D93EC7E843E50DA22531D26EABEFDBE319655C6819F25E187DF1D3CDE7F3ADF9F9F916BA77712C4D668016E0A344AAE84E9A9D4E2766AA62E541F841F3E1BA56387D12302934DC8EA485A552C918FCE5CB97FBB62D140A236BB8DD16C7DFB7EDF4F474DFF3A28730F6CBE5F2C86340861B6D979797F9A73EF52941FB3FEFAAACAE1903B9AD0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (71,1,'PBX_(128)',0x89504E470D0A1A0A0000000D49484452000000800000007D08060000006A326B0C0000000473424954080808087C086488000000097048597300000DD700000DD70142289B780000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000038034944415478DAED7D079C1C65F9FF3333DBCBEDEDF5965C72472EBD4012D2494802524404094D11959F88288A227F0B28C2CF0272A754292288201D0181F0A36890403A09E9C92597E47ABFEDBDFD9FE79DB2B37BBB97BD102021379FCF7B333BED66E6F9BEDFA7BD854B2412906DE170494827D0B6BC1B8ECF4579D1C4502F7D822D5CA66FA112B65AE0EA753A08B86359E0AADF89B4FD8485841AE8273C0032D4745E25F46CE558AEF5F20BC655BFE3AAFDCA39272208520090267C5EB5968BA0DAE654C78F15264864A9F1F1C3941316040A0032085F16B85C34AA22A401038E21364864107E4C55A2AA12CB0084130A04E900E0D2044FC2D662D1A98A360310B86314007195D0235209AB8A1A0C272408180054C2E754829505AFC762C4625015BD0A08E94CF059A982749D9E2EFC1096605A0949E58405811A00B210E55AAF97846DB6159596C5633153221137E3F926FC32780C4B4261021EEF20310107491F22B9CD898752B639917A9288E194A3B25192719BE35231A6FA8D163D098FA3751C5F2BCA737C8417F810CF0B218D46E3D7EAB47E81173C3BB66FEBC1F3FD2A2084556AE2C401409A3127A8844FB5DE8C256FD197BFB641230820083C16412CBCB89DB29F571D1FB40FD7FCD0FBF9947DF45BB52D5DC3CE91D7D23562E1C435276DE39A636B02616A8946A38E658BE69D81EFE6C5E29380104AB30B12271200D4B55FAEF9162C562CF6255FB9F2DF9AA1844C40188EF0B380410180245CB5E01580A880912E7C41163A03020A5B5EA714D407E188F3F485732FC0777362F1484008AAEC02A60A4E3400C8B59F846FA29A8F251F4BE1B215DF7C85095923B00F2A6834838497CA0443083B1B13C820501F57042FD57E2153EDE7C47D5CB2F693E06581F36C1B1420D039A170D0BD64FEDCAFE2BB0D482070AB582022AB015CE2270200D42E9F4EA27EAAFD36123E96E2332FBDEA29B1860A90673581496F9084C1B1B55833858CD44CCCC1E1471734A280D87D38F11C1214310747002060A96A392788359ADD9F4BA57E85EE79F119385EBC1ED87DE59A2E5F47368280B41FA3C3A0D76A211C0E7A4E9B37E7DBF86EBD2A10F8D258E08403806CF59B24EAA7DA5F8CA5F4ECCBAFFE2B0962F6D409505654A0FAF86A1A4E2F9C526BD5FB87BA46C87A1F2145E8477AAF436D1DD0DED50D7C02BCA7CD9F7D1DBE5B37963E2C0E490DF8D56AE0440280A0D2FF6689FEED584AB0949D7BC5350FD8F2ACB0F0E4C9390BE0980380A43EFEB36623B20EE75B32FFD41FE3BB7561E99100E0495303271C00B42A0010FD174800A838EFCA6BEF29B2E7C3EC29759F03006C400648F8972E9A7723BE5BA7048001C90EF0A9BC010240EC44018046C5006AFD4F00A83CFF5BD7FDA9D09607B3268F1B1E0084C182FBCC01B07623080800F4027E8EEFD621A9817E2CAE0C0C70C201C0203140BE0A005517FECF0F1BEC79169839E9D3074026C3EF70F71254866326006838082C993F2713007C23004865803262801557FFA83EDF6A819327D61E030048DE336700A8BC8B55EB368296E703A7CD9DFD8B2C00088E00200D00175FF3E3FA7C8B19664CC80C80FBDEFD3784A2A83679D1E523170E24F78C5C3D20978FFE95A03AAE5EF3EAF3B9B463E27E90FD7B799B39F77CF21A798DA0ABC9CF873F2D5E921100EFAEFF10743C17583867D64DF86EED2300C80100977FEFC6FA3CB309A6D58DCD0880EFFEE371F0130024A1642C4772EC08EF37A5B818D65E7A594600BCB7710B6851052C3875E608007205C015D7FDB4DE6832C28C7163320260DDC126163BE5A4DACC0B724856506A30A75205320B7069BFE5F02D9DCFEE2147F2D8F5A0DA4E867C3989EAD5F72B301AE18B35B51901B07AD366D02303CC9D3502805C0150F1CDEB7FD1104B24603A02C08C40C8499F0B998DB78F670308A9B1FFA1FE2F972A7C2A3DFD03B0FF600B98F43AFFEC93A7DD3C02801C01F03F37FCB2210109FC2200791623E8345AA5060A526D946BAB928D536A272405947E4CA01CB25CCB7916CEE5F8644D662A9D13ED83A451C749593E691B54D93FF60CA03C0FB313A4F87F2C16A3D82E94A37A884722FEE953278D002057005C7DE32D0D4A8C9D2818C12028563ECF1241244C3189A34ADC7062364FA34EF54AC734BC9096DC11941A2CF0EA4C6012588230D8D3E065B523A77E41163C249B88509E41AB05934EC7AEF3E33275D2841100E40A80EFFEECD6064E4ABC180D7AD06A344C8072B64E4CDC2405AA4EEAA40B9693337F2A778DCEE1E473D48922765C74FB048DA0D47A41FE7F9267A0AC41641CE61D480D4B1252839138D117320065347D3EDF0800860380EFFFE2B60632F2C69415A30A301FB7C9A0DE81012C0E48C462FE1953465440CE00B8EE17BF69D068051837AAFCB8CF056CD8BA83DC40FFCC19234660CE6EE07537FFB65E8BD4795255D9710F80359BB7E18B26D00D3C79C40DCC15003FF8D5EFEBA9E1C64955A5C77D32E8FD4D5B40C37181F9B34F190140AE00B8FED777D46BF0CC9ACAD2E33E19244602138105A78E84827306C00DB7FDA19E4E1A5B5172DC2783DEDBB8190454018BE6CC1E0140AE00B8F137F5F51CBA5063CA8B330AE70F6FBD01A198F4AD042961433EB920AF93891D2569A34AECA4247DD489227A40691FF3EDC95DE4F8E46F2569241D937201E3EC76F8CB1967664D06110016CF3B750400B902E067BFFB633D24E230BAB4E8B84F06AD5AB7891A8404962C983302805C0170D3ED77D5C7E231185D529811009B5B9A593B6A2501C489AD8539D60218A466DA729248A4672ECBB67C8E18D64D269192092021659B97188653E509EC26139C31BA3A2300FEBD660303C0D245F34600906B1CE05777DEDB100847A0DC6E0193C170DC26833A7B7A6177E301D06B357E6480913840AE00F8DF3F3DD0400C100A85D91572A2262516CF6A2F28A15B5A8BEA5AACAD02C72B891E516D8B615F10E4A48F58DB0549C0AC8DBFC41C644A50981704B9F78FF49B257C284DC529717FF63B41D98A04C8FD07894D22A8A2E85711DA079170D87FDABCD92300C81500BFBDFBC1064ACC88B1F538EB6821D37C6A572E311FA0913A9108EA04D1A09E3E998E0BC90E27EA7E81724E41562D526766CAEEC5E371A0D6DBB11816DA46A0C6620920C0D2EF782CCECE632FA9D5B2FB793C1EFFE2F9230C9033007E7FEFC30D9C54EB818180537A03890257F50E129282E5D3BB78B13E84A94923A563A80C80F4FD9CBA4B9894E221002412AC96539287404085044E408833E1E37EF44CA2B89DC06D0D3E9386D7B06B7D5EAFFFF445F34600902B006EBFFF9106FC1AE83EC5C1ACD78156AB513A632AAD7C06E9EE61848233E8EB238A04CA1D42E563AAE70B8482D0D2D189B5DF07C160C07FE692452300C81900F7FDA5218C4660519EE9B8CE051013BCF3FE3A648F98FF9C654B4600903300EE7DA421140E42B1CD72DC278356AE5A4DDDC303179CBD7CC40DCC350E70C7FD8FD407824128192E008EC164D02B6FAF82280260C579678D00206700FCF9D1FA50C00F459F01008E7632E8E5B7564124140A5C72FE392300C81500773EF8587DC04700301FF700F8E79BFF81482010B8ECC2F34600902B001A1E7ABCDEEFF341611623F0AD5D3B204A834DA9BC014ED5565F19B1437D8C4F3F2624C3C0BC3A1C9C0C0327FB04A41F5315BC47A9D90C5F9F34396328F88537DE813002E06B179D3F02805C01F0A787FF5EEFF579A1D06A3AEE9341CFAD7C0B427E7FE0CA8B2F1C0140AE00B8EB1102801F0ACC868C0078F483F720148F2B3559E9C72708AA3E7C9CD4034848FE96FB0ECAC7F8D4FE82F23520B3897A1BA434B3D2B348EE85C4C3689B0DFE77FE828C0078FEB5372110F007BE71C957460090AB1B78EFA34F36B81100797A2D50DBC0CF2E1974F806218392412A0010889F7FFD2D6A11E4FFE6652B46E200B902E0C1BF3FD3100C47C0EBF52A113E41D51E5F501A7470C9A48E20F70CE2929D3638B103094BF0F0C9819C38413CAEF4F651D6A9E3FD01270FFB060A3B302E90C3D472EA584A00B1B12BA59E493E147E53731BEE8B432C1AF37FEBB28B4600902B001E7EF2B9063A358A7A3E2AC5D995506F4A2F2051407C8ADF9EDA654C14BA2814B1DB96349A28C7A9C708551696D5A3B87F8249846DB3D83FDB8C8BB980445CCA072454EB98941C12F3058256033ACA536805408FC67FD5E5230C903300FEF28FE71B38491891187DF9B894A69552BD29B42CF5F2518FDF4782174401CBD4AC085D2EAAD46DB25B9798D44D300048252EAE49E82200202523C88001F2366503A53C310242906C123401FCDFBEE2921100E40C80A75E6840DA8460D08FB5484EF71E5FA1607F20085B76ED8603CDAD100E86FCD77EF3AB2300C815000F3DF97C83CFEF03BDD4C0E3B84D0621733CFAEC4B1407F0FFF0EA6FDC8C6CD08EA5074B3F9EE34286F0E974BAA0C562896089EFD9B327264FA3F0791D36362737F0C1BF3F5BEF727BC06AD01CB7C920B9B5D1DF9E7B199C2E67E0FF7DEF6A02408746A3E946C10F68B55AB75EAFF7E5E5E5058B8A8A22656565B1E9D3A7C7264D9A9478FEF9E761F2E4C9895B6EB985A990CF1318720680D3E5823CA3EEB84B0629E3164806EA5F9FFD27381DCEC0AF6FFCE12D28FC4EACF13D287887D1687461ADF7A3F083C5C5C511FC1DABAEAE8E4AD648BCBCBC3C6EB7DB13BB76ED52802031035BDF7AEBADCA47A5E38A3D738CB3474E00788018E03302C091E602C8A8948D3ED1E310078C7EE4E917C1E974061B6EBBF9370683A11B05DD878277DA6C364F7E7EBE1F851C329BCD6193C914C37D61BFDF1FC7E3D170381C457688B9DDEE38B2429C80401F10B7B977DE7987ABA8A8505C988E8E8E04FEA66309F93C35688E2550E4C6004F3C578F1FEDB80100CF0FF636A4AF0E8F3EF712B8061CC1C7FE7CD71F51D07D2854070AD88DC2F6E23A8880086109232B449121D89881F81E61145E18EF17C26DCA25C9CC00783D8FA0E0114C7C3018E4704DD3D025F0DC389E9BC07B2406060612322876EEDC992075920E8ACF0A103903C0E572A20D901900AF6FDFCAC656E55443BCA40E12C50F5D864A140D714DB6F3CB2C66B86ACA5485A2C5B68371D646F089175F03B7CB195AF9E2D38FA0C01D55636BB5367B81A03318C26807A0D0B57174716328C5386A7B0F1F09EEE4E2B101BC0F8D224A2580E008928051B01C82858DB22E10DAF113D050342874365D0DB2478CC61BC6F3E3785E1C81C3E621E8EFEF872953A6C43B3B3B21DDC69055C7A705889C00F01031C01000385692419C2A19F4DE452B9456C3B1589405B1229108BCB0F22DF0FB8311B7C7BDA7B0BCB24AA3D3DBC5E0514C0249B281A9B42F9688C50EFA03FEDD11BFEF8932B36E230AC88FEF1D410153CDD7A3D0D93C4A1C853A1173888518FEBF289D43D3D6E0BE289E1343809157114375C2C040A000D53C86E92CF16930446E00F8073280DB0516AD3623009EDEB00E2234B036373835AB6604906819D4C7B964BF3F3E3D3194960A8694DF7CDA792220E81E55160BFC70C6C96C6028127A381206FCE8D0DCDD078DAD9D6C6221B5B0530020ED8FA9F6074321D8B1773FDE270216A3716BA955FFFD2A9BB919EF2F606D37179696962D5C7AC6736EAFDFE0700C74BB5CEE3D5EAF67ADBFA767B5D7EB7493FAC012C1FB45F0F9A26A5040729EA214969001B17CF9F24176C4D10443CE8120B7D70D3A3C5B2B688EB96450726610295E89DF87025724742A5EBF1F1A3B7AC1E10B40A6DA3E08042A00044341D8BE7B2F04A8538CB4980C7AF7ACAAC285F83F35586C5FBAF8D2DF59F26CF3A8F34904FFAFBC26C00C389C21A7D3DDEDF37B1B9141D647BC8E77831E4F1FCA9E6C0A02029B9F80D40F0182C0E1F57A63A8364885C4D1188D1714143035422AE368B3434E0078F4E97F3604C2217079DC34CD98D41C3C39349B1C0E96B77975324790CF4B2675788E537E27133E208DF095BC56D956D917BCD42984937A17F1208794998DC7001067944FB53F0C215C7BE3BCD84F2083A0330240EA5F403DA13EDAB58B4511D3974ABBE586BA12FBB6454B979F5F5B37FEFB94A7480700ADC369BF69EDF67AC25EB7A72FE8F7354642A18D89B0FFDD98DBD1867294E73364731C22BB4424401000A268B4C67D3E9F32D3A9EC657C1C30E40480C79E79A92186141FF007C18B358290CD4B1D34783E19C39727654A19AA2D25C5C3A90D72D99096123EE23E25F9939E0360C9A0B8F21B581248CE0FC495759CA2B72C5F1087A2B23228AEA8CC20E86C20480280687FCBF69DC81E818C1FAEBAC8FEE0929953762F39E3AC3B7941A0995688D321148E802F146109AF4C80C8060C045934E0F3F4F97DDE1DF180EF3553D8FB1FBC650899013F77044F893240844221C60EA436D003891F3C783081FBE2B2AAF8F5AF7F3D2C10E40480BF3DFB52839862C1978A4459F72BE092FD0239A9C70E2F09580D06BA3DC7A7032199E801A91F9FF8CC321024CB5D127C42CE024AC9A0B8DC252C2E2683506C90C05A1F6725C6E8DF9C9F0FF9651549C1C6720180B89FD4C6C6ADDBC1E3F565FD70534697DFFBBDEFFCCF974C2673B5BC8F9EEBA1FF6E85979BF64395D9029546334C29B1C394F202549D20093D3320223195EAC07530108CFB7DEECE5830B44E88059EB643743701029F9131042DA81EA2B862DE066D53B00AD5445CF22612475105BCD8400F160CF8F0458E8D6410014CE079C5D5237B8A0487BE38F4797CD0ED0BA71872B9B2401855DDFA2DDBC0EDF164FD686887246EFBC1D5AB4655572F55EFEF7507E08A175F873DE014C73FC467D64705A8001354E88C506A30C1D83C334C2AB5815EC3A5083F3C0814A90009FA03E170D077808B4456E57191676C5A36DD8D0C88B04EA7C3D70F93EA88A29D1047D732A7790F734C07BFD0E0F179C1A01EF6F51800002F5AC48AB51F42E10F60ADED09886D01626A61C762870500A9B6D51B3E049FD733E4479B7DF28CF8F7AEB8845747F668F9F92BEFC3D3037BC4C12EA51ED162CF67715A55028526C64141440745BC010A753A283719615CA1194C5A2E233B8433B105B2702C12F2F2B1C84E5D22FE6AB9115ED026E26EFC2E7EFC0E21648288C40489A314087AA6DEE5F21E53C920D99020C131E1A3CEF6A0BEEE0EA60A7E68164802201245E1AFDF0414F2563E8ED4233A1E4B66854B2B46C1CDD77E1368F87CF5B2A6A903AE7FEF5DE8E783340A99F83E92D0E3FBF783AEBA1A04BD5E0282DC3602C181B7368734900F3AC817B460D76AA0DA6A00B30EB2AB0B69AD48975ABC44C33D108F7E608A476F32051D07DADADAA2B9B0400E00E02BFFFCF7A7EA5D4E17D84CFACF341994EAEE01B301A2247C72F50201E88D704AAFE0E100806AD4FBEB3742FFC000BBAFA0D142F7A17DB07BCDBBB0E02B57B05ECDB4D88ACBE0BB5FBD08265657A57C44FA1F573FF316FC37D289B55D4C99137404C9EB49F4F581EFD557217FC5C580140E82D1081AB399A6AF4B1ACDC02672060E6D1A7D90074B540B663C68C5772F336A902112A267A30200FDDF14AB0ADFDDD775E86773C794DDD3D4D4147EE8A187E287B305726280FB1E7FBADEED7243FE670080A4AF0F5272477CA538F3F5D19AC69AEF43EA27E1C7E531033202203308D0B866C2EFEEE915858902DAF0FA0B10F28B06E0FC0B2E079DC90CF6B24A58367F0E9CB770F6A08FF8C8EAEDD0B0FF434868C4DAADE145F7940D8081AE73F8A38FC032731624F0DEDE55ABC0B67001447BFBB17483BE7214984EAA15CFE5780508921BC48A10E0C018D100C50D0D78FF02FC3F463E865E473445BA7E472FC4DC033F99535BF5608828115FE7706A202700DCFBB7A7EA3D04802CCDC23FAD6490E86EF252F3AF188DF4017E127E08C1C02567AF57EBFCA100401FF0FD751BA0A3B38BD572BAF7C16D68033807C0E71A00BFCB0933BF7001D49D321B6AC78E812BCF59CAC642502FFD9E205CF5D29BB0877388359F002019A8913D7B20D13F00D6850B21E1F582F3A597405F558900380DFA5F7A118ABE703678366E045EAB1199C76402EBC449C0EBF420A07DC0492020A6530041ED1BDD3C4C3368116C5116AF90973E642D3D97B87E4655D1A3050505C1818181E8D101C063FF600C60B718330AE785CD9B2042FD025421597950A8943E0129616221C5854CDD978CEBF3AABE01721089A7E1EAF163E8B0CCAC1C0B36A339950A552C104B37FCE4FDB87E7FDD7A68696B070D7EF0CA9A71A03718524732273021CB58AC16B8E8F4795090671DF401FFFCCE47F05AEB41E8E07C90D0261BCB6AE899D1980CEFDB473A02D03D81BC3973C0F1DAAB60993C05A93E0EFEC646285AB61C3A9F7D066CA79C220E6533E080FC192743C43100BA824210B43AE00D463948C2C060F16860AA55A3A8033906D2DEB803EC26FDF72714DB9E0CE04276C073CF3D17FFF80078F449D622A8200B003EE964907AD0076AD96BC435E9C72BA7CF82196894655AB202406281F7D6AC83432D2DA0C59A5637791A18512FA7CF5C2E6FCF1A5F0BE3AB2BB37EC440380A6BF677C0C6964E68C39ADE1EF042BF10044E2F0356F404A846879A9B2170E080D8442D14467BC00005334F85FE0F5633C1070E1D62EB96A79F026BDD782844D5210B5E5E97FAF45063E1142F8158C08FACD5DFD90676A3FEBB93CAF29FD36AB5FE8E8E8E08D90143E50F7202C03D7F7DB2DE8DBAACC062CA990178552DFEB80CC04BF42EBB531A5401636D0550575A955528320B6402C0EA35EB613F0A418756F90CA4770B0D812F881359A703C064D0C18C713560B79A93DEC761166F200CEF23203E6AEF81766481AE900FBCFA28F0928D20365749B0BF4E54013174B135660BABF5258B4F8781F5EB2082DFBBE2CCB3536C0132F200ED81A95A039834F114AFA0F7E03EEAF1044566E3B5D34797FC13198E9AB785DD6E374B34650B0EE5DC33C8850F69D3258787F9B49241BC123B8E8B2154EAA082F68D9BCD733DF49209005B77EC808D1F6E013D0A7FFE8205D4A02375BC2269A20A3642197EAFCAE24216F8EA1E70821F6B2CC9C06E354171BE0D4AEC36D049FA7B2820F6B9FDF0DFBD6DB0070DBF2EBF1F06A22108194440102BC8D18498D7079EBD7BC0366932F4AE5903E58B178B2173A9293CFDD0B90438B5D090122CA2F845F3AE6DEC9CE2C2827BEA8A2DF7214B3A7D3E5F105DE4B0C56289C9AD98D243C53901E03E0440301401B7DF4B932E8A53BEF3AAA48E9413E0D27F2BE7A8F673A2FF0B29C9202990CCAB42C9F41BBF8E445F52862EC6406CC19ACF49AED9D01F3F35B3D78AFAFE8DB7DF011D0279F9D2A55050604FA1FA946DFCBF6604C9D2595307DDD7E1F142479F033AB1E05766215EFA2645B63CA82C2D04A34E37C84D5407767A9C7E587BA0039A1D1EE80B05C1990841C244EC20CA8556618F0774E82A26A4994EE4B887CDAD852905BA949C821BE9BFE3C07E764AF1A83160305BC94572C483BE3593F284AF11085C2E570C0111ABA8A84861839C0070CF5F9F68201FD44F35CFE747DF3BCC62F55C824BC228AB1492917F39FFA3247FA497927301CA6F29EEAF5C20F9BB2498390B1681D566CB39DB25B3800B8DD8175E799531C979E79C0DA5C54569424F9DCA8642CA679E3A03D2A37DF2420D4C1C4E171417152A35BDC7E186FDED9D0C1C9414CA439539AAB4188D47CB90019D4E870FB6B4F54197D70F8E30BAB57C14386342747965DD4F6E6F2001130523149984947BB4371F0427BA947441E99871A0331844A0B61E8CCCAAB0D56A341A6AC0422D9EC204020A15A37198103331B900E09127C46410A231148B003596E2A4342CA8021949207029291FD175E7C4FF9610FD5C39F3272781C4C11DE322D8E5EC9F34EE5F9C0DF51687EA7175602F291956BE9B5880D2BA2FBCFC2F1A1F102EBDF07CA82C2FCF5CEBA5B5D3E58105D32666A5770F1A7AEFBEBF16BABA7BE08A4B2F02835E9FF13C2752FADE960E38D8D90D5E7F08994703658576C6142C779105101D0888DDDD2EE80F6285A3C62CA8EF790A02383938ADCC8AEE6B3CE5FCBD3BB6B1B88519EDA2820AD12E0ABB1DA043C9D6D48E4B381DFDFD41BF67A58D8BDC0C7E5F9FC964A29C418CD4414E00F8D3C38F3784A311E0F1635A8C86E4E08D9F502858DDE49A9A7345B036792231080AFA236AF4F0C65B6F43E3FE2638EFCCE5307FF62919849FACFD0EF476686A1C5B5AA83745B02E17DA425A30A1E7A0660802EC9EC6FDD0D2DA064B172F64AA46BDF80241D8DBDA098DAD1DD033E002ABD928D9187C96F8BFB8DDE50A40539F975594094586947369ECA6ED9BD6B3384679ED04B64EA0ACFADA0EC0B2A5CB41D068944134C97E3AB87FDF966A5D641E9118AA82784E00B8F381BF36508B98A22C6EE0D10200AF0AF5CA563C35EAF0A19BE5D7188F48F89BB76E85D51FAC85DA31D5F0A36F7F8319746A00A8173752F0BF3ED804650536A8AD2C83715565505E54A0F019A9A5B51B36C15E14F21C04D2E409E353AEA790F4C6CD1FB1F317CC3D75D0B350ADA736037A0918AD3D7DB069CF0138800C4103689615E68341A74BD6EED8E113435D5D5D70A8710FD8CB2BC1922FAA23477B337BB651A3472BC2277052EFEE0D6B3F683E7574F1641067498FE5E406DE7EDF23F58140004AEDD64F0C0024748DD48E5F0E6C508286E8DB2318507DF0C3167E6B7B1BBCF4AFD7A9952EFCFE673F82E28282ACE792CE7EF5838DE0F205A43607A23A32EA756CAEA47155E55087CC400C48CF6430E8D3FE5707F4F60DC0C9D32667B41B0EB6B4C0B6EDBB18739C73E6B241C7BB91113EDCDB04BB0EB50175C52F460FC36CD4B3F87F7808FB61F7AE5DE04597B174CC49EC3E11AF0BF93F084B4F3F3D397AAA54D6A267E1760CB49E5C619F825E10B57489E60480DFDEF3503D1945E558333EC95030AFA27E8AD1537EDF838F151774C316BE1BA9FCE9175E64C6DC572FF8129C79DAFCEC8622FEBF77D67F04EDFD0EC5004D59C7932D934A0BF261FCE80A044305D4549430D052DB018A2DD03B9C7DC6D28CFF83DEA5BDB38BD91F3A9D5651197B5135F5A07BB878C15C9597E143666882F5BBF631738A5CCE44862667048CF56BDE077B5915E88C26A21896C43AEFECB3C06CB1A408BFA5B915D66F580F6683F683D9A34BBF88EEAF7FEDDAB5B901E037773D800008414551FE270280E4B4B349EAA796BCBE28BEB4CE346CE1D3F5CFBCF84FAC91FD300EA9FFA61F5C93D59AA765FD8EBDB007F57252E87297F3E4B8048380C1C61F1650559432404CA8AE44D5919F51F03B76EF81E6B60EF8D2596780A0725F3DE84EAEDBB4198C68B52F9C776AC667DBDFD605AB36EF84663438EDE84DB01C8304026AB1B47DC70E2828170D3F57672BD48DAD8619D3A72BB44F2A809AB7BDB67225E54E6253AB0A67E71BF4078705805BFFF8407D1869A5B2C87ED401C05AF648D4CFC97A32128100B5EED15B93BD7A86B1ACDBB011D66FFA9005AD7E73E38FA0ACB830EBB97B5BDA60C3EE26D5B80389C3B2403640D8D0EDA354F144040301C2846A8200F0D18E5D68301A60CAC40929FFBB0DD506A984D292E241CF450D51F734EE63DF63F62933C08BBFDFFB68176C4466204F4AAFD7C2A19656F08663CCF08BFABD10740DC0A55FF932F3B8E481B319F5AFDF008DFBF6A10D677A624A45C1CD689C3AF1B9725701B734DC5F1F41FFB4AAB86018FD02B8B4D0EED0FD0294C9A3F13E44F8CB279F02F916EBB085DFD7DF0F4F3FFF2243FF65E79F0B672D5994F5DCAE0107FC67D3F62C42CF8D05E289CCC0A00F3BBAB418268DA984496347A1BA284D463571D9B97B2F7CB8753B4CAC3B890978D0B3618DFFF0A36D5083357A62DDB894B0CA8EA616F8CFE61DB0E3403384A4369ADD07F7C105E79C056565A529865F27DEE7D595FF077AADE05E7852E562045437AA45B7C160C8C9082CC552F5AB3BEFAD27576C5469C1514F0671AAF67D72A2E7D2534E856513A70E9FFA5120CFA0DEEFEDEB8351A86BFFF7C61F64A57EB73F006FA2DE672D6B5402CD850568A0AC59136AC18CBA7C73E341E874B80E0B08322649554C193B1AA6D48C86225B767093EA22A372D2F8BA41C6A6BC3CF1E67BF0F6C6ADA22AE9EE80516525F085A58BD933CA7A9F54C5F32FBF0C03034EA829CCFBE99862DBCB28AFFE68344A8D1D22D9DC40731A002A6FFAC3DD7FA4C617D9E60CCAD437904FEFC533541F3F89FE29CE5064B2C2ACF153803B02976FD3E62DF0C1BAF56CFB5B975C088BE766D6AB546BDEDEF011F3CBE343D17A16169837691C8CCE37C22B2FBF02B51326C2962E37D048340604040579C8BD8B48D3D5C7D340256F97A2953FB5B61ACB68A632F45AD130240F63F5DAF5D4A104CE3FF70B8ACBA85EC853B8E3C997181BC4027E70F5B4C335575EC1329B6AC38F5CD23548FF16BD6EDF9C9AF24BF17FF7E0FBB8A45150A2EA40105926F404FA0C0028BFE98EBBEFF60742505D56C85EF2A8248364B0C80D3B59A207F5BEC1CAA6961BEE42C199279F798EE94CA437B8E7D65F64FC78D4646CF5D69DD0EB7067A5F5C3B1801662D0B16D13D48E1F0FFDFE30C42D76A8458A5FB168167CB0662D347774C28120EA65D64F21338BC455D959322629F8341599611A0282C2C7D92A00C5637EF1F053D0EFF2B067ED39D4085F5CBE14ED8BF1C986B0A8021C2E373CF6D43304E0F8F4CAE21576B37E076E0E188D469FBAB9981A009A340090D34C71D7B29B6EBFEBFE30D69A20EB1BA7079D86758455257A549D42A4A1DC4049F488FB404AF2F0EA41A1B8646E801A5E68F57AA8A8AD53DAE00D6759F9E6DBB0AFA9896D2F5B380FBEFE95F3330786F61E60A1D99C843D88D6B3DB0265F63CF01DDCC900A64516EBE54CA86039185B5E028BA68E87C6BD7BA069C0076DFDAE94EB332D14859C5C330AA6D554B3B53A2AF9C86BFF66C6208B2CF675B1361ADFB8744592FA25FDFFDC2BAF42D3C14314BC5B39A5A2F06634B47BB072B8A9F6EFDCB9332637189501C0A7018014949D924B04805FFCEE8F0F53528AB271149D123F8AAA674F2269A024925D7C94044F4AC78EB43C00EB6422F5E4312100169F75168B750B0832835607B9E8826E3474C8ED93979F5DFB6D9838AE76B04BD5DE05DBF737E724F44CC7A62165CF1E3F06D6ADDB009DC1387438BD29B44E239185D11AE7F526A57DE28A8533C1DD8BAEDCAA5550356E12EC760632B2C0502D7688118819AC26233CFDCEFB22938582D0D37A106EB8E62AB0DB6C8AE0A9ECDCD3082FBCFA3AD95481F9B5E55FA0915050EF3B0833722391F46CA00C00E24C93640892535B442CF0D3DF363C3E38C39748E9E2955067F9D419BE04A41A45924E553E2E35B94E88AD746A10F1B5536640903A7546C456AF667C692BBA5043B9832FBEFC2F68EBE8507EDF7BDBCD9067B5A445DA9CB06E67E3F0295FC502A74F1A0B6FBCF21268B47AC82B1B050EC1C09EED94F135AC7DE2160497D3EB4FB95E130D43A0BB0574463304751648E80C838CC4612F94793CB40F962F980BCB162D48E90341EEE3DD7F798C25AC4617586EAF29CA7F1A85DF87207017141484A89DA0BA4D002715416507C89E409EA4068A6EBCEDCEE73374EA4A4BED269299BC41FDFAD20CA1B86A9CBF181BE80FE6CD9F0F8B17CD81F6EE7E68EEEA45752382800AA90CF2A3CDA8DB2D26438A657FA8B9055E797DA5F2DB6232C3FDBFFD65AAC5EF0BC0EA6D7B5862299361962B0B500D090CF4A005C0411C6B39B5D73B6FDE0CE8D8DF089BB76C86B231B5702800CAF564F9FB8321660B2472B005725D02FD3D141F859F5FF71DA64AD586DF2BFFF716ACD9B819D954DB3AB3AAE852A47EEA41E4309BCD7E9FCFC71240EA96419C8A050495276052B9830537FCFA8E95EAAE9C49E1A70A5C6182B44E9DC9811D0733014BF7220B2C3EF34CD0A0804BF26D2CDCDAE774B32818B5F76740905ABE907A30E087A58E1976ACE56FBDF926F4F6F72B1F67F9A2F970C5855F4AB1F8DF479D4981A5E152FED0B680982BC8D3F1D0B77F1784C268C31455E09713DDBBABCE3D1D9A766C837EB4E60F2228FA7C81AC1EC17058201E0E4107FAFC377EE72AA8A91E9552FB0FB5B6C3DD8FFC8DCDA238B1ACE01B8566FD6634B8FBD0EFF7A0F0C3858585D1412D82689B63569AC2023A1508E86D6CD7FFEAF7AB53EA7F025246C84A6FCC91A2E33346D2E2293D7AA963E712D4FD824EAF18325614F0D88A621601DBD9D4027D68F52681209708B4ECDEA63CD9B9CB16C3C55F3C3BA525CEBA9DFBC0E5F50DFEF0390A7DE9295320E673435B6F1FECEBF3A00D14CF588BD50225ABBE5A1382DD3B7740E5A86AE88B69C02FE83F3E0BE079FD2D4D70EAB4C9F0F51517A4847BA981CA1F1E7804DA3AD1303419DE9B5496FF53946B17328093484372FBE2E98D43D500E0546A400D02CB95DFBBE156A44F2D161D52B606FFA9066BAD80D70A7847BA072F35E2E01272DB1FB5FE570C3EF1BFC4C5562E0454D68A5AC3F3DAF3BFFAF51A8D5EAF910110959A6EEB341AE6226971DD8446DCEEE676D6058C844F818E5604001DBBECCB5F8465AA840AFDBF6D089CCEFE0195DA191EE5DBCC465834BE1ADEFF600DF4A06FCF17954344A387E2FC3C961D6CEFE985A6CE5E66F9A70B949AAE73A10004F05D38D4FB87034D2E2C1074F641D0E3823B7EFE13661BA9833E6FBFF701BCF0FAFF51DB82F0ACAAC2F3F0E3D27803FD58FBBDF9F9F921B901483600A4AB023508642098A5B551F21674D2791AE93A4E5586E859CBD2BABC4EA713D027D5E7E5E5596C369BFD6B3FB8E1CB45E5A3C64659CE3CAE7269C4DFF49C63D0D7A60C9CD3ED43E136C3AE83AD9070F7C2772EBF04CA4B8BD32CFE6E388880C926F45C5920E2E8A7EE42108C25409F5FC82273172D38059EFCFBE30CC3A6CA5A704492AC402F1F551BBAF12CFF7B982C90409BA8ADA911BEFBB58B61AE2A744CD7F60E38E0E63BEF6241A4F23CE39FC7D82D7F439176E33776E11298376F5EF4E28B2FCED84F301D00E991411908FAB4220B5F561BF275902B00F458DB2D168B01D19987A5D06AB516171615979FB2F4CCB9F92595A322C8326A265033030D53336E5419549795A0CD90071A8D9016E377C1CE03CD833F7CFCC8DCBF788AAB9780285AF59E813EB0959443506FC19731B2767F2B16CF855D5BB74073DF00EC7345A451CD87167A3A30B22DFDAD07A0A6B2026EBCE65B838EDDF5D7BFC3961DBBC0A8D5764F2FB75D86F7E9A4E16F0D068317DDBEB0D4103473BF00F99F660081A002820C06ADAAD6A70B9F4B735F332E02CD2B8BC7697835ACFD46BBDD9E870C5088566A3182A248ABD5DA1024A6517593AA474F9A3635A1D5E753DBB9D8206690548456C3922D13C75441615E1EAA073F8BCFCBC3C60F25D06CC220EB9D125FE43AF6B9BD998141F797FB1FE0F193CA8BA15888C21B6FBC01C565E5E0CB2B83380D4675145820EC7180A3BB137EF7D31F53B3EF94636B3FFC081E7CF219E619D5DA4DD7D98DBA35F8FD7AB0D0D0B70175D0271700A47B066AE3505D7895F0D5B51F7260010E85CC0080C2672A0019C08EBF0BF1810BD05F2500581128467C2483D66030D5CD9C37D3505032D61F8EE8D420486707BD4E0BE7CC9F050E141AF519CC28F4C3B0805EA3850B179E0CABDF5B0DF6C222D8D5D90FBE1828C251E620481324993D01673F44434110CC7920202BE42AF421590055607BE31EB8F09CE570DEF2D353339F48FD37DD79376BF46233E837D5159A6EC0EBBBF03BF6472211BFD3E93C6C0F614EFD0F3380201D0C99B673117ACA82C2E6F0217914BC168B118B15E9CA468546DDC29287C54C051F896C0E0381A168547555C949936786384D712014E6D2ED04FAFDDD2F7F018AF2F398A178B0A31BBD072F0349AE2C402F516DD5C1BE3DBBD144D542D86805C1688633674F8798DB01BB1BF7413F9A45EE507848810EE5460E87059C9D2D285C03DCF693EB521A9310C3FDEEBE8761DFC143A81285E0D462F325F88D5A289988BA9F6A7FF070B57F10000E03844CC0E08E0400742ED67CAEA8A8482010A00A302028CC34E61EBEA4850A0A5F2E6629266122101020389E378C9A3A6B96905750E7F2878C51D6D3576482EF5D783614AA52ADF4419BD1522737CE170CE56C0B504D46FF441908ABC6C8C3A14387A0A7B7172C95632066B0B07327A1EA29C9B7C2DEE60E68E91D90EE238E5D9415708779065926B180173A9B0FC2CDD75D03278DAD4EF980AFBCF56FF8E71B6FB3CF5E956FF87DB15EB312BF552702C3110A85FC25252591F4A04FCE00C8020418C6F66197D1A34773485D7C55551519845A54073A540D7A2C067C11A354FBCDF87CB4B6AA80A0B00219A4D6E2F2727BCD8439DE1857E60D04F81FAC38970588322D2EAF9F05977A9D6EC61A39B7F6A1368A81000C74B682312F1FB4161BCB645273B05963CAE1A5975E0683C9044E5D3E845409A38FC302D430A6BD690F9C367B267C037D7EF5D2D4DC0ABFBDF701315EA2D76EADB5E9C9E7EF40A6EBC3CAE38946A3A14C419F6103600840C0910A5E7DDDCC9933497F111B903AA0513735C804CCF3C07FA5C79731E0F3B158046E13182CB8DF220381C0411A859801ABA9BE6CC2F499577DF5D2534C06FD907DF5882D28A6D08E359642B547EA11D03800DC40177477B483A5048D3E6B216BF5743458C0D3DD0EF148086EFFD98F59FF03251680AAE797F577410F7A1A1A9E0F8D2F305C89CF71086B3ECD7BE0A25E4034BA79A6A0CFC706C0D15E64401152C99E58BF7E3D3F6AD42866600602012D1ED6A231A3C797D24B3108930C025A53A452F59B31C305975FB17CE2A4C9E3CC468390B5D7300550A409A79C1E1F1B429642CF145CFA58ED028FD01648B747E2213FB4EC6F846BAFBC0CE6CC989E3A1AC9D3CFB381ACA8DA959BB40D857A61250ABE136B7F3F7E27DF50419F630E009980F0EEBBEFF2C5C5C5CCC0B45AAD02D29986C0806A428E47907A30E17E990DACB8CEC31A6093B6A918E62F3DE3E499A7CE995A52546856B7C593C7184CCE362646D3687FBFDBC3FAF50D201842D1E811E408542D89D25860EEE47150611260C7CE9DE014ACD03AE0CA0808BAA06DDF6E98503B066EB8FA9B29DF69C347DBE0FEC79F12935E7ACD8ED146FEE728FC0E7C1FE6F6210082B90E0E754C01201310D082E5D02EE0C2E130EFF3F904B40D28F4ACC1A2D3D3B8A9D1A8115F9C3C05AAFD94B9CCC7753EDE82D656D94EA81C3DB664D9B9E7CEAD1933B60CDD444E0ECE2843C76601C480C7CB7AFFD29A0691FAB82CB0A0B6026EFEC9F570C9E55740C26C83DEB83633F5F77681B3AF177E97D691A5DFE9845FA2CBE743EF462308A193CCDC55F88ECD28F42EACFD0E54A57EDC1E32E873CC03201D0C32107A7B7B296EC0D483C3E11050C7692415217A05C8041203502316BBC40879B89643D73A8D466B587EDEF9B3264F9D5667CBCBD32B730E2A80480581BC4DFBA9F955AFC3050EAF8F25A172670129248C2CA0456807077AD1B5D4405467000ED783AE0F8760FFEEED70C97967C3394B17A7A8ADDBEFFF0BEC693AC07E971A85BBED5A6E25EEA74610FD269389197E5D5D5DB1E1D4FE631A00B9A807040163040A1AA1201913482C406B9BCA605472186457D44D993A7AE1E9CB6795559415D248404926180A10E27ECA2C0EA0AA707903E00B8598253E6C6B3FD339F8BB75DF2E28CAB7C1AD3FBE8EB5A99497D7FFFD5F78EEB53744EAD76977966BA3CA8C6764F8793C9E406D6D6D3417B7EFB803C0E1D4030DD98E8622B30F68F85CFA466407A0C0281890271988562999655627B34C66B3E9F473CF9F356EFCF81AA3C1A84B1776523564010416A7CF8F86A4173C08087F581C9E361B0B24DB450C76157DFD3DD0D6D20CBFFCE1B5505B9D1CF78872FCB7DDFD6716CCA24C5F952E76355AB787649F9FA6BA43560C4F9E3C3936DC81A28F2B0064530F0484CECE4E0DFABD1AD4833AFC30060482113F8CDCA885D40303850C0429BE40AA03554182B142ED8449E5B3169C36BDACA2BC4C2368845886DA2F0322960D28F1188B35D0201AD48E21188E42848D6F701816888661F7F6ADB06CFEA9F0F5AF7C39990340AFE497F57743574F1FFB5DAC17EEB709B1D7C9E7C7423BDD611A41D8E71B36F51FD700480702A906B211D03610C456D682166B0C8B23E09A22884CE8925D60911ABAC8412639E5AD97935D1367CC1C3D6DF69CA945C525453CCFF16A4F615880485084320121EAEA160C60113BBC527337B1FBB7786DCBDEDD207009B8E3E737B026EDF2F2D8B32FC2BBEB36B26DB34EBBBB840BFE0A9F99F2FC44FD0EA27EACF99123A1FECF0500B2C5120808E4351023E061A61EC84E9002474A204952171629D864928140D7E03E96F59C3177C1B8F1D3664CB4D90BECD4A03DDD75CCE652660344BAF7D1DEDA0A1B366D82928A4A282BAF807C8B094EAA2A070D02E2E1279F95FB0D84CBF8E0F7B53CDF44D48FCF3680D77ABBBBBBC373E6CC891E09F57F6E00900E84152B56285E435151118FB584A28B1A122A059528CC8CAC605409DE22A9045A53A0C924BB9064604A60A0A961B49367CDA9AD9D38799CADA0B090E70521B3E0B30122694FA899A3ADA515367DB80946D78C83829252E57D3A5A0E414F471B0BB416E8120F5A1391D7C9EA27C30FAFF720B85933AF23A5FECF1D0086F21AF06351DB031EE9572BAB071428CDF66594238C723451A51A1456203B410A4FCB6D2384D1B5756563274EAEB517979619CC660BFD6775CD8EA5093B1B20DADB5A60E3A60FA16EF27430599349AC81BE1E160D34EBB57BF3C3EE5BF0B969A26B6AE3E7A059CB8EC4E73F210090CD6B90D3D8A15048D0EBF502CDE246B51B05418265092829D42C03C02C859B654630AA5A4711A3301541ED22A94D65E5D8DAD25175934ECA2F2C29D3998C783DCF1DCEA59455C0D66DDB12E525852DBABCA24A93354F4389A680CF0B4DBBB6870BE2DEEBF19F3491E1476DFC90CD3CE8F71F91CF7F42016028F7B1B5B555510F54ABA9912B02803C08F20AC85660609032904A5B484965B0B609A41EE4B8826C2F1010A4B903F9FCE2125B65EDF8EABC82A212F437AD82466BE0048D8606495303A20301D0D2B87B2F38BBD751A49AD7190D86CA9AF95A735E454FE3F6C78D51FFEBB8BF9DBA7621785D682406F0F9A3C86EF1A3317DDCE71E00E960A0F7BDF8E28B999D20079564562021A29DA0A5B434AE99772005998C19EC03A3EC41903B49EC4040204091CD200341DD80861683D96AB497951759D08E3098F2F203A1A0A669FD7BAF30E1F33C59F3D4D1DA4FB51D7F77E19A023E5DB8EDC067A26EDD47ECF39FF000381C2BA05EA59940C97B1070AD456030231041A04710E8A59A6F941252CAB654D2814085359D97EC0662079E9AD0130E296347134AE23A22ADE5092369624912743FB5EC2510D036F9FCD4CAE7E3F8FC2300C8D168349BCD1C25A0B0C6917E676A221A8D3203523608090092DBA800410689E47A6A253B41AD2264564848820E61216B9E4D1E49F30CE3FFA0B51FF73BB1D02C16FDC8486E046300592BB26AD5AA23F6F94700300C5650AB082A04068A2D50FE815A3091DD20B988643730401000A4C8A24EF21AB4AA988256A51A68A1B9858392B083D26FEACE4F032207719F87E2FCE4F2813869F551A5FE11001C01188819D07BA069E2A99D8220BB852458F22AC8904481D19AD57A620CFA2D0B9FF6031BF59E751D8FD174F478DC8FE70525DDCFD400CD168AC702782C80A00BD09470479BFA4700300C20640203ADAD562BD3EB040A14121990D4AC8D6692279521A01019486892691558E838DD3A4693494B6A808010C36B13B84EE075B4CD660B45D0450E1D3A143FDAD43F02808F1F766636435D5D1D900169B1583897CBC5A170A9912B2FF5B764E0A06D142C3308E99834654D82A693A729E6E5DA8F0062C2A0A960F138D9036C36F1254B96C48F36F58F00E01362070284C3E1E0BC5E2F47A0A046AFE851B0DF247CEA1483359BD3B0908062F9C7F17802CF67C240AF24D1D8D808C83409A27DDA97F88404350280A30C063543C8A0A06D3530E4F348E0070E1C48D4D4D4B029E133DD23F1090B6804009F1228D4421D6A5FE25316C8FF072BAFFD9FFBDCE8AB0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (72,1,'PBX_(24)',0x89504E470D0A1A0A0000000D494844520000001800000017080600000011218F2D0000000473424954080808087C086488000000097048597300000298000002980136D347DF0000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000005144944415448C79D954B6C5C571DC67FE7BECEE35EBFE2B19B0CC4B5533B8D49E254A452B14921010591A8E21190501149BB62C3820A90408A449C0DDD2051A95408165055E295052D84A2224A4155342AADA394C68E43502C3B641C7B269E38F6CCBD3377C6F7B09834426513E7DB7C3A8BA39F8EBEF3FF7FC25A8B10C2072240010EFF2F0B34813520B5D65AEE519E10C21BDD7FE070676FEE1919B8DD5A4AC72885D20AAD244A4A94927444512D70C41F4F7EF73B3F06927B06005160F4B1634F7CF670575744640CC618426308B5210C155AB7CFAFFFFDCD3CF06BE0FA66005EE0BB9D1D4671797999A610C83044194DA00DD268A4317C656C0C2D65084836210FC00DBC8D6BA59BF42A8D361AAD14C628B4D6844AE17B3EF3F30B942B953A9B9403E0BBBEB323BF159447C383BA7449A44FAC25D54851EFE962F7AE9D6CEDCBA9CD023C80C0F5995FBA49DC4A914AD2481A3474825CAF922889152E6F965798FF4FB17E5F00CF7319E8DF42474744141A4213B63D7CDF0D9109B9512C06F70510BE2736ACE5ADABFFA6E9B904266C871B86F8A61DF489BDFB4892C4DE174042ABDE6CF1705FBE1DAE5228A5905212F83E9EE7B2B0709D4A653595523A80B8337CF706D8108EEA509299D212E9AA43600CD2186418DE71C3D3A30FD3D1D5D9FDCD93DFFFD6C91FFC687AFE7AE957473EB5BF2BAE548A3D3D3DD9A54B97ECE4E4A4FDE0940B20F785274FFCF0F183079FC271D0818F943EBEE7E3BA2EAEE30282B8D9246E65546B35A6DE7D8F48EBC5A78E7F75DBDFAECEA3D76BD5787565BAB27AFB0FF5A4F18BED41B37CEAD4A9ECEE0B5A96280A02945118A3EF866C4C3BE0F9C565B2A449AB5AE59DC2DBDC5ABDCD379E3E9E7FE1E2347F9D9B25ACA71DDBBBFBC7B774F68C6BB7F16CB2562902DB01EB026678CFD8D15CFF03BBFF79ED1A57964B5C2995985D2A71B17883526595CEAE5E84105CB838CDC8C8305F3E7298AE286228EA644FAE1F2D3C2AA512EBA2494E86D457CAE6D537CEBD77EC3307FFE501226BB65AA1923C36FC10466BB4D628A9108E43DDD7002C2F2F73FCF347495B1B54933ACA8523FB7691A429D7060728AFAD737EAE48B55A65764979833B065F7EF299EF3DEF01D946B62154E0337D6391D46D87AC8D61DF8786504210C709AD461D1948FE3235C57A9CA07D8F570A17C875468C3E9867ECA141766EEBA3303B4775A54C235EB7592B7BD603EA8EE32C4E5F5D20CB3240D028AFB16B6C2F1982B55A8DF353539C38F6390A172F63ADC5735DE2B88AB0B09C36F8C7CC153221C8E7B610AFDDE6F14776F3BBDFBFFCFC6F5E786EC90392F2E2D24FAAB756676BB5F5EE8D9675AD6D390FF4F79E40853BBDC0739EF8F421E6965668349B78AE4BE467C45980E74B16AE2F114849234D592C95F9E281FDBCF6FA1BB776F5F77C1BB0E24EA309C0BFF3AB04C0F8F87898CFE71F1BDABBFFEBB9C11D078E7E62A2FB6A7199C5F20AA5F24DE25A0D6542AA698B469A92A44DB61A8FFEAE0E7BE1ADB73FF6D24F9F7BC75A6B1D00DB566AAD8DADB5356B6DAD5028941CC7F95344FAA5775F7BE5F06F5FFAF9CFBC667DF1D1D1E1ECD1BDA30C0D3D88D492C07389D76E13D88C8947F670AE507835A914CFBF3F70E25EEAF5F4E9D3CED9B367DD81818121CFF30E7EF4E39FFCDA8787777EC4F565677323F32B6B55662F5FB66912D76B73D3BD67CE9CB95BA96213FD0D200E1D3AE4F6F5F5858D46630418F67D7F64DB8E9189D5D28DF319FCF9972FBE78EE7FF7D46601ED4B4288C9C94931333323E6E6E69C898909A7502864535353AD0F2EC1FF0249CC173F1A55B1790000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (73,1,'PBX_(48)',0x89504E470D0A1A0A0000000D49484452000000300000002F0806000000A58249C90000000473424954080808087C0864880000000970485973000005310000053101B7ED28520000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00000E2F4944415468DEC55A698C1CE5997EEBEAEA73BAA7EF9EDB638F8DAF65CC189BC4C104010E3898C421B6907229D9EC2265C50FFEB0E44FC051F2075961154BAC404A565A25D92C24596D921F08A41020104C308CED39ECF18CED697BBAA77B8EBEEF3AF27C5FD54C661C93AC31335BD6ABAAAFBAA6EABD9EE77DBFEFB3609A26B143C0C14E1089AC63697CA387B9420CBCDFA0353C04660074176DC59DB638203244FC08CA33855B9006A40669DA86986B61806C7B9E29EB818421714810E2B2EFDFA8014CF932640E9286E4207588BE2606D85E661E0FEDB9EFF3FFDE1E8EDCE374AAE4545572F1B3839C4E88432555B5C6CB670713851C0A0467056745964986B0F38BFFF5D37F3AF16F3FF82DDEADC14F6B1285250354E6754912DABA1331EA88852C6514A6A06C5F3345657E8F29EB90D93D998B437690CC9E9325AE387BA65C295321BF18C57BBD901233622DA220DB40E529244BB267D72D1BC9E9526D856D65577878E53D65F9378735B69F63D72317A6A8D168F96C4C896B05E2A51C671F40E44591448B782AF50615208ACAD2C2524C6646C896014C797939326CECE0E39E809F8F995F9031B24D0E6B6E0037021608866EB1DEA9E94B349ACD9008654428C7CF48175159BAB6C74BBFC9D673DFDB7F276D723A399EE18E8F4AC51FC9005395256D3C9922AFCB4931A7973AFBFC8880054A87A458792ED920B5AF190624D9BA968081E4F929CAA85728E0F5D07A1CAB6852561C42C0E7A6A0DF0760DA806520B5D34365A065E0455AA9B2651003B0056E965230CE36B0582EAFBF01F0A0D8190E728ABC5910972BD5FF8708804797AE338502955A2D0BB88A0558790558D93DC96145497638782AC988CA9EAE4E6E40A3D924C330D6D9005932354DE755612697A38BF91C9454788E4B36582559B1EED9405EBECFB00063B64623D4EE7633065A7F03E039239D2BA2F817C8076586E25D76618277151429D1A65356B024EB1E535C1165708EF5EFF4FB67E80C888755714D5B670358250D78DDF8B8832BBE94DB7FC96F1BC40E06E2A5EA6B815692608C8432224A2C1569269D2173BD2380A6546C73B19EE7E6419C2F964833F5F535409404C1FC3841BCDE29240992A9DB61BF5910B7348DB47507B1AC18F9729D66F345F22B2EDA9DF0219F45E436F3BE0003AD6A2BA25FC25DE2D320844C6842D1063C8E39CC2BAFFE9E584B651A26E99AB6DE292492CFAD5254F5D9EDC25FAAACC3EEF5ADD65A5E4E190BC4ACBDB61909631106FCF1FDD3A4A1AFC2F382C7E311060707D9DC49F8B8E704AB0C006F8BAA6CF7F5BCCF979759E846411C0B87192BC98944C2DDDBDBEBDBB56B17EDDCB9B376ECD8B1D6534F3D65AE260FDEB99A376D007F1359EF99CA64295B2DF37C97150BB8D75E331CB048C936B0D1CED2A1CD031444EE972B258A8423F1EDB7EDFAA2BF2D5402BD56C968BEEF108C0F9E7DF6D972B3D974D4EB75D677371F7BECB1C64B2FBDA48D8D8D99CCB81B3168750A21C24DE42DA351DD34A889149021A6A893C1B0A08964081AE9C080AC314C08A40308BAAE530BD7986053BD56A32BF30B94CC2CD2271E38740460165BCD164161BA9A4AD3623E3FB721D4F6D03D9FBEEB61C9E5F9467661F162A4547C6BB654FB5FA830FEE4934FD66050FDFF6A90B0341F86EC7CF2A9EFFD20D1D3BBBDD16C008812F72ECB6726EC255C186EAD172E0B33C0026D8B7981DAC27130108C82D2CD56939F935753347661927F74F7B681FFFCE7AF7DF94BE962559AC8E46883DF4D15189E2B16F58585FC7CA1543ADDACD77F2957E75F6E954A856AB55A9F9D9DD55E7CF145839652E47A1100E8441D1F0B7A5C56C5BD5EBEAF9A85C936B81562CB3F9985059ACE55A8D1D2C8C47B74569D7589A666B3343639B54C145F78E8D011D5A14A3F7CFF1DFA4D7A8ABA652F6DF2F9A9DBE194A292126B0F860ED4EAF50305C56516293FD7946BEFF9FDF19F21F57EF5F8E38FD7571AB1CA00785274A2BFE19E6654B942A4E56B91B70C96487C6C40F95CBE40999A010541B5C08061FF3E9DCDD2F9890B944FCF50A8AB971E39FC39EA8C455D6F5EBA4AAF64A6C98528E7D39768784EA1311FE6216E0FF94C075242A23653149C0E775431A5830D320EFE29BD78EAE8D1A37B1109FDFA06AC48B3E1649292853C07EAAAC265172FC9062FF3A80B060F863B318F70626C799D793F3B9FA6F3539729D2D94D5E14B7BDB7DF4EF7DE719BF5FED939DAE06AA3B97AD1CAE4B93932B273D444EA15BD3E6A0483B4D08ECC964CDAC69C022C568A79E9B3F7DE2BAE5CDD58CD42866196319167208EFADAF8FA8FBC34D3E24CC3CEEA720D60AD848076C1EB7071E57935972CE51733791A83E7F7EDFB24B931476693A40DF1304DA7B3BC53FDD6DE5BE95B742B8DA4E769243B4FE7907E1333D360AF3C093A5AF152995C9118B97491C26E44295F4577AB2786D30B9B1F7DF4D189E79F7F9E5549F39A95375113250765F315D6575000D598A3168C433A005A012009396E58C035748D82E10845FA43AB989831CED9F131FAE2A1CF92CFE3E153D190CF4B3B36F6F0670A68F416CB559A2B94C8038FEF09B7D32763611277DC42C357B274097D58AA52A685469DE24E74BEF87CAD5A23C5EB8F15F06A6FACEF275F7FE28927FEE3996732AB0C68B51A92606A140D783EBC68D9F740B994C7478AA6E39A201AF4BB37DEA4AF1F3D4CDDF118B023D2C8D434FF2D35BF48018F9B1BBFA123464E38C9DB9D209FD7C359682A95A55EBF8B224E19B86AA7856205DFA8511386B4EA35F221A5A23E97D0DDDDFD95D1D191871189C04A03840603B143A10FE35BBE7461D3660DDC5E44AE93B47AD5E4F53FBC4D9FB8ED56EAEB48F071120CF4A7735360389D5E3E394C2E55A18D9D71EA8F4528DEEEA344CC03AA6D219A3AEDECEF21B76050A2A383CE4E25D15ECDC0A94D323589548F173D5795766E1DA42CD22D73F5CAA53E8F2AAE5A5631347D19C56F9C3F77FD7521D6F7C0AB07B70D5217D267E5319BC9501515F8FEFDFBF8385FAAD05B672778B496A4526BD0D4D50CBD373EC98D4A8483B4B5B793B6F57593BB50A48E441C9851A927E4A31D7DB7236B35FAC9CBBFE77EBA6BEFED1C3FC3C3C3465FD8FF8D3B770F6AF28A55659401435F28942916F4D38E8E6E1A88775AEB3F760A89AC1345E595D19DFA83916BD6A54D7AE3ADB7E9F0817BF8B08E0FBF717ADC5EE082F2260A229E114D811A39CCD648A1C19E049DBE92A12CA6B0BF79EB14EFC1B6F5752112BDD4D1EEA58E789CAACD029DBB3C43BDD120F574C4E9DDE133A4574AFF134A04278E1C3962C82B96C46BE0A76AB9DAA062396D2DF403AC8CE375DD16036D048AD47D0F1CA00A0395BDE0CB8EF1F313940115FEC32D9BF9B3EF8C4EF0D4B03CCF562C4D7EBDA1DD434954ECEE6088CE24D368C145F2362A54460BD300A79C3A7F910B3BE2C180E58CE2023DF8D0512A01F8EFBD77AABA23D2F6AFA954AAC27417ED0D09B619B1080EC77B5A505407654159B08C0625D83D4D632D418BBC6D3E728259827E2F2D160B343279992693297AFBE4BB74E053FB882DCDB3FC2D562ADCF3026F45AC22184764AF166AA4230D672E4FF1BCDF120B508BA527AB21C2EA25D4D9C53CA5D2293A7CDFDDE4C7375F7DFD4DF2ABD277D0E2CCBDF0C20BDA521D30ED5D94F9E177FFF87D41917EDEA8D7037A4B771AA6C93A35C1B0E8854D2F1D5BB66EDB3CBF7BF7E76B8D96C8665CFD00E41C52E09143F7D39DC8D1C9D42C3E9C5BE5794360955CA2F4F465123D6DD4ED12693A10A61018E9FCEC3C1882A5A6B11C2563A9A0E29C68F3D2EE1D5B69E4DC059ABA706162B02BFC127EA92E3577C20A91ED5D1997BD24AE5CB3AA2C4422117560606043341A1DDC72DBDEBB227D03BB2ABAE9AFD4EA7C2D74D7967E6E4C83450D69C440CA841D3D609C73A939784BE07B07020C6ACCA5A8E5F6230F64CE6CD6F3C6F2DFB4CA39FAF637BFCA375BBEFBEC092344DA418764FEE1F8F1E3CB06C8ECC2DA65E238607F59B597C4AFB7AA0C5A17B3F858F2D2C807C3C9F1337DAAC7D7D7B373E840BE6C6C3A979C510EDFB9177C8F767A7681164B258E23A6D0D8748A5C682772C9297245BB68532C48672DEAE0BF9BD760C5007DDEB767880248D91FFDFC1764D4CAFF2DB9E491E9E9ABF595ADB56C73BB695751B60DA4E3AC5D43FFFC980348B76FDF5E77B95C790CAFC090F156ADD23179F2F56118D63770FF830F54EBF5A1CE4848825019C569722643E9F91C4F8B161475257AB897DF3D3B46AE40D06628B4E068E2168A657E2D1A2239CD26DDB36F2F9D3A3342A73E383D3F10509F6138C53CC1F8AB5DCA1BDEDAC4F1F4D34F0B6002A952A9B8D0FF045081BB60D036FCDCB767FFA7EFD8BDE78EA150281C602CC6264939B40DD399799ACF1741B1ADD5E9021D8AC94912C35DBCA16C1473F4CD87AD36E43BC77F6806A9FE8F6E45FA3552388709CECD1B70AD3D6871C546A3E1F67ABD1144A2A7D56A6D808D5D6EAFAF63FF670EEEEFDBB869A3AA3A55B6D4D2040D17AB555A44D1CAA35560516255BD61A7920EFCF4063DF4C8830FD0F1E77F4CB357932F4764E35FE09C2B68E05AD7DD27FE58369C710C0D0DC9FDFDFD6E0CFD302486A8F4E2FDBDB88EF66CDCB265E853FBF70682A1285C28B2A8B4604CD336AA0A222800DCA36747A8BF7F23E60902BDFDCEC962C4A87CC6ED768F3CF7DC7395EB4D2BE58F6B79C37E39F350111129631A38EF743AAFE0F638BCD775F1FCE8C5CB17C6879971FDDB766EEEECDFB4C5D31688498AEA361827617EE143BF03F6D0E64B15A9B8B820B409AD63A847D3C05EED43E7C46BB481BE8C9393274F2A888407E915C0B7A2B8CD36D2E3B88E407CC08F5351556FB8B3B7C7178AC4E6D2A9E9426A7A5472B59565A3F18B402070F1C48913CD753760A521EC1B77DF7D3726720ED5EFF7B314F302277EDC0F23BDDAF1481BEEF960A8862A9B626D0D0CCB603C05D629FEAD251699D6F858FAF86BAFBDC676EB7544A5363A3ABA08CF2AF97CDE89F452F1888ADF30DD500C4C862A509E3DCBFFAFC5DF5B1F5AF308FCBDC81C3B764C8041CBF50675E68616B7FE0C5B7C9C936CB491530000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (74,1,'PBX_(64)',0x89504E470D0A1A0A0000000D49484452000000400000003E08060000009B411D6F0000000473424954080808087C0864880000000970485973000006EC000006EC011E7538350000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000015474944415468DECD5B79901C5779FFFA9AFBD89DD99DBD57ABDDD5E1952D74AC91916C4010CAC426C4AE440A014C0E123B058E09601248A54AB88A22840A24A10A889D4A91900A71D97FE0B8EC70D8F828C996ADCBAB5B5A6957D2DED7ECCEECDC337DE4F7BDEE999D3D6464235B3B5B5FBDEED76FBBDFF77BDFFDBA25CBB2A8FC93F0730EE5729743D7EB67559138B7AA2770037E52F9F90EF3CCB802529D56AE02E13705C2AC625E07190E993712080180C33C33AC813C209FD3BA1D30E4EBB4FACC78099407E51C2A9681B81120A855CCBB407EBFBFB651716B4DA6A1D74A92E9B74C0940588A2CB304C8925C81422159A18AC628558A23F38173AC488ABDEA8A64E2512597A2E45C2E57D21B0CCEF41D3932846B495061896ABC7B0038A2AD382B5EB3BEF7B687A30D8D9FC124C9A569E47669543E76F171755B75AC897355B49ACAAD6AB7205590428A02028232C832CDEC0777EDD8B54415CC1B0D40044A1166866A424172BBC1946A33A731A3CC105A55511DA615BB556DC655C1B482EB0C8662338EB18AE8939D63990C130B6D492C2331501A947554836E2400ACEF41AC507043E71ADAD8D92E1858584187394D5DA17FE19857FA6AD7CAC7BA69D0C1C3C7188030C87B1DEDCC5BFE95ADBCEC1840B7A24A5EBFCFF3F6ADEA35380B8FDB4DA669490EF35AD53C6E0800D5FE5E516455BE2A13D2F59BA3ACC8E448DEF572B36F5B05A81A048599AC62F417A74FD24F4FF461AA180AF19620C28009C7AA20A9EA18FA817379E11CD724D8066E63C120F57DE68F2AF7556C777243995F0A80BD32B26C168AC5CAF91DEB36D07BBBBA8501B3F51F96BC4AAF1547B7952576409C2B6C3334D1BADDAE0ACCD95C0E0028B41A7ECB0190A4622295A663E7073071098BA709E3A708E3A60957C6165E511CC3C6AE0DE79AAC8A9699156365DBFA43A784B8236AA041B1D6328543010A05FDD6AA0400AE4D0E0602D41009DBAE6D991750843454FBF7CA18018A5C756E7B04C5014595ED58A0A41B349748AC52099035AD26E0A570C0FFB6DCA0B6049415C7E11E631313D26A006099EF551449B6DE059B542AE9AB5402147911FBFD931374162463E564AC9C6815DBC8C92B108BB8AC2ACBFA431E0F7DB1F7D6CA7D39185A9500404FCD6A3788148D8A86C1C611F9CC42C4C2EE52AE0A23E56A126993248222384262480BA659F10222EB31699502A0A87ABA5024233E0B7BA0504071D11D6BBA9C78DE496814A512D70B43A7D85E61F118D996064E7E244E80243A72EA8C38CFE70BB45A7E2B488064444321C19C5B73D9595E75C6C7C78AD3BA382942A6E80208DCAA2EE1253813648BCF2B8D90970CA304CB6F92A1EB42F473EE02E573B9D5E9062559514BA522857D4127B191191452250EDA4D522CC38EF721C2A66E910E36254B25CB30C954755275858CD262CBEF7179177981228078E995D756A717B08410FC0625A66BF0203EAF870AA512AD4A0058F4DF8D64A8B44A0058AE024B92A1E7CE9CA6A74F9DE0EC058910121BE8B7A88B71B2039B601F3BFD9C18C1184ADA42C2544E9EEA910C1DFAD4A717DCA0B15AE300C441D5B5C95DDDEBA8B7B3F3FA2643F93C15F2AB1400972A1742E110253339D8B91C5C9C0BCC4838B6FF60EB483678052DB24A0699528974AE20C8B6DF278067D9756E8C06F138387D1371C041DDB0A30249088AB54A2540924D4CD42D6A7A6E3BAE979525898F62AFB2AC3A31819DEC708E2F7C3FC700ECFFB95FB28BA0B2BC1017CCA7D374F4F8295A528C91560500BA696AF94281423ECF3B9A0C1D3A761C2643915D0822A2D1A8DAD2D2A23EF2C8233C1F73DFBE7D8B4AE4E51DAB7762DF601900164BC03B18A7B32AE88803F2853C4522115F2C160BB7B6B6E6DADADA3480E14E2693450051387DFA7469D3A64D165AE9FEFBEF979B9B9BADBD7BF75A4F3CF1845936D6D70310C9294AFA418DA00D9F7DF08B5FDBB061E38E70C02756EB527CE6BA25435FD8B65D006000E0C77EFCB8FED2CF9FF961CFF65EBFD71FC823942E4175B2A6A19F7449E621CD3467F2F97CC98D1FFEC705B7C9CC16FD7E7F2993C9887D849E9E1EE3CC9933164B4C795BF3AD82B20C803F7BF04B5F5D7FD386DBC23E1B80FEA9493A3E362A989661D11798635DB7DD5CE51CEED01E67F7495C00718EC36E373D0C0072F91C8D4CCDD0A193E72C0BD70DC390741D8614E971099291CD66E9DCC060D1E776FDA4A73EF8486B6B4747C7A64DFF31139F9D9D4B268E65D3895FA4C6C78F636E39D8933C4B8CD7EB2DC5E37103AA649455E85A256419007FF185871FEEDED8737BA158A81835DBA0A9627383032561D0E4056327565D183B1E6B7B04DBF029222B44AC8CEC0F5925DC5F06061677166A50665CB4384FC3F3BC71FA742559DADC16DBFBE9FBEEFB7BA84A57167D654ACCA7AD99787C3E914C0EE5B2993EBD90FBA5AF987935954A650068BEA1A18125457FFEF9E74D5699370363051B60995CB32B16DD5C22460E5066942BC29C12DB4C490E594E8A6C5B2D934A707BBC05CA8FE3671AC81D74447D45185677A89624B79764305DF60C65A04A7A9EFACE9CA930CFF7BEFBA377FE61437D7D179F7FE7956364E2419D3E3F6DACA991EAEBEBC3FE60E8964CBE704BB650B80F9EC52CBA1393B96CFAB54232FB5F35F3F3876143B25FF9CA570A8F3EFA285779755A61EF711900F0F3EA7C324901C4EBAAA4DAC9D0DBD81912EE11AD059D87CED2E0F41CA50AB698CBB2B920210A40CB1B74F0D8710447F9CA3CBA3A3BADEE0D1BEFE1E367CF5EA2FF1EBB208AB41A24CD0F09EAD002D4EAF55183E606A9E4F57865AB566E52BCFE7B2125F70EA5D325BD98BBA47AB4E74E0C4FFDE0A1871E1AF8DEF7BE575C0AC23200100328BA61FC065655885B25DE47DA4BA3732921F615C6B9526CDAABCF21F1814387A9542C52626A9C224D6D140C05E9814FED9138BEC815757AF4E471A4E0609EFF373E4BA56C86AE44A234967793E645A689B5AD355D14819A06E023985C6E8FA693B41E19C7FAA2617E5E3767EE801739089530DE1C00CB94AAB585C1286215159086B457850557D1A7E25C90B1F85CE3EA11DB014C5E0753B3F3592AC8308EB2E5D80E19A26C83A1C31E202D264BD1283E7691129363D4D2B99E3EFB893D14ABAD11CFFFE1A13EBA584CF29E1DA93090E6F81869810059972F533E354F567D8C4C8090A889502610E4AABB883CBD798536413284CB4DCDF2BCDC5009E9D7DB00321789C8CF4F9DA427FA8E2EDA0DBAEAB193FCB0F8075D2EFA60630BDDB7F5BD769827498BF41EC68A5E38F00A856AA3D4B2A683B6F7F68AA2CBDA863A7ACFFACECAF33FBEBE9B9AC1F0B9B939BA984CD078A886A4629E8A434324FB03B0AF06597309925D1E4A5FE8A7C8B65E31A7904B25376C163F279F4A92C7A51AF0145CBD33AAD560793688489FAB38A623061F7BCF16BA677BAFADEBDA4294B7920D509C7D00B6EAF3E90CCD188BF73C858B344D01C68B603ED6D0409B7A7AECF710706F17EEDDD9DC40032313A268C27D8D911AFAC4968D8E8F273A353A437DE31334D0D84943F3299A991E26C50D470669D39A5BC0B4CA624C752A6FE75B54C23D73F9228582B1CFE5F11CD882837097A5AF7FFDEBE2B59C1500B07405038767923088BA53DCAC144B2A8552724062F726921E88B389D5300C7E19C4A25B77EEA44028BC2CD5E6D57FFDC8516A88C5E8FD3BDF275EAA708B1D26999AEB22B4AEADA9327E0EC6380DC33936338BE42C8BF998E4473CF13B37758A802A9DCBD3C991B53400091887A19D29E6A8844C8DAB53CD7E0F494609095B1A091992B060CD9E5436F57B52B8E16BE974E2FB7BF6ECC9633EE6721B5032B1483A35D50416121FA7E059DE06B37780EC5616FDAAD07B2EA514F522A50D40E6F6AD6824CF5FBC28ACFD9F7FEA0FC40B172EE7A58AB1E93875B63454C6E53086C16D8B45059DBF3840EBBBBA4414393C3943A33373341E9FA31ACDA2DD1D8D9483C16540FA27E769C6CC51AD57A54CDEA2D47C82427531A88A09BB1296D7ACEDFC87E47CF25B5A51FE2AA4E01F970150B00C957DA16B4577777537C8ABCB394406A24B6EEF8ACC4F4E4DD36B878ED0371EFE02D5848395FEE3FD97E8F0F9017AE1D869EA68ACA7EED6466A0807A8BBBD555CBF323C421BBABB9CAAB542662147B77434D3ED9B37522A9BA3574FF6D3F8D8146210833AA37E6A0A68226062952A606C28DA48FAFC1C6DDABA4B8C492612523A9D6EA1884F5E2E010624E02D84D3ECF244C0037796C91528AF7A56CC6B39B27CE6673FA74F7CFCEE45CC5F9998A6BE8B9785AAB1C7393F3C46672E8F08710FF9BD422536B434513D18F279DC349B48F09B5C140E85C4F8818101BA73C77B044DCD25E99593E7E8026C88980424C81308939E4DD16DB76E1545992252F1FE73678D0D75D11FAC640411B72C7E65AF6F78888E0C5F815B2B27438A7DECC4FE926AE7FC3EF4DDBD791B85D495D3FA83AF1FA6B5ED6D74C77BB755FA665369ACDE39BB98622D4497AC4E16CE79155F3F7D0163CE0B7568852ADCD4D14A3DA07A00D47F61803A3B3A2AF74B25E6E8C35B7BE89EF7EFA07300F17F9E3F40483029E6F5535B539308C2F6F7F551C8ADFCA8C6A74C23D3AC184151C2B7C934AA018800EDEEFA0691D428E544886D029FB34BE30408FFB62ED64A215F6045E6A767E274E2D419FABB871EA8F4E50B457AB9EF8C78B02C42EAC5846488A27A8A4601AE16F093178695A565706C929E3E7058D88F8D6B5AE8964C916EEE6C43C052125E2814B4A58BDF6E1B9E8A5329394B1FFAC83DA2CE393C324AE3A3A3B3EFEB6AFEF6ECEC6C8EF3846A00D83FC26C4AB9443A4BE96C9EF7BF4492D3ECF6E3FF657BCBCB826B3384B3441F8B3F7B0A8B6ABBC3C4C5B0A5156506F3E5FD07280071EE5AD35E09AE0E60E539112A335F2D05DC5713F4D3D0549E4CDC4ECDC2B02106205F2DDDD6D34D572E5DA2A174918E9D1FA4A320FEC1C0D12D9DED349B2F51574B233DFABFCFC1FF27E8CE0FECA4A0DF27EA902FC3F5B647027F838C737664644484C56A15F3DC91C13CB26C68C4E4B9F6874B253029DC9DA8ED59423FD9B5706B948AB475CB66E83852D97C5AEC18F93D5EB135C6BF73E7FB69747C9CDEBFA3D7296210267D4918AF8AC82F597D3FF290C97327488E34D3CD5D6B687A6A8A5298AA02D00FBF71820A68658FCF1EEF482BEBFFAF8E9E146427350635057DB4A5E72611533CF7F27EB8C5C2D196DA865F85C3E1F437BFF94DB3BC2F603A00F06BAB0988749A75A5C8F9395C0B53B1082AB70838980A22C32B8AFE704313D562C5DA10C565E18AFAFA07A80F2B73EEF230BDFAFAEB10CB007DE48E5D625E67AF8CD234476E0EE3D599254B410DC43D8F672B4D6B45FDE1C4C9D33470E98A18B76B5DAB088C347FB032FE6A85C45C629A3E79EFDD08A6349A85BB3CFAC61BA58D8D912F23329CDBBF7F7F2533AC96004EC5E6A626C67F5628E4E7F3854200119D17018E06F706CF20DE2BB62C470A486C89B15754FD25C3DC09DF2C3328FCC0AD08652766E78488C6A2517AE84FEFA3DA704814428626A616315C2DF6BCC7E0C9CFD35422497588EAA21E95CEE151923F24A4ED85232748F5054544B9C8662CF15A6CF5EFBA63A778362FD093CF3C4BF53EDF8F8C42E1523C9BCD95CB6A020066091328AB40F285FF7BEA97685F03B1452BBFC7A72CADDAC2FF4BC160D0DBDEDEDEF4DCE33FBEB0E5031FFE88371C6D4AA6330A8B238BDDAD1BD7D1CD6B778BB74EE3C9149D1B1ABBAAD80BC27D67C845EE9A28562D4E17468728D4BA9636C3C825C64668305A6FAB9D612E06D1B016DEBFE7681189D78776ED10E72F1F3C4CF199E9E99EFAD0BF7A3C9E04578F16155CABDE16AF7E61B29A645AFC3E61E57FEBEBEB5D1D1D1D68EABB71E37684B9751DB76CD91269EFDE9AD5AD70AE5080AAE8486315FAD8EDDB68026931AB083320182913CEEB11F810B2B6E19C4911F878004969B841BE5EC0FFA4E6E2E40700A6337EE9FF9763976C7C82BEF4279FA4D6C6461A9B9CA46FFCF3F7ADE6A0FB73B56EEDE9AEAEAEE9071E7840AFF6F36A55219125A15C8E2ED1B57D2BA0B85CAE79B471DC621000348C9C3DD53F76FECC4B2EAFAFB1B967DB07148FAF6B369575B522F6EF6A69A61482A5C1B1099A8A27841D29AFFE54228510D91471457C6880E6B2050A219BECE1307874126EB75130BBD463544B81895C60E7E64D82794EB57FF0E3C7C9AFCA2F782DE3403A5D981F1F1F379696C6A4A5FA53F5D5085DC36685B47DFB7619C82255CF7A7C3E5F50D3B4084B0256AA11B76A445B57D3B266D35F3EF8F9BB7C1E8FBC501EB74492731936213E9F16EF0C09EF52BDAA5C4D9A4154E70D8A7DC9F28AAF24059C8C95E6A6E8912F3F2842F39FFCF419DAFFDAEBA9F535EEDFCDE7F3A7F13F738F3DF698FE6B01785B5520FC905D89AF4D582DE025FCA0303C480C979AF08C3618AEE60FDE79D7ED9BB76CDD14AB8B06C4D7133C69B82B569391C9B89DF565B3228737AA98AC0685DB46A54839DDA289A25401203D3D417F7CEF5DD4B3AE9B4E9C3D4FFFF2EFFF69B5FAB5BFF6C9D6536EB77BF4BBDFFD6E7EA59AA0743D375B18086458D24B2FBD2403080D76C187C9D7829A416B180C0C8B4662B1E6DD1FFDD8CE8EB56BDB3D6EB7AA83310E8E1890340216CE0C6712F3C8E68AA2DF580240290790C4F71B8ADD8F8427E677D1FD9FDC4B29D88EBFFDF63F9166EAAFD4C9A5BFC21C2E8E8E8EA69E7CF2C915BF4891DE89AF541808BEEFDEBD7B592A5CBAAE07612BA200218670B511D798A2185673F3B6DE8D5B6FBB7D5BB42E1AE17FE597280518A012E28E38F28539A8482A93A54CA1B4181027209BBE3248FBBEF839447C7EFACEBFFD882E0E5CCA342BC5DF87D53F515757378345295DAD2C2EBD939FE99481E8EDED55A3D1A80B11181709B84A12C1254EFE190856935A55D36A76FDD66FDFDAB17EC33AB7DBE365E60408D580E0380F5032D90C656124B3853C8D8E0C537D6D2DDDB5FB76303E483F79EA596AF44AFB5C7AE109A8D230EC536EDFBE7D577D274D7A37BE532A03B17BF76E056E534D24121E18CA00BA79D519800626960A50B8BEA9A97EF38E5D5BEB1A5B5A54B7CB6B1896B40082B90890570FECA748731BB9BD3E1A387B8AD452FE48B038FF10BFE298CBE5125713FD771580ABA886F850AB5028F8A1A761AC569D03420CAAC2121202F9111D7A3B366CEA6C5EDBD5E50DD6446597E64526A0B0A164037AFCE811A42AA5212D1C69CFCCA74C79FCC21E807B1CD236B9D23EC00D05E0CD0C26479D602A88F9D4C04ED4E2984188F039AE718EEB433F7FD6C3AF9AB8C275B19A70AC293A9F989B4E8C0D5D02D319D000C6BFE1F7FBAF2042CDBC99E8DF700056928A743AAD06028132183EF407C1740846348C614C01F4B11DF182590EE272E89B435F1EE372F89F1118DBCBFDFDFDC9A3478FEAD7B4397AA30158492AF89D0006030CC1366A2EF8710F2E790184078C7A1C0090A4996CDD93C84B18001DEA94C2710AC94E89AEF11BC45505C0D524637070508EC56232A443D80E449D5A28145210E15960B8C03BC1939393168C9EF1E28B2F1AF4163EC05CB5005C2D3CAF32A2E2C76F91F02647D5F5B7C4D0FF0359B6A32F337224D20000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (75,1,'PBX_(96)',0x89504E470D0A1A0A0000000D49484452000000600000005E0806000000DCE811E50000000473424954080808087C086488000000097048597300000A6100000A6101FCCC4A250000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000027594944415478DAE57D09905DE595DEB9DBDBB77EBD4ADDADDE24B51604684120160D088180019BC1465E0A5CB61333999AAA2476D524AE4932D8953871162795388EC7D48C3D535354308CED81B1078859248190D18A96D6DA52EFAD5E5FBF7DBD4BCEF9EF7FEFBBEFF5220984A07B2EFAB94BDFFBDEBDE7FCE79CEF3BFFF9EF130CC380B91601175A390F55AD6FE462CCB536E6BBF945B408D5CFE010FC420D3E212550D31DDBB64216AB32E439842F7221D35AE24D74ECC30D568453F0D4B4AAB5CEEF7D515A84EC103C38042DF3E6C2A6F0661D136F80351873089F04AE622B612BF275891FD716AB129C1660095FE182F760F33A9ADBA108F1062AC012BE25F85C552BF27317A512E42A9F6FF57A1FB85C21AFE48EEA8216C6E70960F3911244C340258892AD04D1764986A5C54A9DCE3A58BD5BF66CA221A0040D7EC4EEFD788B456C05511473D8328AA22452A9D44C3A9D8E3BBF9B2B61515A80C0A520F39E1E58B96EE38E96CEEE1FC9B204B22C832CF135EE2B55FBE5BF6393AC637C9B1F97A4F27992F398B52F896C2DD11AF52BB2B5082870B616681BFB8A280AAC97F79C3CF9BFFEE81B5FFFF339E281B09894203B7ABFE57EC8F50474AD1894A4B2906C61A350A5AAFD79852F97AF95EC73A47995C09A585684E8540013BEA904DACEE5737EBCCF90231EA8961B5A8C16203A2C8029C05075BFD5BBFD7E0FF67A176E937064BBB7CAA2CC8E8992B9A69E5B215CD112B2C8AEA1FFA827337D335F6D7EB98E6B01FF2708BC030B1AFB9B24317C897FD751F892790E766E8FDB03A54281E252005B86C702CB2DEA8B4D0173C5000F3EB9977ADE86EE4E686F6E62C29CD5432BF6CBEE43B2DC89E54AE63DCF72358E6B665941E5E74DC566E0ECA53E28AA252F8B55A6CB74028345B58855DB92AD0441704BD87B9BEBEBAAA8DB87A57C1FEEC2EAAB1AEB6B9955A85AC9ED10BE740390D9C7A600678AC1E601A2810889C08E285CB5703E7EDE6ED35EF4F682E4E8F98B52F84E0B98956E20B02189D28D92E9351A93088628888B5DF8B352114E65D00392EFAD5EF2A5120CCE4C30384831802113E6CB4DDFED3C467E5BB0B6D19D91CCCC73053C57B6B745B62DF2868889108F6C7EE69A682D2C0B062A7B0D47458B59F057540021161260F532914AC2F77EF30A49C18429CEF55CC7AE755D75ECC73B1F80A7D7AFAB5400294858DC825F4801A61624C120E8A8A91A42D0B222EA0341F8E6CE5DBCB74ACC1D58BD95598528D916C1303C9E2738F6ABAD867D8EE0DC97CAD6856D53632338656DF0FF0B9C312F5D05E0F311E3ED1B1D8396A67A70CB0ABA1199B98CB58DCB3834E4AC959A6C12261B528A16A3AD82A2A258DE17CCEB44C61F040E39E93CA10C3F51CCF1648A5D43486A60781479809BDC94BEA41540BDD4AD28502CA97069789CF5524946DF2D29A0309F2E9659AC5866B93696B7582F099D3161C7F90E853052279A8A95451E335833192F6B8C7E19EC9AA0DF071E979B14B4B42D80F15696F71121840FAD28120B9624244BF8560E47E40C98CE971DC449B60815590E0A54B182359D27F080CB14C4530E16F912ACFC8FC0B6812B837C3FB94452C612180CBB920B1208702311AB8570D0FFA961C2C880E1DCC53ED075435C0A0A101708C22CF4F9BC9E4F1513F6A2FF2F144AA8006D692B4064762F5D7712753D589BAAEB602C0910BAB002D0EC851B25D36B5A0C43470B581A0A9017F218E21CA988782E0B6F9C3ECDD08A2097992EE58D049EC317382C15D0822ACF29AF2D6E2058832D9279BDC0A1ABF5594FAC5E0D9B9A9A2A15A0034B512F6D14249B78BDBA87267339F8FB131FDC3026DC5D5B375B01A083B0D41580008831E142A9C430BEB5B4D444E1B9A7BE6AE676386AB118AF39842895713F433065765C8982CA08C7BCA68C809C90348098DFC9844BAA0A2A72137D918DFD7E08228608C8E386A94406B285A229248BC50A160CB598B060434ED166C0FC98CD7CE93A0BBA0AA6E204D1718D689330C19170130433FBC9B6F1BA582C0E3E444282064B9B099330DC2E17B24E0F220EC354008AC639204F4254AC9E8BA44AB1862CE5F220BB2299994EEAE1B4CD481C1FCAB486372D6113B732748DA11C225CAA866B0D7BBCAAE3B6CA94110E0698E20CD096B605D8695F3019284B1530762B70B76280999ED14DCC24EADC3F6B2C486A8299B5D40495E5560594976AB084021812C248434624430216790F37CFA7EE4FD70B2C3521A2A25CE0A67161C1CD7C4E369BC3AE6F30252D6D17844251B1177ADD12F8D1157D5A9870A15884770E1D45C52D71268CBD5C50358D65413F4D4C989839B926555597B602D0E6B9D08C4F1D13D61109E94B2419272E848244F1E3AFF4F8309FAEA1FFD7B5259E0D35B341B3C593C86661CFF9732653451463B25AD3570B529915331257C578595067A96927FBB518B258BE4E92ECCF7BAC6B25DCDAD850699C14BC756D692B80F2708230DB4012F91CFCF2D8911BC684DBC391590A20E1EB4B9F098B060DC294107F1314B496E6480DFCE8CB5F29932BE7B0A3631892315B8B60F14119C941D8243E182356211DB10A05453CDE0A265C44669E47626818FA521F113390097B20994A41AE98E55C800B9933581DB73589EA36552658CD1A94678215CC315FB3C0C814B6501E6E34871C79D12DAD45D3E22A9830B671B66D9ECBC6848746CC214A758933610ACF6E9702B5D1085A81C6829E54319E2B98BD5C10ED7C9055E1C02A21E8EF8249E498EC4028475C62BCF41F11364A2DA334D9B6A633FF6E1234CD0CB6BAC988754EBC08162BD23F02264CA223A847266F501A808E0886B9A6B210C31C283750F80683AA94B0D359200564C722252E88DD4A660F17ADF272CB02042BF763CEF2B0733FA239085FB9CD11197ECDE0E8184C4FC718495CE228488002F95AB58896209799B083B97E124CB87B6507FCECA55F912E44AE34D4A388614612DC6EB7505353237CF7BBDF159E7DF6D945315D698131611028F52B89E2F5C1F0D78109932CD9FDA0F5E99A2E2A881250E8722412919B9A9A94EEEE6E65E5CA954A341A959F7BEE39F1C5175F64CA704C42640A732E9F5E0BF81425DC49F0ACA10B643182C6040C430A0683EE4020E0450504EAEBEB7514BC545B5B5B88C5624597CBA5C5E3719A35A37EE73BDFD151112C883CF9E493C2FAF5EB6DC1BFF4D24BC6E9D3A7D9A37E1256B36010163EF4742BE1BA9F695060360CD64A256699AEC6C6C6080ABD4082C786BA08E45029797449F962B15840B794472BC9261289622E97535139060ADF9EF7ECF1788CC3870F1B3E9F8F94A7A3D5E8A82CD8BD7B379D67580AE19DE063518A352B861ACD38096323D6D3BAF3C1871F7CF8735F7CC64D1305E4B2CF9ECAA4E027FBF6DA63C22CD56CADF9582E88E5F15DE0CCB6E21883A6320BB2F8E126C494CD3AD38AEBF1BA7F7DDB5678A06D051BA22354A4222878FE17AF40CF89E3474B6AE96C73D7AAE52EF4FD78119FA887366240C1504BA78562E1A05BD04EA8AA9A408B20A59010DDF81C6E83F2E1EC645D9365594541E3479754548A96CFE7F55028A4F7F5F519854241DFB973E7C766250BA622E6A84EA78228064B0903D1B4384172AC994619C6E448C9C69CECEF82410AA1359FDB4AFB78B16042213EB620D1FB13D85A64336134ECF125D65080309348A208BDB0EEF63B37A03237112BD6184C36D7D45053F895E263D3E93C0C8F4DA4022EE5BFAE6B8AFC948F71046EDDBA6D674990BE9248CC1C4FC7E37B62A343A7519E05FC73A1485F823795CD664B185748291A0ADF9E85495682B1C54097765D9431BF053CF4FB0F3CFE852FFF61219705BFD73D270A922AC6842BD1CD2CB454856E2C54330BE9B0A14A8127020D363246C2CFE17D0C8E4FC1C589982D6853F07AD5BEC65215B178027ACEF5DA298BA6DAC84FD7D6057FD8D8B8BC6DFBAE875EC07BF2D07837D5BE2653697D2A164B2612C9A15C36FD41299B7F3B33397ECC308A59BC8F225A099B248EEE8C590ADEA38ADB5A329964EFADE8E9E9612E8BDCD7B5BA2B79A1C04755C8D4DB63E91C0B7E022FA075E2F832932DD76F3AD7209471BDD9CB7964A16D831F03939859B92781022D75374D634394A404C91F009106E805CE476898543003B3C519689EB7812D95CCC0E90BBD15F9A24CBEF8209EF7B7B7FFDEF6EFF97D5E0F213C4D9718F9F3F9BC62A3D218A989462385A2BA0115F3742EDF65C41389342EC3857CFE04A885B78C546C3F76862C2AA08031C59E1EBB75EB563593C9E8CF3CF30C7357641DA48CAB51C4BC1670FFAE871E78EA6BCFFC213D43412BB28711C472D1AC2D788B3409B391A6F5F5E654538E641803D6992BA3467EDD2CB4D2D936095BB7D61AE5FD3558D6D6052EB767CE9E5E6D093389041C39D1C3C6929D4B434D64E88FBEF4077B3A57753FCD5C29DECBCF8F9C814B3309E80A85E096655150F0B94CAB28E15A457F5462FBB44DC7B2D9BC914A25260AD9F441A95478A146281DC2F892E7D681A7949CF395591FBA9222E6B700522F3E502E936603E76C909DF35D5190EDE94856826D36A932AB27C459844D74D4FF4B9595159289F1497825F6C059188E6720AB9AC215F84C790363083D13C50ACB0AA8255219387AF2941907AA96CED6E5E9F6AE555FB6F663181F7E76F6345C5013A08C88D074D60B1D9E20347BFDD87CB0A636001E041FCC4A586A44C24EE0128262A4D1E50B3C86CA796C3C9B29A18B1ED48BF9B7036AF16F22320CE2479342F25EAFB780F0B84810F8C3A5A3F161B3F93C0AD130056625D2B800259E5093AC9A20A95C1B3427139EA584B202E8B3ADDA23662D34805F2AC244A600452B5147C2E6562470B7436ECE206BE46EE7D0F1E3CC72AA178FD70B4F7CF6B135C498AD633FDC7F147A49F83CB938231421A9C6E0546606A4B400A131059A242F34C82E882A0AB407BDE0E50A91D0DAA843BA3C5EC510E5AE82CBDB152B96FEE974A99811F4D21919B45FD6E5727F3D3D3D3D8310B708E5771C5D030A4270420550B2749D98F002B186046CF55A9507DCF15401BB12CF27B11E2EB056EDEF095165B26978EFF05114BECA2C6B72A80FEA56B4838182523C5EF8EA17774363B4C6BEDDF7FB2EC3DF8FF79B5517D4F033A54201D43367405ADE0C524303E45D1A76E7340CE377882842D765116A3405223449042DBBDE2D818F271E65B21259C780E0F21BE0DA827E68CB6543FF9E9A493FBEAD25FA2A2C307B7FC181ED1B917117793D10F9FD1222400C6E3089413F0B623998532F77146EB1D8C35B2E9B837D07DEA7417AC8A692B0F785BF84937BFF1FB2650DDCBE00DCB3FD1ED876F35AC7608E017F71F42464B0C7D38411172A4C214BCD6441C620AFF87D9079FD7590E85E0EBC07DAF0105390E10698F195A0DF958393520AF664E3B017DDE3895411FA7306E4B4CA11C4423A2920170C232B1729285FB30BD245937D965F9255EEB12C3DCD2A34D12DE089D6EB4A282F4A74C08A15B42DB24A206B5FC746AE4464835E2C9E18BAA900F4FB78C31047B793E1B745C2B67CBD897A2AAD2097C9C15BFBDF631D2514AD43A052805B773C0299440C7CD8F36FD9B2099EDC7177C5FD3F7FF034EC4F8FB282329AA543754EC6E020942E5E84E0D6AD90C1CF538241C8A33B931417D23B1D126FBF05723004DEE666FC5B08644464821B85EE52214732C27F6A5A8656B7C814CF50573C062E2436180BC48E8E0EE1DA5D906EF03473E5323413837FF7F2AFAECB90A4C00AAF64EC852204707F4B7D137C7DF31D1593F36D5F6FFB7B91C5820C06E837F7ED6701B273ED7A84923E58BD662D7F1B8BC8D60F6EBD057C6E57C5FD6F68AE877FAE6F82F3F119B8948CC3849003A9B31384E5CB418FC5A0FED147A170FE3CE45021322A021084287E3FB81029A91313A08E8F83282B105ADDCDD6062F246BF028A84CCD1CD3C0FBCBE1FD79BD6E0D2D5A4422C7127F73A121F98A49B02A2504110EEEBA69833D62650EBCCBE5D274A9AA645D1679E9BA54BE46B6C896B9A69B08E1DF6F5FB16A562140851570D493C39EFEDBB7F7B242DD8D9B6F83200ACA12BAF5EA9C9A8017427EEFAC67DAD8DAC01A2DF99206072F8DC299695446220E039E5A48892570AF5D0B91D5ABA9121892C78E8282AE494F2621D0D60EB183EF43F3A39F31B90B7BCD8B009E12C684A08CB0D51CB4CA62EF27974A6FC34278EAA21407A22115CC974F55C0D27915A0B1EA68099268E6D190DF3E5E83BDE1E9DBEFFCC84CD89C8386A6AB22DC44BF3F5DB25EFF303722B327E9E1FE9E77DF631572DBEFB91B6A22358EF715994A200BDAB26625C3F19746C6208F6B9298CFE58286DA082BEE65E84891607B772B6C8756A66482A6072E0EC385581C8650E0E3520EBCDBEE62684F2F14A1881652BBE116F315336CF2A0090E2292C2677C9A90359F49994E2410FED6C52C34853DD24B614D9BC258A03EF9E493BA03E92F600148805C8A8C37E68689449A111D9B6DD9A38B368DB5D9AD99E3E1A48B8F9AB17F44B658864837630BB93836D3428795E8426A1B1BE70FD4DC0AA8BD7FF808C46666E091871E8486FA7A2674452ABF088A96AEE64658D9DC341BD8A17F9E4AA660722609E95C1E0AA87C7A0F526334042E7485619F0BEE5BB302EE2C2E63046C3A9985C3831330924EC338E420598396D0B8CC9C9B40F74364B2A4232252D87D90F0250CC6F94CC69483C7BFA5E4F16DB99C4EFCC768406AF3FBFDD96DDBB6155111DAB3CF3ECBA0E982448C16EAB16E979B09CE64BE60A768EDF10CFBB50DE650A5753D13309FE36B7025B0D3186BA5072841141F6821E13BADE07C6F2F9CBB7001BEF8078F436BF3B2B2CBB15E79269865EF73097FE4F2189CE83903BB76FC1E34452315455E036393D0373A0E8974968D3F87033E08618B043C70CFCA652C5F440A994CE6A0676C06261179C5D52222B522B84B0AB4D47AD15B954046E117909D970A797063A07621A1C3A80C4631EF4907DB072FA7123DA562E13FAF0EF95F266B2092B6400CD0D99024459888DF73DD8A734D1F4890B304A97C113292FBAAE0EAD4F434EC7D773F3CB2E33EB865EDEA8A60ABF049E167FB8660FBC675B3AECD20C4A41EF0F0CEFB2A8ABBDE41F8DABEA21559720B742E6FB4E3DED0C4349C191886D1A93833F8C66898DD7BD4EF86AD2B6AED34C57822039388DA5C18E70C9D2A4424248449F68C358DCDECF3921363B06DEB6D44DADC750D0D9B50C13F3F76ECC85BAB43F2430B2A4037880917A02EE8BB3EECCB0C3E4CF88C6C6120CD8A9EABBA34878CFCD7AFBE0E2B10063EFEE00E98EB2D2E3D7D03F0BB531760FFA973B0BC2E0A2B5B9A6055CB32686DA865F9219AEBE05CF2F8FD77DFB175D60B492E5CBA04915018766DBD95EDCF507AE37C1F5CC45892C30E190D07EC19FE75C88E831E9929834D4C47A5A630980710122B1867548C05ED2B5A201C0E31CB22650E8F0C433C1693B37240EEEBEBD3E64F45A886C02A0F84EB309AC5FD37C13362BC457CF8942131587935D7BEFAFA6F218F4AF8674F7D614EE18F4E4EC3C1D3179992A9670F4D4C31B7F2DB4327C08D718C94B1BA7539B2620FBA153FF40F0EC1E0F0086CBFF38E599FE543B7515F576BEFC763D3B0A9AB15EEDF7C138B1BC75019C77B07208BCF10C6CE296B12AB8D62F92264C4857C0EEA5ADA5916B79849C2CD77DFC19E9B92962A0287B3A74F0392E85184CD220D8DCA0B0C09B39A9DEB32ECC67BBFC576532A6E57F5C8F996F70F1D86A19111D8FDD8C3D0E8108C5D2A89EE65CFB11E9EE636C99A0E16563018023A7171103EB8D0CF04D110094377DB72588B3D93602CCDF8A12595CEC0BEFD07E0DE7BEE04E7583D0D0845C221B61DF0624CB8652D6B97A762F0CE89B3703E76193C2E8559403E9986404D2D83DAA98911B877DBEDACB6CAECFD1A9CEAE9A1F1ECC29655CDFFC6E57219D4A9E479876089A1CE51FB9447015E9C9A3253027C0AAA54FD0A9A8A1736F1C1159A56A495901D4AD0DCB4E2AAAC278EAEE3F0B10FA0ADB5191EBEF79E597F27D37FFBC849965E10F8F802C3004679DF5CF331037C9CF199385C46DCFFD691532CA1D885017B6D5B0BACEF6881471EBCDF163EA53608EE6E58B7B64221A4345254677B1BECDE7127EE6B70E86C2F1C3AD38B1682B0351806359B41D7570F2D48EE54367A28C0C4C4245CEAEB434CEAFF9FF879391AF6A4811C793E0044285D3366671627D229F82FAFFFC3553361812BC2852DA228F0678F3C0E575B0D424197ACE61B5F7A928F90550E8DBE7BF20C9B4068F676C1EEF5659456DEEF68AA874674196746C6610A61351DA79E79666004E3C710BCF8B60161BF0FD6B6B7C04D1DADACDD77CF5DB3620481816D5BB7A0AB32491E01803B6FEA66B1E6CFFEA29FC1EACCCC247C7ED7938C9B98D65F820348E0BC8A3CBEB629FAD7E8862965ADD1289A5C853AEDD7C2EB02CA9FC664D197C9F0115ED8240AE607624F68AAA9435217B92AE15FEAEF87FE8141D8B0161F6ED96C5879F4FC25988AA76C582C18E63B8EAC5E6F54594193A243FFE9E3E0F604D8FEBAB6562466229CBC340269041B747D1CDDD07E742BEF1C3FC3ACA87D59036CE85A013777B64127720B3A368EF1A511F947056945A1FFE4E537D83A131B87FBEFBE13023E9FDDFB0F7FF001C46712B0BAB1E6DB048CC07CD92C1BAC9161F68BB2A9A9E8833412E6E85402EA2301243B8AFD36DBEEFA267B1A2A4DD813ACFA505E902BF029A966B12DB01C7D5153C113AEBB2AE153A0DEB7FF3DB6BDF3EE6DB3FEDE8B88A4FFF24459F8C0855F6505867D1CE0F0D01464B32810EC502E44289D2119DEFFDD41F0FA6A2083F7591BF633D444D6104BA5196FB984DC80DACBEF1C6239A57568151B3A57E0DF3350170EDAF7F3CABB8760707C12B4420EA2413F6CDCB0DE143E7E7122958243478E42D0EB3ADC5C133888F2CBCECCCC94C2E1B06EF0D20C67DCB55F138F27AA446CC84C4727E32C80B10259C11A6A3419AE6E0D337266C8329B2CC3690D3D12DBC587C66074DFAE47D8B90409C50510D091A3C720914882DFE745CCDF5DE902B1279D44142238C6979D3EDE690574BC03F1FDC6AE3636527601CFD60CD3F5BCFCDE71BC3F0544D53CF7B1DB6F8643EFEE8328028419CAE1F2EBADDE49AEEEF0D98BACD1B2ACB68629A3055DCF2BEF1E6642898F8FC2535F7BCA66E474776FEEDD470251D72DABF957788F095996F3287C8D7A3F5555C855AE47E3E691C7E09AA7CA6492939B4AD1E951F5B2B0CDF482B96F8DF7EA826ED27343342BD80491231203B6DFB58DDD640E59E20CF630420EE1406016AC4C26532CF0D2B29CDE17E788172964A0877A2ECC1D60E7B102092DEFAF9EFB31D42E6B05C31F855B57B543402F42EF981B861239D659289EFCECE5D7A1989C0139520F82E236CB6B387A9B6BA1404ECD5AB2B149D8B16D2B2C43F764F5FE9EB3E7E122F293C6A0FF79451046D1B233D84AE690B461E7829CC2A78C1DD5C7642449C9506A1578C502FF67E640ECD44219DFB3DE6EE547F84359550DADC834EB96B7A0FF0FC0782C0EFD6313309D48C1C8648CE59B5C189C437EC2E80178F7C0EF18D260391D64A9D642E98083A77BD918845D0400C615ADE0E2E40C04BB37424130D3D8F99969387CF000D4B474A0ABF44043380C1B3B9AA1B77F10CE4D8618A26205081C5139AD605EC85E44362CEAF010223583E33B1ADB78F5CDB7C0A3C8F1EEC6F0FF418F92A471E28E8E0E6DF7EEDDACF73B15E0FC91048AD069C5E34EA98EC16DAB27D8759A8E665B004FB099150F3A13BECE4B0AC7B0B70C8D4FB11AA39B5776402C9E849EFE219841EC4CD096F07A115BDF45D3C41FD87E17C3FE56DAE0C8D94B2C033A9FABA9B6821D9BD6C3E0A55E1848E6216B7E08FBFB855806E4B6359014CD02B0E668087EFB777F0BCD6D9D4089F16A44B5901558A51FB1B121F8975F7F1A3C18272CC6FBEA5BFB905B64A1BD36F8EFF1FA1819092A80B2A1C65CE9684B09B60226C6874FF55FECFD41A958F0A96AD1A369AA4B577517467A89CA12C8C1987EC9602352266733AD80BA8E407FC7274298E6A9AB8B74A052DAE97BE318C0281B49747ED3EA4E664DE70647E0ECC0289BFD4EC4E86B5F7802EEDAB2C9BEB15397862081D81A1670354E2BF0CA0A8CF75F8009247005C3051E445E77ADEB4254D50F9766F278CCEC34A4C813FD2300CDABA1BF04266CE6157D9682AF6405F9C434DC76D37A58D3D9C1F1BB0603C3C3B0FFD011246ECA99E521EF5E7C6ECA4F179A9A9A66FDC084F3CDB3D66FC7D0CC6CCA905112C8EF587BA0F24DE5F3CE61A5EA030C36622010F0D4E2D2D6D1D5F6C0E7763F12696A6E2B69864C290E1AD6240BA3ED65755158D15487569182E53541686B596E7F561FA29DDEE1CBA65559D655EDEA3840D00DC7367E76A1500009037E1DBABEE933C7F03B0DD0A2CB4097DDB0717507B851C8C72E0EA37273737F16FF0E831F9FE57A5464F563C3F0FD6F7F0B0183CFB6D667FFFBFF86E1D1CBFABAC6C8E7022EE984C7E399A49416BA9D590A90C91C789DBC15079C16410139CBB1AB0B66BFA97CBED4039BE685D0D48B5F9E2A1572A57DAFFCE21748BF6BDBD76DE85EB1F6E69B04D915B11E6C608C0B191F36D6D400BA249B49340CD69426367D7EB9D7B31F0998C70A5A109D10771941DFEFF278981027693CA3A18D6560450CB05480D5A018F0D28B2F42B4BD1B04976F4ED67C252B98B93C024F7DF6115BF8B4FCE6ADBD3038320A753ECFAFBD12F4B32C473A5D1C181898B33445B66A1939DAD0AB82728907E5EA37952F988BC348CF66ACA0C01171BA3204BDF0F3B3D86686CF9F991AED3D77DCE5F185566DD9B6D51DA9EB28955497C112753ABAA211743983CCEF7E69D776F69ED0241224A7500C13E0CF8A052BEAA3E02F24A90C1164BD041A7297150D51486432C87E0D503CB259E68EEDD7877B405ADE093912FE5C41BD4AC18620944BFD4830A93812B546DB55326B1D1C865FBDF606B81529DD51E3FD1F944D412BCC653219950A7A171C947728C1A8E20525A8FC6DB1ABF9453D1A0BA5CF545011395C67B191154DE077D4600BA35584CF1ED87399DC5BFD8AAE8EDACEEEDBD220D521DA11C82AC835D5222A6A6BA86301FAE2E8188C4FC7A1A81AF35A01A12A239786443209EE482D6C5CD90E99D17E181B180029D2C4100A710BC2E9D3F81DB2C767BB9CF972474E0503B7022273B1F131F8E69FFC0B475EAA087FFEFC0B6C526153C0FF1FB0134E51EF47E197962F5F3E6F6196305784AFFA1943618E7871351969A1AEAE4EECECEC94907878D012C81D05303E04B185F02B22B88E9032B085E8979AD05F079AD76DBA43F38556C79219CF37BFFC1908782AC70C8651C8FD97C7D12AB20C5DCD1B0B709F58C8C8F9D3E00A8451CB8DD05013869BEA837014895EC61B8164A9FA5A63C15860A23C0312887A76DEBE193EBB6BA77D5F3FFBF92F60CFEF0E013EE9818E90EB4FF0DA417CBE58369BCD5349FB7CF5A1F23C3978FB67021DF3A8AE7928666A6A4A686C6CA456E296902237842EC9873D847E1A2B8C374905C194208A68C56278E8F8FB04D9F6859A5ADA5C92F468F5F7B6A09B69AEAB81542ECF0649C6A6666CABA876211AF6DC8695EB6CE14D21FA7AE3622FA4B35990053F883439A4A2D75FD90A74B430BF4B864777DE5B66EE277B98F0D1DCB3AD3EF17BF86C6860463A1A8D16239188BE5071EE155FF9629417FD4334ADA7A747DBBC7973311E8FE773B95C068FC55119840A46C86DA2027AF1D879DC3E878DD614B846E2A38367FEF2C73FFAF9B9DEDED142A96454A76BBD886E288DBC7DE37AE415ED501F09B30AB7B20204877B32AB2A189289D4810F59B1E27295DF4DCDD31AF4AEEC7BF1F3D635D7D9BFDC64A73CA82A032D6A6C7810BEFAF927D84C7F963247E6FED3177EC9BEB3C1277D1F853F81BD3F81E7E7AD84DB826325376A3E1A2F4CA2F9576C2AE9CCCC8CE4F7FB155555A96EC6834A21A84B19AE1A3CAF164FA7E21D1A8109633C09ED7CF4F1AD1B6EB9A53B120EB9EDC9DCAC6AD91A8DD219099A882718E99B496618A3BE926B311CC7BB100ABFF9C25FC1AD9B6F839812464224545C9F181B6109B97FF2C5CFDBA4F4BFFDE4A770EADC0508BAE5F75BBDE29FA202FAD1DD4E21FACECE053B3F310554C517E03D43ECEFEFA7F9BE322AC18537EF41E1F879A0AEC77BA3BC6F1D9FB740CAF1AEBF7563D75DF73D70DBB2C6C61AEA769A4311B6524819180C27A6134C2154ED4003270BF9756B5BCB654C36EBF156284C2B6461627000BEFFA7DF8280CFAC937A6DEF3BF07FFFEE3754D292EDF01A4F9135178BC531EC6049849D25443E571C52943F8129A786431964A2FA9E3D7BA8865245E256C0409D474550BCA0E29A043EFC0C9E17C57D524AE8E4D123E953C78E5E08A173BDFFF73F7B4767D7AA3637CD24770E66186691525D24043548C24821A94C0EA6111D913232B902940CCD765156390D4357888C64AE202B16D030E740DF45F8CA139FB1853F347A195EFAF56BCC354515ED07F81563440DF0DEB3C96452A5E9AF57D5213F0D13C9C92AC822305E08485A68CAA94CD68087FDE8A2421C35D5A0326AC8451172E216E1C3FBF7DCBCE5F6AE8DB7DF714BB4B6BE1649B8A055B827C3B60AA7DBA2E1C319F4DFA96C9EA59AE9CD8CE66B708C72CFE756919C1C8320EAF8DB7FFC0D7B58F2D91FFC1046C6C611F52887EA84E2BFC5FBE8C7CE3381A827D3DEDEAEA2FB593C0AA856045A84585F5FCF6204E268372AC04B3015CC9F2E24E81A218B201485DB415C93DB2285B9B76CBF6FDDEA751BD6846B2211023273C58A4AB7555610BD06278BE88A4A56A86CA6505401E509A74E7C007FFCD5A760EBCDEBD97DFECD2F5F8137DE798F2A2EB2CB84FCD728C787F7388A0A484C4E4E16A9F75FED443DE1D3F82A054B11A3A3A322056B729568116E12323E28093B888225E1137C0D5B8A00F3A70DBDACEC5351BC9BEFD971535BD7AA2E5F2814626932CB12B4D98A98CB4A687DEAC409181C1D85B5B76C064D2D81A4ABF0C1D1238C89372AC27F7269B9D7F0BB06D0526388F272287CEDBACC92FC2417EB011C314243B32EC562B13CA2A52CF28824F10912380A8C881D5302B6102775410C86FE036FBEF61EB6C3788D6BCDC6DB56B676ADEA0C866B6A6597DB6DC58A6A5159C70C477582C763E67A2459410599EF2D0ABB9523AE526A3F7EF7240A3F85B22FAC5FBF5E9B2FE5B0A82C6021D744131E886163AC70E161CA2191EB210905B9153065707745164116432E8C5C9942E911B7DBEDE9BA79735743736B9B37148ECA480AD0E7730BE1A8875B40CFA913909C9E1EF6476ABCAE6024EAF1F9858B3DC7F3FEC4C437645938879F398CD6191F1919291298B8D649DBC262FA2D160BC2D20B372C2E41565C281448A86EEC895ECE2788658750904C0914CC2986A0B07C3CAD4E8D94A7E0DF907349724D53534DA47E59A33F5C1375F97C21C9E5F12353768F0C0E15878EED7F5E346BFB4B4A6D5393AE9506F444EC1F88346287981A1B1BCBBDFAEAABEA8799312F2CC61FC3717209A755E4F379F673ECA80837F64A2F17B89FE2062A8329025B80076D9F638C832982A7E725FE261B9267915EFC41C047A0D23600FA65EF6942A178BC1F7DFF18A557F07BAF0AF32F1905CC0761C92AD0F78B182B489032CD4EC135B92A0FAEBD2474FED3EC7EA712C83D913BE32ECDC595413D3E872DCD8A1404817A386586E3B84D987F0CC963A2A1A161C164DBA20CC21F92D8195C193A42577B2C0317F44A12A128A6104253D87B2D37E4E13184FD342E5A09BD45C545CC9CA7E2A9F75302314B6F55A1DC9659B0205179091B68A154F3477A59C752F93DAEF95C946519E7CF9F175B5B5BC5542A4553B76414A8CCC72B5860A6008DCA21E12BFCEF2418D21E09BF209AAF87D771CDC6CD91A31448D1D782F9FFD12860216520511290E4397F3B59C49821A1F031E6CA2478111B06667A6FAAA2A10595A8480D05AEA3F2C8E2747AA71029E3A30A7F49B8A06BC93D596E8A2B44B314B27AF56A181A1A12A3D1284C4F4F8B914884E62308D80C548E8E96A3A305012A8E7D96F56A9AEBF1D2A6256F01576B218E0C2DB314A7A01750E8475EFE3F8F6265DA278AB8F70000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (76,1,'Phone_(128)',0x89504E470D0A1A0A0000000D49484452000000800000005D08060000006D9E6E3A0000000473424954080808087C086488000000097048597300000DD700000DD70142289B780000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00002C784944415478DAED7D07601CD5B5F6D95E24AD7AAFB62C4BEEC296C136D8D81863EC18637A09046C8809A4105EC2FFDECB0B3C4202A10642C983044C82438D69B1E9608A7B936D354B36B265D9EA5D5BB445BBF39F737766353B3BB3BB92DC4818B89E5DEDEC947BBE7BCE77CABDABE2380ECEF44D85DB68CFC17D1B1EF474F4ED99DA2F12A12BBD96BE973E0C27F7FA3B309CC1009011BCB881CC6B50103A27F39A0B0784709AE65F1534670C00449D2FDEAB457BB50C20C201C0C7BF56DACB3D783853C3FD2B82E28C008044F862816B447B8DE8EFEA080010044DCD2BDA7B45EFA52090D330528DA26856BEAD8038ED00E0852F27786A5ABEE944EF3532DA400A00B1F00745CD237A2D1C03128DA3960100A76046C281E35B018AD3060085512F0858C737BDA8E984CFC7168E8B5DB07061A146ADC6F72A359E4CCD4EA256D36971C7FEC4D5D71F6AF870C3FA065EF06E6C2E7EEFE641E095085FAC69A48012038B8B1218673C284E0B0024C2578B842F16BA119B41683FBDF3AEB3A7964E9B979C943CC5648E29C4FBD6F8381FF87C1C361F70D87C9CFFB5BFE16BFCDCE376F7D8ACB6CADEBEDEBD157BCB3F7EF3F557AB7920B878107092EB8BB58C2054AF8C49F145C12FB8485AE27483E194034046F8826AD7F3C236F2CD9497979F78E77FFCC7F29292092B8C26733EC78984CB041E19001CFF7AC0E984EE9E1EFA5B6D45F9DE5FBCF1CADFCA79CDC089B48E21AFB02469D955D73FA4E2BC8EAEAECE1D95BBB66FABDEBFA755C221A47CC21B0520B8331110A7140012E18BEDBC30D24DD8CCD456DD726BE9B5DFFFFEBD0683314B10E84801E0187042677737889F75D0E3FEE47FFFEBEE5B782109F760BAFD3FEFFB8329C6B2100FF64B0BF72AE0BC5E9FB7CBE3763538ACF67D9DED2DBB8ED4D7D5D594EF6C8D02103E19D3E18B0610A7020CA70C000AC2D789463D093E46A3D1C43EF5CCB3374E9B56BA9253A9B462818E0400030E07B4777581DC63DAFAFB1EFFFD6FEE7D8E0780E9EA9B6FBFB2A0A8E4574CF4EC7FCEFF3D0606FE35BFA77EC3E6F60EBA8F0F3806F6F674756CAAAFAB2EAFD8B9A5258CA608A72D22718993028853028030C217D47D0CB6D8D973CECDFDF5BDF7DE9394947C964F46A0C305809D84DFD9094ACF88DF69F9F5DD775D4CE667C6AC79C517ADB86A0D6F8A78018B042E80820743284084EFF81C1EA7EB88DD61DBD5D1DAFCE5FEDD9BF73737345845A45349632891CC93AA1D4E25005412B265E4553E093FEE3FFFFB57F32EB974C5AF755A6D7C4088A30080CDEE80B68E0E08F77CF859FFAF7FF9F38B6362E263EEF8AF7B9F339A4C8543420E16EC6840E1F57A7ADD4EE7215B7FFFD6DAAABDEF966FFDEA98C81D8D0488B0DA61B44038E9005010BE8157F9B1D47EF5EB7B2E5871D9E5BFC583B55C40E0230780D56683D6F6F0C2E737FBFFFCE2CE15B7DF7DCF1D19593997050990DF377283ECA6D33975000481BDE8783F0024C09001036D5E8FDB39E01C38D8DFD3FDF19EAF3E7FB3BEBEB64B048641053E1116102305C249058044F81A19E1C7FDF2EEFF37F7DAEBBFFF20A95E12E06801D06FB542736B5B54F7872EE2E1DD7BF6AC9D35EFC27B55AC2F04A1F9FBC4EAF3C2D3EE7E70E2DF0CF828792A2DE4E163E4E2E364E26B8D58B021E011699130A0A07BF6B89C7D03765B655747DB7B5F6C58B7DE6AB53A650011895C8E0804270D0092089F56C4B403C2FFD99D3F9F75D3CA958FA8546AA320F0D100A0ABB717DA70E447BBB5B5B77F929655304BABD55A022A3E20340ED6B9ACB0D7EB0A4A4AD063A9F1201DEEB35408066C39F868997884566A36866542FCDFF5E203391DF676BBBD6F67EBB1636F7CB67EDD564934D32B633E04ED306C109C140088489F78E4EB799B4FC2B7FCE8F63BCA56FFE8478FABD56AF39040470E80DEFE7E38DED40CC3291DE0D4866EA3D99C2437321B065DF09CA327F010745E06048E5769FC7B521BF49A1E320D8FCC41CD40C0A0A6E720085052308841A1E47978DC9E4187DDDA68B3F67F75F8C081B5BBB67CF68D289A290D6D73A71D0012E1ABC53E364FF82C2B57AD9AF6B33BEFFAA346AB890B16E8C800802A138E341E8B5AF8F41D8D460F664B3C848E7C1A521C3CD9DF01AD5E4FD0A8F7EF39FF3EA0DEE83517782D0E6D26A9D43C18B4908E7F31F1D44D891B4443329D4E87D366B5D5DAFBFB375457EE7CE940F9EE761110B8E182E06401402589F009AE5EDCD2EF2D2BFADD830F3EA7D7E9937D21021D3E00AC36071C6E6808B98F7E24827575F5503A6D12A0672162FE3E269E84947445617CEDB4C1BBB61E91E0E91B43C2E53A3B6070FB0ED0A4A682BEB818D409097E8D203D96059154EC6FF41E8F8274044406B63404472CA7923503D182829EBFB7BBB37ECD93BF9FCA83C07B5A01A0C0F885E85EDCD4A953B35EFCEBDF9E379BCDF91C1FA8190D006CE8E7D71F3EC28E13B6DEBE7ED857510D8DC78FB3F7D75C7E29180C7ADEEF4775AD5641624A06258E86023A22F5DBEFF5C1839DC761005FFB47B22AB8304150FD8383E07CEF5D30CE9801BABC02707CF801C45C7001684C66661618781828389196500D65BEF01F3302209D07432A8E170B13730450483C8FCE96E3FD6B9E7E3487CF6D7887CB054E18001418BF10E18B4B4D4B4B7EEF9F1B9E4E4C4A9CEA276DA3038003857F1085EFF57A79B5EE83037587A07C5F4550F8ECCA4B9781D96C625DABD5EAC09290045A9D416674F93B796D771BEC1CB0FB85A70AB5F9F470BEE666F0ECDF07A6F3CF07AD29061C9F7D0A9CDD0E96E597E2DE067DEBD6813629096267CE04634E2EA87CDC1087E0B501690B75C06CF84D8801FF4D4530A460F7A5E0DE22E4A314C1C0417BD311FB0B4FFF215B94DCF29E72002890BE00E347969DF0E9E75F3C989595B54010FA680040B1FDBA6FEA617070905D7400DF6FD9B10B5AD0FD933ECF65CB9640BCC50226D402A6580BE871842A75E86197131E6B3FC68F5809F3E7099F67FB3650EB0D602C2B639F39DE7F1F8CD34AC1555901F14B9682F5A30F21EEBCB928742F58B76C01735111D876EF028D390692162C047D5C5C000C62E1AB85D7DCD0357578BDB16A1D146393330303F67EE8EB6A1FF8F3538F13009CBC191816191C350064C2BC02E317DC3DCBFB1F7C78F7F8E292AB8788DBC80130E07441EDC16FC0ED71B38BF6F4F6415F5F1F20A700AD5E47691BF020305C6E37122617E4E566436E5616188D46147E2CBB4DB9B83EF5DA034D47A009CF2B8C7C410B0802F21D3E0CAE6D5B418BE733949480A7B60E34F1F1E043F7D3D3D20CC92B2E87EE77DE025D4222F89C4E48418DD0BDFE9F907EE5D5E0A8AE62F7E643CD65CECB87C19E6E889F3C25402C21C44C70EC1EA6688D904F650F3266A0B5A901BC6E37012097C6C14878C08902804A89F1AF7DE5D51BE7CC99735730731F1900DC6E1754A39A77B95CAC23BA7BFA50C803A0D7EB11003AFF1E414060607BFEBD0155BEDE64020EED2DC88C7CEA02278ED8EDD63E38E8B4C3213CA71DDF0B2A5A2D7201E93567B382AFB313D4781D434E0EFBAC0F05AD4690C5CF9E035A1CE55D6FAF83B8D2E9D0BF6B27A8351AD0C4C642FAA2C5D0FACEDB907DE555D0BAFE3DC85CBA0C3ABED808C96533C1404452103E5D8FE72B17EACC60A26B72126288FBA68683E0F3FA069EFFE363793C00DC4270E8940040C6EE8B19BFE5BEFB7E33F70737DFFC245E433B5A00B8DC1E38507B101C281CBA671AF51E8F9717B444E81230680D784B247C9090BE3024AB19C176C8E9806F069068E2350920822910F301C14CF810148E7DFBC0D76F65E78B9D30116CC813322EBF025438F2DB366C0053662618D3D22076CC5868D9B09E01237DEE3CD02138D43C2FF05FC36F0A12345A98A78F19E22822AD6577D8A0BBF5389A41AF030130460400EF70CCC08801A060F703A46FC56597153DFAE8E37FD5EAB409A1BEFBF000E0F178A0EA401DCBEED1D6D767651D2215BE0185AE63237E080C5AF4F77D1A4D54E95DB998003B0EEFAFD9E36260388CA0388A5CC1C5710130884B970590203B85CE4F3FC1918CCF8AF79F8ABCA07DE3E79077F5B5D0839CA00F4D42CEE22560CEC81822995C7029F404BD09C66BF53281220E8E1F3D0C836E279160C7734F3E56447444E40978A3CD138C16006A495107A9FEB8FCFCFC940D1F7CB8C6126719EF930DDE440F0062F935757568EBFB59AFD8AC76A61AFD421746B9BCFA273078DD836075D89138BA4083234AAFD782064D820E8F538128F61F92D8090585709C8F340482E00882A101F7C7B1798013914781DC0D698C419B0D067B7BC05A7B00E28B27800FBFC3A1294B221E101261F46B8085660BC4AA35A13101ECB7437555EC782F9A80E79E7C742225B6780078860382110140A2FA43C2BC5BB7EFF87D4E4ECE45F2421E1E008E341C8563CD2DECBA4EEC300D76885FE07E211B022A3F54FD5371E8BC39B3D81E552582A817BABA7BA0B3AB1BBA9084F5F6DBD08370811E3D043D9A0983D1005AD6E1109D86002120E307C4511C91C790FC35D3C8E478764F35AB2CA6C0BB95BCAAF7F4F783B3B505928A4B86DC42D51070E2F03E2E8C89970D11DBED5638D650EFAF6C1A1CE4B6ED2CDF35E8F56CB15BADEF1C3DB0BF02422B9F1581306C0044B2FBEFFEF39FB79695CDFCA9B290A307401B122DF2ED999FEFF5E108D64846BCB206C09101B3CF9EC100123623881E431702A2A3AB0B3A3ABB1020BD2C8AE8427E116336813926965D17A20505BE18C4E76A450E710C41D1846068438FC407C10121A9D91852FDFE63C6A3FA9F6834CB66141B1B8F80B5B79B078017B6ED2A0F84C5F15EBCB9D9E92F7EF2CE3F7E21538D14028261012092DD7FFC0F4F5C70ED75D73DC92A764709807EAB0DCA2BAB50F0C8C6356A1C99DA213BAFA3BD0804120D40429D367922C4C5C6467C269BDDCEE208A929C9417F273792924B478E3642736B3BF421B933A22711176701036A8B48397FBE64CC2F2424902DC8035A1010CDE866762238B8402249ED07854A1425C40FCFB72440A2D4FDE3F715FBF63033C0EEDF6687BD95350100C4C498A16CDA94F2FF7BE291C5A21C41C8841801042301805AA4FA03C19E9B6FBEB9F8B7BF7BE0658DA8A267A400A0CEDFB5771FF3E349D064AF8347B9E8B548ED1BF8919F9F9B132250996A202496B528E416686A696511C384788BE2F1C4458E21200EA3493A7ABC89690A03BA7D164B3C039A4AA58EA021867885075B0782A0055B1BB66E0407A886C89F09B9CAC596243F479184AA69C4EF2FDFC5CC099DBEA2A616FA119CAC0016DF2FBBF8427C6FE3EC367BB7D335F0E991DA43F7EDDAF155B38C596028881A0032FE7EC0EE4F9838316DC386F75F8E8989192776DD460A80723463DDBD7D6CB49BCD66FF680F71F3426D3E3E0EC45B62212F273BAA676A6D6F87DA83F5909E960213C617C91E4366811E3D2539290440CD089C6F8E34B0D6DED1C542CD2929A990803E3DCF3015344430403CF8CCEDA8193AA8212012F13CA5E6B8D002137CDDD5D90E87EB0FF1F7DF09F5478E06FAAE647C21141716C2D163C7C1CBF7A93F04AEC54BF8EA9C03AE07DE7975CD5BE2605154009029EED089833D1515957FC8C8CC5C28F5DD4702808387BE61234C836A3F313E114C26834C608777F744C0203BDDD3D30733CE9A1A312D4CE6E55853132380334AA7C81E4FF30828A9D4D4D2C24CC48DD75E1919506DEDB0AFB21AF6D7D4E077DC90919E0EA9A9E92800B5AC2B170DAF101F47FFEFDF5F0E0EBB8D99B97DA8FADD6E0FEB4793D104972C59048D287C97CB1DE857AF88532524585A5F78EAF102914980E100402ECE1FF7D9E79FDF515A7AD64FE48237C30540534B1BAAE503EC9A298949101F1F2733E2F521FE3F710252E71D340A751AC8484B83CC8C74C8CECC44F51C134CFA50DD6EDAB693A97202D94DD75DCDBC04B9ADE1E831686E6B83F185634334C0506D819FAFD0751859E437F238F6ECAD803DA4CDFAFAF17E32209B42C8C41F2460088A394420999BBEFE92A9FFFA8646A675585FE27F175D309F7DDED3D7E7EF53EF90E0491B585033EAB49A63CF3CFAFB1271C838220064F2FB82BF1FFBE0EF1F9A7DDB6DAB5FC45368470B805EBCF11D7BF6FA916AB1E0E84993F1ED85204F301738547F9891355FE09C43F71017178B1D9F09B9D8B2333318587C2C92D80F8909F1A102C5CF9AD0EDA4DAC292A2714142956ECD08D8FA8606763C9990695326C91E4745AA7BF655C04E7CBEE3F81DD20CB9B9B9C839E2E56B0815EA0C5D4E376CDBB609CF676721718E7FCEB163F219E96DEFE88441CA3708B2E04140DF1D3BA6003D9DEE96671E79603C0CCD8D0C0F0005978F097FFAF419191BDE7FFF4DA3D1902DEEF09100C0892A6BCBF65DB877A2CA3742617E01E07943841F14FCE1DF37B5B6C27E54BB9C683248F0FDF0EE91CFCF9AD3D352211739423EB6B4D49420F54F7DB11B47ED91A3475955F18DD75C290B92A1DA833ED85B51C5D4EC79E79CCDEE59BC51A2CA86EA9A3491A065C8B494EFAB44D76D37D47D7318F94A2E149714A30A3706DD879C7B597708496B632354D51E04BBDDC19E8B78D2F790F8F5E2B504D5EFE544B1146CC949890C6C68CE1AFFF4D843934500F0450300A9CBC72A7BAAAA6B1EC9CECE5ECA8574F8F00040EC7AFBEE72E8EEE965C228193F0E3540BC9FFD13B39765FF7EB340EA6EF3F69DEC1CE100C029DC9F416F80BCDC2CE6358CC9CB63DA826CEB31E420E9A9A9CCA552761F1DE882D918A0A41C82BAB412794043E371A61D2E5FBE949D4F8E677CB9792B7CFCF917A052EB610A8EE2D4941445AF65E3171BA109BD9646E42FAC0FF13AF3E7CE811824CAE4CE8AD53EEB5BDC6B518365A1E6A3EF6FD9B26DD587EFBCF196A8764019000AAA9FD9FD75EBD65DB1E8A2C50FF86F627400A84134D7A33DA62D033BB378DCB820C227C7FE09F58E8101F8ECCBCD2C2D1C389FA450D47F7F5CD06808777F49890930263F0FC616E4315090B990DB0ED41D44A6DD04C751B84B165DC04C8B74A3B8C1C16FEA71F425B1F3457249EB0ED5C3868F3F835AFCCEC49212281C3B36849BACDFB09E8D7E2F8294EE39373B0B49EF3404A20385ED0DB1FD6CF4A724B1FE6A6868ACF9CBD38F2F14E50C9401104EF5AF5EBD7AFCC38F3CF20FB55A133B5A00742351DAB46D07BB26D5ED9D3B6B26984D667F785726AD4B0020A190AAFBFCEBCD2C08229E011C0200E9E88FFAFEFC95BED4C1645FC78D1D039968B785814E04AF066D707C5C1C4C9E5812D27F146E467B8BDF4943B7344E51F0147F200D4160B970FE5CA649882F7CBAF16B7CBE4D9098948C5A6132F689093D9C1E78F3ADB7A0B3AB87F5B94EA745F02D8441CF206A2D4F08E32720509FC5C75B289EE27BF39597CFAFABA93AC803203C075052FDE8DFC6575557AF8D8F8F9F16A8C71F2100BC835EF872EB36B02283A66DF28412ECE802D9B4AE8167FA02EB26D0907F1E1C3A3E010090DC2B273A1F09A1108954D1B8B1E8158C014B9CBC60898C56D5A0AD46F7F19C19D361FAB429B2C75135D3D61DBBA1F6D021A6A2972D5E1472CC3EE417EB3FFA14DA51E8E4F66EDFB12BD0E773669D0D2968DB07796D2075FB48AE043ED222FB2B2ADF7EF36F2FFC923C60BE72C8ADE805C8247A04D66FD9B973D75D93264FBA2DA8934608008AF15359176D64F3172D988B2E924136AE2FDE76EFDB8FBE6E9364FE7F9400909803FACCBF180C159B0C2A002074C631BD2657733C8281380B0143A83CA6CF1A8F37B3112A671A84CD4DF9013C9F9438CA6D1B3EFE141E7AE299C07D6565A441D9F4D2C0F5421B1718445DDDDDF6271EBCFF1C94732F9F31748AE71104014012EB1747FB629E7DF6D9F356AE5CF5128E39CD6801408CF50B243FC2B5CF3F7736DAC9FC90DCBE7423C01070421780901FC19100B068C1F96041FFFDC8910670A059D95F5DCD42AD82D7104228258B4E08D7D0E02823376B4271114C447790DC4EA58DDCB443C8FE893F9009BCE6B2E561854F9EC44DB7FF8C9164BA2691BAC517CEA7E89E3F1D2C030062877AF22A88387EFEF9AF367EB8FE4DF24645EADF2B540DC901402555FD73E7CECD5CBF7EFD3B6CB106E92819260088AC6CDCB485F9E1B41183FDFE5597B3D26D41F87291399AEFB77BEF3ED1B5460700720167E228DABC793334A0DA2E2C1A0F2D6D6D2CB246DFA1FBC9410ED0D6D6C11697107F9F93D168E2EB5B62E390C815C12474EF26968C0F3217D4DFE43A1E3E7214895E019C3575725800FCCFEF1E864D5BB707FA73E68C521623A1013214E8090600A97D6A0D8DC7EAFFF2C7C72E254E2A1AFD4185A3720090D6F6598E1E3DFAC78C8C8C25B276729800388036AFFA405DE09AB3CA66C09C73CAD803298570C9DFDEBA73373F3AC38FC6E1DC9BC3D607757575503A7D26BB868E991B154C40B54EA46CC78E9D683F2B203D3B8F317F6500C87838426E035B6E76264C428E3375E204282E2A64A3379AED23740FFDAADF7F5E7211674E9F06B1E618364CA523DFCB3F337DE876BBB857FFBE76F9A1EACA03FCE81F10CF1D08C9062A8CFED8BCBCBC14EC843D4482460B0072DD3EFA6C235383CCCE204A7F7CCBCDCCFF56DAC857DEB26D2738DDAEA8D4B1E22C22B9118CC70C7A071921A56C9E20CC5965D3C1E51C40557D083A3BBB21252D9DD52608E7B2C4C632CF80EEA9EEE0372C26A0048010DB8CDC804CC5D4491361DAE449A865E4CD0545F556FDE4AEC0B9A9AF089431287CE20D72B6DFCBC8F5200B1E5556557DF0FA4B7F11889FB85AC8279B0E9630FF80CF8F2DF1EDF51FEC4097463511559A56AB19310048851F46752B6C146ABDFC92A5CAF6729082447B02E94E65FF3E8A44137F6FF4909427205BDAC01227AE90D1AC4130D41FAC852434137AA399C51AA81289BE9F181F0FB7ADBC0135C741F8F8E34F20BF600C54202FA1D4752400C8DD7352520203029902DA5B7030D07177DF733F94EFAF0C9CA374CA24E41619909C98C8024072AADF8580A4743872AC81A71E79709ECBE5A475076CD282D19082109954AF10F1A33868D2BB1B3EDCD8D9DDA3A3C3CEC21B19876E907013D10280A66C7DBCF1CBA0891B8BE6CF637658293842B6924642E4000F1712F695CB34D22822C0914FFDC1071F40426232F4E1080B64CFC4DF971BC1F89E5CB694F838A6CDB66FDF0ED3A697C191864656C310AE2F82B592BC09216FA470CC18E6DE7D4D769FFF7E52423C63FD9490222F49CEEDA32417DD13F5EE575F6EBCFFD3F5EFBDC68F7E8794F98703804694EAA5D19F70D9D557CFB9FAAAEB9EB2DAED1AAAC9F31769E86102929BC9138AC168D04705007A20E9C20DD75DB18245DEE43662FC471B8F87C4F415012056FF0A00A08C5D2A76EEDB6FAD03B5460B535178FDFDFD4CFD0B6168F29D9B9B9BA1A9B59D65F9A400A073D3448EEEEE4E484C4903FB80839CA95073140D00A230A7745FF3CF9BCD88240140CEE52362DDCBB2801C85B11B9F7BE291E53CF1B349268CF8646B0225EA5F2FE4F9D7AC7DE5FF50A32C24D2E2E285CF40808DDE93ED2CC64E2B2E1C0B79B9398CC1CB0180122B1BBFDE1C22E49FADBE056225E95A7F84AC8577F7B85102205418748FCD4D4D48F80C6CD4C6C6C4306D7676D95930362F171E7EF86128183B169253D3A1B1A985E519A2B9E6C90200791194C9A4D0348949CEEDA348227125F460B8D75F7DF9EABACA8A4AD1E877855B3F400080742E3FB1B2F8B56FACAB34E80DEA04547976BB9D9566B7A14AA68B39B191EA140041EE533ADACC31E8CF53A48C5C1C4ADDD2437EF4F9976C9146F146D9AFBBEE582DEBF7EE65B62F5C678E1C00A11CC17F5C415E0EDAFD3A707906C181CF46934849AD0AC794A28DA6BA00321F94C5A3D87D68D049C13B08BBBE8132002CA88DCACE9AC6C2D0A499A4848FF6240BAA72A6ADBAE6C067AFBEF8DC2F44A3DF295E3B40AE345C5CE92366FF4CFDFFEDB537CB6D36BB9AC28D46A309C68F1BC3FC63B279354882FAFA6D2C85EB629A41008393E5AD3DA81DF272B2E0BCD9E7A02AED0FBA289DE3AA4B2F0929DD221B46E958EA788E0BD799110020E95862CD34A1D41B089B860280E32769D271747DC197664917BCCFA58B2E80679F7906B408EAF4CC4C68EBEA6571FB130500E967742F7366CD64758A630B0A64593F7953944F20F9A029733DF9F0030B5C4E67A728E8E38A3453485AEA254CEAA4EAC8C4975E7D7DBBCDE66000F0372FEBF8D2A99358E48B225A5F6F43DBDED4CA04EF07809BD70EFED70BE79D0B696943A95052F9D75EBE02D224459B1E1C79E5E8733B1CCED0D11029C32712A87874C7C6C4C282B9B3D9ACE1ED3B76404C5C7C20A2E69351C74A02341A0CC0799C8C60B5B5B541565E3E4BCA84069DA2BDE7C8A495720E3959592CB2C8CADC6500401541BDFD7DFE54EFA64D8F7CF8DE5B6B65823E61278BCA157AC6F200485AF3F7D7B7D86C3615099EFC6502018D6C011094B2BC70DE1CB0DA0790E46D83AF366F65491A314F5872E102747592F8746F1A5CB1FC7B2119327A98CA9A03CC53905587611784140B30786415171521798A81F2F2BD48281B212E2191B97342F915550E53F55143E3313617209C0089259166A0F22A72B55481408C92FD8E9053080300AA4398513A95E512A80D4551879E990A421A8E1DE32B935A9A9E7DEC2121E2679564FCC22E182197F88915DCBF17FFFEDA5756AB4D2D8C7EB6F70E69033F2006596064F9D2C5407182FD9555F0D1675FC0A75F7ECD46DBB2C50B21252505E69C5D06E7CD3A5BB6FE8E4ABA8828465A0B289C7B165A13E063932F3B70F4BB51702A24B2445A49A5D2B9962C5AC06A02376DDACCD4BE4AAB67695E5F981802372CCE115D52490A00120711521A24A5932733D7500A1C52FD07EBEB1907A39941FF78E3D51F5495EF2917057DC4CBCC859D24AA04800402C0F5D7DF3073D192A5AB9C6ECF047433D4E2D11F00810810747314FFBEE0FC739154E5C1961D3B59E9F4D2450B59F0453627DEDCC2023272028C0E009C4C0026F8FB1E7E2109E0047F1B607AE914F8E4A38FA1AD1D557A6E1EE80CA6C0F7493B502D00B5A6E656A83FDA086E16301A29E98C16004846F37351F567B2784B5C5C9CACDB771CDDD4567E39BCBABABA4D2FFFF94F3FA788394FFC1C22E217719AB8DCDC7E410324F24048403730EEEEFFFED5D2DCBC31F33ABABA1348BD0BA33F58330C018446F1944913E1E2850B60CAC412969A946EA42186D8F48906807C5DA0F07D37F294638D478132C289C929CCCEAB78D237134760E9E489F0CE3BEF420BBAA4B9630A59F2C61B2D00A4F63FE89E650820FF9E3CA3B3A64D81ACCC74B4FDE365933D54635875E020B3FB4842DDCF3CF6D0229BD5DA1129E41B2D00F4A21070020F84783E2E40C121FDF4B2B2ACABAEB97EB957A52E467BAF0D320FFC6B8FC454D03D50A873F9928B584893F2FE34D5BBE6401D1EE70B0F00694745000099189AE8416E29D5E9D3BD844F0B879A9C29934AC089F74791BEAEEE6E28993C0DAC8170F4490000E72789543C42A37E1E7A4E548D2C75FBA83FF7A289A5790AB46DDDB2E5E9F7DF7E738DC8F63B9542BE9100208D02C6F044308E6F02000C20FAF99695AB56CF292C2999DFD2D199EA700C849A079166F00434030765A5A570F9254B983B18E29F2B64D8A201008DE285F3E7B2DC0131FFBEFE7E56BB17A2462300807A630049564F6F37C4C52730D2A8E1B583AC0B1909000A0450FCBCAC749D6AFCA64E814C46FC42593F694BAA82E66735B53EFDF0032B78D56F158DFE612D1AA9523003422E4068661E00461108F4C22CA1FCFCFCC4ABAEBF7119A7D24C6E6A6D3378A4209021913F5A75134B2C51D9756242028B72450500450FC0C7CE939C9400CF3FFF3C4C3B6B3AA8D9E20A1C8B9FD388A2E24C2A8F16CABE590227C20AA4E1630E910110CE03109E970602CD294847B27C2E1265B9440F2D81BBAFAA5A98DCC2BDF9DAEB37D5ECDFBD5F26E813F5E8970B058BE7FB0BCBB99B44AF0D10FC5B3ED21F74D22E5BBE626AF1C4298B9ADA3BB2FAAD569578F48B8170C7AD37F953B03E7F6938958067A5A7B179018A193E050F40CCCEFD53BFAC2C3C4A4397AA62E9BBB3674E875E64F9D5D535D8AA60D6B9735954330400321E403800842B2C8DC664D1B9A74C9A80AE9F89F1A540DA5DA4FA070606581D247933B4555656BDF5FA5FFFF2302FFC7E19B78F1B0900A40B3B0B403044D904203030C4272498AEB8E6FAA5A0D54F3F72F498590C02F2267E7CEB4ABCAEDFA76668471008A8A790329553D36D45B2DFD1D60552AEE2FDF5EF417C7C226A061D98D075F557D5F80140A9D8DC9C2C1C699DE8621D66262412009449ABB8EE203C00FC1355B2901B4D8689C545A1DA0DF7E44D75F0E1DECEAEEE8E271EFCCD151435E7856F8B36E813768510494A58BCF48B0E827FC6CD200186542318C440A076CEEC730B274E9BBEB4A9AD23AFB3BB9BC5157EB27A15EB00B1F085C48B1F145EC68AC925A2B2B1A801A0501646CF49AB8CB1502F85B60D46B6D40C1D573C6E2CBA855361E3C68D38BA2A21333B071C6E2F2BDCE414EA02C393D6E80040A689463F99C1E58B17F9E76DCBD8FD8A9A0381D540FEF1CA2BABAA2ACA2B65823E5E18C182D14A35817240D0C88021E4E7DD14CC030383CE68347C6FF9650BB546F3EC450BE6C770FC1A40C120F00BDFC7EFE93DF079780A1FAB0264ECC41486D23D50787AD0E980DABA8360494804534CACBF6A496EA6D1090200C7A6738F632AFF52F48E52929343DC3EF2403EFD7253207681AA7F1DAAFE2778E237ECA04F546B0489400010FCDBBD1A1151D4CA00410A00A38256D025A07978EC8FCFFE0E6D9A4A2A7C1F2FF421108835036A05EC304A8D526E9F15A544AC0B8C6E5E00A5825C9452453B4B84D14F4AA3C82A0E8B000E0120253911597F364C9A500C73679D1332F25D781FEF7FFC19E3332C66D2DDD3FEF803F75DC30BBF4FAED267384BC4865D2226CC0F39ABC39808BD040C46191311D00E33CACA326E5C79EB8A9898D8F13687432355FF620D20083F882B78FD931EA9A6CE6F2294326C239B19249D18A2F47D8A3BA422D1A4656458FA380A0090F74382A7FBBEE1EA2B456576436DD3F61D70F09BC37C29F920CDECB9A57AFFFE1A91DB27A87E0F8CF0B70222AE0FA00004950210B4325C410C00A937C180A0D3E9F43FBDF3AE05E38A4BE6D81C031616B80912BE3784284AC1421D4D19475A129616861E3100C2CC0C92FB3EE536A69414C1BEFD1530E0F2C0F1B676B63A47B8BC05F5F7B8C2023605EE928B2F8271630A42DCBEFA230D2C97226C355595FF78E5A5179E9251FDC376FB46B44C9C2AB85E5B25133F90FEE0B314084691F0CD22F73228B03477FEFC3C742397825A57607738D4D108DF273117F43C145421F268662E65F899419101A09C78A2491DB7FDF016964F78E8B127A1050170F8E8D1B05E4B628285CD3720C1537D62F09C091FFBF18BD7DE7E97257AFC05323DED8FFDF6BEEB6454BF6BA4C4EF442C1327671E5420FFCBDF626D10F86550BE09C01093458D3936D6B0FAF61F5F949E995D86FEBCD91BA5F0C55CC1CB1755E4E7E5A066C80683511F5A541209000A1A44E01C54A14BAB98ECDAB91D32730BF8BA3C65D2A9566BD83A3EE47EAEBEF906B6B854506D1FDEF7BA7F6E60B386F885A97C6FBCFCD75BAAAB2A6A25AA7F54C4EF442F152B175154C968043910982420080202B58B2E5E523C7BEEF98B07DC83594EA75315ADF0A566C4C76201D92CDC1A4BCBC7F19336869554920040296FA1048082FC3CB6F6E085F3E7C1D9A26A68E1F36DBBF604664B33D55F5DFDC62B6BFEFC27D1E8B78F24DE7FAA968B57320F1AC932F2468949304908A31C10B429292931D7FD60E592188B655A4FAF552F2588E1842FE755901741DE445A6A2A33158247113EAB38DC9941439FD16827C24AD3BA565E7F4DC82C282AED5AFBC6BA80CBD7DBD7DBF6E8FDFF7B8348F8D6D144FC4E1A0086E13D88E3085277D128E335E8253907A1A9172E5A3C71E2D4B3160EB8DD592EB7471510BE94342AB994520F035FD35C7F5A0B80E60C9A8DA6C06FF29C0800D05A033497823C8655DFBF9645FF82660AA3F7F0E2DA575941AC48F5DF8AAABF4E44FC1CA389F89D1200840182D86B1073039D42FCC0182ECC2C68159339D6B464F9A5172426A795DAD18360D3BC46207C31708411989C9C84442D9F0568C8660B6B024BA79685CF5BF83FCBC9CA80989818B65EC0C2F3CF0BE92F5A03A0928FF6D1565B53FDC6DA17FFFC9C0CF18BBAD0E3B402400108E2B4B35A32AAF53201A568802080419D989C1ABF60D1C50BCC96F8C9569B2D968A4CC5DA205AE12BF50765EC52929269AD3D888B8961BF40426B00B07C8562D4D1C716BAA4BA3E2AF15A7DD30D21CBCE5075F5BBEF7F34B4B44C5F7FCB23F7DF73332FFC13EAF39F72008401823A42CEC120136696330D522030306464E726CD397FFE057A8369425777AF79D0EB0D0D3049B8025B686A847D4142A5A558E2E362218696B8311840A3D5B09A439AF944AA7FE1BCF3E09CB2E921EB08BDB0F69580CB87AEAEEFD597D7FCF040155BCAE584FBFCA70D00C30082469289D447483CE995CC830086B185E3D34ACF9EBD90D3688A3A3A3A8D14680A218A3C793CD11B1577D20458D2061555350C10E96969F8B722B692F9FEAAEA80CBC7ABFED750F5BF20CAF4596184BF04724602200AF7315C40492E1329CD35286A056A05630BD38A264D3B8F53A98BBBFBFAE39899E0857F32FA4100004D78A1351168A4D37434175F53B9ECE245812A696B7F7FCB43BFB967152FFC3E992A1FEF8916FE6901C03080102ECC1C0E0C52F3A09302819ADE68348D9F5C3A3BD6923069C0E54E75BADCDA930580EEEE1E16D7F70BDFCDA671D3EB450BE6B19FB44300FA5EFBDB4BB71D0866FDF648133BBFD500184198395C4A5A0A0625F3A09503035D2B3E39356DECF809D3CDB17145032E4F8ADDE1D09E2800908F2F4C2177B179947E20CC423340B188DADA9AD7D6FEE5F91725ACFF84FBFC6724004618669633113A0910F44A7509725C01827F044C9D999D9D56307E5299DE641A3730E04AEAB7D9B5C3ED2B02C0F87185B0E6B9679FCE2D282C4E4ECF9ADDD3D71B47E48F00406B0C8ECDCF697EF4B7F7FD1049688F4C81A7E764A9FE331200C30C33473211FA3020D049DC506D3830D0DE60349A73C6164D30C725166975DA548E53C579063DC641AF4F1D0E00269DA6F6CF4F3FF932FF27EA6CDFDC0B975CA433C59C63425FB2A176FF1DD595950725E1DE93E2F37F6B0010A57950D20A729A41AF00025D149A4123019FB8815E6F34C725A7A4A6A4A6E59962E232B43A7D32A752591018A6C2823CCF47EFBCF180C36E7709617F7E447B78215B79A14B55BFEB64ABFE6F0500A2AC4D90F320E4C0A09301861210745198891030C0D0AF737941E6777AF836C8DB763100C4AC5FBC94DB491DFDDF2A0084D10A725C41090C5A89802301422B21A062AD20BE9E700F1C2FB84149F349C0210680D06CA24C5FC459BDFFB60018A60721E50B4A1A421B8569D0CA9C43AA1104010FF2A3D82DF6E1459F7B7861DB79C1DB45011FCFA950FDFF120088422BA8C26807B564842B690839B2A895E1085200B845021503C0C7FFCDC50B7D80078338E0E3E34E9160FE2500304C30C8B996D208A44641E85AC9715273102D00BC220DE1923BEE3B009C3A3028553CCB990D8D82972076057D2213E09131014A3CE1A4C4FAFFAD01102518943C8A70C0502BB8886257CF2B0EE38A842F1CE3131DEB3B1DC2FFB70240183044D20E7266436E0F0AAE60D0EFF64A8EE140E6E75CBF03C099A11D40E2E3870307C8C402389918801800E263813B4D82F80E00D16B0725D3213D066484CEC97C3EF4E6340AE13B000C1F1072020719332027F83342E8DF01E0E480E28C16B4D2F6FF01DFF07D7708FAA75F0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (77,1,'Phone_(24)',0x89504E470D0A1A0A0000000D494844520000001800000012080600000041EC1E9E0000000473424954080808087C086488000000097048597300000298000002980136D347DF0000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A0000044049444154388D95947B4C5B6518C6910D940D5DE29C8B99897F1832CD12DDD0651AD8583082D67019C28620307005C6A402456E2D94155ABA1690B65CCAB5949694310AED56A001063ADCE2748311770105648CE90435B2251818EDE3F7D5D384454BE6499E7C2739E77B7FEFDD05808B33916703D126A2CD444F11B93AB4DEBD476C3831FC04351C1515F5764D5DA351D5D87CB954AE30F10A8B3FD9EBE3BF33312D2FDFCF2FF02506ECBE1ED099F1679A34DAA6A1E18B2B96812118CE76A3AC520571B96235A7B8742A49AA4452891CDC42E9527296E07ACC71AEFC9DE0C8DD4CB46ED4C67F0218E39BB5DA56D595D1315CB8F40D7AFB07915724015F740A5245ADADB44187E7A4A5D8745288178B443820ABC0119912A91205D20A4EADC4A7E54E86C6C4783903B8ABD59A9C1BB7266C0E804C59034E361FA232057406338A74EDD8A3ACC2F3793C6C4F39811DEC44786566E30D5939E2E52AF048642111D141FF02D0820A8542BF1FA7A6FFBA39FE032840D76E805C550F63B705D333B731393D83EF46AEC164390F4DC75988F4061CAB6D024B5A8E80EA5A889BF5E0E40AE0F36ED0DDE0E023AFDB33E2480D8BC5DA766B7C626A66F60E2860F0ABAF71BACB68077D3B328A1BE313B8373F8FD5D555DCFB751E56AB15533FCD6070F812F49D66B475F7A3CD64C1D194341C8A4E40FC8974441E658739004F5E1D19699B5FF80D1470FDE638BACCBD7643B767E7A03DDD81DA662D2AAAEB50A7D6A2A76F0057AF8D61E5E143CCCECDC166B3E1F29511B49EE942E0A128E4094B90C113AC6CDBB5CB931A77ED3499A2177EFFC3E600D0AE59BC7F1F7F2E2EC248403A02A86BD6A1A6B105B98522C8145510939AA49374942A5538633463EEE75F689741502285E48B4A04877FF43933472EEEA6EEEE31EAA1A44209736F1F34FA762C2F2F63E8C245749EEB2100031AB57A1491429657D5A2402483402441525A16629339088F658315F131794F450B7126353BEF0EB1EBC164C7C543D5D0745E5CAEB4D2F0F51D9D585A5AC2E8D8F7A033E00054D63541A16A805052867A4D2B38397C24A767FF0388632328320EE77AFA51D5A0B6EDDF1FB0D7317CF4D948E4E5E9B9253C85936E49FC2CF301977F12E6BE7EF43200BDC1681F3432D150A95B9049BE73798548CEC8461C0144104045753D0649C4B1ECE3469A9547DA9481D082D0F10F884D60ABABEAD50F0462993DD7D4E37A8D0EF29A7AF0C9D0E5174B90555084FCA2123B803885BBB40665F22572FFD9F5267903B35F5E260AF2F53D20CBC8E54F1E4BCDB08646C7DB53C2E50B91430A4D236073B8A42DD3EDAD3CF0E5303E083B9C4A57C5E32C3B076807D1413737B724566898F9FDB0C885D77CFCAD3BDFF405D53E7F163ECDE2814F22E264E78D937F9F5EEBBD53C01A902BB3A6B712EDA15111256CDDFE8278F75BBE967D07032603433E1C7D2FE4F0E82BDEDEDED4B1C75AD74E36AC3BB32DB73091D1EDE9CF9CAFAE2DECFF0638898C023D9873A3B37FFF061794DC42FE19CB1A0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (78,1,'Phone_(48)',0x89504E470D0A1A0A0000000D4948445200000030000000230806000000D24089B20000000473424954080808087C0864880000000970485973000005310000053101B7ED28520000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00000BF24944415458C3B599095C14541EC75301C9238F523377CD705B77DD343769C972F33E96F2C62410144401B991E1464018981386E106412EB9454E4190302B656DBD4FCAF2CABC4DADD415F1B7FFF778B0A38E79369FCFEF23CEF1E6FFFD5FEFFFDEBC00E085A7113DBA08752319E888FDBF2B7BED69D77E223B9ED27066A021A907A92FE915D240D200527F522F9291785F571DC84EB8E705F834C61B080307934658DBDA5A28D4B16A992A26215A11932895A9345EAB7C1D468D3235A1D77B925E24F5D381EB2D9E337A1E117B52E30D85316F4AA3E5E13575F5A71B9A3EC7A6FA4654D4D4A1B4A21A05A5E548CBCA832C36FE4E88343A89DEFBC725CEDE113EE1AAEB9EC1514796AF0A2AB2B05DE6D0A7CF4006F8AA588F811A8BF5BB3D49849ED4F8FEC3870F1F5B5C56DEF055F34E6CFD623BEE07C8CC2B44548C1652751CFBB775D458B3B9418A84D600593CFCA3B5F095C6C1272216DEE131F00891FDEAEC1BF6CD5237DF923996F60E9491AF09A01E3A11FACDE83C2E005BA86FBF7EFD46D76E6ED8F9EF5D7BA00F20A7B0848C8EE7C63345C7686F86C8E34F46C6AD85243605AFC995F8872216160A2D3CE4F160507E515A48A41A0EE519A66C7394849EB176F22A99326BC1C7A2B63AEBE9A90044485F323232FA4BD5A6DAC6DDFB0E401F40665E3EC21531885469B818804C9BD616939E07756A0EFE1E130703990CDDE50AF49446A10FC19828D4F850A981A59280948908922708A838482235700B96DDB6730F685968EF1AF79EB9F9107D917894F15D457E9A545456971E387C14FA004A287522949416C1E1183F630ED61088323E05A9B92548CE2981675A160CE572BC48EACD006C6CD1D7D51D03FCFCF1AAAF1F86462B309C60C6D01A33555AD8AAE2E1A54A42B022018104E51F1D0F0B9BE551CC998F0D20F29E15D61F4B4ACB528E7E7B0CFA002A36D5716FBB4A0260EBE8061B922A2105D92595A42A641557605C42127A28947849495AE982FE1E9EE8F7C9220C7458814176CB3060CE5CBCEEE88C916BA4789B404CD51A98D19A01716988884B8724428105D64B652C951F0B40A768076A345A8FEF8E9FBCAB0F80A58E3C2E017E61521E8184B44CE41595A2B87C134AAAEB515C558FC28A3AE497D7228940BCB2F3313B652D466B13304C1D83D77D2478DDD50D6FB8B8E24D570F9858DBC094A2319ED6FC489B0C755A2E54293958E91388059F2E6111E87E7F1AFD56DEF7B1B5B39BFAEDF7C7AF1300EE07D8FAE576A8135310A5D6429B9AC10BB8B2B61ECD3B77E1E79F7FC1F193A7B073D75ED4356E45E1C66AE46FAC21A80682DACCA1924AABE0975704ABB5D99848EB9846C9F16E7824262624631A45D09D9E4FCA2E4642562196B97A61EADC85D7468F9B5C6B6666F67247ABD50B20F2BEC7902143DE3C78E4C8E1533F9C813E80E40CFA828C2C64E717F334FAFCAB1DD843AFDDBC750B1D8FD6D63B3874A485FF7DEDDA75B47CFB1D9A28EDCAAA6B915554469169872AAADC8C940DD558BDBE184EB48758502435856558575481E4754570F2F081E9A49998366F119638BA5F5C68EB903A73E6CCFE3C53F4A40E6B5983B76FDF5178F6FC79E803C82BDE409B552E369221AC0EF61E3848C61DC3D66D5FD17B4F7088BB77EF62EFFE439D30D7AEFF8C83F4F98EC79D3B7770E6EC39D4D46F4172662EB28BCA5156DB880D355B78FA31A8028A54905489598B6C3076E20C78F8876089933BAC57B850BDB9E67367EB499D7EC5C5C55E972E5F813E80AABA2DD024A7A171EB360EF3FD8953B878E9326AEA1A7934D6E6AC474A660E8A3654E04BAA13F6F9ABD7AEDD637C5B5B1B8E7D7F82FF7D8B607FBA7A15878EB62023B700D19A2414520D55D66F4579DD6770F6F6E7DE77F2F2839B6F101C3D7DE1171A09DACDC3B8BDF7A54EAFA0A0A0C9972E5FFE451FC0D7BBF74211978826E1E9CB577EE29EFC627B33F24B3622BB8001E4F3F46275A1A65C96C52650A127627D4919767CBD0B172E5DC2FE438739047B5CB878A9138C45EDBB1327B18DD64B5E978BD49C229893F7CD175A2138520EC9EA084842D6C04D1270856C7DB91340A44E7753535393B367CFB55CBB7E1DFA00D6AD2F426159057F8D19CE1EFB0F1D414979955E001689E28D15D46635581DA5444078147CC800B64FB09969CFFE03B874E54A27C0E9333F72888E872A3E99EF2B11AA38442ADBD7089529F1FE87536DC5FED4F59ED4D9B3776FD68D1B37A10FE0F31DCDBCDF330F753C4E9EFE01E534423C0C40A54D4220B5D870EAED25E5158890AB394088548E95AB02B09C8AD3DED51B6BE431D850598DA3DF1CEB04D877F030269ACF236F07419B9CCE61A43463592F73DE45B60E126DBE4B07002BDCA1959BEA8ED76CDE8213A74EDF03C0F2353E3D93B7CD8E2F60E9B3A9A1F1FF00A53A0099D9FCB9ECF585906BDA53481212CE733728428ED0C828B893610CC06EA527162F77C1223B47CC5FBC0C56CB9C796BB6A6E7667FBA04A9D42CD8741B4F0EF10B5DD3DAE79557C676785FD8CED3A767567E6174E5A6CD7753D7E5C19FBCA664795B5C862F76EC440D19CABC5F5557CF8DFFF5C60D7C4675C03A483B40B50028E90488494C25EF474249515069B408A3F087501EA75074BC03C3E0421158E12179006096A52D662EB0C2F4B98B1047CDA2885236B7B094AF3375D6FC6431E019E8D42E4F9FFEF945A5C59AA43468E88B6B1B9AF8872CED9DF0CE87D39198BE0ED59B1B785F6F6D6D45F37F76A39E66205D800201C036B4FAC626FAF2B5884D4C432CAD194113682801B054715FE5070FBF60B8F8E800AC707D00C08DDE535DD7407BCC663EA22F775F7591EC1C2E0E435D7401D8A83CD0C3DBC73D2BAFE0A2940AC697AA9D794841E167AD6DE7AEDD9D5DE220156D93CE145ADE7990D9881C02C8C8CDE79D4A4B23430A6D74C1E1525E806C5A6535C0BA88A7FFEADF04B0B05DCE373BF63D2C4DC3E5B118F9F6D8A5E244D7EDBED6DF5EC0A47748F3478F1E131811ADD81B181E7D9B85769EB53DB5B1C5485A9BC537AC871D641800FB7F0D458A751F96B32C8D580D308050A98C3C1FF42080CBBD002CEF13A8DE76EFDB8F666ABBE9B4AFD020D74CB60D13C36597FB013AA64E76BC7B8B348964415AB6C0D22AC7CD27E09CB9C562984D31E7C66464AF47398D0EF59F6D7D00806D640A1AC4D2E93DB9F985EC58C93F934A3D3D345A89C035D1ED00010F07609BD53E72D4E1966FB8F73D03426EF6EEDDFF7D7179A07F9C169B18EB442F91D8B1EEAFA40F48B348B603060DF2B5B4B1DB416971279EB7476A6974685127A452FB2C436965FB59B83D850A780458FAB108B0F707AC0EE305DC0E102100020580572700EB3C0D4DDBF0C38F6769673ECA1D603661CA6AB26188BE49F49E614EE7BAC448B4A981A2684C4933493633CCCDD5B1F189C7A838DBC2642ABE31F18E42DE64AD8F75A08CDCC2F614A281AC3D8512F9092D345AD509C0DAA9824E68AEE4ED0E004B7B675E376CE8632D3C23AF80E61EB7FDC299BD1EFB48A90362202ABEBFC83F5311113B4343438FE54E2E556B64EACBAB08C0D15382A5CE1EDC082BF222EB38B149E9FA01A841F8D0C9CD8152C781ED0302C0DD37987B9E753A36AA93736EF7EADB77A2B88E3178D8C1FE716E23BA891A61B3C79F486624739235C979988949F84ACF55BBDD2481FF65DD837591E9F32C31C17C3E267C340F36649C777018CD328A4E808E1462E00CC09EE6FDBA2D4DBCD3FD78EE3CBF1898F6F11CD9C30AF769AF550CC47507DB48DE208D214D212D2439903C264C9E9E69E7E4767A8ED592BB1F4C9FCD47E0B7C64DC208D3F15CECEFA9B33FC1BCC5F67CF35AEAECCE8B985D069CBB7001B76FDFE69BA08BB75F0BAD379A1DAAF415EEF3B89933168B0FD129F8D9ACE0492E3D7BF6F49F6A3EBB6EDA9C8517C68C9FDAD601A04F2C522C2A2C6A8B1D5D59B76A1D3C78F0BF4457347CD405D7B35CEC761305DF4BA7E0D99C329DF4096BC32457928FC988916BFF39CD7CDFF8E91F5F1DFDC1E4B6FB019CBD24E7E77CBAF4D6C48FE663BEA5759248D51E8F733BF76C17AB0F163CDB10FF401A497A8F3443EC294B484E2CCD189081B171E850933F678E321D573F6ED28C9D0606069EAC9E8C8D8D6DC486DAEF51A9F35C001E11959705CC08119909A2F81790AC0494AD0064CF4F23BD2B2E8DBB3FD7BBD1A78C4A074CC7153C9BE1878AF4F89BF0F45811AD610276808864D7DFEDF78167FC11C44834809EA209F415D7EDC6BA97B9BFEB0F1CCF0948374ACFF483C7FF000ABFFFA86CDF2EA00000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (79,1,'Phone_(64)',0x89504E470D0A1A0A0000000D49484452000000400000002F080600000053CBCC510000000473424954080808087C0864880000000970485973000006EC000006EC011E7538350000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A0000121D4944415468DED55A097453E795BE92AC7DB12D2F32DE00638377F64030D8C42C216D26A44968364A266D0E6DCA099D493AE7F4B43393A4694F274D139292852629709A9240D906E810304BD882590DC660BCDB78DF6DEDBB34F7FE7E4F799265852DE98CCEF9CF939EDEFBDF7FBFFBDDEFDEFB4B22BFDF0F77F325C217FF36E4E8171EFD77FBC1B7BBDEBBB50ECE7071982104C0C70D2F771CF3E1DF1640770C0067388D281C521C32C19070200067B00787931B2EEEB35F00961028FFB7C19A3B0280335EC219AEC4A1C1A1CECECF4F7CEA89958B120C09B91EAF4FE2F7FB447E9F1FDC5EB763B07FA0EAEAB5AA937B77EEBC8ED7DA386379C0C402A03C02A6F84240B96B80DC360002E3159CE1B16BD6AE5DB07061E90FA363F433D068A9C7EB018FC70B5EAF178FF81E8F6EB7077AFBFAF0B3BBB9EA42E5AA4F3FDD584FA0ADF9C5ABEFCA64B22C87DD5E3DDCDF77FCC8A183877BDB9B86F13B3737BE0E94DB02E4B60010184F5E8F56A9548675EFFC714D6E5EC12AAFCF2B09181D02801B47574F0F389D2E6E1E18F8E58B3F2BFEFEAAD58F4DCCCE7B95D6E2C34147628CCFEB712050DD4EBBADDA383474A2E2ECE9B286EB957D5CF88C05CA2D8171CB0084783E263D3D7DFC860FFFBC5E1FA79F4EC606192D78EF76BBA1A3BB1BEC7647602EB148E4FC64D3C6958F3DB37A0BCE2CF3F97DE0F0FA583CF939207C1C18ECBDCF87A0785D2E97A3DB66B55474B4B57C7A78CFF6D39CA608011132242218B7048040E9C9F8689D4E97BA6DFBAE77E313E2678F78790C00D0F3AD1D9D60B5D942A71CB6BBA057A9D14C2623077C5E58EF1C821891182688A5908E8F4AF54B40E31F03101C6E97CB63B75B5ACC46E3D1BA6B959B2E959F68E6182264897F2C106E1A0081DACB71E8A452E9B85D7BF6FE2135356D11D13B1200172F57825C2E0F4E73846494DC2D57A8A5BC311BAD8350EF71123340821748E848482320692209A42018E310141D2E23102A8C197CD8F8C06AB7DAAC6673B5697060CFC5931737B5B55DEE2720F07BDF9D0220E6D45E872371D77FEF79252B6BF2631E2EBEC702A0AABA86BDF722B5EB1B9B6072660688C5629C4F02D1FA848027AB9C36D868EA6706B38162E96BA80779FA0410E1FDD2E8E8404ED52000C9E22830E09944BF08747E2EF84300F17831EC5A9AD76FDBF8DE8BA413E15870530070DE97726A9FF0D9B6BFBD3875DAB4D55E66F0D800D4363480D962859EDE7E283F7B1E4C160B3CB5E211502A14A08F37801FA7A5E7BBD073AFF5B4C23086C00800F8B8DE5E1059AD20C6B945289AB8D0917CABD7834CA30159AC1EC4740EE750A0090604240EE149C12123403846345EAFDAB175F39F565248DC16009CF154E4A870C46DDCB8F9B9F9C5C5BF4043459100686CBE017DFDFDD0DDDF07741D790E6B02C89C30010CC9C920924405BC7FD66C844F067A80581A858F13A3507A2A2B419A90086204C5373C8CAC9180442A05EF403F28F0BC2C3616A2A2A240AA5481222696CD4F00954855A04500492706F1DACEB6E61DDB367FF8030E00DF2D0110227AFA575E7B6DD9CAA77FF03EAA7114193A16004D2D3730DDF5C2D0D0308B7D8D460D5AB59A1DD52A245194749498B9D0D006BB0DEA71343A6CD08D5983BC4E8078DADA001C76347E10E468B81FBF53C4C480A5B61692E617834CA94036006811A4C5724D60CEA6FAEB601A1ADCFAD9E68F9EC3F553FAF185B2E0EB0010F3A2F7BD152B0A5FFFDD7F6D43D4637943C30170A3BD1D6EB4B683DDE160540F365E0D31313A18329AC064B2E003C42095CB98B6B2BC2F10363BCED78C40B4D8EDD0EA72C080C73D522FE379576717BEC7EB31ABC465E770DE17C164990272A58AC01C57AF5C84E181A163FB776F7BCA66B30D7399210884310110C4BD36353535F9C0C1B2AD5A9D2E57E8E95000FA0786A0EAFA7526421AB50A879A0D2D335E052929E360D284F1C0E56618426AF7F60F4037B26560C8081634284A2A0785424917040162C3F95B911DED2E27742120267C269F25C8783A16AB75A0C7D0A2FB2C2613B434D541CB0D74487B875FAD565D3A7B647F89B007A157580004C50EC57D42F999336FA68F9FB03C94EA420028C79FABB80C72A90CD4CC781C2856742400544A25644FCE0A7A8ECD6687F2F317A1B4B8889EC916DE3F30006DED9DD0D3D7CF98627338F15E3528F17E2120167C7E177ED7E3B2431F86047DF79D98B840585DBD5A0536AB1153F035AC3C9DB070FEBDFEA161631F3273AFA9BBF557656565FD7ED6A4840780AFF46277EFDEFD937945F37F152ED67900B0348373172F3123E2F4B18CEEBCF7E9BDC56C85B4D46448488867399E5E344F7D633382921978EEC0E0105CABA985E2797303E7E8BA8EAE6E964E9B31B414287A71FAB891F6320048700549E78F1FFF02BAF1BED68E2EC8CFCD06B9420E2ECC2664834AAD746F5CBF4E4D4C18058020DF47FFFBCB2FCFFFD90B2F7C8694964502E072D535A4F0202AFC44D0E93401C3E988B107E72B2AD9F594FF93121321655C12A42427B1C5C6A298D1CB6CB68013818C8FD307D642CF3B71FA2C14CD998D622A63D7D73534C1E97317A0B5BD0BE2E2E200C393014F20F080D07D070F7C8EE1588BCC51C0DCD93399E6502F4225589C5EEF7AE3D7FF410F760601204879EA9C9C9CD4B24387F660A393E11943ED0980A61BADCC6B3948EFE4244390F11E54F6E3A74E83D3E182709D2185463A1A30213D0DEF41CFA2C2638519C488D89868061CBDAE220BC8935919139931E72F5E865367CE6298B820273B1B70ADECBA1ACC0E65878F80D1648445C50BC08921C29E898300EFEDEBADFC78FDBA7994194201E0A9AFBF74E9D21B1333263DEEE5161E0E000B1639474F9C8271E8D199850541D4A7790F1D3B0956AB657485C801209C0F7DC798918122490626C4C7414353734037A8991AC0B49A94981058AF0BCFD5D4352080A970EC5439D4D6376275A987EBD76BB0F03A87734D6073B9DC2E0698582CA2B4ECDBBE63EB3DB5972E55073180F33EE524DD962D5B1E59FEF0C31FE0C2449100387BBE028610E507972E619E22C315E821BAE62452B70FF3F657F78F0640829E4D445D686DEB402F3A58D3C43F87448F163F256B12D309BA970CD069B50100AC28A2B47E125AFE75E88B13F0EB37D6419444024B4B4B38CF8F34640A0C872B55D7766EFFCBC7CFE3A546C295012054FDA79F7E7ACAFBEF6F38208912EB47161C1E804E6C6DBFC4F276EEAC192CC648E5F9D7C5CA2BCCA880B17CC8F0E0718616A038D5225D5D1E3F4B813959996CBFA0B5BD837DEF0DDCE783646447EE942CC8CFC986CC491319FBA8E09A5E981F782EB1E4B9B53F675568F1BC39108F6CA0FBC9FBA40F46A3D1F6E66F5E998A97F6F0BB514200C8FBB15F7E59BE6EEAD4C227A81C1F0B00DAD53978E418D89D767861F58F58C1C3BFEA91B63575F561E83E7A2E1BD6FA26931955590D494958DE4A44D0824A4FA94F8F7A90890CA8403089FA5E017052AC2473A66442615E2E4C2BC8030317161F6EFE04B66CDF0DE3508BE6A370D28ECBC8468C1B33150AEAF163BF2CDBB7FBCFBCF703695010FB49BBF6EEDB6832DB8AB32611FD32698E510054D7D441E5B56A16AF4F3CB23C607C4F6F1F2EB82A4283347224BC674CCD872B57AA3084AC28522ED61FF7F5F5B122C8871F0A73A740435D1DD8DC3E309ACD01368C3028184C0A2312E1CF0F1DC1E252040F2C5904B1D13AF63D79DF8C4D584B4BEB8D0D6FFFFE3E5C26ED28D9F98A90EFF10900EDFAF736AC8937185E19361A2584BA073D5D90978D2293CE50268368B2FD6547D8C4F7CC9C0E8B4B1604D2D8B98A0A86F4D829930302BBB4E1C141ECDDEDA0C5985E7C5F319C3B7B16AC4E370C1BCD688418DC4E071642469061793BEAFEA0D0F206E9CCACE9D3606A7E1E4B8B748D05D7DB3F38E4DFB9FD6FCBAB2E9E2BC7A59A38EF33F1E30160F4DFB967DFD6BEFEC19209E3D3B19C454FD736A0B76BD942E8A1692929306BC654E8C40283C4E8F1EF3DC4D49AF237E57A3B96AA814509A82F3420363A064C36A4FEB031F0BDDD6E6500CAE44A9C5703B3A715601C37436DD30DB67F184948856CA0B0796049299B83BE7760D9DC8E85D0B5EAEA2FFEFAD107CFA28DB439E240DBBD81CC27E8F612B6EDD8BDA5ABAFBFC8818AECC038A40A2A2F7B0A9CB95001BBF6FD0F6B727EFCC3558C5ECBBFBB8C091FEDD35DAEBA8A0263FE8AA26300A0D3694121933250A558325365A8902BD8BE01E94A401B2C664C5D1E6C94E410498885A10548E6FB1797B050707339BFADA313DA3BBB5C1FBCF5FB392880AD4454AAAF829A210E009270C34B2FFDDB8AC219335FECEEEB4F2495B5630D4D60181212A0B4643E8BF1685D34DCB7E05EE07F01AB6D6864E7037D81601F300800EEBD099B143A2F97C9202DD900E567CE414C5C3C50019A973305D9D5C584309C768C195AC8D66CD4ABFB172D64F3D23558F7435D63139C3953FEF6BEED5BDFA2BA8AF37ED09E000F00B5BCF138A8554B2D282898F8E4AA675778FDA2FCCEEE1E29630482412DEE242C2E1E7A6029CC985608C3D8CDD16667A4268937201ECB566A4ABA7A7B038ACEC04006D1A2B13C05BFD7058D487B3156831E8F6FF45C63304B8D55E4F2EF2C63A24CD7514852F6686D6DEB7DE7F5DF2E449BBA715842BD2FD400D6F6D25E1F3762B9BD3FF593AB9E299A3869F292D6F6CE4423C6290F061D5F5AF33C2424EA412A910AE83F7AD151B49B23F6C3E090099C9892920D06A631EDDD3DE0B03B03FB87C66113566A521449FFE8B9C66016F973C1BCD9B0E4BE92401F408D13D621FEBDFB763D7BE1D4A94368C710557D617784042C2021547386D388E68E048C26393935E1BB8F3CFA302A7561CB8D361969C44F7EF40C5B101910874D4C8C4EC74ADAD15EF332F6D0206F2B51079A5B5A40AE52B36DAD19530B99B0126547D13D148090E26A7C5A6A408C29F6DB3B3BB133BD0CB5353507FFF2D1076BB9A2C71A715354B0F515C501A1E0C0D00800D1719F550B172D9D65481BBFACB4A4D840D517D5E42462F49EBAB694A42450AA9463EF16E379D2177AA892B5A9766C50064182C248CC8818EF026069BBEDC1A58BA0B8E85E2EE559613FD602A849A6375EFBCF529CBE837E7B186B3F30684748B0EFCFEF2F467140F03F7A6A4398A179EB8FEB7FAC54EB722C569BC4CD40E0C17083CFEB0783219E1529120C8148CD1081E7F579477DEFC31238C990C076954D16731000B4EB34AD2017FEF9A9C7412A93B2739F1FFE8294DFFFF9DE3D3F2D3F79AC4C50F4786FFA8711C11F1C8440F0ACE081208DA0C69D7A6AF5EA9FBEB02873F2940508440C0F0019C5BFA74D90F1D8F252AF2FE2CA5361AD3F3A758E1CB3B3B2E0F8E10330736E115CABAD0B0280805DF9F8A3AC37A082AD02ABCA5398511AEAEB8F6CDAF0EEBF70C21754F4DCF20F2321AC1002A10B01814051E6174E4B5BF6E043CB45E2A84CACF2C4C1AC180911EAF23226A6632D31D2E7075574210010035C58CC504D20D416EAF44AE6CF83679E5CC184AFABBB17FEBA7D070C0D19CD7FF8CDCBF7E3FD6DB89E414EF8BC77FCE36898F0500804339A1B5A6EA850D8D40F3DFAFD5243724A91D96AD78632821FD4A1A5A52463F3928425B186EDF4BA3DDE88DA41A1427DFEF328C089287C747ED3A7DB304C7A61FFBEBFAF3D7DFCC8015C436F24E1BBD31F474582D090731BA71A6E0881208094933227A7CF9EB7602944C9261B4D26D957ACF08090215451CA309649D569CF4FA594334FFBD90F2ADE40ED108D55E83F611D52BAA088ADE9F0F1936C3FB2B9B9F9F8C7EFBEFDAF9CF01923FD1E78DB004400820F0D5548E6D0F29983C09A317B4E5E66767EA9D96E4F1B181C16F3C67BD85EDDD82F090211832143BB4133A61782DD66639D6A5646061C3D798A76A42D6FFDF6D507B136690957EFDF750022848654C00AB52073F060A838A064D366CD2988358C9B6B77B8528D26B3C27713EB484D1E074573EF810B972AB1793263964964FB0107F6FFFDE7A78E1EDECFE57C73B88AEF1B01200C10A1AC5072466B436B091E08024DA9D66A720BA6CF51C744E7B83C3E030222A7900807C08CC23C6B4B5B8718854F4921939531FEE49FDE79F325FCBA9DCBF9CE9BA1FE5D05204C0A15660E694878F043CD01A41482410046C964F294F11953A263E3D2650AA5412C96E851CD34D13A9DA4A3B1E6BDDAEAAB1D5AAD563277E1E2C5A78F96BD6EB55A9B38EADB6E46F8BE3100BE263C84ACE001517240A804E7E51C1052EE3E0937250905FFCF0FF2B0934B75ED1CF5BF36E77FAB00846185380C18BC782A42D820173042CA01E9E13CCC2A3B18F9FB8B89F3BCF16672FE3F0480085A211684891010DE705908133C9CF13C00341C1C28CE5BA5FE3F048008600843452CA03ECF163AE787AFFEF8E4E53EF340786FF74F93A2FF0BFF590E11CF502115090018F5E74888F00FB0FF37004400040480007C03FF19FE5F1B5B8990A25973870000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (80,1,'Phone_(96)',0x89504E470D0A1A0A0000000D4948445200000060000000460806000000336D91130000000473424954080808087C086488000000097048597300000A6100000A6101FCCC4A250000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00001F014944415478DAED5D077C14E7957FDB8BB4EAA8179050174560C0F4EEB8C43671C1E4E272BE24CE9D2F767C8993CB5D923B27E78A8D7B6C489CB8C5D801833107C671A7888E4495909028EA655557BB5A6DBDF7BE9DD9FD767656AC3060FBEEC6BFCF33DA9D9DF2FEDFFBBFFF7BDF3783C2EBF5C257B52870917E24B35BD0057ABFCA0BBE1436B8DCF7C3199D5F2BC2189F07C0CBB5B040D0F1BF49205D3600248657726B25F7B7228CF13D921604C6081EF4B5F79ECB0280607CDEE02A6C6AC99A0782372019DC2D3417D7DCC277522F52C8780DC8ACBF16805C5200B85E2F1A9D9A069B56D2D442930220F67832B84368C3427308207825C02A251E22E73572C07C25A05C320024BD5E34BC0E9B019B5E5C2F5FB1A270CEBCF98BD3D23266ABD4AA388FC7A3F4BA3D0AB7D7ABC46B53D2DF0E87A3AF7FA0FF786F774F654DF589EDEBDE7EEB04FE764800C1CB1D5F236C2B249EE3E63C8607C4F3557BC9250140627C35677823B6E8254BAF1A7BDB8AEF2E4FCBC89CAFD7EB32DD1E0F78DC1E606B8F9BDBC6B5DBED5B6373389CD065EEF67A3CAED3B5D5353F7BFD4F6B760B4624C31B6EFCBBBB97E6E615DC3F6CB7D5F57475567CBE6DEBE71D1DCD83F89D93A32D9704107718404280B914605C740038E3AB38E34791E1B1C5FCC743BFBD66E1A2C53F572A55D1A2C12301C0E174427B6717FB5B5CFACCE69F3FF9D87FADA77314954DCEB9EEB63B3711C8EC96BC82FDBC5EBBCBE5681F1E1AAAE9EBE9AE38B867E7670D278F77C9C493F3798A34A65C14402E2A00929EAF11A8868C1F93969E9EFCF4B3CF3F989393739DD4E0E703C089C66FEDE80497CB2515399DBFFAD9034B40A3313EF06FBF5B6330464FA2FBF135F0AD21F86F60DB1E87CBE9E81CB6DBEB06FA7BF7D49E38F1E9E1BD5F34729E22074C3805F6A5BCE36203A094189F7A7DEC8DCB96953CF0D307571A8CC61C8F3BD4E0230180FC0F2D6D1DE0743965CE07C3FFFED39F2CBEEBDE7FB93327B7E09E80C105E30B86073F08526002FBE1B95C6EA7C36C1FB2D5F6F5983FDEF9B7F7DFEBECE810E9CB29A12FB93822E2E0FD4A00107ABF483BA2F1E3E62F5890F7F0A38FAFD6EBF5A93E43470E0019BDA9B90DE9C711EEB4431F6ED9F6AF4B97DDF40C9A40E53730FEB7C565C380A3806CBCA40CEC131ADC0E8010D80FBC12C044603C1E2FC6921E9BCD5AD9D9DABC7EDB86B51F731EE294F10E374F579102715100108CAFE48C4FB41357366142D64BABD7AC8E8A8A1E2B06D24801B0A3D19B9A5B9907845B9C76C719853ECAA0D5E953859B66ADCA6587771D8302172A408D1BA90844B6520559788919B8ADF31B1C4240095055C05B5C2EB7C76EB5345B2CFDBBCE36D4BDB9E7D30FAB39EF70CAE4271179C397068033BE8A0BB8B1191919696FBDF3CE8B7171F1A56EB707460380D3E982AA63C7C1A0D78F786EA55A67D3EA8D46DE7043788CA706CD60F57A7C49055E1E81809A16946CDB77B149F8FF4C0582A150412A32A7D1AB108C2E0525181831C063FC18B65A07EA07FA7AFF76ACEAD06B75470FB673390A01E1B9E40048148F4E9099B1B88CD9F8DEFB4F8F49499EE10BA49103E042DA39567D12944AA5FF3CF6213BE8F45AF085189FC05128D5608A4B0836147EB7C9DA07BBEC56346FB0C115BD7DA08A8D05854A25014341E40471B895CEC050430A6E470BE7118F0D72DE227807DD9B0DD1B00E5A2A2D7D3DBFDFF4D69F360B209CD70B2E180089F1B582CE8F55ABD5095BB66E7B242B3B7BA9DB2368F8080170A2CAA9A9AD039720350707AD70A2A616EA1A4EC38A5B968146AD6637AD4420E2925205091230469B73189EEC6D17526F85FFE2C8D8DECE4E70ECDA09FAE93340A5D1B063A85392110C218D160051D0F1F197D1D85290B2700F4846504C1E010049F006897774B49EAD7EFDF7CF5C2124899E4B02808CDCA49E6FC296F0FE96ADBF2CC82FB8D567F0C8017023ED9C44430F0D0DB19B39D57006F61FAA62BFA365C5CD37A2DAD422082A48484AC133AB420CF08CB9154E3BEC3E637A03465592675556823A0D2381C1088EA34741979D0D5EDB1078FAFA401D1B03C6FC42E6356AFC9EEE4EA42D82918E4131630C7ADD18F49244042FC69F6670B485E769395357FBFA9A1708003BC5834B0980687C83A078E2FFBA7EFD3F4F2E9F728FC76FF0C80070BADC70AABE012C562B533C0DF5E7A0C3DCC562C1B0631841B1C3354B17414AF21830C5C4815AAB0B512EFBAC1678D5DC863D5E30BA6044181800E7EE0A302E5A0C8AE161B07EF411A88C4688BE7226583EFE08A2279783C76201EF900DD451781B783D868C4C30A46770310418A0816AA2024A951A18A75407D1D1405F0F7477B69E7C63CD8B3384520901E0B9A80048148F4EE8F9717F7EEDF5DBE7CD9BF74BD1B89102E046CEAFC59EDF3F60013B1AA8DBDC0B5A9D06F43A1DA074C540ACF36F1BD1702AAD212428D27A4B9F190E0EF64327266D3EE30B3444E73B7D1A3C5D5DA04948004371090CEDD90D2A530CE8525361F8D42930E6E5C1007EA64D4884A8BCF13074A601F44963C0909A06CEEE6E88C9CDC398245094E0198BB4D1605470811B5BF3B90618B20E56BFBEE6C5590200AE8B0A00473D6A81F759A2F5ABDFFC66FEDD777FFFF77835EAD100405C5F5B5F0FBD7DFDACD430D06F019D4E2B189C0CAFF7AD0510945A033B3DEFF62009C2FD08681DF6E67AFB1034D86DD0837FFB249AC20F8C17638BB3B519DCDD3DA0C478E0EEED85A4C54BA077E70E30A4A4823E391919DC013DFBF743CADCB960484CF27980C267FC5814080B75A6A0BC81EEAFF1740D0CD9ECC75F5BFDC23C0100E7F9E240C40048785F2B2A9EEB6FB8A170D5D3CFBCA9566B12F8801A0900274FD583B9A787951B6CC8C73EE3EBFD06A75E2F6EBB31083AB069546A50A9D4A189938C84A42FFA30B0D70F59E1F4F0109C455006F19A14427C50090AC8D9D606F6A626306664C050532398C68D037B730B78910E5366CDE164ACCFAB8A347A28D4E88224EA407F2F98DB5BC06AB51D430096E065D82425735945345A00C44C97BA624C7A7A7ACA871F7DFC1ACACE629F912307E05C63339C6B6E663740C996BFD713ED70DBF4B956A3868965A560C300DD8D8075F7F4C100F2B665103B19F6462D02A7D56A19FBCB972302C074A351CFD9EDD86CD084019BF20632AA4A01FEC46DA8E91C98B272A00B69296DD66C9FF1092C211E2C309AD00BD45CC2E685FABA1AA45307F4F6F7F755551E7EBCBBABE5BDCEA6A6360E048F5CDD282200C2F07E7C45C5EEC7B2C78EFD76C0C89101D085AE7FE264AD50B5F74AA886F7001DA8D1F82505059098102F7B6D143BBA90A7BBBABAE9E611984118B4D9416F3080C110A02C08E32D66CAB8D1339A31D8B721300EAA694070C00DE4140AC6FBDF322570F525DFF18E1D39C8F6E9EEE9C57B3BC5EE55A5540E66A7272DDDBA61FD512E4B0EF286F30220C3FB94E9C6BFBB71E3DDB366CEFA45A06A191900A4ED0F1D3ECA8E8817C8B25DB1A7F32050F025DD9F969A0219E969B2D746D5D153A7CFB2DF8ECBC90AFABCB9B50DCE9C6B82B68E2EE8EF1F404050F9984CA052AB421229514ED2359AA9F28AF9443B02D289CD2DF47E0602AEC7EB8D30011BEF554318736AAB8FB173379C6D8496B67676CF932694D0F77FD9BAEEAD072D168B8D2B59F84B152302108EF79F7862E5C23BEEBAEB653C847A340050A03D507998494BEA9D46BDC1DFDB0DFA60EED76A350C88F1B963C35EDFB9A666A83C720C4A8B0BA1202F37E8BB615454981462BC50B1731320F50856734B1BF4A0A7E8F0D889498908B2364451F13466C66BEDC0D68534D98D017DB6291612D59A20004F379C821E94CD569B0DAA8ED5303B444545C1C239B3D8359215318B1F4459BD6FD032F0EBADEFAE3D28E6089100C0EBFD98152BBE5BF8D4AA556FAB351874C5801A210055C78F33AA888F8D851853B4A4E707B675A8F3BBBACD30794259D87A502306C976CC6EA7954F06E9F422F2B09ABA53503EB10C4A8B0A43E7B9E03DB7B4B6C391E32730E13BCB7821152529190D46184BF070CA0BB892C49EBDBB4806C1B1EA3AE8A79C023FBCEEAA456046AA1D763899C8F0350FC4C49AAC7F7A7E55A2E80961019014D9587939362E2EA9B2B26A6D4C4C4C6990A2890080FA3367B1079E8168BCC974A49520E34B3CA0A9A585510B1D2716B354A2A14CCC62535392598FA6C46CF7FE03ECE6972C981B74DD74A34441140BC6242586DC576B5B070C21D7E78DCBF17FD665EE86035547A0FA641D0CA1C13233D221213EC1173FC25447BD1C6DEDD8FE391307F5671AD9FD1715E441162673FDE8696403BA7FBA2EBD5E0B31D1A6FEA71FFD6DBA189C650190A9F3B0F2F2AE8A8A5F161797DC1D2229CF03404767171C42AA20CECFC7A4273ADA28289D500FA01BA11E1C94AC09256A0A7229A9C9909D9E0E59591990181F1C988F55D7405DFD699850520C05E37343EE8B0CBD6BEF7E88435017CE9D1DF41D292C23D2621F1A6DFFA1C35079EC38106DE7E68D83644CCA204CD9BAABD30C55870FC2D1132791F61CEC3EAE5A3C1FBAB1F7BB5C6EFFB51300D999E93068B50DAC7AE4A10CB16A3A12004AAEC816F3DCF3CF2FBAF3CE3BFFE8F1B0990A110360C19E58B1EF002BB4E58ECD810C74F510C5236C1387EEA8D8CB2AA221F52219291B6534405666268CCDC2969DC57A3619391F8DC65753D9FC16EA085D663466127A51E03B3278C5DE036CFDBDE53707FD660015D627DB77C1FECA2A484E4E81BCDCDC90E3EED9BB178E21B5D2B1D136E89173C08BE6732018BEEBF75D7B747414C4C7C5C2899A9A57D7BEB2FA2742AD28140089EA21EA312D58B020FBAFEBD66DD4E974A9B249D50800ECDCB30F6F6E80F556E264BD24D88A9A9F02F4275FEC64F4E23F0E7FDC11CF8B0D33FE943149A8867218BD64218D88C6A29AD2F65DBBE12C06C4E5DFB91EE38F29E89E291337614C52AB54219DD182AA4D8DCAE9645D3D7CFCF90EF4143B141717B3B2082D5BB66E65B184AE616C7636949614FAEE41E47DA198382631117AFAFA2C4F3FF25031A9E7B01E208CEB06514F5D5DDD8BA969694BC366B561003873AE118E9CA8665A7EE1AC998CCFA5E5054AA0C83B3EDFB11B357D7FF0714601805B32964CC61C9793CD5454C1F83CD93CA2B9B515A9A306621190D9574E0FF9BEEAE8713872EC04944F9A0093CA4AD8673DBD7DF0E1A75FB0209F9191059B366F661D8C54DBB7162F44B01D7ECE170120CAD5A072DAFEC5170F7CBC65D33B84AB6C0C90A81E8238E6836DDBEE983F6FFEEF462C2BC8004085B54FB6EF6459EEB4F249CC087C7941A7D5FA7975CF8143D0D6DE116A5099E34ACF4B419DCA18364CA6827E2F4C67113F8B8B8B6152B5287FBCEF5AF01A88F22857208F91535BF4BD4AA962FB4A173AFE9DFF783F9C6D6C62D73277E60C48888B138C1E08BC4A952FD739D7D874EA0FCF3D7535B19E50A67086A820A1F7FBB3DD071F7C70C27F3EF4D046A542691C2D00D47BCE34368209B9EFD6653704291E7E398A81F3F499734113B044EE1CA987D3FE54A26E696E66BDB21DE56DDFC0405800C4E3D131E88EC766672018F92C87A0F8C14B592A7310757677F7C21D2B6E81D059F400EFBEBF059E5BFD0A3B26C5B5A9E51319E5B939DEF762536BD534A1CCFBF6DA37AF3E751C8DE2EBFDE258410000AED643BD3F2A313131E9E4C993EB317B2C93374878007A301DFF1C39978E3D6BFA1570E51553657B11D58388A2A433E0460240DC87F68F8F8986CACA4AC8CB2F82DEFE3E2651E95CB1A628387CF42882D2CB7AB13C8881CEA237E8A1183DA3ACA4882928A22B02218ACADF3271A1A9A5157EF0E39F31AFA3646FC9FCB92CC87AB86B17CFA9502A30489FD8F2CEAB7F7840E8FD56BE4ACA03C06BFE9837DEF8CBAD372EBBE119E2E8D102F0E98E5DD08BBD9282D78F7FF80F4CDE4917AA82EE3F58C54AD2720088061B09005F768D9CEBF282D2377A02532794422306DB4E54250E810A4952148E1F8FD9B70E55481DF3981040B87B494D498189A545D84AA0ACB8885569793575DF2F7ECD864ADD18F8674C998C4A2C033454D676BBFDB6A25C84EE0DD5D5D0F34F3C722566E6341B6F90EFFDFE5A900CF7C7AF5CF9D44DE939E3566666A4B16C922E2212001ACE9E85835547D9C516158C879BBE7DAD2CB732698A498FD4A0E100E0411A8F329392320AF2F50D6798DE16C177A0C107908AB47A03A8144AA6D7A74D2D8792827C58B37A3514954E80E3B5A7FC5C2D3B0F953B3F4956028F145CF9C409982354C21FDF58CB7E37664C22CCC06327C4C785045EBA47CA9C776CDFF1D0479B37BC21281F9B748C800740543EA4D192EEFBC94FAE9D326DE64A2B26281448F331B1998A6A80CA04E100B0A30EFFE093CF581D8696F9B367C2EC19D382E7F2A0DCDC7BA012066D56CE6543395BB69887FB500D293B3D05F6EEDB0F3462AB3518D9F7515146966163B0C3586009524E4425345C48DEA2D2E85979205C5C89340E5152B960EE2C764E0AD47CE0A5A48E7292E696D6C6979F7EE21A124F42EF1F960E538A00F093AA62FFFCDA9B0F2B34DA3BF0800A2B1A8AA90C4494E422B9655E6E0E64A6A5B1E0C403700013162A3988CB4DD75FCB5407EFBE878E1E83DE9EBE910D300200B426773F7CB80A92925351051950D7C7C075572D81D56B5643EEF87C68EDEC669DE04202BBDCFED28C9C06DF274C288142CCEA29B9E2032FCDE0EEEEEDA14EEB5DFFCEDA9B4F1CC62085715DE8FD21F385E46637C46FFCEFADFB2C83B6C4F4B41466789A1ED8D2D6C690F581815E81D92AD567C661765B88B22E3E3E962552E2B1B568A41FDE753BC4C604921ED2CEAD42A9F6820008E2ECC0F718E940E176427B7B3B44C7C52325F9C63E8802CBD1500731D674F50DB01AD34800F803A8B49C2201201E2967FA9472265F837315377498CDC804C3505353FBE95F5E79E9C742EFB70ABDDF231D2396D67CC85A891BDEDFB2B3B5A3338171341A746269319393873129A1F22F15BA6C433606849500C1EDE5283529E2D3422582DBBE7323E369BF72686E45EF3873413D901C9412A176EC04FD8383D069EE91058C021F71BEF8F795D3A6C2BEDD1534320EC6E85816F843A469504C1B1900718ACC9C99D359B923CA18E5E77DFA8E2AA154F7420535FCECE30FCF1BB6DBDB05EEB70BDC1F322C292D3BC410FFAFDBB8F9B3B64E0400F99A5C8AADB191669E8A81E8643DA5E53BE1386A781F00437027EA658AFAC9498970F30DD7A16BC6F94FD2DDDB0B27AA6B235052F20064A0A7C5C5C6424545050CA3910D51D148035E567A207EA741109A4F24AD1BD18D99BB3A416F8CF6CF92E6AF414A3191D014516A49513EF37C0F17781D785D0DD8C1A8ECB1BB62F7531FBCB7EE8F54E5107ABF23DC1C21BEE4CC66B6614B7EE7DD8DAF622F9B40128E0C4F9EC0D60210631213E0BAAB978209B3D08F9176366DDD068BE7CD616A631E6684BC76263570E47835B8F0C2469BCCF927EBA2B13B3B3A4089E93CF572AADB1420FFEAD40AD8B2650BE41797424FBF450030D4ABA4141309ADC9D120D590A64C2E4331321903AF221078714D1E4E1E86197DDB8B4F3E4AD2CF2C70BF7DA4698A720050ED3565E1C225136E59B1E276A7D75BDCDDDDA30E7882CB0F0419A3303F0FAE5EB4107B690AA4A222E017DAE7281A9F800CBAB93065857000C80146895D7D6D0D60B20F51D1265663A2CF697C40AF5143E5E123D066EE058BC572618158020029AE195327615E500CA9C96382022F256DD534A512E5F0A6F5EBEEAA3AB8773797748D384591A7209D4041096CF230C602E16FE3BDF7DD3F3FB7A068614787398964A90800BF26D79B58560C375CF32D0C7C65AC38558D7A9B0C70BED9D0019513FC3D494B52195427A2AAA41430DFDC22178B53B44DCB8CA99361FBF61D8C8F4DF189E8BD8E8BA2847273B2A1B8B000A6A3978B5EC5067F9C6EA83A768CD1F0A953F57B5E5BFDC28F88758592C3F0F92667F14158233E4E444A88AAA0C27694101F747979F989CB6FBF6319E69DA52DED1DDA600002F1823CE3961BAF8729E51341471962A43D9CFB3E263A1A012D8103070F82466F4485D3E1078032EC21FB7070D0E402675767071890F7693FFFB923F0AA70001851544C2A2B8505736662566F0C4AE248D9D120BCD56A73BEF0D4E34B2C03FDCDD282DB8813B364BCC028CC783309EB28E133F1F152DA47BBECE65BA7E417952C6D6EEF4A1DB00C2802B1C2475173512994621A4F757A1A0BA020EACB05C203C073B642089AF50D0D983C6951FAC5B3803B7FD6743888D968A7B91BEC0EB7CF0346EAE16EF7280108EE24A4AA686C9A545871617E50B9A1BDA3938DF4917D77EDDCF9D887EF6F784B909D16B9A42BECCC38C9BC1F2DF71CAFF868A991DBE681D0C525269A6EBA75C57598B4979F6D6A36D0481081317FF695CC65999BD20DA257E8F47A484F496163A3EE111ECA0BA2184E5A9AD02B4ED7D73190A9D440C7A3BE35262981D56CDA3BBA90F66A830B70E10088300E6566A663C01F07D72E5DEC2F43D33E44399FEDA860D975535353CDEA679FBA8B463DB99243440F69F000F0AF12D0704FB4EB640011D77AA1B127DE67CC995B54503CE1EA732DEDD9532795298A0AF2FD0090217D03E66ED66328C94BC0A489CE3A320504F7583AD620E6024A545A34E8429F2F9E3F07766CFF025A5ADB20393D83C65D61B44FE5486990B669CCA204A5F7354B1631792DF23EEDB37DF71EA6F9876C76E74BCFAEBABEA7BBB3515272F09CAFF7074DCC92BC5640C979849A7BCA5DC701C1832136464F3A9DDEB8F2B9E71FD06A74C92E4127FB0160DE20AC913EA251D36765A681017BF4689590B83FCD5DA0606FC7804BCF1050016DB443A7C100785827292E2E8089E85954D3E2032F55422B8FFA2662EDDAB1E3C96DEF6F785B08BC03DCA4DC0B7B468CF3063E404BDFF3C0BF72C0284753854545C9FF74DFFDCB0D51A602EBA04D251ADC2578819B03863EA3C48AA69F90C4A3B9A0AE0BE46C794F0A6C9396D7E0F1297086AFBA7AF03A92602C2A9FDB6FBB990D278A81D78C59F8E60F3F62FBB5B4B656BFB4EA891F089ABFEF7C49D7A86647CBBC5E46EA155A895718B927E2A38466D06834FA7BEF7F60515E41C16CAB75C8E4CB1FC27B0505550ABED99959908660D080877B1400842F6FBB61EEAC2BE174DD4930777743766E3E2BABC88E27A3C1696E0F510FD593C42A27F13D8D84D120BEDD3EEC7CF985A7BF636E6F3F2709BC2E18C5F3C291CE0D9516EE9492176468391A121594490441F014CD9C79F3C75E73FD8DDFC6CE9E63B50D295C2E9FC103DE1008D82275D1B35CE3C78D85E494249661338373C6950EE2872F6FBB617CEE38D8BB6B07A46564811B8FDB3F60090195EC41FB15E6E7C28A9B9605BE73D340D34EF60021EDB37BD7AE273FD8F4EE3A817AFA23959D5F767ABA54BAF2EFFED19E47C68ACA496332C518FEFE9E7BAE4E4C4AB9A2B77F402FD2905B060017172FA80C9D9B93C36A403440E49604CD48F20B9A8D3D4C4FDD7BBDB25E958072373323157E70C7F7D8408BA87CEAEA1BE0BDAD1FB2BFDBDBDAAB5F78EAB11F09AAA74F08BCFE67012E090011D093F4953446090021B90401B7F4EA6B4B274F9B7E95D5664F45B75604807085046C3F7551EFC6ED64048266C851E18FE246A419763829AA54A9213F6F6CC840D2A0D50AAFBCB19649CF610752CFD34FDEDCD5D5D5C865BCF6D104DE8BFD9CB01408B524501B2481DA28554DF41B534C5CD4F537DDBC343A26BEDC62B51969761CEF057CC0764B6286DBE53326554DC76567B17A3D3D4DE91A518A06733F8980ECEC0CC84C4F83EFDFFEDDA082E2DB1B36B1E14FB2D5DE8ADDABB6BCB76E3D177845EA715FC80B3B2EE6AB0A40F28EA070F2D5388247D0FEEA9CDCBCD499F3162C526B0D85FD48514E7F0EE10A054500802929FE5EF09292131390AEC64094298ACDC0A3804E57EA767B4300A08123F2A83B6EBB85CDAA13977D87AAE0D3ED3BD976477B47F5F34F3E7AAF403D41C38C17D2FB2FE5EB6AA4F1412D49EA8C3259B61408F6F6ABC2D2B2EC4953A62D72799579DD3DBD1A3168F3744431439C0218C94235A258530C9862A221CA606453E5F372C7B2D91B34ADE58A2993D8885E475717BCB6769D4F01A17C7BF99995CB3B3B59C2C5979A471D782FE71BB31461E4ABB4DC21CDAC83E284D054E553A78FCF195F30CF36ECCC36F7F4EAF824EFCB2C6598ED4E993C111A9B5A313F6865136B63D023A6964FF28F82EDDB5DB16AF386751BB9C03B6ACD7FD900184135A938AF0857EA906E07D193D094C9E999A9E3F28BE7825A9367B15A639086145F16809ADA536C7635CD68A009B6932696604CC986CECEAE9AE79E7898C6773BBF8CE6BFAC0044A89AA46F51E4C1900342270182BD0A021775565E41617A66CE64855A9D63A184CFE1508C06009A805B535BE7EEE834ABC4B9A6947F94951439573FFBCCF7DADB5BCE70D463FBB2D4735901384F52A70A132BE43C432E4E68B8DF0BEFDD50A88B269617C7252496B84195611F1E8E1B7638352301909E9ADCF4C2938FADC92D2CCE2C9E587EFDC0E0609A4EAB571AD58A67376FF8EB06817A82C678BF6CEFBFEC004498D4A9B85EAE9380A19378C379C110DF56834EA2898E8B4D4C4ECDC88E8E89CBD0E87463F0D3580CDE51E9283D0FECF86465476B6B3F04DE7E35342EBF28F6CCA9935512EAB960CDFFB5016014A50EDE2B349CC1A500C881A1961412F9D7258B6FD7158DED84E0578EB984AA669F906C49CB0DEE8BF50A4BC5D7E575CA237885140C1E10AD247EE8B8BFC301213E870D82B1C537F23A21F84DBD76C1E87D9CEA19BE58D4F3B5036094604801917B1DB24612B0D512304030A6433036FF4A018FF0995548B6066194AF22FB460320034438304602443D42136948A41F11001704DE092A7E6EE78CEFBED86FCF557C535EB53F0218E100E1B99F07898F07FC8BC1F938E085D0B7B57B2E26F57CE300380F18D2201EEEDF28E01B48826ED01B4DB8ED115F37F37F1280510222F70F47C8BD225FEE1F8538EFBFD8F1FF008C0C861C2800A1FF4884ECBF2570290DFFBF1680510273D90C1D6EF91F9C9ED1534DA88CCC0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (81,1,'Printer_(128)',0x89504E470D0A1A0A0000000D4948445200000080000000770806000000CBA9486A0000000473424954080808087C086488000000097048597300000DD700000DD70142289B780000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000014DE4944415478DAED5D5B8F1C45968EBC547557F5B5FAEAF6A5DDED6E431BECB13D3D03B3566364C9831619AD760701A3F90DFBB06F8B9058CC138FF3B2120FFBB2122B0DA6775720A1456064EC65D8B519F3C018ECC15C4CDB60D376DFDDD575CBCB9C9315518E8ACECCCAACCAAC4B771E2954DD5599195171BEF8CE391127A224D33449D8F2D24B2FCD9E3C79728644E259666767FFEDF5D75FFF97B0EB51EBF165262727A59999991D915ABDCB850B17EA528F1C75F5F69608001100228900104904804822004412012092080091440088240240241100228900104904804822004412012092080091440088240240245B4C94D3A74F87F6F0FFFDE31F3BE76EDEFC9D699ABF4EA5523B4DC320F1783CEA750729140AE4FEFDFB64697919FFD6179797FBF68E8E5E0CB34E29CCA45000C018BCDC60FF0F0F0E92D1D15122CB11F130E1FB7F6565C52A7717164A6F1D9F99498559BF5A57846B1AC9E572A4BDBDBDE19DDD8C827D93CBE7CB9A1C769DF50500505C369B8DCC80836432190B04F5945001A0EBFA2600E097ECEAEA6A599A0E53D2E934C9030370F5995B0B00F0E5D0C91918188886BB13006090C88AB23519204FBDDC66B7C58D620DEC1B224924DED6B6451900BE5C164C401800D80AA04200B4271225069024A9B501A081D75F8A3741F9A8A45588710DC388F8DEC64146FF488DC5882A0C9C2DC30028ABABAB1630943ADAB956600DB4FF1821259249BEDFCC2D0700F472D7D6D6484F4F4F34EC39D9D8D8B042401C1CFA566600A47FB475DDDDDDDBCAC1AB24EBEBEB16030800D87A0C80B20C7EC0CE9D3BB78D73E74590151100D8673AF39D5ADD09D4392710C31B264B4B4BA1388222589CFE97685B9CC055A96DEC7389FB4E7C1D6EA0B5FB0CDFC33500348F1A00000B7DB27CE6CC99A1175E78E16E583AAA7A31E8DD77DF45F0FC0ECADF40790CCA3E7C5E2902D075159EDCB1E9CB42E799B4F33629025E0D4149FC3526AFC4F21EDCC495D67DDCFBE2F7949CF8D5E6599E3EA7CF3703BC877DD6D3D5B5661312A6A1FC09CAFF41F98F679E79E676DD0000CA1F8197B7A0381EFB8268D6ED9EEDD219D576BC19F03DA41A7004DC3EBE0D3DE02FC5213C74915B509E0210FC25740080F2C7E0E5FFA1B81EF9B20E5EED262AADF085831E41B58CBA7A2BD9150010317524129554836BC83F0710DC0ADB07F8D74ACA67131B650068A251675B5748CA77ABCB6B3B700D855406002EB0FC33947F0C8D0160F4FF065EFECBCBB5F7161688CE00E0F30B3744C9358030B0BA1CDEEFEAEC24C343435EBA3D8BBE18B0C09DB018E09FBC5E883E80C13977412BDF37A06A0461D84A76FB2CEB3D4700336D7E0BE5F7810300467F1FBC1CF30300B3C651578FCEAD55F94183D0EE339F49224F87020090BF85E279021F977E5B69D435B4AE0A4EB0E48FA58FC3604D8219D8081A00BFF2D38A0207005F2321C451E7ABE36B0446907599FE26CD3099E097502E040D80FD5E2FC4858D0297DC68D669D4F9FA2C00107A7E668D20E497D53DCAE1300030E9F5C24C365B648010465DD09DDBD011EE118428B846E06309FD70A03E009DF61DF3FA505CDB660068D551177A5D766B022EF721ABFA48A60D160020E37ED8228D2600001094171CD6A80B9D69DC94ECF179ECB3FBEBEB7E00F0280C5A051C413D280078A67FCB0780C66E0280CF2F1C9442DC3A3D741AF7D80E2F75AD63C2E8C8889FF98087A15C0D0A00FBFD00209DC99403A045475D28755509C2F574BA1A47B03100C88209C8332730E45157EDE8AFB6AE9A95ECA3EDFCE756CAB87F00FCA13126808F020218753577AE0F100602A8A0DB01EF57C900A4210C9061B9FF3E465DA84A0EE8B3A0EFF1731FE60C360400E04D6226C25E3F3380B80E50F5176EA25117A8926B042186813E6504D76F201258AA950186FD8480CBC5C30D1A3AEADC3ABD216C12000833FE4D00CA2E283503C0D74E4E4CF82C94EF710F65D47952721D1459B12E9F2074BA0F6702F17C8598EA6B051F07EF95BA02A0C4008DA64F9FA32E3425FB6CBBDB7D1809F4A5527E01509B0F6018C6203BD2C54BF6901D006A527203475D18EDABA51D0B0B0B24D5DB5B51072C931A74B7A32600C083A477DE7967C04FDAD8EADA9AA785A086757CBDEA72DB1B50655D8B8B8B64FF64E5889CAB7B087568BA344675533E29E622FCBDAF3900F456597D98FB5F41F932BDCE0585EE5F965DE6A1132B3EBF8A14F94A00B71B997EC0C2CBFC4F3FF96A1BD4F777F0F2A21B085417E55B7F2693C93DAA0FC70373D83B92491249F09248247C1DAF038EE3101D1BA61308DC342B510074B63D38B1A2A2ECDEB3C7AFA71A8957851A862F00689A96A4246B10871578D585FAA5A9A929B9B3B3B3CB0F001EDABFBF29F6FE6F45C12800F4E1070031A64B66824416701BAAF2A953A712F178BCD3EBC18E68FF139537304452A558C7C7F8386433168B291F7DF4D1CF4E9C38F1672716505DE85F06DBDF8E5B9625C95B5EEAF7DF7F4FAE5CB912692A24C19D56478F1CF1754F56D3C6E0E50BAA7C496401D581FE11660A507FFB2AD08EA1EB56E5FC2E5E3B8372FBF66D72F1D2A5075E3956469CD39AD9B941BC878CFF4BBC778EFFD3E788DE3EDB014C84EB4990F793F29DC44EF738D551B14EEEFB9BDCB3F88886FF7FFA17BFB03503FC6E6A4B89C014C81666A18013790A65004F510003803C3030B02B4F8F2F652030F8FDEF420E1F5E872B8135890BDB48CD32141BD8465C16665BEE24AE3DA2E2D10F43673C5728242900743B33E0068058772A35898715E03C34A6265B00604C60C30285B0CEB7697150900AA1961F413DF0136D1237DF82CA4720A0F219931A9AD68BBAE401C09B01D52EF4A3454DB4B74F6A501956CACEAE710400FC8F6C51CF038EAA5148D300A64A60A33E0AE8080A260AFF971108F019D3112A1AF4D143019077350152B9A78737C4804AF61428E2B0629D33034E0CA0D90020A2EEE0DA887D2C09918048FF0C0008083017781A571B0580269A013B0650A80988C34386340E00A85CF405D8712D2208AC53411CCE058A40118C880B6D16CDA3B28B611B511000F0CA1800F4850088737A95DC7C0066FF55EB26D3ECB7E81FB37CA829D86402B87905CC03A8D504485233767BF3B45113926D1450F6BEB131D2D5DD4DAE5DBD6A0D42853100800100D3491920C601A0140EAA36F69F01A00D3EEFB11880B10002406000119D61F800AD008A7A3109EA809FCC4B269364EAC001AB8E3B77EE58859DCB60B181AE2739003016D0CB1840B0FF0ABDB81D467BA7E574D082F4AEBB31404800D80AD41D14B0190BB33EC0B0F0EEDDBBD6DCC0D2E262F1681E1A0114201A007DE0D46C823303123FB5A13AD87F04401C2A4A3013A00926C08E01EA7DCCE976342FCC112FCD0B409F5F387FDE3205380F634DFE50FBAFE0E61CD02129EE148A537D97F901763E804A2F6E83CADA5808C84A6922C8EE30237A4D64CFC3633B5D382B003FC9609FD330D0E000A001030058DA1C0060B1809B0FD00E7422B3932BD98490410F7AB44B7E3004746E556924680CBB301B9AA32A060C3EA5B85804BAD11000E82F140190E000A0D84501BCF263D469C0D12FB3B36BAD573A13E8B48D5BDF26BF03D0A8F38BA5625C5FF65E4F32437E3D7D95B4C57472E92FFBC88D9F8AA789211070D00200621C03B048A0E4088A6B8B0A058515054048219714CFE60028089C4A24E10240ECEFBDC30BA4A32D475459230FEDBA63BD87FAD22963C3E055D980E618A0942320731180CC87809401A4D2EC1F9D01644EA0F56A532209997D84FEBE35DF050A2FAA706EBEB7A42B3668B52200E2360C606B02580818A70C2019FCEC1FB7246C4782AD72B0FBAE5DBB483291B07EBFB0B4C005EF5FBF7EBDE91940ECE385B54E72E6A323A43DAE919574C23A619E818332814207B4E80348621420D30F1586166400764237F3FE5DB36E5BE86CFF1F7EFCD14A6065E96ECD1CBE96399F361B6B327995640AB1A25B4FF5C4808D7E1C37FAF9C92089F7017833C07C8038C4FE123FF5DBACCE916F4F1ABE13E62DE05136ACCDD93AFF6267E0D18770343E636C0A009538AC07F00090391380452D14C3880723BFC22C5CCCFD48F3A61136DAF1302B2CD8B198FAD6ECD2D7D757EC7B8722D90C48F8AEFCA056391010310AE041605D2C261E94961DC9831F7CE00B1E6BEEF5A7601A2548F95852A95431C5BAB8665ECDF6EBBA0AEEB5181F1B2B4BD8104B8925B8010AA1A0C49976D5CE0914A380D285D02986A228B235C7EFC1CBC78EDC0D0E163A57376FDE6CCAB010CFDDBD75ABFC48FDC526563C2EE88C8C8C58452AAEEE7932133ACD0BD848A7354EB7B2A0EF4D53C1FC854A7A7D3D0FCA2C33056EB69E4D030F0D0E5ABB58D1AE6287DF9C9BB3A68923F166E7878787C9E89E3D965942B692B8E4D34A00201C3BD35F68CBD94CF6D9AE05C8E2055F7EF9E59F7F76E4C8AF143ABF5CC9C9E33D69DC4EF6CB4387C8C18307CBA790059BD3CC336F8D982164099D28172F5E243F42B4C24B3E9FAFA4FD9289C663652E5FBEFC27B72E576D9CC15216F3A79F7EFA19C4CCD3BDA954CCCBA64B5D18E5FDFDFDC4CFAEA25652543DEAC75F59E701607A61000A0034D92B4B4B99EBD7AF7F43B8F57F270088A125161D2A2CBCFFFEFBFF7DE2C489E77A7A7B65BB38948F0AC4858AA1A121D2DEDEDED2CA6A643BD1148852D107A0A67809947FF6ECD933780B29E602B2AC60570098F4229DDE54803069F1830F3EF8C3CCCCCC3F2492C924FEB6ADD3F624B11306C117509B70A3682341E5A7EE11E164D04A0C409D3E8C68D6CE9F3FFF9F703D6ED2C8732030884352A821148DDE880E840276C73877EEDCBF83FE53870E1D7AA2A3A36307D829157FE61C15ACC22BFBC97399B20186847E3632B632558725C89ED887EC88381E00F8772947A338E76F80D3B870E5CA95736B6B6B0B548F7871560081EBC6105EF978230B8E351A166E5CBA74E94D7C03A2836E68602FD8A91DDDDDDDC30084244D4454C054C87D7D7D49B0FFDDDB415161B615FA70EDDAB56B196A920D2CF4397A269359989F9F9F03B5ACC0DF4B1C8BF3BA441D3226E04D81210280517F815E8C37B5D107E6050711BDD17528B7016D5769E861492C168B43A33B4F9D3A750C00F2F3C8A6D756FFD8D8D8DCECECECC7104EAF41C901CDEB2E47BE9836FACCD092A37A34440630B99B754EF919FAB92E4E1F3AF91F38FA41DAD03C4C4E4E76D52B0268159B5E8D1C3870A017FA330B6503FA770300E06542C514D83C4DF559A045174D80C9D14281A2254D95AE910749046E930F72318C9513C002B17DFBF6758B11C076B7E9D5B41306520ACC2D8EFC0D645DE8DF82AEEB26715F7D679FE9D494A7A929C88B8EA02ADCA45100205AE26CF6D40B0048F13C0115746F4283137BF6EC49D5C20091A92839829D6006941B376E6C80054883F2730002BDC2343B0F803C557E96F3034C3B06602CC04C00DB52BC298BC4890440FFA0F336E9E8D1A33BC1318C47363D98FA4F9E3C39F4C61B6F7C058E1EFA5D19605BC30303989CFF96A3858F044C11003A6723721C00D44A0000FB24618191AF251289D8CCCC4C7F2D134091A92897E9E9E9A1B7DE7A2B0761389A016402319C335D40A0517DB24840A7C5740A0359ECC828441623804DDC2FCB08001CFE0634B2E3E0C18343AD921BD00AF2F0C30FEF84C155804185CE609AF303880716D03916286C8A0230A4A0AB4D260700998BFF2B460018FE81F2D59E9E1E0918203F3A3A3A1CA92D38191919D9DDD1D18176BFD0D5D595CD175784DC1C4131B2D3C9E6EDE1B64E201BF105E17F57A1F48FA2024AB5C1C1C11D91DA8213F0A7FAC7C7C713DF7EFBAD512814F2E00BA02368C0AB491CCEFEB1990FD045FA2782724DC117E0670473DC44C2A68294D4DBDB9B0774EAC00426FC3D12A92D50919E7AEAA971E85F03C0A081B39D8792E53C7B2FA5C029DFF680083E12900453E0DA38B0F7722A9592A071E6D4D45457BDA680B79340BF4E8079C5E35EF5A1A1216D7E7EBE70FFFE7D2FDEAA21CCF36C0600F50324EE42C2CD0012370710EC93D4D7D76780FD8F8303283DFEF8E3E391BA42F103F6C14093707108069806E656F740FFA6008292F29D0E89E26F90884B220113503E3A7EEAC0C0808919A86320DB4D391F7FFC3179FBEDB709386A646D6D8D800964E95856922C66F8608EE48E1D3BAC153EBC067F590585BD8702A39A1C3D7A943CFFFCF39BEA00861D07DAC7A97619F304E0D95E00203A84749B87CD4191020BB01B2A666D416324543E146979795981D7BDDB0D00981F814BB6C78E1DB37617411464A5C8AFAEAE5A295CB81309FFC74C644C8F43A0ECDDBBD752385EFBCD37DF9023478E90959515EBB04D3B8191BF13FA3A098A97718615CDEDD75F7FED754AD869AEA0DCC673C8301DECC6A6D2DFDF6F02F59BE9745AC62367A061A3DB0D002CE9E5ECD9B3E4D9679F259F7DF69995D0095E3B2EE6940E6D403640E561D634E6F8233050F9F8431008143CDEE5DEBD7B4EA1B6FCC4134F4C2105A0A9053099AFBDF69A98C721964DB42FAE24CA36B36076623895471F7DD4A408C57B15F054776D3700B0492FA4F34F3EF9841C3F7EDC52262A19F71B601A3A7E86231C158CB992E7CE9D23870F1FB646FCD34F3F6DBDBF7BF76ECB34386D539B9898980220C4D10CA08979F1C5174D3F5291017CC726740609CC3E36280608EF027B36B0DD00801B4C50797860D30F3FFC40AE5DBB56DA9FF7F9E79F5B0A9D9B9B2357AF5EB5DEFBEAABAF2C70BCF7DE7B56DAD7175F7C6131009A066409A79F8905F3FA10E20D7C0C19AE0BE4948A9A12F6F04BCECECE4A972F5F56E0EFD8638F3D36495AE78CA6C064FFFEFDE4E5975F0EBD1E50FC048009776C29E07348AFBEFAAAF4CA2BAFD4B47021D7DAA80F3FFC10B385E55C2E1783513011056CE10998D9512849507E6C7C7C5C0EE299353F647A7A1AE94B01474705DB3616A929D468437DF2C9271FC28537082595471E79A466B6AD39671B9C1D09ECBE94C964E437DF7CF37F800DAE43F8D30B5E301E342947C7C6D41E62429481CBEC1BE0372C8293F81302013F029FA2F10040C1F97F0081FEDD77DFCD8303A34048D803ACD046B72647529B9830E20DE8DF0C389B8B503652FE7E3D345C0080176B82E275B04D5960815518F12AB0C0069E4DC34E198BA4A639069CA0C3019607165883D7F5783C6EE5F68109301B0E0040A3010DC385A334FC7D0FD09AC1CC60F45469A420456AAC29D43681F2CD582CA683E2B30080FB102E6EC0C0D3C004D40C00A996F4279C07387DFAB4048D51C0298903F5E3C1523160021CFD12862A910A6B13184C968240F1C6C0C08006E6B600250BFD5D8010B06C6DBF11F30056E5108F6243728B8B8B1A8627D0384BF138E31549A062E0DE908989091D473FFFA35B0D6100FE391408EC5C01E9B9E79E8BD41590CCCECE1236E58E82933F763F02598DFC15CCA645E8DF747C7C0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (82,1,'Printer_(24)',0x89504E470D0A1A0A0000000D4948445200000018000000160806000000DA7D5C880000000473424954080808087C086488000000097048597300000298000002980136D347DF0000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000002FC4944415448C7B555CD4B1B51109FDD6C82F930BAA901A32018BDD4062F422F157A6BA4C41EE241BCD8BFA0F468AD42F12FB0A77AAF9422F6921A13720BA56091D24BF110856E4A4CCD87A6E6E3106392EDCCEBEEB249DDD458FAE0B1F366DFFBFDDECCFC6657906519F4637D7D3D383737F7166E30363737832B2B2BBB7A9FD0BEC96AB5CA838383969B10D0D9769F00FF79FC4160B7DBC566B3093CCF7705D46834A0AFAF6FE0AF04036E77E0F4F4144451EC8A80CE788686FC68BEEE48705E2C422E97A37C7645F0E3E4048AA592718A767676EE731CF714CD8789A323909249005418558D558E6C4571CC47B632697D717101783E180E874324C6402010D708D6D6D6F8A9A9A937680ED3ED356015547976F2D19AE3F99E5B2ED72374DDC139AE114C4E4E527186C94EA7D3AD006D20863E5C6304E09B982098B1582CE6F2FBFD0546808A61D5AF56AB903E3E6E016901BD868FD4643299E8E945EF6F827ABD7E1B27A45229384C24B4BCB774394A579F7F5959AB3E50FCC778416C54B2EFA2EB3323181B1F7F6EB7D9A8076079799985AA4E3AA4D994062515EDEFD4B5D96C86D1D15128572A4F70EB2B015F70BBD1E840E1EC0CBE4912A00A1848C7418006AF02B3B390C39E7089A28BB02902532E9BEDCD64B390412DFF2C1474385C47125022D28F6C2603627F3F5CD66A3D844D041C4AD35AC4062B63A3909E8D86D3E964692897CB867B2A950A54CB09C4F2D0079345C0E7F3F9268F95B73B1C303232C236E90BAC4662C33AE1CD589EAF1A168B85EDC99DDBA05ECBCB6A04F06E7B7BF7DEF4741095647ABCB8085EAFD7F086EDFF0FBD7F7F7F1FBE1E1C40A9546A7CDADB8BA98DD6482693EF7146E9B2CF96965EBADDEEDE4E353622A9D56ADF5757575F28CB3A6133029C1F29553E9FCF865D6DEFF653AD0E87C3419FE00F6ABB3002BC8D8C394ED3868D8D8D077C17E89148040AA83A411058540B0B0BCEADAD2DF3FCFCBCA444DA1414E3929EF1787C4892A4F475095010BCC7E3D1948A671BA8341FE21D5EF93F0885426194E9977FF945E2D720353333A3AD7F017CFCB12A36F54CBD0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (83,1,'Printer_(48)',0x89504E470D0A1A0A0000000D49484452000000300000002D0806000000E84AE8C20000000473424954080808087C0864880000000970485973000005310000053101B7ED28520000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A0000068C4944415468DEED584D6F1347189E5D7BD7766CC726B613077052488A22418362854A9550D30B91282267220EBD50F5467F41EF88737F40B94442088450D520404AC221AA425BE8A505844268704C499CD8499CF8DB7DDECD6E9875D6F67AF3615562A4F1AE6767769FE7FD9E11CAE532ABD7EEDEBD7B3D1A8D7ECF0EB04D4F4FFF70E9D2A5EBF5E6D9CDBCCCEFF797C3E1B07C9004BC5E6FC9CC3C91FDCFDB47021F097C2450BF094C14DB0B85C28181CAE5724C96E5E366E60AF5F2C0E4E4A453B4DB37BB221116EEE8680888991C63D4DEC6622CFEEE5DE1CBB367A57A734DE5817C3ECFD65657593010D81309D723964C2659B15834F52E530432990C5BC14B23076446CBCBCBAC64527B7509CCCDCD316F6B2B2B420B07E5078BEFDFB3168F6777041E3D7AE45B5F5F3FE4F1FB233968606363832D2E2D319BDDCEDBC256E7CD03BD54FA50058882A0339DF24E7BD299541E425A5B5BA3EF08B76FDFFEC266B3C51D0E47FAFCF9F38BA69CF8C183076E448131DC5EA4E76900174471EB4395365C67CCE839FFBD1D63156B2549627E9F4F1B9982602E8E8C8CACD5D400C07F87CB88F69F08942151CBE02DCCD3EE5D0E074F604814C56F70FDB12A815BB76ED95C2E97AE6C4E439D053209931F354D52937E0D4279978B1DD647AFDA045A5A5ABA31A98B1F4B217C96380DD404DFC0D80EF006F3B248683A7B1784E8F8F8B803FE90352400A01181733A6AAB448073564BE02DAECD483BF298889CF409AE2F0C09C0C622BC9391E44903D524B6A76306CF2B85A98E1DAF4A00E02395E64319D8AC09E822CB2E08F1EFA18C8C50CA13E8A9158574041288FBAB70E25A1FB03466F4BCCABC04B2727B2854A9819D04F040B877EF9E8E00252ED240A31FDD1392EA95B2722818E4ADE438612DAB13780D086EB77B5814F51576E4E851D6CC46E50B36F83C810B8455E36BD7A48FD024757777CB3C81CF4E9D625F0D0D3595C0CACA0A032E9DD55CBB76CD07C849D282A601540B62CBDC9B370A632DF34E4C4EB2172F5F322D166CD356EF5995FF4AF4E0CC42A8A887A83EE2038350E3FFA99327956252D802A938340851AE4AD16C8D80D8DBDBDB4D0EBBB9B9C94AF07C8AFD3954A09B2825EA3615A06045C41C39A3F545E0205F24D204DEE174B2778B8B47F0E82F8AF41A011BECBF8FAAC08D745A095D4480EE692F60B9ED01B13430A45229E6831632D9AC52ADAEA752146C2468AA6017B6F44B29EF04CA67B60E12448054B88EC5A49146A5B697C4C80248B01EB79B65704FFB6514988755CC9B9A061C1470A8E6A7AED43E94CA01DEAA068CB2A895B5F47D22118FBD84F465E6F67809179990137DCDAE0AC201A9776631991896D54D46B154B20C82D66BE18F34DBC8065F57CEC01A684F3ED0F30F9BFB37C8D21989300655028246C0592816DB682249BF64B0F9B022455996592B481001CB822012C0F1EBDF11C5911D8E3C11F2A956B39DC864A8494239ADB34DDA4C2821CD02116C031573DC8D209C88386D6D6DBA6D2909389BCDD249B9CC6B40BC7FFFFECCD7172E0CF266D30ACFFFFCCC1916E9EA52FC81970A0F4AA8A27E669003AA11E2474435DE2F2C2C28F74A3DA67E87DE373131F127530FE5B64B89D9D9D9B70BB1D822E26C48CBC605985417C00F0F0F5705D8883D37D228FA8D8D8D31F24BED8C88A49FCB6613F3F3F30BF4972740E725AB77EEDCF9C9EFF777F4F7F70F40754741C4D5D9D929070201713FC1565B8FDC9487FF14B033CBA1A85C78F6ECD9CCD2D212815F46CF69046815D9479CEE93C9E4FCE3C78F7F53EDD8353A3AFA6D3018ECDD4BB066D7228AFD72F3E6CD09D87C5E7301B5D3110B39585923407F6294F878934614F1421BDEC02E8E14776372434343DE1B376ECC81C006E7264420A50ABD5CA981A446409224211C0E078E1D3B76489224D68C363030D00E2DC46046AB1C01BA667802D4F22AF8B4B618BE60BF72E5CA09809759935A4747C711986F0A04122827785512DE9C524ED30F42535165B47D5C71FAF469E7E0E0E0A7FB05EEF9F3E7ECE9D3A74A58A4A8475AA684E772B9980FF9E7DCB973E403872E5FBE1C181F1F9F9F9A9AAA3CAE56A290C8A9A5A832533AC26729140AED1B814422C1E2F1387BFDFA352526E5489D8AB657AF5EB1999999ED7910E299BEBE3E51C5A7F502E4FE218CAAFB4B9DB75DBD7A554022EBD92F02D16894F5F418BF9EDF15228CF743138206B8B2553D9D863444C4DD3F9E3C7992C12EAD295E0CB3CA03F82C3464AB36A72A01384FFEE1C3873F6333310D02423308D8EDF6627B7BFB7B84F142C3043C1E0F39F5EF50A70D12680A0124D232CCB8A0864DC3F61F69A6742E6DDB81FD0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (84,1,'Printer_(64)',0x89504E470D0A1A0A0000000D49484452000000400000003C0806000000D689BC640000000473424954080808087C0864880000000970485973000006EC000006EC011E7538350000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000009324944415468DEED5A5B681BD9193E238D2C59967C4B225FEAC4975C49D27583210442C1BB8440A05997F42114025DB6D0877DDD7DE94B9CF7E6A979EB4BF7C1B01B42C336909A4258BBB9B20FEE4368C18BD9902C64E3D8EB9B2CDBBACEECF78DCFA847A3912DC9A3D8A63E30CC682E67CEFFFDDF7F1DE9A6698A4AC6AD5BB73EBA78F1E29FC50E1CB76FDFFEEDF5EBD7EF57F28C5EE94B5A5B5BCDDEDEDEE84E0420128998953EA38BFFF3B107C01E007B00EC01B007C01E007B0094379E3D7B56DFD6DEFEBB37D3D3A2A3BD7DC70891C96404D7F4F3F7DEFB143FFF51330052A954B02E187C7F6E6E4EB434378B4020B02300585D5D150B0B0B22180AFDB2E62690CD66C5DADA9A58595911D1E8CEC888B99655ACA9D2BAA6620016B185D26991CBE5443C1E170D0D0DAEF755B390AD8CA5A525B10616F8FCFE1A3BC1C54591D675A1699A989F9F17B158ACEA457B09124D722D9914015D17353701F881FC4BC984ED1C3688D65A705CCD7A2A33013020100C5AC749506EBB01B0C7ECECAC68803F320CC35B00EEDFBFFF31501EC2E1216C1A5E7298F4E74863FFE4E9D3754DF09CD406B5A2D29B779BCAB1A15EE7F1FFD4891B34D7F3A672CD849005CF60D4C317F970DDC866035F7CF9653C1A89BCB0AD03DB3F2726266E0E0F0F1B150100E1FF84177FA69E4B82FE3E292C5F4DCFEBBAE012B65E60F78EFBCA9DA3D47DCC05789FEEF7470140BFF2F8070303032DD8FFB16C00207C0B26FBC4799EE14FAB72815E08B9D97C1C7EF748F087D1D1D11B972E5D4A9505006CE9F7A07AD82DE1D0AA15B24241CA99C3EDBE1200B442A60FB1BF53160010FE376E1E97B176AB0BF442C88D40B47D94CBFA7F5D3600D2E9156A1FF45F950094ABF1FCE2AB1064C3395CE653AF313A399900607E51960F181F1FE7B9A24A2791488855A49C1BBDB82C8D6FB2F86AE7508F991A3736363A19700C7E20E8F403BA8BA09DD8F99CE799FA5A0CD80E21D54852C67C4B58AB1300CA0A669CC2FEDF1B02006771D0E7F3152741C8B70B002857C80A05F1620EAEF56057971BE3FB370500C2BB3EB98872B324001582516BA0581A9718A736F501B095836E9E946970590094487CAA16B28CF98A0040A1566274941305BADC2AB5050940D5426EB4788FE760A5EA2603147B604300708376EFDEBD4B6EE56A0A613097CD1652BDC4D0E4E6787B7EC1450CB3F37CE579B7F7B84578A7D95929BB9DA217B3FB0C653415E1745578BA00D4F887DCB2A9B367CF96CAB276DC605DD0D1D1E196E1B2264039A31936082A03B4CB972F079B9B9B43CE28904EA7457F7FFFAEE9F4B267D1D4D4E4C600FFC8C848ECDAB56B6F6DF2140010C2783B3363F5FDD4B2767E6E4EFCF5F3CF5553C95F2BA0B3CD2CA5ACB5EE75A1713E6D55CBE0525477988FA9CCED3403FBDCFEFDFB855F7688788E1B190C1199E5CE4A4B307595FED8A2CBC8F892C9A4954E5A0D064CCA24887DB7D246AF6D68A7150F4DDBD0BF94337E84D22C93A5E060348F83C12043644C2A3EA73280F306BABBBB8FB3E4A513C99005B2F9B002EF4F33F04218AF012A351F6B179AB2A55908AF63CB411E44B20E29370532550082A0479FDDF2A6C7CF4906B006B07B819AA6796AAF5ECF6703C43573EE03070E081DA6308FE488DD28B0BB8DB23258D02FAA00D401B21E96BCDCE849F9805D5C946480D7F4F708A035190A6597285FC8E13C4DA09EE50D4D5F97F6CFF8163273B94EDAFFAA8CF9B623A4F6AB3501CF355CA649510E8EA9A929A1C114C802EE93A91401084B33C8DA0CA0030C9BC8946C61E9044DD965B57FEF9641D0C9608EC39D3322529F11FFFDBEC77284506C334E3748A56BBA04913FEA8D6CB6258D07B3A43F1DA00C3DB5109E8B61C9CAB949577BC15E0160AFB9299C104D91942553068A847C51C980801A05F8239C358C28A94FDB3794F6B351032D452211ABC3DCD8DC6C6960C94300846CBF737C3379683D12F80C2BB201880609403103E003C2F4FCA6E303831D47BD6402E7626EC1EF8BC954CA53E19B8A9B21EBFE0C726573B9908C02450004A7A7A7970E2259C82AF66FD104C21F3D72447CF7E285675465B619C2BB666667F321D68BD1D2D2228E60AD76E19677C4CC06B17664B52B56C45B677D0100FAD76363131F0E0DF56B8E6A90DAA2BDBE3F38288E1D3B269697972B5E58ADBF18D7D5D559CE7A7272723D0F90BD0BE71A464747BF914E5F537D8055FDBCF9E187E9E9376F7E847DEE570B22FB9B1BF3EBD3A74FBF53C12B799E293B01A0642B32EEABF32CC7E3B389446241756BBAE2E718E857FEFED5575F9C3F7FFE83587BFB51D0B4CE2E30F8E99925A65B95B59D42AB832C65BCA7995AB58B2CA2B0F6CCCCCCCCB78F1E3DFA9A7D5F3B0DB60130656140CE2CF2DC93274FFE66D3041386E000514704C357AE5CF9150088D582CE5E818690FAAFB1B1B149282F05D38555A457A58CDCE818E62508199501BC10C73623D1D155670513F0C1C65A4E9C3851EFD26EDE561FE09C17ECD5C6C7C7BF85634D60DDCE9752D14B52D6AC5D0C99120D7AB6B7129D8256592010D0BBBABA7CBDBDBD11B796F94E328781818126288B8A5C704961F87B45029071021097D120A1A6D830010D5A0F0D0D0D9D4288D1DE8566B732E7C993276358EF3C9CDD34EA01C3A5859894CA2E00202B2F2CB80100E7D778EEDCB9B67755CE6E65CEB6B6B6585F5F9F011388BF7EFD3AEDE8AD1A8AAC59B51FC00B296923059D4F383F1F6AEA404F4F4FE76E288460A2FEAB57AFF68D8C8CFC072C584134301D0C30A4F62D76E8EC8BB14B2A11C909C777C16834EA0B87C3C6BE7DFBBAB643207EE579F8F061BE0F595F5F6F658E0C772CA2984A33513B73E64CBE130C33388E63F3E5CB9749070086B237F23D41C5436A4EC7017BF2874221EE7FB61D00F0ABF4E3C78F299475DCDADABAFE4F150042309E3F7F6EE52650521E0098C151FE46E2967BF5EA959B1F300BDAE292059A122FF3E3C2850B3A9C4918D9E1B6FC39988D4C568ECCECD8E42008D438FFA64B76D8C98FDD0091F5C061A4C27EFA82898909C3C5C9167F1831DD5DAF76F3E64D86C0E3B0AD6DF96739FF8C393C3C5C6946D80DD3082281F341AC0D4BD84D85623A8C2D02249F02E55035FFC57B979D2028CA04631228DADAC092D776C65735007490107EEAEEDDBB7F01FD22B4969D1C05600E06EC7FB1B3B333DEDDDDBD69D6A66F86E88D1B37D630E977088533708601B10B069C631A0E70716A6A2ABD2500A45FC8DCB97367EEC183070B838383BBA2290AC6D26FE4C4E61FB2C54F83C03A2D1D003E9E0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (85,1,'Printer_(96)',0x89504E470D0A1A0A0000000D4948445200000060000000590806000000C1ED215D0000000473424954080808087C086488000000097048597300000A6100000A6101FCCC4A250000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00000EC04944415478DAED5D496C1BD7197EB37013294A22294BB2ECC89623D9B2E2DA31E40045D243811C6278017230BAB8A8815E0A9F821E8B1EEC0045CF39F51020073B0850C031EC02597A48DAD47510204EE0C2050424B110C78B6447B22C2EE23E33FDFFE11BEAF169162E236EE2031E469C19BE99F9BE7F7F6F2841D334E256BB7CF9F2A3E9E9691FE9E276FBF6EDEFCE9F3FFF53B7C693DDBCB9C3870FF7CFCCCCF4773301994CE69E9BE389A4D75ADA7A04F408E811D06B3D027A04F45A8F801E01BDD623A04740AFF508E811D06B3D027A04D4D43EFFFCF3FE1B376FBE95C9667DCB2B2B5D09543E9F278B4B4B4494A4C9FFDCBC79D9AD715D2947170A85A028CB6FE40B05B2F6EC19190887892CCB5D45403A9D2689789C08A238A411720676FDB66D08E0252593C9906030D85504E033657239E3A3D6561A80AD582CEADB1C1080D2D2D7D75771DCCD99B756B4F5F57592CD66F5E710DA8D80340E64100052924C26492412A97BBC76240B9F290B5A20954C6B9B6900487C51DCF0E771B095AAAA360598669185CF84DAED6D7713A42A0AC981A46C3501CDD692B5B5355DFA454170755C570840FB28D2A807815907756D9606348B2C24203C308061687B6B8071B3ED44801B443D83F03A00919D547ACEF622601DBA8721004351745ADD128A62F4835A0EF98E91DFB84680508B7A5EBB762D0A37808B928E422FC7999080FD4251943D84DAC76422418677EC205EAF9717B14D63EA9AC2DA553C073E0B7CC00DFB55FA7DC14A6AE938B84F63CFC5CFE55304A2E179CC3E7A23E6E3C167D4EEC78F1F93B09160C24982247D1FEAEBBBB271AA00B7A77D0BFDE6E9D3A7EFBA4EC0871F7E780ECEFD2B0B7C3949010921BC73E21FD06A5F2DE79AECDB74FFF4B3E6E235CCF60170241A8D9A832A087F3A71E2C45F5C23E0830F3E7803366F991D43094E827AD6F2E066D73403D26CAC66805BEDBEF1B1313BD87E73F2E4C9F71AF60100FE386CFE6C5307D293AF5A1F6613900D12B8E9BC06AF61F57D8D133E51B4AC67FE1E7AE30440FB03F490D541043FB75123A9E9C1AB321F8DEC6B44C2ABB8063A67BEE4C2B49F81F04E81167CD72801A76D23049E80AD00B211706BBC46B5E76AD4F7D91080ED77D0FF583701D7AF5FDF035E7FCAA94A98A70468CD26A15A205D20D06C3C7C7687F6AB86088030F280534285528035925603DE0890D5EEE3AF91C6E0C3BE4D60E8FEFAEBAF3FAD8B00007FDAB90E97D613AF76957A47206D08741A6FDD990014E29FC0E65FF5FA8029C72C11D4B0C064C1553DA483BDAD0B341788A9755FCAD90461A0B1B5046468E5B35A705D01928B9E341709AC8584F554AA9A5CEB702351D09453F14ACF82EB05D70C4807705B2DF515FBAAAB22D447C0952B57BC814060C2EECB2990003D047500B211EDB0FD7E1D04BAB98FAD00DBB48380A574E6CC19A5260200FC49D8487623EBB3444C165C955DAF16B46680EBC235702588D7E3B183C90F8E783F6CE76B224010847D4E75A2D567CF2A73804634A111705B40A0B13FBEB6468687876D71124571A66602A08D38E916AE01CAF14998DB12BEC5E0565B1CB4BAC6D3A74F1D09B0C352B671B031470212894D658856815B0B680D5D83DB8733654E0D34A07602A0C52C2B8F860F00F563B3E0B690FA2AF6599E5BC7784F57576D31D2278034AD7A0204A134B372FDFAF539276671DA318761A8B90AB1839AEF7702883E80DD981A5F2A293DF0E619B51A7C4DC5F589CDFC237C677979B99AF9EF6388AB66C294950608A150E80549B20D82482C1A2591A121B29D5BA0AF8F0C0C0C108792CE7E43B679126413E9C72E86C361FFA6395DAECDCECE76DD22DC5A1BFAC02107215414057FC004676E549E0433F48453A74E790707074376E0621272E4C8914A13B10D1B26A33859EF5031902F5DBA143B77EEDC326FD1788475E91F1919F1275329C16E15D8D2D212F9E28B2FC8766F68FF2727271DCF0B06835855C0B2B4C66A816C627EA4B1B1B1210CAF30CB4327A72F0761E369F81B9769FCFBC68D0D47C92DFDE01D19CFB266F3B99A731C3FE34332CED2ECF326E76CB23CA69ACF87C112F8FDFECA31E16F14605C49879644118418C55B656FD55403C676EF7E1EC1C72CB7A828A56A27B3D6C6B07D55D642ACE2B3EA4E6B96289BDC4FB5D7C6695995C10689C08E13F63210A0822F2D66B3115ADA112909960478FA0281E902C4F738D182202B4802A7010D13E01261421B908338A1901A1A60102001012A483FFE9DC9E75103D01917588595B93191219F479627510330C9C2652748001B6F2301B822008FF14947CB5A0312DC68434BA18030969F9F4A3F760F5DF957CCE570159787625C34F202990F3FA17B01F09DC82A0E8C5B330DC8D6A101DD4A100A2A828DCFE70373138B44CA651A8D6A06082B12E027A5F7590A8619E2350019F201353BD004E5780218120A2E9BA04E2607B132EE3F0AE0BFF8E28B647E7E9EDC5D58289926200708C06C2D4031CE98F900817EF601E011DD095312541A09553861EA1FB6838971F4018C29C6D2C4ADAFBED28B74BA06A0CD01470C5885290132ED3841A3C99CFDC7CF7E003C8C13ED79C3076014C4D53B8C63DBDDFEE3B5590DC07723B0A3D44B74D92225007F4D12577179E9ED09BC0688543D02C0A80F07451210E47218CA66C26096D034756A734B60D0F617391C864269924CF7115528D5D2E492B0E2F2CE208D8410F73CFA5E56033608C8E765041F4D4C9146403C019D0CBE1148B8350E8BC50B7B17C9DCF33F9007CB11F2D9FF0E961C70094B3F35415E6A6D4A1AC066C094003FD82ED990707CE98E4FC2F40B77E02B485BA5492C162251E87E55C74EC110B4944BF928013EC2CCB5CB9C03467602A02E924A9945E02BD6FD18359016BFCBBB67CF1EE2F3F9CA61DEF7F7EE6DACD06B32012C16FF5DD809D23F40D69260823455C70E7104127C340CF53219B1C0FA00891EF4C3838858C330333DE550B4C51A802B32506AFAFBFB89ECF1B4047C33678FF0ACC483F4584978D59235F150E9F7549820C6FC08F4045FB150103D74666993ADA4CE0B09A255BDA63F742814D267E3F0DA3867D14A7F140804EC7D04ED708F12478068443E6C1286DD9BA7914FB9AEC1C44D460F058364CFC444CBEC2E561FD104ADE3AF980019AD68483E96A2CDF011D8480B0405CCBA61E63D563EC0D00429954AE919568196A3CD641C3D3B2EC7404D78F8F0E1E69734B6B0255B04B8D1F0A58CC1C14132363A4A3C60FEAC9E5D0715C2540570BC77EFDE121578B60B7C1EA0ABC6B7DF7C73777AFFFEA38603366B46168CA9F70BB3B3E4C08103FA1A994E7B41BB16138A128FC0DFBF7F9F2C2C2C6C54056C840FB5004C3AB971E3C66D0667C1AA14A11FF8F4D34F6F0E0D0D1D0A86421EAB32306B77511376EDDAA5F756C4E2CDCE03D032180418A5793B1F908CC773A0B56BB4005721A1FC7C001E5460D0DCD5AB57DF3B7EFCF82F43FDFD7EDDE1DA3C0012E0F0AE54DB90E2C6F83B77EEDC540D356B680D12F178E61F1F7FFC373C0DB35FC62F6F2240A505223C29035F4E7CF4D147978E1D3BF6F3582C86DED687BF1682D36BFCAB996363630D13D009C0B3910F9A230C7D71D4F2DAA892B3354A13F995E5E5855BB76E7D86024D4A65E83CED654DE00928D05229BE7B23C117335F7EF9E5DFF51365D93B323232118944C6E106C252A979B08F8F8F8FC171A1DB81E71CF1EAA3478F52303E5863A588932B608AD2E0071F2E2E2EFE0044A4385C530C090AAF017897E855B314FC04FDA28775BA70C127D049C9B98B228481FEA3478FEE0D87C3BF6E27E09BE15B76EFDEBDF0FEFBEF7F964EA713804D41B3BEA881ED3A25214B09D14D114B804AED548A66C4053663E32A803A01108285E6E6E682D59A9F4E9576B376E8D0A1013043A96C36FB0C229D9C667FF122B52C49BA2DAF8C908D448D029EA5D22F52320462FEDBA202981E193440C3FF9CE4444037016F3408BBA3900CAE030171304169F0999A85F41B04E42801398AB5C2FB00851260D8AE3417B36A4C6C2B00FB3E005E821B19B222A01B81674C5004C26E05CC4F127A02EE4505222A221CCEBFE6A919CA5002086F828A0C010A3543A245722180F9F103F07D7BF7EE8D39D543BA0978E6DAC289132746DF7DF7DD7988F11360918B94001674F66F03DF9C5914C49AA10CFD5B2616337B703109B05700F85C341A1D6E3608AD9CFE64AF0D21FAF8B56BD7D290B4A67EFCF1C71CB15EC96E087891313F251F80CE0397A830E19261B3240B0284603028EDD8B1C3F3EAABAF465013C8366D13D0401055F00559F089591BF363987885B5FFE575414C1454604E16CD08181818102017F000EBCA4B2FBD3441B67183BCE83908C1310F2840FC9F8190D4AE10A6329AA0119395712C09A295F9E9EFEF17B0E603246828019D08DC93274FEA9AC0C1F700702EC26800FE385882C0E0E0A0964AA594D5D555C5C60CA9CCB6726D2835433C5356AC0B100160062CC662B1E73A918077DE79479F4F40220040FDE716E059F41F1EC11936FD67D89249BDE00661767979E6BE7DFBC8A953A7585F2883199EFEE4934F1640163530C7CAD75F7F6D178E9625DFC81B44C6BB6B8C16280C53151D6E50831014099340023A9200AC673D78F0809C3C7912B37B323A3AAAD7B240B0F42D16DB70B2078FE3422BFC1BCFC7BFF936353575108E4BB0D5E07C85B1F56C5759C1669336910BB1D8A6328C95FBF0F0B0061222810A7B401DC73B91009C44C1D0F9CE9D3B7A21D158FD87FB219AD1A51FB7C67B1068699124DCC737C0633F6A0208A370F1E245AD9A56210C0E31AFC6C7FFB3B3B302DCB004766F1434A123FF77F06BAFBD66F97E2F9A246CB8EA02DBD9B367F5EDCB2FBFAC9B2DBE010EFBC08479811CF1CD37DF142E5CB850539252D31B76C8075C440409F1BDF2CA2BD3A443DBCCCC8C6B6381E44F802006C0344B070F1EAC3941A9E71547AC826218BA2B9BCD26417545F4E1DB310C05D3A341574018F7CDCFCFDF07672C5AFD2A8A6B04C4E3717CB14078FBEDB7FFB9B2B2723F9148448BC5A265D6DCC50D83912CE4454F401897C014C9E0BCB75E03006C351A8DE6C1EEC5C1093F06B790C29574DB4D0B2092D2A017C02FC483C1E03AF88E623DB945CD0400F80A80BF0E71F322809E82C8C10766685B9A202040452D00939C585B5BCBCECDCD295B4D809E274C4E4EA6C1F4803214D7202316212ADA9604800FD4C009AB10D2161617170B60FF6B5E9323D45ADAA52F97613424D4E3F5BBB18103D668F859739DFCFF1BC154734D819D460000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (86,1,'Rack_42_(128)',0x89504E470D0A1A0A0000000D4948445200000086000001B30806000000EAB96F3B0000000473424954080808087C086488000000097048597300000D4000000D40017C4BA15E0000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00004BC84944415478DAED9DDBAF1DD77DDFF7ECB3494AA2248A3C1449C9A428DA126DC9952317706AA4B934459D16860BE7A1490BA32F0582022DFA96973EF4B5FF478A26299002BD06295204281CA7758218966D19BEE812CAB2AC0B6FA22E9644F29CB3BBBE5BF339FA9DC5B566D69A597348CD9E0106FBECCBD97B66ADEFFA5DBEEB77A996CBE5EC4E3C2A77CC46702CEFD4016E1BFF3BE9BA2360F8380264F97107C9E24E02C4A953A79ED8D8D8F845377E779704C67C3EDFFDDB7D7FD6FBB1F7ECEB81F77601B0B5B575DADDCF6B376EDCF803779BD73E2EE0B86D12C30DD2E2A1871E7ADA0DE26F6C6F6FFF967BFEE4CECECE861BC0B97B7EA3D06FDCF2B77DCD4E6EDB67637FF35C27DFC7F3FAEF8DBBEFBE7B71CF3DF70824D7DD78FFC09D7FECDEFA0FCF3EFBEC8B6B0F8C3367CE480AFC1D37F9BFE9CE7FEC06ECAC7BAC3EF8E083F9F5EBD7670E1033F77CBF40B96702FDE7FE7B4DEFE77CF6E0C183B3BBEEBA4BE7D29D1294DB376FDE7CD9CDC19F3A89F307DFFEF6B7FFEF9D22510603C6D9B3678FBA95FF6B6EB2FF99FB8D5F778370DCAD1801A1120874E6FE7689498A01A3D4E4C73E2B69E2BF2FF5B3582C742E051A7DC68DD16537665F7763F39F4F9E3CF9DFFFE44FFEE4FAC71A184E227CC2DDD057DCF95BEEE92FBA1BBFD7AD060161050277C39D06BE0914A526B48B1449F96C080CA1D722EF2F1D702A376EEFBAF35B6E9EFEEB912347FEF0CFFEECCF2EDFD1C0387DFAF467DCFFFE53777ED53D7DD29D079D8498090C7A442D7499A4D0A0F79DA494EF6ABBC694EB646243CF9BCED875687E34960E1CCB7ABE6EB831FE917BFEC74ECAFCFE37BEF18D1FDE3660C8807AF8E1877FC97DF66BEEEF7FE85E7A44F7ACFF7520A8BAEAEED88A8D1981292AA22B5862BF95F3BBFE67A52A7C49D0049A14C00A240E183367972DA59ADD1CECB8E73F7552F97FBBDFFB4FCEA0FFF33FFAA33FDAEE0D0C670BFCBD90B5ED2EE011F7C35F75AFFDAAFBF14DBCCA18DA9B06B5492DC42C7D5E13F8DA3E5BC22EC8B56152541C130F40F05A6252A40B98051419EF52D9028C7B6DE916EB55F7DA5F5CBE7CF9CF7FFEF39F7F3B306E372E5CB8F0FF1A790CF7E1FF139A3877F11FB8C703F7DD77DFC68103075637A749B2674DDAF43A7563DE776DBBF32F6B695635F11846DA5521032F0656EBAAFA208BD900B1EFD2E701AF797D292E4393E48E47DD443DCCF75AB0D8D72C58FCCFDAD743EFE9EFDADBD1B5540E209BEEF5AFBCF7DE7B5F8D2CCC37441B3502C3276ACC172CCF9F3FFFDE97BEF4A5FB8444198FF6D46BB54DD1F93DFF7DBD2E1DFAFAEBAFCB80DDA8CF797D36318CFBE9E2552DC49BAE65A73EB79C67F1EFDC7DFD2B8147635D7B21C1D37829ABD3F35C6E793FF41ACFDF78E38D8D175E78A191DB6993188DE44D930DD2E73D4E810150D4BF0D2016F5635503A30A8081B3DA078054117054DEEF2FCD35CF6AA9B73BD1B59ABE657C729F377D86C736A22E5962A47C8155235DDE1300E4BE4A270A101A24C0A9E7EEF18601C786078ACA0CFE8EF7DA7E490A1F10F6E43A9018522573DDA3EE9B150D3874BFA8214BA9F701458CCECF01455095C4BEA00F200482F7DF7F7FF5A801D16FCA6ED169D588B941D4C746448D2C231264E88DB12A0096CA4888A50722796E5568256B0C304A75EF1A1F915CA89CBEA08819F9A9005984C44DAA4A881DB21DDE7DF7DD99B38857D201BD77FFFDF7EFAE14EC0B0C501FEC11FB62195125B15DCD650F89527960A86A2930F7BEB76A5029A8C2E8643236804463E18CC6D56B50E8FABB8BCA8969832236468ABD20C40B08EFBCF3CEEAA6F41DBA19E7D140F3EE9EE8571EFDD5E4498C26DBC207C7320280650F09310B48811D0F6CCBC067AA86EB898EA7352471D52565751E3A746876F7DD77AFCE14505837BF938D11DA864EF90201E0EDB7DF9EBDF5D65B2BA9C0852315AC5712533BFE23F646CB2A9CF97ADC3CEE879D61AF691E303A7DC374DE3479B109B620C125D6780A2452C19224870F1FDE9526A1EF8DB9E4C91223050C9AFC6BD7AEAD802040E847058413274EAC2E2E2415BA782C66C043A0587AEEA005C7721FBC922A30F93BB5CAF03DA4B97F3D2100A4A806CD8BC0005034BE3A350F3AB5A52F90DC7BEFBDAD5B0AD9C0F0BFA046EDC6CB2FBFBC0284265C1720F5F0E0830FAEDEB76048355063C694F77A15D0F1B300307C0F654843D44EF8DCA894261BA662DB2176B6498ED0585990A0AA25490412BD27804862E77A9CB77825B10FBA1F5EE887CE9D3B778B54B02AA20D10189789D674931B1853273B01402C0B03C2FEE6CC4889D075ED014B574991E28D68EE24B9B560A57E0408A880418C4FFDA8531F374E9D3AC5AE69118FC53FACDA11F8DCDF774588A46580C768323C970500B16C7091775A8CCCCA372A439221050039DE886C3D49F64B972E0D4F7075B11762E252072497367FACE4A909AE0F22D262D6E08DCC0690184B0F1055A227B4470D8AC780DD65CF89058191CE3E5449E93218C1D595D08A5DB8802012476080FE46575A4EC3F34A9A44FAAC81D358B64C768ACAF0FF6F9EC8B4068D4F54AADD04B363C3BD9722B79A08AEDEC6671FC24B132D820BC6D36E20B1827C5B25B2F272567F1F75B26C01CA32014055C26776171654383BADD63E10B925B590436EF9866C6FE3B3ABB8F16D05711B22BA74EAC27453D2777584F42DF4778B571202484C6AA430A07DEC8B9907D22A1114558ED8B79E860EC222051078A21C6992BADD91647CC6BE20A43E74D1F8D2920C42BE6E40DC06EEAC8DF7CC5049558BEA08FD1D52257D28F11850AA0640CE02347AB66AF04102B925352C49228068B159722BF4DD6DDB1D9D8CCF98052DDA5B24974E49095DE491234766C78F1FDFA32274235DD45140722C03C452ABB8EE60905691C96D9312558B1755F5B117AC2D8691AA7117B7A4E780C4925B76B36E10820B71F6E69B6FAE2E44A040A49D39736677AB3C662BF4603FFB649F2D3B7A28CB160991CB7BEC7E4757F733F47F96DCB2B69CE646F32206549C86AF4A3ADB18A10FBB1FBAEBB9E79E5BED7F6C6E6E2A32FC96C8AC1C863367E327C1F86C02C0B283AD513570165582C753452446674EA2ED33020706AAA407EA468BD8DA2AC5092E272DAE7FF18B5F5CA4A887128457BDF57CA8C32A5DCEE2BBAFA549AFECEF21FEA4242842070CA84071F1E2C5E108AE92E972BE14F1C3FACC0DDFEC0988184DDD151821D675366BDFB4DBFD3FD85DB2CDDA26BC89194D25C07C4EA428C195632FA490610281449D653CF5FBB0803501B4930988D9AC3956A394C4E8CCB0B208A0FD911E9601D5E98740F4912E36727D10822BC75EF0DF23E70192CB26F7C278367C47953841318A7A0860346DE8257F370C280BC3261231DE105F7D54CE6004578A26F13F63C3FAF437FA554612AA43DC864F7275F0389609B478CE36FC32817E5FB6D0EFCBDCF1F243FCE02D90AA5A44BC9F038A4109AED8E4592902E349589F9E0B0832827C77B6CFFE4BC34434498B92F119CB16222DCBC68A7D86B0488D21138BFAD5E222B128056C83105C3A62D4B52E12C6532A42A8D6291F1AC6D386F5A50C4A82E89EB5309D29C0E8BA89562548A3AC1B4C25B76C2291C95B5D0147C4963C91903409D918C58D4F014412414497184FBDA70B3A76ECD89E0B6ED914EBBB5A67B3F62DF8DE2BBB87D1DB5B9DB4BD866D466C87E645F3A1B9D1A2645F8A398C0561F54E1F70A85C3CFFFCF32B7B01EAF5E8D1A3BB1E465F6E235392B44589A7D8017D805125783EAD0029C15B406E915A80CA966D27724B73D5B4BBDA9BE092243879F2E4EA02425BE57D5CD8E0C87F782D1B0D83BB6C59BD4DC0A832C09743A22581C206E3E472122946269B6AFA5BC6BD16F360049793065B322243290025082FFB88D873CF373A88F3D4FC926547F5319B35EFA62EDB984FBB0986E75182F1F45FD3184AAD10035384E0CA7155BBA62B12CEC69E8BF56EF4DC0DE08D8C95BC4C7CAF8F2AA912BC93C6EBC47393C188FB69939C4B81220492C17657BB309CFE41783BBEB98D3968736333C5FC9036C6B22340F78C91AD4506482C039AA24E52ED90C123B8728D4B5C5A319E3AB948F9E11A0C4906E9C18E746D9BCAD8AF23F51AA269043E038A07685DCD104D9E6A870C4270E5822394C84C463B89CCA17C949641AF3A006568899103C8652E6F616340356E5A582438C780127B3E18C1D53479243203065C28C56E58779694C58EC6EBED960A7D7997641EC39F504B6EF931A064C1534A61101B23266E42557AA51E08EBA39E834E85958518CFDB20B66F37185A255D574FC332A0A41CF859F0A13AE8C5092EF23B4864F6194FA988C43480DEC66BA6A1B95F939FFDDBA53C0D5B73CB32A03606D4B7318AD6C75068DFE5CB97571B620283AF224A4C7AE192D58D364653E051C2C0A5DA3C838122348E9601D521894DA036AF1525B8F4BA5317EF7FE10B5FB83725C6B3EFA4B33DEF1EEF9A8DECD0BD49DDC692BB5341D1F63FA46F081057AF5EEDBA009A81D156E3A2EB4AF1C92EDFAE71AF5F1F1B3050B9B2C7D84E6793AB64E67B0804C509AEFAB1EA53A12FE4D2CA68D2A36FDC3278AAC43F1BE10191A7FBC48D67953731CE7D58516B8C1623B84A9473D46090C88C1A622022D5FAD6E20020A104E7507DB2AE7648C8E3CCF24A52EB7BB61DBA21B950DA17D0238C271147D82AB18635EB028EA6C9643E6040AD2792AB7206D95D0DA12D3471520D105DFA1B964E46905FBAB10BAB3A7650C45EB331A030A01897290C68680E8B135CF647F5BA984E85F5E951CF0504E5AF82745B337C9FDCD4D180A289B76062D990942416507C0694EF299E3EC0739BBF4AB53E184F5D942DE8DA25AC6F9D2545176F847D144B93D392427342681F20198CE072683CF8FDEF7F7FD70F57FEAA2EC0AA8790BDD02717655D40D1F7334809319D9478D47C5CB972654FFB8A5E3646E8C3758597EDC71F7FFC80ADEEDB56DEA00FFB59DFD0626CC0D07D6941C5546B09E0C8FD05247A4F12BE5701D82682CB01611B0931447B0AAB0B4DE1B26A8C5283EA42B6CC52AEFB990392C10AC09604809FA41B2AB944869A03E2CDB181C2B6A7225889856025766995533482CBFAD225AAF7D9324134DD85D4B17B07EB628852CA920ABFB1D55DCA0E199CE0CA9110C4788AE8D22058430949613A1AADADCB6A83A3ED24DA0CF8DC72D2B785E06A1295726305041BE3490A5D4E3ECABA02C55622B23439F61D5BE83106745F08AEB61B218248A97122B9689540BB8450CA62A1209DB522B790B436069426373106D427B78A135CA1DD4F014124971E6B9E63C5782A6D3116E3B98EBC450950F8FB273EB9A5F70412B2E009EDDB970E47EE8BE7AAE504E3C905080CD6BB0815A05F7752AB0FE1954A6ED92C78FACEC14AFB8D8C7323C6174D01A34A6A96A4507F92508C67DF8E8A9163941669CCC3EBEBA2EA7BB560010A6ADC1AB4C5D3071C0AD596E2406E7F925C09618B8548438D91DC523E291E481F4FA3ED33540E5610F71D41707515A758E0B8B8EEC63E181B30B48251C5A45CD8F6DB25EC90141E23479D440BC096663F6136FDB03E6BAB8CD9DE80E843D403128C495FA597503983199F39CD6C427999AC14DB8F035BC556A85B47C3D3766AC6D5072025DB621527B89A52F46317A3C986E4F29BD558C3753A6E25B7000A3609E0613FA98BCAE995D49CC2A7C7C0A10B57489FC0A013378A1C8A2EC949938BBA770E6C1D507116800662ABCD63295E003676B154EC13C965136CB1BABB06F0AC2BA791C35B70B20581AD120B161EA43E068F1265946E1418F09BA9D8974A724D477F5614090267C11C91A2411D505BD2A94D1B241B9FF69FDD8F1CFAF18F7FBC5B2AF081071E0836E2EDEBB1AC8B6A291D9463D94F8C56B9FC52EF3691A978872387C21B9FFFFCE717B146BC7D27DD7FAFB6CC0F8C91E0A2AC5429C633646802123D0E4670D593B6CC1583B9EFD9F0F8DA7D1B9DE8C0DEA2E4229EC6D0C5D98A6CBBA7125C7D0D461B8062ED188C56A7BEB6C6080CD900BA479286640BC080B679815D81335801D812EA8149A7E30005C9D833F0CF75B031A0FF352EB6BF2A89CE6D2049B543868CE0AA720161CB006995F01ACC5E4681B6B5303CFD3E2574414A4D11CDD92B29028CB6C6F43EE3495766C42534EF94BB9A06124E18637F838DD79B82A06E4B01585F3D08083AC578126144EF4F0B8689D0CAB70D62ABDF32A0F4858931A083135C367F5504974E3A065BC633B700FD4466750BCAB1BBB1446E8518D041092E87C88D575E79654598D0BE4AF9ABF4F88CD5F11CC29B597750D8D790D0F01648782A31538262B002B02AB5A48A7D0AED4B8DF12C10EE37BAD0BE12C9444DDE88CF80B293ED03A348FA80BEC479175B478E1C3938648C272B00D5E4FE3E38366068C28E1F3F7E4BC7855CF733E533245093E8553C7D20D52BE9634B10AF815A92BE74E0185DD53EDD9BEAA54AC4FB1B5D4355EC1BB4C3510900D88263105C3640A5AFADF271B23190167A24394B40B10D7A4BAA9CDEE903295E49AE7A207937D495B9EDFFD7E1D03890E40D031ACB82CF0145CC5D1D84E04A0184ED5102E369BB324F617DCD52C0DA1F3606148FC36FF17DDB0AC0A6AC66623C6D563B3765DB5B35954A4E914063074593EAB5E4966540ED824EB13172D549637D8C10AA0502E23C575FE0A481653C434551D63DA139F5BE53286E40C2262455138905F53D9441082E184FD5731218E8102CA389805FD2E142DCC654EEA09FE4887D068613724BE36F3B21C9A0EDCA5F24115C77DF7DF7A1575F7D75156002E319CA6A1FCA9D9D40D1FE9910B9A56D8BA27925BEC47028BCFED4534FDD13EB675692EC3237383A824BF7A5785936BF4AF3163EB9A5DFA36ADFA00457298633043EC2FA706FDDC08DCE75E1DEE02DAC8159DA0E89D918C508AE1E0DEE1A7D771BD6A70B976D6223BC1C4846C772E1CA536B1DF65359E974991C22F33D25F5B45195A43654EBC26DD8D03E5B0288F76043D7C9C60885F6416EC54A24F5496A2E6A7CFA3D34528C297BD30282EDCAEC17929D0CCFBD6A06DE0289620DCA54EEC37F6D10822B94751D530F94F981F1A42BB3DD208BA52C4E6EEBDEE736B9D9925B96014D21B7423C4691B6144D09B10200617DB64789F4A64D052859807E1D40110289653A9913CB8A36A99C410AC0DA2FD524CB3786F164BB5C6D296C1BAB210AD0AF2B289AC6C8A61F0A2094D38C6DB5174F1F705260F1D24B2FAD265DAA414457A847C944620D0F8A90FD00F7031D4E9076A85F495182CB016079EAD4A9D50FB7C54D7401474852B8DF9D8F0D0C7EEDF4215851BFC5B7A4C8600560D596429222B65D5EA27A9FADD857237D7449CDBA2F6D29D8D0FF1449DA250E7435806E2C058CDE0457481F357925256C02B6E889382769E9F0E1C3A30CEDBB74E9D26E308E543291DC9C43A89C7D23B8FABA61D68DB24DF5D621B44F07DC8EAD446469F2D2764831822B051829C1363EE3E9A7D585623FD7CD4845AD4008DA0C785B2DA70F55DE6BDBBD89C5CC0184269BFD009D565D4CF11AED0B8CF1C303842287268FA9F6B6CCB5AEE3BDC8F9B0DF7F553762BB32DB184F544553EFD5750547DBA2B319F04468C11D35B19E398B39496234A4C25556CC4B12C0780A14F8D1EA4660EB78B6D5BB58E708F12EAA01F653634BAA81DF1DA94BB070278901304864B68CA7C2FA4474950CE0994092F619BB5742053F362F014B4A645D2F55E28CA103028432DA15816423BFA75480F292A3AB3762C3FB708FFBAA9379D3CA76A0B871F2E4C915309A4A16E7105AB10349E46EEEAEB181409326824BF7277B6188A01CFB5B0A006A9BAB22C6679F498FBD67DB3969B068C1E95E1F25C145FF752D321ACED85DD212BC4549B5BD88FD60C9809A5064914D6384F8D14039F5354A23C4B2BB349B116F215BCDC67F0ED1B9B98B11BAE833F129F9AB367C8FCF5A0F669DC2FAAC012909E2935B446E95921CC524464EE983D0FB24EA42D4D8A05F8032792CB78E2D00C11D8501B531A05D5DDF7D27B8AC8854589F6ECCEF51C25E48488F4E477C72D9468005653C6D99C7AEC66911822B664891C8CCD6AEC0A01DC3210AD0AF1B8F119226BC6E33E06D57C62E76486F8941D12F85F5C970D285E212C9C21EAA00FD048AF82E3524974DC3C0D3B3DD9B0721B8F4BA08AE0B172EEC86B4AB47891FE3391DFB078AA6103FCB806A5E524A7F67B9ABF622DC0F6C7FE6339F5934B5B1EAEAB184824AEA72C9A38CE09274A58B641750A480CB32A092F08351E24E44ED8462154B253463A8523FBBCE565B8E554288B3D07D12DE97929AD845BAC4BA421725B872263D457422FAB0B0716F754A571E397264946D2964A711C14DDEAA0C76789E5483B1AF37B22F0457AAEEB4258C59254477ADDB861C558974EF7A14488801657C62A5AE72ED90C109AE1CF560C3FA7C66D306BFA6464A8FDD08D538C91EF0C3FBD86C4BED03DF650BBFB3C44805047B1EB07748072CE5214A2A8CD14321AB8C80619F01B5F643CA78169118393F063B07E389F883A55BE77D901C40B4ED7358061429826B9AD3B9791082CB3270E4AECA504422A808BD75679BC030253477372A6D1CA80E8C77DF03296663344D945BFDF32B57AEACAC6989394903194A0A38F177484B782C933A49038EDF09C932A0BEED3608C1B5582C36A89C4F59A4AE157E33C031DAB61443B5D1B4BBD8D0E1A9457C3BA912673FDC7CE08107164D2E6509B28B2639B59175686CC06071D96A435DDCCF54724BBF474AC76004D750D5FB30A27410C5259575FFFDF77F303660D096020352AA98C2AD349CD90F726B5082AB4FEC279969A825584F6236C6DE96028657E918D41B91F12EB070FF317EA714708A125C5DC0114A644625595B655D8D4FE25A28C32D9090E44C39A55472AB9434E924315254078CA78DDAB245C552834AD6CD1B419A982E4FBBFB294494372539C7403128C1D5347104B56223601D5B75311DF92E6AA80E2881C236B939472A0C467071B0F9438CA7ED51124B59CC9540134896B7B4F8A601AFCD82B72457711BA36DE22CE3498C275D9963319E25EB8D4FE4D65EE98D8AB631A06D6AA4CBB82E9A2ED8194407D59682AD6159D04D319E13C3392CE3199A70EC0F0042790A36308722B8B6CE9F3FBF9113D6D7151CBA39195BEE0647D977558BCADA6243A5210A20B2457A87F635892D1B663744335EE213493DA84B4E8F2E09058F4CC0572D113C379B1AD005145DA57291A4E612251BAD5460CB983AE3D421C7C53D7AF4E8E88061FBAE139E2090A8B4045E880DEF2B058AA21263089BC0D6C266B5E0B7DB2E8BEB62576831C08012FB4989045B00A524B955D4C6E85AEDD706B85A82AB2D65711D6332C880A74C82404226BC0EBF1B650995D359627489F1C4B0F2B3A2D6B964632E486C163C81C20289544FC8CBE80A8A628553FC2FA3F4A0DD422661881DC35CF530A52ADEFA9AC651760905639B3A210D5A38A58914A13DB74E184FA8DAA6009EA9585B375084A409F61831A096266F6B6E93BB001B2586FBF18D37DE7863050AAADB5301C6EE9296F666D6152439AAC1A7CA010792BA7704571B79226B596E950DF86DDA1CEB7331B5681C655B0AEA85F4951C31CEC9F6544B69B6D74B6228A9D959C907423643296F06A64ED678DDB9677449CDBA47115B9A2C764D63E17D255C548AF80F5238A504A115FB5F482EE949B87D72548E1D3B36BAAA7D9A2445DBD397458B40252542EAB864E7E63E527C91EAD2F49510B6513D99563699791DA2B950C530A00208C57501905DE97D838307DB44EB63617313B09E36CE93015AE7DA5CD0E4E4AE8AB31048B4D946D4561348BA4A97620457AA776163337C9ADBEFC83C7925B78EA14D6E46DD406E85F650FA80A228C115BB197A9430E976832C272B6A0AD299EDF130620CA8CD596D23B7F6AD708AEDCA8C552D9B41176D5B594D0028A78E2D03AAB125390B06D4B8F949E35B2CAF4440D0260F8CA7F41F556C433D4A4A7B33EB0E0A7F0C6D72B39F05EF67C00F46703963E8E0DB6FBFBDFA6159CEA118CF210AD04FA048B71F201E890165B30D69D275ACE74D13EB24C58D13274EACAC65DB3DA7F4A008E9924202DF3AB4A5E8EA7EB67DC64FEEEA636BB45506AE4A105A4D604037427239608CB22D85EE8DBC558C73D2334B925BA1B11F94E0CA99F4D07BF019E446303018B220DC0DDC28F50BEA575E068B422E291D9CDB18D01C3B64DF09AE3E0D6B900C3691795D492E01817AECEC13C180C64A550D1994D389E0EA22492CEB49BA7F2C91798AC958EE6E0B0828F2F604129DEC25F91B625DD4C9200457D38FF889CC361E2074539357D23CCE5A38A2078881210B5E5C118BAC4D5D147557435F1AB39AE95162D94DAB2EA6092FE3B25A69A247EA80EAB431A036F6625F0BA7E8C204042ADA1243613B32B7E9C41CC26B02C5322A4DA0CA211AFD3AA0A5247223C1E57E78E3F5D75FDF254CC88168EB4F322534970745681C2D034A0D33CA24F8C9CEB963DCD67D60A9A262B85B5D7342522FA8EE61BE18DBE41338DD965CD527FE82F28EC4BC14D9448BA1D4DDC88E1FAB5892FE26E54037829B56C53AC37D8C0FDD12AD34C9C11992DCC2251E8CE0B2C66429F5C0668F068A743DD92F6FBDF5D6EA66363737475786476050AC0552916E515A7400A409242581534495940284ADBA83854D61B2AE094A1FD7838C3DE5AD0A18E22B449363BB11E1560A14FB4670E5EA56BF9627373EB5DCFCD06ED3EEB5160979AB30A0B6F75C573B645F23B89A9AF172DACF4280B5D5F1B4AA6B1D0F280142FCF0006597206943AC71D3A4EF4B04970F08367E90003ED9D2D484657253DBD500E19264C10314B6ED53FAA90D4E70D98B2599D9966E94BAE813D237E5AF368F856D7043AB5301058FCE7A3FC509AE9018723642252389B03EBC0AE9415BEFA27409A60924CDC009C58042708568F2E20497984F01404090216919CFB6CDB10910C3802264DB590614092EC9D2679CE776B2FCD359CB5B327EFC70B4D22A41A093FE1C7B689F9289B4B253447ED79615B64BA5FFD99C50BF45E9AE44A99282482EA1DB721BEEF928DB5210DAC70280B3D0EB2572518B174E295964BEE93D1BD607AF21834AAE19259AC6ECAEDAD03E6A9AEA1403CAF6BA2D555582DC2A4E70E54C7AD361CB3792D5CEB9CE9D166B35BD3A95052F8048651F3D7A74B7725FA828CD7E81620F30BAF2ECA10B0110B6709B1FE33919A01F1D5A286FBEF9E66E831B51E432F8298C1BAB5C54AA22412F5512932484EF5992CB56DF0985A24DA0881F6CB849CD8A2E87D852E11502A3421EE1BED918B1D7319A9002BE849848AC726EAB0DEDB3C6ABCD824F61408B771F60F56328EA22B109A816E7EF8E76F5582640B407E5D8FD1419F2E410DBC4AD7DC92B71E85C5CBA7469973491DEF313994B782C1328BAF118ECA7D00989F84F3CC0C136D19C94D83E73E6CC8605C350934EF89B7B1C5D7136169555BF394049010EBBD87523E5AC0A81D912C3A171593AFAD87E07217D449CD76D29966394081A472AF711B5156A9A5BAA385BAC4D67278991E33DF449571418B4820887A7C8BADEDFDCDCDC1A1B303449B20DE46DE8FEE9B92A9A9CD0855490F431348B6DA2850273BB04FC2211D08B1A04EA5DB615941DA33B0AB905032A903CF4D043ABE77EB1FEBE92E3B6115C31B149661A3D4AA07C01C33A329EA1B10224D7AE5DDBED5BA2BD140AF6FB81C25DE76B3082ABADFF2A3ACDB6A380F320B46F6AC6DB7C68AC142D2FD52A6090DC2CAA9CF14C21B70675579B5C511BCB49F337D48665436352610244FBAAA6540211E55239449413031A23B7F685E0B2BAD16E80D91DD3B642A5D391CF65F8CFB50889A6230694F03EEB890C2E31566F2E1673F1F50283E51A6C3273482A4C84567990F8D2C44F6EC6D3416AF7EEBBDAA44214F309F56ACB01C5C050A2DEF83AB6A5E8CB63F8A17D750E702F43B451623849B1EDC4D5465B04785F5610F0D5BD364699D4ECB7A5400A0F416EA514E2ED4370555D455F932461F550FE58EFC90AD7A99B3976ECD88D317217B4A5C0DB50E496ED3B3B54E7E64108AEDC498FBD47FE09228E5847318118B37C6ECC875FB90F0352A5266C167C287D73C8CECDC508AE94F7A8BA43283BAB03514AC0C9BA1EB2D39094972F5F5E491185F73DF8E083AB4564B3E087D84F294670A582838ECC8850BF2BF3E495840FEA9D8A0195BDA554039B058FE19FDB2BAD97C4C8E915EEBB4D96F5E43336BE93F7A6209DF48566B3E0253D8801B5BDE0FB34DEEB2531423BADD6E2B55675ACC0CAC45BF407099D902C032A29228902B9180BB01E34AFC4760BAE4B21AD4EDA52F4D9199D4093BFE29B3A2121C5532B0D7426B89C085B48A4C1AEF9EDADFAB8461328BAA9015F9AC080EAD126373705EAF426B81C32B71E7EF8E183A11E257D3C96D0416D2AE7C51C1ADB846B61C93ED0E4D93661B99C441B48304EF57B216EA414C135888AB0DC066C2774711D853ECAE26C0284802FDB80C87B6254FA4A8E21A47476F7813EEDAD68484BB10FA19AB03E0D560D96D145F0901F82C12EE9A84521F613CE822DF692A0189CE0EA03088180867A7833184FEB9ABF4AF89EEC3722C8456EC92D658C0051E9FA9FA52446952B966C2233AB81F24CEBDCA3A449CD082018F952350289A489C6D0B62FCDB5430625B852EC05DBB31D97C9EFCA5CEA82C7EE9550FF5449CE92B2028A0C574A4EC7C2249BC6755F5A5F11D667936BE1362C759B13C0331D71CE4292C4C6804293DB18D054AFA628C1655D2136766C57E650EDEAE928CF63909B826D420CA8CF8096EA8BD65819D889AFB9A296050A8C48BAECA46EE8A418AFD391069410032AB050DE51A7EC94129DA5DA521477C55613184A2534D7C0DB18DB044BB24A1584388B2EA0F0C78F3AA0020B4150457BBBFB22C8DD88DA526CA45473E9FA1E142E115D630486A4ACC4BEC2FBC8B381BBE90A8AA6FF69DAC32A5E19B82F00EC205100844466DA5208809B9B9BA30CED93D827CA9EAED4D80DD80E43756E1E8CE0EAA31E68C4ABC1A01D93568BDC32B9647EC2D2980F0B04DD3B4D794F9D3AB5BBBFC17E4A49726B0882AB132020B9E03560F3681BB9CE15FBEC41A8E3D5AB5757EA54C496D48D5C5292BF6320E9AA723A7B25BE184AFD7224834DC6B51B4531C673F24A3EF2320410B9A202090CA80285A9A961B3E087EEDCBCE8D3CAC0167745545AC6B3A939DC14DD151F6B028505068105624BC9CDB2512CA37C47D818B6E380653D797D8AF11C86B720A54006AC243231A07E167C1F6F314B62D84D1CBBFA6528F559F51338BA83C466C14BEDD02E4B60A143444A05C5248911336CDC0F6E409A90C81CAB52DB87EC9A8E7C4F83D7D879A5AF1A19F0024C9F85D8B889F6CE3BEF6C9F3C79723E54C31A9B9C44BCE258DB52681BDD4ADF12A0084913BCBEBAD05DF76BEE9BA2D8555D40DD0ADDA82C9DEEF5EB630306C1BABA57791BB40AC325CD61404BB4B0E8E4AE862EA00438603C25EA04040D8CC49F184F7CF59A3A1EA5BE219642DE869FB74A8A86DECBC91119D2655D94684A13FB3F482EBF2BB300B1CED15C366F55EEA8C647C6E3273EF189D578B14D80CAD9AF70BE2C822BF7C720B9E8BBC14D4EF9ABF145044DAEF2DCF480972B4A35611B03DA17144508AED4BD0B2870F4A9ED4E602BCD4D80683F486C1667213B4C20915DA262B1BC6FF7979AEC9041B6DD99F3D80FDAF28D3AAC2BEB176B9BC8AE6E9284A2329216020B31A09601B5FCD2BEE695D84466CBD5DB44E6DCAEC11320F2790CAA2A5307D466C10B30446D599B6D3082EB9E7BEE5985F651F38264A1BEFD492670F427B77C06D466C16BBE9419DF67BC1B092E27C296274F9EDCD3A324652FA40B20A6B614696315030EAEB0D48E16702CABAD882A7140D8D396A2744702DD00617D32B4EA9B197D5B0A9BA19E637FE54893BE4D09175D567D9FC386F551A84C624FA058A7B614922022B7603FB5DA9BAA09946859518CE0CA91064D2AC2329E105CB25D9A56CC580FBF2D851609BD4BB01B2CB9950A8AD28B3B29822BD79EB08C27A1EDC433DA34BBC9D0FCA8C6A925B71403AABF6DA0700972AB18C195FAE5B63F89AD7541CCE294BF9A76D81850A91B459293058F4DD2446EF9AFDD96C229B6610DCFE950100BF69DD8CFF485A7F1830185B3802A673FC5EF84745B0AA7D86C343BE17EB8DF7E1BB3EB7058CEC2D6019597A3BF63EA793082CBA9850ABB00FE8244669E4FC9CCFB4F7891054F1D509B051F8BB22B9A57E2BC898A380A2443496327F2DEE8B28E6C3BB01C40A4B6D1C48B91DB2F09A253733658EB2B87C81D42FB72EB5DE414A0A7625FCD7C8EAE6A9F6C027116B669609357D687DC22ACA12951693082ABAF3B04C903F349DF78894667897F3036606861A9903C712AB20F74D856A3B9EA24E53383174EE90B0E36E0A0BE6D049325B9C69CBB6A2BF749E46B3C44FA294858E302FBA9B3C93BDCF7A4E6942FCD21BBD814D3CDB33A74D37EC5BE753DF024FCCA7D0F3FFCF0EA7518E22677B44BC7C4E2298A29BC3BF4B70041283B99ED58CA29D585D7EDB095FB243569CA7BE6CC99DD2CF836063455BA0C4E70593090D04C581F0C5DACC7C674342F42A4AAEC12495CF1153606D466C1F751399D25464C5459D6130BD852DF4DF59F26699177685C554B43760979AB028ABC1CDE8F31A0832535DB56DCFE7E877DDDBAB213208623B734F9360B9E882D491381C60FBF1C8CE0723FBAA10BA1D22FBDCDFA4CF2048E6EE3141A373F0B5EAA4660918D27093318C1E540B1BDB9B9B9B02AA22FA1153B4C81B6836324B8E471406EE57A0E29DE08711EFAFE120BB891E0B201BFA5139A75D09907FAB6E6344617A8C176028624AE2A6EFB10E45653239B22C667499540435A9D5A45F8EA127B427CDD526B74C000F43A691BA6FD0C055AEBC0A5D77894004571773564D1F6C96D85F1D4200808309E02824DE05D37DB0190680B1D4F435E06515BB21904943EA0D817822B4775B02946F946F6400406CB784E46E847EEA83C0C9D5A3CC45988DCD238690169FC42414F25798B241B23178DF426D1C99E808DF19C7A94A41D1A2349119DE4ADCA157DE491477655AFCF8076951C4525865FEF42174FD17988161BDA9712503C1DF1B1860155A0B0DC5049124593CB88EDC380F6F64AFCE7B6341296B6CF78E6A89DE948B70520B5B49FC2D6BD8072E2C489DD7D29DF151E2CAFC45DC01CBBC06E8997687B301DDD41A2F1479A5CB9726537B44FD2846A4502D0609B68B6F4732CEABBABC7123AEA10B8F9D8269671EC6267A518952C5E81855087506C4BB14D3425359327D297D08ABD07B7410F567743A34C6AA6582B223FA577491717957A5E7D2B17255706EE5BB2D1AE1E219AF03E4921081E0DD6B163C74659B54FEE3A8B40629F4D2F3CB8B6D0FFAE2D2BBAAAF7C57EF460A74A9DDC590D8E4020FF5CF106561A8DBD2D0546BAEE9F3191B741E53E2D106C8712E4D6A0ED35BBD80B309ED4F024C41D40B057B0CE878D7B953B2A9050B94FE326801013DB1714C52B037709F865438C4D22DDE0D4A3A4FDB095FB348E0AED53A030BBB2BC9FC2801609D4E9F3CFD66BA1250599ED4D5BF5933BDB7C681C0510456E69A189AFD0F9E0830FEE96924821B70627B8FCF7FC6466FAB1762D403F1DCD2A8774441850A4090C288C730E65D05B62D86A70FA9B70BF505DAE0910C3935B0281482D159E9134A14C820C58BB487BD7E06A32589CF89A5302C9E65F96D061D3D19FDCD282941B2CD562EB800A2CF494E9AA5A1A258613613B0E1C1B4D4663096E837C943A6E63ADDB52E40025D0277777677650826B88703EDE23899968AE756A4BC1C4E16D7409B0C9CD551DACBD665FD501A1A381A19DB5FC741956EBDA9682CA7DA424C2F1740145E9F94A22B8527FCC7F8F66351A08DC2CF11A329E72FA9C8F99DC628B80DD511D843F86AA1A966CD2DB99E0CA01848DF1443DD8062DEBDEA3A469EC28EF78F1E2C5D5421267A1E4660186F7422A67D0E26C7D5B5FF98C279145920CB1FCD5C99B891FB23B04109D1A5719ADDA99550C285DA1429B6EB785E08A956F947AA0E61399EDA9F9ABD3D17E680CC57ED2BD596EA8C8ADD3A74FEFC680C69298FA46CF65974160530CE9102A6F30915DE5B90C8AC586B2E0C586E2D5593775B0BC12F783157D3D2D8A394371A1D3311CC1659F0B00360B1E624B06ACE646CCE86004979302158D78FBAA8694FF95B874126931B609A6BA501F9ABA0924783992269A2F4990BEB93B8D0497BB91A5BBA9AA4FBD8BB602F4905C4473CD465ACE51A25F2B9AC87A4211FA8222F45A885DDDD708AE2EEFD19682B445E20CE4C508184E148E2E82875205B674A5882D2D0CD215630CE86D2DCED6C7CD49716709F495AAD020492F8AD3F7DB4C8F3DB4CF56EEC3D3D0229101F9D0430FAD5E87DC0AA982AEC5D90625B8725C21285F32D52855286309977632543F34206524D2778E42F2020905DB346E3177B40F2959C45D6D0304BC0655F2613C6D8CE7BA976F6C3B08C8D1A943FB28724795B72AD513AA8B3AA43AE9DCDB9DDC55F6FD7DC6730242BF0320BCF1C61BBB856275CA2DD5F8DA18D01828DC7BCB2AA09F8BB7BEA26C236D36092BB38CA75FA86D521965548E361EA9A70103EA1BB07E0CC660041794377F33E97E3273496F663A9AC7CCE6AD866240A9CBAECF0C467089F924CE93984FCEE9D87F5084243185578801958DA7B358B3BCD08F3BB769E90CA02AC756E8B257C2EEEC9843FB68A509B9D5950E68323CE9844499476A7C7591D445BC92DCF7A4960402C2FBE8B428F1E7F4E728DB5268C268332A6F8362337ABD2B03DA069CDB96A298F31E648E06C7E6AFCA3D23B620B70BD0C7E9D03DE24940FA693C1490A38380A654063487B7B8AD115CFEC13E08B5B92834265D28C9B0CE06A8EE1D90C8DBD038C92E50A699248A5E17FBA94513CBD9E91B1CDC5B95E4A80EB9B09206A42D4272C9CDC2A5ED1BD63EC6039A5C20A18AB03C0D915B52375A483A19BB9C38D0A204578E9DC11E089E0BB52ED09D13D195AF72B475A053632A424BAEE8B973E756E34CFC2CC562DB40D175FF297913CDB6A7422A480492C88CFFDC95DB988EF0789169F6FAEBAFEF6EB891056F2B0AEF7B5E890F083D921BD954B1AFA4BE9B00F2116741DEAAE642EA464051E53E362BA934D05B9534D9104E8CED06E9000836C4520BD04F475972CB8E39D244FB296CBA499A48E5481515B731F86127A6964E6455B65373891B0B1D145F778FA30BED93DA951A40C296040ACFA9030A03AAD7E98254DC2B69ABE5D937A119C613B796CCFA31AE7A8143A21F914FCA450E039AEA8DB4D561ED2431BC7DFCAA2420342874E011C143F3158251746C6E6E8ECE85B15D1748DBA4A605BBD34D0C68C9A09CE2DD07BA5ABCB4A560AB9EF84E893C7F20C61EDAA70363DD263753B98FBD8E505B8A5C5014DB444B41532A38B42274B396F1244C0D7B653A6EADDCA70544535EFD2D8068DCEC167A9F18CFA29B6829FE318C273D58A9FB40C0EFD4A324ED800F52DEAAC6934CB34F7EF2932B954303A05853E394C8BB6C8991CBB5FB5D99F1A1A71E25E5548E380B9D804459668F3EFAE81E06943AA0A50BF9666DBB13D6474518620F2DD1E5B7B098B88D322AC732A0B24B2449041451E6A41DA454142E4270210D6C576600911BE339B19FE55C5FCB806AA14A9AC81526308756637D00D2D8FA0A0A9CA63584F795F2584224D758DB52F85D1C4A915B569A10032A5798366483105C124F42635F0034BDC7661C24D758DB5268456360A6B6A5C8715191C884F50930A2C78722B88A57EF237A89D03E449F102FD138E6B614042DD90275B1B614B9A028EDB22EBAEE7FE4166903081A185216A5276D56F6D8092E3621694B21B10FB9050B4C51FEBEE416466BAF788CD08FF42D3E4F137A741D514884AB4D9EC6CEEE985026419244B5B6B49018AB262332378179B028F1A62F27C6532B4037461D4FEDF8D98A7D1328C2634AD49BB6D0A9DC77EAD4A9D9638F3DB6028900626365074F6ACE356E7CA38A2D655A53EBE6140B804BBBEE0D6BBA1CB6721F862BE496C6932637D680EDD316AB93C4F0EB570006A90A184FC89558B39A89BFE87EC8F680B378F9E597778371C88267C3CD925B8336B2F15F677754134F09C1A618CF89D01A46E590B72A6922835E2091341177A1F9C0C36B9226BD092E27C2AA50589F1E63EED544870F070AFF3959F0B677097B2ADAC01C8CE0725FBE7406D06EDCE79019ECBAB1BAD4F4C1B14D2A9B6048DABE067868AC29612569A1DFD36F90E5569CE02AE90E850C57894200818A723734BA082EF25489B7B095FB728DF3546FA4EF226E941890237D7EC8FE2F217D54EC235753A21032C6BD373A7FD61665433A8AB710B1A5D54DBAA2EC83DC711E34A9B9E14BAB3EC8631F8438470D8CC49DF46213BB37F683BD12F2434404CA2555CF55C648A795265D2BF6ED1BC1D5F663BA51BA324B02C0EEC98AD6604CC13B7B0FA9155BB98FFC1055EE63E75486A48D011D2A9C2F99E04AD920B38CA7FE26C6532497CD5FED9A97B24E0740D0F9CA2BAFEC06E488D8D2DFD0E41ADF5C326B5F5A5F11E3890D42581FD55C7C6E630244B703DBE3D5575F5DD9257243659710034A4A8295C2FB5A3805C9A08B131868FE46BF8C366E630247FF43E3AB7614522BB4F89634F9D4A73EB5BBE926A0E434E6ED2431EAB614BB76032E172E966D563355E8DB7F9543F7666DBA9105AFC22BFA5B0B56AA7C30820BBBC0D6B9285182A9C93D9E42FBF2790C2D562B4DB47D6F93CE8B135CFA411BDA57E22642AC2015FB6ABB6594FD4A348EE4DCE0AE960879F05F2389A9EEB43D0CC195425AE5BE47C53E4EDB69512AEAD8B163A3EBBBC90E29BBD2724965485274C6AF695182DC1A9AE02A02088ACF437F13C2263D690764ECA17D7EE53EF25605120AB6695C52BA37978C03ED2C31729147B22E650E088685DB980CD2BD515BB20FC405C936506E08FD56E946E04B935450142D83105BFD6D9282805F7258910A12A13688670245F8602F4520B195FBCE9E3DBB4B9FEBF4D30EBAA88FDE36469B2B2A89C05E08D56F49BC9D7A94F4533954EED32135AC809CF3E7CFAFC69B20E12E0C6811AF24A4220003289734D085FAF9ABD351EE60BFE9673FFBD9EEAEAC380B915BD401B559F025CC82455B463B3E38B52EA800D3D4A36422BB863B2489B521A9E87B18504913D1E49A274912D4F86051E2F8C1701A4D3D4AA684E6FD335AEDDF30A0D401852A47AA0FE29548C7C94A6E520F2526DCD6DA186B5B0A4D16DB095D532ADA6C08CA4ECB48D57B5237BD2446DFE4952E920220D460D8B5CA9D781C65EE6A7D6F2B6F430B81AA7DB1E6777D41D277F1B6A60F944A68D6E4CB70D229B7965E1D18AE105C870F1F1EA5CE8106979148BCAB1850AD6A81C4B2BFA540B16FED355300610F481B4907AD125C2C89BB758EE4D2BD53940D06542EA918501DD6EDEFCB700EDA5E33C756405C52D01592CB0F28998E8FC61A0654DE861693C64F79AB9228F478D1CE690A039A028AE2ED35439F657794882E5C25557799F257F30FD91D1A3B9D523954EE236F15728BB614A992A328C1452B2A3F7F953D105D38FA5117CC2EE114E3594EE588AFD0F9E28B2FAE2409A17DB251880FF519D012764792C44045E8C490A2B9DDD4A364FF0EC82BC580527045768918507AAD36D5012D4A7049459027490D4FCE2EF9ABD35186DCD2E254589FEC372D581ADCD0BB44F6CA600497802063C8AA872615D127A1796A4BD11D2430A09216AFBDF6DAEAB728E83F08C1D537953E8511B415FBC6DC9642EA98CA7D30A0396D2972BC11C20601C6A0ED354B905DF8EC905C54DB5F87B6144467416ED9B614E4E4A4B8F3393CC6E0ED35BB6E8EE93DC2FAC86C0708D281BE1BBB0E6D292CB945A41B0C2895FB6464FAE59FBB2EDE3B82E0E2B0E50DE8DD2582468F9351BA579200122D145BB94F634753DE50A5C3A13B372F4AD4BBA06625711B42BB8DF19C0278D20E02850512622D244954B98F7CE0500C688ADD5194E06A9226188E546F6113C8329E53FE6AF7436A160694BC1471168A01D5219A5C2009EDCE96D869CDDA4483F1D4856234E90229791CEA5E3401A28CCA2106F46FFEE66F56209124114D2E490D03EA47E00F965742A53E482EC0609BD5A4B06C1338CA1E94CF146721BB449244A7A872D4B8AD285C9CE0D28F028850B0EF40E17CA3734DEA9CDC620BC47E0F59F09226D8253AE5E9F4D9CD6E24B8A4C328F49AE3C2E60E1A1E8CBC19A7A60E8D0D1892BAE22C20B5FA54166AE32D50291A576DBA759D97C510D13F6DFF4B72126D3709EB934BEBF4E707630386A42CD966D4E3D4626333B24F3DB2C18AB3E556D4E9624BC0DBEB947A424F52C5D632A3633DA8B54E1E8EADDCA7BF613FC58EA6D4014DCD161C9CE0CA0584A4828060194FDDB47604D7B9621F875FB94FECB0BC0D156D25F20D7734479D9452F78B9206918DF1D44147E650CEE574EC553552A33A253501C9E38F3FBE7A2E80E83DD2025240D1D7D8EDD5FACA366011EA0916112943C0C8D4A3247F81852AF79D3E7D7AF6C4134FEC6E2F40930F55EB73D14545D07B55079B62EC90C26F4C4799C356EED398138C239A5C630D031ADAC21FB4708ACD5D255146174A40EA2415F657E590B72A17582021B9991850521673DBA066490CFDB00041C53E012156DE606A47B1BFEA46072090CA210654A76C1419F9B69A7051828B32C68021B7FC520E28A83BEE7E6F947D573559105C4380440B57D24431A044F0DBC4E6A29581A9E339C4418C2739AC54B45B8E50BCB078A8138E2D2657B40F6D1DB329304AF10E0727B872A4414892482DC16D080C34D79395AD811238C61CDA47BF55585F791BB6AF5C8E3419BA0ED7A28BF8CF89F184EDD440E8396D22E5D2AEA3C14A9CAB4E19911A178D91BA0DC8C887086C62405340D19BC7E85264BEE93D184FA2BFB5522411E46EA5C431AEDB014D4E851C7142B4D224C34FE3179326FBD2C8A60B38B015A43F2DE3A91B52CD28F4E9E4CEB61F1A275212A5720412A91B35B8D1B80B207A4FE39B2239FA1C8B2EAA83E86682788466E948ED20DA18CF218DD77550396C27BCF4D24BBB8562CF9D3BB7020C92448FA9D2BC882A010C564510D6A7033D09E339956E1CF660BC7FFAD39FAE548ED84F9DDA4FD1F8134D5E2A49ACD1C6104A09A0D1EA2791D986F6A51A48D351EE8831A0A2C9051A0144EFF58EE08A4DA8A403F5AF2DE3D9A7686C1BB7A19FEDF2AFE66CFBFEA6EFF0BFCFFFEEAAEB7D69024B178E8931A0020A3D66BA2EDA468921E920C33235C6B38B8EA3223FD15C6E100F2402A0D764F5E1E672AF41F72823D296C5EC1B8610333CF5BDB2F5A88458446294EEA8185B3D105C50B6B46690A1E5D07EBD8B34B8038EE87552649FF40BD1E3BA773A46C536BDBA925B39AFF5E231FAF427210D81D03E184F19ADD283367F3520EAF5C2B2C08495FC5CCE772D7D77542795FB684BA18D2FFAB6508CA6CF622C1AA893AB22DA6C09490585B113E349ED2855B04D581DA9126228B5D264635499D7173CA4FF61386DE53EE5AD6A2111ACA33387012DB5C3BD28D17E093D8A8A207F556010E3D9B7AE7501D5520D243152AEA54A19535BB94FEA866C332511E975A959E58E204D860C044E26B8623FA81B9028A42BB344A4F5A70B731B55A2D4085E72618931A82AD2D8D9BC55A51BC8D378E49147F6A42B126F3144ADCFE4BC129ED39559EE10D57D652BF85D990B731A39935115F80D1F18A992A2B881ACB124505879ABDA7A904DA2A82DA91E42FB6C8989A137D12AB80C818174453C085DE86D623CABC824560163B5EA018C545B26069041183EE26BC55948754BDDE8840115506CE19541B6DDF583D4C6924408F52819B81D851DE02A91840AA9901C1BC3FF9F5440ECAB3B4D25451850B2E0254DB4332B8048150D4270E98B45CC7489F1CC0104648C5640425B8A1020DA262717204DA06B03E82DA0B66D294A56EEB3E3AD854A80B6B2E009E2DE3782ABD42E1E0417F189E4AFBA9BB9DE20DAAB0C6991CB89C4A4531B485A6D1CDA52E06DE87E21B7BAB6A548E1310627B84A80835A9754ED9318246EA3A52D051356358878F65776CCE7970120B401631601A3FD9D7903581B3D0D520F21B7B47D2E754D047E6A5FB35417755082AB8FEAB01D99B55A207432DB52D8819F071E770A115C29C0E0B5B939B3892F9FDCD282A1BC2306261B635D413138C1950308D90A72A7A42268CF2DEF45B64A8746BC556495571E28E6119B62199014A91223E6F5840031EFE3B66A4CF034940BA27193BA1103AA7194DD40C04ED362BA2308AE3D5F50C7784A22C883413D000622B97AAE5E5F32CC3D15B2F400323430660D00E9C56D10032A905021479244B116523722B66872DCC6390D467035F53383F194354C56BB1ED9282A6079FB935D45EC0A7D6EC3B3434A0363E681711EB816DF28EDCD63D8CA7D52390289C2FB9E7EFAE9D5738144129918D0A236466A5B8ABA0CD2EA64AB586088F55F2D4C68CD02130030366A69B26300321B0018F67737BCC72A814BE9ED924285BFF0C20B2B95AD2E48E22CA47AE882E417D91D84E012474FA1726B3937B5E72EB459B6F40679E94DCCB2BEF62D33F0A89B262074F14A62EA64A341820CC67C5A06F4273FF9C92A125F8B56F19F84F7A18A049441082ED2E86C7983DCFCD52CDFD9D92B4E222D02EAC05FAD4B038EAA06C4D2532F2581310BD8165662F86EEC1EE9C1B6025D014A1F9A1BDBBB4412A468E114FF8B24216C685F091776CFC89BFC55BA110488263B314B3321332321E6061CB980480549D5E0A1CC3DF0ECB17188B79004C606EB9BB71A9B33185071257D166A7182ABEDB0F9AB9210149415DA7553CE02BFE90D6E48A46F046C8826DD5E0218B38011BA11008595602BDB07DE82D2955A0C12FB2472B30FD5771E06299C522A60C77F8F9A523AB56AA8B82F63C9AF026368DC9D0655B23446676526C257215500383994784862C4BC93B9F71D41E69560609D72E9B5486444CAD3D0D810DAA733579A9406C9A2342088F114DD0BBFA11B95789354486CB5B913A1B4635E42939BDAD5106C532721DEC257653B6DB601B11612FD944950BD2DD923905B7E2BCD5450EC0BC1D5F419685D9B9CA41BA2017D0EFA6BA9A101DDF6A44428D6A28AACF665641F23C7F89C35FC56D5C0D0024E794CDBEE7E7652EA976A8C887ED3219088B750408E161AA17D7AB4B4C050217E9D5B5F51DD9766BC64662BA7A1406D2E0B8CA5A7429689D2649939F931D5D2B6AD6F3F636D8B6DCF20CE764775CA1DD5182BB44FC9CD4F3EF9E4AEF415509A5A7FEC4BEB2B0C27E942CB780A0C309E7E3782AE45E69DF5FEB8FBDF05C69DFB7B5E7FE76AB2EA15B86C3052732441D67BCEF5DC055F7D3D9527F196F5350A185B4E451CEF5BF1586A45D1F53AE5FA2AB683A26C96F8B22A67D0C229D27B02011E04617D422B9D007D6EA3CB85D4DBD0DB4E1D090007DDE3EFD7837ECBF7C6063954A229754272631742A5201A9E1F905A70E3B8EDC66FA36F8D102D488DBFCEE79E7B6EA56E4E9E3CB922B664D7A16EB46063F65C6F828BA01281403F9693BF9A32190E704BE7ADECB85530AF5315ABC5876147471884D8F7C682514A82A3ED33218070F29CEA006E416DB873C749C3B91BCFA553135589482EA2B62816AB0D37A91DB9C4524345082EFF66854A2112209408E7933A722B68CB8162E1066D5B8F5A51121CB6B898FF9DF6B14BDFF85220B2131F7B0F40E8E46F4D9A1640ED6D5432D69DC1B92380B889ADBAD862FE1850B98F2CF8C109AE3E251BF55EED8AAD548574B09312F3BA3DF8C20E087FDB8ED000C13E87EEB5CF53EEA1ED73A1CF84A444ECBB7C50E89400D4FDF39E56B218D0BA46F8DC4DE2B65B781B6E52B71C48165D55CD20F1187DBFA449553889B3ED0667C30DC88E3398361C382AFFF798743D5AD7D69754BC6F5F8B1064C1C9CDB9C7AEAA45D7C86AD5FB7A6E81C2A9CFC8803C71E2C486EEF3D2A54B0B671F6CBBCFCFDF7BEF3D49928D54553384CBBAE853943C24496AB179D3DDF8C29D5B4EE71D90712423CCAA01A4800F0A9DFA1B5797E7F67F432AA6492AF4ACD791FC397EDFDE1BA78080318FC4B36A46DBE7E7CE9DDBA06A8E5337CB5AD5CC9B54CDA0C5D9BAB09F01C36BDBDDB45C38D925D59933672A27250EF8AB1D3287E7447859105830F84048E92F56BA214ECEF7F159AB16758FD42BD3BDA15E684288BAA582F0534F3DB5A1EF71EEE98603C94D67AC1E7086FF2DAAA66403DEDE94B8FD3177C34B77D15BE21C9CDAD83E7BF6EC4159C5EEE6E75602C44E5F4AF886A5B5EE535CD6218F2EE0088CD7EE3D4A52001840C2A9F7F5A8DA9FA74F9F3EA0F179F1C517371C5096EEBDCA8163E5D5587774301B23E58BD804721775C35DD40177735B4E322C9C08ACDCDF079100FA1C138E4460F2392D87E1AFB2216C9EBE139F6AE4C6BED777632DD891A4BE8AD5490B90279F7CB2FADCE73EB7E2299E7BEEB94A8FFABC53334B67B856A58DD124892137E8DAB56B5BEFBEFBEE8AE9DBDCDCAC74A14E651CB0A51BFD1BC7C8B2D220A48A422E69AAC158427AA448A2142337F5FA7C4968DD5CEBD5586F86CFC95E13352EB03CFFFCF3B31FFDE8473B4E82CCDDF8BB69D83A10B3BFB201ED447FACAEFB750780434E32ACA48333906E7CF6B39F3D2486CDAEF0984408790D5D2E38D5F34859DD6D8C6529491123C29A3810FFFF00880F14AB72B055B425F1D77FFDD73B172E5C90AA911ADF56249C5BD0BB5B05DEBDBF71F9F2E5538DF7E0263F364B371C180ED6FAEEA61369D703376241B5323CA552EA7D8E798413904D4226CDDDEEFB0F0456D2526ACA7D6EBB6912611543F3D93699FE24B4D1DB1620A1CF98F7785384DD81884A911FBA655E5F4DA0BB9F1D73FD3A75680E44065656A218C06883E426DFFFEAABAFDEFDD65B6FAD7E570C6B64CFA715185225E7826F2C16A26EDF8377901E63FFC27BACEACF6F3811F77BCF3CF3CCAFCA28524C8158532E583721C3D4DDE45F7DF7BBDFFD374ED21C76FFF36987F87F7BE5CA95C74DFD8DF7DC6BDF74E2F1A28492FBFB4D31CA818DADC6BF6BD054A9FF67F6662A03B894C8F15BDEAF2774C319E4BFEE56F3A33218EB31BAE9EEEF876E5C2FCC3EDC92FFB986D66C08EAB51BEE9E3FB8FFFEFBEF759FFD6DE795AC68615504B607754A9C5BFB1F2F5DBAF40D73ED60B372DFF3B7DC387F7B766BFC482B8BB67093F2525F1DFD3BBFF33BC72E5EBCF807CE72FE1565506917D0CFB6262056ABC8DD881221546B70CB7DEE0FEFBBEFBEBFED5EFF845C5E37683F72C6EDDBE6EBDF123B3F1B38EA7A80E381B7DF7EFB7F38F7F3AC9BA047746F6EC1BCE8C6FBA2B917B915AFCD3EDCA2679778C781E0A1471F7DF49FFCEC673FDB944D4124B8955404F51C3D7AF42FDD42FBFDD217BFE8FB055FFEF2977FF7273FF9C9BF7496F279D91BBA78194762F5A4FFFC1D3E678B9C770F9FAC37CA246EAFB801FC0BF7F75DE67AB66B517BB33E3F8E6586AF69653A892189F7AC08BE7AB56E99531203F551B90572CFA73FFDE9DF7CEDB5D79EFEFAD7BF7E486A5C8B49E497F88D489AE76FB831FFBDD20D807A01E32B5FF9CABFFEE637BFF9EF9DC772C81A5ADAE9D3F9D4534FADB6826D7942270D8E9C3F7FFEEF3A20BD6A06EB7A7DCE66777E3DCF9CE38388D80E4EE2134F3CF1CFBFF5AD6F7DD6BAED1A3B791FCA21F9C217BEB05A6876DBC0A9922F6A1EEBF88F652980CCBBFEE3D7BEF6B5932FBCF0C2EF5A50F8C7B3CF3EBB8AE1B046A26C150796CF4B4DCE3E0AE8F5072D1A50FB3139962DE72D875B44BFF4C31FFEF03331EA5B94815B84BBE531399C14D9FC855FF885D332E46B80CCAB023E7C67603811F9DBCEA6F864DBE7BEF7BDEFED66B3994DB3CD4CC9B0FC989DF913319F7FDAADFE8DA6CF08342AA9649BE0390FC469997B7FC3FD79A256CF4500D21918EE269E48D9FDD36714E403EAB54124AB7B361DFE381D4BF99CC60F095CF792BBE96C92796DB79D2905906C1BA3FE91F92FFFF22FDF97215D568FDFF9CE7756687796F44B13146E21D20E662CCA55D0B58AEB3ABBE4EA0F7EF003D9179FA801A155F8667DBE53BBFA37726D90452E20EAFF71F37BE8626A7EA4902D3128C3C9DDC84F7FFCE31FFF7082C22DBC9126F264CA6715CA2717B6AE4DF2626DAF1DA83DBB7B6B801CED0390790A2044D6D4BC83C81689BC87AF5EBDFABC734993B28714B1247572E6CC999F3B63E97F3A4BFBE60485BDC7C18307AFE6C67F38A3F31567E0FFB7D947E992028824F983B50479B456318FE4AA9879062064303E5CFFD8B9679E79E69AF3AF7F9468582D9D8BFA8A7BFC2FCE9379C5B8A9D3511F6E5CFED7638F3D762505140A7178FAE9A7BFEB8CFFDFABA9009B755F042055606309DAF440FD0302C5FDB5683A5AFF2D37E39EE3C78F3FEE2EF25FBCF2CA2BF7C76EC459CCDB274F9EFC8EB3A69F71BF4522CE7B359BF9FEAC258D2F363E23C446E55CD67FE4C6E91F28AC2FF6A1B367CFFEDCA9923FBD78F1E2A57A2C6FD644D93B3567E2E7DBECD49FD17BEFC66C10D857544C081873030874D50335200ED71204D09CD9DCDCFC94F3AD7FCD81E3A87F134EFF09142F5CB870E1CFBDB76ED61776B16600FB4E7609A0DC6EB0C9763BE1A4F0DF776AF7736FBEF9E62D85704F9C38F19E93BA7FF5FAEBAF5FF0267FBB9EE4D7EAB10DB9FB3E40AED57370ADFEDFF7EAF7B7058ECADBD2AEEA0BBCCF03C43D35101646FD2CEACF1C3B7CF8F083A74E9DFA95EDEDED130ECDF71F3870E0A6338CDE77CFBFE7DCABEF476EE2AA4709C72627375B2CE73BAA81C0D2E5FF366AFBEDB803C0636E513DE98CF5E36E0C0FBAB1BCE1CE6B0E2C7FE5407375B63769BA320BED925968312E28264100C8FB92EC21601CAC81715F2D210ECD6EAD35C5CDCF8D35BC9224F7DD77DF03CE9DDA321E0FFB1D37EA93BFB7CC8D350DEAED7EDE77E2733A2C6DD4BA5F637FC881E12E27210ED505726DB1187F4CDFAD27DAEE2B550900D90A00E45D8789AD98C4B8AB9E702B21528B89F845CA961EC2BBE49A966A4B51E2F343AB25BFBE57A8FAB19D5C5EDBC9BCAEDDAD7E031049F0F7140713B331E60D80D84FBD7DBBFFFF4EB047F6039C56826CDDA24A3CC9311A6B7F72867308D80F01F1FF0140E60754ACDC25B50000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (87,1,'Rack_42_(64)',0x89504E470D0A1A0A0000000D4948445200000044000000DD0806000000027AD4390000000473424954080808087C0864880000000970485973000006B9000006B90185FA08600000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000020494944415478DACD9DCBAF244756C62BEB56DD7EF7ED97ED76F778DC8CDD5E804642462084108BD9586C6681905723849100A1D9F11720B1648158031B969660818457AC90062C4B0819B5B0842DCBED76BBBBDD2F77BB9FF751C5F98AF8954EC58D888CBCB6B332A554DE5B95951971E29C2FCE2B4E34F3F97CF45D1C8D1DA31E8FF977D5F0B81FDFE6B946838D0B172EFCC6EEEEEECFF7F6F67ED99E75BBE237A3F1783C827EBAFABFF55DFCB9BF7F6363636297CB76FDB7E974FAD757AE5CF9CFB511E4F2E5CB871E3D7AF4BBF69B3F9BCD663F36426C3D7BF6ECF0F3E7CFC7F67F0D015708125FE3BF53DF711A3146870E1D9AD9F5B911E7813DFE7FECFC9B37DE78E35FDE7DF7DDBDEF852067CF9E3D692FFC9935E68FACC3AFDA79C208B0698468FCC8F9912D7532BEA70B71ACD3FBFEE6EA38489DD9B63E3DB2F39AB5F3EFEDF37F78FFFDF71F5613E4D2A54BA7F8C71E70C61EF0A7F682DFB7079EB3F3A889C224377A318BA7B82016875AC2A4DE2702E8B3C964B2E4143E4BFD666767676403B86B7D786A7DBB6DFFFFE337DF7CF37777EFDEFD4AEFB7E7CC3EFEF8E31562A9B3F769F4D1A347BFBC78F1E27963C5B138470F9428D8C346F6D0C5A9BFF95F57DD13BEBB6ECFF967FB9D7EDB389C9DA7B023268E3A96C09126FC3F0FF7482E0F5B27DFB6CF8E4A6C748A40A953DF1D3B766C62D71376FF096BEB9FDFBA75EB8FED99A7F45CEBDB557BDEA51582C0763A8E1C39F2F8ADB7DE1A3F7DFA5494CD9E7C6F7832DADEDE86480FEC657FA567AABF8110FE3C904847E7AEB5F19475F2A7D6EEA3EAF4E1C387D5EEC5D50672D11708B2B9B9B9FC5C57FB7FE3C30F3F7CE6C52F3E26F1C8E430459FABE38F1F3F5E10439C011BEB306ADF0FC4D80C8DD768EE85EBE80044810822EE46B88AFB26C68DBB5E94C4A1B4475C417B5357B5D7F7394910CFC6FED08BC4050F1F3E1CD94CB2101F519A8688407A11A71DD3D0F85120C6DC5D670724068D1A874960124F06EA0322A2368B8375551BC525FE5E7027A736ED23881E76FBF6EDC55554D7F7A74F9F5E11154FF1A813E3708508BBE19C1D802063F73C44B0095C0257EE6B0B622442A85FE2680DA644FBE4C993ED04D103384CD6369F3C79B220C08913275670A3244AE1BBADD0E09113112F365D093273E232F39C639D9A7AA2B8362CDB04968021E21E11C688312EBD78E291DF4460FBCC99330B0224C461F9323542DCA317E8BE208FCFDC888E1C11F63A826BE3B881E7CC9DDED4D8FBF7D459DA22F1883925C60EF5D36651B573E6FB9C15190032458440AC059E885822840EB125C4B1FBB7A319211EED5A704D3D63F9B90E7BD74C44D0A8D3768984D76273C0EAFB9B04552F32FE06FD5898F1F5D75F2F3946ECC74B99691C01E38EA48660DE4214CF1D9E4BC611D026B143A73A4CBB4434B55522E339259E3C922213CEF19D3B77164004C54F9D3AB5A27F78DCC800ABBF7A51995512A449DCE789B3F2EEF8CACC22224008D34EBDAAD0E4B8638543C24DCDF1E3C7A5DDAD006A89088EF2E7329C31CF2869F316EC1827EE5B6088BD6B13F1CE89067F4B7C0056D4FC563D844360A51F4284F8E11E4F8423A8F64167B95320C6CC71488920A38496BBEFB0776E33CA1E58531380BF061B68EEFB5CD4549931E207EA859A8E75A2A089F2BA9F4665F062DE416C9A0CC7A408A399663918DE986B03D62A4D952FBD58884BEEDFBFBF0454BD40D31680CA549750D272844871C9A84094262260560FF2C0AA767A6015D1F43F78E2CD8D56D5DD7E30BD71E3C6D22E906627F9034BF479A941D1E8C75C31ABE09079813BE6B9F7968055570DA8CC8F40AC71ABEAEE4466F7FCF9F30BB1F06A7A4E3B8DA6B27305919915C03535C3CC4A44B1B64E990C4AC04ABF9CB53BB2019F558B8CFD3DCFD8294B0248543425EB74800AA8B671CA2CFA3C89990962ACDC6FEFDAD6BB65F67B608D6D9B787AC6A2AF1699F8065E84EF839945AC87865A12EFC2743BAF50CE92F7495175B3CD0A27E0A2C08E1167C4048ADD9155E6BF3A2A0D550A1A7822DD44F7A2A0157CB1A5CED6388DAA3E4F71019D459C007F7DCFACC32C536BFE6F0A54758800E8249E0829C52C7CD614D4F47D671C57710D9C57E04D1158110DB45511487D90985781AA73D06E0B54FDAC9251D157803570D699BE825468AAB18255F29201AC26FAB3A2C878E30E17628908A2B29F8283B356AC79B72F820854BD47CC0F500A58537E92564D3587BAEAB800552223C0F2D6A3F799F47DC40E22FF391AABD756BD8A5054DDE39886282F25865985E94D0F0147C425EB2244494418545C016ABBDAAC2BFA08AA7DABC804826CDEBB776FC186F851BDC59BD351C2EF0FF54508C594DB740EB0C38727E40610A8FA3EEFC327C029506EFBDCB973CBF93B339BACE828CE0B35ED933BBC395F52E3BDA52BD7865C88BECF6D22D39454F4101A5C8812A0863B40F1D41E45654FEDD0E813904A399C7322552D32B1C54B600A054D9F01A871B4BF4F3C893B0A21683F812B75DCCF42806A4964566619FBBB51E7F1A3EA211A05009500D0BA0851431C38C0FB57B1B79861BAF84326210D62253095D34E3DD5FB56CCBC63AAA473E04214A7882868AA55C69DFD78474EA01A22E8E14C672EB6DB9B6246676360CD6108D3AEFD76566DCBE46E42D91198129C623E7781A25E65076B1B632ED6B273DC5315DB8DF33278A1F08494073D90C0B10B4E0D023B005234533858ED4641E3DE4EFE10E1AAE23298CD7A81DC88E009AAFA508E128678D5DD03EBD6D656D3C5FC9FDB0F96065C1B11BC46A814ACBE0861A3BEE99D422560853002565D09435445FF9573550AF3F112D2AA685470C2DCE98B200ACA6363915295224E4C2870AF68EDC639A329F31F372279165E0EE3D9A64F71D1A0D01E8035362B7244C9C5936207D14AA09BCC21F004476E2169A677FCF004885D0168AC6A7BEC66AC721019C537953D84DAABA419CD2C298B3717E3ED9B28250C614A16A11858B3E2C7550E2251CB80675B1661CEECCFC54E43F24AAFA08A88948095F6AA8F6424DA6FEAE33231A0E6F024C68DE099EF1554F54E40559DA51F35C0DA292E93D2F488E4A1A0F99159178EA08C91CD847F35E7174E69AA3591BBA5862740C5998CE78946A438A8EF59264520B8D7FB52313300D6EAFC107D69D4DE54C45F3F1296E821A940778633367A7421366DA2E1815527FE55EB5BBDB56B96EE36D1B95CA03B618A63E39CECD1FC9FC82AC7995C9A6D7CF832F85697D66E510F819A6D2C49B2BF770384FCCF3ECDFF1D5C88CC20412DCFCE3A71C24C676BD707A6C81C0A0E9615056EDDB8417A970F409580B553AE3B694972D77B3F2AF9EDF845866AE9A2AD7A60455B45B4BCA6DA6AED0A544508CDEF04884BA9DD51E4FD508F18B25163CC79A732C9BD9D32888E1D3BB62DF33F91949B24042F0BFF4F7B9C655694B29AD80C7A0AA05A2532A560B737FBF140B1DA2A80EAA31E41754F53282106A56EE86F38A1E43C6A7521C6F18D48455E3A8AFC82210FAAEB8EF1AACD12051F7E8835E99268ED2348642E37F2A1EA140148C7F453EC1088D006ACD85A9E68EA4BACB32445C677CC88B0A11F8123A9D4EE8CF5A9F36C9FD6AE66BE9C132815BC722B3D925AEE12B0FD889B1CEEC681EE122190C7802FF7FAB476C5056AABC0B516580398CE4B5C3E29B17ECAFBE441D52F5B35D1EA55867CA6B2B8A51658DBC47D12CB9F0F7413CAD42CA2CF8897C676C03A5D005C09A4A1B19680B524322B04B1CE4F64ED0AB535FA4C6BFEA5B5E2B40EDF6A0E587DC2F1C8ADE8CC12C4B902F7522B304B5E348D4470CDF5EA42948890A35213F4C62762449A1771314AAF9CB7A5617A40455EC38A895E5D883231821F7819848A8993D358E38CC5156297CA5C783C418CBC12E70356EB38E060BC78A43DA42C72DFEE529F27317B4139890C663FA9D15E26871086883B8A7F9529389E003ACD3281E20B17A2282E71F00B8652D1FEA168AD392E10F7BADA04C4A99B6A8298A2B3EDD33173A9DDDEB1CC92727B71EFA0DAA6C6C7C0EA15B32A82B48D3AE2E48D3C0C40234CAFA01A1CC68BE8A23819ECA8F1935413C43ADBA4AC49710A2B30D102D1523DD0AEC3D2C579A5B6107A2587358E1D75C610FE16385127043914A6902B120795D78D1FB4854C00FDEF6D9C2E9A75ACA94E959289470A40AD09492833B0478FD938D7490FAC9409024362506D55DD8DD576BCE95F52CCFC229DC09E47FA240833A00F49966233225028DE30AF2248891D53FE054688954A4698073D62C72E7508A48CB19C161129CD369D44267502A868A439AFD4BA0EB54B0A24E2216065BD6E0E3FAA8D3BFC9394A9F179A094E81ABA62860B004DD507B74B9A76D2B813A88ACA924FE6F6D4D2D594A1672FED2DB66BEFCA2E64F67F7B0796BBAF297ACC3CDB0B5451B4526C16832A89BCC1DE79D623862C4AEEB0D2CB836A5BD05B885A6DDCB5B1A3F7811009C3A3668DDBEE514466CC846A8B40551CCDFA993675BEB362E6FD96EAB45F8189F7699D1A6A7C801B88BB725B00D6D4945C1D86B0076E507889E00FCB2A6A329A8760E9AAAD5E8742C17451C9A65A0FF10B86FC2ACC5263F05A4DA7D35EAD5D7534CE5549E11EDCEC736DAB45C6A8B8E757219588C05A37FDAF69DA7EDBABB52B31C1758833BC4D9D0F449A77C290522AA65BD6BEC417D6CFA456727EDF96AE1432AFAD0A3FBCA55B8ACD740655A2FA3E1533F6490EC9E205373450721E11B8F26B683AABEED6F9A9D23189CE51C92EB5F070C8EB66184CC488FC33AF98E50833F6FE0DADB9932D40324A9B8A8E7AACD1E81B54F54E66909268E03C72E03BCF8520F6D9326DB118A73A2FD324344D0B546DEEEFDD85A83648E740346A2CDC1C4E2655771FDB8D4195D90505082D3516A73E0F2C711143DC225F0ED8E115AF98189DE2323EC641BD654F9838276328D62EB30ED900700E1901B5F8B7421023C0A640D507A6FC1AFF2111A1CDE6F2FE553C7BA11FF5711923C2B6AFB45BE1475DD6F8B1DFF696416418B68CCBA0AD968C38BFC6D7BB100F64EDA60C22000CBB41006784ECB5E48EDE89339CF083CFC4CE05BD0FAC9879008A1F00A0FAE26EEB1213E10679EF220CFE559F49949B79AA3804372280EAD7C2B445CED78D216AB3D2D2251EA8F3BE7457B54FD58DFC9410215A6AA9F0928FF1DA6F0EF7D5F938B53B27263E833214A8EE06AA46C56575885CE1254F040CA990D4BBD12747E03EC441D4E61D734EAD8305BB739F61F61357652D9EC9EFE33E7DAAC46558FD15CC87D614AB6A7F48AE8C8ED752319CC09821B811D53EE94E6A0FC04A6C264ED1ACF1AD4EA22F1B6610D4F2546DA2A12A663E8B48622CF11771FCACD306AA2BD6AE116342E125F0A166FE0EEA716F2577A49839CD330BAC6C9C81587B50CD894E9C96B943C4BFA4F7A39C913813B8A9D7923B6A17254DE31CDA12B002AA55D66E9BF2425893D556E4B20A578C4B7A9521700CA0572A1801EFDCA2801C5656F95463EB96FC0A7CA9437223AA5DCA6B2167556E00ACDD5241FC5682582737D0417C700AE20C291E53B2B92808891B00E2844A114D173D64CE0A4CB4D4DC4BBD5E12F66FE9D585A8190407516EF4C116EF271975C942D402BD9262E68980A6A8976944ECEF5E5D881874220C350B52E90E296F59176BB74911C1AF67D3EC22AAFB9DCED661F0211A68AC9A7104ACA80B05609D77C1906C401B11F2F832A44303A35AB02C2612B0521FC0AFB6EAA4BA1B01A6C8A55F019DDA076A68F119DF0F764BA2E88A4095D08A12F6AA096294DCA19A7E6A7B92B801A23CB19175C46548D6C9B910BD7F87A0FCECFF7D88655B26979496F3A3927741595F8D84D90CBDC765C4C1120B8A4446A953ADB199560E29558A6145128A995FE0BCAE439CA101A17DDA814D5E32FCABB5CB584BD6EEF24584FFFC6700EA10AD5D751EDCC00D2060F56E80D24AEFA4C81811A66087AF535AA3F2F6E931CB6D871D05EE177E12D4799CCF239779991519974CB743DDA1B69A4324CD08C103D0F55A7247A00AF8FBACC99C31C73D806A9620256B37958A89AA4EF115B1A90E63D15E4BEEA090A92DDA7A0E7DC3AFFCCA59EF07B6763DA022428C486E8BA6BE0FAA00E37816B08A6BE3C4DE54FF5AB310BD46EA9755F88CE01C470DE1602F2AF2CF04AAC20E4A8C768ECB5867A7ECFAE553A84A861E8EA375A476E7AC71AEBE14BBF495100F1E77B17677F4A25C0A551CDFA536585088D692DA8DE3CAA790A6AE94175316F4813399FD677EFB67FD4DE69073E3AD25B51BEC502D7AFCBC298DB5366230C9A16F5C78894436CC7E227B43387003886385199A75241E714599CED6AEB6A8F72B3079009FAD337DAACBACF3E0C183C5A08973441C5C886C905AADBA879D4A1794AD51D17D8CB7CF84194AEEE4D231E23D3E3590F849AA44C6E1C45E4DD56ECC7EC92CD9CC46C0DE126664ED4A842940A7F6A8E329A52CF693B495CB98D464D8C4795A7AB9E67B81AAAFCCD0B7CEC1B4CB0A6F29656C75DF169BA952DD536CE7CD7E0FAA434A9C515B841B1873C20D9D6CA91D13A75A75B71B2744F5FDFCED97610C35D8ED0792B083385A808A7F35C4AA3B29667BB05C9B76CAE76411AFC38588D3BB64CC6180E25FB569B993D77DDE460466154212121F8D48DFEB6524BA6A87F40EE232C2B4B6E5EF9DC2102522782D55F24AB184756289B774D53E52BBF1AF7605D4A4B51B138250840F4EC55EEE211C6ADFDDBB77173E56E18582566412C51A6A97357713B454D038AE11327450C5FF0B6E8820DE0DD0A9E48EC433675667C06DB938671DA0AA238E24A6461F2330CC3AF36F65EDC65C81D9AF2B81EE5084602D257748EDD6DF7E495CCE19D435D89D742CFBED9E31FB4B9B9CF7A990B131A10E718DDC00A4749480B5CADAF59A1C11FF941F75A8F841550B0D1EAABCCF43ABC9428C43995336016FAB1392989AFBACDA3DCE55EEF7F5889466254E469D0FA18B7117E36EC7175F6AABD81D762725B0D567D5EEC6A776B3B9580E58BD3A6FBF9B1D68CD5D8A08ACC0240B510A1A0D3116EDBD6A370E6EEF0002E473EA7CA75A88190FF7F2659251293EB8ECD65918D2EB1C1A181449E91C02D6D236DA9D6619A807A8925FE1170C0DD9D215710056E18634567258DA725E52D6EED427A779474B45D5EEADBE3A2EBCC24753F2E5109A1071A4CE8B409DCC7FC54CE3756BB9D46E21B728EFB65879D2A3FEB1CBAE48D4632437B594D62D1DCA7E333BB062164D754B1FA64E767E5FCED7D3E94E8FA231F77119718044035F4EBC0F5F97DAAFFBD232E35A437E0755012A8BFE30BB87127AF06E006DC42EC50C02A58CD35A0C197B2D95A4360830E44077EC06D08C289192B6AA59C755206FBA04AA1ABFA9704E438D6B98053762EF2577BCFF37D74E8935055F584C54ADBA6BFBF8D2EA4BBE634D3D801AE232BD5ABBA1FEE2D2FA2609B0B4942CA80DDDE2322922C47E54515DB59BD7A998893328B913360B1ABDF8E28B4BFF6A0958ABD332FDCD3E7D4A07FB56E5767A5FB742C636303AA4CA8B38CC8A642874CE424431A3929D8FF8C775CC86EC42D480DDBA756BA92BBDF0C20B0BFC08FEE17A6B570A0FB9ED2535D7E78CAC332EE39260B29CA3BEC80DC07212D357EAB310DB0007630FB48683C4AAEB70216A20D416F24048E029AD97E914CACC8522485FD25540268A8B08EB161BBFA28A64192965FADB57C7C9CD3AAD5988A96DE2B176D91A815598430C3D68E6D3298288300256321662602D82AAB7229961200495EC2A3869EDA9DD7E607D7AA6C40AE773276BD73ABE9372D5E770C5D72F1D4A6A774AE7D0C0B2DA6A6B6B6BF6ADC210B11851C855D4970811605E676AB72C5D1432E94B3915E120EB76F7E5A3E2772099571E296AAE0ED1D225512607ACD50449ED2EC4BAD77859FB500FB5F5F6EDDB8BBF51C8743239909A5E9D854828C113224E64CBA54B18117BABFCBFA12D5183555EF0AA2D1532FCABC185D8E4B6C2DCA7A90A547385556222B04B47EEC1DFB7EDE2574A79B1C9E1062E4603D58359BB29359DD54914C3F7598806AA4F7BF4A9AE94DC11D04B29A3D407EBF00E52CBAC98850811BC1F952C61149D751FACB5C3D2D574FCF2CB2F2F172242384FA02EAA7B4358412CC9CB489F1A921F3577C0B9941695B68A7FB5263B3BD65437887641809AFCF6B040E7548FA03A150794B89489E1CE9D3B841F16FACAA84B1D337BC16E699E8E03DDACAD09BB8B7CD3A3982CDC1424CAF89CF61CB0620D77CA20CACD286C1C2AE0D2FC4EA03B8ACBF4B654423DF2338BB845315D322505AA7CD76537E6A2EA8E28A0A4A9F3220216EF902A4460AB30EB48DF1076A8FD24F77672213A4FD40639A93E5DC9D7351B7A06A2DA2DE2509348B8216D559344087B365D62BBF3D8EC6FF552875280EB2EB993C33C71F4CD9B3797FE559B96E75D08322B59BB2868AC950150C53DEB2EB9A341244B2867E1C635A5AB3024B790590A8FD84E9C23764466D7197AF025773448F2929112466DE9039BFFF14DA23A8926E20A1101401D8AE9EF0F4F1C71AF3C64286439F16FB5768DBA539272297715175E1A3AA8E206106EC8BF2A9112E79C3F7F9E64E3FA2DAAED413B4C53A555D39E8B40EF7595DCC9B5D53B9FB1BF02E67C7B6BD7DF0390F9DCB3B071E75A52BBD96D0D434E5CDDB6D6AE544DA768EDFA1598E2041143D416A00E61CD1DC627B39FCC09890669A37E41516AC176D5964C7E0526A9DD426CA9C3E0C91031446D521BF1858873A4AD322DFB5489EA69D7586FCA6A2432876A0B2FD9084D7AEC7FD3768344E7FAF5EBCB8588B8018C60F59AAA1161C7EF5856AA89E89D47C11F7BBC47F37F1197F10B134A224C9A95C4CBC47F4E4AF881ACDD78AD8C8840221B99CDC185F8755F04F171192C5D0626B674BF536B97CC21BD5484100104A8AC4F198AA5EB2BEF8A38120F56A0C7059BBAEE0DD1F87ACB6249806A48F9ED85E978211A3AD57E6520BEF2CA2B8B41F5A255ADBA0B54C91CF2F9A86D0F093E93DE3044B15D4297A55987F532C465A4B11A77D797CB00546BEA2D4B84704487DFF499C93C1317B34D350A62296359845154CFDA3C8F37FACA6AAA25351D3FAA4E4C6D6F511AA83EEF9320E844B8234894D18CE2D7F1E482DE555988F19A345F78491496B1C4B6034352C834387E574479C8C85CD60410D724AA36EEB4968D683F0B8678D9908253A543EDBC71E3C672D6912A2F5700557310ADDA5A880D8E975C7E7B6A6A0E2EC4B305ADD29FCBDFB5DCB7EF37DEDA2547A58473E20CC565344B92F73E0A7199AA50A65170AFA654068086791D5657DF4B74ECBB54D51B6FEDB2D930016F71718A83BD7888E3DB762898D498FC0097D465127945754F3CA177057734159D2EFE86CAE27106A2C05E1E76EA11A97D29FF6AA75A885EDFC085287190F8084CA5F0542A67BE23DF9620A3C46F9B941348276E808B172F52E97FC547C2F2972AF3DF3A3FF1FB5C5378E980667FAA735200E6EE4CDD3F6E214C2737802C5C650310F6B441ADB7768521E4A4E6F6C14C6D751F82DDE74283E71942E89CB97BE605028E4BC490EFB726B5DBCF3AB2C18222372F9526DB5772A7AD901BE9D4DEF48E52BB3D0136C2390B573AD546900DF78C71CC19CA74D2A069307C6A3735437283A8F6FAA2F79DAD5D0798CB4A71A476679C46B19C7BC28C3A10649C218AFFFD3E4BD7D55D5E888C4F3FAF89C91409420E9746410F97968A82D6E24FF58490176DCF7566DE8120FC7E2343947D3A870F78CB0D70E9D2A56535BE78B55595B56BD49DA2F242E10300AAE78A49E8F85E04A8A30C41529C350967B56EA301F379EFD254A5B16AD6BC79F3667D16A25171075F6A1CE94A1144D427133168AADCA48E4C0376F07F6E7619B5CC369B8E388BDFB39B2A49FD6D268506F68B2FBE80EBE725D1891710158940D68EDFF88F007300D599EBF0D87566E688336A214A0CAE13478CC5F353BBA95272479D4F2DA7ADC592492A2735E602114053965E2839A51A430CE612E56856680AB23F2F80F238BA428C3D9549CE59BA220E89322C1789B78DECBCBD2CBA05802A8A6B56F10A5A220421597DD154E7DF53E92F3F1BA89E6B05576467ABA0AA37417710410E5B2793D56CE280B77C24ECE18DADD3892046E105A8AAF32244AA905BA4D9EE989AFCC488D71807BD668DFD8B5CC8B065894BD6B6F09FB118C108B26D6D7D6A53FF8681FF664A81945A20850CB17AE9A59746172E5CD0674D759EAA5171A72DBF3D18520F6C469A9F3A75EAC89616A0041B88F0844FB48F5F5EEA74DCF9D863C7366DC6899B145ABA75EBD61323CAAEB57D62037834E54624CD2AD46C3CF816D551FED923EBFBAEB1E0F8873FFCE116FB40914544853C5F10BF2DFE5BE29AF83B160B91698823EBF2E5CB47F5B7D95DB3AB57AF3E0C96F811ED1D9C731D76D654F991D0DCCEC7C672CDABAFBE7ADC466642FE19D31DEBEF7DF115583B1721AB119FDCEFC83AC00F43D6B506EACD37DF3C29827DF6D967CF4C3466F2B09BE86F967CABAD1CA2913610BDAF04BC175E7861F3B5D75E3BCDEA2959BF741EB9250F3E761F74F58B76250C44C5C0A3A84A701B1E7EFDF5D717F75CB972455EB3AFAD5F5A4F78AC8D431AD3E26E3A75FD999D67CF9C3973CFEC826F40FB3032E7EC4167B5D8306405DCB3CFEE19E6FCC8AEE3B0A186427A8F13EC1EAA87CF9B026E94BEE3FFB175FC34F71A373CB5CF1E87A09A0A6C6B4AD6760E2755D9CB55FBBCFAF9E79F9FF8EAABAF8E19619E18114F87475E35625D5A7947DBE8BCF3CE3B873FFAE8A3BFFDF8E38F7F268F94023EA172ED3FBDF7DE7B7F6972FC87F68CDFB25B6FD9485DB5EBBD707E2F312A1BB05FB5EBAFD8F9A5BDEF53BB2AA6ACF57EBB368BFCC0DAF627D6C9D3C6D90B826A76B97BF7EE9689CE33BBBFB1011CA3AD9A682D92A25744A6F4F6B7DF7E7BF3830F3EF88581D59B62453969F1251870BD69975FB3177C224A8767ED76D437BA1E33EBD47FD9F5BF83D2B61BEC24852C7F72FBF6ED9F5A7B36A47FF8C306F2E4FBEFBFFFB0D610CB1ED7AE5DFB0311036BF2934F3E59E04830BD5FB2CB71E7EFD876AAFBF779EA1D128DE710439C6E84F8751143FFC8D36E5CBDC4B6EBD7AFFFDCB8E5949D9B6D04991480ABB129ED27F1E7AABA2035DED4F7EB4389C51877BC62B3CA0F62AD558367B831B3C113217FC7CE4FAC5B5F4AE53251D9AEE2900080F2B29C35D0BA9A72C919D72805FC83A110C438E09A89C9CDF873718A11E353FBFE96E866E76F06C2BC9EE398892784261A3B55CAF6553B7F64A0F385BDE8813D7859B4CDE6FBC746DD5FD877D79C25BBD643AE4F03D32B866FE75106B516CA3EFB5F6BFBBF06D15676DE095928760A64EE048E11A73F85631A5F4C0542D8B9157E78C4C4E34D9B497EDBA6AB5FB2173EB029EBDF0DB16F044013CA7F930B0F7431E2BE837BCF1A78BE6558F763953235EEFED46697FFC0A166E747017B96D10B898E9DDAD34213C37511C513E46820C4E1C8210CE71C0D4E1F3DFC5900B5592144D0643E1B557E7E907B8F066EA00F3BA1AD8F22623411619E068EB9E541F55998299A358CEE68005CB62BA5E4FF00FDF5693E9ACFE06D0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (88,1,'Rack_42_(96)',0x89504E470D0A1A0A0000000D4948445200000065000001480806000000493930930000000473424954080808087C0864880000000970485973000009FD000009FD017832FDCF0000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000033914944415478DAED5DEB8F5DD755BFE7DE3BF68CED49C663C7AFD8F1236E1E72402A6AA30AA10A095121A40A5141104408FA85F26FF0896F7CE5734591A0427CA8081F402D254A40346915A13E88DAE6A1C4F1636C8F63C7F6CC78EE3DACDFCDFEDDACD9DEFB9CFD38E39C736F8EB475DFE79EB3D75E6BFDD6DAEB519465D97B98472147AFA547F9B027C3730C1F26314E9F3EBDF789279E581A8FC78563421A27D6F2F2F203EF0D06830726BEDFEFE3BDBE5CE28D3610A7D8CDFF3F75EAD4AA10E0B746A3D1D7E5E517E5390872D3772D15049D3E6A4693C9DCF11DD7F7ECE78600D3F7700EF39D4579BE22E3239993FF16E2FD9D8C7F7AE38D37B63A4D949372C8A47F4DC68BF2F25921C6D2C6C6C6607373B3B87FFF7E531CB76368E2D88FF67743067EBB77EFDEDEE2E2E2581EC7F27A4BEEE74D39DDDFEFD9B3E75B3FF8C10FAEB49A288F3FFEF805B9E03F95A75F93F39CDCDEDEDE2344E88308F2BC7232AB26D55EE54D8F2A422ACE990EE198DE70382CE5B3B1BC1EC9BD7E20F7F7CFF2FA9BAFBDF6DAFF7E6A44918B191C3F7EFCCB4284AFCBC5FCB6FC6E552E6CB0B5B53590F77A18752BD4F7592C01AA263585989A107CEE228EFE7FCC9B4882B13C8E219245127C571EBF79E6CC997FFBF6B7BF3DDA15A2C8C99764C2FF402E0E9CF0BC7C6FBF8CBEFC713F65127D8F7A325D440DF92FDF77EC89B5FF5F7F0E6ED08F5544B107E610924124C45806A8744F88F44319DF120EFBC7975F7EF976145164F2FFC11633F207BF2B275EC69F51C6EAC9E34AD18FF673BEE630AF21D3AE5728F8D29AB0D2A74742B98EE7D7936CFF8779DC2BD707455F8030FC0D07BFAFCFC5D72424DFC3FD0A7126D203EFDDBE7D7BF3E2C58BFF21EF7FA8EEF5E6DB6FBFFD974E482C27F9239B288F3EFAE8B5175E786119CA19433866B212F89CEFD77DCEE77C948BBCF4D1471F7D451E71D77DB9C881260889A009147B2C2C2C78919D82DD7C1C1BA28C4489FFA65CD7DFC87B7B710E0C790FBAA4C7D718FA35E6CAF53E9FF3F7AFBEFA2AFEE7772C130D80C14B941D6C4DDC0EEEB057965EF918D42558295C157A4592AD95D25F12A2DCC1DCE16FB0C81401F42852895273F41541F038E63874E8D0C664426412712FA22F26D78D7BB339DEC5A99AABF01B0CC565A54B847A8D47175138A12E3155050CF01938E2EEDDBB13EE20A1708186536E1983756808D237933FE6CADD05C214156360FE731B5C0BA311D7496EC3F513CAF33EEC8559376CFD954C944097C4E411177DE7CE9DC9204780CB706390AB208E35410335F4C48F1D1CD388F7C4105F734BDF220EEEA7EFB0F4279C4362E05EC041449A1E51E966D114A2B890914B81E38244044179F5C426E991E5450F4D8842FD4102690E33CF078A4B7A0EF1356E98287A41F4D5B9FBD67BFD2A83D5D625B84F0CE88D7DFBF6F5080E7C8B379B28F60931F9EBEBEBBD5BB76E4D88820B7CE4914726BE25ADC86D02E0BB24A422AC5EA136314615DC522610A1A7FEA76FFDBF7EAFAFCD833A91A409447D8AB9C15CEEDFBF7F32F01D2DBE34D1928822272CAE5DBB36210408823F585C5C9C1081DC4042B8B8A9C6201D583078AC88A247D9B0822FD5734DE48204C1B0014D8858A2B82621A053214D386770C6562D7E2751EC2FC9C9F680FA62C14FF586CD0D3E62540104F99F056B25971EF1D5A4082B1CFF39B6C456612133E73D85F8E520CE0E1C3830D537D0ABB07D5CF31C4514A1F4E6638F3D3625460A0050AE88296C8683D2330165C5F029EF502F33A16FA138B3EFFA0D5634A1ACC3F08D1E20CCD2D2D2E43F630095932898C82A38ECB3DCC955605FAC102D5321F6E4F5ED8AC92B2DB15556102086834A0B7A6BDBA8D08B047E2C5C3F212CED15BE1783B65C622E89287CB41473255760B241044062EA18B030561CB9CCF618FB56AA877342095156B86ECA1A20B0E3371A31D110C441488CCF7D682B942855C419D641351797DCBB776F8236400CFA7E0802B4DBC523D60A87615735C1B108ACB09478E981BCFABFC1255EF4A56D162C38CC132401EE9590984ADE35B49F2C9A28F64E9D1649376FDEEC7DF8E18793E7B80028330C02005CA44FB459CF8B9AD55E7AB8A58C10574584C88BF61C68488CF9C302C4DCE03508A415BDB6E8A388E2DA580227DCB8716302EDF01AB0EFC8912313D1A61D8D1477750471ACD032401485E817DF241715EE9AA2E2BAA20E480997CD02E31AF60A08142DBE6CD9882FCBC916418C83070FF680C2341148801004E600060B2E191E419814885C27FE0ADBE7973AF07BD826DA6681AE15820C5CF35CA17FFA3D7BC8893660A3183857C90555888C488EFB3232162B0852058BC71E5B66ECB06B4A8FE8AB25282031DDEDDA291BC0FD4E9B05D265757575320DF61C07892F974E091149F66BEA170C426B9CCF3CBF1DB8B24BCB7B1C83C4CA401BE8016E112950E2BAB91742C2708B22CBA5D0EF87EBAC2AFC1C42105C2C5C31107784C46055DC54A0B82B2B14BC6FB58740DCD2321CCB10B1ABFD76DACEA29758EF1B55212E5BACD9602A693FA58A18584D50669097E00010010ACD07890359BE0CB0EC43157E6911277B4B80AE7AA22AB33F14ECC6CFDEE4B275051105601FB842C546EDD8FE4D54C065850FAC8E383E4EA9135F29F68F1712D3418B39A1CD6213247B930BCF31F980C4B04FC00D10474063B6833246D4392EA6AC1161E3866C96E0DFC7222ECD41788EB9C29C695BAE11D7BD40E2A52B57AE4CA87EEAD4A9C91FD5B9EB03895354ACD210D11543149B20BD44519865B360FB037838DA756F7FF9EEDDBBF74E9F3E7DC0DE458C85C75AC91BA5B812684B940D58F7452C3C96B99B4062C2D65CB4057186CDC0B5B5B5916DE1477B89631198ED61A68EA18D42C7A51CEB91C4E845E89410C2F4AA1C95728D25B77819CD1322D2426C96ECFD1497E154F59AEE7AE82110826E6E46B754E8945EC0A4E510A5CEBFE65D88B80FEEABD8EFD9303F8468D944A9E3165C14B73CCDCEDAD4B5409147C331722FA4EC8541E398F3A66E9A3DB050F50698368E6DB4E5E394ACFD14DB4B8C035C005401DB84FB0970D7030C108DD9BB9415AC5D36B0DA43771EA3B82664D553A1D31D83B9C1BDC344706D8665B9EEF517A1034004A007AC0A5C007C6120847650526FC4E89DC855DCE4D1C8FFB908C4D023BA9868B354A5794411454EB6F4EEBBEF4E5CCF478F1E9DBA18B4BBBECE1119EBC08B115FAEF4B78A9B7C6844B7438FB0B0AF5FBFBE0312276F72DD93E3DCB973077C622944EFD846A391BB877A2D3E307758E14D1C8C0103816EDFBE3DCADE4F89B547EC470647EB000CBC96735F6F3351900444D183E18A6C49191473A1FB29B5AEFBC09B99C851283C3AEA78437A57B2C5D9DA0FA04B2C221D38816BA703323625512BFA28A2F8BEE4E3168834C613D39D0DF4C108FBA6124F1FE6E1731B693F17171A457A68A07734247639245D9B57B04BE02DC605E177DCFAD481DD75A2AE2BC4097142D20189E81E13D7E6DC67B13925CB750F9B04B018C4C001F703B637B96F4251D53002EBCCA13DC424040804510EF3818A3E9B28460C2DBEF5D65B136507BB04690E29EEFA793A74AA1DC5190884058DC089EC4D2E99FC0D81C4CBBE348758FB4459B9AB5D80C4E4FE9CC138623C5EBC787194B49F928A8C7CFBF690B50CEE662CB1FCD78DB64362BA4B18D592EBC277A1AFC633B97C620ADC441F10F7AD6998A6C0C84F53C96B116DA77AC7A446641125160ED337064F31069187DEB366A47A97748D4B0CD136D1F616ED98D0E4D4465CF72E488C0B81E2826D8247A699610F5AEB1EEDB29F35C5AFE12D0D4A108792A02A5DA2B1FD144C3403BB31D9200273FAECC0EE5057CCAC4262EEC9C38CA092A772CFDA79E4A39C742F203188003472ECD8B11D06A2DE4D9CC523358E58DB2C380087313E761267BAEE85005B02891F70D7872A7E576506A36F5A0F8981BA88189BB259D6D6D6C64D6C722555ECB3F3ED75D8A7D90CEB0424A67DC1C206B98ED4E89D479751E372DFD7E9087214F7AEF5E7B4599AC0FCBB2DB6B09858810803360B157BAA68335C18EF25767DB94A2C31B01B488CB60903BB09916741EF706F88E9D8FAFE43EDAF64D7BDFEB2CF78A4BB1EB60903BBB192C0E6E4942AA2CE0200B0E789D1A32E6EC8268AEB4BF843100190182CCD44180C5D7922C6E8ECCAC48706E0317002F3483B4D43626D3C86BAB39C449193EE0124C6010220B09BEE0772C4BCBAEB636C16E3217642E268A2C809B74F9F3E3D654D57144B2C3C364866A5CD132BD7D86711B6260924C429B3F753507981A9C8A9F689DEA563E4A410F9769B8922F78BCAA953484C389C82B63481301DD94489F5126B271D03F4782E5697C36772A3A3B68B215C2750251E991815EBC6AF2A6E90449450FB843A0637C0C06EA38F76188F5DD62DBA5C21EE83614729DEEF28A2C4D418C1C4C3E106484CD73C7E8FF0CC58DDD345BF97CB08A684D048CB0789A31C92AE93680311112C40120CEC46228CAF18DBBC1C76D53B061C5294332A548BAF60A2B87488FCC9C27BEFBDD763E551C85546D757D5009B07777D9578622C31E388B1904D919D22DB750FF4858A13BA0E8BCF5D1F5A82CA444CEE6FB99778925E9793B5654362A2D8E8EC60075146348062E1B0559E707231B8511311B3DD72C55E32C8D097F798923D0C97BB2B903E8A282990983A88112C3C0F73204D9EF966DBF504E130C5366C16960449F572379234E4837CAE7D7BC262FA7DF4F92A52EC3A81BE68B3E03E088753F758B2F753AA0881150F58AC03BBD935C287C4BAAAF06D384CDDA0275947BC546D1527EFA7B8DCEEF414B3208EAEC3CBC089BA761DB30A89352CA6374017D37189AF68A2A8130CAF5EBD3AD9C0A233119E62978332C52F368B07ED125D0414443239F94523FB29301057565676C474B9EAD787D8272AB7635FD7217168E09D0EF476E99414DFD73644541311F65839389751FA65CB4552898964DE63139967A6C8439945945438CCE71A1213A1B15CAC40CC7B6D774032BF041C0338CCEDEE9C7A2D49C50D6CA2C4AC10E63B320284ACAAFD405DD32976540B6D161047EB8D1803327B3FC567A51361C04B8C156597C1606657DDE658170F5D5E5D97040975E337BAC9A503BBD9C486E509EDFDFA7982C3AE10231D89EF135F4144F1ECA70C5029812D9DC0BE200202BB43EBB0743DA225B61B04172B9353E909C090B92B9AD84F190081800876ABC0D4C00973DE85361323C7BF65DB2B84C45AA7641105B60FD31D72563D5999B0588EA5361305CD67609F71B537719880F13279932BB6EE97AB3CA1461CDCEC213ADBB76FDFAD962BF392B15A80C3D8D8B3BBC1A6A64924EFA7A48825DA26445EB607D9B65BBAA25374BF4A10C6B65962CC86A4EDE0BA869AB681850B656037D99CFBD4755D8ABA78E8B21F10471C2CC2164A98D03918BA3CBCAEFE29606B067633029DDD84D88A765620B1AB1F9786C274CCE2B58EC4E7A2F425A786CECDD05324A6805D82C19C462009BBC1A6CD15F3E82176392375DA373B7DC7CCC1D0F3E53D987C10816EE8944E7636FB76051237154BCCB864A0BA28A27856F2A676DB87E8085F1975B03294A4F97CB1ED9018B568088973CB8150C2206D2F466A0C037A68458921ED9434BD1DA79528C4F669758037213116131612111795748E2BBF099D120C87E980D4E50935247601802EE8092A72DDA18E9038D6931E1B533DACFBB28B20B8509DEB484F3103296641D1DBA540E8C667C9753CB29657C87D46EB943AEE0007E8069B2A2F7E8A327C5BC5B388B66C486C7BD553A170A54E61853740621082C6A1DD6033A593DD2C12C976E1EB823A3A14294B7CC9C916411496DC6BCA5D2FE71D760512C7666CD9E7E00EA509501C34A15336565757979B70D7730B1504960B6E75340BBDC414C775922002128F62B8A556A7A4DA27CCCD60BD6210F8C081039DF012B39C2FA40475464EBD169BB3EA88334C6D30697B8959FA8317AE37C6BAE825E6CE2183264020A0AE1448DC884EA9E316FABFC005445DBCD0AEE7397A38685A7B58871E71FBB74E942541E2109104021012B346A40EECD6F6C92C232EED6CA4CDC2DDD5BAADE42CD73DC50FE42B6031531C98AB515579229775BB68B3E828169D2F6AA3B82C9D02488C328590A7ACD81DEAAEAF796C750702DB3A8F1D9A10BAB5ADE8A37C482CEF6D1C3E7C7839B50E8B5D5086AC2D63A5ED9018D90534909B72E1CBF9464DB8EE938C433BEA1C8FD0458CCF5D5E5E5EEF022406C26246B49DFBD984C84BD62931CADA15B5C12816BD8FDF9583E9D680C5ECAD8561FBB9726AB644BBEEEBE0311108F7E7B50CD536CB2C28793BD09BA1478C5108B5579AD0290FBCC6E4430CB9EAB084AC845941609C076DB38414D469C475CF069BB04D183CC162D1B935C0BA0479EBD01681109ED36E7395A38A998BBEEB4772E2C5B5B5B5C91F21B01BFBF5769FF5941DCB593FEC3A0214F3682918431CA7F892936E1C3972645937D84C755CB2E284A9A9D8EA62D1A88C0748CCCCB35CD4C5CDC068489CEA900CC1E76C9AC68E3B02895B5D2C1A95F1709D5C448CC22198C9896A49D22931B0D8F79AAE06B23103BB43F626DAA44778DD20100803114E9BE561385C87317F606F79EA346E2D5375FB8A59405B003BEC53AF6D16DB35B3AB90D8C5253AB09B93AE8B76CE220273A12D3B39159C44D455E5C68FF212574D1ADDF5ACC3820317420725E5EDBC22308A68861E312ECC6554667B8901892F5FBEDC63A23FDDF5BE4E76F30A815D063689C15C5213859FEF2506243E76ECD8726860775D3B4136C7916B6B75976D406204B5735735279698BF353505468DEC3C66269C4EDD0ED439D04542945677D9062466976D44B530EAB329876AF6CE630A3174DF5CC24A4262B3D9D309AB1C0B08038B8B70D8844825A3CAC6BCC4A17558187E43984CA8DCB52816D7FD136DE2118A1C440281B8F8EA7C643EC9936DA7E8F27DF61E89ED809B6500C0986A46E2D3EAC7739F8738B652AB57A7684ED00D36E929061188C2BA5827B2292ED2C1EDBA2E7E55644BF2CEA34CFA5E54C6A3DB042CAB03BBED9E5BB1BAA7CB066455C9751D7A445BC540E27E1349435B478E1C09EAEB18420C4262796CBD9718A88BB5316375A286C30CCB32B1C465135EE23264E2AB82EF18D80D62E0062102E5025BEF25A68F0BF60A2B66D85E8B046E2B1BD9798C15433A180D4377B6D3DCD60565AE2131E030F272A02F5CC51B76C35619D671411571EC069BBA34A12B85A2CB9018620804222466BE7C6A344B3624D68615E5ADF6F37085CDBAEF8BA1BCB4FA610C739BBCCA85DF0851B4BB9EC1744CA76360372E2236B3ABCBE8CBB54019D9430F3121B1AB6E58B64E9113EEB976EDDAD4A1863F03FBBA7ACECF321C0E85C6BA4D14EBE2D3856FD0673F663E7C9CB26D0776DBD9BF3104510D2A1F6DF3C4C39ED0CD7B72FC6714EF267062DC84F81AC71664B30F7218068327E4623F6AB933728CC9C4350371316ABE0148BCFB995C75E144605DEA225D174C56E1A8ED224A67411371C166C13DE990DC14D415BD1D5C0587EB38459726243AEB926D5285B6D03719862F161BB80783F5F04393531B491AF24D3E9D70761420DD0AB30C8B5D360B20B1B659728DC65AA2E8FE29BAC1262D771221C6F5324BC88B8123900A8C6AE13E0B8DE946135185F20BEBEBEB3B72F9884A5CF926F31E40A1A35A187A844765B314C96E1645D5314B133651289A8565BAD05210364668826D1591A84FD9AAA309D7FD28A76507D997A56355CA40ABD1178B3A6341321B8D316F39B1C4B1FBFAB501DEB181132C27AE03BBC9DA62906E744199D3430C3184FD152C2C86E3A6EEB43616E01D63288210DA61D9543A411B08049D0AA405380C2F312B1DE56C85371ACD52D560932BC926C42CB8F0C9EDB0592096411C0C067A8788B8C62031E11F573E934E5D7558E6058531364CDB2CAC3199133051E7251E3265994460180DEBB0CC837D1263F933F488512D2CA86316703A24563F2A7460774C1D16DF0A3161AC9D682968C3FF18A465D797D419D459E24BD8F33EF74F52E030B98B06946A9CD689968250EA74BFEB3490544F4053D12C49088284306135D3866A78C42190B8132D059193C3AA4DD857E2FDE4A2C95D2B57687F4E370C5785AEC5D24478CEA74920100703F708380CA3120A9D7A24D68DDF8897D8B737ADCB27F13D9F3B66561C92445BB76EDD9A701089C4C4DB9022A08D5AF47A8F44DB27765BBD7981C42CA8C3CEA98C6A6140496E1AFCD0A31B06D00374D7D3FBC9C0EE79F41257F9B5384F78A40B9FC1135AA284CE4BDF05FD90A387137105D82595520861307BDBBBD7EDE81C94CA45200E17B539AF739EA3C4979C788B010FB985A219816EB8ABF5E50A0989E980CC85C4E63CE3C6032762B8834DC4C8CE402F50920612DF6D335118478C6B66339EC3870F4F1B2DD0284CF16B3556AE30841884C42C4F48BBA46B81DD2E024199B3A237D016AA394182106DC658FDC96E96D0BA2CBA572E81804EBD9B4548CC5220146FD867C12337C372167694F8D2B60957BD6E5CC3E089109C3E4BE80B8B8FA1472CB90E4E22DA0A49814FB1530A360ED015BBF9A7F39AE7E89A6870894E4EA51BDFF44A9E8AF86CD7BD4CFE1EBC26D6A67EA873C1D4E99E596F29A8438FD8DED6CC613F59A7280B7E136CE98AA38D411AD0396C036E88D2999682BE463EB1FE3313A6356E44A7C4840FD98400FB72B5404142FE9AC089CEB414A428829758B745CCAD90976DA7C440628A3AE63A62C4F4EE6A9BBE60F0076D2F70D0A14387A6251863A17E6389A821C4D0BB6D84C4BE5C96AE1EB8A71B376E4C3A64B0980E6C163CA788CA31C283748AEB3D5700372328BBD86033156DD1A8C402A4CD022E82A8F3B5B78DE614DF97E9AEB77BCEFBFACDCF93C7D8E622ECB1405C33F4084432E1AACD114564E822FEACAA0E4B2231FAB34C203BF448B9F0FB318471260D094136841D97ED3A2C29257119816E12331F69F3A462C702C5A2E9C1B03DC4B1688B6000697B8D6C0787AC7CD77798EB08190B820212B30A92C0CB9B5D80C4BC07C0611ACFBA9253AA3E6A0C12871087DD841896841BA032EC62E50986A762B00D3A832608971F0A24AE124F2E7704EB44E2917E320CBB62F72CC41193400CF4068120E670FF1A7DC6188D8D7889B91F6DC3645737A159465CB85734918358861207D282DDC27D169FC7BC11F1C5441FADEC7548914DA47984C31473E016DA2C4C4E65E85163E50A65052CE1CF7420412C013C1751745D94550DA64BE85E5E26EC28DD4BCCE772F27B42F103AE42D1B1DCC0786283D70FB61C12F7D95290522295DB755D7CB9EF71E33B8FB1174622E0A0F247B6B1DC70AB2BE389989EF44F613979B6416765BF871147EC254A9D91683F32E9945C41B4C29DCBAE1DF4028340DC8A78ECB1C7A6A92120524C1C7132248E2D9B4E488C8B2624661D165F45D62E1EB80F788731A063E9216635F2D8823A59E50A5DDCA19B6C32D7D12E4F38EB1DB689B6008B6954824858A0BEECE146731E7D7588ED64D47981C02EDF96ABA00E44B936191A210A2131D1930D8963B78AE7E1B00BEA808B20E20C81FAD93A8590D88E624939184F6CFAA774A2A5601341133AF408903846A278D157AABB9EDC65883085C4607391BDAD2F160D85CE45047D81FB62147D4C39905DD1293E8AFADCF58C7162A43AE0246EA48B817BE4121088AD798F1F3FBE63918578D71BDF0EAEB34F3424661D16C6DBCE4AB1688A217039068BE920AA85F55A68B33469400E633983C460C826E3A1AA1AA8CD920392FBF110D1D88F870EC22309E8B3591ADB7974952164488DCE8E9D37A4A50051EFFAF5EB3B9253B9CFE28B6AC981C48B84C42CDA19CBA2F3462457722A069ECB67FD6CD7BD88A40D516CCBBEC0EED0D714775D82C4764BC114BDA0DDF82668641CA553721A38FB5E83BB740364424AB9B8D64362DD52903107445C3ECB3E152627E9941882B0FC0703BBC1CA90B55D83C4764B4176AC43E72546E7A41895D93AC55500D9F53D4262AC2CE63AD28AED6260B7CF75820185CE0E442010AB946B0E6A8C2821BE2BFD397BE2127D1012375113BE0B4625BA65C066C142847718B161405EDCADF4EDB3C4106758D760D3AE14CA808A1077FD2C2330CC032C7E2C4A886D46B540D4B92A7364EB1459057BC1B27A675113A949569D9583A540A04BD95582FD876511F7B3758A9C645A71C217541753A690050FBA0089319184C455CEDAAA61DB2CAEC08920378B25A2825A0A564162AE1646509A567DEB6D87C48CE18265CE9A994DC71127250DA5108349A7B062B952A010F5CDC867AD976BF45F417CEBEA7858F184FA2971C4BBD6BDCEE59864834D269DC236E1BE7DD7D198AE8E87830D6E200118744731F750A3596C773D3882958918C1C250A259B04DAA0EDA616B6B6BD3CC6114D4C15CC4EC5426EF3CDAAC075666D5545D29CFD721741E7A3EEAE45446E2EB823AA941EF4EA288A25BB0B398E8B20F896299B7A816C686D16661BA04F49181CB45B6452F7F32322EE7AC0EDB1A8D1991D7FAF43A88A55CEF849D2E81C278318BD5E925468E9EAFEE61A87DC21AF0EC16615CD96D2FC256E25AD97A96F501585E3E152CD80573B21BA5C5A031E63AEAEC27B035FF433E6F3D1CB32B4D40044157E0603F98947AC40FAD0C886EB0C9382710812540BA5E828A880AF61638077EAD13274E4C88C5A2D8A162AE712FB17E5FD761C105EBF284AE266AB37260F2A127303007F0108383D8393534C3A09172855A59732751F753B13DC5F380C0B48718AE7CA02D108875F175C251633B8F80C43404097F19D55257367D1E3DC4BAA00E37C23020D64D59AAA289A4A192CDCE34724825806A8AB3DC76480CC59E2386ED22A02CA493ED6611F9B95DD51337C451C9AC2E46ED1B1F51ABBBD7B1CF09C41121B11D34E1321EAB86A9715326EB14FB0F6308416E605F2A168A0684E4770520B43ED78E451ACCF54E563AC254999E8DFB49F1EF359A885AD7D7910D36098971D164DFAEEB17DA2C48A2E596EF134F3C31013C0CA808DD89DDD5B2EA6CFEC51218761D969C9C8E2E382031B01881B6909CCA9ECAB45952CA7E04E9148F129C6EF4D0F5C0000A7BCB781E2A4D30AD0E1C842D641049A7786B53A1919D47F9A3218BDEE816E824C267C5A2771EE41226A7C2B00417519A08918A2682F10A164EF6C9C4D8D75D6E2918A32798CFC2E454A6493411CD729F1B5A2970583B288DEBBA732D0599FDCBD0A13AE2F8BA10818B0889B3928652DDF54C3A654E39410089DBE596820C9A205C8E85C3D9AEFBD013B0330F1B84D1B50D08D9751466B714A4AED0D13A31046A24C0BB4A4CD152D79D797460F7ACA12FBD3F44A31268EBE8D1A33B02481A2BAB1E4245DA250C9E60BEC9BC0476BB8CCAAB57AF4E240208041107B44523DA5163327F3B1875AF08874104F674E49EC13CBAEB636C168839A22EB3CD5164BB5986600BF5A776044B4A9A9D21EEDE364F301BF78470BE4F44E9823A409F20121679B64E118ED8AA0B9C0879CDC06E0C13CC376C3351609C312D5037554895008CC297F38D1ADB0E8E2506731DD9C4860A1040009F8BECBDD366A2B058340E16BD8128A2D58EFBC8D59F8D240DD51184B609D8146C8B5862B06E0A9E6F9B0392F703CE818E402910100B04C2FBA14D6E42177EA5F8AAA2326D138A24EE9B80107ADF7E960E88219602C1FD8340405C5888B467AA721F93207115E52896088959FAC3EE26342FC80BF7C9F2852C05824D309D9C5A15BC972CBEA0F088B618C1C2A06E3BCD2124936B96090402689B85C9A9D0ADDA66C9465F72C23DDA655F578725228062A65B0ADAC9A96C7083B59D4D1441209BC8BBA86B2758E7B864E01EF359E486DBDEFABC4068108DBEDCCA802C0592048973ED117D800870DA61A5E85056709AB0F5AD2E40625D6902F743173EEE25A689B34FC167E53C86BCA607153780CF70532002F6B2BBAA5F74A5092E348821480F234926903854CC3D949C47F66A0747E8069BAE826CB3E280C440882A1016441CA25A74F9933A31B72BD12C4627EC6887E40BEC9E650406918C3A2D189813B8F0018961B3702BC3959C1A332FDE9D4776D6262466E20F73E25DDC306F5E62DA2C84C5901C80C3B059586E9ECA3E7BE751F4C3227F4C48CC50A2984A130EC8D9768764749B727D60B1B27C2110276C160C11EF8D40E20D61C9659BC2B10E37465072DF5E6E787F9720715D25D5BAA0097291DCFBA8F19DC758773DCB89E386A077E85D15D6FEB04B90180462F681466339E22E9A535288A3313D9E8308F414CF0A24669D19E80A7200460E246EBC1F3DFB3AEA069B20840E9E98A54347E23329E8DCB973933960C44B55726A2390D8B36F3FCD87C7C4E342B05A6C77FD3C34704619100CCC070CCA63C78E4D6D369A0959C663D54472EFC46EB0E9ABC3326F9018F70FEF30FB78B1E4BA6E5CE04A388AE614BC16F9B9C8F7B5FBB9813A2CC5AC11468B29480FCC136031443B03BD45B40FB2758A88A50DB154975D76492C21744B4111812B6D9EE0265A0AEAB43A7251B497B82938AC03BB81C4986647B107592B37DCEACA78752D057382261ADB0E0E25080C43B666652B3E3828BBBA576FB7148412674B412C30001C86B0EE068186215D713C155975E9A409246684C72C85B1428FF2DE200558C8E0D4A95313C2914029FB2AD9E28BBB88DA526737A1AA50D65953EAB867C6864144031223F408D2829EF35DE9B2ADABE199AE0653DD40846173C4BCD622BE74E9D2649F058B15701891F8E02626E95675D588D22980C40C5BD54864D6E2B99A84C4901EB6CD02310702C9FB836CD73D20F1EAEAEAB2761DB8905668FF148A3D118187DA3CC128160DDB827B463909B7BA4F3D2031A3F0770512877C070460BE234B6940ECC9C55D6F3351502C9A2506EDA0899CEA78499038060EBB1E19D88D55464F31BDC55DD335BA7F0A17184410F4050EFAFC743062D3D5F186A9F609943F0D44C246B8EB536B97B4F5E0962EA27370CF3028018721967471EC4639253470C20EECC68560C580080402B35A024489B7692910CC070804480C09C1E454D74658A35E624262D828ACE283610776CF231CC63D33129FC57460F5C38D0F8EA208B4C14272B94242621D65EF4B3AFD2CEFF1139BE5F2E5CB130F319353D93955EC987C2F316289E1256687849432205AEC75A97F4A5D4BC150B0A093530189E992CA51F4658C3DE2AA3C818B0021B4B2940B6C7D4B41DA16208EEE8B5CA52F53638AA32CFAD0C064BB0E8BC9849D6E8B028D75ADE291EE9FC2386916E9E436B8AEF6B71BF64A728037F40DF03B2328194FDC45DBA46A0275A5092E3CF8B7181D89855727E61A8B66719D1862897BF62C20037FCFAC0676BB94394354311780C267CF9E9D108B5E735F3DE2C6EC14BB9B10DD258CD8B033BCE6E9808883779891F82C05024231EC4ADB2CD93AE5C081037B592B9291E4DA533C8F7D1DEBA408FBD4C395CFE45416015D5B5BEBC7CC9353A70827DC67EF945C488C63965A0A86A02F3B3955EEBBC46396F8420041ACE2B73D01402DAC8AD7B5968258404DB5143420A06C62E7313A3E0B37025703EB80D159D7D596822004BDDF10456CCFC12DF0DD82C33B744A1517F83AD9811B40085C3C8900B69D15DD8255CE3D79DC2F5B0A3EFEF8E3D3029E188C8F0B75DB27771AF2158A667E382E8A84D0FBF6B3AAEC698BB1E723ABE33DFDF4D39345C9045C9FB1DC282466D229B038D897176657EC9E37E485FB87031203901870F8E4C99313839A628EFB2C8DB8EE854D17F047CCDBA31B7A1E0CC41C9B856E7C7010F659B01906D146489C953424938FAE82DE76B3B1798FF3D652905C02FD0A298396826C5992EC6611428C73B981112C4463267FB0D545D8D05D1CD78A89D4AD10738226405CD8298DE89494CA1330BC8CB1344DFA0710E02137DB6A9731B7B9AB5A0AEAA0891845DE68226A5DD229CB1342CC41A662E76D5682F6744B412C34C07FC061DC37161CDE6708ABCBB277EDA5E4B8EEBD9B5C8C89A25B1B9C002547AB7D56BB6C43ACB1A520D33D60549E397366BA20358162254F88F82A94F29BC0611642A66DA2D1D82CB73BF74D30338471607E9039FCCC33CF4C9353D939350912BBBE2C7F32A4CB9E90D8AED8FD192CFEE40010B878F1E2046D4192C06641243E6C167C2622BD9FEDBA070AB103BBEB0041DD9F9A9682ADAE3801488C49CDF14C406AB0E723F7FA1BD129C21DA35C773DC51E88C19D4AF97EABB389B0186153612271CDAC9B99035C2061642EC6AA287A9E9B25061ED3410934A673EDA17F285BE5FDCD361345579AD0C1206C584D1753554ECFAE6572E9C69B759527C80D384000B02D12FF674199DB81DE2010143A0EDC2710574CA86E92EB5EAF7A1F31689B80CD09054104E663CC2A00801863A50956C73B7DFAF48458405A5555CB1BE1145779287004570FDDD4F3DA3F4557C7D381DEB05BF01903DF1B8D6611020C184EA47B6BE912209FF54FF9E49E19EFF6DE7BEF4D8C4A88B8F3E7CF4F380A3A687D7DBD9F2CBEECA636AE069BA9B2D214610B0DA82DD4A8D4790E83B7F08CDA83DEEC9C940EEEB330D09B7BFDD93B8F8866F185F087BAEB99EBA8FB777926276902138EA0FF616F469669C4C28CE90FAC071B170012130C35A25342ED13BC471000FD438CCEC20738565757EF3A56F5A7799038250D3FA22DEEB8425770B3AFAEFB431DC1A22CFA54F73D0EDA254C942124AE08EC2E725773CD798B041156B81C903A6882798F2014B3D862AAE345E9945817005DD820024BF7010EE231A360725121DA728812A5ABAAAE5B579A6007A213274E4C3EC3FD23F0CE571DAF292FF18E9341275024312800EE7A0D0432C5878F53CA0802B9446215A7248B4E1A950851651C31D01688E54B4ECD86C408DF64D22988C17E54AC4EEDEAB49D09878B0AF193C22955A2B06852A7C1648077180373C652200CF4365E8E225BA7C075CF4DACA602BB4DC0F86280D8E97926B28C145FBD40824CCFCDC4DB54CE87388728C302D65D886471177613A0682FB150760B94CEF112D35FC4E06EAC1AB9E981351121AB3B8420BD0042047108CBDD32C03D276882AE19B9EF07BCC459494331755958B0CC84D54C652F77E8C490BA5331897DF5582AA2956A4CFFCE4394D24184BE357CBA67DAF40C07F528AC73B647642468AAE5DFA8EBBEEA603B41BAEB410058B335FEB010F88A091C5B135E4678017C3AA51FC289AC6186FBE16283AEC07DB2A5200958E7BE8F268A8B9255628A690E6C4AC976824022818E497B8572920666B8947F2AA7900803F5180D225CD5F180B8E02506E1008743721F93DD2CBE42D1ECAB452F282E2433B0BBA8105D2EA2B81EEBD0574F1162A0463F4167396D16883828F30B172E4CE68791F839E874E849FA2958365DDB26580DBE3A2C81AD3A5C44E9AB553C36EF8D3C448925BAE69481C5957D8B384907832630A0CC21E2C041405E3E31974414D1117BD877BEAE0E4BCC0A302D054B87DC1F281135529319C221751CD3AFE194A968CC6D2908EE00DAC2E20550808883EF4CCED78F41714E9D2227DD1458B85C578725C436212CC6CDCA585493D057E285EF8DD5048E2D5D522670892D228766F4D5FF4FB9111282B58875E5F2D483FD530089ABB6D877C54BAC5F3378824618BDC4587DB2726E5B135C58DCD233C4187B444A0CA7EC90C896C2778208168BE6B603EC15DA582C725017E2EB0B94782801DEDA36C17E3588819B61746045039891A53F7A96922F1C4A3F87287D87FE2AAC736225EF48BED5ED3918AA8B203B2A7A2CB410076C32248E09F0D617096E604D7740E2BA1D3BC3C223CBFEB0E5FF5889169F6D5206724895FB5E1BA523B9B6D2B3A3398DC467C73A2C422404611ECC76EFD440DE75D7BD2E88C3A453FAC400FBE0848B6C774E457E5FC9F69E8300B61B26C7A5EF23A8D663DB660429735D1D8FC5D7E025C6A28492D7E91F36C724BB592896D8E9940D36194663EFDBD7AD006370DE97C713478E1CF9174C6A8E27C1B5A233CF072E59826F4E147C29F7174474569A2011305FA88C079B05F058C78665EB9483070F2E4234D16FE573D7D74D9CB0F75888BA0D5423CF073216E4FFCEFBB893316731C408FDDCF719DB08D230966B945BBD3F908984D21FC6DC33E60B112D089C806883DF0CF92C57AE5C1954A54904E91491911B32990762DCF57C0D62EEDFBF7F432E6A28D6EE18360F7729F93D3E67FEB97ECC99E018C2D1262141D8687465656501EFC962ECCB2A1F0BA14632A1854C78949F10F7C29E8F72EE510C473B754AA81F8CAF714342C34D210636C7C662302DB262B52606561D5E6345EA820078CE1132B13144A8220A33A049183D208A8E1F3FDE976BEECBCADF16026DCB221D09B1F65489B75DDD0E0E71D7C32892C9DF429C98D8207D91A70BB8214E3E078980C16C633CB7BF97E0AA49FE3E4373791D18CCC9D15C0431F4E4934F0EF15A08327CF7DD7737856B0632B645CF2E868AB75D75DD1BEADF958B5F10D1B47DE6CC9925B616E40DE23BAC71A28726845E459C80A60912F25B12863A1303D74A02C178C4E710CBB0F63FFFF9CFEFC5B93EF8E08381E88F2D0382FA75E22DC9755FC51D261E6A036C8BC03259398BC21560ED05DD5BD847000CAE3EBA5F7210530E71EADC421AFA6A82B1650963174E9E3C599C3D7B16A2ACF7F39FFF7CE2F3A2073D240D22399A4556C04864E9A65CE0E0E8D1A3C573CF3DB7971548755F475C2C1525F3CFF51F6B051E83B6EA569CFDDBAACF62F58DFD9C83F7CAFFC3DECAF3CF3F3F2194A0ACDE8F7FFCE3B128F711209CDCF73E9F9D52791D870E1D7AE0DBA2E4B6E4CF27EEFBA79F7E7A01F97B94C16471AD98ED1511238A5CF9F82108AB4A57F8CECFC9D40B429FC7775E9B485AE472AF89E20E03F3F3A31FFD68F4B39FFD6C04BB47E6A9101AD971AB57AE5DBB76CC27BEFECABAF83DF247E765C57F00FBE217BFF8C564D04D815A607200659D16FBE54B021757D831812E18B98877E4FD57E4F72BF29DDF90B142602037F08E9CE30E5D1BE67F8B9D73503CB08F6EDE2A5C56BDEBFB153B9D85B95FFDFB15B9E6551913F925138BA0ADCB7407E13AF11379C4356FCBFCEC95EF1E17D1B58F7B4E3407E4F39B72BF6FE29A4C6A3B6C94C3429CF7E5F93535D7DE82744996F557BFFAD5AFBDFFFEFB7F2B72F40864E8E73EF7B9E967D84390897FF9A5975EFA0B79F9945CDBAF098BFF3A58592EEC2DB9113A8960065FEDB5E33826D77C4488F19C3CBFB6B1B1F1965CEFC8B8612E612F8B2E99F3E7CF9F93C9FE7359E50761AD3FF5D453DAE88694F9E177BEF39D2FE45CCC30E6CBDFF8C637866FBCF1C637852D5F003CC47BD869B363A50414E0E6301E11A25F9795F2EF6022B34AB7637C4D0FE9B8228BE5A68CB794077BDBF8E8EE1B6EE95FB870E18F05717D5124C784A3E0F382B8D2FB4E4250C1414F0E7EF9CB5F26973CE9C77CF9273FF9C95FBFFEFAEB7F42824CEE46949BBCD7D3714D1057C2314FCAD303E6267163F033804BEEB58C20DCC3B967AEEFA6E1E2BB24088E679F7DF62B6FBEF9E697843BA6100D880BF7AE519B2CC84785285F10220E41C85D27CAA54B977EDFB5558A9522ABA7C7F2494294BE70D03315E72F5B3642FC5ABFEAF28443A90BB1A6C9B832178510EEF7204464EC4F214EF0975F7CF1C5F3376EDC78C2F73963BD4CE0F3F8EEDDBBADEEBF157388D1B824F773D0F739740B37C5DE79E71D9812589D17649C4B214EED978A8F8FA158B0F704595566CC4094BDF2CA2B5835D704087C302B449185B62552A072070FA20CF72EDFBBF9F6DB6F031C9C86D44B214EBF8E18F21498EFB1EF7FFFFB2BCBCBCB97EB6E00AE7A21CAF7746DE3AE1F7044CA82ACE57C415E6399A3FF14AE8292477EE7E114E20C5DC430CA199127CB40B9E6448765B25F9795F0A45C64E1DAC812CCFEA1A0ADEF898CFD3F73EE99C9E59669F9AFC5C5C5B322A2FA2EE35216E32D013BDFFDE94F7FFA5A6F670CC292419E9C4BF490B902E80D4021BF05C04025C2B1D34E310421310E1B62AC9AD74BF2F14939FE5074C67928347D61274E9CB82CC7BF8E3F4602382944DD5B1AC1F43EFD1CC79C63E1ECD9B37F76F1E2C55FB15DF7C78E1D13E9B5F69248072EC22D63DFDCEEEDDC7E1E99CF6EDBC431E80FC4296DA22C28CE386488B1D8FB243C67E5E3F93FF165B980B3429815E190FBC23DEF0B08785556D15D7501F8D3F77A9F04495459DA4D7DB69B9F63B59F3B7EFCF89764DDE1DE0FE2DE457A5C5E5F5FFF1F11597A6B71648872CD83EE6CE25C35DFBD2DF4B85F287F5561FE78C52246DF7251F4CDF7849B17970D3BF7CD9F6C190ED930A2ABACB9E1D8D70FE31CBECF28D61F85D41062EC178EC1EB05B3F036D5F84879017CD7C0A08D2DF37D1007456D366C4E811ED86311A3EEE26382E6768B3B723924E6335F66981D25137ADD9A387776704A8063AF353A7716708367014F74CAFF03B31060B8D0291A5B0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (89,1,'Rack_42_with_door_(128)',0x89504E470D0A1A0A0000000D49484452000000C7000001B80806000000F106F3660000000473424954080808087C086488000000097048597300000D3000000D30015856D5690000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A0000679D4944415478DAED7D698F5CD9795EDDEAE2BE35D76693C365C81969166B1947B66543816307360C250192D8800504F1C7F86BBE25F9010182F817E4933F184800430A9000121C688B6DC990359246234D2CCC68869CE13243CE70279B6BB32BE7B97D9FE2DBA7CF7ECFADAEBEF71EE2A28A55D5D57DCF39CF79DFE75D8BF1783C98B551A83168C918CFE204F7236C1FCED2DA5940B1198132EE41B2F9C768864031B7B8B8F8B9E170F81B2B2B2BDBC4A64A0287FA9EC9F3B9B939E3EBFAFF537EC6F2B9319F3F7CF8F045753F5F55B7F87F2B8CF420E925877B3CFFFCF3DB1F3D7AF4EB6AD37C596D9E7FA51E9F7FFAF4E9DCE3C78F87B9FE262988F85C7FACF35C7F0D80C0A37C1FAFEDDAB56BBC65CB9681BABF1BEA5EFF56DDDF578F1E3DFAB56F7DEB5B0FFB2DD8836370F6ECD97D6AE37F496D8E3F52D7EFAB8DB3B0BCBC5C28800CD5E93A78F2E4C9605A7F8BBE81E5657B3FE6B3B6CF6FDFBEBDBCB66DDB3656D740CDC37D059837D4E3FF1A8D467FF1E31FFFF86ABF253B008ED3A74F2FAACDFF7B6AE1FF58FD8EDF529B63AF0240A1800040946098F6A6D64FFD904D9DE3F752A2E8EF2B400C2051D43556CFF1E2133567EF28C07C43A96B7FF1FAEBAFFFBCDFA22D00C78913275E807AA4AE3F548BFF59F5BDDB0086070F1E1400825AF0A4CD157A92A76EEA3AC00B9518AECBF47905A671F5FA58CDDB874AE27E4B81E57FECDCB9F33BDFFDEE7797FB6D3BC3E0508B363C7EFCF83F523FFB1575FD33F5FFB3EA714E9D7A9008058080EF8DDD5CB68D1A23157C9BDAF49D29DF65FB7929252407D13F6BE227A6E7EAB0292F35B763BCA6E6F6969AE3EFABF9FD9A92365FFBDEF7BE77B7DFC61B088E175F7C71DBFDFBF77F0F60500BF4BBEAA5055891F0B37CACA37ED8FEEFDA84BAD528E4F7E69654BE7BC6DFC74B02C2049CD0030007102EA59E42AA00380F15587EAA9EFFEF3D7BF6FCF7BFFAABBFBAD06FEB4CE03875EAD41FE89B11434DF66975C18AF445B5F9F7EA3AB4EF548E0580E9355DFA8458A252553117C86280AD6F7AFC1FE65E1F4052259952B906E070306A548794C2CEF27BEAF56F5CBA74E92FD56BEF9C3F7FFE46BFD513C0A188F3D8B2D996D4B57D7E7E7E0E96152C642529CA0BA2DEF49CFFC7C50DEEFA3C9FF3113F02BF07812187945031665BDB67631E4D40958784FEFDD2FF817BE36B04049E4B358C9FD75FA7E4D1A5916E3AE6EBE077EA1ADFBA756B458163AE9AB75BEAE13DF5F89EE1F1F2850B17567A2818F6C9993367C6964D76E7D39FFEF4E8B77FFBB7775294579CA224D77894AFF33DFD35DB7BFCBF7C1DDFAB167845E9D2430906DF98A6AF2634B2859F53A7FA589DE20525082C54FA657A3DF535FEFF6B5FFBDA1DF57BF712D8729E783055CF1FA987F316E09CBF7CF9F2A3AE826364D2DB6337A39CEC98CD8BD701080083A7AB6B2163FFCE2686E9DE4D12494A3ECC31362C5FD73667D07C85BC669A2793F4D55E4334C24BB8F89E785C397EFCF8651370705DBD7AF556ABC1E1E300A10008FD1900013AF283070F26E65DAA6C784F9D7C93080BAA66A6EF9D85D844DBE6C423EF0903D211F7C2D31DCF79EF54A56241E0028609B0AE3973BC87688513EABD13EAF19FE8A03F7AF4E80D1D3002441F5EBB766D5387CA8CF4B82179F2E55069B0094016EFDFBF5F8282A719780C014187A03C55377B08926DB3F230A09A8501524DC06CDDBAB50450080842816103482260A46439A01E0FA8C75F337CF6E1A14387CE59D4B5F76FDEBCF97853488E9C12039F8554585A5A2A018105C72640D8C48E1D3BD6718E94DFE123E4D39214AE4344AA28B6EF2111274FE06172EFDEBDD2734E4348ACBAA5AB55B941E1BBDFEA71BB7A7C45BDF58AE1B32BFBF7EFBFA8016602A43B77EEDC9E4970E89318021A9C7C77EFDE2D1715806058849A80892A6503838B5B8400639AEA953C8143A5AC7EAABB248124D5542B31A700080E161C300451A821226233370618C3FF81F853D5F5BBFADFB377EFDEEB369EA39E7FA4F6D854D48A91D477434F4F9C6E00834278F988D770CAEDD9B3A7040449B654994C1B429A746325C646720E1D24216A682CC99616287C3FE60A1219870FE67AE7CE9D88F635AA6026A76CE2E99F1B14A152EC6075FDBAE1330FD4BD9FD3794EF5FFF795EAFE24ABE4306D367DE1B030B76EDD2A2FA84C58209C660AE513E9C02B4427AEC3294C9B73A34012721FA6CF988C0D36B0E000231721D1C70174E3C60D86C497D7EEDDBB8DF39463A36F04602CDFB7435DAFAAF75E35FCCC53B52F2F6A80990048EDCDBBB5C1C13F4C2DCADCB973E74A406061705A1D3E7C7870FCF8F120E9909B54EB7AFCAC987463391980A11B42422D52B867A8AC942A346A4082032C9428A675CDBDD1A70998C0EF9B53EF9D564F71FD53FDFBD47C7D62B1ACE1F18AD15AE5F0240F21198E1D3B365904291D4201A0F38A1493B08B6B4C13242E55CAB67026FF869C0F8025D69C2B167CC245F01DB0088203EA7FA7E9EF7AF5D5576F296973551D7E8B0A5C7BA11DF092A6E659004CA6EF3BACFE7F182151FA7BEA111121E7287170599D8095E87E72F0E0C12DBABA94EAF4330D869A507DA8C89A516DF265F14D5B95326D069354C349CFCDAFCF71ACA9D6E76381D4A0AAEB23E4070F1E7AF7777EF75FFE9727CB4FD5A43FD971E7CEB5C34B4B77161F3D7AB078FBF69D85EBD7AF1FB979F3E6D13B776E1F56801982EF003800DF4600A66100EE528F9F51FFFDCC3AB5CAA4A3D635759AC837F909139E18DE4E33A63A0157201EEB586266816BC8F7E1E7A1050F87110F043927B60327D6016832E5DA4E603C7E74E5FAE0A38FAE97B4525D17D49650D79EC18E9D8706AF1EFBCC607EDF6EC52D47A33B77AE1F5CBA776BE1E1C3FB8B4B4BF716AF5DBB7E580167415D8BF7EF2F6D237070AF8C766812304D02708D5A15B3E962360517928E405C00051D6120998CD3B279C363FEB626C192833F713EE49CF370E0E2B84CB5297E0EDD80B1F630B4FFAD0F1E3E1A3CB8F26870E54A19D00BB5E1AAFA0975EDFAD968B47770E685171570F60CF6EEDB593CB87F6BDF9DDB378E3C7870EFE88307F7176FDCB87EE4FAF51B0A3837A0AEED0370081E97BA16B3C19B9658A5CA6AF373C4924C1D140001270592826080954B061BA658A86CCEAD690283E6D53A9C8531578CC465F025240CE60A5CA28EBA95E2040C19CB4A0DBB7EFD4E790D56CB10DD5ABD76BC53143B0747174F0C5E7A79F760DFFC9E413178BCE3D6CD4F0E2D2DDD3AFAF0E183638ADF2C28A9734401E8A87A7E44ED0FA7BA16B2C19B52F1D6490E9769D705185A4CE808C4826391E1FBF0997A632D5C3A105DAA436E50D491202E154946D7D25CCB901B9ACD7D0E409399DCB5019A280986EFBD73F77E790D2E7E4C75EDE260B01DD760CFBE85C18953BB4B756DD7CEAD73B76E7F7C40491D25719620658E5EBBF609A48EE23A378E2D2D2D6D87DB804682A6B887ED7B8C6A55C886C56BF8C3E908C4A6C7690742383F3FBF2E1C3D7573CD8A4F2374D3DBAC58312A12258A8CE4E5E94AA0C064EB5B239F137023E6F2E1C3C7A5AA56A96BD0B13E51DB505DFB7EBE65DB0125715E51FB075267F7E0FED2ADBDB76E7E7CE4DEBD3B8B50D7AE5DBB76044602257516D5BEDB8F39217874299E0330C14E400C6C7645C006B76FDF2E2504160F8BB5B0B0502EA81E2692AA96E520CCD374F235259168C1D3250AE6586D92F2300250E0FC9352C56660596F0E9FAD43A654D76EDC29AF6ADC59BDF6BE5B14FB06274F9F197CF6F3AB52A72896B7DDB8FED1E1BB776F953C47499A854F3E29C1A3D4B59B0B0A3473745CA7026664339372C3422A0010B8A013E2C4DAB76FDFE0C891234CFC9F5CA1B15839496ED384BC2E40524875AC0390910BBAA75C971CB9D5CE694BE7BB4A55C37571555D8365E7D260B00BD7E0E0E1E383B32FEC2EA5CECE9D5B87376F5E39F0CEDB3FFFC33FFFF33FFFBD5429E27402AA9369FBE5CB97CBC93E79F264B920120C2E421A1A5018426A377A3163C244622C7D75FD1CD2018875C4E105890E4F7958E8486BEA75AFAA6B0F95BA76B554D7B0A9AEC1C169E3A3D1845C7E189B564DF6A3975E7A69872B4C24452DB265F7E94EC01869D134784C8EBE5095091B38446DAD03167C3FA406A43AE6F1CD37DFF412F21615B3B7AD5AD01C580979683DD958CB8D0B300C99D02550154681FFCCA500645624C8FA53ED61C9CDE804ACCB4342E7D94FC85B0E8D6290129FF58C90DB9C803AF7A8A353F3759691C1C53F02A71C1D857A8CD1AC80C267410B91943452D0C4CDEFC07DCB7247395530BF6AD576C931A865F21D85D4928A55A364EE34CC6D3839B1390806A819B2B042CA0DA700A38EE73F876431F13082427ACAE5EB75A44A9B0879AA5AE5F3817909B969F3C80201A1A723169829B274DA000CB4C9538DA2273435FBAF09C912C209EAA85B2E49203DE59C77569E873A862BD4016802872B5AB8ED6A95ED3E43F2495C4EC02244626001E1088495040BCADC67D8DF21155242459AD8EC4DF00BD3676C4EC0D0531FEB41732DEF01F38A0305F3CA3606A1EA96DB43DE1DC9E122E236C058939DA4BA23178079CD7004C2078281458395E4C081036B12A05CA575523DE5BE4D9FF3348C01489DACC01007A028125782850E4048659B5431718E8DF6906F24218F8DCF72C656C9020AB09D0310E0100C8A73A5C8C63AFD7278C967D10998CB222581228D1870CE324B13A65C1956E25329BAC03BEA44F98E5C859AD5228CDE7AEBADF20731F1070F1E2CB30249A64DA122B9AC5BB338C14D0323E64081EAC56044020587170E31BCEE22E4DD1976421E3217CE72A04A2D5A79E18517CA934A0F13A9EBF4336D80EAF717A91B78560122D5A254B3ACEB357ACAA1DAE2F7D0593BEDD0FECD44C85D8099107257EAA902C20AF884CC19CFA516E939D5CC69984560D405087359A80E994EF45C9286D548420879173CE4599C80A1C5D2EAF0088A7F93050BAF57E530C74D0123879F23052020D1550AF00424F2540FB16EA59405ED3A2177DD7B0860829C80293C423ABC40E8698E647E312D2C394CBC390094920119CB39783898D41DE694134439D42D1B9FEC8A9A650A1F89E11E4E27600A8F60BE814C7D94B67B6C009CA42622DF95A117CCD6C375788898D62126C6AD27E4455295F9102760F0A6C56907303045962491E645E9FB98A6B5AA4E88499312C46590A0C996554A187A03EEA7778CF249EDDE431EC7BB929C80A6C9C7E90F27202E3C876480C50480A0F448B56EB55962841E3E3255960718243173CA31D7B28D814BB5F26D849E909BDFB33A01F501B0C08ECE1459F6D880571C0BA4B735EB471A306C19807AAA2C1B00319C0412DA16D1DC65D52A2B21D7F4D5E1D5AB57CB144C2E042483ADB540082F99C55CF1D409CF098CD0B932A5CAD253CE5605B634D99E906722E4551AE6081B1F0514E8EFC8596267A32D54390110FAB734E500A4850B641ED2DDD4337D7D51B7EEA85529257A9C55D69554787CFCF8F11D296122B1E45EE8CFC3B62D11A42DEE2DA6ED408AA4C1EF409D304A145DADE809791CF7F03A019B081E94BDCAE5E70140A53244A7C9CEFA407E0B43F965DE461D152CE4E75CB572BB14B29EDAF62DA91C688AC490C5A32985A4A99169B26D25E3B83FFA2F58545A565FA7D143B73ED5A997DB254F78A84A1B63BD0B7602C67AC9D9A64BF68B90314631C5A3DB081699572E3DE2F492B3E36C1D15CC47C8BB96CFE10385B31C6868B34C1B6864F1688649000CACA6EE2AEF93DB9235CBA030BD26372CFD4C72AE749F46280FE909790D0FB98B90FB362DDB02E38294A09911A1D37A35C4D84DD315096253054C9E72566027F90EFDAE3E64BD26210FD153D9639CC5A371B261B1D84D888030A94CBD973C8D78DB1C805055992A6B922AFA5AA624FBB48D90C73A03AD4E4082462F1E8D4580D5058D33593C9A97ECD254F7F4EC1230521C80CC0DD173CA71C9166B5D26E32152C39926EBCA045413BEF5EDB7DF9E4806148F965D64431A67F612231E04A135A90012992A8BF5409AACFC8CAB6E554FC8DD80B1563CAC9C804F5E7BEDB53999A0944B2AE81B45449CB66EC5584A27A7675C7F4DF794F79C239D904FE6D4C631AA491DE726D27A22942CAD6FEA17D7868183051B17AA4F0E1EE2031901E27302F61E720F210F7102D601801C92B033949D664B7216B5895AA783E1DE98F805809037D0F2548787F8FC1CAECDD115C9914CC86D9CC3570924F494031098224BDF0709636AADDCCD3C649A2C4F7959489AA13521A6DA506E62DB005DC921CF4EC853AB15F294646B650C168F96BE0FBD707297AD548C33930061E16D5BCDE2D05604DDCEE5A849C86D4E405FFAAC1C00011D81B2CA861EE64EC0C5F69490AFC94797DA90BA0936BA072006B300710F3C4418A469028B6F2EBB1A952B9BD72411F29456CB5095645B653AA9D04596D2036A544EEBD6468BE190BFBD4EE91BDBA9AF3B00710061FEE9D73039FF4CB1555D25E42EC9194DC839A488C7906D95697D41C6190061F27DCC32006649B50A559174A060B03F375365E918F41D749DA2E401D5D46DEF39030FD564CF7DF0C107A584609F88A3478F969FB381A1AE79B76B4049B148315C849EF2AA7F63A9DED23168CA04EC1EF728922B8F389D80E40728A0B0B8B8B8864CBB1A67D60140F5B7B46ED54C3DC273390019F94CA9C29077532660D7A272A55A955264C1E904544078BA67CF9E2D24D3B9A502DF03282095DA2A3D58111DC3167F96CB01C87C199B71A36B8187218780D3436E3A4D62AC5531A061561CBDE1FC7D24F03B77EE6C1D4260B4C0FDE164A77ACA7AB936EB538E50131321EF16DF7047247B09B9ADD65148165A286098224A4720A505A5919E4BDE668EC1AC4859541A8FD2EC9A5305EB09795AFB81356A95FE452CF81C1B71CBCD4E8288906AA91BD7E922DB262B952C2A4DD50B0786DEE2BAC942D25DAC7818D3FA2CC909686A2D0092CE2EB278CE7EDB0C28F411F9364B8E101549F792EB00A2FA15AB82759D90EB73102245269C23A427A0696021593C1A80C00020E0FB60F8839EF31163DDEAB254916BC1323EAC4E2FD5D218CE61DA081D50AA9CF92C3E2932B28561982407D4247AC66953A733D0E6086C638FC09C20087D0D20E125536559545A16720B25E45D31E5A61457589743AE8303FF477A2C3DE318580C78C5B148211545BAA84699EC89392C5254AFA40350A6CA1228301B77AD83532A2137FDDFEB04AC5A906D45116994B3947153B2B5402E00749D73A49A6AF5F6CB6C1C243DE4B68DD0137237609C4E4075223D3E79F2E47657DC5468E8B4EB3D2E7225AD5A572B17F9F72C4691D354AB03851514F55AB9B6D3B1FD52238E903B39879CCC186B55AA1AA55BC5B079D4FF5B572B171C0DEA0ED41E992A1BEAD7A8E314749D9C5D931C8D3901EBF208E919A7779C3E119936DBC6212D4DECCC44A0C476968D05464FC88BA4F6035EB52A0400BEAC405A55A4099291A45D8DC6A57ACA0A86ACBECE042797EA13A36EF5843CBDB8428813B008950AF284A4679C5E769C9032AAB7CBB5AC6C79F694A23294449726290EC0EE563B9C6CDFA4F603A5E490210B3122970B63F28C33845AFA3E7CF1535D004CE8A92FBDE2DCCC94367A125A2CE708D9246D53AB4CC68810C0785B10985A0B000C4C91A5A5091D8530C81F42733EBA2241EA106F93A79C39222EB0B83CE45D26E436EBDDBAB67FB6581B091A2C061D81B2AD323CE321D5D463BDE45D004A0AF1D6ABAFD301C89C72BDE2611FB29EEE215F2739F449552018BDF3CE3BE582C01188AC404CBE6CAB1C5251A4AB6A544EA9A2BFC60A2532A4045C0F521D04BF5B7D381A24E4363F87D27D57CE9C3933470B8BAD71662E005466CDD6AD244976530D33A5039040915E701B21EF62699E68426E425AB5982B9414B1C183A15E72FC7E2C2C733D4C9EDDD05A55B33A58F480EDDE5C7354D70148A0F484DC5CD44DDEBB0F30239BB3CFE704CC914F4E0724360C4DBFBB76ED1AC74D4031F58265B16118305CC09AC71670000AA5895E543B87540925E41D50AAA2CDB86BA2727D4EC0BA3C82A6490040960065799FCDEE1D776D34FD3D46033053929E721696F6599F52D42D5DAD98D601B25909F91AC9119B0918223158F1907DECAA1A58939FEF4ACEB86B23D377C1474A15F206DDFF94A26EF54EC09A843CD409E802051B3AB2B532078B47DB887C978B48EBAFD1244E8E223DE5FAE7731557E8097904218F31FF0104301B429FC6A2D2330E35816A9489C8F7E6DB70B0484FB994CA3A274CE11C5D0959AF45C8439C80E40DF08AC3110840D01985B6CA5CB4D0D8A91E20615CCD34A4A79C019DAC5C62B25C75392AB73621773901D57BC38F3FFEB80404F56234CF0420628A4787A851E2BDA2EB2008CD0094DC04921C173DE5B66E5DDDF392D724E43627A09AFC21FEBFB0B0502E04AD4B3227A32E8FE802F7C85DAC4DCE99EE2967EC95C909A86F88B6E3C4552B3798909B442D5E5740583E74E8D09CA9A248A254B0AA0A54D3DA283990268B7BA31A94028210F060ED981B1262AD69B1905E47C843A486D7439E62AD4A05057E37D400820F5CA6AA95DBAA5543051796318203901E6C575C5A0E49D3F5A85C1F2137FDDF9B09C8EA2339002013A1A88EE95D64DB9E264B83053BCA32FB8F9E721337C8A182F99D80EAF33D21B702C649C8EB480CFA37A84A302B90DF2BD364BBE2F3907E0A7ACA99532E5B309364C780C5D60DCA5560A027E49184DC47226D8BC105A723909B9FD1A2F47974397CDAB6B9E917C29C51AAD03C6BF294E76A98D976CE612ACD934CC84D150F5DA0204F2020E8B042EE072587AB1A6297DB9DF9C0221749C65B990EA510D5CAB601BAA45659E7C05648DA161A6E52B7D8CD949E71369307D104204C6D954378499781E19304364050D2C84E4EA6EF7713F241AB4987AD9B6CA8337022396CDE537006380191260B6030EE075981941E29B1535DACBA9ECB01C8F246D2AF414F398B5B8410F2F69B7207C11CCBF419A713504DF4964B972E95561578C50F1E3CB8C633EE4B82EA55A966258DEE29C76000A829DBAF8BA5797C4E40272177390195D478F2CA2BAF6C0BE9B5514702F0F338F9DA98260BB593AA50AAC4F07D869E72D9A7DC47C88B96DB7225210FE11C4E421EB3C963D5229BA951E62FD83AADB66150FA928F493F52EE869921D1D5AB9FEB8EE4F0A950A6D793929DEAEAD55407F0C8469AB830F6ECD9D33A0F39541D5CB85F48115CACBC2EBDE475A48A8B8CDB1D61DDF290D78ECA4D092DF02542E1B4D44F4A49E4BBD23C5396FEC46120F3C9D987DD645D4AB17849B54ADF18DDA93E92294D361791E6C6C749497323D527C959BADC235086D4609E58709B520560315911530211434FCEAE1272176046AE123A3E50C8B6CACC27A084A0DA245B2BF7962AF766668B02E6CEB01BAF5E7D3D56B5B213F2B64B8D3842BE8E73B8A484CD7284C563F1689C7C0C73808A20CB8386AA4BBDA7DC2C55185652EABF22E68A8792DE5B25B690741742D66308B90E9851686B0178C465CE380B95C133CE4574012266F3DB1C92A6A26EB175AB6605843124DB14A0C9A866C9E574B0989C805D6BA4991A956B941C529D520018C209C8F44B00028E40539FF114A9B01112639A1BA22E4043EAE54A69428B18C3E06D074757B887A96E5568FB81121C3EC9C1E2D1B2C44E4CBDDC1850B475C1C01B18B69F0A0C1719970E40DD24EFDA085DF273C4B61F2809B96D41AA8A232B509B6C6122398A48331B102A5AB5A0AD5B322636310ECA159459D70128D28DFB90F540426E03CCA86E28484C5D2A590A949E715647049FC1E9BA6FDFBED631459434C2457F06FA9A501A4B6992D301A84BE31875A227E4C55ACE91B2C94301C34DA09F66CCF7604593B60F1C02F4010124CC290768522586EBE77C1EF22EB83C52AB1D7A39472A8F90C5A375958C664809982E0DDDA781474850AA5E7864D7269F5F232684A4CB84DC74EF4151B9B9BA3171B1593C9AAA13462E136FDBC1426FB94C95957DCA5D85A56DC070AB52DD51AB527A918F42406002855E3C9A5F281D813675A9F794BB55245A06E9FC633889CCDB88E11CCE90F59E905BDF8B921CB278B46CABCCE2D17A5BE51E00E112D8E500A4242E45BDC8D7E03CEBDE7257ADDCB58FAD57AC9CF91AC1845C9F58868F203D56B65586A8475E029E9BFC1EB14EBF2E7692ADF39AEE2597FDE0091653144157472D0FB96B732AA9305755212C01A11761CBC155BACE3B7258A4E804644809545D13E758BF11BA57F1308A90DB16A5EA71BDBCB0B0B0352490B04EB950A8048C406DE38AE160C13D82A331A92B160421AFD101687302866609F684DC13B29E432D728589D033CE2EB2D83438F1AA8699ADAB95CB107400059BD79400965305D301602B07DA137207210F99F058B5C86539619F6C3C320FA40B4E40A602C3A001A04055A55FC3E4F3C9D19EC0A5777729643D25D1C9CB39EAF20886549B7ADFC92E505DE31D981348495AFC00125CF098CBBCF2541E2241D165276088D4700166E4B32CC56C5A6605324C02FFA7B797EF879C905D23E3A6BC727ACAEB58BCFC51B9DD25E4216A569013D0F61E4D88209A32DA54168FEE7B0486ABA2F469D0530E6EC25EE5325536245D5602A0AB69B2B1845CFF7F3421C7E2C9E2D14CB8614660688A6C979D84310E409ACC319F00885E7DDD5711D1E504EC43D60308B969A1E4A4E324039184331000C022010C689E694B80EA3A005281627B8D2A29BDE57AF575BE6FAA9ADF5D276083845C89F3D1FBEFBF3F098493C5A35D29B2B3961ABBD98161930EBA84603215D6C5A682C90DD0B51CF268426E5B844AA4AFBCF8E28B43535BE5D84D1EF2F92AF7B9752B06825D3955A3129B629D827402CAC5EE729A6C2A210FE21C0A14E318F2170B183A02D9371B2A5A1B4F339CE82C011A1A8F56C701A8AB565D4D9395DD6453AA1E8E62263D8650DADE977DB39903223B432915AE754C9105EF281D2149E6E7E72769C2BA03B40907608CDEDD36C9E1ABA66E25E431D53052AAAEEB1532786A4A7F88CE5DEAD6AD9A654E837B86F480C54F7ACA21596C1992A9EA564FC8FD99902EC078CB81A6904A72145B5B655B899A5C9B7A9A64D355CEDEF773D2538E47B68F83F1837396AA5AB9E6E1191FE986B5CAC52B5C80F13A014378846CAB2CBBC6328EAA8B391CBE468DFAFF195DC00C4B7231A6CBC614DFD6DBA4D955A9EE78C8535A9F25C556D1F2C2A6F3ACA4AE7BC6F5A8D3DE841BAE8ECA020CECF5C7C8DED08643369573ADBAD5E63571AB953EFE15E404C4A09E8C0B8B267330A4CA949AD3D103C3FE1AE797CF599A95B5BF6446A04DAD32AB116D97DEF13DC88309B99AF8E2DAB56B9314597AC651944CFA3D5CEDCA7A89510F1826154C7AC9E5C92841D413F24194D43001C7E90454E018B2425F4CF1E810A9E0ABD0D7A641B375CC5CC51661E0DC31E45D2FEC6656ADDAAF5635E604547CE2E99E3D7B865499724805FD675872866A827AAF75E8400C1A0E192676D1E7110B02DF6B94264C93F511F22E95E669C409980300FAA0679C561816830308E7E7E75BE704440517DC33C3CF912ACBFC8D908AF5751C806E5366EB952AA7D32F6BDDAABA449AE49139E3B2555A4C3593CD3858150417BBCA425D454889F494A7A4CB86F839CC1BA15B1E7213289C4E4017E788950A26FF082EE61FC8C2D13E22DF7632CE4301A9006C940963073DE5A6B9496998D913F2B4F603D1C94E3E354AD6B492BF0C0B2D9BB7F4D6ABB5832670E92967AA2C3DE5A90E40D7C9D9C516044969B2BE13C9B4A9E9A822D1A4579C11B67D6A6C3C3793CE3FF030B65EC623395A0C37719F8E6D971A3509794C44ADF48CCBE2D1CC71966D957B50C47336D36B3C64E82967380900A3730A17E7306F846E498ED88C406FE0216B2DC9E2D15C1C53CE781DEB569775E310B0C8EAEBACC0CE901D9932ABAB56B6D3B16B21EB2EA9E17502EA9B1569B2D7AF5F2F4F2B5855F043AE5AB93913A1BA0C8C10E22DEB8231AE8D00626E4C4FC8D38B2B7809B99AE4A767CF9E1D513AA4C64E8584C5536568A3ACDFB367CFC4AF216BE58670BDD0D738CF74A84AD26D3B1DBBE0E770F1AE6042AE4F7AEEFC70D3EFA07AC648DECA0BDF3A2720381AEE938D3265A2570E60B8D6CBDD0BBD9B21EBA1CEC0519DA4A658C030B481791ED820B0C8A0E40F9E436F66CBE5360D4A5EF036DCA3F46BC898B53A12C3F499B090F5EE11F25029E27502E6684623E37D9814255364BBC445C00918FA8FB0120084FD4F68F1CBE100D4C1D1D52AEBB508796AB293EDE74812659721DD41D8D7CB5DC3EB26E9B2EC28CB54599A70EB0422F684BC06218F11D7B62F32A5C8CA729531299E5DB652E1E0604E39F898EE295F5BCA339C73D84FC7EE95E68922E429C49B8B28ABEBD1D66EAAC99493CB740528E46434CD32A25774C04AE21C2127671B0979A82A1544C8E5EB14FBD09341A039E9B2AD726C12540F8A3815498695609E9953CEEEB2364FB9AD6E551738878F90FB00E37402AAC91F5EB972654DE37800820BC4323B3900D0575C0FB748E9D5D7294DB8A8B6345A9BDAD113724BC34CD7A654133FDEBF7FFF1A75C9271DEA78C92B8B5621F56ABD785B4851B75812DA3430D9DA4CCFA6CCD5305302C2542BB78BD50EB312727DE2ABD3690CD16D7256C5960BB59978493CF1B8517D01736D149B4A83C305A9B2E0658C60867A1A0B82582B55EAE6E809790221CFC12364175999228B8EAB78EFC08103ADF490E362AA2C0E0348641C062232A0B6BAA57FC61F95DB76A9519390DB26D657E9220630D2332E53649937DE958C40992A7BEBD6AD92BF41A2C0012855575361E91475CBEF04ECB687DC4BC8437D19295E725616A12F444F93EDBA858A3E0D84CFD0F987F82BA603F04A55B77A27604D421E33D936509010EAE120F4964B8F796FAD320FBD4EAEACBE8E41E91ABB56EEA8DCEED6CAAD1DB2EE9A78BDAD320B29D88A47A7A8655D922226F58B25580912F015CE6F280F7147E5B65E6EAC9B8398E8DCE01604F4D8D2332E8B47CBBE1B3635A0971AE1F76EAA53CCC348565F6730A734D9DA3887690374DD43EE03CCC8B5604A1214D087717A61619848834BF78C37D123B007C6FA796238895E7D5D7ACA4D3EA22E13F21433AE9790C3438E8D0F8B0AB2D9241864CE782F11F20025D62245AE47BE42296E8BADEA629E7E6C4F8E7584DC34F97854E4F0E9FCFCFCC8675D8A89E835BD87056568CAA085310D30D542EA826C9BFC1AB91C80CC2BB7A5C9760D24A6D23C3152A45639D0D45E1CF8C5500548306546E0DEBD7B5BE704848393B58151A882A9B2508FF49CF23A60F1D5AD0A3D31DBA656D9EEDD0798A04CC01C80813E2CC3ADE90444361C25930CC56EDBA0650F658E7020404AC2A701932D83386D052CEA34CCEC09799CC48C7602A64A0C263D316E8A31455D4D91E5C05C404AE28214014870A1FD32AB4592D7A556270921E45DE11C319EF1759CC332E1450C28F48C3F6939915EF13AC5DFDA4AC4690D8414654809D42F067DBAAC812179E4211BA1ED6A554A6472ADC043E6155012C8DC0E3D97BCB7608519337088DCBD7B7752CE870518AA9A5E6BE633C401E8DA085D6A5E13C2BB823B3BD93634EDECCC19C760F16879C2C586B4F7C33CD7B47031B49F79E598737918A5D4ADEA3A2137FD3FB81CA804031609A719C34458A335A47874AF46A549113D7E4DF79433FC5D7ACA6D9CA35BA08827E4D14E4035F97357AF5E9D3897A0073390D06459A963DEED3A28628937330BE9D7005000181C5CD2C7E1AAF8D70D5F47CDA85CD30254B1542B274F9E9C9311B7B6826375250693A08A16AE184E77C6A6E5AA8DABBFC603CB542BB78B52A30E210F720222875C7E796CA888EFF36C67C044A8B69A76714FE009F094B3C617CB1AE500866D7D7A421EC6BB529D80454E1EC18C400002E64AFA3D60EFC7235E6F639A2CBB5F31320092042A2AA425789CCBE793EA000C21E45D921CA1AA549413B06EAB656C0046F252B5C04681B952B636E80AB72050105282C3801D6561AEA505D0E6D7A85370C15CB7AA1B9C2385907B39472A91D63DE38C1CD517BFEB037371F3E6CDF2A0608B025C4A7A4EDEAFEB008C3D39DB68AD4A693F50822387750916135E12AD32C43DB472B88E765F7DAAB60C565FA75461EC15780A0E19BD4F790CE7B06D842EF939527A9147F721E742D2332E4DBA44298112E2104C1595398BBAA5AA484D7E273DE5000CA40A381A8B4ACB03C9F5B7F808791724470821B7FD3F5872E8C5A331583C3AC5E7B1D9D5AA90CD56B7EAA274C462EE711881BB31A79C85E27CB5AB4275EC9E900FCCB5724D13AC16A2407D25589200027625D2FB6DA492F57EA459A47818C99C72E68B30B75F97AE5D26E42969B25EC9C10A7DB0A44847A0CFBA542709AA8D8361367525884DAA304D9631583627605709B94D32F800E30C3C542AD418A7526C5BE518890100027C3CF9DAE82187FA834386163B566FA90B0CD3DCBA4AF3F41EF23867E0286623FB40116A9B97CDE599CF009D1A5972FBF7EF6F9D1310791A986CC63FA15805FE0F75952551733A007570F41EF2B44AEBA314EF6A0A8F9029B2CC19A7E9929BA3CD69B255C18A496A304002627DE8D0A1F2BE597D9D7C228703D0552BB727E47EC0043B01538834AD59B2A00073416C05E0BA32A862B1F802A409FC1A50C1E834A53A9BB36166D754ABC60879AC1AA517902689A774707582EAF2C0DCD0A7C19012597D1DF3E67200DA5EEB09794D426E9B605F3D563AA108004A0159545A3AAA725AB7DAAA76F19175720118FA3360B4C073BD4F7948C34CDB46E8B2873C8890C738EA6836943C819D6409981E00E9C030BD867986A18251CB32A71C73EFCBD17701A06F7DE621E42EE920C933AD2AA6E2D13E50C4543FEC816297048CEA85E4800A2673CA59BFD864C6B51530EB022852AB1D7A398712E7439C5AACAD241D8131BDC67B29525F82D8A40A0F2D76FB65E258CF39E2A4461421C7EB0A182BC78E1D9B6B3A4C048BC962016D74028258E3B668ADCBE900941C9066602941BA1D953BF0F6447445E77A9D80399C7EFAE79911C8934E36CE5427602B9D80AC160209CCB828567FCC991AEB4A74EA1AE77075760A014C5251B794BA54B27834CC936C8483C0460003A3AD4E40990188211D80381C18EDCC98B55CFDC94D4EC02E710E5367A724426E227F3127B82DD94606C261036023504FEE6AE34CE900C4DCB0FC271EE91762F5F53AEA56DF3073D01C218F95183CA9586687E1107DF168FBC07C002428328183049E725C3255563A4F635A11F8087957DB9ED924A933873CD40928879E91C65F20F3C57502DA9B70ED870F8B4A43DD64EB65107A1E36B2FDB24FDDEAD364ED6A65086082258754B764F168FD97C914D97EA48384070CC83CCCE94C950558C0DB189DE08B64E8D364D35B9F79FB90331CC4543C1A43C6FCA458B7FA1146BC65FB6536BF61AF72A8B1AE0216B17A77DB2447CA1C7843D6B76FDF5E5CBF7E7D4DA91D5C3675299630FAC0D4456911FA1AD60012058716AD5FF013C95AB994E27ADA6CD70879880A1545C8A93EA1DB109FEB9EF13A52C1D63873D0C286995483628AD7C58005528316402692D9FC547243749190DBA445505137B971D5648F95082F645E414EEB160B36D0FFD156B32EEE939542E8CFB079CA632C52B6D7F4EE597AD5F5EE489106A372433679AC979C271B7B4A304596367FD6CA35F59A30D5AA0AA95BB5D1AA1BEE0F170B56E040D8BF7FFFE4C4C71C480B54CAFCBA8AEDD936459F26EBE65DB5CA818678C9192AC28038907A6C06586118FADE7402D4B436816FB249AA1919009080541F3B76AC040E4368EA6600C6AE515709B94F8AD4CA04747D39C120E38864F168DB49D925024EA0C0E80189027F069C7F20D7B40ECA3EE5B1EA968990CBAB2B61EB31AA9455728438FE7C99675099183BC55E14AE1EDBFD581D9827169566172D5C88BFE201A3CF619D36CC5D38986208B90930D1E123F2B97E32B16F5DDD24A82E0FCE0BCDB4000C2409424AC0536CA6741B30F435EB96E42892A272D7488ED013C7563C9A223C47C592AE03C3347F0C52046058808139E534B3FB08B9C970D105C921F7684C79222FE760E721F005720496DB49692DD003260E18A6CFB0550100C3F6CB040A16DA577CA15BA3F03AFA929D805BB76E2DD8CF4E7704F6131F470A53D557D76BB24E2E0E30FA8BC059643B081B21EF4299A49434596F39500C2535C68B8B8B85CB339E432AB04C665BD36441ACB161B18169A4A8030C9B5184C5E09AEC8DD205423EE11C390A42C79A83F1070008AC974BFB3E7C1FF3F3F3AD4B9365FF3FF205926A267FC5746B8AB148B9A2A37DA594DAA25649C99D44C84D139DBB198D5E3C1AE41217F467FE6C9B6BE5D29C8DFB05676354EDE1C387CBD7E9F388AD6AE88BA876A9555D931C59A37253F563A2950DE3E9D462BF3B6E94AE660562C3F270B876ED5A294561AA85A71C07849E539E0A161D1C006597AC5536426E921A26C08C7C9B3E466F252018364D2F2F756DDAE67B22BF769EA5A71C4081A71C3E0D1C2A4C33D6237A63021125287B0F7938F7F0B5202842B8074F256997D773C67BEB5618500002C45DE939E5070F1E2CE7590F297149001B60E47AF584DC41C86325862C12AD8BF010CF78B7C47A3DA050FD82040660744FB96DBE7DB1553EB2DE13F2406B959404F48CF3E4E1A2F8AC223D08EAF338DD530EF337C0C20AECB2E27D2E234AE709B98BCCA9492FBBC932E49CB9CAAED3AA5F986680A10FB6BEC68105150C402158E469D9EDA8DC9A84DC35418A088E1716160A1660CB113B65FB3CC0D75627204F7696D6A90B0CD33AD0F907158C69B2FD01559390BB265C7A5A730040FFE50C75C023465537B6754E401C2EB847F005D9E3C4E5298FB148E9434F93EDAABA2B030F535A9F8D524E9654C0E017B3940C400187182EE8D038511948D7B641CE865C0DB60A40E10A84CC303A00F3E0DAD42952A54F760A6BC1104DC873B45A9629B2000503E498374E55A04B830E50F004F660074F50EAEBC4A721A3A0EBAA5B3D212F8240617A2FBA0FB9EFF31210B4DB33EC9DBE8F3E2BF0D9C90E90E0BA7AF56A09144894C5C5C549075E92EE5475AB971C4552FB01AF5A150A1859F40D1E72593CDA552FB71F6B07F3346EDCB8514A5A44F3022C000D03157D40D181D113F20C845C9F30571F07BD3E127F896C2B604A82EA41112E89594C9A9E7244F3BAAAAF9BE6B70F596F9090EB962B2E0837BEB4A5F73904F9806152BF2855E004845401582059580C4F56740925E45D08597711721F609C4E409C58B024B18B2C55273C37253FE52A222D2596A9647E6C51B75C9B7456C0C2EAEB000C2C5E6CBF0CD0B04581EE04D42372BB22396272C675C0782507261F1726DC24C6EB6C32FDBD595AC05870E9960FF91D385018DE5177EEF4D7F09D24ED38C89844A64B719304E98AE44889AB5A23396C5E5706B8A59275977545F609A42370D0C242D2AC828E7B0E49958DB548C9212D81BD8A9B5E7924A9794DCCA967FA192640B15E2EEDFAA8CF843F88B572DBB4404C6C623400B802EE9FB92E7A06600E07A08F737425645DD702422B8F3809796AAB65A378D25264B119B861A4686F739A2CAD79B870DFBA03903584A5A7BC0E307CEBD39590F55A1EF2904D1F5B978A1B9DE45DD6CA65A1E4AE37CE940EC04F3EF964E2D7404E39800390846400DAD647FE1EBB13B0DD9C83843CA51F60961C725D65D28B47EB9D64FB615E184A8D8F3FFEB894284895459D5C80067328FB9887F210BF13B03B9C23C490E2951C2E75CAD66B9CBD36483425187CF572FBB17E0004F092C35C0B32CFA2D2478E1C99D4A6AA2298A3497CB7E67F7D26608C14F1498E42078C74F8C5168F8EE52A5D952272000C5047598001CE3F5C50BFD8EFC4E400F411F22EC456D9FA908736D0743A01F1414A03B9F19922DBD7C49D2E5030E8D30060E0D3005040EAF19CBE285F446F972447A8F9D6041CA7E460C01B3DE37A8A6C4A3F881E30E9C0D05F23480018AC0F0B4A83A77081BBDC824027E421447C1DE7B02D044C8E2809A393E914A79F8FC8B360401BD36441AE715B24D53ED533C5014807233BCA9AFAA774AD058124E4314EC00938724D500C6098220B95008F5C589C806A615BE70424B1E63D4B6B9EAF0655537E8EEA139D21E42650D800E325E469936DFF3CDB2A33110A1B0392095619DAF2DBEA0464F5479A6259511E5219F7CC8341778AD66D98E98FCAED3621F70126D8099842BC01026C04862A48CFB8AF12479B074DB190285029197E8E5AB9364F7928307C0EDCAE498ED8782AF9FF64B5CAE5F3A0679CA725BCC0BD67DC3C704020470317E60C4041F61F3DE5ACA36BF294FB5430293964C4333742DB2507C09F252A579FE0D0C425168FC625CBCEC8E2D1B2AF760F0CF78103EB133DE530D14A4F39E7D514D1EB5383CDC4BC75F44EBBFF709F860930C9CD6B080A4EBC6CABAC4B871E146983D2165285D1BC489545A0A2F494DBAC5F36CE4129D2F62531557C348120C9092827991966F20BE8F790EFC5FCE1FD089F1FCC2FB3FFE8290750205558A944A630BBE6991B6635F070AED56A9549F50FF57B789D80E00BF2C4D13DE3BDD3AF7960985EA3DA0AC0484F390C204C6BF63901DBCE3970EBA19DADA29D80388D4C4EC0108B492C60003C2C6C1B9560F60B37050BA680459F43AC8DF494F3F7F99C806DB756F90E679F14714A0E9E4029BF38E4F4637E3A6BE6E2246C63AF3AB6AB06B9A6FAA357350C9DE3905667B46CF9D7A8F53238C8A0144DC843D4A614A4B2000040C18A7E38F598AFDEC634599AB41919803900B9C6FF591E158FB1878BEF357F0B8276273BF9EEDF14A5ECECECE4DBE4B13C8239E3ECEF4147A0F48C77894B30010C05DB70408027805403303C28303F29C08871DE76C35A1577B8276702C6A851940CF8252C1D8305A733CBC761745167AB53B5D95B06D3148BE2123844607D8203F0E4C993931EE5364F79A8BAE53EE4DA5E9A67BCAE8267E865951CB1A7A1F48C73D1A92EE88D339B183680D4018E2F6AD3148F53E7FE7088409AE08284053F01504E9F3E5D7EB72DA7DC050C7FB253FB25B5BCFFD83D15147868FA0C4DBB9010D233CE62C7B6ACC0369B7775BD35159CF4944372A0F882F49443FDE23CDBAC5FA175ABDA6E668F55AB74E9324ADD04B278B42B55B30BA068E2C4D3093D1C7FF094E3300250E829E7FC33A4443FD4BA9C261B4BC8D7F9395C9203AA1216069B5E56B2C023BDE27A88750F8066C182F966FC158C1A70D4C2F205A902DE82F50A8D656BFF5AD5DB8F23D784011CE4130C4B0825833D609E0DD996BAAE14D1A31364A512A85C004BE54CB546E5CACDD3F643C5A6768648115F37D9F2442299CE790AC962CBAC955BD5CB6D9D17102A108C15E409219EF2140720D609128501A1FE42D2DD0D1F89961CE149326152C1B6980C71C0455580E1D8F3F3F3AD7302822B30F18BADCD208971CFD8CC21495F294E419BCEFD4C8A748B73C454F10FF273A4768ED573C6010459C504018DD09DB1416409D1B60E9AB3010676D5C5854E4D5840E90BCA010CD7DA71C37421D929B434AA51AD8A9DD850C90220B0AD32C324B0F8B0E34BD2D85582CD545858A118550BEB139EB3FD34805207045DAF2BA69B7225D7089122A354AEA00F263FB1AD32A4030B0760B165AFC07EACE776B8AE5DBB56CE1FAC4FFBF7EF1F9C3871A29C37B6A636E5CCF81A66F6A65C735472881419A5F61B9780600105763CEDDB2AD753BF607D8284859AC98EB2000A802373CA433847370A2C8C87ABF5CEF058F2D5F1AAD45829B29A725D96121D14B25C289B69D2331ED2A6A01FFE930FEA15A50A24328002A90262CFA80419A2EE3B39D759AB36A1E9A328C6235CEA0E47857E0793E884F2A0990BE5192635CBAB565134EBE5EC59975582A18E5AD60FFF7C61BE11A4C822713011335516433713B74772802B0C14101418860394732C2410349261E51CBE7D6E25E4FA62E01113CFB004E9C8F2B515E801901F18FADC620D285500184812AC17424BB056972E5D0A0B599F79C9319E9B1B8EB7ABBF73B8463A684028EFA3588B279B87DCE704A414714A0E985BA1F39A42CC73F508A49AC624A036D6CAC5A6959C2C1518AECFB04739D6CC552B574F769ADDC91EAB3D3ADE0669B14EC899806078DFA556864891510C99CB911A3BD1E7D402020C500FD83CB2F2C4B7CE0928ABA0E364274F938D326355D13A265E2939666DA2574B788EB72A46B4CDF8C75980B046531CC7AB55A6B9CC52483A0434740482C833CC9DB67E3A02B981DA6881C20530701E709F700032198CF3900B18263579D64DB9F8B386C5CA8E41319E33826060078209282951B9C14EC0BA6A143BA6B22222BDC0C85108552FDAC823688E950EC0C5C5C5529A02244C954D950E363FC72C1B470AA851C50A4EC6A11704268961FACABA51B921E1233112833144ABA6C29589675CCF0AECC7EA900E40FA355027F7F9E79F9F1C2698BB94404482C3E60D9E1570C02CBB2A312A69318E02C1C0F68910B5CA45CE933201F5B8299922CBB23358D8BE7874DCC0DC419AE0C286863F0317AAAF33FE0A40B1CDA74DAAD8548B59581345BAB716C5CAF609201281607A13068710B5CA2A395C12C1655DC2E2C1C2C43AB90404C150D7BAD5F58179A5F5E9A38F3E2A2D5E040A24B35E7DDDD5A3C3E6ECDAE8359900C3BCE58B589498B42F773E4B4DB54A9F44FC12D96B5C8689CCB2E8DEACFC445ABC2859C05360F5C285FC72CC3F7B95EB9CC3D496601624C7B0186F990023421A38B878B18EA68C07CE7C9660426EB26E205C41AFE2CDE2D1BEC69939C97D3FD6CE1B2BAF43AA90A740B230FC1D6B76E5CA95994D932DC33F868A6318F67D88343002C14853C64563841C13CD14D958DE90E22967787BDB0636302BD5A782C276C030FE0A52039E72E689843901C71B018CB9E17065676100864F1AB881C0F7C793F75D7C4B57B34CC4DCE904C409E4ABDD540730F48CB35E6EB56005DF939FB31575D33FAB73A3593835717FDCB032553656B50A794D46EBCE9AE428CDB5C3955D789A220D060E20ACBEB7FA2FC45A65024D12E7880185CFE4C87C0FD6CC65653F9C7AF803A7552BB74E4DA990F2F5F277B00F22EE1D870054203CCAE277B61A5F29AFD95A446C741F72A54AED2A06836180C47082C00804A85083B8A8645FE293B305412E358A55D47182B26019F4653DD3ADCD69B2E40AB800143A48711D3972A43CF1592BD7E6208DED4F3E4B7DC895C4D8814C079F2FCF270D4C403000E5D9B3807BB40168D4048F608A2C13A1B0D8D8107074D1DCDB75528E05C101810BFDFF18557BEAD4A9F2200148109A0EC992E2004CE57D0DF18C2DC362BC6DBDC4F0A84506696002820D28294E4029455C4EC022E484E102304596665E7AC6D956596F9CD98FB583716657AF5E9D54353C7AF468195A42E71FABAF87AA5BFE3EE42B530006F6DBCA4E7D03CBC71069E00382E93B7CF76F92A6F2F351998026095185994FB2D29863606A9CD98FB081B944FC19242D80A27BCA09A490C366E31D7DB44C15B5A4410A988A62D05C6C9509242CAF0309C1FC04593CDAD573A34F844A53BFE0D3C0A1034F39240980824045703986E9C85AB93E6BD5B33EE42B0D0363BC5DDDC19671466960FE1EB36D4BAA55B12D08BC4E404E209F331B50168F36498759D57D37F3E0FC0108902A28C2007020A71C2A1840C3301E127A975A311575AAF4801746108400C104A610DB16DFF74525D7921C2088D20B2EF3C97BA9303D50D80E1F38152955D8FC06204193D30F3FFCD09BDBDFE47A553CA3B08160AD5529441AB881B04EEF4A50AB9C2D08749B382C2698ECD0AADDA980A1FDBFAD69B238D9715B7400867ACA63FD1C8CBFC2BA85C41435D74C68658BFAF62DA5DB2F9B34183881A0BF2D0FF4EC2D084237794AD5751279168F66DD582C2E80D2B6C16A21B870D89074B3C657AC6A15FADA4679C815D728A54613D2C0060453DE0704812B9FC57B68C74C7A8C54D0DF038987EF8339E3B4B8E094A3646AAB13906123B870BF2CA40DBE80477AC9A11ED9A44A8A5FC3C4399A0E5907CF507B746EFD0E36652D0500C1F4277AF0C4EF91F92CBCEF18623ECAD95B432FFC8685A7EF834E2F9CA278EC323F61013C00058B86B0734814F83558641BF3C4A2D2B19E71D7E79A0C595FC5DE7887B418E596064620587F95B905436D429E52801820A0999739E338111137D56705DA4DB500092E8499B35313D264319732D42656CA4F3B2AB7289EEE180CC6C53A93540E69E005C2FAEFB0DDBF4FCD9A3481ADA3EF924C6311D956D9543CBACF190F9F634615C0A70115149627E494033032EAC014586833AC4C8373206EAA0C1159EFC8C8230D7C5A9A094C83C2D98221B8D572A898669D5C5CEC6CCA1A4C6C2D203B41F552227D605E1177059F060E207ACAE100641B033D5536B49074EEB5193279297603474A8340E356A1AB5536AEE19222C1D62A7C09A4041E59944C7AC62591EC7693C666248ACD538E885E183A28B16544EFF4D4AAF1705D11369F3408B5E0FA8D5B56408638015DF3E3E41CD2C781218B47FBB843EF25CF070CD3FFE929079F63A0222EA860581BBC372D536E25350683718434180C0609122352321583EC2D08387138890890904AEA75000089C47A576D1B503F99595967B16CAA2E0E2D58B7A0663199CC5796279FE4404F8CB2D073D1A8344800538A133028649D922207006C9F871E0D40D0E4DB564B168B55C83AB9B1ADDF621C80A620C4A624C7DC70BCA320D72806539006C6EF29CCFF89DFABCE90759B152407B9A34D9FA1226CE90573259E0320A8A0D1B6410720269C8701E2A0301FB2005E8C593DD4F7D1EC61A3A4C65014648BA9843E4804931508EBBFC296EC94A50F791DA9C0F7584D9DFE0F7A82A12B77AD3FA0F494835C634E7058E04020A96676A02D5723265CA7E964A7D5A85B23D12E6243A57CD2C00704E3AF496C4160E41C3972C9793A62B159D60760804E8CC7BA7A779B06A4257AFFE1821401BF833FE3F8F1E3E57B98334855A926C54895A62547E90D1F1BB67403D2C02F98C606DFE278635A10C889678A2C1618179D80381DA95B63B1A79196B95907E60660C085AE4C902888BD3A7DFA7479D030EC46F6290F6D98695323EAAC071ACBACE9B6140684DAD2C00484EA8ED67FA6C91604AEC9978E401955CBF4CD3A6D9575B1975AB76A330F7AC291970170D0530EAEC27464BDF98DAB616676A9612AFE1C449223D42273499E2234A5166742A32D08D65826E656832D2125A4D505177D2039CDBB7547139BC2569FCA54BB2AC7EFA7F549FA34D8A71C818AF81DF494EB85E25C11B975AC55A85AA87E7AEB641F464A83102058A581A7248F7C5F1E0E264FB88F983B9D80ECC0C43603D8FC00814C91B5D5CBED9D7ECD107ACC3F7808C0C0923E000AA40AC3DFD941CA14C29EC3CF5116802E0645AA3458CF1FDCD2200408B6242A5FD2573021D737B64C3C926D95EB00C0F5F9D4A494591F344C34E10084D4469512907A98C841EA01189F1310739DF2F7ACF6EC8347BC989A34908F96CF188B30D8EE3F749F39D52A886BE8B8B1DC2166D2A523106A5B1BF903CB9FE270916A685D60E803DF0FD2CEEC42D7E115D33B5EFBC96DC3A23094F41C4F451AF8D36E65B5C34172546E9413B0AECAC49F6135443A02D9489209505011DA369893817BC66170E8D0A172F2D9F22C265536D67892DB430E8FB8B6390B49842336794325790AAF2957728DDA51B9A1136A5B0CA6C87273D01108F3A40CA16873AD5C5681C405B0D0170407200E09F6FFF3A5CAC69405A50A9C2BB60A7B6950AC6C252052A581014C398A3014838842D2528A50C58C6A41102B15A495064080AD1E9B8024127E0F5919A3CB836D0830275027C115107BF5DC73CF4D72CD592B3746B50ACDE748911C8A6BA0DE6DB991A75DA0CD0704F3FD0DA20A49274B0EDF44CBE2D16C198C0B2648D92BB007C6FAC1FA53B8B0487400BEF0C20BE57CD23928D5AF146F795DC9312CC6DB571BBE4EAD405B10085C7BB65654AE4B8FF5EA9F952390D61156D160C3793D45B60746D88232BE0A9E72A85C700022A404D20573CBF77D3CC4D57E20613D4A956AD05C81B65A40B0CC66BDA8DCD81C0D561381DAC4468D2C1ECD3091AE0514363930AFC8FC8304C69C83A3C06871F2E4C989754AE729214695B5969D00640C9FA954F5A541DCEF0ED5FA52D4AADA7DC8F14146D5424F664D56D95639B669663FE2250AE619F9E450B11056C2F6CB000A0E2D59D822C464B9B212018E4AA5DA78696006820DFC8DF52187DE4B64D146EFAA2692521CAE1F6916422C3A1B65C209C8642AAC19240C5A3267941C6A0B8CB70ED60453AD9318C534A441E4BC35175B85589E8585855264BB2238EB4A0D5AB7DA5A2B17273CE680F1684DE4D0E07BB15EB072418AB892D66225C77058E56D947B75A3A581F31B0A935A95D27E20D80958C7E9671B50D3582B178B49756DBC3A8A36A967507770BF305CC85459A8A639A20F6CC6149B9F23567240A55A57AC6D234160008249CBAB1B95EC941C3E735F0C68F05D0CA3C0A3EC89C7D3949971394ED2265419D3E111320754451910C83900B966213C70059FA73CA56126E7DE1C951A341350A9B6CD8A3408E2FC13DCAFAD931B4BCC939C80A1F9E4AC84814D4FCF38C080B297AE0E509B991B84A89800092E36A0619D5CCE11C34D64C4736AC34C9389F2999FC39FEC84A2308152233F10128AB24B9F61480596E43EE4B15E720C7AC6B1D04C91652DD83E1B70FD60202208340E13E46AC0AF810C40481238061171EB2B9A1722E9744757C8F296C5DA36422D4AAD74385E6FB84889C85D63AD4AADDACD5E1BD0A761EA65961A16B54EE34CD3E74D6A5E534D584CC94B4D0F9A6A71E17733A9090E40FC9F39E5BAFAE5E21C121472C3ACC613F90FAA4AA52AB282603068B4D2A14EC85D60A95D7D44FF0C43449887DCD6E2D121AAA3CE3D720115DFC39092F7DF7FBFB47841A220F60A921907101D802ED5D81DB2EEDBD765C1B62DB58090ABEE6D0A9806E366BAC9EA4E409C34B42E31688EF5964C8EC03E1330EFC0C1C374597ACA719D3A75AA3C900012D97ED9243962394731B410F114929C491A04D4E3998029846FB8D2679D4E40A84A94141804854B3AE4E0307A131CDBF3AE0EE92947FC15CCC350BF2055581B0C12C7BF1E5E13EEB6206930186C4CA5430061BC56C596C9BB21E123AE90766F3950862DB09A4888FA9012C448FE92CB849B838BE4A8E38541E3440E6384E97733FB0F5205D641A85DAE75E2C9E8951C00C78CD4BDF503C174AFE3A83EE4FAFE733A016539FBBA664C1BC166234990FACD6CBA35F1100E26363172994EC05C609503DF4B10FAFA90BB30AE80A148E5783413D260F58975AF994CB12633AE6FE873356AA275B2EBF3322B109B86641EA10FF883DA582B97197ECC97871A84E7F492430DF2499594B2A075929D86526A3455F736411AE81BDDF299625532A6F7212FFBD1B82C1DA13CC2A7DEC89C71F637C76641C09CFC59A6C99A7E77937DB3F5BFB7A9C14699B8777003AA40684083D77148606E7C123BD4CF51A7794D99F5570CF2D4BDD5401002049734D0412094A8B58FEAF7A6F621C7CF4565028682829510714A322B107A31C2AC6354B58D36DFFA3887A9CD58E8C9CCAEB14C5A82F103E65A589F30674C93C5A3ABAA611D23881B1C957F23B3340801824B1A4820C4D4AD4A32E5BA3847A81A45EE8005C6C2329C5A7AC69908D50FBBA916D7D5AB5727AA17240A5265697D0258F440C53A85A46DEF15AB3570E79A9006BA74F64983102058D2760B935A95AD0FB94B8DA2679CC5A32111B888BAEFA34EF1B767E431B53ADFE633F9D29F810B73CB909213274E4C3CE57A5169D3464B55AB262AD50C4883C1C05BF6C75A28CEE6E748921C3E9502EA120B2948CF38EBB4CEA267BC892A832E0B95E9A4AC3330CF88ADC2A173E1C28589A7FCD8B1636B72CA754F79D8FDDBC031DE4A675A0E929C531A4497FD4958FF8913D0F5C3AC40C85EE3508B183B25C130AD76BEFD307BCAE1008454C15AB0FA3AA48BBE0EA169B20087A9D6AE09048603C1290D428090A388F4EADFB592DC82608DE430E9663899481E4DC5A3434D8AFD68460A625DE829BF7CF972295590260BC98222D37E29E2901C0D7103F918220DC2C0648C8C2C64375952812842EEDAC810E5A8DE6DB2C1E7F492332B9069B2AEEF6EC2A4DB342F01B9262FE321934BC53349155900DC6D8D332A72C8B11D8E23B84193D2603D98D601C199352A25879EF854AB0541EC468C699C09DE42EF388B37402550E4733CC89533509397C4720EDBFDE390E1BDE264C7BC324ECDD52833669E53D6C9143E82F8528984C4BAB70D4A83A899F286AC479972730140FF194806A6C932380EBA31360E25539B6BE5120C20CF6C220A2B14CCB5EC8A85C3C1275552CA82DABFCB707029958A9B34441A04589302C0142E0D62F79D8B73F8D4AC6427A00F302CFC86D3128FEC948A8CB7985CE9140936EBE65B1663C38505827F08FC0E2A2CEE9345B6718034050CFBE49585A21B930683868060BA135FF8888FAC3B9D8026F7BD6B211837C50270587C3801E1D88AED49B151E6DBBAA6DC1453ADF49443A280A3C0FA84E7983F9A729B0606967B5820677C50CCAA341844A95AE3E03EE42629125D0E54E70E900A4C91657C1016932A429DC6996DB32E850CB629C08102F50B1C05FD3CE02967FB0248153DDA2087D95C719091FA96618C34981D2018E7BF086D7766FA5C74F511168F8684C017303D9696125B98484AB186CDA42A35A57E21381317EE1F4081EAF5E94F7FBA5C035629D1D5AFD4A1CEBA2D9124792640E0E2548D553CA4F8A1679CC5A3192A22C3449892D9948F63237C27264FF0464A21A85690C8EC530E7F062A52C2BFC1EE585897E4509BC1CA9667647C5301A14821E4BEC427A713102715BDE46CAB6C0A13C9DD226D96D5245771057D2E9A0413D602AA170C1C307AC04B0E6FF9E2E262A9C6BEF5D65B299C634BD11C1036A062E2B81617744A0ED65DA5AA54A75EAE6FB05C661BD527A6ADA63A007DF38D758154A199985987F1E0283DE3C58C00A1C8F115219A519213D047A46B659A5551BD34F5E27755B57213177676410550E01E2189F97F4AE2D4C038D73AA4A6064072CCBE3488323078D52A27E7F06DFA9C45A469D902289804C5EC378003D22335977C5AF5727D6A9569300310273B13C1C01340AE011036004A398C72997395D4981B6896AAD9940671DFDB1821AFBB19D9DF4EB655A6DD3E256C62B3F012D76089545C0CA3C11C01287CCF94AB1103DE34A9B1A678DBA604424E429ED487DCA746D1CC2B536461974794684CC58D8D28C739EDC18C495C981FCC1B424AD0A90952941D78317F3ADFCBEE001CD4E21B3349E01B35E5869C587A8A2C1B3ED2ECE8EB06E5FA6EFDF74CAB4EEE4601948963B042011CE02888BD7AF1C51727738ACB942A5B771E02CB7E6E2A73AE2E395CB154B55A10C8052099A6FF83E56570C2B1AD725B1A67DA74FCDC6124269E225365115202BF060A30D0E701C96252BFD238C73A32BEC9CDB9ABD5207C6D18925B10C8218B47EB6D95DB543C7A56D52FD4F5C285A2D20C290150A08A31860D404906E76A01B762F301616C443ACDB8364084243E399D80940E00053B10B19F04A5436C21B1586B97BB104037EBE592B0A30533D60840C105BEC2D0F71042AF718ED1060321501AAC0781816878394708511FF97C11F812E91597F572735BB772D6CA6DCAF2A4AB522100E5E1D244B430E3AF2055C853D8A033021898F8E19440504B1A9840B0E6A45CDBF3B00809ACB5ED3BA713102790F43BD471FAD9064B64524A6D3669E0AB4082C1242FC6A5D5F194BB2435AB494607229AABEDCFA4349800A170004560254442C8F45949CCBD4EC0D80DE27B8FB67D6C16063232688EF15C6D1B8C9EC5FDE23000B1C6E4D30198EAF3C965CE1DE6E11BF9A54100105C35B4624CB9A682D35932017DA0C0A680B585FE0FDAF661719127A8AB56EE344713D28B460CE664B0F23A8205313F0CFD0F4995CD090C41C6674F1AC8C74168DB8181E8653F4EEA434E2912ED040C911826CF388000BDB84E48F53455A550CEE1FABCEB3E195F8579813A8934597005F4FF83A1830EC050536D4D07E0A831206496066610D8D5CC943EE4FC99A44C40D3CFC81459B60C86DF03767AFA3EFA611E20EB74F0F160817A79F6ECD9722ED95116576C8BE508CE51C48360E027C9855B62C44B03F3E7CC7578E3BA8965E943CE21DB2AB36800EBB84ADF471396ADB6155D90F7CE9C722435B1AA21CA7FBEFCF2CB6B3CE5A6B94D7200AE931C0D4903CD9A94220D9EFD2A7F89D2D8D8AA606B956D8331548445CAB858940EA6C699B3A42AE524BC3EB52AC7C01CC39F810BEA17C83C8214D1A71C1247B65FAEC739C6E126D3294983102058FA785426DC4C2D086CA5DA01029A5AF5E2D10CC5EE55A6E9A95FF4699C3B776ED2A60040814ACB960FB1A6DC4272CF14936943D240DF9786CF14EB7FD7B33F4757AB6289B95372409CCBAA2221C5A353CDC1FD889766B06C5DBC78B16C0A047040AA205D16A4FECD37DF0CFD46D45498F359934C20301DAACD4B83F520B018B7D6996863556BA71310A71400A2178FCEAD32513A5569B25EAFA6ADFDB2D46D63FFB6263909C23AF0F7B04A7D4E4F39BF0BDF4DA9C2E8E8C0EF989B96340894184E6960D6F406264DAF909C2326FA22A80F798A5408B56E8168F2924596D5C24EBD56AE0B4C21BCC3C73970C25335055070D8B04E6E2E4F79FA61351E169140489506EBAD496E6910028455100C2C607AF637A4F4061C35718A9906D4334806A6C96273D0DCCB3E812CB2D046AE409E868967DD6016958E0D16CCE9E7188F57E6F4D602B3220D34E3D63A2098C0B41E58EB9D80A15224CA0918CB23D8DB8E6113345142FCBB723D7CED0742CDB8B368BE959E72A8409823D6C9C5A1C19C7AE6D5A702237C9DC67352954D31994E571A44CD75617202864A9151A8273C4462E00B71F2F3648444A0231027E3B4097A8EDF17E3254FF97D90A06840830BD2155E721C284895C57B983F38FF6C16A8DA2903E3D5A20A29D2603D98063EE39617082920B01BE1327793754DBAE9FFF48CE30484B8C222E2D4434EB4DE38B31F7EF58B9E700C4814589F90268BF965C213E6375F47ADF1DCB4A4C17A4B71162038BF21444A4487ACDB269C3A338B4763E3B38B2C7B056291EBF83E6CDECEAE2537510D85B9567ACAF1283DE52CC59ACA396280B0F1D2201F0FF601288873C86AEAF821D65902286401859400BC14D04C530ACD8AC4939E72486B64FED10188C5959EF2A8FB1B8C8700848500079A4CA72B0DEAAC9FCF1128A5885372C0EC48CF381D81F48CEBAD05BAE4F48B89CC6D62603DD828F3FCF9F3E53A81D03FF7DC73E5010690BCFBEEBBA13733A7AB3BA1D24007D3460341FFDE943EE4F2F3AEC0C302A7101C4A048329673C87589B20B52AE09063E3E650C1726D74485D1E304D8014121CDD64AF5CB932C99D89B3566D2E6910FABDA975AB82FA90833FD47108FA06380B6BE5B25E6EC8A674BD3F8BBC84F91A78C481434FB9AB3077ECA1C3FF331831E6CF2359DECC40B0CD53637DC8534D86AEF7A0A6C1BA0530D00146932F360FAC33B3C2117C5E739B5AA50394258C7818600E709FACE8C2F2461B73CFF090CF1C10327DE7B8D9E63575D528A84A38350108FA3E60698149929E7179C2E6DCD875A4489D49B5A976D2530E732D40028E000B140D1D989B189F505D6FB9941A9B411AC47C874BAD0A89D01DE5AAA02ED51A164F606B345A5250E632B40A624EEE30ABA49E4061031A565E87050A0061AAAC4DAA64AA1956B40108296A955772C498C06C83ED82C91D700202102088CC0ACCA9DE84E605A7002C7701B9D0CD0A7E0790E0C27CC20285D82B7495A57330BF03B0FCC9A20130CC44DF8EBAB59447298D2CF14BE91987DA84C5A4C30A80908D33DBD4F22C8473E4E03D003F3DE528FF09B5148E3F7494C59C0324788FED99EBF51D6FBA24CF46AA6CEB0BF0656941204F4B7E31CBC930010A44128B247D1F75BCB54D718A1009D2449E7BAEC183E7C2850BE51AC001884699AFBCF24A39F76C5340091D175B3575CE314502BF3EC2389BE46025116959E265F28CE726B43E35A7CE86DE28B25E77402AC34B8E604E486DE694A3F8020E2D4A14489708B56A1349837ADF6BDBAB5EC9A1FF20732B7430D8ECF3D3F4926FA4354A57AD7C5623D61CCE7DFFB808064815A85F000B2E78D023AC55451B81E09B3B1F39774A0E4C3C48619D3011DF6719B7850B2A43489A6C2E804C0B58D8B4B8371C303952656D641C8610B65F0E27AD511B70D64150E45CC751E807539D7EA6C14A884C9165F20F24D4DEBD7BA3D264A70D90944D4D07271D8038705854BA6EC1BBFA7E8E71B1098150988877CAAF7191F551DD132CA4EA3A00201D81ECAC0AC924FB049A6AE5E632CBA5980173AA8D7AAA2C2305E02967766068A3CC5CC0D89CD2606C78BB3058A9EA1B58464D94D8C1E7714AC256CF5E81AC34EE4B914D91104D480F5F06A0EBB590EF2650C00D20417178C002253B35D952657301A3288A6223F22CC2BFC30784712058D2B8C8286673B8DE8774406950AA0E900E30312223908EAB26897993EA55D3151CD92D0B5C0107090E15481478CA21515884DB96AB5147A2C5E2697AD260E00182516214B112C3B5DEA33ACD68B090B2AD32421ED856B94E8A6CCAE7430092029E699736C57C31A71C7F2F424AE0007CF5D557CBFF03240091CB0198E9EF9C6169A083C006A67A0019C54EACF48CB38FB64C91D51B6736B1A14C20A85B2822E56742FD3175EE13870D2E78CA31EF70009E3973A6040D8B2F60FE13C978CE1A618124B9AE34880153BDBD37F20511CA3A4BB0B85057C6C2503A40850A6922DF3440E4EF6D3AD929F4FE72AA7A9877E493E382B40647C1F5A94F7DAA54CB0014E9299F1ED10E9106030F104C2A515D30D59B7BA71310CE242C02269BA656BDB540EE1E813EC2A96F3617494FD9A029126823BADD62FEE9D3801487EA054F392A9580FFFDFCE73FDFE4D2201E4CC5206F0CA5537240BF851525963BA436CE646B0346DD865AD26C9B30B56EAEEB6742FE26FDEF81A102AFD76994E99B03AAB6E8E9018348C43DE383C3786910028426A4C17A108C1960B8EE33F590E274023619260210601199260B93654814AF8F6FC45645AC0B749FE4C4DF0150E01E59FE13FFA785AA09E91AA356B1A66CFC061E0490E4FA603201410781EEE4D73FD388E488B584F840C34E500005AD5B6C20097030C851DFE8A17C63DA237463B38F092C4CE06DE06F4C6C625597D04699A96BE380C738EE244F95066E309954221F104C2030B4D669061C7537098B470310B870623262D4D5892846EFB74991263309EB78F0710830049DE553592B972DCF521AD0A4FB39E4460E31994E471AC847E3670C2030159CCB46C87DA75288946169180612D21409DF874FDCA7FA2172E669E4E022A1C6007C8E6DA741AED9A200CD67F01C20C1DC814FB83CE5F5B2020B61CE4D35994E571A045664DF58C9C19F959E71B655861585F9CFD330EBB6613000130709D44E701458A1D05516AA17242E9C838CBFCA1342324894066BC1E49306214008910681E549B3280C5E27A0ADA20880008E80E72C1E8DB8293CAF533C3AC4C2B4598A2ED4F93B317F984F5CF81E486398D63FFBD9CF96C60C808439E5350F89718C5A942A0DD659933CD22004082610E454AD8208B97404B2AD324345F048C2991250A87314FC3A00CFA5AACCEAC697AFF139E6057356B72E1573CADF7BEFBD721D58A504D205EBC0F2A0F1F32437BBDF643A0D69100284103065951CFAC4425D6235752C2E01618B9B4AD9C015695F510B5EE639A9FF174C78D273D86D5C63DA92C4E75791EFA38D1B542398C52155954A54D4CD0A845A85CC3F34CAC441C29C72380061F4804441A18B50EC151304D43399E6920626FE9000A66625071619A080E876B5558E3507339F61F7EEDD4FD5E6414FBAB102C810C090AA5C68D8782838423E5707687ADA251E2BB0979B56F1B23108B79AC7F1BD7BF78AD88AE8A6B9C09A209F9C8D32214970851E54FBE7F72C3F7982FE848FB393E426A4414A7BB4DA92C33499901438D9532A8A98363748BB9246CB0A18734A6F7EAA9E8F209D2040F8333C55F95C3AF4F87FF9B9D80D9E1320BA1AC512F6FA23E6108781E20DE50F28E95B283555DDC24AA1A4C98ABAE672C443615E709031A1CA37DE78E3275FB876ED93634A3D3B77E2C4894BFBF61DBCB47FFFA19B0F1E3EDE72EF1EFEA6652308746B500A494E95064DB4474BB656D52D175AA94D00427982AAC7E1FEFDFB0BA5878F7429C0CD8F475E3A10A454D101628ABB8A89C70A310DBB7E17EE153F4F60E0FFB8081002087D358E1E3D3A843451A77EA1A4C858DD4B294D52D5AE1495B6EAF771EC873FFCE131481D907E25759E2E2E1EFBE0CC9933E717178F02301FEDD9BBFFCED2D283EDEA1AEABC32441A248229BE214E7C02607E536EA8BF43A910CB6A53CCE1945404720B540A2919E426E7EBFAC6C0FFB12026E098FE968D50B1B8E9090C3C12287C1F7F2F0BE011305509D061657D2AAE5EBDBAFCE8D1A39102CDB292DAA350B52B47F543A8CB55C5C53945FACF7CEF7B7F7B067F1F543475983D7AEEB9E7DE5380B978E8D0E10BFBF71FBEB263C7AE8777EE2EEDB87FFFA168B699471AF8C014E67269C0946BD3EB43174401E1895AFC11D4264514473825D5A6D82255226E765EF83F5FD39FF331B4514CE8C91FF2B9D82A28040841CC204A6C3CAAA700886E16C7E72A6932C2BD5EBE7C79A480F2547DCF50A95C4F01141BD76BAA8B1606241B7C2EEADAF6F6DB6FBFF2ED6F7FFB15B6883E78F0E0BD13274EFE12803970E0E0A503070E7F5C14A3A70A30DBC15F56FFB606A44158006F3128A62C396C8BA116FDA95AE0526D5213579C3C7912E6D8910402370C373F2F768892609040DA48AB541D49A37326DE17EE1780A0CA857BC6FFE56BCF3FFF3C2C4F73E00FE7CF9F2F6EDDBA05B56B458164E852BBA661EE663E8F52C776BFF5D65BAFA97B7B0DE12F50C914C0AF9D3A75FADD53A74E5D9E9FDFAFF8CBE16B4F9657E6147FD9F2E8D193228B34F08160ED678AEC922304245564E913B5B823759A3C5580D88AD34F2DDC5097022610E8D2830B4E129BC3C7914B82D4F99D7AD1307678C2FD131C942C0409B32CB1E93EFFF9CFC378016932F7C1071F4CCCE888C192955B36CA0F442300AE4B972E1DFAC94F7E724816C256D2F09202FBB9E3C79F538039705971985BF71F3CDAB6B4747F6EF9C9533308428090B7B6821D1CA17913556F8D27D08BD5623E557AE8E8ECD9B3857ABE95A7A294123A9FE046A1CEAD9B6CE5E7A6DD1C33347030441533493AD36B24EE52D2C8EE56B85892559DC665180980A5549C326FA35A93650592D16086865608FBB91FFCE007CFE11E48F88F1D3B7E5EA9631F28E05CDCB7EFC095DDBBE7EFDDBDB7CA5F60C15B77E687A47C1896AA31B58A8B53399556EEDCB98394E3E2C08103E32F7EF18B05F8040141A940B289934F57A74C6A524C49CD94CD6AF385A466EE2594BE714A119B8F04F3C88BF349950B860E35FF259947B0E21B6FBC01320FB54B4DF9D339B64A9EB5101B80BA0A87997BF7DD775FF89BBFF9EB1798E3A2F6D4432559DE55E0BFA0F6D5E5F9FD87AE6EDDBAE3F15DC55F1E3C78547872331ABBD14211ABB165B11E2875691B265B2DCA8A128D732881CFD34EF6A0B381A0691DDF763AFBBE27E5675C3FE79214A9F7E3030B0183D7B0063FFDE94F911AFB44A95D9022709A8C41A473671E363D109101C02890DC3E79F2D47BCF3F7FFAE2FEFD25E1FF64653C2CEEDD5BDA261D964E403EBEF5EA9FFDD97FFD1775D4AABFB79C8EFBD5C4437D7A000FF6C58B170B842C0CD667AE4C1ED5E777ABCF1E54A27E3BAD3072D12BEBCD5DB560D7575F2A0EAAE7BB7520A9DFB9AC5E43E8E98AE7942842DEABBEBFF09C36EB7E5EFBBB0ADF89A595D69CE367B4DC92B1E1BE062623A4FAFC1CBFD3023648F327FC990A4C786DEB461B305207FB277EF8E187FB7EF6B39FFDAABA875F45621800A338EDC7AB84FFE487F3F3072FED9B3F78F3F1E3E5D1D2D2832D8F1FE72F2A315262EE8B39BEE82B5FF9CACB3FFAD18FFE8F129965D420E27C40CA38A07322584E81E32FBFFEF5AFFF47804FDDF8AFA913E24F9796965E5327DE1EF51978CFDF56E4EEAF579E9964504BFFC6265B631C1487D5FDFF73755F2F28D5748752831EAB7BFB85D2C3FFBADACC2017D7B01F0460F0DA13350F8F1511FF0FAFBFFEFA2BF832183AD0E1490EA5AF63F35F5404F88CA6854F9E2B55063FFF79717D4E5DFB36D344CAF244EA703EA2F6D81148CC8AF08F1717172F3CFFFC99F78F1F3F7E49F1978FF6EE5B7558DE5F7A3857172EB5891C8EFF2F7FF9CBFF5EF192FFA4FEE8C32813837D2DD35DB59B3DA51E4E021CEAF9E8934F3EF98EFAB93776EDDA754A499C1BB76FDFBE5F2D2E360B3A6ADE1B6CC2A1E6E08902C2779404FDBEBAB705756F9FA8FF3FD024C48AD8D0903443357FAF2A55F78FD47C2E602E3D5C679F3A615728420CEFBF515D93B5520FA7D5F59A069A139B696EA14622964C5DC5F9F3E74FFDDDDFFDDD291CBE555CD9B2E22FE7CE9E3DF381FADCA15A7BBB0E37F8933FF99323EA8FFBAA2285BF09479514F9901C38F1989843C9A14ED2EBDFFCE637FF54BDB45B5D90325BB831D4B5B5DA34CB03B37B67B38D617500F1FE786F4FAB6BCDBD7DE10B5FF8E30F3EF8E03575606C97AF631E5F7AE9A532D64D4A0E05C06535D7AF7EE31BDF3857016D3C4EA9245D140734B0E07A39C7E1B9910307B4DEB1786A92E3F2E5CBFFEDFBDFFFFE3F363906DF79E79D521482C4CBCAE1F7EEDDDBA744E18B1F7DF4D1DD6AD34C0E5B753D9C8615629A875C75798752A37EE717BFF8C56FC0D1A7BF072F35FC1A0A3C6B00A2D426581BFF9D7AFA9FABB903589EC682447D146AEB77AA8B8081E87FB5020A25CD67D5B577B34C7E1D60D402C7BF5643498C3F70AD01720A70EA21E48003D694858585CF2870FCD0B766D334DBE5508F6B9C7088A7FA2D13302451FD877FF88752826887CD2B955A74BB52410192C72920D100839DF593EA926AD9198394796ED0C2910C0EB590FF58E97CDB7D9F7BEBADB7065FFAD29726DE5CE88B8A9C1E9AF6069CE5A1C8F67357AF5E3DE8FB1CFC04BA575C1D360BEAE9F3EABAA3AE5B154820951F0890AC8C337853ABEF78AFBABE264073D000989736BB5A96F4C7E304F9E217BF1844E2586C1AA6DD73E7CEC144070BC3FB837E3C63D5FBF6BDA8E66618F2592436411A032890248ADB415A1CA9D49DFD0690C0C0F1482DD9320D00E3CC6107EAEB609AFF7675718FE0E0FC150D3050CBF6B4121C9558C52222123D388D0D5548000C00452DE6ED8B172F9EEB21B1E600B98BC3434A05DB80571CDE66848F287515FBFCC3CAB00163C68E6AF3CD57C02048EE1024A02A6A1993C97B0460B03F7E545D72FF9C354899E39B161C12145091D5B553A946B743E391641F73754ABEF1CB5FFEF2610F893584FB97870E1D7AACA4EAD610494CE7EACB2FBFFCEE4F7FFAD3BFAFD686E6E02D15586C2059AA54AEE5BABC24512D7BB7BABE2AF6D76103603EAD196C660B1C2650507CAB93EB674A57BE73E1C205AFF5A2EA18BBA216F3ED37DF7CF31B831CCD135A342E5FBE7CE3739FFBDC470A1CA77C9F45C7272425BDF2CA2B1FA9F13F45F87A21D69420C19AC164BEAF22EBB7055008922795CA3535901840F3897AF8667549B5EC3306B56CF786824380625489EB5D1528E62BBD76AF3AFD9F7CE10B5FF87F6A617FD35592A72AEB737F6161E1F51FFFF8C7AF57DF71AF12F12B3D3456F7C7A3478FBE333F3FFF6F6EDDBAB5D5038E27EA736F2935F59B8A8CDFAFA4C4F260AD6F68E254AC4022D7F08006927B95CAF544F29226B849825AF67A75C97DF9C260AD7919D762137F436148332D2A506C3381A2426EA9DFAA4DFFBC921E7FAC16EAA82D0147BD7F43E9C95F57FAF4236171C2F38F2B91DF0364756C51D2E0DF9E3F7FFE330F1E3C185A80F1487193EF2A527E510061B9DAE0084579EC90C80C594154C5C34A7298C8FBE36A4D5606CF82C5C706F5686686DAB2470C6AD9A7EAAA658516D6CD13C7058A9150B39E53C47CDFE9D3A77FFFDAB56BA714F19EFC31F0881F3B76ECE37BF7EEFD40A9011F89095EA91600E0B859FD3FB7FFA2D864DF5554737EFCE4C993BFA9C0F12B6ACE76C8FC96A3478FDE558F6F29D5EB2DC3CF63B35FAD36FB8AE3F7160224CBD521755FE3254BD5FA3C193CF3E64BB06C0AD0A8B9DA6151CB76D501C7D64A479D378082C48F6AD78EEA737B8E1C39727AEFDEBD5F502AD65EF53558AC5B1F7CF0C1F79FAEEA5C63018A87D522DEA9263F6553163536E1ACFE2EA83FF017ECDFB56BD701359F9F536B73445D2852F14849DFBF5F5A5ABA3F581B5633AEE6149BFA7AB5A16DF97173DAFAE9D2E47E058C89235103C9B2F67CD38146ED4BDCFF8B06297334141C5B2A74EDB280C234E9739AB5843FF7544CEA5331814FB513AE08DC44A9AFCDEA77E9A7BA9CBFADD57312EB39B191E5F5586C581B18C91F659CD79C061879802D8BB593C0786CF8FDCBDAF5D4A096ADCC3868164C6A998973CC89891C462CF240932A8576928C339FDCA9277A6EC9D2C4EFD20FA3A1813FC88DE7039F3CC446964B1E7285B6F6FA265F3100F5B141B2E8C0196F1649A370B0D346C88B0CFAF6ACEAFD9B9597D4FD3E6E782935E6340932670091E933430B4857344EB36C90324FC5FB4F358D62C570A06E18688A8D0069B11953D436FFD093A15C970D30C380D7879A84D3A58D0E8E650358F87C6C915C53014AD196C62FFDC87238C500686801CC50A864A6D7C606F5704503C7534D0D5B11AFAD0855722C84CAB807473F361A4436000D2C00B281467E66A06D761D384FB5CB64255BC90D901E1CFDD8082934308048074D61E11E529AE857560932EA97B71F758663338E1300A43FD73F2BDFD32547CF39FAD13909347080664D9D815EADEA470FA2C174AC55FF1F431B0AD706D1DE680000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (90,1,'Rack_42_with_door_(64)',0x89504E470D0A1A0A0000000D4948445200000064000000DD08060000004D27D7E90000000473424954080808087C0864880000000970485973000006A1000006A101E86410CF0000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00002B214944415478DAED5D4B8C1CD775ADEAEEE99921871CFE873343529225599265C0326C69E3184680AC027813208897CE226B239B6C0204F03E8037F92CB2C9228091459C209B6CA2040A9008700404909C388A4491123FE677381F0EC9F97457EEA979A779FBF67BAFAA7B7AAACA890B28F477A6DF7BF7DD7BEEFFA5599625D3B852B9F4CB64BAD7D020B3690DBA81577A98B9ADAEAE1EEBF7FBBF25F7EFCACBAF0A4DF60A883678E4AD5FC79EB75AADFCB9FCD6BC3C5E9D9999F9B34EA7F3E38F3EFA68E7FF2D412E5FBE7C6E6F6FEFF7E46F7EBBD7EB5DDEDFDF3FF9E4C993AEBC578683F29B0B6B1FEDF3D07771B7DBED6476763611A2ECC9F3C7F2DE1DF989BF1662FDF9871F7E78EFFF2C412E5DBAF49A2CFCEFCBD3DF90C7734280E33B3B3B1D99B87741430B197B9F8BAC5F6B8EF01103AFF9A8BF2373E9C9FD44EE8732C677E5F147EFBFFFFE7FFE5211E4CA952B2F522CC84E7F5576DD0F6432EFC8CB13F2D83D589BE145D28BE01333F6BB31C2952528BF2B622A27065F87380E1BEDD9B367FDDDDDDD3D99C7963C7EF0F8F1E31FDDBB77EF5FAE5DBBF6ACB10479E9A597322EA288819B6FBCF1C625210A88930847243291FC1137DEB3373F9785802C9FF5719CC67B4B384D4C2BDEF85C6F08E1D467B2C073DD6E17222BC12388A49FF333BE8F5BFE2EB97EFDFADD1B376E5C90BFBF25E3BCEABB6FDDBAF5A84E827430685EF3F3F38FDF7EFB6DECACE4E9D3A7F9A3BEF57BDBDBDB393120BE3059994C1F0B86D776F10FA338E8BFC5FFC78E97DF9BC3B88123737373C9B163C7F2EF9183F0BBFA733CE21662ACCB674BF2BD4BF27DDCDFC1DFE1E6B845517914221608F9F0E1C323D5F03A5AF47027DA05E480410861FB015760D220065E83209A184771B9C5CBF09BD8F54AD40E7005DCA1E7A0E742A269026862BBFF7F5AEE6FE2F67CE7D9B973E7AE1922F1F9F5ADADAD9DA97108C5849E800078F2E8D1A39C339C58CA77230115EF617138D998689A94007A4C6EC152BDD0E40610C27150FE19C6456D4CCF496F3E7287E5120F9178CFC977DE908FDEF07CA77FF2E4C99B1E42E5B7ACE546298260D0BCE4796B6D6D2D114AE7C4C0E04F9C3891B33DC5150980C1EB85F211E308B9643006FD1E160784C178F188B1622E1C378C57BDC8250830CE77205EAEB8FBD7EDF7644CD0FCAECA6723C492F77E4163774010B7D3DA988C60C9107660D7F1D28430A2A16577AE0FB027E50E8DF91AAB0263C9FF96C4019738D1DCD6E3C1E7BFF6EDEFFCCDE6E656FAF4C9F6F2D6D6E6CAFAFAA315C1C719CC9BEAFD2444F27CFFAC7CEFACBC7EC7F3FDA732AECF40AC0EC58F5BEC3D12C307AA7C0E990D0E22A8BBDD9959D170184EB1C4D0CF212A8121788F62D362867DC4F765ACFB7A31F07C75F54BEF2D9C68DFC677E6E6BAC9C993C7D2DD9DCDC5EDED47E71E3D7A78616B737D497073697B7B0BC45A158E5B146338FF5DBBE8CE9330329712449D97FB4D79FFCD218210D4AD68C084A15569CD8A22410F4C7385E69471C4584C23D3FF8313E264310E8A592C7E08D8AD684D95DBEDD9B35DDCF8F27A922CAE2F9C58FC74E104C1B69D2C9E3C2EECB937BFFD78EDCCA347F72F6CAC3F3ABFB9B571F1C9F6E365C1DA958D8DF56559A316C631A9E81B12595ACB0297004F08E89824F004BB4363896F0135A6587C9944DDB50B693FA3058F4D82477030360F151102BBD6B2F8BCAC1B747FBF973C5CDBC4D3A7B2A16FCDCD5FC19D2C2D1F8C6D61613E59383EDBDADA7A707A63FDFEB9B53521D88670D7F6D6F2C6FABA106CED9270DA31AC1FA58A8F481DED8290E7DDDBB76F0FD4C853A74E0DE189F5599985498B76F524A22A4428A3790DA9B516D83737376928CE70AE1431D35234B6B69EE096156E3F6CCF5C7C787EE9E2C7E7970E3E87283CB5B890ECED3F3EFEF77FF7577FF8B39F7DF4E510970C19868087E5E5E52123D04E3AA4E9C45CEE93102522BE528C9993B122CC02BB360E85387BFC3BED7639EA0BA2F0CEB33588BDED76BBB31BD3F4860C43A272084CF11C5C42CD0B22417DA71FF2F04E0BD839468C81A21613D2201F03762BB2AA2046D19A582E1912590468CD050474C83E1A5DD87124CEB85C115B84B22E163D015AE81C0FE712B2D8ED62544D94562B1D2182E6920E7D3F9AED21AE60A113376805538C69C21501F03862CB27AA42E2CBE712A1C50E02693F1B81DDEE48AD55D6C521764C435A964C60F6CE9D3BF9841617177340D74428D8C553C590D0EF84EC9318B083301B1B1B98D78CCFB36C22C4474C9096974338AF2182C8A2EF2C2D2D0D403D04E47C4DD5D7EDB44A781FBE2C726C19CCD016BB067512EEC00EC92A15595AD3D31C32709D58E3CD271E34A09363C8F2CE91D72FC31D216EF189BD0097643400F5783106EB5F0BD92C5C88FCEF2BC7F5E718E2557B7D86212F4C12EE76DC2006FE00BB4D13689AB2B50CA85B6B9D7FC3C96960A7C56E415D2F489AD40BEA236AAF759D40A3A2CB1D040118E23B78CDF7ACF8AAFAB2C66008D869B113D835E1068661C51C525AED751FCE4214C14247DCC367A147B49DD638BB7B522E018650332CB237B4B7D7D92E339AA30E38A46A82B48AD55EB5203BF057852C744D04ED65750BDDAF8A41B4FFAA08D855781A63DE1BF565552FB2A26AAF2F05C73721EC30AAC078AE5D0F0CA95675D152A7856E81DD06AEF47C4640BD063B24E68EF78670F905C85F003AB41ABCD65E538FB737AD1A4742C04E57BCF6F4FA16A40E4B9D222BE48E1FD2B2E49EB97FFF7E3E19EEFA93274F0EEC12DC93B83A8E9A283160E766726A7ABB7E0E8973C91041604B9C3D7B36773BD8187A48CB716C3608E156312715922D340A9902E4D4F5AC291CE28B32E6300082301B503EEC053CAC43BA3F93E8282EF05CFEAE3250C746E182FB70CFE75A71F3EADB6CC9AA2F6DA9DB34D9A100951B741AB2D08127607F02AAFE3BBD23AB9A243897377F5FBBE24304D236573D1C5200EA7A6129BE983EC3A4387C196A23BF67C598CFEDE1CB3A394C064A11B02BB19BBF8FCDC3F7E85DB02A663D185202D495B36BF6EEDDBBF982631230107DD1C39A813D2D7228D22864AEAFF2BD75EB8E876871E505756D180AABEF5CB870612897D717BBD62282A05EC6529F26A8338C5B063B540877B709F1101F877083049D8BBEC911D071BB4CC001C6C802550AEACC6A676982DE3431ABDD26393489437C76C8C88480210474BADCB13B19B0AAD3FE60998475A158B0B796BA4E72A843CB0A257C7BBDBD0474DCD8F9F823381A75EC23E496A893385624E0620E808EB15B50AF8B437C9EDE110E91C59E45A893325A6349681194B652D5CCD21076E84DC278880E1F20EFCC827A5D5A56A978880C7EE7F4E9D3030BBD281F4BBB2AAA640A5D31E58B72FAC4940BE1EEFA43B8D5BB4E4AC54362E99A34BA743E16DFC77BB24095C92D5AEA980CEC23A3BA47DDF12376515A2F875817CA90DA6B4501011DEC4E0B9DE999D328573B2C7610C059CD45F1C9F77CF9C7231C52793CA43502EA5AD1E818BF4E0B18A2B3DCB103F11DEC4A24CB85EC92BABDBC7A4C0C5E715329304D9BE2ED0D82BA8E87C840DBCC65D2059E2119CDCB4DBE52C3B00C7610D8E98A67C14E53BCBD4150E72513DDC3E06DC14E282D88BE23B70BFBBED619D3F065190F749EDB0B55DC75732874C37337EA821D5647D561A947413D14C2B593624DBA2D6FD3B2FAA827A23DBD180709418BDD160B856224DA8FD5E8DC5E2D066099C3DBCB183A8D2B02668D0EC6D42EB406764E8E79BD56EBAA9F435AE5737B65E1BBEBEBEB83A4B8E3C78FE73B4F177FC6D24BEB02F6102770A25450746E6F5D1C829F2B8C8728AFE81E403D64A1FB164465965706EAD82876216376072D765FD167D3E2218310AE0BE3663120D7A240972D3B25A0326F2FEB0719F3A0C7B744F27536D2EC26A9CFDB6B6F579ADE0969330302004FB0E8AC2E55CDC492A36EA711BAD8EA83E3A6CFAA0CC790787558EAD6DB6B931C3AB6CD128D29787B5981AB5B54C4AA6FEBF2F2FA2C7682BD06760BEA7570087680350C47409D6C243B6E1689D6B8A0E7D3E3ABB12426CE9A66B55314909B7CA05E3D87B4CA652EE25A5858D871842965A1D34A87225035A8EBEE72658C425B853B106149FDB9BD9A5B46228631B1404A6A790C3101E2C9842B05756C241006A0CEF84D8C38D630ACCBDBAB0B76BC1C125B7C1A881059D4E5F577EA02745EDC0C3AD34487137CDC3D12314C92CA39249A0664070D02B0A5118840402748DA98892F09AD8C2FEBB0B8138AD7508DB7EF33796EA49343D3D280F4C49E3C79320B224014600265F3B19C81D51A7760937C172E748707C131F9EAD85D1DE48CF5F4D69DDB6BB9648820F3F3F33BF892CDC78A797AD9E6AF2AC3303BB8062D33CA62871BE708A8372E1E5254FAAC599F59283A5AC73CAD2A2F869119408B59EC4521DCEA2DF582784868A7D042674B0D17EF1D787E8BD4E1AAEC0F6E149D6765FAB70443B88D2CFAD43B085DAB11C2D531742659332662775D938C42FAD974CD3A77A1235ABB6E0E09C54306490EC6659D89713814C20D55E06A351244ABD0306C41E9D0A9AC45BE2B762E950967F573483CC9A1A58D3DE1889EED4315C2169D48E05C2B951A8620081B7686C2B81ECDAB6F55F2BABCBD218F6FC7804AEA2306C15B3BEAAA0CDFFA2E8C07F886DF677C9DE50756936A12861476720865B963D7EB1E59D885AE74AD11DE5E3D061D63A7780AF9B96C1A500D8940E540DD899E598470E9C6669235413E24BE9AE6EDB5F17465C57747E3210D4B72D08B293279077DB274C79FA2B6ADD4FFABF6F66A795CD4185359EBBB4D4B03B25CD289D5EF855C13BA82944D95055CFB232AA5A79FFCB440DD850B06D55110A9562169621A902FB777C8DB1BEBECA9E5B3B6D2ADBE5FD6173569FFDED0DFD1CF8671806B5893EE6BCB6433519E7B7B1B160FF135BDB4E783F0409482BEBDB56208DB69F06210CB8AB4BA1B98C5CAD97231AADF400897C11F003A9D77A17889E180CAA646FB27E650A44A4E2BD8797BBB56FFAFCB9735620FB97175F4E2A260071F68AD2A66A1BB06F79583237E577B7A63C62045B12BD7DBADBF8159522E1E1273B77352DAD4A7D795EE1511119516EC9053D0DF0BD6BAE6E62257CA10A827F583FA501A50C8A2650F1326586B70D555AE756209239C1449C00DC6D943DC33120FA9C1522F547B1517B4609D0347A855B19E2F948FD524A31063D41D4BD94E56856CD3516F6F33407DC025DA4D2D1CD10601A0DF6BA75D915DE24A8E2B330C219E7CC06E9F5B6047C18E75E6256933407DE05CD48B8CA34CA9FA16D5A1B3DE109F81AB2AF4F6E62294A93FE48222EC70BB70FF288EAB98C4522F95E4107241F8F2B16830EA36E4555D747E3A774FDEF58E89193160B7B187BA1A07944E72D05CC19CA7503E56933A3950EBE2219314B7BEE4EBFA931CD2F2490E02885D76B166136582652C1FAB09963A9FD3D3C009EB3EF1B6197F134ADAA2F1106008D89FE15BDB90DF2E003519DD9EC967815A9FD6B83BCAFC76EEED65655491B8A58AEED280F69BC021DA7D134D72489E1FB2533A1F8B9929B24895867019CB6719774960CFCA1E0E70945AD658967AC840B47E2256E5D615C2655F618C018481C50EFC20C7C632E1EBE490587B26AFA54E02B0628A3DB2EC293C4DC211E6906960F7695D3E8EA85EF52D00754D2599D42CDB67D0C660F8B3295A151731666FF82C76673B75EBAF0F698D05EA3BB0D26D03E59038A325EF0242AD8A88913279CF779099EF511D35BE3B520A5093B7D7E7C78A8670436209804EDF163B60BB8CF9CA92AD9D67205F649E661D3A952DD471AE3E2DAB357E1A9075D8E9D47F12A24E40D7CA054EF18478025190A0416FAF350A43A05E678BBF521CC25DCF2ED63A89D91EDDDD043CD19CC06A2A023B3947473DEBF05FC50CC3681A901063565BE804F42271E6269C56B4C3F253DA8A8C420DEC6C432877B77E0E69954B0372452D3BEC6D52C4099820DBEBE9E482AAD81EA289CD6662A7B369DF9B6CAEDD5013E32A41BD741A5008C8F56EA295AE8FB4001789FCCEAA1251D800DC04E066B4448778E279B8459DAE35A8D779A08BEF2CC34E9185AED54A8A301E5751D484BFAC2FEB303804C2A0A6051B031C4B57BC06769FFBBD2E2EB1F190A82F4B16B9C3DD070ED0250747593115DBA56576B0DE301AD8411802BB5B84B6B692F3BF4D1A98DBABDBE761021CB4C592905D52717BA67CA1E94B8B013B9334D8901F6F8FCAEFEAED90D2490EF2412F166BD080CE46943CDA5B2CFCCA64007E13BF0FA390D9253E60F780FB48FE71D66FD8812E361A685367745219D547DDAE892D9BAABE34B0C3E640476E5B265D74C07D6EE8560C25637572485C0515D9DD1E4BC1FCDEBA5B6AD80B63A2C54E60A72BDE62A05D8CBABCBDA5921C60185283D2C752B0FAB6483D6E82C5AE1B9B31798EF17599CF4CDDBEAC52F110EDEDD515B8457609CBA6F9FFAAB2D4B1FB99F9A245A62F474B03BB3E7AB5AEEED6632539D8C4691F2154D3CB415F78FC5D55A0AEBDBD18071C8A2CD6B1BEB6A253DA7E29BDBD1AEC09E86CD9644459E55E3B8E059C8A380E8803EE0915ECF87665E38EABF0B13B2BA67C859356BD6C0A8E60BC4C6122B0B30F8A05F6A18AAE34AB9543A2490E32995997BF3452066D09E069CF5469C18E2FA2695DF11AD89DB7778687DD5364A549BF6282149CD266DCE83B3C1EA88CB7979A58D500C9821DFC3E413BD60148F9DFF66C87D2BACA1182A7B459C330A6DE3213903609411D3F2056731672321E46E7D786AA76E9F03310E6CC9933037F55D1093BBEA39CEA1259DE53DACAC4D4ED91A6755AE8767C54D1E94AD1AE789F481BCDEC6F552EB2C6517B53EAF674AFD34AD780DE2483502F3844172C763C32C64EADCBB5DA484709D2E0DC5E79DEA158A2FF2A968FA5CF2C4F2A0CE162B1A90586D474720FDB01BA32E9F6A8486BD7E23A29547BDD64F7B093745F133F950F8EA1A336E6DCE055450C3316ECD02004471761870BB6EDB373691DC71DF938249AE4100277DD1797B609009D1EDFAA27C6821D2A14104BC00E860442C4E1DF0EBD57831D52BAD7893D3852C77B993FAB8F3D6A4A270716A9826B61B1C315CFFE59455A56AB5D3541C29EDEDC1B62B2DABBD4D9F9C7FCB2059FA601BB326EF3183BBBCDD115AF0DC3A134A056568BC82A95E4206FEE7157E97CAC1017114BAACECB0240F384D1D0A9D0DC481AD801209620ED4EF51C523AC9814D8A439CA0BDBD743FF0686F111595813A7E93AE7FE6F46A4767E8114D30EBAE8F8C757218807A11B0D330C4E4C1396CFFA74F70ABFAC24E873391E383CD41577CAC5C81BE2C2D92EB709D44413DD4FFD697C1D1C4102EC6474F2F44282D767D8C8526E4D026AC1C0AC7487290E7B3FAF8873286A1F539F94E4838AC2FCBFE8E6F67DBF08105763C17CEEE96698A5015A8FBB8C41A863BD855F644049F58C3A260B2551D70AF9D8CBA6047372E280276E1A05D4D903A44D6589D1C4240AEA9A80F95E73923785D15A843CB620817B8A6D3468BAAA9AC73312748521FA88FD5C9C17A7A0196CC16F4B521AFE3C2E2C29948E2C00D0F600FB9E22D86D4C92165BDBDDEE69604745DFCD934C310E3D5C0AE2D76BAE2EDAEF415205569A9EBC09EB71C419ECFEA2C45EDFB89893337E1AA0CC37C91EDB9BC563C698B9D0D6A649CDDA67288B72BA95C3B4C8E2BAA13E1CE53DD4A2BAB0FC14D7708413B06EC0CAC3501D47DF190110E298A9F73F0B48AF11CB21B22A28EBE53DAC1894D01BB83B5843E608F827A4D22CB775445D030B4C8CF0C147082AE9A6A028E604C3C9D14EA30801DE2899BC7E284AD28AE7A0EBE86CE436AAF4972E8E80ED61C34CF996A625B0DAB754115670857C7D8B100A22EB7EB4E72E8F5FA03F78DCF8562ED90CC773063AC7A8A077265D505A7736FAF4DFF0959EC3A2B9ECE45BD53B38ADD40DA2DE53B17D76A59BD9891481948973B08C1F64C3A0DE8A8B91EDE5EFC360B769892144BBA76319DBE5E8C5C1254AE9EF786704CBBA946D4DE98B797321917015DE747F9FC57BE26FCD33A10C6023B0C4296695B7C6B9261284C9AF872E1BC5D49F56E1AC83477541E63D85AC59C866FCA0778F675D1C2617C0F1F3E1CD4CE9F3D7B360776A8E6D65AAF9F20FDA131D82C7CCB21B3BA9092806E93AC9B7C619C1AD8759C04C702D64F90519115C3905D1A7B65321AF15DFA8DAA0675BA747417099F1242B10A6E91CDB5AFE756C726A39655962041C3506B55B44D00E6F4BC560DEAF416C05F45DC60F3B5D07C7C2D6E939A45D6D867E1B24119DF8738D03959213CA8C2C0E25959E4001087C01E4A7ED021DC03E254619DE7BFDF3AD0B27BC184EF60C10E6FDA24C0117B5058D3F0049BE3FEFDFB3961E0E702B0D3A5124AB63EAAE24F6AB069DAEFC0B443BF99248FA58318FD5473A93EA473A43E041BCDBA162C9E84DC2B49759516A92DD8F169894CBA661D22888346D1474D1021C24C2BCD661DB0BA37E97BCD528A2CAB5D9101EC71153BD6520F8571B1F330D93AB84517ECF094B858C10EC59A106877842053320D65F55B692B9B4F5357DF402587DB348B6B592450279441E2C312864AA1EFC330049EF033D1FB2B3F6107170B7698246ED35C2DA18E22402544E8B4D2FE7C5E419A0D5169E8792EB47A1380BA7E4F3597C989400BDDD7E4AC8ECB02FBF9F3E7730C0965F1B3290265F661E7D06A65DD34E9CF0D163FF592C3BDC8861AAE9521483A744EAC2ACE8F1D14D6346067FA8F0676CC4BD4E2D4D6181E661EE00C59A1797B288C915249AA5004228B25113EDBCEE6F6767407EB50C594CD93AAB2608762CA16ECD8F16960A72B5E446D7B5AA09EE69D9EFAC7B494D267BE6523C4C906BE2CEDE064A9E000438CE36D2FE42DB5163A2D7A952D9F153919C7B159B45FCB26DCD9821D2DB662215CF9BBFD29112415621C873A9B79E413173F1D08AA6C90B816AA24885AEA3E2E60CE2C280A8B18A74AEBB285AAAD5D5BB003ECC0D8741F789FE7611A0469B57AC7B01476E187173FF512A7B42F2BD44A83F217BB9209D6EC6FD2848B053BFAC0E20B172E0C4AEE6CF2831E772EF2C62488D8197362E3CD8416DECF19CF0557292D4BC53D66D81F8B7DD55902DDB486FC3160BF77EFDEA09932546210C925FA7546ED9031D5DB567F3E0B2CBC5DFC5143242DE7CB52BB6770024DCC42F7A50355E8ED4D7C053B3E8722331B893907F53A938BACDCD6702B3CBAF01EFD2AFFD27096BDB5858A3A396421201F0450448C319B9C3EAE2A0B7670F90A7688292160771B2E9B9420C21D33B8C30BEF5EFB517EF03D2A4256BBF206A8EC2ED7DE5EAA68580C6404EA1876130A769861C2E4B910B04F4A9056DA3B16DAF5BE851FF99C24CBFA23D93B855A16F386E82905CBD3E56ECF16690AB04334E1C6A60161CE9D3B3702EC93124438A30B1D27B4EB038687CF524CB5C3B6902032C02EA9E73B38B2A9F9589638105D16D8F128739AD1BBB30C410E7AB50B770CEBB64193BC0856B4615848109C40134AE31F1D689AE83369ABB4D419C2A5C15716D8E5BB7B5A76E7F3CC8A2CF2FE6CCE1D49C1E28788A3F9281D33621802F24134CB9D68038D4567A1D8F64C471D0FA1CDC18394596E40B11A0376BD18244E9C3BFAC78B76FDD0276908CF93219754690CF1352A63EC81804E03B12EA9A43DB7180F1D85D82C702812D87DDE5E4D90A2640E6087AC643BE0521F5AFC02170A034C23998B239BDE07EAEA009441C51493AC6316FA347D5991E3EDD2903B05C4614D08819D95B8AC631F21489245AD72ADD4A6058E432E7CC06A77866118D48712E51C0B7739392658FB76912FBFB74AC33054B01303762440C8DFCC308E337C02B66FE81962B0B345BBDEE3480CBB50D2B43C86F0041A9F6168451A2809D9CDD8B66B1E5099FAC5821D2A1410A1369BD2023B6C1680BA5E8CE729A7A92FF0349BA4599AAA604768F1CBBB50C6F465C5388100CAB269787B192EADB360478F8BC0EE0BE38E1BC295BD3C5F2082D2B8EFEA80CB86790B7940BDF20419895EA96329B00B219F89273AE5B4CE0BBB1C9B83D807B70E5CF1D0BC34B08F03EAB08BD396007A1E7C2AE5384C3D3A472074900543B8F90633270574B8EBD8298ED63901BDC98621C607E2804B98D70BE2C0E705623D78F0A05D8E203DC71D5E5DB7F4E2279EB87A2C0DC8A76565F6A88A1090F3627E6FD586A13D61C78733D8440476E721CECA1044F0637E78E10B17BF78EE8EBD44CB4AA36940A64EBD67ED112BD218A1D32E708830A401F964F638B193A20C185E109FD804104F2CD8016887D24729DAE4F3BEDE643E8E3F485CC866A6B1F8563FCEC6759D84342C4C9A2D2C08E8F4B45605EA765CFA841D8C0B76075DF11059A156E436C1C0637BCC4EBCF005FE2D2DB2C6CA7EC785C1AA62C9210B3D7490A4AEB998A40623A45C143935C1A528D8E1B8E14C84DDC1A69DBAB999ED5061FF6F2B4DBA5E62147975878D9534E4F9F5255B0709229C30AB8FA560FC5C5BE89186676913001F935D5B5B1B003B8803770A882344EB16F9B2720E096520163916BDDF796E1426010ED19C6A4F47D8A1AA58E620625DB0E3DB559643CA704BAC70D37A7B43C0AEBF4FF1E5ACFBDD18A8BB98473B14CB881347A9C7A68EF2B948CFA2358623C9D645F9580474DC4C80602F2A86702D11CA8748CBE3100B76C8014CBAB6C01E3AB438449056DAEF4EB2EB7D8DDC1431D2982F2B18C20D2D20FE80279E4174014B00EA1A34A701EAB13A9510BEE8383A880367228B8BACDD6431C4CF2107BEAB6162F8173F408CE78B9F7AFD5BE593AD875AA7BA86977C5F5BE831B7BB05F57138C4479871D4679DBD08A25CBC7871D0628367FA6A4BFD79806A9820A98A0C86163FB4F0A59C8F5956DE75221399D55DAC7D167AA8DD5F9557D111DC105F48BA46B90438071A176E01FBAEB63F0E1646B94B5C56C938BBBE9CF391724F540627B2429AE490EB04A06E9B978576255B6AC46C85697288DE08AC5361B95D4C0D6766A3CB11D8D59FE98DE6EC8F940B1FF0EA7A77BD7FF113EF36D5228B25115E0C0959CA36860EBF10D34A71B33D133CAEB1D0E934B948779060D901811D5C615BDCC6360617B2956673C6AB9B96DBF549F90EA0E9C149AA36D182EA7761593493D1183D44B200007D92629D718DC31077D8EFEAD26C6C187A7A99145EF6B7F3706DBEABC7DFF5E3B858B49665CF8CF4B5894D55047008D03568162DE6246AAF550C26E59C3B77EEE4CFA1192E2D2D0DBA3838377DE41FC3873564561F7AF17D9F8F55D226BB2A2FD8D16EF7A28555277F4E4D26F9B42BFDFB149BB1843D10E0C18307B96D426047C14E84433AE32CEC44DF31490E85041119BC5764A1F3A40146E8D8B7CA79EF83E03E29A8FB2E803893BC219AE8E289FD1F00FB7EA06B4E8018D320CEC8776D3789C2FA9050BF45EC4A260C004B009E559C5FE8C3105FC10E6A42401C108BBD7CCB8A4DA7EEA6D35E7C9F3782A9A485012A3B698A229641034B30D11896F8BCBBD3547B431B4617EC60E3003B38F632C0AEE21F5359F8D877906C4DD3426B5743012A6518CED04AE72E64366099638E7C3E9DAA2F8CF9D6AD5B83180E811DAF05533AFE9D9B74A6C021FE08A3E9FF6543B8514B9DA79831F85374CC110B767C27EC4CD330B413878862567EAC12D7027B2FF4E5B43F7338EC308BFFDCFC4FCDEB622DCBA4C5643EC3D05AC9D879743D6047EA829D2297FD61BCBC3A844B1B89C5A8DAD118216E16E090108614EEFAD0E2FB9D8F493A71B2B5BE08E8D8910073F4C99D96B737D655346618DA821D780A9697970765D2E300BB6048B770F1EDC2172CBEFD7FB100558C20290186E15BEC444C0EA01E2BD809391D0F23B22C614284C767D828B819C0027120DAC83D315FA5FC8756199163FB410E391FE3311192381DAB4E5DF0A0CB8600FA9CA990F3AEEAAB2C71A18860EC3C2501C08E477A7B47007DCC5D5F1013E17BE9731A67F9BF6D8117B3BEB74DACD7B9288BBFCBB068A8684767C853B5E44E296AC151664143A9407A1118C2A5BB2406ECDA158F9E927E08F1EF7A9FC8F110231D86954C6338699C6A1BAAB4C8B23E28BB38E01ED7213A9F2876218D3359A46C9A7EA918C162053B4595B87E9195A493EE7A0FC6A7F63DFD7C2C5F96CF4908B60727E0111346BACD38C53A87F10A17797B6DC10E22848CB173B31403BA9718E9F0628677BDDD6F81FD973EE79E3139448B2202BAB6D0434D94A701E887E126E6F532F19A5A97CE2DF3A69EA6071C6217BE68F123434D8BC6E923C80886B8D3CFBAF4F612D0B5851E5A607756607A58B77A28DBC5D75EB028FB1E2A315B3381388893C89C7C29A279B7D0C977FD386E96349806E4ADA01216DF6517EB9818C11FB21D2B29AEBDBDDC09D681362D114760E7EF433415013B92E7E0D08E2DECA4BB7E3C0E29910654268CCBC693D86D6C244070652785C3069FCAA49242BEEBBC5E8CCB9D2F95BF8636E503F6D06FA70722AB578D73311BCF75123A1B0498424087280BECC674D224B9D077CBE4F5EA1376B0DBE048447E162D766D1406FE0F08D29FFEE207675A1ED41151D35553B47E757E6F9954509B9B3529D08FAB14607C200E09848CF89595959CB37109E0B703043982858F7F3714A41A4972008650A3B295AEBE05F2A5038544D4242A70A83E45452AA3C07EE3C68D81A80D14A6B6220B374D119686A287FAB50DE1F68A0A4001A4BA02971A195DE2BE9D10C28D189EC4FA09B360C79EB0136AB141D186AE9581853A22ECF0B47A3073B6352B9D1090EA8B80CE835D78AED361ED8732A7FB8430C477C20EB365206619292CB2D6D3619135C5C51F799DC6FE1D45D8C8D1AB3AF08489E2111384DA48DBA4A83F8A1655DA0A2E43B858E67D0CD89D5A9BEF326007EC0E26CF71CC91FF71A85DEF5F7C1F718AE73E62185A401FA3E965D49755C6855EE446298343182788831B0481C685C46BCC6B636363663CB154AA5C2A2DE68CF28ACA104184037609E8BE93A07D16332376D635ED2BD619C78715F21833DE415F562C3440F185B93877D09E6717C98AE9454B4BEEFAF077429D1ECAAC4327A6E75B3144071E0FDB62D8D47157164A211A678794C958F115EC8038CCEB2D0A7A154BADF2BB3ED2668386671A6AA2554890D049D08CA363F1210A181E2D43F569B695B5E3D371746C12D612E2333819F5114805C448C7DDF5B1C50FB8E59332ED603A3EBF150FFAC5237479185A7467FB44843B83AF2522E1A9755F4FEB820DE1ACEF599F81C97EBD54CD411C60070FBF8C847133CB1945BB3EB6F8EA75AA5F5BD1558821B808EA58FC220BDD898CA7627FECC9A4DBF21C827DC697D8E6F721A5856E78DB67CB95D765C2B5DB22A23A32C6B6A8BE23B956105B200E6ECC07598D70C50BD78C58B033339D14C74351D48DBBEB7D8B6F8953E0B80C1304A0EECE1D0FDA01B218FB62186EBB93994FCC1F80C7C0EBCB47D739A1902091466543D8C50300847353D19C8E830B447CEE0BF76EC8B85B822B27421E5F04B1302FF9DB5DAB2EFFE99FFCE80F56572F7DB6B2B2FAD9F2F2EAED8B1757EE2F9C3805C7771BC124DFC2C716DF17B64D9F87A7C623482C6D53B8605376675F74FCEECACACA22554CBA3048083ED7BE9A32DC107B9FFF0FBFC5446F10E7D2A54B9D175E786111BF7BEDDAB5C7B2F0FB4298AEACE6B1B2215C216A5BEE573FFAE8C3578999A74F9FDEB97CF9CA27CBCB2BD757562EDD3E7F7E796D76EE9868A02052561CC0CA3C553C59396B275A41250BB02D0BB12B9A55FB95575E39898570C73E0C1EC909E40E7D02F261A3803E223162499F1B3002DCFAFAEBAF2F40EB12B1D4FBE4934F7684302D88341C57378E4201AE1151372BF757E525EE5C9B134CDABA7CF985FFB97871F973E1A8BB67CF2DADB55BDD6C6767B795FA15B291B6B2E9B804C12593DC971DB389C9BFFAEAABC744F69E66EC83FE22FAA79C0819BBEAB66C23019F2D63CFC6C558683701F38067EFBCF34E1BBEB54F3FFD34F9E28B2FB6E473C89EC5493702FEFFAD5BB74EC8FD0D79F90DDA42172E2CDDBB74E9F2271797576EACAEACDE3B7DE6C266BF97B4F6F6F77D47EEA46531E463BE905D97CACED810EDE496EC8A67C201E9E79F7FCEEF9D95FB12769C8BB75F47F72091DF5F8256255CD193F71EC9E3333B14E3F1B5EFF9526E9EEB9CEA8BF27B104FF32E548013E5365D70091AD83E343121CC71E192B3D00CE1047DF3CD37D74594B56EDEBC39277F7F6A5ADC8ACD79EDDA67177053D384B35338E80BE1A0ABCB2BABB70493EE2F9E3CB3BDB3BBDF297B8865E7C18307AFC7BEF0C31FFEB0F3939FFCE4C732A1AFAFAEAE0EDA22C962FCC5BBEFBEFBEF42B8DF91457E5516EA7321281C4A77E57E9A1CC125933E2BBFFF2D8851F9AD4FE5111EC4DBA015C4D6E5CB977F70F7EEDDB32FBFFC724E70188DF2FDEFFD9B5C8AD02FC9FD96B92F1F766CAA2BEA958F3FFEEF2B54BF1717177B541AE4BEBDBBBB331F15CB3191F1DDEF7E77F5830F3E784F26F93276C08B2FBE9897866127C80E79FFA73FFDE95F42C426718FE9515C6D17E5CBD520E1E8578433BEFFF0E1C305E01CC6894D0327A370F91FBDF7DE7B7F0CC9134EB64ECF28E27CCD3DBE018C3F027B2A2AA63BB13FFEF8E38FBF7FE7CE9D97A9DB5FBD7A3579EDB5D77282C844B10BE6C772674EEFDA3758F33688410351C69DBCF5D65BD4A27E531EFE41EECF6531B61D61FAE6EFC1D9FFE46E2E1C6C96370D277DED305854CAB918A1645B76DE3BF67DD45B60D2F2F97F250DB9806DF63DC4FF315611599FC9CBAFCB0DB51680785DC6BEE908B31FF99FB059FEC3DD7A5D7C22EFCAB4E6D2F111C2EDFC53C2FE577D56B070C703D13CFEB529041159FD893CAC5ACD4834A12F6EDCB8F181BC3CE6E684D41870FC4DB9AFC95CC1194F65F1F7C620FE35FCADDC7FABD6ECB447E47D651291D7F11142EE570074C2EEBF10CC58138DE5CCE00F3A9D6B8229FF28848188D84C8A33368EFC92B17C2062F49B62772C288FC287D7AF5F7F4F9E5E708A46E2E607CC839BE705B951D4FE99CC1D9F3F731A5B2F1BD3132A5F4756C53FBB5B8BBCAF7844DEA952A02EFF60C1ED9ECB6E47A1EE795658FECBA23E7E5BB48825D989373737377F2E000AED0649B55F28795ED6029CF6F77267AF68595F138EFE16C62E9BE6A66CA69FF70F3CA7103DE0F427EAFFA64E11E9B9CF1FB9B960833D7673EAD93B9B82CB5AD6F9458FC87BC1479019B583EC82A48E9BBA6E023D3339BB90A967612779AFEC6FF0BD3977CFBA71EEB847DB23AEABBE3B67444BDF710B08B8ED1E79F7DCE7532594ACFD2912278DD5444CB85B2BCB6D3AC4F7C821F626A1BA8E481DF3BCEF88EC2354A6EEFEA4844A9B7E84519597ECC95680503A77ABED8833A36E2CE29E1375FB8E2B9FB8E759E27A54FF8A204743341F772586435245A89C48B2CEBD5F11A47EA225E372C8FF0276A5B2BC6B039D220000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (91,1,'Rack_42_with_door_(96)',0x89504E470D0A1A0A0000000D494844520000009500000149080600000092296FAF0000000473424954080808087C0864880000000970485973000009E0000009E001381680960000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000046C94944415478DAED7DD96F1DD99D5ED5E525294A94A89D544B6AA965B7DCE376DB9D891D0733B011180E0681F31238819F06180448FC122098A7BC0779CC3F9097609220C0008111208911C319D863B431DE3363C7DDD3EDDE572DAD8D5A48512279F3FB8AF55DFD7878D6BA75C93A977D80D2BDBA1BAB4E7DE7B77CE7B79483C1A0D8CD51CA283A3806BB3D11133CCADD984B02E9D8B163470E1F3EDCDBDCDC2C8D1B3A16A0C9DFB2BE3E35353530CEAF78F0E0C1C3B7DF7E7BF5137075185400D2D2D2D267E5E19F0988FEA9FC9D67E498956333F1770A2DDCF8BCD7EB593FA31FCDEF99EFE1C0EFD4CFFB321ECAB9BE2DA0FB7339CF3FFBED6F7FFBFE2710D94350E1A69C3B77EE8BEBEBEB7F22FFFD4772734E3F7AF468FAE1C38753F258C8FFDBF81B8D0F7E9F60D4A0D2209D9D9D2D66666606070E1CD814906DC84BD7373636FEC7F4F4F47FFAE52F7FF9F34F203346509D3D7BF6A0DC94AF0B88FEB9FCF70F05340B029E2901510F20D2BFDBE4E6BBDE3341E07A8C0197F99EEB3501179E6FCA7380EC9E80EC47F2FFFF2CD7FC5D01DAE34F60D41054E7CF9F3F2E93F82DF9FC1FCB7F3F27CFE71E3F7E3C25A02A6592A30083BF65BBF93160480560CA4130998FBEEB906BDEC421CFD7E4F1D7320FFF5524DC9FBFF4D24BB73E0195035422893E2DEFFD894C30ECA10B3299D302A41E8DEA58091163F334054BCCE7786E3E7B4A6C2827B062AE0F8B6A6D6D6D20521A405B97E31DF9FF7F1390FD971FFEF087BFDB77A0BA78F1E25F1A764B4F56DD970540D3F82F443FEC8CDA4BD31EDBF091AB57BFA69FAB47FC53FA6C26F3B90B403E30DABEAFA58C069529950030FD68BE6F936626004582D3861C00646FBEF9E6F7E5F135F9FF9BF2F7AB439EBF2B6322556779E9D2A51DEEF5F1E3C7AF7DF39BDF5CC4E4C03E0A3DBA5E33FF2F2B771D067D8A1DC7CF6A40B83EE303A90FC8F8BE4816594BEBF0000B31CA71AED563CCE1FA2C7EEBD7BFFEF5F2ABAFBE3A25809BE762AB0FD867EF2990E1F12DFEFFA38F3EBA972BA8FA5A35C4DE0C530AD96E6C6D775460A2CD85D5CBD5ACA559D3BF190B48D7FF712EFA773917385F9C6BECDF32C0B2E37B26BD51BF36059A459EE2F8BAC5FCF8D800DCF0B87EFDFAD5CE832A7453634084212BBD58595929C4B6A86E0C3E83D58A1B84439E0F6C93BE5703E74449C5F3C7FF2165F4A220E0702D4D006DE3CC7C7350BF7F4A9EE2F8FBA6845E5C5C7CA0A59A01BC776FDFBEBDDE5950B96C287D531E3C7850DCBF7FBF9A7CFC0626FEE0C18395DA53B6053F5F6AD272D775BDE566FA5427EC2A5C0F1E01385C0B1E0F1C3850BD165A205A75EBF93541629E57E87D1987E478A13ECCF7D7C57C79CF01B8B7EEDDBB777FD741A50D5A1BB05657578BBB77EF5640C2FF31B9478E1C19AE6ADA509C70AA1182CB76134CE37A1CC3B4CD422A4C9F1BE648DB491894C8737373C3C564FBBEFEBB8992AAF13D95E3527DFC43F3B7E45E5D7300EE4DB9B7D7C7062A3D001211A7C59D3B772AB05012CDCFCF6F03114015BA413E637ADCFBCCFCFD51ED24AA471E180017161B0C76CC0BF61CF5DFB1D9AD6D4A5BDFFB16E766B13EFEC0FCAEDCD7FB3EB52A527AA331A86472A6DF7BEFBD4AB5E17D88FBA5A5A50A38DACB6B6277D96E9ECFB36B5B52B9CEC94683C4004D7B7E982BCCD1AD5BB7AAE7587CF2D8B319EA6D81A481EAF47D775E5EFBBC3CFDBC4DADCA35BE6B039C3C02880F86A082FAB2ADE893274FC220AC6C0882C894463610B9544BFDBBA5EFE253A880544069E0F23CCDBFA3EDA45887427F1640AAF70E2B898E3933D59FBE51BFFFFB7FF77599E7D79697974F0B10CFDCBDBB7C46D46A1FAA756D6D6D683AEC96EA0C7C176AF553F5619B5F78A415D0FAA6E18C1F16103D86ADA0A5514812D9C00540E23079261795302E4965FBDBE67373BB881E2B8F2654062415A232401F68F5CBE7C78E1D7B6776EED29F5D383E5B7CE1EF406DCE95AB2B778E3E7870FBF4CA837B67C4A83E2D405B12C02DDEB973FB29B1630F43CD02747A8137054D8A768800EB92BCBF248F7F680595E9A9845408FF0F89C655466E0A2B96510AA4146248CA36006682D765AC9B9482B681F01AD51AC19522C95C3C55FD4EF5EFEAEA5A755CB952ED38DC2E8A69398EBF363D7BBC583C33557CE6B9F962E1E8BC9CE8C38377976F9E5A59B9BB28CED2D2BDFB77176F0BE020E59697EF9C96B92F013ACCF718546394DAAD68241BA5601AB5AE3F8C8926A5408944D10F6041D2F1754D309A27380E7B2A6631F8EC2ACE03AE05E70C40699544B321447CEA6DA19DE00E5F076CE31B3797AB034E27B677C4877B776AFA4871EC78593C7DE1607154003777606AEAEEDD9B27EEDFBFBD78EFDEF2D2BDBBCB8BE26001704BB76FDF7A4AEED32C3DD69830A451D4AE15543E43152B416C804A2271728F1E3DBACD1334E98310976382D8942AA3002A567A85E8055C27EC2518E4F81E25029C18A8397A82E6F7FD92B71C79E1DCBDFBA03AB0C6E5B82E4AF77A511EFC7F8717CE14A717672BC02D1C3D58AC3CB873444077FAC1FD6551A5779644B22DDEBC79534077F329917AC7703D101054ABA3D866565069240328A013402BE03956EEA143872AD7D9F4049B6CA5F8D45E53E99522D6536F2277090026020C120C0729059BF36357F1E32521571F8A5ABD2A6AF5EA4DFCF7AEE811394EBD71E8F0A962E1D854F1C2170E1547170E8B247E3C7BE7F6B5939070CBCBB71709383996C49693D796FBD046B17368A5146452FA1F7CF041218662F57F520A009B49709A206C63CFAE0D9B2A153CA976D27002EB0D68520A980B2C40520A88FA30A324C6ED98C40CA8D59B37EF56878C35399B0F8BE2E887B373478BC58365F1E967E72A2977E8D06CEF2FFECF77FEE577BFFBBFBE1EAB1AADA0920FF4A0D24E9D3A35DC6ED104A7B95513A3824C4A619C808A0196CD8EAB233C8376926B40425182E1A00437C36EBA00AAA05ABDB7521DB8C5B22E1EA6D85756508931F7082A8E5E448A07A8A517B92D359983DD00532C936E7B8DC0B27DD6F4FE42839402F0D63549953A8729E7EA92548DD4174008838F5E12DD73BAE37BB95D135A5D788F9205B69196C4387F5B94428C4433BDBF360DF52E80CA36AF7D9751190322DC04780CF004F11CDF8387841BA037954735DE63C196F23742AA51B3EE3CB44362CE9BCF7374C453159908AAEA3C5DF36F53E9FD9450141DA500209181469402B773A832DB12AD29922BB4696C533F3140E4396A831CD7896BC622E27BBEEFEB80C027E79809AA8A444915223FCD28054C1EEC2D1C788F2467DB8177A3A8411FB8526D2CDBF721A508304AB03A5CBAB2A34C356953ED7949AA116D2A0C99ACFE871F7E58510A18F068B0B96C520AB1EA68AF223D9B7052363BC9EBE9284A0160C31C6101E26F9352A0447778C459A93FDFF6CD8E6D1A7D9108D7804A43A482A6144C633BE4019AE27FB72985D441C9130B3673304A8120D39BE9391BEAB1EA8F00B3824A00F4888C798CC4B1798BDAFDDE6BD11DABD608ACD8A0BA10D010E9B189186A15A5A0CF2977F5E79A5B2BA84236868B72C0CA848D452396BF49B71C510AA34AA99414AD54B5478F95C0D2FC546C2D8818EFCF4F33741B5831910B5E5085EC240005BBDE0C77E1AE3E7F0BAFB5659CC7BCD7D69EA306877E4F2F9494CC1A77364D991DA06298752BA86C110B7C045060C0839F22C1094F10B6842D4274373D41D745C6A8C090AAD6D9357520E39052A0C19EAE3E025B0C1D33D4634D89BECB7ED0816B087501370540310404F682CE449E94E14ADF379D0ECD59618EB08B4FBAC54CDFF2DA24991BEAB6856B051572BFAF5CB9324CC302884E9C3831DCCFB385BBF83CC0DC8BD3F90C72CD59E139A434162124579DBE559A5A20B7F970ED08B8EC2B2BA864727A48333A7EFCF8B6C407B3EE54C878B7A8B0B2C9058D9B9BE2F77CAC780CD034A50050D521D5A54F526522AAAC3B022EFBAA6F96D9C110003D625E5F282AC1279D78B0824A0E134789136367F9808601D2D84629E406AA1849E5B4A962428A7DBC15B394CDE4523C87C4330BB8764DC5B10604B65B70B06E55D3F82A933EC851F5F9C9DB221E542EBECA9C102603805220E38E1B811BA253DD73B5A1CC9017FC9FAFA564D6B85DF2DE44806A47E4A70EE1F065D1E8342C520A4CC38241CA4847534AE566A8DB80A2931F385F90BCDA9662A5185F4D869D51127949AB1823DDC953E989C48A8417088F86042724110C5246299894C224798036A0D0E38304C301806191615EB0C06C510AE3CA6DECA4A4B2814A2665EAFAF5EB954402A830598859A7A4B2D5528831DE2791CBA2D7481B0CF3857963C68DCBFBDBFAFF0487139B5F90D7FA587100925976B129889A520ABB396C09A2A906390B76B0D89B0B54396D28A7F06CC328054BF9A035F0543EA63C365134274A01400028F49C34F5FC98DAB6B9E5AD4CD9E2A972945431E9EFD1353F634044C69DB5147802A41462A214F6728052C0790258AC96670BB74E05DA24457E264B2ADF46B28F52600AB8F684E882E766A8930AD1C53AB45AC435716F2F1668B618F59C0CF5D473F5F254362040129994025635EB31E95C3FD76F848AEB37BD987100D70409251729056D8BB9BE3BA9295ADED0175FD62C2905442940225112C188B765D0ECA50798BAF29B569B613C15C38FC9CD315FD016069377E46783203DF30D796D1BA580C95B5858A852B14C4F7052688450C88BCF63D4510A5868A41418A560CE717E919F89417AB6645214E8C08400483AF121A6CEA76BD43645D9DDD55836CA4036AF515731669482FB664C78DABBFE01596D6B3AF1A10988744943B2CE5D5F99ECC36356D36B02346E5F815280E4DF8B5242E300564CA26E5471FED882AABA96BAFE0E0085D7D09CB1CBEA0F36634D7D0CB75B7412448C31EF02DAA4D652B0D957DE0C651FA03879A014C0EFD058A53AD5D5F472B4B1285975596B9B371803B451CA33E602AA2849E52B160B6F90AB9A9402C0442965D6F9CC7DE83018ADDE79FDA1CC1A17239D134F65DF1108D854AE0BC5E4215E0A510A9A52C0EAB5253E4C8207186B94D3EE620F1E92BDBE2885ED76493EEACF458B44A93F520A376FDEAC5CE3DA16AAE804EC078EA3CE672E200B65D630F101C430CC024629B8A4524E3C55485279D51F29054C125B87D8121F628D773EA6D452D84BEF6F14A09900ABFB1BF6DC8C742F93E5D5309E4A830A9402894EDA47A920D27F1092AEED04D3710C8081C9A1A975BB5C993572DD1BF2BB539314A31E8CFC1CA5929E6D831920D4110ABAF6A74C6EA76794150119A5C04603AEBDBD26DEDF76BB2C4F4A21BA3A710C9D609344B809A01458E793BBFA7AC335B7C185C0E79038ECFC90422B8479AABCA4950B4441EF2F442F60B2B1A27150359A15E57235DE5D60A1674789C5F9D1AF8788CFBC8B9E9549F52C823D943171A012E009E291919CF004593AC895029F195755C618E466180C8310B9986C0073B9E493589DD8D7F0680A8D104929B01B296BABDBB662528CF749A21874188CEEB5CCBE358C51B74BAA7C288598F28C4E4955530AD39820B38964D33A9FE3EE3ADA26A5304A8D509D59C3C4073FA5B04FAA13D7E2FCE191234716460191026865E8D6AF953BE3B4ED919F7B21D9D802C4EC60DA24B30603D75DF71D9EDA97A12FA194F71810E9561B1A1CF40CE7E7E7072917328ED5EC939A50F7943488526098B4A659DA6822F98466C88FAB8A61D5A3BC3F1F8868A43283467F46EF87E56637D1F066363653DE4D0A2636ECC51E4E3C59E5198736A62F68DF258958E7935C14B73758A4C386E85CEB2990D0E5063273184DC9E5A3262625F1215952F980C53A9FA014749D4F520A21A273923C3FDDAC9B8B4987C1D816E95E35911C17F9196D53E9812805B40E0190EABA52958DC13A9F214F30F7F097D4CF6A09C68ACDA4167C95F47236D48345CF2CC6714529A0892426C995F81063BC2BA0767EF260A4DBEA4EC5028DB5AC98F8506F2CF7F28FFC6C509ED104954CECC3C3870F2F9889A12920E244E2F7E145D537A7D3D3484AC156ACAD49AA3B8C7C500ABA3C639E919FE120BD6D92CA5C45B1AAC1052C1DA1C03F0C758047016AA7F521D43D170129056D988F023477E4E720034955A68513DB2AE9D908485F8946520A34E2F97A4C47D22E0E9C37291286C1E8AD9858CF315C477D320CF5A8A2676667241344A414B8FF47D6DCD6692B770F903D773837B630982686EED6EBF88D8D2C00D54A79463D5C9442C8809F143AC15C54CCACE1DC85326BF2AF4E5CA407E959C0D443F60C8004D0D0CEC09192023F09193529DD4AEB50EC218FC5FD4E3DF1A19D8B6E82AAD74A79C619BCC6D621B63A9F2920CA055CBE069226E0429402131FE4FF3D97A49A94EAC4E6E7ACA0922F0C29055F37D2986E10B43FBA5EF313E787640F1298A34A3466D6C81C6E783B3E644A7EFAE6C559492F0544B6CF7352618FD1935A5858E8742D05A87C16D64050228B75A44C68ACF737A9D5899D92CA57A4DFE51D997DFEC8C4E79600C10EF73AB38600D35E5FEAB033D2F9A9BF1867A39F1A51A0279D14026D09929F29922D076F4FB7C125214AC33CA58D48D3D5DF254915559D38C6D0068850940340629D4F86CC4E620ABCCF5662A5655DC38A13ABBDBEC90A7D49ACA3EEF84045290048B087681FC190A5AAD33D68523CC0D870E2368DD951411ECAAC31B7A5B8C8E89CB80AA8E5A3FEE2A4EA309ECA11A93883D7512C9693A4ABBBA47880363075852AD8610BD415FF46011A1720131FD090D3E592E7EEFD39233F6D80409482786A0BB654AC5415C782159A08ECEA8041CECA2D4DF62C4D80E1BACD28851CD59F06565475E290EA6A52E505839DD1754ABC48BE4E1B5B28EB8D014F0F0003B5A0BDBDA6550173DF508E8D511F4AFC5158707A7B50192675404A81A1303919EFB816560AD499354CEF4F4DDF9A84A267297B97FD263D82759D4F9DA56BF37C26C1FBA3E10D90115CDC8A894DDFB207E9E533274945CF623C368007D5E170D0D660DA1281358995F46C0063668D36EE5DEAD146296C0F279ED0F28C8EF4A21E5B8700344CE78637E84B7C88093B9E34A0E902B39C54F25866FF9D9C79AA244965FBA0FCC02C26EBD8B163D6C48710586CAB3597C4077ABB4D52DD75032436EF4697D7DC8B9EC5F2545E9B4A5E5B3D2223A623968FB7C2C432C3B7B6B73A3D8B384F74BAD04EC728A9EE8C52288C5A0AB98D50E4E70E508580114B239804200D7700139E148648BE4EEB41A87C4A2C500AE4AD527AFBA5928739822A18F9999A9E6E028E7605B76C74275233722197C10D734D29006078EE0BE4F335919C04F2335A52350111EC2BF2388C5927139D730D05DBB5EB28053C92B36277F798B201B9477E2697128AB1934829309D1B83F1EA667468EE21C5A1C1FA11B866DA8BA138AB49537F2EAFCF6B53E1B30011A3146867D03BB279829306A2941D05CE05ED2FB3F0AC0D4079457E269667B4A92B597507302928160B6F28A6E343C8D0CF615552853735C8B5BA83E482546361FEBC233FE383F49CEA4F2676550075C4D5D636647729BE6BA822BA1EA580C9C10222186CF6612AD020D965FEAA28059BB19BA3FA8B0A276EA2A662EA7C72C0A0672D85E3C78F773EF1018371E98C520885C1C43646DA39D7797A7FBECF54A12F3136444A9D4FED31B1B78D4B0D8E33F273149B8E51AD580C7048083076738FFDFB21F59FBBF7E70CD28BB18D4C1069639D31EB7AA7BE0B45397C604C89BA24B8EADE3A15C00034A8F4506303D74D9994EAC451417A2EE9C4F822520AACF3891FD1B1EA3E69312994023D3DB3220C55BE2BB1743F5427F6DA54A827084699DC54F5419938B3288719CF3D4AD871176DAC9041AE2BC2B054360164D453D817D589BD3C957CF80040031041DCB751E73387090C19E521A069FB5249B3A94949D16A2CA96A426F756161E1481B753E617B4045747D163161E0E570CE2999D5BE54F73A2FD2534B213F9E2A6644530AB1555E389974A3698B61D59E3C79328B5A0ADC44C681A1A54FAAEAF4F13C396FD3786B7EBA00120B22EDEDB11018CB35726F30B75A0A38775C03EC4A48599A014C351BB58D488E3C555275E2264C39C35AA822343F6532D1B97B7DB81E9D59A339AB94CC9ADC792A97B311ADFE6CF503A0C274D179BD793A891EA0CD56D23D6BB0A8585DD00C83B1F504B487BEE4A3FE92AA133BECA21E56A7A614F0A358A15469BEC487FD9459636B8C641699F5B9E439F154BEF7B6457EDA40211373009345F638A5CE679393EAD26A4CDD0D301B23F177589E51C086724D03BB4B9EA7A11EAC4E6C03844C0E121F0E9B122935765D7B5239CC22CB3372DFB269622CBF533B2D6088A72669EF2F3946BD890768BE0E2F897C0FD5680E94C29D3B77860B011E1FDB9FD8EA4EA5006D928A9E858CF4A1FA6BE201BAB2684829302DDEB737D8654A01876E488E479DDAEF233E630CDD9C36944D0F30A9E859AC44D24539B40DC2AC9A1C33685CD7AA931E743518520A31E95B2E973C47F5975C9ED135001CAC5C9D414343D445294C62AABB190643D69D944228412037E7C506AA51CA335620822D045699E8C404D28D9EB43A9F4D06E6822063188C2E321BE679262BF2D36B53C9A4CC015410F76C64144A7C08D963AE06E071852C7667F8121F62AE553746223DA1298549F1FE4206BBD5A64294022805579DCF58A39E510A90704D3B3E8C136426BBAD131FD81BDA672BC5502AA014722FCFE80A7D498AFCF405A5F94044314F1B8399CC50A31839442960E85477AA399BF391E2FD4D42E8CBC8E519633929B339353D43D81ADC746601FF5C062534EA73C14E5A5858A862ADD80AB74920DF24447E4607E9F924900B44DC92D0AB97AFE9D727C178C7B5A0451D160949511CEC5B13738DAE3AEA9364A83B435F7CF152ACF3C9F8282D99F68B07486294DD594929409AB9813339D5897D46BAB73C23075BDA3211145FA0CBCC9E34A965B0730491EFFC4D4AC1E4AC6C612E79467E16B6F67D69417AFD7E7F8E0C32262926F1C165BC1B27D0E918755794426C660DB93B66D660C81C6EA314B6DF8C7CCA339A3C5B309CD812D9895A0A877DE12E2110F10F736BA3EBA0C230A31442BDA143993518A22EB7510ADB25555EF654743B96D88E0F311E203BBF639552C2815280178513CA254A81B53F59ABD4DCE36CE2F9E5BC4D4367C347994485BEA4940AD2FC145739A31458144D17EDE8BA1DC5D0690CD849A01458FF33B529A6CF7E9A9476B751417A2115A7E38BF80775510E57199E1C0716054851382D905CE0AB40296001996DDADAE279BA0EAA91E2A934887448B15E7D667AF7A479807AE03A751B5C4831028C94C224AABFD6AA1333D4852E33BD1A4D0AA67880B9D30AB606920017B6A0E82993B3B24529E46E538D5C9D58C0534529B01962A8CE67A87E554E13D734D5DDECB5CC5243A414720E7D69A53AB180A7A214CC7097580F509F0CD544DD18A8D33C157AEF50D56351A544B09A20632159500AF2B6A33C63913DA852AA13277B80DAF524A5808965F7AD1C2885DBB76F57E70F150680514A8FD2AF467BC7AE766DB97155C9D5899BD849ACF3C94D566EF1F086D4557AB332C671E05A4025C0E32381AB8BCC8EDA462447F5D7B83A71084466060D6F06379C7D4C746E463AE3F251531E120C0003F3CECC1A92A2296D449E84BEE4A7FEA2AA13C7A8369DE26D2BCA919200E10B27B6A9843654845E5D4D134339070017E68161309060AE3018B396C2CEF399D0EAC4B689C09B4C04D561B5ECC2E9E3A5BA5EF1C525C6538146C96C5631D694826BB1E42CA97C46BAB33A714D291C04A05820955EA06B077F52F8A951186F9DBEA58B7580521013619037F9D9428CBA0068456C87795BB84B0A884829B060580E940213474929344975D76D704929E41DF999984D93A2AA622411336870406DB2CA714E9402CE1D9BC86CF0A4FB1636E954EA2ECF98AFFA4B2A7AD6449DB11329FE10C38EA13E29E972A31470EEECA60A1B09DE1E8C72520AB652DFA13622365B2EE7D097C6E519431E11493D4EB6CEA0695282A78B83D50391FCC0CC1A342C0F65D6D82AE9ED5CE1F9F0542E67234A52B9264813993A7A810539520B7DE4386C99350CE6F3A55D4D42E24352794617100020AA31DA1329753E277DE8CC1A482DDD18890189A1528C135B9ED10602598515A5007462A2CCB6B6934423C4189F3146B94929306D4B1E9DB514729A9791CB33925218B5CE27063372EAD5DB694A01F6527DFD4307C307B0989E3502B461E243CED5895B2BCF980A22263EE060015AD009487CC06BB9243ED0E363CC7D280C26D6FBCBB53A71A370621B6852782B5D948376982ECF985BE2834929B097344B4FC66C98BB428A73945429E79A14FA62935AE4A7D8F19C404ACD38E93AA5C0621D30C221C14E9C3831BCEE98D4AD490A7D09D9A1C1F28C26756016E5A097E89ADC49F304C957915280F422A5C0798A6D233229919FD1417A343459A5979287753EF59ED8A479803E5566BE66D6FFD494822B63DB753372517F3615EE0C27D6172F2BAFA21418CDA98B72C4806852792B9F41CE96C0BA3152CD5F61E10E3077241173B4A7524286AC924A56E0CAD9B367E7C94D35ADF3494F0A939B439402B65F52131F428D914029C86F4E1154FA26E558F5C5E7F9051B733701118D77E6C031F181F1DEA74E9D1AD85680AF90AC4F97B72D855C890F38FF51326BB80BC1AA324FAE33EFD017977DD54FBD4136A94520D5ED5D87E12E6C24C95CB8BD70715D9F75897133F1811E1FEB7FEA2CEDD879D31BCF04D4D65EDA662692AA85EAC421100D11598717D3A067064D6A69EC2EDB500418160536900130A8495C3BC3606218764A2BD33EC9CDAE6A1CF9690391F6FAF843BA50FF24D5F9740D5CAB59AC03079EEB4EEF26C028A9B4944AEDCBDC15408D549D1820614920EE81F9DABB3661E473F6FC303F94CC90626C8C444A41F3763629B555DC242F508D549D9894028D566EB7E81F6DD2796B52F92B5B6324D6FFB4510A4F3CC1BCD45FE87D6F7562B18F5664D5CDB751E7933D86EB4EE99D76774829701339B54B29AF1B528CDF97C5E9A4147293543E233D589DB849E482A61418B04615E1A214BA36402990F03D7EFCF890F46513CCA64D2469536929951249D9059EAAF518F550875286BA4022B1AE153660F58E7ED7C94F6D4B9AB51420C1A0CE584F9E36666C668D36E275BDF55C28051B4F15AC4EEC9250BE084F4C0E80C20C1A86BB84CA0F757AE62C6060D51A2C1C6C1E2390EFE4C993C3C648B620469B1363AABF9C6CCE56EA53D9406466D0601040AE62FD93B6EFC70D6466D680B302F30E75C9480DDB35DBD4DF16D0260354D1919FBACEA7A6146888EE973A9F3E3589621D90D2DC408624C323C0638608D919F53CBDBF608CBA0D00B20A8794023B17E802B24DECAE49A716B0F8186B0529061B0C120C9482006A6067D437F787A4AAC5FCCA993367E65D453952B82816ABA84B44779E5220E90B09642E9058CFCFA414E4F35393C0A8C7002ACAA64A9544EC98406F894D9370D494426781054A017B7AA41418938E6B484D75B7797FF932EA2D94670C651BDBB2454829F0268052D03149B9D452E026313C3EE63D22269DC6B82E016E9BB7D0DEDF76633D3F4A21AA3CA34FEAF8541C290566D0308B46B70EC97DE01A608CE3C0C0E631BC3D3CB2305C6C668D8D51CFC9484F2ACFE82A29689B60A2943D5A747D7557E2E5240D2C9C9B376F6E6B830B35C94ACC2E0966A31472527FA6F71732D8BD3695AEF369A3149A18EF660845AEE9E0BA580724367303614BEA45E8A714262B48CF5B9E5126E620EC22E6F57192626DACA6AB20259C789455D6B4B0ACCF28A7AD85798314639F65B1CD2A4AC1BE4D9397A11E1DA4675355621BAD2C2D2DCD33DCA50917658B522832497C888952F0797F0017336B4C4A81F6E8964ACC45FD8D104EACC05086BC4117E58009637729A62D19510A9D049699F8C090617AB300598A24B3797F9A9FCA2B4AA185BDBF541507C31DAE3777F1E12DF146F07BB9767CC00281C707A031C1D6E694847ED3B4A9B6E6341F0FB971905E8AE7C65AE17505DE61518B8CA314AC7340806140FA02602271D9CC28EA5ACDC4874960D4BD417A21C2D3FC3F260413CAAD0882C84C7C98C47D3F1BA5A08951B331922BF181376552A2148292CA6C1DC2A6D47A8274A18EFD128F6E727866FD4FD009A01548299875506DA0CA69CE42919F419B4A26668E8DA9F163662B571788263DA3C66590EB9622D8DE811403C8F02826C19052C835F1A195EAC43211ABA4147CF97C31F6D8A44429A4008D7B87757F9F1D94427E890FC5E8D589533D40B3B40C5400562A57708E510AB095E88430BFAF491349DD696C67E243BE31EA3EA33DAAE3434842C170C7CD609D4F500AC8E4A50ACD8952B0452920269D11188CC34F89AF72530A791AEA8DAA1387561F81C432415CCD3818B39E5225A5CB9C958E5200A5001589D8740CD690F0119F7C4F939EF931EAC5F8AA1333420183AB965C4D28DC781206ED24A849A878006C71717128C55CE5C14DF5979BF70735CDF38F3977274FC5821C66FF151AB2AE98A9FD92EA4E70418AC10683F422A560467298510A4FB669F2B0A920516DEADB25D1AC924AEC88398A75FD232920DA2F490F9C1748312C3616EB80A3027529D2DC93F830C86A219971F62EFBCA0A2AB18D564F9F3EBD234A21164439530A0C3E4CA514F4A0B352DB9ACEC4875C6C2A1BA06CC9B15E49E5B2A962280746294015D49CD7B00760AE9402A4506AAABBEFA6E46753D9CF5FB7E6B3DA54B174820D68B8112CFBCCD62168C9A12BC6E44C29600399752234C06CC4A70D68B9273ED836C3CDE71A708D0A74D00B64C224A41029056E32FB2805D7AEB72BC4382596A7CDD5EFA21420859906EF2AB514AAA5B005AA223B50D9EE959658CE42B22E95A7FBD8F98A72ECB5580F8132A526B84929E07A6FDCB8514930243DE02057E7CAAC71253EE423A9EC3B022E95D8F7E5F8D95C61D209B662FDFB69600E6EDDBA55452A905260301F5BAE84131FF2983717A56033DC9D86BA4CCC014D29E8D5D6C403DC6F9402DBE0D6510A53B96FD3B8AA2BBB00E6EAF8F05056DF618AF3540F500F4C323B75161D2F7A067B499747F24DB0CFF3D3C53A64716E9052E0E4E7482940FAD26E0AA9C1249B2AE633ACA5C0FE78DC1FABD544E729052C02AA330CEE6BA6A4BABBBC3F6D46E4C4A8D3A6D29ACBA706FB4D6904FD9C890F18ACDB0410E90C945C2805A6B2E31A705D5065A74F9FAEA42D1C131BA510EBFDED547FB9A8F7EDEACFDC183701165D49CF7C4E4A016A8D75147023A83A62AA1A777D6081201E1D07268B890F906200163DDF189BCBC6F5E4526FC2C5A8BB8CF5A486479A52D0F97004D1241BE7B8362C1A48AA8F3FFEB80218E80410A3207F7D99359930EA684A3F8553941313E3A9E8F1F4E5DC4BD7F96B46DDCB5399B602862E9CAAEB7C8E937CECF2C0F533B3063618326B60E84372B3B4A56E2BD24D467D80B3E897E2B05558C0BDAB72DCB7DDD04283CAA5F2823C95ACC2398AF5509DCF71D456C8C1BD3653B0B8810CDB9199357524ECB6C4073DF97B394D65B9392392697648FEF2642A60E90FBA1975DBC6B293521011BF7AE2C489F926753ECD416FAA6E0A944594428A3AB7797EACC3506F5D0DA314EC8CFA6E4FC966BFD7133015546F832178E469397CA9DC768DA5BD5FA1BD76557FD45E7F16C53CEC9187E78C0EC5D1E528059C2B18722E02465984288510D06C94C276467DD7A6A3EC951B07A0EA6AE0EC0490CE1A1B3C796D7373C36B9847D954A90DB719A500B14F771C510ADAF5EE3AA5C06B34290550259A520055921A3ABDF7FDFE068281CD39F9AB535AAD6D039006D68EF30F87BF689B2BBA89A4B9AA4929E0606517520AAECA7A5D1EB68D656621E320A5008F0F528CE5822089430C3B43B34D467A371875B19BA0EEE69C92C9F8780AA5E0528349053A74510E72535D8C521827A5800392195219008314E3CE01E7C0D543D9F494C6EDFDF5CAC1B418E4732900DAE6F829465D2F0A9F94DAC1A8BB80C5821C048F1933B5DF3692194B851018E437EA621D2C39A41343DCDB34E39CAB41BF0254E936DAAC00DA7ABDD4EFEB28851863DD6A539994020B72F82885FD18FEA2D3DCC157417273DF939935F2DE1E243E0CA6A67A9B07092813552E00D94C2CD326D484A76B63D99AA14C4AC1E656A78208AA02466E9DBA549A41F21AE97BD9658AE51975BC5823877DABCB4305B4BAF8DBBA806C17131F2AA3FC10FE940D3C211B7D50BFB3F57AE9DD11B049A991121F5C9F659D4FAC54A84DDC20A80A18BB274F9E4CF2A1DBAA601C139ECCF28CCCFE813AA39A831362F6444EF5FEECDB1CEDDB54535B80EA85A48F0B40D52E4DB1C5270EDFF76C33D93696FBBE2D9A58371C3F0ACF0840E20AA527980BA5C041E2138B005216D775E6CC99EA39C085D7795DA94D24776ED3B46C98F72A1B6ACA277D0A0F808CD783E76FD6301D520A297482965AE4A64810929BA211EFA014B22A9A8E6B80218E0393055B09DE1EB82B5CA3ADC0ACCBF3B36FD3B427A94AF1F4C4DB9B0D491F1F802CAF9726A85C2A4F6B807E4CA1B261D1750112DB87B0C627CBEC4C3AA58049D56130F4F620C548B1E82A37364935C61ECABDCA304F913E2E0019AF57AF24243E38B769CC7A530013BD1C1DEAA2132CF79B07C8C5844805D890E4AC584E4957BE19778CFA546FE3A0DCFA5E8AF47101C866BEB792F820627E4EC7A79377D11DCFF72B8D601B9817A87EC45A418A63DF1347DD9ECE4929B4E1FDF57A8319F1F3A6D3A44FE1F5FF86AFD71FF685EF58131F6CD249ECA3555979F366F5B814E35DB3F07587CE4E839094026D425F4467E83A48290060A014C48199B26DD38C6A536DDD47ECE9F9D597CFFF3301B48DCC1AF8BD5767E243934A7A3ECAC16C1DC23A5630E4EB8C9ACE12999036CCFC41D830CB4B02246640624A4D0553FD69FB6334506D1EE0267119609F9CE0310064FB9ADEA60949A9E0364DC8037C2282B728056EE730EC36B7C407C64231FB8791170018AE0DD7A4290517156302CD541F4FB669462339B7F6F59A491FDFD794A8ABFE2F6ABA7425C426253EF8C085E79870264E925280EB4D437E129A48B2B0197BD6808783B70749866B6402698CE768EFA1DC7C8E2A9253DB46310072812740B3DB16844F0DF67DABCDA41418EE021501B5804935BB914EAAF18E6B236785014A010566F1483BCA4529F0FB3B3B3E340315EE5B0903BD8837994CE913F99DE17F5ADDA6212F850FB38730A591592F603F0D4A2964D6B058C7534F3D352C39A45BBBB94B09359BB35EB93117044F40FAD8223CD57BDB62AF4829D8CE3F7A9B46EC88833AAC85BC0B5B8AA47A80933E74B10E800AD20B07D4E4B56BD7FA32778EC48741032985342A91523EE9E357793BC113005D28F1216A9B069482B8D787426D6D7DC6BB9674A0145860B5CB0306B949ECFA168ECB54D0C53A4029F4FB7D47E2C32079E3AAB71574E78F2FF70128E53B4551BA76045AD9A68931DEF988150A20818967262F7BB67479C05EC279439DE191E7CE90E1149045273E9429524A30550E0EB4217D2C21C56561710C07C5CE5A0ABE58AAC6D934268834A5C01C3873B335174A41EFE14195312E1D13C628859854771BE06C8C7AAF97C29E57817761E953780164058F97636FA3945008449588AB83EFC0E340D4334A81DEE0240CAA42500A5830D87A397BF6ECB6621D31F981ED500AC826DE9C558479D893F3481FB7F3B72DCAA1B431EA51A58462EC246E2C73DBC556E7336487D87A9C98519F5D1DB02FC959E15C01304429C02067B4270E979D654B1C48D112F2555008BDD6A48F053CA4BBCCCD68EDFD259712B2018C45393058BA5A77246DD3F86EA390ACEF77DBFA3D5C338B9A5DBF7EBD529100D8F9F3E72B35CF3932E3A9E8B834A114B025D3A6F431C153148533C60AFFC66CD3781975516907F8453C92DCD44994FB3D01C24C7367668D59ACE3EAD5AB5378DD9638103B57B5813EC338F318E9537800941A63A5EB53354A7CC09055F85026653E86DC0C6D401B890F9D060A131F6CCD8B624166B6C195C70D99ECA9514A0989949A2D76242EF8A58F0F40A93156C9890F3680A050512A8DA0550B5C72AC52A84EE60962A2BB4E2930F121264A21559AD95674EC6FF64023D490684BFAA4C458B963EC1318F56DBB3E11A582001E32C9F871006852121FE0DDE2BA708D3AF1A1691B91ED8C7A1C835E949B33A9D2A77EAD498C55B91D606146BD11A560FB0CABA3D080C76423B4162B3BB73A0AAE81EB004D8283510A4B4B4BC3FA11AC49152A26EB2AC21A43296CC54C95DB0CEA18E9E307901D3C1E1C784B0999910BDEAA2FA6C7A4CB5793A76163C5490977F1714D3A4A01120C510AB0C3588B0A73E2537F4D121FAAE21ADBDDFD56A44FAA1A8F8DA5DAB14D632B5FCDB6B6B48D48F8D98AC5EEA78D64482948E56BD7AEEDA01448BDE828059B611B8A51EF55B1E7837E3106E9E3138E2EF236C44F79ABBE8052A04863EF3B5F75B9FDDAE941DB61A41420C921BD34A500D340832B96512FB76A4A158ED08351019440D6C5273E384125ABF0A1783FF3AE5097943A9F931AA510438CD631FA15A560AB17119A8F8AF0DC5E28711700B44D2416B66D1A97941A32EA3136556AB158AC507682C7CDA1FDE5CAA889B1E95218F3A6136F46299885CD5C94410CAD409B2A9651EF959BB3DB2ADFED02785CAC428A94F276D14A011153C299740A00C17085D7B41B9442CA35F8E2A0CC2805008BF612268B9D2C9A349134BDC020A87A83036305504248B1DEFB8B31D6FB4D1B6B9352C00F334A819482AFE8AADEA04EEDB7B7DB8361C188EAC482C126328C71D84D583848814FC9AC31DD6FEF1C978399714A9F8858F5A139979CF810BF55500E8B727045EBEA2E3A83791449336A3E5C134915036C4827800B07A31498F8C0F6B826A510B2495CDE5FB5D7570CA6C7297D6CE0717EC792F8905C9DD80412680596D2D1A12E935294235562E2F3B0BF746E20EA288018C55C9976586A0FE5F289941A4DFA14455A48B1F53B203E07C1F241C1EAC4A014883A481FCD4BF91A49A6E610EA1B99935AB4A9C9AB57AF6E2BD6012906F3E0CA952B53EE6D1AD762DE9C517B2D3E90F8A54FACCAABC1A3BF339CFFB20C96128AA2144494AF89589FD7753E9BB60BC11F6A12A560826C1415E8527FE67B506524799B660D99C53A44A20FA314AC890F568D3698B5ABA1A29D840602C8021E9BF476ED08B836965D417A83140FD096BDCCA453FC1136F1664FC02EB3E43867D84BBA0E8459D82CC5F3B395BC7E72536CF389BAA8C314ACB14A1F133C6689A3FA3DF87F518C3AC1D5B833A98968B60E610130D85E5007FC0D1AF8E6C58CCA51C5AAD798415E0A87AE5D0A7B8935227084A498AD925E6C75E2DE963DD59AF4B18064870678021EE52CA9CD6BB38964A8A25EBFA96A61D74E7A3FACA580C7AE18ED361517BB60F03E0186C1D01EF4F7C3C281910E3517AB26A3131F4A517DA174AA80FA326D5217804CF098110EAE42B2C1C48794BD3C4629D038E5C46A6FB02DF7BF45A6BC95C114771C585000D8B973E72ACF8F054A1806134B293824D5AC57FA04D457ACF4F1C464D99220CAA4C407DFCD65B80B83F058E3D356E7B34DF535EA6FC518EAA3FC3E5421392BCC0FF60C21C1408C323F909935BE6D0E7B88D19358F436A48F66235C000A2541B86A294433EAF8BFD811072A83AB6EE38A09D2F514C605A25C07C381905903DB920566B1103FFAE8A32997C4DA196A047B6AD01B0C0AA7F4A95F2B63A54F0840FEEF143B78B690947232EA22CA2B4AC107A25809853FC22885100863E98371A9C5544AC166949BC53A4029146A63586FD998DE5F6F2BC1C12B7D62D5575A12C43693CD3AB9B19DDE7DC5F907293DFFCCCF303A54530A50096D253EA456FF0B71541C00021B48D61C53A38C6B5BBE9FEB33DB164BAF6A3F5BEE86F42913F615594B21A6D3FBB66C9A513A943283860902B4BD709334A5D0F5A1338D31B0086088D755862B3517432924C0CF547FB363923ED100B2CFCB4E46DDB7B19C54F5C5CC5C66FF1918AED8B107A580896F2265DA28ACEA33D46D1103A16116EBC0F55EBC78B19A38D68ED0159C47397F347B44F7AB2242FA6883BAA9F4F19D8A6BC1C5747A0FF254E67B0C7761562E2616F643D304CC2E7058299402C85C1C985C486514EBD09482D9A5342DAD1DA02ACA18E9336E00B9D49F4BE5C56ED33CA1DCC503649D29467062F208A2261DA5461D7BCD5F61E258AC0392DAA4147C6130EEBBFB24D4650CD2A7E96F588BF3476DD398371B940280C40692BA58AC8E991A2747D5A6A1EE2B43DDC6B990F844660D6C4B500AACFFA92905FF4229FABB297D52BE63567D494E7CA82769EDC89123F32C0F94E201EE6088510327935A0A9038CC1CF245AFFA06FBD5C0C6C475CBFC6DA314DCB7B59254E55E03C8279DA3131F6C377AB3265052B397F99C6D43EA491D6E30EF462B9151542380C076B54CDAF075C78AA516226F5BBF0BE0B1FD862BC830A9945069B9333E10E1E3D85CC64A87DAA4ED859BB4DB94822FFC24A4FE6C9402D41902EE74B7772DC59A1AE616F537BD87002A43D44728F1C15A9C3F26FC453F077830E97884C8E7E672C840F505DF752DDA93528A7B7C08EDB970E142659C935230A55813905565AC59256F97A44FAAEA8BAD4EECDCFBB301CB8CE0645F644C38ED90084AA11CB7671832D46DFF4FB1954C4A01928C111BA91E9FF2FCFABB2F7DD2BE43EF8E52C9B7B1EC0D7DA1918D03221F761173FA74EB90FD3634A58081147704F2418A61B03A73F49DEC15D32382A845000D76E8655B94824B4A394B091D3E7C78969402F7EDDAE883D75422753D09829402921F688381B3C21CA296424349B50B06FB601B78861FD7F7674BA297B1DB34956964BBD132498FB025112A161B4335344D7C180584B1EACFFC6C9328059B9AD4C53A065BE19D017BC99AE33756E9B30340DBE36DB6012B94F8C0FBECA414EA091F3405113D3D5BE203C35FBA2C71CCC487982805977D56DF8C415812277354234B1F2B80F49EE8B6F8767F0F65AD4D8219CA3E0FD06C2209B10FDB82817DB0BD60C4F36462131FC665A8C70C5BE2037B21330E1FD7150A674976044A6F36727BD287AF5900E40B043413374215F5A23B939A9F23A540231E9C140CD7A61ED06EF257B1D55A34670552140083418E09C4F58252889162618AAA3243D2A58F0192A0F4F100A8F464DE24F750B65DBC8B4362F01DD3B030B1D8EFC2F3D8C487A6A12F7B6DAC43FAEAC40710BDF0F620C542C53A7CA3D71B18801AC44B9F80FAF2491F17804A475C7C6CA7F7600F650D246E2C5305EC769DCF5122217CA95A4D062433392BCC110C7CD45160996C7056F098A342A361A49786B6DB05E9E30350FDBAEA4BD342292111F3B300135624ABBBB808CEFDDA99545FBFAE9C87ED2A84C120980F26026A2904EDA93D923E3600693B7DA0BABD8F9CF82092A8A214CCA21C4D40A4A59D4F42B82A22874B18B6A71661339152682A199955C342FFD01C7E4A61D0DB12584656F598A58F21E80CE1B8EDF52A63CC472944757C10F13E88B9E92E3583154A4A01AFF1468DA3E3432C4863B668A0D671CE506390D290CACC718C75042CC72060A5F7CCDFD91DE9B3DD6C7B02201BB03677940F724929AFF7975A2A889402F91DDC0CAC564D29D87EA34B6CB94929E09A00302C06008BF664CACE4194F7573EE9AB378AF4B180C4237DECEFD9B7A576DA543ECEAADFA4CE275E67E203F927D8154D2985B6A2306359755B3690EDFB6C3E800160D120C7D094C268E73EE8B9C063DEC090F4F10128063C4EABCFC2A8FBF2FFFA29AA040022A580C9C4C4C2C5D631EBB91ADBA1C13018502850EF90CACF3CF34CC55F6141314A2199F8947BE3923E21F5358AF449215A7D1D1F6C15F5FAA1AAC3B03174F967DD1FB9499DCFA6067997F82BD02BE4ACF0F7A1224929E03D002C564DD63655B9DBD2A7892689E9F41EA41418C5494AC1E4A6BA4023A418EA6D15E8307F176A9F95F358CF8AF53F23121F7A3E09B3DB00F2A9BF984EEFCEA267A01410A71D03A2981B434AC177635C764D1349D4142C8CCC48A5143468B10805489514C335CBF9FB298572D073499F44008D332AB46CDC43D9A414524064662F93522077839B150256DBD22B159000042905DA8D78AD694B913A967D10B88BBD06A7BAAB51A1B65A0AC9890F310D8CCCCF00443A83067617628A9824D034F1A149396AD7F380F757E2BC79EE983C5C132A0DE39A003046BDB6ACF67B7B247DA2BF13B34D13559C3F14BBCED621040B130110A0161301A08DF32E2641B020072905000C9402EA4EE9DE7F94628DB36ACA614E60E79248B58B9A94F810A37A080286BBB0651B28058088816C4D13306DD2C8557EB9A92DE5EB4913AB1A75FD4FA8C84F7FFAD3D5A2B285C1C4160229B94DD3190039CE32A1EE67B0E11129051AA1CC7DA337D8566BDBD00D081195E332DE6D83FB7B3830A10018326BB877089025243E8C43FDB52CF506D6859294F820933303206115EAA21C6DD4F91CD59D4FABA4327E158A158A0857A842CC1754E4E2E26295F88011885228F74EFA34FF7E280AD40A2A5965EBB0976C510A4D6E2C131FF68AC3727578303FD746E20324D4071F7C5031EF214A810E428701E4AC1962368C0A56271695B6D9C403E480ED85CD5833F1811443DB54405B43273E30F3BA4979464D2954D516DD0BAEEC8AF4299C1D50CBA0A44E6A229992BD0C1021408D510AB6C487B66D9B546232F4F7CD280576B160E4AB2F4AA1A1F757167B9A443A70BC656BAD151606C9FDFECC9B62C64CB13C631B890F6D76D1F2A54F85FECF9AF118CCACC1F60BAF97E5197D7FD7771D65DA4596ED4B9F606F9232759EBDE4A76D6543DA40228131874AC3C4C20362205B6CCF96580ECB35E729F4C2282DE4F4609402AE97510A972E5DAA1615C37E1A941C1AEC9DF4D9D19BA474002B791107792ADDA91D5208406237525D677D54B566A6048DEA0136ED071D336C510AF0F8C0BEB35807E6684C122842FA141E00D9C01303BAF861CD5046940224920E7719A5CE675355D7C4706FD2137A1455CB2805A842961B828A046F85DF8D2DCF18CB15C5491F1F80E2BF533634F75C94C263802926662A254AC1D6893404A2D458ABD8BD4C9B8AD5C91E4D170DE64D530AE2663B2905F537223CAFB265E9E3028FB5D4763932A804489BAE7097980EA53A4A01DC05C0E963DECD9B3B4A57D258B0DBAE434729D06E8C8D52B0797EF5621CF86DAA41B937D227BE3152B2A46A62A7D83E0B108152A0FBCDAC5DDE9010A5600BF61F89ACB1B46FF5BD4F5B494729B02C1080C6FCC798ED9766E51ADB953E1A24454A9B11259ACC8C9B916CAA181061D2A12E60C8B3A92237985D21C3B1A01D67F78758A31D929AFB9C186C93025B09C023A5D074133D5DFA1411EA2BA1CD88053C45610D5D2E526F45526752AC584C2ED966F05200115B93B54956EEE68801B1E6AC300FA0142E5FBE5CA949000C29F00D22466B14C5481FBFFA4A953E8ED065FD5ED9444A054165B65523A5002025D4F91CFE1613295C12514BB451D59F4F02DBD46CCAA2C0676188E3C035814A78FAE9A72BCF0F6A12128CC17CF1B5E7DB953E45E1CDBCD9011EC77BCDD49FED02E7E7E76718C989C9810AD05D1F52A214E4373645BAAD43BA615547AA9FD205AC86A12FA5F91BEAE0977BA881208B654324EF4CAC5A839AC422C34152149402D2B7705E8852009FE5817F19237DB4D11C237D7C00728127F4DE483695ACB6754D29F8BA91DA6E685DA8E2A148B92979BE29209D05A074AA8FCDA84DB5C58201701689A42BECEADD753ECA229A827D88387D594C1B320F495B595880EFBEFB6E95FC8085E9A3146EDDBA75A62C1E1E3A7AECE4ED478F36FA2B2B0F7BE5C02E7D42EAAB89F409006B9888D18A4D054A21D5C0ADBDA535397AA2E2D665C5CEC1FED29B8D74B3F19C8FBAD1A2194EE1F2DA9AA847DBF500E8FAC035C083458A959C53090923007B8CF990C71991D465CCDFD15D4A457A396FC98F7EF497CFFFF4A73F79FEE8D163833367CEBC73F19967DE7EEACC531F9C3871FAEAC2C2F17B2BAB6B33ABAB6B63933E2678B4AA2B9599973AD78D2BE929A9B42192681D37456C8BDEE2E222B88369DD995303894631DFD7E06ACA7A37790F00E239507AE11AF808DB4F54589FBDFDDE7FFF7D11E00FFB22B9D6453D1E18DDEBDB1A5B8D92AE96723CF3377FF3D7CFE0B5BA7BC6FAB973E7DFB870E1C2BB4B4B4F7D70FCF8A9EB870E1D5979B0B23AFBE8D1E33246FA982071E6107AF7944D4276049E2A043699F85559857D998075B9F039D85F040857291EA13AA9426D524AEF6E27E7298DB8BDC29D029E532D592AF54D5E8DD19CB260AA66E5B0913EF8E08335F96C29602B0564D36DD7E8AA132EFA1F7EF8E1733FFBD94F9FC37582BE9173583D7FFEE9D765BEDF5B5C5CFAE8D8B153D766660EAEDFBFFF6066BD067930057E50F8D98B27EF950DB7FEE229054CBC88FF3501472913BF21ABF88048A5526EC6346E0889430D20F3B0750D18659FAF2D90517AE2FCD835CC041924171ECF9E3D5BCA4D9D85D3F2E69B6F3E16037DB34E02E9F1BB6DF5ABD17303AF5B8EB977DE79E7F32FBD547C1ED214DEE6C99327972F5CB8F83B916AEF9F3EBD78458076A328A7CA070F56FB9B1B9B31E4FB76F05889F916D55FDD0008F6C49A3CEFC1ABB97CF9F20C6E826EDBA6ED2200856A0437444FACB69D7C1109BE3DC27144856A6FD0B4DB74CD4B1D9101AAE5C5175F9CC6233CBF575E7905F6D740D4D9AA7CEEE0B8B93580BEEE3AB1F0FAEBAF7F495EFA1240BFD5D0F2F4B58B172FBE79F6ECB9F7E5F995A3474FDE79BCBE094760AA9ACFD0AE8EC7736EACFE6415CE88985F81E7236277FD2B5FF9CA4118AF5CBD944CA60472ADCE9830145F8AD6B8C28B7D9485F99E061E0D7B766D4541D9679F7D16AF95BFF9CD6F665E7EF9E587F5A674AF682721346AE0DED421398BAFBCF2F2624DE9006883A5A533EF5DBAF4CCDB629F7D28F6D9D585A3C7EF3D5C7B0447A0798C8B4752BD6BDCCCBEACB6A3687E282EF1C702988D5FFDEA57159F8349AA6F76597FF7B81C0764327BDA0016A0DD92EF3D90EF2CC8851E51376A20EFAFCA771E59F61ECC1B5926AAB73206403AD9A09698D372AE070CE0ACC9F1482B049CBB1C1BF5351E90EFCECAE394A625641E1EC9EB3721D1575656E66EDEBC7954DE93B77A8F8A3D1A2063AF5EBD5ACA71411C810B7404C43B5F1749F6964834B1CFCE88C779F2DADCC1230F459AC111180D5422BA2FA67EE9DBDFFEF6C11FFFF8C77FF5DA6BAF9D835EFFD4A73E357C0F132A40FA77DFFFFEF7BF2393F9F7C433FC96FCFF0F647291EAFB864CF65BF547AFCA71BFD8DB01701D9149FEB280E145386372CE6F8B01FEB23C024C37EA73C473006AED85175EF827AFBEFAEA1FC16B13F53794AAB851B2087FF38B5FFCE26BB5BA2C454294F58D7D561E5E54C7E7E538BC57174D47401C8ECBE2085CE63EAE00EDA13802E2715E7C57ECE58F8E1E3B79636666EE7162D8F356999894F1B5AF7DED4F05F5FF66797979915D11D033982E3640256AF37FFEE0073FF80FF2DF13723C2507F67966EB9B03C3044BE16ED18D019AFF081CBDFAD0E778A7D82A048B6D986764E2FFB1D84D97C057C17E419F64DA59F010C598FFF87BDFFBDE197CC717F252DFA44F1940C371B6E8CAA4887AC735C9BDBDD79B9A5A7FEDD5578F8D05545FFDEA57FFF4673FFBD9BF9749DDC61023561B2122001640253AFDA39FFFFCE7FFB6BE49BD62F4A4C9DD18CE89107BF28480E85F898BBF6D6261147FE6339FA980851B80D43691CA5FFCC94F7EF22A4CD310B82C603B5983EB0B0A68CF1546C5C3AE8FE893159537FDFEFBEFFF6B1350186FBDF55615BD004F084326172BFF40C2CD2BBB001ED710B5F047A2EA77AC546C1C8B8B5FD54CAFAFBB27F3F32D79FA1FE55886EA847D56832B989D2A9F81BAFD8BFA20D030A99FB3A8CF23D9834A5CD72F5FBB76ED69D7FBBFFBDDEF8A2F7EF18B6C66BD09EB74333ECDB7D395FD0528A75DEF2152013156F51C416D40FDBD20C74D39AEE3E51A5C48B5D9880197013480F257F5A1D5E72505324AB6F35980AABE80F21BDFF8C669B0C89E89AF9247E1299E3B77EEDAE604B52C951B3B1D5870C5DB6FBF8DCFAD8BB10E6F1AEEFC0234670DAAEB35C8EEC974AED636DB60D09019ADBFF7667D7C47DDAB1386EAC4F17BBBAD3EFB0130F5EACF1C7AE59557DE3875EAD4FD2B57AECCBBBE833DB27EBF0F03F7AF8A091A624FDDF419D1F00401ACE79F7FFE372FBFFCF2CDDA969CAA1D9423B5C3B25C830B2AEE1E9C3099E2F554BB2B0036FCED1FD487569FCF5BD4E7C2AE81CA00D33C579CACC4D332697F2BA0FA92CB5B10BBEA81ACD41FBDFEFAEBBF299A64227674C894FC5ABCDCCF895AB786B02066ECB9E79EFBEBF7DE7BEFBF2BFBB0571F53B57D09701DAFC105607D5C3F7F507362AD81CBA23EFF6F7DE87B7CD1E27D3EDDCA7C19CC7559AFB243706E6AF17DBA06D6BC18AC9F9555FBC7D7AF5F3F6AFED0F9F3E76F88D7F7BF65E2D76A4E8713D77560C53809E5E5CB97FFC51B6FBCF15953AB8BD7F75840F543B1ADDEAFD5DAFDFABAD78A9DDBB49BF567566A4A857374A7FE1EBF33509A6EB08B8BE7980568BF5763A231A8A62D603A544B2DACB8F3F3F3F3970E1F3EFC0FEEDEBD7B666565057B5F0301DB7BCBCBCB2FC9FF97D504C29678AF882F21328EF79A7ED77CBD2F7373796969E92BB2682E89D7378FED190114C0F0D7376EDC78535D3749D32B9E05453275B506D32D25B91E2B9E6CBD3E364DB029DB6ADC4043FCF7670DA07DA1C6891F54B594820D70B216D50453CF10E978FDC8E9D3A7CF09C09E153BEA8648AEABF52A7B543F62A21E14EEC47EDBFFCBC49B5D46FEEE28DFD5CFB1497C5C16D1D1C5C5C5CF891DF5481C938FC57979545F378F7BB551BE61F9ED29A512A78A27555FF0BD87B5047BA88EB5FA51034C036E2FC166539F175C926A4E81C937E9E6FBE6BE77533EAA0DC9320E29573AAE7D603C1F14967D4D65A792B99FA98F69A5094AA52637D5F38D1A788FEBE3A15AC4EB96634FC026F881F47AD166538D5A33A94BB65017CEC704D654E09836C0D737A45AA940B3AE80C68340DBF080AD1827D8CAFDDA51740F3C489B5AB549420DB09EF19CD2AEEF005B4F81655D81ECB152995A126E2800166D01EC135075177C2E10960EB0F5D4FF4BCBC141306D58ECB3A1CA1D055C9F806A32815778C03630D46069011B40D538B3A3FFC92DCA6F2829125BA4D665EFF51C601B698BED1349F589D42B1D806D3CFE3FB643A658AB0180DA0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (92,1,'Rackmountable_1U_server_2D_(128)',0x89504E470D0A1A0A0000000D4948445200000080000000090806000000FA8124DB0000000473424954080808087C086488000000097048597300000DD700000DD70142289B780000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000006C04944415458C3CD58694C5C5514FEDE9B81616768D897CA5AD3524A299A365245F96153B03558DAD0A47F34468DA63FD47F36D188DB1F97A45163A3266AFAA74D3556B1A5825A5A2950B0B420CC0CCB300374A1ECCB94599819CFB9CC2B03CC4C5B95A4875C786FDEB9F79EF79DEF7CF70C12804A1A3B6968E0B1C4C4C47571717105E1E1E1282C2C44424282F2086EB71BDE762FF7FF66AE2CCB080E0EC69D6CB5E3587EAD56ABC560E318E7E6E6EC2E97CB8DFBC8C6C7C7A5D6D65695C56251198DC66A8ACF16121282D0D05068349A5B747F4A22BF411AA9616161282929C1C8C8089A9B9BC502EC9892B61659EB37A0DFA0436A720ADCFCE35EF99E92242DFF60E9ADF76F093E7D25AFB516D69330383484B5D939484F4BA1A04360E8ED4341DE464C4D4FC3681E80FECA65646566C2E576F90421505CCBAFEE1417275AB9BB7EE30692D333C475C186F568BBA2C79CD586A9891181D16A992CC988D2C6DE956F8FE16F5CBF6ABE7DBF75EB56A4A5A541AFD7232828084EA7D3CC1416D1969696629A405592CB0E4C0A9587E5E48CE4E424E8743A646565617E7EDEEFC63C97D825E6F84B8AE2333333036625AFC77F1D0E07626363B166CD1AB1FFAF75BF89390971F188204562024445462C56A4CB893C22446D6D2D727373FDEEC9C64AC2FBF0BE3EC1A5047355730C54D1A2006C36DBEDF8525252445C2A950A3F9F3AED730D9BD582A7CA4A119F100F83C1406BCD63E3C65C8C8E8EE1E2C58BD8B1E349B89C2E9C3A5D03ABD57ACF04B05866111115837559A9989C9CC633FA46A4D967F059E266D455BE01476804361DFF102ABB8DDE7329168C0DA901B66DDB86B6B636FE48C3D97D8EC6DBF4F28F90839382ECA4046D62F9E711E421C03C813244D548D281F8F878D4D4D4F80D72F7EEDD181C1C447B7BBBCFE70CEC9E3D7B0400D5D5D5A8A8A8C08913270409676767854F7F7FBF48A82C2F54DCE5CE4E04AB83C475A7BE5B24868D0934363686E8E8689118CF8BF94CFEBE7DFB505F5F2F62F3655C1DC5C5C5E8EDED1540E5E5E5E1E8D1A3282F2F17F7A3A3A3E2FDA3A2A220F9AB5022514E4E36CACACA70ECD871CC52C2F65756A2A1A101376FDE44E9CE9D82FCDD3DBD5489867B570059254A363E2E96486A13C9CFB64E4243C99E4D48873D3C0A6E49A59C574BE652E51B63626252687F0D157BFBD4D454959A2ABE8E12FE9E472A79869B13CFD5C723387801743505CD6073857015646767FB0D9293C3D5C2FE817C7C81C7E4628B8C8CF4C8EF02D40F6FCE879680FFA5EE77146ECA83CD6EC7D90B8D90680EEFC3559D9ACA5531E9774FAEEA9C9C1C91447FCAE5CB946220F03CC7C0D203C4BB3F9048A22F5C68464F4F1F8C26131C14E7CC8C0513E313F49911DF7CFB9DF0EBE935222323035A6D344CA601525A15D2525388CCE374BC0C2377C383423D7444F6C52377E59EFD9A683828E1362246D4B55E3842C221B99D2BF2CFC5C139A6B55C7C4D790C1D1E1EFE5E4D1FB29E6AF92181A826B9CBE7C42B2408F680C2E030B85C690C0283E82B890AD05C25818C7D585ABD8D93C855C2C6BD082B80E451803F9B5BC4BE0CC699B3F54B8E93898909216FCBD7BB9B3DBD8DA5DFD7D1C6D5CF839586892D14C0A704B805218B8B1FC5DEBD15F8F2ABAF619DB3E2E0C1574831CF40A624BFFEDAAB628FAA773F40C9138FE16952CB2F8E1C11C97DE9C517F0E3C993D483B5E2AD370F89FDAADE791F26F3E062F2976DDCB4361511B203D3560D924D557005B9203B6385BF772FC2D8510E331532D08821ECB258DFEB68AC63071E0ADB1512C89E23807B017D5797B8DEB56B97782EF946011E8605049BE72EF415C968696911DF34B8395112C0B130E88A026CA1AA67D9ABFDA31E4F6C2F8283FCEA4901645AE7DCB973FCCD45CCB9D39E1C5B201F2698F26EDC0CA7A7A78BB894DEA2AF8F9AD08202BF73ED362BCE9F6F107E7D4693E8ABF8DC9E9C9AC2A5D64B387CF853C82A191DED1D2245BA2E1DF50A3DE27D2689C863A4147F5D6AC3471F7F220AC2D0DD2388A9D8FCBC439060607008965B73785EDB8FECE0291CBAF1101A9FED863DDA862D2F6F87EA969AE2712D2180A25E8C0115726C7E7E7E0DA3FB038DF203070E889766D6F159CFC967A6F312724818AE0D98A863500B1FAD561BB00954360BE4C341288D49201FB3D98CCCF5B9D404C6D18845874E8FD4A42451108357AFC1A8EF42021D1B4C3856276FB07CADC7F1FF970656F1319ACC487E207DC5B700578079FF8B51FC8BC7506033E8AE60F8FAD0EDBEABA8A8481CB1AC624D4D4DAC888D4C00FE2EB39FCEA30C4A78281160942EF31393921ED750E3C413948407026E352D50C5B2AC3B571B741FE6AD70F7EBFF01487DA48E8E0ED96EB7AB48C53E2785B290E2C610195CF46C9814F6A77F00C815448DD67E5BE80000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (93,1,'Rackmountable_1U_server_2D_(64)',0x89504E470D0A1A0A0000000D49484452000000400000000408060000003EA039A40000000473424954080808087C0864880000000970485973000006EC000006EC011E7538350000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A0000025449444154384F95534D6F1251143D6FBE80360C018C50951602944AAA6CD898E80FE8C29D3FC03FE1CA7FD11F611ADDE9DAAE6C9A488D5D48621735501B40488076F89861609EF7BEB4845DF5246FF1E6DE7BEEB9E7DD11003EE572B9279EE7598BC522FDECF98B4000220802F0F957E8BA8E70380C29842C140A98CD3C3A3E1ABFCE850C24E45D042B304D13966529AE470F3664AF3B68B55A97EB6225E72EBE68D49E8542A120A2EB0B5F372571A1DFED5827B5E38410A295C964B4C964726A50AEBBBBBB9B393C3C1CADADAD8976E78F3E9B8EB1532A61341A2D0993C9245CD7C5783C56774DD3502E977171710122443C1E0735C48F9F67F0BC19868E43F91E7E379BC866B3F07D7FC9954AA5301C0E29CF53771E9604A97E0ED5251209D5EFE86B8D4C8DA079D9D92CE436517EBC037F3E47AFD743A9B48D83830F18919E5B63A4944A0B633074502A66F1E6CB7BBC7EF916ED7B19ACD7F6556D341A4DD2A3AFD7EBF56F6C8047851A89B059583812C6C4B952C39221CB2D60F2582C06DA92E520FC8D3127517C780BD818D773E14E5D15EFF7FBC8E7F32AB60ADBB6D5B00C16CD71EEC5FCCCB5DA87A171FC66406ECB5B55A954B0914EA978BBD3A147DBC63B32858D1722503C474FB760C8CF884D04E6377AA98FCD3A69E639DBB5BFB7B7F78A847A34E056E27E2AB8BE1A0AD330D500B74372018B5C7D495E7936EA168661C00C8564B1588473B33D67F5BAB0C9B8D53ACEE387F2FDF9F25B2412C1743A5DDE792B34C3900F37D2EA17709C6B03FF01D2B6D0345D86348999A6D12F2031E8F6ADD3EF2771CB32CFABD56AB2D1687CFC0B5F0F293615097B020000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (94,1,'Rackmountable_1U_server_2D_(96)',0x89504E470D0A1A0A0000000D4948445200000060000000070806000000F76948DA0000000473424954080808087C086488000000097048597300000A6100000A6101FCCC4A250000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000004E549444154484BC5565D4C936714C644A2864C5408411D08D4814E5A5A5AE97F29B4454A81524AE97FCB06969F82AD080C04E36FBC59A24061062F6676E5F5AE8C5BB2442FC8747049A2C9EEF677B16C174B6662049F9DF33A3B6DBBCC0BB75D3C79FB9DEFEB7BCEF73CCF39DF9B97979777857077FBF6ED5FEEDAB5EBABCAAAAA67B5B5D2E723F1D1CD5389E466241ADD7A8970E425226984C27F8350388DE0AB0886046283439B1F4DCF642112C995EF0D72FE433E7E86F79F393BBB457892488CFFF05F21161BFA89387D525252F2FD8E1D3BBED8B76FDFDDB2B2B23BE5E5E521E23EEF97C2C242B8DD6EA8542AD0350A0A0A502B5740A5D1A2BFBF1F5D5D5DE8E9E981C7E37963F4F6F666C1EBF562626242C0683623DC3F80F9C5457882212CA452B0BBDCD0EB0D0804026F251F63646444E4B3B6B4E084D30567AF17C3F15330353B70F49814164B0BB45A033404FE2DABAB87D57682AEF590D629DE00F590C955B0D99D6875387152AB45506F42BD6F18F2D098C85351592D786528954AF87C3E343434402E97FFCC025CADACAC447B7BFBF39D3B77FE9A9F9F8FD2D2522854C7A12401E821381C0E7476760A815E85D168C4CCCC4C569C118D4671EEDC39D8ED760C0E0E221C0E0B3199940B172EC06CB10842DCFEA0585D3EBF588B8B8BB916C462B19CFB8E8F8FC366B365C539C6FBB610D15C13AF9C97C59C9A9A82A3A3E335018C4D6DB0586D585B5BC3CACA4D2C90111E3D7A4482C5B1B1B181546A090D6ADDEBD064422F50A7388E70A49FDEB10FDF480A70FBD8BB284ADDC13B9FAE0A010E55BC971680CCFE9BCBE5DAE2FA2A2A2A56580079555515BFF433FAFDB8A8A808D5D5D550EBF4D0359A2191480489EC24766526CE9F3F2F9C9D196702E7E6E660B55A31303020546782262727C5DA442F1FF8E0435C9F9F271102482D2DC3D1DD83BD7BF7A2B5B51567CE9CC9992F914888FD32E35C03EF6B3018C4AAD168C4CA62701DD902D821AF57D13317118F8FE1646C08972E5F81B9B985D6CB3839380C5F208444721C8D662B4E8F4FC0E3F523148E62EC54125A7D23343A13A1F135016E490FE16AFD31549E5D46D9C55B4280F28AC3690168BA7CE7743A9FB6B5B5E1C081032D2CC01C0BC081DDBB77B32AA24D8C4D4DD0375BB07FFF7EF132C96452909889D9D959442291AC3893C41D40C9D0D7D797EE809744596C2F464297F785F37DD13EB1B2016A6A6A8400B9F28D8D8D61747434E73D36039B657A7A5A08CF1D100C064507B45307BF2A80C16CA71A5A71EFDE7DDCB8B1826BD7E7A91BD6111F4DE0C18387D411298A2D607D7D5D10CE9D323FBF88A5A54FB0BABA8A4E97073A6333C182BAFA86B40037DD35B8E454A0FA631924CBEF0B01CA0EFD25C09E3D7BC4346110EF4B2CC04376B9DFEF874EA783542A8599E6B38D5C68A259585B5B0B93C9241CCDA321134C08CFE0CC388F1A766BAEFFB0386612D7130A63915ADD49A27007B4BB3DA83972040A85420840AD9A05AE63686828E73D269E09CF8C87422138286FE608929173D51A23540D7A288FEB68EE9BA82BD4506B39A6CB8899C435432D629A34546A039A6D1DF49D69C769871A03760314711A4D49ED9F024804F9DBB66D834C261363B1BBBB9BBF03DFB20047E9EBFC1939E66B22FF732AF429B5F4F3E19191AD89C9A9CD009D20FE0D50376CE53A05F169A5D7EB7BEBF0F9FDFFDB29687878F447A552F5BB4472F8F1C183076F5B2C96FB64F6DB647CFD1F1901158D207B2BD20000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (95,1,'Rackmountable_1U_server_3D_(128)',0x89504E470D0A1A0A0000000D49484452000000800000001208060000009390D6830000000473424954080808087C086488000000097048597300000DD700000DD70142289B780000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000007CE4944415468DEED585D5094E7157E76D91F7E965F0105F989428014886D0C34281132D46933466F6CE84C653A6DAE33497AD1746C73D3192F329DCEA417F6B2D7B18DD56A07419240304204A1541058587E963F4145041616766177FB9C97FD364A58627E50603CCCE1DB6FBFF77BDFF39EF39CE79C77753E9F0F4F5A743A5D222FAF518F510F53C3B1FDE41EB59A5A49BD4CBF4F6D06A3744F0A0066B339CFEBF51EF507BD90AA7FD2CE788CBEF050BFE07A950683A1D2E572756C7B0030CB8DD1D1D187B89E045C02BF678B04EB71D83622CC401F553A1C8E5ABEEFDC1600484F4F8F25BA5FF567F9CFA8D1DB20581B2D8BD43A6187909090CAF1F171FB9602402645B29C2A595E4C356CE3603D0EDBBA3476B0DBED0D5C677953018086E97373730F08ADFBE93D67B377635B15487C36ADD7EB6B04104B4B4B55369BEDEE1301405E5E9E252C2CECA70CBE04FD08BF8ADFEA8EDF8240F252AF0B3308205A5B5BDB7CDFC2A0470640494949AA74ED5C50B2FC15AAE969166FAABD8C532F092078B2F8B8AEAE6EEE3B018013E90E1F3EBC9F94A375ED3F7C5ABBB70C98DCD42B5AEF505353630B0A006A12F5656AA8F6E5BE7DFB5E4D4B4BFB05695EB767EF5E1004782AEB6411FF666767361D98C49E919111CCCDCDB99A9B9B4FBADD6E074F16301A8DE0D5E5F178AA0400F223449EBC909393230FD0D9D9A926908139B9B9C87D7E1F066D36DE1BBE27877D833391CB858CEC15BB04886C7E10111EAEAE6EAAB5A3039648CB63B7CBA7D323253D7DE5E4C3ABB57790362DC3ED5A846F83C166329B1F696C77573B7AAD9D817B36EB888888C0BD7BF7101919091ED1DB24A271F290740F663C9C4EA70280385B06BB5C6EDC9F99C5BC731E25C5C5E8EDEDC58E1D3B3614B9C9C9C9888A8A529F6B3EF954AD5F52F412C24243515DF7195EDAFF02E668E7E7D79AE1595EC2C1A2223434342025256543EDCAC8C8504921F29F4B55CA2E91E5E565CCCC38E0722F617CC486FCFC7C242426A0BFBF1F1E8F175959CFD2E953E8EBEB43C18BFBE1F17AD1D2D20AF654DF18822E026C57F25EA424EF60662FA070AC07F14B0BA88AD983F6E2E3F0984291DE78017AFA656666E6A177131313111313A3F6D1D3D30393C9942400F80BF537B1B1B1F94486AFBEBE5E8E1689127C51A36125EB1DDCACD56AC5C2C202B2B3B3515D5D1DD4C863C78E29EA696B6B5BF3B900EDF8F1E3585C5C446565258E1C3982CB972FA3ACAC0C131313B873E78E7A5F10ABD7AF38E5CAB52684F83F7F5CFF39BCBE15E78D8E8DA9774867EABEA5A565CD35B95994979783FB5373AF25A9A9A9D2EC62606000E3E3E3282C2CC4F9F3E7955DF7EFDF4707D926333353813358A88C26338E1E7D0D151515387DFA6F2AA1DE7DF777B870E122AAAAAA71EAD42965EBC93FBC87EE6EEB3A71D7AD090B018D507B7A5A0A8686C770687614998BD3688C4CC6AD17CAE08E88426AD3250500AC2A49F4CD6C51519165E7CE9D7ADAD5C758FEC3C0C93E60A3504E95C6CF4D34778587870700603219FD1B33B2CECD2A66888B8B53E52298B0D6A86C14B00447B22B50A74299D942E9EC5E958345E6E7E703942772A0603F62A3A371E9935A941D2A56E36BAF368ACDCA2E718C0490F52E783921E004BCB2AF3583E7CF6E994BAB95B217613C51B159BE0F1E351FEDD1E33302B4B3B31B2304A773DE899327FF0807EDB2F6D8F0FEFB7F56A0EEEF1F80C512A9FC2BEC2AEF8533318445C4CEE8A84882DCC7BD3956E1E2E17E6C416F8093EAA53D21EE05FAD0A8EC58F1ED97E3246E04DE10F7B6877BB0F07EC96EB7BFA715F52871241F9A29A55AF045CDC695D39E4C2C8E96DA2193C95582B09608C2254B24B0C1440BF8EAA6450BE0E8E8A80299D82572ADB50D6666B138E5D32B57BFDC981F00B2A6ACB7DE9A124C827BDD311A93AC7E4FF4EEDDBB0A088A01746B375D12C883078A58527F82B367CFA9605654FC1257AF36A83DBFF1C6AF57E69A9CC22BA52FA3B4B41467CEFC13FA103DCA5FFF396A6BEB70BDF5BF78E7AD373145D6F9E0AFA7C972B70290D3AD5AF8EFE9CFC3ACF76062291C79556FC317E283C11DA146FB1EE84624668C6DBE7C161053E33897D9C07FF2CB5296D6E93F187C51BD3F4812AC2E6BB77A59285BEED77296265AD3B65E872A2A4C21D49A949484A1A1A1006B48F689F3B4FD3EF76C2612E2E351DFF8058A0A5E64EDF7A09174AFE31A42EBA435E59CAF5B539E7FDD188BC5A24075E3C60DECE529C8C6065882A60157EB4FBEFAAE3C77A3BDE326262727D13F308859C71C3EFCF00CA6598FADD65E9C3BF76F15EC81C141C4C6C6B0D44CA0C7D68765CEEB612F31C95EE1E6CD2E7CF4D1BF54991B1E1E0EB0A5D66F8853266EDFC602FDF3FBC49BC836CFE0B7633FC6D93FB56129C68D825F9522C46978E854E20F7A2096DC632213ECBAB8F7A29CF34F9C38A11C281DA2649F3841362A19A70F8BC0AD613BC2D97DCA1871B604E7AB4D0C020B4800D72B0166FF5C324F30914C95462A35330BA96C0C77B1B16AB9D18E8C67D214C2FB06ED18E8EE627393A0D68B2740B4D2F16DD7148610603FE8F4D5228961EBEBC7AEB49553C08F7EF01C5ADBBA147DBBDD8B1B7BE424C3188D8FF61B9CB5EB7FB8333116E8BB58FF55EC76EFDE8DA6A626894FB300208BFA3A6BEF33EC1023A6A6A66E13F50574E641699CA2D9350AED09F2D773CA461EBF048CC1C4E170ACCB441B25E21B018B965D6CAA7CDFCFEF00BAEF3C4093E9E969B26BBB622F9E086A58C2BAC9B40904F032E37C8B00B8F87F4D75DC088A013CD70000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (96,1,'Rackmountable_1U_server_3D_(64)',0x89504E470D0A1A0A0000000D4948445200000040000000090806000000823E2A7A0000000473424954080808087C0864880000000970485973000006EC000006EC011E7538350000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000003244944415448C7CD554B4F1351183DD34EA7B4D0078F022DA558021A62680D02296A88BA320DF80BDCFB335C197F040BFF8171832F5CB87041088495019306D4500985BEA6A5CF99D673871641340444C3979CDC4EEFBDE77EE77CDFDC91EAF53ACE1B92245DE730DB408430E1FFC416314FBC22DE5343E1DC1ACE6200055B3A3B3BA78560EE9BE5F36073EE6F8CFC35CEC855263E70CFBC402693D9B8500342A1507BA55289EABA2E043FE05FAE7F59DA0B30725D748730C3ED767F5C5E5EAE9ED9804824324CB142F0433EDEE61AF912093CCB392AF14E986132995E2F2E2EEE9C3080E823828140A03712997ADAD1D1D153ABD55C97A5BA9249423E97BB08E3EA34E14B369B8B2D2CBC7D62369B35625318101F1F1FF76D6F6F2391486062EA1614D90C5B4B0BCCB2DCCCFC603879271CCECB160BEC763B7653294C8E4F4065D2C57219B1F535288A62E054AEC69C62B5A285E7279249040782886F25A0AA49B89C4EC38842A100160AF1F8F7DF1B432A8BD2828E7637FA337B58F75C41D5ACA0B0F109AB2B8BE8EDEDC5C8C80876777737C5ADFDC2EBF5D6767676B21E8FC720CCA4D26877BBA1663207C86661B7D9209B4CC8F1B740219F4778741436262BCC0AF8FDF0F6F4F06C099AAEA3AA11550DA9BD3D385A5B8F71B95D2ED434ED90AB522A616870109EAE2EC86633BA39060706A0693554AA55C3C8ABC343B87FEF2EA6A7EF606C2C8C9999289C2E07AC5685B052F0410184910225723ADBEC78FC6D09796F105FAF4D62BF5004BB1BC964324B03F572B9FC4694B89FA24D2E86304090A9E934F214E8A728B141848D06F00B608CCDA832B9E63C6F5FB452A84493B2ACFE3EABA4D774A4D8116C3DF87CBEC37DA2BA823BC775473B40242D0AA0AA6A43CCCFA25AD86142A4E092E5838E0A8742E4E933E6E35B71846F843137F71C8562D168B172A582D59B7E9A3A0FA706688D6E21974B9CC73C82E28867D168F4513A9DAEF2D60C7675F7D44595648B2C8945CD1613078B677E0D8E25254C6806DF29424680D52B164BC67F9FF90A381C6DC75AD5E0E2A837CCFB139745B1C2C77655D57C8D5FA2A3F7D6A921F29024E9D8DA348BB1B2B2C4B3E4B57038EC88C5622F7F005F788241A459A8C50000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (97,1,'Rackmountable_1U_server_3D_(96)',0x89504E470D0A1A0A0000000D49484452000000600000000E0806000000D06619120000000473424954080808087C086488000000097048597300000A6100000A6101FCCC4A250000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000005914944415458C3DD575B4C5C55145DF7CE0B6686770706E8404379434948A04428C416488CCF5AE3F3C31F131BFDD6FAFA31A91F7EA8DF9AF8A33FC6C49886A68DA949A941AB69B55A2858825A19DEC3BC60068679BBF6051498D1A60AA5F5249BC3BDF79C7DF6596B9DBDCF28C964123BD914452961F708ED28ED30CD803BB7C5695FD34ED3FA88CDD84E2FA8EC040119191935AAAA3E4ADF02FA4159E74E40F75FECF5BA10C1BD9C0E854217393F71471240952B050505AD02FA9AD26BB761F3BB01F83FEDD14D7F67D60839E772B982BB4A404B4B8BC1EBF5DEBB06B858C96E83741BD70DD3FA494A5F341A3D3DC9765B08686C6CB4EA74BAFBD652CB03B4DCBB09F41D8CED4721231E8FF78D8C8C5CD95602BABABA6CB158ECE13595F7488ABF1B52C62EAE394532B4229E979777FEECD9B3E15B26A0B7B7B7824E8E8AD2D977F0957A972A73B7D75CA29DA39F3E93C9748664CCA71040ABA13DB67E5369EFE8783D2727C7DCD4D4248507FFBFA6201E8B22145AB9ADAB5E1F1D856B6E769429EA238BC582ACACAC6422913825083B796D7474767662767616434343728D44555D3DCC1C68B7EDC1E2C202586CB6E52E69B3156AFDC4F4342A6B6AD05057872B5707714F6B0BCE0F0C606EC289429B0DC160705BD6CBCECE01D587DF9DE3B0953A906132A2C45684E19F7F85CF3D034555914E95B7D254BD81EBE42189043213FC4BE12E1BCD9A235D248CC9891BF86D6C64BD8EA2A2A2024EA713AC194E1DDFB5391C8EC6E2E2620C0F0FC708B4CADC851C9A3858F07850909F0F9E0A0D942DF77DB4B7B7637C7C3C25A8EAEA6AC829E2FD19959595109FF9F4A3AA0AEA08FA0CC9864E0F9DAA83CBED462C1A837F7111A3D78650E670A0AAAA0A737373297EDBDADA100804B0B2B259C112DFA14387B0B4B484E6E666ED7B7979390C0603F6EDDB87109F138A0ABD5E872C8B15F36E2FAC997ABCFACA4B1CE7A0106AF1F4534F602918C08B2F1C4751910D636363DAF8CDA64F7917E389AAAEAA446E9605AF0D7F81F270001F3FF326A69B8FA07870007EAF1B7EBF67952C558D979595A91217AFB217F57C7792F6242DE6F3F9460854537676368C1CA0379A18A85B98A2726D29395152940424E4C9988D8DB7256DBCDFEF476E6EAE465E6D6DAD06DEEA5C15569EB00A6E7E9A64D455EDC714FB582CAEF9CACCCC446161610A01BC10109C224DD51B9BC4214D483B70E000A6A6A6B45E889058942DBA96ADF81702F8E1CA4FF0FABC888623DAD8B15F6EE0F2E5EF990D5C2828D803C16292BE44141EAF5723D4623153C1931B7088FDF9BFCB60864F678229E0834A62B6D692C5C5C571A69E52FA3111937724EA6E01922FF556AB55035FCC643422C1C045C1029AA8DDC87729BFDDD7C08A4422690B986C3E1C0E6BFDC4C4041698CEE418EA742ABC24E7C2371711A1FAFBBFF956F3252744C06B686848BB1EE384D96CC6F2F272DAA229732466E967666664C3D8BB77AFE617C9CD63F9E3110F3D783FAE32054A4DE8EE3E4CC17970ECD8310C301DD6D7D7A1A7E708DEFFE0431C7FFE399CEFBF0003896E65BA3CF9D6DBDA29DA9AB4866BEDF0C433901B7E1771454459BA8900C65521CF2218E2D62B043C2B04B02870C17A2D782140D41F49AEE650992035602BC8D20408016EEB375193F892822369419A3CAFAB34C95C9965B5A0E360AB4642775727CEF57F857C82B24A44FA8B9710F077DF649EA41D49892525251AD9D23C4CA372E2B00108B95FB8E63D78F9C41B8852A9E2F7F3537D9CB388A16B23DA7E64DFEBEF060787B0C25322F33EF9F433121BF8EBB4B3064CF3C45053283318118C334D059350A3AB712637640CA67B4D40E2DF6EB73F2ED435F3489FE071AD9E672B2D2DED319B2D3A7B717152542FC562279AD99C8922BB3DA5E60978E988FEAF4DE5E6F7B316A98A064A92A732B951BD4AFA6BA872F3CA7CF30F92012E5DFA4E0418F279BD5F52E82514E5A4DBED7EEF0FB8E8B41C4A41997D0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (98,1,'Rackmountable_2U_server_2D_(128)',0x89504E470D0A1A0A0000000D49484452000000800000001108060000001504A42D0000000473424954080808087C086488000000097048597300000DD700000DD70142289B780000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00000ADA4944415468DEED5A5B4F5BD9155EC7570C381868203104023164722109490993098D329924A44DD4A1D3AA52A4E93FE843A55EA4B6AAE6A56F55477DE85B34525BA9913A6A5F3AC94C47819090512F0C850C7702986BC0C660CCD5C6F8D2F56D9F6D8E8D8F99B69A4E2ACD16473E3E7B9FBDD75EEB5BDF5A6B1B251E8F93A2287544E420B5353737DFAAA8A8F891D3E924A3D1485FB4ECCD60305028140A47A3D1F88B269BDBED36CCCCCC98060606EEACADADF92D160B99CD66D875331008BCADF098B7F9FA2E5FE6F4970B0A0BE94C4323597372C8EFF389678A923E4A49F9205505DA7171B553D19352D975A3CE1127B3C54A79F976DD0D2E2FFA28168FEDBC134F9D234E596C92D61557521F649B0B3AB117247CA6EE682D0D0D4FD0DAFAC60B657CDFC23C8D0C3EA5582CA11FABD54AFBF6ED23BBDD4EF9F9F9E4F7FBEF9BF8F94D69FCAAAA2ACACBCBA3FEFE7EF1C25630484B3E2F390F55928962F47263233D7BF64C203EA994B8BE82D3FBB28DD5F633FB24D7E8ECFAA700C0E5572E88EF4FFED14937AF5EA1D9790F75F7F691818D7FA1A1812626264865B3FF5861D9DE45DFA143878412D1DA3B9E2401A06DB15894E873E60183D1209CC9BFB490343E5A535393F89C9A9A12CCCEB63E0600881D151717534B4B0B757575255F0055C42251B1F9E1E161FAF2B973C43442353535343D3D9D717128A8810DD2D7D7472B2B2B19C7949494506D6D2D793C1E3106C0EBE9E9A1E3C78FD3C2C28258E3C08103545050C00C9020A691F171321A8CC4344B3D7DFDB4BCB22A9E8F8F8E92ABBA9A161717E9F4E9D334CADFF51A140000638D4C0DEBD5D5D5D1F2F232316D0A197B7B7BC57E979696C8C72C585E5E2EBC47EB04DA36373B41466BCE2E7A53F44853D1E146057F8A0E592ABA741A0987A8B8A8942C569BD0553A884F9C384141766C0E59D8430C0008A2F3D2A54BC2C8393909E14D26930040D2B01C3B56575705A2C012004CA686F7E0890E8743DC676AB9B9B9E293639010047109866B648601456D6C6C50241251B79AD869F941CE474C469AF37AE8688D8B7C8B4BF4C9C020296C08C885356D369BAE5C685008E64F578C6C72EF589FE9517C0760CE9F3F4F851C0EB14EE660B5D31C45C55459FBD28EF19454A3C97B4513F6141504393956AAAEACA08DCD4D96D3CE400CD09CC7AB61A69DF730BF6250E85BAFDFA2D9E773AC531BCDCD7BE951FB435A5F4D84A258DA3E610F30251C6E6464043A0BC2422149BF30EEE4E4640A00E4D216F66C2800868162B4D4A26DE170588CB1AAE3333520F0D3275809099657020284B1589C37EAA180CA00508E94CB22FA63BA736D6D6D25584D670CE4DA2B4C69DC29E3E37DF67CAA751D49EA4D1B56F6BADFC7CC72A4FA30AD3203E2593927E1601B09102D63282AD5AF73DEE1AAAEA220EF6DC9BF4C8505EC406B9B3BE148B3068C0E96C4FEA12FBEB6018077F8FA367FF90A06B227423B06284A3080B2C3009D9D9D095AE6E7DBDBDB59150D00E98D91CF31178022C3000C097A868722046819004A810CC293790332F1433F7216280A00C82617D8662FD9D107864298823C9595952224200440690801D918A08019A6F648F58ED176793AA5B1C30E9D9B4D6601F87C6658DC47D980475DD53AECA1241D24C19671AA282FA36101184392F1B40060DD6E30EDE701E41C7EEF3103FFC2C45F7ECD9D4D18CC8901B47A8F8DF7750900296C2E0B05FA2C2A2A125E0E65EAB54DA6302CA83746F6018930382E006668682839667D7D5DA05526E2470E1F263BCB303337CFE1E0207B9A9D3C0B3ECA67AA74B05C084B980F06CCC64E487E0050BD8631D005F210C80350210CC806B09E397346A7BA888BBDFCE6CE9D2C254FC6F287FEADD1595E8B72CE6630D9540688A594AABCEF47FCF9557E6E607D738E1FEC3069E3A325E16166697C5C32D9B1D87285727D4C330F1EB6EFDA7E5C73F79C95A0C4E229CFD3EA019A999FD73C4C1D2BADEE9E9AE6B86F227B11D1DFB81A90ADEDC9473B1E07406E8529CCDEFAE7FBF7939364320F2A07D193650C0046E9D54BDA98698EB939B9B68C26325BED9F6B0560B4A455241A00B0E3D51890F93130A45D930050633B9EDE90F11F9F0695B7829B1B7498CB33786E1494A3A465B7C9EF8A7E88D41B9336570E2773927D4654EF73718870B0B7777DD24B8D67EB29C872F40E0E519099A28AD921C8AC2310FF59C9C5F76019A32151623DE3AA24E3B9C492276B1EF2DF36C852B4DF4936AB89ED65A6EAB9492A8C84A8C35947533567C9E6F790637A584D026329ACCB0C5E0B06D4CA97C20018C44657B40C605491126205E37E83155E5F5F2F4A22BD864C1C80D22B03B14E696969C2E3B8DC42BCC558540EF8445E80FC00F3787D8992CDC8090F924F113ED8E3A32ABAD7D8F39D1C12BABBBB0535EBAD8986BC02FD7A49281810210EFD1887F5B14FC885CA00B901E6807C53B3B39929783B4C6FBCD1C2B94219B9DD13621EE80B55C5A3C71D74EBE6D744DCFEF0C307E4F17AF5CB3C1DAA47684AE8D841F67C1BDD1C68A763C1257A5A7B8146AF7D874AFBFF2A0000EF8FC55319000E9D1E024DAC5058A240CD01C4E6524280E62818753BC6E024491BAFD31B0E7210C3519BEB1D9DA21E456B6D6D150AC23900EA7459C6E1B002F7D22B03AC48001009CC56782B496F5BCC0448D0E411A7DE9A68274F9E14FD7A636068D4FEB36C5C8CC1F8B6B636BA7DFBB600349241E437D09192A53AC8E74AC0E92C13655C38BC4D3852C70B28D58A8A0AF9334F94950BBE45FDA0AEE84D6FF8544C815C40CB00D0396C870B3A643054B013368301BE07DAC70631482A32FD1CC0C8F7D24B516F2321D4A33A200C1E8CCC3C5B462EEBEEF4832434C910B20C2CF952319745653432364E050CC08422260423402E59E3675B135E0CC5039C999ADE7EA4E2B0F764F9A65306A27F9EEB7103CB373D332BAA179CAF2C07020CE2759A9A9E1163E63C0B0CF88BB4BF643F8D8FB929CCCC71ECD84B1C42FCD4D5DD43AFBD7A59543A0FDB1F332385744F2B7F55794E9CD2060233F4F23B6F9261CB28883D128DEC2A0325080000AE6E1ADC6EB700C0BA0C0130BA0480360904384C7C3FCF74ADD68FC278F0063DE3824AB3350900180DF7D2F0636363C99C0420928A1E1819E5B83B214AC0A7FD034960606338DC80DC9900955EE7671B0300C81216748FFD0150B20C849C2803B33100E471711978E34633BDFFC107E4F5FAA8A5E575EAEDEDA3C9C9596ABA789199AD88196E468CBB7AF5357AEFBD7B0228DFFC460B757EFC3179B9BAB972E5B258679CF73C32EADE95AF6C70FD1F8F6ED35BA5DD74DAE6A7374B6AE88F6F8D52C98332AAFDE5298A30A0E499861ADAC57C12006A12B8993C08921E74EDDA35712A87EF12042100C09860042851860BBD06E3EDF52B22C640D988FFA8E3E199D2F8DA78277390FA932798010ED2FB6D0FE9E2F9060180D68E8FC401153C1B9BC3A670E979B24A7D7BFE1E0130619EC1C14161F0714DC2071911B274A997D7FEEDEF7E4FEFBEFB27CE55425C3945E809CB098FC4A1CD4F7EFA33C10E2B9CBB74B3A7DFBDFB0791D042A76DADEDB4CD7AC149E00F7EF8631106565656D3E4530FC65683E2FA3E35263A58C4A61B2E8D7EB7534089B08C636E846FAF3771BAC855DD2A667B85AFC7A74E9D325DBF7E5D9C16CD738906630310C050DC9243EB4CB3E15030E3F9F467D9425B417256562550CCA08AA8871BF80E632DCC3D27B3E97FFF937584E3EBFE83CE17F6D7403858D7DFDBC5B906405F5656267E6B010890BFB18DFDEC786715F517B49F33326EB95CAE7CCE7A37987A1D9C8055802EE50F375FB4FFBFFF0718181830329B2BA8FDD9E07F615BAF7268C3F70833F97DB6F5DD7F0118336FDF065B83970000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (99,1,'Rackmountable_2U_server_2D_(64)',0x89504E470D0A1A0A0000000D4948445200000040000000090806000000823E2A7A0000000473424954080808087C0864880000000970485973000006EC000006EC011E7538350000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A0000045C494441544889AD564B6F234510FEC6E3F13B7EC776486CC74908DEAC91580E1C3088135710E2C6910B97BDF03FF8139C3821AD38C18A0BEC0AA4C8EC82C812F348A2654362C7AFB1E33CFC983155E599C964C5296C49EDE9AEAEEEAAFAEAD156007C40E39D743AFDD26B775EFFF0E572D93C3F3F8790A2C8C7035C5B3B4B17CFDEF16A1A3C1EE704F8AE99CCACDF19AED3CCB56BBA2581502888D84244D1F5E1B1614C0DBC00AA6DFF98DADDDD7D108BC5469148E45BB6FBE9C6C64661381CA2DD6EE38DB7DE868F98E170085EAFD739E8F3F930994C609A26D93C83AAAAC29B4EA7B2E6793295C293FAEFA8BE59C5F0EC0C9D5E0FC7CF9E22120A89BCFB2EC330E42E2685400C91CC783C96BBFC7E3F32990C1EEF3CC1CA4A1E8DA3364E5A27503C0A6E4A9A57C3D9E9297EDBF909ABABAB28168BE876BBCFD8436D7373133B3B3B080402989151FAA08F743A858B8B0BE70236880E08084C0C0EF3188046A381B5B535E17BC851C5C35124902813DA2727C86C6D8101B629994CCAFAF2F2D2B92B97CB4900745DC7FAFABA00A6B8322EB394C5626E497836DF9E7B49369BCD88BE7F8E8EE7FBB207DC79B522C1B8FFF537E8F7BAD7FCE9F7FB0603F025A17EF7F0F0F032954A05F8F080906272476D341A5156841D0038826C78ABD592F5DEDE9E38E1A1F353CAD6090D4555D0E97424B22C3BB3D29DD71C711B00E6F3382343392BF6F7F7C9A12CDCF14EC516B09C4E5825A7581F4564D8F1B05F8341C1C8256396F3F3D3C3BE8EF1648C30959361CEABA8D96CF6E89320B0BF60006A344C4DD39AC160B0C80EA417B3386A34AFEA9B3E1D8A8C83BC65DAA39F7F9917BF18A2A0D9EE50DC15D4FFFC4B9419868995D5125A9DAE2B7D15F406A757CE5993DAA3C7CE7C303CC309DFA55E95E0D17147C6FF21D39803403D6A40BEC429C075AF1501CA5CB5480048030B06FD585E5ABA96B6D43024DDEDA831150A05290B8EAE5D12350265EB954DAA7F5DE427C301E2B19893394CD480A439DA3C5552382B3CCE2C2EC525D2FFC376CD3993498671BB725BF47709D05BB7CAB877EF2B0C0683FF74565135948A797CFAEB7D7CF2D167F01C5250F6FF903DEA4145F693F53200EF3293D39B0150C99176B381FCF23212898493B6BCCF19F07C2D73FD734A572A154961E705A0733CE7FDCCE2A29C7703C0BA6C30598E01E6353BC40D4A1AA4AB06FC24CFAF82EA51496E043F81545A5F432C1AA3C7C3448F002FD1B9EF1F3CA4949F4A09FA033E7C972B20D07E08CFE908BA55021C2CF6856C7A9F018830831B213BEB2563B80C7AD4C139127694B80744A351695236B1C17C113B50AFD7118FC71D00B804BC94C2175654E539B4C064E758A7FBAE4502899B2E95A2F493E77BC080CAA6D3D5498640EAF7D1A62CE012E317634401504997467363A6CCFB0F75E29E3EC438A1C1EBDBA5128C90DE3900E57259F4932E8375BC57AD563F2747556A4C0B8552C9981082D3C9E4466F4E301432C3144D9BDAAD96429EDFE8AE48346AA612F117F63FA0D93CF6D7B6B793F4C2FD9DCFE7670707071FFF0B03F81B516ED0EAC10000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (100,1,'Rackmountable_2U_server_2D_(96)',0x89504E470D0A1A0A0000000D49484452000000600000000D080600000056F26BBC0000000473424954080808087C086488000000097048597300000A6100000A6101FCCC4A250000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000007AD4944415458C3DD58DD4F9BE715FFBDFE026C838D6DB03160189040E8C2BA10604BB44AC95D7A9B49BB9AB6FD0F93AAF66237BBE85D276D95A66D379DB6BFA09BBA2A8502216BEA8A90002906433E20293136C6181B9B4F7BE7F7D8AF8B3FA276D294497DA447F6FBBC8FCF39CFEF9CDF39E7B106A057E635999A4CDCB871E33DA7CB650D7406F05D1C9A9CD260301CA7D399C4ABD299CB9D6A5F0483F69D9DF8F6E3C78F6F59AD56C8CC9F9E9E7E44D08332474D26138C46230E0F0F61329B317AF527FC25ECD6866F109FAFF1ED9B47267B08B7B7159E6617A2F138BA3B3BB0FAF80992DB5134363615C07A99EC7CF5D7B2BD3536EF26F7E0F6B5C12467ECE9ECC4FC62F895393DB2B981F0F2A2FAEEF7FB515F5F8FBABA3AB133FFA549D6029A84C5CD9B37B1BABA8AB9B93958C40199FD344E8E0ED1D71DC0DADA1A9A9A9A201E2B13DCD0D0404F222E00568E9696169C9C9C28878A22B58FCFADADAD6A4E4C4DC3214077053A90125D2D6EB772403C1A85D7E35146EEECEC54C9F5C8BB542AA5E442A7AD0CB3D84CB951F9BDD3E94432995432686320104028B48C4CAE3C44B6B69E43339AFF2BF6943D573E55BCCF9F9E080E7E64B399D25A474707868686100C06898B830EC872F1E8E8A8B4C962B140CB1784BE78F1421D8887C96432650AE8C5B6B636ECEEEED6046A6F6F4FC9DADEDEC6F9F3E761B7DB914814982F690074BCB5BE0146F9DE28EFF8BC537C4F300962E5708BA3D4BE0AE790BDDDDDDD2A58464747313E3E8E9191111C1C1C089173C2836A7EBA3C6EB477F71671D38A00577E42E9B358CCF08A4D16B3499C7F84CDC8965AD7DFAB33C9E7C8A5D715565F096E13B76E2902E6CE042EF732809A9B9B79862C1DB02E9EE812230DE170581D84C0D22AB3286544110C52A7D6686C6C54D15D398E8F8F8BE920AF00E03365E9CA35013D268E999D5F50E9E1CEE72A22E41006C5A8BEBEBE9A72C922060481ADF58E834CA52C3A89FA5C2E9702395F9E9BD0D6EAC5A5A18B2F01BEFCB3CE5207B7CB09A66AEAF149FAD48A51AF7FD276B7DB059BD8CD337B5CCDD88EA758034A3A19203D3D3D949195005B348951D704DCB4006F4DA7D32B42D901462DBDA9194CD88A7D05AFD7AB28CEF5724A6A2A922BD7F50827D0CF9E3D53914F26E9239BCD2AF91E317668F002EECECEE1EAC8658CDF9E81CD6EC393274F541417F364954EEAABA5937B79B8A5A525C5CC4824525A5728E673657B93BB093C98FDA23AD5543CE98E78D926EDCCB7826D66A4F7F79116E71702E26BBD82F17DC1E67549A1FB1B1B1B374D7AC41030195139B4728066D0506FB3C123852BB21D57F36CF5D38A6A9756C267CA5DBEE621B433C9933B561E3D8259C0358BCCF1DB77D4FAADE9DBEAD3E9F60838394C4C4F9715DB4A19B52A6E28BC5A636FBEC40A7FA0BB4CDEF1A91191ADC4ABE882CE06A655825D2343384C3A75B928F30D3DBA8C422716E10BE7FA14DDF59CFDED0B56EDBDEDEDED4AD6FD8545381D4D18BB740933927EAE5DFD313E9E9C86557407029DAAC8FE2FF431FDD824909642A1AA3DF1E873B1C72FB52DAB1CE49046635398DAD6E6432A9D56E9EBDB0D493D2D3E4969CD78E3E15D244CF5F8DDCFDF456B2808F7DA039C161D40FD624B3FD37CBE486D9D01798242CAEBD3209B72F283F9F979554099FBCEA611BD585FB9720553535355263187B3284E4E4E626060401554D60BA685C1C14149692695FB3F9F9D9596348BE0BDFB0A847078053E9F57A5908585852AB9C3C3C378FAF46955E745D963636398999951C57756E4D26E82C80E8EF5249B2B97E5743AF0CEDB6F49F7B7A6EC7BF3CD1BF8FD1FDEC7AF7EF90BDCBB770F1FFCF5EF159947ABC9F02C0354B0723A1AF1834C0C9B163B6203A3B0479F2907E845981813474EE22FE9BECB245EF9931867E32281D719C07E392F6BEC8E48179FCFA70A74ADC823D07A013CDB21E9D4E71EBE67F43B1C8E521EB14B64FEE8F2654C7DF61946867F884FA60A69888C6327C1EEAC963E36046C2F6B3180CCE16F2983CD030BF6CB4656EE223377FE8DC44E4205C1871FFE13EB1BCF31F1E924222FB670F1E24504E47E7237388BB1D161099E2D85BC4F6AE2D4F41DC1466F850D25997FEB780D59CD84EF7FF46B58A307C514942B398018724A50B44890FE960C381290343A80C5562F72269311A706A36A3D59487B7B7B6B761E3C301554BE2BD24CA500CAA043E416A81C4A59C48BBFD914469C1C9F482E8E16BA203192ACEBEFEFAFA98FB2686BAD77ECB478FF60DB4BBDEBEBEBCA3E3A82E7CAE7CB294016764850D0B6DDDD24BED7D38DD0CA0A3AC5F14C10FB5248072EF4E3E9FA06FAC4663622C71248FDE7CF61EEFE3CB60460AD58677272C788EF24F1D3D6086227F5F8C7CFC2F07ED281FA98AFC400DADDD5D5A5B029064C8A0E88303AD9B793B252990B29C86496426C44B3CBADA22DB4BC8C7DC98B555124401C48F4543280FD7C42EE07499995E9625B9E1342797FA343A506DA6234166A8CC7D302ABCD8A15698953728FA8ECDED95DD0499577128E07E23882C6F656B78183797D6F2F05B7BFBDBC6BD2CCF8E39F3F283D8F7F3A5328E6CB8FAAD6BE0CAD96D6FEF5F14429F7D33E9BDD09DEF122B124DEC7A07AF3DA6F7ABE66A7412B5D16798F61BAE459E50C51BE3927F32FD7AF5FBFB0B9B99911CA764ADB68F4B5F9F39232F2F88E8DFFC77F410F1F2E36ACADAE3688EE5D61E4A26480A6582CB62417D8B7FE033EAB94C73C3AAB540000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (101,1,'Rackmountable_2U_server_3D_(128)',0x89504E470D0A1A0A0000000D49484452000000800000001B0806000000B49F874B0000000473424954080808087C086488000000097048597300000DD700000DD70142289B780000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00000C734944415468DEED5AD96F53E9153FD7761C92D8D91767213B6423EC8C580299A9466CEDB442B4A5A8EA88B60F7DA85051FF813E55AA2AF5B5D2487DA944A70CEA3C66921060A001025918200359200981ECB663C776F092D8E9F97DBED7B9497C0D688064683EE9CBF5F5FDEEFDCE3DE7777E6771A48585055AED214952061F7EC8F3139E47789AE9FD1B4E9E977836F06C62BD4FAD05A1A4D502407C7C7C652814FAB16CF47D3CF56FE2B96B01D0AF30423C3B59D606BD5EDF30373777776195047F6700602F37984CA6837CFC44367AF96ABCF01A05C804CBD5C8BA69301A8D2D76BBDDF55E00202D2D2D953DFD986C701C53D7BA97AE01D9E61808ADCC8E5F81216C365BEFF70A00E53C82C1A0F0727E363CDEF03E51F92AC83588BC018030180CD78686867C6B0A006C607D4D4DCD3E1650A1F6AAFF632A7FDBB2BDE07905A182F386AF9E3C79F27C550050575767F6FBFD47F85E78F971FE2A73DD53DFBD6C0C846E763C54150D9B376F6EBB78F162F0AD01E0C081034548E0743A1D8CFE217F655C37C29A92CDC1F735B37D1AD8399B3A3B3B6DDF09006C6CE9F0E1C31FC8B40EA36F5D37C2F746B6109BAF1D492400D1D2D2F2CD6B01E0DCB973BF3399CD7FE76B3A5A1F2FF7229EB3B3B3343F3FBF3600A2FACC0939BD78F122303438F8F3D6D6D6FBAA4B5EB6EF2464FF19CFDFA337A35C494D4D2D4C4A4ACA4B349969C79E3DC4285AB7728C51BAB180869F8D9367D6BBA6E4F278DCD4D97E8BDC2E2758633E2E2E2E949090402693098D380F83F63394687F4088C70DBC80B8D420A7D329A6D168A4C46433E5E4E6D3D3BE1EB2E4E64687D977C268ECE19C71516E513115E4E50AEA1B9B98A42D95153461B592D56667B97A2927275BF6430DF7D43E7D05DF5E798A83D53E4D0525A5E23C60992797FB05CDB8DC6B0A00838F1FD18C735A39359495950996E2C491CC66733ADBFA470040A11CF3E9F4E9D33432324257AF5E25051001AF4F5CE3B283F6ECDA458D8D8D545D5DFD460484303E9F0F6814CFDFB06183A0ACD2D252620612606C6C6E0EF7174A8A851C139353B4313F9FF43ABD00009EB1B5B6966EDCB8811EC41B910B3278BDDE1572151616821D49AFD753435373D47BA726476855D387851065645AC81067247FC0BFE492C562A16DDBB6515353936075D667320020786BFFFEFDE26515BA87B20100C55BDD2E174D4F4F0B0540E9F7EEDD8BBA3F28E6D4A9536293898989A86B4A4A4AA8BEBE9E7A7BC34DAEEDDBB7D3F9F3E7E9E4C99334333343369B0D718B7299712007465B4757D8388CDE3B9D5DE4E6988B3133E3A4C9C949B12F0C0520688D3367CE88EB5C3F47BD0E051D3D7A543801D6ECDDBB57C875E2C40972BBDD422E8C8C8C0CCD3DF40CDACC82A245C260F9A5C5CC3AEA67E51D45F84D490E3F8741E6F3F9C9CB0E8285CAEAF0D2C5CFB5EC8C53561B6566A4916DDA41FD3D0F2914088533C1E0D2AA10801E1D1DA52D5BB6D0D0D090C8030C727381B2B3B3C96EB70B10A8C381328C7CB38B41004F800163253C780636C9CC8CDE1E80A1B4C083893D40536AE51CF860371919D597AEFF97F6EDD9450E06CACDF64ED2493A2117D6171414887DB50612B58A8A0ACDFDB5721DB011260CAFC8A3154A4CA624DA545A12891552F88F7C2A2D31E6F2CF29661395B16E9DFC6E90311098A3A1E1618AAC9268C967C85B515ECAF714325802946C36936D6294EC538E300042C115EF8FB08E1C406600010004AE69567A3A5EAEA3A32302803003C800E01B1D0E87303C848B0500853EB5D6783C9EA8DF231CC09810147BA819E0EB9B6D02F1A1D002355CBE1A2985249D24E402005E26175825965C185C4347BD0F32839DD2D3D3C30C2045878099955BCE00503C757159F4CF6A8024252452765606832D91E219EC3EA670835E17D94B5AA400F159C72C91929A42699CA705E68334C2DE9DCA2098B63A650084D4653D3D7CF850302FBE6767EF673B3D0500D0D4F99C95720A8BF865AD7CCC82F703000A420100E4064545458219B4BC48A953B13ED61A7839908864F3D6AD5B545C5C4C8F1E3D12DF2BFB0100F0708CBDBB765222B3C395D61B74E4A37A7232506E77DE15F2B5B7B78BD0A4B0488CDE86A0D697C98E6700286D6D6DE27D7B7A7A22CA0410B097A471EFACC745C303FD4BB246695902B9EC24725DE2777DF4ADB48465822A23AE4C51257ADC23516262220519D488F993E3A311908482A125ECC68EF58C8F85909381DE3D3636F653039FA0692014CF86856B5CE0E3598501145A844AF77049881877930D16523C50258C12981E747F2B64501B4212316FF18DDB65A6116BF81AD0EC0F0422CF048B600DF28EA4F40C7AFAFC39253360301EF5F59357F6D464F680B2F2322127D68762286C607050C8116BCD83EE6E219324BF771C03714EC5184196B1EBEE5DC152A9510046BA04BA77BF6755B3FFB838E38A1000FDB08DEFF2B100FD1D0564067546CE06C7F961C5F8F074656146760E0558E9414655C0ED89E2650BB24157B845F820A9AA3FE5BBE565E102ADF83E8EBD11639CB37F4C8C67A3638BF139398566BDE11FC8DCB32F5616980B919657E4FC55D6C4ECC0F1BB24C860D452FE5A18CB4300B3DA2106800ECEAE38B6414DC9F297158AF131F5BA3000E6D8F81F1DAC131932623545C960A39DC7BAA6B5369FCBBCB4B43471FDB25C92220464A4A751E395AFE9E3437514E044F31AE7054696B9FEC37AEAEFEF5FC1386F5A2E94990932201BB8CA893626C78644F882EE900C2BE110FA1525258716309E5A87AF5B3AE71694516A720225256EA0030F6FD346BF9B3EDB7294EED4FF8252877B29FFEEE5A80CC0896C3A42A03A075AC20058A4183F1202F4E1FFD4B259ADD4D5D52592A443870E89CF5A03B5262852ABDCC23E283B315A5B5B69F7EEDDF4F8F163116FADBC0F681FB11675B7628C5E7E561A97484075D783EE487C1BE0EF377108C07D5BB76E15CFD11A75757502285353D1FF1D2F2525856A6B6B4552897269D3A64DE23DABAAAA448534CC19392A0D93F0FEE82081827F7DE653DAB97327DDBE7D47BCCBF1E3C7581703D4D8D44C9FFEEA9702109FFFFB02F5F5F5BF7643CAED7645AA0DB329812ABD0EAAF2DAE99FCC3CF6F21D64F07965879E5FC100D03BE4533B8A812FE0FFF1360200B808E114E38B2A403600A20332745CC73A64C25AC9163642A2858C59CBE3201CD641A9070F1E244E48282F2F2FD2CC8101D4B98585CB54CCE19151AAE435D8FB5647A7A80294F234D69E0A259A394BD6AA0214EF067851F3A3A41CE4BC01600523619F8565B94F346359AD76EAEDEBE3AAC14536FB74F8B37386EF77F3F386448239CBE14AD2E95FBD0B19D1DDD25275222E9112437334C7DE9E34F59CE2DDF608A32F6700D84D010083B8C662B1FC160C70147D2025044038750800038413C438D10C416DAFD0483018D42CB7E0250139A9D32AB71485471B4A0F422787203CD3E7F789F86C656F54AA038009724116C81E6B4F2496A2BBA9B146E981680DB976265547262AB80DA27C9644A28CDE05408CF2157B4377006230B840C78E1EA65C8B851E338BF9FD01AAA9A9263B03EF4E47171DFEF807625DF3A52B34ED706A86A7AB85C5D4AE9B23EFFC1095DD3B4B46077ED23189AA40CD00CB0190939353C92CBB29D2085233803A0460E261C8FE479E0D8BD805054A31E218E81B0C112BCEC1A00000BC1E6000FD625F256C449A32F20B4F4C59F91EAF50AA8D6955A7944A7CEC630F533A812FDB132089B506B2284C82F5AC2811121002F0DE0801B11800F298CD262A2F2B137D8379AECFCBCA4AF9DD9E71B99644164B0E999393E99BFB0F44E306FD79FBB48341EC11F700E1494926CACBCF1309656A5A173966DC2B18C0E5F25070CE4FBF491DA4CA7827FD31AB986E9E7D4A99372C54F28F4A06736091AD5826E82799F7550000FD3240163B81F020D4B7478E1C110A95AB02A1304F605E3040565696B8110F58DE298CE62DB1AECBB5A810AA9B4B2F3C6F79CE0010E9E5FD6A2A365371E1466A68B942B55595EC5971D472BD955F2C914012A88595FE41AC320F0A78995CB80E63A32F01EA1F1818885C470EB163C70EED30C33A3FFFAF0BF4C5C5FFC82C19A26BD7AF0B06C033FFF2D7BFC9CEE3A7CECE2EDEEB0B3656D85B2FB5B488F56022D80020F32D6B4C290CE0F2F8C4FC336D0F5F78C665FA9962559F657E892DD053412E8310A8B4E8593E0F9E8627B4575757C71D3F7E5CF4E7C7C7C78522E195A88175094934CB34EB9BF5BCF35206CAC82D2CD2CCCCADE363A47BCDDFF8DEC86F2EBC65A625FCEB682D83B3AF7F784DFD1A080074B45D63D0F905A00100FC8887041DC0E69CCBC6B6DE2AFE218495FB27F6A09F301D99396B9D65C3A773ACDF082A0405221B5E1FB173030E2B21AD9CE8ED0E49CD5E4B3C012CD2D7D70BF9244E60EF71AED427E778214E74BFE4B0F6E5FF0096DF6932D3A411F00000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (102,1,'Rackmountable_2U_server_3D_(64)',0x89504E470D0A1A0A0000000D49484452000000400000000D080600000019AF686C0000000473424954080808087C0864880000000970485973000006EB000006EB014C319E4A0000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000004F34944415448C7BD56C94E1C57143D55D55DD513DD0D1863D3130D6150D4812C9CC491831728B2A278915DF6F98248F989ECF20D59253F900576A46C2C2CCB468A9C01128C8DC76E30F43C0FD59D735F0F40821C01B65FEBAA5EF5ABBAEFDC73CFBDAFB44EA783D30E4DD3DEE7E573DA75DA659A8EB73352B41BB415DACF8C2173EA184E42C0850B17BCAD56EB53BE739DC14BE0A1936C7616B25FE1AB4DBBCBFB15C33056D2E9F43DCEDBAF8D8077381C0EC775099AB75769D619C0BED1D1DB27C3E4DC6CB7DB2BA669DE5C5F5F4F9D88804422610E0D0D5DA5139565AECFBE21A06FCBDF7D5187AEEB2BCD6673756D6DAD7984005A80165B5858885DFEF8CA8F2E97E5A6CB412DBF56A8A770A6E93A8A852298D1336FC4609B996C2E7D7BF5D637954A251F0804FE14026EB8DDEE6B94B97AEDD2954FE06009D92DFB441B99960B2E970B8552198B8B0BA854AB28144BD84B25D19692EC65497B55B0BD55D3B2404CC8168B0887C2D849EEA3566F9C311D1AAAE5327EBF7F075438464747C19E71CBE0CA77CBCBCBDE5AAD86423E8FD1736328F31A09B3BF11B893C488C52727D1B66DE8C428F77E3A999D9941301080E974223C3181D0C58B48EEEC62825701DC6C34F0E4D14344C361B6AA035FD148847E34458ADC7B3D1EBC9748283F721FA2AF7068022F9229F8FD7E948A15640B69685C6B9304B18E26D6D5AA4650FEA01F5E9F07D57A1D3034A51C8DD744E25DF8867CD8D94932BE1C76775E204C3C8B8B8BC8E572868304FC4ABB964AA5E02110C942B5565575E5F3F98E70383C3C8C52A9D43F028FD45F5FA23AC194C8748D409A760B7992799C2FCA8FCFEA47EAB86F7D5FDA21B97CF4E10798999BEFAA44EBEEAF7E9C339318191966BE3AC8E472BDB5EE33E7CE8DA2DEA8A3C0FF33FBFBCA573299B4498051AD566F0B013F10881C6DDB24605A400D115C8E813684CD2E3AA4E9408664B53F0A0CB42C849003C9969440932A110997590206F91D3B3F8E3C4B810D48F99100D3D99C0A7EE09FA354A932D34535DF7DB907CB65C13ED4DC36FF7A80ADCD87479AD77F583ABEEEBBB8ED36DAAD563F794F788993E89F1CBDEC5191DAB428403774981D27DC94A3D9CB90C849F50802B24DB32B5F0EAFD70B93EC1BCA1C4A210F1E3F8687E06B2E37DF69C2B24C38E9D36958035F22757E4FF0EA18F8929A77994EB5078F2FFA1AC1C6D6D62010CB34108FC5506F329B6C8AB16814ABABB799DDC6B1210B9E48F822BEFCFB0EBEFDEC6BE8BBCFD07AB8A9D618CB942480A6090197442A128C8070380C64B3194CC6A252235D5952923EAECB5CFEB30FBE11B0B1B1A1E6F3F373A0A4540D0B0879D6D074E43259D51BFAA523BE82C1A0BA2F534176171022EC0BFB94A8F88F31502155D70E4A646C6C14F1A938A4576532194CC5E378FEECB9524A17579EB51DC2FDDFFE5025D46AB5A9480B298F0F8EDA2EB46649F5B01E014A8154ECB2EC1091CD2418518053B50590842CB367F5B26B2809CBBA31C8B8813A25DCAFD7CDCD4D66A6A01C9332D8D23099F962A9A8E6B269FFBD06B376D857BF8F0821928CEDED6D45D06175572B7515BC9C2ED25F1A54903F10C4D4D434C98B6282A7C5ECDC1C1C4E134D39C188A3C0E6D90933D8E02FD0CD47C4DA256086CD5BF030E95ED9E28BA5A5A5EF294983D21B0AC7263B224FBB572F271D16FB80F750C3CB66D2A7FEF0717BBC38CF2696CF975A2451C3FF1EA48386AAFDFB5199EEBDDCC5BDBB77F4F1F1F1642814AA3E7DFAF4AB7F0006A06197FF9D49440000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (103,1,'Rackmountable_2U_server_3D_(96)',0x89504E470D0A1A0A0000000D4948445200000060000000140806000000722B38EF0000000473424954080808087C086488000000097048597300000A6100000A6101FCCC4A250000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000008A24944415458C3DD58694F5CD7197EEF2CEC0CC3306CC38ECDE6921817221C5CC98B9CAAB1122995257FAB3FB9DFFAA5ADD4FE80F41F245FD2AA52D5F8075495653BB1094B6D43B065C0363B44ACC336181818186086E9F39CB9339E8DD4B10CB67BA45777EE3DF7BEE73DCFBB3CEF192D1008C8610E4DD3CA70F904F229E41C2459DEDEB10F7908B909B9057914386480B4D7AD1F801B5253534FE3FA097413F8F75EF6DBC30E8657184B90DBD8CBCDEDEDED6F61DFEA5BE9809C9C1C8BD168FCA51EE59720F63785D8213AD10FE98233981937979696FADEA8036A6A6A2A7D3EDFA77A79390B31BFC391FE2AB639E98CFDFDFD9B66B3F9EED8D898FB501D70E5CA15E3C8C8488B5E5A087CDD3B02D451ACB907B9CFCCA04306305E8B03CE9F3F6FDDDDDDFD1541C7EDC710DB3B0ED4518D693A0376DCDADADA6AEDEFEFF7BCB403AE5DBB76666767E733C8599498537864FA7F8B7444A9F8FDFEA35A73D7603074994CA6D6F4F4F47F5DBF7EFD699403204D908BFA6F397BEEDCE7E91999C6E355556F3A8A0E65209B25252949569EAF1ED99A086479D8D32D9E4DCFD6D4D4E4AD8C8C0C8133D8E1DE26E87D90932929299204C3DC6EB7C05BD2D4F20B868AD8AC164136C84F0D8A80C47F60C0E6CD5883C3BDB1298E92527114E4CBCC9C53AA8E5548FFB341595D5A106B5696325A8F89B0C617111AFFECA061349A204671ADB8C45E582426FCAE2C2991FEA7A347E600E7ECA48C8F0669A1BCBC5CE14C9B100CC32C2FF94811B97CF9B20C0E0E4A6F6FAF7A61CBB32901BF4FCA8B1DB2E8F1081D043E88526CB15894CCCECEC62D5A81850822FA67759F9696A61C999999290E87435ADB3BE168A364A4A7EBCE31A8EBE2FCBC38F2F3250B4E48A4B7ACAC4C5C2E97783CD16595F6555454A86FF2F2F264797959701E11EEAD04800F0D0FCBF67EB4AE79E794184C49D1F520D2ED313FE29F076FB4988F43D3FEBD3DC9CB2FC2BEBDE1B7737373A5A1A141BABBBB59EAD2E980ADE2E262D9DCDC54C672D0015A305F05FDAEDA1C0164ED8C8A68BC8F33802C2C2CC401C5CD5327751130826EB55A558605BFD5241973F61C9BA08D935C5C591E363736540DA663998989F4D2897466ECB0DBEDD2D7D7A736C860BA78F162C2F74223BFB0508A2B8E0541D4247CD52250D48213CAD62247A1DAF31E0271767E419F7FE1040D734D0DEFA3BCA4C9F4CC9CDCBDF30D8258E2F8861830C0565757B7B9C321005B4CDC878686546A242727AB854D58747171510A61283D47A0621D4030B2B3B30FDCE41EA28020307BE6E6E6640300135C1ABBB0B42CEB0FBA65DBEB95F6072A22944E3AF4F8F1E307EAA5D3139128338E3A98750C16060F37CB8CD012906B01CADFA9F7DF4B087EAC131848D9D62C31031F1F74E7E6DAC3CE095D5962F3F37259DF65CFE7177BB64D965DEBB21F612BCE0B52057E05269EF5F5F5EF4DFCBBA0A8A8680DC09BD132F523D21B5406D001009C9B09DD27EA16123D57E98745091441CF474979FEFC79788E3A8DC8805C7B8E34FCEC84743D7A2C673E68923B9D9D6241643063421B8B058DC0C60642A43D3820CAD4D49494969686D744A405ED0C4467B01BCF7B7BBE8F61E90425276E4A8B2B5BF1EF6B20DD0DDDE6170EF07ABD0F11644D0896ED999999AB263D4A037AF9F1106C0A4B44524AAA6458508B9DF34A448B27C581A161F95FD6446248158323A3928C526272ADC89D8EFFA8E7DFB477A86BA6351B69EB97BBDFB51DA84312ACC869EA3D689E8E2B2C2B8F9AF382D29C0B2B874EC2FE88D28D40B021D8B5D09F7C263D5A037C0839137280110ED9F5EEC889DA1A554274D67EE9450F7A977C43673FEAED130BCAD7874D3F97CEAE6E39FBE169B9DB794F5250F72BABAB54C97A1DEBD96C3661DBF70C9C108879C7B5382D959515E02A0F30F0A1E4D964727252113DCA033267ED6557177B5E219A079B7CD4DF292BE654F9CB6FBF9482A7F72477E46138036823CAD3316219E25353A8761214D6FE90180D46415AA8AE88F598243C8F0E2572D0512D2D2DD2DEDE1E6712BF61CBD5DADA2A757575AA16932FA6A7A7A5BEBE5E39D40D3EE879DC070ED891C7CF06C487C81F1B1F036117A23E17C893274FE2F43636362A905656A22397BA9B9B9BA5A3A3435D7B7A7AA4B6B656710E6B720AF614DB0559916D7FFCC3EF657C7C42017EE9D2C7F2C5175FCAD5ABBF51FBFEC73FAFC7E552223793C308AEC59221D5DE5571EEEFC96A45BD58674682D9A77300316663A107B3065EAD31E1FA15C0CDE604810F6700EE03E8A11989ACE704841F268ABC72BDE58C1CD415AACB5C98F3E01A45C0A18DB0056D6E3C256DF7EE4BE3C993720765480BD649D579315B12ADC78E8ADD50A20C20E9875A6692EF8F35085E64F6FD075DE08A55D9022FFDFBC60D999A7122A03A657E61511A4E36804B4AA4ABBB474E377F80670B3A7917485B5B87B233B8174358E7D7A5F5E2C57DFDEDDF49DA822F8A03880331A40007FE63FC2766C03601A60368305FA203CCE8D1F7F12209136421D5D5D571BDB74E2A0ADC4473245F1231C85DE91C1D1D5500313B8817BF7562A33EFF3E887745157A7647FDFDFD8A4C13E96444938413CD8540278913F8898909B51EDBD320A147A70081A08D3CACADBBD7A5B8A85872EC36D51DEDA124D1EEF2F23264E50482A1081C1E80AD381B9595AAACF278B68200838158529657D6E4D7398BE2F2A7C88DCF7E90BC5687A42CE72303F472038C19ACBCEA01A3DAD025024823B969960846AF0146F94D663CCF95CC2C8B8C61333428760CE280137242E4604479202C3D6BEEE87F6A37703E585B774B4166962A6D34851BE3A01DE978C68353A2F598EE0C9250F4458E3E388E01E3D2CBD3BABEEE22DA5196981C477446698624F9DBDFBF0EDF7FD7765F5D47467E887B36343CFEE2C36FDB7405C18A90916195FD00CE4C2EB77C25B5EA59DDE7E511EB0433848113E2243A00FB5BE4DEF9A7CF5F2F5CB870C2E9746EE180508AF43014143A028548F5B77968AFF811F82D800CF225D212EEAA0201ED272CAEFDD84B83030386D1D111CD6C36EDE2707AAFB2B2D2822C1D5C5B5BFBF37F01103B11E0852899F30000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (104,1,'Rackmountable_3U_server_2D_(128)',0x89504E470D0A1A0A0000000D49484452000000800000001A08060000007FC354EE0000000473424954080808087C086488000000097048597300000DD800000DD80134E635620000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000010604944415468DEED5B597014D715BD3D335A663423A10D098C36242101B204D8C16C8E0B30C5661BB0534E1595CF98AA7CE52B3FCE5F3E525970AA9C54C555CEB76D6C134C3902AB401BAB598C168440129BF67D43BB66244DEEB9D36FD4234DB74CC50E7CF8B91A754FBFD77DDFBBE79EBBBCB64644597C1CE7239AF4161D1D1D9B9191B1232F2F8F366FDE4C3FB5A59BD7EBA5D9D9D9E74EAEA6A626BA7BF72E7575755D1C1E1EEE888C8C2487C3419AA68D8D8E8EFE56E33EA7F838126E303AEFD8B99BE2962DFB49C3166D6D6E36B5B575535FFFD07325D7D8E813BA71FD1279A7A7E53A2A2A8A3C1E0FC5C6C6524C4C0C7574749C74E80C10EC1011114163636372CD28A19EEE6E1A1BE76B9F979C4E97E1F1FE2505F02FF9837587B9393F4D4C7B2979C50A4A4A88A718570CB5B4B7537666064DF1A43ABABAA9FDF1434A58163F3F480BFF64CDF2BDDF6F90F1B2B7AF9FD273727539E768DAEBA389C9A9E70A00ADAD2D41E52B7DAAC36EB703049900C072D561DFBE7D4263C5C5C5728D4E5EEF34C5908726C6C7A9A8B090EAEAEA28353595FCFEF0DAB4D96C32CEE7F3990A86FBE8373939298B07A699999911F0819ED2D3D305A968A77559B233330504AD1D1D94BEEA0596CB2700F031F5AEC9CDA17BF7EEC9B81FA2616E900DB2E01C7FB12ECB972FA7C4C44491F35C6959D8B1FDFD5DCFD615B0BCB171F16CAC6E9A9C180FB975F0E0419917DC0240C0F34806004453CB98E60B0A0AE8F2E5CB218AC203ED0E3B3D7CF89076ECD8412BD81A070606A8B7B737ECFBB3B2B2E895575EA113274E98CA88FBE807A0E19950FE77DF7D47DBB66DA3A9A9297AF4E811AD5FBF5E165AD3EDAEAAEE0E45F135145275BB4E8013A0B9516A6E6E1659E3E3E3E9FCF9F3A6EF7DEBADB798AADBA8BABA3AEC7DA7D349EFBCF38EC850525242870F1FA693274FD29E3D7B64E1A6D99A3A3B3B89E32353D2B0DB6D949A991DB8AD69F3DD340ACEC5780E45182D3491413E33E3A30847044D31B827262682DC13E8AA8FD4FFC9CB592D379CD1D1343CFC841A9B1A69B0BB47C7C25C886CD0DB962D5BE8F1E3C7F22E5ECB3900C08B9BB88160018B6EB4E4C0A41C62A55800043B6BD6AC113F12AE7100297F8B8A8A687C7CDC9425C2353C531DB03AE302BD5CF82225B1F59D61CBFBD98622710FE597AFC8E49F3C792272272727537E7EBE290000B455AB568932CD5A38E6826B8C8B8B13D0A9FB662EC5C5205A93BD5A57B2AE30030A8CCA0BF99DCF3DEE184A5D9E22F7A378BDC1720F5859C1918B404494C7ECE7724533D5FBA8DBD547E3ECF7877BFA02AE690100308F9E9E1ECAC9C9112063BA410670B95CE2FBD58243F9F300B0070763019492C335588F02821900541F45B78A328150201EEF018084017479BEBD55A5504BA5172F87F8658C83821468A70D7ECFD8F06C800440306B0007C06E6C781EDE01F0E31D0106080F81185EC7DCECACA0DCDA3C120C4A0C9A7C902944419111949494441A5817EE97E5B4D9B4D0BE0BCE633D6E7273403747015735363C44756A6DE742DD3464C23C60609C15E05A0030AD021974C00D33009C3D7B965E7BED35530B9E0FDEE62CFB2885676767536363A35CC30581FA556CD1D2D22248D5F405D8F8620165A6ADA2FF9C2BA557B76C2607B3D2F90B17653114A51D3A7448E434F3C1CA9F2B7631931D078072E5CA15F1FB9051C98579E19E19038C8F8DD2B7172F2C8A1CB5303F685641A9B674E0AA30E876BB456600FCC9F07010340BE3344EFB0460F85D372601007A0DF3A249AE87604A293D902FF2A4F9DCC9C8DEBA6D3BCD32AAAA6B6A2D23E68A0B172C451F6141BA7B7AAC5318668F56F6D73E6F80721B1F3CA461A67A586F55EDED2038E3380348635AC7842A9778EF2833DC038E65AC5A754DCD62A58A1F9E6FD76FDCE060AF9F62E21317BB0B573CF5F68FFC9F23BFD0F4339A03C0853100D6E7FEFDFB025E008059788E75EE0700F6F1F13123E8B0EE2731CAA6180064230C10ED624A6265CCF89E2E955A3205B31E11C53E55E89BA9B9B9AD3DA048712D813E00E6B42F40E9535EDF5364784F2F9571882BC66DCA32DF2745FE5F9AA6D9E43DAC410ED01D96D98C110070BD6030FCCE4C5FC9D71F39F8A20F370DB45DC77F8B822E409F7444849DF6BEFEBA44EB6601E00FD572737385CAD18ABF29090495EBD6B26F5D4DC5EC02B6BCB489A3DE28FAA6BC92397B96F6ECDA29598A0A607FACB672E5CAE0DCCDD2C0DECE664A4C8A97BE838383CC1403321FA4D30F98C5B25767B13139F9FC81C4144FDB108325A7A473B6104B29C989B4F14639ED1A6DA78FB377D03F7FF311B97B9AA9E0DF1F2E0A02750074F2DF95BA2B9C649770D261F4CBBC8030A172BE5934CF0081D6C63E1991238224E4C266A914948054EAD2A54BA83485ED835412B1049E87B46CC3860D545A5A2ABF610C1607EF40BDC1A63BBABA8646610014802E5DBB1E74019DDC1FB50904B0081C8D69ECC2B67BF76E897190ED846B00DDFEFDFB453117D89D6CDFBE9DAE5DBB469B366D12CAC758F859C8655AE3E0F91F3E74988E1D7B8F4E9F3E4D55BC4EBF7FFF7D99D79FFFF2573AF6DEAF65BEC73FF81B9595557C6FC60906A97047BC2670CB88FE5D733E8A9B9DA60856B63726967CCE7966320681BA91D7F2DF54064030407318831FBE0913DAAC942F051B2DD037921707E916808254CAAAD88105C43E0294680612D50F68C4C20F0D0D49308371F0F3C1544D07402E5B4E21B3C099F3651C10AEE7E8D74325CC009A9E06E22F02498CB76A292929A6B2E319B887B5400683CC08568C8C060129AC4FC9A599B916BE51555D43C78F7F40439C97D7DF6DA00FFFFE0F796E5B7B1715179FA18A8A4AAAAFBF27D906D6C2C72E0CF7A399D5A4AA38ED9535B1D961B5D31412CBB13E8CB5835A57124DDB23A8538BA2B4EBDF50D4E880C107843200AF753AFFD5B0E62A485F08009CBE1454BE6DFE65111191B2D0508E12DC2ADF566565B34552851C339A8302500D540CD0DCDA267E7B92FD586DFD5D8A65B0A8681672A1B60D99219BD9B3038B1C6D990558A5882AD20EB801CDD4680B0AD6D3EE5DBBA8AAAA4AEA15070EECA7FEBE3EBAFFE0916CAEA567A43390A6188C5BE9D5575FA51B1C543E7CDC4CBF7CF717C2689F7CF625FDEAE8BBC2349F7D7E9201551B12BB18E397B8543F2539E728D23E40732FFE81FCDD1C335567E92E2094019C4E6706AF91669C63880BD0951D6D640005B648CE512128AC1ABF5B2D141408F02CB598B078E4EF7003B030502CA8162D212121C4D2A2A22225E7C5BB972726B10F4CA0AEDE3E5912F87F00EEC08103964A04E3E09D5672A99234CACAA84780EDC04E60022557C0584C525CBED7D6D6C16B7593FA07FAA9A5B555CEF1DC81814106C143A9A2F6B0ECD32C0FEEF5F4F4B28B6DA79B7C0E8B1FE47E4D4DF7D96D603DFAA4DC1D5C5B04E1FCF2F1B149CE92BA28966CE4F523B063B7E065839DB1190820940118FC6E6D81E08E85B9BB51F9B014F588085E609467418BF0DDB03AB386E760AC559FF6F67629B0A08FEA87DC3F987A3103C0C24187681E8EBA535396537413330B833126C62576E0E2BF19E99B648250142CD42CB8527B0D130BD23A631BE63C5AED0140468CD1AB66819883CF313F54E962C28CF7C4255255CD1D3954FBECF3AF82E7FF39732E34A5BC399F767E72E254F0FCABAF4B0CAC3FCF586E4FBCBCDF37EBA7A19149BA44A974693C109364FD2B39240330BA0EAC0FC6A92CC02C0690C92BE54BA0A5A3282E214922D9519E78CDBD863071CAFCD9C0E8B8E1C58BA3195C0D311D9A66623A4A87D80A9C7AD4DDD1DD4D1D25DDC19A000EF1E92FA4B1D54CC89EC5959B372DFD7FD700FBC7478F96EEB344431FBB23BC7B9B650BF5FFC89B41E33EAFC57EAA9F5CEEB8E0F9C29D40E854B94E01009F604F33092E4059AE9105A00C50C9606F37ADCECAA2290E82045D6172CD906BFFBC408BFB28D4F943B681FD86EF102448E11FDA3B3BC89D174BF11CE0AD5A914AF59C0DACCE4CA7A8C828AA6F6CA2FEEE2E618600E2FD4F577578CA52805A44B46E06E4B23041AE777294F2F3D748B008DA57BB9A7021C63D8E3E8E09E04E314F181FEEA34AA75C1518109B5BAA8287714EBD260237897B4A99B846814731D40C03C466772CAA03045CBAA6CAEF1E3E4F8234C7F8D8A15C80028072071AFF855FC376F00A0E4A6A6A6AA8B0B05084326B981868D66CD305EF40C4AE5C0026831A35C6E1B9F0D3F0B5F85B5A562E63B0159CC97EB98153448FDB23F5EF40BCE1A5F4B4346A6868A0CCCC4CCBDC5A05885631008244F4815C7077781E7EC318C887D230AECDEA0036BB4DE6037930FF9D3B77CA3C917AA21E80CD2A3C1BD7482F116B6037B3BEBE9E7671E00890DCBE7D5BDC0F7621A10304930872B16187741763B1738B523AE2148CC5AE2A4080386366DA2F73581803281780C631D7CF19087F0200A68C31007C9E9101500940C5090C01D46211714040B3B66EDD3A29299BF581F2B110B02204440014F2EEA3478F4AB50A8B8DDF010065718F5B5AD92A2624656A696B2797333A9817E33D90090B70C1A21CBC77EF5EB11028C74CF96FBCF1C6A2ED608C834C502416DC6A3B5845E85BB76E9531089C917ABEF9E69B125FA03E82F9E2D99823EA160002AE51AAC55E3DAEA1E0DADA5AB17AD42F2013F626A074EC79C0603016358523478E48208D9A452C07D51A458ABE16328002017EC77AF1F564703BD8CC05E0989B9BE5C02B92464646A41F10AEE82AAC8F62B680A5586DBB9A058FB03A8051157A54D08A2A60417E1E9D65CBCBCFCDA6384F2CC7053DC1ED604C08168AA8DDAA3E016520587C9AED601805A81C722986D196F88A08FDD43858AF62125C2363C135948B6BCC15EBAA3675F4A29CDCC318E3B330468D457FFC0EA0E11D0183B105D3EC857B01C620507705923378150340F9C853A15C6326303B3B17B47A5090A244B303F48F495AF5013854D089FE78177E431510478FBE59A4E985A87B1C107EF975318D4F4CD2D59BB7A8A4A2323011FE0FCC04D7A100A476FC161EB0602C9CD97D1CC6AD6AF5A127E44286827453C965A57FACD1175F7C21160D36846CF84006CF83C5C2CA4F9D3A256B0A36A8ACACA4B2B232A990E2431954106FDDBA25A931E4FDF4D34F852DD117A9329E8D8667A1348F0F6B904E833584F60500B3C17A08D619C0077BCC1B9614BD64377052014059AD0A181400FCD35E29043DE245C08BD46EA15945CD68C1567500A0176082CFC3C44179C696C6BE5D6D07E76465D2CB454554525E416BD7E44A4C70A6B45C56BC95736D3494A021AF591C0079AD8A40AA0F64471106BE173E1A8054748AB5B1DA0EC66E298088AF8F14B8F12C50BCBA866211AF2870A1E4ACBE5750AE4AF50500DE7EFBEDE035E4C13E83EABF71E346798EFA060231913DCA19520C83CC304818B65B2FA0E93A18C56ADC0A9CCFD920B87A907205F8D0D1C939F864B4938A366E927B25E7CE9B07D47C72FBCE9D25E9FEF2D5AB61D34363ABA8BC4083438394E18913F0210618663774A3BA46BEBCC124131293283323532659CEAC60D59E8C8C52D3FD07967D6E55552F29FBB7D7AE4BB0156E3BD8668BA03BF58DF4AC1A94EB71DA65C3C9E18890CFCB944B806B5686C92CE563F0550000D7F968E000651DE805340F8A86A5072A7E3E4A60D478DCEE6732A194556906058E904BFF1A699665C4794E5EFE33912B69C5CA90D8055FF320307539D3E8B968312E0601BBEAB10000E0BA9061805561E41C80B632006E687A4050C893F81DD38D064AE6146C1953F24150F4DAB56B256AFFA959B7E7F17F0CC1975257996901000EE0EBD8B0FB54359495FF4736FAB2FF02016DF271B63E300E0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (105,1,'Rackmountable_3U_server_2D_(64)',0x89504E470D0A1A0A0000000D49484452000000400000000D080600000019AF686C0000000473424954080808087C0864880000000970485973000006EC000006EC011E7538350000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000005E14944415448C7DD57EB6E1B45183D7BB3E3C4CEDDCEC5491C071AA55442912A5AA5EA1314FA0408F11AF0048887E02580FE8350FA07012DADDA5012C581D23A899D38BEDF2FBB7C67ECD9AC442504FC414CB559CFECDCCEF9CE77666A00F84C9E1DC330AC546AFDCABB77DF736DDBC17FA544226368D45BE7DD5EB7F76FE7EA76BBC637BB5FC54F8E8F9F45A3D1662C167B6848FBD9FCFC7CDCB66DE4F3796CBF7303F1996958A605CBB6FCC1A661C0F53CBF6EC0506FD77521E4213C1646381C46367F869D9B37502A57D1EDF590F9E53962B1281CE7AF49EDF7FBB02C0BB63C13D128B2B91C526BEB289C57709ACFC1F3DC7F0CDEB66C346A353CDF7B84A5A5254C4F4FC334CD5736B15CBF7E1D878787088542AA73F1E202EBEBEB28168BFE049B9B9BC864320A30CBD4D414262626D444EC272462666606AF727921C48427FF640199AB80E4F2124E4F4FFDB9161717D1E974502A95549DA06FDDBA85A3A323F484B4542AA508CB172EFC31D31294791947B215FDF2D2BF6DCBC44A7259D55F658FF941FDE6D7B7B63665AD2EEEEFEEA2521EE291E8E3EAD5ABC4EC90808E2791E5C28CA0259B2E9CE5B1B5B5A53AEA32180C3037378756AB355484F48B44220A3CC1E4245A1C6F0A782ED8EBF51509B57A1D35619EAC730E96B1B131455650155C9F0AE05EA84412AB508ECAFCCC24D616E323F58DFE1A43224C21301A76547B323177D9473E5A70E198123051E1CB51F0741005438704ECCAF341369B55002D91CAC27212BF8F98D493956BF53FC9EA7C14419D128C9827A9F3F2F818AD765B4561752D85BA90D690BA5F02CAF2E70AB695CBC85231E6650AE6F225F5FC9D42328D0089DE0838D5B8BDBD8D6AB5FA94047C2D4CBC2F1D9F4A0A6C9B22A7881D5279DB0E6C9AE430926224AACE746154197D46966A88C7E3F8EEC747B8B29146FEFC0C34D35AE10C8BD25EAF5F12C8F4E13C4135ADADAD7143FEDC4C931F1E3FBE5C7F2A82DBB777707E5E40A3D114856EE28B2FEF89F2F2AF056F9836B636DFC4870FEFE193BB1F21278A745F64F467FE78439ECFED9124C4E38C452E4CB32B968A4824E20A942E939393AADE6834FC4D8F8F8F2B39B12D9D4E2B508649B314A63D43190FE5BC924CAAF1BAD03B985E24D4CFF19197300DFCB9249D7C13937421A1A15058FA0C94EC57C5206FDEDC41B55655A46CA4D771FFDB07A854AA92520349311BDFAFAEC2ED3DC0442D84F6C844056BCCE0B147C3D50B0878458021C018511D695D1841820EB673B304C1F6FDFD7DCCCECE8E72CCC3C01D80FBA7044910C9D31E40D5D007749DA5D96CFA86C8B9A8B8A0EB5F144BD83FC80CC1F57B68CBA99897138729CB3DF43A3D1C874E649EB6026F4AFA9CE48BE24B53302B35849A61B52F45A66D2F70CFEA3715A98E3131301260C9EFC9995995DF5EE0D87B5DDE9E05DA386141C6B882FAE434A73CA0D96A23B1B42CF9DF41B3DD856F28AFF193F2FE01020E87B210DE1F5C12D06A36B0B7F74C19270DF3A270AEDEB56A4588EC2B2272F913457874624C2973D06B63BFEFC0E93A30C5983D77E093CC7E12800809B8C3469F00F9D8ACD7B0BAB2E2478525914828A675DEB22F8FABB2181695C0BC968B059EECFD8C447C1E858B229C9083DF0EAA985E1E7AC5D0898672673DE801947DA15050A4333DB8DE4F4F9F057C230657805239B426A61FF7C7BA5614DFBCCFE8BBC9D0081D353F4F257D8F2146B6C94974873AE8B0F3C2C28202C5DCEACA44649AB2D50F0710A4AE73129532329669A1EF10ECC734F2D4E5C944B95256FD098A9BE6C3BE94B8AE73F3F48851542E8FDFA0834B3AF09B313AE3099260F5F14D32B90EDF9A1C7A0DDFDACBDC910274AA0AC6361550D68B3357790FB09C104A958A02A9D3A02FF2E6373F9252B272DC69E73ECC1C292072658523E3D8774C36C6B682A40A41EBF3B7278A21C1CDC029F3EB8B17EA6244F20EE452C64D139C2ED5EAD047EA8DB6DA537FD0F18FB96E8FBFA54FAD29C45B720BADC93C8EF84645021A1253AF4AFF819F5F541BF725E36B6CB97BEDDAB54F45C6DD747AE3EDE564D28B4D4E7AFFC7FF0B640E0FC79F3C7E34250ACB6E6C6CB872427DFC074BDF049A3BA6FE770000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (106,1,'Rackmountable_3U_server_2D_(96)',0x89504E470D0A1A0A0000000D4948445200000060000000140806000000722B38EF0000000473424954080808087C086488000000097048597300000A6200000A620151756B480000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00000B874944415458C3ED59596C94D715662780596C30C61B36061BB3789F7D5F3C8B67C6C68C773336366631061BB3DA8077309B6BB0C9F290B45486B411286955A4F25A21A552D53E943CA42FAD5AF5A595DA8854695A454DC9E9F98E9961E667680B813C547DF8F4DFB9FF72EE3DDF3DDF39F7CE9C3973E6B430EE87919E9EFE379D4E47C3232334323AFA3F87515C47461EF5F79FFEFC9B845EAFFF323B7BC3C3B973E77E909090F0417272F2FB4949492EF6F99C5F30281AF3E7CF279DC5467A86D668FAAFA1311A9F86213E6C1E2F7976EC8CC05B1D94ABD6647EC63BA658186711772CA659E8A2806F9407AA68477D039DEAEB278BC3FF8DA1A0584BEC78F1EDC2850B29252585B66CD9423939391F82803FE246414101959595C9438B172FA622959A545A2D1D3C78906A6A6AA8ADADEDB9D1D2D242BB76ED926B6B6B2B757676D2E0E0200D0D0D919A1DD2D4D64E139393146C6CA6ABD7A6C817AC25B5464B070E1CA0A6A6A617B2093B61ECDEBD9B7A7A7A687878985AF8B7CD531143405199819DA379A5B0387C94B5212FB2B84B4B4BA9B8B898B66EDD4A797979BF05017F003B98744949893CB46CD9322A2C2DA38DB9B9E27C3811B2A40426190A85E2DE8393BD5E2F1D3D7A944CBC024F9E3C495D5D5DE2249600898E8A9D3574E0F061AAE0D5DF7DECB844415A5A1A555757CB73F1BE8B71624CCA7ED8C077713D73E68CF41D3972843A3A3A6411B5B5B73F454099CE4CAEEA06817B67E32C828DE4093691B70668A68A5A6017F9EB43D4DAD943ED5DBDD4D4D14581FA160A34B45065432B553602BBA9AA6937F50D8F53FFE8381D3F3BCA2AE2143B19EB732204A8D56ADAB76F1F6DDBB68D366FDEFC3B10F0FB8C8C0C0A0683A452A9E4A1952B570A015BB76D17276235363636CA33D1D8B3678F3858D90F9C3A754ADE3D71E244C439009C82AB8EA5A6A639445726AF52556D3D5D9C98900848E7B1B85C2E19647D7D3DD5D5D5C500241E66D294FDC0C0C040C41608C0157D1803C66A757B6308F006AAE9E4D0393A050C9F67E7CDA27F645C707AF482E0CCD8451ABD7C95BE73EB3D9AF9FE1DB90E9CBF4C83E3C0151ABA004CD0F0C5099A79EF0EFDE0EE3D7AEBC60C5505EBC54E7A667684008C0B8A806B7E7EFEAF41C06F323333A9AAAA4A58C143AB57AFA62226A088C3851305D5D6D6D2CE9D3BC531D140DFB163C79EEA070E1D3A24C4011E8F4708C4CA8653E11883C54A9575F5347CEE3C05D8F1172E5FA1404D1D65F058601F1150595929EF46A3B9B959BEADEC0730161001F2FC7EBF442E7EC3F9E8B3BA3D3104F82BABA97F60884E0B869F6070641643A37486719631303C4697262669FCD2048F75820646C60483A3E768280A63E317E95B53D7795EE354C9390D7652D3B36222A0A1A141160AE7815F81809F73E5F3E58E1D3B2441200123491495A92471E919CE7297C0EE740A1CE5E58272B79BBC3E3FB75D02A7EB092AB8DFE3ADA07297FB09D849809FC9D69BADE467C79F387D46A4E8C88993224520DDC8D1E1ADF03191EE88ED303C1C553E7FE0A97EC01FA8149BCA7ED8B6391C64F5C44680C1ECE271BC3AE0FBB0B32E353342C09A356B64517204FC333B3BFB6310B09409F80B5633B73F4702E6DF545CA626A3D54E1E76C40BC1F7042049093D4700341F3900D5CFA1DEA34C4490B44CB88B9D08B8A351F1EFE1F90F309A2DE4F00562085069CD54AA327C6DA8342632DB7D1C75D5D46CB2D06EAEC48A43DDA4AED9237652D6A54708E0FCFA05229313F1278B162DDA0E025E4B4D4DFD9465E611B77F84049C959545255C054186201D66B3997C3EDF533213080484CD781284F7003C83E882F42037A0128A48106BFF24573F01BE4282AAEB1B29376FB3BC8777904394C03D2C16657F053B19B20529C5042141904E8CAFAFAF4F2A2265122E2E29A3A9E9EB34C1F9A7BBBB87666EDEA4504B2BBDF9E65B74E1C24552A9B502B540C7155A7C6C2F2C2193D52BC9FEFDFC14BA9FBB8A5EBBFD31A55EBA2D769253D22204B0D37FC685CB578585859FC0F742C0DAB56B41C057DCFE0912F0C68D1BA954A31139B05AADA2C5D052E5A4E1505437F11C059D86B3E104683F1267741236F21E0312748D1DB0A3AE81AE4E4D53EDAE10A571F48134542FF1741E5510AA2F653F0840E5152F092337A00A524A5051898A376763BCE91CA5B63D1D34C905410397C4E7CF8FD3D98141D21BAD64B1394967B090D9EAE028B2B13C5AC98A3EBD3982C26255848073255B69AA388F32C6666873CFB8D85993BC2E42002BCC879C8441C09F230470D2FB142B94DBFF4002E4F248F6002A9E043F28138443E04825506363452AFB91F4A20940BBBBBB5B56221C63B6D9457AF6741E14290AB10370451504D2C3F6407E34B0CA41AEB21FC04A8F2600D50F9E05F9F89EB20A2A55E9E8F6ED3B74EBDD77696878941E7CF411F5F41EA3BB77EFD28D1BDF8DE9BB77EF1EBDFDCEB7699C23E3970F1ED0BEFD07C960B20B8A4A3442C0FEFDFBE98D603ECDD46EA2B41F6653DE44A1D859BD262542C0F2E5CBFF8E39C410909898F810A1BD60C10249C0D82468747AD2B16EF23D9914261196956880005426CA7E381C2B0F5102594004A17E07212851CD763BF938F94E4D4F53B08937625353B231CBCACEA6A54B974AE582724DF95D4CF2F8F1E371C782EF223AC236610B6D8C2F5E1554505446CDA15681DDE9A1FD9D5D1C9976DEB4B57324EC8AEA73506B5B07D5739FCBEBA703DCA73358A9A44C27000192D42D6E0ABA9D54E776903A64275D4DB9F427AE4E16E763BF85248CB96DDFBEFD4F110258761E422B972C59220918AB5EFBF8B840CF49057AFDD2619D8D003F979EB8A212C215A49B383A5E36F4BC88944958A3B7915A677D65C0F7616755E26A2160DEBC79C4724F7BF7EE45C91F21C0C361F11912D78A152B240163BB8C01E35CA59257928993B0C1608840FFBCD01B582BF1AE514A453F6BBC466F14E78FB0DE22179CBF78499CA366E94099697738A5740CC31E85E87E9B7D16568EA8787071A90C7BB06FF7FA6277C25CE9215210E1884E48AD93CB6CB47175F3BB685B2C16C94B681B79078F0201B20B5F20C2207F2854701FB9C866B3495BAD9E8D8C15AB92840028CCBA75EB241A0B0A0A1EB2DC9783809B0879843BF41F0958C309D8C4460B4B4AC9CE93807118C140A3814A0372A0EC0790902009900618C40E163A1CCE010EAECDB1EAFBCE0EF20E98F701C74FC8EFCCF5EB45AE202570821290206C6494FD70567F7FBF4CBCB7B7571C8384DDCEC9175218AF0AD21B4C224FC839B80FC786AB29547D20076DF80036D186A3F10EC68779C26F500F381DF761175520DA46560FD859BE223172100785813C8348CEB5B740C0DBA8FDF102F41F0918CC5AF883A51AAD1C4F605098B872EB0FE7A2F288772C80E40747803C3C87B083E35135E1EA64021001D3AFBFCE4E69A4ABD7AE515DA845AA204C1EA4C54BB4706ABC7B7056BCA3081CFE6121B4E328425105198D66991716C6860D1B22B92C272747C60B67C21F78062463178BB6960B149082364E35512C40D7796325676300DA3A9D41EC2424AC0897A08453072C4E8C93BFFD0E08B80E66601021C8C941420EE1ADE3DD6AC6E3AAE47993301C859587500521F83E1C8767E198724E88D07CEC05A2AFE919992281700A26F2ACEFC61B0B220063C7154EC222C0CAC6843BD8BEB20A3221BF8944EAC5999B366D1222314E48312A43AC74AC5A2C50D858CF118AB96051A25809130287A28D3E94E1681B9860D859BA6CB91000A571B05FA10688A4FCFCFC3740C0391C3FA08483711C95E2216779B9244A1082DF301AAF0C850461A07074343071D4FCF10EEA40A69DBF8FC337543FE1E36854419BF3F329373757C2F445AA2010A4EC0791784F5905151615F3CA76BD3214B384CF1290200420C742E6A00258283CCFCB20A009E5116A668415FE13809ECAD98EBF92F4565B7C58C2B046A07B06629E31CFC26877C6FC211306487FD69F385F076A4EC2CA3F648C160FC3FDEA60F53CAE82D6080109090954CE0B0F0440553821B78180058C6966E75E6A6AEA8F3934FE8AE47A98374DFFFF4BF2E58095E20BD6FE472C6B9F252525DDCFCBCBFB29FFFE1ECEE1FE0557D41B7370B24B660000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (107,1,'Rackmountable_3U_server_3D_(128)',0x89504E470D0A1A0A0000000D49484452000000800000002308060000005CB6028B0000000473424954080808087C086488000000097048597300000DD800000DD80134E635620000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000011734944415478DAED5BEB4F5557165FE75EDE70415E0222E005441150AB83566BA7BE5AADDAFAEA64267EEB34E95F30C9A41F26F365924926CDA49DE9A49999F443D336D1D1F888622D3ED00A6A15F0898AA82008C8FB0D97C7E5CEFAAD7BF7E1DCCB3D176DB4A2ED263BE79C7BF6D967EFB57FEBB71EFBA0B95C2E7ADE45D3B4583E6CE4BAD9738CA797AF0C722DE17A8CEBB72CF77BD36150DAF30240707070BE67C1515772B54E0781FC84F2A801103CF5F4D8D898E3A506404C4C4C381FD618163DE3055CB46735B6218040B1435F5F5FCD4B0180949494743E6CE2BA85EB5AAEE12FC9823DEB72CFC00E252D2D2D432F040032333341E32B0C5A5EF03359B06739369886338A1DEAEAEAAAA71500F2F2F2E27C1CB8B817D54B7B41C0546B64875BB76E0DFCE400282C2C2C3068F98AA7E1C04D67E14FE3F90C73FD5EB1434545C5AD67028037DE7823DC63C3B7786C7AFA2F767C5ACEE781811D4E959696F6FF68006CDCB831C3A0E56B9403F7735BB417184C235CCF2A76282E2EAEF20B004FD2E56FC605B6D96C4976BB7D6DEE8205B480EB2F650A2D02170F0F13C7F2D36E6C0F1F3EA4AAAA9BD4D6D65ADEDCDC5C1E1C1C4C56AB15C9B7EE8181813F61ECBBB9FED6DFC3616161B4E6AD8D648B8EFE659503941CFB1C7AD8D8421D9DDDD36A5C03FD7D74AEB4841C0E7714191A1A0AE5A6685ECFF0F070D7A3478FBE09E2DFB3D50341414140068D8E8EEAF4D750FF80A2F801E7B0433A783CDE9CEAF6E3D12ADE3FE21CA7F89949648B8AA47006646B7B07A5CD4AA121C730B5777652535D2D4FC8F604DAAAFDE8714136AA7477F750AA3D53CEC79C633434E4A09EDEFE69058007B535FAE2ABF1ABCA4CA0454444CC03009255830D1B3690C562A1C3870FCB35A802D41631CE82191FA77C36071C7620C1F3745C580F6D0258E3DC3FDE0710A6A5A501A1D2E6E0912239E6CF9F47713366D0D19325342F3B9B864746E8EC851F688CC19A979B4BB76FDFA659B3663D35BB0F25802C5070C46F494949141B1B2BE32C3E71C2EFB31D1D2DE47C8EA600208E8E8E65F945D2D0E080AF5F47FDFDFD54575727206059270200631EBB4F8B162D22F61CF507305174690DB2D2958A1BB474E9528A8B8BA38686066A6969314B06D1CA952BE9EBAFBF361DE48A152B282B2B8B8E1C3942AB56AD1210949797D3B265CB18B10E59CC828202A054D7D78B97AFF278DC0B71EED225010C4A4F4F37DDBF7F5F7EC7E21C3F7EDCF4BDEFBEFBAE8CFDF2E5CB7EEF03743B77EE94311C3D7A94B66EDD4A070E1CA0F5EBD7535F5F1FBFAB87D86E52464686C7F2FB63181725DBB326EE6A9ADF739D4D34032BF1216E462C3999514242424441FA0706C9DD54535D789D67D9ED3CF77161C7DEBE7EBA7BB786BA5B5BE5BE92D1046B758B8CE11778DEEF0AF2788BF4EAABAF527575B5BC580D5000E07203018B31C25A879ACB1A07619BF90D28000B84E5AF40CBFD15800B4569995150858B17D1CC84782A3A718A5E2B2C94C99D2C2D93FB5818F499989848F3E7CF37050080367BF66CA66BF3CCAA327FD07A3506CC6906B30FDEA9EE6B26962422328272B232BD174BD397CCEB7CA20F3704A2D8CCA52427099843824344D6F71F3C9868A1D1A4F379AC48A161A1D2B68BCD9263B09F7AD94C0A005CDE0000D376747488F2B1FD87EC46B112A38A0180722570085409004708A1936D2E04A016D96FDED2E1D085660600D5C6B7A07FDCC3E0C00058048BC53D9E0B159514C4E3703A9D74FCFBB3FA38356ED3D5D5258E0DDA03C01086D97BE3E303EF34A30DC0EE154F717FBDBDBDA29100819B01FC97C8080F00FC2C96D7B9A643424753288F7DE6CC44D820B2F25C4679AE605FCD8C49F818CF4A133B2386C7E5A4888870EAEDEEA42A8F2BE31AF7F669209FB6B6360133189CE732AA3300268641296AC7A22B0058AC4122D883070FD2EAD5ABA55DA09047518F591B0812253D3D9D6EDEBC29028E8C8C14EA5771F7BD7BF7BCB47971DE02CA484FA3A2E213F4FA8AE52C202B9DF000E1EEDDBB727CE79D7704B866000078CCD8C7D80682021B9595950960302E3527DC03D3983993FDBD3D74E97C294D30B5362964F43AD32687948695F61B72FA9ED8A2A20400838343A2E10A5C2E1F068082633E90B1C7191C45CB0A44322CBC2808EED4A953A2E55810685534DBA4B4AC6CAAADBE4509FCB0D5C30C9A2F07BA9E202CD0B4C7F6D4BBD8C6A7A4CFA1689E640A3B61D50C8CF8D819B2902D6DED545F7387A26D51C204CA71FC294A636313D9E7E7CAF92B79B9545BDB48CD2DEDD32A0AB85A799E7A981114E3CC9C3953FC33980238F3EC1354421D7672FD8411BED56303C745E90D0C806364948D46C69C509129D6569B744325D37C41330943AEC9FD844544CAB197BD57540105DB3AD53492413A2C76D9498E91D1C9C07C82502F5088E85B6C4CA3D321431968BEC62C26DAC1BCA9F68D8D8D679989BF08E24675FCA34B99002E554C73052A245325846DD186B7DEA22B57AE88BFF02C0B2209E58C1E39FAAD1C172EC8A56CFB1C3ACA4EE0F225AFB0D71B4AC74ACEB0BD71D286F5EB241250807D56056166B42729567CE2A4DF36ADCD751413132DDA865C011C5498AE91D131AAAFAFE71077B6D8FAFAFA06DDA134E26E62D1FC2F2CC2DE84A434B6FB364A8C8FA62557CA68756F237D91F91AFDE7C34F29B2B59EF20E7CE6F101C6BD00C0CE6F33AF6D0ADEC16BDBCBFEC0974146DBC7CE0F8CF6491664816200E5843DE0D8B1A9A9499C21381157AF5EF53B403850089FCE9D3B27EDFD95E4E46409FF9A9B9B252459B87021959494C86F78068B89480071B78AC5AB6E575363F32372B0FF5076A99C823DE06C6A6CA4EBD7AF8B7D5BBC78319D3F7FDE7401E1BFC0C1844DF757408D6FBEF9A6F810088711195DBC7851C263D8568C171104C66566F32CEC9BECD8B19D7EFFFEFB1CE6165165E565FAE8A33F42E3E8E38FFF4E1F7CF0BEF4F7C9A7FFA093274B7416F4BBF006E751DD1F1A1AF4C83948C068738E50C2D81085BA9801A3E32978A067C217F3610056F26BDC4F12578B1E91191D376E04155AAA2200A3AD0F09091534032848049979F2680F01428BCD984269379C41F407C1B7B7B773181445393939A2198383835E4280F6E7330B1C3D7E92962CCC67BB6FA3EF4E9D96F721BEC531262646429C40050E9CAE797EC68EF14016007A047BF418177C8BECEC6C796E22B231C90330602F5FB946FFFCEC5F1C9D74D38DAA5BF4F9E7FF963E9B9A5BE8D877C5545A768E41788717318435D11DD938F97E4848309FBB44CB71EE96E5A840CDE83C6A167DFDE846783C8DF3B2356961945A7182C27ADA4D4D005FCF6285F2DA00F40500DEF3AB09ED9F7851302F1A04AD32778142414C0842336BA3326B819E07C0B0A016CD3D86070F1BC524210378E3563545B1933A2EDEAC458009A7156306B87C1320C63C00C61E281270FAFA383ED18D8A60CC4C2FB41599C9D75F5F45D7AE5D63D08CD19A35AB9941DAE9268FFB1566A9D4D9A9CC58FDB47C5921B3CC72494CDDAFADA31DDBB73243B5D0EEFFEDA35DBFFB0D253058F7EF3F44950C2833C7292C999DDF300B055B3BC892F567D25AD911AEC89814056069793D3258469A8A74BC0060F8315C01C09B0142E8D2A54B1246A81471A0142FFA0AD406EF83C6639141FB73E7CE158A85C619934213A625480065E1F1C4711410CB66A809212B0F0F26030BBB69D326AF64CDA4FD514FB869765F258230573018006FB7DB850D903E0568312E5116130670B24FD2C4F3B871E3062F7A2735B089BBC6260AE0EBEAEE12DB0FC0B6B577880CD0AE9DCD0BA28AEB37AA04F8F01D0088368E723A3A3B69C42047F403A5E81F70C80654EE63388A060044635D8CE179906FEC6E5C7C688AB223C1A121F8FC4B68B1B5B53560360DF612CF066A035B2CA94EF6EC513130F803AA001418C3E8A83BA68FB145536A4A3255DFBD278B1DC3F60F938A888CA2B4D454690B3F007D9A9927BC0720D2CD8B9F823E54D613F90514386FFA0E1B9B00CC0D1B40FE4A942D962E965F95AACA57DFECD5CFF71F3AEAD5BEEC7CB97EFEE5577BF4F37DFB8F18B4DE6AC834C68809181D1BA78EEE012AA5642A1D706FE7D8FF9BE8B5F8BE00500A6D6A02B00846FB8FEA72BA81111D174FA32CDCDEA1612ABF7ADD9F01D54F5BBA7A0286FCF8A98D516EC6A34ABBDA7B6E525894DB8F780887912BCAED9ABB52C5A627B33F824D8FF1313A5D5A16D0FE37B34651F59DA9DB4C51D0C66A62465CCC00A8CF749BB7AF2BA0D6032410A12F00547A5B258204007C32978F09CA042800E8A9602086C1D1D5DA42994C870ED66AA377A9BFC4E573AD4DA621753EF18CCB6F8C0E0A567E425353334545C7502C8756B3390CABE205B4735815C62C80F3CED64794C421972FE2CDF2535E71B34FFBA972086A2B55188AC1189B9038D9FC39FA68FEBC1C613F50AD728491E686D7AEFC0FA464614E314F281FEE272424E8A60A4CA3F65BC04A784E25BA6026D57E09E68C6B38B76EE66C667618E17B41937C0065F7F10CAFB78D7F4BC0683EE4BACA9701145A4037F050077940291CBE210F80B00D83322B981868D6CC04E01D082541D7B087980CCC069E43BF101AEEE378FCE429790659487B463ADD665A4656D0668BD285959E9626A1DD9C39734CD3C00A589867A034364C04DA605C3077E80FBFE1198C0FF13DAECDB683619F311F8C07F35FB3668DCC13296FF839486FA36F5C2F59B244D2E1F02FAAAAAA68EDDAB50212388F30870849B106959595E2BB202C8519C3B3F9F9F912F120758F6711420304F0199C0E178DB342FB6300C81EBF7354F36B3EFE15007018F702D42743BA1F80F811610A57A0164284006A6ACCFF79059F91DDB97347ECBCBF02C70F82C07DF81300D499336768D7AE5D62BFF12E0002005079885A769E706F6CCC49F51C538787B9B5616870488485714100E8C7ACE07B07F816667900CC6BCB962DF29E63C78ED1B66DDB68DFBE7DF21C0080DF21F040DBC1EA676C79E319E4119037C03E059CCAB367CFCA7CD137E68E7C0380806BC81472C3351618B91668FDBA75EBE4DDD89BC0A223CF02F9E059E43EB66FDF2EDBDC172E5C6000C500EAB23760DC0C327E0CA29481CF87F4CD2008DD48FD13A1A0553A4318086F18EDB0803302A442415FD096FEFE27FB42060885D619C3388B67C073ED73286FFE3CEA6446C86121C0096CC296A6C5BD1D8C09E19D6081401E3E925081D8CB5F8400A5001831F7A9B6839580B160E2ACB2AC10EDE01A00C3358EF2A10DCF1572549EB932172A12516DD50E25AEF10CAE010C5CABCD2FB577037968E392F4F16B029419F08C73D862DC0DC4821716168A2D520040F8E5644710FBD3401984172807A026FF386DD4A0002C1C4199F0BCA109601BA34ADD62A76FDFE1221A608DC7D670F1E933EE3C00FF4193541F183384E9AFC22C293A37AB46B3E5661CF76F08353136B30F617CA38DBD7BF78A362BCADFB3678F2C14B41F0CB47FFF7E593C4456A74F9F964D388013EC72E8D021AAA8A8D053E2BB77EF961019AC808C225809055BE6F890A6A8A848C000E615AD97AC9F535724C8192C846496F2AD3C492FD90E1E5200C000306934526183382D23A3CC00C1D4F8B041D77CAB676FDE2C6132555E1E6DA021402D04850C206C99B1E0D330650290095CB2B0808A4BCE506E4E3625C6BB3F0EC1381B3C61DA7BEFBD277D9A8DCB93030F9808C2B85091ED0405230FA0B69B954326DBC12614A07C29D034DE03D0A12FD0B4BA862F807ED116E082FD467F2A3C7DFBEDB7457EB886C6EFD8B1437F160049E5B01705D7301798AFCAB98C70D81C141A2E00306A3FE4028604CB28D3CCEF1FC42CF0AFD9DF337AAC9B376F167402E51800166778983BE450AC93A380E020ABE9EEDFA45D3697B967ADDAEAF74CDBBAC46EA667E7C8BD0476AEDABBBAC42C8485850A1BB4302823990EA7F2E09F76E9E271CDCECC9AB41DDCDB8D3072FC396E131245C570C8CE6C5379A954F228584B800E7581E7BB4E5EE3117636D741157EE07A93055D007A41D203C804A54822C6394671F894F819EF009A15F9FF624F1964768A30ECF9E3EB9BCC9C79CF655C3367A7E9E7F83825343484ED7038D7B469F33D406868980000CA013309ED077B802DF8BA9ED9E7A2E6B107B94C5B7F60FBA8C1463255C4B2B7B90D00808DB23DA7C57F910A0BD5E5092FB5E93226F86CD89585496205AF61E7B216CE2457173BEA7F61BFA9F4FF9BDB7102A15D6E600000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (108,1,'Rackmountable_3U_server_3D_(64)',0x89504E470D0A1A0A0000000D4948445200000040000000120806000000EB2FD8220000000473424954080808087C0864880000000970485973000006EC000006EC011E7538350000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000007134944415458C3BD574B6F1B55143E337E2576EC384F3F92268E9B280E546A692B21A41681820A02D1B267056201E207B0618BD8F03B58429108021595225E426AA29626AD481A52DB49ECD8B1E3F83DB66786EF5CCF8CDDA68BA6497BA5EBF1CCDCC739DFF9BE73EE48BAAED3D3364992A67179D7E817D1EDF47C5A16FD47F405F49FE043E1A97D380C0070581E1818784596E5CB98C74ECF3D6EDC51403D4C33F669A1FF89FF0B369B6D2197CBAD1C2B00B158CCAB69DA258CBB8CDBB7D1878FC9F067D5E20C06B3A3D168FC924C266B8706E0FCF9F31376BB9D23CC4EBF86EE7C5E0E1D333835AC771DCC5D68B55A3F2C2D2DC50F00801E468F7A3C1ED7952B57BEEAEFEF1F535575E4D81C3AE27C36B052A9106C3A3238B26C4B2A4A7D657979F98B783C9E551425C5EBDF443FC7035C2E17BDF1F63BA4B55A4FEEDA233679BC5EB23B1CD67DB1B047BAA6770DD38D5FC970507FCC72ED5FB7A78F428120EDE58B54ADD58F1C8C4AA54CBFDDB8468D864281408010F45F396B476766660814A1442241DB9B5B141E1DA6DEDE5EAA56ABD6649EB0B3B363DDBBDD6EEAEBEB23241E2CD810E379CCF5DFFFA0572F5CA07CA180E74D4A271314181DA55AAD66C5D40B90780E2220EE41511A1F1FA762B128463800602814A2BF1797C8E7F551B154A1C4668274497A62D674455D3C80D6A95EAD60CF3A45A3511A1C1CA47ABD1E63009AD3D3D3B4BABA4A4EA793249928954AD3A9532F0A46980DD21034E46EB2859D6010D811BFDF2F1C91D1913449C338BE4FA552140A06C57B8B251E8F11918A595DC47B64701188A9A929B16637E3A7A2111A9F8C1880B5E798FF91AF283A39499AAED1463CC14FA9FD5AA2D3F083D7BAFACDB7B4061FB971D0229108FBAC32000A3B552A9504008C58A5561483F899954D104136CE8C64B3D9A45144766F6F4F80024DD1C4C404E6CBC238DDD888DF319338AA26787C650675AFCFEB99C6ADADAD890875EBCB699349ABD7DAD194244B40DC3459A2F5D57FC5DEAD8662F180DFDE5EBC492A24E874D88514B931201C24ACD36000BE46FF2C93C9344746461C36A039303C4CF1CD4D036543CB1B1BD686E6D3FCFE3E495D84CB17EE1053E83F44A1D16C800D3205C7C6A924A4D419B75FAE74EE8C3F8BB76E3F44E16C2E4F2DAD034022B90D90B79E58EF0EBB0339A497FA41FB4CFF483B896AED00C0578DCF34F97CFE3A084FF7809C061A2D09067084406D2722411C31A38F0E0D892890DA221DDD81FF93D0EDC8D020F97D5E3A3116A6B3674E8BF963A07C9FDB433E3C5760801B72D15B4DABFBBD7DD4E37420D93649E3C863FD9391491AC0789FC74D63A1209D7BE90C9CB0590ECD4C8DD3471FBE4FEF5D7E932ECD5FA44F3FFE80C6C338926888B8D638D015A54AE1C0207D92BA4972EC2CE566CE8AA873EBE9E9B90F00D8E7BFC4D1152FD8EE17DA3940A65ABD4E1143F3DDBAE54467262A66072733BEB20CAC1C003A32DD99CA2EAC5740329C3E7952E8D43480D7E19CC29A371B539ED7E6523704B01F2D30AA4E2227F012AAA82A124D46A2343F3F8FFD0B424E737331BAFADDF7887016926A9186518BB113C88457C953F5E050D0DE1F760499016CA3757687F35EC10038C18EEF33BD65D932A0652435644EEB591A55013412CFEFDEBB2712A2CA09101BB12362035071178EFA7C3E920C001A88BAC811F6CEA7432A9DA60AA4C26BDD5F5F1739A265E40571BC4B6CD1B59F6FA01CD6609F46EBEB71CAEEE6208D2D9197D4964A1B0F92B493C9E1BD8E52ECA478324B057B98F4BB12B9551912D0CC3CE333E5CD1604F886B37A3B09B675DBC0829ADE31A0A628078F59994C274961C3260CE3F9A552999AA077B158A230640254A96030E7D16265E68292511184512C3F002DDBBABEADB416A5539B82895C3D74550140559C333491D49875997409D2E224EC1009DB6553A9504789967AA95CA97503208046E20DF00EAF9B65CD64403E9BA1D8EC6C57ED260A42D7CC0AF3198FE572B5BBBB6B9541A6F6ADE5BBE480BE3939DA917977333B62ADEE330592AD58A75C2E5B06CDCDCD11CEED8239CC1696D7D23F77BACAB017927208060EF87D629CCBD9BE3AECB290185712B68BCBB3B7CF2DEC1A1AF48BBD18544DEF00C08182D42E30C71BE641C464800AF4184151CF8D6E9632F39E0D31CF05BC61E7E0D13E07E82C036895B5C9F726EADCD9302422EBBE3D5E17CF795DD9909EFED037822602C0B983F7E3F9AA214B0E1E3BCFA0313BF0C52AC60EA39A717EE2039AA17D71E5F2CDF3009AC20CC831E266AD67247B7ADD5414D191C83C8DE49068D8303EDD99ED4122492583DAFBA0BB0B4671F9F340BF1C5DA6AB0779210F231800AD2B073098DD0C5B45ED2F5A6B158583CD2E600B8532EC72D14EB69D38957CE1A02495BCB86EA7214DD94E9BDB69926C0E9C22B7214906AB0D6C381C16A0C19E224BF0ADD9D9D92F71A34CCFCCBC1C0C8574AFD777986F9567DA7A7B5C90595E531E9383C01AE930F66D42622B2B7758AA1B380E37D2E9F4E7FF036C19D776E37BB5D20000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (109,1,'Rackmountable_3U_server_3D_(96)',0x89504E470D0A1A0A0000000D49484452000000600000001B0806000000837D8A3A0000000473424954080808087C086488000000097048597300000A6200000A620151756B480000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00000C814944415468DEDD5A497314C9157ED58B7A516BDFD186040864D08060900CC330C660048C070E76E0D378B9F8E8BFE0A3EF0E87234C842FBE99F0D84418026200316C0224168125A411A28516B4EF524BEADDDF975DD574578B610823C064C4A34A5955992FBFF7DEF75E66A345A35159CBA6695A112E9F438E437E0271CBFBDD1E41CE42CE416E039FC89AE2B31606C8C8C8D8160A858E03FC2FF06703C4B2D686FE5FDACB7443FF94C562B9108944CE0502810BF87BE6BD340080B61715157D06450938A56A2D00791746486861BCD382B59EA341A6A7A73BDEA901CACBCB73D3D2D28EE27B52CB1148E6FBE4BD6F61CE019DA6CE85C3E1E6C1C1C1E53537407D7DFD26020EA197EF8358DF3518EF72DE8446F09B690CE872AEA3A363E08D18E0E4C993D6E1E1E1BDA416841E3D7DF3FF0118EF836EA42745559595952DA74F9F0E7F6F039C387122636565A5899E0ED08FA12BEF03F6DCB7A11B13371338E9EAC2A54B97A6920C00F912F21BFD9EDCFE496969A9FD70531393AB7C688D2B8A44A2B2BCFC7D28FBCD39C8F5EBD765626222E8F57AFF9D9E9E2E2E974B903B4E519F36C8C7892F5BAD56D9FDC9A73165C3A1972CC3A8805657577BE9F263CDE9491787C399584929AF9B9D9A946824F29A90BEFA31C7CCCACB9774B74B3656564ADBBDCEB766F4999949E9686F55EBB3DBED929B9BABC4EFF7DFB4E179195FAAABAB13543572EFDE3DB1D96CB2BCE413BBD522BB77EE94F1F171D6F6AF3D312C0C6F8B086A6925B47A41418102FBFCA5CB5252532CBB306F4BDB5DD9D7D82097AEDF904820203BEB77C8FCFC3C0CE478ED392309C6E33C59595992939323DEBE3E191C9B40AF2BFE7C6E6EE6250EF6E65A4E6EBECCCFCEC4298D385347EC2B8873090D10A5A27BF7EE95D6D656F5120D408F99999B55E03B9D4EE9EEEE4E19BCA6A6460DD6DBDB9BF2ECF0E1C36ABCDADA5A696B6B933D7BF688CFE713946BB27EFD7A1539B373F3F2A4CF2BCB2B2BD2877E8EF57C68504AD795487676F6AA736EDFBE5D262727E5F9F3E749FDD4F9D0A143028E95FDFBF74B7373B3343636CAE2E2A204834115D5E666B35B25B7BC3C1E295AEC1F758D4576E25593FCBC5C350E72A42C2C2CEAD195FC6E2D30D12C22C140486E5EBFA6FAC30946E6F7BB76ED929696168E69A10182E07CF2535C492E86CD91E650A03132081AAD665E343D6C696929657154D298908DBC479999896D262DD0D28D88D850552D23A3E3B2AEA4589E3EEB87F216352723A5A2A222251972BC9292121551E686DDB7BA525FE57DF07C462E7541B8A78C55909F27751F6DD371D4E26466E4BEC42BA3B10C8E61C3FC2144765FFFC02A4612A95E5F099A73CBF8D4943CE9EA94D9599F249E661806A45EB3B3B32165004E40E58DC4446039A6DD912677EEDC9183070F2A3AA137992B057AEAC2C2420A180491000C0D0D891B0AD19B3931C1613F010C0403E283F1E8F95124468B16F3B4FBF7EF0B9DC2F05EB301C89F507ED539B12397FEFEFE7804F17B8FC7A31BC5644C2CD21A09EAC06B92100AC9062048E1A08C8F0CBF0033E44F4E80FAE8FDDEA7CAD1E68149341CD469319A44CB3AFD70FC200D300D002AF187ADA7A7472D504580B2BA53B68042A6F5C5464CC9710E93743CEE8272A949F349EF536520C32BC7C627E20BBBDD1A4B48117CC7E8C11E5FC61081542E0F89D255EE92E72323EA5BB3D74EC0B3A84F309C5A5A3F06E0FC664A8FB251D027DB34FEE6D89AD3959C1CE19D57AFDE5AD38ACB664F4B2A2AFA908B366EDC483DC370F8280DF023C8303C320BDEB28850F3C422408321ECE2723AE2C06B166B4ADDC105AF4A079118401A1279E2FB7C37AC8317C6B8F4148E4F63F04527A225233376AAC18A61B50A8B36B1DBD392FA5143C513BEA659524A49E619B7DB93A46320B092C4CFAF0FAF1E492C30D23325D3E390AC9929B1234A1E56D58B7DD927B699B1240A02E87EE8E8001BCC6293FB0B5BCCB12351783EDFBA0CF04FC4C20321BDB82015EB8A6504DE980950CC74C0E44C2E63FE30B7FCFC7C75258D703C5200BF673F69E2EBE62BAABF66E306793E3A26C545853288C43A8D045B5551AEC294BC6D6EA416F69BEB78D2457171B14AD0D4696E6E4E511FE7209D8D8E8E4AFFE878B2930496E4D7BFFAA59A6B10C97F172ABECB97AF207937A82AEC9FFF3A9358709B2ADE6842BE5B16A7CB231565C572F0498B1484FDD2F4BBBF484E5F876CFAFA6F1249886260D00E5D1BF44AA8D762F0926ED26C2AAC0C60D1D42406F80490EF250A1BC134F7530802B99763314AC8DB5BB76E8D274846184393BC6F85B044B5D96DE0F1456534E609026316824AC3AFF68CC99906D8B06183AADEB66CD9A28A071A9EC93D6ACA0151E830033AF3F99690C77C3239352D7EE425D5076AB4A739E1D91EB1DA1D2A32D340C969284CDCEE7450B53D2E0633B075B9F2E4417AA1E47F7B5732877BE37B90C4EA5CCF2D4A199B610084057BF71A062071580016AB162EB8B0B0300E7A6263C221D066AE26E889A59FE266F0373D33968435554DFCA70BC919E0DD6D6F97450041E598D469588E6D9E9360B2F2E238E666AED26848460AC7244D9837B656AB4DB6C129D47778E7E89123AA4CAEDFB14326604852F0C9933F9753A7FE2AC78E36214A869461BFF8E9E7F2C73FFD593A3BBBF5E8B3C4136C4E5544322CA0D4BADF4BB41754DA519E840D287E277089C7924D4FAE51722780B7137C02A7364FE0E0FE91A72AECE9A134C46A8DCFCC099A6310407A240120F87C87F74CBC0A14BC5357BB05FB8139F9F8A33A696B7FA4B8FDC183072A51318ACCB4C708A21E1C7BB5F31B7ED7D9D9A9E8E8D9B3676ACE17EF275B201808CADFFFF1950AFDB1F14919181890EE9E5E19C5868DF34E2122D8F72DFAC641B37EE411B57779D22B8FBB7A9228D282B574743F934967A958314FE95751B12EC71C30A2E700BD9C7512DB885E1A716E273C6AF8D8B1633967CE9C5154919797272E78B52B235302ACF1D7E04C8861EB8127D308B108D454B9B6805DA35DDF87BCC9160E05C5914E5A4C8F1F45F85796642D7F716464389C6E79F4E0B6CC22391378E6C0E3C78FCBAD5BB726E028158C9D2658C3CE87AC3A288A82F0F13242B8A8205FECAC97A1E8ABC4F20AA16714623749090763B570E3AE9DEAFAE90F1BC589CD8E1F0677221744F03C022F7CA584BE5B789CE271BB305F28254A4381452929CC16BB25249565859293E9148FCBAAEE33DC36C9CE70A8FB346B588AF233D5BD5502B2AE2847CA4AF2B026BF549416487141567C8CBC6CB7B890E6781F0D2DE911108D5780B12A4DE3D50E5AFF94AEF63378A0C73000C1E0D502C57DD86ECF2207900AF891B18B351AB998898E9B3573E399077303439857EE2419D61426C66B375B1420DCD24750B2B2660FE0D9D8E888DA4D1621E7F05B7323C57013466A4B3940DCBD1BF4F08427BAEA5B4632F99DD7A9DCA9942A880995BA319F90A68C230B836E8905933E698F7D1462635457BCE77B7CCEBC655031235ABD9BE6484AC206ED5250D86443B72F1901CBFCC0D880C5AF88001B26E0C07CCEA4C8E38144A122E456733FC54898DC9D520804CB41A33CD5748F2847994BDE5F5F56269E74B75A00DFE7C2987BCCC2451350733F9D847A8F8D8DA9BF5163ABF9789CA122DA6A4DA9825881517F564D3C9BE17A58F1F19E1515B1A073D1E8D3D3D3D2D5D5A51CCEEBF5AA1D3ECFB9B86B674EABAAAA921B376E28E059B0F03EAC6F42130D608A023F0DB0C24553C9FAFAFA171484C95976B17E3600A117270A15D4F412D2FCCCD814F1DED8D2B3C2A0E2C639362BA34BD76EA864F64DCB2D6CCA16156F123C1A9DDEC9791385E31234733F85E351771E79704EEE4F18097422CB2A5510DFE9E8E850499BC72D3C3C2498070E1C908B172FAAB11A1A1AE4ECD9B3520607A9AEAE96F3E7CFCBB66DDBD4BA78C6BF6FDF3E55AAF3148187813C4D6674F2DE62B5265110C7A30135FDC80545839F1434CF45D1ABE83D4619CA233D2ACDA44CA3D008E643370EC2F02580E67291DF1886300EC38C4605493B34E08FF7ED956BB75B65FF9E46697DD02E9E0C8F9A87DF9BCB4AA3D279D90F459C6BF3E6CDAAFAA944A265E5659487F46EB305E617E6A5408FC8A74FBDF866BDDA1378BD3C2ED8A4AA20B6DADA1FC07986F413E0CDD2D7F74CDDAF5B57AABEF37832E263B02F887CC3FBA5259F643A32930E2FE9AC7420620B8759A4011E53717A0F3DC5A0A020FADCF0402E76251C959EBEFEE410D66F27DA1F261D11186D7C0675FAC050CAAE91EF8C4C4E8B95BB630073E1CA55D57FA1F91B75CD2B2C06F07EB9FBF0D16B571DBDFD03DFF9E356B60EB6D132738AC5BF863F0778B28A62B9068EB8E45B50CE4347E695827DCA634DFF9F0D7F0087D6C04BA29B6A6A9A905C5DD555D5CAFB3FC4DF2479EE04678BBEB9115FE118BDBDF2F0613B7D20B4E4F3B560236A457EF4821E7FFB5F91DA02FB4FE8C9B40000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (110,1,'Rackmountable_4U_server_2D_(128)',0x89504E470D0A1A0A0000000D49484452000000800000002308060000005CB6028B0000000473424954080808087C086488000000097048597300000DD700000DD70142289B780000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000017D74944415478DAED5B596C55E7765E67B08FE7D966B00DD8C6808D21CC432140C26D4842061225D26DA444ED43EE43FAD2973E54B7B76AD5E1AD0F7D8AD4AA55944A891495DCDC00370C210C0683C13176C0F384278C8D6D6C1FFB783A43D7B7CE5EDBFB1CCE3E26A354A9BFB4BDB7F7FEF7BFD7BFC66FADFF3F8E5028440E87E31F88289B2C6DE7CE9D7FBE67EFDE406E6E5E80FEBFFD9F6D03FDFDEEC6C68664EFF47477775757B5CBE5221C2CF3369FCFF7AF0EEEF3F77CFC8E0F67F4CB59D939B4FBE0B334D0DD450B0BF33F29614EA7134450281834FF873206F97F10A8D7DA0FD738CB3B31FAFDD4CDC1DF2DDD5429E37BF83BC15090FC21A2C2D929F204FDD49F92496305251474BAA868A69D8A0ABD3435E5A1BEBEC49F859EEFD35C6EB7F066D6E7A3BA9A6BE49B9991FB494949949E9E2E07F3D53B3434F43B37DFDF1F4BF86833D35EF24E4ED2FCDC2CBDFDD65BB46FDF3EEAEBEFA7DA5BB7E8D5575EA180DF4F277FFF051D7DEE08151616D2F5EBD7A9FADA75E65E7C023D8989F467BFFE35151515D1E52B5728272787B66ED942CDCDCDD4DBD747C75E7881C6C6C7E9B3CF3EA337DF7C9356AD5C49E72F5C60261752656525DDBB778F864746E8F9E79EA387C3C3545B5B4B2FBDF8224D4F4FD3EFBFF8825E397E5CC6FCFAE237545C5C44159B3651138F7DFACC9978228FF86F64F8A17115A28DEB4B69E4D1280D3F9EA0DFF4D651B16F927EBBF95774F6D5BF227F6232BD7CE704FDDDDFDCA42BD78AE883BFCC63A5703F396EE489CF8E989F774490E288FC6B79C5E178926E8C1964E5F4B85D94C73CEBBFDF630A3FFC8EC33CD2D2D2D25352528E83D2025373A0E9ACBDD07AFD7F6AE23139F9EC9B9DA3095686C5C5459AE5EB49BE766230A7839FCDCAB300AC322161894A639C2726CAD635C3DA0921B26BA2D4D4341A66417AA7676881C77F343A2AE3078221990084ECF57A697E7E5EDE99F24E4BBF91478FA41F687B3C31417EBE17629AA0086EA603F3989B0BD31A0804C432626967288A4E87E3875B5F527232ADDB50690ACD2A288745BA7A6DFD969BF95C5C54487E7F807273B2699AE7DE7DBFCFECE3B02881C318E4C0DEDD94959921BC8792DEBC759BFABADAA5CFAC6F26B6AA1B4AE076BBB3C0911C7D70F0E041CACDCDA5CF3FFFDC74CB10B893DDDCC2E2823016820B32C36659E85096D9B9790E0FE1675E2678D7CE9D54BEBE8C1EB1705A5A5A79CC03F2FCE2A5CB7488C74F4F4FA386C646B987C3E17086AFF93BB0B6F9F9F07D8C8D499DFCC39726E15DF77B232672B7A959CE2B57AC209F6F56C2D4C2C222CD5BE8C95ECC16C502DD6BD7AEA5FD7BF7725F1F7D73E52A1D3D72983CEC166B6EDC149A314E77CF7DAAABAF17BA62B5FF2EDE46C981451A4F48A16DE7FE9D422C345AB5F43C352599CACB4A972CDD22E1E5AE939212696D517198F72E8788391CAF2D3E23EA9A8548E9696922938989495A53B49A06FBBA658C45E683B5BDFDF6DBD4D1D121B2C137796C510033606D6137DCD0D01019A7A199096ECACBCBA3DDBB76516B5B1BC7B97EAADABC599874F75E13AD5AB54AFE1F1D1BE7771CD2EF2EBBE911B6E4679E7946ACB8E1BBBB1C2656D3C60D1BD88A1F51E1EAD52210849482FC02DACCAE1D428442555654D0E0E0034A48F45020B4BC55E6E6E6F077B69ADF59BB660D95949450FFE0A041F74EF100733CF636A6676C6C4CFA959694D2EAD5ABA8B7B78FF28DF9CDB1977136BA2304646D6FACEEA1429797FE65620F5DFFCD7F923F9915F7E446F3790A7B80F2D292280B7744CC21D29297AE9DCCCF145620780097CB29F737949598EEDF1A0A1C96310381A0DCCB633E2C2ECC89DCD0A2B1C828CB6303F31F67D313F0B9838FF510E27BEFBD27F1F4F2E5CBD221333393F2F93E870B9A999A64E252C82F8C9C63B79D2A03C0D23C1E0F25B026827970A7C96C55DA8F638DDC9B61E10084C0CDCDF27D9C115AE0D6417002BB6C781B108DF170C6B3A7026C8498962A1107DF496621604C7829585022630E8C8D0373003DF002C9C949E2DD700D4B423F781FF40B04FCB461CB33E10FF05C84D33C6665C238A53817E9DE421E0D6E19A7903B48EBDA734C10D8DD1162412E472F912D50723CCD7CE3BF1064E549F424516DF5159A602CA5ED05C6567BD9037EC1380973E5B0DB0A0FE0C7C3CD6CC1EDEDEDA6F6E01CF6000E19CC91111E24D19D40892C48031F514666D692F6BB97E23FFAC18295C4F48C4CD30452D312CCB8EB4E4834E3B00BEF1B7D5C78C6EF17AC2E1421AE2F5947E30CC226190B6CADACA0F6AE2EC1028F861E989A8C238D9556894BE17043860749E031123C1E53F353333296E86654AC980573F3B002A10D0FF49BFD15250C1B74A7A47B29F7BB7C76BFA954525C4CF7D833AEC8CF673E2653576FAF80671F83683B313D898E424FFF6F34B68AF256D9B97931B10D0C6B8431143CEFC387027203A602C0A2672C885115006D7ED647CF1F3E242F3FAD55FED096CF4C5CC1B158623C8791D1A9694A60DACA4B4B69ECF13835B7B6D35A66F8E4D494C4BCDCAC4CDAC75ADDC8B80273B0B51A9BF8FB7DDAC68D1BCD77FF70FA0CA5B3F21770E8286397DF79FF3E157358CBC9CEA61ECE64E031FFF4F9E78467F0443FE6BBCBBD8B3007BE89823260AEBFDB244A6C55007D1FF11F5ED0F8DF6F2A80C60B3DC3EAC20A10A269B6BA2B9CAE2124ECD9B3872E5EBC684BCC2E8EA368757575B67D8E1D3B262EFF02A776482D7B7A7AA8A0A0401410681FA81DB1CA2D59494068BA7AE38600BC454E3D6BEBBEA5118EE30821357C7F4B55153D7EFC58E8EB63E6C76A508EFDFBF7D3EDDBB765FC580D69E9264E19EFB3301106D6AD5B272171FDFAF5ECDEA724FDC473D01E326CB2B77F803D91573291EF9A5B3894B804904D323D972E5DA20CF63498637575B52D3F80BDC06B28B15D3B74E890B86D8CB36DDB367AF0E0818C0D7E61EE3E03E4826E8761B8D10A6014FDCCFB7C0E420116B5331E2A034190513192098301C810200C5882DFEF8F4928FA22EE979595D94E06800CFD00C65094C0D8988CBE03AB098F9548C14058210FB3F09016D5319390FAB4B477D0BDD636A10F4C005DD96C7D183B56438CC71CE15D405FACA6F72738A5045E018D500664472B39AF0678524B5210B691B3878A0DE5F4D5C56F685BD566CAE031CE5EBA22E931140DF508F0AA98BD965D8108DFC1F7504BB16B2AB44106B6CF3EFBAC58325C3A0C05CD70E9614C85CC244A01700DEF00A55659F3211E2060B5FCDEDEDE881010E25CDCE571D3E3B151332D8426C6132E98ED76BB6DFB608C24C511311AC0A3E088C40493AEAFBEB9644EE47F4E9D89C867A140F82EC05F82B50E11A3A1CF42547AF4B40DDF56A6AA2234B5B5CB815673FB5B5A3226272BC084F4C37CE37D57AA8D00D27168B7536C13F8197C8202B8622800E8E8E78C0BD911EE83263E0B06F80F3E26F99F63D60F6908100FC0028736C345C14A71CF6E32101EDEC5387644834858BEBA56B86EB868E4A8200ECA8309A9D5A21D7DF6A0E4F7B5DFD6D3ABC75EA04E0E1B8D4DCD42CBAD5BB7640CD00BEBB56B5ABBB0EB03BA1106B2B2B2E41AFD1430814ECC19CFC2A02C4C57255B7F1583D2D3E7CEB307A8125078CEF00070CD2D2D2D545E5E2EEFC6A30DDE159ECC8E67E01762373C09DC3DBC159406C05DCBBC68F88E2A00452900F8AE21A0ABABAB81CFD7DCFCE7BFF8E671ADB56B670D0124D98F8BAA7872AA6988D53A99687022C5216634FA442B89F685B03121B846947FD1BABBBB9F88D9D6B502B87CD4E381016ED5D7D3E8F86363BD225B848234D69C781C2B8AD747990F0F87180B9709CB1D181830FB40A05BB76E35434067CF7D9927EA17A0312D35253C0687AF8A8A0A33C57D9AEFAAE1C4EB03A12BCF100EB44141A120F3160588F600D67515A6698043DA5FBBAD82E39BE0763D77DC65660121126D0EF8393FE7B4ACC1002A4B833B229214A0F3010B61B11AD2B9E696D698C99036AC05CC33531D462AB96A458158DDF0A3518EBBEB299505D4DAD925C242D97794F104D60BECD2284CFCE1C361D372ED1076ACF58288BA3D5FF6B34268985AC598025940DFE0035A5354C80A904AFD0F8604882524865D7AF5B56BCBD2D5DED11117FDA31C5E7FE78E3D5DC800183B01A794576D8D08573A0E7B8E013E174560236B1C628103105E670D3215404A869C9F8716E669FBF66D12065673BAF353B470C1250C0875750FD7A59CF2251A61E75AEDEDB06B4349DA705FE3EC7D668CD40A16F1DC912354535323EEFAE76AF82E5CB9621BA481B260C6EED8EB9D16FA015241BF5A5B19CF0367B8EC7829EA8FA50B40135914BE8BC5359CC1D7E87201DFEBE153A1B52C11E1011CE10278AABA7F55005858635393A433C83781D2E1226335A04CA0E64F3FFDD4D69DA11A05669E3D7B36226D448A89D081740B21473040303C06168DB42E2133336637CCF119315A01E10D4E0B633528D43BEFBC23A9E7A08D87022601EDF83E5C2A68C38AE48B2FBE28FFDF610B84FBF7180525AB2287285C9285B021142C4C4129C13318CCD5AB57CD7A4074C3BCC1D73371562BDF7AEB2D89FB1F7FFC319D387142C200040F1E8167F81FC53C33C593D0F94408C8D66577F52CEE28840B9F7542AD3FAC00E1140A93C6043059300AF1C60E656B6E8B32B15D4A66BDD6941213C281C20604667561AB57AE10EBEAEEEDA36C8EF928358BAB659D8570D017004EB18A1DF80493902EC65CC9B36426989F663BA0070704198DD401FA0A5878A859E4E66451766616B574749AD989664E3B76ECB0AD3F8067508078B42B9EC27819461513D7F09668503C31648367D6555D5500A67D25BFE3B0DE8FF60032DF480570C8322A140013D27ABA5D9AB728AB7A6110A771D26E32D10D0A0321C142516BD06C00EDE6B7774C45BD567BCB541AE013D0857E1060BCF412B481AE787DEC321BD00CBAC070F100861345216870E8A184A8867BCD669802065003C07761BD76555415083219BB3E767517CC1D0D1E19452AAB3CA34BC10CBCF34C2FAA15DF280C1091024A21881C52DD82359C3C795218012BD05C3FD601D72FE0CCE6B936143E90C6B4B5B58956B7B6B6526767A7781A305BF727C852F59EDD74ECC82123253C4007F7EE3135FB1A832CE4B856C58D75E80EA3E5FAC043E0FAEEDDBBE2ED4013A74DA208664660F0B6AA62139D78E91825B1528046A4ABD6CA1B165EA000CAD3588775FFC5727D50F8019FD017F4802E1C5010518610D97A80E8B1E4BE110F4E72EC7B13B9E8A953A7441371402841EE5B50544C6D771B6905038D44A36011AF30A1966B57F932D6A20DA0128ADBE7D1E818AD595F6E300745157FC456B0B6EF1AC4AA5D3CB1143EAB078AB570E23294CFB4A6188B2A0A48657E51CF43067A92CAE8F48CD0053A13F97F4DBFE00190AADEEF6863501094109A94942CB4EBB26DF45A9EB13943E80A45D1ADB15A0C92FB58E7E788F22018031B63CA2AAB68C6EBA59BD557048B6898817CB122882A2263A5D37C7E35020358B564A91218A405764BD8E8812210B4CF6AC576028CF5EC69FACACA1F5B9DFE7FB93A9C42EDDBB99D32D2D3E9DC3797E957870ECA92F2D51BB594CBB1F979CE0260995AE8F8A18B2ACBBD07E0AA5EF2D41FBF0A639D8A8D92967E79F63CEDD9B14D96C2CF5FBE2A42C7021AE681B50E2DABFFD474297642168076D1A8988A07B018A0B50E1013042A06807055F8E282111AF87CFEFC79FAE0830FE465C450ADD7C72206481908D82ED6238EAE59B3469409780200AB89B30CA471004A88672859E23B66C9B5B58D0157BAD053D7D0289E209C050C0B3A87F081A6E32DA80091A3B6AF75F3E806D70F90080B41150F34603CA50BAE164680F0E63016FD5BDA3B6962D22B18008B41290608F64E4DD2871F7E48EFBFFFBE99A1D88140804B00585434ED1A36D6A07886C52CEC8B1C1F1F17F900FCE1181A1A922AA1AE03A06866170262D601540174DBB099061A8A80492B1802A3EC3456B3002CBAD8298082300802D68EEF600D62F7EEDDA2C9E3964D0CB233062B75CC24ECDA19E0896EDEB45176CDD4DCAE13178BD807B78C030A18AF018CD9F5D1CC0682D23111FF910E02A5A3C862AE05180EB874DD5A2A2B59470F8687C513000B0C0D8F98E0116E1D6E1BDFB4AB0682677806176DE72555705042F0096573F051819FA6B6D63430D658D17273F38DDFF2F979750BD6FC5F3784681600540BA14219EC3080E6BA609E5DDE6B971DC42254198DCD1FAA3860B0E20BA481A8A103AFE84EA278683E5E9FE5E8524BB6D2876D70996C99E01FAE539223330CD0069E6916156FFD445346BB14365E316949B94246D1273E0864AFBB372B2BEB9FE0019014672942B666005A07D07A368A2CB07E848978CC0A6F24752ECB50B87E8C0526C10D3E3276F962B29ADFEA6E973176C9FE80DFD85EE65B9A1C3F47FC57E6E0DB76A914BE03376A579F508088B1C00FD08235062B5DBA64AC25E5B9F9391A61A08AFEDE692FCD44EDC4C57E02CCCD69490B63095757E9ECFA4079E0459039C1B0200F782C78283538AB07C096B658CAAB8ACBF3CA1F1E1E2E303784583D80550974452E83B30287B163273A8EC45A9A8CD747BD0784A16915BC8A2E45A32156CB628A41F086B252A9B5FFF1C245D97409DA861887E03D3058B38A788B2EB2EDEC29168C403BC2100E582EDCAE365409773220364300E303EC567A30FC902A18247A3C8974E14AB56C8743DC062FE0DA9F6631281E10D43E10BAE21C2874746855BB88F6D0B140209FFDF8E23FF2F1B7DBB76F97E20B76B1E02370A94805016E5273F2A8B7BD5504A6130FC5DE8EF6BD90EE92870A5F388DADD8D6059B69B6F6B5E51B4411A08CA0071B5065499AAF077ABAC8E3B65F470FC5A521F48391F81CBBF5A29232612AD2406C88751B481F69E0404F37D3E5FE8174D11365DCA76DD39C9EAEDBB88906FB7AE9DE9D7AF37DC80E9B5A900662E515DEB9BEBEFEDF223C40AC0244B81E1F941F3C1C397C58B68DEB9EBD9FAB21435040F6D5B9F366C105967FFAFCD79C12EE10B075EEF215E113B68463E9D6AE3CFD533500AEE8C5A0672A2B04049E3A77810EECD9CDCAE0961D41E0674141BE6CDFC276BA78BB7D7E6C838741A8423BFFF5D74F7800ABFB8FDA123617B12710937BFDF5D7A502A6DBB5DDC6B3F1B13171D18891708B98945D7BF7DD7725A54185CF2E557CEDB5D7644B18FA1DE13C1E15B337DE7843B6A4E1002DC810B4DD6D69A5D68E4EB1FAEA9BB566BAE3E398CB9A2C7B02504BC7E28D5DC3F8C8C9ADBF7DB0365808167E304FC4D603070ED0975F7E49478F1E95B410AE1761C9AA680D4DCDB2350D567FB9E68619B2E6667DB2D885CA1DC214DCB51D3F10FF0FB3717DF4D147B6B4832ED0F7C9279FD0F1E3C7651E88FB9005168390462385D5F250304A01C01BCDB82C61C067EE09849011DF3179A0567343080F18C076698E69FA132BC4DC780B17C84B5134596E7B1688401FA4411817310C0C0B19BF3CB2BABF8AF2F5E6CE9B9D6CF11969E974E6EB8BE6A28BA6595884B243D2505EAC56DA8153A7653325180B7A3486E3004DD1DBE1B655550A0E8007D8BF6BA76C630306B0024FD083DC7DB9D419E9A61D08B46EDACD34B6BE834E3512C503A150E4E65E6BA601B940765AA5659ECF4001DAADE8512D5F41037E4D93C4A818BF0E92DF03F23D3027DD487DEC000B90B4DDE64BBB0521BC87EFE30CE48D4C4079D6DED52D9B4DB0F3E6E6B7F55271531082C9832E8C0925D695B1580A07BA745B57BCC5AC685AA13CA85BC0D542602ACCEF9A5BCDC5206C584D88C223A00DEF825FF1BEABAEDC6E91CD4E7974AE289E01C3A907484E498D783760FC50C792AEFBF9A8C7D7B080EE658D48D78E9A73CAE2886003977800B8CE74E34714BAB5C84E01ACB1C6AE0F268BB4126BD9708340FE6A01B03E19C798502683D252B65E6C055BB7A698F27373A8E6569D60008412FC321956069AEC56CE54B876CFADCA8B43AB93004D9A5AC2CBE09ECEAD68D54A2AE6F83EF678824A18BBC85E42E3378BB2C3E8F469F186CB7D57D71FECFAE87DE0108412FC0FFE75183B89E049A16C0AA0D3584EA8DFE017DC90054218AA8DAA486CCCA33C4623F6040EF3CDA69191917D9830629FFEB40A9359F02F1A0B292EDAB57BB7DCBBC7FD20283B01CB4FBF8C8D0A76ADDDD8000ACB91DD3E3C2E7EED6B6A36BBDBE69616F13AE979F982FCF1532E7C1F930F06C3DF4E6641FD09C76A7C0FDBC22028BB0A24B69961DCB9383F6EC1762FD9D02A3F7C9D930DB1D39679608C405495CD638405D096646C164965EFF7D2CB2F0BAD081B836CA1F1BEDBC3CA3F1B87B6D0C484E00C08159B63E0F9AC7D25F3181CA479C3CAB130E6F12491CF3F6DFE840F8A0CFC024FC00AF180E730AEAB81557CFC333F74EA9A3ABBDFA36CF9AE1D3B76CCF06482B3B33E07870307FDC20D8AC831CFB6BC07BA2626265DBF345D1CDE82EC0D6DE9626B7432D39DBF345D1C9E438C870401B6B6B424D6D45C4F66E370B0228E324D9D8ACBD838FF8215A1E37F011D33B0A6415FEE9A0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (111,1,'Rackmountable_4U_server_2D_(64)',0x89504E470D0A1A0A0000000D49484452000000400000001108060000006DBBAA8C0000000473424954080808087C0864880000000970485973000006EC000006EC011E7538350000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A0000084C4944415458479D97496F5C5915C7CFAB79F0501EE238F110C78EC7103B24C002892F90050B364402A44608F818EC800D3B5648B4045B04127C0044AB6101A65BE9C48E1DC789E324EE781EAA3CD45CFC7FF7D5ADAE582D8138AAABF7DE1DCE3DC3FF0C1598D9CF34BEA561535353F7E6E617CA870707690BCC8220B046A3C152EBD94EB14824A86B21C2466D612ED0A9DAA539A8DE76FECB7841BDBDBDC5AEAEAE7AD0B0465FB5D8D8EDEC6F44E28D60207D60EFB6130DF180E7FF45D148A41168FCFDA3BFF51DEEEFAF46A3D1DD743AFD110CD72291C824F2D66A359BBF77DF3EF8C1F76D7767C7E6E6E66C6575D5AEF4F7DB1FFEF8A7F718EA8CFDE8871FD8DADA9A8D8C8CDAD9D9991D1D1FD9F4F4B43D7BF6CCAE5FBF6EA552C90AF9BC8D8F8FDBF3172FACABB3D332998C2D2D2DDBE3274FDEE30795AB557767A150B09F7FF267FBDEC35F58FFF0B9FDF6DBBFB4EF3CFC9AA5B29D58981F86760E82A48CF5E4BA2C168FDBEEDE8131EDF7CC4C4F59B55AB1C78F3FB3B342DE1E2DFED3C93E3434842C2B31EDCBDDB973C72E2E2EECE5CB97D6A8D71DE3488C253DC59CF1F0E1776D6777D7A627279D323DB99C556B756E9777EB866F6461FBF077BF6F5329B09E9E9C8D4F4C685B4C1747DDE55DDDDDF6D39FFCD8365E6D5A269DB24E19E6B3274BF6C9A79F5A4D46A84B868FBF3E6999FA5FACBB5C749C66A727EDF657E69D62A186A817A214F972E2292FDBE1D1915B0EB705D6DBD3237E352B9C1CD9BF17FFE5E6D1379BCDDAD1D151375BDF3D78F060706565C5B6B7B76DF6CE82C5A29790D644AC7B5C826F1BB06508B3B8BCD0D3D3EBBE0B855319F6DC22FF237093A994251229A7403CA85B3515B7899B635638CE4B8998ED7CBE151AA049FF956D682DF7DA10D3ADAD2D5B5B5EB29999196784E5E5E5D7B8B95A6D5A1DE16BB5AAF576E5A4448F1D1E1EB6780D0F0FDBDBB76F5BDF7D7D7D0E7A8C98D09292F03C9FBED8B099D9592B97CBB62583E677B7ADA3A3C3CECFCF5B670707076D7F7F9F8BDDB762D1AE5EBDEA64601F8800A27FFDF81F9689EBAC152D934DDBE6D9A98DDDB8617B7B7B2D5ECA19EE9957A879220C0F0E0E9C6CF0EE5708AF3C7FEED0ED89BB84C60A063863E2DDBB774E50EC051226045B2F209413E4894D9FC050186193C9A43B07B4198403302E968A0E2DF05A585870FB3C013F84F346E11DE3634014C10010102E164B56566E8A542A4EA9F19B376D6060C02AFAF672B01F1E9EF8DE55B892D36EC860EC45E13A1015B176FBF66DF12E9630C0AF347E83C71022105E797F236FF37424455E283FE840CB0067121E01F7E44914673E9148B8084967522EEB27126752F282586B252C08BEEC4730CF0F637B033F5182C4B3C46E4747D6CE959F30605406DAD8D870E8F3CE2177614886E7452E3B393971EF8B8B8BCE48A71725AD87082039238F8CFD21064001561EC900F7224A56B76EDDB2A49421A978EA5692C9B7298140308611C2F00E121EAF3E6B855E4C5E191B1B7330F4C2B19F6F8C80D7F8E64975F0F3189290D83B7EA4FC1171394165D5FA7AFB6C7828AC2EFE2C4EC3015E1608848126EE640EC43C5D5B6F85403C9120968775EEC26928782891466738148D466C4725106150D20FACCE1CC231BC52AADD4E00E20C25429405EE32E6F7F7F79C703E441008EFC2B3BD8C318701310025145EAC076A0A044B675078F9FB3D2FDE39DB8E30CE832E104B3E402FB52CAD5E44B2E5380FB55CAC4D191787D1B883158710C60F1FAFFE9BBA0F2A484820607373338465D3CA5CE6E25CBC88BF76C283DCE5C97B9DF8E7DED7AF5F3BFE3E8307CD5AC31E32F9979D6D278F1078D1939C9E9E3A67F910D05A0706C3082E043C94384015E8944589F95662D1FD9434928A9FA0E61FA84A848C1BEEFCA984A6E980EAB5B09FB8A68C8F62DEE210C90C6738C304E1FDEBEA2DEA4DFE28C49E30CE03773FFB53421DF03E3E3E6E85149EC6604EB6260AE085610841D6D1AB78516C25418F1EF7AE31E82F4589782CEEB2F855C54D5AD07543CDCAD4D4A4A0D6E9DE5D6951485092BE7AF7AE53725E759577BA31486671B03B91F2840902FA41894DA592CED8DC457C93DD298F8406997B747454827F91D9B1C076B35285E53AE4C5FB952B57C2EF6AC86F46B0CF2A84E04567490E48E83E9F037CFE90214640C0379974CA6B447529162611B67B0D4291F6D2459CD22BE00DF206B1E72B42586703076510409CFACCCD3ADF5F202AE447CC721E5EE1DDFC17C163A0A0E13CBABEBEEE4A98F7204F8C822C9E7C82E59E376FDE38D478A4421E0132CC5DD70831E943006F0CA9E9413160EEA9A038BA4CC7CD520371BE4C1E28575CFCD7AA358786D11B6356160C199E28A19E7CEA5A5A5E6ECD81C6B2601DE68E866BB90315AA61FDE7A02C7E2E24B4D3AAE21CF2BC9EAAABF5E40CAB9C5041AE2602DA42A0828655B234CD8A2B293A80B2343E5509ED077F880807FF8D47803DA1D0210B0361422221D8A17C4D359C3BF6F776DD590CCB958C0141B69BCCDD14927BE7D43D0E094140F7FAB56B36AB76D5676EF8E0BD57AF36DC3AF7795EC8342287795ED0C2FCBC750A158C09FD111B1D19A1F4B5107057A1DA4488EB04B78915A08A2030028AC095D2E70FB146A96BCFC0617755777BC2AC1DC2150F5F349B0D78D19470D687001EBEDCBDC1C377779C099BB0C039A3A4F9783383D308DDBF7FFFBDCC8FB3FCFD10A1C5DD3CA968A10E8D564E690B911D66CABAF01BEAD6B655D6BAFA07068E92C9445DF0AD6A63A5C23F05A5769596B2064FF7CD10F3922E1642EB153D2B52BC9C4E67F237C7C6CEE3B158BEABA3E35C42D492C9548DFD956A4DBF5AA524BEEA422B8E7DAD3557D6F9AA44D51DE58AAA4E45463A1C1D1E2E26E3B17C26933D8B4563F55C77AEAE6315863F2B5ED2417235BF2F2E8A6E199BAA0C2357259BCD9CA8932C154E4EE2EA38B725EF8E72DDAFFF03D71BDAD934B744620000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (112,1,'Rackmountable_4U_server_2D_(96)',0x89504E470D0A1A0A0000000D49484452000000600000001A08060000004821599F0000000473424954080808087C086488000000097048597300000A6100000A6101FCCC4A250000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00000F384944415468DED55A59531CD7153E3D0BC332C0306CC30E12020910A0CD926C394E2CDB9162BFBAF294A7BCE40FE4252FF9092E3F265571AA92BCC68FB663612D18C48E0081166010FB32EC0CDBEC39DF99BE43ABE9B15D2EBB2AB9A5AE66FADEBEE7DEB37CDF39B7A511D125BEFE487A2B2D2DADBFD8D6D6D8DCD2B21B0E876DF47FD8323232E29AA6FD4FADA9AFB737776F67C7F9FCF9F37F676565618D5A3C1EFF3356F9255F778C835D2E17BD71EB17B4B1B2441F7DF4112D2D2F939D37E4F3F9A8ABBB9B7EF1F6DB343B3B4B4FC7C7D30A3C575F4F175B5B69A0BF9F5AF9BE7F7040EB81009DBF7081BA798EAB57AEC8B38D8D0D6A6C6890796F5CBF4E9B5B5B140947A8B0B090060606E8CD376FD2E4E414790BBDE476BBA9A3E31BE285A7951B8984C9575543B9B96E2A70E7D046F0807EBBF894022E377DF6C11F286E73D09F6A3F2187234E9F7CEAA16834FAB3293DC1EB2CABACA4EDAD4D1AEEEDA1782C06C593D7EBA5828202DAD9D9F9C2C1E32A31D8664B3A3B36876B7F7F8F8A8B4BE8F2E5CB545454C41B8B52C3B973ACA06DBA7AED1AE5E6E5D1C2D2727A0334348AE2036B016A6E6E66456F8AD0D68B1769617131F96C7353E66E6969A1E59515E2A8A325EED3782DD555D5143CD8A76BD7DE20273B4481C7C3EB29A6B1A7E3741C0AA5957BC846E5AD93DD666723E48A01DAF656C99FE3A5ADF2068ADB9DD4DAB2C18A8851A6CB47C575D544122C1A2168B4E40F4A4590FECCEEB091AFA494F5A4B17E12B4BAB6A63AA55F0DBF76B99D1839D8C04EFAEACB2FE4D9F6FA8628DF382FEE99999965304081BCC84A85E777767692DD6EA7183C434B1A24168BB352348A4423728FE1195F1F7EF81BAAADA9A1878F3AE9FDDBB769E2D933CA61AFF39596D28B972F29C3E92407CF69636538329C2CD4C61B77F11C0EFADB3FFE9952DAC3AE6ED9F6F4ABBFCBEF0FEFDEA1682C2AE36389B86C182DC69BA83B73867EFDC1FB343A3A46451C1579EC0883C34FE8F6AF7E49FD1C311DF7EF5322F1BA51FE75EE121D6A0EAA1FFB8C129A0EBADC0AF9FD4B6D174F146F3044CA147A9FC3E9A0EA8A728A6372FE37BFB4947A4757A9BC0747F17AF229C00E575A52449B3B3B747C7C945ACBBBEFBE0BCFA7BDBD3D3692C3030388692EB2670E0D0DC92018002B85D742A9EB6CC1682442C7474734EDF75399AF8C616949168267FE193F2BBD84E6171658E919B4CB02A6FD33E4B03BC83F3545796C946D7EB6CB426D761BBDE2F17BBBBB69BD788ADFD9DBDD23FFF4149594140BDC6D72B46073333333F4F4E9539A9D9BE58D6C0B2CCDF8A7C518B3737374747048D9EE5C7110C843BBE55DA1E5A89B1EBC11A03843CFF048316F3E41D170889666FD4A8329451A6F2953F0BFF999297148EC2BC2FA383D8E68CE6FE735E55030B84F3B9B1BA4712418217397F7DDC090ABEB3A8E77663C1E4F1DB0FE192B7B787858BCAAB6BE819C0E8728EC3B712EED8FF4A3B1A07C6F2179F2F3283B2B9B0E0E0FC9CBF00405EE6C6F924DFB81DCAF59FE29707A42C2273DF98545EC28C5E25CC0FE4C8ECED9F9790AB2214FA0218D00F5E47BFA8D63801C9EA2621A1D1CA0D5A54579F636F327A0B9A7A7878D147C890888E6E4E48865549308008E6A096A387B467E5B111F369AE0904C98621E9B41DFF1F171EA5DDCF3F3F38580E679D3F36BEBECB54554E82DA085E5152A617C4758E7718650515141C8147E4C83672A3E4BC24CA144C9E0D030C16773B2B3C5838F8E8E292F3F974293475454E0A13CE60B8CFB310D989FD4592A9304BEB3CC219169D40F740308423F1B200A0344A020740097704F4EA6D12213624579B9643F087B73BBC2998C82076303F95DE78CA6A3A383DE7BEF3DB9DFB871430CB2BDBD4D4E27C2329911B8D9F859EC895E56021437CE991522100B9C98983825F39D77DEA1C1C1413A10B23D692525C984E1DEBD7B749BF9E83E73415B5B1BAD30B9D7D5D5A594909F9B277B74F01EF372920A7FC2510F0E847C409CB9DDB97387BEFEFAEB534E58C3FC7781B33AF4DDBC7953D67B86390A0E069811EEB2C10027EF1D72B41B8838E6481A2891E01F1A9409E5E3C218972B93B3A17D216728C5DCA05078580A0F0D56362F369B3D0F0A3F62CE0099223C671872965757E988E709B011F15E88BD09F0804881E1ADBCAD9253BB5D1387606E63F4A1216BC2DAF12CA1C3DFD8B3E7021C31C172BBE0855A13323228C8DCD00F65E36E6C4CA2A7200F8E0007235D46321D3D890018A7A9A949F6880B33FC8EF5FF8027C8C7032C580CC01D99992EEAEAEA9217641326A809713A084F3D85F43C0E46C186C6C6C60810373A3A2A02918AE2425A76A6BA9AAA2ACBE9C5E434359F6FA08ECE2E791F7502BCD7ECE5687008CC6FEE53BF0123900508431D81B18034D5DA5B9A744346383970D37F3852A074BC03AFB59289677028739F723CE86072725264F573DD035DD5D6D6CA6FCD0441705AF4F33E16575757A510CB64ABADDEBA752BFFF3CF3F3F664FCD84E2BC6C498D5F442A29164E4338E91ED37754A2487135A78B4A19DE4A8ABCB4B6BE4935951534C999D3FCD46412A7339C3F847BBF7784FA6BFFF080CA6AEAA88CB335400394E7726548C615E44209E93152CD1F27CF5AE621A79FA55C140E3EEEA6CDF5807290C8C71F7FECECEBEB5B64C8AA72288F6525231D7DC8DE7F4771808D9588C2698D8B0E2B52542168554DC22B427AC184F0466421344150D87CF7C010E3B19BCA39A5DDDD0D4A16840639E7CF37FE24C48FDF804844DC10D70AF0D75C4E51ED9CD9A198CBE3BF915603360A19F2B046F3BC2A2989E98594954C4410F6A6DE2D2B2B131E7CDCD7AF23C2C93E789E097EAF3DA10FB6A9B41072F86A4C7100FF08EE0745F9C0EFF5F5F5531784027BADFAAAAAAA84ED81D70B5C1F0043A10C45C20C8C12556E9E1BC51D8C810DCDCDBE127C87015FBD7A75EA427482F4CDCFF10EC21E89C339AED821131C80C402CA53CAC9CBCDE1D4378BA32C8BF79584CF714E30006D70282B99D8C3126768E6E7E023C85C5E5E96FD0602019189FDEB9A4F41B2A1796034E55C2A02123A89D49D90B02661898541C9B068C87404005202512A023463B5D98BE061F0166C148B5ADBD8A043F6CC3D1EFB6D6F7F1233592EC6C00056C40F993082D953AD3C17EFAB3953243CF15C7E832033F4084634202AB91EB29409EC4794ECE9859DC19B4F8D45AAAD9E9B39007219826A4F1940852B2E284AFEE6C14E562C48F8EEDDBB426EE613468C8352AD88188BC0A2FD1CE2581452346C12CA8797A0CE28E6B06F6352EC1D1CA69BD7AE50C7A36FE51CE8F1E3C7723EA420CED8A4806279567DD8288C0359900962C53340826AADCD17A41E0409BB73B2E9DEC387A224EC1369ACD5BC5837649A3324A568C8029760CCC8C888E8C96874A3010C1953C21801A9FC3F1501361C0425249F076CE0B22A78173934AD1A4E355F3B2433A470F71F3CA0682426E7242FA767E880FB9092E29CC5C79C50C0B935946745E47BC1605A1A7CD4D969499A5CF0D016CBF255D7D2C2E232459106731D82822C168DD139CE7E3219967AFBFA2CE71D37D423E6B91F3D7A94CAEF8D843C3E3E41BBC13D2AAEC84E6780D723000F81CD271CA009C6D5710A0A8CB3F20CC01226DCB538D729E70C07308479418C086D782FBC1F39FE571DDF502EA7A77535D5024520E399B905AE034254C96923C23E6471EA0942C566CD7D583B3806F80B28C19AA4D0E3C805FF3C19191512C699110C1DE1B5807FE6E6E728C0F2713C80F1567B415481CFCCC9063C1EB280FDB8C3D0D01DD608999D1CC9C63A40194087A01409E7EA599028D9180108B12DF664285A70530AA8930B9B8630F3735C50060C088583C8CF9E3D4B8D8D8D860CC2268A40AD819842EA09D8C37132149C84A9D30DC6B33A32C09A4188502048180A8352155F282F948F21CE0C3907524E850254C1975503945A6581301864821B5001C300EDEDEDA22F2354A82C4841935E28A2F695D3D04F59611E230461617274CC0B05F478F4B37833B1E21DF4A5049A2A5633796281502E946867030779BE41F6CC50284C5DBD7D020D981346870151C099890EF342A655C1641E8B795426A6F078E2C54BC94E6252E3385E1B8B230B2B3E43B401E7CD15BF15092343C3853D2AA3C74D10A41BB59AE7FB0B56706C19013A09835CDE7AEB2DB1B639DB5163ADB220BC8F0A14DE0F38829729A84328836C910A5E6D6BA587DD3DF42693F003BEE3F8E3C58B17122D487FCD9B56F2D255E0F048F007BC16E7406880881409375DA030CF89B18802AC0FCE857D5EBD7AD5725EE806CFCD7D0ACBB13F9C612182B8BA9567985719C00841CA08D80723C8A19C86AA2CC86800D2C9A2A9B9590815976671563E37BF60593226BF1819CED3D566B808EAE9ED958838383C628F9C94F39FE9D939318C47F0B35A0A24AB1A742DB09EB6345DD3F36FCDA4247C8BD8E2482EAEA8223FCB815101B1F86A06E59C617884729F7006632953E5F5166D5537AEF9381C3211F12E2EF6C81001EAD454375EF234544500B013E1834109FD60ACB2CC27E109DC05999ABF1DC37B50FC58E1263C15EF023F31A73A6483C7DCEFFC56BE375C686C1012AE42B1B3B22A30D7507F56A0C3ECFDEA7819EB304310F808F3C2EB3146C9C56524611FAF2B9E88513C9690BEF9857939014594430FE65C5F1D2F633D66E2C7FBD827921445D45807201991785FCFCA1404A10F70984A5313890800298C08009942992A0AF05104DF35510142F9C0400543EA52139A9FABC20DCA56B0813990DB0356D4511116062EC0625C19C90C2CCC9B0491623DC6AC4C5D98071C607E8E4B9D928210A10C7C7786F28C248CF31FBBCD2173E3FBAE822844240C67352FF68EFD989FABFDC368D5D5D572C797C502FD58457D9857240CBD603DB8EB498D44C01A1607C5AB0F0B729682F31B0ECBC0D28208471693EE9C04D637A7688A6CF00EE60561C1985010140858C23BC3634FA5BF676048BE8C011A904A42D130A0D9EBB0706CD08A84D51A223AC643B130849C4CEA24FC6C7252B213F41B3FA240269489B599C91563619C747B34261DE000242E309A7CAC07B473BD11A650EAAC4A4500EF6D0306985447AD78591144583EC427790093A7FB7F36AA88B37A0E88521EAF0A158C0DEAC514E4B437375157FF205DBFD44E83A363F20ED6011286539837ADE0D2A83C635F7D7DBD1C0D2301501F8A8C24DCC6F2C2A1B0A0760647DD378135AAE5EC0790A53240AB79D3C9541F667036043852052B48581592F85F1D9C5F4B94410E8CC0579C7532A0E90AFC2B2BAA09566318F2B1B52B6BEBEB375819B1C5B93937D97EFAFF9FC5797FA4ACBCFC48E7AF5468ADADAE667194B87E8EFFA6D3D0D878AACA3A0E856CB37E7FBECD6E4FFCD402599FA1529FEFE8D9C444CEE8C8481EB22E86A96138253BD67376B4DFFF1723B17F48035214C70000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (113,1,'Rackmountable_4U_server_3D_(128)',0x89504E470D0A1A0A0000000D49484452000000800000002C0806000000ADE0B05E0000000473424954080808087C086488000000097048597300000DD700000DD70142289B780000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000018BC4944415478DAED9C6970545776C74F2FDA11629584241609C426B010FB6E600CB6F15A13A7BC4C9C493EC5937C4F556A5253959AF990AA7C48E56BA69C54AA9C724D5C31C1363B062481D8056613426C0209D0025A115A5A52CEEFF6BBADD7AD7E2DC71518F0CCADBAD5DDEAF7EE3BF72CFFB3DD966F7878587EDFC3E7F305F56583CE379D39577E7C6348E7699D7B74EED67966F83960BEEFF745435252D2647D79DD11F86B3AB39EE5F39F03DE37EBDCE728C3BE5028D4F6A35780ACACAC1247E06FE95CAD33F01C0BE859D235A8F3840B1DCE7775750DBFF00A909B9B9BA22F2F3B0247F0B3FE002CFBFF83B6FB3AF73ACA70A0B9B9B9E3855180A2A2A21C7D79C311F8569DE37E84027A9623A4B34A69431976D7D7D75F7CEE14A0A4A4A4CC15C0AD60DD3F5AF6531B0D2E57F16D4D4D4DD7335780E5CB97A7E9CB4F1C8163ED05CF73F8FD23569E7E9D471D65D8535D5D7DE5A929C0C68D1B0B5CD08EF0D35E3466FF9894C783AE7AAB0CA0C3B163C77A7EB002BCFAEAAB3E07CE2DB497FDA15AE90BBA9F3E9DE556210E1C3870CD53017C3EDF87FA3EC7FDC5E6CD9BFFB16CE9D2141DF2C7F1E28EEEEE6ED1C0513A3B3A6A8F1C39F2EB40209C79ABCCEF0C0C0C5462E57FA3F39FE241FAD49C5C295BB55A1E34DC95D0C04062287911B8F17F20D2E7F34BFEACC270923ED02F3EBF5FFC81A0048687C42FC312F20564503FB3666070409292866468D027A141FFF3933EA8CC4E1DAB94AE8E7016893167646498393434D4D2D1D1F10925D8ED5EFEBCFDD143E9EEEA94AEF6365C822C5BBA549A5B5AA4AAEAB8BCB17DBB2E32283BBFFA4A7EB2658B4C9E3C594E9D3E2D67CE9CF1E6B8F3312918943F7DEF3D73CF899327CD6BF19C3972FBF66DB979F326E86334F7BFBFDC21EFBCFD964C9C38512A2A2B65C6F4E9326BD62CB97EE3863C78F040D6AF5B27EDEDED660D68E8EDED35F4BCF9C61B326EDC38292F2F97997A7DA1CE1B7ACFFE0307C754029F73C1C387AD0E940FC94B0BE64BEBC347D2D4D62EBFAA3D22D37B3AE49725AFC867BFF8AD8492D3E41FCEBD2BBFFABB13527EB4407EF1D79325343414B5779FA712FA3CFEE44BACB731D7F8A25CCF90A4A7A7CBD4DC5CA9BF7923227CC7EA25A8BC4F4E4E96CCCCCCA9CAAFBF4201A67A31C3AF5ADFA90C0636B2C667495E7EBE6AF8A04C983841A64C9D621E3C756AB68C1F3FDE7C37E5D62D494BCF18214686E3B238252559059469048B36723FEF1F3435C9A44993754E924165E2B8F1993261C2042A8892AED721D4891327495ADA3D730DF7F4F5F5C978FD3E3B27C728C0E42953CCF5B9D3A6E9DF72D9A8A1ED515B9BA42A63C28C88E7B347EF3DDEFBB1465A5ABAE417164784E47309CC3ED72A192FEEF77E459DDC9C6CE57148264D9828DD8FBBE5FE83267BE188BAB8DE2F5A304F72B2A7CAA0CAA5B9B555BEBB70511AEB6F9A6F1F7775C5A09A2FF2CA4C4A4ACA8A5280152B56A840A7CAEEDDBBCD6704DFA74C0DA8D634DEBF2F172E5C3016D7D2FA50AED7D5A99086E54173B3DC6D6C948ECE2EA9BF7B57E6ABB5CC292A520B7A24576A6B65FD9A3532A0105A517954D6AC5E65047EEEBBEFA4F15EA3747577E95AAD32101A34CF62DD067D4EEDB53AE9EDEB5506F4C87F7CF69F8658852CB974F98AF8F6EE93612C4C8572BAFA9CA113C5A8B97A55FA55195A1FB5C9ED3B770C52DDAEBFAD8C09194635288DD9D9D9B272F93279F2A457AA1435D6AF5D63ACE1F889933267769164AB32DF5214BA7AED9AA7D0F766174B66A84F3A82A932F7C44E19C2A7A6BB1520458A67171A2D8B2730F7FB88223AD7A6A5A64A6E6E8E04F4D91889FA681997911125BCD8F733674C57E3CC34F46270330AF2A5F9DE9D708ED8DF1F45FB76456D10B6CB510C4583094137822C59B244AE2A23DD9AEF33AF0103D17FF1F39F8BA616D2A10BBCFBEEBBE61A985DA6F76D58BF5E3EFDB77F5741FACD75DF1E3A24FDBA810F3E785F3A54696EDDAE9755AB56C98AE5CBA5FF5F7FABEEA44C4A4B4B55C88F5583B315EADF969D3BBF324CF8E8C30F0C1DA7CE9C95C73D3DA3ACD067DE8F30617661A17CF8FEFBF2E8D123B9A5F4AC5FBB56162F5E6CEECD5564F8939FFE5476FCCF4E49494D913FFBD9CFE4AE2AEA4D558E2D9B36C9ECD9B3A5B3B3538A740D68F8AF2FBE903A65525C98D0B16046A7E4047AE46C5781746CF967194C1D14A91C298300BFC5AA4C5E02F3F9465BBF2F82103E993C6982841C836014CFF6C7459191BB874DC6111A0849A61AC2F4BC6972CE1FBE1717ED1E28D4C2850BE5D4A953160502AC711D1EE2873FF9E413397AF4A8F19D0CA0393B2F4FB53A4D426A5D7979F9F2A4F789B4B4B44A81C22AD434AA6501C5682A56073108B4E7C91345818792CF75FA372C708AC273BAAE05D4B3365AFE40218EF5B3B2C64BBBFAD83ED5DA1C85C1BE5EB5E6D6D6EF05BB2807CFE1D90D0D0DC6D25124E284640D7C26297D1D2A64343F3F3F4F191C927BF7EED3AB50044852987D606898A8EEA64D951585E855FA17962D336BA6AA52E3D70795E55B52EF4A96BF4F0EF4CE949A6D0D329434282B4EE449E9E256DD57BA9C3E992C19E9E3BC6350DFF78B527DDF2B801DFDC72145BC9EFE0149D1FD9CAC2CD738EE51E4BB6DDBB61994DFB16387D96F5353532D2B60F2F336A93500FF08ED905A2F4CC5974E513FCAEC57C1477CA52FE6F1562DAD238DF9EC73ACD7E6C6689FFB7D3C3FC5D7BC9D30798AA165920AA7BBE7B16A7148662ACC35A800411802556C21126F78D010A67638AEDF1FB974386E2E1F8F5E629D74B53802DAA95326CBFDA66619A7D68F52E3869E28FAF4F6F478C743B141472CE28CAA2344857A090D22336B8224A96B3B5171443ADA46BACC6FBDF596CC9C3953AE5FBF6E8C4B15E04AD06936186177B82246986E61B7578391CD1B37A8E5B7445D3356B1C38BA189AE0589400A3EE3D77B15790800D72C5F2A6DFAEC4B576B65A56623C94917E5B2BE1FA70C5FB8608189F28DCBF2FDF08434D1BD7C57543402ED4734A64101E614154AC9BCB9B2E7E021292D5928E335E8DC7BE8B074B53D9475AB571B83B23C7B5AB41110331908B6EEF61D359CC951FCB6F7838AA02F74E9F7A188020C99D445E22A406747BB54545498887AB56EEAF4E9D39EC42C5061306A6A6A3CAF610DD291AAAA2AE3ABEFDDBB67040FA3201AE260F60455CA7B0FDB0C6DFB8E549857E6D7FBF6A962F46B5E1E90AA13276489C612C036CF56AD8EFBCC5475098B162D32743DD6B823DE0001B110E82180C2AD5CBA74495D5F9E711FCD1AF0123340BB35C8DABAEB7253E31B5CD7F1B3D5E18055F7F04883E0931A6812F4AED5988400DA6BB057788D657A0DE2258DDAA5BABA5A8A8B8B0D8F581B9EC19327EAB2A669E643FA1C8BB8B13194EBEF8328C080FD23C4E3436D0610BE6958820A2730185F8FFFB4161A6F701F8422D0B1ACFD8E066C300764A14801731908C0D40B741D1BC86C7D798309EACE9CBF206F6E7B45AEA8F55FD409CDD0C69A080641C71BB6A2C92B2953BCC1F318089A75F87CF9F265292B2BD3B824C7588F35141B822D9C572C0BE6CE95DD07BF95A52F2D964C15CA9E434794773E231C901565F2A2CBF28C7D24BAC65AF035CD50962A027EA79954414181CCD1E0DCF2D246FEFEC06805806ED0817B5CEB0D8E42805B9ACB5B8D3191E830859B2469558DE3261480D42936C570479AA46589208B7B2DB3BD82BA88020C86E9FAB6E2A8A90D20BC1DBBF668EA188AE4B3280074215C6A01F1067F678FECC9EB1A0486B57B0DF61D9B1E5EAEAD93DA1B374D6C72ECD41993C2858DC96FD6E37AAB705ECF055D729C3A86D700B55026AF619587BA48800A658C02C027940405E0EFCE340AB00BF9EB87B556806E17E0140CCC66D03EE007460235F10656089402495E96C6BDC0D78C19338C32E093F85C575717412222F430028415600DF9BB32E8DCC54BB27DEB2B724DE1B246E1171AB106188002A0085E039A10A2D735764F28308A42CD838C02B782907A1481AC8BB32E604EE12C458062D97FB85C5E5AB8C06443878F55993D98B4540D0A9EB1172F9E215CBE67EF5E3CE3D92800BCE53DFBE01EEB366CDA882BB2EF254601B80F7EB17F4DB36B0194A03EF437FA65198C76578AAC0BE03DBE76DEBC7986381E1A79409C6137C0355E9BB17F6713D637D2B0700FE0CAF85A67134D148C5439A9445E57A636B73E8C080B254261CCF50906CF4D748DA50B65C2153639E9AA45450631012EC1BA00A2FF0C8DFEC9481AD5454CD0EB8D3B4A0A1A9FCC9AF0F1FB3C976BC6E219866279463DC33D0C2FFA4614201601AC3C91B5F2BE4E79FCE741B75FD60B30B74BFAFA927501A42F43C30622F4A614A9AC3C9A302A25AFBFA6969C685007A83E776ECC6BD0547F726A84397E5FB81032316BBCB19A879AE2A43BCD8D4EB5D03D7BF7268C9A9B9A9BC78CB6E9258C950D50D3E8EB0F23253E1F058036DEA73AB14650DDE6442732AF3C7A744CBAEA120480F69AB1784655B55D79327BE1A208CCC7A048A3BEE4BB6908BA8304D50A76556E15205C09F499624A3029602A85580030F4B406300E6432DA743355A7C3CD250A487E437878DA1802057875DB36137163714F73CCD560CFC6003BBFD9151128420F1B4C50D2D3D3222EB4548342F88AFBA0F0F2B4062920AECAA4A7E5E5260B0031DCF2874EFD5BBDD295A78AE18BAB00BEB06A2459F8B790110806E44CD509938AD09C214AB6917AECA05BB77EFD7AF9FCF3CF3DE18C923042DEAB164B6912A19F53ED065A6116C244D9B07AABC5F577EE8611493F1390B63BB975A3C220B4E01EA0F5F8F1E39E01DC471F7D24070E1C30D5CB7883881ADA2943135842C3D75F7F2D1B366C309F49C1485BA1D716763AD5AFDF77D0AA95EEE9E3EE48A04B416DE5CA95C63D91461383C41B5C8351EDDAB5CB53C8EFBDF79E81F82FBEF8C2746689979005FC8036D242E29321875FA65F22D12E40F997E69275B40238908159BD69E13FAC007A916A76B21361C3682C01DF98281A85795EF936C2B083756C504624CC2452B501A0CD02E6CF9D63E878D0D22CB3347804F65B34D726DAB66920F7F1DC44D90702F442309B2ADA4C8789D0B02EA60DD6DC69605E6E8E2CD0F8E856FD1D2954BA68CCD437341AB4822EF808CF962F5F1E69C2C40E040B4D8968B7C1B9E97E2ACFF8CC9E6D1AC8B3A24AC2CABB38314081D213E583E2214081B5FE1104081A98238AE5C1303F51CE6A7C6366A62702C4169DDC513AEB63A11447C20810BEB65C11C8EF14590E96579894305C660E339A35A12911D4B236CD1AAF6BBC7C3F0AC15EA803A064288ABDB6EEE62D530822383D597D2EAA6165A37E9B1A27CA506C35D62BBD8EC733048C429818C10958ADD06315C031B6A9B169AC3F26088C4A016D1D0005484A4A962FBFFCD26CC6ED22E24D1E6E82368FEF2D6154DDEEDFBF1F69E0D0AA64B229208D35ECC637AD5D2DAF6E7E39DCD4D8B45136AC5A19111AB08F1BB0CFF69A08D146C15EDFF30AB4F26CAA8658186566DC0202B50D2ABB87C50BE6CBBBDB5F3306F2F21AA571D3CB91FA046BD15AB7EEC9EBB96EC518EB1A5C27A99FCD18A08BC93506716D4B243E0244F535462180BB0014A9040E87174B4E49363086325CADAD8D685EBC41B4CA71A4010F8D675DBA6EACE14689C7AEE609DD44BA7421C722AA4E9F8DC0EF818A4AA529BC890CB5ACFCBC3CC310DA9C160A479A4A234D1C94CA228D578592DC1D816189F65EBB269F897F38B9D4E734C72ED65CD5B4F4B6E9591C3D79CA74174D3EAF7B27BE0109487199510810392F104E9931025C6C2C6ADA7DA0E0B5CA77688746F77E4632B007D2A22E72E6C4498A94A315C02A415C05B0059851D6AAC287B0B9C5734D2B959CB8D70547F11A3EDD1EBECE7D6DBF8702F14C0A44F6DA80933F5366A5D17240E17FF3BA75A6A871F4D46963ADEBD6AC3148029D7C1E0BDE71155EFDFAF0A18EB4B8F7E2966C8E7DBFB9C5BCD2089AA728F1F5BEFDB2A26C89C956A031459FB161ED1AA34808D7CBBDB8FF8E7BF2EA8EBAE385D8EFD833E5793E976BB0196E0B0F3981E0680470DFEB8F89014641B72D0A555656987403E6906ED920097FE89E44BCB496890160B47B722F93A212E7FEA64F9F6E206D8D0A90B54B4A4A4C29D63662C2714098E137D4EA38EC81625C5468BE7AFD4638F75541601958A6B13847D36327832CC30680AE72680466A1993A3BAE097F4CC0C8DEF1FB7C8785B1478440A1274C57BD5C520806EDAEDDB8193E4C4279B7B3433EFDF4D3088FF0CF5E7411F89261C5D2E5A60D9E411B32E13D7C865736D602A5A02B39251C9BC54380315D8015B6857F5E434EFD9C8D606108074DF50A566C700861031E27892D946319368A25AD8109C402F859B74B326D625590293A6F28DC16A980A8BCB51A280C43348A6BCBD6899A504113CF2425EC41507FA00C4C738A3800BA501C942CB619342D275B66A882A0080579D34C2C70FB6E43C4D5703DBC821F899E0BEDF078AC163BFE9E6C017EC1EBF9F3E74735836C10301C27088C77BE31A80FFE5B7D5D6F5DC0A800CFE78F280041109BE1BD97706DAAC3667B7A7A3C6BEE898A491685DC50C5F34C648B805438C3AE681B05C0C260C84082E3EB044958A3D7355EB57AB7E2C64232B1CA93273D86D9F42AFC31DFC38FB178C673CDC92957BA17AF17909191316633C82B0B88450045DCA5EA3A7E09025042CAB608101B03B01F7A019C30E11C80D5E4449D2B9B29785D639908EC23102C0548B3074E080E6D6BD8765D380144B917E29B5A5A5D9BF399000925B056E4854ED0E3F6A1F1E8064E7153BC87167CABA50B3AA981B89B41ED1D9D72ABFEAEB98F8250C01FDD27E1983CA896286DB67CE2B9896867B01674201BD6B4CD203EF39D65CB60687430E9763BAA7079BAAF997EDB0EB669A0B53EEB0A6C350EC1431C7DFEB18E49A34C89AEB1D1306B9262E1C3790EEF817FAC26B231876082ADB52B964B50695A347F9E2C595412292AA1483063AC660FFB48D4C8721781400B5B6D23826F77B2167B68D6BA8079738A64E5D22592AC4651B66891AC5852EAA045B28949E005F1C4F7690625EA41589EC17FCE28200B78055D4C328316E74CA67BCD5804F047DAD50609423CF1D73AFF9E0089E0E2F0E1C3C6C703A9A63041E167D214A9BF7635A1F5C4E1B6F759C151C7DE86A3983AECFAFCA4AF5766CD9D1F714F3022E81CA020F06AB87943991FFC6147ABC6F8F9DE70827BFB942F0585E1933CD0D3EFA09E3D33D178FB962405FC3F8CAE31684B44178A3B6BDE7C69BCA3C1E9B9EAC8F7181B28CBC1506A2D204A7575F5BF04DD0810CF051804502D069EB668E44EEFFD69368318A481E9CE8F38F6687A650B2EC54585F2CDFE83B27AD95273EA77EFE12346A996AAF2620D4FB3E1627B05D6926D33A874E102995D384BD3C003B26EE572737866DF9172C3B3FCE9052693E0E8DBD36C5471528B4C82B1FFE0C15108109B79B86A23BD512782F0EDEFBCF38E5CBC78D1C09D71054E4A41D1810208D083DFB647C7E38D8F3FFED814658076AFEED5DB6FBF6DD6C4476EDCB8D1345DF81BD12C135A46E200914B35574D9AC58187CA93274D0FC004478FBBE5ECD9B306AD4030AA955E83F5D983D7F93C98B875EB56F37CDC11E9290D1AD25A3203941F5847D12C4A9DBB74592ED75E330860CAD58EEB2330FCE69B6F4C2A6B4F1BD579B4C96D03EDB3CF3EF3A41DBAA0EF77BFFB9DBCF6DA6BC62DC123262E1317103EACE273EA00D10AC07948F7A15627CDEC893A138865B3B03957664BC1BA20BF00C22FB209348BFC9305BD0611AB3D0593D84B847DB20D7EF0E30459FCDD36922CC1F38BE7C84B2525F2D5DE7DB2AC74B1F911C4EE83872247C2B002D6C2E2BC2269A0991CDF2BD0B2C2B3C660B30AFC2ED39E2872BB2B6291D9B3661A0420462116D85F5E1115E1B386BB88E415C12F5BB6CCB38166AD96B550765BBAB627946CF6657B27B1BD03201FA32693B0F505BDDF28409DFB066BF9D61DF4F6F649AADE14748E85F9CDCF96528C4FF1CA59212CC3F92D5FA2CE5CBCFB6C791874089F2D0C7F87F5532A26ED3A557DDE54DC6C5C810240176B12B57B957A6DB5CDAB5AE89586B12ECA43C3053F8AC25AC504999A34F80201CE7E7721AAD369CBC8DCCB5E123DD722A397D178058836D5A6128A4C2C02B87FA3E99C0588E28BBE0FE95EAB51802A14481520D35E8810609469AEF073687F380D3C7FFE7CA40D6C35D08B89639DCF33C19CFA532CF7CA952B52585868E0D9E6E236AAB79696A5CF9DAEB9F283E616F3FBB7C99326CAC9B3E74C4484B2E0676DD4ED8500B62993A856C0FD567989F88167E8B2CC4340F660A569074FCB957C550A52D319EAF393D4CA1FBA7E8C810BB1075CC67A6E22DA2D2F29FCE09EEC0157EB56E037E8615DD3385506CAE883CEE1595C18745B4552636E555438CF99C026FD634D7373F34AD20BD22F34DCA681FD03E10713E92E5588E2973097F43ADB828D37FA9C53BFB13D6AF7E008942D9E3C71725C9A3F91020A45272717CF9C32D53C97A357F65088C904D0747E34B276AD398DCB9128ACD50BE26921F35BC4C73DDEFF39E5CEDD704E4F7B976B41BE4E576FA3D9B1F6482025E11F759A2AA4D268918926D5EBAFBF6EAE0515384696E8B9B71C25F3AA9DA000E6C0A73E8342586CF38C8C08DAFB9CFB39299592922A3DA16E431B8645F48F6263E0AA10F7740F8FEC7F0829D5F91BB57A3FC2C7FA55F3370702C1406969E963D5A6210D6A7CEA0E9EF9FF81707EA236E4F53D74B5B777049E355DCAC821855C4FBAD427FB95E9CFFCBF4528120CAB2B31D07CB5A626B9AAEA589A22AD4F15A85569BA6E5D8CA2C55FAAB2D5FD2FFEB07AAF5E588E4E0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (114,1,'Rackmountable_4U_server_3D_(64)',0x89504E470D0A1A0A0000000D494844520000004000000016080600000070BE9A340000000473424954080808087C0864880000000970485973000006EC000006EC011E7538350000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000009364944415458C3C558596F1C59153E55BDBB17777BB7BB1D133B89D3631B3B660C0F018440331026F3467E12E29977C4231AE505F1309911EB8819821092B3616731EDDD6E2FF1D6EEBDABAAF9BE5B7DDBD50C12641285AB5CB56F55DD73CFF29DEF9C1BA3D96CCA571D8661A4F173BB357F801991B7330A98BFC7BC87F9296CD8F9CA36BC8A0360B0D1DBDBBB803DB7F1E76DFCDE785D4B5E27009EF198CE80AC4F4E4F4FEFE3D77A630E989E9E8E351A8DF76834961F600EFE9F8DFD6FF2CEF0FC7774886DDB9FAEAFAFE75FD901376FDE1CC3F30F1DC761A4BF8747A1B765D41B3E879B1ED119B0E3934B972EFDF5EEDDBB7687035A11BDCAC59D3B777E1A4F24B230BCFF3F2BF1C6CD92B73C6AD56A75733597FBD9C3870F1781EC353AE0B798EFF16D5757974CCFCDCBCC5456904B323636261B9B9BD21D8FCBE28307FFCE07F2DD6F7F47B6777664606040CAE5126645D299B46C6D6D4B7F5FAF54AB35A9D56B323C342CDBDBDB12E98A4834D225AB6B6BB2B7BFFF25ED829188A4D3198162F2C3DDA7F2D1DC8FA42B69CB4F26FF28BFF8658F38AF118180DF277EBF5FFEFEC5E752874E434343128944EEF9F12E9B482424180CCAD1D1915460C8D760F8512C2613972F8BE334A5B7B7078634E4FCFC5C060607E4F0E010CE8AC864F6BA98103C0AA58BE5B29C9D9E482AD523C5624992A9140EAA4BA55A95F1F1CB62FA4C89C5E2D2150E4BCDB2247369548E719EDF1F508ECFEFEDC9D1F1B1C46351754EBA52102B1493485F517EFCFE9AFCFA37D764682443CF2BE71BAD20701D0C06646470507C3E9F6C6C6D2960AB6FF07A7E76060EB5E4E37B1FCBFA5A4E6AB5AA0CE2DB68342A8140204B0704E7E6E654840A8582DA58ABD5A58E4D4D08AAC188068CBF7265425EBE7C29D9EB59597EF6547A92292997CA2AEA4538AD04A3CF313FFBF3E717C98591ECEE96E977DE81CC9A727230E0179F69C8D76766E4F98B1750242689EE8454A1181D50AE54C4B26C294C27C41FFD83348CBA3C783420F1685852B188324ACB566E50CE30C4AA9585D49F8804DB08E5EB0D18CD20462361B11A75F50E954C464747657373334451BBB76EDD1A7EF6EC99EC0396D7A7676404F0A842E157198C22236E19A6BC3B370B07D6657D735BCE4F8EC5B1ED4ED6E9FCE34B2344478542727A5E946F2D7C43F60F8F241C0EC9CAF3E7E28361B66DFFCF7A111511E8562C956413E858595E926C36CBEA264B4B4B1B44408302192140426A95AAECEDEEC8ECECAC1C1C1CB4054D4C4C482E976BAF09A30AA21506A4914B4A29C2F91F2BFF74E9CDE1E1A61CEEE5657272B243E991911125DBB2ACB6F3BA811432FDC9C989822773F4B3BFDCC7334391651351CC6F6FC9FC8D1BE0966A5B16F7A9DA7776D67E363535252B2B2B629A265232A590B7B2BA06598E7A4F8E01D113250D136BA5713E9F5724110C05E5F0F05039238428E8C94163F59A065161FD4B817EF001FF2E2235C809B6EDC82914E33B7EA7271DC7B3F4BA8C6FF90D2795A3E21A25FCB6DAE2121A5E2C165554BD7BBDB238F91D7FB52CA60365D3891C7BE01B0E10FD3E11F0113EF83E14AFC3E820F369249D961C98BA51AFB71529E0E08BB5C8090CA3700B87E8410490A899E3E830547E767727E508516D3A4EFB3B1A4155A8A44E84120CA9B5224BAE59DBD850ACEF3AC350BF3D3D3D720C597E0447CB33C05B944FDDB4ACC74F9EB46531983E38A8015EF1E8E0C06613E7FFCADF220CBE790C07BC6B00B65D8034D9BA685D7494C3803C89528F38601A47792452E871C29670FBDB8347027049D37695EF06C145218F91D4838690E9EBADB24644B194AAAA81EF5895D0B4C89FBEB8AF1C651AAE03687806C1A151CD164A983ED4E1CCA32BBF612AE9F74CD7274F9FB5CB289E1DE3A74F054DB9C3714CC0689E50E23C061B33072FA0E80AEAEBEB534A6AA509772A4BFEA003B89710F0639FED801300552A4B85F89D1EFC9B93F0E5E039DC4F994407599AB2095DE6ADA1DC007E805EE6F8B8643299B61E349EB2989E7A703F1D408E21DB533F1AAF1180BD499EA99C7A015FBF4961ACD7644C46A2E181370572AD9F31A7A8F40B94322ACAC68991B56D0B8604D564F9A1A28434F3560F1A4E036B9E4A43652983CF9797975D52C4191194AF4031A00C658AF1BCBEFE7E37BF5BC8209AD87B18A6DB1F50161DC9B1B8B8A848BA8EB3743B8D3D7E55263502B8700FF003BA8E5C01E37B8DD7DF789FB9D1692A457920A3C71458DFCDBBA468BB8765100146C8CBDC3C8BB2B453782E9F51167981D164A5D846A530515639A96F3C1E53BAD160B36500F7514E20D08EA5329801E2733A88683E5D5A56CF7469F43A605C0B5229805FC2F632BA40EF0584B0D2254457047E9F4C2615ABA6017385A056A7A67217113984111918A3D2C353BA2847A70015227A1835A2E04296E9EA60B8F7901DB4DD63E006EED729C012472E6217DBE6ABE16155061918D6FB12104D47E832A82B03F64E32C9E7B420E5049F5F79986B1EA2A72631BDA6F231B4CB7416A3866BA7FAC66809E761349A5D240DD37B38299FD1F0AEF9AD86ED1A2A1095D6CD128D6709636437501D741A71B2FEF33CBDE6A41EDA483678EC70E9484F0AA87770FA3586C5D208505E47D40601195D3EF4D8CD775EAB1BF06E6E75B503D6BC18D988EC455F109041448335DCE7215497A13B3BC125E47DBB13443AEDECEE4286EDD25FD32541E67E12E944DDBC23975BED58B3C5F67682DCCD40384EA70320573542163D7B031D16A3C097EA3203689710113DBB7130595DAF5967A7D0E3B3D767EBCA0BD428D839180CA10D6EA87E9EE30804D88FEA41C2ABB69A194298AD6DB55A5193C439790D971D942BCA1A4600AE5DBDDAAE424493056EDAC2CD94BA524F2DCBED4A07DAB238A7D10986E144CE09548D34523000B91A01F3F3F39A7F1A0C715EDF0419C5263C4321CC1FE6A2260EDDAEF2D7FB9F14AD9652C18C2941263E2F9CABA8F31D6F5FCC6B929AE60F1AA15B54EFD079CD94A02CD58015CE702FA9A3B4BA757E15A85B5858E8687DC94FDE3E832949036903F5724B64B3CD43741CDF439F03BAA18EBCF926609947D453BD7D7DC55038D484336CDC042D3DF8376E6A68B8EA0E963627F2D4C2A5C986236C186CE3BD85F25745DDAF01F29578B4ABC6E40D04434DDC2E6DFCB3F1CF6EC9B2819426D60E67A95CA10C80D47070F576CE0A053B168B968687861B50B682DB5C9DFC9448A59AB8AD62AFE5E8BD28DB94D95EE3568A5F4BC9A24C9CE58423E12A6CB2CECFCE7C70DE2174DF45607EFE2F5B60E4D2107D992E0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (115,1,'Rackmountable_4U_server_3D_(96)',0x89504E470D0A1A0A0000000D4948445200000060000000210806000000269CAEF10000000473424954080808087C086488000000097048597300000A6100000A6101FCCC4A250000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000010394944415468DEDD5A5B6F54D7155EE399F16D3CBE8EED31D8E6663060CC35D03440A89296044A9A469552A9AF6DA4FE84AA6AD4E7B64FED639FA356A95A2552A4DCB918B003D8D8180C0603BE61833D631BDBE3BBC733FDBE35678F678ECF84A09496F4245BC7B3CF3E7BEDBD2EDFB7D63EB8E2F1B83CCBCBE57215E2761CED14DA49B47279BEAF7EB48FD13E413B03FDCC3D53FD3C0B03E4E6E6D66565659DB294FE329AF769DE7FD64EF114D7025A13D643837CBCB0B070EFB93400BCDC1308048E50E9988F4AAF7F1EB4F70C0C798FC670BBDD1FE7E7E737F5F5F52DFCCF0C505353539A9D9D7DC2F2F2D7D18A9F33653D6B43CEA1FF0C9C4FE10AC6E87FE606D8BB776F03156E79F9F7D1DCDF1165FD37647613A62CB8BAD8D5D5B5F4AD0D70F2E4C99CA9A9A963B0F21BF8F963B44DFF27CA7AD65704ED34A3636565E5934B972E0D7D6303BCF3CE3BD5B3B3B3BF585C5C7C25168B1D4557FE7714229E1B9930C46DAFD77B16C9C917EFBDF7DE0769CFD07E84F61BEB6F0199EED852B735B86BF76E998944E4BB78F90A0A0444F95CADE9524B0BF4391D1F1C1CFC14042E393939B2B4B4F47B8FA5FC57CCC0B1B131999C9C140F06CD3E9E909FBFFDB63C78F04090E1C8FAF5EBE5CCD9B3F2C3575F957BF7EF0B422BA3C0C6C6DDF2C20B07E4E2C58B7260FF018944A66564745476C3B0A74F9F9697BEFF92446622120A8565574383CE7BE4C8610987C3125D5E96F28A0A69F9EA2BF9C1CB2FCBAD5BB7A42C1090C2C242F9E0C30F05619D51EED2E2A254ACAF91427F8194FAFD129A8EC8AFFB5A6538D72F7FFAD9BB12737BE4CFDB7E2B5EEF8AFCEEDD0A89C662DF26FB4B7AF1EA1FC95F128B46655D4DB58C61DF5D5D37241E8BB998B8F87C3E29292991E9E9690F0D10E4605AC4839F801F9D7816CAA1A52A2A2A6579398AB62CC16015145329159595328371FEA2A28C8B0B04CAA408CF0B0B8BA4B8A458E2F8AF0C8A2B82120B8B8AB52F86BE402C8EDFE82B461F1A726D71C1D8948568944ADCC72726742EFE2E292DA5E7A4EE38ED9A9D9D2140C061DC88049F080C503B3F29CB9873B624080378A5B63A22D9D92B78BE59AA6A3689CB284EFF37F75505F397C7E396EA75EB60388F2C411743C30F9363538D71E8C03E59C4FAB2BD5EF9E8A38FB46F6A7282CAD7BF01451A9D1C0F6354D000AAC583070F2AAE353737EB80D84A4C72FCB9525A562A8FA72675821228AD105E555E5E2E2323A3F2D69B3F95AD755BE40B78F489D74F4867E735F1F90AA47AFD3AB909AFDD505B2B37F00EC773B12B98B3167DFE42BFBCFFCF7FAD86676BABDEFFF6FE3FF4FED64FDE803112C6AB280F483FE6A4F7B3D56FAB9737DF382557DAAE4A5969897AD2E5D63639F9DA6B72A1F9A27CFAD9676287E7BF37EE93D9B857EA6EFF51E25978B8CF7212EC6DFF9E4659D5A32B690CFBDD0B03ACAB0A6AF4D1512BE060D68834C315413FD453383C2695E5651286F32C2E2C26D772ECD83199999991F1F171CE534803683C370006AE5CB9A283143FB1CEE1A121858B310C66040CE177DBD5ABB09C571E3E7AA4061B1A7A20AD508007EFF0B9D79B0D8507E47E6FAF84012FEDD7AEC91CA2650A9E48C1A17048DAAFB6ABA767C4CBCB97A5AFB74FDADADAC40DCFED1F1C101FA29111D2DED18E68CD96FE81012904D6FBB1E1CE1B37240B0BBE7BEF9E442027AFC02F51286AFCF1639D6F67EE848456F2A4A92E2A714F5C9A2EAEC77AE3B2B4302FDD373A64D502E990624314B9269232D621FE602DAEB70010330DFE1CC75E5D1EAFC452608EF0BE63C70E99806188529CE37E5959D9E6E3C78FCB9D3B77A4BDBD5DC37DC396ADBA5184C993F281A7481D12B7E5E8B2149505A4AA32080516C8E4D434FEAE90CEAE9B32353EA61EF6B5D8FBA45E8701F45CCADC585BC314066B880262F3E456F71D998B4C4171EEAF9DC7F504392E877E426571A05C3ADB5A65643891891E3D7A5476EDDAA5CE0E0EB8A31180F448BDD35C890C222ED1C505D9B2A15615E2E4B17979792AC44E8A246CF207E7A401193D9CA3001E5B01721D1A1E96C19190CAF060E37C1E854218516EF455072B799EA47DF68B186AC6DA0991CFC86194C935B10FCEA5ED6A7B872CD3F85C0B8858E700FF2C628F3EC82237911C9D089EF3ADF24EFA3E0D6F728CF1F46030A84E4CB458B6A5AC5C1314AF9C8B2B9AC535F1453E788C90E53D61009784C0DE543CB197CFECAD1484C877EDFDF3F3F3B271E346F0C4886CDBB64D1E01AEF89BF3D0285E2C5A3D125C505981ECC6EF9375503AE5F6200A29930678F8F0E19A565555A532ECFDA85B5406656DDDBA55E19063B916CA324A08C201CA03A5C0F080041175DCEFCDAE2E3508FF769269F662EFE765649A75F14E98517C89C5AD9A611582B87F1ACE32C68A460016B7821F6EE4A8AA84044B233382122291885A97DEB536E39855AF8ED8EA056EC6292A8C60CE45C3DDEDED97BE81070A07A1D058326CF93EB1DDF292B48B1BA077D9E7A701EC17D76622216EE1DF35283BA114ACC9CA5C8C91E820996492EC5351C2BCE724D344CB8A1511F1D86A0450C78420EC318A35BB69801330C04D2CB2888BE002D400896365B970E182BEC08963B69C990AE518C28D13E6D21BAE5FBFAE0A632ECFF7B94992690CCF372123DA883CB9BBE7AE34EEDC2E9F9F3BAFCA3A73E60CCF9D1CF927AAD89DBF4619E6625452260DD8D1D1A19ECF75986B5FE32ECB604BCA3F5F9C392B73737348245A951C9D6412B628D309867851D6DDBB77551FE4503538E4B2B96C10C439F81CEB1F098542BFA201C639C0F2CE1928BF4021086FE6E6E5CBC1438714CB9C688845543AE1ADA6076114606B699230378922AE570BA2B0A6626E9946CD311A1EB3427A9356B2E7CE9F7724DB09CD6C5C8E14FCE597A71D4978726A4A0D5659BB514263E30A09D1E88ACCCECDAB53ECDEB35772A0F81614968E3291B565A2FDD15167998F0143738890721485A90680BC45E85AC30C86BFE4B13A6900C6F43928FF9429E3D95F0F0C87A51C21C884AB53F8D3D3E959342C3D8884CD792B51C471DEE6D6AB5AACF8A1EC55E24F90D406642A8C2CBEE72493FD4ED1C86754B419C3B9186D2CE00C09BBDD59C878BC50CA2220365BDFF3A360E31846B9934CAEC52909E19A193184E0D4A4410B464056CBE52B6B3800C8400C3C10B7AC92651D2CC5ADA3E53D490EC07FF3F3737A34C08511EFB9B9D446A1CC1CECFD6CD5D5D5BAB09A9A1A25ACCD9B37EB518692B01A33A65565198A16FE0EA0A8A2C258575016E726B9D91B21865984BD9FC6A64C92EFA64D9B146BD7A17235599AF1C240699994C028A5DA4AB4AFBBBB5BDFE73A9C6412C25838D9FBA970CA1C4656C731A3485A784FC2633CBEE6E00E7B2CD742D772A0640458A574CD2A09B354CE5165D0A38881762F200931E5723AF8B26334651845307523318D00C258032C2082CEB55C4A60268F412C994E78CC79195DF6A873F250BECF964AC2EDD76F58188DA877652523989E4F2C77924947228F4D01CA9E243375DD760EA05C386C2DA3CEF479CC40761AE56BC6C2BC9AB8D8D2C2EF021ACA548C7D8384162EDCE9A08A1ED88B8A985ECB228F1E43E5138678B19CDFB373877C75B5438E1C3A08126ED273201EE03536366A14381D0333EA220E27B57CC6F0EFECEC5423DD40856C886F95841B741C332FBFAF403E07E173BF4D4D4D72E0C0014799741ECAB41BDD647534CEEDDBB7F55D2353952CE911409DB0DF22E9789A014CFE6F1AF35017FA0F1DFA9E84C7C6B4395D7D03038EFD8F108EA9D7343CD76571153965050A98989C92DEC107320F4F1A044C71450CE93DBBF748D7CD9B8E641B99E9CD58F436C359D24E462D1E18001C8D817CCBAB0187A321595E5AD6FD8D7926F4CC8BD90F1DA955CFA4D6CABCD5DD9DE938542E343727A228C5C854328F452691309455E5270FE2520D60AE3408A27752F9BC33026600313BEA138594B176EA45CBB3FFB175E6927A190E20AE12361841F4441ECCD14B3F45C6928F4DF308E2C1F043292E2AD4ADCFCCCCCAF6FA7A85377BC469D4A090E2BCF61C9CA14F3864C1C488633144D9542C39A1E35AA792B00FBFD1A967453E5FBE64819487FA8735EDA50713EBED1723995C6827684605F7626412A2A83F2202659EB71C22668B00B69855A551ABE506828C019403B2123849E5329C9DCE6708412CF39D2EF6137278E7E2B76CD9A29E66F822E109A2075794555C983026899F8498695EAEA5C0CA9C9C8C4EC593F079D8451823DC999C9C17E5F8F27D7A90E7CB4BD42FFCDEC1E7996432A3A1219DB2202393A7BC3400BF77D0D9D28EC9520C608CC0D7F17725B5FA079063B11D8212672BD9EA115C18BDCB4EAC1C576C9DE33B154C06DE1861542AB317DEB9A12C289D27A42D57DAB4283AD7DCA25E49B99449CF62B39F07199C774A174D756CEECC4AA8141E17D82B610D7FCF6AF240997412A7BD70FD8C5C3B0AA4261F4626A381C6E71E8DD15323C0E8168E518D77FEC219179C228019023D9CE91C4333D538A9464A25EF340EB13C92DEBF61C306190057706124B2C4B90B8F6DF3E5C517F66B11F4F28B87B42EC8CDCD53E23650E834AF933C36EE83A1CFAA9B0E43A546F598239454D4FEDD8DB26BC77669D85E2F7B1A1A928767031697659AD7692D06CBB9CF9E9E1E359275CCACC63706304711C92F68AB7A9B630444AD422C4D489C100454AEDFBE5D093804453A11542612E6F702A78B3238DF3CF09D95680FAA6292E5BDFE414440548A5017D4A210EB4169EF7290370A12753E8F76C9282B731B33732F8F1105138C2A54A5FD207DCA511844354E28DE08A3D1C9DA3B3A9C65A618D02E7364349451263FC3E614F8D32028B5E0A4EE6980651301DBA16C7A8B1A00339234FD05150A1D7E60AF9DF8B8685A9D186ABFE85524417A21C751F1F44612B77E5B3E7F41FBB660F3C30F1FC9FAAAA00C21139A89CCC836408113D11A1266BF3D0D25099BA28F10454F347500A3821F86A8767E2CA20198FDE421DAFAFBFBE4FEFDFB72F8F0E1E489B0FDE27A399F7D3DE422EE938518F5C077A93BD64CE4A1B3D86302826249CE64B4182E80DE9709414B8C00B23871CB4401F3710F2A5566409C90CCEE1482ACFC9CC296A445659BE8E21C3B77EED4CCC1CAE03444093B59189F6B7D93E64775E236C9D6C8486D3426D762EFA71C2A838A2221F21F17501ED7A7506011625E4EAEE480DB7250647ABD6EEB4C2BA4CAE5FEEDF35AC593AEDFDE6F1C8D8A67A6C43B0F2E0D99937798821A28A243322930C52138402360543F84B8131F468C02795A99030F090D3FD00D73D298C3BF20E0585ADF4E9686B038B7390EA0A750B9243A863ADF69EDB8A63974F39556FDD0CF8CC81C7F7073F6E2879B30296D26E2E73E289784C80C85116048B8EBCE6D8504424F6A664799F44EEEC5E99C8991979ABF4BDA47FBD5628F7BA44C3A1FF7E8B2A09D8EC579F41F1D5806C4DEC2D4520F0532E7E6820DA992375C56D1608E5033FD0325A767EC272C98F2DEC006E737F04139FB5199B21E7809645C5294388FE73AF88E53ED61CEF733ADA5AEAE4E0991B0418F645F381C4E8ED98DCABB1E631A506B34828CF504160662E49853806F2AD37836938CBEBE3E3512E19A739084AD2FFAE2CDCE491EDD10926904B41832C25697A5C0BF22C476D26AF08020BCBD7A635DDD1894B132343050200E8BFAB617E44511B66B407EE4D1A3BCE9A9A96C6B83AEFF943CEC315EB76DDB9A8F080B8B8B59037D7D0559AEA716F5C417C09BCB95C1E0E2EDEEEEDCEB9D9D3EC22C0CD48EBDC711ADDD70B45FFE1B72953321215755FF0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (116,1,'Rackmountable_5U_server_2D_(128)',0x89504E470D0A1A0A0000000D49484452000000800000002C0806000000ADE0B05E0000000473424954080808087C086488000000097048597300000DD700000DD70142289B780000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000019524944415478DAE59C69905DC575C707D0C2AE05494868F67DDF97376FE6CDAA19CD68D74842BB461A2D6843FB32A3158C70624061318B64498008AB6C638371B1B84815A9CA3717E5CA87385F6292AA24E52A2A2997B103445027FDEB37E7E9CED5EDFB4418910F99AA53F7DED77DFB749FF3EFB374F79D141149F1D3912347BE373474E4CB83070FFDE9FF2B1D3A74F84F838343DF9A366DDAFC5F1B376EFA3FA5C1C1C1FF08D23314F8A351FEA9058B964A5656B66CDEB2458C30A4AF6F89F4F4F4DAFB9D3B774A496999DCBF6B977DEEEA9E2D79F90509CACF2F74D2E2C57D72F4E831D9BD7B8F545555DBF7796E6FEF9475EBFAEDFDE6CD5BA4A6A64E4CC765E8C811698C36C9A6CD9B6DD9DA75EB4CDD0E7BCFBB35B575B26FDF7E3974F8B0B4B4B6C99A356BED7D7FFF7A698834CAC1438764FF810352555D23F90585D74845929D9D2B2D1D732DAD58B55656AD5E67EF8FD556C86B25A9B233522FF97B7E20773FF6A694AFDF2FAF5FCA9677DF4F95652B3A12EF4105251552156D93AA26A85DAAA166A8436A12D429B5B138D5412D9DD234AB5796AD1D90C52BD799EB0669EB5D20F5AD5DD260A95B1ADABA2502B5C769E1F2D5B2FBD011397CFC413974ECA4CC59B242A29D3D52565527070E1EFCEC1B0360D9F23552545C2A0F3FFC7D3973E6AC1C397254366DB94FCE9C3D2B4F3DF543E9ECEA91C71F7FC296EDD8B94B22D198C45ADBA539D66604DF24B19636A3900E8934364BB4A9C5DCB74B53738BECDB7F40CE9D3F2F8F3CFAA8CC5BB0489E7BEE8CFCE8DC3959B97AAD9C38F9802D7BE0810765D1E225B6ECD9679F93254BEE95871E3A2567CFFEC8287D50FA370CD8FB274D3F68832BFD1AD808488EDBFB53A71E963EF31E6D3C67FAB8B86F99E947ABED13D748634C5ADA3A4C9F3BA4C1F4917EF3DC68FACA7341617142897BF6EC956DDB77D8FBE7CB32E55FD26F9487AB4B64FA0F2EC98DEFFCAB05C2EF7F7F8B15DFC09658E2BD58FB1CE9EC992B5BF71EB6B46D1F3428DBF72B0DC90EE8007444764207A1A372EAB127E499732FC853672ED8EBC3A79F94DD878FCBEEC138ED193C217B86E2B477E8A49C3AFD843CFFF2EB72F1D54BF2CA8FDF94C1074EC9FE630F4AF79C05323834F4C7500098BF9986D286AFF76CDFBEFDF4CAD5EBA5B0A8549E7EFA19F9E0830FE4FB7FF197064987EDFD4B2FBD24BDA6E1175FBC689F07878ECAF11327EDFD850B17ACB05F7FFD0D79EFBDF764D7AEBDF2C8238FD93214F5E0F71E928F3EFA48CE9D3B2FCBEE5D293FFBD9CFE5C30F3F94ADDB77CAE9BF7ADC963DF1E453D26866899FA23E6A34B3A977EE2279F5D5D7E4FDF7DF975DBBF7CAA38F9E8EF3326DACEBDF28BF78E71D79EBEDB765D59A7E0B58CA4E9F7E5CB6EFD865DF79E38D4BA6BFCB2DA028A37FF02A282C0904C09EB911F9615FB16CEC8D49D9A17AC979A6586A36B60402A0B9AD47FA07B6C8D3E79EB74A849E3DFF62829EBB005DB474E679E82539FB429C50E29BBFF8A5FCE42DD3FF77DE93972FFD54CE5D7C59CE5F7C45CEBF14A70BD05F43AFCAF3867EFCD6DBF2ABBFF9485EFFE9CFE585575E93170D2D5FB9C602C0E875B2A1E91E9A6A757FCB2DB7344D9932E5DF264E9CF8E9D8B1633F35059FDE7CF3CD7F98336F91E4E4E64B695985D4D6D64B71499931EF85F61E739A9D93271595D5E6B9CE08AB480A8CD9A4ACB22A5E461D9E31A745C525F6BEACBCC2802A7E5F5E5169EB61C26BEBEA2537AFC0B895725BC6353B27DF4379A16479D535D8598BD5A20DFA9D6BFA5F3BDCBE1DCB70FBA565E5961FBF57D7D4DAB2F28A2ADB067DD5762BAA1A2CD53734198BD12295D5115918AD944DADC5D21DA996C2BE0AC9D95C2CC5B3AB65C5CA3259DB5F6A2C61BD54987A50B979B7A63E62DE8F5EA148D45A48259EAF5093E5A594A8D718A77A0F357828E27BF6B65F5D1791ADDBB67D66F4FA09BA45C7E81A9DA3FB1473F356494989DC73CF3D627EC01C584A4BCB90050B171AF4EF913973E6C882050B2CCD9F3FDF49F3E6CD1B4173E7CE75126D2A6D36FE1D3E0089F862E5CA95327BF6EC50EAE9E971526F6F6F28D137F8D18FD6B636D962E21C7EA72F617D0E23FFD8BD846CBC6334165656AF5E7D5DF941F09B35ABCB80BAF8BF55AFE8185DA373749F3263C68CBF2D2D2D95993367CAADB7DE9A00C0F4197140DC7FFFFDB6B1BEBE3E6933C20AA28181013960022D573974E2C409E3DB1F301D9A25070F1EB460E29D356BD65861DC77DF7D323335CD048655B63E0160D82087868664D3A64DCE72DA85DFB66DDB4C70B9CEC406474D00BAD83E53B66AD52A59B162858C1F3FDE04A4BBED18019E0B54F03A6C82CB30E01D3B76CCF244B18C71E9D2A556093A46EE333232A4A8A8C8D6DFBF7F7F687BB401385DE5F7DE7BAFE5A7930699205700064FC6B768D16213CC675D56BDA263748DCED17D4A6A6AEA6F7830D71100983A759A1853211B376EB4CC40F0F2E5CB0309A1226018BAEAA8700A0B0BEDB5B2B2D20280FB93274FDA365253D3252727C78204E1003A9416440C76EBD6ADCEF2FEFE7EDB364A80BCBC21040B088CBBB3E0C3AA6CD8B0C1F20C22EA98F4D804A44B9C759081974F6D6D6D628C8007456564665A0500D25D268BA26FAEF600C08E1D3B9CE50A72AEB4E71F237D26EB32FCBEF202005D0FEBFC3729E9E9E9FF54565626CDCDCDD60C6AC54993EF9269D3A6596475767626501644800386A0DC550701840180CEA6A56718E04D95EEEE6ED9BB77AF45F8A2458B0289594B1D57B9CE0E1700180FFD45205CDBDBDBEDCCD1FA7E5ABF7EBD7D0F30BBEAA0301700002C16203D234BEEB8E30E3B53D51AB9DA03206A498288BE840100F02C5DB60C997EAD7A45C7E81A9DA3FB146392FE99071AA420018049932D523059B158CC76C6256CED088A76D5E17DEA604D108A5ED53C329B338C70C68C196372F06CDB797E7799F82D767DE250A89BC0EDA0385C00C2C7B57885CEF5F6DB6F97BCBC3C696A6AB27D74B5C58CA3FF00CB55873E53A7A3A3C32AAEABABCB02555D4EDC0264C90D37DC6002D45C6B5DE99BAB3DCA014ED818B13A4C1EDA6742C05B5D00635C660070D75D772500808EF91D9DA37B00F0090F74AEA1A16104004A4A4AED4CC5ECD1A82BE05A6882453A42C3DE60CB1BE8A9090D0B6AB2B272AC608A8B8BADE0C284834FBE16E1A070573980C8CECEB1E610B781005D75295790BBEA00E2E3C78F87F629332BDB8E0F990318DC8EAB2E65C9DA23564277AEF2A6A6E6110040C7D41F06C0271600D5D5D556E0D16874040072F3F225126994C6C6A82556D61A869F237E32BF5B6A6C4CDC87BE1769BC8A108EA6855EAAAB6F88539D52FD557546D4E5EA21573D000EE0AA4D1A5963D241259B3A7A29A82F3EAA6F880C5383196B244E0D9EAB21C608C8E1F76D797AF95DC5D3C3AFC24CE04993262500808ED1353AB700307EE013FC1FC8F603806551D0525F5FEFF443DF94B0163AA320DCC3DAB56B2D92499128C79C5167B4787A096BC615F780892D2F2FB7BC192341EC6810661757A1848BC40511EBB0E6C0D8704D58BED1E047FB5E9EFA1BD6032B3279F2E4110040D7E81CDD63017E87DF4028F8412F0048CB50524B4B8BF5C7CC9620AAABABB3E6B1A2A2C259478328CC2D02A7930802D7823F870FFB0826374DB89CFCFC7CC934517310613E19ACAB9CB16880445089FB2140A25D5C8BA676643AF04730B82A577B6409B4E12A8734D025CDE33E6266246E017E8C17C06101EEBCF34E2B4FD267E4E16A8FE09AFEBBCA55EE8C0385E2F2182393169E8C87C9E405007241D7E81CDD27000082E8B0569C68009065FC2319002F11D484F9223A922CA0510090122A00346245608585C5362DA32F0C2ACCDFE2DB49155DE55812050056C61F21C30F011BE1D8BE30F6305FAA5905C1A0AB0EB35CC7C89536F5372C0E314B5676AEDC78E38DB65F4ADF26D055000068FF1899687E00341A178D7C13003066E077A087011614148C0040A131C9048120ED5A82113AEC2A07F1410040E89ACF171B9F0C6FEE0153588004A0407CB220D00F00808C0F0420F497B413E1111C85815C01159699300E3F00181F8B6928C95A000300C6A8A96AD862166B19002799DCFD00601CF004ACA481933D41203A86EFB00BB802007C06E6D70B808A8A2A7B6FA248DB785847608A005CE5CC66DA20FFC59C8240FF922E6BF7F0234D0220CC72972F67D0F8D4307F8FC926FBD04C84B40CFEDE7EDD7DF7DD9627824398AE345641842B7395337E14C64216591072C5CF7B97A015000A02C6E86A4F17B334560A222C196E0D370761B159D5549E04DEDE2C001DA3EB04008CC9FD87DADADA3F23707C931700992667AD32D162ADB1008DD16822AAB7141D7D9A3933D546E644AF0CA4AB2B3EA0209A659439DB80C6550E751B807575BBDBC01CB2CE51595965236F52A668B46998E27D8A1AF7A7D41C8B4993C9A32D99BACDCDB111148BB5486B6B9B8D995A5B5B1344BA89C0D977484B4B3713ABD2F224520FE3091F78EA7D10CF9696380F2F4FE50761C5BD2E001DA36B748EEEED56B079F8033374C2840957003071924D2158AC0149A315210791AE961598AC83C518FC167EEA7A912E4D632510A0FAD9D11A8F7F191C934B2C00CFFCE13132BB35621F6D9E9A0DE0B691E5240F00D031BA46E7C3DBFF29E93535357FA4A21F00E34D4046B48D70E2682A0C2498E2575DE5109D41C96CF6E02E5891DAB76F5F622510D39A6A66076919BCA8C352AA8B50DA30920349032404ADEE8059A22B81F8C7154610BA19447D804ECC1344F022E8749543BA1740D08C3BC1C5E94AA0BAB48C8C4C9BDDE09258780A6B8F72F4E22AC7D5C08F6056F72218A3AE04E22290AD1F00B489CED13D00C8AAAEAEFE8C8AA4445E00602E08C41888A66A4184F2F0C7A46FAE3A28CCB517003143308FA437F86ACAC2D6DD51866EA60491069DAEBD008224DD0C4280F84F14E4DACC22E6C0BF337B5C75FCFB1DDEBD009403E059EE9E3E7DBAF5D3F41F45B9DA0300BCE32AD731BAF602009F05806721081DF31B3A47F700200F7F10040022644C09011B0A426041A4393E57571D06E207004A4430CC4EDE4D4FCFB0691980831FB3D765F2181C56C2550E4F6F90E8170E11B96E06A154FC263CF92D88C8D9D5A2B8EA301E17009800710B90657992551034023E577B0084D4D1558EE201A50B0080D6BA800000A073740F008A8C39F8DCFCF8F5B871E37EEB05406A5A9AB502986B84E39A6D305124BAEA30E3E82CA64F1762102A5603623510F3488E4CD6811903145AEE27848999759543F0C372D136822622C7A2692C00B86FBFFD0E1B19138031E35CFDD72C266C8CA47C804E17B874CF42FB431F008046E38C1F20BADAA3EFBAC7E222CAF58009F5192320559E585F2F008C8EFF115DA373740F004ACDC31766605FDC74D34D4F7B0140C0427E8CB2101851B5A5EE912773608A60306B3DC68F069DDA51B34C39D46B8000793795B2B2B3ED922CCA405808DD75FA081021F0B0134A800E85BBCA8998D99861B713619132BAD22DCA9904F14316C1755068D8AE2994999563F9E1AB7537D05597B264ED11A30132573999821700E8185DA373740F002A8D39B86C66C9E763C68C79C40B0036833852D4D6D63E22AD21D521A581DA4CC066A92D4E1CD9EEE8E8B4D4D9396B0411B490BE41A4784A0060FEFC0536ED24C56C6A8E596A3669958B623E229A57B2FD0B21ED2BC7D2D90AE67D522C3F457DA4FD8A53F308225D4B50732C305D83D28D95D33E27E339925FCCCD2F8427E9A631FB0900A063A3EB2FD039BA070035E6E12BF3E3E5B163C7FE8A451805007BD7A08B9540D0187630817A9854571DDE57A4525F832966149681D98CC5617660B6740FDE45F0C22AB9CAE149DBDC635D98C1582AAE7AA08419C8D903FC3467E4E88FCB9D68D015E672D42F635DE89B8E953EE8F635874D592164FCF44B37A882488FADB9CAE1A119060B5C7A4536F044A6B803B500E8161D9B772EA373740F001A0856F0B7C6DF7FA100986000C066100DA2148445C78388A81DFF48FAE6AA83790D5A0A2638D2881F00100422147C3C2923F58308D388C05DE59A22F9978209D4700D8C0B37638463C786DB41A8AE948B36F0B761691B3149D052306083571C703972DB6DB7D97EE19EE0EB6A0F19E0565CE5C83B682F0099C293F100342F008C8E3F47D7E81CDDA71893D0CC039D21F8F202203333DB46C774524FF1B848D7C95DE5DEDDC0A0CD20DAE768B941A84530C2E2EA6A0F409159B8CA99EDD7B219C4987523EC7A6E06B10E12B700B956C6CC6EB518D76B338831FA01C078D1353A47F700A003130FD248FB88C2E30B0613ED77006CE5B23883D2C2000033ED4810A170EF42106910045F5552515189E50DE888DC315F6180624686F5C9BB19044F3642BCDBC1BA19C492300219CDCD20946D02ADC4C21320B316C0B800C6482CA5BB9EA3B51944FF5964D2852075310A0074CB7891393A47F700A087C1D3390E817A01C0C7201C0DE76CE0686D0661EA5D757273F312EB101A577C1BE1A00484E13DA2E62D47686C063166F6F0931D454FB6E50DA0C2FA84550200CC4478EA0652B2A3EDFE0D2C2F6121C2CE32724AC80B00748CAE872D404FCAF8F1E3178006848D304C9A9000005FDAD4DB2348F596B8BFF23C7C34C947DEBAAE3AAE32628EA2A262A93633C74B264A1D41DEA353FEE35F4AF136EB471247A73C47A8CACB2B4C16901F3F96A56DD7D55D45754AFEF63C32F11EC5F2D395636F119B05248E8225E39990A57F3CD7CAAFD1A6B99A05A05B74AC813DBA4F31E878838EE10FFD00E0F32D820902AAEBB9194487403AE7010938E1C93AC2F5E2A7D68899C34CC04FB33B783DC7A82BA1AC03902560315961BD9E3CB1465852B5000A00741D895B864B29260DFA2D42C77CB146ED0500E7F4315B94E3735DC7BD380AA6418FAB8EAE5B836078E187587FD7634FF0E1E0E8B871E3ACDF24820D6B8FFE60CA921D53830F82C61D701256FD23EE00A0E9B26CB2636F94D31E33CA5587F6F4681C3111B10CC1AAAEF703F4D4B40C2B5F1670E803ED86C90C5924933B7568879887788D2C4765BAD804AD5E00A063E48F4ED1BD05004BBD7474C68C19F65CBE02007F4545B2000498ECB3A8B0A08DA0CEBB3E8E3034558398112C708C1B37DE2A9759C2352C084CD627DD9F088A90E903331F00904EB1831716716B1018764C8D2CC29B052057FD8D2C80F61500F48BF1879DA2429EC94E62514E1C01D8FC63841F5F062900D02D3A46D7F46D040068848F06BD00C837310028D3D944D4EA5AE88119C80B5B080A02008AC73C32E35BDBDA136702710161BB7D9A5686F50980F801C06FF027AD63ED1F0010AD636D929D3002E428CC55CE4CF403008BC3F8B8628DD2D233AD7CE937B3366CFF416586390F93BB1F0004B3BA8B386FDEFCC48110748B8EA99F008031251600749E6FD6C8C3EDC9910913A4B8B4DC46AC2C5CA8B05D2B6FBAC0E22A5717A01B141A91130933DB9961580014821B60560200D72A980A0745BAEA20084C2D51343C01951E4D8798CDF0D30D28CDF35DA447CC5CE5FA899CA65FF0E377DD7B60AC6A019033A00300C964463F5D750033AEC79A7B334616E518BBF2C4ADEA790078A263748DCED1BD0500E60F4191EE7901905F58627D0A568075E5A8FF5898874033EBDBFA7CE59853FCA813C79AD83B40C9DEF7BCF5C86139138095801F9B4EDE2F8CBDEBF9EC35F02F6BE2FB1457AFF7EBFBEC6578F709BC047F7CA946F2EC4BB8EA42EC67B0D7A163F5137CB16AF1E75882746D1E7E7C1B88E2898558FBA74D17BF787B5D89235F413C75DF25881F446A3DD90300748CAED1790200EAAB30357C2BA700282DAFB62B56202B7EE85077027B46108A08FB1EFF5ABE6D1F18D8683B4C6AD66710CCC021DD308AF38E1F7C1CF1BF028C798712BB8CBD7386E9CAA769577D8A66F8F1FF88962E5D66D3A6957C8862664BD7F01883C6F74DC61834BE55ABF8707695E4E6155A7E90EEAC5E2F996ED83060332B3D158C6ED131BABECA02E08BF1197CB9AA00C82B28B6B3111F8A0F0BDB08C15C6302C3364A3057FA9939F50116FE88674C3A8A9F3265AA7527588DB00D286288B053C30C94200F93ADE70730C12C83C28F2B7C30FD984A04C2CC08DB98D13D0B571D5C2075B8A72D22716206DD48A22F1959D9F650067DC312D00F577B8C31CC0DE2FEE0471DEE75FD5F654CE0DD612C8C0200DDF2BB0DB8D502E4E4E4FCBD9E6143107A2E90DDC0A292CA11DFB28FC63F33F09F5E21F0225F8D0B7FA93DA081B23065F83EBB851C40F0C27FBACA190B3C0098661B7A36917409E110281103B0140C3F94E2EABF7E1D4CECE0AAA3A77F3408C46DE95171823578A667C60F84A0787886654E0000B9BACA758CF41B00FB654A9A8C7B983265CAD77A1E9077D0353A47F7299999997FC703D1B1170053A64E93F2CA7AFBACFF750221B83A83D2C204E8DD9C093ABEC44029D3CFA6B000CC18577BD46190C952533F00BC6710B1000080AD60F8254BB9E017B614ECCF021400DCD3176666FAF08920662A3CC336A034080C5B0AD6FF3BE005808E910942CC6222FFAFBC00E01D748EEEF90F21EF2A00083638254BE519F7CC94CA9A46AB100241D0381A9F6B834A064FE75896D57FA1C26F5CE9A47E8D1406283DE7173623011502067CF0C39DE9421042550BC01634E702F4238CFFEDD74FFAF91BCA2063205EA1BEEED9A35005000B4A7CA11BB601A5630CFB9F048018222EC0CA105CEA42106321B5D67F11836ED1B102202D2DEDDD9469D3A69DC104D2181122793895F92F5A55B5F1C89CDC918160AEAEE7B7EC088CA54A362C308F61DFFEA970B886090710852DEE18E1D84C800F4498E161DBBDC936BCF44B1EFD02DA4FA4B6C400CC52FE154EB2C527FD9F04611B686AC95CE5C5C5256471F69F44A15B74CCEFE81CDD7320649209847E6DFCC4C726DFFF78CC98311F9B59FFEF7BF7EEFB72C78E9D7F36E6F3B2894ABF133239EC65D3B1AF0CCFEF848C89FECA5885AF4DC47DF9BB2093D55C3659C997DF153FC8A48F978DF5FB4FA3E75FA35B748CAED139BAFF1FFE702348A90EAECA0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (117,1,'Rackmountable_5U_server_2D_(64)',0x89504E470D0A1A0A0000000D494844520000004000000016080600000070BE9A340000000473424954080808087C0864880000000970485973000006EC000006EC011E7538350000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00000A294944415458478D98D94FDCD715C7C7A672DFEACA2F56E40530660960CC667618989D99616618B66137068317BCEF0EF516A771E205C771E244AEDA38765B292F952AF5A18FFD3B5AF5A1AE9BC67655B9066C93AAA7E773E10E3F204A8B7434BFF3FBDDB3DEEF39E75E5C22E282CE9E3DEB8B46632FF68E8FCF25921D33E313FBE6BABABA67060687669BDC2D2F56D2E0D0F06C4767D7CBFDFBF7CFC613C9993DA363B33DA9D44CAAB77F66746C7C36D1DEA1DF0ECC76F7F4CEF40F0C98EFBACEBCF3787C2FDC6ECF2A8AB6B53F1D1A1EF9667070F7D32BB1D66F86C70E7C1D3CFDDEDF3FBAE37B36B677CFE3E1DD637FA96A689EA96EF27C277942D1D9D65872B6BEC59F7E57E3F6CE84E31DB3A981E139B72F34D3DED9FDD4C60CF1F743A51FEFDEBD3B5153D724F7EFFF4CCE9C7D47BEF8E24B393F75416E4E4FCBB977A6647CFC80DCB8714B46C726E4DDAB3F953B1FDF95B3E7A6E4E1C34772FACC39F9ECF3FB3230342283C32372E8F051E9ECEE9563C74FCA4F2E5C92EB376ECAA7F73E53BDE7E5E1A34732B1FFA05CBE7C554E9C3A2307278FC8FBD73E9464678F9455D64A776A40921D29F9A8B140227D31C9B93C2933333F9044A74F1A5BC2323179542E5FBB29573EB825573EBC25EF5E9F96ABD76FCB7B376ECBBD9F3F9007BFFA4AA63FF95CDE9FFE58AE4DDF950F6EDF95FB0F1ECA57BFF9AD5CBF734F864646FFA1F1FE88984DEC9B366DFA74FDFAF5FFCAC8C87856DFD8220D8D6EA9AEA993FA8626A9A9A997DADA0643D5D5FAAEBE49AAAA6AF5B7516AEB1AA4AABA561A9B9AA5BC7297B8DD2D52B9AB6A1555D7D44A4D6D9DAEAFD7F535AAB7D1FCD6A97C9DEA81B0852E6C2B3AC4E3F54A57A049BC9166A9EF744B7B52DF7B7DD2ACDFBCBE8084A331E503126A8D883F105A46814070D53B9FBE835AC351696B8B3FD7C01F1333B1BB727373FFB061C306B0205959D9D2DBDB2BC96452229188A19E9E1E5174A479E8E2C58B924AA5646060408E1C39A2413468B26A1425E3D2DEDE9EA663C78E2DE38F1E3D2AFDFDFDC606CF838383525151616CB4B5B5A5896FB1582CCD8F8D8D99B5434343E6DBE4E4A4BC5D5868FC72AE1B191991BEBEBE34DFD9D929274E9C307EE1EFBE7DFB34F1752F89959889DD555050F0D740206012B079F356696A6A328A11867016839687B45F1885183B74E89034E8AE666767CBDEBD7B5705ECE4718004747474C8F1E3C7656878587272728C0DA7FEC3870F9BA4587ECF9E3D460E7B241C7F9063A39CB2C3AA0F1F2CDFD5D5653681773C637F4749C91CB11233B1BB0A0B0BBF6E6D6D3509D89AB54D9A5B3CE2F307A4457F0D79BCBAB87589570A8696F3A565650AF35AF10783CA7B8D0C300EB5860D742D85426109045BC5E7F31B1B4D4D6EA9D0F2F1FAFDE26EF6A4C98F7DCF128FAC6FC59AB2F24A2D09FDA6B6D2EBF479E53A7C75F2D9DBB6BD2656622676576565E5539FCF6712B0656BA68138BB15D460A070386CA06E79888CB28BEC12BBE3F1FA4D4679E7D5C02D0159270F8C9161D790D30922D806AE4EFDECA493B732F801CC0F1E3C28E51595862710BB0EFB90D3777CC58FEEEE6E235B5858F48A58B14BEC26011ECDA441C0D62C53CB38476D5902762B790BB353A74E69A3094A51519191FBBE1E00049D6574E0C001292D2D35E5E45CC77B1CB63C012043C0D434A5959B9B674A02B2EB2893956588AFF4101243691516169B0410B349407171F19F1B1B1BD325A03522DD3D29698BC5D3D4D7D7BF8C4FF5F699DFB0A225AABB5755552DDBB76F3775E66C6638ECE4D9C9783CAEA51032BBD3AA949797A7BBB8F00C85C311A3874447A25143EDED494D4097590742B15B58546C360B7D56AEAD2D6664AD5C5409DFF9862C72DA3BDE102B3113BB6BE7CE9DBFB009A009E234462C8C128984D90D27246942649BB5A3A3A3D2ACB585C364D9AF356889DD59C9E32084ECA0EE2CFA68666113C4028124278F1CE503D1A069BCF41C90E15C0792F0C1F2F83431316164D081AFB6048899D85D2525250FE8FCBC7CEBAD4D266060448010C240C7F2D0F9F3E7D350BE70E1829E0BEAA54C1B2110C7094BC0D5C9E33832D8B874E992A949B56F9C73AEA3749CEF1863C8F14CE99C3C79D29400092091761D01DA9167A714E5420960F3F4E9D3E91220666227015F2AF3DCF6806A3DA4F4AA20D082D81D145B3EA6B44F9B17F5C537145755573353D3E3C6124871F27CA7C1F14C534396714652D1658975A0CEF2B6F9B1BBC8524A455A02941281DA75E8C457A72E360F199E91CFCBCBB709784EECAE1D3B763C72BBDD4FEC148846DB0C74F885A8AB84061B75D4328A5893486812F4B95E0F4240D9D49D7EB744B296F18B756D793B350824AA760CA9CD783CB1687FA18E63B178FA1BFEF46A0FDAA57D271E8F2F93B34DDACAF17E49D7823DED55A6071033B183805FB6B4B4FC87979BB4073437379B4CE2946D5640DBF21087185B0253535366AE5302ECA4B35730AE9C3CF5B8720A68275ED53BB0C75875F60E3B05803F2592975F60D0C418B4EB2C3A2C8FAFB604B0C1B3CE7E830062267612F06B768197993A05323333978D2B08834E1E45240983D4A1BBB945F46C6D60EA1C97F6486B0978E220CF0405CC376FDE6C7E9DFA490CC9749EF0E845ACB3759F9B976F1A991D9110329C2D56FA8EAF2480DFFCFC02930062267697CEEFDFA70F4299D9E624654E6AFF27716AABD5CB4E402F1DAD3A6E2CDC22D1A5328A441669713C8523FAABD4D1D1A9B5D8AC3A820BA3D08C431D737A6981ECFA88D1B754929400172DD638E5ACEC77C9418C52ED55AFED4188D85D7A19F99B4D0025A0B56132AD103144A6E8AC9687682C34157BD0A00FE84C3588A0BB5A02494E9E5D6427D819CA8812E1FC402373EAA709E293E5F1C7A20D742097999565E418D9761D3DC1A90BDF2919C6277689439BE79C4D00B1BBCACBCB9F502F660A2802B66CD9628C7C5F0990007E8132F0A4316EDCB8D118728E4B8274F2E805FA384390940CB7329B144BF40A606E7902479E44581B9999597A00AB326706BB8EE049CE4ADFEDA99212C8CBCF3709206662E728FC98ECAE59B346B39AA3708A988B8A57E1CDDD1BF2F982CB797F30FDBCF0DEAFF5B80065642DC1FB57F14B6B38A17181E1D2140C860C05167FCD7360914C130D99233704E4F91F02700F8696E4022BE502CBE5B0B32D27E715B11233B183803F91E18C8C0C3D076CE3BE6CB2ECBCFF036527CF0E916D32CBE1066857683727CBF6BC00B1E34E1E083AD160AFB53446A77ED06146E6220F1A400E76F0053D3939B9E61CC12EDB75162196671482427B5842AEE0EDA23962256662670AFC0E256BD7AE95E292F2F481E67F5D6A508803D418DD3D476B193DCE75940AF0B63CE3C8260E9DC09512B00715BB0EFBC0D5F23600CA8DA4B101FCF3A65A0F6024C5AE432F8975FAC0650D79FBFF809A9ADA97C48AAFC4EECACECEBEA2179227EBD6AD7B92EA1D78A6A7BA6F931D9DAFB553BFB1A497A3657C32D9F1269E684FF30AB337A5A565F36A705E619DA69E9ED4BCEE649AD7AE6FC8F2BA4BF3BB7655FD9B5FED23868734194697E5153DF31A409A577BF37AF87AA567966F35C1E9F7E85034BDB13CA4895CC6EB25EE9FDA03FE48CCC4FE5F0E5A5A7BB9A331FF0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (118,1,'Rackmountable_5U_server_2D_(96)',0x89504E470D0A1A0A0000000D4948445200000060000000210806000000269CAEF10000000473424954080808087C086488000000097048597300000A6100000A6101FCCC4A250000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000011054944415468DED59A599055D51586AF8885A08803282083F43C77D3DDB76FCFDDB7278686866686069A796C469179922828CA204E800A3861555226D1B25279C94B7CD007ABF2A256459F1249F2925851AB40A9242BEB5BCDBE9CDEF75C0CD13CA4AB569D73F6DD7B9DB5FF35EFD31111890469C78E9D7F983D7BCE5F67CE9CF57F4BEBD6F5FCA9A767D3A555ABD6FC79E3C6CD97FE136A9D30E9ABA696895FFFAFA8635AE7373B145C1FEF883FB069F396CF7272F3E5D8B16372EAD429E95EB254CE9FBF205B1F7E580E1F3E2267CE9C9586C646195F5A96920E1C38202FBFFC8ACC9A3DC7E63FFEF8615DBF4DF99C97858B16C9891327E4E433CFC892A5BDBC376FDE22478E1C91D3A74FCB521B3B2FDBB63D22878FF0BE33A2A01ABF03070E2AFFF21B525E7EA154D6364B73DB5459BD7AB5D437B5CBDBB923E4838CBB246DC729E9F7DE253972B24CAE5EED27B3E737D9EF506DF30499BE60A94CEF5A2A9D5DCBA473E13299B170B9CC58B45C662E5A213317AF90598B574AD7CAF5B26DEFA3B2EFF1A3B265D77E99B364B5CC5D0AAD9179CBA0B5327FF95A79F6CC39397BE10D79ECE993B626DE3659F7B47D5F9202F4EF56A5E18ED6F76CF8BCA0A8549E39F5ACBCF0E26959BE72B55CBCF8966CDFB14B9E3CFA949C537066CD9E27E72F5C50809E903D7BF7CB1B6FBE298B162F5500CFC8F11327E5D0A1C7E4C28557654157B7BCF2CA3979E2C9A3B6FEB5D7DF50D057486D7DB351756D5CEA1A5AEC5A5BD7A4F7CDD2ADBFBF79F1A2ECD8B95B8E3EF5B49C3B775EE6CD5F24AFEBDA433F795C76EDDEABEFBB288BBB97C999B32FC9F1E32764C386CDF2A68EADD76B49698554D63449F3840EE9E9D960E0EE692D9527DA0AA5644D878C3BD12E4F9F2AB0FDCF59D0AB80BAF82459B1A6478E3DFBA21C7BEEB41C879E3F6374E285B372F21A3DF3E24BF2FC4BE7E58D9FBE2D6FBFF39EBCF5F62F15E857E4B9B3E78CF8CDE8E5F3F2F3777F25BFF9EDFBF2DA5B3F93D3E75E95B90B16A99C9B1E0D626DD80F1D3AF4D0881123BE1C3870E0973AF0656656D657F98525525E1E938A8A2A29D4FBCACA1A29292993D2D2A8DE574BBE5A592C56256565E5525C522A311D2B282C9668454CCACA2B6CAC3C1A336BE45A32BE4CF20A0AEDF7FC82221B4F45FC0E3F7860D1B1CA2A1BE7CA73F07DBC0B8F2B2C2AB1B1A2E2F19297572015B11AA9AE6E504F6D962ABDCE6C8CC9BC7854CADB754E7799B44CAC56A546A5AEBEDE7EAFAAAA97FA8626696C6C31AAAD6B4CDC1BC56F44ADE1D4D44BF16B54AFB28C1C39F277600CD6600EF691B163C7BE9F9E9E2E77DE7927FE20770E1E7CB5A8B844162C58208B345CCC9D3B3789962D5B26F3E7CF4F1A67FE8A15EAAAB366D9FDC2850B65DEBC79B269D3265302EB264F9E2C5D5D5DC63F48CC5DBC7871D238B464C912E3C33BB9B29EF0C2784D4D8DCC9831C3DEE7AF635E777777284FDEC51AC797B98CEDDCB9538A55916BD6AC315953AD45DEB0F72193C302DED0FAF5EB65D2A47651E0FF66182BD6600EF691B4B4B48F333232E4AEBBEE32050C1830E01F23473E2853A74E9555AB56493C1E4FA2EDDBB79B70FE38421D3C78506A6B6B4D11BC9CB9F0C9CB2F50ABAC968E8E0E696FD7B8ABD61724E6AE5CB932691C22A7346ADE8137D7471E79C436C59A61C386194F806E6A6AEA4393264D3240FD7168E3C68D2623324F9C38511ED61CB76DDB36536C7A7A86F144B1616BD90F60FBE360E6F6EFAEC8CA7B9A9B5BA57FFFFE97C118ACC11CEC237AF3456E6EAE592D3FDE72CB2D327ACC5863D8D3D363C2F9C43856E38FCF9E3D3BA502082D050505063E16C43548BC1F00FC7188F1A002F6EEDD6B63803078F0609B934AD63D7BF6C894295392C6F1C6A002006AD7AE5DB26EDD3A0527D3F6CF3A94E0AF457E3CC41F47E1FBF7EFEFA3007832B7BE210EBEFF0263F60AE6601FC9CCCCBC8495B5B4B49802A034B580DB6FBFDD3605A83E613D588A3F8EDBEDDBB7CF04C7823A3B3B65FAF4E9762536F7EBD74FF348A9AD653C48080558FE38B465CB167371C060938CC19FFB3BEEB843EEBBEF3E03306CAD967E6608FEF8F2E5CB35296EB07B1408EF69D3A669C535533233B38904062A0AF2D7A200640A7BDFEEDDBB6D2F107CE109956AAE72F8823598833D0AF88297D6D5D52526E42A580D8DF1246A8C3B6ABA21C5E3CD499497972FD535B59AE0EAFB52ED8DA9A6B62E417DC66BEAAC082009D7D7377A140FA786646A08A1424DF0C93C1B7F10CF7C0DC10E5FB0EE5574A679C017D4DE0D0D0D890959D9B9964C9C25FB8455CC993327691CADE3D658133C79C633B82F55B0F0047812BE9C953872C9CD1F87B056AC98F792E0980B4F425B7979B9BD0F9EF00F12E3E4067F1C227C41DC0306EB213CA940AB2A4214790D1EFE5A570CF8E3F001373C01DEAC759834355D8F30608DFC4E017F6451500169E99906149BC5CD274C98D087082180E18F23849F84B892E0CACAA316F750144AF11318829258C3921EA109B725F6C393E7AD5BB7DA261E78E001E389329A9B9BFB505B5B9BAD696D6D4DFA6DEDDAB5169B019250033FF81276B372726C2D499562C35F8B52C1CC1F072B7FFFF0645F4486A002580FF609056049D743507EC24DB074040912F34956FE384050B10405A004653E75FC830F3E687111EBF29587C24958FE38048FA002A86CC843F021FE03304919B07CA208601FFE38CA0B2A8077A0048C2B27374F7B832A1BC7DBFCB57800EF0F7B9F93D1ED1F9EC8490877F8827542015A0A5D429871E3C62526141597CAFDF7DF9FA8F95D3DEB086B83B13F0E9184111A8B66E32E8C108248ECF9F9F9B279F3E6A4756C0AE585F1E45D088C4BA368F8BA10337AF4681932648825BFB0B528206C0F004D22753C91917B7813AF2915B16AE6F96BC1CB25779F9083BDC08B50043FEED9BFC317ACE101F691418306FD820736E226E468A8A8D5A4575151A9140BA568B497CAA315C9A4E12641D1A8F1CACECED6A4D560F73F063534346A575EA95D709176B3D5EA6195F6DC97AAAC73775455556D73AB1354D3878CAF5A2A0503F7A9795625F1AC4AC193C2A35E65CDCDCB4BE00BD6600EF6917BEFBD77130FDA952526D0DC6061681F37F209ED1312FC71D788A179E21E8D150994E4CAF105E1C4D5CC7EB385A5302FAC1123BCF03BF1196B822771984487DC842FBC8E1E2148C471BCCD1F87083FE4013C8BB5DC8383F5019959E6FDEC236C2DF308CDFE382188F0888CC88C57E17D94E7188CC31799E101F628602B423CF4D0438909C3878FB084429C0BEB03A81458E38F038CDF88F18C302880D887BB03B45F3F23E48D6AEB6023C69531F8A8FCC6939A9E8D0709A5D118B9F01224E6071B3180730543BA3662AEDF600FFE5A9487A2FC71DE13568480575DFDF52207ACC10FEC239AC4B6F3A05AB99C7011ED840919081916E7002A556CE485583A3C01082FC0520BB41326091357E1CBC683C47C2A067F1C228E0312A09370F1043C80584B23168BC56C4EAA988C1CFEB8AB825CB98D4C18107BC8C8C8B2AE1D8BFE6F7220FBE7BD7820FBC7380969010FB8CC7BC11E05EC424005E7834419AA0214696CEDEAD2525337EEC8850F360E53BF15EFD08E6FB95A15D6E313DF1848C008C7A67C2BC75A5379006001B83F4E18CCD1921105A094B0B5004BB8F0C7E107DFB035F90585327EFC785B4778F27FC7A0F080B0B55453619D7781F274F8823598837D44EBE83D3C6862F8C84DC8D632ACA3639AD5AB71ADC3E37DEAF260EDDB6220B4B4B41A619DBDD4668405B4B54DB078CA51C4E4C9532C1157F749846154F3BD04FF464D981404BC9B64E7A82615D526533087D178195885453255F75F5D53F3FD7CBF8727842791D80349F8233007FB88969B077850B7F8DA4D18356A8C5924DA0F4BC2580EBFFBE3EE34902BF5306720CC25BE8F1F5F6A56C5067179BFBA7049BF32A4F2208EBB2E95388B55E345840BC21A3C79F6E5710777617BA048C05ADD9139F98E704158CACACE49F435189DBF96F0C13A7F1CEF66FFEC9B9EC6ED89B91C650442D0D7600EF691E1C3871FE2212B2B2B50A7665848C1729D8041C2DD217F3C781C1DBC5235555454D819381B4329FE5A420289302CAE321E6CC4E0C93DB178E8D0A1A6509413B69679617B4089C1468C42C1150CD939B9E60DAE694CD54384BD2F55120E2A00ACC11CEC2323468C388C859274DD848CAC1C6B16D02056763302D04CB18E2414B4804AED2C696EF88082B5F9EBF0361258184F2A1378B111AC0CF0900B705000B2A76AC4507ED81E001F39B06678C3130F80723504B37FC22C4AF6D792AC6FA4708CCC1D83B37F72463009232F98833D1EF044920232B2A5B8B844373B512DA12929FE628D53A64C0D8DCD7C402777F8E358BFB6DED69C911BDC380A7184E0C93CAB2D8F907BACE9A9BA9E2BA2DAE46937698938AEBF73E45B56566657774F08218C71726AA4A570D49AC35AE349694CB3180D506656B6F1A4A9E44822C8976B2C56697C833C1D5F72206B7CBEC8E92B00EC49C2EFF2C04159A213D68489E6D12095401885F5076144CC26E4D4D5D55B3262AD3B890C969AC800E19A3E119E1C61B110168B05C3D77DB2747CBF8FC24A5DF739150B2E2929B5FD074F4D7F085F3C98EE3971D6A65833AED8BF13C9CBCBFB9C897AB5AF614C1833765CA2340C4B8AB820E0FAE368DF354B2421BA58921DC2B5B64E90919A30496C61C91DEB272986254CC20BF198DFE10DF8808E1C9C2F91F4081DA91238DEE28F331F3E1805EF26543066E76269E966C5F0253FF86BC98DBCDF1FC7F383FBC74B0875CCC773DD1747B0BE86F9E728E0331EA8D19D02388E064C77F6EF5B35C222BC3F8E7507BB55978448A2EDEA4D74AD6C382C07F01EAC2FD5819A4B948EA73B3A4601AEB94B95C0F11C7F1CC370BD039ECE91057CB98E4BCB303C5C0CBF991C401EF3BB76E65656D5241400EF6B0AF82CA20F9FF576AABD9F0C9994999D2BF7DC734FA212F21B2EC60031EC1BAC4BBEBCC0851CDA74F2C9A04183AC0D67E3D77B86EB84B59264FD7197C8705B9A3ADECF3BF0241470F7DD771BA0A9BE5FBB4A67A2D74CBAC60FEF628E3B7EC703060E1C68719C44EFAF650DA086BD8F71F75F1AF0C53091D57D920463B0663F609F500035FAADB7DE7AAD0ACAD34EB8D88E50FB9E6E56F4523426159A888227A051484B4D4E10EDB4D43B3D851FC98D24863BB2DE279A1D5B1F1823E1D9696355EF89E775AA329938B9E5B32431367AEDBD41E2C4D2C91424C7B7F7C4F73AB10FBAF6529593FF3B8A85F0655E257B0839257627B33E5FF60EB6600CD60905141616FEDE7D0EC49A9C0248426892C474B3441CC5ED5DA98815E211244CF77F3E374BC8E7121DF7F0A4C4245613BB19BF5939DD492D7242F021CCF1CF5FBC136FF86FF6EF64862757CE8D5C080263F73F4C608F023EE10137C1ED98949E956FA5132E4418B999AED57D3EC41589D76C887313AA213EF29057D874581749B590EAF8DB1D98F14CE8705DAB4BC2283C4C1ED6921CC30A09E23DFB23A46070C88992D3340750A9C01779FDB584AAB0A4EFF213B1DFE5020C059E7837D882B10B9F8AFDA724E10F89875402FC78DB6DB7FDB3B0A4C2EA6040418BFEA7472C838DF9E310DA4601243F271084D6870CB9DB36CC1C36112414E48E8EFDDF98EF1265300993875000EF0350C0F2E5610D9B0DFBACCA6FF0450100055F2C18058C1A35CA0C10A0C3F68F8185ED9FEAC74FC2C84F9FA2E1E75B30661E98833DDF847F8D466884147C8E77AF96466BAD62510DD9C6FC6FB40846C512F6FDD6FDC71A3C0186CD013A6B5000C91D4B0F4BC2562DE93C7FDC85184222CF58A6FB672E14C091341EC0982F0F5E12F60F0480881C244E1A43F71F7B3C530511AB6998F0F4B0FD536C84EDDF7DE684DC877DE6D3540E1830E0EF600CD6E003F69161C386758F1933E65305E6D3FEFDFB7F5A5454F4F59225CBFEA235ECB79327B75FE9EC9C71F9C7A0F6F6295762B1D877DAD57ED7D131EDDB1F8394E7B7EA1157B52BBF326D5AE795193366FE60528FB8D2DADAF68DF2BF02DF1F8327A4B25E1E3D7AF4878AF1C78AF5C763C78EFD44B15FFA6FBBDD2A17AC31E7CC0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (119,1,'Rackmountable_5U_server_3D_(128)',0x89504E470D0A1A0A0000000D49484452000000800000003508060000008939E30D0000000473424954080808087C086488000000097048597300000DD700000DD70142289B780000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00001A4F4944415478DAE59D7970D55596C7A3222A20FB224B76B29004B24112028404026481B0EF611781B08320CA22E3D2D20AE2328AA8B8E04A0B386ACF38E5D454DB53D57F4D9755A3E54C4D95DDCEFC3155FED7D33ADD6D8FCA99F3B92FE7E597C7EFFE0292086353F5ADF75EEE7DF7DC7BCEF79E73EEF27B248948D2D586FECB56EC52FC42F18D427E84F84FC5338A2645CF6B41EF4EF7574368B7D8BF6AC531C5BF2BA4AB71C30D375C4BF85AF181628722FB2F8200BD7BF7EEAF58AE7843F13B85DC7AEBADD72C7AF5EAF543E233C5138A3AC5CD3F1A020C19326494628FE29F14DF2AE44A3078F0E06B1683060DEA2CFC51F173458B22EDFF1501D2D2D26E544C553CA6F84C21571BA9A9A9D72C5252522E05FFAA38AA98AAE87ECD11202F2F6FA062A5E2678ADF2BA4238C1A35EA9A456E6EEE358B9C9C9C2F156F2BD62B865F35029496961628F6297EA5F84E215D899292926B16C5C5C55713FFA278483149D1ADCB083071E2C4EE8AE98A27159F2BE45AC7840913AE5954565676057EA738A358A51872C504983E7DFA60C51AC539C5570A0962DAB4693F2AD4D6D65EB3983A75EAE5E282E29F157FA528575C7F5904D8B469D31B3B76EC941D3B3B193BFEF2B06DDB76D9BA75DB5585F6E10F974580EDDBB7FF72FEC22532322B5B1A1B674973F30A993469B28C2BAB70EFE7CE9D2F39B979326FFE02F7B9B4749CFB9C9333AA4354564E94152B56C9BC79F335E9CA97C58B97C8CA95ABA4B0B058993BCD95D5D7376AB25820CB962DD7CF2BA560F418A9AB6F90155A6F6AED34292C2A767F5FB274A9E4E517C8A2C58B5D3FC61416691BB5EEFDF4E93324BF60B42C5FDE2C8B97C4EAE5E48E8A405E7B685FA7D7CF7598BF70A92C50F07E7BD544395A365AD6D7D448E986FD9273F79352D9BC458E1D2F91132747CBC2250DF1EF8191D99A5C8E296D43610C79718C8DA1A83DF28BC6496DDD2CA9AEAD77AFC5E513A4A0785C1B4A40998C6EC5C4EA69D2BCFA7687D5B76F94CAC953654C69B9E4A81E77EDDA75E1B208A05FF870FEC265CE088F3DF6B8BCFBEE7B72DFFD0FC8CE9DBBDDFB175F7C4966D435C8A9532FB8CF7BF6DE2565E59517A362C2453870E0A09C3FFFB63CF5D4D34AA085F2DA6BAFC95B6F9D95B5EBD6CB43477EAA65E7E5E1471E51A32E953367CE382C6F5E29C71E7DD47DEFFE071E9496962DEEFDCBA74FAB6116C9ABAFBE2AEFBCF38E6CD9B24D1E7AE888EBD3B163C764997EEFECD9738AB3B278E9F28BFA521E816C2540D594460766F2A696CDEEFDE98214F9AFE42439529227438E9E97A4F7BF90AC5D8FC8175FDCE2D4B7F68E49F1EF81495367C8AA8DDB64D5A6ED0EAB41CB0E873560F34E596BD8B24BD681ADBBE4E0030FCBF1A74ECAD1274F38ECBFFF88ACDF7EA7DCB17D8FC3861D60AFC3C69D7BE5D04F1E91071F7D424E9C7A599E7AEE25D9B1EFA0B4ECDE2753EA1A65EFDEBB2E8F007BF6ECF970E9F2D5324A09705C098012EF3D7C9FBAF1DD72EEDC7979E185177546CE94E79F3FE5CA76EDDE23FBEEDEEFCA9E39F9AC34CD9EAFC679C5956D6AD92A0F3CF8902B3B76ECB8EC3F70488DF5AE9C38F18CCC5FB0585E7FFD0D39FFF6DBB261638B1C39F2B02B3B7AF4988C9F507D49A86F688ACB6AD9BC557EA204E0FD23DA46F38AD5F2E6999FC99B6F9E512FB05C8975D4955167C3C6CD8E78AF28799AE62C70843C7BEE9CDCB3FFA06B172F1046808DD32AE5BEBA4259515B25852DB324E770838C6D9E194A8089D5F5D2BC6AAD1C7FFA5979ECE9E7E4B113CFC9E386679E9727C0C9530E4F82675F90BF6EC56B6F9D97BFF9F9FBF2F67B7F27EFBEFF81BCF2E65979FAF997E46935F089563CF3C2E9185E3C2DA75E7943FEF6837F940F7EF14B79EFEFFF419E3FFDBA3CFBF2ABB248C7BD6FDFBE0B11E7304969BD7BF7FEB457AF5E9F76EBD6ED53FDFC69FFFEFDBF9ABF608964646649838680D5ABD73AF75CA2AE7EF59AB5EA7A97495676AE1A70A1FB5C5151A9B3A6D2BD5FB868B1531E75F8CC776AA6D4BAF7B39A66CBA4AA6AF77ECE9C795A2F5F8DB4525669FB79F9B8F94659B3769DCC50779FA533302BBB63D0C69225CB64CD9A75523AB65CFB39DDBD9F39B349093C5AC3C66A6D7F8D6B7FFA8C7A2D5BABA46994823145B24ADF37AB97C81D55E0C21ADFABAE99EA64A7678C948A09531DA6D7CD543DCC91727DBF797A891C6FCA56029449EECE62497D3C5B46AF2C974387F3E4A70FE7A8DB9F24E595531CC65554CBE49A5A1DCFCC3634CC94BA8659096872A8779815475DA3A1E96234C45EEB03983D77812C59B64266CD9E1BFFDBA4EAA9EAB9775D50BBFE5AF189DAF813B5F5277DFAF4F918DB27A9B1DF607366D8B06172CB2DB7C44FAFD233325D06BABCB93934FBAFAD8D8198EB1092AD4E9912434DCD1487EAEA1A55702BAAABE3983D7BB62C503265668ED4F773A4AEAEBEB58D5A2F4C7E1CD3DA308D7E0631AD0D3366D4B9F6915751315EC68E1DA7649C1BE877EDF7436D00217D655CC8CCD03192FF3436CEEC3C79B5E1BA415EA98E8FFD0AB32B36C6D6D81CDB270D1D3AF4C3828202193E7CB8F4E8D1235EF1B6A1C3A56FDFBE9A456ED5A4AC5E93AE15DAF179A1B8E38E3BD44DEEF09683BBEEBA0B5724B366CDD2AC749B766E817B5DB26489266ACBDDFB94D434254A8D4C9E3C59366CD8E0EAF8A02B1559B56A95B7BC5989BB65CB164D3057CAC2850B5D7B73E6CC719F176BD278FBEDB73BD903060C104D7A1DD919A3AFBDB56BD7BAF6A2FAC418D00372E81F72D00DAFC8BDF3CE3B252D3D43CACBCB958475AE2CAABDCD9B37CBBA75EBBCE5E80D793616FA377F3E9E6C8D93C92BE4CECCCC8CDB151B636B6C8EED93F4C3476104183478887062B77EFD7A470084CD9C3933141B376ED44463AFB71C1C3A74480E1F3EECB634792D2A2A720AE1FDBDF7DEEB149C9C922AD9D9D9CE189A88B6F31289804C28D5578E8268DB9465B2F7EFDF2F77DF7DB71BCF525D45DC7CF3CDCE581804A5F9D6E2F40F1247ADD70F1C38D06E8C63C78E95DDBB773B993B75190C0953D3D2243939D9E904C244B5A7B99833AEAF1C632307B2D39EC93E78F0A093C904993B779E931746006C9F949292F2D9E8D1A3A5ACAC4CDDF59478C5FEFD07C8A041837529B6CCB92A3AE2332E1D4078535393B70E83892240CC03A4BA533F420D04C073F8DAB3D9E62BE7BB6104E015D03E244021CC7CC6CE8CF4B5475DBE47B8F2D5C1D88904B0316210DE43008DBF4E572D2D2DB268D1226F7B7800DAF495D397300204C7481840A76657C689ADB139B64F4A4D4DFD0F3ECC9D3B57AAAAAAE215FBF5EB1F670A7FC7BDF83A620A8E1A0CDFA70EDB9628822D510647E7512E332C352D5D6EBAE9261933668CAB1FE57530D6A5781D6639331BB2100B99EDC8C400BC721ECF7903DBC7843B3C41184CD910CB5787B6A9336EDC3847F8F1E3C73BA222873EC43C40BA5C7FFDF56E0230A918A3AFBDD5AB573B6FE52B07100BDDD12FBC0CA48358364608C031B3D9155B626B6C8EED21C0E77CA0F3C4A620017247E5494646868BDB9732DB18A4AF0EEDD3D928836568E6DDAF5F3F77BE0EFB71F1BEBA280FE544B5873CE4FACA091543870E93DB6EBBCD791D14E8AB8BD21823848A0A85B8DFA83E4100C6A7F1D7919838EDAB4B5947ED110AA32667A54EB4810307C6ED8A8DD1492B013E7704E0640977C1EC0C12202B2B4767C7D850945C114A0368FB7B6A5A86CE8CE2388A8B4BDAA1280A81EF25A2D0839C9C5C1D63763B59616D1787205E5652EAE0EB7371423B69E999EDEA167D4F99972A2F3FBF806C3F6E576C8CADB1B92380C681CF9909B8A24402B0054B653273B2CCAE02AE91D9959797EFE231CCC7AB74953C6631F2C8B02B2B27384F3169D2A4C88CFC4A8177412684638C24D78D8D8D5D2AD3926B563A4102606B6C8EEDF100BF2531E00BC4E5F639C00897691237F8D2C891234341CC6370858585DE3AC433AB43ACC510C4283A48BC22C6A21CDC23320901AC557DEDE1F668C3574E9F91875C5C21E182586F3900CA278C107270DD8C9D7ABEF65809DD73CF3DDE72C02A0199C8E13D13C7E231F91146678389E535FA8480513A234440165F7945458593C704B27C00D926D312F46008609CD81A9B63FB3801582B073D405F25404646A6DBF4E14B243551B1888E44C56C064B1D924A964B18CFBE07689F0318362AE80BCAA2F3ACA9C3004148267DE5C125129F133364721A64303B58E958C2E66BCFBC0686F4D5B159CE1879C540C8E13D6326698500DC0CA65F1897A59AAF3D8809917CE5362E880C0112C74892BD54C73660C0C0761E00FDC609A06EE0B730958131E382042009246960202423511D2119A1C3BE72061B46008C4898A153C84336C64331B487E2C300CB69C7570EE87322016C1F807266184B5DFAC13851B6AF2D5BEA42645F1D3694120900A9303C5ECF3C808D91A49971F8DA63FCB692F101AF944800FE864C88CD2A6040C00360636C8DCDB17D3B02E07E83042091B8EEBAEBDCDF691C23F980F270CBBE720B01B87AE23B2E951080715865F09A9D9DE364F7ECD9D30DCE76D3C280DB4339BE7280B151222E0FC2219357327AC0985901B0F444318CC1174F1903FD273F89DA9D24EE9A1CDB5C327918C408C006147FE33B51BB8FB4876C5F1DD33B7AA51E321997C9642B3E1802B0653B02A8CBFD8DB2FF0F74989DBF2001D89B275B64E380CD2012A58B51E5804B21B108FE2D88AAAAC96E9F9AD7B072304C730E62226D40126609B13A0C0CCE62B90F281CA5F8CAE92FDBA4259A55930C724E40FF264F6EDB51445180F1A1E4E93366C4F7F08367112C236D4F04234002C0B983BD07C9C9A92E7B2756733EC2F904F94AA24CE4CD5059C89C1238A708CAE3CE037A60F298CC36790DEE157D0693406C8CADD5E67FECD1A3C7E79C06666812F7DFCCB87604E8DBCF5DF4C03D3343A3580830D6F70186C63D1242B2D403102A90173C544ADC028DBADA153CB84281614031CC3CDE6370DB0A466E1089794CD8DF0C61046B686870E03DB3997172C906B70F39AD4D9F4C5F3F7CF24CA6BD471E040A2E03B131B6C6E6D81E02A4281BBFA4436C510609806BB44D0694C62E5318988910C5570EEC2C801D37123E941FDC0924B68E484E713B64CC005C5B679C05101F191BE1C00C6F59F9629D098C91D86D9B3DBE4BA6C8A2DF511751ED2C80D94B5D8C47DBC843E91884032FE2347D61FC51ED514EE8F495D33EF22CCC91DB407C5B053069D16D9000D8187DA8CD7F8FED21407A4949C9576104B855D90273311631D7176B49A648B8702DBE3A742EEA2C00E5E01ED97964265366DBB86180207CC7574EAC8E3A0B80088C99584CFF511C64F1793812380C1CE50913C7183C0BA0CC4E3C398EB55351FAEA6B0F02D8C9A9EF3430EA2C00225087A56E2201B039B6870059CA86FFA122EBD32001060E1AE43A08A3E90875C2604B3C6689AF4E478741B4919292E6E215C660F9447BBEEC178F439BBE725B75F80800A16387413D9D42F01A8C91F761B031D2AEAF4EE2188304C063C53C40BA4B72498099B94C305F7B780F88EE2BC7F0E8CE470023799000B60781CDB13D04C8D50F7FD23F5E5077F89B2001468C18E10E1248CAE88C2F8E23C498E8AB8372E92CB189B0C22B6B795B2530FBD827678DCC0C81BD28FB4AD6C8841D6637C010C8B41080B7E29507411927EB634867D9732298088C91B1FAEA6060EAD8E927B39CBFF11DE4315E08C0CA8A83368C8FA7F2B587D76149E72B077825DA2554B00FC11821B725C0C80D12001B636B6C8EED21004FF97CAD7FFCB32AFF6490005C0A657D8C32E9A82FF120D1C0C0BEAC1D85D0C1B0438B600264AB0E7616CDE30433E820E80F6B5D5F3960D6617C5F39174FD82B67BD4E4E804C5F5D662CCAA69EAF0E06C3D547F589F30E74CAC61324C7CBF9EA52D6517B101B52FBCA21769000D8185B63736C0F010AD5557DA3B3ED4FDDBA753B128F154A809159399A6CB42DEB2606617FAF8A816CDAC09226087715CCC0D53087D8D5B01A0D2F0EFAB7B4F474357E999495574879451BB8BA15C4F8F1951781659C61C284890E95AD98A07D8D61626BFF27B9FE176A18CACEC9F1B61D6CD321D06622DA64B4475C5E2B52D503448DE54AE5C564B68103A13E81D08E8DB1B5DAFC7FB13D0428D519F7ADBAC36FBA77EFFE3EEEC908903932CBB913662571D4E76A7145B89A28776CEE088FC06C67F96765B82BDC2FF7F3C9379865D4E98C831FFA4D5BD67F5BB2327388EB1C40E149B883D059874D78361B1BF2182B218B95486666961B23E187A56767C8B3BD0EC685A7E233324922D951EDDBEA01B02D36C6D6D81CDB438032750717A8A86BC42F8304183122C5B9777200CA49DCC2802BB5CB1EBE3AC4F8B0AD609239F20B14959D93EB9240DB55E37A98EFB16FE21E44F195737E11761600D13006B271D91C7AF14ADF3BEB3028B8158C9B471EFA83709CAF9077D02FC258671C06256E05930B2013DB9110F70B10001BD3176C8EEDF9B9968964AB7406E50709C0050DD6E428A7AB0F8398851C0629439D616DCF3DEA82C9A55E970A3B0C421E86679B14792833EA620575EC4690AF8E1DFC841D06B14C269E732B181DDBEAC832F8EF7BEB29EA300842069340E462636C8DCDB13D04A821E9222325E3E7BA526CBDD8571B8B3DCB4F08B8949B299772A70EE55017A3F0773B0EC675F1A818B2D977B07B015184EAE88611E58904202BE7BBCC68FACBDE385BB1768DAB2342757439D6C6C80A842D74888A3C5B2EF3AC05636447D3563FBEF698A9B4D391DE8D004CAC1CCD69486691655BD346006C8B8DD139E3C5F610A00E36F005941124407E41A1630D5FB2E54DD4A54F73AD61B0E3D4A86B63DC07B064C5AE6E5F89729871F40963DB3671708B16A57118843C14C78C89BA7F6704F095D35FFA645BD878CFC4A7AA8D00005241425F7BA633EB6B18D03B6126F61CC694F81982C9C3D0410260636CDDEA01EA92745D388B4A749EDBA3ACC3E31E4067646206DE95183E3C5913C15C1717633F80D0FEAA13873631B4FD40C3C53F28D1766D8D873E12C12AC350307AB48BA5F1AB55B4595A1A90D38AD6EB6BA5AAB4D2B189EDB66E778F6BDFB6A1ACAC3C8E71EA11D8EC0A5EE78A5F8D0B9169F24265AABC4B9199AB1EDC36F8B02D36C6D6D81CDBF3EB5DAFB22E251E2612807B73C4B0CECA567DB00491A758265757BB2406D677F595305C25EB717209664D578E916417991C07E3FA89EDCCD0AE948937E2C969F30046006C8DCDD5F6A793323232FE8D2C1F57843B0C1200B6E24A6D15E0CBB82DE98155BE3AA674B2739696181D23F39EE4911CA05CBD0049207193254D547BF48758E62BC73B588284A2C9E083D7A50805AC3E782E801CA1A36B6F76C52CEA9A9A5D08C17BB1CC240410826CE711C58F484E75FA6515431F68D7D71EFD4117BE723CA5EDF9D30EF9002B2EF21C64B2FCE5C1902001B031B6C6A6D8DE118093250CC155657E54D11D1BF6E9E3E2150DB30AE8E80A36496254D286C182FBE3F6C44BF021063638BA77BFC9ED1AD27914E6DB57B06DD28EAE4BD196EFBA14DE0D021037216654C66D4960D4CAC49E7DB009815EED6F2468C4EB11C9694EBFF48BBC242A7146671D25DF944332CE3212C7883C1E0D3302605B6C8CADE95B3B02D0087BF0410264E7E4394691CDDAE07DEE8604CA9EF50B839DCE25120062A17892BEC9D535EE748E25172E1903F90E7B2000670B6C22455D974A24805D97A24F841A08409F58B2D15E944BC588E8C957CEAC4E2400B3137996991B011823FB2710BF239D9907F1E93D910036C69817686A47006C4CFD3801D4953802E06A38A0B8F1C61BE304E0916ADC061B177621D277D8634797BE72BB536777E19851B87DD6D5BC7767F1EA963008C07D461D8512366C5511755D0AA3D815735603C1EB52F668188A613FC0DA8BBA6216754DCD968196BF845D4133024074F20F08E06BCFBCA63D591406663913C576002D9731996C0D1B01B02D36660CD81CDB3B02E0FE5014A7624102F0DC3CD92A59A95D5DF25DE7E2BA12F7CFE27FAB0A9E1354B9E48EEB54ECFF275E1533E4E68E92D4D4B4F815345C9CEFC79218286EDEF7234AB875C208C6B0E551229881DC4364DF1D853435CD767FB7C7D913C123DD5CC36A77B6D17A0185330FAE6A51C73E07C706389F484DCB8C9D53A84CF4451EE093894E99C1BC26CAB47316AE80E1E1EC73A24C96D6762104DB62636C8DCDE304B058C5ACE159B9D8D5A13EBA4C2A8EEFA54F0B79EE1E831ADAAE5CD5B543E29D3860EBF0E0F525367EC66BAEC1E91C83E61EDC947646BDF8F9F7E073FF182608FA92B8660EF681EC7896CE1ADCFF7C1D63BDF6C5FDB640076D868D2F718C61E373DE53E5648ECC76AF605A82BC449957AA533C074B4D2300B6C59ED8FA220F802BC175E0EE8D00593979ED9E658F4AB88875B1E7D1C3CB691B57451CC45551DF9239BBC14378183870900B27C4E4A8B377623BDFF595238381926BD86F18D8EF0350863CE4B0C94508420776B52A0CE414F43F2AE43026FB7D00FAC69859A9F01D08EE1E0E4DCF74E186FC034F17F51B077C97D9EA2BB7875E916B378C918D8E294347FCA8961100DBD2276C1DF7009999991FF3C17EBCC1AE85711F60547EA173195DF92C3B8917EB5506C12F67F4EA75AB1B08CB14668DEFCE1FB218BCAF9C9960F7E56CB5117C761E83107FC90188C576E9C5D77F5B0530B37C75ECF1704B02E9879D025246CE919296EEF40B0191893EA27E9300BDFACA6D8CE881196D63449FC84446F05A38B6C5C6D81A9B637B7EE0F9577C201B0F1260E0A0C132A6A8ECB29E658F7ABAB6A367D92D6BE5D6AA3DA718F5642F33B9A3AD605B220509107C3208A34080FCFC7C27AFA32517F2A20EBCECF1F04402D832102FC48D207B300499510750767E12F5BB0BD82D9100C1A5350420F30F1280EF60736C9F949C9CFCBEADF3E930B764A93C74D870292A1DEF0CC2860333AE331ED7C63D4124984D78A1F376958C01D3493671D8048A22945DD18A3A9D8354289841238F786F3F1B0321CD03E022B98C4A7BB8D2EF7BE065279E842F64DB8F4ED8328E30620460438971461D405DCAEF2E4062C6413EC12B9B5DB611C418595AB331D67A1DCCD9183B61736C9FA4EEE1242E90C670F72C4FA83C529395A2D24A77260F831808F1AA2B9F6567C7CEFE5F00DC63D4716FF02760A29413F5BB0628283D3DDDEDAAF1F3EDCCF028427574E065CB36DFAF88B0B44D4DCF70B39407523ADA7CB2DF24883A40334FE62BE7C20B975D6CE9898D9910D81CDB7321A4FF8001037EAD1F3EEAD9B3E747BA26FE4867FD17DB77ECF866534BCBD7EA3EBFD54CF4078166F6DF55548CFF4E65FE20D0D9F09D7A850B9AE47E372304759D0C64D6D7377C1B51E742674327D2059D747F563B7F8C6DB131B6C6E6D8FEFF00945FB2EDE863C6720000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (120,1,'Rackmountable_5U_server_3D_(64)',0x89504E470D0A1A0A0000000D49484452000000400000001A0806000000077C5A4F0000000473424954080808087C0864880000000970485973000006EC000006EC011E7538350000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00000A25494441545885C598494C9CD911C7DBB6AC4856A4C4B6BCC41E30C61868308BA101B32FDDF4C60E0D6633D02CC6EC3BC6D8607B8C9744B9640E934BB6C9E498E49A5B72987B0E8972893489A5643489CF8912C5814AFDDEC7EBF9DAF17862CB9A20FDD55FBDAFEABDAA7AFFAAF73E3C22E27913E8DF414599E281E2D70AF912F154F15D459BE2AB6F1A8389E375948F1E3DFAB563C78EF51C3F7EFC03C53385BC0CAAF3D6A06B7E11FEA5F8A5625D91F7D613909999997DF1E2C555C5AFF4F9B9422C74EC4B414646C6EBE0CF8AEF29626969695F7FED04442291AF949797872A2A2ADED3DF8F15F22A5CB972E5ADA1ACACEC6DE3B9E2239DFBB6A248CBE5C0E726606C6CB2666C7CE2693C3EF67C243E2AFF2F0C8FC45F89BEFE01E9EBEB7F33F40FFC637864E4772F4DC0ECECFCAAAFB45CEEDF7FD738F2E8D163199FB82EABAB6B52545C22978B7CE22B2993C2CBC552EC2B95F5F59BAA1797478F1FCBB56BC3B2B5B52D9337A6647A7AC63C0F0E0EC9CECE4333B6BCBC2277B6B6CCBC4F9E3C91CAAA1A33A79D97F998B7B0A84CDA3A7AA4B92D263FC94D91D6AE2139BBF3A1FCE6B7C7A4B9BD516A1A9AA43A109168AC4F9A62FDD2DC0D06A4A57B505A7B06656C6641966E6D496F7C42DAFB86A4A37F583122ABB7EFCAB7DF7B5FFAE2D7759EAEBDA4049C3A75AAEFC89123EFA7A6A67E54565EADCEDF950175FEDD073B32341C9785A56559D200AE0D0FCB839D47D23F30A4C16CCBDAFA868EC5E5C937BF25039A80EDED7B925F502C798A7C17E2F171999D5B908D8D4DA3F7F0E123DD8D41D9D8BC2D333A1E1F9D90BB77EF4B38DA22F9853E0904A3D2108CC86CB0406A3B4AC43B53283FFA71AAD405AAA5B4BC4E0686E27263665E2615FC4E69D053B38AB94559BDB9296BBACEECE28A4CCF2FC9CC3E1697D7E5E6E696CC2DACC8E0D0C89E96C2778899D83DE9E9E93FA7DB1E387060B7A0B0488635D0D6D6568946A3065D5D5DD2DBDB9B90C1ECECACF4F7F7EBCE5F93898909A9ABF74B47478719C3D6C2CEE5960707078DDED0D09026272EE170583A3B3BA5B9B93901C6DDF2C0C080D1B7360B0B0B52555D63D677EBE127FE5A199F262727656464C4CC81AFE1481309784ECCC4EEC9CACAFAFDE5CB97CDF97A362545DADBDBCD224C06589480AD0C36373725168B196C6F6F4B95529A396EDCB891A4B7BABA9A24CFCFCF1B1BD6B877EF9E5CBF7E5D0A0A0A4C42DC7ACBCBCB496304811DCF1B1B1B66DECCAC6CE31B8159BDF1F17113A49599637171D18CB3E6FAFABAF87C3E1260FC25768FD7EBFD543BBF49404A6A1A0AD2DDA375D8D2222D8AB6B636B350CBBEDCA23B393A3666326CC74A4BCBCC71C542ECA6C5CCCC4C923CA676B0A0BBBB5BCBA0CF8C6187B3AC63811E3B696574F181204804F67979F9120C06A5477DB57A3CB3DBEEB9A6A7A7CD3AD8F29B93936B62256662F76826FEDAD8D8680653CF9DD7801CBA36353529A0528B8BA24EC0CEA24CD8659C8101619D105B801E40C73EBB65E620C15D1A4C4D6DAD3436068D4316AC6F9EA34D06C876EE360D6440CBA8A4EC8A34E95C6E3BC7DFE6841D727B7B47C23EA6BEE6E45E32B11233B17B8A8B8B9FF9FD7E2701A9E7A4561DA2B66CDD923976D25DCB50D05D028140A31416161A3B27710E281DB74C89583BCA8879757D9344B71EE304626558830DFD636D6DCD9448B637C78CB3CB560FA6A06365126D4B00462D2D2D193F89959889DD535454F48CA0194CBFE0DCBCDC8E020CDD3293B2D8D5AB57CD82B575F572F2E449435D1A8F05766E99FA84CA048CF3D4AF362253026E3DDB4BAC4C62E94BAC8D0DB59D7B294FEAEAEA8C6CF56CBF78D107FC84C5FCDA12206662F7E4E6E6FEACBABA7ABF07A4EA6E06C40F34437E7F40024A156A8D67BFBFD1BC0B8542466ED471BA784949896141281496A0BE0BED231C8E98318B70249A78C769026DCB94CAB5B575D2D0E097063F70D6641D7CE119BADA5FD6A40FF97C256AD3906CA73E380824E933C633EB5DBC9869622566628701DFAFA9A93183A7BE7126D1A509CC1E51EC9695C19D3B77126CB875EB963992689EEC54C03AAE80CA6ED9328BF9E9E630064A32E6D6A3744CD0FB32F3DA5300FAC340AF96000D2F680274F460A57B2E02B62540A9700AE55E727A0031133B09F8810A7F63F09D94545393A3A3A38900A18D3DBE2CA843DB8DA1604545A5F972E35873D38FC5DD32EF71923E821DC93D7DFAB4A1B47B7E12678301046AFB00C9C0362323D304C9B3D5A31CED916941C26C39F19B95ED3509A8AAAAFA3BB17B74077EA8F5F04706CFE9291031340DFFCF40BFBCBC523B72AB84C25143738BC82B10D52EDDDED1692E510EED430934063F1F94588726AEB2B2CAACEFB6FB225B4E9E0B172ED81EF094D839063FD066F26F73117A27D5D43E9973EAABC15091E665654063A1ABC20E9E098012600742AE1EC04EBA6576872314B033C8A5A5A5663DA7E738989A9A727AD1BECC2EDB86CB2D706E6E4EBCDACC60062569F56024735B9935F18F52639C12F4E6E498041033B17BF426F6A13D0661005D99CB83FB66B6B2B29224DB04402BA8595B5B2F7AAF36B5F6AA9B20F3DA0B903D11CE9F3F6F9C73EBD1037867654A9224A04730049E95E5354972DF5AF185A4BBE7A20CB1C55FCA27332B2B710C12BB273F3FFFA74C641290966EBA6A50A9E5A64E48BB79320DC349942C2FAF30BFC1E04BEC9268E9BC0FE8C587CB0F97138E50E78409244E1ADEFB034EE7774E21671DE682F65CC02A2AAACC7A6E3BC72698B0B3FAC60705EBD912206662A7097E6A1370E66C8AD4D7D79B8CD98ECF85024ABA4F01E80B256D097475C5F46A9A6776D7FD71025DDD32F3303760676004F70EECDCF3A3C7316965768E460913A03F483B9F6EC660A1D58321E8BA7DE7FE0F4B588312E002651340ECDC043FB157E194736926432FD2E8C512C079FBE5856E8736B33367CE2475647B61A22EAD4CCDE320B62487049C3871E2BF4A80F1174B80FA678C20281F12A09D3CA9EC5EF6E186EF94862D1F3EA2EC5598D83DDABCFE4416F573D894803F1034D47568EA50877BF567140EEBEE346B86F5B4D02CA35B57DF209555D53ADEA2948B1804F59B3EAA777173390A3AD04F516367E5A0EA4165E684BEFEFD0B0B73BACB093912B5A753C4CCC1C9838F9487B5C3574E9F44790643C6D7C4454CEDD234466225666287011F93A143870E99047043225B5C302CA0905BA609B1B33080B31D99FFC1990F11D7C7091977CBAC634B879D63B7B2B3B34D5374CFCF4EA26F65FCC10686C10698C44EDA2F3EABC7050B3D2B730A5846E02FB6D95EAF89155F889D26F80B5E1E3C78502EE517F18D6C28F6AA6F0128CA422C4EA727D00CAD6512E2FE68A25671CACA38801DEB414D9CE3DFE804F8B252B1B24D9CA538654009F04F59F7A58D3AA724DDBEE29F2D4DEC7CBE52132BEB11BB476BFE81EEC227870F1FFE4B6757CF3FF55EBFA7CABBDA8412D00C26C91AE8AE069690956ABBDA04F7B4CBAADC94402CD6BDAB9FBF09593F4D0DDC3AC5C5BEBDA6A6965D60C73A3ABA76DBDA3ED36B6D6DDBEDEEEE49C85A1EBB7AFBDCADA9A9DDEBEC8CB9E66BDEEDE9E94DC87AE1DAEBEDEDDBE3D742CB893BCF1F885963DFF90F552C3C46C01C16880000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (121,1,'Rackmountable_5U_server_3D_(96)',0x89504E470D0A1A0A0000000D49484452000000600000002808060000000193FF390000000473424954080808087C086488000000097048597300000A6100000A6101FCCC4A250000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000011FD494441546881CD9B696C95D799C79D4D2424010281103010EFCBF5BEEFBEDE30C62C26312698C536E005DB40D8211060D2044813B624ECB424CA84341D753448953A6AA56A34ADAA56D5CC874ACD17A4F9D0569A994F559799366CCF3CBF639FEBD7E79E4B430604487FBDBEE79EF39CE7FC9FED9CF35EE24424EE7E42FF85147B143F53DC52C8438CBF2A7EA8D8A248B9DFDC187EEE03E14F3CF9E4938D4F3DF5D429C57F28C4857EFFD062C28409415C539C54CCD7754D78680D307BF6EC693366CC583D7DFAF4EF2AFEA0907B8DE79F7FFE8160DAB469167F565CD5B6FEA953A7CE79E00678E9A597D293929276262424FCABE2A6421E36A88EF713BF521CD579AAC3E1F0E3F7DD004C92979717CECDCD3DAEB8969393235F17D9D9D90F04595959F70BBF577C27140AADD5F5CDB8670650D2A7949797AFACA8A8B8A2F8BD42EE07748E8716656565778BDB8A5F280E9694941469ED78E4AE0CB07CF9F2BCA54B97EE6B6D6DFDC9C2850B6F28E44E686969792058B060C1438BE6E6E608F4F37F2B4F57162F5EDCADDC4EFF9B06D8BE7DC78DA56DCBA475D1E2AF87D6078B45AAC3FAF57DD2D7B751BABB7BA4BF7F5036F60DC860EF80F40E0CC9FAC1CD32B071A30C0DF74BFFC0A0F4F58F205CDF24B5F710F54D0BA4AEB1D93CF9BC60E122191C1CFCFEDF34C0A6CD5BAE676466C97BEF1D9393274F4A77CF3AB978E992ECD8B1530E1F3E2267CE9C91705D83141416C7C4C18387E4FCF9F3B2BCE3553973F6ACBCFDF66133FEE2C54BB2666DB71C3F7E5C4E9C38293DEBD61BD95BB76E93C3478ECAE9D3A7A5A767BDE9B773E7EEC87CEDEDCB55DE0595FB772ABF643C8AC6232B2B47CA2A1BA4A179892E78486AEA5BE56AFA0BF2CBA4A72561EF6989FBC17FC9373F2830CBEDE8AC37DF83DAA6167965ED066937E895E55DA04F3ABA41BFACE80103D235B059F67DE388BC7DEC94EC7FEB1DE9DC3068B0AA77C86075DFB0C1A9B317E5DCE54FE41BDF3C216B754C4373AB6CDEBCF907510660DFAE78C9626868D3F5AC9C0279FF830FE5DCB9F3D2ABDE71E5B3CF64CFDEFDF2EEBBC7E4F2E58FA4BD63A57CF4D1C7F2CE3BEFCA1B070EC9A757AEC8DAAE7572FEC2053979EA7D79F3CDB7E4DBDFBE2C9DABBB0C99478EBE23BB76EF958F3EFE580DBA41CA2BC331D1B3AE4FAE5CF94CF6BEBE5F9DE0B899AFB3B34B3EF9E4EFE5ADB78FC8BEFD07CCF75D3DBD7241659F38794AB6BCB6DDE8B869CB36C92F285103D41B030C0F6F32E41E5A9027C75A42923BDC22F3CED6C97BEF678D334075B845360C0C6BFB1979EF83B3720C7C784E8E83D3E7E4C4E9F372E2CC7939A9F8F0C2B7E493EFFC837CFE8FFF249F7EF77BF2FEB98BF2C17970493E34F8969CD63EDFBBFA7DF9E18FFF453EFEF473397BE9B2ACE85C2383C3C33F0A726DB8D77DEDBBF1F1F15F4E9C38F14B6DF8323535ED56764EBE2EA4C87873764E9E1415974A6E5E81E4E7174A917A597676AE79F2394FDB8BF5FB1CED477FC6E5E5174821DEA8FD78E6693FA2CAB685D44B63C18EC9C9CD37731614154B283BC73C73556E4E5EBEEAA33AE4E4EAF7F9E669C7A02B324ACB6BA4A2AA4E2AAB6BA5529F6DE10A69AF2B97D2855552B0AA549A5AAAA57D79B9D484C3DAA74EFBEAB3AA56AAAAC306C5A5E5FAAC1D453880BA3BA3261AD5A360BC6E5BFF5339BEAE87D1EB7A76BAAEE79BA371F3E6CDFB89EEE7E599679E31C7F1499326DF0E6565CB8A152BE4D5575F9565CB964561EDDAB5F2F2CB2F47B5D3BFBBBB5BB4E098F1A0BDBD5D366DDA640CC5775ADC65F5EAD5B26AD5AA714026DFBBED60C3860DE6D9D5D5659E8CEFEDED359F4B4B4BA5ADAD4D56AE5C69E60A428B9E91EBB603ABC32BAFBC62F4ECECEC346DBB77EF5643E618F9147BDF58C6B156B7BDA3A3C3AC0199F4617E646FD49AD3D2D20AC7FF0BC7700DE7CAFD4FE31213137F9D9C9C2C53A64C3106E0383E6B56BC21B1BFBF5FE6CF9F1F855DBB76C992254BA2DAD7AC5923870E1D92AAAA2A431A4AEEDBB74F86868624339465B69C8CD35D963434348C030A339FDB0E0E1E3C28BA2536B279EEDDBB57B66CD96248E3B48A4C8C515757370EEC48E85B5F5F1FF5DDF0F0B0D111D2E9B763C70EB3AE818101494C4A36EBC7C97C63AD43B8ED38975DBF7D62D0BEBE3E696C9CCFD5C60D389E3C79B2C039DCC7E91FBFCDC8C830D6E2CB471E7944E6CC9D1751D2B7F5C4A351DC6DC7038206C0FADBB66D9375EBD68DA49850C82889A1DCAD1B110409BE6D1D325C03BCF6DA6B8684679F7DD6C8D402679E2E5E7FFD7513216E3BFAC5324072728A217ED1A245C6B3DDB14495EE68A2DAE97FE0C001AF016A6AEBE0F6361CC3359CC37D5C4A4ACAEF6A6B6B8DA7D95BC1A4E454632588C68B5DB078C2CA6DC70BDF78E30DB360084579BC8890CCD41AF0D8638F496161A1194B7B10186BFFFEFD51ED000340367FB350641345A4080CC05D0D0B65612EF6ECD9630CEEB6136D180D59C844367AA3734A6A9AC90438554F4F4FD4581C0A83F9E623E27144E41145C804050585117E1B1B1BA5A6A646E01E03FC9649ABABAB231DD233B2A4365C1785705DBD41DD383444A37E0CF5A3484BCFD462546B3C2108DF3CB110AE1B8FD2B2722DFA85BA98BAF1A8BD336A83F0CC93A5853D4AE6DDC8F5C80C656545F8856B6368E5DE18002B1305C108C06B464F7251C0DBB1AADB4E2EB685168F2524F104DAD821F13DDFE1ED6E01A78DD0F615FDF5EBD747BEC7CB28B8441B85B2A0A02032DE971218E34B4DC8A086B00E1B8160FBF6ED665785CE708217BB63F170F470DBEDFA894ED68F6CA29F88A9AF6F8CF08B5C38B706F88D9DCC7648484C36CA433461E8124DF8C6CAE36E11E249B81616179BBC8792C80D1ED7018B2725B8ED80D444D8F24426799694C3C266CC986164A2137D82602C29810D82FB1DB91EA00BBA433C7249BBA9E9E9660CE4C3833B16A332B7DB0E57EEFA91C9BAC81C4103C039DC470C406E1E4B419952595969AC4791727332C50B45DD76FAB363092A403F142ED5BDF58B2FBE6894C473DD028ED750307D459F9A13340006A58EE045E47F360C14509B6F83C050366283600D410340123B2B7463FD252525C680449A3B96F5A0936F3E6A6070FDF4430669C8F20BD71103E8E1E0772C84FB73DB2147F7ECB366CD32618AA5DD624B55A730FA0A340A107EC1BD3128282C92A79F7EDA5C47A3943B8EB9309E4FA6DD496164BCDD1677A07B6963048CE71B8B617C6B2062908BD35899FCCD3314CA96A953A74A535393E9E78E852F6B5817E861370C7623825CD61FC930CA3532E03E4E49F99C0F73E6CC8974484BCF90322D704545457AC2BC33107C27142A2AD51352D3D24D11AEA8A8BA0757D8952AAB46A3AACC18B45CDB3890F13988D857C6E5E360AF9E2B34EA6B6BC3BA630B8DCABF1B99B1E456981D4F864695E517AEE11CEEE3D4D25BF88027D90ED39E9F6EAC87A7FB26C2FA84BDDB4E5123F4F0280E5F76AF4D0886F42086479152086DC233083C85B074DB015B49BE2772F026F4A22FF3B11872355EC74283208F93AEDC76807E9C73880ED22C7F53EC496D497A10236A99CB37D66E0ADC76D6469A641C3A53A84969D4CB9A408D856B38877B0CB08DC5F09ACD769839F3C5485E8C15D628E1B643B67B12B6451803105190C57C6EFD20AF52087DE700C23A7810E3497165CC73CF3D676492BF7DFB728A2064B9EDAC2D78108330AB2B06E08C414EB7570A4160246A9BDBCE3CBE4D087C11FD965FB88603B88FD3FCB98B0F73E7CEFD9F4888E849580B44CC83D8D6AD5B63E646264479FE462E1EC022B9269E3D7BB63961E27DEE58BC04527DF3EDDCB9D3781786207AF056A28ABA415D29D61D168B8C95933194DB0E891461E6B5A77B9C8A8848D66D786666A669FF3A35D05ED7F064FD44535555753002FE0C37701F377DFAF4BD28181F1FFF33DB213129C5E4D68E8E157A98AA1FC3E89D872D5C901904E4AC51596E3B48D7BAC2FB53FA301F5E1B04DE06096E3B601178A2DB8EDC543DB5620008B5ED6C1D2D2099280AB6D9730084FBCE081C9A727373231775AE5CDAD02928D3CAE58A8271AE4C0C6AF9856B3880FBB8175E7861DFA801FE7D6C1B1A9265AA34A7CDC6C6A608C8E1D1981FC1D8C55C7304768F9F9139720F54630A71E5683156548EA1D287AA6810DAC8E5244E619CAF7F936329A020CCA9D962F4F41E3CC18F778EB1D37A73F3024D251D929D9D234BD52128C456662CB9755EB90DE3D0D6B64C0F77D9C122FC6F700EF7717A9039C807CD4B7F1CB3D03C6345BCC45784493F1469B7DD1E446CBAC06BF04CC23C3F9FF709F9C6D3F116772CF290EB9BCFE671F233FD88145203698EB4864C3EBBC59B7A61CF0E2E4883D40D9BCAA80978353AB06343771BE5EE58D20769D56DC729583FFA904EED9A463608E1600DF8239CC37DDCCC9933DFE4436A6AEA588784E488E732919BE7C8C1C06DA7AFAF08B16BE260C31DB8358AEF228F42E8CBABB4070F62C8E46F7231D7D118943AE11B4B3FDF1A3062F0208671918B1CB6E1F67A39D619823AE89B2F5611AEA91D33005CC339DCC7E9E9F4301E9A969616E9909C9A6EB64A58102FBB1B05384CE1014CCA78C86632F6EA93264D32276CDFEE8A2D2505CC2793DD111189216DC1442FC8C1006C18621DC418E35B03E4A307BA710AB7DB507646ECD9593FDE8F91DDB1F4BB93C17108E6E549541161C1220CD7700EF744C051D7004929A9A6087345CDCDDDC881640C84365E137D502935614BEE760F30090989C6F26C451B1A1A35224AC7813E90EBB603BC9FFB13A20814178F80237D626292EA9E6EEA15698ECBB920D015BDB80EA63F40071C815C6EDAF4735100292969868FA2A26293025DB9E8C4D8A04C2B17CE18E3CA4D4C4C8C3200DC6380AB7CE0A2CC76C8C8CC363912CF207C7DF0BD3AF401CFE600C535B57D6943DB571DEF9B1B7DF1583C98E2884792C28888AF02FABBC0F3D9C190327887CDDFE8FA5565DE492E29948D47845FE57AD40057E3F4C33516C53689B76174983B2FC1904FD8FB0A983D64B9EDECFFED618950B4274E886C6A6A36F74B4408B5C557C021D457847903C6F7904E44928228842C901727E84AAAF0E94A01470FB79DFEC8214DD8D7AFA40B732FA651C5350272A903EE581CC857F44959AC9FFA4111E633A98EF5722561DF38C2359CC37DC400BC2EB406E01CC01613C5F8CEF736C97712B4AF24ED69D516213CA05517CA059725DA57C0315AAC93B72D9456260BC4201880B0F7E903C8C5BE3762D426C6DB5D19518A5C9E5CC7C387CDE1EE588C440DF0CD471D734FEDE85D565E193100B22306506B5CC343F9F1EAA38F3E6A3AA5A46598233E8BE60EC6DDFBDB5F3AF8CE0578AB3DC21311F6069373C2C489134D7163E1BEB1782BBB2FB7DD6EE5807D21845C3E63007E5040A4F964D28E63B8EDB4413624DB75E2F1C84D484832FF8F81DC4DA4B963714C48F5CD47BBFD95867D47C2FAF95508DCC2315CA33BDC470C4071E19DED8801324D8119B9FDABF0DCF655E8AEA632F277101CAED8F194958F475E5EBE16B754CDAFF95AC42852C506143A0B7303ABC595DF1C59506CD1A344618BAF053A67683873E36AE6746E2301B997F077752DAF18D1D5D593B9D2CD6F988AA4588BAD576EF9C88D6CECF55746C9E56C01B7708CDE110368385C23A711A678D3C83634D3E4483C020FB85B208B0978DA5F101072D5D535267F7E1D99C8B14599BF8922D20BB9DADE37D9DBD7AF0A6A08B2482900397870EEE86F988892BB9509ACCEF63E8C7B239B82E0185EE001EEE3B2B2B2BEB0EF46093BB30D4D0D99FB150A10E1E6161B8A3339D457F4ECEB43F23E9FC995A42B42DCBE3E842CB7D092C78DA231AEBF4915C841266710C8A2C0D9221CEB2A9BB1BED32C44D914C4DA6D5146B744AD01EC54904B0A71C792EB7D45DFCDFD3CED5983AB16B88563E68373B82705FD9C7C05D17CF9C4134FDCCECE2B91F4F474938FB1A27B098667B030DFC51924060D802200AB4F9E3C25F28AD17D95C742A9013CDDEF20DC16CA601166711880F9F0668CEBEAC31816EBB663B0A0018828E462180C101F1F6F1C1043FBD68F63F9D64F0D740D0127FC4244D3CF4D38A61F9CC33DEF84FF9945733051F2B9DEBD5D505C65762C140B16E6BE2447313CDDF7029DA2677F26C8C51C8B8374C660008A3B275B5F0133BB25EDE7B6DB14832C22C56E0F9983057125CD398036571FA284B16E3B24A20785D2BE80B73F40E097718F3FFEB83930B101F0ADDF5E8DBBC059EC7B0CE4D217B9D48C0913267C09C7700DE770CF7574D7DCB973BF5062BED049BF50D2FFB26AD59A3F69D8DE686D5D7CBDAD6D99174B97B6DDB81B2C5CD87A434F90371B1B9B6E2E5AB4F89EA0A565E14D8D885BFCBD64C9D29BAAD7FF1B4AD84D3DA9DF409ECABDA56DF704AAEB2D3D07FD068EE11ACEE1FEFF00AC300C34E2B45B870000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (122,1,'Router_(128)',0x89504E470D0A1A0A0000000D494844520000008000000076080600000000F59BCF0000000473424954080808087C086488000000097048597300000DD700000DD70142289B780000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00002B644944415478DAED7D07785CD5B5F59EA2DE7BB77AEFB22C1B77D38C099860B00D9810B0297F1252A82F210470420B8F1212124A4831A1873FE5FDE14FA836B8C8D89665F5DE7B2FD334FDAD7DA4912579248D8AC1C23370BF3BBA337367E6EC75D65A7BEF73C712B3D94CF6DBF97B93D8016007C079F7A5DFFAC7BFFFD1D8D691DAD6D9431D5D7DCDFFF795A72EB203E03CBAFDBF8F3FABD46AF589A5557554565DD7F5D7979E0AB603E03C03804E370A80D2AA7A00E09776009C7F00308C028019E0453B00CE3B00E8F586710678F7C527ED0038DF00601000A8A7D29ABAAE777E6B07C0F9070083715C02EC00380F01601400A8170078FBB74FD80170DE01C0681AF3004B0B0012DCCC8B18B4F31600260B00AAEBBBDE7AE1F1731E00EFBCFF9FBB3B3AFA6FAE6F6EF35069D4CABEFEA1F7FEF18767F7DA01305F0098CCE30CB01400F0AF8F0EFCCA4C921FB6B47751655D1335B576ECFBE71F9FBDD90E807902C06C010018E0CDDF3CB67400D0D145550040638B1D000B020099699C01DE58420068EDE8060334DA01B068004016F0C6AF9710003ABB05033434B7DB01B050009455D70B0678FDD78F2E1900B475760B0F6007C06201000CF0FAF34B09003D5455DF44F54D6D76002C1400E5350D8201FEF2FC2F960C00DABB7A0403D801B058000003FCE5574B0900BDF0008D546707C0C2015051DB20BA81AFFDEAE74B06001DDDBD8201EA1A5BED005838001A0503BCF69C1D00E72500389F2E0303FCF9B9BD4B06009D3D7DA20E50DB6007C08201C0F93433C09F9F5D6A006802005AEC00583000904E95563500000F2F1900748D01A0C60E808503A0BABE59F402FEF4CC1202406FBF90809A7A3B00160E80866691052C2500740B003411C06B07C04201001A151EE08F4F2F2100F40D0806A8AEB30360E100686C1195C0A5060036AFD8EC005828006A1B5BC5AAE03F3CF5D09201400F3300CC6B55AD1D000B074053AB9080250580FE41510AAEB40360E100A81300A8EF7AF5A99F2D1900F40200A326B071DFDF5FB503604100A86F6E131EE0F74B09000383631EA0190078DA0E800503000CF0FB5F3EB86400D037302418804DA01D000B0440434BBB608057961200068704035432007E6F07C0790780FEC1615107B003601100D0D8DA2100F0F2933F5D5200E01E46656DE3BEBFD901B00800401AF8F2134B07000343C3C203701AF8B7DFFFB71D000B0140535B87E805BCF4C4034B08008A5109B003E0CC5B554D9D34313ED6642B009ADB3A8504BCB884003038AC100C5051070978F93C07005F295B5A5E19ECE8E8701DBEC60DF82EF126B3E93DB3C9FCBAC96CFE2C2D39D13C2300DA3B0503BCF8F84F961C00AA0080F7CE570014159778B87B786CC3C7DF4564BED06432CBCC661321E884E0636F227CAF561C7F03C75FCF4C4B2DB50600BED0B20C0CF0DB250480A161A5E80554D637EC7BEFC5F308006D1D9D0E46A3F1327C5E049DB622B82EE6D14013EE930080D88F01400061FC78118EBF6E3299DECACDCE6C1B0740C718001E5B420050284719A0BE69DF5F5FFCE5D71F009D5DDDAB8D2613077D0702E86F9E3CCB6D09FED8F3C4F3F1A779FFB04A9D3AA235043303940A00FC78C9006058A11A35815F6700F4F6F527F14C4730772198D1A3D43E46F1A783793AF81341317DF069E2794C46330D2A1454545937B836272D70DDEA95FA250100A56A340D8407F85A01607068380441BB0E41BB119F296752306D08FE7C8130F6FC5E1C7F07CF7B7DD3BAD547CF650028C6005051D70C003CB1B401A054A93D10A06D6341BF1081909A670FD678F0E7210156CF37E53C75EC1770FF8D4B366DA839E700A0520B09E06EE03BBF5B820018D16A1D30F09761E039E857DA6CE66C95002BE7B10A8409CF9F8135BEC0F1D771FC9DCB2FBDA8E75C0180A519B4640000F72EC180AEC6C0DE8801DE8E01F59B76A68E1F9F5FF0E72901B3790A038E7F30565FF8E755976FD67C550050AA34A38B421B9AF6BDF5C2390E009C3B45983993F9060C60D4AC1A3D25E83652F60CD4BFF0E05BF95C0AECFF3696567E7AED555798BE5400A835A30B42EA1BCF59008462BB1EDB2E9C3B7B5230270465BAE0CF255806A3894A2B6BE9E08962F1C6EB56645062CCB269C1B14016B0C644ED78FE5B5C6CDAB9EDAA535F0600546ACD781DE0AD171E3F6700E089ED1A0E3AB64DD8A4630C30F794CD06EA57AA55947FB2940E23F083C34AF27477A59599A9949B994C8E0E0EA25D1A111C486EAECE8B250156CF33E573953110F0DC376FDC714DF35903806664745168DD570F00476C5BC6827E2536E7A94F58ECE073F3E6F32F0AE9645915E90D468A5E164AABB3D3292D3186868615945F5846C78B2B488D417290CB69DB65EB29317AD92C41B7ED33CEC18FE07FD3E7A312617EEF965D3B07171300FCDD2C7580AF0200126C6BC782BE1D9BEF0CFA3FE3C0DBAAE746839E4E96D6D081A327A9BEA54DCCF09CB4445A939B4EC1FE7E54D7DC4687C004FC6B1F1C109EF5B9E9C9B42223895C9D9D902F37C130B5505C6418C52E0B23A944B2684C64FD3C93CEA7C5F3FE25C06036FDFFDBBF7DA36E3100201684200D7CF3378F7E6900481D0BFA0DD8226D34806455FF6D0CFE904285D97E923E3F5628EEFBFB7AD1DADC2CCACB4C21994C4A274A2AE9F0F1226AEFEE15EF171E1248ABB253293D3E8646F47A3A515C4EC74E55D2905249916141B402A0888B0C259DDE405A9D4E8063A11230C7EF3780BFDF1D4B2B0F7FF7D69BCDF3018066443BB624ECEC03206CCCCCDD882D731E19808D033A39F80D4D6DF4C99113A0F272713C253E9AD6AFC8A2A4B848E2C510078F9F1254AF861962206424C6D1EA9C340A0B09A0CE9E7EE10D4E95D710CE486909319497914C817EDE34A05002149554545E0B10E871DE48BAF0821C924965D3D70C267CDED333DFAAFECF09DC785E2380F306F6AFFFE08E3D9573054095A804369D3D00BCF4EA9FEFDB75DDB5F779B8BB07CCF7C4B61A2EBEAFD319E87851297D74F8043580D25D5C9C11D4745ABF328BFCBDBDA8BAB1853E83041457D689F37AB8BBD10598ED2BB352C90DCFADA86B80212C25BED2C70386302F23053291402E4E8ED4DCDE455F9C2AA7CAFA66F15E5E1E6E949D120F7044137FF562641172F885A498089203500B9780299E610A734C3D1FEE173010F0FCB7EFBEF38ECED90030A2D58E96826BCF2200BE77EF036F63666C59B73AAF70DB9597AF96C9640EF306C00CFACFEBDB3E3D5C40FBF38F0B9A0F8373DF8459C981E58FF5C5A9323A905F406D5DA345B8E8F0105AB322933293626944A70768CAE9504131F50F0CD33296809C544A8D8B16EF57525547470BCBC725222A3C5880222E2294FAF0BE0525555456D34412A904AF89A4ACE458C88233B1CB7671769C57F0E75E8A9E746E23F61F733F02AFFBFB7FFDE84E957500E8464BC100C0EB670B00DFBFFF81B7A512D94E1E1C47B963C38E6BAEECCDCDCA5C3117FA9F69A0AA1A9AE8C3CF8ED231049023CDA6EEC235B91417B58CFA0606E8C09193C8ED8B88735EB94C86C793041B84050550775F3F1D3C5624248233810C80610DD82234D89F542A0DCE594147715EA54A0DC3281719426E7A22F981491A9ADBE918BC43434B87608A9CE4384A898B2289C44C65B5CD908E5A7806157C443418286561467061A56D159EF78FB1B4F2A307EFFD91D10200F62F9563A5E0D79FFFC5D901C00FFEEB4100402A00C0AE592295928FA7E7893D37DDE01B1C1418331FFDD7EA75940FB7FE9FCFF289AFC8F1F270A78D172C179B17289D51FDF1C1E374AAA25A0C88B7A707ADCBCB1252E0EAE224BEF40198C2CADA2641FBABB2D3C48C77777121FEE5ACC36082A28A5A010A1F6F0FCA83E9CBC0AC668D2F01CD1F83FEF385950CA2E5E96002A4904AF508DEAF0632D0C03D0A3CE62FD86519FC04334729DE2B08FE2101CF95CA640BAA6BCCB12135F1DC5D78FCED98E898202F6F9FEBB460BED16650D3BEBF9C3D00FC0C12301900BC974AA5FAD8E8A8FC1B775C93E9ECECE435330046BF546FFF107DF0F91104F718712F3B1E79F9A5EBF21004CC309311DA5D441F1F3A4EBC3A876F71D111B469D572042F8EF4F8B2472103ACFFFCD32861C101B40E86302B258ED70352454D2352C022687F9BF83B1681CACB4CA5F8A83004578D2CA0820A4AAB8869934D642E9826D8DF87BAFA066008ABA8A261B45E9310154ED9083C03A7B6B19D4EC244F60E0C5100328F7478050646635B17F979B98BA2D37CF57FA1A56D272727F2F2F2A6FE61355535B5ECFBCB736709003FFAC9CFC625602CF06280C7F73269FFDA952B2A2EB970E32A3C2EB3A6FF9C97BFFFC921FAA2B044B8F5D5B99974C9BA9514151642DDFD0308FA31A1EF4CF30EA0EA555969B471752E8563B079A672D039B88CF88CC4585A0F36E0C20F0793BDC141A4807C9D9C93A303E5A42608DFE0E7ED49ADF00B474F9651694D3DE44B2E0C1FCF785730453D80C24CD00463E80C8398017960097190CBF0FC46B0412D29946AE127329363C4F9CAE1134AF15DD4233A0A0DF4A3D5D9494038A4D141267CCA1CDDFF74FA3FE70697566FEC964B250FE3B5EFFE72EF83FD8B0A80BB1E78180090EC9C30F3270360ECB85CEED078E5968B75996988006E9C637F76F404BDFFE961E1E603FC7CE8D2F5AB906EE592ABAB339557D7D3BF0FE4D3C9D24AF1A5FD7DBC681382CEB39A9D7F552D64E0C8712A46209C11D8D5B9192205F4F274173392AB801C7C0681BF8F37AD5E9E86E027E273C804E08E149462A67688C0E565A5503A80C395AB6218426603BEAECEC7CB8396E335C97111C83EF498EDB578BC9EF4F8EC0991E19491124DAE8E4E548CCF5A56DD483A484A2400919E182D3C053FB7B6B90312E64A1B73D3312B1DBEE406D7196CA2C3FEDFD8B35FF8D7B38F3D32B20800D80B0920AB00982809620F9670729037790786047F76F494139BAF8CA438DAB2690D665E1275EBBAE9280273E0E322E235787C4B86C9BA043290951C0FCD3661C6160B4668E9E8A610CC32060CD7F5B99C5B039ADE9F7F52B87ABE25C62EA3B5CB336018C36904B3F2784905025F226A04316088556002AEFAB1041CC76C3F595A2D9CFDB2502E06252193084216A01035817268BC0CE0498B8F126CC023C135043E6E349A84A4642645619A4BE914DEBF1E8167B02542A612A342C164435451DF4A3E0043722CD2488CC7C460CE5FFFE7DC87B030C7105EF3DE58B1E9B35F3FF5A8795E00B8E7C1BD8201A69BF95301C0F7EBBB86796FFCE12D3B29312E5A963F984FFF3DF80B2A8CD84F129D8C967DB09AAE567E9BB6AC5E4BA13062FD988D1C74A67A6E71A6838A37AD5E41C931CB84913B565C46FB8F1410FF0B194CD72B31A3D740467CBD3C89AF913F74BC48D4FD0D462382140743C8A5616FEA8457C82F281380E162504A6C14E56524913FCC5C4B7B377D81EC8103C925E36CF88C546401EA112D9D8057E05A017F17EE28F28C371A0D54585E477578BE23029F0CF025C584231319A4A2AA4630CA3085C053A4C62F236F18D9267C5696B30030D05CDCFF6CD5C8F122D5DCEA112D38FE26A795BF7BE689529B01C0175BDCF3E0239C05EC981D00A78F0DA80D34842D313E963E8C7AD554B2FE3F52B374F2B943CD11B4BDEDFF90E19F41740294CC83B51679FD85087C80AF37F192E703470B40F5A784610CF2F7A30D79D9949B9180E73A10FFA6CF67908132D03D670279D929B40AA6CF15F7F9079F0E9F2811C520185461F89623FD7305782AEB5B4431889D3D4B472E3C416274383CC43018A48AAA715E669BB4F84811786696136535087C3B3C86A3087012663D4B080382677EA01F0C2298C30FC6B1ADAB0F3EA10929A49A3CDC5C283321125993BB6857738A692DF88BD18D9CB5CF72FAB54518FE379DE4D2977FF5D41343D3028083BF7DFB76694442DA5B729974BB2D335F2219BD6F2629B50DE92836269A7E13F813D2780C5244BC87B935A05A3215757E7531747FD5737461CE4AD1DCE12EDF4787BE804E9793115F281D74BC61650E25301B409B0BE019B819C4FF5842B0BFAF004D26CC1DB8994E9555C32C96882C81737DEE076424C50883C674FE4551B9908788902064088914151A4CED3D7D02100DAD9DC26B3083A42544D1B05A450525A381E72A221F4B8E8900E328A810BEA4A3A79FFC31BB3392A2290880ED4436510226E80513B80174CC0EE1417E4262CAEA5A84A164C989C366B3019CE7DAC69980E30810FB7A7B935AA3B9FCC9477EFA6FAB00E0E06FDCB851A6D56A1DD65CB8F90D995C7EF55C00C07B0D3991A78F1FBD1CF073AA743E49CFB4FC8DF2A3DF319DC87A5FAA735752407B346D57EFA6DBFCEFE0D8D14BDDBF85D9AA213D1881AB706B41F19CFBFB629099010E1E3B05AA3F450A9546D0323F96101521F49D753F1F6E9FEFC74484D205908078E8B24AA31505A6E34515A4E1F40FAF5B093F1108AA6E6CE9A07C049EBD86BBAB2B2D4FE34250240D0C2A470B440C08043E1300E2C0F773C5B0AC965A3B7B8579CCC2F1D0405FE24BB44F55D6031003C20426834DA2E13186F159B8A0D4D93B28B29384C81000C2978C90B4E6CE3E716E7F2FB7B3BDC279FCF91C170F770FC1901CC7E161C5E54FEEB50200CBCC6F6D6D75341A8DAE6B2FDEB20FA8F9862DD46F018094F798CD12377FFAB3DF5354E27A5400A0D0F520BD1DF002DDD477BBE9B1B50F4986492179A6FB09FA30EC5D1AF11E65A3C8C124DAAB7B8ED2CC39D0FC2EFA949B415C25C4F95764242305CC160D1DFEA1E4CF018A0204CB882FC93377CDF2740A0AF0059D0FD26180A210B31E9F0A06334E18492F507255432B1D2D2C43C0FA4420591E38C0DDC82CB872C88177418E9D9D1287E3E13430AC8204545313727FEE1DE424C75278B03F40A916816FEEE81115CAA4E83018CE10914D94D6B688E39CF2C6458460E6076070895A009E6A368F3239C5470481A5DCE7A4FFF3AA29E07DB978E6E2E24A3211A3D1982986555B9EDCFBC07FAC01409A9A9A2A87CEBA62F35D7BD165AF38BBB85C64EBCCB70080DF44E2E2456F05BE82C01FA2A75ADF150078CDEF19BAA7F3197236399BFF27F35792BE949AD1950593161A60E04EAD22B73FC1E8911FAD5F992D82EB026AAD82396309E06AA03302251A41D8586F3948CC12ECDCB9C5CBDD3FD67E47CC403682CC129C420622256526884786D0D9DB47F9851CF80E3081B3A81524C7460A0FC29E8001E1EEE68CC0C7835D82C72A8675421A783013A2C2C4AC3721C215087C2D8E631411F440513574904B01B641AA00F0F47A23001104E6F01165EFF9BAFFF10B5A66093ED7349C9D5D4EFBB6B1E0F37D8542B5E5977B7FFA9FA90B3C248F3CF288E4830F3E70C2C93D753A5DF0864BB6BCE0EAEEB1763E0090CA1CE8BDD0F7E8B8DB7E7AA2F5CD7100DCDFF93C06CC444F07DD45571AB79BFBF34AA8C1A372120C3CBB8269074CE22DFE7BC497E17AFF6833A8579844AE172C4F4BE0421477C3445DA011FE81F37E2E196762A6F28014C2C01D292C25BE90323C38802E4006118559D9D6D14B874F95529308B00BAD001324C52D23BEDCEA5871158C64ABC80E72C0040C142DFC077720CBEB9AC520C72E0B1146D101B3B90AA6B3BCBE55789465A10194024030C57366C0FA3FA480FE87058A4D78A4452A004DC7021C4907B9834853392692B1993F11002AA5E2B227F73EF4C1190060FAAFAFAF77C27D2F9C3474DD255B7EEDEEEEB1DA56EAB71CB7C8C57EFFFDF491D7FFD02FDA5F1B07C08F3B5F2083442F00F0ADBEBB295BBD8EF6253C641E4CAE9704F746D34DDAEFD2377DB6915ADD49038AA741D507E8BDF7B3A9B77F230C6136256186727AC80B4138F05C2D6463B776453A743E52540C392DE4F5009C56720E7F414E2A34384054FEB848C47B4F503A073E05299D02CFFB0212C059027700392D4C423E6F827B2FAE6E00833488F78C44103313A2055B7011A8B8BA91B82F1F12E04369F0109E0013670065000AFB8208C805EBBF13B29CB91780E62801669388854C4CCED3819F1A7C7E8E5A65050016098001741C1A1AF290CBE581176CBCF8712F2FEFAD739AF913004048FFFE14F20704FAFE7100FCB4E345D24A470400BEDD771F65A9D7D0CF436FA3087D1C7DAFEF6EFDAA1C4FB9DEF0AC24257E3F82717AE5D4C8C82A6A6DBF8F3E3E6414A5610E2E077C5D5E0602037A8641E4A08B0A2140C040598DC073B6C014CFCBC59A91FF7B7BB8535E5632A5C0142A356A049EDBC18DA2BAC7333E15291D3B539EED85307E5C1B60DDE78EA1B7A71BCED1438595B5626673EA97897491F70C8432C84023DEC31F7FA7C64508A09CED02D0F8CC17067E2C0613823F1A0BC9381BF063C30AC5E6A71F7DF843AB2670F9F2E588BDDC0527F73248244139CBF376858446EC46AEEE395700F0F346E43AA0D28F0A5C8F08003CD4FE7B52CB940200BBFB7E4CE9EA55020091DA0401888CA8C72822BC8BE2A39BAD349724F4C1E71974B2F83BC81472841CF00F251C1C2F0699847367CFE0E3E549752DED2283688129F385E95B959D2280A1869673ABB804468ECD5A0EB49F53463674550D2D42FFD9E805C12FE4A6C50BE3C9A95F0124A507B93F37823213A3282CD05FAC2AAAC06BAA1B3BC80D862B1D81E7D2F6EC3D80F9EBBF25F85CFCE222159BDDE9823F1500BC2915CACD4F3F360D007829775C5C9CDCDDDDDD0546D003D9800F6E51E9392BEEF00D08DC2CC36D36EA9F2A172491D311F702018047DAFE484AF99000C0ADBD3FA554CD0A0180686DB290848CC8FBC56A72856EBB79D3CAD740D54DC21F68461CA9BCE6527294DE0D63B70C695E117D72A40DB3BE49BC173B7A5E12E6E9EE46FCFBFF9F7F51241A42A3BE204D983BF5C80818A202B97C8DD03CCE10B2531340D132AA6FE9A4A3480D59BBB9CAB8223D415038E7F205A5D5C2D9BB3A73E3289A62C28331F066AA696A13E91E8F039780A3E0016CEDFD2FA400A437180869BAB82F9D10580BCD4B2705FF4C39502AD500C0431F4E5B07602F505858280F0A0A7234180CAE78334FC4DD37222A263B3523EB4E0F4FCFD4D90130E131EC9B9C9AE9C9C087E8E1F6576948DE2F00707BEF4394ACC9110088D3A6D10D7D3F140030939C4A9A1EA7D8A0572838A01E133F1DD47D3F4EE507FA3A4C2EAECFC2B4F12251373A72E226F2F5BC4D6409FC8B199F1D3D25560E89C5A360029EF1A39DC372F8862A3190DC62CE4B4D242704948B4A874F8EA6869E1EAE94072045C3287277F238025FDBD42E0C557A4214254545888A5E03328EE22A5E3B00A9890A47361022BEE7D4602D7603C868328A35900C00C968AC4E03C04AF0C727E1142FA0526AA607800504BC831CC81C1D1DE51A8DC6098FBBE1BE378EFB672C5FF18D98D884DD4ECE4E7EB30160A24C143B9752F0482AF5CABB0400BED3B3971246320500787F5DFF9D020026B32395363F0A00BC48FE9E87E978EDEBE4EBDCA65F9EF99243727CC919D2D0D5934DBF7B6D039D2A978842CFBADC4CB1B68F0D21570039C71F5D3514432B911E72F998D7021C8667684426C005129EF15CE6D51AF454585A8B99DD28AA885CF7CF40F01904EDDD7D74B2BC8E069055C4222D4C01B89C1D65F36B03DB50001A3F0E69E3E69A7A443D46F79335FDCCE0CF2C076A95E65248C047B3F60278CF6C505E5ECECC0F457070C1DE031FDCDBC9C929EC82F59B6E09090BBF921FB39A2958F109266C1592667A2AE86EFA5EF7A362E633009246B26947FF7705008C26172A6BD92B00E0E779948ED5ECA300CF839410FE060505BB9B9785D59E5156AE6988A453A54F215F4F12813F26328132B1F49B4BB97CE18887BB0B0D0E29E9504189D07A76E7BC3E3083178662B08BAAEAE96445AD28E870FA97933ABA3E907B055C106AEFEE87EEFB413A62C8C3D565FE6B00E65000E2E56DC3F03946B371DC7B5977F7163698DD0CAA54EACDCF3EFEC887362D0BB7B001B203BECC8BD9C0111FDE15873DF57ABD1F642165795EDE777CFD02965BA37E6B467158AAA247BC7F8219FF7D8A81F633005234B974EDC01D63007003001E1600F0F5380606F8D32800429FA1A2C6A72932B8D1949BF117A98FD710283C981A9A6EC7ACDE4E4A93925E31FC86FA0E49C9B13450E8FEDA1519E403E7AF50A9444D80977DC1C420D58B87FEC78B624D596D93C8FF99F6234303C5DA411FA4896C04B919C405216EEA709610E4E7B5C82B80AC077F44A7A5BEBE7E68BD6EC20C9F29BD9B590E267A8121D5F0E6179E7CFC23F384A0CF7A61C84459C0DE41A7D339393B3BBB331BB02C64E5E66D4A4DCDB8D5C5DD35646AE0CFF00BD88FC834D4A733905CE7290090AE5949570FDC2A00A0377A5045EBCF04007C601E4FD4BD3A0E80538DCF89CF9315752FF50C6F33FB79DD6F96384AA52F6B5FA04F93DE259D874A9435D6B55E4EB7F7DC475295A3B87E808D1C0F7A7A02642033495412F96AA22360897E183D5E22C615C220EC4760164F56D489AAE268693816062F48A4878BBC02F88CE01BF406EAEEEB23854239AEF312CB184ED2F7C9942F9DD6089EC90683C30397F734357CF8D7BFFED56401814D57064D9505BE2E103717A48D225BC03E78D3A59BAF8F8C8EBB0679B5B3B5C04F660609694D12BADBF30E910D5C3578CB1800BC018007C600500800BC320E80C2865FE3754600E02EAA6EBF87FAD46B685FC2C3E6AE9C52895932F93BB8A9BD28FCAD8DE4991F2BF4FA82E5A9E4E9E68AB4B0173250441DA0741F2F775A99954CD1A1C162F08BAAEB45B9976FDC12E67A017FD6F95FDF689BFE73F7B30FBEA4BBAF573C7FF20C9F39F8D6D9607A00F4F6F47CF3A37FFDFD83152B56E82D2098D3B581536541A15070F5D0952B88A01AA84140FC864D17DD161412B61A8327B116F889A6B157D243E5A67A8A1ACA1100D0197CA9B2EDC702005E6EC574B2FEC509007801AFD30B0054B5DF4F9D8A5CBA2F7C076DA4CD6663462BD5F9964DF20761D5A9F483964728CA959B3EBC80A444D4F2DDA1E12B3392462B7E1870BE76905DBF46A3C5B165A2E3C79DBC2F6305F0D0D010B57674C27BE8A6D0BBF4CC802E821C74B6B7DD505154F03E323C4D4141015F87609AD7D5C196BA01648181E000EA746659C0B946B385AC9C0B7257ADBACDCBD33B72260058BEACDE0804793C08C7EE20823B0A805200E0B7E300603048A5230200CC12DDAA2C0180CB86AEA3CDC3D7D1DF639E33B7A49E94B82ABDE9A6961FD25AD906A48E4A3A78A264BCE2979B9E44998931249349A88E5BC390880198C3E8B0605A9199284ABA362EBD3A7D65D33CF49F53BAA69656A4B38A29E99A745230670380F48CE7CE9C1AB6D4D75D5F5152F889979797E2C08103BA790360221B4016245C3B080F0F77E8EFEFE76EA207B301B6C08D175D7A75526AEA4E672767F7990030BAEE904867AAA35E4538057AFE863C5D2B04ED5B0070A2EE6592CBD40200E5AD0F518F2A4D00E08AA16FD145C3D7D0CB017B69D8A19F1EED7DDE101AE82B3B51522939595A35EA1B60FCF23212C5AAA276710D418970F65CE9E34611EBBF79917E8F68A602900EA96613FC476757B7E8C29C11A40913E5CCE0CF4D0E263ED7A0D7F774B4B7BC545F59FE370C4727247B283F3F9F01605CF00F444C94055E4C023AE36CC10D87BDB0F9E11675F1E6CB6F8E8C8EDE241DBD9DD9619C040C1E996A0CDAE754DBB993BC5C0F8C01E0550040210050DAFC73EAD32409007C7370376D506C150050CA8645DBB9B1A991148383E6E0405FC99AEC34D1E1E3948ED3409601BE2A8803CFAD5E5E98327DD017F6FB06161630198D82EA1B9A9AC5E2906903686DF64F2307A753439AD60FE083E9BA3BDA0FD55696FE1D995B1DBE4F33C6B97B5118C09A496459484D4D15B503D604BCA93B669D37DE23203E29296BE38517DFE6EF1F90302D00A6F61BF0DF88BE861CE52F514DC79D38D6230050D2FC18F56BE2050038855CA3DC2200A0956AE8075D4F5255553575F7F4D065176D40DE6A305636B4389456378835889CEA7159973FF259B804FC0C20F4C1D95754D721D5544F63D86C0BFEAC7230F9DCE681DEDEEA86AAF27FABD5CA5A8C6D2BCC7A1B667E17EE0F8D7900C39C4DE05CD8A0B5B5556629290308421630A881175D7AD965CB73736F707573F739E39A03CB8528D3640F46B302B3E93D1A1E594FFD70FA7BDCB7D2B58377D04AC5C5020006FCF7BD9E5F08000C0C0ED0AA952BA9BDBD837A7ABACC61013EB43A3B4DE2280C9E9592ADED4BAF6D0A3EFF8C4D79453575F5F4CE6CD6A6CBDFA7F8015BE540AD5275B7D4567DD2DFD7538ABFDB108F0E04BF1B93B21FFB61A552A9A9ADAD359020BE4506C074B26029298314BC2011FEA0A0B06F6CBD7A576252F2A598950EE333C0C2065301304DB511FF23E4187C3D518D09F9BED440198ED9627918A757311121A253C8BD7293C968AAACAAD4BAB8BA3BF3275CCC4BC04FB385890076AAACAEA5BA86261A6BB459356D5301309317B0253584CEAB3B5A9A0E77B6367D81B16FC77B7722E85DD8F7E17943184335D8489B9D9D6D98731D6021B230B5A40C148ECB426C6C6CCA65576CDD1D1A169661B5D368198833E462E662D34C99C7407F9FBEA6BEC10806725ECC4BC0F975F58DCD545A5601D9D24D538E9D62D8CE98FD7397037C02C3407757496B43CD6718DB569EF11C7CEC7B31E6036AB55A8589C7570BE939F51BBD74730E95C0C564034B49197B175E010679F0C5C341EB376E5CBF6EFDA61BC10C4192B30C00CB791AEAEBB4DD3DFD5239927E9B80308304B0DF38515844FD601E89546AA51C3B5BF166263698DE0C2A86061B3B9A6AF76BD4EA7AFCDDC1C1C7BE079FBD1F4CA4F0F5F555438AF596593F76E1AEF92BF9A9D8A99D466891330EB9393989AB8CFD713F64C7CEEBB767E6E47CC3C9D1C96926EAB72DF0930160CD78F2601417158F28B55A47BC4E365709E01F6E3E7EF21452BB165186B69E7FCFA17863831CF0633AED487F576BE3E7837DBD65F86E1CF84E7C5E41F7D898EE5518631DC6560FB76F9A3AEBBFB2DF0A9EA9D3C825659685B0B088F86B77EEB82936362E572A9349167BE65BBBD855A3519B0A0A0AB50692385B7CD14CC1679D3F55524A4525A317B24C5F8E9D060033C8C14CA921D2C99181EEF6E3BD9DED47C702CE3ADF0926E59F4119C4582A4770C358EACBCACA98EEADCEFAAF0C00B6741AF9C221CE1656AD5ABD72CB15DFF816D2C6F0B30900E98494AAB3AB535F5C5266324B654ED3B140556D1DE51F3B2EFAF4931A32561DBBD4362F304B6AC881540CF495F7B4B57C8ED8B672E0F1D9BB10F81EEC0760AC15904F755757972E3C3CDC38DBACFFCA01606BA711E80EBE66C78E2B56AF597395AB8B9BDB6251FF7400B09C07EC3452D3D8282792C92DC1EFEAEAA14F0F1DA68ECEAEC9419A2E8036C8C15423684D0EB46A554B5F7BCB81118D8AF37941F5169DC7368CBFD52E2E2E5A8C9DC19AC93BA701604BA7119F2F30303838EA865D375E9F9E9EBE4626934B178BFAA5330008D46ECECF3F3A525DDFE4F8E1A707CC0D2D2D7271F9CAD4C519D6EAF1D6823FAB1C4C7ECC60D00D0E75771E520CF61571E059E739F096B4CEE2EE7133A4A4A418A73379E73C006CE93472499965213B7B79D6F6EB76EE02CDC5CE0680F9CCFC490C32F69A1B6EB95D535E5BEF628B5B5F0C394026A2550DF59F18EEEB3A82EF2C028F7D1726441F187110FE43E8BC56ABB5B87BF35C67FD390980E93A8D600367D0DB78A7110F075FBD6DDBC5976EDEB2CDD3CBD36B31A97F92C48C3DF7FA9B6FD594D534B8586AEED299DCFA0CC19F2D35C4E9CD5A95A272B8B76B3F667FF3D88CEF060B0A9D070094BC481A74CF174D18E6A2F34B0A00D63A8D5C520623B8583A8DCC069E9E9E1137EFDE7D6D5EDEAA0D8E8E0EF2C5A2FE89AFE1DB750C806A0B034C5FBC3993CE67F00253E4C0A0D3B62BFBBB3FD56954D5168387EFD8CD81C7DFC3F8186A4EEBE6ABF34B0E00B6761AB98894989898F2ED9B775F1F9F109FBC98D46FE96F5DF7ED5B35A5D5752E67B65BA7D7F259FDC0D8FB9A4D468566A8FFA046315860A17A9EF55CB7E7A68D52A9545BAA78313131A6F9EAFC920580AD9D46D064F0E5575CB1F6DA6BAFBDC6DFCFDF7FC61FB7B291FA2DB79D37ED11009873F166263920B35EAF569ED40CF5F1CFCAB7F30A770E3E1B3CCEE7B990C33ACFBFBB3566F0CC8B39EB971400E6D2697472720ABDFDF63BAEDA74E1851701234E0BA1FED300D8AD29A99A08001B6AF9D3A78666A35653A355F47F62D4EB9BB87CCB548FB7E9C17D36780A0F0F0F0DE44DA7D1688C8BA5F35F0B00CC76F10A771AF95F16C51614111111F7DDEFDEB9232B3B2B9373C6F950BFE5B6E35B0C805A17A98DC19FAE9963361ABBF4AA81FD06ED48B9A582673178675BE7BF560098A9A48CCD1DACE0C3D902B6E00D1B36ADB8F9969BAF45DA183257EA9F0A009B6BF95300809BCAAC511ED66B14C7C60C1E6BFDB8CE733E8FC06BCFA6CE7FED00604BA7912F5EE1758918E890DD7BF66CDE7AE5D6CDEE1EEEAEB652FF44001457D6B8CC74DDBDF5D4900C669DB6C83CA2388031E685193CE399EE7B2D3A8FCFA8E1BAFDD9D6F9AF2D0066EA34BABABABA6170BD395BC03EC8DFDF3FFA9E7BEFDDB6FA82D5B90E0E72E96CD43F15004474C6C28CE9E4804C867A1A517E62361AF842034BDDBE97E9DEA2F3602BFD62E6F3E73500A62B2973B630B1D3C845A4BCBCBC8CEF7FFFFBD7C4C5C547CE44FDD600205291197E85436A36F5490C9A031283BE840D1E533EEB3CD3FD57A9F3E7050066EB34E27B8A8B57980DD81FDC74D34D1B77EDDAB5C5CFCFCF73A6F34D0580C4EA620D1A911B74C749AFC947B0DBF11E1D96E5585CBEFDAA75FEBC0280AD9D462E227135F19E7BEED97AC92597AC72E025C33600602208107C938CF4958E46C341F07E33CEDD2E97CB3BC666FD00F68A2F2B9FB703608E9D465E8E8620095948C2EDDE7BEFBD3A2323237EEA39B67F6BB7BAA4B2C675EA71B9C4D4EE64D61F92984D7538473B6F34BA32677C11E662D7EDED00582459B0D669E42569DBB66D5BB567CF9E2B8282827C4E33C01E657165B5FBF8B9C834EC64361C9793B18C46D7E08D3B7C36790098126C33ED224C3B00BE7A2058ED34B24944008320056177DD75D7655BB76E5D0BC970DC79D39EC1A28A6A6FBC50E760D697622B1C5B8029663D9770B1F53939390D8359C4AA9C991661DA01708EB0C14C9D46968565CB96C5DC7FFFFD5B9F7FF90F7EC5C5A583CE12FD094493FFC103DEC4BA7B5EA081A08BA5D7EEEEEE23E792BBB703600EB260B97805875C2D9D462E22312B606607C2C7F1208DE038A7737C7955B7654996979797A6A7A747B790553976007CC52691AC741A1908F8DB1BDAEE89FBBCDE80D3B861FC3D80C00FE16F95B7B7F7C8B96EF2EC0098231B583A8DA075FED7D05D31DB396B90629CF8624A0D9EAA9EBAF4DABC8407D10E80696A071E1E1E323081C3F0F030FF78A6041261C2DF065E8B37D7A5D776002C4159E05F504790A5D077D125823298010AF3D725F07600D8EE0F46D37FF153124BCBE0D972FB5FCD077F9A127699A90000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (123,1,'Router_(24)',0x89504E470D0A1A0A0000000D4948445200000018000000160806000000DA7D5C880000000473424954080808087C086488000000097048597300000298000002980136D347DF0000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000003B9494441544889B5D36D48DD551C07F0EFEFFC9FBD3E5CCD344330967BB1ACA47C8039C75A08C188DED48818AC17DBD8DEC9682F22160303AB37AD5C052114C41623A2C064DA13D6AA3B8A54622BE79AF9804EE7D47BB9D77BFFFFF3FF9F875EE884954E85FCC179777EE7737EDFC381D61A1B5D9F7ED9BBFF99C3ADE59BE961D844B98E53A78559BC999E4D01EB554F4F8FF3D26B6F756D19E0791ED9A659B865000010DD79E4FF0E18C61603EC5F80B95EC3E8E8E823A1504FF388FF44B43E60B00D00BEEF5786A17821C7FD036498B55A7028A9714F5141EAC8F3FB8ABEEAEB7BF7A9BD7BFF587582BB007100CF69AD0F68608F5492A490181E99402EC8A1345E04D360F1FC98732C08F8B12FBA2FFC1EF8FC5CE48B4F0E1EDC3F75D7097EFD6DF04C63FD63470038522A6416B3B83C3C82F1C91B20106424307963168E6D215E10432CCF8152BA5641D74624DE78AFF3A31F7C1E9E2B7258B761587700A4B5C68957DB545565E5A5279FD8FDD0546A367E732205A9256CCB442EF0C1790868400801CE430825519097879867414A8120E0E09C230838170AE96C267D94A7E72E74747470D25AE395B6D7B5E7BA608EA77B9B3ED675AC91B6A56B287EAB0C3C12504A228C22701E22142194D4504A218A045CDB409E63238A42044B0882308441E4936B3CCC9A9A9A3C25A394655BC8774C7A60A29ECD4CE72863F4CA476BCEC264124A694452012058CC0288000DB88E8598E78008506A099552C0320C789EE7095FE4B34422E1FF3D74A5FCD6CCF4870C104DBC1E715E8A9264A5313665EA86C7DFD6E31503300960064143C36406EE2D29444569316CD384520A3C0C31BF9044361740080121048068E90D008088E8F8F1971F2CAF2C3BBF6D7B751DCC9B6018C0154EB85C32AF6AAFEDD46E5460C40B62282E88ADC491CDE6707D6C0CC985242CCB826DDB701C1B0C0866E7A6B7AF002BAF4EC44E9E3AF5EC8E1D35EF575555954A2B40641054DA50B974926B32DC308CC80F7C0C5DBB8E3FAF0E032038CB071B8C446661AE7B6672FC50229158F80F707B1A00ECF43B674E3736361C2D2B2BB35DD785E7BAC86617C5679F77455D5F7F6B09A94CC7B6976F6DE9309B1D4A25675FBC74F1E280D65AADF993F5922A89A8B5B5B5F5CD9DBB9ACFEF6E6EDE655B1615DE5761CE2717A2547AD1746C1B8C1854C4E733B399933FFFF87DA7D65AAEF593D782A688684F7B7BFBBE9696960F1A1A1AEED75A4344110CA8003C735606B913FDFDFD69BD4A1CAB46B45A2DC766747676B60DFD3572F89BEFFA464C85438383BF5CBD1DC75AB7DCD40240D5D5D58500D846F6FF03678B6042D4627CF00000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (124,1,'Router_(48)',0x89504E470D0A1A0A0000000D49484452000000300000002C080600000023163B670000000473424954080808087C0864880000000970485973000005310000053101B7ED28520000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00000A1B4944415468DED5596B6C53E7197ECFCDC797D8B1E338F7401292102E491428B052A089482874AA60745C0A68A3454C1394AD52377E8C75193F3655435AD5AA552BA652A1858E46DD86B6A96B35AEAB20CDC245DC9242527223B1133B76E2F87E6E7BBF633B7142C26820B09CE8CB777C8E7DFC3CEFF3BCEFFB1D1F4A5114988EEDE041A029D31F965FBED67CE3C4476F0DC2346DF4745DB8FCD9B3A63979D95F2A0CB516A671A3A7F5E21405D3BD4D2B018AA66736818755E0AFA74E593F3C7EA279C3CBAFEF7E320A3C24019E61385392611ED08A75C6E6C0FF0AC234E7C00C27F02814A09FA802143DC31598E9167A1C956C061080994DE0B176E24B76BBFE7113601FF6021D767B89148AEC9014699B4194336F785AFE2E884A1D76D1065190FF3F09B85CAE4C19E8970451D8CE48CA2205AB8D2C02907B0BBCBBD804206F4A3524797C5408969697CC2556C6A13C690226BFDFFFA22849DB6986A9924589A608E0490758788E83958BCB7E7DFADFE7778AA2704C90C563DFADAE6E99423D9E32010D8E7504B4288A2F6020B5E4E018A0109DBB7AFBC09C6C048EA1EF3987230FC37F0064EAC0897F7E71598A48754129747CC7C68DF6874DD4890810B957E2D80EAA1DC042C20963A3ABCE114184C62BD7A1ADAB076C160B78FD3E48B598A1A42037EA99099401192D07CA220E98431FD77F7A5A10A53A3F47FF65CFA64DBEC9057830054A63A0B7E1C88D1F1C0F9A0CA7DB03E7BEBA0C81600852AD669024593D96956E857E971B7C3EBFFAA5568B09D2AD961125E28180E86B4656A81A7C55A30946DEFFE0C8D1BF09A258E7B6DFFDA2B6B656FCD639F0C66F7E7764CFAE1FA66466A4E726BE210E5A9665B876AB0D2E5EBD094683010C3A9D6A1BBD4E0B399969303038840B2F4605DE8764325353A0B5BD1B097940A361203B2D35AAE284CA801EC7563CB9D564CB741D7AE7BD4F22A25C57B1A8B4E38115C0A83DF5FBF70E8B458505E7766CDE58AED7E9CCE4B83F108453E79BA0BBD7A102D5683470D7DE07730BF36056563A086823B331091C1197AA02DE8040281C41C298403C0FEE41AF4AF2AEFD6BC8B2A500CF7360D46BC7283A9A33EAB15445A1F652A0ECBDD874A523CD960E7A0D9B3A69A78EFFACF2B35F1E545896057530AC776EE11C47189822F21E5D3640E7553768790DE4E56420997E4832E880E35868EFB243BACD82F920C0D0900F6CD66424826A6016B02C03C33E9F4AC03D340C3AFC7C301402735212068205AB39094451C22102168AE8AC0EDC97C49173129E437B3561D9AE0B0BCCF1F70FD5F68F49705C30510CC3C0C86019537B7757714B673B1C9E5BABBCFEF47A68587F0C247D488D920123E8F6784183648D48C4E70B8041AB55BD1E0A0BA041620400511E9354CD110617352456E4FAFE50185C83C370B3AD0B1C031EB5184C946B23F68D1E5C4229D4DB2C447A7EB2FF17677E7EF06049EC7E81A2962D5B66243E6398D1C121B874939952BAAD54D1A91AA5A47D89FCAFA547E1A3396F026F53D31006BD7E484AD28F00D060C443E130F0AC064211412D680C1D2DAB2C92220B331E671FDA9247058248362248D0E970823F181E577EA344D4FEA78C16019D4EC7DA526D95B4C294AA042A2B2B199CD34964681AA31F1B84102B0B60122D00411DF595E706CDBBCD72AFB60BECE606A858D80461C18BC9AC45988A1A55BD4E0F019C198652232ECB1202E5D402A0D7F13084D5891089D558CC051D081111F2326C682F6EB4D4268C3811F211040F5A2DAF2AA2C851EBD367CF9E95388E73B9FAEC6FE1C1C0A80A8C3AAF1B7A0E68053F8EC3D45948D734BE00D5FCE74AE5D3EFC29A55EF20B841CC07BDEA75AD568349052022701D7E51282CAA0A0D0DFBD55B430EAF194D7A83AA506E86156667A746EF9D55A4102FB1234A901C40FFABEB6A5991D57C20819163C9CB9079D7AE5D1196820B1EE7C0E726B369B6D164CAC764A618B4918ED68009FF7AD85E30C91648415F535E1BD5DD93069EC122F9F9D5BFA50A666333EB9883E0CD2A8020F687144B32389C036AE4A3492981891045FBE460BFC8C0FE4170CB72B444AB4389CDB2A21685E1E16108AB568CDE1850B1412414C3914FD65457B5B0B15A2FE389E1C58B175F3C77B26FC7DC790B6B4AE62FA8B5A6D90A8912C53282C3B2D84D3931EBD1D3C0A07D3408C04E7FF99F6A2524DBE042D9252A2035C0FAAE1F405B9B1D7408940026B621CDCEDE3F006938CFCAB28114AB2EF204DD5DC6841FC0723C84E0193AEA042A7667262590082B3233A60F285149043CE944FFFFB9E5E6B50BCB5755FE68FEFC053FE68D7CF242651ECCE672D11EFD18A1107E801061C1EFA7A8FA8001BCA65EB9B5A089CE71CF817C4BB95A3673D26DD089FD8394BAA5A5C523A5528ED903122A0E89BE6BC00DBD8E3EF535010E09C0F11F90BF3889F0F030A619455393FDBCBE79F366E6CE9D3B4949164B51CDEA356F1415173FCF6BB52CA94E0A5E40901AF14257F1CB22501FC885642905DC9C03B2AF16CAA525F974C75D87AA40717E0E4675B49E4F54E70710F8EDF67608A06A6CAC94B3D1728EFBECC831929378AD407FCFDDA3775A5BDE2C2828E8A1EEF77C809458B4155129757E69E933CFAC58F5ABD97979A55CACE1915956EC704B08822CD0E0A387C1D09B020ADEC95892348229D9C44BF734AA3878113DEE876B375BA0CFE91C291C6C623F4A20822A8A6E675F63D737B7DFC54034E18AA0B7A1A121443DC8030E221512214BE9CCAA9A9AEDCBBFB3629F2DDD961A27413AEEE8FEE8B8D3F64DC8E976ABD520B1CB862221B87ABD195A6EB7A9FE1E033606384109C53F34D8E6E8E938ECF37A4F22F8CE9292126F7D7DBD346629F1201BB1556B6BAB51ABD5166CDEFAD2FE254B976D30180C3C5952B04C4C152E4E80510991F4BA7CF94AC8E3F5F1D895E9E6AF6FC1F9C626059B1FC58E033B5E01291272B9FBED7FF27B073FC5EBDCC60A3570E9D2255149004D7DDB474CC4560B162CE050C2D4C2C2C2251B5EFCFE81F2B2F2A7F035359112F17DBC9B9336EED8297AFD417E2C60366A9F1122D8B16539E01B749D1CF6B88E6041B986EF73A05DC2A45A4EBA989BC20F4EAAAD50D2ECAAD5AB376C58FFBDD7F2F2F3B2EE25C08CEC2F5E592D480AF6B349A24ED39424047D577C03FD870541B8804A77CF9A35CB1FB7CB7D57A353DD88AD9A9B9B93799ECFDFF9CA2B7BD73EB7768BD59AA21FAF00297D152B560BA2AC70F75887AC97C44847C4E7A9C31AFD19826FC3C80F8EB7CBB41048B41502B5A5A5A555EC79F5D5FD95AB9E5D8E6B1786AC7D98D80D49F9F22A95C098A883EC5142817F4891403D62B99E9C9CDC87CB9BB0F280C0A847F99895D8AAACAC4C87D267A3BDD6EDDEBDFBA7151515F9234F2E91404494A204682AC4C8420344027F440C8D7ABDBE3B2B2B2B703FBB4C3B81F8565555C53A1C8E64A3D158B065CB9697B76DDBB63D3333D344088405115757D22D0E848F599A3E4DEC8251F79C3973469C52D0A6EB4137B11556290DAA9166B1584AF7EDDBF7DADB1F7C382B38E43E0D8AF4D954ECF2580924DA0AF3438F499E81FB19689F7E5CBEDBA76297274220B15A399D4ECE66B3098F02787CFB2F27B8C84671AE50260000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (125,1,'Router_(64)',0x89504E470D0A1A0A0000000D49484452000000400000003B0806000000CB8C8CDC0000000473424954080808087C0864880000000970485973000006EC000006EC011E7538350000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A0000101E4944415468DEED5B09701CE5957EDD3D87A43934BAC7BAAC5BB28E91B1646CC93612D816364B143B148495CD62075361ABA2F5EE864D2DD91490A5922AA8A576B3A46077612B0B65C862273118022CB163D94296655BB646B7461A8DCE19DDD268EE9E3EF675CFA1D15836067C011EA9AB0F754FFFDFF7BEF7BDF7F78C089EE7E1DBFC226FD58DFFF0D189275F7AED37E3DFDDFF74FDB79200A98C52A814CA6482E414DF4A0284174110DFDE14B85D08907C1309F8AFDFFEAEAEA3DB943B3231FAD6FBAFFFBBE9B65500798308488E4FFC9B8438CDF33C4F95DEE62970EBDFFB1BEB01D7FADE7708F8C612007752E00E017708B8DD09206F28015F0B0F803B29708700F2C60C8180AF0901E41D05DC20055C6376DDC8E93065181CDC8A52DCCBB1DC832CC7B6B02C7F88673CEFE9743AC7EDA280EB4E80C53253C671F45E96E31F9552122DC3B27894177E7700CFEDE008D2D1DAA67F4F1129B77B3CCC2D2F31D78500ABD59AC5307C1DC3317B8160F3791132FE084F9C7961EDDF178F8102973D0AB91C64711278E8FE7B1E6C686A3A5EBD69D3855B61825F9A009BCD164F50D4231CCBEEE578A8E081F381F5C55B04EFC71F00EE5F96CE21718CA9DA844D2CCB9E3F71AAB10FD78780A1DFAEA9A931DDAE1E108583ACC565AF442AADC1B57409141F02DC071802507D7FF0EF4380893065F0F9B8FF020BD40B1F7EF2E9194C9D433CED3EBC7BF7EED95BED01142E5B71D98383FC1E8E5919000A2B81F47FD0C2712CE8BBFBE1CCC54E28CCCD84C29CD52095487CC9110A3E5C29C2B53C54E27E254BCA7E75F8E8B18F053268BBF5837DFBF6B96F2601E502685C1EC5451B3C1A007E05692F3A9CF0D9393D74F419A1203B1D369597406B671F9C696D87AA0D6B41AD8C02B54A0972A92404FCCA24E2062A8CAFC5E3B5548472F1CD77DEFDBD97E50E8D0F1A1A9E7BEE39EE46A440961FB4B0E4879FCC5F6E6841F99B46CD70E2CC0558B4D9614369216C5C570C4D17F478DC0277EBD64056EA2A68EBEA87146D3CA427278171781CF2B3D241A356F85571E554F21F55A332F6E381FDDAF4ACF1D7DE78EB1D1AE843070F1C68BF2E8DD0B3BF7871DB27C74FBE8937FDF94AE02198C141BD02C330D07CB11DFEE53F0FC167E7F5B0F1AE2211DC87279BC03C3905DFB96F132427C5434B7B37501409EB918851F31434B4B4414C4C348C4D4DC39F9B2F8217DF07FB84E5A406CD925FA614DF514841D3FD079225F4FFF6EAEBED2FFFFA3F7EF2D22BAFA47E992A40043E1CAD7FFAA7BB2889E468545464F7BE3DDFE7F2B2B38AC34F46D3139799392B7C7AFA2C740D0C4279710124C6C7A2ECDBC03C35234A3E4EA38196B62EF19AB2E23C989C998373FA1E589518877E900143A88AA9B97928C84803A14FE8EC1FC26A100F09311A888A9443945C8A8470C1FBB12C271214DC0E1C5F7E0E8F3FA7BC2C73485754FAD4C4CC5CF947A79A761F7BE35FDFBBAAC13DFFFCF3E2C69F4E34149014F528D291A0EFEC4EE8EAED6B2EC8CD964644442803F2EF320CC2DB473F86D6F61E282DCA85A4B8183875F6125826A7A1727D292423C036CC77015439029F5F58448574421C46FBAE221F1113D3B3909F91826F4840F7E030A814519010A701D3D8048260C0E5F6C0C08805E263A3C51872A87B04866BCEB72DAC857DDEBF1D38CE7304CF7119C842AD656242EBA15D049668D3C533A71BABABABD9CF55C0DFFDF4E7BB2892384A492890509428598AA2DC59ABD38C49C969058D2D97A8CCF414285D9B0DFA4B0370F65227AC4550E5C56BA0ADC700C69171282BCA074DB40A1A510D4E970BBDA00871F270114989C3E8E6AE4E814E830966E7ADB006AB82C3E98481610B64A6268963181831A347C4615E12306A99863C244A20538B04F15C4005575246C8DF969F3787DB4758D67BE8572FFEA2890FFB3E4090801F3FF3DC6E4A26FD4308F8E0323EE7E252CA14CC27A5BF9199D2DBA1D2B2131E5F3808EDA747317FBDB005A33F67B5C1E9739770B0B150AE2B84A13133F4618405A38BD544C3797DB7E8CC457959E80393308EE95290992E1265C494C84ED58217073C6A9982D5E82376AC26738B763CBE0A2667E7B17A448A442C8165BF789A30DC10CB736F5340BCF5EB977F69089A203A26C9F2BC94C4991989ED996FBDB424C56BC86EDE28E387A3F944470ADF92781CDE245E85F27BB3409541C1D1FF3B0D5674FF47766E05A94C82C6761E6263D4B00E15D13D300406D3089497E4834C2A85B66E036813E22015CDB17BC0041198EF1908781053402E93E2BD626004A31F87D7C769D4D0651CC6B2190936870B9ADA7A51356E58C4E56ADD26840639A46C132464A8958A7FD2C4688E843C9623888A8A0AB9D3B1184785011716E1985246809C9583723189609A9389BAC32F300EC6013FC8DB06AF3CF82390FE600486CCE3700AA57F57613E64A5A540233ABD0DA3B8B9BC14AC18C9B69E01D10063D46AB8D86580184C95F4642DF418472132420EA9AB12B0349A214EAD8294A438E8300C8B84A4A3390E0C4F205172C84D5F05FD4894DB4D2F015BA1DB5CA98C4AB1EFD0A0392B1562D9952C2B8376BB3DC2EBF6C487473F48086A57E99563D320150D8897464A46A7E6A1D0B089235C5218B359606B4D0CACC9ED824F1A9A215AA580CAB2123105FA8746A1027B02190EA0A5AD47049AA64D84F65E231A602464A624419F6914D4B89D8D00F57D26D1D8F2325360105303CD1D74F919A26F38D1204BB2D3205EA3BCBC4486F726FE322A38A9A03C34739FA9FA0C940F6D7309AD564BAAD41A79746CCC3D32995C1D9AFF8125818D8508221A0C115D50E05E0B465937C44FE51205FD9BF9FD12335FB5EE25624DCE19D0AD1987134D12BC490C96C002B1411A1E9F4010D9621E0A299191A205655404467F04A31D0FAB12629190418CB80C325213A11F9540A15E0B32D3C03C3D076E0F8D253319A2B18BF4B5CA975500719BE7968EB3E29A05E18903E97FE8E2EB8D08F402667A5BF59657450204324E9E3CC9998CFD13A3A6C10F95D16A894AA52E94E22B9C84385E05ED91ED90EBD1C1A0BC0BD45C2C44716A4217D54C188677F11435479827EF47E3CA83E8E877E15297144A0B4AD0E8DCD0DE3708B9E8EAD14A05E8B19C0AB99E99960C7A5482404C41569A1871878B065D5E26CC62099D59C06A812424614914C227465504EA03EB8BF4D27EA044BA512934ED114B2D104B1F9305BA43BCDFD4B6EA7B5E5B5605042314BC80A6694D6262A2AE74FD867F4C4C5A552591480801BCC44F824BE2042BBED131D53B90ECCD8004EF2A7824F12898E76AB18131835CE2E0B6577D4446C89D183905BCFECEE328D907C0EE74A101F623D074041F0B67B151120C302F33153A7A4D62B92B41E0A3135330B760834294BA2A2A726567BF420570381C60B3DBC53420495F35F3A5F2D2B6B0305EA6F3C57FFE59C9B2561889E09A9B9BDD2A956A7A7070F0CC9FFEF8C101FD85733F723AEC43A1E6A826D490265141B967833F8784498DCF53389E44A226C8231F3F8BCD52317FAEED19182C92C3CB053F81914823ECDC7CB7D82D5EE8E8153B44090EECBCBE0F7B8274B12A5CC4B982E0FC9BD7158A4AB9AC0DBEC2F3068FC703E6894998C6468BF632625AF0A169116CA438F13A244FF07EE2B2C990BF4960F06F8EA2A2A2D19EAE8E77DBDB2E36DDBBFDFE2772F20BF6A193AA04322882826A7223B4935DE001195E47F9AFF7AD5D9E281C4C34F186AB9F37EA3E83A93423F13F793F03E3FFEE87DA35DFC51EC1028DE73BB04C6237991083B3C57EAC1C5AD856795730D22BCD0196A6E1FEB908EB058B6512E6AD8BA25163270B840098E0704D885411B82D3CAB21FC2640F81A2A494646861C717A569C0E0B6AC0158D27CC635A389B1B4FBDD871A9F558D5D6ED4F6764666D432550821ACAA8B540294970D1F7A2CC88A0A078D405C749C0CE7A884DCDFBA165F87D7E9B6B07A478F289931D974057900D9518E5167D2F1A600CD46C2E130718001E3AE15AE9790362C4F67B12C6CC169110D1E4103CDE7409A81F35C1F92646D828FBC0E3E52E87FD0C96C4083CD373D50722021148821B7BE9C9C5C545DB07477F5F9F9757505D794FD58F93B4DA7C510D786319F52028342E24621EAF99C32B653848A9F81E525C5B1D1E426EC806D3C22457757729A6401F19299761C4D789CF0502391D685CAEF6286D0627517D4623785C1E8CB82FBF09C267806299F34799F3BB3E074B64D8161686868D86FF9E9B993A86E77B9799E0353C6121737272A4E81142994CBDAFA6A6AEACECEE27D46A754CA04A04DA6892E48166C7E082671A3474123492C7A16AE12FC043D3C0D01E5E29014F72B23682FBDCFE7EA9B7B762ABDDD5D30B5333B3CBCC4D5C07F6296AA97F11C622AE49F0D21EEBC4C8D0FB5396F16388A317EF3BD6DADA6A47EC2CF145BE2BEC370EB2ACAC4C8E378A8B8A8ACAAFDDF5507D5149C94EB91C63193687089222A1FC4EBCB46FB158E831B3195BE70859003CB782B3BBDC6EE8E8EC817ED39018E125C05776F9001128437A6EDAD238313AF45B7CEF0E1CFE8842A158686868A0FD690EC497F9B2B44004A60565B3D914B8A9CDCCC9A9ACADDDF5B7595959BAAB81178F4902DBBE81F67475BBA7E7AD127C534968D41904DFDD6B80D6363D78D1D9A9307001225652018E897758E7BB264686DFA669D739043FE8F57A670A0B0B5D478E1CE1426784C457F9B678202D5009D1D82FA46DDDBE7DF7D66D354F262424245E0BF8406FC1300C7FFE42AB7BC1E6C0B4E08991F17168686C82796C8444805498AC5754816FDFEB76996727477FE7B2DBFF8CC00DB858F01E0E943CC3AF0096F8AA5F970FA4854EA78BC01BC5632AE4D43DF6D853151B2BBFA3502AE441E94B4253830C820F55CBFCFC3C73A0FEEF9951CB64C4F2C88601BD2CF29450426C8BF3939FDAE7E70483EB4252479D4EA7756060C01B90FB551F885C87CFE208F40641C60A2421393535B5FC2FEB1EAB2FD1959461574D5C29FACB0D94828AAD3B68A7879185025DDA0E570125F882D763B79E5B9C9D39CCB2B41E8F9B50EEB3EDEDED6EDFB4E1EA0089EBFD0F13425AA03FC85C2E573492B1BAAAAAEA81EF3DFCC893ABD3D3933F0FBC20A60DF7DE4FBB3C5E5930CAD4D2AC342C1D78D6E31A702D4C1FF6D2F4594C4103DE6F1287E0BC92DC6F0A0101353CFCF0C36477777724024B90C964397FB56FDFE33B1F786077AC4613B512F8C08C6D7D750D1240CBC86591A7424C4F7077669A712EFE91F1B84FE0F8BB10F8181AF2E2E7C9FDA611104A04B6D452EC159428CB6434C7B57F8DAFCD5BB66CC43421430908BCD6576DA71D6E8180155C1E7827EF717EC6B81D1FE2313D9E6EC27C9FC5887BAE45EE379D80D0B408CC3471C0191B2A2AEE7BEA873F3C5054589811907E280136A75B16343FDF633A96E4BC1DE0B60B06D78AD7F4E1B827B02973604D67F9AF0082B859FF3415E81DB0018A542A958918C1DCBABABAEFEFD9B3E72154862A9C00F1CB13085E4A70235296FE0878B6F98BB8FB6D4740A81A302D24D891A9302D527152A23B78F0E0133B76ECD884692141023C48809C046E2192601A088E6DC06BF438CEC12FE2EEB72D01E169819BB1981A99C5C5C55BEAEBEBF71D7CE6598D6D7ED620E1BCC751016DD7D2CC7C2D09084D0B2C9951B89B8411CE46D02978D88E5237A2BB8FE02C7471686888BE1E72BFED08086FA9D10B14A806E1A338E4C2BB989F9FEF0EEFDDBF910484B4D48222482482BFD1C003AFFF0763E7F58C2674353D0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (126,1,'Router_(96)',0x89504E470D0A1A0A0000000D4948445200000060000000590806000000C1ED215D0000000473424954080808087C086488000000097048597300000A6100000A6101FCCC4A250000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00001D614944415478DAED9C07785CE59586CFCC68A4D1A8F76AF52EAB5BEE153006D31C8C8D169C6543B2D86C80DD04082C106AE82594408843964D6C200B2C8E77212104BCC696552DABF736EAD2A86B469A3E77BFFF9764ABCCA8D8C663479EE7B98F34573373EF3DEF39DF29FF1D890441A0CB0FDB3D44972280CF3F2F92D77756FDA056D1EEDDD5D573FCF0FBAF1FB90CE0023EFEF4E5D1308944D45C59D744B9C5E5870FBFF7DA8ECB002E03587A00AAEA9B29E754D96500B60250DDD04C278A2E03B019809A0605E500C0A1F75EBD0CC026001A5B28E764E96500B60250DBD442271880DFDA06C0A1435FF976A9069FAF6B6AF5EA560EB4FEF19DE7EF5B520070E1C80125873FDB6F1B009F7F75344E1089AA1B5ADAA9B0B44AF7E15BCFCA961680E656CA3D5976F8D3FD2FDB144023035056A5FBE0CD2506A05ED14639850CC04B3605D0D4DA4127110107DEFCC5D202D0A0688704951EFEF4DD8B004059B5EEC01BCF2C2D002CF45912FEC4C6009ADB3A790E587A00E07939274B0E7FFC6BDB036011F087D79F5E5A0058E89F4012FEF8D72FD81480A2BD8B47C09203C03C2FBB900178DEA6005A180044C0EF7FF9D4D202A068EFE411F0C7B76D0CA0A39B47C01204D0453945E5873FFAD5B33605D0DAC900D4E8FEF3B527961600E6792C026C0DA0ADB3874BD0FBAF2E3100CCF3B28B00E04D1B03E80280D2250880791E6BC43EB03180F62E251F45FCC72B4B0D003C2F071274F0CD5FD81640B7928F227EB7D40030CF3B81247CF08DA76D0AA0A3BB9747C0EF5E7E7C690160179E7D0A11F04BDB02E8ECE9E565E87B4B0D00BB70B626FC079B03E8A3938880DFBEF4F3A506A00F7D40E9E1DFDB184097B28F47C09203C02E3C1711F0FE6B4FD91440776F3F07B0FFC5C796160076E13927CB01E009DB038004ED7F618901E8E91DE039000D904D01F4F40DF008F8CD0B8F5EDA004478D4D5D5250B22C96D6641D82498CD5F18C5F441527474934500B870D607FC878D0128190044C0BBCF5FA2009A9A9A9691D8EE3681843D2408CB4D6633C1F864360BD8D84F738E59301D908AC51F2724240C4C0250F60FD289C252DB03C079B00878F7F9472E1D008383836E1A8DFE161399BE2F98858D30B2C83CDDE86416267E9ED9A7379BCC7FD6EA0D5F0DAAC7DEE96511000942FD6D5300BD0C0022E0D7CF5DFC00EC95FDFDDBC94CB79BCDA61BE0E90E66EEED0271AF3F6DF0794190C964A221D5182EBC26FBF19FDCB5119F2DD80CC0C0108F805F3FF7EF172500D1A04AB58E8CE63D30E42E18CF73DCA8530CBC40A35B7B1F76B618CDE60F4C82F1E0551B37565F68007D0C0022E09D672F22006ABD3E9EF446185DB80DDE1EC60CCA74DD04830A968C2E2C1284F5F71561DF419D60FAE8C62BAFECB91000FA07877904BCFDECC3360710A0D3E9FE013F6F3799CCE9D6BD780E83CEE9FD67F68DC39C225FB3DF87DDE6BF0926D301321BFE74FDF5D78F7DA70010016FFFC236005CB07DCF24087BCC26D315B868C92CE358F562CB92D2DB3F441E6E2E7378FFC4BE85478D1ADB2193400748377A64D7AE5DA6F3096060688403F8D5330F5D300076D8B661DB83ED467C867C719232DBA03A9D818ACAABE9F8C9321A181AA6ED5BD650C6F23832198D3CBB3288B3E5CBD2F1E68DB62EC1441F9A2053B7EDDA51723E000C0E8F70097AEB020058CDE405DBADD87C2677B2CF3853BB9FF1FEB9357CDCFBFB0687E8784109E59EAA206727475A9B9E4429F15154DDA060B37E6209EEC62BD7537C54E89C51635EC0F1A69EA7693C7957A29A3A60129B3FFC415656DBD90350F10878EBE99F7D2700A2278CCEB6284B2F58902CCCF0C6DA26051DC92922F645BBF8A8705ABF22997CBD3D281746CF2BAE208D564F49B191B432359E1CA476945752857D3ABA72753AC964F6E7146D16608189F928B2C641AD943EBDF7F6DB471603606844C523E0CDF308807977D684C4AC9CEF43169A4C753A3D3CBD9CBEC93D49C3236A5A036F5F979144236A351D43149454D593B3DC9156A526D28AA458EA540E70208A8E6E4A8E8DE0FB70CA54585143AE4E724A8C0E233B89D802F8F1634E7AFA4CEF9F276AB42820FE0796396867D27F79D75D7719E607A0E611F0E6530F9E3B80ECDCFC77D7AF59F5C3099D9FF721703998DB13950383F44D76011D2F2C252F7757DAB43A8DD2E263A8ACA681BECD2B8681BB282CD89FD667A4504C440840D471F9D1EB0D8880044A4B882636FBCF2BA9A47A453BB9BB3A533AF645870753735B17F923725C9DE567E9FD73464D1F8AA9FF02C6833FBDFBEE3C6B0086556A1E016F9C0F00F7FEEC51C1CFD727F7EE3BEF08F5F2F4085C1800CB17C2E4E5AB637954565D4F6989B1B4794D06F978B8D3B705C5742CBF98C6345A4AC7FEF52B53C8C95146D900945F5A457E30E89AB4248A0A0DA2B2DA06CA2DAE2465DF20452C0BA48CA418F24485545C5147A5B54DE4EFE3C901B9B938F1E41DE8E3C57384304FA5655E608E9AF2BC01CF0F8A74A6830F3E786FE3540023AA512A2CAFD2BDFEC403E70EE0BE871E13C4623149C4124D6A52627ED6CE1DABA4523BC7B9E5E78C0468B45A3A9E5FC20D3F323A4A9B5767708FEF1F1CA123888282B22A2E331B56A6D1DAB4E5A444123E9A574455750A4A8E8BA4759025968C99B7170086DE6042528EA415CB63690C9F5D505A43ECAEE838444A5A4214190C463A55594F75888C90405F5A951287F718C909C7907279329F558E9AD96BCC90B85CC8D4C188D08853AE9EEEB923EA512E41E705C0BF3DFC380730B949EC249DD75D7D55CBFAD5996BE6D2FF9EDE7EFACBD15C3A72A28002FD7D68EB865530500C1555D4D2D7C7F3897D8F2A121ECD8024C74550318C7624B7888650C2AD4D4FE6BA3F32AA4645544AA58818571767EC4BA0E498086A80C1F38BAB687064049114C3F34137F24341790D75F50E5042640812761822404DA79047C6C6B41C9A9F971B37A80B802EAECB5E70D4185D5C5DED9CE4CE54A3E8D0FDF289FBCF1DC04F1E79E23400C9141072B963F96DBB6E96852D0B8E9E2A3FA5B8E02F8E644366EA6835BC9719DED3D595BECE29E0BA3F0A6364A6C4D3156B337973750C9A7F34BF089AED0C1869801145ECDB8EDF42921A5A3A28267C193E2791827DBD01AF8E478283833DAD4A8E8724055315CAD382B26ADE37A426445202CAD3A6964E2AC279B084CCE032392AAD6EA2968E1E0A0BF2A314001B52A9C8D7CB7D8A644EF174C142577D165163329B7E874AEAC0CBCFFCFC1853C1B30270FFA34F4E8B8069D120169BBD3CDCAA77EEB821ACB4BAD1E98B6FB2B9E46CDDB89AAE5CBB827AA0D37FF9BF13BCD27182D76D81E66F5E95CE3DF76FC70BD997182821269CB6A0940C8081F34B2A7812568D8E41DBE3501525A2C611B1552E346575140AE3AD494B244F0F37BCB7864793337205CB03E141013C07B084EDE1E68AA41E4552A904AFA9A78E9E5E9E3F18CC96F66EAA6E6A251F4F374AC1B155631AF286238825A24578FFC2A386C1339ACDAD78F28141A0836F3EF744D5A2003CF0D853002081C145342D122467400C8FE98C832A9DE81F6FB95E9C9C12297AA3FD55FA54FE3ED917A392A9BC99B6AFDC0423C5F2B292E502760BE1BACC14787C3AF7B2A379A728FB6429A4414EEBB13F03FADEDEDDCB73477D4B1B3C3B9A56A725A00B36530E1AB4B2DA460A09F0A39588020F37672E3DE5307E28343F0392A445797B12707AFA862047A1141D1680CFE9A4EAC656C8903B2F5759B35451D7427247074A8A0925B188A1263CB79FDE389EFDB8C3DAFB8A4D26E100890D1FBDFDD24BDD7302604B820FFCFC69F34CF9990943241253A35245617181C227AB9E13F5C6D59DFE0C37C193B654ED22DD417FD4B152BA6AFD4A48CA726A0584AF8F17708F8D85913665A6222704F3E747213F2A24B23548CA99303283918D28605FC048420E58959240469391725919DADCCE65271D656CFFF030AAA61A44981A79219CA24302A90ADE5ED5D04201A88E52204703432A1E29F652292D8F0EE511545EAFA0F69E7E00F4A67844098B40678061AAB1C0C66D4A829EF8290853A600166199F0F1479C9C1C5E7AF999A7BE9E0500B617272626DA5DB7334B67417A66C9D1B05E4C6E011EF4507016DD2CEC169A57E78A7A1CC7BBF9C09658BA5BFD105DE3770D155454D2D1A3A5D4DDDBC74BCB8DD07D47683A2B398F1596900BAA958D2B53E1A5E15482BE80ED1F518DD10A543399CBE3A8BBAF9F8F293AD007A4C3DB5321352D9DDD90AF1AC89F86474BE4327F2A471555812DC8CF8BD260F821F518127203BB2EC009E3B2538E0868822405F97AC1F0C1348C2AADB2A10D704D94141D421EAE72449D69A2B8B0DCDC2DD2FB4FBFC6C15E4AEE6E6EA4D1E9DE7BFEF17FFFE7690098F1A3A2A2A49E9E9ECE5BAEBDB16F96E127E547340582D481C4CE9EF4D365DFA37B94CF52ADBC98063D9A85873D1F1392BC968B5F523E4747423EE59ABEBBEEC7B4D7EF5F884D0D8FE414A294ACA6D8B010DAB82A957CE1A979C819274E96913D4E9295A149489A35900F1605ACA259951A0FEF0D8796B7202957732F63656968902F22A8811B3E24C0071552142249834EB98E8C30646A5C38FA024F18B915EF6D430FE2CAA380199CC11886E7472F0BE091D0DD3F08D9EA42A3E84291F8DC498F9E4CCC538D3A7B046E3D6A44500F27B9131F9F30FBA9C7C6A60360DBE6CD9B252A95CA0920FCB7DE70738D35E999190522470F7A306C0FFDB8F719AA70CCA761713F5D37743B7D96F48A3090542F124467E42D50114701FFB981B6046E84E1D3F8897F8B5C905F5285FADD0FB9209977C327CB6BE944E1380C264931F0D41294A57968C6A476767C36148C3297BDAE02D21212E48F4889C685A14728ABE5CD5D2A4AD03018B1B6A99DCAEA9A7994A500069B2995D62AB8B12383FD282A248086217D558DED646727A118C090CBA47327E2B92AA229DECF00B26B7090DA8F3B308C2F82CDC634A300F0E87400901EA9BDBDBD1B8C1AB1EDA65BF2AC1B9D01194FD03C17D849E991C8FB686FEF93542A3F412AF1305DA9FA1E3DEF7F0F3DA47E4138B2FA3DEAF06E1039A89C6863EB0EBACFF97E12862A501175C3804AD4EAD1909F14345E4EBCF26152E3EFED49EB56247123B34861BACFE63EAC1A627F639D72796D3385035666722C64C8C04BD521959A376631C82B0DAD9DBC3963464D851CB1CEB90CEF51A02C0D09F0A63840650D5E15A26C54ABC3F34094CE4EB30C7A366BD57C8914B227856D24A8B444A271BB4DFE1C1DD5FEF6C5A71EB96B1A808C8C0C3B8944E26A329942AFB9E9967CFC6E674D7A6656447FF5FE921274EBA8C8E95B1A13AB69B3EA460EE0B5B64374C0EB35F2903A094F793D6EB2171FB3F374FF2D458535924E2FA7BEFE7BA8A36B37FD5F6E1960D4504CC432DA808AC81D0D18AB7CF261545F2F06633997859CA24A5EF944C06B572329EBF57A3A81E68CDD12C24AD044480B4BF405880CA3C14C2909111402884C9E98FCB0A62C0932C67A85CAC616EAE91FA2D8D0409E3316DF80595BAB367193B20A8B2B844874DA71270168349AFD2F3CF9D8DE693960F7EEDD92DADA5A99542AF50A0E8D581B9390F8B0B38B4BCA5CF273BA22C2876A41FB0B8FFF269D484B1BD4DBE945FFFBE8D5B6CFE80F5EAF90BF2184B24C61B8F84F2939B119EF39335C54B4FBD29FBE7C8C3293D6C25B2448CAC5ECCB6E140AEFDE802860656A367243694D23C5842D43142490C16844B454505B572F3C3E9277C54A18938DAB8791BC59071C0DC3D6A15A62D58F8BB323A5C646A23973E4209A5ABBD143F85164881FCF4FE36BD50B99945A1FDAB17C63341A78E7259EF478EEB8B34168C6B4FB5F7C7A0600567EB23CD0DBDB2B7376767637180C7EC9E92B76844644EF93C964DE33A5C7128C4F3C0E915EA4A7B5A3DBE865BF9FD2CBED1F7300418670DA650EA6509F0F48D1F788B031FD45F2F7ED1455D65D430E760FA069194244FC8A3EFE22801CED336823A2C0DE41CAC7D365307C6C7808AD45190BEBD071C854231225D378360D6533981C4441A7B29F836009B605515004F961E7CA5EC792703D3AECCAFA5694A61EBCECB4B7979CCBF8E1CCDF90CCC7206126185F241A77C63901E0271AD7FD2F3DFDF3BD96CA50D1AE5DBBC4EDEDEDF690223942DCD3D1D171D9EA0D9BF7FA0504ED4002B417CF909FC924CDA0A8ED46E994AC928274D1F49ADF03F442FB1F3980604324DD620EA4109F8FA8A4F9755A13B38B6ADB9F347BBB07989705FDC62E31A6009F81BA5A904092B2E8E0A1955458D6C66B7DB656C0423A1B49B906F57D126AFDCCE438D2EB0C307C251FCAC5C3E8E9D0FEBE8111E4876A24391D373C2B4D5BBA94545CD548CE72192F455DE5F269D5CBC2C70FB3BD9F25FB5194B134E1F5A2C982650E10ECE71824E8955F3CB1D76A23369113245AADD601DECF16DCBD8342C253D23232FED5C3CB7B85754962079550A3A4875EF17E989EED38C80184E8A3D127F8D332EF4FA854F10A0750DEFA2279381752B05FB5909ED424924A47266A6F111D2FD84606FD633886085150C6BB60D623AC498BC7C98A29B7B8822AEA9B914B826915BA6D0DBAE09C5395A41C18E28D577C6408F50E0CA3339E2845E323C8CFD37DFE758205DDA72410EC424328A70D26C319238B26AF7F2A8819C69F88048D46B7FFD5671FDF3BE78AD86434141717DB41921CF1D40D1AED979ABEE2DAD8C4A47D4E4E4EFED61A3593D8441FCA3FA26B07FE890308D3C5D20EF2A560EFCFA84CF1220750DAF22A79B9E44072BA4839B29332E25E877E7AC33B1EA07E72A3B7252F51BBA98DAEC8FD3E6D8B5D8F1ADA81573A6C3EB40CF53E9B19D941125914B06E99AD17A7C545D228BCBFB0A296AF23A7E07904A260FA6859B074FBCA3C8DD4F83EB638D437384063E81D44DCB8A24501989421AD56B3FFB5E79EBE5B60A5D57C6BC2AC41436E10A347B0C789380182A7542A0B5EBF65D39DE191513BEDA5F60ED606777A78F3EBF297295C1B4F37921705791DA6F296E72600FC1200B249265552C7C0CD94167E0F9D6CF84C38E17D5838B6F143B1C9613C51CB4D4EB43E6F37693EF2232F3757DA90914C6E6E4EE809AA50DD342191062281C7B1AA8F0A51FD34B675D172C060E3696690C5553096BDDF84CA86DD83DA3F30302137330CBB001053018C8D8DBDFFF5E787F65556561A607B61DE45F9495962630A77777707B55AED8A9EC1C737202071FD862DF7F805F8AF46D5CA256326843E3466AD863E8AA53E0AF4FC9C2A5A9FE1008A156F918FEB5100E803801D00702F9DA83944AFFB3D44CBE5314247FA299152DEC18FEFDA11403FAA7894D2E4A974128D16F3F000F4036BD213F89C9FD5FB937D01CB0532343F5367338B6BA4A6C3181C1A425EEA86F71BCF34A55300580331571E50AB463E2CCECBDE17181838F6C9279F98177C5BCAA42CA15292EA743A3912B51BAA25FF8CCCD557646466EE7375730F9E9913267B063375A2CCFC5F6AE8FE470EE054F33BE4EBF60DD94B06A96BE8064A09FD09E5D67D02003FA375AA6BC94D70A763117F14366BAEA25B25DF17955737517611BB6D4546EB33965380AF17373A5B17F07677E3AB60EE161AA9B3BDED912557456B3B8DA854B3AA18D1E4F52D2612269EA39E302A7BBA1EA93859F03E4C3A5C5454645CD47D415393348C6F8FDF9DECECECBC1011C1576CBBE6F6F884C45D320799DC52829640B3F52633393B3E4CB51DF7908FDB5F482A19A1EEA1ED941CFA20E5D57DC4016C4223E76896A3AC7D979EEEFD1D55575598D5A31AF13A183E2A24882F3DB2468DC15D8DC4BCCCCFE7FC3452D8D8F266534B0B7576F7F01E619A312D829869646B0044343C3450AEA8ADD93F34349003296F81038F2C1A802559429296E1E4DDB0F9F8F9F9C55E75CDF67DA161E11B701091B59E815D9CC6904F3A630B0DA8E32821E867945F7F8003B81249592A48E9B0C7FBF450D75B742C3B9BD66666082E0E22537165BD1DABFD59271C8BCE99CBCCE26FDEB5385A6E696FA7C626051A3D9345EFB5086006084BC6D76AC6FADA9AEAFFACECEACCC67BEBE1B00AE4D4BE848404CDC71F7F6C3AA77B4367F60ED8DCD90DBA296969EB366DB9729F97B777D834E38B668F32580F6036D7D2982E8A0E1A0E50AC2E99460D1AFA9BEC10DDA77B9C8E1CCBA10D6B3349A9EC23FDD8A829392654903BC9ED2C2EA29CC52DEFBDFD03545E554DC86D13C6B3A2E38B8A04111B6B6B7B3A5A4FB42B1ABF868D9BF09E161CAF1B6A3168341A35CCFB17948417234BAC7790CBE5CEF84C6F1C2CE8BA9B76EC5A9191B9DB51EEE8B2903506CB7F3BD385B3E7903E735555954EEAE02863A1B4987B7F4EDFA8258CEB7C697935B577759E968FE9B39B33B2B2101093AF63A734D4AFAC6A87D7E35CEBF01A051CB31346EF974AA56A171717FDD1A3474DC284E1CFDBEDE9537B073737377677009BAEFAA1728ABAE9E65B7E141717BF4962672791CC18735B34BC64C6DA838521E0C040BFB1AEAEDE682F93CB16D348E90D06AAACAEA1AA9A3AFE1EEB558CB54898D1F14E89048D7AA4A343D1F49566545586EB6F866DDB20394AFC3E8208D3A2F4348EDFCB70C6E8E7FD0B1A937325D63BB0521E27E0A1D7EB035352D2576EBFE1BA7F0E080C8AB694A06742596884343536E95A3B3BC5123BA9D4522335B5016B685650E1A912360EB0DA28CD55C5884E4F86A7478249AF57293BDBBE85E7E7E1980A2637B06B37AE7D10B9702C383858CF4A4EC182B1BF936FC8CCEC1DD07CB86097374E3678FB7537DCB861D3A62C575757B7F9A56761B2C52E0C91A71D185139E0B0E259B746F6F5D1F1DC02EAEE512E6064307B866F2D21E36118EEED39D5DFD3F135644681E7ADD8DF89AD0FD7AC96C9643A68BD69A6D75FB0EF884DCA526161A114DAE7E8E4E4C47A073F544E91B7EDF9FE1D29A969572029D9CDEBED12EB37084C7D2D2EDA949F5FA057EB0C8ECCE347C746293BB7904B0E4D33DEFC1DEB9C9120120B63AAE186BEAED6BF1A74BA5A56560234EB1CFB587D8F87362D2DCD68CDEB2FF8B724A78E3400C019C9C813C70D8C4B4848BFF5D6AC3BC32322E217E2E9F3ADD04DEEEFE8E830BCFCC63BC6DCA262199BB65B958F59CDD4FC208C7A6DEF404FE7DFB4A3AA5313954D3B0028213743B8548D838383616A92BD68BEA63AB37760530684AD0F2E2078FBF6EBB76DBFEEBA2C4F2F2FAFC548CF5C93D96B6FCED276F5F6C916564E4E4FB0B35F2F26329BC64687FA4F8C0CF41E83CD14307A1BD379E4B7415CCB289C4A3F9FDC5C145FD49E39D24079C67A077F5C40F89D3FFCD16D6BD6AEBB0ADA693FEB8E8C796E1098BA9F1972DB8EDDDA2E659FCC5A3533E7E4724A678B8749A71E2E1B1DEEFFABC960689CD479D8AD1F958D1A9EAFC3F5189F7CF2C94519DEA6DF949F39D270747474862779C1AB82222222927F70E70FEF884F484862CB94D6A5C73A0CF6D876D36E6DA7B257269AAFB19A0304E4463136D8F7A541A7A99CD479ECEFC539AB607BCD4275FEA2FC5705967A075C1C93255FEC5E76F5D5576FD97D6B5696BFBFBFEF62A467A23AA1AB6FDAA5EDE8E99589173832980A026DECA05635F88D41339ACF1AA973D5F98B16C0CCDE01922465230DC892071B69E082C3EEDAB76FD7D55BB75E2D777272982F174C1A9F3DB6DE708BB643C9004C37F65C934BC8B70E7A93A7570D7FC3EA791CBFF57CE8FC450F60AEE550182C088D4CE2BFFCF8C7B7AF58B122950DF9E6929EA900DA7B94B2A989546C75254B64361BF5D5E6B1E1BF988CC6BA499D07847E94B6AA73D5F94B02C07CCBA1F8D3B2CD575CB1EE4777DE991512121A604D7AA60268EBEE914D2D272D76B66663A7593BFA57C1A82F99909B0EFCEC65E3E2A1A1216D6666A6E15C75FE920230D7722893259C6FE8DEBD7B6FDAB973E735AE6E6E8E33A5672600BE8C6869722912D42283F65B6CC759598963B4E1183DD886D8F86042E7CD936BB7DFD9755ECCFFB2CCD248033AEC03EF0C46728EBBFFFEFBB3366EDC980E8389E702C017D14FD7FC649408A6523BA3E62B7C4E03F37ABCA40B3A3F80BFABBF0B9DBF640158EA1D90A01D612C76F3983F7687AC5BB72EF3DE7BEFBD353A3A3A7806000D00384EF90CB21399150E66DDD7A0CABEB5D234735A99909060FA2EE5E6920530D77228BC3F10D71076C71D775CB367CF9E6B11294E1300460180FF2E2161502A18B2A522F329667836386349964D2BE572F9A88F8F8FE1421BFE920330D7480351C17A8760F4123190A59D5BB76ECDDC7E7396AAADAB5B262543890399F3D8AAD4A4D763EBC36B47905F7417526EFE2E00CCB71C8A2D243535356540AD49696DA8ADC573F6BDAC163638C3D6851277D0CBCB4B634BAFFFBB00606D3914CFBD50D1B088F01CBFDDD1CC1645D87FCEEA47A3A79A4CB2DF7575B32400581B69B0B215BBE47C92663269A0F56A36A36F6868604B8236F7FABF3B0033471A902509A281FFB3114F4F4FA6F1C6F335BBB90C6061B2C47F9DF8C92F50B8482FF4FF014564AED27794164E0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (127,1,'Router_symbol_(128)',0x89504E470D0A1A0A0000000D4948445200000080000000490806000000F5D92EB70000000473424954080808087C086488000000097048597300000DD700000DD70142289B780000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00001D5C4944415478DAED5D09941C55B9FEABF7E99E9E9E25B3AF992599C964210B040C18C1C3128E20B8BCF394457DE811E53D8C0B20A028060282605883E1B118091E168D62F4C9A292030121099010B291C92433C9643233C9EC33BD56BDFFDEAEEABE75EB5675F56412835A3977AABABAAABAFA7EDFFFFFDFFFDF5B1D495114F86759AEFCE6CD01FC3EB5D8EAD43569F9D8FCF835FDC9B51250D7FCEB1C6C516C63FA0663C0BE06BA3E8AFB3B70DD89AD0340E9FCEB0B4FF67E14FB4CFAA811E06B4B6F2DC55B5EA0287203AE59B0C9BA887C9F893530EC93933B4D5FD37FE9F3C32A213AF1363B2449226D1BB68DAFAEFBE5BE7F136002CB37AF5B4EAC723EB6D3B02D545BAD15689349006103EBF3521D2B49A935B65E6C9B0819920D36BEBCF6B1C3FF2600B75C7BE35D53F07E2EC476860AF62C6C2E5B0069C0C82290264A98E4F160B476663F30C027DF4B024FFF32EBE436FEA56FE2EB4E6C6FE3E68BB8FEC39F9E7DA4FB5F9200DFFEE13D65780F9FC1F659BC95C5B876DA01070C40C9595A31585C1B442E5E0598DDD6834E4FD4772F482A1B526B1D09521E42C1BF4806E9057CEB85179E7E70DB3F3501AEFBF17D5549C0695B84CD91D112C12E29202BE0534402309200CCB7536B1577512F4AA93F1AE8CC9A92C2645B92DA0919F0E5DADFAC5EB1FE9F820037DEF6A0A45AFA7754172F918F8EC5E2E0F3382121CB1089C6C1E1706445023073F1BCF55A10013802E85C3B0B7E0A6C8E00220720097C8143028FD305F90521280C05E9E16DED9DF43A2AF0AC6EA097204212FFACC0F553CF3C7677E42347809B97AF242EFD3FB1DD843D34837C5E424E8092484030E087D6962668985A8D0A5B86B6BD1DB0BB6D3FF40F8C40381245324826D66912DB41E0C675FB192200FF5AB0CDC4F7340118D81505CC7ACF8100067303909F9F0785D8F24321282D2984992D8D30B5B60A02FE1CF8C1F20760E7AEBD5C88306E4BC958D183AB95B8E7E135ABEEEC39E90970CB4F5779F0DA5762FB3E765303F99C78340A4EA7034AA614C282B9ADB483F4E228F965E5848C44D8073BF7EC83818121180F4770BFC3D41B800911C0F2B5087066BF0E6026CE7304208BDBED8682823C280861A38087A0A9A1169A9BEAA018BFAB66D9ECB2EEC5F5F0ABE7D6A121C87A0230EB24F06C88A07D15C1BF6B70DF1DBF7CF8B63D2725017E7CF7A397E36597630F552795B90CC3C323E0F3BAE1A22567436E20C72884C8CD38925F5462F627B08376A095ECFCB01D8E0E0CC2E8589809136C6CD69303046411C7751E70251DD30D4400080503100A118B0E52CBAE282B8159339AA0AAA2143C1EB7ADFE89A077BB69D97D70B0BBC7A80D04EB1411B4AC22498830EEBF0537EE7DFCFE5B1327050196DDFB781EF6D64ABCE41745713C9E88831C97212FE8A71D36BBB509BC1E8FE6E252AC67D431D300CF4FC007DBF7C08EDD7BE1487F920C924A06D69A65249C13F713F2A4C900826D3BEBA407C8F1F92094970B179EFB7138FBCC059484135D9E58F33B7865FDDF198B6733064E140AC523B07D466A0BFFB5EAE7B76CFB871260F97D4F62DE0E4FE3F5EA45020E3801178BC7C081B71FCA0B407D5D15CC6C6E4257EA1429621A4F7962C4E309786FDB2EF40E6DD0777400C910A19F918F20B54CAF87A93515F09B757F81F1F1881EFC54AC4FBB761E74F51D83D2D7F2FB5CD42EDFFAFA6530ADB12EEB7EEAEDEB876577FF0206868735C8D300B3DBACC5EB2C3FE501D87D51EC93DB70FBCE9577DF143BA104F8E9834F9114EE7A6CCBD2459BB47032A876C1FE582C012E97044518475B9AEA613AC64EA7D399D206E65E41250366129BB76EA745A045A7CFA5D64FF6EF4151B9E6F93F510DA1FB6C917BE7737B769FFA5D897227A0FFC725E7D3583F91E5DE8757C3FB3BF6E852C3B413D06860150ECCB402DD7E15B7973C70E70DE1134680BB1F5AF3085EE3EBACD2CE04B8D123A42D34168B51AD505C58404344637D8D8EF17C5870480E4B72ECDDD701AB9F598724881AAD9F23427A95069DE897224CDB8857F9DCC5E752EB9FE8B27D671B3CF4F83398EEC638A08DDB29DD68251059A198D60AEB70EBD215B77F2F7EDC0970CF23BFFE0A9EFEB83E7F1691203331444489C7E3E0CFF1425949112C98D30A35D5654C8E6CF40C246D1491A07DDF0178E2D7BFA72460533A2101522421C0E7C39CD66970F1859F40527A6DF5C9E0D0303CF7BB97A07DFF41CC000AE0F40573E0D479ADD4A3DD7ECF2AE8EC62323849624A060C01529E404400A692684A04781AB7AEB8E727DF968F1B0156AC7A761E76D3063CDF6796635B11C39A005CD915C10847C234BE7FE58B97801F7368435800562F001587692F8124E8E882C7517C514F90025BAFF8B57B9882A168DE9C19B0E4DC33C1ED72D9EA8F814104FEF72FC2AE3D1DA847C653C090AB16E07DE761F6600E3E0F7A5A13A452C88C9902AF15A49577FDE8DA6F1E1702DCFFD8F38578DA662043B0603570028C07E05F67260359E228160B30F6CE6A6984F9A7CC0097D3690803A28C41470AD533747476C1AA5FAD4D7B0256F421C98A0BF361E1825970CE59A7D956F904F8677FF767D8D37E00C668BD4232940325418D5862F772AF0DA0DB2080C00B903DA7DFF1836BDE9A74023CF8C46F1FC0F3FE1B0CE559301080B77E2B32E8882027C0EFF3C0BCD92D300D452149173D6E17052609B0C31A7CBEA9F7DE79A01BFEF757BF85B1483425F4C838BFCB0950575581EE7A267E663375D9564BFFC0105AFC4BD086C04750848A8A3DE2C10111F8BA3785D9812471E25038E268C8189EBAEDC66F5C31A90458B9FAF75E3CE710B6023094690504C848063111881824DB4945AFA45C24117D4E27B16A27AD2ABA9C0E0A96836C6BFB5C4EBA8F9C4B3C0679EDF379691C279AA27F70085E7BF35D88CBFA913CB29D40DD11CCF5A3EE28C430D04209E862C20005FE859751571C8428A6A276819744830492D14748CC08924108B2E2D00CF8940749560D715D7DEBF55FEB9D3402FCE2A93F9C87E7BCC857D68CAFED81AF2BC182B567C8B456D2B99BE17D525E96E967E13AA1D0B1078FDBAD7676BA0F584210111AF0FBA8089D3DA3895624899688E1B5D8189FC1E0857BF5BCE1F7497AD2080890269E711FB7BEF996EF5EB57CD208F0E8D37FFC069EF3B0F5089ACD12AC687C5D4008E04AB66624606BF6EC7BA432E8C5F0118EC4A81E203DC67E6FBE0F5822694B143D92CBE9023B069FC1FF73C41013C268E9660430055E5BBF72F3D22F9F3B6904B87DC5134F9495967E5967CD3CF86014788681185342F03579B3091862B075EE1C2D3514F0C18CE67A58BC683E1C3932006F6CDC0A1D07BB310C8CA8C52649488268348ABAC345AF430844BC87E6452452C374E8330EB06DEDC663F8F745E01AC3838800C69080B7BBF7C66BAF6C9834025CFD9D5BFF6FE1C285178800B7B70D1CB83681368CCC991321918843517E1073F826380D459D48D0EDDD7700DE7E771B1C3CD40B43A361AA15F45E4001BFD705575D7E29F51AD1689C7A01428CB1F1088C8F8751F587211C26AFC3345C90F23499D740B609F9E2843089041DC320AF93FBE230343402127E9EC763AC2D9801AE03984D2305A46009108BC5076FFAD697F2278D009FFFD2B54F7FEAA24F7D4138B42A72D5A2F1756E9285C153643950A31181747649513EA68BCD30B3B9D1964023D6BDE3C37678E3ED2D70A0AB17BC3E9FEEBDD2A2105C75C5A5D4DA8F752195C097D7BF0503C3A3E0767B04B38724C16C22C9441C4A0252183D0012B5074340E9A411A079DED9772D5DBAF4BA4020900642E4B22DC6D7F5808BDF636BF41A59880BA643C1DC400D29D7569416526B278340D92CC323A31494BDFBBA2041DDBBA48BFEC49B4C9B5A49CBC0135D3A0F1C823FBDB201FAFA87C025045E503730D100D6A073E30BB8B3B7EFC8EEDBBE7FF5F4492340E3ECB3EE3CEFBCF36E5874E622F3B972A684C840068B3571ABCDF595D4E5761EEEC3744D01127A6B2B4A60E1829974924936CBC8E818FCE5B5B7A10D81571449ED554537BD4B7B453EFBF4792DF089450B264480DEBEA3B0013D0CA9040E8F8C53EB4FCE7DB001BE605EA1A538648E21A9F4A14387B7DCFDE36F9D32A904F0783C375C7DF5D5505C526C02B8B9EB16C6F54C6B5C4A8BF2E092258BE976381C81EDBBDBA1696A35048381ACEE9F94695FDDB009F610E0B5A1671DE0E2797EA43E70FED9A7D1295DC7B2F4F41E853737BD4FB5C7309290E8004206A318E409C28F1E9A6C33A2F6C0812EA259B6DCF3936F4F2E017075C3942953E09A6BAE018FD76332C9C25CF8658CEB1C013C2E093E7FD1D97452C6441702FCEB7F7F0FDAF677814C805724304CEB64E702F00BB937390E9FFBD43950515E3C2973280819DEDABC0DBABA7B610485A5460649902F4AFCF84186ED435DDD30343C446E7BCBCF977D775209F0535C5D4FB65B5B5BE1F2CB2F032DDFB09A64A19F90C17B8AB409F2E7112176CEA253A0AEBA7C429D4C143A49FDF6EE3F84D74A4E3BE3E7F42902B04D688009A00C977DF6025A2D04264474F71C81CAF2127B9541C172B8F7086C7C773B5EA70F46C63005F5FA18328804A239018E1C398AAE3FF59CC99615B77F6F7208805FCED130EBCC3B340290E5FCF3CF874F7EF21C73176ED7FA1962686B52B19B36B51CCEC0189FED42884380DFB17B3FA65C6EB577D8193FFA602FEC0545E19D035D723C4EF8C267CEA3E9E5BB5B76C2D61D7B60782C0241BF17CA8A0B69D5B012B5C944174286CD785D42AA51D43C3E5F8E6E3C03442250DD1E4151DBD6D69E7A8E9110E0FE3BAE3F360210E0B5CDFA998BEEC0D7D7B1EF9F7AEAA970E9A597A00BF358CCB831CEC0312384667F79011F5C78CEC209CFBF8B60CEBE7DE75EEAF68F0E8DD1D9BB562410812D6207C9E7F3FC6EEC64A0C0B363058A3AA98590A1BC6C0A92A1118A8B0A264E0624C1E6AD3B60575B278442F974CC43379CC40C0E1DEEE9C5B87F90929F298A6F79F0CEEF4F9C000CF864EDA89FF9312480E33BFC71C5C5C570C59557405565A56E8EBD68E2859D2959786770C159F3212F2F77C29D4766DF0E0E8D504BDA7FA01BBA7AFAC19BE34BE6F406C00DAC00C584121907011870A211F40C48E42AD40DC43384B2FC3EE439893737BE0F71C591D45BA01F2D4C0AD404B4ED6D87A3FDFD86F90DC4033C74D78DD91340D28694928D804F4A65AEA9AD672C73389C4B45E7109778D14517C1E2C51FA72E2B638A279A9143E27E2201F366D643435DA5AD4E223198A4753D7D0330383C8AEA7A1C8687C7E8B87F0CAFE52416CA8EFA0940B47CCA072CC4A1DD857886680C42411F6A85623ABF813C1C6235DCFCB7D736C1C068988600C350B2BA1A1A1C865DBB3F44B247047D9BF4002B7F767376041080EF529BB7AE65E1AD4E97DB72A6497373337CFAD3174325F506E2593766337288FBAA28C98785735B84719D4CF03CDA3F040368D9C3D839C32363308A422F42269632E55C45FF87035DACFE4D219ECC4727A4E4C8643C1E85FCA01F6AAA4A6146D354147D9ED4A0D3EB6F919A411F7849EC7748C6E9255232C7EFEC389074F98CC7154C66DDB2EADE1FCE554C2CDD400001F86EB5911CCC573B7DC10F5D1EDF5576BEEBCC9933E18225E7435D6D9D78F0464000AFDB098B4F9F49668121C8C3308400139047462314E83132A2A74EF25044428D57F62221272206B7DF127BC53ED89976D1F10224434128401F3AE93CD48B9AC783B1DE099CB1A7744D07027FF060171D77E0475FF9908ACBD64757FC686EB2DB8D2490B81F3560C1776A56AF3692F7E45637CDBBDEE3F35F960DE95B5A5A60C9854BA0B1A1014CA75ED3944F01BFCF492B73E374C68E941EAD3719BE5544A2CE820420B89E9108D6081F03FEBCABD51D4794BB233DDEAB3B7F7C7C1CF6EDEFA4E95D02C39AFEA96771593DC90779EBE30FFC643EB9BC88043C011C8CE57BD4462C9F94DB82D8F2AA1AE6FC8FD71FFC6C360470D2912F0F4C9F3E0DF5C162686A6AA2B3748CE28F0554D119A4E8A10D9DA353ACC0554C0A7C4A667D37D98FCE49923541245DA487818141E844377FA8FB300D81A91FC1D03DF3C84DAF674BEDB2F2FE930F2D2335EC84FAD5742448118051FBACE513F0896C254F41905C2654513FEBAB3981D0926CBE334993BC5E2F250169C1602E7A8566D40A2D50575787E9998B9BCD03BA717D9E0CFC8F3228025FAE28909104220299934139461720597B05297D6D027AF7E11E388C2D1C0ED3D94B29D02D1E9DE7EB2E74845491B7AD7E78F96924DAA85E40950CC91EE209A0093E62F9391CF864B4A5B0BCAEF58BFE60C1E26C0840F26F023C113A692224D781801FEAEB51F16378A8AAAAA4C71AC96024868128C620CF914044142B4178AC01C0461090D2216DA07F4005BD974E81D700E7C1976DFCAA095749FDE0A95FDC7106191B6248A0E808C0B87EA72AF834F0432AF845D8A6100294D5B67C3A9057B4301B0268E06BA01BC9907C2F0773749239909A426161217D0AD7458A37668410093A0E6545B1B0672583AD1F8F27E7A5643633323C02838398CD0C0E425FDF518846235403B1A0CBEA93D53AE065EBDF4832565313DB9F7EF4AEB3887E54499060BD004B004DF17BD498AF814F802F565B6169CDF4737343C5A764513E1682AF81AE6DB36460B7F3F2F2A0A0209FAEC91C043A6022990B3AC54CCD8BCDDF9208624D90BD03181B237509CC6828E043749B08B914E01AC829B04D0820279F589233FEAE513A0C2612F11DCF3CF6B3B3898E245926EF0578D5AFB9FE20037EA90A3EF50025D5D3CE0AE697CCB0DB07A48C6BB47A2F47042B327874C793F7FCFE00F87C3EFA3C3E0919A252B19205098C44C8CEF449C793F48C54FDC87C85309D2A1686716CE47711A2D158123806685903536600371021490053F065F16F20B1D9001260E7B34FDC4B66B38CF15E8025006BFD24DDCB57633E19D128534940C240414955D3C260416993FD0CC0A1826BE501BC1C19D22448AFC564D18ED10A455AE78A7EB12BB5627FCA8D79C62ED9F9C98E26F5FEF4F5649A73CB746E5F727E5F045D36A9BE85C723745BFBDC2478ECB692BE8E06A81901F8350BBAB69F035E36F9C12B8D04895874F7F3ABEFBB80CC81215329542F400890D008C08ABF1CD5FD6BD64FC02F6708102AAE6C9C9B5758D6904D06C05B336FD566A0F364D1DE139141DFA9B20E90648732AFB559BEB2AC0344D6AC94392F0524775EEA38FE1833F075F726B67E9620460FC07A02860C86DF46D47B80582CB673ED53F75F8CAF86D5301061C3004B0037E3FE59EBAF600890575052339D088189A480565E402F0859B264F61C240CC81C908A8004A9CE1782CE1F2B065EE1CE4B5DCF40041BE0A7C8C9118607DE862710168608DAE3631BFEF0CC235F550930A67A81B856176009C0C6FF22950015BC07C8CD2FAE2AAD9E3E3BFB14D06BC39AB57D6232989DA327803DCBCF68FD1941355A38EFFECD4380E058DEFA0596CF8708CBB450D50323C303CFBDB4F6C91FA90418E5748029010A55D0CB190F4042429EC3E90AD6359FF631893C9C378929202F0079D0CD7400798F88403340782B33278222F6123CA0BAE3C41E2093FB37DC934918300B01BA2C41E40D98D2F0FEB61D4BDF79F3E597C8C0A140081A42808F0B01AC0728568B4281B29AE6D640684A897D02786D58B2592810790EFD711A01F496652481DEFD0BE2B9EE589E089CF573841169009126B12682007C2B91A81140367A02A03FB011EBFEE373AB2EC5EBF43321206216025C4CE937C4688072755DACEECF757B7CA1AAC653E6A2377067AA0198C57E513A28AA0588AC9F7F8FFEB6A0D015DB200167D19621C0B6F5739FABD32526E1C98C089908200B52C3A42054F67DB8EDC6AD1B5F7D05A11854B300A108D49A5BADFF6B033F5A0D404B034BD4EC80BCE70FE4159694D5B6CCB07AF28D2D0289F2F9CCD66F2C1DF3C7916DEDC7A26D6900B30C6042966F1EFB8D61C08A0866D9891E749E700A4F0066FB484FD79A37FEB2F61115FC2126FEA78A417C25D0C98CFE6985A062157C8D00859A17207AA1B0B4B6AEA0A4BA76E24520AF8D3450142AF4FBD8FC7D724820108AA27021F03222EB37BF2FE33D296664D11140D189521EFCB191A1CD7F5DB7E646FCDC7E157CDEFA13220238985140BF0A74A1EA094AD86290A605C8B1E5535B67F9730B8ACC08C0BBFF4C16AD075D1C06D86BA46B007C071A3B3B61A2FC0D69A08D0C406F8D99AC9F0F4B62F56F5E6730D626CC88108B450FBFF1CADA6B8606FABA18F0B5F4CF3020A411400B032E460C6A2381454C5A38452545BE160A301BF01757344E0B1694949B5501ED809849FC5969818C3500B3DC9EB364B3F89FD1FD9B1C2FB47ED3FB536C7A1C0E7486086363231F6C79EB6F77F67677EC13801F65AD5F371864321CAC4D04D1CAC2DA88A0E605B45040BC852F37BFB8ACB8A2613A2B0CC565603111CC8B45DE8C75806CDDFE09258145A85164B146302B4C098B52F4A1D984DCDB7DE0B9B7D6AF5B2DCB090D780DFC7101F88A683E003F09D4C790204F9B0FC0B47C9E042E8F2F585A3D7DA6CF1FCC676702F12E5D04642622F01E435C05B4E844ABFCDFB4522872FD13F304E6A4E489608F909AD68846237DBBB76DBCF7C30F366F56411F551B6FF971D1B430D1943060E6057838126843C4058C17C8D3C2817AACB7A8ACAE31AFA87CAADBED716517D3B38FFF99AB8036AD5294DE9992209BF83F01F76F9995A4DE5706FBFB5EDBF8DA9F5762BCEF11002F72FBBAD94066B3823512B8B870E067748166FD218604B92A514835D18791C08F59424371794D4D4E8EDF6D271DE40B46E65EC01E018EC50B98C5633B166F4A8049484D13B80C1CEDDDB0F3FDB79FE96CDFD5C6803EAE360DF88CE0DB9916EE649F0950491050C10E320408AA4D23815F2582D7E974E594D534D557D634D40772831EABB1006B02888F352540565A80EFECE3E1053294A63314A410F7D891DEEEF5DB36BFFEFCA103ED9D1CE81AF05A9E1FE3E6002AB6A6850B48009C30D432841C8608B91C01820C5172B4B0408850D3D0D250DBD0521FCCCBF76722005B33987402588AAD938B00B1586CACAFE7E0DFDE7B7BFD6F7B0E75765B801E61804FB0824F64F9D93C1AC692401B34F23222D1CF9121C0B51CE658729EA7B8ACAAA4A67E7A4D756D6345416161E0847B80939C00B16874A4FF48CF3B07F6B7BDB9ED9D0D9B50E88D32806BA0F3AE9E055FB103FE841E0E6548E062C890A3363FD3025C38C86148E0D53C4A59654DF1F419736AA73636574D292E0D4E9A0638A61090AD06C8820022758F2D1A890EF5F51D7AA763EFAEBF6FD9F4FA7B89789CB570AD8A17612C9D75F59ABB4FCDFDB7037E368F87F3DE807D5E902582970911391CF85AF3326BED3CFAF85965F5D4A2D639F36BAB6BA7165756D54E09E517F88E67169071902793F5672B0219AF138BC5C3C34303FB078EF6B575B4EF7EF7BD4DAFBF8FF97C98039A75EF66D69EE063BD1DE0B32280C01B00F3C4302B14DDDC13451E0E741FD7BCCCF11EC6B390EBB8CA2BAA43CDADB3CB1AA7B5944C6D682AA9AAA92B0C04725D19EB00C7D5FAB31D0BA0F30BE59191A143A8DEDB7BBBBBDAF6EDDDBDFBC39D5BF723E02CB0EC7694B3F4383386CF2AFB040F7C36E0674D008137E08B470ECE2BB83970BD1CF03EC1FB6EAEB93492395D2ED7EC53E697CC9A33BFB4B2BA26BFACBC32585A5A16444F11F40772C97F342DD9C9B7279073DB023F1A098F8D8D8DF68F8E0C1F19191E3A3234D8DFDB7560FFBE0FB66CDA33323C38A282C8BAEF1803788C6BBCA5F3AA3EC180AE640BFC84096042045E23B044700A40F53004F132FBD8354B0096084E866CA9E6CBC971373635876AEA1AF22BABAA43C5256579054553425E6F8E177943C8E32604C26CC48D7FDC0EDC70389C2E746A2E5E7DC7E37139168FA2168BD13F74A1EB6824B91941F73DD83FD87FF4485F5F4F5F4FF7C1DE8EF63DBD8303474719C0625C8C662D990799DD9605719D77F1F2442D7ED208904123B0847072CDC581EA166C3B2D08A0AD1D8235FB702B5BCF60BD95C24E0E27E56A4C4BDD81DC5C57241C8E21AE9128F95DD87447B38D75BD6C8B0BB659F0452DC1011DE3841CAFE69589C4F81342800C5E81F70E4E0E383674383971C983CE371109248E048E0C0FEBB1F15366D67206126824890B0891C840920477BD04F7598AC97D4D1AF0C7850059920104D6EBE0F484D3C48B4826E7B1CF38828917E09EC5D5C551B6C3150128098BD70981052704E4E149A530009F10D04F0801B224046FB54EAE1C2D99006DE5F6250101EC3CF6CB83219B90C20C48D1FB8A450C3710503951A09C480264200370AE5A440E9E246012EB1D82B86FE6FE25DEDA4C3C832CD8962DDEB73A1F04C09F50D0FFE104C882142088E1BCD814810D166EDFEE83FF8AC91A4C5CB628940841574E964E3F990830016280897BB702DA9125F8A245B6713E988DBE9D74FDFB11B8C76321C8F15C3E1200675AFE1F90AD17B25A9E5C1B0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (128,1,'Router_symbol_(24)',0x89504E470D0A1A0A0000000D49484452000000180000000E080600000035F8DC7E0000000473424954080808087C086488000000097048597300000298000002980136D347DF0000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A0000039C49444154388D75544B6C1B55143DF3C9D84E63A77162EC364993B4510415A925286A2408548010414808B62CBA2B125B5436EDAA122C58102101AABA4042820D41347C04A812C50229A4A0D292AA699CB6A993FA4F1D3CF6787E6F3EDC37B10329C5A3336F3CF3DE39E79E776704DFF771BFDF1BA7DE1DD62DEB7966D9CF30870DDACC1EB06D36C018DB4D5019736ACC66354114D76559CE4464F9C2D79F9FB9712F8F70AFC0A9B73E78B96F77ECBDD403FDC3C5F29F58CF97619A0688108EB305D775118FF762684F12438329B88E8BF33F2E4092E415A94B3EF9E999B7BFF88FC0DCDC9C74AB627CC56CE7054E90E8EFC5D8F05E8CECDB834A7513AADAC4F9CC021CD7C3602A8197668E62627C14F942195F7EFF13566FE5208922894834CADFBEFFCE9B2F12B5BF2DF0E1C7E75E7598FB49C7A543222145C281D121844321285D1296966FA2A9B570F4F1C3D075130BBFFD014D3720F04314200A22C4408446597AEDF489E367E54E29D995ECEBE9743A20E625F32A5CCFC546A18A54B21F8F3C3C81B17D83F8EEC222AEAFE6F0C491345E493E4D82067E2121C7F5778858967D8C68FF11C86432E5C9C949C4A2D180D8A5289203313C3B7D3828FD4EB18A9F2F2E419464B834BF566FA06757371E1C1F41FAE0386EE40A58DB2862B3AE51022E4AE54A89F306028220748D1E9C0ACFCECE626666064F3E354D450323437B716D751DF5460B6A4383242BE88B2BE0B116AA2AE0ABC8DE2E211EEB46321147281481A655B0B6761BD4716E2040E45C649CD9C67E8BDCCDCFCF239BCD626AEA080CC3A46EE923032222DD3D084768D7E840B06D7E2064DB0ECA77EBB84AFB532C95D06C6AD4710CA66586885BE4E4DD84438E65861189F26A68918D7C3E0F4551820D4BA552E4AC451BABD3420B9669A145D77A00838C188119D33479F6C1FAFA664D275E45A4934DA86F56EFDC24473E6F3359E690DBE882E791652188123E5D3BEED6BBC0F7C9F3BC60E4CDC1A8FB6C724F62CECAF5CB6789D7E9082C314B3F57CA5DCB30CBD0781774C02B403B161E4900CFDFBEE6021D70D1A6FAD7FAF295C5E3B9952B9768A12BD3248F9C55E9CF678656BFBCB67C71DA67CDE73C664C2406FA13F42CBCD5673E76BCF3FEF6891CEB6AB9B0B15C2E157F58CC7CF311DDAAF0DB3C911D9F0ADE4D34F412A2843861F8D0A38F3D34367A20D5138DF546C2BB6252485174ADA53654B5A636EA955AADB27AF5D2AFBFD3DC06272598C4E9FCEFB7E85F623C1BEE5E21486D086DDB1ECF9747D08E98F124EEC7F337E81712D0E84C6ADD0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (129,1,'Router_symbol_(48)',0x89504E470D0A1A0A0000000D49484452000000300000001B08060000003A690C720000000473424954080808087C0864880000000970485973000005310000053101B7ED28520000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000008EA4944415458859D577B6C53D719FFEEBDB6633BB6F1337642E218F284609E1B6AD34181755AD9A405A629EB9E5227ED51A9A89DB6696F45FCB35154ADAA360603699D04EDB4A0AE157BB56C520715AC0C46CA5325104842803C704CFCF67DEE3BC7E7DAF73A4E81DEE497EFDC93E3737EBFEFFBCE778E394DD3E0A33EFDFD8785452D973FAE8ACA6A4553838AA2045505828A2A8754450D4AF8AEA1555485531435A1AA4A42569404F6A1D512A0A9090DB44981E3DE0BD517860607079587E5C03D8C008E03EEBB3F7F698524CA5B90CC2791D8E3AAA278901C601B54934528D83659955A02B22E0147E6E571624E480902F72ECF09C7049EFBB75D9D39FB20821E48C00F76EE6BE041DC69B1F0FD9186A03F93CDC1E4740264599E478E0A20249988326162712DD2065C920AC09F3A9B0D22E110343586C06AB1C07F4E9F031E3DC5F37C8AE7B93D9AD5FAC2E0EF76CD7D2401FBF7EFB74E24B51DE8ED01A7DDEED9F0E81AF0793D74817CBE08D746C761ECE61D98B83D05A22899089748970813E21AF37AFB9216588A6844D29170103A9646C155EFA4EBED7EF9F73074E1031A119EE34B56E067058EFFA596117EF3CA2B03850716B07BCFA14F4992FC6B24D0A57B58D3140807FDD0DCD400DD1D31703A1C20083C90880C5F1B83A2284228E083236F1D8334F6E9A455962E44784F771B7CE50B9F857043C0B4DE89534370E0D09F31A5483A71742CB11CCFEB11B9C971FCB7F6ECFED15BF715F0ABFD839B31B78FA2E72DD5B9AB03F3149A220DB07ECD7288B634E23B4FC5E042342A0707FF0AE94C8E12B70802C49777C0C647D742475B94AE41A2F5EEC9FFC1A52BD76149B4094E0F5DC2B49C25FBAC44BC2C8045838AE044DC2B9F7B71E7736F2F28E0F0E1C3C2649A9F4092113369CD24807825DADC00B1E626B0592D60B559D05A694ED73BED309348C21BFF38061914115FDE069B7AD7416B4B13C8E88CE327CFC07B672EE0987B8C0550CFD326556016518E06471CC48D5AC5E9B6818101B5A6807D7F38D2CB59B813D51E27024A1B91B5E7D9123072E070D8705101EEA5D23422B41FC744423EC8639ACDCD6581EE649D3D250E1501348DAA22A18BE1C9DED01EFFE973DF385E5340FFD3CFFF70EBD62777E91E37560FBA29358365C434D65EE4AE87553DEDB036DE0D568CCAD59171B888297279F8064DB14DBD6B2118F082284980A51824B4A224535CB9360A5377EFD13404D009B3C81823812995CD669F1DF8FE37F7D414D0B966D39776EC78F6359FD76726AB6AE56AA26F4A7C819EAE253097CA427BAC093ADB5BE922E491B0C40E5DB802EF5FBC869B3C4F4BA6C7E584FEBE27A850E3333D330BA7862EC3F8AD49281424762E708CBC3912328ABD357967FB8B03CFBF595340FBAA8D4F3546C27FFCCE33CF8005EBB2A6A709255FF13C69AFE86A858FADEA367D9E9C0DE72F8FA0E76F400E4B2D9D9DD6FCD213F27960DB6736C2F4DD591A153C57CA9F25F35EBB7E134651C8C4AD6928484A2965586A91594646C6402C14B7BFF48BEFCD178083F8252B7ABF8CBBFE60241281BEBE3EE8E8682F9F9CBAE709825E376C796C35CBD90A81C4EC1C9CBD78156E4F25E8A6D3E72FFFC5DF7A471D649838AFCB01512CCBB1682396606F792E12C1BFFDF304DCCB14A9D0B9740AC6C7262097CB01B2D9FEDB177E6C1680440434752D5DEBBE6EB339F6EA13C5E371D8B6AD0F82C1605984D52AC0FA783BE6B00C73993CA4D2595A328915B1CA7025A7538FB110E846976A881907FA88456E072CC6F3A1CE6E83E1919B1801150AF9028C5CBF01333377CB0E5465E5F3075E1E78A32C8091772022E1D6EEA75D9EE04F8C6961C5D2B8F5C94FC3CA552BA1112383A50CCF06ADEC75FD5A60BC2254B81B22F061D71616498ECD99C20A3639350DE3E3E3E828723D51CA05A35014FB5FDBBFEB751CA792F164DBD721C28815FE48ECABBE50F3174D02B0BEFB7C3E841742A106E8EC6C879696288D8ADD612FE53805F3E53CAF574760FE93C3933B994CE2D990406F27A0582CE299A18042EF5B953B1659279D4A7EEDCD57F7FE093F261301C4FB1E4417A2D71B6ADE1688C4361827B7DBEBA800AFD7571652B23E2A22100880DBEDA20415B574E5D0348E5629E259B2A82C2B5841245A4245195114F1FE54C4AA5344E27334B7490120B94F2A0D691301FA85B1741B28456176FACEB78F1E397810A91589000B825C4CD620B6B83C810DE1D6658F1805389DCE79C46BBD93BA4EF68524338BEFB254691372A5BEAA31B2D1CA15210C8AAC9444300163572F3E75FAC4D1BF23B5AC51C05AC466DC0F2B63CB1F7982E7054117E072B916105011E2F17898F7A48A101379739F6C10A48BD3C5560B51583488081C9B7AFBF5038F89A2384A324FDF035E4427E21388756E5F43BCA1B9B34717E076BB2951BFBFDAFBFE729B88946A9197A59AFDB25C5BA82C9B3F2B9B534A1B1DBEF4B3F367DE7915694D230ABA001B224236311140F683DB1F59110847BB048BCD46BCAB13378A206D7D5F389D8ECAA2EC8AA0A790285545661E79739A558F2502F2857CF2E6F52BFBCE9F7EE710F2BB83482314BD8C12114E56893A10E4786DE704A139188EAD5A1CEB8A06027EDE1C814A24FC7E3F6E74BB9990BC00C1796D73FA548FC18D2EDD9E18FDCBD0C97F1DC866533790D70C22839090BB663CC88808AC89B008D18488219622A28E7A776CD9CAF56B636D9DE1603024D48A4649C0425EBD9F08F35E20B6502C1493333367DF3F737CEFC48D2BE790C72C827CB524DFCA648D119F7795609B5A1742D26A31A211D18077237F7469675B6777BCB56B79BCB17B598F3F180C700B0A2064C4FB45A3F48EDFE69464627A6C7A6AF2E2C4D8C8E90FCE9FFA2F9E0553B86E129142E4097184AA1948CFBBCC71FA85BC22A49E89F11A2C85DBBDC8DFBB71737B4F7C7504CF827ABBC3E5A8C393CDEE7038AC36ABDD6AADB3E3D5D24A08667359319B4EE773D94C2E93C6AF39D94C3A9BCF928EE4E4E4ADE173674E9CBA9748CC30B259861CA9F5245DAA892F28A086103D2A36863A26CAC550C7FAC918527AADCC9277DEE9740B1CA7CA78872784C41A2832A259D61699A7A9B717227E5F010B880183201D02EBD3C70886FF917EB280C208493A29D667FC9FB14FFB30D20F2DE03E82CADD863E3D72FAA35501C07C337A60C2D5CFFF013A8DF8404CD0F30B0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (130,1,'Router_symbol_(64)',0x89504E470D0A1A0A0000000D4948445200000040000000250806000000F250EF370000000473424954080808087C0864880000000970485973000006EC000006EC011E7538350000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00000CC94944415468DEC55A79701BD519FF56A7255B56644BB2E5DBF2113BC40E499A64981C8549A181FE432F0686CEB4D3A1500809530A0C8429E1E840380A25A1241418205052064A8096A185824BDB9004C8903B314EE22BF1299FBA6C698F7E6FF5DEEE5B1DB10361BAF2A777AC76F7FD7EDFF936111445816FE2B8E1B6FBBC520282A298F029A07845197CB22C7941567C922C7B517C8A227B6549C679395F9695513C1F92242584F3238A248724410EE17C08B00F8A1092AD7066F5A2E0E18D1B37CAE76B9DC2F92260FDFA2D76D9115E919494CB40962F458017223001058CA240E65CE6792481EB93351211C064124605C1F4B1C964FAC86C36B5FDFD8D3F1EF9BF1170EB3D4FB4A0762E1315E552459656C98AE2408DA2928DA0945CC015453FAFF515F57AB22E5DE862D52F01FF528264606B1A144C429B4510DAC02A7CB8F3C5CD27BF5102EEDAB4D5238BD27A5CED0D26410894077C2021E8FEC1618844A774CD2959C0D3734A469F02E5FB745DFCFA0801C51E0F04025E282BF5C3F4740276EDFD4225C544483199B0357D2C5884C75E7BF6D1779559809B3501F73DF17C919C14EF401FBD495144577D6D15B434D783CD66250F254B858ECE1EE8ED1D80DEBE0188C4A674504CAB595AF29B146859D53403EFB0DBC0EFF742C05F0CA5253E089478A1A6BA026AABCA54ED93DFDCFFC83638DA7E12817356816B51FB26E198194C1B5E78FA81B7BE36010F3CF1E24A00E95559522A88262549823C045EE22FC20595436579A96A8E4C0BE49E478E9F84AE9E33D0739A90118322772198CC66181C0AE9A06525CDD451F0535C340716B734C38FAFBC0C1C8EBCAC6BFAE05FBBE1A53FBF8356A183D7C4C4C820AD79872D695EF7D453778D7C2502366D79E576D4CE4308DCAC28BA1FB33E063B701738A1BCD407CD8DB5E0F715235093FA700C542A591D27BBA1655E03C4E253F0C28EB7A1AF7F381338D13E7ECC784D73430D5CBC62292C6C6DCABAA6442209F73EBA0D060743A998A092009944686E21F409B269D5E6476E3F794E04FCEE99D77E8026FC1743904A8BCE7A4B10C8AAF6AA2B4A61C5B20560B15855CB3013424C290947A2F0FC2B3BA16F20A4C675A00498CD021218848B972F5189E48FD1F14978FFA34FE074DF20D4072B6162320ABB3F3FA0693F45824E0008BC0568D269315B573CBCF1E6BE5911B0E5B9372B10D661F455B72158A5B71C09E441351525B068411354969552D082B11508091178F6E59DD03F344238035F71215C75E577A1BEB6D2B086F189307CD0B61BF61D3AAE5A0F5DB2F6AD824D6B992568D902522E91724F78F3C10D37FF7056046CDDFED63A04BE395DCBCC0214859F4B8DC973ED181B2C26B3EAEF16D43C11ABC502169B19AC386FB15A558B989A9A8603473B682650C05D980F410C724D68FED518E8DAFEF3291C38DC0131FC5DA6E37234A87F29E000690468F141B30E115754BDF18E9FF7CD4CC0CB6FFFCD2C98BEC78295969B33FA3A19FA3853540FC726CF6E55E305098E5398C6D8D3F95840DC417529764ED3BB9105AAF81C9660ECEBEE01BFB8FB969F3D37230177DEFFE450E3DCB9BEB3E5E9EC454B667023D7B89C79D0DA1C84658B5BD4D499482661FFA176E838D50BDD670655C0769B0556AFF81638F1B789A408A2284212DBA428A55ABC46247D9C3FF665274C63DF8C56A58111784B48EFA7C6F158FCF17B6EBBEED7331270CD75B79DB8E2F23575863C6DC8DB4622F83C6EB198D44562CD00735C4E98DF1484852D7355D3E70FE2067BF61D8643C74E427C3AA9EADAEB29846B7FB406C9B0655D57241A833FBDF11E8C4FC654DF4E390068AEA0B79C3B306B4119E81F5CB7E937EB9E9A9180794BBFF3E92FAFBF6189CFE733983C0F3C97B9AF5EBE1003DB1C181A1E55A3363347764C2712B0EFC07138D2DE893E9ED0EC5CA10E5155E683EF5F7171C675EC6016D0D9D38F45D710A66225C325343204412BA1C7C6C6616474ECC6C7EFFFD5B61909A86B5DB9A7C4EF5F76F3DAB56045933D1B605EEAAA4A6125A6C06C0731E9FD874FC0D18E6E88A3F6B5272B4A46BFB9BE122E59BE188642A358668FC03C4C8D56AB25E39EC4958E2191DD678660806415C1C491009A25442331E8ECEAC6F3F28D4FFEF68EDC04E085E40E4270FEF2DDD85F525D53033FB9F65A9833C79DBD78E12AB802A71D2EBF6429467E33643B480D7004C19FE83CA3FA3859A2A2AB9FF5D46F626D01BF070643E36A7C20D9A4ACA4186A2A4B315D56A82935FD202EF5D9FEA3D07EAA4FCD36027587B1F171E8EAEC8624166508F8C62D0FDF999D000A9EACDE8604FC1BC78BC8BCD3E984ABAFB91A5A5B5A344B803432C8CABF7DD105508C44E9A69E548B9889C9084C8463308932118E60F41755008A01B88101E31C5B1FA4F60036AB394546855F2DC3C9412ACE7D07DBE14457BF5AFD915F13D7255AEFC7BD89169041B9E999C7EEDE9A410007DE8152583BEFA2F73097CFE71730B7B111D65CBE06EA1BEA35D08C808A120F788BDC3081A616419988C6218A1B220D1733F32CE6CEFA3A70EE60032E1CB02EB10C8703F724F8DC81E1314848A9628C64ABBEFE01E8EEEE81787C2A3D6EAD7DFEC97BB7B29DA2402B381E7C114AA0BA79D9762C65EBB399F282D65658B96A25D4D505212F2F4F7705D049D1412B7A80E35A4DC3E98A9FEDF69CF938378E45A3187843D0D5D583EE306578EFC008901289F5DB9FD9F434A8D959516872004200D9767950483D5A5F3577C983569BBD22FDB9C4740B0A0AA0B0D0052E572154D754415DB00E2A2ACAC153E4C192D34C81711A5728DCACC0334D5F8F04995AE77B09CC26A3636330828172687804036B1C647405F27E429625FD0D1357ABC4E3D15B5F7FE1F77FC0CB451CCB0C3C09AFC479CB89A5A33455362E5E6BB33B7CE90458B0AC75B908F8022422D592B14A8ADB0D65810078BD5E758E8FDA4612388059C79907B98E144211DC478C21E8506804634B58F57D8310D05A2B6B2F62580A0F87C737BCB363DB66BC25A9B1255EFB5EA27994569580864557D9F29C9EF485D8B040618019787DECD2AC839143C666CC0A9224AA8BE23307ABE749B41693A90A2F994CA81922896532A917A613536A749F46112948520DAAF7237D32271A09202D012F6956A013303A3278EFFB6F6D270444519202E7FB01940B5016A23496055B563BF2DD1916909767A7E0742B4801D6C960C0D9983C982D9AB42259BC2819FB5CABFE36DB9C0A3E1378AA2FAAA6AF13C148900DEF1D077A3B6FF9EF873B77209449E24502357F270AC9272D9480B91E7FD5C2A292AABA74021C0E479A0BB8384BC836E7CA015ED4162E3260A294D64F9B33B4FA3D19689177053193048C07CAAE0F77AE1AEEEF69A70424990B300B20FE4F727F93D5E6A8A968B87099C964AC6A484D900ED0A87D23110505F929B03C093CF8ACDA67A418AFC904CE5B061DA711A0064429E50AD1C8E4AE0FDE7EE97A84318812E609203B0F92FE8228F3A954B93C25F5FE8A86669E80FCFC7C0350DDEF0B3922744288C530CDE5B4802CF3BCC679F3E7AFD1AD4A274D770BA34B24A6A687F6B6FDF5A7A3A3FDC711C6284A8C0F82440AA81B34A0CCA301B1145DA1D9E3AF0C0A7467920E327B0CD0E300216026EDF326CFFBBF51F3624E228DE4185D879C9B9E8A0F1F39B87743CF97073F4108C354FB6417A6F08510B1824294326A0984806A4282D335A7D25FDED86AC6C26036C0F9F376BB7D562E60347D31270939EF9323768C8D0CEFF97CD73F1E0A8F873A114B88FABE9A02D5428812C0B20121C1855202A982A89AB67EB3C5E6C7A0382F5019AC72BBDD161E742E12889C8D006DC186F1D72081FB7D2C12EEEDED3AFEEA177BDADEA5C0C750221C78F5DF17F9BD0023C142DDC14389085021EE516CB1D88A6B1AE65F50DBD0545B54ECB71BE3802B230BF00464F5736D7C6E5690E35ECAE4E4D8A9EE53C75FDFB7EB9FEF53D01354EB716AF632036F208023818815C54E621E258214493EDA16D3AAD1E50F9497D5049BAA918C405D5DA3174B61F35727E0DC2C80DD0BEBFFB191D0C0D1C1FED35F741CDEBF7768E8742F051DA61A8F53AD8B14BCA1D6CCFA4284C6045622E7D134495C630E05EFA6E342DA1698ADD68296D645D50B162DAD9EDFBAA8AC616E53116606E19C634046163082C7AA706A6468E0CBBEBEAE43278E1FFEACE3D8C1931468944A8C0A798F9EA422ABD57416B039DF0871D6C088B051715052F269015540C5C5CDE515177B5D8DCDF38B4B4BCB0A0A3D9E7CB7DB835EE2723AF35DCE3CA7D3811FA70D371B56BBDD811B784B2C129D8A46C3D1087ED07F23D88663613C22E1896878727C7262626C1C235A7BFBA14EDCD18539B0714ECB090A98685BA29215F88C04E42082B70C2BE72ACC4A9CDCD8C6C51433779DC0B54414BA50915B7C92CEB13641659A0A039CA4F30CB04CEF9753E3E74C400E32200B218C14D632D0660EAC999B67A4B2FFFDC048903891D35A91134DC3BCCC06F45726E02C64304218487E0C1C01A6B43E3B7812980621AD55D2FA4CE05C419F170266498AE1748E369D047E9C71F029EC7C1CFF03221EC479524784F20000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (131,1,'Router_symbol_(96)',0x89504E470D0A1A0A0000000D4948445200000060000000370806000000F3134F770000000473424954080808087C086488000000097048597300000A6100000A6101FCCC4A250000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A0000154C4944415478DADD5C09941CD5757D55D5FB32FBBEF5ACD28C06ED200162932146365E0E073039390959EC109980AD1013D931B1221C0808DBC8160A1618616410E198608381D80E420E5832DA10685F9034D2489A999E999EEE999EADBB96BC5FFDABFBD7D6DD33628B4BFAF37F55575557DDFBDE7DEFBFAA194E5114F8242DAB57AF769C1810EB1511421CC88D922C87149043B2A4142B32F871EC5714D9A7C88A5F06C5AF6E93259F4CEE4351C664199B228DE22AF6CA18E0BAA428B8AEF4E2B66E3CB69B07EE8CA828DD7C1CBAB76E7D6AE2E3BC5FEEE32280E380FBEAD7FF6D86C8C98B10CCC578157364596E9415B906AF49C06D404045C02033C626CB3663B28FCC8C2D8EC57524888E713B1ECF717C3FCFC331E0845D02CFEDE22579F796D7361D573E22603E3202EEB9E77BFE714E59AA70D2A588CA2249562EC1EF2E52640ACC54806481A7402A56C7EBCE9169E82A60BC6D8E5844A6C5788EDB83C4EC5414FEB793919AB7B66E5D25FEBF2360E5CA35C18453F81C7EC7CDD896C929E9488146814C8F2D2C3AF5996C06D2781CB3BFEE9874033DF0649BDE1BC94FB5C79F29F7E4E83AC7937E48E0F9D7F09897459EFFF56BCFFC68F8134B006AB86B8C2BB90575F94BA8BD9F46EDF6C892081C9A934C2D394300B56EC3BA11585642F4402B06A0CD0DD4FF9AE503D8DF2FA72382C7EB0D06FC101F1DA5DBD22D811FBF21F0C2639D4D05AFAC5AB54AFE441070F7238F78BDA3CEDB25541B04A9561225F0795D5053550EAD4DF570ECE41908F7476028364C25034C9E3035AB365BB81EF894959B80A784B08BDBE582F2B212282B2D864AECC9B8315403BBF61E842D6FBE8D2099244AF392E33CCFAD0D72BE9F6ED8B06AEC632160E59A8D41979CBC03CF73375A7D852449505C148496C67A686D6E003EE5D7EA45937174380EFB0F1E83BEFE41181C8A8124EBADDAD2B2650BD0C14262D2DBC14480BA11BFBFA830086525C5508E609797154355451974B6B7404D75450A58BA9CEF0DC3EA877EAC1A0CA7650D54A28C64608BA087AFF7888E07A74AC40511B0FA071BBFA048D293788E32729E6432094EA7A05A5167472B941517A9E0F3E60B4617E7201289C1DE0347A0B76F00FA07A3FA609A0656365B381824C6047C6A3BCA37D45557410B7A20B1EE56348AB69606F07A3D39EFED873F7E0676ECD99F329E745CD0C68C473084E02D9DC01BFB9B9FAC5DF5E6874AC0BA75EBDCC362600D5AEAD78C96A9A67908A4288B5018F0410592316FF64CD4D30002A25E3E5E28AF8E7926D0F50F44E09DFD87E1DCF93E08133224194A8A0AD093EAE038CAD7E0D07046CB5982404F02B0DBF01F6A35545796C182B91D70CB173F9DD7FDED3B700CD63DF12C4C2644860003F85AD0E698A09DDAA6E0CDAD1FE7DDDFDCF4F037463F70021EFED1E63689139F4759989F2D0866F26D223112941417425D4D0592D10E5E8F9B82CFA76F82043DCD3388FB1322162F9C030E8703C248CE539B5F82A1E8B0017846660CC0D30FA0BEAE0A165F3C1BAE5F7A39088290F3FEC8B91EFCE146387EE2348011781D010CF84C1A9B21030E82A05CFDE803DF1AFCC008F8FEE3CF95C949790FDE6043B63CDB9614B46AC41925AA189A4275AA67389D8E94E5681E418800D011427A42C2C6677F89248C506B878C2700935AD2FB69A8AD86CB16CD81A5575CA2D376E3B263F73E282C0842FB8C2675FD8DB776C2F32FFE2675AE14DE4C864441D7D64DE09B62C4CE84D37BEDFA5577C42F98004C2FF94065FB6FF00EAF33836BAFDD5AC603A03F86046B97CBA19271E30DD782DBEDA204A45C39053C9F2680A7243CF9B35F40243662CA6E484F8E0BD557C1E58BE6619B9BF57EB6EF7817DEC276BABB4705B3B2A2045A1A6AE1F8A96EFC9EA134B8E969BBAE67E242DA1358F081495DF9D703DCD00D98AE262E8880753F79E17E84F29FED32936C5EA04D80D899ABCFE352F59D80E5F779A807F0BA209DEE194248AC78E2672F42043D210D3CEE1742A9B97AC9429877D1CCACF7B10D41DFBEF33DE84689B3990E008537BDAEADA53D290D760668AB6D9ABCE2AD7FEDC17BEF5C376D02D6ADFB6F371F181FC25DBD723A2B912DF36F532ECE6428642C8A2238054ECD4C5C283F4497058107276ABDCBE95433149FD78DCD0B3E24C6E572629EEE04177A88CBE1546F2AAC92F00B880D8FA6CE8D841606FD18632AD5947221065CA3DE6FDBB117B6EFDA073DBD03004649E28C43CE04BE9E08F3C40D98C00C6C8006353B3A72DF3797774C9B800D4FBF7C95CC29FF9B5DE3C1622264F319586D4BC9156992448E4C8D1D98C59074927807DE08080E421A079228C3707C540DD2698923E7C0630B821E8C0195D031A319C4A4047FC074B22F1CD1019DC5FC19908109C4FA58608C037AD099B8A08D79EEBAEFDCFDE52DD322E089E75EFD0E4ACEEADC81160C566FD80E561327D091601CA7B72119247B72380488C6E2C0A3D7643EA7535CC398047D2E15D1E926253BF89C9123CE44863E18E7D7A7C6CA9A6FAFF8EB95D322E0DE07D6EF686A6E5E945B6A2007217633568509D4FAC299AC4810F079E1A299CD70D5650BD4ACE9E0911370E8E849387DB61746C726756490C5E5E031CBAAC589A10822067B521621BDC8F4E43349F538FC5C4EC534B24E3C4D9D3C9298C40BBA6AA9B17897137866069D14A5D7EF5DF1577F322D02FEF4CBFFF0FB65CB962DD101682A0D806D2DC65814B3065E4F8244E60E854198D3D10C97CCEFB4CCE1493C79EFE07138FA7E177475F7921950BAECF0A92B16C26597CCC9796F493C4722914CB7F37DFDF0DB37B6C3D86412E38FDB0C38E3127644A4332526658D8F8CBEB2EA9EAF7C7E5A042CB8F2732FAE58F1F51BD5B39A4A0260EB0996EB868913B146626D9A7C90495B5949116633AD701106D46C393C590E1F3B053BF61C809EFE2135986B733001CFF985EBAF80192DA1BCB23C724DBF7C752B1CEF3A8B5EC7EA37233FC62CC92A18B332A5691AB69E9EBE271FFA97BBBE322D025AE75EF59F7F79DB6DB7B6B4B4D8D7628CB2620B3CE319A8D1975F3C4B4D618F9F3A8BD99180C0CF80E6C6DA9CD7740C67AA3BF71E84BEFE284A90C03C60C9543D5D4E016EFDE2756AD12D9F656C6C1CCF7908BACFF542DF40EABC600ABE0CB0BAB1757C20A3D1D131E8EF1FD8F0F0EA15CBA74D40C0EFBFF5CEBBFE1E0281A04511CCA62866013C2B3D0DD56570FDD2C5532A859CC089D2AE770F43DF604CADF3280CE0995C28B3F871BEF167375DAF06F0A92C71046DCF7B87E1ECF9308423310CFECE2CE033A01B266E623209A74F778328CB1B1EF9EEDDD32460CE95CF63F7A586500896DFFEB7985209995A8CB136C33E00B12B92910985D70537A244903C3F9FA5EB4C0FECD97F04E70031B54C91317803E48A9E06F25DE5C541B8F9F39F528F230B29EE151717A4AAB5792C2398EEEEDD7714CEF6F4ABB37087D3A58F0516718174C4B34F9EEC828909F5B9FF86B5F77F636A047064EA894BCBEC2B9E2304A8F160E102B8E5A69B311F172C81B71F83AE9A79ED92796A95329F85C8CDB65D07546D56EF504B3F1912CC49A692F10A9C34866ACBA1A3AD0976BE7B08FA23C3EA31C58501A8AFA980B9B3DAD0B37D795DCBF0481C03FF3138D73B08D1E131CCCA9CEA2C3E131734F025E8C278128D46532931A76C78F48195F91340C157B3E8E6D9576CC6C1CDDA673535D570DB5FDC06E515E5590B6366E9498131ABA50EE6CC6A9D92248CA23EBFBDE720A69E7D20E04DEB9547D1A16F2242050467EE3849D36553543E243189DE50A09241023FA94BE55ACEF584E177DBDE810951491714B5F38DE3B51E7FFF248C4F8C672E4D5136AC5FF3ADDC04705AEE946A0E6CCEE68B966CC2CD37B2FBB9D00D6FBAF92658BC78917EC294A54A49762B2DF2C1D597CEB5CD6E486A39846E4EAA9EC3F13188C5C76164641446C727D534934F4D6AC01C736D1930C5852CA9903AE12B2F2D80869A4A98D91A52277EBA403D3E01DB77EE83F3E1284A915357A6260B663B68F95D389B978D13C50D8F7DEFDBD90960C027D64FC4999882A7A9F3B22771527283D535CFEAE880659F59068D4D8D8CE6EB9F4C69BD035DF59A4B67AB351E5266888F4DA08B22D0A30832823D8C812F3E3AA14E8A52B357C55A66140B582D6528C7E4D7BE1281B3684C8F39052A4A8B205457098DF5D5B0FFF009387AE22C5E9B23FD704913FE682C065DA7CEA0E1444D2938CDAF1F7F7CEDBF2E37BE6F942680015FA0964FC0F7630B863A163F8A59C075D9AEBD7DE64CF8EC673F032DADAD9641970C4A0AFDE0C1A03B82C013A0937893E4361413C0FADA3EBBDD38D6C7023B019A32FEBAF204994973A8E99CE0480572A6543D383404A74E9D86E850D4FCFE1133B944837B62E3BAFB96A7842273F12C013C63F96E0A3E49134A1A665EFCEF4E976749AE1B70B95CD0DEDE0ED75C7315CC689B895A2D5810C13CB1625E90327F6601B409F42CDA7F212F1B709C3521546EC8B38CFE8141949AD3104BBFE5615D92D7EE5F16A5279F7EECFEAF9290C392C0D17ABA263B0E0A7E001B99BD9463ABAC6F5BF04F2E8F6F41AEEBF660AEEDF178D59272B020081DED1DD0D1D10EF598BE9249964E3E8C04E88057F432A318D45C31E8BB0DD60A4C9D04CEAA644ABD8080DEDBDB0703FD036A09437BA546B6799F897D6C2A25934F3DF3F84377903047144E23412380A7D2E362C0AFC05645929EDAD679B77BBC818EEC46C321F81E15FC54EF4DF7017F009A9A9BA0A1A11E4A4A4A31E5F35B563075326388B2F6EB3A7F00F8A0DE33C32F888F615C1A8E41383C00E1FE4124414C97CC33E0336303F8AC172412939B9EDFF8FD3BF1CC93D40B6495006AF940C1F7622BA4E0D760AB5309689973ABC757D09CED7A89366640D7936022241080B2B2529C0C15A9336BAFD7A7AB076507DD1817B2259FF91392C019EBF0082604184C89AC44A331F5359B34E0D4D2F5EBB2CE0BD8D728D9F20CF93F3939B1F985A7D7DE45B2545203D4BC40238067A4A794825F4F9E6D132FA8699E7D83D75F589FED06487ECD826CE70D666252BDDFEF579F82B971DD2138327ACF69C87396B1402FF9F66813B01289044C923641DA388C4F4E62CE3E81A9E518CE5627556D3702AC96AC25D9127855FB59F099DE581F1B1F8F3FFFD2B3FFB1824C69A817882C0102B5FE026AFD04F810ED2B6B1A3B977A83C535D908204FA6EC80CE4584F17332BBCCDCBC449F92A55E6F91D2376C2E8B8BF8B92CCA6ACD9FBC8F4AE614221E477AA2E1A4C4AD9D4BD69E0530E0B2DB7312C07A85225332F46F73B3A5FAB191E19FBFF2F3C7FF914CA6B14D68B1800DBE5E9AF5D450E09BA9175494D7B6CC2F28A96ECE950199C1F4D2756F7A7B3E4410325360B08065C0D288D1C0D1804D8F25BA0FBB1F739EDC24487981AF9D57D1A4C9D60B0086067A7FB0E595CDE4C17C8C952196001F0DBE84804696007F41694355A8637E2E025840B359BD3946E8892239813DF80CC00CB87A422888926C22C99A04392D3F7AD025130999EF93D3A0B3DEA030718125E0C8815D7F7EE89D6DDB0D04484602340F085102882754709C50DCD4B9F84A8EE3F97C5250D2DB498C95D51BB7699A7D21E0A78F61745D920CC0E7E31DB908D0C5854CA0D6FDBE8324C75F7B61C3B518D4C3D93CC04333A04A4A4013EDC97A71795DDBAC82E2CA1A7B023C7981AB9724B34491FD522F6E190130836A29458CFCA4C1B7F2008BFD727987952C4916D294FE55282A4743FD3D3F7DEB7FFE6B2DC214B18B015A165440B3A03A0A7E887A4429E6F905B52DF3E6BBBDFEA015016669B106572F435E4BEFB00225AB1730E09BF731836FA5FF660932C71C2B12245DD0560C4428303A32FCCE965F6D22D94F3FB6A85D16C4D112842643550C09B534332A72383DC5F56D7317F26A3DD86A12660D706E2FD04B555E166E9093CC67D63265B67C0BF02D3CC0F23B1919D21120E9E70B89E464F8EDAD2FFD5D7430DC45E23079B6C3EA3F5B8AE099021CB1F0126CD514FC3A4A08797A528013B28ACAFA999D0E97DBCB12A0D7F7EC9A6F049DDDC7ED76DB5B7F9EC41863835E8AF205DF3EEB628931A5CBF4BB2726C6CE1CDAFB87FBCE9E3ABC8F5A3E919E31D34C98A905094C2C0852C02B2911D5744C882910044790C404CC8E2AB559B0758693DB13F4DBBCEAC31049B2D2FE546FB6FEDC44E424341BF836A49BBC83F93C32D0FBEB9DBF7B75FDE4E498263B2306E921E0CBC6629C26472E8684122A3F95B42FD74820D5D2C292AA50497553BBC3E174E46BE1D90234398E3C23D6DDF014B5DF94E19882B3949388ACF263223DF35DC96462A4EBD8BE47F7ED7E6B0BCD7688D5C719CB172DABA116CF039C0C098534309753AF28A3F305B23D20385C05A5550D6D15D5A1069F3FE0B0CBF7EDE701FAF5F42C382F4BCC05B23913B24E412F4CF212087CF8FCE957DEDDF5E68BF158A4975A7C9C5AFD046BF99AF4E4F344CC4533231FB5F8220A7C29F5028D0442920F8908D68666B4D537CF680A060B5DB9ACDF2E4BFAB008C84F7EA696F64E4C8E477BBA4FFD6ACFB6D75F1E1F8F0F52D035E0C729F0492BCBCFE799301B983DDAD3314A84D60A19120229221C81C6D6CE96BA506B5D556D7D99DFE7E3FE680820E7174529168B1CE83DD7B56DF7B6375E4F24C6638CCC8C51E089D52718E0652BF06DDF8A3090C03EA8F1508F0850D00B2801052C09B479BDBE4070C6AC398DAD333A1B1A9A5ACBFD7E3FFF4921209321E909B0DA57C429EC5064E0E0F9B3A7DE7E6FF7B6EDC3D1C1410AF6A80174CDE293EC83173BF0F37E2F882181F508CD2BFC8C7704E8D8477B2F6D6EBF3F18E89C7B71A8A9B5AD127F94D5D6878A838180903701964158B2AFF5D07D6D67C359624002018FC7A26710F4F7FB7ACF1EDDB7E7F7BB87A3D1080579DCD06BD6AE819ED6FACC53557B9073BE19C7788391082D6575D3E665AC9F6D5E86302DAEB8106877E79C05959DB3E755CFECB8A8AAB1A9A5A4A2BA2680A438AD4AD17619896D25340B396C9F48242646E3F1482C3A7036DC73FEF8E953C78E1EDAB7F7A42425B4CC658269930CE0090B6B97F2057ECABF23664384D66BAFB0B818423C06F0DD4CD3F6731A08755456D7FA5ADBDA8BEB43A1A2CAAADAC2D2F2F2C2A2E2B2A0C7E3F6701C46185C789C8A637380C03B048E7360222D10A09362524A4C2644CC4A3023C49FB882C6ACF61338331A89460763D148643032101EE83B173E73F244EFE060789882A9C9C7246D0966BB96C5240C41959519692AC04FFBF7842D88E00DB14223C4C9BC61C11264DCC6922030BDC09C977D74CAD11BD57A05BD497D1B10B19618F7D7C61A58924126920CA8A2C1A259CBB6025C035B99AAC55F300136445891C11B4065C74E66DD69B10FCF90C0D6AB388B5778B41B60759725C048826800D4F89964D1D873B3C0C37481BF6002F220C3480A670097378C8D3DFBB89405DE48024B005880C502C8122319ACD9A8E18A610CECF883FA8B5A1FF8DF0BE2322F7D5A11C219E484B7B070766C6CD62FB0E989502C2C359F759644C5D87F587FC2EC43FF9365368418ADD9CABAAD8EE32CCEA3D8906104D58A24BBF3287F747F336E0AC4D8BDB2996B3F658ADB3F52A0ED96FF03FF213910F230DACE0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (132,1,'SAN_(128)',0x89504E470D0A1A0A0000000D49484452000000800000006B0806000000BFBD8A8A0000000473424954080808087C086488000000097048597300000DD700000DD70142289B780000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000034884944415478DAED7D077C15D795F79999D7FB53EF0D21012A209B628A0B656D30B8AC71499C78D3BCBBD9CD97787FBBD978E36493D8C97EC96FF75B7FEB78BFB86C9C38066C63838D019B6A4413CDB40712C51401424212AA4FAF9799EF9CFB669E468F2759606323C5B287376FDECC9D3BF7FCCFB9FF73EEB9773849926024FC711C67C38F79B82D90B7DC1BAC8A6DB86DC26D036E1BB15DDB4744BBDEC800B0582C13799E5F80759C8F5F67E2A6B9DA323ECFE753DD8B760EE3F70D82206CF4783C75B81FFA12009FF03766CC187B3018FC0BAC136938093DE78BACCF67D8365EB460B5641D10D01B9A9A9A4E7D09809859E72A2A2A2646A3D105B84B429F7E2D5AFE056AFAB5FE9D233090851045F1C353A74EB9FF6C00307BF66C0769393EB8A2E5D95FB4167C5E6D30C87D2208FE3DF81BF1860DFBF10F3FC55103007C387EF28C3B16E804B84BC3F3B37881AFC6C3C21721302EC931AC0F2018AFA9A4C47A70B1E7BDB27EDC5515DE238AD29EA828EE8A0ADA8D7B6A377D743D0171DD0150397576B5D32CB8A6D44C84D4D41448492987FAFA5AA0DBA6A7A783C16080482402E17038E9276D814000B09B60FB3DBD6E2CC301634B4BA1BC7C1C343474404FCF09D068B4909F9F0F916864D072683F140AB14FDA4858ADED1D30B1AA027ABABBA1F5D451B0E78F059D560769E969604CA89BBA1C651FAD59BC6E91A80869A9A9588F3CD8B67D3B54669AC16FC90283DE00D9D9D949AF577F0F8543F1EF02CF435012C01F1126EEDCF0CE91110D800CBBCE3519019097970766F31878E1859FC3030F3C00C88EE38D4082511E9E366F6F2F4C46CDB4A5A4C09EB367E10C3672494909B8FB3CE074D8A1AAAA0A0A0A0A60E5CA83A0D55E84DCDC5C408235A02CF5A7BDA303C6A170DA3B3B61371EF3F97C50535303A7CF3642E584F160B55AE1C8D635D0E4E561CA94294C8BD5025236059053F1D952B16E3B4E9E848FF138D58D009081C099387122BCFBEEBB506AF4438F391F323232585BA89F515D6E86D70B55A80C2DADADB0B9AF8F9D3761C20414BE84F782895B460B00480BF6ECF1C29933ABE0273FF909D31C6A4CBFDFCF3ED5FBAD172EC0BFA2508B51D0DF7FF1453880606000F078C169B73100D0F5EFBD77022D01C07DF7DD774559EAEFB9E7CFC31373E6C092DA5AF81382818E575757C3D9C6F35031611C03A7FBF84E587BE8023CF8E083082AED8072D49BBBA7079E2E2E86490894EF3CFB2CECC263E8C130006466A433007422D0DA0F6E821E4B21CC9A356BD0B2689B8042FFD7458BE095F5EBE1F973E79855193F7E3C84251EBC6161E296B5CB47070048806673313CF7DC4F98C0FAF0C149886AED52F6FDF8DB4C41001B6AED8E1327E0149E575454045E9F3F6E012A2B2BE1E5973783C9D4CA2C003D8B5A5BD55B3A9AF80AD4B24B972FC376D4306A781254E3F926A8185F0E76BB1D76BEFF16748B46B8E5965BE2DD4EB2BA855040B762DD52B1BCDAA347E138FE46CF2662532A1660F9F2E55066414B662FC2AE2F7540DD12AD4A0E5AA349595970F1D225D8E076330B400088F23AF00461E403C069D12007A866FD635E5E19EC3FB003C2F89069D880A469C9FA6AA5F1E9933482F5D9585E776F1F9A5E07948E29858A8A0970FA740B34359D049D4E37683FAB2E2F1289F5D76401887FB477743200F4A05637379E868CBC425696DDEE008D5633E0FAC472150B469F8CCE2B1C202F17EAEAEAA0382B1578B313F9890069696903AE1B8A0FD0F31A4D26E0B406088A3071FD3B231C000E8BE0AA1A57067A24434EE758686F3F8E0F1900B3C5CC881835086DC4C695FD6854BD1F0549FECD8DBCC161B3A2B073203B2707BA3A25DC4E63D93A2CCF32E01AF5264AE295C7F01E6EAF0FC6141542575727043B9BC198960F1C7A060E9B1D38E41403EA806D35E07A71609961DCEC361B0341C3B106284E3140C8988640D3A39532E1FD62CF95789DFABBC8BE4B40FF698D16F0863804C092910B809A597756A7A105A8A9AE84C2C242245B63E0B7BFFD29CC9D3B977501F4F0C934C38FC4A814EB96EA70C0312447E750D388F485C211B02161ABAAAAC4BEBF1C962EAD430D6B62244E2181FDDADE5FA6014D6B099EE343CD3F841AA610AD8B2D97605CD9580A3BC3DEF52BA113BB808A8A8A0182516B287DA72EA09448200AFB4853139CC3EFE48108E88990F0274EAC8637DF7C13CAAD11705BF259D904F464CF499B15AF2FC1733CD81E7B70A3BA97A297A337DBC08F1660CD9B231C001936AD6B62650533D12E5718DDC0B7062581CAF7C1482071001B5A802AECFFE96FF5EA9348C0227112385879892490BC00EAAB2F5CBC08E563C7420E5A93EE861DB0E168F33591401218692E997A0240737333B88FEDF854245067B28237228E6C004C9B7D67B5C3A847008C671ACCF379F0873FFC0AFEE66FFE8609861E36286B246DCA7E575B1BDC4F7D3182E69D8F3E827AD41422817EFC9DCC2C0180BE2F59B20B1C8E4EE6BA29D7272B2F1D05320BCF3F8A2EE53A6C7402C0A44993E062730B948D2DC5AEC909AE2DEFC1B93E80F9F3E7C77D7CA51C75595E14D862B319B2D0737863C70E388CC7C80B9090A5A4A5A10540EF62DDBA7590C775439FAD88592AF5F589E5156379731184AE8F3F86B7D07B5048A0D1E6C073B8892BDFFCC34806C0A26ABB115C3555154C60393965B07EFD0A665E53D08FD6683449491B7D52DD0464DB7DB259A47383D805D8AD16D6A8C4D6EBEAEAE1E2C50666FEC9DF569B7FF5271D2733AC1CEBEDED65E7B75FEE8072EC02481887F6EC80FCD2F1EC3E360419DD3B91A4299B123DF462574565137114D06AA46097558CD661F5EAD530BE0049AE239B9D4B0053774B6A8F40294B0952517C848264269B1382120260C94806C05D8BAAAD02E72AC8CE405225607F988782E8810E34C37ABD9E3D3CD581111FF619234920EF4B099FFE60088C46030BC210B1D2695391C09D63C2E538BEFF5C497D2DC48F1399547EA32D8080CA4C4D814E2481BA8817059609220A855878E2FD25551DD59F20D73F82E552DD8CF85C9790B7E423F2035A0B03148189889D98A40C50D753AE1BFD39D332A0DB134100BC38720130EBAE07AAED7AD155815E00F5E176FB18F8CFFFFC314C9B368D215DD1CE44661CC1E336D4885424476DA8659D788CB482CCAC15BD078A015020E79557B6A0F69F67F7A2464E64D6710DC33232D1EDE3F058138285BA1FEAB73BBB7BA0B4A4988169FBDAB720A8773273AE76431337AA9B9DEA8782BD84E5B6539C01EB66B1589955ABAEAE82D75E7B0DAA527946020900F4A7AE9B6209689F47EB9386164CC4E73D2DBB81449833730B18097CF395110E00A741728D2F1FCB48E099331AD8B3E74F03486032E27609499B9A04EEC77349306401AC66024005236AAB579FC0C60AC2BDF7DE7B05B952979983E42A5924B0A5B50DC6141741666626B4B9B6C2F68F2FC3E2C58B99491F2E09DC8D02A3BAA10962419F6AACF3C7D89F47CF1FFC542430253D0B3C110101F0FCC805C09C450F545BB4E01A87448B98B6C79306AB56FD17FCE8473F8A1336850C526328DFDB919D3F8C1A9D85BCE18F2834050041D410ABD9C20040DAB662C561145E1FDC79E79DF132944DFD3DF5F469988FBC61574303AC928F93177009C96609DE83D87BE3DE8D70A8D9C3C629E84F5D27F5A7075DCAAFA13529292B83DFBDFF3EECC53A51DD286EA00060CF9E3D60EF3BC700400475B0B2E8B30489DF0308C6ED870FC3D2EE6EC60588E3A467E7420049E06B231B008F54DBF45157D99812E677E7E591EFFE12236DA4C18A692473AB368DB4F1F81BF1040F9AD930F5CB4623708206CCD8CF5259B367CF86B56BF7A0CBE5628D49B100B59FADF6B7A983D5E1FD28D012C1FDAEAE2E66667BFB3C505C58C0CEDDB26E35149557B2FB90D9560684D4E5291B5696F10E026B087FA32EC4EE70A247628731D8D52D59B2046A8A3240482B6042A6E718D08DA8CA255E42514EEA5A42788CBA460A6DE7178F015F449AF8DA8BCF8F682F200BA4E001B34E6B894423229120797C9CFE95920F9773542FEC38258DFC29286745B1B1A8AFD76A88A147E48224E5B22107E0B9245F4211112C262303A0D216F4C9ABCBE28697631025AF05EBA541B2CB408730419044909C52D247989E2AE1310729536E20ADDE1D356AA66D59BEBC75D464040DF687DA584269617212E86C3C641AC1593E494FC5ED203EE306D4FC8DC83976EDDFBF3FFC45B7FB170600F4950D76BBFD7612BA9C1E56762300F1736C8F3EDC6AF1D93710288E1E3D7A66D40300FBEC52443FE50192C049CB8D234860D7BB2E6709083220B6ECDCB9B36F540060F2E4C969519DF950AACD9285EC561389F0480063513E8EE3AEBA3C22835AAD86A56D115B16450D9617864F4CBCE3127BD8D89F12590C87432048110823DD1850372ED955C9BBF17054042DF2133DBA90412C4FC7892CA9839A58FDACDC6084A4BF4CAA823F24C2596D543BBBB67675C7881E0ECEB0EB5D936BAA61ECD8B1E8B28D87B7DE7A91B1662540A20E8FAAC7DD891D6BF19C30CB970BC7F207B191EDF6D85800B9571B371E83CB970F31A64DE1DBC146DC68A33C3BF22C68F49EC6FF696CA2F9522B4B09A3DF3FDAF23E380BCAD9E81DC501140F255999E44D70B2AB1894EB66462F242D25159FB314962D5B06D38B9DE0B3C53C0C7A5E7518591D6422F64F2889D273E36FE40550CC44D2E8A10FDDC09DA32925CCED4E81356B9E87279F7C321E0748F4D969A338C05750F8D9E852FD7EF3661607A048621FA584C9194124F0D5AB8F417A7A2F1BC049F4FFD531869453A76011BA8E3B8E1E85F7D072D060100582CE349E630020FFFDC2FECD70A0A98F0595080083F9EE7DBDBDF05728D031E8AB3FBF660D8B0324E604EEDDBB176CEE46E83617C4338C062BAF045DD287274D82DA83076109EE2B81A00022D58F6EE096B5A30800E7CEE9A0AEEE8FF0D4534F7D6224F0677979032281D4C81EAF0F1C724E20F9EB2B571E1D7624F01FE6CE1D3427302B2B0B5A0E6E819DA73BE0A1871E62AEE65091C067B02E4A24B04E0E2B53B247869C1378E2C409909A0EB340D0CC99333F3112F8B37BEE8157366C80DF9E3DCBBAB671E3C64184D38037C48F9E9C407AA8F4F432F8CD6F9E648DA46841626C9C994AD42A27EEA7A1396E76BBA1138F51BC9D822E4E7BCC02DC7AEBADF0DC73EF014DB4218D1D2C1B883601EF93858011B1DC0B582E59008AB6511730615C3933D16B972F017D4A16EBAA9421DB64B17B56376C373BDEB3A9BB1BDAF13C02904E6F601680EAF6FBDFFF1EAA32F4104E29665D5DB2F109A56E1ACA0CD66A2184ED7146B60A34A2A8355947474A98512BBAB2D29CCC11B65AAC2CFFDD87A69C170499394BF2E85C3F9B1E785CF94DC26BA360D0EBC064348056AF67236FDDA8910AC98A8DCEB12BFBCB89FD0F6C7E855C8E28DF2C1811C1613182CFEB67237106238D024691580AF2FDAF2C2B7E7DBC8EF27DB10E06AC0F710D1AC2A611458A78725C8C44B23254DE8224A77EC9370151DE57DAC19A9A0EBE6068840360165A0093812585523E004D0CD9BAF56DD60814CB27CD4DCCBB578F932BF9006CD40C1B33408341C8DA2BB03FBFE9A69B60FBF646E8EC3CCC3489C2A789B9FCEAEF743D6935DDDB8D5685FAFD96D676B400654CEB8EEFAD85B4924A764FAA9B92B03A580227818EF20114AF418B9E89D3D99F0F3025DF8224B090FDAECE55489663A0640DD339649D284B99D79BC0171646414EA055E3AAA9AA641C401473E18D37FE1D1E7FFC71F6A0899932CA7E4F7B3BDC8D0273E0351FB85CE092075CD4296124C0356B1A90B5B7C3CD37DF7C45190332829A9AE01664FDC7910B6C92BB00CA083A77A189E5043A1C0E38B3670334B40761CE9C394CA0EAEC1DF5E64396FE97D89D5046D05B757570088F113FA1A64C9573023FFCF043C8112F4397293F9E1134D85688A4725E5919CB085A815D0AD599C63A048319FC516934E404EA5C132B273000D4D78BE072BD111F0E4E362924D9C4908FE4DC7B4A096349A10800D2E855AB8E0FC8091CAC3C754EE06B9D9D4C738987345D6C6629613452D979741B6C6AB81427816ACF445D56321248BC8186399494B026049CE744DDD591C0F5EBE1B78D8DF194304A0AF5847904C0084F09739A385775C578D6489410F2EFFFFE23B8FDF6DB59A30EE6B313212AC1EB53D11436343743135A00EA427C01CA098C0160EAD4A9F05FFFB51AF4FA66E6122A59C1C936136A7C310287047F18CBA646A6A492E6965604C0183692B8F19D6510D63B1889530860D2FA91DB4763FF788D0B2DCA05FC4E669F329E1400FCE94F7F82F14E808023966C92185350976BC57B1521D9ED4360ED43EBA20C075B1CA910401238B253C210005603B8F2B23298DB969B5B082D97503BDCBD60329B59142C2A3362960E467D7F3CFF5E64848C7E57E605500A97CD6262A6363727173528CCCAA38091DE6050B16D519567DF9F8BCF72F3E5DF8980D17E3A96D58DFE77C0E701675A26237654578AF4C4E724A8AEA7FA89AA790B92142B8FAC8605414104B5B1F11C64A6238FD01918D935188CAA8CA0A8EA19FBBD0349AE17FD4E7F1939F9D017088D6C00CCBA6B51B545CBBBAAC697B399404E07F675473633A64C42A4864E246D34CC1B898465522432AD5584E8A3717F8B99CD0E1E8766F2E89176E8EA3A860DAD6391BD2BCBBA727630CBF8C572C83DA37C004A09A324D18BC70F424AE13846FE88B41986313B98AC98E226F2828691C05CEC4E6AB1ABA9CA4137CE92CD882E7531C91255D5DFD59359D9EC24F4024261CDC437477A4EA0C320B926948F652CDD641A032FBDF40B967B4FEC3ED96C596A000F0AE436D22804491D92A39372B42D96126662E69B2674BEFBEE616CAC66363183C5E3550DA9F62E52B1DFAF44003623B9DC89BF51B895BC888BD805949614B12EA07EDB5A38EFE158D7922C7B57D927F0DC4E19C0F2DCC063725A3825A52A3981AB56AD8252A30FBA910452BA99BAACC4F2B2B17BBA1901427303D7E3732B249000E08B8EF09CC0390800B351728D2F8BE504EEDBE78353A7DE4D4A0287333B98DC408B9C13488D481343AE6576305915F202949CC04F333B38594EE0A7991DCC8E21005233B221882470C4A78459B411D738245A24408BA50489DB532C744BAE58A26628DA41EB034C4721D851A3B61F3F0EA7652F80068568B0A6B2A28291B5975EDA149F1DAC0C2CA92D89F2DD8942AB4C4B8BCD0E96C707C80B68458B403981E477EF58B31C7AC0C43296D5B38313AD144D0D9B8EDD478AD309DBB06E1FAB7202696A18D58BA6869559C3E0B51531ABA0A497252B2F1BEFC5D607686B838D584F3A465E4046761ECB0A1ED12961B3173D528100A82F2D2A8811B7DCB170F8F06ED6C7A7E0F7C460CB607D2E6DF4E7F3F999B92E2A2C645A72EE5C1BBA5C1FB37C7C0A1527F30092CD142600106FA0B105CA09A468E2A5F3672023B78891399AC8A1D56907F52A12CB56867569A02A2323132DDD5E28CC4A018D3905CBE3079D1D9CAC2CFA240E4049A1A1B0B6F2B5579E6B18B10098316386B13B2C7C2596DB378CA48A68D8110EFAABD01BA894C4E838BCCE98907531682EDD179E10A2AC3534B07E22BA8767788D704CA335D40B3AC3058EE386D5E86851C21E4D6479D3AE5DFE5191113448C2881609D92CCA12A2D4306C9CCA5194E593ECAF039F7133C4D60CDC78E2C489962FF2F9BE1000A0D00BF0E1E7CB0B42CEA5718F1B54589F475D8E2A60406EB303DDC7C0A803C0C30F3FACEBE9E9B955B53660C528D7F26BBD1799FA6D0408CA0DDCB66DDBF1110F80F2C9B3CB9C26EEE4F8B125F2D22B63C0ED3ECB3C000AB42821D201D1BA21F66995304A08C9CECC02676A0A9663849E9E338CB8293901CA356C935707E92F431AB0DFD3DB0763C714C1E5CE0EE0FA3A40E3CC662165B3D912EBC09528A4A82E578ADF4752D58F52C31CE84D389D7674754F41518A09027A3BE8757A5637519E98DA7FAD74C5732ADFD950B5C84B4109C6D5AD5FFDF188CE0750124228966FB395323790C6029465E21267DEB0481DBA6A79D818B40AC719F4A95BC85DCACE66710025258C5CA5D75EDBC126875244513D397440CE1D96A7C37BE59BCD1046F65F2F4FC3A6783B2D105189DE84197FDBBD7E25F448A6D8024D83CCE26165E3F554B71474474FB6B6C245FC4E913E015DC38CF45846D0EBAFBF0EE3ED51705B0A18D0D54BE12496674437300FEB1F44A538248F9092CB1BE5B5E00EC0E8CA0944B7190E1E5C3620109418BC5102413FA540506525FCE0A597D86820F9DA7D1E1F02C0C62281A4A96BD69CC4C68AC03DF7DC7345F04719CD535608F9C1ECD9B064EB56786D9094B0AE861DB0B9E1D235AF10128E44E3CBC45DC0FA7B4FEEBAEA40907A343024F1E00B8BA3272790A26D92940B4B96FC1ABEFBDDEFC6E6D5E1C32A9F4A92286DBD972FC322D4A854BC66C5EEDD70240E805852A8120A7EE38D7D6872BB58F086B43A208FF42979004A79940F703B5E7F184DF33AF99E24A8B3E72EB055C2285853BF752D9CE98DC282050BE2B102A50C65F5AEF80A21A8D53968D15EAFAD85037220288A269D52C208589B376F866CF132B8AD45316126D449FD59E276C39D688D0E9E3801CB5549A164013C416EE4E704A62300A6DD5C23A7858F81D5AB5F676488867095F87DB280482CCB461B5F4F906925369803AFA3FCC2193366C0B66D2EB878B19E9D4B421C6A4937653512DAA7C19F2CB6365F2B548E1FC71AFDA39DB550307602BB0F451BD5C3CBEA2C25E553C9080ACB69E19411949A960A25681D56AE5C09554599C0DBB3E2CF3A58F0874D84A5A561E56567A96BA4C1284E671C1D3981663DB88AF373189132E8339108F5409FBB8FF5D90AF189E5DD89729A9D2ACF4E8A0DD9D2D02C7D0F2207A0D9C156AB2DB6F286C68E0DD6CAAEA7C118E51AF544CF017985EAEF5826E5176467A4416F4F2FE84524E1460723796CE63297787D7FBDAECC59949805A0A160227D9DA8C9E9660DF8393DAB676C05136E407EA39450CFFEFAC626BC5252A83708233D256C7675AAC5E8BAA9BA9299C9949432F8ED6F7FC6345849094BB65E1E255DE869E897C2B558C71ED4164ADB12516A36AB054DE438666A57AEDC8BA0884DAB5348A05A4BE363F668F2EDF2C4902E142EDD9BA687777475A31710F350766D5C0D9239353EAE70C5BA82AAAC5E23D69BD23C3A297D0DBF93F5A1FC8614670A4C98309E91C0AA741DF86CF971E1AB19BF523FB67A092D7C45C2C767A6A850405E12CFE24CC57D6EE29A919E13986ED3BA26555630937BFEBC1676ECF8233CF1C413B1FC3A1484328143DD67D3C4901FE0F90508949F2D5B0647B0E148603E7F00CDB319C6619F496677E3C653482E03F10522D49B420469CB440EF03892B1157575F0366AA7927B4FAB8495220028567FB96117EC6DEC82850B175E313144A99B3231E49F5140959326C13FBEFC327C24A77193E52020D00AA6274F9E04BEF538F49872D9C49064F552F8CA3834F9FF82BC63D9962DF002925565304863B4806FA42F135733FBCEEA0CA38EA584D1B87867A705D6AD7B11BEF7BDEFC5059FD8C8B45D6E69818750C0B442C81FB06188049256504EA015FBE732E4133428B47EFD092CD7CF169E4C0440485E1398F69DE7CEC1429A19545F0FEFCBA0A346BE841CA0B838B69E6FB36B071C69F13000287DB2BA0C65A31542BE8EF71E8BD73FB77A351C90D7F4618341294E96B1EC72B9C0D47B0EDCE6BCF80A2189A054B6629A6984E77C78E0002C410F45C907305A1D100C8D8265E29CE6584650595919A4A717C2ABAFFE2E6E16134DAC3A758BC7BAD1444B127A489E5F07D8CF5BCC26E67691666DDE7C10DADB4F304151BF3D60D955751780FB7AEC2268658F087E525A387911F4FE8122798590BADA4DC8EC4BD97D94FE5A6DB6D5E572F2DC403F69317E27D268C2CD89DD54210275C58A1550999F0A424A1E13BA12081AAC6EF4AC34692584F7A5F3A96EE9341C1C95467E4EA0492FB92C06EC77D187F7F9F07E7C804D84E4065BD18353EFAA9613C17FC4288142CB166066AC59D402CF85D8089C521E7745395C92413AE5272D12D39877C08BE821204B60AB90F0FC80913D0E9255951BB04F2496081F0191EAA6C1D2C222175FC26EE073015BF18CDD858F3D27C773785F81E5100A8206523232A1D71B9DF4EEB2975D231200F452A8E973E74F7418B487CA4A4B18AA4DA66C78EFBDD7D89A3964660768829C34A19024905D371248485E23882C00316D8A949199DCB7AF11BABA4EB206274E904CCBD86C5CB210D8B0D4F0A23C7387A277BD6E0FE4E7E5B0F3EAF7ED006B66416CFD4125743BC8C2CE94BC4A6551820AD58D9E87561827772F2F2F173EF8E003A8CAB140D0122B3B718DA001E552592CD114F7650B4041B3BCA212F084A237BDB3F48F87650F411A3100E064759C7AC7DD9352CCC2C192C27CD6381D1D3A2481CBE1AB5FFD6A6CE165D50409F5F2ACB454ECDDD86869089AB777ED828FB19E24B06028CC0040A48B00B16BD779F40EBC2C26A06401255B8ED5D1DC0CB3B1DBD87FEA14D4CAFD3079251D9D5D909B93CD3282DA4F1C80E36D1EB8EDB6DB1800D4E52865D3753431E47E64FC8578FDAB9B37433DFE469E036504D13352C2EAB163C7C0D8D70C7DC64CE6ADA8EBA6049694FD7CEC8EEEADAA825D478FC26AE4034A983A35331BDA3ABBA76F5CFDCE216C4ACA3A113F6B205C6F00686E9E75C74D6956D39EFCDC1CD64FB6B4F070E8D01A78E491479816288DAB084A6998AEF676F81A32F36C14F4FF7BFF7D3885E79256304BA03740515121D3AABABA73C82B42307DFAF4A40253B65404D4E29A1AD874F8306CC44656E2ED9DDDDD9083DE06B1F78E8F0F427D8B9B8D5328D3C892818A00F02D0463290AE93FDE7E9B8D2D30D7111F99D631A672CF239BE72E9F018F298B452D1301A02EAF1889F03711C0EFEFDB072B2E5D628A401C2733270F4E9F3EB770EFAEAD1F615B7AC8E07CD620B82E00E05887C7BA37E3B889536EC9CB4CD9989395C9DC40B33903DE7EFBD5789AF415A3774A8E3C6E06DC37A326F6628379E9FD411439C446A697399147400342EBD6EDC7C66D6102532F359B38CAC6D3FA82F2D26F3DB2AF4D42A325E8B2D03BA17E7BEFF62D6074A4B17AAA67F10EA8979CCF6FC64F23DEB303AFEFC3EF944246B9FF346D8DEA465D40490A7649B6AC7857A726954A396CFE237EDA685D620443BB9C164E752B281E03478ED67FE3F8D1C3BB28E4809B9702A7230500B408A025A7B8F4E682FCC20D36930E2234F285C20B0482CCFF674283FEA89832AB573DBB377E4C3E4EB383753A0D76034666A66973BBFB625C8D48A2387839CA4CDEF827CDFFA3655F2D66F0627DE838BDD48279208206943B27CE028E97AD442B55B39B755A0DCB35F4F679408F5D15D13C4EE06432AB7A265539FD4F88B450924927B68DC1628363470E7FF35273D37E3C44EF22A6174C863FCBD7C85D6F0B40537F9CB86541EC35B06972F68F4106089F40A7D59511A17F2DC1C44A261E4BC6EF25F5A74EA3D1DE5259F990D56C2E3BDBD2B2EA7863E341F91EEAF3E2E598519D6F1A3FFE5E87CD56D3EBF5361C3C766C95C7E7F30EF5D849EE3FDCE445E579A83E5159CB09915DB2E05B650BE01B110050818026D953C494467D32640038E5633A1900C210C21BAAC1D49FDC2020617F4E8BC5765B75F5DFA1B5C8A86F6C7CE9F8F9F3C7550D0E72A327BD474D79794D5941C137F0069AD3CDCDCBF61F3BB62F41E883AD4E39D46FC9FE4499E885E4CC20B70C802E79DFA77080114102D54450D67802410A6E0ED9326865E1730916401AA6B60CEB6F1CFA9EB3264CF819D565E7F1E3CF1CA781FAFE32A4042040328B90E17058E64F9DFAF7683DE6F6F9FD755B0E1C78FEE2E5CB3D0982E513B49E1BC44A7083805C94353F280BBB57DE14C147E4AEFF3315D8E7F2EA5859D00A08ECB205D0CB8DC60DA1FDD23500202E84BBAAAB6BAA8B8A7E1D11C59635070FFEF0744B4B5792EB25D535521200C4CB7B60E6CC5963B2B39F42F2A23DDFD6F61F6F6DDBB6214917C60D724C1AA2BB0395F9F7CB42A77502033228A4EBF5FAD8CF03000AEA49E329C7DF225B00BD6C1DB8AB30FFD2207DEB15A0F9C6CC997717A5A53D1D8844762FDDB9F3C9E6DE5EFF201AAE94C90F01AEF8B96373736DF74E99F2A4C560B8CF170A6D46B7F29787CF9EEDFC04C026E305C940189685EE932D41E87A68FDE70A00150878B9DF37CA0030C800E0AF12009F745CFAA7B973FF36D56CFE87BE40E08DE76A6BFFCD170E478761558673CFF8FEE373E6CC294C4BFB153E9AAEB9BBFB9917366E5C7D0D6543020F09C9820F28811FE93A0BE8739B172083405081C0A022823004991B36294CD1E98427E6CCF99545AB7D18FDF3DFFC7ACB9697AF92545E15D8A61615D916D5D4FCC2A8D73F148A44D66F3B7EFCC71B1B1A2E5F65398AF6C708A0C321D834FA0520F11AA3467CA7B5B5D53B9A00A08040AB72053509FDA6742D42AAC9CAB23C5653F3925610A65FEAEBFBFEFFDEB6EDFD24DEC2B50260C8EB7F7CF7DDF332ADD667B1F2FA2E9FEFA9A7D7AC5991A4EF1FD29331399DD335A0790478EE7E6C2A9BDC5C5EA450EF72202DE96A6FF91065151DB100180404DA41BA81AB12D2B72A2AB2A71514BC89C5675DE8E979ECDF76EDDA3788BB782DAE260CE52128C71E9E3CD97E6B51D16FB43CFFB58824BD5FDFDEFEC48BDBB6B50F050093CD3681E3358FF21CFF10364EAEB29C5C7C6493E3D4DF2FF11CF706C70B4BDA2F361E1E9100480001AF12BEDA1D4C469A0615C633B7DE5A59603693C605CFBADD7FF9CCAE5D67AF4283AF05044392B9DF2D5E3CDF20082F90850B46A3FFF4772B57BEAEFEDD6070E4085AE9ABE8493C8A4D51C544CEF50B3D3EA4AD3E96000A0442BDC8494B2549B7ACF3E2A98B230A0009208004E1735713E079E5F6DBE799F5FA379045359CF47A1F7CBAAEAEE3530A78B88D210D157DFCDDC28576ABC1F02C3EE837F1C09AEDCDCDFFBCB4BE7E068AEE317CF4DB69E43F265345E00341A0687E6C1F929E231FA36C83AD12074B259376C5E51327FA4604005420480CA372C315C48A3973BE8D27BF2071DCAAA33D3DDF78FAC081C03568F267FEA7B0767C3CCDFCB2B29FB8C3911F3574761943A2C825D76A4834F5C9CCBFFCE69AA180C2F9F1F33D7CD2A5ADC5B91BA4DADAC80D0D8021C0A06EC4A421D455B7DDF60C0AFEA778E2FF39BC7DFB93BFB84E41924FF367B1397E883EDCFDF8283339F9050103849B4CAB01060A57754EBFC06150A0B09F68695AE0DAF1DB9BD44D5C3A73F2A31B1E00C3FD7BBBB252677438FE80BB5FC18A7F7F615DDD0B376A5DAD76E72FB09FFF394AA44114233A4994C672097D7B8206AB040E89A63E0927E82F2B1A7F35AEC44631D9D274B4D6710C302711134B04415AD678FCF8B91B8104F2F6CCCCD910E11E45F7A625CA4597BA2F5F3EF949D7ADAAA971E8B5DA77259E9F82757E64E1DEBDEFDFA8C2A767B43A537F894DFBD45FDF6D863F1EF54A9A0E435B30104811A3A24E31FDC94D7D22286050A0B0F509D9CB2B22480CF9D870321FE3D7344742D0EA40A3D5295D080D34EF44882CD19884B71B0F1DEAF95C019092995F0D207E1D2BF9284D1054C6D9E5F1F4FDD4774535DC9B9EB6B6B6C46BD7D7D414A169FB00682491E316DEB57FFFC11B55F077DC7187A9B7B737B5E952EB2F3333B21E9B36DE00AB33EA21F2A6052C26211A0A737D7E9FCF2E293D5C02C94B060A3507508ED12B6E407E0F31FB594E3A116420004D82E16289A73ABD11343A7DDC7A4422E14301BFE75F3A9B2F6CBCAE0048CBCFCF1523809A0E8FE17DAA60C072E852FF34AE7E3050A0631376E84B2D3A611545C13655554DC687590BB4B44A347AF7BCFAFA0B37AAE6D37A48C160702236F4ECD6F6CE47A64E9B32F1C1C58B61F5C68DB0F1FD75F0A3078DF0ECF93EE05C665A822CEC0FF8AD57E3FEC54D7FACF5B008D4FE483496712C5F1BCB9EE6182028055ED0E9406F88A5B9235EDA823EF7E968383203ADC7B7BBDB2FBDFA9903203D7D9C95D30717E30DBE2EBFFF8F5767CDF467EB24CC8B1B9069C3F6BD3982F0D15FDB6DD327E975BBB860F02FE79D39D37B237394D9B3671B7A7A7A6E46F37B576777CF02A3D936B9BC662A04421170B79C81E9930A61B97F3D043E304059AE00E7DB85BE50C0A70F86C3BA81560086208A03BB0636881009B32C654979C115ED2007A0771FD08B2CF1BC703818DC1B09876A245134C7DE841EFDD667060004BC263DEFC29D28B5C7D035BD8FADEC3550B3219E8625492A00A82CC190BF431B2746DF90046EA9B7A7E7C08DDCF74F9B36CD120A85F21004B7B8BDDEFBBA7ABD7754D7DC6CB3EA05983D6F165C6C71C19F5EAD859F7F550BCF747583B0D5216924DEEDF37A6C51914D2248EA220EE93DC85E067101F6722C5A2D456F9483467039140A6AC568D421C97989C41DC42820002E7E3A0064178C9982E6E6318993BE0222A40FAAE92ACD1E8E25480E86F83927F0419682A859E6F7779FBB0141C0210F1090073871770CD6F7F6EE3ECFE2A824D43CF4C8780DAFEF83352BBBE0AF1F7B1896B5BC01AD6BBC60D36BC066E222973A225E0F028193A53FA4FB973426D0DF85083CE747CF23128E44AC6CD6B5A8CCBE9662CBD9F1F0B75D2D17FFE7AA01905534AE98E7C5AFE16564E2CB93096BB8663E290FF8649EA00084FEA993405C1AF4F996E171CF8D0684050B16E83A3A3A3288FF84C3E13BBBDCDE7BD3B3338AFDDE103CFE9D6FC3919327A0F1940BA27DED30655204DEEA0D80EEA0D317F47BC4602068498C0924BA7FC982473CC745341AC1130947EDA224728AC0D5C2A74F9D867FB27C4CF1B3C302406161B533AA0D3F8CE7A2D06126D10C5AD29CBD07E793B4FB0AC15D0B40925B13F47B2F729C16B7E82F3CBDBD1B6ED46EA1BCBCDC6C3018B2D1344F0D8423F7F57802736F9A3CC1C91BEC10F2B8615ACD4DE00EB5C3CAC63500076C50550870BC89EBF5B8DD46247ABAE49A0F894451D2EB74BD2815339A7B6DA2C0D5564023F05B8C027CB7B1B1F1F4A000A8ACACD4F586B84578D9D739495C88E7E914818583B1B97D12BD5C49A3658B2331D6393CCDBD461ED05F1E56DA27089A0308812968010C88C7059EDECEF5373841D4F8D0FDC3DDE268343ACBED0B3C18E13453F47ABDEE2B0F3E00BDBE0EE8EABE0C5B6B0FC3D30F85E1A7ED1ED01E748A9C077AFB7A7BC86DE4078B1368B53A8F46ABE5A3A2644A2670651FCF3D6FD6EB7EEAB09AD61C3870A08FD2CC060080CC5641D9C49922441EC3AF0F616B3B15C1208304741F50F021F6660CCA9D67EF3845E241DF797A6DBA46376CCDBE26B0E057BDDED08CBF5BC617F0768B5E82DDC743947BBFB0AFA7639D74838735A97D4B4B4B7556AB3515AD4145342ACDEB0D04EFCFCC768E2D2D2FE502411DB45CB800F7FEC50C58DEF52E746F0F83396C82319991D0E133C180CFE3B1A941A0D168827A9329204A9C3D99C0152B8042F6E8B59A171D66FDFFE579FE320A3F120FB7CB6FBCD2E48FADF8174E10BE83DF8B94C626564982268DA7D56DC9ECB3E364FEE9956FF4C9D167845900BAA9CE608C0FBF7C2218AEA21BD0EBF45E41AB95B02FB508F7FB6086DF04705107B587BD34D9E45B258579EF188D465FED300741BEE86EA1BABADAA8D56AB3F0D926872558E40D44E6A76765A7D16BF016DF3F1F5A3B76C3D1FA1E686F6E83BFBAD50FBF0EF482695BAEC7D7DBCD23B13358CCD65E10B436ECE78564244FB602A296E7D659ADC69FA22378EAC89123FEC4E4520600A7B3D801FAE01983D15C8FEEC34C898668E5694CFEBE9EB8C633214BF4FA367A11626CF56E891D17E477EDC5A667096809C8FFBCA66E20E17C41C387B15EDE7038E278F8560DBCB92D0886A9127C63FA37B1AFAC82BFFBFE0F2035C5F1A2C36A7D47A7D39D46F3DA8608F74B236090038120545555D910B80558EF198108A0F11766CC9B57A8B739BAA0A53915DCBD0628CC30C2BBDAB560DC5A1C5BB6480C7BA222674DDECFC7F6055E3AA1E7B85F588CBA0FD1E2F40CA618710070BA503763913CF7B1DE68F163BF3E914421B2F57A42100905E577F791B029F6AC01518ABD6031128DBD989980A061F3EF6008863F8407A00208CDF23299CDEEA82459A5B4B000B7FAE057C654F8F1AB7E983B7F219B5B5831B6087EF8C37F86CC8CD4ED768B65375EBF0F1B72AFCBE56ABD1EE953D7AB5BA8A8A8D09A4C269A33511E8A44E60645E101479A6D02CF9BB9EA0963A1BAA2020ED49F80DDFB3E92A79247BD5191A6278A57903CEC94BBB43CFCCEACE57E6FB7DBDBB66EDD1A1C4A19FA01A00F752B0B19D0272F68F6A13528C012B318F10B05626008850824F232693CB30A1A9D2EBEA2C6704CFB2769BFD16870A315D1CD182719B6D5A31C334250382B0B1E2D7A143ED8540B96F47C08211FF175B7C2E1FD1F05B333D33E30190C3481724F28146A387AF4688F3492863965204C9F3EDDE0F7FB33D192D6A06A2D0C4AC2C2B48CACACCCEC5CE8E87183BBB30D7C7E3F0A4DF4A26298D5661F0512D2F2D25A9B5EF835CAE69442F286950F100340B85B7135D898726C3F8C7D6FBB24F059783381EE130AF81108E198991762438E57EBBE0DE60EEA745ABFDE608E44B888555CD403CFA5A6C00F5E8EC0848A3CB8F5B62A28C89E0AABDE7D17429206EA5D072481E33E4E75583F40D3BF0FAF6F40ED6F1A3B766CDF5B6FBD158511FA47DDC2CD37DF6C4110E4A120A78740B338CA6B6E2B1F37DE74E64C2304D11263478B164032CBC2970488BA0CBCF86B5E9276A202743434348487AB000C003939E56941C97B39B68C49FF92260A20B03F0F6A044D006F6AFF34EEDB603C40E0B988C962F3980D9CBDD72722BD8D82E611373CE45E04E72EF9C1640F414E5E07022F05562C3F097E9FB73DD56EDD845ABF031BC98564AA312525A567DDBA75A191A6F983590304810609AF1381508A98B823C46B1F42B7B10A7F16180024306357D0AA15232F1A901AA1E56846C1FBAE7606118B2C141494157A42BEC6B8E079B59FD90F040481877CAE6854345D552067F0DF258BC5DACB19054B3437A0F9EFD93AF8DEFF00A438CC307FC1BD306D5225D46EDB0E8D4D27C8C2C1A18367FD76B36997DD6AA6A0CF61D4F88F65B72620DD8059419F515859EFF57AD311E8D5C8C0EE0E72DA7B2489D36A20B24DCF459FA736C0BEBEFB5ABD1F963D802E49414B4737055652B8440BC02B0B1CC58F4B5A81EF8D44A3E628459C06D1EC4F8AFA19F4068FDE64E1A392688A167A409CE6866FB597C1F65336C8CE3541BBDB0466931642BDDD70E4884B341B74C71C16D31ABCFC805EAF3F86DAD182ECD63B12DCBECF2A9A88CF4B53EC2B110C41DCEA1D0E47EB2791BC617501C5C5C50674454ADCFED0CF4391E803141748D47EC532F41FE7A30227F6858221BB88901C56D8178F52F0C26CB505AC76D1FE95C922BCB009DD4553101EB8FF6E98376936ACDBF4219C6D6A85943413F6F387A1A7D3D76233EBD61B74BA3A32F75897F3252525EEB7DF7E3B3C1ACCFDD54613D1D49B3C1E8F88E6DEFF59783AF14820091D7D52AB3F1C9EE90B449EC6FEFE26D60DF0092050EDD3582312B140341A0E858241DB503C80E7B8A8D5E670731AAD3D38A58D4F3572F01DB305FE738D0E66CC2C87D64E2D8C1B938E4CD70BB53B7610D3F5580DFAED469DB009057F18B5FE349AFBCEDDBB770747A3B9FFC2AC4B622898FA9C603098DAD6E9FE6A2012FE21FE9CA9081EF84410A8DC461EDC019F4F1B09878D89913E8BC5D29B9765343A2DA06B68E22054D50137E74C8445E3EE85551F6C00ADC10C68D3C06972C3F66D27A27A2DEF729A0D6BB16E072391C831447DEBC99327BD5F0AFE3A0340ED8A9496969A4D0E47BEC713F8C76024F2281E35A8853F8865A061C25EAFC76D417EA041ADF5996D4ED137B7D9B2B8CB0156030FAFEFD4C15FCC2B82F4B442282BBA09DE7A67357474F540677727440281F3163DBF0E6DCB2E64F647D0CD6C42B7A64F1DBBFEF2EF730080DA1541F3EBC0CEB6C6E38FFC2402D2AD6CC459DD0D5C193BA033C2208968EE7514DDE27A7FE08259EB268259970575AE26B8E79E42309B5B20E0CB812D1F76404F4F57AF49CB6F316A85CD581F1782A711996D17129CD0975AFF050140CD40EFB9E71E435B5B5BA62710BEDB178AFE93085CB1E22A0EB00A2ACF019D55377AF8EC8D104537A5C2DF2FFC36F4BAFBE09967FF1BE6CD2E034F5F0876EF391DD671E201B34EB316403C88D79EC4EEA72DD9A0C5977F5F1000146B400108228968960BFD223C1E8A728FA1DB684B123D64A0E01900785B5A6A0A688C36C84C73426569212C59BE92C2979206A2670D20AED16A853D14C543C137A7A6A6F6FD39B875230E00C948A2DF1FAEF245A34F44419807896E23F30EC02D2200E82D5ABCDE0C59690E683C7B16DC3D5D5D3A2EB249CF735BC8AD43B7F0DC688AE28D6A00249244ECA7732212774720CAFDAF28C757A8BB01819318006C562B389D0E387FA129A897C27B755C9466F41C1AED51BC510D00C51AD0302676090ED4E29210080F8625CD5F493C97CEBA001019002810A085E8499D145A2D89E2BE3FB728DEA805809A2452760B0A36137DF68AB0A0FF761834F31100014E8290560AAFD709B01535FEC89F73146FD40240C50D04E40636D4EEC2A8244D8B8066AA460C1DA298B5C16038F565146F1403400D044A6A0804024EEC1AACA8F5019FCFD775F2E449DF48C9D0F912009FC1DFD34F3FCD6FDDBA95369643FAA5B9BF71FFFE3F918F337F52328FB90000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (133,1,'SAN_(24)',0x89504E470D0A1A0A0000000D494844520000001800000014080600000097B5FD830000000473424954080808087C086488000000097048597300000298000002980136D347DF0000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000003FD4944415438CBAD954F6C554514C6BF3377E6DEFBEEEBA5B52D7F4A5B3091F24450504275439A18351137C6A80B4C74455CB965A5814477C68D1B638809E8421317C68434BAB10A2E8A11C116412C584AB58F86F27A5FDF7DAFF7CFCC1C172D4DFB28BE857EC9CD243767BEDFC9F93233C4CC68565F5F5F1F113D4F4487003CC3CC6D585F31337FC7CCDF4A29BF999A9AFAB3B9809A01875E7CE9DCDE5DFB07ABD51998C949D4BABBD056D88A3C29238863646D3E8CF49197CB6848173D1BDB1065049A9EC67C4767E5F4D75F75ADF613CDC4825F08005A55406B3B22E06E53D4B4DBF77DB7D9EF1E409AA54CC400963E41B464C8BCB4D2129001D032DC2E0305DD3B43D9FCE34E5479E797B18BEF59BBB839CB6C979DFE4BB8AA0286469EE540651ED2F3A1B5816924B8BDB0C0D22DDCD1AE5F4E6ECD9E6A09686F6B7F77D78ED29E348D909467D0F07C84E116B08EC00B0B309E80E38748E7E6D010029D6140B9E376E7E572771C761E07F0C1BF8EA8180464AD01814100945210422C8D860862794420822B25881802000901D7F5D0328338AE5F55AE6F95EB72602D0B21D871144BE1A028251CD763D7F35124028CE5A010B090920366B6D6FCDD12906B5D89E33A67B9A61444499A51AE73CA8D41A22DE25A83B431C848A09165548B1B648CA55C389C2C2E462D01C5A0F0A4EFBA0E0120B6D0790A580BB6068218AE041C4110D6C0110457094847C02508CFF777B70C5980442DAE224D23985A0D69B188EA4215AC6BF092148B8E454E55E4F53A1221104555583707C531545B3BB504CC57A34F94546FC7F52AE5DA1252ADB5B9ED189D0ACE73018772279DF79224B3DA9ACC5A2B53D3804E1264376FFCD0F2AA202201602B800E0016807976E7CE6D5D61F8C017E7CFFF7AB7EED503071E29140AE1A933677E04C08530ECF1BCC08BE666BFE755A6B4DE65B70C520070E2E0C17D16D06F9E3DFBDBF2015ED1B1A1A1E29999996317E62A2F5821061CA92095BA45427E4ACAFDECD6B5CB97D600BA7A77F43BA4DFD03A7BCD6A3339E8ABD157C2F0F32357AE4CACD7C4C0C080B76173C70D4959FBF58939C544D2910A8E547094AA648DFA47542A95C29A755E669D1D31DA3E658C26AB358CD1B0462308C4785CCF5FAF47D1C5FB4036EED8FDF0E94C371EAF4495A43C5D0B826250CBD2CC07EBF7A9B3A7FFC3422178CE02A51563AD218892BE5227F7756F5357C726DEEAEDED3939323292DCE75DC0634F0C0E0DECDEFEE51F13B32A5D6C4C126787AF8E8DFD4EDB1F1A389A5B1C773DCF18AD4596A5DED6FE0DC9A68D5D81837072FAFACDC3E3E3177EE2FB85B53637DA3338B87FFCDCB99FD7845CDABBF74163C40928F7E92DBD1DBABF7B4372F9D2D4D1DE4DDD2787878753FC07AD844C44F2D17D838758887D45C51F8F8E8ECEE27FD03FAEE1FF0243A365280000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (134,1,'SAN_(48)',0x89504E470D0A1A0A0000000D4948445200000030000000280806000000B88779710000000473424954080808087C0864880000000970485973000005310000053101B7ED28520000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00000C3A4944415458C3CD59696C1DD5153EB3CFBC799BF77D4DC8E2D831751208069A004114840A8806B522528B2A103F68252AD1AA455555A91252CB8F5655A9F8832AA8549050D3AA15082832C52524211164051202761227DE62FBEDB34FBF33CF4E4D4AE297C4125CEB6AE6DD3BF7CE59BFF3DDB11086215D6E130441360C6333AE77E227F76BB18F50C9DA45EFC36D7800D7D7B1CF6B9665BD83DFF665CB52A902030303CD41107C635EE86DE8E9CB1478A9678AE86FB142F8FDDAC183073F5A3605BE79FF03B9F53D03F17C618A744DA342A140FECC0C79AE4393AE473D6BD7D2D4B44BF5750AE68A94CF6629592CD249DFA354AA8A326747A8B16B35B9AE4B857C9E62F91C8DE572946C6A26C52D52ACAA8E4449A622D6D0DC1C398E4359590E0BD94C726868287F29D9C44AB4D455554FC41314D335D2548544048BE1B99486F298A3742A49814714330C5264897CDBA2163CE443E0742A412ADEA22A32F9586363AE4992C88392068C914C9824CB3285814F0EE674F418BA249040E9B4BC946C72250A78BE17B2651DC7257658806E43F01002FA7E4079CCC98A48362CE7070149989BB66C522160B154A24010C8F33C58598AC6CEC1834A22118D5981438A1A90288AA4629DA3EBE4607F4952F0A2F892B255E401C3D0051D1BCBB02E77F68002610D16561261791DD6F54982109CC9015B1E378E6D9381752285918081EF23EC5C4A4221074AB0C0AAC21E85B730C7212659162908BD30F4A9AA822CABC803BE1F467159F64018BDCC87401EBB0222F31C37070278980B319787728AA2461E62E1D9DA000146302A600F356646DEF421AC849B807FB0A7104E01F6E2B55E05B255E40109265754099BCA9130D1421650A0C8E2325B11CFB025F977082574F604E29AC75D8F3D2545C2B301540E4BC4B9209445E0715ECB1A89E802946523299A162E0B0A5D33F0F53A5993CCC02E25C829DE1478EE16BC6C0BA61A2BC5EB25DE730E5A0C9320BD2D6AC67FA458628A073FDAFDD668B8C4C28A42A8B339FDD7B6E6CE8DA55256535545E090E178B511E325C46C5B4B2B12D925D394A3718E73DBB171EF21C6110A5696E2E95AE25AC7F3E5EE908870D1089636CC1A45D5EEC5F8BD8EEB84AE038076BD3969FBF6368ECCAB0EA1AA44EA86F6E62EBDBBBD4558B3B29B5A1BEBA9D777693D12AD369DA46BBA3B009569EA5BBB9A3A5B9B29815DEF40E22A42482BBADAA94AF6A9ABBD8DD28918296248B741E870EC1435D4545377732D35D6D75155328E39A25585BCD0919D550D55AAAF73DDD8B224B1E53841C9CA49F97C964AB0BA05689C4E2681320ED9258B32284A3153A0B3E31391E505334EBB44896288E399995972049D6666E7A092409A6ED02EC4BBD6D919C1EE6411706B8AA46940244DA7D3353564C3ABB2006D9696BF320F24CC98183753944A26A8B6BA9ACC588C3A5088BA51510DBC380D650AF9801A1BEAF12CD0A590A7C162818AB8D65457911294A2B54861285FA44108E88C8EA230EA549B8A21F462113870216B3D778E9A50E543143D5A2E18456C06969D8707F2E400216C587E168508042C2A5C5CC8926989A6F0721B054C4E246937C48DC3D2D93C6887625226938D3C60003EDF01B41AED1D11ACCE803E288112D504F6CE583A1DEDCF05AF6AB96054D73551D7E2B09419599B694113945981649451C8928938E5320155E3E53A3CE2E6B2742320348F6B64793B4F495C992EB0576EC29AD2C951C0AF4CE9B811153B8650F64E6326434DD90C39304E252EA808466FBDF3EEBFB437B75C572816C2A8D8B84E0C5E318016A6E5584A5D4D2DD38DA8A8317E73C50DC220AACE02488D887B453322213DAF3CCFCF09081B5476D78C994541164B982E614DC0F50397C2787DCDC67DCF3EEB5EB5021B367FFD3E490AB70354D6A32EAD5E1C7A5171C21F2DDA265CFC23AA6CE5CBFC82F3C3345FBC168D716DFF0CBF0FF982B467EFDB43BF867CC1552BB0FDDB0FBA5F5BBF59CEE5CE1073A20CDC2C8E8F93042B8E022DAEBDB69F8E1DCB5077B7495924F739CCAD457CBF0BB46AEFE8A499912354DBB58E3887E6409757218FDE1B1BA3A675BD94945C0AB464940FBC368E798FD1C9885156A0AAA19D3BE7AE1E466D3B9C3E370EA4998DA801172F66A2FCD22242E22C04B6EC228D4FE4A9542C51097327202427ED2C042A78A01140160E1D36D718E624E412F605289450C898040A11206441395C592953964B1BFF3260346E8AD5550D11DC712233838C31AB84A598C330AC06BE8A644E30738D946B9E4F4A13BF05271F3D13113E085DCF73939324C31826732C546466B55CC175782D895A1245463ABD3C308AB21E4C4F8F4B93531391C0CC3A0358919967893D70769C7C54E5B131C02C28828D483E1C9135912626A7090499A601B1CC4C99751E8712425575747A2B7A38BC80B34938917162CF4219B81690BA4C308A24156071D175FD28E198557228C8E0F3098412C72BB3D4CCAC052C57CA7008F86C869299CC5C04B34E6E2E4A5ADB2A015A73D48035B9B367CA8C532CE7A003AB738E280839193996433E1C3B7C3821B015AED4032C3C978189C9896CE887694E32E6E92E9F0D301580AC3922E216CAC83204C67C74669055FA18E1A3801AE430E78A3ACEBBA5086244C4F73154693195A202C6EC1087184D8C720BB84A33084F2E648AE386674E9C68C2FB272E45E89644A1790BD4A1F7A177CC2B1D94C1F1FC75A1455977634FCFCDF09A3174E0C0AB0BCFE0DC2BDFDCDF7F0742C81FFEE083370100E17C0408F43F945DB872153B897E1C7D3AE4E3D9D5C0289490E695684057BFE085D126FCD0F7B76E7D286B59A32FEEDEFDC6C2816E9192E16DFDFD2B7ADADBEF3F3432F2D25B870E7DB648F170D17D8105E7A85BEA3C50F17721FE98355FDB8D0B048F36E84A24D44706079F3C99C9FCFD8FBB77EFBFC033E16225AA0D437A7CDBB6871037E1EFDE78E3B9E96271E1F418C652A92E4956EF9344699528492F55C78D7F1C3F7EDCBE6A05167942BD20F9C3C7FAFAAA363635FD6A2C9F7FFAC95DBB4E5C44F0C56351FBFD3DF7AC4E2ACA23EF9C3EFDF20B478F0E8882F8A028CA1B996288A0E35C0B703F274AE2CBB87961EAD467C3177A44B8DC4F8BF3897DBEED1C1CEC1654F5A71949FAC977DF7C7326BCCC0D93A9AA47155178CA0AC27459E0F3822F56228264EC7C5AD5D4E743497961ECE3F297BB8A14483776740BA1B7230C82BB80D16F7B21FD393F3371F0D50D1B360B92F49D7076F6C7775EC2CD970288CE152B77D6748A77674E160B93D3563CB2D082E0525909969C3F8A61A0FC6D09B45B9695E152AEF0A38BC2686BEBDA1A57B41E40F1D92109C160B8C0B604BA1EECF289C6EABA931B34F9A35D19FBE1D9E2CC650BCF6DD3A64D2DA0257A637A9DB072E56CE2C323C7DC73A7C807BCEA147DE1283B9B3F3BB2525C0865C0B82884478AB9CCAAC077377ECE035D5D5DBA25687763700728ED5D803A85C9202C1FF11EBEF2EFF3F73C1E0218836008B4F967C54C66CF157841E8EBEBFB56757DCD1FAE59DF5337F1C9613A3835590A276D2A58BEB1389C1445C933C1725CDBF4C104E4507838C2E0D635BD5B20C90EDFF7B67BB69DF43CE63862A4392B7811C1A32B0E2567DB3B04E9D34FDCDFE6E7669EA22B6C838383C65CBEF0CBD53DAB7E60C4E2FA54F178983B9BCF8D8C160C54FFD0308C92EB07290E25210826C0071E1D3971EC6F42AAA1799BAA6A4F6A86B9C92E15CDC07722BE02D908501691AC2F145C122DA551F1BB75C55CB3652BBDFED2BF865B9B9A1EDDB367CF87E195FCD361BEC11B6D5A3CFDDCFA81B65B3D43123F7877D4B18A2E98BB2705BE6741F0674E1C3DF8C4C239419682500631DBEA94F2194333A61D57AC8DBEA831E799173A3A93CCD74B49107D3399C8B6F485E91ABD53686FE8A4C3EF9F9E8D9BE68BB0D2A757233CB743870E9DC2E5F68181EBB6D5B4B6FD49558C065BF40495847FAB42F0E0810307C63E1782CD5D5DB7BB4EF00A924466A1354529F0890A0CD45C6C71EE35693363D7F9E6F5B52D72AA6D1D1D3D78C49A1A9F7A3E158FFD62EFDEBDE3B4CCED965B6E916773D60FBDD03F7678FFDE7F5EB490B5AD58DB037C791EA7D40D4C6B5911459232A552DEF05C4FC541BD505F9710EA7AE558CA5D4D9A2606EFED3DB0DB1085C7F6EDDBF73E7D89ED3C0A31FAAE58DBBBC30F84DF84A254CF4AC892EC03B2E6B49541CD3AAD955A5626E8F5573E1D099CD2CF6BAB922F0E0D0D79F425B7FF2B64FDFDFDA6158A4FFB82F23D28A1235933EBFB075273D3E3853327479E4999FA53C3C3C3B3F4156917ADC41B36DCB0C60AE93940D14A21F0F7C5A4E071C4F9C7F4156B97A412BDBDBDAAAEEB8DFBF7EF3F83E73CFA0AB6FF029903B825F07487600000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (135,1,'SAN_(64)',0x89504E470D0A1A0A0000000D4948445200000040000000350806000000F186EDAC0000000473424954080808087C0864880000000970485973000006EC000006EC011E7538350000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000012D84944415468DED55B09701C65767E7D4DCF7DEB962C214B42BEF109C1B7618D1DC22E49804D056A49B62A152AA922A91C5B95AA0476B3452515725416E7D86C2A24EC926209E12A1230C5AE59035E6CC0966D3076642363CB3A6724CD3DD3D347BEF7CF8C2CCB5E838C442D4DFD9E99EED77FFFEFFDEF7DEF7BAF85E4380ECDD7214952C0E572EDC09CBBF1731746FBCCEBD7F2ACEA3D8318AFF2B02CEB359C4BCEDB9A3FAB013A3B3B5742F1DD9867173E37E294F62914FA2C878DE3B02CCBAF62AE5763B1D88177DF7DB7FCB91960E5E6CD1D6E93EE521519CA3AAC70DD95E4B0405EE9558D2055BC861CBADA1AA42B7CA399F714F0ED90ED386F5B24BFFEEE5BFB5F5950036CDCBE7372E7B68D61C3F0E0578ACAE532158B452A140AA4A5D3E4D7341A2895C8C6B4DBB66EA1BEBEF3D4D0A0926118D372E15C8EB2304E5A51C8EBF393994952597153281412722C53C4580C231E1B19215734465D5D8BE9E30F8F50B4B58B54551573F1B0B3595A8467BE3D3E4E0D4DCDF491598E1C79EEB9A94FAB8F3C5797C1C365050B1F1E4E505D5D1D058341F2783C84D8A74558581316CD0AA8AA22BC209198A268342AE4DC6EB758FC125D273F142DC150FC3B160991699AE4F57AC56FF68A1294DB188F939DC910E29E3428E9D55DE239B57978F3FCB86FB9CF47939393A4E079E1850E815FD8B133B966596FD4E30E53BE30492ECD4546D920139E50C662780759999251A6DE9E6E4AA50D2CDA164A950D9661594BC859369C5691C9CC6749F5F828140C236C2C310FCB9A6619F340CEB229168D5026394A81683D79FD7EE179E299D5E7F277495668ACE88AEC7BEEF185F380A0CFAF36D6D7513251A0EBBBBBA82E1EA550C00F43A8D453C8D33A046A3E9B213776ABA9B1812E9C4FD1A2D616EC72987C5E372930C4CD304263364D46B1C0F3D1A2861895E10D5E8F8EE0B6A98479261363748FDF47F933A7C92A9728168B92572EC3981A69309A05A3E7F01C75748476020F4E7E788214050F9FA30BA8D7009B167B4D5B5B1DC26058EC00BB723E9FA7F370554606765796E1CFA6A6308D233E59A686011F625739FED9652D60C17072028A792803776719F60E09D7DE4A24C880CBCB9061AF4A668AD410C56E438EE7E37369C81DC56F0E4306DD082DB4011C49B8A56DB9C40379A1F06F625C30F1BD8873AC381F59809D6DCBC2188C072CC3B1CB8BB72499D4AA1C24A80C37E7DF1AEEE7791D8C0C8CAB23BE558419E3800E5CB1F1C91860036539342C18A180EFFE4080345523638EEACC1D0415597103C48686C6A9A7A787DA5A5BA91E60C808BE0C0A2EC3B51C14D7A0A88EDD1B1B9B14722D2D0883588C0258E826805DBD650AA4D7103A4DF57118C9A668248230A900611946BEAFA383247881097777EB6E0A785CE239E170183B8E7042284461A42F21BC46E08D15340B2F2C086EBBED977EBA7249F77A97EE470C4E4001BD02440C849625617725CBB424133BB86C492FB2401A406762B16A45AE0A92351074B9DC64000475B7973C3EAFD8E18B20C8605A121EC6469E181BB103E11852A7D7A9006A45863F3974BCFE80959D9C88BCF8E28BF9CF8509AE58B162255C9329EFEE4FC302E79121B2F01166823CE0316FBDFFFEFBC6B53C77CE0658BB69FB5FB4D4C77E832457C428E775B11A8E59CC3373982593FC21BF8019DB362EBB2EFEB32BEC4EB14D98CE2570422CC7A919A4226B21C6DD6E1D73164881C7B15CE51A89D0611140D31470E49C5DC86ED8B76F9FB96020E873BB7F67C39A1B822323656A6CD4280B26C61980E33E3235451100D441A0B23B14A4AD5B36D3BE7D1FC0531A2E91EB06088E20FE878019F1781DA9E52C8DA68B545F5F3F2D93C51CB7C3ED9F3F7E9C5C4D4DB4B467319D3FF11E051A5B8501588E879AC9D1865048F98F53A7623DD7F7C692BACA565F381E20C992C320150E57C808139CDA2843A14295DFF360B40E857C02C16BE778F12C63CAD547CB12650B45C1F078B767CA4D72B6C19CB52AA060582293CC7CA603B9946956CECB735667EE1E2049B295989880FBFA005453F05C0DE0670B163605374E60D1BADB03765846A618C60D16A5B19B32AE433D00A24AE7F15946CA7221AD158B2518D2241BBFF93AA73CB7C71172C77259F23534908C0C90E3DDC6671E6017406A74E9BA308C01B993B8D6DCDC5235407861D320189E1A04151D1F4BD356143BCB972DA3AEC59D82F56D85316E0B87A890CF11A74A3F985C623C4B9B366EA425BDD75347FB22A0799CEE03ADED66CA0B63794160DA9BA1243CE1BA8E768A83F1F9BC1EC47B911E5DB386A4A121C1FA027866C8AD5003C2A2B9B9992248853AB34DB0C9DFC5BCE7CE7D4C2A1B20BCC020B8F38E5F4EF6B4B74649C26EE4260479A9F172CED726A737B9E2B63DDD8B697824054E600A979EE6EF4C8410160E94E66A309F4E92E2F28A5CCFA9D1844718486D0AE6CAC1BD3584471DB022313248DE60048AEBD3FC9F656DA44A2660A170944A2E35F2ECE30B580B80BEAA2D2DCDD8917AEAC08E45414202D869DE8D3A2C6A29888C6930AF7763473BF0003F3537355218A0C8E798F87443F106383CE77C3FDC39821A81A33C809A82C9137B830923ADC6350B349A15E55A40B38AF02ABFA0BD2A629E19A38ABAE1066CC2D8E8285D03045C0308560189917A2618F1A163056A35CDD59A178CD4BCFBD3A0856B6E5EA9695631058BA82AC35EC143901B281D02D81A3044257592A0BFB5464B4D5EC2F055FB03626DE1056682EBB76EFF76632C76B7D7EB93F2F92C562639B6E3C896657A4DD3F2D996E9C742357651C60A45AB009D40F2691E40D3395E58C0E17ADF55A1B2B3B98253E10BEC1950D8D4DD7A1E5E9885D172B6038415725C3BF0DD52C6EB92373DFDF4D3C68219609A10AD5DBB12BBB18B7B81F8B969360BBCD679E7701F0B1E652608CF7A1595E49BFDFDFDA5056782376FBBF5A7CB975C7FA3E60A499C065D2E5DF0FA8BA392D64A00C4E54B97A218CA91DF2B9A8402F5D9B5B9816288EF66A5D2CB4D0153FD148984856B1B5C07F05CD5521B1E468D4887C9E17314883709AC10F31895DA8287A81914D51873ACC8BB73A805AEA125A62D6D6D6A90329325BA69FD3AEAEEEC20FCA6BA68986E822BDE0ACA6A19450AA2B0696EA8A7D44489D6AC5E455DD7B5530BE4A2E1207D0540783D8C80C8A7387EF776B6A1D495310FC012CAB911364621477FD4D642F2E039522507E92F460D019DEA63118A737305CFE1FB639914DD17F0D1B9B303E4F7B85D0145712D2811B26CDBCA6473D4D414A0237D7DA20EC883D6F24E8D02F018FC18D438EE0B6078D1A84E7D478F0AC4AF35455E817C01E409502E884D623441B2E6A5C1C141E119A25F805DFF97D3A7A9100C920BF1CDCD92E1A91CC5BD530280B9B1C2B2193CEFF9B1713C2726C073C1B300D29DC435BBA655525605A42A0D0C090BF0334A435959783DD2992989DE400DB979B83174AADC2703045D223BD8B5A67F65608E30D35B41B7A9D24C714C81F4DC08A93544F00FC57597E82572BB6CAE5960EE06D03499153B7BF6BCE8E23287E7DA80D3530CC608C008BC43968865838687C7444D207277B5E3DBCACAC05B7817399571AF903DA3C6F3F91C5F5B160890914A89542872BE2C09ECE346081B859BA63A9ED189792740CFD9380BDE12334CDB1C1D4F407989FAFB4F0B9666561B1367F19D81CDEDF10A37BE70610804C64D174067392CCA86294ADBC3924C26A748C8B26B277369D23C60840819CE661A80351889D24B19D40220537C2E914852D1D14886E1B8FDC5F379BC3E3221FB6318A777C952513F2C68086077644D9154375C6D682881B88BC0BD1591BB198963D8AD7670F3D4D4A470696687838309C1F6B81BECA0EE2FE17A178A1C2F762C9B498BDD8C04BC289733B86E5111CC2E9D9A02ED1DA68DD8F1D49933A2CBCC73C9665E844D09DEC1E5F2E444928CA10BB40AF7BC7FFC18D650A2FE1327FC58A732EF1E2055E89EAB842285772D18D4A7BBC2A275851DCF61B8E54A13B4F67E201074D1C8C848B56D5616E73FE4B7491CE7DC4405584EA42700826E9A9A9A9A4EA726C2E0106870917B8BDCF884D289549EA29EC234008AB748B8D687FB387C98750E9D3DDB8575A6B1DCAC530396F9E0015503E8D1FAA69B1CCBDE86C2A7C1766C6FB558E749B8BF6357E92DBCD6B12492A42BBDE76BADAFEBF5B9DDF1FEC1C13780152680901BC352533CD61D0E06169F1B197D2793CBA748944B58A25421899273C98BC26AEF888764637926CAE1647A32F102CEF5335B773E857273224255D7E2D67F13460B46CD00F20C0DA5CBDE6356060B49BF72F3CD5F2B5B56EE858307FF8BB36AF55AEDD359D4D010DAB17AF503B96271E085FDFB9F362EBE619567CD2D5707DFC7F92F87318A91A87EB7E6DD00333C818DD0C005DCAC3072AEF029BEC7FD7EFD37376F7E2891C9EC7FFCCD375F992577D9F7FBB76DDB899AE3CEBE3367FE6E6F5F5FFFACEB34C3F3F8E0D7E3931819E833A7E6E835D5020C86DC1EC408312ECC5ACC6CBE4E37B7B747EE58B6ECAF3E4A26FFF17B070FBE7715E52F39B7A5AB2B72DBCA950F956CFBEC775E7F7D0F30C29C69D4DADF0B20C5EA2E8F6F97A428B664FA9E999838935AF062A86A047775C83F4BA9DF5FB7AEBB371E7FE44432F98DEFBCF3CEC027EDFC150CE93CFAE52FDFEED3F5AF8FA4D3DFFAF3BD7B8F5665745F30B84B96B57B10FBBB31745E92244B457CBE84CF279391E0FF3A9FD02EFF4CEF05AA4650AE904EC5A4FF76CB2D5B3CB2FCE09974FAB7FEF4E0C1E427287FD563CF9D77460292F4E81B4343DA531F9C326D99EE04F90A5794AEF61BC4A77CB1FF20CB9392AC3C8354FB83E181FE37AE8409D27CFC8D9024CD467BA2E7366FBE1F0BD9524A241EB8FB1A5F5A5CD6920F85FF01B4F91EC376E2D5DD9E569A3FE5DAB969A3C8D5260CBF7754CF2344FE53B6A527CF9FF9F0F867324024725DD8514B773B92B551B29C975241DF4BCEC040B176FDE50D1BBEC59FBB0F1D7A78DEFE980947A4AEE140E75A69C3F9A3CA54B1508CD8A2497DC98ED3251EE1F0CB53ABD28D9625F17A4ED175AE688FE19EEF7F3C49FFF4A90DD0DDDDAD4FE6CAB783ADDD871CFF8BB0AACE5D98CA9B19270D5AF3ACD7917EF88396C6AF62F27DB71E3DFAC47C2ABF76EDDA070C87FE72FDD68DC1A1BED7E8706ECAD446B452269BF70985A79597AA9E50FD1B2510255BA269C3B87437CFD757CC67BD209E5FBDAA01F8C18D1D5D5B519CDC076AF3AB50363C5DFD39D3CA577F57BEAB8E9D2CDBF613A0414FE67253EFCD971156AD5AE5332CEB0F03E1F81F6CD8B024949818A671E514F5EF77F276A9A48285BA6A8ACFC604A9DA6283F220A06606ACB58EAB47DB74565FD1006D9DBD2B4DC9BE1754E2D771BDF55245AB8ADB330C30FBF745B993B0FE9F95329967E6D113DAD2B9E25F0742BE3B366FDFE27EBFEF30E562839438E24AA553598F655BAE9A11E4696C902C97AEA54B861942992D73A90DEF301559BE688096AE156DB20485C9BE17022BB8B0B0AC32478FE8FD4F372AAFB8FB971B4191A5B391A056484E958F655313BF46F378B02156AF5EBDC9246D4F736BEBF2459D8D7271F438BD991AB7F541577A62321324110932CA70EF9423295ECB325D42718BDF5138876D4BBA77F8ECFF9D64F4561B3B7BBEA769FAFD700BC94065C57F75C1B5B56D8360D99260E4B5776F57DB716EDFC2AA463CE2294EC40BC11DED9DF4A31F0FFC64FDEA1B6EDFBB776F8EE6F958B76E9D86B0F8BAE6097D73DDFADE46BF3F4363A7CFD1817CD29407F4B4A46ABA69DBBE8AE216C98E332E4BF68303A74EFCB0961225EAE870470A4601C8F836D8540B2CD4C67FBCC431226A199B2A8D0C4512EDE99FE5F6C0083B16F5A5B38A155CB1C92B6B89E5A2467FEAFBFF3ED4D6DCF058B158FCEEB163C72669018E1B6FBC315630EC6F871BE2F7AF5BBDC17B0EA5F489E31FF0EBF230EB01E02E298EFDAFA73FE8FB3DACD5BAC49B3A608074D12C8854222BA6DBA3A7507E858D5249E1D4415CA87D82DB7B3D9E34B955F7E25B0C977DAA8D76EE5A46AFFC4FBF33327CE154C4EF7D2497CBBD70F2E4C90C2DE0C16101A05C466EFF9E6034BE31399EC8966D2BA8D8D601CDA2AF1D3B7668E08AF7F5AC5AD59C1C9B18847B4BDC65E1B7B8AAA218604F79A36C85AF06742E972BAF8775A76B45D137F151236DDFB18D8E1E3946E9A9F1895CBAB047D7D4EF1E3E7C78883EC783D9E9AA35EBEFB415E541B8F163C7DF3BF4ECD5AA420182ED9D3D5F42EAFA677878271B805F75B34768AA92B3C41F2B967D33159715B9EC6DF2166F68B7021F0D85E98E3BB6D39183A7019A79E36CFFB9E77D6EED91603078622E7FA9B1101E31A77298898EA5687F6C98CE376081001B40562AC650254A1572594FD932557F9B277B5383EE3F59D4E5DD5B77D091431F913F4876DF3B270EFB5DCA37A1F88FA07891BE20C7653C60CD9A354DC0843DA6237D85E341962B618190B060940275E7FDB7B7DD44A3A9098AC7257AEDD5B3E755BBFCB71E5D7FE2C0810313F4053BAE4884B8F3B364C5EACD48868F21792C1761A1C89CE20A2B57AEF2F09FC6EE7FE3272917994F3946E9D1BBEEBA6BE0E1871FB6E90B785C950A2F5FBEDC2F69DEDF3624F94F485663480A45B8B852CC4CED97CB8587C00DDEF92CFFB3C2CFBD01668445B329EB7F03C95E95CA7F5FC866FF7BA1D3DACF9501F8D8BE7DBBEAF17894975F7ED99C4D26BEC8C7FF03F90C20BD4B7E3AEA0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (136,1,'SAN_(96)',0x89504E470D0A1A0A0000000D4948445200000060000000500806000000E6E270950000000473424954080808087C086488000000097048597300000A6100000A6101FCCC4A250000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000023294944415478DAED7D097854D795E679EFD5ABBD4AA5AD4ABB4A68032410981D61402C066FB44DDC8E1D3B4ABAD389E3763AFEA633999E6F265F27EE746632CEF7F524EE1EF7641C3B910D5EF06E6C6C76115661904142C8EC0209B4A1AD4AB5BF65CEB955AF28156231C6509389F8AEDFABAA77DEBDF79C7BFEB3DCF39E395555E176FD711C578D87BB636D0136F116752D61DB8B6D23B64DD80E221F94DBC2835B2980CCCC4C3B327D19B6BBB1DF95F855C1CDBAF7979CC700B62D31616C1A1818E8FA9311406565650DAD709EE789E9F3F15C779399F755DCEB282E928DB22C6F0A85423B3A3B3B03FFCF08A0AEAECE81835E4EAB1C3FD22ACFBDC5CCBBD97D85B0EDC4EB195CEDDBB7AF252505307DFED2EFBB32ACCFD96D36D16677C2A8B70F54E0D8441545612DF13CF1B3D7E7877C5736184D66A43141303008BC20C4AF8331742A5E83B4785410B6C361091C6936F00FF7836849071DD211AD766F82F6CBC610A3B3D9AC20CB12E89530A8062B180CFAE835D4479C464DBE971296158F5F8994EEF9E493C1D411C082A50D774C2CA99F525D8D83754073F316703A9D10894470B2E1F8915AB6DF0F4EB3199A0606C060B7434456A06C4209CC9F3F1F5E7EB911CACB0D6CD28934741E191D8529562B0CE0F1D0C808E4E4E40059CE9977DC015BDE590B8A351B0A0B0B196D729F766C93B3B260CFA95370117FCFCDCB837C6C2693097A8EEC0535D30D56BC77729F742CC53E2C1C07DBFAFBD9F599AE3CB81894DC7B36BC7B3665043073E15D0D351545F5132B2BA1AD6D0844B11F56AE5C093E9FEFB2B6149967C1C9FE8F0307C0E47241201481D2926298306102BCFEFA7EF8D6B7EE0487C371199D0799F79BDA5A787ECF1E78F5EC5970BBDD108E4830E38EE970F1E83E68EEF2C0FDF7DF0F7E14B046A39D4FC3E38F57AD82479F7B0E8E21330B0A0A51802E282A2A820BCDDB2194EE864993265D46EBF57AE1EF5070838100FC637333A4A7A743BAD3057DBE486A0960CE927B1AAA27E4D74F9F5683CCCB87C6C68FC08EAB7BCC0A8E35034EC66E34C2595CC9221E490326B88B61F9F2E5F0E1874D08051E764F6D054A92143D62CB40280862EB090621232303248488AA4913E193F7D6416E4925582C16726FC7F4474D0885204314A10B853F8AF459D9D94C03E8AFE7642BD8F34A41AFD78FD158ADD9B089C8A7532814BAC6995700435ECEBD6DC3ABA923803B57AE6AC8B418EA5DCE6CB0599DD0DB7F16D5D50802CF23CECAD894D831DA94D8519264F0A0200AF3F3C1897660705002591A023342148D8D5DAFC897DD8384A261B92B3B0BFACE9D0053460E32C800668409EDDE84DD44CFAE5794382DB5F4B43414BE047C00056E76801D3F93F064FC8D8D11AF97D879F41E4AEC3B5E6F84E108B8B7BD93420258B6EA2F1BDC2E47FDA489132118B4C2B163BB191ED304D02B628D56161D2720C33391499B7A7BC18050835302775101CC9831035E7B6D374C9B9601E8B6E27D82713AD68687A12E33134E5EBC08BBB0117C900D985E53037B3F7E1BBC820DED4739135C729F39D8E6E0F5EF218C74274090CD6683BEB6BD20A517431A0A401BAFD6278D61161A751DDEF39DF3E7D9F57945C5E00D28EE0DA9248095AB1F6D28C8B4D6575654C0A9533E5C35E7C7B501A3C8FC45687C4D0815FFF3F06130A3210DE34A7517154205D2BEF6DA3E78FCF1DA2BDA805FA0C1FD3DDA8ED73B3B990D5070FCD35000DD2DBBA0B5C7CF6C4022F66BC7A9D8EF532B56C0775F7881D9804214860B9D843C84A1DE963F4238BD84D980441A6DBCDF43281D4641FC534B0B059390575004C37E1D0AE0A5D411C0F2071E6E28CAB2D74F9D3205999707BB766D0223E23BA9B486A9B4BAE8C8E351C455E5C5EFA977C2F192E22258B87021DA8E16BCA697612DC18086C30C36F0A8A7D58D47BF24B1D528213C549497C1F64F3E8082D2496C2CD46F221D1D15EC8BF21C1E646418EFEB40639A9B9BCB60A5BFE318585D45AC4F829844FC277A0E6979A2C5CF349F1CD49E6149706F78358504B0F4BE871A9C7663BDDB5D84C6371FCE9C694541A4A141352431431AE3EAD17741F4820AF273A0ACAC0CCE74781083FB200B3D0FCD154DA4A3160C0618BE038B083870E1B5A78F1C0447C1043021F3C95349647EB445719F20853115218E8C7804E146F6F482CE91C3FAD4E9740974D2A5F3D87815B4058ECC6CF00444F73BAF3E9F3A02A8BBFB8186B2422783A08101017A7A5A18A468384A4D3BAF1A1A02130AE6830B17C08A30A0723C14E4E54235C610EBD635C19D7716311B4058ACD901D6FAFAE001745B9B916E0BDA008220E4244C9D520D2D3B3E829E90083508471A8E6BFDD2B91B6165416929AC6D6A02E25A5171318B53D211EAFADBF640D851CC0440CC4EA6AD8B19E6B5D82FD98992B272F0A87AF73B2FA5900016A1175459945B5F51510E172EA067E339818CBC93E16972ABC189104CBC72E60CD81083691593000883C906AC5E3D9DB993C974BE73E7E06F10BBB79C3C09EFA1012F2929612B9982BF53FBB7C1A96189B9B2746D005D5D8D8ECE2BD0FD5C3D6B16FCE2830FE014D2900177A130B3D11DED6BDD0552E604168724D268B66035BAAF7E14C6BF9E3ECDB4A6B4BC12428ACEBD36950450BBECDE17CB0A9C7F4D8198D359004D4D7F644C1410EB133195B4209A8B0136490AEF23B20A450579307BF66C3874E8144EBC1769ADCCCD1C83C7D81084E31A61409793D20EF928BCFDBB1A21CF5DC634876C43721CA0B995C160887D365BCC2C920EE1E791DE2EB03BF3C1886E334F3144027469E3D5BC29FA3DBFC80DA39CA1F8CD17FEF55CCA08A0A6B6D6198AF0775CE9772512CE9482BE198A24CD541599AEB3DCAAC4DC75DE2B8CC23CC209BA66416F3C289A2C1D57BB38D7A2DBB27DFB762965D3D1757575BA818181DA58469432A335B731BD7C237D75C7F60736A277B4A5B9B9B93FE5D3D1C874DA6059194B452FC37BDB5330BD7C23F752714ECD24103C6EF27ABDBB0F1C38104929014CABAD7B7E5271DE936418D31D85F0F9F1039081EEA0C964BE94D3A1630C5B43A120C35F09B179C8E38549E5A550513911DADBFB9101FDCC40266644B57C107DF6FB7C0CD3D1764320244149513EB41FDC03E905A5D16C656656DC7D4CCCEB301C273794A537146603E4087E37701EC48C7CF48232414483ABB9BD89B45A74CC5C58BD11469448C1BE8F3E3A9F3202B8E3CEE50DD32B8B593614BD457445DB61FAF4E9CCD0923B97789C822EA40127FA565717D890091407944E886623DF7AEB007A32E52C284AA6F5A3F7F408064F7B916E434F0FF35A22180F5036F4C4BE2D70C6A3B094B6E6426A74D42678BD50377122FC6EE74E38437BA1B15404B99E17D10D0DA615E177056368E89CDA0A34EC1407BC84FD528C918671407F20C5D2D1B316AF6C985A56503F1999D88F68D9D7D70673E6CC894F4273EDA8D5A0848C1807BC76F62C585100948E2E43014C9D3A15D6ACD905F7DE5BC55672329DFFFC79A8CFCF871D1D1DF061CC0DA580EC0E14C0D15D9F40979F87458B16C56998D034371405B002EFFF9B4D9BA0833C2764762EF64DA9859E965DA0669732D754EB4B6BE486DE8FC1590035E0057483294592E9CA855E9F800248A15CD0FC65F7361466D9EBCBCACBC0E52C82E6CFF682CD6A6591703814666A1F85A0702CC32833B5A600C717084359A91B6A9041EDED9DE0F3F7E144D3190449783DAD725A81D14CA8844C0D202C8441442DA1FB16E41740EBC126701514830E352B8DD2E0B148381C8E46B1E45AAACC0D0D3248215AD2001A4360A80FAC59B92C034B9170723A5A4B89D0B5E43F5B1D99E0F10BA9958E5E78CF830DC559B6FA8AF272B0DB8BA0AD6D374EC88213152FF3C9B5D4B036395F200815A513A07ACA14686EBE808CEA66698CC45C9086E189748C59281CCA231DDEBD0D1C85652C1541FB10C9745A0A9A9848DFE90D46C8CBCD8946E7BD67804FCF67F0C2F3C215692352B4DFB48C2C180CA7583A7AC5038F341466DB582AA2B3338CAA7B1A162F5E3C6E243CADBB9B45C27FC088D65158C86C407151015550C09B6F7E0A0F3E389D6D0F26D379117A9E44DCFFE4F871784FB301C8104A479F3DD808C706C270D75D775D16CD52AB181E86FBD126FDEAE38FE114425001F64BD95032F61409871CC52C959D087B74A46CE82A9C5F0005F1BFB07FB2192ED4388F5F4CAD6CE88A071E460138EAAB264F02AFD700A74E35415555553CAF4213D2CE2917644601BC87468D7241128EC18D0C99356B16FCE10F8D88E3C52C824EA60DA371A15CD041B4055B0706A0B8B89845D435355361FFE6F760583533C31F4DD85DA2D372417722835FDEBD1B3AD1A8920072F05E84E9170EEF04DE55CEEC41322D1D97E25868E5BFD2D9C9AE2F282E816139D5B2A1AB1E6A701884FAACAC0C70A465C1D973A7980D107422C36D86FB526C378AED88455D3DCA2E4A0A07D9190EC84703DBD7E7815078046CB66808A1D90B893293B433265DCA50526A984718B2633FE73B4E435A9693098EB447DBF98A1E23F19DB42804227C893A06394184BF88DF0B466B1A9863A993445AAD3F89C68B471C30643A736048E2532D1DBDBAC1EDCAA8AFAA9A8C8637070E1DDACE60263117144FEDA26741FB012136020E220A40517E2EF39A1A1B4FE0571798414CB6016C2F81EC004102FE46584F7B03156565B06FF307905650CEEC02E5A092FB0C51DE896C07E51C62B439E8D292611EED6C07D551C03CAFF1F69315D408DA3708E36FF497975F08A311536AA5A317DDF340436581ABBE1CBDA01327BC080DDD6C474CC351ED486EDD428C036847EC37ADAD604408A22DC982BCE87EC0BA759F8ED9114BA4F59E3E0DFF8C10F3878307D98E184190960DED69DD0D2DDD3E58B56AD5B8551153D00D7D0AEDC3F75E7C31BE2346E968DA98EF39BC036D809B41E6785511DFB5D96004E1E8E7385ED29A92D2721851C5D44A472F58717FC364771EDA80C9E83958E1F0E1ED8C419AFB96B83F5B86AB91F68437A00DB0A051E370D516E06AACADAD85DFFD6E33FAF5996C2526D3454646601932ED38C611B4271C15808002A882EDEFBF0E1153069496968ED913D6FAA73DE1B96E37BC7BE000DB13265A32C0A42D9D87768298531ECFA26AFD696D0EBAB6B427FC160A9DF6032A264E8620DA80944A47CF5ABCE2A725B9593F752243B3B373D0133AC320086255115A758172A93282D370D91F0C415E4E36B872F320E497C0E31960A961AA4AD32A2212E8E2151251FB0190E1B043EF058C52B35C687304D08BFA848A8658750362B89258E980D376D86DD114B71C0183D9AA1A7051B0CCED55AA38683C268B4DF5E0903F7CE3F7BD299B0D4DFCC388D51DCB88526674E9B552D1B73A439A703F4A2FEFA3841B327B635757D781AFBA6CFD2B1100FAD30654D5450905BA136F757AF966F483F718C4396CC1E32634EE9BF6EFDFDF99B2029833A7AE5AE1A55FF13C3751E0F8021CBEEEBA27CA45B7C8384A6FB276953171633FD20E18ED9C45A9B84B9770970854551D4B16BB804BA052AFD117BB56854105D4732088FB46B21C4F1F59B72E9C42E9E8250D332695D6D306B9D1980B070E6CBEA25BA7A23135A2E11D463A81EDB786A1BCB404E6CD9B075BB71E43D7351A2913E68E4945A33B48658D0ABAB083F81DEDCFD25E6D351AFEDD9FBC8B5175057343C985D5E8E27DA2476342FC1FA1D48756969293C304E8ED38024A7A211BAF96021F5346839E1095B4F4213DB9D5B6F4CCD4CB86CE58B8BC615A45341DDDDE3E8203ED85152B565CB938173D8E5FA13B496E68201486523413945A58B7EE00BAA1F399BBA7B9AD9A4B488559BF9E3F1F9EDFBB976552999745D9D0E9D3E0627B137C96509C9BEC4ED6E0512BCE3D814CCCCBCB67C938AADEEBFEAC11828E62E6868E5798F5038C90A938F767870E312FC891ED847E7F8A096076DDCA8629A505F594D1044887FDFB37B2AAB34457526BF938996C5CA58D3D3D60A61A1EF43848005498F5E28B9BA0BA3A2DBEFAC714F77A3C301799D1393000FB070759FA983656EEC0D860E3DB6B81B365B352152D808BBBAF789E89C71A7475B7B6B7433F1557E1B9569E7EBE6537E8732B98E624D62C69AD0AB5C480B3DA70E1020BE09CB90530ECE3532B1B5A7BD7AA860CB3586FB598702276181ABE083AF4D159512B3DE020471F70600F5BA8D1871ED4D839552A38B3B358E61414117CFE61962E86D84318DA18A3E7C0A2578D9EDCD0348B19FCA3C3A037DBD8FDA820985DC7AEB9742DA38B19684A4758AD96685655451755D0237C89CC1AA85162D61F192825E608A9B1FE757A230C86D5D4CA86D6DDF75043694E7AFD14B401767B21ECDAF511DBD5D2567F22AE1A50ADD310E3CFA0AA1BA80A9A13A0303F97ED666DDB7614F17F38C624692C9693E650A92332ED1C0573A80D1CC24939065F3B36BC038EFC52B64235BB93680344B41559389E8EA12118C5F13A9D2EC8CDCD61FD8C74B48190551C2F694CD420BA471A1EAD78CFB658797AA17B02F40795D41280569C4BFB016D6D032C1541855914CA27A69429BB588BDF51E2EBB7478E808810444111156611A47CF8E16178F0C1990C6B9353C35EC4FD6766CE8457D076BC77FE3C4BDED1E829FA1E38DE0C47BABDF17474F24E5C151E9F449BF483975E82E33867DA11CB4201B204E0913D10B447D3E1C9B464039EC0E0721485F0DF5A5BD9B8F28B8A6124D5D2D1549C5B9CEDA8A7B400CFA74163E37A16E66BB598F1025B5A51A8155988BDADB81A8D688C6915E72326CF9D3B17D6AF6FC2485A8DDB80443A09EF55623030661C477B40B91C41D00155E36DDFF01E98337359BE5E8B7613FB35218D1BB5A315053782E375A10744E968F26A7A8E539576095BDDC9DE139DE7218FE811A54F878759BA624259250CC97CEAA5A3ED7AAEDE828C1504330C0FF5B0AA6756409B80D95A8BDB02FC475B96B4B20CC800416781807F08789D107D582EF6901CFD83383DC4B19DB4C76410594A5967B6B3FE045E88D3C4FBA45F944BD84E3680655C91C17A0C80159D0144D14017313A45B3218A120F0904747169C7CC82821CF1454ADE7FA3A12325048098CB5136B4C495FE4D37BA86C1A01E0E1FDE194F0BC75770ACD9E87121C4DB6308457A6402ED1990119E32650A6CD9D28AEE2177198DA601C5A8013E5CA5643F280EE0510326A007B5BF7123E8ECD94C2BC6D30003F65980ABF7387A5EA4014E57B422829EAA1C421BC039F2994734DE78B3501BCDC8A7C3385ED2808A499361704429FBF8FD574EAB5F9281374B00C2FCE577BF5CE2CCFC86CBE5C438A00FE8E1F39988D75A8947629B8EC6CC88935D77E204E81D0E561D9D9D99C1EAF51B1B3F8765CBAAD94493E9A82CE507D5D5F07E5B1B6C4146525D0FA5A3279494C070C7513879D13FA62C25B195A1001EADAD859FBFFD36AB8E265A8A35A83877E0C46710B1E5B2B822B1325AABAA7808B5939E657811C74B9A5A5E31118E9E393BEBF0DE9D4721FA1CB172A382F8D20240E6D3B30BFA990BEAD6BA73B35753A1AC28DAE0D0A17DF11595B81B45475A8D56849B0B68E8F4780DCFEB70353BD876E2BE7D9FA337128C47A489B40AB674F2827085F72343484814F952BCF1E9EE1DE070E6315819B393165BC53AA4CDA03ED176D063EF196880335183A89FC1AE5360C92E60F62071E56BF436D220A43983E3254F8934E0E081835FEB387DB209A2AF3908DD1601C4984FF0682BAC98FC5886DDF6134596F591709843F4E435AC8F2555E209198E1B9BD041C888A0011471C26A2C2BC3C5933151724A17715A9F221A0A446A09AF0F90B72A8A3AA48D5A149EE745841533E27D5856A4C0D84C0F97986853305EA0DBE23819E2D3B93A5EC2897DE259EE0895955751E8A347DB5A9E088C8E1EC15F2ED226DB8D664D6F9606D00249C3960FD1177064925020FAF6132E39F796C091EBE93CCEBDE29C9CA269A5A57F757E7070EB81F6F61DB1DF689771CCE4D36C36EB9CAAAA474C0643E1D1D3A7D79CE8EC3C191BC77863E1C749F371094735A11F4ABE5118D183ED02A587629FA5DB06419A118E319B98EEC2961D3BD7254D50499AD8B504A368744BA64E9D5F999FFF8363E7CFFF665B4BCBBEA46BD5A4FB32662F9D316341595EDE93C33EDFCE0D4D4D0D5E9F2F98C05CF50A8256938495280042AFE118EC10E3E97EF297D933B8696E684C133421900658639FF92B3079BCC9C378DAF19DC58BBFE1B4DB1F3FD0D1F1F79B5B5A8E5E23673DE6FBF2DCDCB4BB67CFFE07A328567DDED5F5CC07FBF61DBC8AE01357FC7802F063A3A7C87DD8223763B3E6A66EC824C0913D2600639200AEC4706E3CE69B4551F8E19225FFD9A4D7CFD972ECD8133B8F1FBF70354125DD6FCCF7DF59B264697176F633A3A1D0A6757BF7FEAAA3B7D77725A125435F02FCF8632DA2DE24C6DD6C017031861B63DB8E2618E7FD40D7B37ACBB2B3CD7F3D73E67368548DAFB7B43C79A8B373E47A56FCD5ECCBBCB232C73D3535FFA41784196787867EFCFCE6CDBBAF632C6A6CAB326449779688022CC365B665B0B7B725E504902404434C10FA7160E8AA1AF1B549939C8B4B4AD6488AF2F9B34D4D3FEA1E1A8A5C63C57F11C1C033F7DEBB22C36AFD9788A27CBCFEC8919F6E6F6F1FBDD2F506BBDDA517C4D5A8DC5FC7A94DA3A732698AD85A71566B38817B75A0ABAB2B650490240431D684EBF072D8DF7F9D376F62695ADA9BE8D7BDF2FD8D1B7FF96556FCD56CCC53F3E7A74FCBCF7F1607BB30100AFDED0FDF7F7FAB7681D56AB52B9CF017BCC03F8A0CA7BD6D3ECAF428F3212A8058E315FCCF0EFC658D6C16DF1A3871C273DB059020042EC67CFE0A2EE098F317972CA9B308C22B2145F94FDFDABA75EDF532F32AD771D7BAAEE1C107E9756AFF3B24CB9BFE71F7EEADC3C1F08348751F32D6A8313961D5C395BE8B0A850FF21CBF1E3FACE975A67DAC5EC7634C5F79594A8220AEFAF7F6A245DFE204E1970AC73DF2D0D6AD8D3758C5A05EC758C65CCB713916873DF42CBA33DF41483224313489C157D282E8F7EC3B3EFE1DBAAADC3A5E10D69C3FD9BEE7B609E07AFED62F58F00C8EF89B9C2CDF73DF9E3D9FDFCABE4DE9E96E41E50EE1E96155566A71A908575DF5FC65ABFE324D5062855CF4B08820EAE9D9E2D3F8C35A10D5355DEDEDC7BF720164E6E64E9665EE715015270E6BEDF0C59E1DE3F9CC6F5657EB2D56EB8B38887241A75B75D7EEDD7DB792F9A411D6CCCC720CA58E2D5E6084BDC7E55118E6E560289836DEAABF962610D2C9E108456694B9605581F460B7A0D3838E1E2AE719CD7E245D2346F8374E9E3CDC77D304E07496E4C8BAC8A3AAAC3EAE827A078CCDFF77E17F5E55405E3B3A38C8DCB7C6E9D31D0890EF62EF433693E9B1797BF6046E35F3ABABAB9D11597EC46677FC7A4EDD247863CB473045AF87A317786FC41F344422B2FE8A5093B4EA5596028FB0DC17319AA12E13921AA351C168B1B3FD04458AB4067CDEF681EEAEAF7F2901E4E4E45824DEB01AFB7A1C17F852EC5CD01270891B2F6AC246371E5B9D3CFFD1CF9D590FB904E1835D6D6D3FFEE96D786B2D55EF6564647C3D100C3E88CBF32FAA67D6729EC17EC833F5C0FAC01130349B15952A82BC7EBBAC28DC1535814FD004CA99C46A5055356A0F5464BC881A201AA8460ABA4301FF195992E6A3C09A067BCFCFFDC202A0DC7F7641E972443A5AE90F20BD655CA65FB68B75E95C2B5940556DC441AF31E8B8B7070707476EB5062C5EBCD8E2F178AAFDC1E0536185BB3F23332BED1B8FAC8463A7DAE064F30118A91A86F35BEC119DA484BCA3A356B80E4DD084441A21A346E80C06D0E9F432A7CA1783A170BAAAC87A35FA0ACDFD833D5D73AE5B0079C56533D0E17D1C39F728B2D195CCD0ABACF8CBCFE1B2EF8378588FC73521BFF7633C466E952062AF54B089A2B878C4E7FF0F05455973CB2A72C534CB04F0597CB0F1F56D7067A5028D5D1088F485E4502864BD7EEF88C7D5CF8F48B26C9424D9C0CA6288F9D1F29C4303DD9D33AE2A80DC92496E81531F4332841875E2388CBBAE159F28986BFCEE4795DEEAF78CACBAD5DA505656A64F4F4F774A92F4F0902FF03D774959B92D3B8B0B792E424D8903DE1CDC05CAA776C8B682B7B3D7AB4718318CAB09D12D0610059D1F033905996F55628C57B517D1E2998EE37E5F595AFCFDCB04503C756ABA1252FE124DF9E348B280C04C62AF8A092199CC1E88D051D1546CD3FABA987F4DC129AA4ED07D8AE6AA18CD81637478D0783BDC6112C4D4A953CD7ABDBE2214893C1194B9D506A329FBA1AFAD807317CE43E3F666A85DE0813F76F28A70C63832EAF5A4E1F8F9C4958FF388184C469F24AB69C8702EFEC6DD18F3D1C7FD5C14F8BFB51A75BB8F1C39126602406F403FAAE8EE45D5F826F2E25EFC4ECF36B643416654645546EBC2452BDBA833B2F482C036D3AFCA5CB81CFB937FD78BFA515E27485C69D0F1572556F8F78F7CE1993553D21A1B1BC3B7EB95F20F3FFCB070FAF4695AB9F38392FA74BACBB1B8B0B0C24059C5E9B327C1BACD6F402927C1393912B9705CF1FBBCA3E8B6F2AAD56A1D51049D0D992D680CD7563E4E7858D471FFECCE75FD16E7E68B078274CCCC2D7C466F34DD251A8C7359D9065AF16060345EC6A145F3974A3BA2A51BE452E930D050A3A1E5F5DB01FCA7E3F9B0C16CF657E4AA8ED6331170DE67824773EF857FF9F757A5896513E8B982233881819BF556921BF594D2D2D232F074D56858792A3B27AF6A611DF023C33618B910826325C760A8D104824FEF45268BE8541813713E564219D1F1EA5B0EA3F81FF15E7DC9EF1862024877E6FD1AB1F7694E100E99CC160B9E97CB043BE1E89B45B8789DA5CAFC5AC238623E3D0EA45E058AC6B501382C8BD93622D1AB6CEA3CC203FE74D8DC6280F94B96C3E432373CFBDF7FA1949714BF8417EE423CDE72E8D0A1F3701BFF089666CC9861C2C5E05639E1DB114EF758564E66DE9CE9B32082A8D07CF830F4F4F44690E16222CEE351D571EA6746117E383A3C7CB0A3A363DC8DFBA806380B7E0D023CCD2C39CFCBB8AA5B44515FA9A8AA99BDA381A00864100491152791006EC4F3319B4C1ED5C519BF56CAEBD7ED96A1745E2EFCE8E1BF87DFFEBE01ECD9F9D0FED9A7B2DF3B7230333DED65F44AB68F8E8E9E249C8414F823F7BBB6B6D61C0C0667A2CBFA77065BC6F2D2F272AB6FD40B274E9E8AE02C458DF9BCA2F4EA38E5E77693F84A5353D3E8D5A09425CA3273F29F5339EE077C5400CCB20B021F11F5681A14D5410FD4C5B7996EC0F341A3E6B75ACC4A20A258D5A58370776832B49E9061E1B22C0CD58DF0C1DB47C1E7F59CC9CC70BC250AC2C7388923A8AE4337E3956037FB6FE6CC9964F8D230345B29A9BAA7239C50132BBCD3239F033A90DF10E5D04F507BFBAF67F170555555FAFE11CF4B88348F69CC8F269C7816520BBC2EC0B37219D9F645573C0A3462B1DB7C914A5FDAF7728DDCFFD9CCC1A2C57361FEEC5AD8B6751B80380207F69D18B61A0D9F582DA63791F1076C365B1F1AA9909A0A59C2ABC092DBED36646767E7490A7C338CB0848BF3A2C849FF808142734B4B8BFF7AC7CF524685A5A5AB8321E9DF306E7669CC67C28885D974D4F3BC27222B7A49968C97335D49104CB49AC762B38DB87374D633BD08857346E051E77DF0D9E7DDE070A5A3501538B8F7705889849A6C66C35AA4DD895A7616071EB85D9ECF8DEE81E302466435E56380D6979999E9FDA25ACB450D2BA79B327B76CE50FFD04F90C9DFC62F0C7C02F3B94BD0A408BCEA09058236195DADF17C7D93C9ECD59B2DBAD0EC3ED313060BFC6E9B1EEA96CE823C571E1C6D3D09A74E77A8A3DEE1E376B3E175EC7C532412F91C57922715E1E68B08E24B1766915ACD9B37CFE8F1F86B3CA1D02F319058C836E262CCE735688AA658C3AA24F9FD7E9F43B301683483690E7B646E856ADBD12E807DB60C7F33FD3BF0C6FB1BD8EB5D446E10F6ED69EFB71874EB459E7B17FB6D0E87C31753C5C8DE36E12543150521DDDDDDF68B8323ABFC92FC3345E5DC5C923668DA81519D2F18F429468359566D68989674738F0D64C19BFB2DB0E26E3BA499CB61D3A66370716020A8E3E49D661DBF168DC95E9D4ED775F0E0C1402AE3FC6D1340626E043D119727243D1D8EA8DFC5656FBB0445978481019557E5799BAA0BC3ACFB27C1F2C265F0ECBFBD002B57E4406BCB8872EE4C7F9B4DAF5B8B976F459C3F818C27B74C863FFF5D7B474C33328260988CCBF56792C22D4741E8C6B8AB3CE75539DE366962258C8664985AE186F51B3682A0C8170C3AE55D1DA81FA0C6B4205E0DFEFF0E3737BC278C8210E7CC99931108CBCB8232FC1799E3276BDAA0E3C0ABA000E81DFE468311DADB8FFA7839B8559023AF21D4ECC7D6BD77EFDEE09FE1E64B6ECA6B461A61A43020C3B7C30AFF5D849E2CB4035E0538AA079544900EE995F02BB4E3E8F3F9CE1C3B76CCFF67B8B949024836D28140A02A04E28F70F5CFA317D81A39F94D1E948F30986AC3CB466E6712ED4F5A008946DA6C36E7A1FB598E4CA747744E3A1C8E9E548F62FF24049098A05ABC7831FB5FD022E3237F869B2FFEF77F01FA72E8A45FF86ABC0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (137,1,'Satellite_(128)',0x89504E470D0A1A0A0000000D49484452000000800000004E0806000000E8DC1E0F0000000473424954080808087C086488000000097048597300000DD700000DD70142289B780000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A0000275B4944415478DAED7D09781DD579F699B98B74375DEDB224AFF2BE800DF68FB1D90C84D550C26668434820101A684B1A4A20CD466880FE2D0D4F5BF2A4D03481A424F9A19036ECE0F08442C00BBB31C696BC4BB2F6FDEE7766FEF73D336734BA969780492447A3E7E8CC76E7CE9CF7FDD673E65CCDB22C71B42D9AA62D45B5026509D68F0904027A3018CC555454F42C5EBC789BCFE7DB65184673369BDD9B48249A5F79E59576B48339169F65F1E2B323E974AEDEB2F45A53B36AAD7CBE3E9FB7660442A1D9A9A181B8B08C72CB324A4CCB085B66BEC834F37ED3CCE9E9F4A4FF48245EBBEE906D75341060CD638FF9B467F61EF3E843B79C585454F4E55C2E3717C02B328CA8410471F2C9278B68342AF781042CA94C26F3237CEE1F40863D9FC43D2E5BB6269ECB656A0C43ABB1F47CB53044B51046A5695A9500AFC2E70FD406FC45758383DDC59669C64C2B1F06B04558D72D610A8913398A7BE67D17158744269D94D7B68465FFC7719C2F743D245A5B820F59D6BA6BC61D01EAEB4F3EDFE7D3CED334BDC4B2B458ACA4B42A9918D075DD17D2752D1408864290E022239FF3A3C6562420F464A079CF467F2A9570811E0D7C559F78E289A2ADAD4D84422111894444381C162000899043F9CF743A7DCFBA75EB1A0FF79E8F5FFEA74B45CEBA1C0054008272CD32CB4C146C9796945555F575ED2B462BFB70FF4263D174A7E6FD6812BC6071B148E3FE2DC31020840452028A623AC072BF69E405C822C137F259014D86637961BAE75BB86EB5E8E9F19D6F59AF3F3B6E08505777CA05C0F2873E3D5F036085CF1710C1A2B07C28125CF7F9C1FA089A4BB3598EED69D3278B5C7AA7D8B0E1B707047DB47D679E79A6AC21ED62DFBE7D50B38B05CC83D4060E11FA4182D3D6AF5FFF9E7588063AF9B41BAF2F0E87EEB74C23687A406309068B451E20653329006488BC9113468EA0E551B09ECFC9751E2B29AD1083FD3DF63D6AD6F0FD3B959710FE405012C09678C32688354C80FEDE8A8154AAB7CAB2DECF8E7902D4D7AF3C37142EFAB110E9499072A82F3F1A2E240136C16E1D6408048A508AD16079B90DA9170B17D68974B24500A4834AFB6844B8E9A69B84DFEF17F7DD779F686E6E16FDFDFDE2B2CB2E13A9544A1180F5AEDEDEDEB99B376FCEB3FD0B89806B692B567EE17B8695BF598738CB6BEBBAA094635B02178E9588C1BEEE51A5D9DD9664D6A516482787844140490C4AB5248A23E196ADE2D94614904C3A21C1F602CFDAE78B88CECEE84342ACFFC2E1F8357F3002CC9C79F66A4DCFFF87610CD6D8C0E3C1FC41110816093CAD54934AEAA901EC87F78B783C24E6CC2E15FD7D9D62C78E1D8704BF70DFF2E5CBC525975C22DE7AEB2DF1E0830F8A3D7BF688AEAE2E71CE39E74873400228122493C92B70ECBF77EDDA358204A79F7E53B4AFBFEFE9F2EA49A7520DE7733948775698B99C2DD928D192729118EA87F4275D808407284BD96C6C474BCA40944E3E364EE17E61AF5BF63A6154DB148E743A0372C03350FB5953513AE78442DA5DE1A8BE1B9AA5C2C89BF520592DFC896A149A259856230C67316418C58DBF770268DAC2606565ECA54020B7D2111BEC23ABFD2040111A3323B88F22140A97402A930E0174316D1AC09F532125B5A7A7474AF1E148BF22C2A2458BC469A79D266DFF134F3C21D6AE5D2B76EFDE2D35C075D75D27BABBBB5D33C082635BB0BD120E48BAB5B595EAD46A68B8F8F85849F10B3E5D2BA7741A6879D6A661DAD22BB72D1189C5457F4F37D64D29BD00424ABF2181B3644D4D6090ECCE3DFA037E53D3AC1C04DCD0742B0FBD62E93E78421AC8AF5938CD44C32016B04C1FAE8223794437015F2A39A8794D8FEB107A89E7EC131E026A625AF28813405BB3C657B7AEE3C79AC89F0B4F87DA91FA512F2E0EFB786B462E67E0AC309E38A003F868AC0C8D9E920DA84915AA4B6D40E92F2DAB1289C4A0948AD2929CA8AF1112F45FFEF209B16AD5E952626DA7E7E004A09377ECB1C78AC993270B440962EFDEBDE2D1471F95E043BA25E8B7DE7AABD8BA75AB0B3E0B344C1EC79620726845289984B9C8E9FA8ABF0080FFCC4B431567FC7E2D897BCDFAFDBA81F53CEEDF82138BFB17D05E4578EEA2402A31C4D6C61ECB0F9DEBC30381B9560040F85174054C4959A9E80369EC6DD3F501A45B405835CB71096CCCA4B9417B65B369475B18C3C09BE648DFA0C03FA1DF91C934741C5102CC9EFF273FCA66BAAF02BF033E09224B4014438D5332C87C82ABA1F8E1C91687A2B8F98C7C4AB95FB34D41119CBFA2E2B0482513F2DC48C81433EAB312C8B56B5F14EFBDB7499C70C20962F5EAD5A2A3A3434A60A1BA6761A8575E5E2E1DBC6278D9047F686848BCF0C20BD27C107C46030B172E10577FF6B3E2372FFFEF08027CF0C107BCF6B7F0F987D1D07DF1783C65EA4B97A3DDFF1B8D5D41D034A9AC78FF42DA7EDBC3B7418B9796E1FBFA6D702400865C1FF6F28741D31DF2D3B9335D9060FBF386EBFDDB0EA30D1E9D3F104C241309F7BAAE06283031A369004D2F42FB4EFFE5112140ED9453BF2BCCC42D9A6E16CB0620007818DA2B7AF30459731A870087C231097606DEB10DBC2E816603D276521B643369798D7028284E5B592B62B1B004F19E7BEE02E85D529AEFB9E71E5155452D91900D83385EC6F92C7CAEC1C14101474E02CFCF72FDFDF7DF9792AFA43F1A8D883BBFF36DF1EC732FCAEB28F06966480080B271D2A449D7E2313BCA2BCF38B9BCAAF6673EBFAFC895249A01FA0179E5D9E7E10FE441701DFE4C50F47677CA7384F0D8FF025058E2E565A2AFBBCB36E49A17136B9462DBFAA262460329E7BA1E0D607A1CCE03688060B046F474876EFF58049831E7FC6F58C6E0D7B3D98162E5C829E926F8867C70CD06D7D94FA78E4E93945409BAADEE19DB862371F94032EC73AE75C62933C4AC860A092A25E48A2BAE909F9D3A75AA38F5D453C5CD37DF2C25BCA4A44436C2C0C080049A3E026D3A49C0CF7576764A878FEA9F3509C02FFAEA57BF22366E7C473A820A7CDE373D6D9E87EB1895959517CE9CBBE6A440307C1B1EC7AFAB084DB75CE9361DC9535E7E14F733D0D763833242DAADFDE27C104A5E2F8B67B7A5DD9052AE8A65166E9B328FC0E8219D4C7A54BF75480DA0B480A64D06C98B577D2402D4D49D74ADB012F71946A24449AF926EAA6F4A2EA591E0729DC74250F7F4E233B05772BFFC9CED0086C25190232898C8B13F631F87DD155FBFF5D3823695A0F09AB7DFF615B1676F9B9832658AD402F3E6CD13679C718658B06081947402D8D7D727553DC9C0759A09AAFA96961619F6B1CC9B3B4B5C72F185E27F5FDD80FDAD2A2328CB71C71D27B501CD044B4DDD89AF9597CF5901A034A9860D472543454B200BD46B241695F79B1C1A180661540D60AF97C24CF57675BA193DAFA4DB793EDA7ECBBD0E9722268E100A0A57FACD11D9C0111A6084F4DB244CA7A64059A54B7F27024C69F8D4153E2DF36032D15EA239E0125482C5E404E375DB1EEBAE6AF7C1692B2E8E3AF1ACE56A03F9793038128E8BBC8C794D47EA490ABF24422C1612577C7ABEED653BDEF6EE9D5BC53FDDF77D515B5B2BEAEAEA04D4B3A8AEAE965A00365AFA099478AA6482480250BADBDBDB65D22707029E7BCEE9681C5DBCF6FA1B68C4F408F0CF3AEB2C316BD62C09FCF6EDDB45EF409528AF9A8B7BB20AE26E733F874B6980682CE648BFB59F062804C50F9253AA7399B4EB9C99E6281A809F71B2846C8BE25031C2CC41F7FADE24D4A134009418846DC6DB42AC5F765804A8AE5D79A665261EC9667B6A6C706DC955D20F0F5F9A2E093E49E190A3A82822BD764AA59714FC4C20582C133A493A7AC2734DE7F37017C5606FBFF8E2752B5CF055DDD6B255BCF9F666681321C1A7A3A7C057F69F6092000CF186D05095E551316BE63448AD101BDFD8245AF7B54B8DA280E7F75F7CF1C5E2820B2E909AA2B171BB58FBEB6691CD1749E9331C20AC038454AAE1E3159562A8BFD7766EBDA1D801344019CEEFEE6CB7AF250AD4B8BBCFF35DA8FD7E5B7832A96441D8777826C0E72B87F358FE80656DB8F1A004D0B46581B24AFD37C21A5C613BD6746F1D4F57D8EB918813ABCB00C53E461738182CB243944CCEEEC070627BE13889B4F7C9C4006E4EBACFCEE7EDE30875C5D060122595F8FCD5C7842291803E920479440608967309D10D929826FD0C3F6A5D364E51D087EF8709C17A2C1A92BEC7D6A63D62EBB65D205CCA059E35CB8C1933C4B5D75E2B350ACD08976FDFF198E8E9CD781AD6DA0F486661E41E0510D6CB2ACA444F6797ADCED5E7E4BAF0ACDBDB7C6E3AA7C9C490E3D8D9C50654A80DDB18481035790D1FC067FEC092D91FCD218970D685F3BD6C4BE7B8253CF7209CE7D0AEB1ACF53F39A406D08227ADACAAF1DD64994397E1A34165D3959D0E31C4C335F252FABDBE40489A849423FDDE633417B168A9944C4BF348BE320DA8534309B173D396D4492B4A77575717CF331D3527932F9E1209C3B10CFAF15DBAAC191B0F803CFDFD43A2AF1F26A07F50824E93A00057EB74F42EBCF042E94310786F59BDFA3B3289F307EED7367DBA65426050202A3A9A4BB3F1C533E46C8780892261AB01775DD69E6D91C35A12A51B42D281BA179AF9BBD9ECEB7B0F4A80DA8655B79AB9C13B84950BBBB65BF73BF96876D6B0B3C39052EB8DE3E9D4998E49B0F7FB5DAF3E140ACBCFA6A9761DB0D5316A0A367ACBCEDD62DF8EA69658B4F71BF3E7578661E7BF4FCF5E813E1A1158EC50CCAE0B8B17789A8D254B96C85E41FA0E341BE98C25DA3B53AED3BA6143A3342129F80819D8E720CC596F4F77337C9E9C545B1AFD704B93BD53327549CFDA725498A5C54B2B82FD7D5D861441A67068D32C8B71038FEB962545D3AE99DD63762C14D6E808239CD4BCE6C5ABFEF93DA611C50777FFCCEF37734E3A5F7355B0BDE8C3DD489200F016450BCEDB0CD27F80BA19668E6ADB18950075334EFB9C2632F767D27D512F78D24EEB76E70CC1CB80846C2CCB51FD54B56178FB2934980CFF3C1EBD8650AF04529F9579F3BC7BCCF5FA59702BCD4DBB45553C2FEAEBF3033B76343E0527EDE7A79C72CA0FA0B227D391636847100F9704EAF9E81FCC993347A683554690C0B36EEBCC8857D7358B349394D2E152765348BB1F2FAB1089C17E9971131E353E6C7FAD11B6D6E7B3893E30D03722FFAFCE1DF5B382CE635C0CC07F106EFFBF55E06FD804181A88E2949E57E3F1BE77876DA70DB89D5E17BA0757C6E2B43120AFBE05A511115207C2DB143B8B4610A07ADAAAF38D4CEF43B96C5F95ABB615804EBC1E82C347FB23B3778CDF9D120C86652C9F638F9D471BF0F341102688CFA5330C01FD1E320D93ABB7AB5BEC787F6B6E5275F6FDB3CF5E341B8D1825D88D8D8D5BE1E43523CE3F93C0D36BA793C6108FEB2C4CDA787BFC98EB27E03178E32C88E365D8E8055DAEA36CDB9E146D5D74AA34B7D369D8D60BE9008670AD4110C01B7215F6C20D3B60163CF410CCCE90C7FB2F74E4BC7E8572CC6CA1CDB969DD511C4279439AD8D99815F192DE9F44A343DB2808EAD1D9A66EFA88DA5F23BC96813A81F35A717C27A59F594DA6B55D02544F3D75453EDBFF9891EBAD77BD758F7432D463B8C2583DEF866BC3E11CBD79FA003C663B219A63DB19E6C5E48365A0F235D7D35704B149D6B3AF5BB4EDDABB2F1A1DB8231AEDDF0EC7680142B16B20A9C711688471F94824E2A7E3E655EBA6D3C02A0BC8EB117CE60FBC4565075DE09954F205C5EEF652A8F9BC1D9EA9DCB9A9C22A3BF48AC54AA454D2F154DDB7B2D1E56786B36F2A0CE3128DC6445F6FB7ED9CA91071446CEEE91974B449945DC703BDFB699342F56F5911D1B92F37346952EB9720DC6982EC491A08EF3A8F9936435258A76AE980EDEFDDB3670F25C6203BB478E5892F9A66C799A691D5F850852069D2A12BB6BB289D385EED27218A393449865176368FDAC08FC6A5A3476250E5CB5CB92BF9C3E4E1F5B6BEB34524FA7B5E2B2FEFFCFB40209770D41789A923D6BF70FAF4E997E1E66B98D8514E1C4B329994211E3B840828C34D4A3FD56F6969A96BDB9907A8A8AC126968092A471220671489AD3B4DDC9B708190EDE68EC1B0B7D9355D0C677660A0576E6B9EC4CC88367706ADD01287C31139B247C6EFEABA9637855B60124CBB0E04E887A446E408864D84E9269C1283616ACB67ABABDBBE851332B6836893004261158C81A01A2007D89D9D421B2551D2ECDE56630570E6F29FA0FEAC431934A00090A8FDEC8F87FA8B84E4C815A11976FAD18EFEA0D6FD32D44B6753F20B879338765E807DFB1999CFF7B95EBED727C824B3A2B9712F54D0D0BF5755753EEAF4B77B9D17E9C000C452A8EF6B01F47970CA7415C251F593DC656565320FA06AB5CE44CE962D5B246C37DFF23762FD6F7F2B1AB77D280C7DBAE84F163BE956D31D91A38A1A80C1BAACBC4A7475EE733B61BCB1B9D82F2CB4412E2B2D173D3D9D1EE9F64AEFC8FC81DA17894441E8413B753E8ADD77AF8367E96A83160B266FACA8E8F95526934981F0267B201D12EC370886C700BA89B6634ADBD8BC79B3E11DDB80335784F01093716A19EA52ECF2D416EB72D4650C719D7DACE3D82E41F1AB2F22617C019FACA9869938912442F1432BE87E9FCC0A5252934369D1B9B735515434705779F9D0EB059EACE6DC20BB5629A35457D9AAAAAAD5B0EBFFD79BB5A394AB44902200350081FFF0C30F655FFD37EFF83BE9D4F5F6F6881FFCDB8BF088C276F7AADB73681719C9A8EE57DA7D682F363CFB26547B16DA7D25C1CA5BA740E4735959AC82E4CCFEF65C992F436AA544626878889733AE401D570928D32A161D2DC6404D4DDB729F2FCF2E6A4A7361AC3A5A5867796BEFE8A64324826467A75E53530317003A0A1A14A004A06AFCA8FDA954712C97D3CA4CB3A814E48D9BA6AFC43433B302016D19CC461D4A453C5E160D0643DA10404F26332859A8E862B17C79053CFAB601387ABB60E79BA0D2DFC1F5DFA69A22F88E7A4B02D021809D416D40133CC7FE79D569C3542DBB7C99C099366D9A6C34A67B5527D0833F7A5844709CFB5330198FFC629DD8BDA747D8A3B77417584D17C30EA0A3DE2B2B2789CE8E9691523BAA4D1EB6D765E595A2A7AB7D7F892FF0FEDDEBE0AF18E655A68273D9113869C346C33523B95C09EC7FF79365657B60FF454F676767E60080EFCF8003007D580480F405A08A03D82E820A26197C50573E8EB737396C19AADBA93500E8DA709E03A0964232CF803D9F595F5F3FB5A1A161123EA7D186D37B67CD42670F0FD403E0B6617B13CA2BF8BEF5908E3ED4696C1B700CFF1204B8471180BD75768FE3E8CB17AEBF419C77C185B6AA477963FD36F14FFFF0F8A8E7AAC1159ACC710819D25AEE7EBB689EDA2691E66A13F6CC45A26127AB67395AC572FC09D313929BFBA97F3566E0A0EA1FEB7DDD11F85283375655F53D8676E96F6A6A323EEEFB0C8722808C29E18DFB6143FC50ED7E1081E0135C05BC867D12744502EE071158FBD43624580368119C7B0AC87002D4F74C106326EA72AA734506555382519AB1BE11E555EC7F1104A056D802FBAF9300ECE1637DA0A502E1DFBFFCE04109103B9B98B47AE0FE9FE3BA292757A2CB94A9E98CA963C9E7ED615BACB359268E0C59673239E9B41EA9450E20D1752703EA0C28512473D24936B9EC412784A9AF3B3B505DBDEFC440C06C411897549EFC274D00490278E33A80A213A6117C7ADA041FE640261D1C42682089B4E7DCE6712F491441A819B0F8015E256CF72AD8F1C550E57311EBCF06712274F09466508400012DD48D70646066CC493C87BD7C3C76B0E596AF7E4D2C397EA9AB05B66DD92C766D6F744708B15685FE09CF7306840A6FFA99DBBDBDEC664E4A422882A8428228B2F018D7BD6422D17499F760092036E7083992D0C76370252CBE034277056DA4053C593D7781DD7FAAB6B6FD4B68B76EAAFF23F136D3A1FB0286492037972E5D2AD70180AC950482082403B580E6A46B35472B680056EDD794F6A0264183FB41289A9620F6D1B7A805194E022916019C85383C87FBBD44202074F44800A687693A0EB6CC9D375FDCFECD3B5C30190EFEF6376B6588E8059FFE0409C06BB3D69D310D5EA7B3B0141EE736DB139FA577CED83B8575FA31721BB7D3CB840C9EA90F25A39C5E9A5AC709F6A96D12004DE687ACD0CF1C320C7F1B74D45BD168FE7D5C6BC01BCA7DA2042820C27EBB0FF6110F692461481645146A128476F41158025CA815702C4007130DE4070926830C7CDD6B09F62DC1BE19BC0E0946023849A203DDAF139EEAE29B77DE256AEBEA9D51BB96D8F2DEDBA21F5181029F9A80612347151D0C7005B21CBD6327A57AF01D5D68C3248146DDCF9C3BF677E1BC84F2E09CA6930E80CCBE7198EFB0F3A608E0737220BA2280739C92DE8D7A17337968A3766F22E7F74680DFF1E54CED10A4900B88A1F7F7F7D321F4D1BC20CC2319A8182411480827EAA04A0CE2F854988AFF837BA61AACA246E0E81E4FCCEB78F7DA88F515279D2C2EBDF2CFA41F402DD007F01B3FD8B41F01D49070BB134B774D04230DA69455FE81A9E86DDBB6D107F91026E9A7F80E462D79D9B9A269CA31339C34ACDAC79A529BC73D70DDA4B6513E92029F8BDA76BC77328EC4DA87CFB4739D43D48FD4CBAC7FB017433C2471EB850B17EAB0F51AD43DFD0D1F9D4ED4E403C91070B44310CEE3A538FFBB2A1270D4EEA8E0B36643DFFAB7DF92397AC331055BDF7F477A7D8A002C0496F90435C288F90CAF9F409230BFC0E1E3CC35400D1B0891BF8DEFE864BEDD91D6AC029A790C0770AECBE2800F8E194A0B68B83F650274AFD32CD5867D7E0AF5009E77105154E6CD37DF3C22D23FA6DE0D1C85103ABC7E573B000092817E4300A6A31CE55D6C07210DB25FC00BF8682438FD53678BA5CB57B8BE407747BBE843CCAE00F6027DA0F59D3B774AF01509E837402BFD140EF1FFE03B680A0649028246B00DDBDBCD73611E83593B80C8631475B7E195BFE4641435A7F752FA4DD038CC86F2FD84DCD4A9537300DF3C92AFB28FC9D7C30FA61D507CF41DAAAAAA7E013BBB9AA37DE9201E4C03B084231171F5176E90232A48807C2E2FDA7637C9CE22AF162804DEBB8FC3C815F82C88C3A95D3E80C6F80ABEAB05EBBD002C856B1A4CBFB2C04FB100A04CD7E21AA673BD511B5D39D65EE75A9D4FE0477B47F1A824C0E16887952B57AE81803DC2E1DFEC283A18F86A7DD5A7CE1193A7CF705EE332C500C7ECE7D2FB11E0405A61340D4001861F7015CCC5DB00B0836F10412B199EEC8F758834ED612DD62704D4B89B20429161F1E2C56178ED7B017E19C3C1D1002FDCC75EC155679FEFFA01B96C4664077BF703FF4044686C6C94CE9FD200EAE5541CFB217C877F85C4B7D20CB0AF7DB4BCFB986CCFF13C43C859679D751FA4EECB1CF77F381A8065E56967CAD7B65562C84C0F89A04F1F9504DE6DE60608BE22006BFBE512197D34D5D6D65E8D7A0FEEA7E74825692608708865F5EAD54C146D6507D06861E0682498543F5934CC5BE486849691139180B6DF68A14222F05C4500551835A8051AE0B370DCD633543B5269DA09021CC672D145176D6C6F6F5F46800E470330C7B268E972998357A6A0B4D827421EC0BD445064E000516502544DCDA3169CF708C2D37F8423D80A6DD17FA43275130438C4B266CD9ADBE108DEC304CDA1C1B7D76BEAA6884859851B12468AFCA2321EDB6FD8989704CC3812787AFE8A001C6DE44942354F9A34E94AD4BB6906707E7A8200BF87E5F39FFFFC4C10A089127A38E0DB13310444F594067B72074ED182EBCCACAF1E157CB5CE1090E0AB42127807A37289C7E35F4288FA12BEA34D0DBB9E70027F0FCB95575EC94125D30E271250EBB18A6A61683ED717983AA94A545794BAA07B49C0D430433E02AF6A12A070C1677E595D5DFD771C798B70705C9881A38200D002DF873ABEF17023015B0B04851108BBD1402454248E9B3F7B04F86A9D61268157E033FCF33A809E10B513D1C0A5A877B1CB763C9881A3820037DC70C31210E0ED43497DE1BA150C8BA154C6F505562C5924CACBE2323BA808C075F59A3813412401D7BDF6DFBBC462B15BA2D1E833B8FEBED6D6569A81FC583603470501981CBAFAEAABF93A52507503ABB983D4C412A31141F8FCA2BD2F614FE44433505723961DBBC0957C1676391378FA00ACD56BE3071A8A06C23C0733F075E7058C7EF502C604013E01D03FF399CFC4D0C827A09C88F297F97CBE9AFDF5CCA3ABB786D865AC5E2861B72E7BFA388094A11D49D0D6971483097BA00987635D7AEE99221209BBC451D3C9281290007C45ED20F7D58F68E0227C76C7783003E392005FFCE2174F84A4FD05CA6568E82225F1EA8D2145007AE98C0E58D85FC071869468D635353572CA3886844D7BF739390143AC387EB158B268BE24809A56464D29A34850E8FD172E20D9A7716F9B9DC11B3403E6583503E38600D75C734D31C0FED350287423A477196D34ED33FBFA1501D434328A00CE58C211E0B3F08D22169EDFD0D020A6CD5D2442D198D402F1584C5C73E525420D3651F30A294DA0B28E07594C906B0DEE6933EE977E40622C8783639E0054F5975D76D9ED50E3B74122E3F4C865A720077AE87E11E0383EBEA5C47700A5F366DBEED2D2B87C518440AAF982BCE0D389F38E279C3A738E98BD70B124D2E5179E2B74CB70E71352134BB19058075B40C89D20C05FE13A4D2040EB58CF078C69022C5CB8B01CD2FC1BCEF9CF57CFF8F2C4D050420E97E6B87DCEAEE577DE36F2CB99C6541DB0DFD2E16C5F9A05CF3C22A790211114F8AA78D5797955B598B7E404D1306D8A983BAD6EC4A45224015F3839D4023FE381929292FFA20FC0D7B0F11DA90913F01196D2D2D28BD0988F73FCB89A16D65B02F26DE591FBD4885E7BB6719B10AC39145BFA03C984C8A693F2556C9281DA84C5DB06A148542C5CB6421C3F6FA6E8EAEC9024504438D402CDB3A1AAAAEA7B3025BB50F662570F1CC6EC8413F8BBABFD6553A64C590F152DE70652802BD00BD70F4C029F3B26D09ECB20203B837A7AFBC48EED5BE55B3CD408854E5D385A224E5879B2C825FA25F81C76C648E2600BBEA71BE07F03DFD584CD3DB8EF0E1038D1D4D4349107F85D6D7E5D5D5D2B2474923D3B7670BFF7FD0BCB8188E02DDEF89FC3EE5A5A5B04DFA67EFBED8DA24FFA1523977879A5A82C8B4BA7EF502F9F30F483C6FA5738A8EBB049C96F83833940E9179FC030AEA39D00AB172C58F014C32DC6EA4AA255764E4D0557380144A166F06A02A50534673C207BF2EAEBEBE124F247220CB1E18D0DE2CD8DEB8567B60DB970C66F4E0D73B005BEC500BEFF5E946D007D37BEB31991072C4B6F464C74067D2402DC8DD0EC6BB4CD04D30BB8025101AD7EF28544194D2378A55F4D1EC9EB52ED736651F73B71ACBBBB4F3CFFFC73A2A971EBE1DEA7983D7B36A7AC35111EDE058DF506F6EDC0F772FCFEE0C478808F4E807F9E356BD65FA95FEF6028E7ED98F176D4105C2E0A7012816FF7783587AA950DDFBC79B3FC8918924708E199DC815FEE13CF3CFD8C78F9E5970E7A8F4C22317F40F2F1BA04BFADADED6E1CDA8EFB689920C0C723C0D710FEDDEDB5BB24C168A374BCB52204A55C6909EE63FA57F90574E80818E7175652AC9E5FCD35C47E81FFF9D593E2D76B5F2874F2640A99934AF23B0B5E17B31022DE86EF7E05EB7BC683F73F9609702C24F45D6A0002C8708DF97B9A82D1866B17BEBDA3884202C8F9F7A145D404521B366C90BF31E0F6067A9E5D4D2DA7407DF2A9A7C5F3CF3DEB4A3C7F9F60B417463D53D6BC857BFD1A48B81DE7758CF514F0980E03E1A0ED2C2B2B9B4E300914B36F6A6E3FEF1BBD2C2486AA49062F11BC4EE04B2FBD2481E474717CB5DD792FCFCEDD3AAF841796679E79563CFDF453F275314E4D7F20F09DF514EEF32A5CAE09EBCD700E07C77A083896F3006742E2D6729DA03363472DC06C9E57F25521F8AAD02EABFD4A0BB0F78ED2CFC9A009369D40D6F417EC9F5C1909BCFAD128969FFEE72362DDEBAF89D34F3F5D92E600E0A321336DE9ACB8159AA4096DCAF1E2BD1361E0C75860F77FB568D1A20B9527CF6C20BD6E05BEAA95E47B09A08A72061F7EF861F9B3702490F7C5655E939D45EA3B462300CFB9F3CE3BA506E2D4F4A3819FCF658DFBFFBA2397784B7BE12BBF2EFF1E2EBD0BC4ED8623981AEB6660CC12004005A0AEDF9C3B77EE316A600625966ABC9000CA0414161E7FEFBDF7A46D5FB56A951B0E5A72C2A59C0BA4EA28E27E6A0D2F016C7FE029F1EA2BAF88F9F3E7EF07BE696687FEEDAB1DE298603692E8D5FA7EF154F88EEF7F187D12D7E91E0FEF078CE9CE2090C00FAFBB0931FB349A0266E5088297005E33E0AD5598C79F87BBFEFAEB5D6DA0F2015E02A85A4D56C5E3F41FD47E26A5EEBDF75E39CFB017FC6030B3EFDFBFDC613558B9BAAE77B5BEEB5EAAFEF3BF9DDB73C2D3FBA23FFAAF266B374C577A82001F9F043E90A071C9922533D8F00491BF1744427809305A79F9E597E5ACE0341D6A848F9AF367B459C415B06AF611153DF0FCDB6EBB1D61E054794EB4389DB9E084BECCE7160D14A71B85D9D6EE6BFAA033B0F6AEADA53F477B765615E707BBB3C121F55B831304F8F824D0A737346C5D76FCF1B3D825CB59BF19DF7BB540E13A1D3DBEC57BD14517B9E07BE3FD422278C9E0D50A0C431992DE7DF7DDB95BD668E9E3EA139159B94CCE1AB4FC22257CF7BF5172EBE3ADD1B7D919846BF6702207E78726731361E0912581367DFAF47BA74D9BFED7A5A5718D99B8C25C8097080CFBCE3DF75C19C229F0BDB17FE10F5014FEBE0035004700F1F52F12088E64DB03A766B62C9B9D59F5C2A6D07D9B7A8BDEFBDCD4819BDFEB0B3CF49DAD15CFE11A83B0FB093517EF5897FC714700B5409D5701FCAD00A58CF9FCC2BC000BBB6F093A7F2DD43B12D81B017835812202259DE3FEF879FA00743849A0D75F7F9DBF34FA444569E9FFFBC763BB57FCCDFB553FE4A45045A6993B6FF260F8D15DA14E688C6C6D6D6DB6702EDE09027C020B42BA7968F0FBB76FDFD170FCD2A53366CD1CD606F411366DDA244E39E51477BA372F09BC8B8A06D4D83F2EEA57C8D418433A8670005358FF123EBF93E3FD51387B6906BE429EB37FC0F1349A9A9AD49C3FE306FC714B002E975F7EF9BF0094479F7FFE796DDEFC053F9BBF60E1E4850BE68BD69666A7ABB77CD4B1000A78AA76024F3B4FD0F933743CD7FBEB23D4080F3CF040A6BDBDFD9B9148847DFDED38BF87F317631FD5BC39924FE3AF31C72D012EB9E4920A00FAB3C71F7FFC3C6CEA0008C1C1D4EF4E9D36EDA2D2D28AD0318B1669B192A89C76551180769DD3CB1258CE0246D0E93BA81E41D72460FD9D77DE15CF3EF34C4B223174171CCE8DB8462F80EF83D427007E4E816F8DF3376BC6F59B41975E7AE92DA8F621D6FFC5CA952BC3B0D9CF4015DFD9D9D9599E48244E9D326DFA39B367CD698897C4E42F74F3C79CEBEAEA45381C727E60C7BE8E9137644FE15E39F8738FD58C7F9D9D1D3F2E2D2DFD15801F823648007C390DDC78F1EEFF2808B066CD1ABE0AF632C0E61C7C0B01D2DA75EBD6DD031B7E3CCAD98806E82B6C87AA5F0F623403C8129C33A3A4243E37128BD547F16F68B0DF6C69696EC1B11D38F66E2C167B0DDE7C1FFC07C6F0ECD2CD708AB6783C9EE7ECDCE355D51F9504E08238FFC9BEBEBE0B9826CE64329D70C8B601B0A19E9E9ED721D5EB11D2B533460711866026B288EBA5EAE6BCC5005B4D68EDFEC892F33EA131383868E27C03A6C274A66813471BF8E39E00D75F7F7DCD8E1D3B3603CC0AE7F782BAE1DCFD09C02F72E6DEED07C09DB4DF4CCE401378A76F1B31973117002D44C1AF6B887132DBD71FAB0F700700FFB6DA869AFEFB77DF7DF787907AFE9C0D0931C85FC9E2C4CD2A2DABC03CC87CC6E26806FCA822C055575D75417777F79D50EBC7416DF740652F7DE79D7786F04CFC01604EB3CACE9864575757E66872DC2608E0596EB8E1860048F0653C4719A2816FD5D5D5F911E6C9D1A2B4E593274FCE1FE9F975270830561F66F8C72D5451B1FA04F87F0C04F090E08FCE967FD4E5FF038E0E200ECE70947E0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (138,1,'Satellite_(24)',0x89504E470D0A1A0A0000000D49484452000000180000000F0806000000FEA40FDB0000000473424954080808087C086488000000097048597300000298000002980136D347DF0000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A0000032E49444154381195C1CD6B1C751C07E0CF6FE6B7B3B3B3BB997D29C9168971A2B151092426C6A668C322119482E4D01C241EC45EFA57F4E841CFBED47B4F82488B45724949AC41301A43B3714BDDE04BC866BA33BB333B333BAF5F53E8A188D9D5E76144847FF3D2CCE54F87B2EA9BF9BC2A99ADEF0B6D53CF56ABD5B8D96C7EB5B7B7F7DEF8C23BDC6AB85F0A029EF39C762EA130E7B91D298EBD94E7DAB05DF535CBB87397E30963DA1B1FA573B9D5B42465954C2E2FA665E4D2F7E9C50BF34C9665A8AACABBDDEE65C330ECF48E7E26A1F0152E90EC072E3BC1C388842411088CB39478B8593E730E1C278A95858B8AC4BECE2872414A31A44409244A182E4B9E2CA63223C325D8B685BBDFDD412E5FC4C8D9C57715252F45B12F44610F4402128A110511982020894588420E04D9649567AA5F70A1F77E3A2D8B4AAE888C52465A51D131BA5E86EDFFD4F3CC0BA669229BCD62FAE55761D815044108ABD38E9224628488F93D078C62E6795D1684821EF77EFD9C312251641F33495AB824E7E517441E4F31164D178BE591248EA2141AB7C2D0DF9065F9BAA66919B55846E30F19B615414C09F07B2E380702DF439C04602C46D073E03AF8EC6173E32A1E6344842731C6C452A9949E9B9B5B04F0FAC1C1C15BF57A7D7AFEFC795C5CACC2B1DAF03C0FBBBBBB61A3F1FB0F00374451EA1071238E85D034956B443F3B788CE31F882806E002B80DE0F6D2D2D237BEEF6F744C138CA7303C3C82C9C97368B7DBA95AADF689E33837D0878001D6D6D6362726263C4DD360B61E02A208599671747484288A56318080019697979F1D1D1D3DC86432D08F0E716C744044D8DADA421445F38C31117D709C829D989999D923A2495DD791CFAB68996DECECFC82DACE361EE19CDFF37D3F461F1CA77BCAB2ACC9B1B1318C8F8FA352A9204912D4EB75DCBC790B5353530882601303709C8288FEAC56ABAEA669CAECEC2C344D43B95C46B3D944A150A0EDED1FE3B79F6FCC31C604224A700A017DACAFAF17FF3A3C6CD8B60DD775D1ED76615916B2D92C3E50F73F741FB02B4494A00F4644E8676565A51484E1F5E671EB6C41559F368CD6F16F0FEEAFEABA5EC37FC031C0D0D0102CCBFAB6BE7FEF46ABD572F03FFD0D5841844457FC9B670000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (139,1,'Satellite_(48)',0x89504E470D0A1A0A0000000D49484452000000300000001D0806000000EC30EF6F0000000473424954080808087C0864880000000970485973000005310000053101B7ED28520000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A0000095C4944415458C3C5585B6C15D715DDF3BA33F75EDBD8C6C64F1C633B08708C01F3B06BD2E020A42A2A1F0D0D6DC3473F5A29563FFA918F4A8D5A55F9A9D45655FBD192AA04A90A6DF9AAD42222448086846003C19897C1E06B6330B601E3D77DCFF374ED639B9A36A10DA6EE58A3993B73E6CC5A7BAFBDF6192B42087A9A4D51DAF4DA5ABD4C55AD525F11858585CB564E8F7FFAD2C4C4E89731674E5959595057573798C964CEC4E3F1BD9D9D9D17E63FDFD6D6A64F4E1695F81A2D3375AD32934C2D733CB75655D41A236455BB5EB6D073EDBC2070220A092B6B2734DFB555DB2B7C676ABCE37B8F707C11028AA2682B6AB6FFD90A6BAF5A565837CD0899660ED5D6965077D7FB944EA7790CA9AA4A4B972EA56DDBB6D1912347A8A4A4841E3E7CF8EDB367CF1EC0FBC48E57DEDC9449678F8AC02BC050B29D0C012CF99E4B8202B2B3C999DFFECC6FBECEE78A12A2D191D00B429CED99C1B3D1782281152BDA2CDB53DED2346D896698A667A75E0F47AC5C5D8F906184E498AA4A224D4DCF1194E0972C5922C11F3B768C0E1F3E4C3B76ECA0582CF6309148544F4C3C579397977B42083F4F90E7854286B01DC703C88048085511A4200D9EE7288A4A86CA13AA425344A0BA6E1A646CC5F36CDCCF289A1615FA6746FA8D378CCA0F6E1E5455E76BD1A8A11A2193345D27B3A81C20350A477301DAA4BA6A93C6C77A6862224EEDEDED2065503289E8791E0D0F0F13224E3BBFFA0ADD191AA6A9A9A9A27BF7EE7D6BCDDAED2FAA9A5A8CE893087C530FA988780A11F66494711147875C27C03C0EF60CCB0459CA5280FB7EE0CA233FAF1A39F17F235055F3F2C13267F2B54065CC613C10908E09048E0E2609479710744DAAE2516BCB3A71F9625CE9E9394657AE5CA1C6C646E28CF6F6F6D2E0AD3E6AFDD266EABDD14F914884366C68A2EBB1D02F2D2B9A87289287776156726D1B046C098C41691A13025809D4E7A420A2248FFC47F3041308E3CA63122A2ADBD22582EC7A553594702417AC5D8A8473C8717DA455A79CBC02CAA46D523483B2894CB0F32BA5E0E719AE9340947C0A8542F299146AE1DAF501447D9A9A9B9B69CF9E3DF4AB5FBF4FB1FE7119E120F025D19089F1D9B43C67189095D00D033C1C31031651430D2063810B0C0C99E4501108A1241DDBFBBE245052F5E23655F50FFA5EAA346486898B53510DB2005ED54CD2754B9E07908FAA8668726C3CB0C4ADABA525A1F8F8F8F85614A82CE02C22E7380E45A3515AB56A156DD9B285325E01F5F64DA1282111004F2513AE90243C0544549D236EA7F99CA32E8F5CD88ECD596099094A4C254EE444A76EA0C654E0D5C02489D2780FB5D6A3E717B79CD0B4441B6E2ABAA1E3A1805C6898A393456ACDB001E278713A4504F023B76E0E886CEF0F9A9B576FC5D8D7192C4B8A8F393939545D5D8D674D484CA5EE9E0CA56D4F02E1B8A92C0514A6F00329205DD7C875B3D269E4CE633088B52FB522F360E138F5075CE8E58B80C90F3B96650DF6F4F47898B2653D915F01A115E0C65223A43C17B2F45A64A4CE0C9BC5E148340F6F353C04480D1203516BE400DCE422269A825506D0F70713131311783E5C6B05757474D00F7FFC36FD66EF51CABA06307852361C904C26C1852B0905FEACDEEDCCCCEF99A29624B9D682D9714E3612CF8B0E55E37D4996B989E000BCE8EAEAF2D9921FD50067002074482182F484609DBAEBBA6C633A22BDBCBEBEBE15CD6903AE35C2512A4646462E3F78F0E0647E7E7E2D64F4759CCB79727272E9B7BFDF4FE7CE5CA2CE4F2EA32E2C443A44AC66CF0BE8FEFD8734359D4AC2CDE0B98A16F8429581E5D043B89ACE8EE9B1237397A26C327BA0BC7CF23B7D7D7DEE6739E62317926C1485CD21C18F363535F114AC6BC5B6EDA1EBD7AF9FE9EEEED62CB691BCBC35A5A5A55B7373739BA6A7A79B392A735B3299A0CED39FD0EA171A289D18A570D822644CEE6CB1A66993367C4FC3BC3731EFB4AE2B715DD713D82701610CC182FFA92148DDC469DCB2B4FDB158BFF779BDEA311B1533E9104FE8C44C2A8B6C74C02ACF72A6702917843A20A52AEE39DC0B4E7DF4777A7EF51ACACDCF47279A696E5CD4BCB3C5EEDDBBD74426F703740F321D076896471284B208061A950733429FD214FFF6EDFE31F1846EAB7F91F5CF3C825C482EC0DBC8541AF6F95E7171F18FF83640C1715C1A1E1AA2286CD787EE972F5F4E454545F2DE6C205464A40119FC53381C4E722D41D3B04611CC06490E9B7D67F0244C2A2D606342E7CF9FF7006E1F08F08A8E782F2828A0C1FE3EF24155C3928381239C7267BB45A4E13EEE763CAE0E0E0EBA3CC71C50F1CF2DF84FE0174C606E3B74E8D01D90883170DE9984072749A75294C112876B849B1C1381631156A7582EF82BD03336428EFA42DEADD333DA00FA2822FB3C83E43AE0A38F55661C04E43A0A2418F8DDBB776506582228E43DA3A3A3A7588E4FFBDE679281DDBB77AF01E031685A401A3439392923EDC3E3F9F730AC135A273819F5F7F73F7A0E597809056ECDD3FDE266A0B5B5F535F8FE4FD1EDEB52E9AC04695A61E93AF06D3A7EFC38AD6BDA08DD67684565195DBA7489AE5DBB367F8A8009CC16AC585402AB57D77F98C9A4B6B11C7819C13BAF3A99848EE6955FB88CCACAD3D471EA63CA2FB84A013E522E9C3BFBD81C18FB37642EF9DF14EBE75AFBD37C5222E355959595B7F959F400F901C3C5CB6B212632D7D8D871066FDFA5CE8E5364815C1235C01B8F81DC8EE0F44D7C23C4845C6F2CA284F0F206B6441C09F629C1339139129C092C37A8A1A181366FDE4C2DCD9BD0BCDE9136CACD0C5D9CEB6425961FCED34A67A119D05A5A5A1C744CB5AAAA4A92C03A49EEDCB052B0CF596792F5C0457DE3C60DDAB7EF5DAAAF5F43587E30415FD8F19DF1ACF81059C82EAA0B81B40F4B7C8B23CE063217753EF235B6D14D9B361193C3DA49D605AF56E7810F5E6D1E9D787BEBE4373036F47F71A1AB57AFFE6CEDDAB5C016FEC9DCFB618B34303000A0F5D2EBF9E38633C04D8CC7D4D4D49072FFAFC32F374E89B19872E81783053F475F4889A7FDDFCED34A68FEB672E5CA869ADABA131BD6AF2B2E2F2F97D1AFA8A8907AE7B97999CD0D8C099D3C7932533E7AFABBC399F0E90A6B3AF5EEC50CAF40FD45AF817FDD76EDDAD5168BC58CF28AE5BF0389CAAAE5150613E1A8B3B4F893B3A3F3CCF8C5EE0BDF44B19FC1FA27BD10EB7CE64B0948E92374DC7E44BDABE7EAE53F7E7AEECC3948239E9B9BDF984E276EE3DE39D44612E01D5EBC896711B56749E0CE9D3B0D709E2500F897A1A1A12EBE84A5043BCBC7F4BFDE66FEA5B1F0BDBDBDBD825D0D056CCC497331F67F00A7E1BFA37077D3F20000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (140,1,'Satellite_(64)',0x89504E470D0A1A0A0000000D4948445200000040000000270806000000BF984E3C0000000473424954080808087C0864880000000970485973000006EC000006EC011E7538350000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00000E4B4944415468DED55A696C54D7153E6F9DD563633BDEB0276C760CC640C08404684305345D5242084B451329456D1AA9AD14A5FDD3A84943D53652AB2E5215A53F222AD22A912A95D09434691A96D42484CD82D8C6313660F0021E2F637BF6B7F63BD71EE3B004AAD8943E74FDDEBB6FBBE73BDFF9CEB977905CD7A5A9DCB66FDF2E37B464CA0EED7BF929C771D6A215A1DB3F7BF6EC4BC5C5C50D86619C4FA552AFD5D7D79FBCD97756573F94E3F54A25966596388E5BACE8DEAA646CB8D4B6ED0AC7B54B5C72F26589F2544D0D1A6652752C53B1AC8C34140D3D92C91C7E7DE2BBA4C90060CE9C079E5414FAB1EEF505144551655951BC1E9FE2F17A94803F2E37357E20C1D0D10F4A9268353535645916A9AA4ABAAED3C8C8C82E5996B7ECDFBFDF9AF8EED56B9F7E269D4E7CC776AC200CF313391E2393941CDB22C7B1D1F00E4DA54C3A45AEEBA08DF6B9F8671829B24D936CC72455C9757BBAF502D7AD8F4E7CBFFA590CAF9EB7EE29DB8E3FAFE96EAEC71B204526F2787DD86B547047907CFA20B5B7B7515151D1B8E1D9B675EB563A72E408EDD8B183B66CD942A6696E181E1EFE21AEFD124E712469BBBCF4DEAE37755DF9924336CCB149F77828191FFEC41818402393260B868211E4D8360CB6D1EF212BA3000C09CF6A944CCB6DD3EF946A4AA7AF9C01A6CC721D276C99B67DD3004CBF73D53272E8BB92242B5E7F8E2F9588953BAE59A76B5EC984FBE34983FC012F0D0E8F5069914A663A427E4F2E85C3E14F181E080468D1A24504FAD3E9D3A7299D4E533018246662341A7DAEA0A0E065DC172D2EFEE22B3D9DDA5A609181370D78DF51350DB6996039A803EE4A18972B39E4F5FAF474DA56F09C26498A228182966D2992EA4AB2634BA699224919AE4A8CD8F5CC8E2C733CDE52E78600948457CDD31477B722A72B555D23CD0316BA69CACB0FC0237E723070F6B8D71FC4DD0A4D0BC974776D1EBDF8E2EF69DDBAF554575747080BD110FF82EE393939B467CF1EB0A39D962C590CC307299148D0E0E0A00FFB4D55550FFC23BFF8AEA53056C140D16C0F0F58C7F713C918B9592310062E7B5B5705991DA6BFCD94B78481B2228115C6756D736C3D225FEF6259D98A7049C57D1F4976B4D9B1472A11DA04E7930D9A29A01D8006ED0C02D800C287631E8C431B1F5E492B57AEA4542A4D8D8D8D54585828E8BE7CF9729A31638600E0D0A143A29594DC41F3E7CFA3B6B6760E012A2D2D0550C1C772A7CD3C022A5732601039011C9847A02E460D3E641BC067A798D0177604DF27346D82ACB9E37FAEDE5229E9C05522585ABABCC826F34DD78D2D01C52455F390A67959BE888F75DD4FFC88A2688201AAAAF398C4B9EBC8F4E8965AD7B62DE9F8B183D4D8749AEEBA6B2ECD9C399372737385972F5CB840897894423941BAD0D54B3D3D1705231E7FFC713A70E0287574F9F13D7D9CA6D9BDD7E7A5446C78ACEF72BF0600D2C9B83866CFDBB639C60C6829DC6B421F1C8820DFCF6C6196F01E1EA45432FCE8550014142D3B40B2B902B1C42E279FD74F06BCCB0F0483B978282DBC2F83F67EC46E1AB1CFB7CAF817ED8F5A0F3E50E2A8AAABB34735D581C7C018A8A384BC641A16A510F3A7DB3A29D2D72FE27FC58A15B479F36642ECD3B79F7889924953B86C54D1055185571914C3C85CEEE73D344591652180973D0D0195C525D7B27013B15638FC0AEEC30138E5CA49DB96FA00CC83E30084C36B4B5DDD7EC7480FD6282AF4032AAAC2F3201F62490710011CC31049119EF7A099B603E37401466F57976B8E9CDAB57871850C357F18698D38F571CB6432E38D8DF67ABD545B5B4BCB962DA3D2B20A3AD93C48A98C45C3C371B02385941803E6560C8355317EC5656A49AE0C10E44C3A29C106098497D9939C30441ACCA424F6FAA897D96E2FB9E6C55715259D18CDBE922C684C94443BAE69DADBE7CF9FEF550B2BBF1252D2436F19E9BEFB48381706C16336C718C496E35B03F50D8E7D18EA012358CDD91805F437C18EF31FB79C5B30D77D2F5C57BB1E2FED614AB3E1C96452EC3936B96FFAF4E94213CACBCBC5B96107E8EDFDBDF8168DE56F15AC2A80AB90585DBB8029EDDA8EA0AFAA29944E25484628F0B99DA5349A1058243491F25C59F41B192F52A97B02638D4F5401389C0168C55EF4AB9981C1138A62CF94A43C41531615213E784403BD4CC3149EF6683E523DA0215455C64505A024E249EA6C6DF95B28D8F5627BBBE34622A177E6CC99F34D185E8D97CB2C5A5C03E4E7E70B81F3701E4F6500B0421D3D32F547E3A38A0DA06D1760435C39CE4D33230A19A63BB1B08930D047A92E42C01162C8B1C0E125E25DB899281BD18958AA252FD77C1D8E4F4F040063B2E1FD04B42809105C351EB5EE46F952884B79782B9A5520CB4E115E8692D5CC475F059857E50B648A343D198420EA0C888DF8CAF50F1F2B2F1B6C1C1A327220825150FF6C4343C3F750E6FE1C54DF88CA4E881FCEE9CC993334128BD18F9E7D9EF6ED6DA0E34DE788AF33E8F014071704D6432600D6B07746E93DEA7D0063A2AA1BB570D41A0685955F45489A56661C18018E84F718B1BFC0FB9D5D5D5DE6351200DBEE5E550A73A0C0836A3C1E0FE0D0CB652DCA557C5F55009C8A7B316679497575F5B2B2B2B21A205983FB8A2E5DBA6444229153C8E31FC462B177E1F50B78DDB19E9E1E2E6EC6DF3F73D66C7AE157BF468CC7E9B96776C0A38E90281E02D397F5866B1C368CC38C4351C65E13AC445EE708C61F597205681CD1BA176910E1C862499223C4D14883A376DFA2A1A1D666572072FDEDAA2CC062813A5D8137658402AA2893EF9150ADC90043C6B902119311DB1ACE0388EBCFA1AA5B0AB01640176A01406E7F7F7F0CE0B8030303211C7FE2FDCFFFEC17149E31931A8E1EA6543C46797979223D721CB3D19C3DFAFB07D006298E108BC713682988A781487193966583D24A46925403E26BC9B28A92418A23DA4C0C53838F6CEC9BF3F22EFDA0B7B777C8BDC164E7532743CC882BBBF8CFAA55ABA4BEBE3E567B19834785AAE90085ABB8108A9DFBC0923A80F120BC1FEEECEC1C9F04319597DE732F3DB6ED5B3430D04F675A9A0400DDDDDD4230597BF02E71DFC58B17B9541E866EECC5F900AE758385231CC6DC306E8020F19E4B60154DE7635C1BC6F73FC4FE0CBE9DB951A5FBA9A5F035D09B786E8F19C6B5660AA113C7B4368A70E8C1636F8642A13F43E9DFF7F97C12C73A7B980D6B6F6B8577FBC8E70BA0B8F18B17718588FB517D960940F8B3BB77EFE64A3217978FA29D44DF084048E27B291CA7F12E68A2E9003076A2CC2CC57519FD26C01C42389A3733C7513FEB54780C246E483B12CB31A3CEB97704E9EE8369D3A6AD60CF6601E07DD3C913B460711D05F3F2C9469AE609124F8826128E8FF95E84D442B08B05AD1F0C30709F8D39847D13C3726F0900D701433064CD9A357F6400B816C81ACFADE34C1B55CEAB41CAF592641BA28F59926D5C2C710AE5062FAF643CA0E6480364816193BA82234FE56A90DFEF7F0D35409A8B9E890D61417D88F10C048FE4D198CF02C400B01E209C44B105F6940F0D0D2D0390FA548C714A0178E38D379288ED835702C06D682002030D4A607EC0C297153F6E9C3AB3A5346FD86FF0B1688C89F0646E2A4DF106005E8357D764E93F510B5C143D49549A29B482092070EA440A1D7F07C2E07EEC5810A3A309FFFF8401BC219DBDCA0ACF5E67A1CB1E7353904898053D91015126F35A01629CB880426135515B0AC188D5E170D87B8DD47C7B320053DC208CFD06AAC6E59C9B11D3B9484DACEA9415C559B366A192CBA1AE4B11CC376C01C2B973E7886B07AE0D266E60C10A88E25F7118BFAD0158B76E5D1886FC04F9E0EBDDDD17FD5E085E30E017CB599CE72168C2C3BC3072F0E041AA5B7A0F858A2BA8A5FD1CC511F7BC4CC6F3862B37844C020C51C674C0BD2D01A8ACAC7C14C6BF022F8B6570F628CFFD3D1E34ECBD984AF3129A24AB6286C86A7FE4F08794136AA1282AC37B1654D3A953A70853EA2B2BD238324A3D42C1984CE327150018F465B43F71098BC18A18E73DB751103CE371CEF477A5E92880428211B19161FAE8C8FBE418496A696EBEF2D516B4E30F78867F4449BA93FC4B8E3459EF83F7DF837A7F7EA2E12C7A3C1DE64A8F733F03C10070AEC75C422C8D279219DAB76F2FB59DFE584C834DE372F9CECF5554541C04A39E45FC9F80408EDC6876F73F63000C9C915577363AABF6EC750682016110B88F7F11E2F392921251F7CFADAEA4BFEF798BF6BEFBCF6C0125E607BC9802F15C8C50C9B9A2CABCFD0040DE7EA9B0B0F005AEFBD9780601D59B98DCF09ECFD930DEDADADA68E1C28522EFB35D5CF16DD9FC08A98A44F5F5FFA6D5AB578B4A301E8FB34EF8A1015F056B1AF0686CB24198B43A00CAFE5B78DA6183B35E640A33180C007B93D31EF7F36228A82D5682991159B66CDCF808FAC3FC0389309ED709D0DC27560E54833521CC3895DBB614E6F9F9D9B36757C14037FB0B5056F0B2951FF773895B555525006160B2ACE0EBAC116BD7AE116B0163C6679EDE7071E00B77A44A9F9A1B9B0F2D5026BB109AD44A1003AF6F6D6D5DCBAB416C685660B333BBA6A626426124567DD840A63EDF93058BEF61701C3316FBDAA2EEBE9D1BCF5BBE26F75FBFDB1FFAFE6F9A03EFF6F6F69A939D0526BD10EAE8E8D80B719B555BBBE018285E905D22CFAE0DF254373BC9614630180C04E77EAE12B9482A5133AF2E8CA4CD939DFAD1E6B8F7D487D19CD648E44262B233C0A4A6C16B54847E78F9D94030F4E4DD8B16E4F17710C3E321C11B4F7A9829BC7138302B76EEDCD98D14B91521D1028062E8B79B9B9BEDA9307E4A01E06DD3A64D0F41CD0FA3D8794892946D256565F32BCACBFD9AAA2003A8C2684E933CF1E9E838EF1C38B07F17C2E0A7604537263E23C78F1FB7DD29FE2F2C530A000BD6FAF5EB7981B210AABE0B4A1E445A3BD2D8D8D80AC19B91975730379E8C75A61289F7912623309E633C8D5837A6CAE3B714806DDBB62DC6ECEE308C8D20436C408CBBF0EE19507FE8D3E6F553EDF55BB62002FA5F422DF00AB24213629D7F8F93607CDCE51F026F934DBA55608FFD3AFB5FADD8DE8AED3FC7289D2663EC3BED0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (141,1,'Satellite_(96)',0x89504E470D0A1A0A0000000D49484452000000600000003B080600000084D18F0C0000000473424954080808087C086488000000097048597300000A6100000A6101FCCC4A250000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00001A4F4944415478DAE55B09741DD579FE67E6EDEF69B1B55A12B6E47DC70613969098CD6C095B4DA1E0B027262929D0F42487D052E224A714DA2C276DC3499AC0490A760A384B4981938425D80683C5E245C6B22D6FB26C5992B5BFFDBD997EDF7D739F9F8404C1349182C7BE674677EE9BE5FBFEFFFBFFBB8CE1388E8CC7CDE07FC3986559D6755EAFF70C3CE70C8FC723454545F13973E6EC2A2D2DDD964C260FB2C462B1B75E79E595B63FEAF3605BB870594532E9D4DAB654DB4676929DB6A764B3D97ADBC9D6F8FCC1BA446C206C3B99886367028E93F166ED9465182589AECE3723787E7BC4EB8E05015555E7464A4A4AEBE2F1EE72CBF2977BBD9E0A11B3D4B6ED229F3F34D1F224E774756C5ED4DFDF3511EFAD01107DECF3F964D9B265323030208140401289441AE5B1542AF5CFEBD6ADDBF97EF75FBCF8CA52C709D698A65369DBE94A478CF24038D210EBEFF1DB76B60C80563AB65D95B5ED0922769198463018087A9389A8E1A84770C4B1B382B6425CB9F778BC924CC686D4B14D3259D9DADBB37EF2A8C4FE290868683837609AE6539695BDD8B2C4F20522629A161ED016BF3F2C1EAF4FEC6C56CACBCB01EE5169DCB40E2F60CB48E0EBE3DB6EBB4DD6AC5943F001E862B58FC7E3363CE296F5EBD7FF9733CA8B9DBFEC4B7F93B193FF0A807C0A448065991E5CD89664621880D8673369B1E0793C97CDA6F3F52441FD77B2A4430CD3945432AE40D7BF374DAF1C3E145EE5381BBF36260418C6126F4D9DFFB1805F961B866379BD01F1FA02302A5B4C584C004438B6A3009836A3464CE990CD9BDF1E11F4C2BA891327CAFDF7DF2F77DF7DB7ECDAB54BE6CE9D2BD5D5D52480E5E8E0E0E0FCC6C6C60EA25448C4F9977CF9B16C2AB1C2115B110CA950FB40282CD1C1DE7759B5B662AF3F28319CB7B3194542AE64D5DFF016F1F9E185F1681E7C4772CFEBD8C5D2D7E75990C96C6C1AC92088CF1F8500806455579FFE88CF6FAF809B5B0418D2A2AC5E49088E3D1E1FAC0B0FEFF3C8D4866249A77BA5B7B74FBDD84816AF8FFD7EBFDC70C30D525C5C2CF7DD779FBCF3CE3BAA7EC58A15B27FFF7E45C2912347D61E3D7AF433D8A788C3C28537841C27F5B23FE03D25EB82AA80C2DEA2F7810402686761F136C177545D6EEF80A09044FB07708ED223CA6BB4A23B64D330B2A8CDE05DB37859FC266DC3E040035F26DB0F2271FF4C00F5F0BA8C07B1C1B4B329C3E32D4F7C280266CCB8D41F4D467F04002603268F6979AC60281C8847A3663A632FB00C5322452532188D8A65007CCB809C5AA89BA0F4920F396FA609500D79E185E7E5820B964926931915FC8A8A0A39F3CC339507BCF4D24BF2F4D34FCBF6EDDB65FEFCF9B260C102E9ECEC5404ECDCB9330E226742F6BA484269E9790FE3122B6D051A4C569CA4639829E096320D33EDF37BF10C3E23934E0230876A62D263716C198E0D7D72AC5024E21B18E8B5C09289406BE619A00E194E6E8F0D1008AEE37A8FAD3C44936DBB7BCA16CFFBFCD353C74500C030A7CDBAE48974AAEF4A68A765D2C2212D16AD3A4BEDF3280B0F0423928686024655C7F3A110AD3DAD9C744A6D56AA2B83F2AB5FFE5CF6ED6F9555AB56494F4F8F0251838F0C482291884C983041CACACAF0FB90B4B6B6CA73CF3DA7C06F6B6B937BEEF98ABCFDF6162D41D2D4D44422EFC0EF9EE8EAEAEA3BE5B4DBA1C1D9BFC3F5FCD039756F926FE3DD0946280C091AE8CF4B4A5EC73560307206FE786CF0189836BD2593FB0D258981D88B58014F2206AADDBBCAD0FA4C7AEA6B1F98804975677FCF71A29F17C978292904351008AB9741262396E5113FFEF6587EF550941F788622C80BE949A7928A8C59D34B65F1822A09068372D75D77AA2C62E5CA95B27CF97255A734162F1985F774747450569882CAA143871027362BE92101D7FCE55FE0FA5E3970A05581CF60BC67CF1EEE7F3769D2A4CF974E3CEFCE60387C2741CBB860516A60C58A09821608041103FA5D2B768B0B1249807740A21884337910ED0219D3C7B4FE5432E15A7BCE0394B58FE001A6E993FEBE9A07FF6002AA6ACEBEDF90E8570D33E327F004D1EB0B0270B85C262BBA8EE0E7B2055A998962C1C24A941565D3F070B7DD1DB75F2CB5934A05A9A3DC74E3671491B367CF96EBAFBF5ECE3FFF7C955EF6F6F64A77773702599F40D301F2016969695181975E70E515974A32950111CD0A787AD6D4A95365F7EEDDB263C78EF8FC936F583FA1BC7AD931B7CF0192C9A4DD809A913048ED3DDAA98E69D18EAA67DB4C3EDB09854332D0DFEB026EBBF5B973EA9FC330003235016E9D6A5760F1B6FB1C2AFB0B54C9D1AEC0F2F72560D24967DF654AF28164AA37A864C462F1AA6C86190C01364102FFF678FC7909A2D5E764280C574BAB76865B6F818415572FC0794369FEA6D75E965FFCEA3999366D9AD4D7D74B5D5D9D5456562AE9E186AC46E9FBC1830715F025454139EDB453E4D58D6F49178841EAA908B8F6DA6B716F53C951674FB51415570DD35D3B07ACABCDE87F28B0281BC72CB6D0AAB3002A20F1E8A0FA9DEDD879126D9724DB3D56F2C334362F63C7FA02B938E00C9120CB3A095E67D58E4A4045F5C7AF739CBE87D3A9DE1205B26BB994121CA818C43A5A3425287703C95BB81FA99BC7F2490AE0E77E9B6BEBD8A6B4EDEF48FFF517CE80CD381E1240D206FA0EC1B2F74A0631AFBCBC426539D45D9E8FC5A220312EE5138B91910461E1076477CB7E053AC167DB9B6FBE59F507DEDEBC5D56FF6C2BC3E131409D9135B904C1BCBBF348411BA700A89C0C85224578B61ED7AAB534690B77DC4C280B430B214644DD3A6784BD1CEB3BE0DFE040E87036DB58372201EC7617159FF1135FC839DD319C691012A2A72425182E82DB277115155A15A821D425A0BF6268A0D10EC112B822D5A416F10A96CA8078DCBEF780F3B1538A06EAEA42C5045F9380344E2ACB42A27BEDA6090F816C2552694851BFEC6A69853744956C11784A0EB3A26BAEB9464A4A4A54EC58BD7A9DAC5DFBAA7A61CA5EAEB32479308E81F6C7E8FFA88B2205CD0511EC758FCD718FD36811C35F0C38CF3ACEA62F8F48C0A486A55F75B2D1FB1C27AD64474B8A1F41D4CE9939C8800C2187F6C1D219DCD8C670DB86C2C56E96E00CA94F26D3D2B2756B3A136FFBC679E7359403F83B19643501DCEB4270B927D83C66E1310BE30ED3CEB3CE3A4BC996054F6BD9DFA792808ECE3E04E1C312C3750D4825B2A02EC8668C76651A0E28E66082C134931E68C078BCB1D80054C28675B8E76DC752F605778531102313E41AF104FB0A598375C4D72ED0F844CC680E07DB5FE14338C49BD6EA265CEAC1003E4A27CA9B38F73ADAB422A1480E21A072CA276E133BFADD6C3A1AD1A0AB94D2EBCF759C5C4095140178EE49880699B14169663C817A23274756EE5CB43F2A8347DAB2E72E9D641D38B06B1B34FD89458B16DD8F406B319564FA391A09DC988E22AB913973E6C8AC59B3547C60A04EA77DD2D834083D4D0E91171A5E001EA1D2CB42E9B187CA1033A05874E0DD1235AC9DCFE71712A0EB15F8B6962D4B0E1D887754551D7E7C9890105FC3F5B814E2D311546DC6BE09F2DA896421A308A8A8FDC495A6117F3419EF2A2D04DE70D347C60045139508C42AABCF303F365DF01907428AA80C523C92C5B4926321BC46E7E10E69DBB5E399FA29B1FF9D3B77C68DC8E74F07FB29DCBB070F5345AB8EC5622AE5A4B4B0F0B998F313E8D2D25295821270164A0D4B5F2C2CCD7BA2EA5972430BC7860F8A8A8AA5B7AFDB0D8AF690A0980BC27C4E2604260C263A346B51836D2EF8E2A836267AB8C944DC8D032EF04445797A44FABBFB7F535EDEF5C448A39E001D76EA64B0EF46D98763D85C5B14FBAC515C76FA3A71BA3FEE48D6606AA57C86F93DDCDAEB635663E7B317663A7E145429903559C16051EEE55C42743DDBEDDAB2239D49747E77E2C4CEE75CF734274F9E7C614D4DCD670074950EA42481F97E189D22824B8B27D81CA0639065B6D3D03055BA3A3BD4F9B60E1F321D53C5099D0E528229BF0A5864250910CA38E0B8F52A2AE407D21C9528407E46B57A9DF1F895F5C7DC6CCA191AB4D1A6AF272076A6FDB39148EF2618549686AFBBC6F0602717CF4C444449E29AFD30AA28ADDFC9B9C7E95FC7898B5026E037A5F8F104CB637AFC012F3377E1D806070B6905C170102E9F02B8864A3D99F7869125241094A9CB5AEB496022969643BB5B8F04FD3DF71515F5ED26F0AE1ED2223270C1504343C34AC8CC159A04BE3007D5AAAAAAF2FBC3870FCBA64D9BE493E79C278B169F224FACF96FE98ED6E18102C7C674DCCC250798A37AB68303BD4300559E80F66A2C289B038F4310D1C101954EEA7AFB5DF97B4ECA7232E5BCEB1CE361C7214F7B55E5FE33814137DE23E3BEE390E00A021C18958377CABEF1C61B593D38374A1674769148B40C17AC308C6C256A2A505D86FD448EDBE3E638CECE0401D5909A62784B103265A6327C284391E6F7A5E275B589D707077B9A202D9B70AD83CC10E88A7818BADF00FE4E4C9932652D0858421298EF53E75127F012D5DBDDB973A72C3DF77CB9ECCAAB544C78F2A98DB27B6F8F0BC4B10E8FEEFCD06B08347BAE8592A2BCC370ED12D884C31158FF603EE3325C2F6213BB80584A693A95C8F70B48B2E8610A75FD08F4BFFBF1D2D2FD7721DE33BBC9E6078646CC9386023E6A1A8A9D67C284093E001744F1B2E0E626DCDBE21EBF4395A53204005C0D99B8F4A4934E9A535D5D3BB3BCBC72726969D84B4039698207CB405EF6E2781B4A2380FC1D3C602F7E9F4087EB6AC8CF238C010CC61C4E18BE7DFAB2CBE5E6CFAE5441BA69DB3EF9C6FDABDDBE85A1B4D974355A8D968200F6C44D8E25A93AC91D9B2AF7112A16EB42882D1CDBD16A61E407D572BD5CC71D8EF007FCAA9D1490AC3CCB3D1F8F452493ECBEDEEF3FFC3F4824E2A3CD7C7DA0F9009700133AED05501E0064F9FD7E137A46F00D14B5874B99EEB1D276971C0BED66435ECE41B09D034D9F0DCD3B09AE69900C16643E89FEFEFE3741DC3A5C7B23885B0D0282EDEDED2A100FDFD8217BF83F1F157F30A048786ACD2F65A03FAEB22E965C47D1E3667BA6F2C20CBC311E4F4A7B7B87F4F70FC2DA93707B3301EC3C36D24C3CBE49A7E0BCCFFB7509148924D9CCF54D1491566E841652DB55597960098CA91D3DF594F3013B18A3F6845D128C534F3DD5ECEBEB3300AA01B04C7790CCC09EA0333B315D52541DF36512052BF7D06B501742DD92DADADA8F613F1FA4CD47DB0AED1D2C202E8D3A2F3C458DFB8CB4DD7CDBE7E49CF32E505ABD67F72ED9B77BA7CA9218B4F94C248E8FCC67E2DF7A7882B2A58F472AEEF0770224C6D0B78923CB43F1260DC3934249B293CEEE088822695E40E201C15E8634BC2E7EE36C88440EFD3B9EBD97F2FA814796DF8B30430FC6BB7F8ED64CEF41165FCA001806A4C40438162CDB0BEBF1B1A08D1F60842B2A2A16A3E77A2AFE5E0C8016A36D984071F08D99D008CF219508C85F7FE05F14C04900D7F8EA3A35394312D88760D6A483F94820B31ECFD2876BB581EC410E313116A1B4E37C27EAE26E8CCAAAF410A9A3FBFA4A6E45299961152413F0267B1F8C672BDE77FFF1C8CFFB12F001E7088C518831EBEBEB4D58BC07807948043CC9CBB179B714B15F00ABFD365EC4C7592D5E8A2ECFCC2AE7FAB9F2B92F7C51A6CD98A92CBC65E73B1243278B04F01D3804CDF624855EC17E03FB0FFC1D07F0DE7EFB6D964E6457DF427B58B9916236E6829D75938314AECD0E133D3293EB477182C624F016F79458F7BD38DB7604A515CFD0ADD3CA3123E00F204649DAF4E9D34DC80E638A17D6499922093E78C5F760A557102C47F5AE8F01AF89983E73A65CB3E22645C020C03FB86797224017023FFC981EF5FAEBAF4B6363A3DA23B1F82748218703BA69C50412F723E069DC2343E0713F962C9E47E54CF02E956C900CC63BD555425E8F1287E70E70D6ED78ACFF4F42C07B9021F3E6CDB3A0F92652470F24E95200FB04F37ECAD170EBD744ACB8E5731241C78C241CDEBF473C088885248C4400FB1124807B48C633E8DC3D0020DB703C08F949E3FE1978A88DEBB330E8DB38970786F1AF70CF78C7BC1ECF6C3735356565D8E4FFB825E0BD084126E4AFABAB3BD8D9D93991A9E84812C4326FE12259B4E474158C39CE93414F9640B3773C12119C4923F0E8FCA83DDEF728B2BBCBB1DF8DEBF52173C914E4ED1F180CE74302688C97957124E39C73CEF90ED2D3BB504694201606DB659FBE52F540B31CB48BF549D01D1FD2A0171E53D2083E3D807B6E488BEF467C588BC3CEE3491DFF5FDF7B3C2D4DBCE4924B66C1FA77701A7224F9D1C7B3E79F2C655593940C493A2991A02F3F40379C004E4F12FC37DF7C53CD25730389CF4186FE161ADF8A7BC58F57BF3F720470BBECB2CB364036CE1A4D8258C7B199190B16AB8142F64A2B8A8E8D900E2781A0BFF5D65BCAFA77ECD8A1BDADBFAAAAEA6210D80CC9EB3F9EFCFD234BC075D75DB71281F8073A151D8D88BA86195CD2A0BCA0A2382C65134A860C55B3F0DD987ED2FA4902535CBD21487F1532F438EED331963234EE08B8E9A69BCA200B9D00D6184D82583857EB0997AA601C42EE3FABBE7608013CE64A0A7A80DB07E09854FE3EC8725E44FFE38BE8931C7727EA234900B76BAFBDB60DA968CD6812A48F4900E78BE905A72D982DA525C543266D3892BA65CB963C09EC0DE75FDC3062E87B5C8C94723B176F8D950C8D4B026EB9E596A76099CB47939F7CBD2F205DFD3145407DED24593867469E000E4170851C09D8BA75AB343737BFEB3E90A1AF2397FF31A70AC74A86C615014C451103EA90A5DC0850BEC9593202C9A16A76CE083447463959C3754324A1AD7B406289A4782D8F5C75F1B92AF092000E4D70E5DCB66DDB14015C57347C830C6DC0B556E29AFBD17E4C64685C1000D04F4240BCDDEFF7DF0650AA59A74734D929E3C829FB061C29E5C01BB59DE49C76DA69321BD9D0C18E2ED5FEDCB33E26F366CD506D99F19000167A826DDB2311B00544DE8673BBDBDBDB07382E74421100E0CF2F2A2ABA0316783940B3A2B0F4E2A2A2FC8A0776BAD4A2AD81813CF8EC23900006548E9EB26DC3ECF9326972BDD45456C8F24F5DA8962E52FF3509238DB072C37D5F401CB80F443423431A9338302604705877EEDCB9CF783CDE0B3300983D5A356C9CCD88CFCB4E5548FCFE80FA3285335F5C42180E05A404419664504E480081D5336835931B64FABC93E5E2A567495747BB2281BA4F2246DB40DEC3C5C5C58F80E416F43DFA4F080F40D0AB47FAB71D12122498D4745A3AF7FAB8B0704E967BCB5D979448C4253638807D4C7943A175979455C8B9175C245E3BA97AC02481F235D2866B6E83F5FF230E9B407EDB58F588FFD4A3A1812953A61C867470F585029CE3F77A4FA0F5DF4349F0A880AB8A3AF6492F246957F33BD2DA7A60C83C724DFD34A9AD2C933D2D2D4AAA46798E0118C13DB87623AEB91719502FAA331FF92C082F7E6B4D4DCD8F99D568ABD74306045E17ED0D9A0812A00B53500654F66AA7CF9C2D2DBB5BE4F72FBD001262FA1E5259532747DA5A477C06C496A3909E6FE13E1BF1E76ECE867D98F1FC3F2B02AAAAAA9EC50B5F4C90B8D88A8196A06ACB676150652924A2D00B1894F991063F57E235B825D35979F9F72FCB6B1B37E41661B973C3C3B78686062E7DEF6C6969F90ADA6CC1B3EC1D2BED1F130260FDCFC382CF7327F3F3ABE0F4D0013D4103CDBF093EDB9010D6EB09775A3F17E7EA8DF5F48A8DAF35CA534FFE6C08F824A3B6B6567D77405219EC914DFD88057FEFDAB76F5FDF09430040FC2B643F6BF4AA6776A80A4730F52C962686C7941C82AE25888195E0F39C065F134370D7ADDF203F5BB35AD54D9F3E5DAD9EE6EFF404BDDBB7E8441675333C6B0BCE758084F4093118076BF49C7CF2C9030CC6048C5EC02F1E0B812F72FB01DAF249849621663CDAFAD98ED64DCBCFB869AC2EEB376C90D58F3F2E4B962C515255087E0109F7E277BF403900321227CC601CD2D007E1055FA11C300DA534106C0D380BC1A5BEF3A30BEE490EC1FEF5AF7F2D575C71853AE63A20ED199A00FD911ECB238F3C2A070FB6AAE5ECC3C1CF6612C9CBEAFB7EF86473E4A763D907181302005E78E1C2857B2B689A726CDDBFB67EED019A045DC74135B6A3A45096B8B97AAEC8501F84B832C442A97AF0C107E58C33CE103DA6A4BEAA49C5E3DFBBB3C3986BA4335F7A74E2756F74075E8397F51EEFB2923F3B025C12428B162D3A823E4184430C04555BBFF6040D3E8F69F19C50BFEAAAAB1461FC5B7F2DA381E5F80F89E0A01DDF89F50F3DF4905A1BA4DB5846ACEBE13B3A9C868174C50F7E13F9DA82702AF5F79B8A7F18AAAAEA6F6A6A3A7108E0868E50F1E4C9935B017E31258429E27029D2452D4FFFE427D5B702CC90B4EEEB4F97F4F705EEEA37256D3CFFFCF3CFCB3BDBB724E7D5C7A24B67F57A2EAC884676BFE969DC79D4BBEEDFF694AE194CDA6DF09ABECECE4E4E143827DC7034002D82176C4136544F02746AAA3D8185BA4E2FA194A86F10DC1C5F4B4E21119A040ED2F19B622E6FBFDAFBF48EB3E66466BEF45AE0270BC3C94B7E7E2872EF4F0F96BECAE5297A51D558813FE604E80D72F4C5AAAAEAEFCE9E3DCB6256549892723C7FE9D2A54A7AF4648C880C21412FCEE51C00C96280A7B77CFFFB0FF73BF1DEBBEE99D933F5DE6D13562F2A493B274F4C998F1D286EC3F512483F3363B92262DC10C06DF9F2E5F7C06A67D4D64EBE71C992C51E12C0C13612C22F650A67C6F47A2E5A3D3FDEE6980FB321F62B721FEEA5956CAD59B3E63F1003D6A0FD01FCBE97ABE0406A1601D776ADDE1EEBF71E37045C7EF9E521E4FBDF58BB76EDBD3366CCBAAFA161EAED955515E5A79E720AFA01DEFC601CC1D7F301FC9B33630CD8DA1B08FEFAF51B9C679F7DE61190F823B469435CE846B6C475A0CE58CACDB82680DBD5575F7D139EA779EBD6AD6FCD9B37EFDBCDCDCD2F76F7F65E346DEAF44F81902ABFDF6BB25356890C76625999FAF2854F4F4FA1E6B71D6C4BEDDCD9DCD8D3D3FD10C0DF8E537DD4790459EABC3D9E801F9704AC5AB5CADCBC79F36F11781703E83D870E1D7A08127215AC388254F20D04D5571160F941C82458FD82E292093503FDDC7A5F4700DF00F919841770582181F3043D05B9F9508B674F3802366CD8B00B32331520271128BF830ED55B8383839DFCC80FCFCAD99724759CED418AFA3A47FF9E2B964182AD357E3C033F2E094020BEBAA3A3E3491E23155D0B6FF8079011E1172DB0EC0EE8FD805E0EFE5ED719EFA08F5B026EBCF1C6F908960FA0237529329F4B5E7CF145CE58F9F8D50ABC21E67E5D3FE699CB479600BDDD7AEBAD173DFAE8A3BFD51F7020D524E8D98F1AF8E39680FCC3157C77F6E7242B1F64FB3FF7E7202373868E600000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (142,1,'Satellite_antenna_(128)',0x89504E470D0A1A0A0000000D494844520000005C00000080080600000086130E0C0000000473424954080808087C086488000000097048597300000DD700000DD70142289B780000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00003AF74944415478DAED5D07605455D63EEFCD9B3E99992433939E1048680955429122010958168115140B62FFADBFBABB967577D1DD5F45DC75577157D9752DABD8B060A1F75E4312080910427AAFD3CB6BFFB9774A26805B145877E1EAE5BE79EFCDCBBCEF9E7BCE77CE6D20CB325CEC79F2DCFB0D00C05E88BFC5C2A5041A29D017C1902EC4DFBAE8017F6AF1FB598204FC85FA7B97249C95666CF8FC2FE59700BF00E9AB4D8786A25AEDBEA0F57B31032EB1EC635A9FF4E925C02F40EAEC748E6365E85AB468A1EF12E0E7318DCD9F73DDE2A57F7BABD5EE7AADA6AE7EF9053719171BE0E3A7143C6DF7CAB72F59FA8EEED8B1634F330C734131E02E26B09F7EF983FCCBC78ECE8B35EAE07875CBC0C2FD7B0F5D28FE7D51021E63303C9E9A100B033213A0DBE5851863CC4B17FA3730C4DDFC6F4C43F30A0627A525BFFA9B67170DF5F87869E7BEE25D1D1D1D737272870091F09AC6F60D8FDD56507049879F0BC33865F62B268BE508A3504F7DEFA32F0D20CBBAFC3103E7B4D457C1EE9DDB61F3D6ED7068FFBE3FFD3B7EDB7F95844F99B12057E6E4757AA3293936D60246B319F4861850A9D46088319E18DC2F35C9DDDD1CD3D8D40423464FB0975634BEF8F0CDF92F5C02FC3BA469336F79CD1710EE8FB32632B6842488B72640BCC50A669311F43A35700A16BC3E3F74763BDB620C3AEF808CC4C418835675F050E94B77DD74D5E39700FF27D3FFFDF6B54C8F3BB0ACB4BC7C9A2F204342722A2426A54042522A2425C44192C504965803A8551CB83C0168EB7442635B373435B7417B6B1334D6D58866459776D9B265172480F51FCB529E7DF65936CED6F76105A3FC3F96E1FD030664DFEBF5066E71076022A7548152A5028D5A0906946E8BD900B1263D34B7D9C1EDF5D3F32A95125896054EA954387CBA07F191BFBF04F8B7A48FBF58959B9639E44DB7C733061D971583FA672D038679CDEE74D61D2C3D71B7D7EB59EA763935DD0E0DA8380E02BC08CA962E54293C74DADD60777AC1E37683D7EB05BFCF077E8FE7EE0B05F87F944A595156A6D2D5753CED717B9E42B0DB3C1EDF03B983FBF773385DCF38EC8E676FBAF147BFC3DBE4DB1E7936DD6CB62E8A8B8BBF2DC6685668B51A50A00EE70591026DEFEE82AECE76E8686B45B5D20CDD5DEDF265532E332C5BB4C87309F050DA5F746C9CCFED21523DC8E3F1FCC59A6879D9A88D59EA703A321C6ECFFC6BA74F3C74FA776EBEF7A99C40C0B72125233B8941F5210A02F8FD3E40E90787BD1B81EE80AEF63694740FE4E60C7E66E587CB9EBDE8554A59599981E30CCF730CF300AA8F530C0B533232528D5A8D7EA7C0FBBFF47994B3116CF7D9BEBBF59BBF0DC32249A33735F71F3EF965491226F381C00404D84840F7B85D917B1D76FBADC4345CD4127EE040D90C955AF5865AAD4AF5F9FCBFF37ADA5F1424CD73A8226ED06934F70C1E9CF97763D9C9C9C9AF6325FD0F1E3ED9D0D0F0227DE179F3147DCB1B47C4C4C4CCEA97D9E7698FCBFD6A9C256E487656BFB13653A2EDFEFBE7BA2E3A09DFB4697FBC4AABFCBD5AA9BA5506B95896E4395575F5A25EABD9A9D340BB2C8AC310ECBA7FF41C51149F512814BB9A9A9A3E0C9F933FF944C4E2E0BC79779D4AEF93F17466465AD5F1CAAA1D2CC3E48B2C7F1D5E3BAF21DB1F9C6BBF6AEDD61B25462A972479AE0CD25322EF185D52567E05FED05D0CC08713C68F989C97975BF7CF3CAB05536363E3FBD88AC5D3AF7DF2C99B9D28EFDDD8C0B3395EBF0A8F9D0C23DFF86FD3E159432792CAB8B14FD680F9494929FD13935263E21312559C9213650968545396249024C983B906A5B04A96C46A4116AB6451A8167C52D9F34F2DE8F8677FC8F2E56B52D57AC5EB6A95FA5A7CF8760184BB0B0F543A7446EE1B8D469D8D7F69DAB4A9E3F69C63855A495EF5E5971FF5FE7AF1D295E47D3FF86055EC4D375DD375410147B0CDE8107C3CFDEA590583860C0799FC87AA3E32A04542D9A3C70470F259CA44D02763064E124925A0E321C9CF2E5D5186D7B609A2B03D20F2DB96FC6C61F3D95EFBADF73EBB57A554BD28CB2C79F67D0553C72DFBEDD2BF5EAB556BDF9265C57AD1CFCC9D7DFD54C7397F7B99023E2AF82B18A2766E6554CC8FB17CF382013E70647E361A9A55F3E62FC8CECCEA0F61A34A013F0D780AB61C049F1C13A043524F322349620E96394A51BC5F25A9E1D9573FAE1005711BB682ED9200DB6C0659A3E1946FAA34CA89F888AF41E0EFDB5A5DD659B2B8EC35AD4E730B30F0E0EDB7CE79EF7CBDBC0C0C01FCC78585854AD9D7B14186D8767C9F1B2F28E04A25773DCB32D97DFAF60325A7881286D381EF013F02BCD41B7C31027E50EA2551CCC6325B1485BB18DE43AC9A2C28147E9F9B5FD6D664FF6DA0BBD1A2D1EAD6CB1AD925338A910FDC7D53E57935604109573475BAFB2C5AB4A862E91BEFAF6080B967F5D60389574FCE6BBE2080ABD59A346C5FA043EF0C0BFC9F394D2A28E2E4FFA8317370A6B4CB72086C3904BC4C81F77BDCC0BB3B40C9C820E86218AFA4D5F08270AF10F0DE2B310A19384D995B522F690747FD79B7D00A2AE1200B72161615F85244ADDCC709E25C2C979E779672A0B432AD7FFF017712606A6BAA80631534ACC9712C957692496C42A5E4401DCE2A258DC469D41C0D0A91AC3D23AB40A364C1D9DE085D8D27B07644D0C4A50067B0028BCF6FABAF04AFB3138CB6744663B4E568B4864F8D81D8E62797BCFBE613CFBF954F0255E7E3E52559AC0C8140008787EEBB65271675701ED94AAF17E103F093D878AB13D50A6CDDBC01ED08D0180417CE51C053F095047C456FE031AB09F82A65A402BCEE6E282BDA03ED4D7560B6244372762E184C667074B543E9811DA8C654D067701EC4982D802A05B316B45A9D59A7D5DDA9D1E936070CFDEA9E5CF2CEEF1E7FFEED91E7F2E58D4AA101E5DB2F334C56A401037C84795C515179C67905BCB0F084A5B9ADF3EE384BF2AF394E59D7D9DE0E470E17033A0498D9602813B3221A786518F410F0AA20F041B0396CB13294161F80C2DDDB4181AD65E8A871803413F41A0D1C3B520845FBB743FFC1C32067C46830E8F540824C04EC20E8BA68F093755AFD6368480B7FF1BBF78F3DB5E49D5F3EB5F8AF59DFF7E5516F4BA834AB2024E194ACB094AD30A20C379C571D1EE0D40F37B7763A398FF8678EE33CC854FEB261DD6AD0EB743068F060049CA1E013A96768193A0E2AFA68254FF5FCC98A93B06BC736D4DF228C1871190CCC1942DE23A2DB33D128A767F4015B6232A5992235B2588A5230E367811E8BC4D8D2128D2D290760F96B643BBF7EFA77EFEDC77B96FB05FEE33FFCFCAE96EF884125FEDCFEE10F37FEF8AAA2F59BF61C6718763E7E5C725E6229BB8E1F8F69AF77D5141F3EB964D1A3372C2617E6DCFC3FEFB677742E2006F147B366436EEE9008E83DE09F09BCDBED82D5AB5643E5C94A043403A64F2F00736C5C90B79FC662EC0E0778DC1E30C5C6D34AA2A08B7204F0E8320C7E08741AF98BFA8C85B04914F80FBC01CF17AF2E7AE89FE6EC7F7C63F92B197DD2EEF3CE98A4454B493DD2759BF6FCCA1217FBACAC60068E1A3AE0F83957299C5F756F734B27EA0A21D293BDE8A9FFBD73D284712EA24ABE5EF905AA9792A0868320B84C1878CC8A90AA29292E82575F590A1528DD050505B060C12D9090608BD2ED3D7A5DA35181D51207B6042B3217071A631674685C751A256655AFAC8D946A542F54C59C96B50A543F051A9DFE1DA321B60555CE473F7BE1AD71FF94E1642953510E3C521BD1D9ACC47E182CE5F9E75CC2575754A8C51A5755E19163EF2C7AE4C69F1F3C5C354090E1968E2EC72DE8F7F5D9B37717ECD8B1934AD36597E5C1B4E9D3515F2B29BB508424DDDE6D87955F7E09274F9E84FEFDB3E1FA1FCF86B8B8B8B33876610F35CCDF837431C00BF88C6E506B74A0407B2011890E4B7B58D2C3521E5135A41483D7A8B407255E081F0BA415F07BD1C9FA5D55A6E18B4FE6CE15CF06C0D23FBF7F4D667AFA377D52D3A6E7E666AE8FD8B4A2630751A80C23870F18784E75B8A11B9EACF3B82D97E7E5BAD6ED28DDDFD165CFEBEA7254B7773B3F1064F9FD1BE65CF71734A2E3B76EDD06870E15426D5D1D5C3F772E58AD169473161805033B766E87FAFA7AB8FAEAAB60DCD8D1D4F845AB9D6F073EA85E5428FD5A8D0D1CA862142021F0AA289522F7023B1A684154844A2E540921A0B10C02AF1C8B9F57F4AF0B54FF7CC93BAFA035F8EB8B8FDFE1EC2571A0A0D4105D006238D7475D2252FEDB95ABB70E9F75F5E4E27326E19F6F3854842A6178674BA7BFA5AD6B331F10DFF8E54FE77E1DF26DE04455F3E886D6AE7D7BF6EEF36FDEB4592D083CAA0F0E6620B823468CA0AA8480EA75BBA92EF7793D1404638C0174061D18D0E8720AC5194E54D8818A069E80EBF57828782A542F3D122E87245E8C92EE334B21FA7A44D2855005D08AB08BBCF0265E7E75F113B7D652095FBA469D99ADF76466A4BF9233A8CF63E1DF575272224594E5BAFAFAC697665E9BFFC43903FCED15DB720C264331EA554E72FA5D55279B0C0840236270087321C3C885C3C766DFD5E170CEACABAA72ACDFB0CEE8F7FBE9CBF7C7D6367DFA0C888F8F8BF075A2CFC978D480CF8FBC3E00BC1040FDAD069D9E503C3555471166735A7C26ECA106C8F750CD908AC5973E0B73391DE868A98FFA2C844B214AEA692508983F1578E1E5179E5C78E09BB5DB6B33D3D38A730667CE8C06E750F1F1AD75F58D7DAEBB363F132216EC7B3AB72B3F79BBADE8586D312F88F3B5068D9C94616DF30684553E975F42899D8DC8DCDBD2D8A5894D8C33F82568CEEED7575B5B53C391976B47AE7EE0C07EF07A7D9092829EA3820B05DE18541368E850BA8DC61850222F97F17E3F5682CFEB25DC88727AE26011E9A715452B2C784C2A45C9916749B4E490F313EE1FED8429143D9F15A8D614BDCEF7187292597C2EA93C5AB2E418AF2A14B958DEBD654FC99556B381B1C49A2C366BEC1FA3C1696A69573B1CAE5BD66FDCB57E4CDED0BA7302F833CF3C0343FBA79E38545EA3F107C4C91AA5C2014A45A21F89859DF7DCCEFAE145348E355A83DAC7033BB1BDBDF5BD5123470EAFADAD65887A21155F57578B8ED34132C60312915713D5122D0E044852015A1D320C8D963A511295389EDE488C6F18D808F0C4A9226347F0610A4ED1E3EDF602BA37F88A68F0D99E6345C8C023C0083A021F049D668655A46B94AC2DD1126F59FAB76F3AD7EC3E7CB4E0F2617450505D6D7BB5CBED7AD4E970F846E70D5B734E3D4D9DBFE117FE00BFADA5D395101BA39591CAAD44E2BCAAC9DBBCA8A8F6C83A9DDEF028DEE6E2B4A6825355956FCC9E33072C9678048900A5041F4AEF375F7F03AF2E7D05CACA8FA34A10E9B084700E3775A242C8778817A9D71B28A80A04953837A85328301C0245682489C390616A6A02205622F97C26653CF35CF8BC364429CF3C56232D0D7BB55A545B0A62E4198341FFAA41A9ACFBC5EFDE7BE1A9C51FC48E1E3D9074A0AC47D77FEEBC792B14E74CC249CAC9C9910F16D6AC1318F1368F9F37F4498EEBCF319AE98DCD4D837C1ECF5FF6ECDEC9A7F7ED7790E7F96B3CBEC0676DCDF5AA8993A664343735D10135642201A1821DA8668A8A0E414D6D1D242526A154EB223A3A14DB8D483F51E36169236182703898D0451FAA29420F515069B880482B3947EC809253F4A812B6B77487ED88E26CEA25E23384243FF4B759FC9C663343639B1D3D1F568BE726E0A5BB37EF2EF624C5990E399C8E5B65AE6EFBF4A9E3ABCE19E0245D3634C3B5BBF85411EAE77B901BD727D98C7764F4CD7CA0EC68F95B5E9F6761E1FE3D57A5A4F5F1A3E1B9A2B9B17DAAD7639F3761E215C6CECE76F4309D60341961F4E809E0B0774163433DECDBB717BA1D4E48494DA3FABD57074628B60EBD460D04812052AF43F543F4361A3670395D54FF931A72DA9D34DC4002643DAA231AC4E8E3E80A89029B0DAB1836729C62314273A713244611140256A1C5F2EA16BB6BB09A15635C4EA7346DCAF8AFCF29E0248D199A59B5EBD009C6C78BF3199659AB5771CF0C1A9CFDDEAF1E59F8C7B7DFFFFC70777747BCD5967859400CC8CDF5D50FA134DE3D7ACCE54A2782D2DCD44859C9848953A0A3AD0DDC48F1EAEB10F8BD7B019B2519B6D0D389214783DFBB22C2D24F540F89CB9BCD6404AC964ABB1F194C45C529E846670B71A2CC83F41113E048A5868D6B04D008C0A7814E8C29F11508ADC5FF92E20C80CE1E880C17D1F3C1CC5A1849E09C2EE7906D85952BA78E1FD67A4E01A7B18495EFEF501812C6BBBDC2148346FD476CC2AF9DA8695DFFFCD3F7ED3D7144BB92E7BAE6235F9EE6770B7FE8EC6C598316FFD661C34732017F006A6BAB511ABD306AEC44E8EA68078FC74D41A93871028A0E158152AD41A7C91AE9B408C656C2C75165889F876B88806F406A99608D873E7D52C0837C1F0D1A6542A41590BFE3C0D644CE113A4A1C20121A09872038561102390434DBD302C8719C410D5D760722A20ADE43EFA580A3B0A0F1EA6AC307A8EED95D5269D9BAAB6CDFE47139DE7306F8E4C993E50DFB4AD731927C47B7CB9B1A6FD4BF88BFFBDD6395CDDBEEB97D6CFD869D879A91DECDF7F85CF12BDE7EF9F7CBFEFA5E8B5AADBDB6FFC04154979FAA3C8120493074C468AA5E3C1E17A0418201D959B061C346D88312EFC3CAB1DA6C549A68502B3AB025877B88A2835D3DBD48245C9C608B47A3AB876E04C98A7E4052A20DE2E3622116D51A89B770687489EC92DF2185228EB224D256415B0309312B82749380AAC3FB1D0E6C352A6DB01530A1CA40E04925383B9AC1E972B3F1B6E431F8E0BBB7ED3DE2DBBAB6AD70F2E43ED2F7069C823E6A907BDBDED20392243EDE69773524C499FF2433F247E5A71AF73CB4E09A355FAFDF75357A9533FEFCD6F29526638CA2B5B569BE5E1F03E9197D910168E15879291A42250C1A3C1C5C2E27747775D160D5FC1BE741C9E152283D7204766EDF011D9D9DD4D812D642632B6701381C5D94C221DC5049A866ACD984CFE8C2BFE1A231756A5069E78812F5BC0A7F4B8891E0B15AADA62D854A301396701282C067A19AB1DBBB111125AD185251A46511D546800F047C505F5B05A999D9485339A2DFAF028D67DED67D474F5D317AF0C9EF0D384993460FAAD9B8FB308F2FFA545BA7FD139BC5BC027FC4C7E5958DC527ABAAD77A3DEEDBDD5E5F9FF85813AA686632828E86330E12129220C66886E3658729EDEA9B350819861B4E9D3A45A5AFE0AA6BA0CBE14063E8802A3CB763E70EA8AEAEA5D3438C26731050392A464E3F47831D029FD24C323B4D4F4080E696362A911A04960DC7EDC3311D361CE16423114E32C093463E69E70A4303682A8D8E1A6DA2CD0449A0EAC9EB7551CF97B4D4785B120DB23141E9B7E0F36EDEB6BF6CECF6DDA507278DCDE9F85E809334654CCEAE09BB8A47A3B43DD8DADEF97F568B9904783ECECCCC5C7FB4F4688CD7EBB93AAB5F3F2BBAE336A273DB5A9AC09A904C014F4ECD40D5E1271DD3782E054848E068E911E4EF56C81E3C0C79B90CFA181395B6E6C626D8BD6B2794949400836AC686EA463E6D0480D8EB382A5E8EE789174924DCE57453692792CD8600259E5810D8E8383EF4AA0806A59C002EA3DE36C41868EBD4E0EF26CE9A015B2E89E9A7F5C9A2AD850D571C432A8DEAF92CACB13BB6EF2BAB9F9837A8E47B014EAE6ED85AB4165D973B50C86628DC35CF18CCC95BD0A47D883AF8C3B2B2B2A9574E2BB02527A7330CBE7466DFFE947B137540F4B956AB8FF4F0C7C659690CE648C921484A4E07F45AE1D4F1A334E01534900C1D205F76F4286CDBBA0D9D29A2E713289852947447832D454515C93388DA20F7777539E8F3B8A8A11E3470C90443684C54074AB812BA51BDF168E0CDB1B1C18A88EE70091BDBA87E8060D7234341C77755320A76F6CE83E56907B61FDE306E5C8EF09D002769EAC461DED55BF6EFC3177ACA19501BEF5F30E3ADE3950DEB513DFC51AD52552424242613BC884A203F3CE0F7D171D8044812FDF32047273D411ED4E54472BCA85E6AAB4FA2940F47A9EA001EEF0D76DD0559CAE4FCA990804ED3CE1DDB61FD86F5D0D1D18506D112F40AC51E90A5D3253D145D240F22FADB8F86D98B15C8D2682513A1FC72A41B057A7AAB3075767420FBF1812DC1D6AB47AB57D7E21915D1033E55510C3B5250713FDA5E58BA79E265833ABED770E5477FB3ECA748AF5E427D3973F1130BBFFE6CFD9E8101BFBCB3AEB62ABEB1A18EBE88C00742A1D0DE9918D2D17979B4240C42C929117C35FDF1AB56AD42DA789CDE47623105053320C664A2CE4E5151216CDFBA1981F3A2379C0BF953A6C0C0810368ECA5B7B3C3F6F228C320C834FAE8A74694C47A206A3C4DB481261575B2FC1834B6B643DED831DFD2E9413A38429D23424F38F85B22944E490A5CF5B33B67EEFA97253C9C665C316AF7371B778F9465E9E12D7B0F7DF4F06DB32ABF5ABD313139396D1C990B999AD607925232408D9248A44FE0F9A024A1340C1D3204468E1C014DCD4DE8FE77405B5B3BB4A37344D4CFF0E123B029F3300069E5942BA751DD79B8A488BE1801EA44C531BC36185B8B17D6AC59053B77EE842E747CF43131F87D3D523EB997AA1122FDA24150099F0E7750C8743C0AF41AB2174E0EBB1D9A9A5AA05F565F0805F0432D20DC4F1EADF3CF94FE5EFDBC2CAB46699FBBABB062EBE523B2EABF13E0247DBD7EF33A49621662254EDFBF7DCDDF04467D97200A8312935269108B1779E4DC26B0907992986947024A7C5D7D2D7D393BBE945A13A467874B8AA9D4252525437A7A063A4436D8BB6737D4D5D662B34E840DEBD6C0C85179909B3B1C01CFA53CB9A9A901860C1D49257FDDDA35505C5C8CECC10B26346A64F65A4FECBC67C45798CD48E8C1845B5C4F571F448E3D2EC2A4AA60E0A0419191084CCF418FEE0F5541AF4EF4B3D804CC6AACA0B9BB0F1DDF3A6E7876FD7702FC9A2B27F83E5FBF7D0FF2B45F78199DCEA85377E08327184DB134D64D7E4AD5A9E3E044708894C7C4982121290D0DA6055A51AA9D48071B1A1A60D2A44954B26D6814CBCBCB90A777231F8FA7AA63DFBE3D9099D98FEA7142CBAC5871C7D1B8EEDAB1155253D321FFCAE9D4E05E39FD5AD88DE74E541C878DEBD6615941C125CF2128885192DE432765AAF24874B317E0789E04C708E069E969D4D69C11EA09C3CF843BD2A3249F3933878047BDA998B7AFA4F28331C3FADAFF65C0499A396D7CC3E76B363B6451FE8DCCB09FE9D4DC0CB3391E1AEA9067EB0885B24057672BF5323B3B5A29DFF6219084B1C4C627A2F427437D5D0D7A8789505D530DBB76111E7E8A823470500E029D8CDEE83E283CB01FF2F3A7C1D6AD1BA854930E8B3E5811A422776DDF0CE3C64F82A3474A60464101E40C190A3BB66F831294F8CD9B36413D562A8BAD880ED10875DF457377821419A2416233C4D851DE1DE0A1AAAA0A62CC66301A4D9141ABA10EC15EC0F7AA841E9DD3638843E7C2928E9CCD326648E617DF097092AE9B3E69DF67AB360F0904F8056693C11E6332C71046D2DDD54E872E9891027A919D90974C4EEB4BC1F6A003D1D258872A26007A633C549F3A410719592C16A8AFAF8346048978A512AB41096E8380CF0343870FA78015EEDF03632F9F0466731C141EDC4BC3C083060F85EAAA4A04E914DC70E37C04BB84C65488CA686C6C8492A262ACAC2D786F17EDF8D01B8C3D928E0892B0028F7686B4AE204A3275C4149C1A555A42EF009BDC23EDC1F26C64236A5014D3339C0482A00FDD73A4E6ABEF0C38491FAC5CB30E1BCE6D6E8F4F4E4E4C3413A3C423232033C4D4F882269474E261AA541A640A5EFA2BE26DC9D80A0CF4B8A6AA025AD0880E46A926DD74DDDDDD340490D2271B5A505793D691929C0A197DFA5203D9DDD5890E9589765CD45457429FBE59785F137476768031C688AAA00F94971D8DFCBE9CDC1C985E70356CDFB615366E5C0F070F1E0097DB0D3A7464880343540EE1D0C48E7422F524F19DE6C606F023174F439B224951A30B2221E59E11C33D91CF338167220D21A27A1859105CDF7B16DBFCBB9E1AC1728A9DB171B1FE9C410362DDCE2E0497A7439363CC564AFD8833E343AEDDD1DA40A54F81C63506A5ADB3A38D46FDD4C8709CAE606BC81B330E9C7E064A0AF70123F170ED8F66F572727C4482C95818745248BCF6707121545556800969E46DB7DF036FFCE9555A01E45E92A621C5CCEE3F183E78FF1DACD0CEC8EF36A3DAE897D51FAF0DC0DC9FF65E11D7BDA6E20428504072860C89F4CFF61AAC7DC650EDB304D9221EB1DCE39CE131DA9BDAEF25E1245D3FF3CAE68F3E5BBB031D8C5BDB3B3A039999D96A03BAF51C36CB80DF833F58814C454BA7A7F83C4EFA0224723770407F3A148EF4E61315449AF6B06123C1844038DC7E2AE1E8AA800EAF11A0086D241C3E25D10A870F97D0F08146A3436AD9426715930018A1A344E590A1D661BE5D75AA1206237FCFC8EC0B474B0F477EB70F85A009A5B9F4C861E4F95B68CCBEA5A5958EEA25D24D04A5D7F8761AC10C1B58A927AC2CCB675539D15A3F7C7470FF5ECDF7069CA479B3A6D52EFFF49BCD3C2FDCDC884019F55A8EB8D82410A4E054A151A9A4F7C64F3B0B88CB4F00B4210D2C416A4862D8B194D629E1144AABC6104B01EF6E6F41B0DB11987AB0209B212F5F831E6A7CBC050EA04E47FE4F3B1D9A9BEAE0C1071E0493110D769C0DD54A29E5DC0CF52E65748464C8199C8BA07EFB9C2CC2B0482F1519D2B76DCB66B41307904D355255A721BD4F4A550FF0611523F51E4916613C209FA6EF01B66C5C0B07F7ED6E3D2780D351A7B367342CFFE8EBF58224DE80F44FADD1A8580543E8970B25DD4B6B59AB3793E16734FC49FA41C9E859A2B789CA2173E03BD050EAD09151E94C14709079AA6B49183677C84864329570E2C431183B6E024A6609B4B63441DFAC814028E9375F7F498764F4EBD71759501272F96A3ABE85804ED8CDE8B197C336D4E5FF6CF220016840434E866C930A282E3A440D713BA1B62E17558D1CB6023A223824F1B2D47B2A8ED3E98413C7CB60EBA60D28DD7B20353DB3E49C4E8CFDF2C3578B66DCF4E064D4B99B4ACB8EDBFAF5EDC324D9E2E98FE37D4E90952236592BDED9462BA1012597A815C24CC2DC5543A6BA84120D03A0BE4F424926C1A35634B0A463B9125BC1C0C1432873292EDA874C260FF89CE1B01EB9F881FD0760E215F970DB1DF7C09E5D3BE1D0C1FD94859071293AC2943CFFFC4463121A50D20EEC209B494D8C85F26347A16CE5B1907E67693FAEC91C4B3BA4A3150979A7F6D6D6881D484BCFF4A7F5CB9A75CE6722AFFDE0B5A3D7DC78CF2459546D3E71E2640AA18AFDFAA653C044D107280BA0335A80757652891E3E7214682AB534DE41EE5113F6101EBA816E3F898D2425A7A0B438A84A22D24AE22E63C65D01C70DA5D0854CE6E8E14218983312C41163F0F800ACFC6205F4416633FCB231C864FAC3DEDDDB692B3223307EAC682200913133A4EB0E6D8EC160A09D202AB586C679880B4FEE230138B79374DD39A9D43EF79B5FC1AF7EFD22553DC42E91902EC9A72703B22AE21D2725A7BAF53106B52D3965E6D3F75DDF71DEE6DA4F9F797726AB516C46E9E8830C40189A33806B43EAE570B8292330C4C481DFDB0D696969D46527FA93BC20FE40F0884A388C2C25CEA4A36C272777040450C20E171F88B8E643865D064DCDAD50575D413F1335923D6828D4A2DA395E561C041525ABFF801C3A1920774026EC3B5088AAAA195B9909743126D4CD3108B88A3A65C4A0FB11DC53959574950952C143870C86B9D7CF453A59082B3EF904DCC890E65E3F1B264E9E0A4B5E7C893A6F3D332758E88B34353D231352D2322441105AD1DBFE5B4E4E6E812FC0AF7FF8B6AB9EF897A385FF6ACAFFF1DDA9E82013D0B3636262BC68F4B4E4AF91261A176BA6B173A58287B4D4341AAC2220A5A6A54397874C55D90FD658233DD7376B00BE1007A5250723805F3E7A04D4B479E064085C92492747C1B429089C03D41C83863896EA7722B976A78FB20BD22152555B0747CBCB917337436B6B336467A6C2BC1F5F4780828ACA6A58B3768363D7CE1DDD6803E4ACEC6CF52D37DD1CAF54ABD94F57ACE8282A3AD4B1F0F63BAC896999E637DF78ED90A3ABAB6DC2E47C7D6EEEF0A1A8621887DDFE81C4C0ABBF7C78FE89E55FEE7AD6EBF3CF6A603BF216CD9D1B38AF80A3DED261D17FE19D0F1B5B9D8137784118C4D1902A87EC450D23517A946A32EA49097DD2129011D4D2380B31A4CD5D3E28473591603151209393D3418DCE52D991C208B803B2FB825BD24245E9C15E61E01BAF9F0513C78F86B21355D08106AEB6BE01BDD826A8470A4886568CBA6C141ADDCBC185AA6E2B1AC303FBF7D19E2882439F8C74B8EAEAAB1B72860C3738DC3ED1E1F1FEB9B3CBBB34736C4ABBAE39F02B3FCF3F812DED0B97C43EA46199652EA76BA28A5308D80ADD9228BFA40A706F2F5C38992E1EBC62DDC1D1019F6F8BD7E31F77D7FCA987BF533CFC5F047C3416FB162CBC6BEFCF9E7E76ACDDE1149A9ADBB9F6CE2E59ADD6B4A381312015D312EFCEC7B3608E51D2D57932FA64425DAB134E9697802D3E08789CC586942F0ECA8E16F548B3250E54C62404FC402822183C4FECC09CEB6F84FA8666D8B8EEAB33E2F2F41EB40B23868F8431C85C881EDEB16307ECDFBB1B9D306F35FEE6BC17962D71CB4ED53C87CB7B8FD3E5CD73BB1C1F3BDC8EDF8FC91D22F342E0BD002F64122242665BB7B475B4D5DA5B47FCE9C9FB22F3F3BFF9A650E7E7A422E4FA7FBD79D6C4257F7762ECB99C0649F9ADDF2B12D38D2073494909101B1FCFF8FDBCD5171040AD47DA87A5CFCF531D6D8C4F91BA5D3C4B3A3148004CA3D7D2419F846E11179C74EE0A42705883CBED411D1FA46424B217EE79216E3F497674968881EDD52B13CA04F483C85E48CE41FD3E0ABDDB71E326C80E976B8B5EA355CE1D378EC421DE25F9F7EFAECBC19F7F0F2B319BF7171539D392122DB1B1E676AF2F9084C0AF73BA3C9981B6EE8FEFBDF7DE6BC22BC3B1066E09E3F3B79E2C99F85B98F50F66229F6BC0FDBE8018264BA1C01BC8D1339AC353CA1154BF20B1A47B8EF42B2A9112DA5D7EDA5517F0778270AA26AA533938D09E67EAA1A3DB497BE9C9485CC274FC81E06A780E6737652084BA7D5BA6FDABE869A2F325174CBFFA95FE03730AD0D855BDFEFEFA7765BFFCD2FD774E3FD9BF5FB257F28B1A41143475C8630F979577A151D5700CBB64ECE5E36758E262937D5E97ED64ABF62D6CD50B36ED2D9F867F7E81C8C2B0458B40FA8753BFCF5532994C0272D75D1A8DD21EA3D76EA8A9A9D0236F48D11B8C49889B2A7A506764885B382824475546C84D26E004FB4AFDB40C60D9802C2110FAECC75681D40062628C41C7059D13C2E119463C6BAC3A3AE3B37FF9C22FEE7F8E68C2BF7CB499C8E4D3A2423CFEE7E51BEB2DF1A664A58AFB4AC128263C7CFBCC830033E1C6BB9F18647774DFFDE9671FC5988DE6E2E123C75C9E3D20E7861FCD7F008D01CCC0C73C36B76074D5DF9DA779AE935EAF2756797CF1A1C2F284B898AC4D4DF5635E58F2878FD1907FF0E2E2DFFE5256A8D2517D66A04620B3C73210DD0CC4368365988124721A69153D13FB2395111DAB90C347A12929B41590C1FF7EF7B7AA94506EC1FC2EE637F76CFABC225CF783B2D31A79416AB03B5CC31A9BDB3495350D9C208A465EE04DBF7FFE05839F0513B21012F95B81C6728BCB619F5655793235DE6A4B199C3BFCCEAD5B7756FEFAC9BBDEFC871363CF75C297F793A1C0E8DE0E6C6969E99A3D73FAFD8B97BC7C952CB37B1E7FFC27F69347763C82B7ED3ECDD0B22B56EF721D3A72425BB277D3523EE0CF40E53D946515699C5A23AB545A0FC3A9C8B0A8D8E81600518340C9842E94BEA0E7C7853B00D8D05006D1CBB0D2418695D7B02A2865D1F1554AFCD4A9B36E9F933772C4D03163F226A17394545A5A56B761E3C643ADADAD1A9B2D51EE9B3D68B25AA3BDB28BF7509B22899155327C58DAF1B3A3A1AEBAD2EFF3269BCCD6FFFD871363CF474A4F4F4F46D01BC8F1FD0F3CB8E7BE071ECE13FCC280B1053FB2B092BC057178A9A264C733B9B9B9AAEEEE6E32877E1CFE96BBCC71F183BB3B3B08529D0CC02A522908DAEEFAFAFAD2F0E2EAF9F31E30303E77467375D9D32228862A547A190D6712EA70737A46BA3461627EA0B0F0905B94240E7F830681D106D76F092D25224A7EB4050EB4058EF8D8386FFE942B4C4909367543734BCBDAB5EB0FB43537B7E0771D3201134407523E873531516E6EACAE6744D6C1F201BB5E2F3A0E1E3CF82F2F9F7ADE004F4949B1D0A009A6A4A4A443EB376D1BE9F3F16F8FBE2CF7574A7DDC830A95F171DED75D2378BA924206F614E60137DC7A4F1168E3CD9FFC653151355720D07BCFF6FCD4D45452412BB5F199789D9949467A91F17FF9932797EB8DA6ED07F717EE42436C9719D121F2BC038D985D0192A3095C8E8AD5ABFDF06F4AE70D70ABD51AA352A9C253B0FD7B0F1449AC42A99A3DF32A45437D5D3DA78D6D51EA62478ABCEF39DED9F437FC1D64A0D1938D8D8D7F0E55D8AB58CC42E91E81A0779CFE6CB55A5DCC2AD52FA9629297A2CAF0C5184D061227993D6BD691FE83F2F217CC1EDD013FC074DE56754B4848889622F5AAAFBF3C8AE029DE7CF7C3CF1A1A1AD26A4E968E921966B142A9794AA132ACC36BDF84C12609DDF29F92168295F03E73DAEC5AACC857F0FC7E754C525230FEC445168A542A55F61F2AD8E715F0D2D2D240744FEBC71F7DC407D98B61D6E1E38D03C87165C9F69F8BBCB75A69B0F6D1C4657C7AFAF7D1E8CEC3C3CB51DA9F0E9F4F4E4E268B804D47097F04DDA17B4211BF88F16715CC29F801A7F3BD6E61207C5051717CA040C6890563578B426AE34EDED96C43AF07F530FB6156EEA4F1D15FAEADAD25D3B2EF41697E1675F654628851D897E1E73B1943CA54BC96480157A94C51EE56C5C50C7844AD2048B1BB77EE381A22CF373CF6D4A2EBF1E835CC77303E119D053889EC7B55F6F02B46443F00D5CFC708F29BF8FD0F90717C88E5A7A87AD622D97BB027A6AD8C48B8D3EED87B49C2236A65793852CF8E1C39EA0504F20D34889F5654EC752858F16A821752B1757D874D18701A3F7F24B4BAE6689FCFF744F6B0494823E5F0F21C029DCB1F4A9B567F557C49C243A9E8D0C1CCF071FF8139FD46E75F1799AA71BC78770330D255C426B232B3B1EFE0F191F54B789EEF87A0C7061D1BEDD3D85C22D28D4E511B44D9548671D92F5AC011A45E802370A9C78F959D0A01C5A4A6A4DED36FE8C4D7468D1A45C7119F2CD9550A923C1B0F6DAC82DDD077C8D884ECEC6C351A4FB200EF2B64A564A4803F454B7C730F2B51462F65EDFB2ECEC87F0DE0A806CE7030567CB43C327477F6ECD943949CE2C7DD01EDD6812327D0499C274B776E41406F0706B25846B9DEE3F5BF4CEA0E69E2AF50FDBCAB3458C89C77550470B53A9A323AE0079E2EA84A2169E78EADD688B15372CC35D7FC88AC8079B9283047B2864DDC9C3564E2878C0CA31145B2D6D450B529798ECA98B0CC0771797D874C226EFCE0E8E7A9D51A734F93FAE103CE5D68C03D6EF7C0B6B6D6568331D6463E175C357DF8EAD5AB6A50DD64207BC90F0F869423BC5A99080AE56BE40C1B42B517E02A553C899F87BE74D14B78E06CAA7DE5E71F47564A23633FAE9B35E73B798664EABDA2C7E721957449A59CEDE4E6F56B74D19FC74D9830123DC763FFEAC3159CB2E1B40AB8A452CE76B2A3BD6D88DBED72B39C5A1F6233F03F0F3D1A73ACBCACC8E97407DC2E97E87239243288C8EFF332814080E3F900270A82529248B855D2A241D661259D4601E58B1B70420BBF251AA9DAB261CDA1A957CD1A1B0976D912528CA6B814AF9FA7E3B4C90209C161CEA1CD8D7C3D2519F9EA0F9E8F279F7B249CB9B855CAD9686138AD5DF5C539DFA9F5920EFF169542525D4D750E59C0F41C437E49C2FFCE6553E1BE5D47CEA90A93D98B1B70D4E181BF777DCDD79F3ACFE5DF932EB114F8BB7D87E5A525C31E7FF0B6BD3ABD81D7EA0C92566F94B57A9342A337726A8D56CD29D55A8552656059CE88EDC57886D773062FBFC8590A5129675B7B36AA0518DA5A9A4684EE55874E0BAC42E10C5941B2538A9961593BDEE06118859B53A9EB580557A754AA9A39B536A0546A44BA002EABE444108FFDD0013FAFC395535353E3054130711C1740D79DD768348117FFF4E15788D0047F40024A01BD3E387C603B6CFCF25DFA1D4B623AE44DBE2E3866DBEB85BDEB3F046B6A169DF349569DD09A93C9EE80F7551ED9F906FC07A6F32AE1A1DEF65E6EFB575B0E8B1E9F1F9B3F1FB5F6AC74568E47FE21AE3B19C246162890E13F7FFFE67FDB5E6CD1E085E7549E8138592655A1A433C7C80C83E81156FFA9E982ED36484658399DCE89B7DEFB988F6195553E3F2FF8FC7E3180B9A1E604E9044EA56E7F4B9DB4E1B3653CEA6E36A4C339BED5E7A333F224492D042A9A1E7862F188FF54C02FC87E9A64CC60BF21133E92C5C02CDE6BB793AD5C104C9F1870915E777DF6E01174F22C1AC47A519434785F7C777B23D3103587263A3DFFFAA76448F36FEE9A33F1579724FC2CA95FEE04D26B339751A84065B05A422A63A9AFD3BD84E394AFCEBCE5A1D964806420E04F0D2EF2C84BD3AEC873BBDD1EE7E60DAB767CF0F6EB645C21F9ADE99817D231E222FCF2B50FB7B81E9C9FBFE4928447A5ACA113C9609D65A79DEE526AD5D9E5FB3676FCE8E687975A2DD6598618BD353E21558980B304F42183FAD5272725A40604D12788FCD06B270DAF9871DDBC01C3474D7C373B67E418B26F045DB559E01F7CECB6E97FBC643423CE0864467DA4138E62CDF1BF2160CFBFE7E98549C9A90F1A4CE654A7DB63DFB8E64B9FC0F30299165E587214A59D6F4369D68822D021706BBFFCE4F880A19719A5A8BDDD44515CFAFC1B2B175E023CECC528B817438734761D67B556C883125E5BF0D073A31252525F4F484A018B2DB165F7D68DDD4DF5B53A97D3FE1099E343A6866FDBBD0FB195645194277FB4F6E09D21FF7DB918B55227AA22068DE99BCFBEFAC9BC8B1EF0EC9193ACAC246CC143B23653776CBC45939898F6B33C63766C4A5AEA1728DD1A5B6232DFD9D57137DAD5FE3126F3A9D79E7BE40D2110789A47D0EBEB1B1230178696C378E9CDAFF625F899C0F2C8D691F88F288BE5F859218AC2FB3F7FE96FD75EB480670FCB4F9505790723C370542CC546636C464262CAD62443CE6A4B52D28AC4E4D4D4E4442B24598C3FD9B2F61B3D592DC29A9074907CF74F8B7FF23CAA961232BF7DCBB66D23B0AC45D06315A2F4EAFFCC9A5C8D127E3CB4512A2B8BD27EBCB6038F95A85E56FCE4D7CBA65E748067E55E9E258340B64A2443D6B669B4DA6108A6684D4C7ED43A40F7726272CAA4B4C438484D885D7E7DC1654BAD09B6C9A856C8121D07C3CF403D5E42540BBAFE8AF5EBD7A22C4BC818C5796F7CBCF55A3CDE49540D9E6AC2F22690F887B1DC43BBDF64E9CB077EF1EAE5170DE059C3C6E702ABD8813C9B0C552333702D166B82CE6A4B406013872724243F8840437A62EC61639AF19E9933EFD5C5C7275C4D96DDC3EB11E22D06026544C211F4E2FABABACC53A72A0FD015D924F94F581623B80C6AF763083487E71E577B1433F03C4ABBA4972571F5BD8FBF34F2BF1EF07EB9E3F31899DD06741831D381A097C5C55B73622DD6DA78ABE52BAB35F1F544AB0952ACA6AE745BEC9CCB92923C8664CBF371166B1A5529F10991D5E791AC1C250B4D0A82B0116962D9E6756BF2FCBCFF24829A86B27E75D060CA3928F55FE0F18D0EB5AF9F24BAA76345A0CE974C8224AC5FF8E06F72FE6B01CF1E3AE90A86653721AB279BB039419616ABD4EA79E6B878B266E133E638DBBBF171268DC56CF058638DD7D86CA6CAF977FF7CA239CEF230560A9DDE1D67B545B6680C08DE3262380381C0B000CFDFEDF3FB986F3EFB9845307994ECE9A10952B6A00E17D15B9216FF7ED123DD5E4E2CC00A299604291E0DEAC679773D95F55F0778BF2193AE91415E8B8731983DE84BDD042CF3A0D11CCB1A4DE6CF4D26F38D3146739A51AFE50D06F58F3352E2F6CCBCF7599DD11CF796C91CC79863E3C1126706ABD912013CAF7F42354AB817194BDE9EF51FED41F05F6FA8AFED7BBCECF05E54DE6C78636B5196664882FC073C57F0D02F5F9BF2E6A2473BFD5EF14ABC7604EFC196266F9A79DB23E9FF3580670F99308F61E42FF0902CE5E347523C1B9D9DB94A4E99618831DA31B7EAF48602AD562BA954DC82BCC17D48C58059CDBE6030C664C5184D274DA698B638939E2FDBBBA29B09A5679E7946E6797F391A4FF3D0F133FABB79F1E7087EDDC6D55F5EEEF7FB8E87793892F4C9D89A3E4770DB5077D3BD40DF7DEDA90E0578A7622594E13DE98C049BAE99F740E27F3CE008F69D3243B7B425C38D05D4DB3702C39A91732F4090C992471B341AED3D4A950A14203F7C5DFEB04F48206BF6ED8F4ED6E9740F69757A41A5523D67D0A9AD46BDBA0D41E642CF22A36355017FE038D5E37E617CC5BE35BCCFE77B449625C5AACF3F5422070FD0BD1D10745EE46F4603FB6B3CCEBBEB272FCE2515F6F6D217DA85003F152BE218029F856D61E395736E8BFF41031E1236F6B4AC20396BC8C49F20D86F869E4148DA1D6E8F6337EAF0D7C977D51A6DB552A5CE57701CBB73CBBA2D4B9E7D820CBED766650DB368D5FAB7542A352309C26F253E904036B1661968275E3F66020A0970597D1E571DD1E37CC03F113F27D71CDB5B8220AF6A6F6BED7BA2FC707144CA2569C19E2DDF7C8ECE0F4ABEF89C3527878CE852AE78E7A50E8FBDBB00CF55E07D3992C8AECFCF9F6D66A2D20F0670026A48D2C8384043483FD3DC3767EC7328C5BF0DF714887EDF4FAB4A776F5029557710EF9D5528C8CC60B38263E30F17EE3F545D5991CF2A55AB878D2BF84BCA809CB7388ECB0CF8BDD56FFDFEC916AFD7753B099F55575799AD56EB0B369BED958484843F637EDFDE5E378748B828F8E7272525EDC15CE2E9AC194A18F9FE5DDBF33A5A9B9D6485384996D13627FCBCAEEAC4726C01D9E386E73F14AAB4D8752BDF7237569DB80EBF538DC08FE455EA352983C6C4855A1287EFC98584E88274C69C355A18FAE34427DB341A4D1ACBB2F108928E74FA9A12FADEA454EBAF88B00977D73E9FB3B51AEFD1EBE23326B10A9591AC254E369706C9E7ABAA38C6721A938A2C0A138F4C2498092BB192AA82B4CCFE608B37C3B1A25DF0CEB2977B4B834205DAB80CBA5C87B723B83803D2C4662FCF24DA52B341ABD3C09482EBE81276F53515F0D5F23FC19CDB1E918997F4F5077FDC8F1C9EEC10482600D4596C299E0123273D83AD2A0955D3AEB2C3DB16FAC9025CC159D064D60419614086E609E71370EEEF48BEE1BE877FB66C40CEB002B23E6C4B733374393DE0707AE8FAB04EA71DFCCE76107D5D63509AC7B01CD9704819591ED4D1D50C2DD5651AD25F29FA1DA0D25BE8E28D4445903550C886A7C6D838BA4D413BBE734353E3195D6D9244F6E40CAE590B2CE9DB0C5077DED9D50E7A631CF27013141FD809B923C78235310DCC482FCB4BF632B9A32629FA0D1A31EEF8E17D917D91DB5B1BC0B9ED2B183C6292CC2894E3535207EDAF2ADFBF83E5B826BDDED4A2D6EA0FB735D56C42A1729D4FD0BF0D70A24E4C6A8D263E7B602EA4F71D4897E2F78562D0FE80407377471B74B637D1D241969A7379303BC0E3EC82F6FA0A088F6413FD5E605401DAF34EF6D9A93976808656474DB80A624CB1741794CE2E3B915E2A6912411A1B0FBE7880F138121120B59F976A031E7743E89EC6F6C653D6A48C81C94D0D754C6A661698CD161837F95AA8AE3C4AB7AE197BC55560B525D1FD1F944A34DA98D1A690C51D198DCE8055981B9B373E7F6670F926019A6A4FB621E064D928CFBF43C2C97983C7ED56939D3FC84A683CD9DB80ACB12D105620D3ED1B5904CF149780D2160BB6004FB72020B16CDE8F0E0B8D837824A7BD8BF7B81D8CC7E3519175073D2E87D7DEDDBD0FA5DCE9F538AFE59047825E2724252634E6175C5BA83398543A9D5EA3D6EAD46AAD562DCB0A05A754E9355ABD5AA5D5A6B30AA50633D9CA4443367813459E6E0D46FE76BCCD06C3464FA4C7641F06B28C9310DA2996F4FC93D5FB453E6AF758FCADE1ADDAB11E894E27D36188F10EFC3BBAD8D89AEA539507F6EEC860512C546A3D5D3D510CC633220B7B053B01A4C8025EE16D702908028F5FE5D4641177B26C68907104B4E9FD474C262B303FF6BF0F9005FF14822829045ECCE4453193AC5ECF93E7D0FD3885E0661674230B2154D9B497079FE5A325CDC1BF15049A8048C0A565E898185E51085D17E89A2751FB24D3D101E8D1D2567DBEBB1DBFEDE14417D8D7AD5AF909E613A4E651B7A98CA6589D39CE6A4035A04749D461D3D421CFD673288B2AB4A4686B5511B0235214DAFE3CBC21B4107A51ACA866B40B8499F1545509A1325869013E789F100286A7CF14233BA804AF05F7580B4B69A414446A68116831E0F761C3F263A3F38958D9E83BF904325200FF41FCFDE41C19C4CBFBBCEE13A1F796FE5D809340D2C1909537A13ED5D8BB3B39CCAAD0F748135447392A9C0A95BED16C8943A7270EC5DACC716A23F27013CB2A62509209A53420502C019B9023B26A32912E9E564A689712215812B0FC7E848626546A0172EC0B9043F23FF9E8F3797DC41BF263E9F579B0F4F87C1EB7CFEB7523DB74F9052140DE23B4B45990C24691022664ABC839B2206D35E6A6D0BB5FF84EE410350C03CB85321BCA5CD4B530F0AA505647654D28D3EB481D352AAD2E5EADD6C56BF5A6B8B1634629BC1E97CFE574F99C2E97D7E5747890FD78ED5D9DEE00591A39F8F262A88C3E8E3E279C76FD6C395A724F976039749D8C67EC26BD53F25987829D67C0CF02FE697DC3114989CE8AA8CA50444BFF69A526748D3D0D94D30192429FA34BE92C80CAA1F372D43DF259CAB3497BD4E272B2F86F717CFEA5079CE91E337F2747574AF8381A48294A02E52889FC5690A0F7EE17A75F3F6B922FC4E8A7F305F877A890E84A816F010C7EA8807DDFF4FF66C1B88A7AF294030000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (143,1,'Satellite_antenna_(24)',0x89504E470D0A1A0A0000000D49484452000000110000001808060000001C6216320000000473424954080808087C086488000000097048597300000298000002980136D347DF0000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000003FC49444154388D95D3794C1B54180070A6FE41CC8CC68861D06511A8225737E860CA61718C411D0B63D432815E2B940E702D2D1490E3D19663D09672761468A165B68E32BAD652983041CB14E4DA509630022E0436171A679464F1C86735D18415DDFA92EF9F97EFFDDEF57D6E00E0E6423CEF46223DFBF8BC2B801BF7230967B7F9A75A4C2092C5AC12E9322DBFC2E432B2B8B8B2DF6C9DC8E797D724895AFB4D3902E94606837BCA09718C3D2733B9C55CD1C5C60A999ECE1776442004CFE8AE588966CB78F6CCCCD2BEBF123D3C3CF61249CC630AA5FE84135284A40917DAF460B8360BBAA16968D58E80A8B9EF617983DA2AA8ED3C4943C8FD9FE4A4147AA8B25B9FE684F40C4CB0CE17D7CE5F328E83C6300CC6911B30FAD5120C8ECE81D6FC35C8B5A3DBA8F993410E52BC9B9C4C7BA9476B4CECD65CC5EF400CD766B49DBD2395D9E7D1ADD2EA36F8626A09EEACDD87B5F52DF86E65136C7377E0EAF505E81AB0419DD2FC796B777F616FDF60E20E04A9D5EE3D83364141556B39B74CF6632A9503151714B070FB7B7860FF09EEDDDF82E5B54D985E5C05EB978BA01D9C80E6DE4F674B6A54113B7E878BDA7D9A3456366AE8B29756774051550B9C20B300352861FAD60AACAE3F80F57B7658BEFB038C4DDE04E3D81C745FB1417DA74581107AEEDF23D10BC46F37761AB685521588656A90B4E9A0A0A211CE308B80CCE041B55C0DA3B679B87EE3264CCEAFC0B0ED5BD059A741A2B26877BC321FB5C8EADB74BF8BA4DD206BD700F55CE9DF1023BF0288A94CC08644432289098555CD20EF1A00459F1558FCDA6DA702CBE1A1CE2AA9EA61EFE521601708A11849E01C5FE4B8A21C280E348355B841CB2DFFAC48D8369E9C995FEFD898E284B073731B9BBA06142D1ACBED6C7ECD462ABDE0979804F21F241AC79E708A3E56D7AA93D4B6E8258C7C6139955D56BD6BD9E3703883A3CEEB0EE28F94797A7AC61EC00653F1846473480401131848D8EBC8D9F3C4DEF1F2F21AE950E9477D8322C907B00199BEC191C6C0C3F1EAFFEBB1DD10339DC99E7887983EE11F16BBE01F1A3B1B181E277309F1F6F63660B1AF2FB65F1AB60BEA54BFA5507910141E8F5C4230188C5F0EB7CC820B3BB2E51F74683320F4AD529FB0B8175D42FC8222CF061C3EDA97C5AB19975EFCB8A7593B6C4232ADDF53233EC131C17E415153FD23534A9640F2E159AED824510F7DC31377A8D29908F344C42F243AD437245A4F620AA6480CBE547BD954EB7F30AA8992573949CDAB9427677279618433AFFC27924ECF99A5E595FD4A7C3FEB113EEAB83D2A3EC5CEE694AC7EC0C85B4BA1E4DD4DCB126C1F4DCAF839E638E911C6E74DF1AE8863B83BC273DF7E9F88D7DEC0D10270E155A7D328A263EF9DE68647C751B08187125F7ED50BEFC8F177C40B8F237F02F0AAF9D1B06934A70000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (144,1,'Satellite_antenna_(48)',0x89504E470D0A1A0A0000000D49484452000000220000003008060000007459A8520000000473424954080808087C0864880000000970485973000005310000053101B7ED28520000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00000C6E4944415458C3C598095053771EC7AD47AF75773BD3BAADB2A81C1594AB881787821541398A1A109443E494FB902B908410081002091042C20D01C21D8EC81141C211300A72CB550101B76245EBB15D8FAABFFD278BDD76C65AA653DACCFCE665DE7BF9BFCFFB7D7FD73FAB0060D54A9AA2E2DEBF2DE7BE1585286FEE555BB56AD53B7F2AC81E636B0D16B709B3DCFB5704C2CACA6A0DAFA57F0AE31414FFA780EC3530DF77E0886D1723ABA434965DFDC0C2C653F60F07B1B4F324D9B8629FD3F20550D974F58778764D1F3E8E2D4217FF9818A9AB6B974BCB28CCC829A84CF0094F48CCAFE97E30303E0F654D3DE089A5C3F153EE67571A64F5D0C8B45753B3883E3030492A2F6FDE2C39BF5D7D9783A56360CB3187806F34B48FBE30B2B06B5F3190FAFACE6D97C543992D2D623F51F780777939AC797D4D56565661C3860DEB25DF43F0143A2E3A39974824AE5E16889696D63A8CE3F92A12A3EC3FB4828BCF13721A162839F57D6456750B31B52C0B9BC8B10F8DCFD85C5E5EBE26AF9017C8AB6B8962B08AC2AAAA0407DEB6B80484109D729657D7AABF2C103D438C537C7A1914D75F81E20B5780537719F26ABA20B3B213982542A0732E426C7A15C4A5143CC2C7670B4349C9D5386A96DCAF2D1E82A304F3F942E5DA3A217D59205832B3CC23880C35AD0350D736087C6475C241A8BED42F0DBAD8D442A0B2CA004FCD87481A071272EA219A59F52422B1A83C303AF32B37B78C756F5A3C989080E9EB1BD3AFE1B7664ABCF95610F1E0CC3E02ADD4C2D2DEB32D84940A82AEEB70493C066D3D13C0AD1502363A15A56337348A46A0B4A11BB8F56228E48BA5DE4A29BA0409D917208A51B1884DE0A4FB93D8DA3F5D3C0C9FA4D9D737EE5CC3175A8BC5C387DF0AC26F1DC8EDEE9FC2722A5BD39D7DF1F7DC034970B1FB3A64732F407C6A1EF40CCF40DFE82CF45E9F05F1D03408C5A320100DC385F621A8B8784D2A6346790792AF19E2326A81402FED0D2267DBA0005D1B1A1AFFF7BEFE89583E9FFFE165F170CA5B41AA04BDC3B5825E5152129F54C613F15CFD2367AD9D02A0B846081DBD1320EA1D879EA129189E9883C99B0B30816C68721E7A47A6A1ABFF06B420EF49A494489857DD056928A6A8390D404AABB889A572FCAFF68E66491E844098BF24A1148456DEFD01B7FE8A38B7AA2B3110CF748C67F32EF961298FBF34B3059FB05868EA18907A6474EA1BB831BB00F3B7EFC1EDBB0F607EE13EDC98BB036353B7E11ABADE79ED6B6842B2F25AFAA4D2B1CBDB016520D40AC4CFF0B4A2B816E155DB5002D5F4ADC14AC96954CAABEEAEA6E7569F720DA6B0FCB0547A0889F1EAAC370E2C4E7900919A09A2BE49E4895B3035FF2D0279088BF71FC39DBBF7616C720686C7914DCC423F02BA3C30052D97C7A016053E7A4110B40F4072610BC467D52E62A3525A7FA9A6FCF8859C5E6D975F258AE535F6EAD97B93F8FED884227C7C26F8E3E86066ED062E3E382950DBD5B125A0BBB0B0F8101E7FFF14EEDD7F0073FFBA03376FDD81D1AFE7A1EFFA0C7423D98457C6A0FDF208E4F33A501CB50329291FC86C5E3F3185ABF7D6CA8AA717538BF9DD0EC4A4FC18EF50F295B068064A5D2E442773C12B3806DC505737904A1607175A7BA07F6C4E1A3373B7EF232F7D876090B716FF27DBE4CD3B20E939E2FE4928AE6D834AC155C82C6D0176599B34B0C9AC9A2CB78CFFC7CCCF400202681F04C7E6B2CBEBBB8F24A47317A312732098988ABC9204D149B9109BC2014B071F38E5721E02D0393BF750C82B1748B36970621EC667166072E6364CA1D899BE75570A3938360B459517A5E5A0A173182A97328D55D60E49F94DAD447AF5476FEC352E2194EDBE84346C4A76C5934CAE00C82985104E4E87480A0B92585C28A868064A5A316063981095988F643B072627DDE07C240D7802315C1E9C826B28D507C6E7A47083C82BACBC4A100F4E437BCFA4B44ED5A042C96DB80A393C11A416B75EA715F065DE18C1F65E51F671A9855F27A69748BD40A4E600920B12985C54E0181043CF8363B65E808BCB84486A2EA06E0B67BDC2E1738D036079C617A29272A0BE6D002E5D1E45360271C93928D86F407BEFA4B45836768E48614A1B7BA4AD845174A9EA170B8C935F74661CA3E8313DAB0A68993C08426F1C43CF85E0C8246071F8606E730E92D89590945101B8F81C303BE90A2656EEA0A96B02279D824079E741386AE902BEE154E90BD4770C4113AACE12887A540C2559259149D2DF621825CFDFDA88AC5D42737171ECC754562990933940CF2805FFF078A0300BE108C609C2A299088C068EDE04F00EA30081920587CC1D90772240414DEF67A6BAD718010680FBF918F04170A13148EEC43CF00AA382BEC9E91BBF3A7B58D8FAE4F94724DE0A21A521990A2121AD1018B95580B1F706122D0F6C5DCF4B173FE38503FB73E1E0131A0B6C4E2DF8A1879D3E87035F2C054E9CF147F22173F00562025BEA2D3D639B7B48D2EBCEBEC47A6C2C5BFBD727A755AB8E6770AAC4D858D67F904C8F927378905DDA088E5E58245501B8FAE121106596249B52B34A8010970EA75D02C13D200ABC42620155E897545631839673814CCDA8C01754B655A5719AAEB0398D2682F661D9BCCA76A7654D686BD7AE25897A472750237C2E092E06B715A2D32A5F0546B39FA199F485BD17016CDCB070D0CC0E9CBC23E0A4A31F1C39E108062636A07DE838AA39140EABF822B9A0BAC327A7AC250D4127F9E353EA5C02638B1ADA86084422AC5E16C8A64D9BA84545C5E58A1A7A7121D1CCEDB4DC3AFDF058E68285AD870895FF2B16F67EA3FAA6F64F54F61C06A3638EAF4EBB86DCC138F88D9BDB78341A635C09A4C4ECACE4AC8A46F4DB467B2F62A5C65E63FC0EADC3B186164EBDE709C987DF58D0DE641B376E8CB1B2B21692E2A94972CA5A221919D9FCAF3036990850BA79525151795776AB324D65F7E1319BB3FE5CBD2336065A5F9ED8A9AA735441C7E8F83FDCDCDC3EFC5D8667191919FC962D5B66A6E6BEBDB6454155476EFBEE76030383B5E8FC3E64671090B782AA5E89BAB6C9AD63B61E3EBF7557B01C69429141735BD7544804892EAFA6AD26AFAAC7946CAED1F91419D92D81283D9FEE3C60FE83E63E53C3150341D2F84B405CCF7909F3CB9A46155475AD1555758C14547419E85AF856652DAEA2DAFE7FEF3238068A1A073457D2239E12102525E5816E346BECD433EB451E7829317935BD69747CB44D437F4C0AA2AAA3B09220CE1210642F9A3AFA169985F5534618970E1DC3939D5FE89A76EFD865785573BFB9480AA2B97FC34A4A63B7040241614411AFA55FDAC2512D01BF4826D87912E008EA315210C5A3EFAD1808CA8C93AF415454D57A139845A3A849CD455039F7D1B8F0F24710FD63CF7E2BC4B240247B59499C1C3FE990EBE01ED4F38596F6B72AEA5A8BBB740D6FC8292A3D50DCAE2554DBBD5F5F43DB78CF8A82BC2E5A41111426AA8EA3BB750E2E2AED507BA4BE4B776EAB9CE2C33DFB8D2EBD2ED32B0E820A5601CA8EEF367FAEEAEB1210750F975874B7106D88BED8B927222022AE9E51D29AB1E220E8B31A41DC50D731AD770DA124D979E0856868AAA6B0CA86D14E2F37BB4AC4A015085E111915D415039194727935DDC26D9A06B77D098C9872C1B56BFA660E59564E214A366EE1D3AC92E69EF4B236727C26FF21F252B31F311DF7BB8348E242414DB7067963F8B43B4E5021E89DCECAABDAE74F4C7F90DAD0F09ED929AF4A632BF78BC81B2331CCAAA9B0B8DC14341694DAF990BC7F37904D5A5A1FCAABED17A0CA59A1A5FFD51481CE1D15F58DEFF2084BACCBADEE9A92C8A56F6297A0A1636A77CC3EA08B905CF22A80C4AE700AA12859BB45549A9DF671F8CD2092C591BDFFD9678A1BE455753BE5557572D1B1CED8D2F5BEA69EE9453D234CA62736B1A584DF39FBC9279FF82BEED855BD5941A545465E45E4EC4F9E3D7D2EBCE9943BB6485D5DFD2F874FB8D4ED3D646589D65B876CCDB241249DD4F294DDD9F068DAF768F67C7114E3FC62D73E83E76A68D85156D302593965D037B585333E04F0C7D3E1D34F3FFD61A3CCE627325BB73F5BBF7EFD081A0D5EDAA27975BF1106E495D47F40F72F6A1B62BE57DB6D302DBF7D67DA72FE067F0DB2C6E090B19FAB77C813CF60F20B5F5CF24BF4F6E0E81B0598B341AF0C2D1C9F6A1D30FFCEDAD1633CBF8C3F9F5D5C3BC3E4D42ED0B2798F12D8BCA751A965AF42E3B2C1079702CE816438ED8E85E3F6BE70184D6C2A9A7A7796E3959F4AF33E3265649AC80C3EFE78A3FD56C51D91F24A1AD95BB7A937FC535EA547EFE091C1332E9E23D676CE3D1656F64263F393170E189A97EED633CA54D7D24954D8AE81DBB445CEFBAF1F7D7C063D5B22CD7164FB96ED9137D48E779662660DB2B54B5ABF8BECBDA5E3BB4BE7D62D5D5FBB74EF6B5BBD64CBFAD75962FF05EE5A73924AC4BC860000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (145,1,'Satellite_antenna_(64)',0x89504E470D0A1A0A0000000D494844520000002E0000004008060000006547451D0000000473424954080808087C0864880000000970485973000006EC000006EC011E7538350000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000014164944415468DECD5A097C54D5B9FF66EEDC993BFB9A7DDF431212D6844542D8545C40A3E04EF155D16AF1D94DE9D32760B5B6D5FA6A95D256DBDAAA94278AA0501091256117210B24210BD9F7CCBEDC75EEBCEF4C828FBE2E421E1627BFF33BE74EEE9DF97FDFF9BEFFF73FE70C442211B89AED9ED5EB4CE3794E0957F945479469E379EEAA023FD5D435156479785C0F5FAD10B9F6D6FB6FDAB475CF33E37DFEAA787CF9436BCC9577AD7C67CFC1132B15F81ACF67A8FE9580672DBAFDBABBEFF9A6D664B0944E2B4C37B99DEE9F4588FBBEAEC0972C59A2F388FA9D8929E9735BDBDB838B17CC0C6DD9BADDCFCB4AD7783F53314E832FF9B5FEF9D7A6551D3BBE2B3D6782A3B0642AE4672601A356415DE3F961392CD26D4DF5AF6C78F1E9755F1B8FEFD8B143D733147C56CDD0598B17CCDBD531E49B6BD4EB52E3ED26301918F0F8D99853B567A17F68E45B78FBBAAF85C78F9CA89B3F3CEC7C96A6A81D34ADCEEA1CE85BFFCEDE8F46F2E38BBE151397F08C5ACD583CAE11E86C6F8596A633918913F273DF7AE3E5D6ABE6F103353596188DF545654449C53A1C1FDB2CA6F0E6CD690FAD5D0BF203F754424A4ACAA7E8A695713953EFE402A1B95A467D17C368FA2D66F3BD97EBF52BE6F1DD7B0F571A0DC6EF4622E10D5E7F7081DD647A7DC68CE2E37FF5650A05959898A8E9EDED0D91EB0757FF705D515EDE5941921EFDC1E30F548CCBE3F3E6CD53A92C59AF4C299B71BBCD116FA1288A4786ED0F4BB2530A4B2E59905C822C364B827430C0B84FFC72F56A9E3CF7AB37B7C4DB0C865F9A0C869EDA9ABA8D06B3A9CCA2B77F67C6B5C5FEBF53ECC2D885FEF75AD1668F89B1F6F70F08DBB757A52C5D5ADE7DD9C007FC8ADF3DF6E01D2B747A03606DC24A1C516333866519A43036290C6149C25E04BDA8E7D6BFBAE51825067C369336DD1B087CBFB1B965B1D5629657DCB5E4F14BD61B11B90DE4C82D38DC0C4AE90EEC5FBA2CADB2ABB555633659CAF53A06745A35E8B51A30EA9968F69B0D5AB01A756035E9C16A3682C56206BD4ECB00E7A95033BA25033EA9B8A5BD7777586329EBF78675DF59FF0BCB25CB0D9A6A030564D3406D0585B2F2B245963DA85A69B6589B8E1F3D0C6A5A055A0D0D3A460D868B0CB018B5603632E01AE882E19E56484ACF02B7C70B121F82D49C894AAB2D7696C5667FC36A4B1A78EAE7EFBCFFE40B6F543EF6D8AB9A7FF6E5AFFFE2F941EC121E7F7CA507401E6C6A3A9F7BC9A1B2650B501CD575A3A092EF6F6AA8AFD7E9B48EF90B16808A528252890D039DA889C18141A83A7800F2271440C9A40A088723A05153A0A4D498754A10C43036097841D2088250290A7CA54ECF7B9F7EE9ADF744817D4727F61F5CBB76ADFCF70862346F6113C2B913C7CF5E12AB1CAD69BF63D7BEE3BAEB17961D0DB8875F7E75C3EBD7C6C5275095B7DF0E48572483A0AAAA0AFAFBFBA1F2D6A560329BA3EA8C000F63EC0742A168FCA305A3E005043F6A003611AF791078D2B81E9EE7370A5CF8D72FAFFDE617A5FEEDCD3BB666A5A5ACEEE909B98A8A920E4C98905A7629C0A925B77D639B9E61F24ED7373ABABABD3FBBFEDA39738F9F386EAEABAD5565E7E42248193C1E0FCCAB2807A3418FF1CF8086A6D1DB2AD06854A3D76A8C52F49B0E438B8C35186ED186F7A8D56AC02204B49A31E17801ADA6567F527D3A69F7BEA32D8BCAA7B9EACEB44CB3592C23D75D37B575C4E529FF78F7FEF3C5C51306BF14F8B2FB1E4C329BF4372B456538120A9773A1F0607A4EA6A5AFAFC778F8D021A54EAF87D2B25204A523E9841E14B0933194A86822330894CC8C96D100AD54607EA811AC6AB4D1A34D13ED69044F8C40B369F574955AF3E8DEC335531995C21D1F63959393E34E0D3B3D6CEFC0D0CD2513F3F75E5201FAD3474737D98CFADCE6F69E9343DDBDDB8B264D7CF07C6B83A9BBB373415B5B2BD86C36587CC30D80951918CDA847552A25502449541482A130CC95C49E687888183A02B60BE1C261CFF162F49AF41C798FF4BC00CA300F8931A681DA735DDF8B2F74BC6F71F3D52BEEB9B5ECCBE42EB56EDD3AD85677ECA3084B7F2333252ED0D4DA2A1C3D52AD8F49489D683168CF1B0C8624B7DB056DE7DBA1A1A1116263E381D16A493A011629A0A3C0D110021CEB8B521189F2BD068D41DA1CF53ADE437A7ACCC8683FF69C925281DDAC3778B9F06D812176894EADE84E4CCAECBCE986053D5F0ABCA2B0307CE048DDA7FE90F4E08CA90561D7B0EB595E92727B7AFAF6A5A6A6146151C2F8D4808849B77BF75FC0E5F2460DA0542A08CBD162153584C4B341AF450AD54130E48791911104486642C67F470045D7A8216AD517E055786DD5D2101471F668759C20C9F9FE5070FE91531D7F993F7BA2EB92B4CAF31B3E58AAD53195F91989A1B6CEF6974E9C38BD47F0BA56144E9972281462816359F0FA7CC8DD7E20AB3EA3C98C52A102D25353A221C460B2467B351DED89F79D2E0FC63FCE10CE4830C44388E5A32173219C0813A92302F4BAB9B1700A4343ED7148CA2C1091855E9545FF8FD64679FE4B44D6DA57FEFC925E6F68CC4F4F28DDB9E753977B68304FA7D3DC9A9B5F043CC6A48AD640477B0BA4A52440FFB00F9A1BEBC1E1B0414545054C2E99884C4347170A5176194B509EE7307CC2A0D3E940440A259449E29C1FEB253608435E169061C11F0845598CD19BA346E1B3231CCB3DFCCCB76F7BFF6F42E5E257D5C75BF70524CD73214EF8C994E2A2793895376767E769D4E8358D868972B84E6F8296E67360B2DA60A0B70B4362188D698793A74E032A43342436AA6F4841228D142825864910670D89279A1B0A1C28B151186224277CFE00586D5664250D188C464C7A15DEA724E1A8C3F1B2AA138DC2ECA9B987FEA9AC7D6CFDABC9B44AFD467646E15D0AD97B7A7870204D0A87B17AF603CB86A074FAF4283793F826D5F5D0A16AA4CC595166A9AE3A8839E0849C9C1C983D7B16A4A7A57C418B848988C620A0099DCA91D122C6068270B6B90DB2F119E18BE275112391D9E149CFFFC1C8773EB46AD52AF11FEAF1879F78F17A35C35C97E0305E9B949C51E0F379A3A142A63D14F063424A909A9A060CC320CBE8E0D8B1A338D642726A3A9CADAF031FE682130DE0300C4A4BCB60E6CC193813F6D1A42472626C5382C26B096BC3D1E327613AD60B5285C5B1D8FFC20871D488313A3DE091A8C57F132A175E372D9ADDBA65DB2773B0505028BAF289C77D5E3770A120A02A04056A1432E5C490EAEA2AC8CD2F8063478F424C4C0C7A9606ABD58EDE9420E8F74629EF0FBFFF3D34369E039613C064B161722B1090088160282A541A1A1B212323736CC327AA1DA34C7541C890467413CE703AAD08FBFEE9D22DD05FB756920B77C6C6D8392EE8634C662BC8449F04FDD1EA393838104D40C2C76A8C7FF22DB171F110C0A9275F140C06A1E37C1BC4E17B4AD4327DBD3DE076E5C20F9F7C12F2F2F361424141B4272A99E401E6551428014EC2880CC8E7501882844A23F4282EF7C8F0EA7FE871F25AB66C59E4F54D5B3FF4B8DC8B1CB171B15A2D43D11A1D48A200019F0BF2F3F2309E5D60B73B90EE5408B2958829B060D2CA128F6F6990257C18E7A9A05233D0DDD58109AEC14A1C0375B5A7E00C86D481FDFBE0F3939F235045D4FB1A8D169FA34142EE27424E1EAB13A3868C4EC4A1EA7DFA4B5A735EB76285DE48C5EECDCA4C2B8EB15B75A0A481E358D4EC08CCEF8B169A94CC3CA8DAF70916260764E0980D7AA1A3B31BD2D2B3A1BBB3154A4A26434D6D0DB4B53603A1D623870EFC7D9D8D9A262F3707D043188AB836400A253A89F42154A2CDE71AC9ECD45EF26279D6F2E5DA1875FCC7490989135253E31D1C1F89966FBBD5026D6D2DB8B0C881EAFD7B212F2F1F2BAC08BD3DDD9094920E2DE71A20774209D4D77E0626A309129252C1116387A387AB4167308106F3857C8E73C4896122434A7212CE442D996DD8B06163541613D069699961A3C5D2181F9710B65813E65FD62ADF9494E49873CDD2B7D013F36935AD2E2A2C80C4840418E8EF0647421A1C3BB41FD29069C827F6F674C194A9D370F171309A880FACBC2BCAD71E5F0042820C110C83533535505F57030BE6CD21B3D45F73A6A14A12586F49C9A4998D67CF1C494CCF2B93F860974AA571F21CFF5FB9B959D7783CFEE687EE59F4E965EDABF8FBFA9EBBEDC6F2F4DCC229F2B0CB33C4F26197D71774D8E2534C18A36AABCD010A22A82894BA28C408AF6B50E64A08F8745D33B4B5774057475B541A9359C9CACA86850BAF838E8E8E2695859E5E5A3AF39ABE21E7D29E7ED7A19229D3CB31C6C5E6D661FF8B4FDFFBCD3D071BB29D3E4F0A82DE78D91B4258C15C3CCFF6899268D1EAF47142988DA5507C05FD22F87D6EA0B526181CF642281840DA63C1597D046763B468D9D0288167D12066B422626B6F6F8373E79ADAEFBD6FE57A8DCEF087A0DFDF939B91A80E062CFD7BF71F7C3B14F066A5A66697DEB5EAA9DFA1FE05CEC03F32AE9DACD8D858C3999A93F4C9BAA6F5870E7F96FADC0B2FFD1EC3220D99310D5742BFEDED683D86491BC7717C1CF2BBDEEFF5280358ACFC58BC0281407435458A9452A98A5014FD394A88ADC8A347398E9B1E171763EFEB1FB27F76B22FAEB5B9A9AEB9B9D1199604A6A9E18C3B2131A572DFBEAA475F78E6116E5C3B594949492F1A8DC69BAA8E7CD638B37C61B51C0E4F137CFD7DC8B57326959617D79CA8462114F9514F4F4FF3FAF5EB957FDCF4EE1A5AEBB859A7D327CC9E530EE73BBA6A4541602549181104D12D89A2AF7862A13E3D2D5DBF6DFBB66A5FD0E79204D9AB53EB433EC1EFEACA4FF045DE7D37FCFFDE3B442379BFDF9FD73FD0E7985294E5FCBCAE45D218E375426070C78EAD9B66242727FF42966513B977E3C68D05B4D660A698481672704C5C6CEC53AFFD74CD8FFFD1673FF5DDFBBFBAC32BF4AC40BAF7366F3EF7DC4F7E1E1374763D81F3B5406BCDE88C9EA0D1F41ABCE73F333333E3500EFC3B310AD59D93FC4F0E471AAEE406EBE59E0145F70B77EED84E6AF4D299D7CC7D9995BCE558F46ECD292E5FDADEDECEE1ACACC105C0BE884AF56BBCE73E2C28C458E818711DBB6AC049A8907E6868A8880DB1A15B96AF4CD6E9E3ADAC9ABD5706F9BB5925E50B5004C5E32D751AC6FA24F6663559DAA3C3DF7CF189C1AB061C41F1630668F67CBCF34C5E5E5EB99ED16DD609DA8751B7BD8D99BE49A9317E5B634E5FA3D4184AC8BD6A8D2606C32910B9C22708E3F238797DF4C1168928B7DB96DD2121A29FE37F7F4B1853AD77542A55CA0E14A2B9A8F42494B876EC7D57FAD463DCC0DBCFB7E52383844BCBCAA6A56764551B0CC653286DEB5594AA45A15092AD05371AD6498C8B7C05C055971B2A17661C7BDBE99347EB32F22717DFBFEA91396E5F10BCB8C8258B0DAFC70D3E6C5EAFDB4AFAAF83C7858BAF776E7BCF7D49CF29AEB2C749A85C7C827DA6FE74D6A1FDBB4E28690313A1D45AD4FE0651144801D2FFF5C90378AF2A702C2A6D18D7988820964C9B390B288DF670F5415D6BC3E922477C4A0763300D0E759FD7E3DADFA562CC07F48CEA8F118D4E0451D973558177777793B3C8EF93F1FB9F9CEA707A82692DE7CE020287E48C8274A32D1EBC2343D1651830067DEDA9FD1F7E5507C0E33A2ECCC89BFCB2C3669E8E6A4F21CB923522CBD98855F63A872881E77131AE082FBAF9EE8365736F58F5F09D151D5F0BE0D9C5739EC6EE4740389A564C9D3CB9F4D7F9C5D3A74A92A82E2F9BD4555F7BEA8FAFBDB4EEE4AAEF3DFF1F267B624C2024CC79E2DF16F55D7DE02573FE84C4BCDC6A77BC3EA1A0B8262E2965E3BE5D1FB6CC5DB4586D359B70515CE4F0F152011B60F78658BE800D851A7D3C37F7C7AB970D5F353ACC9938A702415758AC764FC9B419BB274D9FB5C1A8D3AE55A9D53A41082D6C696D4D1C18186A8808E2AB921CFE6F72268A8D53F0FC9ECB3946BCA2C0B32696DF8873B305D59EB2B064CA9B93A794FD66C6A4ECB78E541D18985038A9E6B5E7BED789DE3DB373E78E1C5E10CB44316CC1B5E610B64149141A2589DAF5E8A3EB0DFF52E0D925E5772A1491F7F0EE73597905CEBC828973A714A49EFF64EF274F65E4173C9B5754DC4FEE0BB1C1B35EAF67CBEE1DDB5D6151BA17573856046D92C3C21B9228F50455CA0FEFBF7F3DF32F019E5D5CFE20569EB77015F19AC1689E94929AE14A4E4CD0AA8D707367BFE785F48C1C73616E7A54B2F2C1C0592E18729D6BA8AFEFEE3CDF84DEA6B1350B6278ADECD6DF8D639F0F02EF4F7BE821FA2B034E7EE4953DF11AE4ECC86F2272E40748790B1D8EB821254565EEDDF5D1BD4F7DFF850A9BDD3EDF6E31559B34E0C5DB4DAE91E10E5CE1CF1AEC6B5BF797EDEF660A3CD78B95743ECFB1670254D72DF5878EDD238ABCC2362C6D5ABE7C3975C55805BF5CCB304C028A29734C4AC177546AE63E890F6E96C4908B31C43C929D9BE76B3DD710D2EA0CA6ACBC094A8BC9E89D3EB3DC7670C73BBDD507F64814AD316A2D29B121E7795E8CD09EB49C62FBEC79D7D3073F7EFFB3CCDC92B46D6FBFF22CCD301DA5736F59C3B16CCF67073EF836A1556CECFFD541970C1C41D3CBEF5EF91F0B6FAC5CD7DB3F84AB1C170C0D76C3485F0704B830B02C07ACBB07383600A6D86C48484A06474C0CE4164E81BD1FBC2977B49E25CA91672CC966CEDB3F802AD1658E4DCB9F52368722BBAD98B8E0750DC1C8502FD01A0612D3F26491E74436E873BA9C833FED6A39F32B7C5E1A4FC957B9474634C34303B246CD28E312E2C1EA8881F4EC02E0381E789685502818F1B89D82C73522BB9DC36EB34EED8F37D1E6150F3C1C542A28B263AB96224AD21B2240D92439A2E41030C785D07016C898E742D10D537C4F29709C86171C895EB7733E7EFF1B63DEBF6C8F937827BF5E588CBC6CB33BE2E30C268B9D6174368A569B288A362A940A14500A1DC6BC5EC4C44B4A881BB8ADB2329E1CB4B2685C28C4CAFE40900F840242004B262E4B053EC48A5C2820F23C27B06C481478161DCD490217920481970411FF42813F0783FE77114B68BC31AE1C9B056AAC916BC200E4E71BE44CDC888D1412B3466748C848CF4CD6EBF59CC7E5F23A9D236E8FC7497E15C48DED06909E1D1B0B63DEBCB85DF8E544F40C0171705F49C91FFB29A972AC5D6C5874DB6474CB3DDA5F18FF55BBD28BE5FF014EAA096BAFB3185F0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (146,1,'Satellite_antenna_(96)',0x89504E470D0A1A0A0000000D49484452000000450000006008060000004BECBFAC0000000473424954080808087C086488000000097048597300000A6100000A6101FCCC4A250000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000026294944415478DAED7C097C54D5D9F77397D99724937DDF1312086109105651CBA2BE4805772B56AB225D7CD5AAB5568B565F6D6D7169D1565BD1E2020545D917591396040890102081ECFB649F7DB9DBF79C33331068FB7D8A50C5EFBDFC0E67EE9D999B7BFEF7FFFC9FE59C3B8CA22870A56F454533C20E1FFEC276A9CEC75EE980FCECC5A5E94EAD5EBE94E7BCE24151C9EC889ABD6B1DFF0B4A70DB7AE0E4785058EBA53EEF150D0A0370CBAB8B1F3AF8BFA0E036F9DA79F336EF3EF25A5F7777F76501FB4AF33E0B172E54C5E55F5DEF76B9C2BBDA5BCA3E7CEB37B3944B3C08FE4A634974CE55B7DF386352B2204AF0F9E63D2794CB7057BFF5A030B7DECA5DE5607FFBECB3CF8E6CEBB69FB6DBFA6F686AEF054442F47AEDAF5D8EBFF9AD0665F2CC9BA64FE1B49F1B2322C3D66ED929DC3C6746715B3D675EBB76BDA2D16AAA6C2DDD3DFFDF68CAF3CF3FCFEE397C7AA5466FBA393E3185898D4B84084B24A8D51AF0F97C8D99A931ECB0B4D8944187D0B1FF685DF193F7CF6EFB4E33E585DFBD39BCB9CBBD52017E784C6C2293949C0EA9A929909A6081A87023F80531BDBDDB069B4BAB61B0BF3FA1B3F5F44E80D939DF4997BC7AF56AF5D2773E5ECCB26C794242DCFA29C56336ABD56A41ADD18041A78608B31E92E32C1013690693410346A31104D1CFB8DC42D6FD8F3D67F9CE3165EDA65D13FC92EE5D86115C5969A93F6255AA5F0E0CF4BF555B5FF9449FB9E76DAD4E3745946468B30E8028CAD037E882EE6E2B32A50FECF641C663979EC6D33CFE9DD094AAAA2A83DD29FE8FCDEEBCCFE1743D979F93A3EE1F1C98D7D7D3BF60FEFC9935A1CFDDF7C88BD72363DE0E8B884A526419DC2E270CF4F7424F77177475B48249AF6FDFB7634DD2150F4A7575E30C8651DE19B43BEB049FE7D71116CB0B2CC355D570DEA76EC9CFF70FFD6C7272F2F5B22C6F8C8ACB78262A2193F1F83D5739EDF6893EAFC7C0324C67545464ECBCEBAE8B7EF4D11FF55F91E6B3F5C0014B386F5EA2D36AE7F22CF77364C8A0C9A8FF1B28CC63052333B616FC8BEF88A2D8CC71DC3B6E7BD71F765494FAF0D08B0C6E0F3FF19BDAFCFCDC471A1B5B96B21AF54D78FCDD2B4E68376ED97B8BCACF9F5464C564B7B9C79E3A5D570CA0DCCF28CCD58585595BFFDDF73A3B3B4FB4B5B52D3C73E68C2F742C18C9D6330A646162B8128FDC71D98496449085EDEE478A8AA77C3F323A2623C2121DC6AB381BBE63450AF7CB92D42FCB52BF88BD22D1FD1E59100FBEF0E4DDA7FEDD1F59B6725D8249AD7953A7D34EC08B5F74E8687593C9A4FD0CB560D9EC1993165EFCE52B141445E1FE8A3B4FAE58B723F68E1BAFB55E5250728BAE8E1A678AF8FCA61FFC7072544C1CB91BB4C98A62C0BB9B20CB0A482874326D1220202005DB0B4B3FE99664B14412A4125991F6BCF4F882E3E456BEF5D795F7EBF5DA57F01C9FDA656E78F5E163F7198DFA67D1F52E987FD3CCAAAF75F50AD3807F63C66F7FF3E8F137DE5A5EC30BE22D7874E925058567B8FF19969F3F3929E99C90078001024C002039D0240581910220115010A018EC6F9624F166B2FFDCEB2B6CAF303E41AF533336A7F79747CFD46E3071EA95069DA15E706B262F5878A3E7EB135DA9C7FF16D157C0AC0006EEB814A09CA729667358BEC96402B58A070D696A1EB41A156D7AAD1A74D87090B419B41854E9D560D46320A5D782C1A0C766009DDE88CAE801D6371806BC26CA2E6923BBFA9D7FE6FCD02CAB0C118322BFAF43F25E222DA3A0A4EDDEBD9B07465C81F76EE2BE7D1529978C29E595CD57C7C4C48E3E555D0DD3A65F0DBC4A85C0E33F8656B84039CB1C3867563235ADA0492960B70D4267E329D0F22A884ACA0099E1A1ADF6388024405C4A368B77739C248A1F8A92E07EFAF7CBD78AA2F4B12D52D8FAF6830F0A1773F15E233460C7A9D551A98F2C9A5EBF6ACDD6433270B7E1B1DF5F12A66000F5942532E6CF1E8F130E1F2C079E6581E75950F11CA882AC093087071D32E72C6BB0D7E2F1C6D327A0F2D05E888E8E839C914598BCA9E060C917603699216F543198C323C06034059AC1ACC7FE0E0CD5D7C7BA8C9D08D05F1EFFDDBBD382F87FE9EDEDC58BDDD875318C9415302158C1064CE8EB33E54065F3E8E6B68EFCB4E8E1731AEA4FE51F28DD737D789819468D1E031C82C3B284310C60A0449933746B6D6D855D3B7742187EFEDA99B371D066CA1CAD460D13A74C054B742CA0480309D3691325105073488FACC15E88C43864A14614163EF3EA47AD4F49E20A41963E5EF28BFB2ABFE418EA255008285B5500FF40609654D634E4140ECB38FDB540F178DC4FB575F5BDFAFCE2DBFD5FCCDD727B765AA475CBC68D3A02C498316329201C02C312800830C82FBFDF0FDBB66D8393D52761C6CC1908E028E20DA83911EF246914D0A6A7C1E0C00068F5063C074B8120C00440190A90186882908CFD93D83FF9CC920F4F0A82F0B12879962FF9D58F5BFF2FD5EB7ABC32CA9479F36675EEDD7F6C0F2753B63C7FB1A070B36EBD3BABAEAEFD85CE81C105667378D68CABA6FD64586EF6C82EAB557FB0BC1CEFBA0469A969C0720140588E81BA3375B07CF972E03915DC7BEF3D909D95193033DA88D9055E13B1369A0C20FABDD4143598F15293E4029F239F097D96471DE2B0F13C4F5F631F8DED1A8E57FFEC8BD2A379DB765734CF9836BAE3C201541C3D51101B1D59909C1CB782EC37B776A9B51ACD03B131116F5E74EEB365EF892F3ABAACBAE8088BB6C3DA13D169EDFF4864988F664D1ABE72F9C7ABF24ED7D66A12139361DECDF32122221C8160E1BD65EFC1B0DC5C183F7E2CA6F0061C144FD914322D25E8CACFBA6F648EC7EDA6ECE054EAA02905D82250F648B41742FB62705F1088791106059AE82FC5634B74DE96F58B172FA6B382EFBCBBFACEE1F939CF4E9E589847A5E0C0498BD1ACEDAA3B7D66DC4D37CDAABC28A65C37F7EE07232DE1937B9AFB9C8E5ED75ABC97954656DD317C547A49B825E601B7C7ED6C68A85757551E038BC5029151513076EC185AF821947762C6EA71B9496A8980213B504B541C3B843981A6D56AA9603318DF68B52AFC0C7F8E55F83DF25D7E087B02FB3CB2870FB2075F737C2AF6B78B2ACB5DDB4B8FCA5B0E549D8C3430AA98A8E8C7DE5B16F7D2F4E9A02427477BAC3D03E37BFB0663F3F332B75F9CF95CBDE843DE2CDD1B116D4AC0C6DAFADDC992283D5D5FDB719FC164A8345A2259935EA76B6D6DE1AB8F5743535313C4C4C68209BD0801C088B109894FC820FC821FFC5E2FD5143208E2AD088B54AAA039A147D2A0E762914B1A640C397ECE7C02401040091B09405C1034729CA300A90830B8CF5B3041BC9E6798450E8F286726C54E8EB434BC979D9D4C27D9BB7B0798FEBEFE871194372E0A94F5EBDF960F56D77DE2F34B8B8C061D2BAA59FD80CFB95CF4893FD7704CA7CA685CE0F5BA37A4A6A4E47574B4C1C0403F1C3A781006060720312111546A3575A47891E8713480F90DA8112C06074E225B06CD8832005942824235054B45BD1A0544350414FE0290CE32861B02CE5080381DC3F2C549D16170AAB963F8BAED65C7AF9D3CAACBDAE96FE81BB03EF7E9C62DBBAE9A34FE2BD76FB9E79E7B0E460F4BB597553656BA7DC2FD89D161AD3DBDF69ACE9E8EC555A72A776565E7DA9C1E618ADF6D2FCDCB1F91DBDAD242BFD8DD6585036507D0EE25484070181C64A83443F48527E6818327F10AC705DD7A406DA8B968D08418FA059982C90F31352E04460810FC3E17640F05860B1E437058FC3B16A3069C5E7FA64F8287761CA82CAEAA3B559E6031C7F7F40EA45F3579DC968B02856C45C353CFEC3B526F747A7D93F2321263149F70577347FB1DE5FB4B0A9352D2B3FA06ECEFB1B29032B270741401262CC202A9199970A8AC0CCA0F1DC281E9D0AC6202112F28677326326C02084B75863085A56EDBE7F3A278FAA9A9F97C3E0CF28CE75812D4176A42DC10130A991605843BDBEB351CFD5B3E897C9ECFE2587EA12088AD3EB773D6AEED9B5E9D3E7DBA7251A05077567B6877AF4B7593CBE77766A427DC3E6278CEA2B2B27D3B194615AED1687FD4D6DE74B541A75F3072D4685DFD99D3D474468E1A0B0DF567E0F8F12AA83E710A222C519843990309A41C4C2465E56C6A4018A5C614C288B95298D948CDC98B3A545FDF14F034D814FC22E1150142AD1ACA16EE1C286C9035D86B113C90451020C01C0486F58B9023791D2805AAA8F212EFB6E9D3D3BEF41A967F2A47BEB2745D02AB571DC588F6ADC468D36CC127CDAF696D75B435B5D45BBBDAFFA688AE0F0B468C3E62898AD6ECD9B51D6262E2819419F695ECA083D31B7410151903D3A64D85E1C3F3A966A88362AB0E6AC885FB8441384EA86F6C0306E3209D560F6EAF0F7C5E146E0A14C9CA09ED90654C006C013374E2BAFDD83805A3639F1B06FC1C75E57E81B874115CBD1D80E106C426A5D7F865E1B1E77F7ADBE6AFCC143A2B373ED7B17D7F75A5DFE75D8241D4133A9D6A6958B8794353534B97CBE178B6A3B7E315C9E32908334764E7E60D87BAD327E92455564E1E58BB3A60587626A4A6A5C2AA55ABA1A2E208328581A8E8186A478132831CEC03A1FFB9630A84879B6932E6703800C304649C29E8DDF49867E9A80EF12C4F4D9147930C08324BB549163CA84E245E52A876B11841B3F87E53DD294848CD8AC210E0AEDDE52726EC2A3F56317D7C41EF5702856C578DCF6BD8BEF788DEEEF23C1061313DC0CBECF2D898C8D76A4FD7CDF1389C69919688E93DDD5DC6B0700B64660D83E6A67ABC602DA4A46641F5F14A20F598D1E38AA1A7B70F3D5539ECD9B3071C4E37268BB194DE34780B82210E69649F43D3222EBE7FC086B99144E31B926210B323A612D01562361C3D16081A19F0BB5DA0F06AEAE514640ED12BE204505B20222A9ADE3896E5B259867FA8A4FC44E4CEA3F525D3C7E6085F1A14B2EDD9BAA6C4CF9A6EEDEBB725C5475A7EC1AAB80F3C2ED7DF319779A278C244930B8336724F2C91D128B009187FE8D0156B713F162A0E97410202E3F5E185618E24887EA8AD39053B77ED842E6B3784A348EBF0CE8B1780124A184914ACD56AA816D9EC760A14D11126E8D942C9296DC19CCCE3B4831FBF6FC6C4548D311039BF1EC18D8D4FA41E90A6290824DE1496E1D8624E92E6EE2A3FB97BDAB8BCDEAF34C5F1C84B7F8BD572FC515EADFA4961C1B00A4610571D3E529136227F44ACCF2F048235BC1364E07EDC2761B90F5F3BEC3668AAAF8182B193E16879099A831D592022705A185130128E1DAD80D8D838B8E6DAEF41C188E1E74A14FC39510DB96132708FE75CEE449D38491DA4A14C93A0B3AD0DFA6D4E48C63C4D08A509C116D09880CE08E7BD165C92DFFFE35F2C9CBBFC2BCDFB3CFAFCD2E91CAF59ADD5B2458579237D1E8FEB605DDDA96472A11282E074B9CE66B92ABCA393274F0683D148C3781605D48782B966CD27D08D0C291A5F0C63C616D1CFEED8BE0D0E961FA0E04CC3F87CC2B8223005DD327FD60D9F33193209469A4ACDD38C3B583B3E0B90B5A3031A5ADAA1A07064200397CE07861CF39F074A28BF12C9385E7EFC47D73FFD9526C37EFACC1BCFF02AF50D9E786E5AC2A0B236353DEB3A22A0848E0E870D7A7AACD06BB5225BBC3063E64CA842F74CD280EAEA6ACC93C6425A5A060CDA06C1EDF6D218E6C0BE7D503461229CAE398974B7C0C6F56B68F89E9D9303C5138BA1B0B09046BD7C483F286B98406D87C63D2C8DA29560F649C0E9EFE9852395C761CAD42954BC43C09CADE104134EF102169D6BE28B3FBF67E6B35F1A1462C60B7FB1643346A8C7A3CDBAECB8F8A4B9BC4A838374417F5F0F68757AD0EA4D981806F645F404999919A83571C81815D437D4437A460694ECDE83E6E5C3A4329AEA8AC918061F7CF02E46C449909199032D2D4D70A87C3FADBF8C193D1A264C28869C9CACF35843B5819A901808F5D940F1D08926BA6BD71EB8EE861B02F59C90895D00508835A142D7F9C0088F3D7AF7CCD7BED40C2189BBEE7CDCF903BD5F73D4A5E13F9124815E04B978735838B4B736E0DD02D0E9CDC063DC6134C7C2A0C38F2ED60F9DFD9D98CEEFC3E0AC0EA64EBB064A912544706FBBED0E64D231F8DECCEBA9D91D2CDB0F39B9F9508D0279DF7DF7C17BCB96C1DED2129A99178D1B0FE38B8B21293121604EC16AA0E076520048F98254BE1C0E2705221428066A504131C618870BD698836FFCB370B3EC6FDE58B1E3E37FEB7D2EDCE6CF9CEE5EB96EC721AFD7FF628C255CA752A93113B5A2C29B5143C2503BDC1097904ACD00850778F4464D4D8D909C98489970F26435D8104886D761DED40E23468CA477CFEBF5407C7C12541E3D8CF14C2CF422D37CA85759D939505F770645D643BD17C9D077EDDC052E97074CE11134EF214010D3E9EBEFA7A33C73BA16E2D1EB1106C941CD390B50B0E03E84FD102A09876A41F8BF1AA1812F0D0A05E686E92DFF58B385A87C417C7C8C519604C6ED76608CA2A7531B44633ADAEAE924198915FC1E176508A9B9785170478F2982DEFE41B0F5F7D2FAAF85A4043840AFCF83015F26F56036CCC21B1ACEA0679A854C3A8E4248BC99036EBA691E66E67634C19DB07BE70E4C2BAAA10BA3556226911816B811483FE6504673388AB1263861A7D0F769B1EBBC998873945142D82881EE744D75E25702856C37CFB976FF07ABD68775597B46A7A4A66B895092AA980ADD2DCB129638E84048CE320641206C20394B6E6E1EBD833D7D03288A561A3BF4F5F65060C24D7AA8A93D8DC15F060EB403A3572DBEAFA622DCD5D94E07585B5B0B731198AAAA4A9A1FD950B81B51AB0E1F3A889E6C3B825F8FF18C16AF4343BD9F4C23E873D32F8126D3E3944110E843137E21D61C3CB0D7F0954121DBAD7367ECFE70D57A68EF689FAAD3AA38F4148C2CC9F48F68347A10F0CE93C2362946D5A109383000B3A39722C198DB2B80B5B305CDCD83019A9EEA495B5B3302E94333E805F46CE0F53861EA94C9909C9C0635E8A1041A9DFA61F4A84234A9062AF0E76B9E4C0BE424313D545E06BB76EC80D3684AFD6856E46F12E6105393822E5C51020C0A954C09242453DFBE6D131C3F7AA4FD6BAD4F9973D7CFFE9BE7D5AFE664A53131511686C41F2CAFC50BE0C03ED88D89612465697373138D4D9059D0DAD50F8DB55528C261306ACC04686F6B81B6D626987EF50CD8B0612DBAE5E180F90394EDDD052331D0CB19960F6507F6C3D12387E18639FF856943053435D6FD3FBC2543C126AEBB60781E34B7B4A2097B30DA8E42538BC434C2181015BC385196D0E4DBA0A3BD9564FDD2B0FC82A7BEF6A29DEB6E59B41023DE3FA7A624F93352933464F0C0A830A14553720C4076EE303876AC8282928AF14A5D732774B69C41B3898009C55741E99E2FE89DCFCB1F01EDED5DD0D9D10C59B905C838031C2EDB83418982714B110215013EB71DEAEA1BA1BAEA08BDCB448F4CA821249C27D132298106A823D3C9BCD3A76B00AF09162E7C109E5DFC025D1276DE4C206A605C5C0224A6A4784CA6306B4C6C7CF58B4FFE70CE2559C9F4BD79F7DF8377E6DD98A82887C96C0C1F187462F2170531E84DE2A2C3F162BA50036C9086A671E27423387ADB41AFD763003715F6956EA7D4D5E9751019970A355587298059B92331EC57416B4B2D5822C269E973C4C891E83A556047E176FB6434DF2E34C576C84C89A59FD95F7608F6EE2DA505AB1FDC7D370A3EC0471F7D00E9E9A930E3BA39F0C7D75E254BC3C4B4F40CEBF8099379E21C06FAFBB6E10D5DA63798DEB089F2A4C7EF9EE9BA24A0205DB3E6DFF393594EA7F03A8B3E99CC43C7C7C540667A0635A7C8703DBAE77AD48B6C38565D0B92679006640523C7A1599451B74CEAB9238AA6C2A1D26D1414228ACF3EF5286891014D48EFD6D60E686A694317ED834C74D73ACC9E77A2173A5A5141B56CFCF8228CA667598D6191725D63F3475B36AE5975EBFCDB664447C53CDC69EDFAB3C1681874FB9487352ACE8AB18C4716C497172D98B57DF5EAD59C5F135FE276FB9F78E0F66BF65FCAE55D2505D929EDDF9F7F07DBD9DD2BF50ED87C18C774605E647039BDB13697C0125125935C6423390ECD97300824D930018465452A8A64828D6801C949FEFEF16750306A1C6C58F7290D164952498E97A398464410F39B0CD3AEBA06D9568299F9A11347F75514BFB8F4B5A8E898D8FB6FF8FE9D1F75F40E6C76B8C479C989B16F201B8769D5D0D5DAD6C676D694CE7EFBEDB769D94065C978DAEFF6968400B994A0485E8F4744CEB1A414C9ABB47AB7D79F2523D581F3A3C7F1038FB95253470F15391EF31806BD49536B1B488C0658157A01D64F732792BDA28D50AF40A74D302D90110CE2A245910D4EBFB2303868838D1BD68111CF376EC224EF35D7CE8C1444E5D1C67AEB9B8FFE68D633EFBFBFFB454D34FBBB9E6EEB96F28AD6FE70B369796C4CFC8D9C4A2D3AB998BFE135DFB3ABBC662C5EC95CB53762D2255F088829FD31900592901CECEBEB4BD2EA8DB168965C304A0AE4094A305E42D577B8DCE075BBC91C36BADF73FDA993351880050ADAA4B4498E47C6245040E83CF6BF686E8FDBBF63E7E6EB7373726AF1E48F6B54CAA9773EDE7E2236D1926C61604B8225A6E0D34D9BA0A9AEFE7E87ABA43223332B3A2373D80DF3EFF9F9DF7EFCD0FD080ADC73CB2DE7AFC6BC24A0A09BCB4197D9F7F4AF9EA9997FDB0F0E6356CB2F79E54FBFC5C02915142615E1484558D2F41AF55D0EDB208245D640296A381B82877A999A880F0121710C09FC9C4E5BA048149AE00FF60CCBD662BEF2AEC2487F2FDBBAA17BF7C99346CEADEAF478BD8EE636ABB1B6BE250AD38A8CCA43072676F7742B9222B72A8AE8ECEDB68EE5F983F128FAF76EDFB1FBD3979F59547559D6D12625251D47B14D387EA2C6DCDD6F2FB8FEC65B7E8BB4AC395355FA14793F3B3B5B8339CCF76FBC79C18AD2DD5FD8067A3B07307974982C51B5E6F0E82E63786C0F9A4EA2CBED1E8D60E47BDD1E038A2F5330B250494E4971F6F6F6F6A196B82441F40A12C6CF8234883AE44300C3F4069D65CAA489C979C386990E1DAAF0EC292DED73395D83E89E9D1873445657561C777B1CBD9220D911793B9AA60D64C66EB68447F51465BFDDB26489E7B2ACA345607DD82C7B4B4B4F8D1D37F159B7BDED299D31615D5A4EE154BFB38747C0C8922BBDC33ED8650CB3B008CA13674E9FFC74E8398A8A8A549D9D9DDB7596F40A8D5697AB451F9D9E966EABA9AB5FED777BFA2545B463EA6F9765C986B8D8D154ED3E49B48F1D3915FC3AFFC0DC19E3FBB029C12570DF8AC5C5747DEB071FBCDF3F76FCC4DBB3D3D2C73734341ED0981367B216ED5F7C036D5908CC910F96BDF56A5C5C5C06E6423BE2E3E32B1084A6D0093A3A3A16F36AFD4ED49CC51CA772CB8A6430994C259B56BE75C9D6DCFF471717234BA8509597951146B0EF2E5F55D1DAD2B400357532065B8FF1BAB09CB6B6B657C967BABABA1A10A05FA02EAC2666458E2526264EC6636355E6383331695EC519E8C5716CFD37B144FE92808203A24C41634FAEAD39D58A30DD5A75AA758477B025CAE7E8EA51E9238765174EB931F479046815618ECBE57A1D459A00F12746AB7D1875E83E3C9B4C6A3240AB6B52ED150B0A6E675DDA8A8F3E6826387945EFCB1895FE1D24DFF7913177C90AF3715621465AE7807C04D93205DDF94664DAAB5A43E2743C1C8EDEA59709AEFEB17659CBAE585088D09E9D2FDABD238AF46AB5F686AB66DCF05E6B6BEBF13395A5EBF1438FA3CB5D8BDA3B21B880D083DF7B17011887FD113CCB4FA9C8F1FC60E85C7BB7EDAABBE2CD0702539EB93D3DDDB43E9893377A7EE6C82977D1258CC7F7FE4561983F61A0BA3973E45505C9C9C98978F841B2A69ED71AD6633F9286DD6A7568225CAAAEDEE5FC4E980F0163EDA7ABA8165C3BE3DA711A95E6C5ACC2A96F648F9916DD5055FA0C86691B3188DF86724A74E5C9F6F6F63FAA0CD16DE7A263AD31842F7C43DB25371FB26DDDBC414B4F8E79CABC5B6EE9C348FF614554BA330BA678514C67E05B719AF0A45CAD25635156C1D4152CCB9FCD3D78B52636F8D27E45838282791E28DDDDD6E16EB78B468A53A64E1D8B621A7AF48DA4C9A14147229CD70303B79F8D9718F0F1A46416A898DAAF74A6F82F38A4DEB96DF3895069F0E65B6F770E59DEFFEF2F86615B430BBA31A9B67D53A05CB2309FB9607DFAE6F59F4957CF9C435F178E1E5B94993B9C4C51F806066D0E9BADDFE5181C74DB1D36AFCB66F339DD4E11B364896358D39053D8AF685088F95C98583637350C93C8745D908D0434B546AB319A140D66D151648D9CD16406775804ADD1922957B7DB39B452FF9D331F722CECF0C1BD272FFAA4F237673E97C5FB84B62DEB3EBBE88129DF01F3F1FFABBACCA9139539EFBCF1D21EAD218CD1E94D98049BD49C5AA7C3DC46AF006B521499E43DEA7F191082726583825B1F3612929362B0DF6030EA598E671896934F9EA88A71D96DA99224EA51537A343A632782E174DAFAD3D55A43A328F822D4FAF0D32A8ED9A4D2E89C9C5A2F02C329980CEEFDA640B92C4FB07FBEF3D83187CB5BE874FBE84AA795EFBC0C5DAD0D90993F1632F2C781CBE984B22F56425CDA70E8ED68005D4412784429A2F1E8AE41F8166C97F561EDC04A23852ECBBAF01D521E08BD0FDFB29F70B9A48FF59347ED93D3721E1E5F3CC9CAB07CB9D7EF97FD7E9F3CD8D74D923D53C3A9235263ED310941220CE5AD8DD57634255392993FF583877E390D3FB3EEDB00CA25351FCC635EC7EE678A2CD4A1527ABCB6CE2D5151310FCF9C77AF8E57A9FB304B7687691557474BA3F2C5A6CF3887DD4698AACB1B5964BFF3C127D3FD5EDF0D0FDD71CDCEEF8CF964164EFD6F04823496E154390CAB2A6B6F6D7E2AA360E2875EAFAF5763309B795E93CCA8C212E6DDB620EFB5BF7ED28C1972764246C6A4F153670E609CA7151466DD1F966D99F89D0105B3DFD063EF3E74D1F6CCACF45FDFB9F057F72724673CA000A3D9F0E98A7E9FCF3BD069B59A3BAD3D27D1BBCCF87447C53D874A4B5BB2F3479B032BAE25031EDFFCD29B6BC67C47845621C98F9D4C54A566E4BC9C9892979E969DBB34252D4B3872E8C04AFB60BF49F0B8E7F87C3ECFAE92FD398220764822BCFAC167FB630449F988AE389224055DB75690C5AD4F2FF928FF8A0585882B2922A107F9090125253DAB2B3563D88AF4EC9C4F33323234A989718FFABCDE94A4E4B463AFBFF0F03EC1E77BC2ED74F03B77EFB12310113207AF8BA2B436B0BC5362B0FD03D962944561FB63CFBF9575C581427E5624B360F2325244C2DDEAF8C494A4A4B48C5FA565A47F98959192989D1AFBFE9AF75FF94B6272EAE4C4B4F463E43B6EAF773F99346F6A68C86D6F6BDB2F8AF21D8C2265C892D88BE6D381804C9304E176648D055DC0F6854FFD31E58A0165C48811EA8C9ACE9508CD0F7177BF392C7C444272CA264465525A4AE294ECB4D8C3A991AA45B229E581F8A4146362525A3BF99ED4E7ACF1FB7CB2D7EFDBB465C3FA22BF5F6C42F3790B59538540D81451D2C8B29C8EFB372383E241F66DBFF727CFC77DEB41499E3449E76523D6A288DC8CBBA5A48A16139728C6C4261E8C4F48FC714ABCA5292D356AEE93BF7E333E2636E9F7F109C990949C4CD756AD5AF5AA0799D2846674CCED71956D5AF7891BC14844964CC496274AD21A49947F2548DE12DCBF0D5B9AC4C2F6793F7D3AF25B0B4A7676B159E3E4C84F05CD4697B30F995269898CCE8D8C8E5E1D151DFD8BC80843B751A79B116D307486C7C62C8B8A89D5C5C6C541626CD4D905677E9FF724B6711E9FFB81A6FA33190DF5B5A5088C8EFE488D286A516EDB41629F78EBA5473E9765F14E042697F3485B6FBD7561D8B70E94BCBC09918A4E4582ABA9D82A30F07B09BDCE8FC3C2236ACDE6F0697A83516019F9BAB1C393EBEF58F8F44FCDE1E1D3C32222D7465B4C1063D1F4A026B3D8389FDF770AD932EE58C98646EC5FD8BAEE93893E9FBF9EFE388D22DF862C7A1EBDD0A3773FF652FCB2D79EF94412A5BB717F949B536D9CB56081E11B018539B7B1A1965D303E5950A94BF0EDB1D84E308AEF268C4D966A757A59A7376252AC4ADCF0F9CABFDE367BCEE9E26BE78ED0198CBFD36A34DB79109B8D3A0DECDBBD9D14A2C84459946360A01D7525223E396F524B4DF94A5114EBBE58BF1AC78DC6234946AFDB95268ABE1256969FC7BFADFAC75F5F5A2D0BC27D28C213451BBF6ED2A45BC98F5330FF31500800D891298A08A01577888A4BCE192B839A68473EB2A3B1B7ABF56E9F572005D8748D462BF02A3E73E796B56DEDCD4D3F2F9C38F698D91CB991E779EDAE4D2B1C1E8F6B01894196BEF187DFC5C5C57D8A6DF3A0B5E151E281784EDE68B1588E3B7A9A0CD6AE8E9CCA8A7D2E62423EBFF7973BD7AFA86564F9BEFC5193AEC7BF13BFF6E33F6D73DA6D8F203057831ED644446498F15A3504346C7CF0BA2F5B42A8B966F6F5B78799221E6C6D6962FA7A7A0D8CCE924BFEB8228B9277B03DC2A092F6711CAB0B1498185D7D7519387ABAB2548648E05591992A8D8E2EF49B36FBB69BD45A33B4B57782E8F7CF08DD5CD1EFA68FFF333C6F547C0AEE7BB8819E36208FFF58A262C1680A8FB60DF63DD2D9D6086191319FE357BCD8ACA55B5674A664151C8D4FC9991D9396B8C76E6F7E0599D584EF7591F7B1B92E392841B40D29C919736EB9EBFE628F5F00AF578081013B587B7BA1B7AB99EBEFE90A1FE8EB058F5F01A7D30EF6FE76B0E38094E0EFA6788D66B00D58A1F5CC51C81E3E0E5C8E41FA53460259D6882940B074E9633C8E685992458FC753E7F57A3D3E9B0DB47A73625545193BF1EAD950347906F474B542FEE869E4A746B47EBF3755A5D2A49273919F1F89891F5D989E99FB1159238719B9B263EDFB24D06BB85C4CD1391D3653B7B5933E1B2C4AE4196019F47A1DC4A764A12DA5D2A7CFFD5E0FEDC9823DAFC72DDB06FA7C2EA78D73BBDC0A86F4038383B65AAD4A49D3B2A25EA756CB0FFEECC953BC5AAB51A9351A5EA5D5CA8464983AE3EB38D45E3403151E53D8C08398024447C5D09E2C0A8CB8E6BFE84311026D8175FA745F457E364047D6C9110AC65F2E50C8C9C5B2BD7BD675B477AAD55A6D8CDE60D6690D469D4A63D4AAF008CB726A29F4F3419240D7B58AA2C0E2311DCFAB41AB238B6DF8B8C8385D5CFEF0BC81F1E38A23020F610AB1E4E9533F7D2D82D7478F8180DA428EF9F035E9457F60D0E48107712800437AC12F289842C9C8120519A42832AD62992E8BA620B52534215B5B5BCB4E6C64D23B1C02539D9A50AFD2680C1196188BDE1466D16AF5E12A8D369C637913C372A4086D921530E1405922AE2D8D4D9C41A3A18FA6D187B3E9A36BA2E2F1A2CCFABC282B3EF2CFEF211D5A908F1CF0909E3437D921C7F13FB7CFE776FB3D5E971F3D931FCF2F076F201B2CF0114DE9B8AC452604461D04820BFE713ED8B82038E47D5DD04B915E4FB428D8EB7506732CB22C3A3F371FC1527C0E87C3E570D81D8383830E342D27DE58E29EC560A13BD4FC43FAD07B62B049C1260EA9740E6D44A706702CEEFF58E56D484CC00C71E54C10246E0868AA0B5AE84E8606255FD02B435E4B177C1682EFFD2B10CE2B030759AE5C56A65C4CF9E002D01838FF37F3FE6910FFEE98F22DF825F2FF0391261C4E5D50B0C40000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (147,1,'Server_(128)',0x89504E470D0A1A0A0000000D4948445200000060000000800806000000F4DC6CBA0000000473424954080808087C086488000000097048597300000DD700000DD70142289B780000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A0000260D4944415478DADD7DE99324D7715FBEAAEA63FA987367674F00049620482C2812100510A42842206958124939EC30CD40D85F180E7DB2BEF98BFF04C9617FD0673B14618BE1904507A90883144999119615A22543066D035A628FD96B767766E7DAE999E9B3EA397FF95E55BDAAAE9E6377004E6F03BD7576754FE67B99BF3C5EA6D25AD307F9FACAD7DFF47953B3EFBAB35F534AD54BA560C6F7FD19CFF3A6F8784A1135895453299AE0E3129F2FF136F03C65B6CA0B9487AD1CCBB95B4B77CF0E06E17F0FCAC1BFFED177FFE8C734462F7518067CFD1BDFFA1D26C8174909F14A9608814AB7204CE09EE3FB033F907FFC20F0F95FBF14044C2ADF2FF34189894FBC4F9E6C3DE23B64EBF15BF17FF89FCC1E9943956E718A377FF2BDEFB73737B726F8B55DAD96177DE57D3FF4BDDFFFC99F7E7BF5B8332038CCCD3C5ABF71F1E3CFBE06A2D11E049123656FB13B29319D73C935F341779B0C0C4DC9E786878FBD2EF71375BBDD46BFDF7F8119FCC244B5F2CDD7BFFACDBFF3B4F76F7EFC5FBFFD43FD414FF50F8301F83B41B4F86F71FEFED114C2BD3101B53C800FB59C0F234D5134A0B01FD1200C793FE42DF60714857C8DCFF50603F9E0A0DFA727CE9FA3C966C3F93509C7334C8A74449D6EF7BCD7F7CE974BA557BFF4D56F2E7EF96B6FFE5969D0FFBDB7DEFAE3FBE3CC00720712F67677DAB4BCBC4C8A6745BFD7A3FE20249635D4DE6DF33945251629DB3BBBF2391611747F758D1AF53ACF269F56D736A8CEE72626AAB474F71E2D9C3C29CFBDBFBA4EA7174E508F9FB7BEF9804E9D9C97674C4F4F53B3511FE26F8EFE99FD300C1B7CCB0BBEEFBD3008826FFCBDAFBF79893CF56F7FF8DD3FFAC17198150FC580542A286A3161166F2E3171A6687B7B87063C62B1BFB6B64E13D52AD51B3539EF793E95CB2521AAAE4DC857AB580C29577C9917C45CB95C6166D5A8CEEFA054229F9F616866E79ECE7E26FF0CCCB5A9A9A67C47AFD7676644E759819FE7F3AF3238587CE31FBCF943AFBBF1AFDE7AEBADEE58304088CF6F57F4544A015D78E629AAD76A2C52422152A55A21E27325261ACB6356A84ACEF3286442F2B16225CB44A9562A4231B0749A454B9B990305DC6C36A9D5DAE1CF7AF2DC075BDB5461E65DB9763D9981B1F4C98CE158530BE955C227DC57E359C6C497EFDED96DD759E95F8CB45ED095A93FE0BBAE8FD10C2021583CD0A6A727E995975FA476BBCD442A0B9AC13E466DBF3FA06EA747B5FA047F2E62B1D4A5491E91104F90F3B8A7D785D8E27D162D614B3B2244148625B02E14811905AD5456F8C4AAC153CE7C302FCCAA320F84F5072D3DD63A20F3B76A07C960D469333C6366258CB3E7927B92E9940E67CFA87B9E5111EB953E0D7A03B914F171E6FB9329A086647F8AB3E34981D96BD0194363010063A78475860186720FB65AF4E39FFC0F96D765200F19CD132C5AB658EE9720C72B251121460C5825CCA39DAD025A5BDF607155A62A7FF6D6D2322BE13921F2F2F27D56C20BD4ED776995EF39BB708A5ADBDBF4C9179EA32AEB15553003D4083D204C9781E125C4C7D6F7BC3144417A7806743A5D7AFFCA22CDCE4E8BDC661C2EFB2BF7D7A8C6CAB6C9B27D8D510D94EAF44CC4447F209F2B97CA4CD41D791E6B04607856E0A1FD1A6B5BC80837FB5AF6292B920A70704609F3010CBA78F6B0352DA290C92FB36B7F187DEC44901E62408C4A8C5195EE2B2B8E9423A7944EAC092BAE2C02520EC1634563899F1A6746748DD40194FB32E7423CDA537DE0E8EBF1D7012A21464AC074382A0795284B48957A1832A452391DEA5AD39E40D09C0854BAF0BBDC67452CEBFDC0B0CFF7947D069841E3AE03CC6B8A45CCEBAFBD2A32167F208C2FCC72404819E970619403A148C456EE44A54A7DB670498754656888736C2C095EDF61A30EC49E9C6CD216EB0DD80D30BC361F6C894D71F9EAB51133408DD401B1258EDF1459A35C7EA7E71F8B29F0903320959EB0623FFACC47C422AE560D0CC53E08D7EBF7A8CD3A024A57B3CC65FC4D330C5B77763B3460888A7BA0687BDD8158C7834114FB9C8C83CE2A4C45A978CBA2A002219E9B450003067696C406C0E7C1087F2C5D11054AD888112B9F1D594DCA910EBC1765FC07517A8F85A7AEEC5216BDC410533B9647DE1562048F767ECB3048DE6D7759C9F7C5289C9E6A186352A931640008E958C2F8D3979757E92FFFEA6D9A63E403B101188AFDE59555B162E13CBBBFB62E56F0ECF434DDBE7397AFCF50A552967B300B80966EDC5CA2B3674FC9B7DC63187AEECC2986B53D5A6504758ECF6FB5B6E963179EA69999A9BD5C7F8ED1E5B8381C271D203166D694EBD41B2711649050560C87E2C9D402F5E27DC03CB8262232E7408B781FF7C93DA1BD87F7E143C27971A0C9BE16B1E53E0F10322F02B3825F65620778CDB06E9167F2E7E10F8A5FDBBBBBE3A984418CAC922BC2DF297A512E4A4A608F4AE8A592D88172BDD6F67A8A6862C0937506BA0868843BD4A225F892C455C20A187AE95860D0D8EA3F940E709C723AE30B76022E7684AA020B496BE58CD3548A270C7302387287D246CAAB5407A5EF619D9487B2DACE2AD75E81C28768F4C65107E4FFE0D9D929FA472FFC062399BEA017783D7B8C6CAA0C3707D140D00EE0A6E6990311F095D77F95ADE79E889B06EB882E5BCE83419FBEFA9B5FA6EDED9610A93959A7ADCD6DF2F979CD668D1EF07EB55AA16B8B37AD255B343747E8032F9E655EE218C22C88C5DD181B626648961859CCDA580020295C0EDBDB9E783DBBAC44DBED0E4D361A228377767659E93698183BC298897A95544731F388EABCDFE976E4C9D57285768336A3169FCA7E49703BDCD4D0227BC55054DE18706694B83CE006F73CEB5257E3A903F204805B190EB96EAF2744F69968D8DFDDE9B0C18519108A3D10454AC28CA128E028B548DDF1ABC901AEE9B1768495F97E3D0202A9213784AB59C00CE313F2326E89B1B603D6D61ED04FFFFA1D5A3879823637B784F8D8BF7367991A2C3EA627A7E8EEF28ACC941373B3B478F3162DCC9F1091827B26199763565CBD7E939E3A7F568874EFEE2A3DF1C469899E01C29E3F7B9A5ADBBB0C471718DAD6474050553813001A201A5D367A4A1569EBF1F405E9BC6F27D937011511BD4970243F60D39486C8424F3CB1D3376EED2EEB0C58CFD8EEB6DB0C4FA32111A8F7104331905222F3B5A3E4D5B141418FA48475ECD9748C9E785F3B393D3494DF93DE93319872AEE4E433CEF521D4B3871B02FF445A27835F5C119669C7C41777B8DF9142504B880486EA219FB3723CCD722EC1FEA9EB40150A7265BC664443EE023D04431DA370841B02A20B6F7C6FE8405258E6E3E78ED6C3BE98B9B9497AF1977E93DA8C60101583136DB7D3A1D76A9F9514951E439C2FD45E16E50754F4A52F7E5EC409448C38EC58BC2088F35B6FFC3A6DB23207B3A62627459F2075A5596FD0C6E60389A65DB97A9D157A3FE308D5077043C0CA46F007710138038F89F87F781DE04661115A9C9C6C10B54CC811D011F72012862817EEABD726C4ED00393C51AB4A12164637F284E26722D41858F700180962F95E209915402DF0B29223825CE26B67F6B86E884C30C8EEC21784D15FAB4D8CAF0E70FF781073ABD512E30AD70281A17D6A33E647561B4637463E0C28F87580FFC10C6164983386ECA1A7F3FEFE94CCDAF190AA2239AAA8C05B9B57D24A7EAF1A3706681A4E4B595BDBA4BF79FB6774FAD4495A5F7FC0C4EFCAFEADDB7724BF678E8DB4DB77EFC9485E38314797AFDDE0EBF362B4E19EE9A929BEAF4E97DEBF4A179EF98810F3D6D25D7AFAA927C43083C7F4A927CFD3168B277C0EC95AEA008658913E504EEACA3191408FA2035462DC389EB59C57523B9A9872B15F958C641368B17014B30AB3443CA191B8A411ACC7D6E850D71B9BF8937421F1DD30A51A1DB8196B3B2076BA2927BE1BD35C5B4FE750CCD78DC5673CA3C3DE65F7D9128FC87B638B9054EC86182586E8F8BC1ED915A12DA5DC992019D444D973AEADA09D7B32385F393454494C39F9AC050054E80F8ABF7BAF40CDF1C98678F4196067FFDCDC14C3D0E71986B625CA15783EED30CCFCFC2B9F115F5097E5F8677FE54581A190E9BFF6B997C5BA1D847DFAE2E75F915021BCA75F79FD0B0237F1D8DF6048BAC1FAA454F669B2D1A4F58D4DD119C80DDDDE691F88806A0FA5ECBAC0C7D4124E7110707F9361A8DE0A19DAD525EE8A2817DCC8087CC01F5FABD524D71F280879A2B00188E13CFC4118D3A1E6F3BCBF1D989F53A99424BB4256CD20A3C233FBB1EB63543695DA170115E78F8EB5330E30B4D5DA125827768185A1BBBB1D319AC418637B00EA158B2F90B02BDED028CD117557B92494D1CE099DF847E573A91CD17BBA21B2A2498DBF0E2852C2EB0C43FFF69DFF4767CF9C963501C80F3D73FA14DDB8795B0CB413B3B30C2BEF502928D1A98579FAF995AB7496AFC308C33D330C539107F4DEA5F7E9631F7D4688739DCF23D50522EBCEDD157AE6E927253768E1C42C923B0B535186A36FC5626694621E53256CC7A57246A3CAAE0F4B14B1D2498C5865EE71929CED8480888AB481A1B0A621BA90C61EC2A116693719CF21F268A20F69E1F155C2F9B494D41797C47535396988160E6ACAA22017FDC4F7E9BC182908AA0005ED9151BB9F1B62387EA0C64F07902EF0C2670C801C219D6BCA3508D4687743D699EF1A785A520C3333EE506E885C2C601C9373E31910BF908AFE6986A1F07002D5042CA301435FF9CCA74509C30FF4CB9F7E4194E76EA74DAFBEFC22ED6CEF0A44FDFC677F99BA9DBEB82F5EFFB5CFD1FAE6A610F68D2F7F815659B76015CBD4E497787F9DEA8C9E2E5F59A40DD605EEC2CB916E88FD94F0385AC2450B340043279B754136C8842B310A02DA81ABB9DDE948F2AD78439118C50C8117B2C748887A4A126E4DD255C84AB942FE96819A583B80EC0ACF0F249C28DE503E16E32DD27B126FC82D3DD21618531D500443913688F82D061960283CA0582726817A2850DE42A98249090C95604A74A815129A74CE0E50C9D97174431C891DB0B1B921233B2185A47F28BA712B4D84424A628C5116AFDFB619099A2E5FD54976C2A5CB57C588C3D1CF793F5E540191678C304DBD76D7EA007D3037841AED86184F6F68811D706AFE043DF7D1A7249A957A2974E288D3914EE3BBB934469DF35CC6CF57B93C47F008D96CEFFEDD556AAFAEA78BFA9CE9A30E62E066DC108F495E10D24D20EBFFF0DBDF95A42CDFE6F59B021C5E92E71F5FF33D2F396FEE55E416ECF0EDBDE5924F33933556E83D869E1E7DEE332FC8828D221DA0F635B4D4B17443E0E53DCC0CC804C7ED39184DF0DBE32DB29E8DA910C7D60784B8ACAC94AC55A9C18AB8C64A176F59321AA6F74159E3DEF999267DE2E3CF523948D308B54ED789C5EF48EF9FA4356A76A8F1D301056929165F83782E2910771DC4F7F95ABE0868E9854F3C9BCC0290E0F2D5EBAC475AE4265968BEBEB6F180F5C575DADA6EF3BDA5913370C8F6552A6BC6A9E3EB8678641D10A70AA20CC0AFBC783193F804D182845839F2D295934B4BF7D255944C68AC29AE9DAE8AE296FBED70C5E737B73A12D64CCAE3E433B2752E20AFD4DEB69922DA238F7D7C7480EB90BEBFBAC1C6128B8BE79EFD407FE8D5EB776853664ABA566C5FD1A246196A639B194743B51BE6E7A6E9D4C919FA8BBF7ADB2E27F53211AE380F53D9F39E734D6646E2B44B1366B39F33853E3E75F1595959BFB1B5951074B850C71E1ED2BCB36E2C63C2BA60A136BF51CBE7077FFE9729DAC136B0880788287091518A74A027E2F3B81FA983D8E2B8562DD1B9D3F3B4B2BC49A156C200EDB84274B22E598F74C88D144DE3AA038A94A04B0077D183EE33B3404C58CB0328652D4A1899CE865186F8CB2B6BB4DBEEC85344D40FE2997582EF3D2531865EA8867550D132B1A258C03176433CA2122ECE4E8EDD0CA2382D317DFB19AC0316B4646792E7699B31975B78C19FBB7D67450CBACD6D2CD4283B1078542DB9E15591C549598F0D03CC0B0445C0FC6B7FFF359B8AE2A6A1C488C8135493181FCEEA95B9D9A9E49A1BB08933232E3CDD10B1948A404BFD7C44F2206E88BC123E0615531ED917845CCBCD073B12424C93A6523624B99C4A1514FA70EFD5F61E4A18890351CC2CD9AEDF5EA68D07ADE219702037C463A08475813714D9C6938D09FA4FFFE5FBA3CD6DCFB3385F25CB833C07157956599B9262F1358F7434A0A0541617C41BBFFE2ADDBDBB42ABEB9B540C83F673433C16EE682A5C280DB7F3A5CB8B7B7E2EB67E639F50EA23F2867C48D83F395BA7573EF329FADF3F7B97EEF32C1B1A00CE0CD08771433C2EDED0840D07ACFC081FCFD9330BF4F24B9F9411E9DB11FFCEFFBD442BABEB26B39A093FB0CF4460676D6D4DA2617EB9312C02DD5267E4C69CF77143D063929692FCFD8708A8DCBC7D97D1CDF29057D4CC049DFC207CC78D3B6B74EF3E334605544DE0ED1E2848ED43E8BCF1ABD4383AE3F23340D1D6CE8ED47BFE97BFFBAD23F941C3CB924C80676D634BD212135748A628AF2ED6B943FBC72B16F0504A381F948FAD5756044743FCB83669A6AE34596BDA20A96FFDD37F4C674E9FA43FFC8F7F4C4B7757F7F101E58A788CBF37343BE2EA6C0320F5F0F7FFE0DF3F14C1338A585C18817561104DD62BD4EE45B2F4E95FFCF36F52A55261C22FD08B9FBA28C6DB2F5D7C8E45DA5FD04828342249EBB14A4DD48F5077D00472C2E16733139E3A3B47AF7DE173F4673FFA6FB4D34B75005255BEF39DEF50A7D3A1F58DAD8C4EDA0BEBAB63EA9678E4153287A1FFC2FC1C7DE2B96732E7DEBB749596EFAF19D1E3A7FA657BBB4DEFBCF37F68796D8BAA13CDE4FB9167B4B1B9498BD71649F9250715EDED86386EF0F3C80C311C212EFCE4F933077AC6B5EBB733C748E68A3F2BF0D4B7EE6C9641B7961FD0FCFC299A402D6A3B4350F0A3F191733435B395CC00B58F98510570684C4B960D8B208C5E9497FFEDDFFA726E84A9421F4DBEBE6846E1AAA2CF99FBEF2CAFD183D6B6ACC8DCDCDAA189E62CAD5EB94E41B5B1B79871897E0CA7C123F70F80584140E66F7FF6DE48261D4CA9BBC536E26202DA644D04257AE9931F970CBBDBDD3EFDCFBFFE1B59000EF360B25C1F8A0BABBD46FA58BBA3753E266C8E9119F79FBFF7C323FD61B58A4FCF3C718A6EDD5B1759FFF28B170531616AF8A509AA956BC32020977C7BDCDD100FA103B2BE204D873385AB95324D4F4D66CE61E145A7C086789A897FF1F9E7D800FB29ED74A364BA147B548B63017B125FD1B15827F650B9A1A332CAF77BC5E1C9FCB9A2D78DA515F90E83821AB901506C39EF8780D28B63BB488F72A50ACC0A99E9C926FDB37FF2B5CC3D199F4D218A4AE3032E9271898CEDC79FBF98A4A5B8CF4D9D81C52A77A41B629C75409211E7FC914B7796E9D4C2499A9A9AFE407FE8D51B77A5F4FD903B5C1DD20D418F99253C7F629666A6EAF4EFFEC3778EFCC7F57B1D2A95AB52EFF3777FE74D59D487F267796FAC1E92EB077343A8F15B21A30B7BBA603DC0D2DD9523FD61E74E36E9EB6FBC463FF8D14F98E80F92EF1A5AA3E62E8F1A5137EEB8BA218E64061C460B232DE5CCA993997377EEAD308CDD2954D88B8B8B7CFD3E956B53C3BA25A6620E161F0C01A9C7A16CA54A66445C894AEA3D6B5398092315ABE44DB963B3301B65EBDF67EB551FC058BB7977936EDD5DA34855A8BCD700D82F232E53CD77581F8CB52186D7FDB50D6AED741805FDB634454892716D826E2C0EBC24E9D64BC5838DA8443A2D65AC536D6F53CFCD73B0FA1E69EB7911682AF0A97DDD108F87255C3002D1F5626575D3543FD791231174AEA548BA583B39C6CD9E4749F05CC705FD2CF39CE2DEB7EFAE8A3FA8B87F81CA899903A4248EA70E18B644116CC712D5F72E5DA6DDDD36A5859A3CA913EAA9B87D946F8F4D644B494D38CFA6B12B096BCA223FDFAC8A44C13EAC194310A65CF6A9D9689AC60F05EE70538FF4606E88E336118E203794A434FCB3179E961A0FABF75769B3D5923234A9C564B2AD86D6F72696D43039906D373B334D0B0B27E8ECA9536456E9EFAD030EE386A0715D299F2F9A274D1508950E037AFAC97374FEDC190AFB03A929DDE9F5A5D683B42BC4A26D544FE9F56555252261E82B89DE2EE5C0D4F6475337F4A144799BFA448502662CB2264A3C6B6475A48E865B98E8F175431C890E404B40D405BA71E3B6D503A69E81C9FF8C57C878526C0F44A6A6154D647283BC388D9DB725CF37228889AED14FB81752545214068A02EDF1B3D5B03736276B8A2A241E5737C411E800A348913A88DE2E8B376ED1DAFAA62CD2CE82955CCFC103980E405253CD269D9C9FA3B3A717D8E29E4B6680EB8C5085C6484185C4C721248957541802D4E266BEF8DCC758B40C24DF7F9B1532EAFDC49571FB3DAC94340D9F219E90962E298A81294780B02666088AB65659FCCCCFCE8A1E80F73428F949E2EEE81E3234BA42E29E4EBAB153C294E9600714D4D9EDD2C6C603599A1A1348FA02D71BE4358CC83165D4230A781BB92691942353D24F126209FB0621F96C84D93204D0BE9E769AF81411B7B822D66837C438F70F70E77EA4456E63C4430FB47676F6ACEBE60E4181FAB6A6BDB419949C51B35E0C3A049D5851710B85602182865150C112A53172433CBC12CE54CD36AB159F38775A4A9201F56CAC6F30433A227AA46E5C7F60DE83BE59CC8D92C5DAE028DFB72BE5450C950415210B0210F4C48959164B815C3376DBDE2D4C4639DC52D1A41E076FE8B02F6810854965148CDEE9D9199A9AD6B689B2990D711D7FE19F0EA98F6C68294963C44FDC7A36EEF3E2DB8C399643CEEAFCD10DA57561F6C568ACAFC6BF5E9055CAA884C80AF6E797AFD19D7BCBD2E522867C124367E2EA78D9A932F0939CC6CA226EECCDB8DFC7513C2B5801631138023E2798A93A7175ECA507F23D648EAF1BE2919D71713C1C28E6B9672FD0D31F79429431DE4042B1C831B5228CE851B10AB68434BE349B1B5AF2C42843E7A47AA34627E7E66896098FCEACCA53236740BE1DC4C1D78B8D790F19659570144656B42859358FA63C6951A65858997B20AA8096B06212D0B3CA3604EC080506C4330495B2209A023F2DF19D696538AC8047AE8E3FA4683AF60C88BDC5F1E8059E47C78CF7AF5EE591BF65514DB6B3B6E09C6455BC671DA0698F77CF366C36A8D4B34B989428DF806703620D50CA5A17ACD0A1EC62993D2B241EC324ADE0919FA04846303A9DA2A73C8AEDA1AF98293B3FB0CD38C3CCA8CD77BF500EAE85E245AF0174E09863A2CFB308423F6265D7260C77D050FBBA218A88ADC6352459341D4C5D508F15668DCE9EA9081C3506945DD4219D4C7B52AC0FD0D4F40718C85A00300FD0B322A2A8C2E74C81BEC0AE1580332EE9275C300386A5D101DD102662A7C69E01912D47B978FD96ED52AA933A0EB234D58BFB08288B80E2E5AACA54C6EDC04D31A04EBBCB3074D7D48AF37CBB5AD263C654A4253A9A6F4AE1BF2257485A36760F5B20ABB6F19CE8716000D009CA4C3EF9C4395A5EB92FA9863BBBBBE203CA42469D1995856D629CEA8768008A842F58C2F5C62C39AD5C7342EC206827437A7E84674A9FE9E831114164DC110B27E7C565106A1384874D80E54B5D86A36008CA92F5A5894F9FA281E93B298A96A127226070C455581CD52A552A55F8BC17245632C6F8E819B0B70F2866BB64E0A1A7A58A62E3F0311141BD2EDDBBB7C2C40D9DBEBD3610EFA5F0AFCC04AF3281C99B10B443D6E7230BB89512B10338DA07B4C5B2A46020330CF683AF47A4A5902E28DC41431512E31EF591854B1E14D7632182E296B6535392E38345148807C47035C975280A4926A24467E587D5218D7A4DBA2C9D3831232D7393DCD2BC0452D952A2F90A89D21A28B21FB26E6BD1018F83088A7BC8546B157AE2FC5929430C9403180AE5DA470C00E8C7B6B60DE3EA882869836C69CFF8FB218EC0480951B2E29D9AACF1F98A88A0928F9F69E476DC6DA9705D523E1322AECE1BA55C321DBD23E9D4ADA3C7400461447619FDA0CFD7C0E27D159911EF31A4AC96AA3431E1654AD2C4A90C7EEC8E8E1193155B4AF9A65807C5318028E9675F38030A645012AFD6B619908A840F9EB68E3B71C8B2368842FE496E9FD74758F679307AE9A355C278088F5C44BAEE310A82F8313E9FD4E04903F9F9CAF3B6A983368199B84E509CCA02BFD0E47453FA10CF4C35536FACA651266F56ECB856BB2D832367ADE481128EC24170E1C28552A5523934E1ABD5EAC8CFBCFDF6DB79866A2330548611478082CCFBC4DC0CCBEBA638DD76777669B7DB967D889F810D43C2FF23CD7C7428DDB5A5498FE40BF9E2708B0D2F1867538DA6B440C179202C0CDBEC0CC8B6338C5588B6299191F17E4820DF44DEF8FBA234A3DAD4248AD4766BABB1BBBBDBE43706801E765B0F9FF33CD36CB1D56A0D9D8B5F33333320B6C6796C99C1E1D4D454F8EEBBEF86E91038220640BE23F0A22182F8B83251A13296962A4AAA5CC53DF3047FDB60BE8AB3DF30FAB593C8655111FE266D24B6053B51F10CD0E94C73FBFBC4558E35888F76EACE0CC4B530D4DEEEF6D67C085C5C4C709D3F877DA7365E723D5E706EEFD50CA923DE8F980161A9541AF0ABB7BCBCDCE3D9D6BB72E5CA00D7300B1E5D0788A732247E38DD5FDB4CF237DD1CD158F6ABA441739A4EE8D9C6CE9E2DE42AF050F9129A84A30E7D05E0889B42C7565D1091CB3488B3B9A691596919A74382F286F836B013932E8ABC5EA7732E3045E992273231338D5AED525AED8A0E8729F12919E91A8A8589CBE061C0BFBFCFC75DA60960E12E4456A7D3191CAD1226937678E6D4195A983F49ED4EDB3AE3E2F0632822C1D4850EED0CC88D5E5BC01B817825652B3D6AD4AA34333D4D13F5091143828292A54B595DA921CBB54E8A7938A69789E7C79232D219D3813FE331BD4EF36EC5FD4549A5DE82114EF92EBAA96C8FCC2335088C55875DDE477F5E8F3F0B6678458BC38F40099B512589B952CBA1C2FAA06413757522AB13C587E2DCF090B21E403E68E01BE75B1A2133CA3850261E40D66320D6EBA8F8848E540A3BE399668D2EF42F909F619285B5413FE6F6487BFC7B660A54BA2E8881E83C98B1B300233EE4E780C8207C87AF85966938D7E519D6E5578FCFF7171616C2DBB76FEBA39B01FCD7757A3D5A5ABA4B5BDBDB266345FE58CF4804CF424B5299863E3667CE644678E658C71911363C19485CA0245DF9B0B863543C5E4A0A89A6506EE8CEE93FA9120415576017DBCC70A3CA17270E30D11DD327253C88CAFB90E9D8B679BBCDCC68F1768BAFB5787F9B19B1CBFBEDE9E9E99E55C2FAE8501042923C52CF9F3B2D4DDCB6B6B6253505BE1F82D8E947D4B738BEB00FB99B9CAB4C9962881CF49A418F19247CC123BAB7DB06A2C42A6AA68D3033CED2B6E7300D64E3AC41803B9A3FE7E3BD1F032CCA8102963814137800F90EA2F37BC7217C8B4558ABDFEF6F4304D5EB7516FB9DFEB973E7FA0C4D6331A58F500419850AA8589B4035F42ACD336ED7D671163BC1426963688234122766511417E82B59875CE07B490D6953D28CB762A8A509C1C533204A962A49CB146DB15344D9554C80B14A5B3194F895D448C7693AE223BC40743EEEF3B66347FB0E4638EF6F31835A18F1600613BFCD84EFF6F8353131115EBB762DBC73E78E7647FE913100154BFAFD45AAD76BF2C6A8856146560E7BE474C99BA824D9754A166738C5BBC94B004DDCAC2DEE499C8F4517F8A394B6DA366999428EDB22964A82D8CCF950A0A4623365D0DB8BF090E750ACBC0F190EC2EF32D131E265B483F8FCC6E8DF6526B499E6DD46A3D1673B20C48867791F1559C0876600ECF55FFDCA3F54C3DED050500FDE8985889E002C4210E592842B49410F4C1E289F937C9F02384B71D01E69ED3DE3C24E8E79F6743BBD91316A91F4CE8CD3D9275B3E98C48070103141F5D2ADC54B7FDAEF5ACF618A7862310159DDB7884660A42B66EC7B9BFF26C8F70E942C1B5A7D1EE9E1EAEA6A74FDFA75BD17E1F76580522A5F97561DD44D025D80F787F5D2DA71352B9D552FC99096EC0DCCABD6D6E6CA8FD6966F5FCDC148C8F7C851A88091226640EC98F01033FCDE8162ADD56A226678B40F58B946F7EFDF8F8AC4CCA118A0B2791BEAF9E79FF77676763CFE1E0F0E4C3A8E2FEB5A162C151B639485C07CBD1B8583F76F5D7BF787808C79F94EA6D4782F96EF4CC36D8C708818D65B2DBB0F66889861E2F7E7E6E6061033A3E4FBA1196089EFBDF4D24B1E5BB6016BEFA0D56A05FC85018B91122BBBD2B1A4BFEBAA88C196859B51C84682AFD6579616BFB7D3DA5CCDCB77AB5413F96E091FCBF68C9801E159B90EEEDDBB17AEAFAFEF2BDF0FC58098F8172E5C086EDEBC592A97CB15D6E015966D15562E551E2415FE9EF2319D00CE0A7A1B763476C14EAFBBF3BFEEDC78FFA7AE98B16866108B198C6CFE1B45BE5BA20B7E8762651A8811D56C36074B4B4B612C661E95F01906C46287C58DBFB2B282C15EE5674FF00F9860EED7ACA15245FCBD51AF75194194F17720230E68C26DDCF08BE2404C0BD3682FC2A8BEB374FDD2F758C9EE5AC28796E879189928D52218C9840F7940862C111E5ACC1C580431A76198285630F05BF8F6AD621EAD2C5DFBBD895AE3743928CD78E560DEF3CA73CAF7663CE5C3590F873A4494BC79F4611BC0E1C736004CFE806D9852285B0442A2A479C3D128617E9E595FFCA0B5B1FAE3B595DB972DA21982911033808E3CEA45CC601F8A958F3B8785918F6C43599F86109965BFCF5F58E61900D1836D997F54859550890DA63233A6C4C7251095B741BC6522FA76DF97A0135B96D8375B1FC2AC59AE4E34FCA0D4E477C3F74BB39E1F4CFB41D0549EDFE0AF2EDBC1C08CC356059679BE619EC677C4CC13A6C5B30FAFD3F3B3E1201CF459A4BF7F67F1BD1FF0F5BEF5C7609BC0488BD7C568C28887D8E17702232166AE5CB912FBEBF50749F80C035C1D0031B4B1B101C5EBF348F0793AE21D542A152646E883D8CC18DF121D239BE91824C7CC283F36EF63268039B85E700D0681CCB49871F69AECFB7E500ECAD566A95CA9972B953A33AEE105A569DE4E32039BFC657536E178A0044D46957FD27AB07E3F1EF5391899E077FE1B30EA217ADAFCF7899BC0C2C890920CFC0F96E8850CC841502021C53F4E412CF1168466B3B10FC2A8C9C94939E699E1C5220B5B565870BDE29A30C632CBCB334B8B1B580B43ECB50C731C66052E43E27D92B634DACB31D2B3BF1D41901E703A086F898ED1DEB2B36097FF9E1E60E4C2C2C2C0FA673E74C21732206780E5A2AC9986211057281FAC62DDC1CC907DD80BFC0743C60B63A6A7A7855156EE27DB3CB340C47866E11C88CBCCF2720CC9CFACE4D83245590F6537B65C21662CE1DBB1B56AC58C8E4383BF08C28F64C0012CE33D42E1438C22975960144E8059785B2629CB886466C533AA6066F931C3182627B3CC32CAB33F33428811E287B71D7823DBED76FFC489137D58AB1FA67C3F52061CEAA18FC02CD641C9ACCA332B168160068F649567561CBD62868490EDD56A75E004C27F6162E64367C011306A3F660D89C098594C7C6420683BDA8F859839B60CF80099A52917313FAEAFFF0F7E990507A747E3B10000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (148,1,'Server_(24)',0x89504E470D0A1A0A0000000D4948445200000012000000180806000000F755AD310000000473424954080808087C086488000000097048597300000298000002980136D347DF0000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000002C24944415438CB95954D6F633514869F63DF9B34B7DF30A2A3A6B3E063CF92FFD0DFC20289C5B0E5AF20C41236A80209C166106B2418040434425544A9DA6620B9C9F5B1CF61915040D036F5CA92ED47EFFBC8B22B7707E0ADC7EF7E6085D7CD7413A10E48BF68AE1F1E1EE4CFBE78F29304F9BC3F18BCFFE987EF7DC3FF8CEA7A12C31B1E79A58E1B040F4890E5823949F3E5DEDEEEE3FDBDDD378F8F8F5F3C3939E96E04E55288310201002720186A0511A19442AF57D7F3F981DC9A28AB72757185D9B26A10C1DC397AF410016208745DC74DE31AA49AA9FB35C1032ECB83EE8667078118234DD300B3BB410F5EDAA78E15048844C49C69D72140DBB64C2693BB13A59C573307040B4E14B0952311215FEFB9CD51569E4FA6608687B052EDD45505224810445803A4CA0BBBFBC4E0D4554D5547DCE1FCE2124408AB54CBC4B7552B464A2DF3AE63B3D9443AA11703C50A227E5DEFCE4425295A0AB3594B150417C17B35AA1941D60725CD04A0B83157050771D8D9DEC27D0909AC01D2AC188E65433B45358365C088728F44391700CC9C920D3367B1E898CE15842564BD6ACB3A86934B464B06845C0CE01EB27346B5B058242693E76C0C06BCF6F2113FFEFCCBD2CF7D64A76CF4EB1E8341C3E6D6061050CDC4F8D7850CEB393257B21BD3D90C30745F4949190CFAAB6ADC0D0298B5893FA65354338B4547DBCE504DD7A052B2AC05D2A408D0AB23BD5E8D174829AF20CA2227198F9F6E0D87C3D0344D198D46061477B7EADF5C234A2069210425A99273A624DDE9C430B3D0B6E7EF00B96D5B0E0F0FC7EEFEA5887CFD37C85D9E7E3F62B0B141AFAE68DB39A3675354959CD3C05D72EA16DFBA97E4EEDF99D993B3B3B367BEFA3D2A1189C3E1F0D5ED078F3E12E76031EBF6E6C80EB00D3422A19FD2C2AF2E7EFDA4FDFDF26311F96A3C1E5FFEC791BB17E007E0EDD5C5FBA7D0EAE8E8687B7A6E9B4DD3FC767A7A7AE3A3FD278CE09ADF74A16D700000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (149,1,'Server_(48)',0x89504E470D0A1A0A0000000D49484452000000240000003008060000007947D8150000000473424954080808087C0864880000000970485973000005310000053101B7ED28520000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000008AA4944415458C3B599CB8F1C0711C67F55FDDEC7ECDAD960EC6CEC5888A7791C8C1002041207908244244022204EC00171E6DF811317102012211E0714E580504404088808E0F81136B689B38FD9D99DDDE9EEAAE2D03DB3BB2646263BB46676A51E4DF7375F7DF5D5A32522387E7CFDDBDFF96699E797D3444B34A992440A454A49B44C440B512D45B5529132512945B45095F28517FFB8BB331CFDA12CD31F3EF7F31F3D1BF75FF8218FF4FE132B83E52F9D59197C76B83B627C70485D3B6E81B9E16EB4AD1311B4ADD15ACB95F7BC8B9595659CD89D4C265F85F8CAA79F7CFAF79FF9FCD79E6D32BEF7DC8FBFBF712A40618E9901C2EA608934CD4812254992FEADA82A699A9026295BDB3B9839048808802C2D155709AE5624DF7AEAA96FBCFB9967BE3B7ACB802C027387709A2698D40D11E0EE44386E0E229839662D8FAE9DC5AD3C760541085413B23C597ABD6992533164669819AF6EDC6667B84B96A4A4698A1388082290E739EE8EBB736675B5FB0130FB3C5105510239BD86220237E7131FFB086F5B7BA463C5035525085484D68C4413549597FF7E6D16B2293F079386321788640E80DC30377EF3DBDFB1B53324D5044D14734722700FF222A7695BDAA6E5431F781FAB2BCB338610D04499342D360F86CC1D33E7C2F9735CB8700E415015DC41152240A5632B02B23CC5DC3B82A40355A409488A260A93FA7480DC0333A72A4BB23C4555111154641A935E2B828A32DADBC7CDC003E91951CD887054F4F40C79749E73F3D57FB2BDB3DBA777426BD6B1300D59D3D0342DEF7BCF3BD1C50A14A4071BA2A826CC8475DA2C73733EF8FEF7B2BAB24CE7B7316345443A91274AA2C28D5B1B9D6FB977F401C3E12E0B55415996A7074474C678FDC6AB1C4C26A4BD29BA77A08820CBD22EB4E1AC0E06A4694288C6942104CC83495DCF43D4BD310A70AC1C0541F78ACE1ADC71373C1C77E9C3D3A968AA25994F961966CE3BDFF104AB2B0322A2F79F04515011DC1DED4BC9B56B37389C4CFAB4EFFECC98D23914D7B0C0CC78E9AF7F676738244D3BA76EDB960821C2298B9CBA69689A86272E5D24E94DF37E6EE6C450178E8B8F3FC63B2E5F42F4E465A7C29E1E3B3BBB1CD693BEB81E950F7A2DCDC1A93B518B80EAB19B4BFFAB8F854444083ADF3AEED4D3B0310F86DC0D336579B1E48517FF449E67646946559514658E20A469CAD9C122A85255057B7BE313B57E16B6793034354611E1EC99159244499384C1F2120B55C9DEF80011A16E1ACAAAA26DBADA17C718927932641680131E0C8723D2AC13F5F8B026EB9BB2344BA1CC49333B0A59EF14478A7B2B927E53860CF1C0C3198E4624AA6459CEDA2367A8AA92E1EE1E5A2BA9766E2DBDBB4308FF0F86DCBBDE26D1844B8F3F36136B9224586BAC2C2DF66D2C5465C9F67074D4A0DD97F8F361C883C099D4357FF8D35F67E7CFAC0E585D5966B8BB4F92243CF6F6B31C4C1AAAAAEAAA7D9FF7C7CBC75CD2DECD40843CCFF9D4C73FFC1F5F50ED9A7C80D59501DBDB233EFDC98FF2A39FFE72C6CDDC1982603C1EF3B35F3D7F6C3C5AA22A4BEE6D6E91A519EFBA7C81AC2CF9C095F7B271EB95BE413BC990C89C9C9A70961617F9F2179E3CE698CCC232D5D5D242C5AD8D3BDCB97BF73E6EDE6A8E3DC0A93D9CBDFD7D7EF0935FCCCE0F9617298B82CD7E0EBB74618D85A5252EAEAFD3B47162EAE098639F9EA1E81AB4A585459EFEE2933376A2EFFEA60D1BC0425571E3D5D7BAA68E3859ED99572DB3CEE846E3930C5555499EA58CF6C6B83B97D71F252B4A2EAEAF63E60811829E281BF3A9F661B83B82760CCDD809A6A3C5748FB0B050F1F23F6E606E7DF77F326C3A9F6ADFF5436F6C6E73F7DE2677EEBE8E59B75820A05AA838B3B2C2DA2367397FEE5186BB7B9839890A329B32E484059CDAA9AD5F380820AAA4226459D63BB6F60DADF79D81E16688A6E87D0CCDCD87AC9F5E3D82E5C505A2EF00A02B175996E2E69875CD9CB993449CBA6CC09B74BD16D133E41479469665DD90181D5851653018B0325826C4FBE5841F09F9B829CA1C00B9758B29F760696991A0BB69DDB44C2635870707ECEDED31A96B549259784FD4B21992394CAED3B035E60C37B7D8DA1ED2340DD61ADE6F475413B234A5C8F36E17D0CFF633219F6841E60008C05AA3AE1BCCBA666D5A3A22020FEB971246DB8BBA6F194F84CDDA46E606C8A30BDB745597E659275601373073DAB6C55B3B6AF28F6DD0AC69719F272077CC8DBCC850322C82F0A02C8B7EB4765A3BCAC8D9D441D0B62DAAE0E632DAD94A4524BD6FF310F7FD67BAB5FDAF80F22CC7CD69CC90F6E8A68B0B15459161DECE3232BCD397590B2EB88059938CB76E5D5C5F5F5F1591A8EBDA4524FAB7F7E75A331B8BC83822DA070332272F52F6F71D6B5BDA5E4B49D37238999017198926B35D638467E1BDF04590081A6B93C3D1FEE7DCFD00204DD33846481311E3A228B623E2FAD9B367AF8BC8E881800218EF1F301E8FFB9D74B758306BF13E442A32E3DCAD593153A25F3C4404AD9958C423C0A40711400D8C81ED88B8E6EE37EBBADED9DADA3A88887820A07FBC7293B22C288B82C5A545CAB240443A236C8DC3C984D76E8F99F48B06C75237C3A50B5DB85B63ED756FEB1A70E050444611F15A44BCD2B6ED469665BBB76FDF3E8C083F216A1149D6D7D7F3344D8BC5B5CBC57471B5BF3F667F7FFC70E9E148DBB6D378ECEC6CFFEBD7DBAFDFFE5BCFC610B8E5EED754F5F53CCFF7EFDCB93379B3C70FA988C8850B178ABAAECFBBFBF915959DAA48FF12C8024415215510855B141EA1EEFE80108798B54D53D77FBE7DEBE55F44C45E446CAAEAB53CCF6F0C87C3EDEDEDED31D0FEB7E72012113386226221CFF3A583838345552D814A44CA2CCB96D3BC5ACBAA85F32AE93982012A0B8156049588160B8BD560B479F7F9DDE1E64D55BD1B11D7D234BD351E8F47F7EEDD3B88087B18A2E53858E98C44AF5EBDAA9B9B9B495DD7DA348D9A990E06036D9A2631337577CDB22C1391B2699A52442A552DDC3D8D883744E45F699AEE6D6C6C4C8EEBE37F06F4D05F3A9A6F922B57AEE8FEFEBED675AD66266B6B6BCD4B2FBDD4BCD5C753FF06C6A05E708151475D0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (150,1,'Server_(64)',0x89504E470D0A1A0A0000000D49484452000000300000004008060000005C20F4460000000473424954080808087C0864880000000970485973000006EC000006EC011E7538350000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00000DB44944415468DEBD9ADB8F64D755C67F6BEFB3CFA95BDF7B7ADCE3B1612EB18913CB96C32511C828440922B28048790852489EF2CE7FE03F8157040F110824CB4282002FC8420A529407C028219840ECCC8CE7D297E9CBF4A5AA4ED5397BEFC5C33975EBF1A59374CD9166AAAABBAB6AADB3D6FABE6FADB54555397B7DFDEBDFBA5ABAEC4BCED0146C6612DB488C38B126B3D636446C965852232613B199B5922164464C668DC9C4984C84CC1A93FDF09DFF4B0F0E1EFD28CDD27FD8E8E85FBEF9E69B051778251FF8D3ACF9D54FDDBCF6A7228208548F822050FF0CAAD7A5F7284AF09EE003413D5992B2B4B28408B824B9D7CFF3D7BCF7AFEDF8EC4FBEF0DAD7FEC524C95FBCF5F77FFDA3F93900C41811116EBD7F8FD3932E2178CAD2638C1055C80739C618D224211F0E015868B7F03EB0B1B1CE4B4B0B8808A008008A0FFE8586495F501FBEF9BB7FF8C7DF13957FFCDC2B37FEFCF5D75F8F17EA408C71ECC0334F5F66E1B99B586B499CC51A8331862C4D116B11228DAC81B596B22C4912CBFDAD9DF1FB55A10A5915C5C4391A59BA28CA9703E1D5EFFEE0CE1BAFC3D1DC2220187C8C78EFE9E711A21250620844D52A7DCA48242280F71E8DB0B9B9311B812A0CA489254625B1095600FCC5A7500C91181511E5DD9FDEA1D7CF892152942569EA10310C06039224217509FD7C0040BBDD201F945CBEB4C6E5CBEB9308D4F65735543DA689A5F0717E3510EA08ACAC2CB3B6B2820AA08A4B2CC618428C586BB1D6A00A460C89B32810FC240581FAB1323E8448B391E2352062E6E340984AA1E73E719DF5B565AC18ACB5F81040214912420CC41071CE015094052E49B8BFB54B51148828A31048653FFD7C80AAD06E3529839F3F0AFDDB7FFC80E16040A853C8B91423900F8624D69238479EF701A1DD6E91E73997D6D778FE13D7AB3B2F534520824B127CF0747B3DD2D4CDDF018D4A04B4CA2054238AA122401D73C2E812CCCCFBD19A31EA3F69B71A2042621DC3A2989303318C0D78E5E54FB3BABC04D690188B8680022EB5C4A0841849D3045428EB086DEFEED2EBF5EB22D6B17F024485C4188C80B3B64ED88B462118A3D0F6F62EFB0707D45C84B1666C8815418C45ABDB5C3988521423B41274CCD9550A85106A20108C9179456092027BFBFB1465490881A22871CE6144C8F301894BC85247AF9703D0E9B4C9F39CD5D5159E7DE64A9D42131C15C05A838825AA10756E526202831B97D6485C020A5123D658408921628CC5584308014148124B8C8110751CC13111D750747ADAA7D38646A331BF08C4A9227CF6992BAC2C2F638C902449F573204D1D3142089E2C4B01180E0B9C736CEFECF270FFB046211DCB8851BD0F8B82A81197B8F947E087FFF53F14DE57305A14A4AE62E23CCF712E214D53FAFD3E6284C5850E79BF606979814BEBAB9503710AA46A161EF17288719E30AA304A81FA6BC746988951626A888D4A0811AF1E9D12832A5332029990DA2F9E3D1F5DC42329F1F28B2FB0B4BC883186C41A620C880A499A8C6134CB1C020C0B4FEA1C3BBB0F79B0BD3BE601C61A68DAF099DB323F29B1B5B3CBDEE1E1184CAC08D608212AA696D6AA8A18C19A4A5E0F8B72AA88E358464CCB6A66F9EF822310260EECEF1FE2632478CFB02869A40E630CBD7E55035996D2EDF6516061A143DE1FB0B8D4616961810A45CD58464C4760ECD47C506892C397362E91395741678C88351811428888118C18A24604C5DA2AAD7CF0F4FBF9A41F982AE2B3EA74EE5A6873639DC5A505ACA9703E0450551A594A8C911002599655F03818E252C7CEEE1EB76EDF859194A88D9E2964E61981389112793EC0FB7292B7352E41E5C8B4E65755548450545A8A293107CC22905C4C117C4804C214132FF3576F7C87344D714995F3A973743A2D9C73A856A4963AC7D52B6B9C9E0EB871ED2A771F6C8D61789C2D32DD9B3DA114B2C6B0BEB642922424D662134BABD164F3A94B586B393C3AAA449E11BADD9CD2FB998E6E1CB13A85CED6C3DC99B8DBCBF9EC675E9AE4F154CA8808EDE6538854CA524410231C9FF666FB0199CD189159629BAB1A6D3432FEECDB6FE09CABA48373B45A0DD65696C9D294FE6088B5963475DC7CF632FB8FBAFCDA2B9F9E38203A2323A611688E300AB16ABF10E0F99BBF5CF55AC660ADA199652C2D2F608DA5990F6A6D6F38ED552834D391CD20D02402B34FE65403008341C18B9F7ABECEE5BA048D1DA7C5DAEA525594A6B2C79A84D35E3E35D8D2C70D9FB43873921201D44404216BA4FCED77FE79E6F7AD66831BD79F25758EADED3D44204D537EE5FA533C3CECF2C5CFFFD66C3F704646C89329E2EA3E051FF8EDDFFCD5C7FE6254C42B4B0B559B29062572F5CA2683613155C4FA988C18D7C30578613E2A85628C137439F36F446451158D5A91985677DC88F0EB9F7989DFFBE2ABE33A1AFD779132E2E379A0C6EFEF7EEFDF677EE75CC2D52B9701B8FF601704B234E5851B9BEC1E9CF2C9E7AF93F992DB3FFD494D64B3C4758144FC51D3694550F2C1903FF8F217A61A9A4953A2C0CB2F7EB20AA5A9A615D76E58FAFD0177EFEFD0EF75A966925386CB949ED027C0C49D7693EFDF7EFF5C1F660D242EE3D9AB9BFCEFBBB7F065016A6BC385B3BD99CE2D85A6882CF8C07FFFF8BDC75268637D1580DDBD03BCAF86532FDCBCC2ADDB77F99D577F03552171196551CE444D1E93D5739E4AF4F301DFFAC657CFFF89223C3A3A1DBF3FCAEC7E80A955D51C5368A2469BCD8C6FFFCDDF9DEBC3363756383AE9F1CD3FFACA8C169A0839991972CDAD88C3540AA92AA5F7C418AB41AF2A4684A5A5055495A3E35342A85268B993F1E8E8081D756F32695EA685DC0C0ACC6FC15131E99D7B3B7CE36B5FA9BF586B5E30D55DD4914C56225A4FA695ADEDBD2931378D40B36C3CBF229E92D327275D1EEE1D72FBCE5DBAFD3E22D53646A8A4B33182188315C3C242876BBF741511337E7FC5D2B3AD2417D8127C2C8C8292658EE79FBB5EA55351920F4BBC2FEA7551834EBBC5F2529B7667012B869DBD7DA22AA28AB1E64CEA4C64F5072DD92F70C917C7E3F176B3C5BBB7EEF0E8E888A2F09465890F01AD0DB4D692B994E5D525AE5D7D1A44274C5E6BA149EAC8CCA871EE11F065C9C3DE01DD6E0F6B0CAD660369B73062B05630D662A4EA071267C128D14F1CA82A43CECC47474CF604784045B8B2B9C1C6FA2A078747F4FB03F2E190C170880F818649483347ABD9E4D2FA2A0B9D16BB0F0FAA9E18A9971FD36A74D21F63749E4C5CA190F7817BF71FF0FEBD6DFA795ECD4343042398BA36AD35345CC2E1E111CF3CB349180D77991AABC8D911EF9350A322845012222C2D2EB0BCBC54AD95C4A01A00A1D1484992A4DA19BB6A6FEC4B3F71800F52A0732EE2D1557D81E1A9CBAB1863383C3CA45F9494BEAC4EA904706932DE13ACAD2EB3BAB442AF3F18AB599D192D3EC1221E5DBE2CB9777F879D9D5DFAC301860AF7A56E5C7C19085E290A0F2A34B26C725864CAD2C76444754447E6EE40544853CBD5A73741C0FB880F1E5F94354764B45A4D3AED1669A381B3869DDDBD090AE9E3F32005420884F8041C10A0DDEC706F6B8B93D3534219F03110824711AC08C6262449C2E2629BCD8D8D4911D73DF1B48C508D441F518110C2FC1DF0C173F0E8906EAF87082469422A0EC48CF17F3499B3C612D513834E1DD7D1310D6B0C4489D5DAACEE35FADDAE15117B4E7B75529E15027CAC031A9595E54596161738EDF628860545E929CA020D4AEAAABBDFC832569697C832C76E7E3019ABD48B7A8DD589225141A43ABE108237C73BEF5FD9DCDCEC88884E1B39F51A11511151638C0E87431F42C8452457D570AE1A787478CCF6C37D06C5901815ADA575350B35182BA4D670747CCCE58DB5A9135F105119AD66A9C9775CC4A53783FEC9E780BEAAEAB413F51D56118921842822458CB16BAD7DE4BDDF050AE01C0EC4800F915633A3D5688091F11921009758A45E009AC4109531BEAB0231A668E5F0E8C0482591141F82D1186F88C8E08CBA1E191F5475688C39050E54F5D039779CE779AF5EE59DA38845585F5DE1384938ED9E521425F92010BC47B562E1C4595CE2585CECD06A36C9EB135C55044316630031538E55FD43DD4BA7678D57D5608CC955F504D80F216C596BB7814311E91E1E1E16AA1ACFE5C0AD3B7769341A34B28CAC91B1B2DCA6D948712E256A2484480CA15A04969E877B079C9C76A7422836C688CA881722512184A044DD0DA1F453867B11E919638E638C0F8D310FBCF7BBCEB9E346A3D17BEFBDF7CAE9029E7140265D87F9ECE77F3F99CC4923BD5E9F5EAFFF73C19C4A754070242322A021F6FABD93EFEFDC7BEF3F4524D6F9DC15914731C61D6BED0363CC7E9EE727D7AE5DCBDF7EFBED30BAE31F08A32262AE5EBD9A014D556DF962B87A51624B15196FFDA3FA10C2ADADDB3FFEA710FC001802272272006CC518B7628C87C698D3ADADAD02080707077A1E1E30B5F1EBC0DAA0777CDC6EB6FE15E888D08A9126221990296421C634067523B4390F10281C9C1CECBC75B8BFFD1E908BC8B188ECA9EA96316647551F6559D6BB73E74E59AD27CEA7F4A4DE34CE44006889481642C844A4212269082133C6A418D36C34DBAB69D65C3149B6E112B712A10534444C23AA34AAE7D25024EB749A0B6138B8BD7DF7276FC518BBC698A318E38EAA6E017BCD66F3A8D96CE6EFBCF38E3F9BDFE776E06C0DDCBC79D30E0603331C0E6DBBDD4EBCF7C67B6F430836CB321B63B421049B2489B3D63AEF7D6A8C49478EC618C7AF638C998824AA5A8AC84363CCF6603038109193BDBDBD0110F417D0D5F261EF95D9B9DF873D37376FDE34FD7EDF1645613B9D8E2DCBD29E7536C6688C31B14698DEFDFBF78B9F254D7E2E077EA60F399FB36382BA08C347D7FF03445C9686BCD643590000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (151,1,'Server_(96)',0x89504E470D0A1A0A0000000D4948445200000048000000600806000000BE12341C0000000473424954080808087C086488000000097048597300000A6100000A6101FCCC4A250000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000019C74944415478DACD5D5B6F1CD971AED3B7B9F22A921225519795D6BBB62C055ED9461C07889375E2B7C00E020741FC92A7FC82E43F388FFE0379486C200B04411C040812D8468C18BE65E3D8DEF5AE77B52B8AA248F13EE49073EF3EA9AFCE39DD3DC3112FB2969C915A3DD33D973ED5555FD55755E74869ADE9348FAF7EF5ABD146B752F67A49C5A75ED923AF9C78BA5A2A04935E104E799ECF1B4D90F6AABEA78BCAF7A3C05791525EE4293FF47C8A1479E6B5E745BE4711C9397E8FE7857B7BBB338F9656DA2AF0BF1DFAFAEBFFF9ED3796E81C1FEA3801FDC9D7FEEA6FA727C6BFA414F1207820BE1704BE1FFA010FDC0BA3205405DF0F229F47EAFB3EF92C017E83EC49F15FFEA0FC10EF9579227B392E7FB33D0E2D2DAFD077FFEB47A47542A552713D0AA39F79A1F7CD0BC5F85B6FBCF1467CD6020A8E7B43E87B1716AECEDF730390A1A8FE4191DDA7836599C789194BAF17531C2794C45DEA269A741C533736C77ADD1E4D4D4DD0F4E4847C0EB74AEE9732FB76A73317C7F197C238787D2B0EFFFA0FFFF8CFFF3B0ABDAFFFDB3F7DF3D1C8080857AD7960EEA2B7B6B7697D7D9B62EA51DC4B78C09A2D8428C1E0F9AE27FC916EBB435D1E3C9B0C0B2AA142188A00718EDF4A1D3ED76977290803FAF82BB7686A629C7F86BF47AB4CB5C90A9CE4BB0336C7BBBD5E7297B4FAD32F7DF92F7EC6FB6F4D143AFFF0516BD5B1024AE4AE6AB237969ACD366DD76A624E9EA7C49C0A6121332D36350812AFFD50F1EB80C28037DE2B3EC72395BD2FCF03EAC53D4AB416ADD3721312F91DDD272AD6641672B512F2FB93D96EB7FB475EE0BF5EEF16FEE6F7BFF2979FFFDE3FFF5DEDFC3408429201B090580D6E5E5FA03FF8BDCFC9734F99A1C08C9CB6C99706BE600D048BB7C87927616DCEF300D9EC62FAE08347ACA1897C9FB237E31050E20C9BACE71761BB343E568599FBAD56FB72EB60BF78BE2646C6C4B4C516F90783E181C0AC62C1942EBF076360138306F079EC8133381E273D7B4ECB1E528220607ECD568BC228347AE20048593017903787C2428105DD13E176793F56A950ABDD1E010C622383DABBDBFF707199BEF7FD1F99C16ABEABFCA75088E49D9EF5586DC6A01E7F2660334A18A370DE13A169D9E33C03B098CD2B2FBF4463AC11949A98B6F89399171E9D4E97C6AA151112E311F5A05100BF8FF8E11DAF3DC6C4A045D89BBB6C06E1692F3F86145AF1D793D17AD6CBE507ABACC752A97668117692EE070D0C8F52B120E760AE1010CCF2F07BCFD5C4322F93C6362C1F8FC13A142FC580CCA08D8B0F423FC51A88B318B106212EE287EF2B313D9866C09F2BF03998AA72C8AC89D217A9B52931C54AB94C119B639785542C727CD9A4D1105062D51ED77EE3C615FA02833447C2ACE2E618D4DE00B401584F3C1C9B17DF659FDF07CCC8A3B4136AC2037DF0E1233161ADA15139DF950696EE35BC9FA24EAB4BE57291430C7CCF08989871F3898D731C886230492E50D21678EDD35C1493A8EC5CB6B7206FCF8909DBCDDD0C1AC0A066B3453BDB7BF21C3116C7F0AC857A143448E74C40D3D2D213FAC10FDF147D809B56AC4685A860A4ED65208D481AB112B408E7710EDF83BD80346F18E4AD1BD7E9E2C519F18ED0220B2B3AA73BF2A4C81804C1B41084B246CA77A95130B1248B4D1C15482C408AC74930F0B84F21713E16A1C6321073DE989CDBC71C20FA892711B4D11E0B3D4E364AE7DCBC01A30BD3932220E017024CD22382414EFD95054FC16ADC6D42D4EBF5115232A74C784021C2488327B94D5B2FE6049FC7B8C41E53FDEE512271E73D2B95928417AD766B14B858929A182EFDEA95CBF4E9FBF7E4AE220E3166D1932189A783C8D8B402CFC43D00D744E804093723898F42090E61A21F3E7ACC80DB335AA2F540249D43237C1F634EC4660953AB56472450D416A41D5BF5D975974B65B17F0C1E26D2EDFA79A6C102F0C5C3189C60CFD365A1590DD41C1B854C52C1C52496E27FBB968B399CCB3C99CD18F0F318F10F079CAD5647F00812F73D6F344C2CC90D6065E529FDFC17EF588168897D2289A48DE698C174659CE05BC0308031C8AB79BF27F8030FE4071E9B4B95055EB0DFA6E45F9333D2B9D813BF114AFC14067E7A3C4E462850142FC357854876BF7120C7624B358A25EBC56CE80FD587103CC60D70AF129FC739003BF6380FB71D719078EBE6029558C08EEBE9148FFA31A8D566AAC1D8D363B33C6D16F4238D831C483BBAA1F3D76DA9867286E0D9CD0ED0CBB3712FF79E431A9A582A930C782695F23265F242A24512845A5E77EE1AE45CBAD00CFE3BC3AE76E1CAA58C7593CB2CAAD445A799C674003A4DB7BAA8D8F3956857BD5E17EA90C5D93A173D672EBED56A4BFC532E96C4C5836A9C85269D2EDDC1170F3E746DE18AF030E88801E96EAA69E29283D004861698715EA720ADE53C7009E6FAC1876D66F68D947E99E4657FCA8CD2BC35B291084211801EF46BF379C741CE4D6DEDD4E8E9FA96198232A02B1E49B899D19CC4E68D2040381A4FCE7996A2D8F80982608C6A331E69CB51B4083039ECE287C4452EC53B525E0C77AC71D0A0E5D5B534F9054D412AC23075E3611A0CC0D08EC0660D4BE5524A5EB10740371A4D2A32385FBFBEC05EAC98E716649D993A2C16954FAAD040AEE51C73D22EDD911255DEC51917721134E5769EEACF2A2BD5BFEFE77A4916A5DB342D0DD08C34D5947F3D125423C9316CBEA0F258996E5E5B3060AA45129294172036C024690C8983A035201CD02CCF307892C89AB998662EE605327E44C62E9B9B6503F4506F4667A439A7C4A024D57BD4B1AE5D75206DFE003829C7A31C486B71C59E9C776E39B1202D815F9741FAE123DA665C4BD96A321C83E890B1D9A07274C8AAB9FE46A3454B8F5724B9A5942F46E848A87335006E65B995E15F065260769A0586F392AFE6EFECC6BD3EAEA787D08C3EEE918F1E4601839CC750365FB353DBA55FBDF39E0DDA7A422F00B22E9328C92D0660980D401A74A00290F60D60638FF3078D86E489AE5DBB2C021384D359C6D5E5E61C06A95CFA7500A9CF99ACEAFEC2613FF00EA445076EB639AFD27ABCDBA7090DAB259997B481D0B0BAD8106F363218948FA4C1D42B95725AD7021097848BA934D631EE5D9B68194D0885229B9A33479F0A85026B5551F2D241109840530DC45CC700B33A23377602379FE46AF35AD2A39F7EED9E4977C034F858A7E340DA7C26E281FBBE897B1C88E39C6783489C8F0A1C4977627AB8F89856D6D60572711312A75FCF70F16996F1C44CF2AC40DA5E271A1650828147F2241FA38561A7DD0D7C3CC67169F1105F7FB248DD06A28795420DF569A31307D9AA83ABCDEFD4764423A42AE17A565254B138025C491C0E212369C9AB958009F64C14DE38E8F4713D9D64B4553D83669C5D1CFD1CB5F9DB37176887E39695A79BA24118A4A8BE7B4ECA1E375555140C51BEF2ACEB97582889197F8A34373B25DD226FBDFB8111827665A29CB77A06CD506704D427AA6A084867C9087AB8B4426FF3A000C600590037F648C7A2523A562D9BF696008CDD047E48B306D206E3D1EDEB176975638776F722399E37B1BE14C6513423D5C851E0620318E1BA3A0E1BA3A6F1B10ADDBAB160FB873C5A5C7A22A59A0C6F7CAAD50FF858CF9481D230C272BD0137AF8EF066A36162BA9FACD6F70FE833AF7D92EE7DE2637DA6A072FD40A901F08B4FBE7A3B5732A2F4FCD4E4341539C07CBAB69145D2DAE9E860D2550D11DAA898182559DD8AAFBD108592C3D9AAD5ACDBF55201655BFFEBBEF3941D475610B150569BA754C86A30FA3C4433468AACEAB4E08901FDF87F7E4E3FFDD95B0677185342D91B1C32251DDFE2929F1DB71885E737AFCED2C6769DF1E912958AC55C3D5E537F594CF543D119D38C5370314B487374124243570730C5E1081E5393E3F4A9BBAF0AFE4078EFBEBF48FB070D4B584D61A7D76D51B7DD94EFD5B618E0C2A8C1D866988B3F8C4BE75E38D4292F8357BAFDD235C906A6A5919C4BC7BE56DB93C221A8C7A5D969521C7DA76E1EDD616C52737317A5D68EEC63BEB49D506205A08F01E61172F35A6503D8ABEFD3B5AB9769E1CA7CDAD292BFD8D44DAB1CC893CB0519619A88DB98CC2AC753F9DA7CF675C369469F9B572395EEA0D484BEFBFD1FD14FFEF79787DE2709FC20873916870663A5F99971DAA9B7E8EE275EA689F16AD6E5FA8CDAFC60FAFE2CF9FC099B3895CDD71C4D7EC0EE27ABE374EFCE2B823F2837BFFBFE433123D79880A4D9C50B13B4B7574F399E4B77A438744CC4AC4629DD21C9D69C17C308A04557E6E79EF999071F2C5A90F699B9FBECA9C6D3D7D83F585AA3A050A652A190EBE8D0694B8C528A06DC599A7B1A3D0CCA99182E796D7387EEDE7955B617F178F8E88998E6FD4FDDA55FBFF7016D6ED7B22A6CBEBA31947A8C0A483B17CDA636373345BF7CFB5D7AEB9DF78FFDA874BEFA5E4A5E6536907480248C4711BD76EFE3343D354E63E3AFD2D7FEECCBF4831FFE84FEFE1FFFF510CD382F267F8A8C625638C46387DDF893D5F5A1EF0538838FB9C71E5313588B0B1C0B6C72AF7DF216BDF7E132ED371A3485ACA2AFE81BDFF80605612135AD6701B31A350C12DD71C91DD2C7360C488355B994BEDE6F34A561D3C53AF8F4D2CA3A35DADDF4756DA72EF8B3B6BE99F1394DCF66F267C8394ED5270D2D5ADBDCA6CF7FEE3EFDF6673F95BBD60C10D410334B93647913016D6161BEFFF0313D5D5FA7DBB76EB2E036A56E9FCBB90E07E6C18AEEB9B3F95C73C1C59969DADCDCA2A5C7AB8783C3133CDCA08045AFBC7C83C62A65FA050BFDC99315691D2E96C78E8C78CE92669C3C1F94A6448DC9FD9AF9D5B040F1240FC441773F7695169F6C50B55AA6D90BD332DCA8583E42D8EA5C68C6E9CA3E69FEF9E8078A84A6C1CA3C9696574DA0987E9769A7DB3F681DE27A9980547FC1705836716430C8326EB2853D949E3FF7D9DF129A90CD2FCDA61AB883AE6EFED9FB77C9F53964FD879A3EFD19A23926B2AB6B5B6951C090557D24933F6BC271EAB20FFA7E9AAD0EBBEFC66FFCE3C80C88F9E6D31D8A4E50301CB18459BE368F2EF7FFFBC53BCF8D41D0ADBBAF2CD0FB8BABF4FA177E9766672E1C2E6DABC3DEEA90D0D4C88074D23F97E2181C42B7D9DCEC85F4F5DAC6963460E6BD58ABD9A076AB957AC9ACB49D237C692AF71934239D923E4A204D5A5AE7EEDD7999E62FCD9AD65D32F891684A7B0693249B02F5B15BD74D1B719264ADC4FC6776FE3A2D5CBE484D048CB9BA9BF2F3F1F37105C351E8B44FFA0B870F1697A5AC532C96ECEC1D37FB30ABB29A46CD5CBB9E6BE62453CF97664F7E7F2756B4C86455A7B956257CE6A8BEC491C420172892ED10DBDEDE65412D3127ABA5AD763887D985D258E5994E0F65A768BA252B649EBDCCA30FA53BFF0A6B50ABD33F6FDE4FF4F105C35C08301239E97C4A14BC6C7CBC42773E7E5B04F5F8C9AA74AD7679A0EDB825AD2C587A027D8A68E780704060A3309086A96AA5425397C6E9329B681046A6E493CF287AAACF5F3D2B1B3D4275319D1B80D1A69DBDBA24E6D1F13E31314693BC99E62874D093CCDF108D0ACDEA0A3E92F5CCBB4299AB8A1274D837FD293F0DD3A6AB8FA419A365623A9F1235031AAB5425607CF2688D36B7B6654E7BDAF57AA8178D289F918F588B50CD98BF38470B57E7B3B9B0D6C43C3D683AE747334E8741CEDC24264A687A6A82AA4C2B7A32FD9237362DD4E031930773BADADD8EE480508905A0978A91140965590ADF1418A3C0565573A56D49AD04DEB134438D52E1303F00B8FCED9D3A2D3E5EA6A76B9BD463C178769AA56B7FD1B6C2019016A026DF4C47F0CDA22761E873AC344B9719A4134D7DA56DF2F5C8D08C13B3F9FC0020ACB16A895EB9FD12DDB8B6409B9BDB4C3D9AD46633EB75DB6C6E3DE97095054DE09538B08900D2AC41C510AD3155BA34374B8512CA42A1C1B7DCBC79AD0F0BE5B8B86804CA3EF90168AAEDEED3F2CA8A782E37010AB8ECB3002A61D13499DB39AD9891282E5EEA647C9C7F717B6F97A2464013636346837275B764A0EEA3F2E6A40668C628B8794042DF00F84015D311AE5FA3272BABF494A9449BA3617834CC2B452FF4201B419864D611F2198F8A34333D4DF3F3ECE6239F05DECBCA3E92F44E6CEEF219DCEB0C69C62941DA0C0077F8609F4DAAD7A3A9C9091A1F1B375DF452B930DEA8DDEB8AD0B098125A7E81390683CC721608147D59DF43A75ECC71BD4C8186352D8C685DCCC527D2D0192712FC6DADAD3348AF53BD7E600498AD476200DBF50279CE043D99E10CAA8134EBDCDC0C5D9EBF982E5460E8899D1F7B626056A323A07C9503958B2B97E66876669AE24ECC84B32D6E1D6B9775587B804D98F90C61A01E8F155B30331AFD8B55CC722E14C98FD05714A52B3898304B6713548ECA24A634E3A36F523CBD807810A8AB2F33C540A7476E96AA00B532EA23B96705F3614141EBE0E50EBC2603FC9EC447A552498245B72E515A9BCF60FF486F864E592C583072027279E7976E2ED07EBD416B9B9B823798B583E94D682A4763952CC5E591500DE93493C030C0DA88343535451738D00470BB19CF6EDA393226C7D10C9914238BA524A3A84144F5FD86CCF102C016D8B5470CC4D9E4160BD8CA6892AC86078DE2E838509EF0B042214CF3D098D39199D8809B4F27BC646282E6A441651C8F9E8012B342268DC5555A5D5D93323434C6B505E71AEA330E9603702C26305E65463F3D25F33EB4CE1272DA25FD55BE70E15E9835D3949DF3E13E377A2666BD199693C0CCC32B572E192A82F63C2C20C9608D852401D2181996E12AF28655EC42591ED013762F4D565E2883CE3789A6FDD2035A2B1388AD3AC576DA021F5371122BF59C25567D828AE77381749DC1193C6C6BBB2693EAFAD6647573C3DCB404D7FE9B26D1CCE2265313133487847D921505948DB3F2C0AC73AB31881C73897116AED27137B873E74EE8AE8F03D1A1837EF3CD370F4F93C9E4AA737B9D17DE73B979B0F2ABAC39972ECED26EBD6E2369DEC0C77A06A8312BC8651001D061E8097B2F574A34313E21C1A359A12AEECB16E49B16D2D660782C4BED95CE9606EB3148D7B636263736363AB941EBC1E78C89FAF2E5CBCF3C876D6F6F2F09C3309E9999E9BEFDF6DB50CB04423ABD80F86E1F1C34C57B210FE4566A5136088C0A3E155496A7F66CB33956BF83066171B65A6D574CAF3A564993FD7D8DE4E6878C66693BB50A3B376BC8B605B289799DE6FE0D36D77177793921E89C20B42C4437700C7B7EC41D66D8E57219A597E6013F58231B2CA4E4B9DD7CB11471143C274C7E87E39A0EBB770DA0E63B1DCB6033A5555650262FED49DA1559C869CC38F43DCBE6ADA6686D8565D76D043DF162C3CE6233854AFA25E5038908A8D7EDBCCC2FF60660450FC20CFF7E7A2C31D506564AD5E5F36DD6A0037C073FAFB590CCB2F505BCF7B9300813EA90D680A9213A36AA6AEB351E96445666B964BEDD854260B00744C3B2FC106100A66D2687D9822D51DBA828B16DC86EE686CE151130D2D8E3D1A211A03A802D7A986B8160F85CCC028160509883603A7CB8C7C75A7C8C4941BB73E1C285C47DE639DCBC165CA91DD465E9E4FD66F3902B776B9C79A68A93D24C5F49268DAA1C454F4C8CD3F4D4240DF523DAF929DB2DE458BE5BDBC36A28B299BCC394EB785806342728E0098400D7DA6581ECF3B95D3EB6C3DB369B688DCDACCEC71B8C556D36AFDE7383B49182473333531CCB4CC86A771DE66200E72EBBF64E1789B3D84C19875022334F2C62DE85F5C7507905D550C2ECFDA10B948805D8D565DC4C47950279C6FE6313497B432A883A5346DD636174786BF07308A106A1B0C9EDF075ED42306C56ADC9C9C9CE83070F7A9B9B9B49DEFD9F5A40AB4F3784C163E63396CA41ADBE522DA71DF5CA4D69B23CD2A46375FF6A797638C82159F01C181DE887C59C4C2C6961C0AC302CE7F6E3D8AECD93130CCC0882C99951DD690B708685B3CBEF3960736A39AF3528986305E482AFDFF9E257FA500211F32E93556C2E9600D7923581C49D872631AFD440CB8296FC35482BBC1F342D19B6069949EBCA3A9F66B5CF3CF6A4AB827638AC78F7F183B7FE431B1584500031B1055EACF27AC0FB5D680A04C3AF6BAC317BFCBAC137A5BDBCBC0CC1266B6B6BFAA88031182214D9EEDFBFEF6D6D6DF9663ACFD1A08D1C34367A418BCFA6F9A524D760AEC46BE1C4C6E6EA87DFAEEFD6B672AE1A6AD8618C69B290EABC8719EDF0310866B7DBEDD65928CDE9E9E9369B514CE944CA5344D2CACC8CF36EDCB811ECEFEF87ABABAB05FEA102DF94D219D7EAF8CA63591F2D0D098DEB3F68370F7EBABAF4DE8F9DC6F031002EE2978673D3100C9FDB664DDFE3EBDF67E134676767C58CB6B7B7137DCA75BD829CE678172F5E2C306895D84C2AFCC315FE81AA8E7B636EBAE5990908F2B18BE9F2BF3DD691C7CB8BBFFA17869B264CCA9A11F0659FAF1131D08EC5981D362108E680B7F6CACA0ACC283ECE8C4EA4411C3D7ACD66336001B1D624D09A32DF8562A3BEF39D69467816518515BCC4FA5EE4DF8A58EDB11E45E4363E17B00904CCB043B684D010C96438CE1CF3886D4B0DDFB99DBD9DF5EFD43656DFB7DEA8CB1B8454879B06BEC08CA0397C53EB8C31C097CEE2E262EF346674D443D9C92312A14083F84710579458350B7C01F8DF539839A888071AF13E043DE16321BF4EF7A64EE815A352652C0A0B635E108E0785E234C74BD39E0AC6B5C7C2D446901C0346686AE5E721AB49C8B682F26AC8314DC8411F93FE224703AA1BF73A6F2D7FF8F6BF236E41B40B33E2DF8737AAF16FC245237ED9654FC49E2C6E4E4C4C74E1A6AD6048BF209557B9A04A30E8F6EDDB7EA3D1F05993FC6AB5EAB3A07CBE2B7EC497CD17E2F3C5F97CB764EF36BE50EC39BCF103ECF3CF59708115AABCB6CF7D6DC05FF65E10448542692C0CA36A54284EB45BEDE6FEDED6861D6CD30A464C08C2819B8619F1F3D6FCFC7C9799BAAD6FBE781CE8FBAF6B547F3B7CBA84089B9FE23BA55850B221626761C91EB4809F7B954A0542F220CC42A1E01F214C08CA1F22CCD009932F035AE98102C05DF379680DE2973A7F1F04D37E91667462011D150F1D536F71A181E2A0F499C284202144D64C11248408614260780E61F2F5E03DB2E7470C2DE1E70D98918B767351F247EE39D48BFC8D17294C6826621C1660CCF812C34D7F5466746602FA0D85A98EC98E9ECB85FE3F4524CF3249E403160000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (152,1,'Switch_(128)',0x89504E470D0A1A0A0000000D4948445200000080000000500806000000D1007DE40000000473424954080808087C086488000000097048597300000DD700000DD70142289B780000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00002B6C4944415478DAED7D07609BE5D5F5B5B66CCBB6BCF7DEDB891DDB59248184106881400861140AA5145A28D0B2A184AF2D1D747D85EE452185EFFFF98096555669B613CF38F18AF7DE5BB6B5A5EFDCC796633BDE24AC5A2024BD92DF75CF3DE7DCFB3CEF8B93DD6EA795C77FEEC3E9B30C00273C1CEFFF7DE090D2DFDF6F07160ED86DF6FD0971312BC8FEBC026022F04E0F3EF490E4A69BBFBC5126935D8F8F3BED769B87CD66271C53ABCD6EFB1B80B02F3931BE6C25CC9F13003832BEBAA636452291DEE82471BA161F83C7836EA389E013824F083E5EC5F2522CDF87E52F66A426B7AF84FC330A8086A6E660A944723D50806CA7149BCD361E6C47F039D8B689E04F7D7F060878D83FC4FB7D78FBEA9AD519BA95F07FCA01D0DDDBEB6EB3DAAE46D06E400437E255321EF4D9837F1610CE04FF0C3B8CFFED1896FF0340D887D7F7D66567595600F02979F40F0E2A10B84BB05F37205897E155351ED4B3B37C3AF52F3AF862F9C8C80895965550654DAD55EBE67E2A2539EE811BAFD9F5FE0A003E81C7B06E04FB615B371E74FB2EBCF79C55CF1D209887056607C799F75D3D3D54525A46A76BEBC43AA2232328353991BC3CB4547EFA74477D635385AB46F3DD271FBCEFC00A00CEF363746C2C0141BB01C1BB0E010A5F7CD097A6FF369B95EA1A9AE9C4A9326A6D6B27954A454909B194141F4B7672A293659574E264190D0E0F51485010AD4A4BA6D090E0A3D53575EF37B775FDED477B1FAA5901C0397A184DA60004660F02743D5E579D45D33382EFA0EC8525E06CEA371A4C54515D8D0057D0C0D030797B692925219E2223C2696060904A00888ACA6AB258AD141B1D49692949E4E9E14EF54DCD545074828D27A9552AFBD62D171C8E0C0FFD25D6FDC665DBB71A5700B0C487D566D32080A8D3EDD72358172238920583B9A4E04FFF7E78584727CB2BA9F2740D038E2242432829318E7CBCBCA8A9A5554840634B0B29950A4A8E8FC377092497C9A8BCAA8A0A8A4BA9B7AF9FB400427A6A3225C6C680198629BFB084AA6A6AEDBEDE5EA7D764663C00A678F3CACB2EB1AF0060EE871CCF8BC7836EBB1CAFEA459BB545EAFE4C20B47776D1A9F20A6A686E21B95446B13151148F002A1432AA3A5D2B24A00F99CFC165DD8F890C2783DE88E5E560835390243D05070652462A4B40103535B7011025545BDF404E528900CBAAD4547276515351C9C981E6D6B62A2F4F8FEF3DFBF4536FAF00E0CC23174FAED577E3E93D6F262F23F83359C06AB5506D4313955554514F6F2FB9BB6928212E8EA222426874D440A72A2A91D9A7C9603452504000A526C6536060007EDB47C5A5A7008C1A30945580253D39893CDCDC5019D4503E24A0B3BB875C9CD5021029F83B93D14C052527A8F0C449C20E0886589D9E427A83A9FC485E4185B35AF5FDDFFDF78F4BFF1301103B11747E463916DA1DC19B83C617ADE7B300614C6FA0AAEA1AAAC4933337C8DF8F1290ED7E7EBED431C104758DCD623FA2A3C261FAE2C9DDD515D4DF06C3771252D0464A8502CBE3C4536277A213E5E5540450E87423E4EFEB43E93083D1E1E1D4DDD747F9052542225C5D5C697546AA00444F6F3FE5E517006455E4EEEE46B96B326DA989091F149F387558AF33FEEED7CF3CD5FD790680DF4496DF8067D66C3F981AFCA5946CF3057F60701081A8A6BAFA46EC3D51645818C5217B9D91A9B558C619DFD3D3474A95128088A6F89868924AA50228A5A0FADEFE01D2BABB53725202C54645D010F4BD189EA0ACB28ACC2633458687898CF7F5F5A606540EF9C5C530852DE4EFEF4B59E9691485B2B1A1B1898E1E2F00C09A003C7FCACE5A4551F8BBAAEA5A3A723C1F00ECA6D4A404CB964D1B5EE9EFEDFFDFC6BAEA377EFBEB678D9F0700B8E079C544D0B7E2299DEFC773067D1EEA9FCB0072F95671BA5AE8BC8BDA9962E0DA395816B319CB6BC477636363E4017D4F8C8BA588B010D2832538B09CA1FC3E08D4CF554060A0BF581F4B00EA7E92002089713190874452A9555401C960AA6720454586512602EFEBE383E5D5945750445D5DDD140DFF003348BEDEBE309CE574F858012A8B014A4B4DA29CD5AB05388F1516D1C95315E4E3E36DDAB1F5C2E7CC56CBF30FDFF38D239F35004827827DC344F05D16BBF2C53AF9B958803392B38CA97E08CEDED7DB9B62A2222930C08FFAFA06B87143F5D07FB3C5229671E039507DFDFD548ADABEB6AE4E6C939B3D2C011A1767AAA9ABA712D4FC9DDDBDA4717541D013280E4CC1DB2A0143B05164BF108F65ABD25250062A8549CC2F3E4123BA51F88B18CA5A950E6FE00C2F504AC70008FEFD6A98C3CCD5A96440E979E458816022AE3A72C00E21C1015458720AD5C7296612DDF62D17FCCC6AB33FFFEDBBEEA8FF3403206B22E83CE2E6BB9C95CFDBB0398B05CE047F647494AA1128A67433323C34384804DE15016C6126402676200B254E12484008C5C646096D6E6D6DA39338F1AD6D1D28F154141F872A203A8AFD9A6082529486DC020EF0F5A5646878584830B79E051370D64B5039A426C543DF13012A331523C00C16DE2FAE1A581AF87D41518908BE13B69F9991269673F61FCACB174C14085958BB269302E04B8EE3B725A52749A3D1000C19389660B14E7E860405746E59BFF6BB1299ECA57BEEB86DE0530580879E78AAF8CEDB6E72C5C98F59CE8A270DE01224A00FA6EA746D3D82DC86D24D0E8A0F17353CFC19B2B941E8381B3415821B131D0EDD0D27278904DFD523C0A7453059DF13E363293C349886F0DB53A21F504D168B95222019C909B1E4E5E9896D7488C070B347E3AAA1B4944451090C0E0C09FA2FC7FA38FB33C00229F1F1A483BC1C2F281646D155ADA64CB00083A8BDA38B0EE71D17800D0D0AA475395962FDC70A8B01AC93A84ADC29376B3585858E07BE0815845C2EA335F8FB3880B30B954B7E6189CD62B576A4A5243F0933FBFCFD77DF61FCC40170D7FD8FDA9D244ED6C888F0235FB9714FB2AB8B8BE7520130D300CE167CABD54A2D1D1D54535B27689D6B740E2C9BAED1D111AAAAA913346F3099C8034E3B2E2A0A941A08BD471550538DE0D60A0A0E0CF0175580AF8F37D8A153B4771B9B5B482A9382056284C633A8184842027A7AC8DFCF87D2929244CDDFD6DE019A2F05209AC43E30FD33EBF4F4F48A60F2763C3DB594BD3A5D2CE746D2E1A3F9621B91116122C86EC87236874558BF16FBBA764D168583A14AF139BFB804609522F06942AA068686E8583E1BCC260AC6BE67AECE10DBC57EEBBB7B7B1A7CFD7C7F981C1BBBEFE1FBEEB27F2200B8FB81C71800244186E139B82127BBF48B3BB6ADC37BD9A201B0800458F17D6959394E6233CA373FD079A8A8C33B507F57D7D422289DE2B70128ED62902D5E5A2DF5836A5902B85D8BADC0EC71151049CE30866CE8CACAAB90553D221889F131024CEC1138A3B93BC8F2121E12024A4F206F646A4D7D03F4B9943A212901A06E310E00C9696A6D1519CFDB09428058F779790D0074E4583EB57576A08A881681E78E22BBFFA292930224EB73D68863614FC11E81CF01FF7D0A2A8F91915118C942AA06D33158D720F07C7CDCB52C0263F03963507265A31B1D693B555675DA49E6F4CC1B2FFEF5EF1F2B00BEF9D0E3769E8023008057A65AA55C5677CD95570CE2E4AD3E97FACF2CC0AEB901753B9F18CE0E29B619028D8E8E0817251E6728EB2B97585CE2C5468E57015899608932806264745CDFE3E3A2850E8B96303C4125CA331BB6C19503D3B952A510EBE29630B77923434351F32791B79727B6DF40F9D06D064438E42773552AF979FB08F9399A5F286AFF44AC3F0B8193E29CB0FBE781240F0F0FDA00FA8F080F15C3CC478F1592C96AA63519E99491920C0633000C25C28B70A66767AE121EA4B6BE5E349DC6F47A788F04C84A1C7C8F5594ACA76B6B859C64A0B2F0D27A16E1DCEDC3B97BE9C947EEEF3AEF00B8E7E1EF9C0500C9C4675071C197AFDFEDE7E3ED1D3AAFFE2FB101C4A371D5D575E4EAEA2A349C1F5C8357D5D4D0E0E0B0D0F75830417010820B475E812AA0068061260943562720309CF95D609093E515227B95728570EE7131D10268A7C0382751169ACC26A1C15CFAA9E1E82B4F73E9574A43005F34C0C512C0CD1DEE30B204F072EE1D6466A492CD621381E7F24FEBA185EE678A7EC409049ED9814BCE4C503D978FBCCD6345C542065C6062B333578BFE43330CEB5130413F3C47222A8E748084FB150CD83230155719ABD25384B4CD48182BCEDB0748B017F0FAF7A7BEF3F0E87901C0BD8F3C619F1A78EC1BEA41044DA2A4096098C3C3828BAFBBEACA14954AE57CAE1B40BD7D7D74E8E8F1717D873C44E3A4794202783C9F25808DA24C26871E87534C44A430564DCDADE20476767793BB90805861FC743A1D4AB90A1ECC1159CB80E0E16027BB04BFAF10193C66308AC611B777550A052A860AB8FD52D21BF4DCD44116A69011FBC22CC0DBE07D59BB66B5680071C977E0C8311A06BD670238D970FB5C21F0886201CA4739BC47F6EA55629B5D283F8FC027B477748AF2340B9EC2198C565155234627F95CA7A7A4085FC11237DFC4163C47F1FE35BCEEC3771F3CFDDDC7ADE70C00F73DBA771A005C1446BA39F16DFAFFA75269489A209840CCD174B20F672425F67E61C7F6082C735A5A0368FEEEDFD0D030F12A954AA5C8984A9CA41ED4F86E6EAEC8A2480A4349C519560D0359064A1F1ED2890E1E9BAC409460CC045CC3B35153AB55A0D70448478400157B8F93F00BBCEDE48438E1E8F9701828ACE53C3E9086D28FCBBFD1D131D1F2E54A83879473B33285F728079D1F044807870601922451FAC91432F1F7E3DA4FD0F87404344948CD51B0466D43A3A07EEE1E7A423658F21824269311EB48A4048096CBDBA5CE70C239EBC4EB4B3C13FA674FED2DFEC800F8D6634F4E0380463A448F6E7C8B5E2E0CA07C5A4783F22E0AD1238BD8286287AD56F3F0D64D1B25B9D96B5C3F6A03682610D8B87120B959C34CE0EBED452328CB7820E734F49F877C7922074B80076482FBFC4CCFEC173CB51E22C061D0736E26959C1C1F0052005429A8F91350219860124B4E9E14BACB999B0ECD4D8A8FE3994A087C2180779ABCB0CD1CE87604CC1DB77C0F1E3D26DACABCEE5C300177278BB0EE2379F96484BC6441FB33D35349CFAC81C07329EAEBEB33D91F6050324806212D49F025692909A4805C2D677ADB2CE7B812EF5FC0FB179FF9F1F79B960400C79C7B00C03A0D00925E7A64E3BBB4EF981F1D5627D36B173C4B99EF6DA35CA7ED02009CA97CF2C86A1EDB7DF54E45487090CC768E0780F877169CDCE3C8182E0D7957992AE3A2A3C5902F9778ACEF7C52D95973F78F077578E48F4BBF3A641FCA599169DCE265ADE62610B78A154AB9306BDC011CE81F126DDC4A48860F8C211B3636849CAD8750F377835978983917C17473D340B32B68FF913C48C008AD027DE764AD16F4CD6D63DE2E8F50AECDCE12A695A99F658407AC98C5B891C4267731339C160AFE2CC0E17F0FE1BF2C112FFFF6E73F1A9C170013C197242525492FD9B9DBE800007E440A899ED668F753CFB09C0EBAC4D29B17FE9E12FEB596B659AF9906007EE5AD6A5C54863DBBAE52A9D46AA7A50CFFCE3CB0D9AA091D0C60476727050707C2DDDB4446B22F60BDE6864B626CAC1813E08EE089B232D1F4F1F2F4106D5FEEC40DC1137093A602B5BD06668BFBF73190869EBE7ECA87E1E3D2904B44D6670E7C1D3E1F421677C15B44A12AE12C66A661977EE0709E00188F28AECFC92625F49E6B7E76F6DC7760B9605AEF1FE8073B148ABA5F480040C5EC740E66382F3C6986636C276360A0DF3F1FFFF6BD57CE0A000EFEAE5DBB24050505722F2F2FE5964BAF1874B8FE02B8551F9457A74163A9313E644D55D33B173D47F1EFE6D276C9B59300100E800DA34426A4C16C345AA222C22C975CBC55B59C01A085660071F0C5840DD4FFDC31E4913F9EEFC77D85526879370223DABEA07A7F30421F289B339EC703B8A2E02960FC77A21B87D28F1982FBF7ECE0D95FD483A699D2DB0136A67EAEF9B954E4F18983C8781E98E272745D6E16B9B96AC4BAB91F60C1FEE7C0EDB3948C8D8C09D3C765248F65ACCDCE14FEE45CCE705E4866DD346E421E6532D9D875575FE97216001CC1EFE9E991F7F5F5A9518EB86FBBFCEA0607000E1D3E4A5D5D674A4FBF601F92E40C138DD969BBCF359399AF950FD0069FF7E8FDA66CB2BAC44E968DFAB151E386DC1CA7A4A404C5FC07B3BC19C056008121CE357C29B49FCD607050A018B3E79A9B33945BB0ACBB5E3071E9C9C9F83E00B57E8F0010978B3ED0782EDBB8CBD80C0FC134CD2386BC1E0E3C376D98510E20F06C48B94C5D97B30680F042A95849FB718ED82C32A567C1F1DBAC1621013CB8E40A70AC036B4445862F6B6EE3E4CCE6C59E938957F6144840E13998DCC7F4FA3901C0B42F43F6A8B1620F04CDFFA22FEC3C76060047A8B3737AEF210AC85F9BBB06E5977C12001E9276FA4AF2ABF4DAC908AA515F4C46BB9EBC9C7C1D6523CAA831FD65176F572008D2E5CE009AEF44B134D43536504860106934AE426F8BA1C1ADEDED82095293938427E8009879748F03EDE3ED897A3B157F1348AD1D1D9477BC489498FEFE3E94B36A350504F889E1DF43A8EF790E029F4CEEF773A3899B38FF3E94C717B0882A623D745E8E939E8FBA9F9DBD542AA39C35ABC4543266C633C15F3CB897C302DC540B0E0CE099CD2443FDCEE79FC97954AF1FBD7ED74ED7D90020CDCDCD55E055835AD70FCBC22EBEFCEA371C813B78E8F02400A43219396BDCA1BF52D4E75E141E92350900775B037D25ED4DFA9FC2302AF5C9A417E29EA64D0557D37AE7ADE365237E63B5586DCE0A9971FBC5DB545299D4E95CCD009E7952B865CB83341CC094840451BEB581CA0B51A27166FB787A51467A0A4E943FA8BC5B38F2E6965621015999E90210ECF28F22F0A72119DC8666D3C799DFDCDA0E2638225EA32322687D6E3679B86984AF387CBC508C247215B03A2D8569F7BC1CDF5CC1F784D761DFA286143A2E9E1600186780110040332B0056AF5EADC467777C0E44B022B67DF1AA971D003800000C82569D351E141A6A877BEDC5721B59AC5222F326D26A03050064C616DA1EF01615B60650915732BD90F534A51EDB40BB64B74D8C299C318AFA31BD393428D09ABD2653B568EA5F624389A77BF329E0A163CEC83630029790DC75E3F9035D3D62248E1AE0193CB5EE085A8618181AC2B1E6A10AA840DDAF717315133C984AB90D7CF0689E9824CA1906598334400250261E387C4CCC2EE29A9F8D9F4AAD5CA6BF5938F8B39D1BF63E6C2EB9E2600A102D9A89C03B80A0D7EB75D75F7395DB820C80E5A1DBAFD8F5A6030035758D64B6B740233BC48A4D2629198C32B2DA90D5D64D70D808384E70785818559C2AA4E470171A4AD0D2FF5BF34B4A3AB08EF668BE7656A5205EB132DDF0A03173558624242444BE9419C08BCA9289133E3A3646E595D5A249C4068C3D019B3E1E0AE6326E352420223454FC8EA5818790552AA5D0731E611C1C1A162D5EAE34B837CFA68F4D625D43839000EE4E727B77E3DA6CACCFFD234D729D09F085F45F2A75128358EC619CA6049E04ED4F07C27C0098E6016002FD366EBBE4172E2E9A5CC944A3C76235A0CE3D481EDA61E88A9DBAFB5C417B7AB2992F043D06D15BEFBC4B6D3047BC93DC964DCA89A1A6F41272D669688FE71D530080DA5D7698DA47036114E3C6CB463838FD88CEB071FD7AA5B38BB36439FABF5877DC0623F7F6071F924A393ED61F23FA014661124F9495E3D824949E964AC971B1A289C3E300DC2072553B43CF3345EBB9ADA30B753F24A0B94D30C1C67539E4076FB1D8BEC64225DB62749FFF6159F283B719D7F9B903EF6004BDDE307CC3EEABDC17AC02A05B6EC87CAFC4B48C6D21E11177A994EA4047C7AF7FA09DAC745CCC14532ACD24935C40DEDA107AF39FEF500B3474EA231D273836298CC203A2A6657EA6F2798A756FA0DF9CBA8EBC43E245D9C86C603699AC7005A69C9C1C35EFF847354873D5D406BD81A430AF3C9F9083CE53B5F8F729DCFA4D4C10EF79C64F3140219148C5502E7706FB0706E950DE31715D2157131BB2B385DE2E0D8C0B49DCC2C1E7C691BF8FAF6029A789D27B3CE8F333C0D8987EE8C66BAFF698B70F5052522273777757619133BEF3502814BE99B9EB6FF20D08BC562695A91D411CD6EDA7924A3BA5C4660887FDC6DBFF9C0600A43279FB78D2F6CDE9E4ED3D1D00A94E7FA074FF56FA49FE5594975A44CE231ADA6ADB49AE2A57B1A323BA6113CA2E7B5C6CACF27C36487800A814651A8CA9A810A4C87E1E45E4468EC56C117D022E1979A896277AF0502E9FFCB5D0F8B8189E28F5D166382FB501C455057B1817179733819D12F8B98130FE5E6F300EDEB8FB2AED829D40184289D96C5640125456ABD5053BABF50F0A8D4ECB5875B787A7E70664851307D364B288A0F2D4A937DE7E47D0AB1A1582C6434359E9DD90022BD33BF96A77A21E0F98900109451B7E4539E15DF4D3FCABE99D940FA834E828DD9EB7975605AE992819C7D9A6B7B7C790101F2FF3F6F2949DEB06C9CCAB8639C8AFBDF94F31ED3C213656F802FC5A98C49293E562BFD913F044127EBF9419CECBD57FC7BA392AEE6E6E84C414CD3647E0694AA01D81A7699FA7CB80DE6818F8D2EEAB3D173516B069D326496B6BABD4CFCF4FA1D3E9D4A8F7353870CFB8E4D4F5710949773B3B3B877390C6A5C14998A45E9D0E8EB9055962E6BE0C190C32329A64E4E57E39B42A181434CA4684A4E65EF2B51EA336FB1A7A3DFE75AA0A2FA6DB0E3E4E59E16B69FA1C0427EEF6D90707FA0DE969692AB942EEB498602ED779F3D880C9642605E481FB0785274E0826E0B103EE1528E4B23901782EC0381BA05CD46A72F7709B52CF4F093C4D71F9B3047EA60CC0D3F403005E8B1A0D9C0A04540672044E8945CE78BAC32378E76EDCB427342CE246995CEEEA6818F50F94D1E04801B2DD889D97D0C0B04AD08FBFD7170080103188F2A7BFFC156EDC97F59EB66DBB900E04BE42E519C7E9AB479EA0ACB0DC69934F1CBE8319616C6CCC0ACD36272626A8ECE7B0473EDB7AF87A4106806E7444CCE861DA5FEAFD0896ACFF33D6C7D7367285C2E309678CDCF48C3F1B0813323007100C4643FF4D7BAEF1B64F09FABCD705386ECAC4DEA0A2A202C58154CEB28038B882113CB45AEF88ECF5EBBFE6EBE7BF55C293012636DED2F64FD29BDBC9D5C54CADEDEE9418BD95FC7C42C560CAEFFFF4DCB46D44C0856B732494E2BE8A9243D3689C55C601E0633D42B6B156EA946D2317773F0184BEDE3E13D7BA0181810AFB6247C81611FC65B7A29731C035DF18000E5E5C8F280CDE940C1F8FC4F4CF6780B0383F0006E87BEBD597FD5E7EF9659B03048BBA32683659B0582CCE00C2B82C24266665AC5AF30D5737B77847C36764544F4DADAFD2F0989D62422F43B9343E41E3777FFCCBCC95D395975F46B96BB226B5DF91F95E8677294BF306BDD5B09924515792DC2623854C290EB8A3AD4D1F1212A2707175917EA4C1A5C5B2C939BAC269AEE0F3EC110582AE522AC6CFC1546A9F1308F3FB81E940209E08D3F7BDEF3C1A545B5BCBF744122058D2A5610E20C0244A511DC85816F0F72E08BA3BBEF2BAE0C2AD9747C7C5DF821A5BEB70FD35F58DA2F9C2AD526E98FCF6F77F16EBE28B30B8A5EC17A8A2A4D83E328C45D2C5175E3F8DFADD87FF4E399EEFD3AB551BA821219A5EB4FF96F60CDC4139FE1BC4F7668BD9D6D5D9618C8C8C5231FFD8CE53F097734B9AA57437792E204F4393482567287B368D5F64E0E7620494BFFD7FFCCD33E1063C8A8A8A786EA16DC91787CE250B269349C3B2A0D16883366DBDE8B6E0E0E04B51B6C81C53C7180CCC007F7AFE45D152F60F90D1EAB476983C89686AE8469474E1FA47A70140DAF1125D187C885EAEDC4095B101F4ACCF5EDA587529DD1BFA044D35A0C3C343969191114B7070886AC189A8F352F6B9B91FD1621B401C20BE6EC161F0A6966C535BB833697FB97E006560FF333FFD513CAA09DDFEFDFB4DCB02C05CB2C07308F0590DC3E80693A88D8A894F5DBB61E337BCBC3CD31C6CC0B3775F7FE7438A8E3A419E5A03592C521A1D938B9DEBEC72A1CBB73F2002CBA371F5600E7F3F6F920EE69154EE4A2D292EF4C7A0A7695DE925747FEC7F4D0E353B4D79ED686F37CAE43289BB87566E3FC737A358D033CCDA849A9B8984DC49A467824B530CDB0C20CC2603CB010292A4E80FBFFAE56588CF505E5E1E03C0FA91EF0F30972C8014DCC10ADE9B2FDCBA2D392DFD36948DBE0E73D7DDDB4D0D2D7F231F2F9D68292B9516945F12DAB2EE3B0200F50D0DF48B677F0B07AC10D706AECDC9229F8D2ADA17F60C65D75E48F727CC040024D43C4A32958798925A5FD760D06A3D1472A5527A2E275D7C64169892F9CC5E8ECCA429193F1D08F3C9C0DC7E60A60CC0AFE99A1AEAFEF2F61BFFF813E2D3E9E9E939FC9119602159C0436DB55A45B5A056AB032EBEEC0B374545C75E09BA5338025758524C4AD5EBD4D2A1A5A08041CACE784A0080AFBFFFD92F7F356D1BEC8AB75EB58E4CAA61BA2EF7D6E900B08D5268F73D546ED8419E71BBC5323091ADA9A1D1E8EDE7ABE6439CB767B06CF7BFF8E0F3EC655EDF59CE7DB6EC5F061066F3039CE12DCD8D87FEF5FEBBCF0DF6F757631F3A118F7E58007D7979B9E59C01603659C02BB381C2210B008567646464FC96ADDBEFF00F0CCC76F8023E29C70A5FA0A345448F7CF3360180C6A646FAC92FA60380E9122C435FBFED26619AA652BFDDD04DE963775359A717C932FE400DC61A8A52C589D66E4F4FAFB9B7B7D7E6AED52ACFA5042CB601C46D669E1F307E9E670CD3CE648069B43F8B1F98C508CE25037DBD3D35470FEDDFD7D4D0508A6D77E25CF5E0FB2130F1A88F8F8FD9510A9E979B44CD9405680F5CBAC419EF3D40475E1B366FBE202767DDED1A37B72087E91B1C18266F6FAD182B686C6EA2A77FF6CCF89DA6144A7276F3A0B070294587F7D3D0908A765E7A2F79B8074C02C0305047B9F408E5377A926BCE9FE896BECBC96BC49F1EF3FE21F9788CF70FEAEBEA0D46B359A652AB650B06737242EAF2F45F4C53B3F16DEA8CE2BAC439EBF62940988D11960304FDD848DF89E2C2D78AF2F3F7F354082CEBE16B3B21A53A0F0F0FC3D4E09FD7BB84CD270B6C12F1B5EF55D75CBB27212979974221779E3A5FA0B1A9899EF9FD5F10782D8585982929BE8BCC2629C060859151D2AAA4AF515464E2240086BB2A29CDFC249D687123DF4DCFD19E8EADD4EED64CBF68DF47D989EB260C175FBB60B55754541AE48C2AA94472BE1A407A834104DF3E9EDCF364EA4C202CDE0FCCAC10AC16B3B1BAAAF2C38307FEFDBAD56C6EC5F17663FFFB9170C3D0FCB19E9E1E536262A2756AF03F96FB04CE260BD8314713C92B242424F2B22B767E352C2C6CE3783351220EF61F6F7D40AEEEEF939BC60459B0D3C0909AD46A3375766B687DD6ED141B153B3E5BE9E0617169F5D1FDAF9164A48A76DCF863DAD9BA91FAB45DF4D3B6E7695DCAC64900386443373C6CADACAE36A9D52EEA73197CA3D124AEFE1DD77A9A676C7E1E202CD10FF0D6DB9A9B4FE41DDAFF4A5F5F5F2D12AD133FEF85011FC4F7A3F05F46A5526986E9B38D5FB4353DE01FDB9D426793052C72C1CEF10405AFECDCDC9CCD5BB6DEAEF5F48C747404474687E9C0D15F93D6B395FA065C482EE3F2C94EC971F74E02E0C9EFFF88EA1B1B85C9E2DBC37CF986EBE8BFA5DFA1A6A8D3F4B3F617687DDAC6697E4132564D56451029D4EE3C81C5D4D4D24272A55AF1511A405CA9F07430A3C93C7B376E66D0670DFC027E6096D270B07FA0B5E0D8D1D71AEA6A4A10F80E9C831EB06B3F5E75D8273D5ECD8EAC9FB864CFFE89DC29742E59C05B31E40C6970055569B12F3EBB76EFD9B92A73F5756A955A335E364AC4ED5BDABA7E45B54D5E9418DB4531E1F7515444B208EADEEFFD505CA3377D224A12B9E5DA6847E415B42A2173DA08A3A4F1E7241DCAA326F557293C798738E965E5E5FAFE419D5C2295CA96341DDD62135734EB46C6B01EFB3C819DA3937756A36771C6D06830E8CA4E96BC575A5CB41FCBDBB12F5D78F6E1AB210080B3DE84F796B9B2FE1303C042B280C56E0082278C4AE8B5D7DF704B744CEC45281BA51C3C7E1C3DFE67FAFB7B3DF4F52FDF4071519162D0E889EFFEE02C0028D52E74EB4DD7D1E53B2E9E46FD0C0063E5F7285CF2211DEAB98CA236DF4327060B69ADF705A895CDB6828222A3C16C567128E72BFDF83BDD884ECC1012744F4E7350F41C933496E907B02D4B7D6DCDF1E3470EBE8D0C6FC1A24E6479378E6D00AC3A02DA37609999DBBC0B05FE1305C07CB28032C50507E5C1630B191919E95FB8FC8ADBFDFC031226F57B74540C91F21C3D0180FFFA019555568A93A576D190C6434B99197DA45258E0F3B474FBCDBF9E0680E1E24728D6398F3E68DB4E015B6EA12DEDA97451D717E9999C3F9312DEB0AFBFCF52547C02C59B936AB60610DF94926F1C69321AE7E9C5CF078425F88189C07384BA3B3AAAF38F1E7E7360A0AF9ADD3D673DCE533F247498AFF8E9EAEA32E17C5940F7F6C506FF1307C05CB280074F4071C5010A59B86AD7EE4B366CD870A3AB46E33919CC8909A68F3FF9036A6CEF2417540CA9497D14E4AF43363B2153510BF7B9D283773F376D8E41E3FEFB29DBAF80DE69B998DCD65D4D578CAC23D72E773A9A725A5C42E51887A8ADAD31965555F31F2AC675DE246E5DA31BD64DCFCC4576E3E603C27C7E40373CD45B5290FF6E53435D31D33D673D9B3C10E3E0D8D8D8A8ABABAB01996F594AD67FAA00B0185900DD7979787905DF7CD3CD37A4A4A45E22033A1C0078FFDF87E860FE1BB431A7990C46B9B85E611015834C66A59A3A3F7A7AEFAF270798BABB7BC9D54549A51F3E43230609F96ED946375A2E21D7360F3A9A5125EEE8E5186012D3BE706E8EE717E8DFDF7F5862349B15E355CA6C63F333299BE6F5038B31862693515F5D5E7EF45469F141EC471B673DD33D9B3C6EED22E87A2C332D64F23E3300986D5E22F78170A04AF84457EC27570BDE38E044F883DB5036A60B361053D64DF4CA1B4F0300B5E4A9D5536DA3179860981A9ABCE97B8FFC611200DFFCF6C3E2F270BEF1E4C55BB750FC05A17497E43A5277BAD1B19CB301E0609B6F3FB6D72A972BA4B38ECE91D3F4C0CF948199C66E013FC0EDD9E686BAB2A2E3C7DF371AF5CD9CF54804BE2CAB17DF0D617F46351A8D71B126EF330780C5CAC21557ECDCBCFD92ED37BB7B68FD1C0DA4D6B616DAF7CAB3E4EDDD41637AF60926FAC657FE77120077DFF7B0B81184E3C11776AEFD62329D30E4D1DF6E795500C0C12C0E00F0F35B8F3E31098039876997E507A603A1B7A7ABB5A4E0F807FDBD3DA739E31D9D3CD67A1CFB088FE3E3D504BAB73926747CDCF70AFE54C802B3014E8A270C63C06DB77FEDDAECECEC2F2A144AA5A3E1F3E1A10FE860DECBD4DCA6A57DBFF9E9E4DC81BBEE7B48DC1C72C636E8D517FF4AE1E1A1625C7EE610B3B85B0A00206300CC3B56BF1010E6F603A3A3BAA1F2D292C34DF5752558CA3ADF018DE7ACEFC3B10E635FC6FAFAFA8CC1C1C1D67391F59F19002C240B7C1513570B919191B1B7DEF6D55BE2E2E2B21D816307FFFADBEFD1AE2B2E9D9C58FA8D7B1F1417703A06979C91F13E7EAE949AD84D61413BE9AB37DD390D0093F74B7A8419402E9DBD373F8B1F58F430ADD954575D75A2F254E961009A339E6BFA4E47FF1E093F02E6332EB5B4FBDC01603E598029D2B02CE0B3CF8E1D3BD65EB56BD7977D7C7C8325B3CC2CFEFA3D0F88FB05BBB87B909B56436B335B458D2593DB6860C0957EF2E45BD3A8FF0C00BEB3080658BC1FE038B6B536D79E2C2A3864D0EB9B1C59EFE8DFF3C00DF7EF5B5B5BCD13A5DDB24DDEE7060073C9824EA7E39948A25A6036C0D3EF8E3BEFBC72D3E6CD3B9DD5CE2E5301F0FDA77F498515D5949BD9425A773D325002B72D1375F6C0A00BFDFCBB6F4FA3FE49003CFCF8380066A5FDA5016108020F677FB8AFBBBB7A42E745D64F74F206F97F6AC9A376E7CAE47DEE0030972C802E4513896581FD5D686868C49D5FFFFA4D696969EBA55299C461140F1C790DFEE039F2F119416D2FC5D975A29E7E675229ADF4C3C7FE358DFA27EF99C80090310068CE21DA59A76D4FF10306BD61ACA6F25461635D6DE9D4C033DDF3240D64FD88A37F5F5E5E6E3D5726EF730B8099B2C0D734C224C9878686266501C7E67BD14517ADFAD24D37DF1212121CE9989BC829FFDCFFECA59395A7282EBA97CA4FFB921792EEC74FFCEBACEC170078E831ABD45105D0ECD7DDCD650C6D368BA5A9AEAEEA74F9C97CEC53BB23F84CF79CF53C49834D1E77F2C2C3C33F96ACFFDC00602159C0D39DAF5BC0896759D871E98E4B77B9A1D6735405BD7DBDB4F7C73FA2D8A83C3A7C3C9A5EDFF7D2ACEBBF070090C9A698C0C5CCDEC53F5D1DEDAD9565A5C7F4A3235CCF77809D44D64F74F206B8930733BBE4FEFD0A00E60102B3417D7DFDA42C4C3491842CF8F9F985DE77DF7DD7E5E4E46E962BE4B2C97B201D2BA0E75E7A859E7BF6E9D901F02033000030B3973F0710468687064F979F2AEAEBE9AA41D03BA796761FB7C9FB8F02C0543600109C5816A65EDCCA573923083EB9B9B92977DE79E7CDD1D1D109B3B9FE998F6F3E000690CBA473DE806102086693C9585F5355D9D250C7B526D7F1DCC56BE7491AD84E2F0039B498491A2B00384FB28060F0554CA25AC07BDF5B6FBD75CBB5D75EBB07D9E835DFBAEE7EE05100E00C03CCBCE0C26EB7D9DA9A9B9BEAAA2B4A2D2693D0786EE14EB471BB99EE973249630500E7C1243A6441A150F0554C4216F82A676463E0C30F3FBC7BF3E6CDDBB8B1302B00EE7F14122093CE365AD7DFDBDD5B5B71EAD4D8E868EBC4302D07BECDA1F5B48C491A2B00388F6C30F39E07DC5246807C525252E2BEF5AD6F7D292929297DE6DFDF75FF23169840D9D4162EFCDB687D65D96994F50D3887DD137DFB36A67CB08C18AB87FFD02D6792C60A003E0620F03D0F101C1E5B70E17B1E70B580F77EBB77EF5E77F3CD375FE7EBEBEB3F09806F3F6A96CAA572FE730B1EAD0DB58DAD8DF5351319DE39315CEB28F17AB98DEBE8DF7FD2266F05000BB4941D17B73A6E85C3B2C0774A7DF0C107AFDCBE7DFB0E50B71A0C609248A4F29E8EB6D6FADAAA5AABD9CC83343D53B31EAFDCC6EDE3513BAC4BFF69CEFAFF68002C461626D8C0373232320A40B8FE777F79C1ADA6A2AC6244373486F3C5C1ED7734741C59EFD0FACF42D6AF00601E59987A2B1CAE16B86C6430705389AB093CF53867FD3C278FB39EB51EDE51F759CAFA15002C5216F856385C364EF40FF826CBFC3FC1E0E1596EDF0EF058FD6731EB5700B00459181B1B13F74C040054083EDFC5D4A2542AF56CF23EED0E7F0500E7A8890426908F8E8E4AE10725083A3CA0D90260583EAB59BF028025C8C2DEBD7B9DF6EFDF2F81417432180C4E5006BB46A3B17FDA1A3A2B0038CF40707CA4F1EB34C8FE393971FF07D8A71BB9A44D93E00000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (153,1,'Switch_(24)',0x89504E470D0A1A0A0000000D49484452000000180000000F0806000000FEA40FDB0000000473424954080808087C086488000000097048597300000298000002980136D347DF0000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A0000036E4944415438CB95946B6854471886BF73CD6EF6AC89EB6A884975375183AE5A4D84404B213F6A0D8822D52012A1782301B1F487088542A07F82509AA01204FB2334D04B0A15418862292828885AD1B84623D966B3BBD94D62B249CE6DE6CCB938B3644B8BD134031F1F6738E779E77DCFCC709EE7C17B86904C6676231BB5208C0791EAFEDCD8B875029631B8C50408210D86611C35113E822DAB02210CD9DC048CA652EE9C3AFF1463FBD77C76F64A67E7D7D3CB11584FAB953E1FA5C0CD74C5801082643A0DE3D91CA8BA0E866182A6E9609A08906962CB71EF3AAEF363B9CCF5757474B8EF14F8EDDAF5EE83FBF69EE6794E741C07183C951E874C260706D2C1B26CD0695755034C6450212A4E45742A8A6D9B41E6886BDF9205F952CFF79DB7DF1238FBCDB7A34A202B377F7AC26DD8B1A30A6104F3AA069393AF21373545C11AE826851B080CDA75432F8858B6050413C0160181E7A1AC3C08B2243FC326EE4344FBE9C2F9F3E98240FB57E7A653E471E8F3ED4D90542DABA5F9305F51B14664D96BBA06E9F12C64B39385989838B6D83C8B4B05977E1F0E8540090480BDCFDC636C4138BCD29324E9101789447C7BF61EB8E7940CED14700DCC29B3D0B27D97378625BCE7A3CF648E1378F611CB3E9DA5B151B139EAC8A06ECA5704617578D5021815E0222F4265E51A082A0AA432B92F0A0E388EE3BF3C7BAED5E3E132B2464A251202698302CDD1ADEE8C5D8AEB6AB7F8E96E2A80548D391A87956565509C63608BC654EAF78142C1922882482B37996BFDCF366D6B6B93D6456B7B5ECFA78E133BCFFB1D0556EC5A0B1F87EA8846826E20182C29028BDDA4456824A224FE036665E8BA319DCB37BE750EA81B8E6EB9687524DAFFD7E09F0D01C50FAB03A5206E5B0BF5620DCEA312C1765C91C167F2B36CBB82B0006502B64DECB1BF137DA9D1447B7F7FBFC5BDEB24B3D8BABB2F1EACDDB4F1F22F57AF846A22D5501FAD8244D8F32A67A2E693A197B2CFE7138B609EE7BDCC58323EFC7CF0C8C0C040DC5B0073EFBB2A989BA6A626E1D8C99317AAAAAB4EFDD07751FC305607B1BA4FF0BD078F4B8A71E4A7A7F223C32F3BAE5FBBDA4379CE9257C562425D5D5D1F6CD858F3BB2079F53691F19DFB0F7D84FE886462F8C6AB1743EDF1787CC25B04F6BF04FE1D5B6F6FEF7E4C9CEF6EDEFA03922389338F1EDDBF4919EEB22EBBA5DCD0C6C762313F5DB5EE2D017803E3A425037E775C910000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (154,1,'Switch_(48)',0x89504E470D0A1A0A0000000D49484452000000300000001E08060000006AA49DC10000000473424954080808087C0864880000000970485973000005310000053101B7ED28520000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000009F44944415458C3CD58097054F519FFF63EB2B937D70636B78484802412CC104CC0944211B0D2801C415070180A086552079563E494A9E8581DA6963A431B9912A39456ED0805524827108848D2403627E4DEFBDEB7BBEFEAF71E59D890044190FA32FFBCB7EFFFF6FF7EBFEFFB7DC77F052CCBC2C31E023C743A5D02CB0A8B3C22F8D7E4F474233CA643F030048C46A38A20FCBF22297205AE5244D19490C27F24497D43D37405E9759F282828207E6A04C456AB6316822EA3197A3E45514A1C80C001B1DF3AE3672FE185AB4D4D3E86626A2452D9E1535F4B3EABAC2CA5FF6F044892CC27296A39027C1101C604830D80A7F16CB5D9A0F15A33F8FC7E9049A560309941A99083D96A7326C4AA8FEB0D8663BBB7BDF1F5E322908663194531CB6986CA18C9D2DC40B9404F5F3FB4B77782402C02D24F82C3E100954AC513100A0580E4C166754058980A9C2E57BF5A1D7DB4A7B7BFE2D0BBFBBE7BD404D43816E1588EA380BB310CF4A0B5FD08B4ADB313060C46904B656041EBD3382793C9C088C0E5721938EC4EF09124286452B03B5D209188C1E67072810F84DBC34645455E35596CA7264D7D72F78665CB1C3F9840775FDFACB11ACD7ABC9C8D431278809BA7E85BC0E941226E0F012D6DEDE072B941229580C168E2413338E7409032B91C4C463388C462601906DC840744420EB81DA448C0E174E36721783C6E604080DF63F05901E9F3FAAFC6C7C57E403A2D55070F1E241E88C06BAF6F3F9993354EB26249E914A9541A328400822707E5A343E06EB79B978DC96285F0B0509E881F352F1209D1F21608095182CB4DE0F3240264C0E97023412958ED4840CC11F0E0C234787D241201F0F8BC182F72F01004889118E1F37A626362FF6E361AFE71F4933F1CBD2F029BB76EAF168BC5451289C850525CD431F399C2A9DC3C8D16A487689F829B5D3DE045C066B319588110FC3E1F38D1F2A1A14A305BEC280FC0202681E00021603BC6831CBD62B3D9311E8448CECDBFD3E3F18014A54778BDE807E03DCC000B0CCBF0D7196929F8BCA80DDF5B41FAA88A03BBDE6A1F95C096B776564BC492A2DCB0F3502D1C07F13EAD79F6CC22595EEE64D548C18B59099C0844D7DA06F83DDE1B32941327214E724264C15D2B30037199899393C3CE1110A1C75CE82D1112F4F2CF8AD0083ED2CFDFE3BC302E3D8D97E4F04C47D762FAAE60DDCCB10F3FDC6BBE4D60C68C19E2BC6933CEB9DCAE8248B6054E67DF805F3A5F011946023A807861DE3C496C6C8C38100BB7023940840293D98259A80FBC5E0E10C383E002D862B18114A56341726204C7599E0B5E2EC5BADD1E042941EFB840A95480C56A83CC8C745E92C1DEBE9338EE10512AE5546CB47AFF960D6BB7719E134E9C38513DF317F3AB3B3A6F8ED7E95A202D27118AF29E8502F539F8D21D03D1743A13A588F43D37E7E7721146DB1022419EE9EAE9E563A17F40CF1330184C18E45204EEE26389467236F4820A010FE05C28A654BDDE0419A9C9101F1F37E29AC1E005F8A71D9308899A7818D01BAAD6AD5E592A282E2E1663506AA797CCFEC668B6A62B427498AB494C8B252074E8A0214B0FC99E0990A39A02A4D745C5C5C651F9F9F972EAAEB808BC8C0B6E335AFC66773797EF79D0029488C16884C88870F4941EC24255D08B1E4BD468202D2589FF4EB085875A1CD76468888A8880319A044CC3123E8E068CA663BF7EE5A517390F08F2F2F21449696953D23232F7496450D067A887F8E87CF8E26F5F414C5C04CC7DEE6790A81E0329D4677046F5248C71A6F8D06A82C4C4B1D2404D08D4873B3182E9D64B40FD950608512AA16F600042E44A7CB181974956E613284F7618D860EB73C983CB5EB1EA183E9638E0816134198FAE5BBD6AD9ED20E6E2002D1199993369615272EA36A944AAB9FCDF7F42B2D6857A4D028D7A3228FDD7A12AE5329447ECC5EC22028BD9446465664AE5728568A4D62270DDDDDBCB4B86F348CEF871204000F7AAEADC1993112A21145372085FC903C045836783D152B1FED59565432A31D716A3A4640CC324144C2F2E1FA3D5AE6AEDA89183200CAC660A2E5EAA87BC824C583A7F1984492C28B12BD0A1CC61E44EA52F2D3D4D8E6B0946D6F048E48656F5DB730C85B5428281AA1C063A78E80DC64F37AD5B5336622FB468D1225157575788569B3AE1A982FC3D9AC4B1457597BF15F8E93AB4080D93B25703E53243B8A0133E4AA881BDEA43D8FBD849C2E3A563E3E2E443E26214CF70A0C9A039BE0660FEE7EA06974EEF0017F0A9F76E2FF4F6F47DF4D589AA4DA336739C373036703D71D494A79F9E3369F2533B1C2E7D7273FB49989EFF327C72E4285F988A57E4C2D2A92B20146E80C765835E4F9C57241489E4F210C930EBDF15A801B99098B9B8F42B40902359FB36702CDB849B70B4B736FFFE5CF599F7EAEAEA2CDFDB4E230F216E4A64F8B2F8F92F2CDC90353E7B8D12DBCC43870F61801B4115C24259E9FBC0DA1BC06C6B8423E12DF0B6F63DB6B9B9D92B1089652CC20AAE1DC155DD8FAD840BAB3183596654D083677C3FD9D9DE7AAAF6FCBFDFC10A7E2D3535D55A595949DFF77E8093554747872A29292973CEDC793B3563C7CEAAB9F047A18B30C2CB4B3E804DE55B212E211A121784C26B79BF0505D581843C4C4B2FED1308C50AF27696B955C5AD7607DF1472157B28E8E15EE8EBEEBEF6EDA58B078D46FD590CEABEEAEA6A1F3B08FC8176640159E1A2D1858585338B9E2DD981FBE027D2B010AD59BF19A2D414242749E08DCD7F02A1F124981C5DF0A90A0986ACF737365D67298695618D60B9EE15E52218CDDA8161B35A4D8D57EB8F747776FE15FBAAF6CCCC4C0767F587DE13076485D64C58BC64C9EA698585EB2ED6D784F7184E00E191C29B9B2BA0F2F32F806207A02EA31E8E145561BF24863D07DE25BC24ADB817686EF8BC04D172FDDAE9A6862B1FE3BBAEDAED767D5B5B9B9F1D01EC436DEA3959B5B6B686C6C7C767BCB472D59B137272E61E3BFE17F186577F036B376EC1D6BB038A9E4981837B3F06B94C0E3BF7EC27BC14A3B8935D8602C7BD03D37DA3A3A9F14AFD619FCF578D55F78656AB75DF6DF54746205856DC4E0EBD326DD1E2C5DBB3B2B273F6BFFF3B108A6B305885B0756315A8A3A361C7EE7DC33CC00F8C0393BEBFAFA9F1BBE34EBBFD04066C13DE37D6D7D753ECF700143C8ADF8502B242225C31D39495952D9DBF60C1465D7B63F4E75F1E86033BFE0C519111B07DD75E82182410F082DBE574B65C6B3C3FD0DB5B85CB5C40597635343410B80EF3A3FF2E349AAC308586858787A7949797BF5E5252F2BC42A190726DF4B6B7F710849FE209E06E8DBCD1D6DA74B3B3ED044BD367F09966DC095ACE9E3D4B3DB61FB6EE25ABECEC6CECA4A5EADCDCDCFCB56BD76E43EF4CDEBE6B9FC7E9F12AF5FDDD3D9D3ADD694CED2751F69770F3D25B5B5BEBBB5FABFFE804EE96156A3AB1B4B474A1CDE979FEC285FF0C789CCE5A9CAEC696A10D7B1EFB835AFDB111081C5CA78BFBE750948E064718DEEA4389E9830BD24F9A4050A72BEAE9E911614E277F885C463AFE073058EEEEAEC64B560000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (155,1,'Switch_(64)',0x89504E470D0A1A0A0000000D49484452000000400000002808060000004ECEFCE90000000473424954080808087C0864880000000970485973000006EC000006EC011E7538350000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00000F7E4944415468DEDD590B7454F599FFCDFB954C26EFC764F29C3C48788424105E2220EA2A880202828AB4B5D6D2833C94565BB114DAEDAE5DCB5AEB41B1F69C6E5111DCEDE3EC62AB58A8474979872433249399BC93996426994C9279CF9DD9EF7F43203B24012B56DCC9B9E7DEB9735FDFEFFB7EBFEFF7DD08229108BEE88FC9644AA2FBF88B8A8A86708B7D045F1400B5B5B52AB94AB55200E106BAC79DA130170C73DC1F392E74D0E970FC69D1A245A1FF8F0088BA6CB63B235CE4612ECCAD0C87232A8EE340DBE0D75C985F87C39C23C47187C291F0C1391515A7BEF200B85CAE4A0AEC112E1C7988D6A957828D0A7CE4FBC876B7CD86F33575100A85CE92E2C25FD7D419FFBCF7073B3FFCCA00E0F7FBF33996692EC4B25D7825483ED031DB63820F853834599A517FA911B1312AA4A7A5A2B1C9028FC78382FC3CB47775B50BC291A35533E7EC5ABE7C91E3560420391C0EAFA38028F0F09CC9323CB60ABC5E2F8C0D26B4B675409B910E895442DF1BA1902B90A5CB84A9C98CFE01178AF4F9E8EBEF4743933932BBA2FC6497D5F661D8ED7C65DFBE7DFD5F26004A5AEEA7E5115AEEA2A0C4E3051E1E277027055567BC84C1C1216467656260601096965664A4A7213636060663235140809CEC2C34B7B4C1DAD383427D1EDC1E1F5A5ADB909DAD83C73DEC730DBA2F4E2B2DD9FB87C307FF7CFCF8F1D03F0200112D4B2F07FD002D31A33F8C57DAD1E5DFD56D655984502044465A1A5A3B3A607738909B934D3408A1A1B1090909F148A4C5407408D279F9B939E8EAEAE62B203F278734A207F63E07F4B9B9E8A0FD2E02B1203FA7BFB9B5AD765659D9CE67B66E3EFB450030EB72D0EB68498D3E981D3B91C005434134B7B6A385CA3C213E0E4AA592FABF05A4F6C8A54CDAFBFAD1DED1059D2E1D0202C64881ABA90AD209204681105D272B530B73730BFC81005F1526B3198140103A6D061ACD16C4D035552A25BAAD36E4E564B71245CE2C983F6BC796C71FEFBC29003CB7E79FCF6FFEFA6331BA4C6DC178078799B845099C9704CCD4DC0C47BF13E92929F0FA7D2474ADD0C4C6222D35994AB91DAEA1610A488B7EE7205FDA4C07944A058C8D26A8144A242526A0C1D404994C46E7A4F2FA209188919C94C46B475C9C1A32A9189DDD36E4E874B0F6DA2122EA3011A563230579B917FB06068E09207DE9E0817DB6BF1B80ADCFEE8A8844622E3F37FBD34D1BD64E55299509D7001055FE16CA98542A838D1EAA934A353D3D154A0ACA6269018480569B86F6F691D2CEC9CA82CF4700D139A92949904A247C17484C48805AAD42BDA111711A35D431B13034361200C91020C283A8A72E61EDB1F15A934DD7A9371AA982D4488C8FA70458904DD5E30F04836EB7A77EDAD429BBBB3531EFBFFEC413C1CF04C0F6EFFF900010412A26FF2694B8AA66951BEEBDF38E2A11DB19CDFF3114F0FB03E875D8F97265DC8F53C7D21207734B33B8509817409BAD17649290A5A50725102C54095469FC7D2F51F6D3A87A2462112E1120199459A615ADED1DC8CFCBE5B581D1A28004B2AEBE810097D0B9197C75A4A7B2F3C4743D02292F871758DE6C715C1F170ABD1BE004077FB6E7B9EA1B02E0E9E77F141153AC4B7417506F4F854394014558D177FBFC3982850BE6254C666EE886044000816008672ED4805D8751C0DCDC86A1E161E2772681E4400F554A0E69827BD8CD77040648880B5155B4225B9781E1611FDABA3A28985C58A9E407E9DC29857AEA268DFCBD5897603E42A3A6EC6B343010782CFB79B9D988F0153AAE385BC895BEC585B8832FBFB8B7695C00040281E8995D7B42ECC167259D47A35F8C437967B1CEF2144422216532E85D75DF320929B978B20E30BA6D77F4F399CD484BE133E9F67879FEF6DA1D5409569E0E6EB79BFF8DB53BD62A9948129FD14DED90B5CC92E2025E275CAE214C9F3A85CFB8582C21D032504B1448218A944C29249AE0BA5EE46AD2C2A7950AE93BFFF6E3DDFF7E0580C58B178BED76BB7AF983EBFBACD47E2E5DBA84D43C35ECB39BF180EF1B904BC24894DAD01FCA89484442DFEA952B640A854278BD9BB20E6036B740AE90F3E2C77C416E4E16FA1C7D14642F720904A60D9DD4369913643AE2A0D637A5A888B4A515367B0FA69794C264B1F0342B24A3C47C858A04B47CC63402437CDD967C990EFC7E162BD3249D561B5ABFFA01090F005B4A4B4B5572B9BCF0AE15ABCF757559F1B753A72096485156968B1953AB102371E3F6A4FFC1AB9112E85C058889A8B9E484F8C09D4B972822E1C8951B862EDF283C4E8B745246BBAC56B47776212F3B9B82EDE5DB59417E3EEF1198092A292AE4C160BE61DA9429E8A0ED5EBB1D538B8BA99A4C74DD086657CE2491555CB967F83A33C7E87E0D75126A9D7CF721CA716B1F58211E0540585656A696482433088013BD941D7B7F1DA1ED23210C43255F8E0095AF56548323653D28E89E810AD9029EE31E8F3BC0F839A5B8583AEE0C10F5604CD83C648B3FA93E4DC2A8A56C0F50C05D282E2C80832863A25E4F83115FFECDEDED28A56D669FFBA8C5CEABAA40BC267ECCF5AF7F3FB630C1CCCCD0D2B96ADE7F30E719A4A1E4A155F75F014040B3B98C0692F4CA79B7EF494A4D59E7F3F64A7C81B31050374889BF17FFF5BBA3244E6EE4DE9E8C994533A18F2D41A682CC8BDF83415915865C03BECACA7271427C7C943E4C6C97996962FB86C8231888DB85FA5C0449408DE4128B48E858D02CF8CAF23252F654DCC8B035F6187E70217F919898489E410801052E14B0EE2664005CA500E30509A040AFD74B89061A7D51D1ACE292192FC42726CC6A693750A6A6E2BDF7FE131C61A5D78BE97B01A615DD069DE41CC4816EBC90DC800DCEEF20519E14F17A867D15151572AA0EC1A4FA70793F3D082F7CE43171EADC05EA029908522B65204C2B2DE64B76A220C313649DED57C690B9226FC104732468010120E4B7D99A63003CB85212DD05046BD6AC111A8D4605D121A972CEBC5579FAA29D3131AAB4333567919E61E40BC6E98CC7AC69AB71FA4C357253457867DEEFF1B8ED7BC84B2A00B30B3E9F374465152A2E2E924797E344651B0C069989C1F18F3FA1AC25A2886885496CF7445520221FA121FF2193492F072BE0E791D1350F04AD69840F6E58B34A3AEE30C480A02C8AA9A7C724242464CEB96DD1569D2EEB617F60406E6E3B46D6578DB915CBF0D22F7EC91F5FB6A0182B162F8726261E1A5127A4EEB3188C5F07679FD34F1656909C9C7C8D3E846FA08D4E5C41D71E17A13FA55C0EAA60F6FC570215460130BA6600FCE1BD7715870F1FE6261C87E94242D20629F56A4D7676F68C8AAAF93F48CFC858E0F17805ACFDBCBCFF00B2721464404250CA4AB1F8B6FBA10C3621C97B147B922258E8FB27CCD4CC4677678737352D5D4A3E5F74236F8AAE3D66E2E3189042F2286C86982CE3D140300AFCECA77B35B5B5B59E49DF078CA5059577F2DC050BEF9D5951B9332E2E2EBBFACC31F2ED3554BA62F83CB9985FB512BFFBE37F233F258C8B773563AE7F31EE485D4EB41020140884C9CEFA53D2D2E5ECB2939676D4FEF0440045A8E4E94F20BA2A6E930170654DE4B2DB7B8FFEE657071EA9A9A971DDD01BA1515AD02013AB56ABB5772FBBEF5B45C553361177557F3BFF0E5D32098BE6DF87E777FF983FBE689A1E5FFBC63A64C665432AF443DDBE0BCE8217E11DF0051D760717A78997DF48698F97F56068A49D52CC97CBFDAAB85D01226A3D0280801930CBB9D3A75E6E30D6BD4F55D3555D5DEDFB4CAFC4182DE6CE9D2B237DD068B5DA92BBEF59FE6C4E7EDE12E2A0D0EFF563F74F5F429E5E8AACAC10C4822C3CB2661B224117923BB6E160DE7238079DF8B6EE69B4B5B6FA863D1E9154A690DC987D1D09DA4D1E8255C435010AFEAFCA4703E171BB5D86BA0B6F9FAEAE3E443A61A150FA29783FC51EFECC2F45C7D242A954A6CC9E3D67C982C58BBE9B96925670E2E451F8027F25A72586D79D866F6E7C1E6F1D3A0269A813DC32351C611B9ECFFB57BE5B2034143134B4FB02E1B08CAE2A8C0E7C5428D9A03438E486D7E71D312DD1DC9E0008F69D400B369B4D7FF9F4938FDF08F9FD063ADD1A1B1BEB3E71E20417B91CF8DFFD56980141165A429488A18AD0AE7A70ED63B3AA663F2E1449E2DE3FF61A393E319EDCB4139BB73E4356B70FEAB8386CF9FE462C2A5DCC0320366E416FDCA31026EA39B3A125101188142CCB63B3CEA6C8FE8101FE3DC4449CBE46E54700887476B61BCF9E3CF9ABFE7E47B5DFEF6F1D1E1E76B5B6B60658D66FCA6BF1685A903EC453CB2B7CE8E1479F9E36B5F41EFA41C4DAD2B7B7EE84481642696908722987ED4FBEC50320A8790C66D54A6C16EDC5C725F5B0F7DA0335F58608C52E737B3CB0DA6C9140302898AC9D8D0784CBD9DF7BF1FCD9773BDA5A8FD2E399C8E1F6969494788F1C39128E8C13EC4DF9C708AB066A9922ABD5AA88898949A9ACAC9CBF62E5AAEFE6E4E494BE7FEC03389C87F8917A704882679F7A9B7F0768369C82263F0EDB155B503BB59B263C250FCCEB6FFEDAD3D1DDAB14D2F6F5FAF9D8DF29015E93D1F051FDC5F3EFD275EAA96A3A69DFA0C16008462609F2A6FE6B8CA58B682156A954B154CEDA75EBD7AF5DB2E48E27C94D26FEC7E17DE8E96BC34F9EFB0D3E38F617FCE4C59F831C27EEF9FA7CECDEF802DFCB1900FB0FBCE96DB7F628C6E5763420B49F2A9AEB6869AEADB970F6EDA0DF7F96F65928F8BE73E7CE3191E36EC6FF053E172D341A8DFE9B4F3CF1D49C3973EF730DB9A55A1A6CFEF4E147F8979FBF026D96926C2F87AAB2F5D8B0E66B7CB0AFBEFE86B7BD7B0200C6AE4911ED3D3D9D7535E77E3F38E0FC2B816724AE77D3DA4DC187223718D817F6DFE1515A78BD5E25F98594F2F2F2D98F6EDCF874494969399B040FFC7617B2747D440B1952131762E7961FF1E7BDFADA1BDEB66E9B62E2BE2E807B6868E8527DEDF1EE8EB60F28E00B94F116527727A9FB3522F7A501301E2D0888CC356B1E5AB166EDEACDE9E9E9696FFEF61730B57C045DFA027C6FEB0FF9E37FF9DA016F5B1701704D9B13B04931D86631D55A4C0D47E9B9CFD1E10D048055A15078C6B6B65B0A80D16A602B362A4BA5D2780A2A6FFBF6EDDF5ABA74E9EA5088935B68EE9F5D3E630480FD07BC2D5D56C55591E32D5FC4DAD1D66E32D67D14F0FB4FD3BE1AD6DA88620366B339F859B3FE0F07603C5AD0D7D4FCFCFCB26DDBB6ED2060AA842C5AFABCB2FF754F4BA75539CA77575F9FB3A9A1EE1495FD492AF5F3F4BC8D34A0F54C9F3EDD33516BBB6501184B0BBD5E2FA1A12A9602CF5CB66CD9DD9B366DFA0E4D9DBA57F61F186AEEE88A0D78BDBE667383D161B3B277FAE7E9B85AA2501BD17FF0F366FD4B07600C2D84947D198DD709145CEE8E1D3B36399CAE851F7FF2A9A7B3C55C476ED040CF779E78DEC40C0DF5742F9DF3B9B37E4B00104D0BCAAC8A024DA532CFA7DD19B4B8E827332D1D54F243D733345F5900A2699190901043995751C9D39C141EBC5143F39507600C2D58450869AE88DC0C91BBDEE77F01E1FA866211D8A0F10000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (156,1,'Switch_(96)',0x89504E470D0A1A0A0000000D49484452000000600000003C080600000099D4BFB40000000473424954080808087C086488000000097048597300000A6100000A6101FCCC4A250000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00001C454944415478DAED5C07745CD5B53DD334A31969D49BD5CBA88D7A7137EE0153620C960DD884408C0D3809E5C3A285D82440483E21212410C3070276086003494CA80EC5D8966CF532EABD5B7D54A697BFEF55B5AC6A534C99B5DE1ACDD3BC76F6397BEF73DE930476BB9DBE7F7D7D2FC1850280002FF6FED1471FC9838242AEC08AEB6C365BAF5D48FB6354AA8FF12BDBF7007C49AF83070F8A9292D2D69148B04D28106CB2D96D4E769B8DAC58EC363B7B6FC5E77FD88474202936B6E07B00BEA05763635B8A5044DB11E66B10603F643C0D2FF6E177FBA4CFC34B89D56E3F20B0985E4D4F4F6FFA1E8079BEFAFAFA820D26CB76300A28C61E3B31D3C7033E45E0ED670161EFE9EBCBCACE29D41805C2DF3C7AEFEDB5DF0330CDABBFBFDF1DC7C9B0D8ECDB11F065089E6038A8F649019F35E87C693DDD41790545545D5B4B2141419418A736E9F486A3659515B932BBF991BD7BF70E7E0F00916C50AFBFDC6EB56E471037D8ED3687B14C9F10CC59B37F64BDD56AA3AA9A5ACA2F2A21643EC5A82228363A8A5ADB4F536E7E1175F5F650426C2CC5C544F568CACAB3BAFABAFFFDC4AFF6EEFBAE0120B4582C2B113004DD763582EB326566CF96FD13C0D01B8C545A5641859A52128BC4A48E8DA2A0050BA8B4A2928321918859055048600095E07BD9F9051CD4E484380A0B09AACF3A95574C76FB5FFEF8DB5F7FF06D06208107DD6EBF161413601D09DE8883C1F58F66FA54943275F6F7F669A9A8B48C2AAAAAC9C7CB8BD431912493CAA8A0B88407DFCFDB8712E263C859A1A0DCC2622A2C2E257777374A8E57939BAB0B9DCACDA7829252F2F470A7D4A4047271762E3C9993572A964A7FF5DC938F977F1B0008C4721D16082AC5CD1CD4C9BC3E0D10786F696BA322647B5B7B2785870653942A9CFAB4FD5458A2A1E6D676528585506C4C1419F506CAE53A5047A1C14100434D068381B2F3F2B1AE01DB86F02A30994C94959D4BED9D5D9496144F11212196632773AA4D46D3FB1B2F5EF940464686FE9B04802B96CD2341BF886DCF56B27D304A19773453D3C95482CAB6339BCD5453D740E06E3298CC1415114621C101545BD74845C86283D140D1919114151E464D0028BFA898BABA7B28265245315151D4DCD24C39F985D4D3AB25757424C5C54603AC3642C6F3F3494F4E244F4F4FCA3A95439AF20A6C1349498971545D5D6BA8ACAE6D5A949674BFC0A87B7BCF9E3DB60B11002996CBB06C1B79974EFE827D8CCF6709FAA4ECD7E975545E594D159535A4747626952A8C944A672A2BABA432D08C5C2E47B054E4EFE7CBA9A8003483334690A32938C09F53511E2809CD1B25A8635009C1548A00E74094DDDD5C39F5088402CA44E01B9B5B404F715CBCF35161A772F22918BAB1283D853A511D390545267594EA5FE121C1BFB963F7AEFCAF1B00C14886B3A0678C64FEB42FBBDD3E8B953C735D4F6F2F8257C583120041558587F22CD79456525D6323F9F978F3C0CBE58E54AC29E759EBEEE64671703D4E0A39E8A814825B495E9EEE148FC0BB00345615A5E5950021901211E89EDE3E4E3D0383439C7A02FCFD293BB780F28B35BCC2D29213A8BEB1894E9CCA256F2F0F5E258CE2F20A8B00A6BAC57F81EF4B556555EFBCFACABE935F2900CFBD7CE092ED5B373F2997C962E6BA93B964BFD566A5165C603932197D0185860473E7D2DA761A01AE84B5ECE5C18B8A0827BDDEC805B8A1A1898282FC396518B08E09300B5A18385F0D9A61FCCE74A0B1A905BA1089CA5071DA3A9957C0DD515A623C392B9574323B8FCAABAB293E261A8E2916405551664E2EAF225625B5F54D948FC087435FE2E0B24A4A2BA8AABA8E89BC3D3222EC684E5E918674F4F8A143CF377DE900FCEC9E07F78A44C25B37AC5F5BF983352B978D0EC9660760EAEC3781D3EB1A1AA912172496889835240F5737AAAEABE3B482AF5304049335546DA74FE3E2CBA957ABA54854450416061A7338DA817E8A067D305166A031E7333838C82B202C28904A50252C7B3D3C3C283531813BB0CCEC1CAE0549096A68888A0A615BB3414FE1A141948CEF545454633F451409EA4B8889415595F3CA64FB8C03A065F8391FB10F6155A58E355454D716EBF443FF498E0C7D147A61F97200B8F7C1BD4281708F5028245441E90DDBB6DA22C3C3E266A69FE91B2926AC83BA210A0D0A2676A4CAAA1A00D2002A7142804360313D21C0F5A4C1C5322E8F0C0F0705F950556D0D15030CB1584CB1A8007F7F3FBE6D21AA40E2E080A62B06C2EA8E8EB8986B41084060FD402F9AB42C64B7563B0020E2514101840C464595F2EA4A888BE120339D888E8CA024D0150B3C137B35DC5532C062C9C2DCD4025F3F4A4D8EA7D39DDDF87E01B9C3DE26639F4343BABEF2CA9A3AB8AF5FECFBE36FDFFD4201B8FDDE87F622F81C80E14560F7F5F6C9BCE9FAAD612E4AA5EFCCFC3F3DF737B5B4C09B1720681EDC224A11C48AAA2A74B775B83057E84038E77CC6F7953535E4E9EECEB3D6093EBFA4AC8CF3BB379C0C7338229C17A39EFAC6665E116A6843536B0BF7FEAC636681F706B027F199897C1CA827262A825BD93C544E944AC52D6AB1A68CF2A01DB1D09BB4E424244613043B9BEBCDE2B4141A181AE23AE28073651A211008B9DBD2C33CB0EDBDBDBD58A55559EDB603762BFDFDD7BFB8A7E6BC01B8F3FE3D7BE11C3800EC4225422BD9855206860E175A78F50F2F4D9548240E67D0CF2C223C6C4FD194592C3C40397985D4C0041859CDAAC0A0D7731D6074C19C09AB0293D9C4FB0116941064B11A7693D1505EA186BA7B7A78B6468485225B6B281741717474A414045EE124E79C5F57DF080E8FA5487C67B851D370409310B812E84B162C6A7444042D494FA5A6F6363A76E214F621A3A58BD288F1E2F193D95C6316A5A6909393130F7C4757272A468D730C1C4FBC33132DD366B5EE179A456F3CF6D8FDDDE706C0837BF68A04E315708DEA433ADA18495DF6C8E18A20EA5D989A3474C9FAB501D3F2FF74CDD6C8708DD94FB20BA8B3AB0BD450CEB93C1C8162E27ABAA3838ACB2AA81B3E9FB9235619CDADAD3C8016AB054E289AFC16F89206EEA8B0A4049DAE07A71101EC6916AC259B0D25838A82B1AFDCC242504B39C532AA01B570F1852565802E5D94CE81FCF458160FE6F2C5E9A440B51DCB3A495D3DBD3CF07E3E5EBCD25812C483F258B5F16BB6CFDCD7E0DD6CB3DADEC3AFF7F749E99D97F6EC31CC1980BB1ED80B11160100010FF88F63DEA6CCFA407ADD7F807CBA0229C29CC0D75BCDE6A1CB2F59274E888F97DAC6460FD30DD7A63E513DBAD98EEE2EF202DDD422639987375BACB8D0306E1B5997CB684281EC668337171725A711464701FE0B208C3100D340A7C0D73D3D7D68AED4DCD632BBC92A2A26329C5B5246434C90593FB174611A0D825AFE7BF438E9A04DCB172F261F1F4F3A9E798A535A7A4A122A2B988B2FDB07A3A77835A33DD1BCBBFA91EAD75AEDF64364B31EF8F3138F7F669F14F0310046DC8E9051102CDC2F78B663D542970FA953E74ACFC75413F50B6863E74F685C1FB0D86DFAAD9B3739787A788A660CFA34A365B68E8D10CAA0072ECE4A7285D031F7C182E60DBD60D652808B6716B4A6BE012E2A98F703DDC852268C3A6CCB6881CD8BB2613FCB2AAB78870CD74295B5B594793287BCA0074B17A6A2E3B6D127C78E533BAA64D99285B0C281E88EF378A053404D4C5F34A83E96F561704AA9898924953ACC29E82C8EE353806935B1C9CDCDF5F5C71EBAFF9E330060C1CFC8C810D6D6D64A97AFBBF861994C7E37C3E5D8F1E3BC270B0970A79A75C56433DA6893F6661E7807B18DC464248B5089835A6DEE2E4AE3A68D57C8C422B160E6EC987E120A31A32258CE219D0E5510810CD571EA6941C0E0C76143872D684E41213F79E6E95D5C5C383F57C1E7338E8F47E06BEB1AE80432DE15BF5B0231158B45F4D9F12CAA07952C4C4B0225457197C3F6130B4A4B4F4DA0EA9A7AD0532EF9827698003B83F76DF36C3067EA87585FC2340B4ECA78EDE64DB2330078F8E18785870F1F96592C16B7656B2EDEAB7471D9C10078FB9FFF1A2B15377725A956420C95A91C0057A99632825FA79734579248194062A19865B2393632DCB66CC912E9EC273ABC6EBA496963732B5C4D1E323198BB26D680310723934AF9D841818E381B625E837E82F5078CA379670BD7A290CB3987CBE5323A9E750A6EAB86BB164647C525659CE783E1ED972F5E0440DBE8F3CC2C923BCA691974C00B4E6BA631F9A8A13863EE659F1E08F64257CD6DB204965A6F309C0D405A5A1AACB58333021898BE74E5439E3E3E573300DE7CEB6DFE25B144424EC8A694041FEC2885A011E4223A4D37AB0FD2EF4F5C42AFC6BD432B5B375294433C0747373860B868D912517070B064F6EC9F39AB18C7BFF7D1C7249339F020B34C621E9EB91CE6E3D9FD812638AAAC53CC2E4AC0E1C9E406ADC8841362FE9E4D4E5313E279AFF1D9892CF27077A315087CFFE0007DF2F971B24073562C59C4DDD7FCEF57CC5CDD6EB0D78CE6E43247C6327C010086EB366F729C38F311A4A6A68AA552A99BD1680C4D59BCEC416FDF05572035E9F0FB4748E9E60C073188D2D143BC24A490AE8537772347E120A5290ED3F1F6C5F4F4927D9456BD962E966C1ED3061CCB6EC6C1D6AD5D2555289C84A3193397EC9F7C8156AB95BF1F8783A9ACAC41E0C3411D91D4DCD6CE2D27EC39A5252591371C51369C4F013A5E56EE69F0EEEDA73BE074323970CBC1FB08037D0C01EEECEEE68167D5333CCD3DF31C263D953121FB27DDD59B22FB996E04015057A5722CF06300180D866D9BAF723CA30256AF5E2DEEEBEB7382BFF70700F778FBF8DD201409A919CD5350D00970B304071590D12C2207D10F6868C04025F0E83DB0716C9AF8C1EAFD94D8B69436388E0320A72E32897DC96C3259E53207D3F2A54B591A9C03A78E6795D16842C65AB8453D9695CD6D6972523C773785702D390505DC05B1A669605047473333F95C89797B2538FDB31399BC7216A24A9870B349E97C346A36672740CC7C6106BC3CDC47925070D662301AF5DB32AE924F1661E1AA55AB1C1050A544A1F049494EFFB1EF82053B240E5225F346ED1D9F93D4B107D463274787F534D86FA277DE7D7F4C1FD4099114911C48519EF12307B6D395AE8FD23B2DD007F754DED00D0E0C98D078D963A2A2A5F319594F55FEA8549C530732DE934AE060981BF2809565169265E731707A07405A949A4C7EBEDE74024E88CD8A9833625581449BF178F37D5283C5D005D9CE9C1813FC33834E23EFC380188D06FDB62D579F058060EFDEBD8293274F4A9A9B9BE5E82A5D5D3C3CC2E313536FF7F0F4DA00CE17194D3DA4A9C84797BA94F4E0CFC30C00EC50265740D064E82A63410D0836B24068D3D156DFFFA543956BE995B0428AE949A1154EEB39383D3D5D860475ACD8DDDD533C6BD0A728EFB1DB9C5858B7CC2CA4A7BB07C4D9814F389910A780F3596397035BCA06748C8E16C1D9E0C2E85C1DDA74DB316D62C22D73904E99F1ACCA467F1672008C3A00A098B2116395003D1099CD6607B4DF0A50B8872A2A7651943AFE6EA58B523D4A2FCD2DADF0D359141A26A2407F1DDC8609D6514489D1B70EEFC7662035BD42950371F427157444EB4EB74A1F18A32704CFDEDFDF67484E4C92819B057312B7596E73B27B04060836BB8FC08678D9B9F9B0943EB418FEDF15A23CD576E31A34FFE3B1EB708331616E6CCAC04F08FAC4CFA0D1A1ED5BAF769AB6131E69C8046AB55A0C10985D524204BDD2162DCB0855A976CA64320F4629D5B5792453E441906D68DD1D712144A971B732AAA1436FFF9B5BAE8529B17424E92D72D6BBD16E970739154D6CE2F43A9DC56EB358A26362645307C73EA9B199DD89B0475778633532903B17AD99891A59B89C6073919F93787E9C6A84677C3E1B801F5D9BE13CDA114F7B4B72B4390325B1C19BA3C96402E02E814B56ACDAEDE7EFBF5124124B2C56139557BF470AA72E889E849624DF42FD00E04F7FF9EBD87E42558114BF368C5604AF1D0BBCBB5D43527D21B53B6E2599A3827ABABB4C4A70A8AFAFAF836D1E4F4ECCB56AA6732FF3CD7E096C2E0B3EB3E1B365FA740B03E086EB325CF84809AF19EF098F56C3282D411B9C0084874A159D94BA78F1FFB87B78A4B080F6F6D7A2D3ACA52D1B2FE5003CF5F4B37C7B214E54EEEC42EBD744D1B28597D1E884D5D5944DA9B297E9AD8EFB28DB2B97D68B36925C2AA7B69616FD027F7F0794B568EAE0CCE59EF339F8F759B6637331D600B27B1367055E3845A0697A1D800B1A7AF9B9673D3FFDF45313626F9BD35311A37322D0920814E488402A71625E4B56ACBC2C561D779B5CE1E43B4C2F02EAEF1FA03F3FF7226FDC92128DE4E1A6279345440B3C2F81E74EE720380E7E4E8B9D5E0300F7D21DE137D196969D74CD829BF8F6168BD9D6D6D6660C0A0A96B1E3CEF5012EDB84EE74EAEC9F5FD58CCE7750E9BC87984C3542817012F5CCBE08470078F2F147033D3C3C060082755E8FA5B080C0AE8AA0E412E8821C8BAB5C2EF75FFB830D3B42C223321C2412991D07F9F0C8118A8C3E857293400BACD4D7EF487E5E97923A3A953EF8F0BFE428939197B09C7CE22EA63B826FA02DF537D3B6E09D676844BF566BEED36AADA025D9B93C7171BE55335AC1C273A099B3A9691CA4DEDEDE4FFEEFD93F6F059368351A8D79DE0F664DA62574D0CE688EDC43C2C3D5AB56AFBBDDD7CF6F19E3C85E2DB3ADAFC1A60D00750905FA6EA0B898747AE16FFBD1A916F37D45448492C30F07C8DF1A48D7C7EF1C0BBE427F92B4166F927B44514B4BB31155207476564AE692FDF6793CF63855E0AD23992F388FC04FF57DDDD0507B4951C13399C73F7F1B09DC724E15309548E7E7E78B21CE32464BA808EF25CB56AC4E5FB4E4672EAE2E412CA34BCA0AA8B9FD0805F95FC947BE2FBCBC9FF20B8AC6F6939898403FBF6507BFEDC735027D845BD73EB2F616D280FA19D25BF4E42A71B35757571A1CE54E5291582C3C77EE9FBE6A58576D3159F87DEB79D18C70E6C05B4C667D4579E9BB9F1CF9F0557CAEC535B6414BB5F3D280F9D0129BA842ACFCAED874D576B53A6E9B542653F059B9C5CA3DF30B7F3BC01F0171843847A8C4F0EA469222E85B37FD6EAC02644D4F120D965173DC2374EB6006DDA7FB2DAD0A5E477ABDDE5A555D6D72767175B49F572375E69C496F30F0A1DC8CC23AA76C1F078AB99CA68686ECA31F7FBC5FABED29C5BA56C4A1DBD9D97910C137CFC9059D0B2DA17993421758A3E1E1E3E31379F99557ED0E09095D8DCCC64B44FFF9E0236AEBC9A590402D3A533399CD426A3FADA09DD73F313C49D541B4DBFE4BBDF51F9078E59DB443B29176D5DE473726DECA03C3EE4C75749E36373535DB64A88819B37F9631023B160BFEC835CC996A66FB5E7777677DEEC9CC7FD4D5D46461D74D1289A403D7D6DFD7D76704EF5B869F6598A50FF8A26809AB7C9253172E5DB36EDD4FBDBCBC548C962A6BCAA8BEE965943BE35C08539F8C6EB961188007F63CC26EF090422EA3F5D7AEA0873D7F4E379DBE837E927CDBF8A4D5D0420279205557551B7AB45A149C443C9F3FF860B742FB0706716CCB483067A79AB980A3D7E9B5C50579870BF2B2DFC7E70684A40D09D98BEBD661311F3C78D036ED2DC92FF469AF09B404B557A0CCDD1038DFAB323236A72F5C748342E1E4C202F9F989D7A8BE358F24223BDD78EDD33CB8F7DCFF4BAA6F6CE4FB61627EC5B5AB2936219256C58C377292AA07A8B5DB4A0117FD8151883DBFA0C0A0379AD930463855F68FCE8FD8530EDDBDBD64329ACE4350CF06C96AB39A6B2A2B8E9F3CFEF99B389F6AC4B419EBBB743ADD206CBB313737D73A31EBBF7400A6A2259C88335679A03242B76DFFD1AEE8D8D88B91BA629DCE406F1E7E8F7E72FD561EDCBBEF7F88EA1B1A7956CA9D9514132BA294B88B68CB953FA2D107052CC577D0406F3B49D7BC40BF6F7E986E73BF9B5C451ED69CDC7C93C56E779CFCB0B0D962A19E9E5EFE48244D12CEE91AA839EA80BDA5B9B13CE7C489377B7BBB99B368C4F1DA717CEDE0E0A03E3939D93255D67F25004C474B58E582CCF68E8B4B4CDBB869D3EEC0A080B889F3A1BBEE7D88BAFB0729345C4CC10183B0B166508698EEDCF5EAD8777A4FEC22FD600F09563F491777A7D28DBDB7D32FD31FE3BF6B686834156B4A0992CAC71A2CF0ECC90B14C48C593C5FCBA9D5F67514649F3ADCD4509789ACAFC7B15B70BC6EBC0F41684DCC62DAE710DCAFECAF24476969606080CD965813E786557E576DDE7CD9EA356B6F727171F56459F7DE914FA9AAEE1085046921D02270B5948674627AF0CEFDBC51ABA8AC826B329326F3EF14B1F13ACAD0AFA1EB5B7F4ABFBEE8775CA04733F7E34F3ED31FF9EC9844ECE020FEA2A886CF720C065D4569C9514D51C187B88E5AC4AF0985DC819FFB91F586C9227BC10030132DE13D64C7CDBB6E4C494DBD1C8D9D031BF2BDFAE653A08E325088800686A4B4E77F5EE619FEF45F9FA777DFFF88CCF0ED3FCC584F45F19F92CA124D8FADFDC370858886E74D9AD232F381836F4BCEC7CD4C5C7022D686FA9A22B89B7761B52B90400DCC5A22F8BDA8685D4040806936BAF9DA01988A969C9C9C1CF1D10517E21D151B1BBF7DDBB65B232254694C801B9A5AA00FBFA3861621EDFBFDB3C3003CBB8FDE7873FC698DE8A8487AF4D17B49151479C6280334643EF0C65B530230277EA761AD602075B4B73516E6657FD0D3D555887DD7816A98C8762289066613D90B12800940B05BA1C2515A62230D5CA0DFC68D1BD75CB1F1CA1DB06E0B5830D903B48B529279609F62001CFA27A1232685D28D12122C249749E897773F4FEE6E5E6333FA628DC6BCFF8DF10A983EDB69DACA181C1CD09614E41F6D6D6A607EBE96653D1626B27D680A757311D90B1A8089B4C46E000100292AC209E7E48576DD7FE7AE5DDB56ACB8E82A34768EA399FDC453CFD0C7274E913AD64C010B06D0C10AD04F08E8868C7D14A58A1AED42A9B844637E0515702ECD95D96436D55495175496161FC5B9305BC9B3DE6C3633911D74777737426459E0CFFB6FCA2EA8FF9632999640433EC16161D1B7ECBC65676252C252B14824608F22FEF5853D2476282214016921D256AB906EDEF6178A8E1CFFA31E0EC0EB6F4AE613784623CD8DF5B565C505470D7A7D05CB7AD6502146EDF8598B97A1BABADA7CAE7473410330152D21EB1400C11D65EFBB61C386E5DBB66FDF11101018C22AA1ACAA945E79ED5152287A100D01DD78CD330020F60C005E7E6D220034A30EF4767575956B0A33C1F31A6C5E33C2F5E7642DBFD1004CA625575757293A4AE696605385FEBB77EFDE7CE9A5976528954A6706C4BFDF3B402FBEF6013DF9F023FC49B98900FCEDB54392D99C8F41AFD357969514B4363614607F8CE7D93FFD6800F06C7EA33D176BF98D0760322D6567674B90818E080AA7253F3FBF883BEFBAEBA6654B97AE944824228BD5CAC7C85289E40C005EFAC7C16945D86AB15A9AEAAB6B6A2BCB7390E5F55878D6636905083D0E0E0E43E76A2DBF35004CAC86C9B484757ECB972F4FBFEDB6DB76A854AAC8C9DB1531005E7D630A1126FBE9B6D6F6AAB2927C834EC7E6F32CE3D9D2383AB584BD349C8FB5FC560130132D21605E00C47FC78E1D976DD9B2E55A37BCC62A40536A7AF1C0EB0E13833FA0D5F657579468B43DDD958C66B0AE868D11584365341A7B669A5A7EE701988E96F0D1154D9C0F1BF2DD77DF7DD7A352D6813E24E8030C2F1C789DDDD82793D1686AACADAC6E6F6E2A67A3031A1E21D48EFCDC896DFB515DC6AF2AEBBFD1004C454BF0E7ECC1624E4B0909098977DD75D74F846271F0B32FEE979F6E6EAA6FA8A9A8189952324BC9B89E653D9FD57B7878E8BFEAACFFC603301D2DC1B12891FD9C9656AE5A75514E6EBE4C37D8CF9AA5215C670BBE5ECF66F500A013943300D04C2CEBBF8886EA3B09C0645AEAECEC9460912B140A17F68000EBA8F16BF624B20E41EF40A7CDA6967D6C568F868A59CBAF25EBBF75004CAC063669C53BF3A36CE4ED34F2B319CE89FD1F39DD97D5507DE701980A08D09178686848888AB0994C26CBD721B2DF390026033161D50515F8D1D7FF034558AFEE92BF05B50000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (157,1,'UPS_(128)',0x89504E470D0A1A0A0000000D49484452000000630000008008060000001FEBD7B90000000473424954080808087C086488000000097048597300000AAB00000AAB017DAA48330000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000025D94944415478DAED7D09B41C559DF7FFD6D2D5DD6F4FF2923C1292978D1042102428F2CD9820A83832E800239FF37D306E30EA0CE7A830701C57CE1198610ECCC8721C18461D195194414045104C9C0F0505224109D9F35EF6E5E5EDAFF7AEBADFFFDEDA6E6DDD55D52F8B1EEBA5D2D555D5D5B7FFBFFBFFFD97BB114A29FC713B3936E98F22F823187FDC4236E50FED072D5BB64CD375756E3E9F994372ED5D2A485D20934E42E52E90481750E8A212E9300C20400DCA37C3E46A831AFC948157D87B7E9E1A1583C284A1D727C080099DD427281E5330F0D518A395C903FBF6ED1B634F69B5ECE4F7D1661042A4B75CF0AEB55A9BB69648F25B884167E2CFE844F1755142BAF19C06A6ACF114E592E5720DD94D79479C177723789E03C62E18FA1405328ADFB8176F1CC02B8300F541BD5219948CE2A6818181437F50609CFBB6352B3ABBBA2F52156D0DD6F0B72B4A66B62D4803ABB9A1EBC0C58EFFEC2ADA4890D30508568CC605A7062A9C7E008F06F1FE013CB15BAF4D8EEEDEBEF9AEDF1B30CE3CF38219B3E7CFB958CD686B24495EABA899157679D9AED7EB08820E3AE55207BC87D5D244820C15BC110588C141E7F2A2048C1472A37A750F96794222526EE71B2F2D3D696D06A39E3517BD774D5B47C71A4956D62C3D73F95B2549C9D902D275036AB5AA450FA6F065052D8220302624E779FC2EF10BECDAE73BEFBFDF39A076C5E6B684BDC522F2F3EC2FEA39211050A35EDB46A92ECB6A6EA92CA3E6EAB55D279D017FEB9F5E7C5AEFAC5917299AB6E6F2AB3EBC46C96873C51A59AB56A08E1AC07F3C3A7EAAAA0215E9C7AA9D41414600629D6C0688A9013AAF040C00197743F83EF766DA889EAA28F4AD78D42329DAF293CE9B3AEBAC3FEDE95BD877517B5B7E8DA4A86B962E5B7E26AB6FB6F075E4FD72B1E8FC68056BBE96CD79856FD0E635DBADD8D180F864C928CFA89B768748125E57804A2E6D853E275C0FC669BD32886A7B2A82B0EAA4716D19F5BCFD1D7FF6271DDDDD6B90F3D7AC387BE5DB5435939724E208B7582A40BD5A33EF47EAC9E6F3FC577B38BD89204335813401C4428C691FE536073580699EA099F19FC314A176089D882344564E93D4DC9B4E8A38E39CF3D72CEB9D3DFB1D8A925DFBBE0F7CF8ED192D7B8A841E07410098E7C10CEF64B1604A137F1DABF9D98E9CD760DA3FB981109813930610F61DD54A99DB024641194DF3785391CFB1CAE32F0BD52B03F8AC32A3220473EE090DFA169D734EF7FC19F32FD4F26D6B9056D62EE85FBE4AC66A660ADFBCA73035891454E780A06640476727AF8986E1E5FE46C20CAB931C90904B6182AC964AA01B3A3FAF66B21ED797DF4F9A3C473881BC8A75AAB20D11CC494A7611914F5004CEA8E7BCB7BDE3FC7CFB8CB5B2AAAC59BEF0ACFF25CB725BAD568132FEE0A989715EE272718AD75C464939A41E15F99F81512997A13835E1D46C4E070E2581152BD81E922969C7E5B404282B0A0715630D7E4C434063A7AA4841D54A85BF57B52CA8A809A2BB1A903309E22E3EDAA07AC9A85576E8069D8D9AB0E284A44356AD5EBD24DF31FFC2A9F1A12BCF3A6FED9BA994E92D94A68094D1C7611C2E314F276328B25C41953550D0B467666F9D1085091DF163A6D03A24DC99615048C44C49309BCC1C77BEA398081E11D42E8220832423973337165F25CBAB612E2E1372B13889C7354E39B66D61A09591069947A4A00D4047015F33AE2AA5716FF5FA70B55ADE8FC5EC27526695748C327A0DC158B2E2AC07D54CDBF26CAEA7BB529C443F39AB62F1CA956A6508A5984314F212773D08546BBA84C2CBA9AA8C3C9C85BACE6A60CD0A96DCDA6D588199E104618675DEE66DC339369C60CBA5138E266282DFCB40AF2366353CAE2358B45EADC860D4B4DEBEF9593308343F57A996A154984437B9666A9FE595B1485DD3725C6BC200D16BD57DD56A699C5265194899B3C8094D144AF94BEA5499572C5739C733CA61B5931D037B6F196676CE4C0B10389605B6690A749030F696ACF23B92C40A83543901651D354AA206C607A38AA24C298A54956505EDAB96C7BAD38DC162D606AA5428C0E4D8B0A559E639459177D631CA34405D4688361F8E350A71698AD744CB9D24B65F492CA1F357F31CBF871CA752372A2FFBC38A82BC8E80C1CCAA5E9F0915DF4D46BD2E131846559E9015A98C41272844CED6D0C72E158ADD956A7D4926DB362D1810811EDD93522B06DC410308884058200071403BC14840F3888069BCA22050737403E6D4AAEC3E9DEF46AD3C064AA61B6A95D6840D1E132516CCFCFA88FB136806096886434DC4A993D34245AD7CDA2CAFB9A749829A9F21F184EDFD2FD6B588DB5BD30C9B921C2048F4971C57D51028332918C4AE68F69E56D8E107CE11490386DF5E38DFED0041ACC2BB5475A2598A387F3431207685329D12D250A0F1AEB96FC46BC4206935C3D50ADB603B9A2182E01C4F73FB084D78AB63C848E3AC6A2818127F80ED25A615B6DFA108A4F153DB0C4F6D7355D9B112E21790E328F9889A6D972995DDB06DA12409026B2C6C8FB849983F4182D7A4346010512B441040F09E88603F48CB026D0D4BEA561D4213DB0E62098AD18808466261FBF5C9774D821668CAD18A800678358334ADF774BA9521A8C5B65650D2DCC58DF0453D063C85B0A3AE39A9AF7406DC356AA2BBE45281AB19C4934615E22BBD0E7ABD6CB5518825A25C6066AF18CA35979A295130AC57426922AC0CF06A7262AA22AE4648224D25147648A0E1B946D26986D75F75A26C225813E2F5AAA80F766AD430E02D212856DBB14F8B6422945969960A71DF7476CF80A19122144BE5A07D73DC53EA302D8D4B53BC4C82CD881068D36BE0A5756F009E220227E0736B45E222AEC174692ADC883321BEF2AB5F341506CF7FC92C432B83222B4070E7995B49E6E7792704764DCDC07B2F7D373CF1E3E79B3A1D4EE011433B24A75211A782A511369006F59FA4F5A6FCC65B34E802977A02241AACD2715982F77FC2BD5EAB411F0AFC829C0AD5BA0E3F2B8EC1B0AE7B05274B411B2450939DA84F62C489CF6634137634480D52A62465D027A4077D5A22B88FAEF30CB60568C548B3A7CD5755B8A6B387EF6CBB7D4482872646A12A0A340AE440141D59AAD08A4EAD44A34D25A984DDC0E2B31723C2B59562598C805634D08C1014FC3541C6135F9A390766CADEF6CA0EA4A17F997D0AAC9BBFC401826D37F5F4C20FE72D820F7674FB54CE575E0A5ECFCF558D58D90131A095AC9DF87729E27C936BE2F3A496682A542B5C103CE9F4C033DC0E06DD28FC77E5DBE10328D4B3B51CECAFD7A086D5FB307A5C4F1726E1BC6C0E2E6DEB0C3C8281B70469EBCBB3E6C24BE512ECAC55AC8E0BD18942B0A84AAC47B1F48309548A008F84C6E311F92612EB5A229A22D169324F60481A24C0ECFB1FEBEB87054841F6F6A3A909388440D85B1DA5F50DA4230D6FCFA0D26AF8C036A48B2ED4986E7CED4430FBF1F30C0CB3A70685282E70292A811167B596E32105C048266CC1A69028A9A6F0A6042BE83D140223D2100DF7DC57460EC327BA67C239A8156C7B336AC2281AE6114387ADD50AE4B146F6A0D0996D285103C60D0AC5BA019368D40BB8D784FE4C54ECD2134869D889426FF1E37853547402520A1B80344C9593D48D4B24CC94438866441480BAFCB0AE3805CF970AF03EA4A27FECED438153C8A1F06758B7E6F1F8FDED5D0D8BF33787F7B9D688068D240F2405AA729D8C1801A0643E53CC4D250702225D7CC72E492D250AC3DD47AFA174136D0D62235EBB1F9D1A87D7AA6518AC55F9FBB479281AD197CA6D7B71BDD038895C3BB5462C9A4A2BEC068E56436722114D0512B31EFA22119E77784A637B35D8B4B907E38BEBB0E62BF82C159FA3E26BCEB21BEDB8B711591066D09B72227CC7D1086A472333CE2C06EB2CC41C0649220D059AE41A89130C26A5296F141812A1B7D8B8C48CFB1DB3FAA062D98C32DA8C49B42763B84FA0CDA850C3F90AC3EE7213083188279FE6361793A65E15773BA93F859E5CD8D1D72CC853057D21094BD180FB2372324DED14CC8BD2589F49E4F0B9BE223E811E98F3C808F71320C28837F1AAF827AC963E42486A6137688332BFA5159BD1288C0F6B748AE7C8B5DA746104854AC1136839F42AB8B70DED06719B6B0921E985DD20A4200DF2214AD328C3FF83448AF2A5D749A456C483C3B619E26F2042BB89C67B81BAC9471A5A75046DF01B7080C676C3BA245934451AA840AC66567F48263441A46C5C0AA3290281EE200DA23E1AB35DDCB619519B8E087CF2C87EC1B5A511C9BE0803DE24DE10EF77521629841D9D9AB2FE9752A64348832834D03E1E720F9DC6D63CD9C3E361AE2D750D759876348937988C0C7F044EC205DAB00936F236E2786DA935C35FA388CF9FF7A4D823F3BECD371D396800A98A45E2A61167BB145A7483D2D0FC90DB65C8A71D7134436857F1D7DE24C28EBC46A061B018AFAB8EDF89252422BD0ED04A1791C3461DFE7DFC28776D599E8A0DADAC53EA8CEB564018F21BE2DADA238BC05737E26A06F1372E251576B4E23860881D0093B7671088F40EC2628F565C5B1657DCD6C066B0EDAA037B9CDC54B3B60CF06806C4B219C46AB86A45D8D19E9AAD7929DA33C2D2500197DB973C0C37E0F134E3779512DC327C187660743E85419E2E089C69C837C647E0B56AC94D79F900A12109657F1A82881D28C2F221C46DCF086BAF20D3D2CE9192A6482320A2F4C157697B7B67C3657F7105140A93502E9BC3CDCA9532BE16A154C2F7E522544AF8BE5CE62D7ADF991CE369109612C9207F6788995E3F50AFF9288904F255628704BF661091BA43030E4B334203AA06962F69CB1F69C1B5F5F69322425C4102B92BFFD6D6DE01ABCF5D05194D05990DEF95CD2161515AC4DAC06BB53A54ABB8A331AF56D95EB5F61A542A55A8E3F58ECEB648AA22BEA42111ED41032E6120186189BC34CDAC019993E968CF084F9D135F61A20A54AEE8B0EEFFBD6A0D1D73879059C3C1CC6E3112B823A3580F10DE4B840147CCF1D91C44898D28E260AAD91CEC1AD80F6C6C5154A01AF0A87C863CCC88BBD95AD292B0935D4B942824E11C1C128724F1A5CC99700CA88A13AC18D1E3F9627544235EF7D5E351F90C79B40B4F22DA325A11B6AF32B444534D0342E2CD969EC04D745F09888379C4AC6B789B82A7AB6A0BC28ECCCF11570353B9B624C233015FF22D995E1C533440ECF4E8ED9C4D3C59023F55D91E61D0F56CDE04DBB099D5E7EDA4EF1D12517D4813D9D313A8195EBBE1A52DF0698BFFE786F70C4926EC80BE04C6574E0B4D91C429F6F839F1690283F83D2A1F2D116F26D8336B51048525157620D14EE2A58712B9B624BA8D2590623F215A41A9E0BE12A11FB02F56884CA7134FF09A56D8910E5013364F9042279135A395B17CA7CEEF83B3569E0ECB962C82EEAE0ED8B27D176CDDB60B5EFACD6B186F249B1093527F60E7D67631D82311A90BE21F5CD9F07737107648744CA6C5B56D1204C6082C4369485114F8DF575E0AEF7FEFBB60FBF66DF0FAEBAFC3AEED6370C61967C09F5F72211C1D1983AFDC712F0CECDE97AC5C1ECDF06673BD9A11E4553BFEF018D814C26E78AD816B2BC59279A8AD489FA3551188DBBE74239C8F91F9273EF17178FCF1C7A1ADAD0D56AD5A85C06C874F7FFAD3F0EA8697E1FEBB6F83B7AE7E53C27A12A205BE3488D7CD249E08DC33BE43F2F6950DCB5335BA16D95F37759C11731C5B12A6BAEA8A4B31F236E0F39FFF3C7CF18B5F84A54BDD892C2FB8E002B8FAEAABE1BEFBEE83BBBFFA55B8F9D31F87ABAFFD0C4C4E1512C43FC44355E208136FAC11927F222143E5226D2869625FC3F94D863459DB44B415CF782F987F0A5CF66717C11D77DC01B7DE7AAB0384FED4D350F9F2ADA6E6A82A7CEA539F82F1F171D8BB67375CF7E10FC676C95C2084F115215A10D61ACD62316FCD961AD6FA34595D73408ED41A188D5BC8E253D65B569F0DEBD7AF87F3CE3B0F4E3DF5547EAEF6DDEF032D9600CA65A8FFF029A0D6D0B01B6FBC111E78E001B8F0ED6F4B64CAC26828D2A30A69C26C55D84D53E8526ACD20CD5DB50401F8E2FE5361D3A64D1C0CDE4EF1ED4740FFE973406B667A9CEED90BD59B3FC78FBBBBBB79B6B6BD2D0FBDB366C40A5588D80A49BCF14398471565C05B6FCB901A5C8369A6A9A62990F0286EE18279B063C70E38EDB4D34CAD78E659C8DC7C0390AC396D94FAC9EBC01818047A74D8A4B5050BE0C08103B064D1C2D881A3D82D27E851F96C8977B0A239B35CAC5A2FA51E3C03D39928244D0D7C3424A36313306BD62C3872E4082C5AB408084B83E32E9DFD2620A7F4016563F7D888266B0CDFD0D010F4F4F4C0F0C8684C3A8DD08210734C427C462AA4DF1BC47CD0AC9935B2D5B341059EB6D9F6E27A53BB06F6C0F2E5CBE18D37DE303D8BCBDF07B507BF09A43D0FD259ABA0FEAD6F8374C60A207366F3EB9393939045AD491A6F34D48208F796D77688392CAC61AD27A173ADF3E600237AC4E9715CCCC42CC0568CB02FBCF04278ECB1C7F8D4DACA7BDE0DD2B2A550FED827A17CE55F013D7808D4BFBD8EDFCBE20FE6EA6EDD3EC0EF8DF50D11811D2110D0187F1D9562089BC410B63D13A961CD4EEA3D4F2327B56F198CA441DF8BBFDE009385325C7CF1C570CF3DF7006435503FFE31C8FEF77720F7C84390F9DCCD20CD33EDCA934F3E091FFAD087E0DE07FE33816B1B52F323698A047A04DAA04509DB88296C77D501F09CE34018A90D384D0F4DC8475961EEB9FF5B70C5155782A66970FDF5D7C3D6AD5B81B2A1BEED6D3CB678F8E187E1F6DB6F875B6EB9057EF4F47AD8B4797B8A0AE24FF547D1947B5EE782859685EDCC546AD8E7BC6B79E8119A71425609D8B7FF207CE12B77C267FEEE63F027870EC0238F3C023B77EEE4D798B1666EEFBFFDDBFDF0FDC79F82FFF8D6F712D92D6FAADCDF8B2F8AA6CCECAD3D4ED0F08D370F1DF013E8784D23CE8B8F7156A33979C060DBE6AD3BE0FABFFF32FC9FBF7C1F5CFDD71F8185A79EC23B1F8C8D4FC096AD3BE1A62FDE0E1B5F7B23D5A221819A1FA1BB7E9AE253C8386B712413B629641A0182F78C914633C4071D8B05688A18753FF0CDEFF0C2691915DA91A60E1F39EA4C469CD6AD0BD2549411F70164D18961D096841D357D3B6D42FDA934834E7F031DEFDC26CE9093AA5C06F565F749687636CA88DB33F788424F276C8192C2E8CD68A93D8306BEE464DCC25D569FE843A7D024CE4F0BB89E3485B023907226B837474749AE29311F96DEB53D0931A1FEE8D74F4724B2FDC7EC2962D89E8FA965D468E425F9969B13BC2767C503C11B335F75284E301A06B272E54AD9494D5A05965AA6257A722114705F43CCB6BF9720112BBBD3892EB8B69F57D83420ECF020D0756BC7478FC2C4F8083B4F4AA592367FFE7C556C7B680C06A511C44903FF9F3C8A14147CA4CDF0D91527AE0813B6D15CD84648246EC719955281E7E3582F4ABC2697CBE576F41EB5FEFE7ED92A1F9112099136C7EDC41B8D60722F4E67008BBB89683722854D83C276023B2318181A7A0D8E0C1D0542CD956D74C39050F69D8661640B858272EEB9E74A89BDA9069313B4BC653219E8EAEC804347865A321A044864CDF7B71307A2706A488E01A761F52FEABC7D898656D2C9B1513E448E80CEBFC7A0F53202D186FB54575717491067D068EB4103CE5E420054B8EAF24BE1DC7356C1A285F3790FF389C929D8B26D27FCE087CFC0AF5E7A3519169446B4B3043B328775B130C004831A34BE97146005EA61F65A650A8AE8B6E77259982C98C9CEE1237BBE87BF952F89373232020848B23883D278463CEEA8EF258B16C067FEEE5A281626E07BDFFD36CF4F552A1598397326AC5EBD1A6EF9874FC153CFFC1CEE7BF0213E2623B1C588A42A12180164BF350C90C3B2AA8D841DC51CBC8A1A351ED8B226808CAAC28451877AB5521C3B72F005A4A9AAA22875B41BFA860D1B8C04DE54549C413D51655CBBC19A506FFBF24DF0B3E79E81BBEEBA0B2EBFFC72F8FAD7BF0EDF7DF861B8F58ABF84CECE4EB8EEBAEBE0CC158BE1C6EBAF4D6537020A421A34303968303020224B2BD807031A240EED7368B4CB253ED3680EC130EA6598D7BF8C562BE56FE2F5897ABD5EC4D74A3E9F37EC584349EA024D87DDF8F847FE0AFEE7E73F87FDFBF7C3D7BEF635A0AFFC06E8A38F43E5D58D90EF68872B3E77339C7FFEF9F0852F7C01EEBDF75E4E63AFFCE6B731AD1A899ECD001ACFA86610FC3335243A794121DC93F4CBA35EE2037FB248C5CC0BC8B4B5C1D8F0A1DDA323433FC5AB63485353084875C78E1DBAFD2029964E507FCD0F6A0A8D39FA9E75E53C6D693FCFD4DE70C30D3C39A83FFB33A8DE7D1FE8CFFFD2B96FDEBC7970CD35D77030AEFF9BBF4EE7DC361C7D1A929FA27C4534A76647A7C485C0CE08C61980F4C4506776826905D03ABAB653D5BD833BBE82F4C41AF727108CF2AC59B3EA9652B41081D3F4F9A915CB97C20B2FBC00EF79CF7B389772412C5E04F25BCFE3ED19E2B676ED5AD8B87123F42F98C77B88C4038244C71A0DF2B77CB1BA98C2F60681E03B875C47280291E340D46B65C8E773307AF4D08FF1DA41AC7C23AAAA72ADD8B469932E8A4F8A6BB9C59A4F05446820386CBC2DEA3F15B66CD9022B56B86B0EAA1FFC006877FD1364EFBE0B484787E7FE850B17F2DE214B97F4B71E5A924828DCDC14341176A82D7183434DD6F922914C2B54454220F23072E4D0E1C3870E3C8A5A719469056EE5BEBE3E8F56C4F6A668581A39242A8FA321337ABAE0E8D1A3D0DBDB0BCF3EFB2CFCF6B73E5BC07A85DC79273FBCE4924BF87DAC87C8AC193DC9D221101DF845B9BF76D6D69F42A71146D26F4B5404A2ADAD1D342DC37B45160BE36C15E7FAC0CE2DFF8C1AC102A8B16AB55A6C6B6BAB310F8AFA72F24A2C3AA234667B477338F6EC3DC8BB74B236EE77BEF39DF08E9A0E3A46A7303C6AE696B379204857EA47AEE1F7339B71EDB5D7C2C0EE6FC748A187A042429B9442830DFF82BBE1863B3C1BCB96E3EC6ACF714A626E6CA55C8076D48ADD3BB7BE80F434883BB31593BAAE970F1F3EAC87094B8AEDD28A069CFA0C7B029BB173700FEFF6CFEC06FFF4C828A8EF7E27D4FFFB07507FEC092E519231E7BE4575E6BBA6656170CFFEB821788AB4BB0BA6DDEC1A6DB821344BDBDDA6F2058473390DD82A9ECC1EEEDFB767ECC0BEDDDFC2EB47711F43ED28767777D74DDC6932309ADA0CF0B7ED36D70EE6A29E7DF639B07BF76ED8BC79B379B2AB13B4FBEFE5BB7AD595CEBDACF7C8473FFA5178FE8597F8C2ED497CA9345D4FC5C6254AA30DB77FE2B18E1C815948A7A6F794831A5BBEB438650CEEDC723FDE3F84B66284ADA4E9776553352ED1B068D459A1D8A7454D42F02343C3F0F0F79F80CF7EF6B370D34D37C13FBEEB12E8FBAFEF02B0C953AC5E2C46A50C0F7DE31B7CFA8AF3CE7B0BFCDF6B3F337D795C126D4D5CE31DFFD91A4AB06F762FE4110896DE615371747675C1F6CD9B7E5728143659608C2318A5AEAEAE3A5214A51183DAA5243623A81DC15824CEF6C48F9F4313318976FA4EB8FDD72FC23F0F1D84A77B67C0CB2B96C1434487EB376EE0792A16F4DD79CF83303A361E3B91496241D238B31B1F640A737BBB50F89D5C2B34B4155934DE833BB71576EED8FC1FACEE2110A368CC0B61AE6C22CD884C7C505F4F89849D16982FFEA5DBEE82F7BFF7DDF0D5AFDE0D0303BBF8303216539C7EFAE970D9659741A15481BFBDE14BB06DC740C2B4EDF11BE0D9DB9D83B973E7728D60467B72628CF59AA7DBB66E79042F1F66011E82C05DD9458B16E9FBF6ED8BD48A78344523A270EACF4BC58F35787715E4E3479FF809FCE257AFC02A8CCA4F5FB618162C5A063B760EC2BF7EED3F61C3ABBF8352B972EC259A12BBF6AC0CFDFD0BB84630306AD50AF4A0FBFDFCFA7503632343BF66461B0D364B7B1431000C756513834123F23181C04FD09F24BFEFE0A123B0FFE061F8C94FD70BF38618DE6E31275927088CE560F1823EE8EC68E7402848A9D4A8036A4465D3EB1BFFDDA2A7616480C95AAD56C5A0558F534DA57834457D74447D469C7A17A83A516DE1A9414BB6E0E3FCB93DD0774A9F937BAAA2F764A0B7B7E977AF3D83970F59913637DAB367CFAEF923ED546084A53CC2620D7AB2D45E9A2E5F96649BD9A5C1E9CB97094940037ABABBE1D5DFBC72E8F0C1FDEB51E647D00D8FCC3FA5078386196E2F4D856ACC71ABD13EC780A49B5F3AEE273495C099E8F1B1A42503239BD580F5D7DEB279737DE386971E644030AD402022F34FA96D06853063ED0ADD7575E9C9D18D4A2CE731D0D4D317CD83B973E638DE53A138C5272943AD78D1CAC81E69967F3A263415746F1B4CD015D547F5B8B2576BDFB8606E27AC3C7385434F6C41C6193DDDF0E22F5F18D9B573DBD3CC9545404698D166F9277463F5A45F1A8FA6A897A6BC7623E851FDA1198F8EBC0AABDF7CB6D946E1D01381AD5BB6E92FFEF2F987191071F34FADD3944043C1B60CAF4775A2694A5C5E36769FAF268FEDE96CE3EDF62AA7A70C6FDBCE21202FBCF8CBD76BB5CA20DA0927FFC45CD946F9A796688A8A34E44F2587785427D6A92211D2A52DF90A6CB24AA61179A427158F3B3A3B60DDBA9F4F6D7EFDB52799D116F34FFEA6D4E9D30C1A6637A8AFD7A797AA5E7BE57958BCEC0CE89BBFD0EDBB8A3B9B6993EF351D6AF53ADF75D0A759338C906E5EB441D22D9E6EB07565999D60869B75271A1C18A4FFB3FE5906C4909D7F42200A495DD914E990B0C0CED70023DCC37A5AEB7A9D0FE395657337A7496553A212E7985D67F7F2796B6B753E972D0709DFD7D8628A35B6EB7C6EDB4AB59AB84AFB5D6F9A96A3C09C2A8F69868EE563037AD6AFFBD9AEF1F1F1CD69F24F2D80111ED851BF4117EE21408478C41E9265814989D35EC0BC119699D53409B938E3692B70D3DDEE2C372CC2ADD7752857AA085215016220E2319B8C984D408CC75934B06A468B2DE4B8CAC1E7D255156EB87FFCA39F947FF5E22F7EC034224DFE293D18212D797E8FCAA122DFCAB73606F6696AFF39A05057D811A197BB382370619802C958AB23536795E42A52C7E8E8304C40954F2A46C5C501210E6D35B119125B125B82FDFB0FD2679FFBC93A3C359436FF94CA80DB03385CBB217854915465CAD41D8A450510C240A1DE35FF08B1E6EE10E6F000EFC4BF94061396D4BFDA8DAFCF04F5F98434214FB1C776B4B7C3933F7AF2D0FEBD7B375A40A4CA3F25D60C0B08D6319704023B08A1AA10CDB0AF893465EED6807770E7947527DBB2894ECCDF59EB8A09003BDAE67C5E1266DE8C5002DA38F6A0D098A67EFADCBADABA679F798C6905F3A05880A7691A77655B31DA919A41CC8DAF35EB8CAAF1077662AD0FD30C714CB54853147CC37ADD7BC4DA4FFC6B793B334E506799062A2EF1436960DAD4D8D177CC2EAAA5E2A4F183C71E656D1443ADE69F626986AD0D6CE0067A042A229ECBD84B57850476619A41038BE052DF1F71EE23D49A5C825880388BBB07A73615354C4887B99010D1D8BB65126E0C961B020D3591DBCB2FBFB46DE4F0BE97ADE0AEA5FC535330885BA5A43D7BF664F03587AAC9060DC8611E150D8937A8DF6686688463BCC17CE570786A6770324571B0A218B750E18BCD05A582F3EAD2F8BE54E4569C1C1E1B3EB497F52B3A8A65E3F92768D2FF693A688ACC993347C52FCC3220D0659B8DA764BFB71466C445634D2008800731418B44432E529FBF5B0C885AE66B4F719C6BDF0CFF61BDE569C22EF4865E33460FEEE21A61E59F865ACD3FC5A129B274E95219554FC567E73188E9C202CC64C3AA023641A4200ADECE08342C236109950846DBD20E122913E2657C0F4D899A4185D9D72C4A230186F259741AC85D45D995F1A1BDBBAA95C20E0B8C212BD26E29FFD4100CDB852D97CB044160232F336C1426AAA3569E38F82F92AC2E9664A55792941992A274CA72268F05CAE1715665115646D388A4B986DE9ED25AA425515398D0F82B00F52CC6440520FC3D19A9376E1133028EADB2BC294A3C9AE43D0E61A80871568AE35363437B98561CB5F34F289758FD9FA6CDB565C39A10882ABE4E5143DF6E50E330D5AB6D75D418BC9CC5C265B00CAAF55985ADAFAE64B4198AA2B623366DF95CFE14D6A36E74E890ACA8AAA66A996C06FF65736D0A2162AD0E1A6BB79A8343776EB2527012A8B00096302FA11D41523F4D35ECDB4003B465183A1D3EB8EB352BF7E4E49F5853EA74BAB2013018BA4C3BB2D92C1D1E1EAEE5F3F9129E62BDC60CB41D053CCE3110F095197636A082BD66F0238A39F2892A7AADC276B5529A52511699C2F85195ED16604CDB5459567AB45CAE23A366DBD56C36AF69D91C6295CB2058F89A4520F14C1E952D436CFAF27B72E0EBB2EFBEB78CBF671290A06908CE5C4443D3ED93C307F6A3666CB36D859D7F1A1F1FAFB49A7F8AA3199471607F7F3FD30896EBD1B1006C0D3615DFABA8290A7B450F821978BE3320F095095AB68E550B240696669FB3EFD3F5BA529C9ACC14E844C6BAD7798E05988CEFF388480FEEED192D9B673BA293B3C192554553D5AC86C7B26B3F4C5112711EF426D41408505D85A4A8D5D5C2C8BE0DF876F858E49FE2D2141D1C1CD457AE5C5941FB5147404AEDEDED32D6088260A030752993C9B057A44D850120E179BEB3F716601C003C56AD57768EDD6B5F67E76DC06CBA532D20B8A6954BC54CA95850AD7B1CC0D833AC8034A3A8996E04AA03E9AF4DC920584A268FE2C9576BD5DCD4A4AAC8785261F96E2044F4E0FCEA12581916EFAB16473753A37EE858E59F1AA65D849404F1B932BCAE2138A452A930E3CE3446C242F1B1D29D9D9D0C0806144180B8F147AA63D7196032F2AB6C81252358EC331203D202C4018C09DA068C01629DB7A9D003986DA72CAA649FB5B5CCB25FFC19B2E99848ED08482702D38E7B4E96E43C3A221A7AEB59820E0AA0D74189ACB134A06E251CA15E1C2A8E1D7C0A9FB3179FB103CBB503CFEF6743BFD0689798ADA034ED445809C0084B1286F89AFEF72C62E79E18038CBD327018600C20F4C5F97B4BBB2441BB240B3045D02E0E9CA04136608A0F30FB9A0398789FF5CADF0B802A02600EBD9A9EA3DC4D24B50DD04D34F4CA11D0F52D787E37DEB70BF73D58DE23F87BA6502BAAD395F6480446B34C6EE336CFE68031B06C8D6280215892950E97D8B186E68181E5D3309B0E654687CC7E59768CD3A300840D18035A13295104CC06CDD23A0614ABF125464B789E59E87DF8F943C806138B172F2E5BB6E29869456230A619300F2D323A64AF8542816B92AD5D0CB430C0B0C62A16585CCB1848CC31F401C6BD3EDB09B1A95000846955C6D2221E6EE13E81E7584CC1D21F63F8FC12DAD2FAB1D68A6302468B80C5D22E66BFFC80D9368CBDB768D0D1300B209B063D1AC628CED22C06749D7991789DE59EA61838484FB5E94E7B9C54601C2FC098C36181C3016233D8F8016336CCD62A16F022C0F5B6B6B62AEB5C80F144FD7801715283713CEC9708180309C1A0484B068266D851363D8E02FABD05E3180006C1B0E3F80AE7FF032146B34AA6EBB12B0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (158,1,'UPS_(24)',0x89504E470D0A1A0A0000000D4948445200000012000000180806000000F755AD310000000473424954080808087C08648800000009704859730000020000000200017E7ED3E30000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000003D149444154388D7D94CD6F155518879FF73D33733F5A5A0AC82D4A11028518501235A23161A9266E8C8DAE74ED4EB7AEFD0F4C5CBB3126C4104DD0C48F1863890AA85117902A180A1A4AF8B2B4A5F7CE9C39735E1733F75230F14C66716692E7FC3ECE396266FCDF38FCE4338FA7CEED0AE65AA10A9D50C576E5435986F21AE697566E5EBDB8BCBC7C5BEE073D72E4C8D6877B3B9F8F81E7507D565CB6AF0C81B22CC9738F2F0ACA10F065C062B96855E85BBEFA5A02B077FFA13997242F773BE38F4E76276706FD42CA2AC6683153B4AAA2B910025534D439C2A0B850951E97766645538AE24E4C0048C7DFEC4C4C1E6D670959ABCDA028C8F392BC2888D1B0AAA89C73B7CC6C75D05F6BB5C7B6CC265917001101200150A7385544957B8C36134D52174DB7236C4F34BD9A6529228220884018814470CEA1AAACADDCE0FAE50B64A6EC03AEEFDA43E195288299E112A595652082348AD6B314AD971454155521FA82D9D5350EF5D7981381FE3ACE2989730038E7C8B2945696D2CA32B22C25831AE4A4868828A68E9383757C34CE1639628688E09206A48E6C086860A40D08B9AB68381211F6A61915D264588312A7B4B2B486B56A2064754682A05ABFBD1D3B997E718EB53CE7D8FA3A2D4D0921E29C6EB09621326C4C4847612BA3160A5FE1BDE7816DDBF8E3C62A6681F1F116AE69565518B5D6044EC65051AD8A664FBCF5C6EB1C54F8F8C2253EFCE85354B4B6EE74D45A2DA65E3C1B2AA2A1357C36B7DB6C51616A72535D2AD420A9DB1B2A323386272CD9B0EF6838BCF7C1710E1FDACF175F7FD774512B12152A8BF8B21A410CC38F14C586D6106FDCFC87CFBE9C27CF8B61A9A8082A420815B92F6B88196BCBD709DE7793BB9CFA0178E5A517383AD9E5FD5F17F8E6E4E93A54ADC30DA1DC9C17013323784F590CFCEF67CFFEAC0066118BC6D0F0C1DD3B690D729E7EE2B1FAC88DCE9510424C8AA2C41781B18E5295FE5DA01A81A20DF5189F7F7B8A4B69C6F1135FD5D66C58AD5045235491AD535D5289D7CE9C9A7FDBCC6C642DC6461570E6B773CC9FFE85BC281AF4BD97DFC4789BD9DD0FC5139F1C9B33B3386A8D2A12636430E83331B999344D00215AC4FBB2866D601D3CB087F3E7CFCD2F2C2C9C1A7E4B6A8E491523657E87DEF43463DD0E3B7AF52EF6BEE4F2E58B34350170F1CFF3CB677E38F9EA500D40323333D371AD09EDAF70DBACECDC595D71A97349BBD326C6485555085A676860A1AC7EFAF1FB779696966E6DB42B565F13DAEBF53ACEB91933EBA5697AA033B6697F96B6675C9A4CFB1076A8A6E3BEACBAF9FAEA5F6AC5538B8B8BF97F40A3C9F0026EA6DC3B746A6AEAC14EA76357AE5CF9FBBE7FFC0BA9AFD6D0A24887680000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (159,1,'UPS_(48)',0x89504E470D0A1A0A0000000D49484452000000250000003008060000009685B32B0000000473424954080808087C086488000000097048597300000400000004000119239A6B0000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000009D64944415458C3CD595B8F1C4715FE4E55F5652EEBDDB5633BCEC6B78DED8DE38DE56063611282132982272484FC06124F28120FFC02F80179485EE0012410F08202080102144884431411881DEC38F1C69B5DAF2F6BAFD7BB6B6FF63697EEAA7378E89E9EEEB9D84E78A1A551D7F4CC547DF59DEF7CA7AA864404FF6F97F95F3B181F1FAF5686B7BF605470C00997845DC840E0182133878E39649650D8051C73CD493CEF9817E0E49625B96DA28D79CFC3CCE4E4E452AB4FFAB44C11119D78F6F913E5CAC049ADFD6704F43429BD890570CE8199E19C8373C9DDE6DACE5A5816B073853ED946B7C4361711D7BF75E5CAE4850762EAA91327F63C34BCE38572A5F2CCD7BEF1CD2F2B63763303CC0210E01C03CE4188C0200094FD569C401C03CC205220B401B16B5E11E68636C1188CBFA3691BFDC377ECD8B1B2F286BF5A1D1A7C3A08C32F3DFAC881A7FCD0375A291000168099C1CCB08EF33C269F3B0B173BB038902628521007C0391084D936274538D45E692FF43D34353A3A3A6ECA432F6A6DC683B0BA2B0C3CB3BEB6E2D76AEB2111AD4108224CD639722CC4ECC0ECAC226D15092B52C4C203DAF865A5154408CC0EA43C100822AE611BB58F63E66DCA04071F4CE8C1E6E7602ADF559E0194817504E38508C352A28554134E00CB0ED602D6022236EDC0A1BE76372E952AD78DD16B5A9B266925365E2D35EB358F82CA3645E6B0EAC10C2562ED9D7D4A25542BA5D2367DAA24D0DA78E485BBAC08AC03E0188007C7A805CA2BB7C726E4DB2D505E2F50440452042282520A9F12134004A508CE15335A2905AD5502A000A4B3DD07944A3B26A2742A028100C80DD4CF450850A4E0C04550A4A0B54E86A75C4A5077E80AA0548B2922501A42A264F4C6C65DAC2CDF4D80A65D0A019064963B1EDD85B9F9E51CC384BCFF91A11454028072CCB6582210E07B7DC2977FA5CF9B8D26A62F7D886DC660C15A6C3306DFDFBC0D37ADC52BCB8B786CDFBE941180522DBA1C284D0A46EB8C4DEAD0548EC00E504A6760DA22972C3BBE37F41036698D9FADDCC5C972150D116CD11A2F9407D014CE42A29402290530E745D5A12914F545F7A87D05961401A2B2D9FD7C75195F08CB50000E0721BE5E1D0400CC5B8B0B2C6DA1A7932A0CA2124DE50114F4953EF4EFADA94457D22A0902ACB0C35F6B6B00808FA3267EBFBE0A00B86963701A2A4549A6292AEA4A2955D054DE9BF259D89BA91C304504966C2AC5029AE6642B115BA092044958CE5B03515EE86D4D65ED16695E97A65A80F28C213774FB0A89B0D3F8A82A852B718485967E280596328DD41A944E34D5CB068A19E9F728C839301928C9CD2CBD666D8CAA22344570A1D9C86A6AE6714A15AA8152ADEC2B82EAB2867EE14B20A4824CA97A6C6C0C4F1E1E877516B18DE1228B1FD6D6218D26C2F0104A954DC0AD4FDA1ED74A945CF9D2A92510515F6BE85966909A78DBA7125B58585C85B50ECE5958EB9257DA16690058C93A685583166BCC02457950E8630D7D99A276DC7B143EB96F9D41E67394E9CA65B5AF970DE49FB53CC1F4AA5F6D5AA90BC09387C6B06578087F7FEB1D58EBBA0B72CE525A032BA50BB5AFBFD0FB84AF1DC66EA65EFCF629849E46D9F370F4F001FCF897BFC3ADF9855CE145B6CA48EE6D56DA6586FA5B43CE338B3ED5272C8FEDDD85814A09CF6DDB8E635333D8B56B279E7FE67817CDD491C1ADDAA775C296D1EDB64EDB266DFBBDB75894CE84BA98DAF9E80E1863E0CEBC072885916684816AD819BDAEA29E2CFEBA6B5FBE7FEAB774E925E0FC57DF3DFB3EF6EDDE8EF8E018FC9535BC79ED2A26A6AEA36FEDCCB186B4CC24C69FAECE246DE5EE0FB619CDA1AAD5EB387B610AF1C15194C200576797F0CEBBE770CFA54FFA126658CBEDD2D40227392A4410F50225ED5FF4BCCE9EFB00FF3A731EC20E51946C268A444BD77A8C003827B0CEA5FDE7192A82EBCD94F4AE759DD165EEBF1E6E870DD9929A25D91F4A1B55BAC06EB76B2B77C00D17109132FDC6EE8C73E7AEA7DFC681A85DAE5AEF1D3359CB1D216B035A5FFD04F5F565349BEB43478F1ED51DE1CBA6D053809F3B328E234F8CA212F898B9B988DFFCE13544515CC8BE94A20C1C81E09C9856A83BF5144711221BC1D9A85EABD53EBE7CF9B253DDE1936CFF92BF02DFC7F12307F015CFC3C94B53D83DF2109E7DFA78CFDCA0422105849DB62E11BB752EBD7372068118D5D0471C45AF944AA54FD05EEFB699928CA922ACCF1F7D12BEE76166CB3026477660FFFEFD181B1DE9F2A916907C182D4B1720EB1C08169B0737218EEA330BB7AEFF746666665D4472A0384BBF145C312B666FCCC3F77D3C7E6B018FD71BF05756B1BADEE8E32254782F9C645F022601A4C078E4E16D6017C55313E7BFA3B59E1711D76D09D206D39985D7666F6275BD8EF736D6E097022CDF9EC79B6F9FB987BD65A2028B14329600ECDDB91D816F30F9E1955F4751F4D1D2D252A3CB1238039503D731D84F7EF15B1CD83F8AED5BB7E0F43FFE8C8D7AFD7EFBF89E4F773DB21923233B70696262E1FAD5CB2F0F0D0DDD595C5C64F433CF365B92EAAAD8F1C4A5295CF8F0A3EE654B87BDF52BEC5B062B3872F8092C2D2CB87367DEFE01115D9B9E9E8E0B96933B562B00CA80DDEBEAF179CE51BA2EDFD7F8E2F1C3D85429E183F7CFBF55ABD5DEBC79F3E68A88704F50DCC192F0673C3596FEB0F6ED1EC1E8DEDD989A9A5E3D7FEEDF2F45513427ED03AEDE65A693A5D9AB533838FE14B436C91E8219F56684463342D48C104511ACB56846319C73686D13DB788AC006AA65341B3579EDB53FFE88882696969636EE77644D79409C6A4A24292BBEE7C1F30C0606082EDDE769A50008E2D8A256AB63E1F65C31413AC82A05015E7FFD8D8BCB77EEFC4929B5D819B642F8884889B02F2C59FAB6BE2FC2D9A12B33832801A3D3D33E4E27A174B261E8AAFC3960E7CFFFE7EE1B7FFBCBCBD6DACB376EDC68F6538022221A1B1BAB80DDC39C31C599AF3027FA6266B81C30A2E4845898D36D7BFA3033DDE2519B8DEAF185F3EFBEEA9C3BBB75EBD6E57E2C01803975EA943A7DFAF4401094275C5CFF556CBC9186E70D7B415871CE0EAFDC5D44580AC372A9EA97AA159DDFF94A8B55668808082AB31291BCE881E5DBD72ED8A8F1461004372E5EBC18DFCFDD68CF9E3DC1C6C6C69052AA1C0441C8CC55661E524A5545A42A22034434688CBF332885DB83B0B2D90FFC4D9E1F568D3665D22654A4838DDA7A5819D862ACB588E218CD2846D48C609B6B2BF595F9979452AFCECECE5E6D9593BE4C4962460D22BADDF2BC43870E99E5E565E3FBBED76C368DB5D638E78CEFB3712EF6EA1BEBA1736E90990795520300AA002A2232A0B5D9AE8DBF436BB359941E14A892C41B93CEB97F465174FB7E80EEFBDF0C51CFF3610240FBF6ED334110786B6B6B5E1445C65A6B7CDF37CE39638CF100949C73C300CA44B44E441373737377EFA5A5CFFC87D1038006003A79F2A49A9E9EF62A958A595B5B73737373CD07610900FE0BE7125494E334C5F60000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (160,1,'UPS_(64)',0x89504E470D0A1A0A0000000D4948445200000031000000400806000000B3E29F780000000473424954080808087C08648800000009704859730000055500000555012519CBBD0000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00000F1D4944415468DED55B598C1CD7753DF7BDDABA7B7A366EC34D22450E458B64A480D41281946831900C07319038CE02C4BFF9887F92EF7C04C887BF12208881C81FF90902C4892C5A90130154EC885A1C39A1968892258EC42167E18C34332467E16CB5BD7BF35155DD55D5D5C319CA3090026AE655574FF7BDEF9E7BCEBDAFDE9088E0FFFB61FD2ABF6C7878D80DC3B04E54EB775DAB576B5D8B44BBB0940B210F801346E1820AEF4C6FDBB6EDDABBEFBE1B6DE673E9971D8953A74ED996DBF8AAD3E87B5A933E238CFB0C9B9A002E443C21E5B2002202C30C360C664EC6E9B561461C87AB109E13604620338A799605330066C0F1AC595F9E9C9C1C7DFF971689471E3B7D6CFBC0F673DA71CEECDC77E434696B880D8345C02CB04452430D9819300C23020290FC487E25132A200894B21A227290808300000568001287D758E9C8AAF7BF04E0DE9D387EFCF8E0D0DE43CFD69A3DA735A9A70E0D3F748CE348314B621C51621633008661490D4D5FCFEE8340A024029C382594DC2712B44022C2260E4700A969DB3BA401C4F17ABCA59C2022F5E86F7CF54C7FFFE0D34ECD3B73F491279FB014F51823103180082CC7011B864AA141D4866979C60140388631062202AD35400C66800CB71C84189F4DF429805DDA761FDA72629F3871EA507370C76FBAB5C653679FFBE653B6E3EC33518830081047313CCF0529021B496792C192CCA8310C2282D656C1116362C426821880948645AA9517947F23C78B71E88F93D20795E53EBC25763A70E4C4B3B6EBFCB1A5EC61BBD6D8B61E04E28711598A7CA756BBA395A5A2588825C2F2DA3AB1613286C930936103616188C44AA9180423261202108BF11CCB6E68E5282882308323064360594E2B3C1287336118CCB1D01165798FDC13C592E59D235DFF36690D210D280DA593D9725C2F9D75D39AEDE434309CFE4EAFCB8C17AC2DC3ABF780647D456BBAAD6DBDAA94361A64ADF94B7D86390A023FD076FD30C81E22BABBE10AAA3B9C92BCA2DCA940EA4BD2301194D630867A98D1130502206EE1C744D198883ED2CE18A4E4D0B629BBD71AF2464E804A4E1004F4E57C0040A40070F5AC2A8045412995238192D129B7B5A0A7368C04754623630BDC634448A088A088C015E24A2028A5A095423EC38BAC4685B174CB09A554CAD1ED53298288FA927248204520A500633AEF2A05450A4A2B146250E940F23317888D72A21D8D3C56E3600551148024898C0241116069012B807522520200CA81EF87C94CB73EAB024EA400456D38A5465331290AD7AA1B9C284BA852345AA10510053EDEFB9FB72A70AD71A256C73C040B20ECDD7F3FEE3FFC158C4D7C9118A4141425FA51662F52C97D9D194654D00DCAE7647ACD392754754E9420959BC1ECEB3D523860DB008001ADF1A7BDFD38BF732FBEDB1CC443C6606D75A94508ADA8AAE267E52DD32A496CA5557BAC4A63ADA0954EA2B0A113F9AA26FBF23CF541F05CBD891FEEB90FE7EA4D1C755C9CF26A78A6DE83D130C483B683BFD8B61385C91669C1891455C229CB89B2D12A353A19ABC2B84B62A3034A19BC5AF61061240A7039F05B7FEC5182E5798E3116192CB281381A992784761428858A14BE97A034A570A27C1A247F4DE8D00FD59D6255CEF87682E73F8544301185F8CB5B33B049C117C65ECBC64818C221429D08FDDA0284DB9C4E481C485988948230E72241AD59A6424697442FE7DDC68A5D911B2069CD5C867303C04862C8A0B2F07BCD3E04225861C6781440245F7EA4CA9F2676074B29E474A253E4AA44AF2BC52AE4E094CB8942242A046F9E63BCB0BC089144931902B1A983B65581F1F21397D7890A91AB506DA5EE12894C1A52570AE1ADAA400695853F68F6B7AE6FC411FE3E5C69013F51E47662979D5094E444194E7907CA02B8A1D8651EE4F502200895383677DC3231FEF9CE621266022211882EBEB5481628E805A9ACECD01DCA5C163D2AB050B7C4CEE5711B490988A4481BAD63CEC478A6DEC04ECB86027061753957A5661D694561993AA11455941D25A34B496E757542E5B097E943A9EC387C64188F3F7E126C0CC22842E08708421FDF5D59417467195110608DFB71B4A799A3581484B35C82140AC02E4A5D2ECDBBEB445EE4F210CC11FBF4E70B989CBA9D363F68516962641DE4F5C0D204B234E66E2D168C68E54539B989A075BB1ECAF70F1DFD04B51269138B672D86228894E4291D72ABA32B76771DB511F2CC840E2712954E9499BA94E265D1B336D2890205E5A09541A36B47211B77459D39914B6E4A9A26AD55C1F1A219C54A76438ACDD2205F3F6DB44878E0FE7DD8BD6B07AE5D9FC4C4D474F77EA254C6E4935B51B11EEA307A2BA578919B733351C1489EEBE23B7FF26D2C2FDEC2D2D2124E3F7602F3CB3EFEEEF97F44E7D2A8B46AA67234F2899A2FC5BBB25496F00ADDABD86ADDE83CFEE85BDFC0271FFD2F4E9F3E8DDF3FFA104E9C3881707511BFF3DBCF765B802BF4262D21CD4A715D2CC52B4BF3FC98D426123B579697320C02C1D0F63E0C1F3C83DA4B3F86595C42DFBEBDD8BD7B370E1FE9C3F9972F74924447C7982BE614914E9787F231A0E2F4171A02B5994850B71A2385D2E4E4041EDCBD07500A7AF81030338B63C78E61E1F6ADAA75828E5C401E4EA02EBD44BE19CAAE75473FB1C91580A272FA4180078F3E849F7D7819585B07CFDD04EDDD834B972EA16F7047974AA6221AE9A70A015AEB4A0728071BC93F12C897F29B5D372A1F6FFCD73BB875EB167EFE9561986FFD2E2E363CB8AE8B7FFA979736CC897646E42BE674455C9233D19CF4E46455BD3D66182388195B8C4485173F7DFD6DCCCCAF6168F71EFCE7EBAFE3C0C143B8F8F607F8F017231BE417B529BC1591E40900B3148C34D975CB19293806C3774FECCD2C935DF8C9EB78E5C26BB02C8DB5B51FC0B0E94A70445410BDFCF30A168611C0A48649CE0081E4C6E92B525C4BB43A8DDFFA2A5F10849B5A8F2D902AB5A322462889445A2BB7ED4E85567263C0C411A2C810119188C85D1EB214FFF89E9731F375502112E982B218E2143AED2496525492E91566CC7D3E01B7D6533F70E0804B44815565B7C8E66292DD771C07EBEBFEC6EF6B758AF94824D7CCA20D0B88B9033AC5A808E66FCF218A0288B6FBA2286A00080B4E70C193F687511787CE3DFD24BE76EE0CAE5FBB8A43871FC40FCEFF1B2EBEF9DFDD6341C53E216328634C8D7339518E7E360EFDB52487E2506E7D3EF61AA5CFD48AECC4EDF96F8551A41245679E7C140FECDB8E85AB9FE11C14E63EF9054E3F7A1C4F3CFAEB150E48E74271AEF167E61AB7182847A726632A461C476036E8EDA9A3DE685EF557EF5C06B00EA0BCDCCD3938951C2A79F2DC33A7D16834F09810F87BCFE3CC134F208E63FCE1377F6B83122C5F2DB59D61C3DA886CA80B2431FA7A9B0087E1E4F5913F574ACD4E4D4D859589DDA6B1148F228527A10060591AA3574770F2E4495CBE7913F19F7D0772E50A0E1E3C888989892EB9D3054E29D6D90804A59C4867D3D68CC1FE010887981AFFFC45221AADD56ACB5906A88E9C10E98C44094E716CB077DF7E2C2C2CE0D7AE5CC52317DFC2A930C2FCFC3CB6EF1CBABB6652F15596845ED9E4052F89081163E78E01347B6A585E5C9CF9626AF2FBAEEBCE8E8E8E469252D8A62251951413D37358BC398D07FA06D0F8C6D771677E01636363B8E357971C5DBBC6849DC09C46A204C1A1ED7DD8363080A5F97973FDEA477F454413D7AF5F5F1311EE5E766491902412DD68F65FCFBF82E1A3C7F1765F132FDC98C47B750F03DB76E3851FBDB2F94A86729A50D1B76CEFAF63FFBEBDF05C0B636357DFF27DFF521445F3C5F5A0722498DB91C8A84DAA5D89A2087FFDBD7FC0FEBD7BB07B68075E7DE37D8C4FDC48EA9AAD3E95AC28CFEA9E8DA3471E40A35EC3679F7E7AE7DA671FFF6D1445D3376FDE5C9752EBD8A113924642D29232E9E3A56B6F313E39856B631360B381F1BC09D9CC454211E1F8D183D8B17D1B1617E6E583777FFE7DCBB24695524B558F6055B562B71DC9CE7BAE12EFA158193EB81B871FB81F8D9A870F3FFAE0CAEDDB377FC2CC5F4C4D4D0552618CAA2A0025C74D724F2561B52BDD167DF266ED1868E2F1530FA3AFB789B189F1E09DB7DFFA9B388EC7FAFAFA56BACD872ACF581B46C5F36E9EC85D70DF85E43A8EFBF60F61C7B64108C778FDA7FFF1230023BDBDBD373FFEF8E358BA40C2AA9A95329C00C1F8E88738F6F06350A420E9EA5F1CC7F083084114220C228441008EA2EEF0EBE80D3A8F9AE7A2B7B707175E7D75FAC6E4D8CB4434393A3ABA9EA7D40D9D60E68A28A4F7D2ED3F96A56159567A6A18C329C74BBA0A916CC2F27D1FBE1F606D6D1D8BF3732D58B6A35DED89E779B87E7D2CFEF7975F7C1EC067711C2F9429B52B9C282909492AA0D4AAED45C0ADD792665D294A4F05AD085A116C4BA3E67968367BD0DFDF0BC7D25D8CEE842941E4C51FBEF016115D36C64CCFCECEFA72978D8A2A73E0E4C9931644DC4C1F0A4EA414C92C2D4732956D3F5F68AF7A67EF4BEAAEE4417B4BF94BF694AD7BF38D37A73EBCFCFE8BCC7CAD56ABDDE9BAABA5F8A489E8D8B163F6D4D4D400D86C13C9842EE74C0685D47849779949BAD32C732483A408E72298EEE9000A70920AB60AD797D73EBDF2FE7900576CDB9E191F1F0F6513DB452D00343737E7789EB753E2F5C5689D4638B606C572EAC29EA775DDCA76016486B108140B98042006B8DD727201729958528EE572999D7F5A2082DB3363EF80F90311199F9C9C5CDDACC458E932B9307328FEF28F4DB07249447AD7803A801A91DEA51D7748090D4D8F8FD8B6ED365CAF56B75DB7E63AAEE77A9EE7D57A6CC77128EBC2848B8E40A9569325E59E3D1DAF2C7CF1B9BF32FF9A526AA4BFBFFFD6ECEC6C2C9BDCB46B01907DFBF6854B4B4B334B4B4B772CCBFA546BEDC4716C5B9665294576E4AFD645A419476B3D003C66AE250E9207A0A6941A74DCDA905BAB0DB8B6DBB41DAFA16DBBAE2DAB46647951E8D7C3C0B7486995094602A9ACFD35D1C2CCF84522FAC4F7FD1B5353531B526A871322224414035801B07AF6EC595A5E5E26DFF7090056575715336BDBB6DD20081CDBB66D66B62DCBB28C3196D6DA06E0AEAD2ED7FDF5D55E2411AC33B347449E52CA03509BBD31DAD4DADE6D39CE0069BBA994DD10A026A01A47FE8C31E125A5D4678EE32CA6CFFAB7B027EC2E11A37633D0DABB72F6EC59E41D5D5A5AD28D46C35A5959718220701CC7B133072DCBB2E2387688C815911E11696AADEB69343D11B1896819C015221A999E9E5E14912D3971D7CDBD395CCA661D2D473308025A5B5BD3F57ADD5A5959717DDFB76DDBB6B5D6B688A8388E63DBB61777EDDAB53C3D3DCD5BADCAE857F5AF0754DCC25670D4F33C79EFBDF74C3A675B36E8FF0002456488371D4B9C0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (161,1,'UPS_(96)',0x89504E470D0A1A0A0000000D494844520000004A000000600806000000BAE7E4210000000473424954080808087C0864880000000970485973000008000000080001D799097B0000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00001A164944415478DAED7D6B901CD775DE77CEEDD73C766777092C9E340190024C428820826468CA7051154B8A44D99548A2ACB8E4971CA5123B557191215D54249754AAB0A252512E95634548C5091D9BB12295454996A31265C6244C8B1245841429102408010BEC72817D60DF3B8FEEBEF7E4C7F4CC74F7F4ECF42C00957EB859C399B9DB33D3FDF577BEF3BAB74122827FD8FA6FFC0F10E4DBAC9FE683BBFEFAEB0BE4793BCBC5E1AD8EE55600AE90E20AA02A10718C181190186304008C18311031C60869540DE9D5D09755A5EB2BBE60D5D76BF3B6D6972627276B831E0BFD3498DE2DB7DE7AC35879FC1DCA718F92E283C66084602A065C2156364420004404C698D4B3C088811881118118133D37C78D91F6FE80408C0944CC0A2093044C1831133032A175708E83DAEBE7CFBFFE9A88989F0AA06EBBEDB6A2ED8DFD6271A87894D93E6A3BEE5B41EC68AD618C8648131401DA27DC02220E90A480C8024AB48181C06801A8DF91098C0EE64C503BA583FABF9F3C77FA073F71D3BBFDAE5FB8A33272DDDD96ED1EDDBEE796BB6CCB1E3322F0FD203A210D628059258088AE2700895E110402224024F627024800210289697EA74853850D81B8097E4F888C5E16E39F63B2F6B057F90521E3FE4434EAAEBBEEDA551A1D7FA7E7967FDE52EAE8DE1B6F791300044180300C11043E0480652988A80E3B204D04DA27DE798624308BC1D67C6D4C18810C1033386221C1407A02145E1213CE105B07D82A1CBEE662BE77EF5E6FF79E5B7E717864E8A8EB78476F3870F856C5CAD5C6A05EABA1E1D701039062388E9330A3F8954EE09078D701250E8FD1065AEBE61EC4200240912665828BE8738DB362A4A12CE70059DEF66BEAF58EDC79F4C8C8D8756F77BCE2D1C377BCFD6D6EA1781D3341EB0041BD011F4D66B8AED7B4FF98E026CC0868FF3F3A6390484F3619D1088320324105CBB6727EB71813FAAF41C465DBDB07758DC283DB6EBB6D8757DAFE4EBBE81DB51DE7E8EE3D37EF57AA79151BD52A42BD0A6686E73A2896CB2971050406109300220E405B7792FEA6850E7CBF119925C1B2DD8498230D4AECBBC598BAE8FA69A3B1956DF7E6AB1E47BDF9CD6F76EA9A3F683BC5B77B85C2AD6E79FB2DB06C476B036934B0B6BC0C231A162B144A4528661031C2A08EF5F5554004DA08C4E8E61507D072F5884C4E0490886D908815AD7131F07D1FAC2CD8960DC7F512A181C4C14D8B3A0068BD1406F5F31AB487D9FD477C05E17526507BF61FBEDF73DD7FE214B7EEA8D88E4DC40C31561806D361E0BB20F28850703DCF73AC2260048D868191B0AD3DCD47ECB5245FC3888888B022CD4421116B4514B2455A118BD6A16B5B5C1CAA8CAAA0D180EFD7D168D4A3D82802CA008EE7814825744B87C1C5865F9B37C207989DB75C8DF4231328B69C776976DFD10804A109C0CC50CC6066302B301388184AD920A2A609B52F638EAD89131963481B30003BBD4BBDBA022282B7BC0EA5B0A294B56459AAAE94826D392E888695A546EAD51A0561001141505F9F6676570D596F023B3B98AE9E17DFD0F4889AA248A0A6AE1035C7A2D7B1F3BE36892833C0164223C3A191E14610020863AE2B3002CC2BA2051336AC86A61B5DDBCE9F9610659E33405DC0581B7D4913A01660910E34FD2F88704D3742E7C2F48C13D96602B61A60AB46701130B98148BB0B648CE7040A6D16B5D9D4FAAFFDFE5A6E12636E1ECE3208028E8EB71F10C9B7847E58650245CC6DD6103AA64629F31BF0BCAF8859FD7252664084A263CF0B04A577498FE663545B9BA22FA2F68306076A332011B77FAB1F50ADE3E28482F7018252AC030DC6286E7D19C5B42221E8DD40C9D517A9D845C967788662DA9A03088AEF94FA889582C6EA7D942D905A07DD3A808EF925D06F96CC22E595ABC4A8E485D9905544608A3C65178908DDD8658D01BDAE8AD51BA7B64025BD5F6B1849A4C2601D26A83723EC683F1640A159FA806AE66C222D2F26EDD70240D91682D046B55A8B0A651D36E5D129268270F3390F109401346D2A8E6AB3084913A41862C90A20A62E5CC0F4D4F99EEC6056509605A518C456F33529B0A5F0CE77BF1BE7A72EB7816AFD7E3C7EEB6BAA4889793F202843B8690031EF049A1D46B50E34610E5D8E6D83C29808B40E718B65E1A1CA16BC1106F883CB33588DB27D1DF8A0D4E793BFB531AB88188C38A30603A22BBEB273318A6366D70A053A029E4128085194B937B7B7154A980A7C9C0F03004045293C30B21577148AD8673BEDABFEC4FA1A9EA8AE369361A43C569B55FDC39156BC454CD92EBE276829E51A288E42925171F71B0F3C13A21D5DE9DBBC22EE2D57F0DEF2303EBF388F4B3AC073B52A8E78457C687824F13BFFAC5CC13B4A43787EB2DAAA17F588CE3B26D853A7286215F18640241D5F2F80A80B1A0BBDE38304A3E26CCA3A688A6284B7174B78FF500500F042A3861FD4AB008025A3F1E9CBB35D3F5566428515C4483255A1641CD52FC8E588D1C49413882CF6D0608C8AFBB4F8C1515CAFD2848A7EF8B30B73F8DBEA3A3E7EDD38DE1699D9D3D535ECB02C7CE2BAF1CC5FFB3FEBAB5D8C22202333404F56B5749563714B5E20F204CFD686A16E2AEA4D8A7B545EC9D89EAF57F19B9726D11041CD9824983D339C64ED1C225D42BE5192DC0A8839A33A97991C6744E171A9492363F50FF8E2616B325CE82673675B8A0AFEADED5218E2E1855918E936BD4E684FD9214AACDC43C84E928918E09844F403A24FC26CE74F61BABD4F9B51D4499825670AB3DDB2F01FC67A9B9EE98AE8A94BA332DD6D3C324737A37A560E52E3DD39611E318F1F549A5114BF3259972C7BF3457026686088154AC4F08860C54F5A5226459248C2912A1AA6758AA9196C26E2BB0D81A08DC772570FE261428C51898A42BA7EB401A356B5C1F1EA3AAA62E00B10884043508E1820598C02B72F5652D0BB758AA303EE540F06A91C50DF0B9DB35D4571D7D216D754C4B9E12F5D67297CA43296F9B7BF5A5B89BA2AD4B314DD89ED28BBA3C9519A948AA3BA7842FD2B0700E514734A69518A519932411B4F82980B43FCD9CA2286985120864B8402338659F5487FA4CBDCE2958CEE436E069B9DC8BC0F107D12666B10D3EBE66847B392072BED9E63AFCD63C66D5E01ABC6A02E0681000B5A63416B183467ADA067AE9723412680381647E5AE1CD046F5BAC14C2F4E78EAA1E3FD8CFCFBF52ADE150CE11DC5321CE27637FB9B6B2B980C7C1C4CC344C9A438AB261617744624E4CC392B07FDAA0976DEC25DA706950A9333FD8365DBF8A7EF7937EAF52A1AF506EAF53A1A8DE673BD5643BDD1C017D6D7F147EBEBD0F51AA411C0F83EA6FD3AA4D59A9264A81FAF7BB5218A494122858AD8C4448395557A746606EBEB7591349EFB25F71D1ED9825AC3805501857209E591A6B02A66B0A27603552986B2149462584A354FD8086CC7C237BFF5F7A9388A5225E18EF9F5AE9973BE1615F5CB0737A15194A959C96F5D59AD626979ADD34A17D39CA061522D7649B6DBFB750CBA841CD95EB76976A9E43D4F62DCA33363E5F17A94D1DF8BD5803323F3ABDF5B10705A97522CEBF27B892E4C9F1615F5CFFDF28B39658B7ADFE8ECAAF5F7D2AD32EAD4F05382DE314FCE0DC486DD9A816AE6599811A5F2816B375936191224199266341137A723326D0850EFB655DA3673B5AB1899ED678A571E073B69C77150AF370641295139E8887BB2CFD8F2941C8DA7E3A85E40E4EACCE41773425A100631BDEDDBC7F1EB1F7A1F7E76FF3EE83044AD11E0BBDF7B1E7FFA177F894623E86BA1D4B35596C178EE24C6B980A00CBF1E1BB3EC41342AC3FBE585E9E7EEB815BFFA817BF0A78F3E8AE79E2D61CB962DB878F122B66CD9822F3CF2693CF8079FC1DCFCE57EA44A3228CEAA2E458F33AA3F101BE6839B8ACCD34964569738B58D8D8EE0C3F7BE17C78E1DC3030F3C804AA100999B07EDDA8993274FE24B7FF1E7B8EFDF7E040F7DF2B3BD7F369A6F18AFF4A430E8F2CEC4AD9A39F507A26FE3A15B8C067142A9224CF6F62BEFBB078F3DF618EEBFFF7E542A159853AFC13FF6DF204B4B3878F0200E1F3E8CB0B18E8337EFEF2BE6F1390F598CEAC44D51E1AE55ECE366A8C051672631C6ADFD3835D62A16F21502953328B871DF0DB06D1BA3A3A3F0FFF08F10FEEDD30080C6FD0FC19C3B8FF7BCE73D3871E2040E1D3C90C3F462216E9A51D41D70E605227BAC339E3636DE2C2A1B793DDB228C8F8F03610873E205D8EF7D7773FC57DE0FFDD4713033B4D6B8E1FA5DFD3DDF468C8A79DF76529C062831D601A2B52F778D35D320DBDA2CA30608078C21CCCDCD0196051A1B056DDF0EF763BF0F33370F7ED38D101128A53039358D7E15D62E46517A9C3A853BCE604AD75812A0C47C8A76034810849B2AB3A49EFB8076766212B55A0DABABAB28FDDAAFA2FEE0C700C7018F6F85FAD0BDF89B279FC4A14387F08D27FE7E7046C5EB470910A919FDF59863DA9ADBDE7A972E7F49ACAE7605A5E0C152922F3FFED778E8BE7F85471E79040F3EF8208A5FF83C647D1D542AE1D5575FC533CF3C837B7EF97DF8E1CBA7FA2730716F47C91E1E75FD91720391386C49D5570548CC3EEE0B946C223D0330333B8FAFFDF593F88DDFF84D3CFCF0C3D8B56B17C6C7C771F6EC59B8AE8B8FFCCB8FE2C14F7CA6EF15A00C2D4A0B7A7B6F23CD7579463281488C25882348900DD78A513DB6FFFBF4B3F8F1B90BF8AD0FFF0BECDE318E959565FCDC5D3F8FE74EFC10FFE6F73E81B5F56A3EA2C6B42839AB26554E319D4549C91317F4B2AA78E14FFA24EDD77461E3B9F393F8F8A71F0120F05C17ABABEBEDDA54AECA01F710F444B5B2095CABEE6E62ADE874EF4F528808B2CCB38972186C1628D97C9DC018C17A1F06659A5E4A8BE26591348022ADF536920B886EF38CE958F3D3940328D3978A3F998D928050AC2A46C9025C6B5596E94C12DD10882C5D1208FC5A1596E3428C216A86E8CDC54D1BAB44F664C3CDAFD7968176CD126EA2EEEA061100031883CE4AAED60AF69876B556AD27C652A5EAB94B9330610040BC83070F5ACD88232BA9C9B0E5EEB1AB818BE408DE126DA0EE16794CE80D847A0321B19A7D1680CDD7ABCB8B585B5B83361AF55A75B856AB158E1C39A2FA6A945C3985DAC160B154C4EAEADAC028274D2F0958C2F48CA88EE9A52F85F4F57A3A68607171058A04C6888461C35E5F5F7799B90E800688A352A69803BB5D3BB7E3B77FFD83D8F3333BB1B2BC8C527918275EFC118EFDC96358595BCB6D7A99ADA7543151B438A69FD793B422754C656565055EC1C3CA5A8895C5D9D76A6BCB3F0600D775058058B90D439269403F9CEEBCE3ADF8B50FFE321E7DF47F606C6C0C3B76ECC0E4EB67601C1B5FFCFC7FC4C73EF5599C9D98EC9BC22427AFA52DB393FC6931360B36E5F5FCFA1A5829B816C3F73C2CCF4F3F4E44D542A1E09F3C79D26C607A31CF21597FDD7819C74865081FFEE02FE1D8B12FE2F71F7800C51FFE08E6B5D3A0436FC1E4CDFBF1C5FFF2C778E0DF7D14BF7BFF27FBC65499932D32BB2646F5F47AD2C5A3F685171D8004182A97A083060A5EF9F58B6F5CF81BCBB29644A48168512F6FCC7EC91673D9987EFFFC97DE85FFFDA52FE1BEFBEEC350A180C6439F40F0E89F0122D8BB772FEEB9E71E9C39FD2AEEBCFDAD1BD7CC13715377B130A5512C46B2BD9E486C4D73ECB602A2A1C8A0542E4191804437A626CF7C92882EB9AEBB7AD34D3705ADB3E35C1A2529C0FAE8FB4DFB6E401004181B1B032C0BEE23FF09D6BDEFEB98E59D77E295575EC1CFEEBFB17FE10EF97A7192E1FE25E5F5740A400B1AC552099EE7C0B61566672E7C4D6B7D3E0CC345634CE3A9A79E3212099DD52F0A8F5526DAB703913E0A353C54C2C8C8084E9D3A85D3A74F3707F75E0F59BA0CFAFAD771E8D0215896855D3BB76D7091A4476B29167426A27F20EDF5BACB2B9D3F39CA607878189EE720F4EB585C5EBC3877E9E2FF62E659006B13131341DC56AC3C071A373DC911542D2DAF6269690937DF7C336E7AE924646109585A026D1B87BAF31078DF3E68AD31F5C6C58DC589A84FE130CE2E89024E49796CE9228062C168A58C52A908A3038481AF4FBFF2F267945217832058DAB66D5B637E7E5E24E63637D6A8C8E44424C31C7B83F5FA8F27502814303B3B0B2A97C15BC620B52A78FF4D905A1DC78F1FC7E1C387F1CAAB6706AAAC6E348D47A49314B727836404A080606CB8804AA58282E7C1B1152E5C38775C6BFFD52008E69879FDE4C99361FAE438BFE9495BDC2573F162E7FD57FFEADB78FF07EEC5E73EF739541716806211EACE7F0C99BE8889E9693CF9E493D8B6F367F0FDE75FDC54F5396B8206A4598F92C49D38BA3F5B29D9D8BE6D1C439180CFCECC2C4E5F38FBDF9552172DCB5AD9B16347D0CAEFFA26C5265DF59394E92518D57D3A6B6BEBF893FFF915FCCEEFFC2EFEF8B13F873D338D6DDBB6616A6A0A954A051FF9ED8FE2A14F7DB64FC961D06CA07F51DF7314AEDFBD13E57211A235AA7EDDBCF2F289FF1A86E1541004970B8542EDC489135A32D6906C1C70B64C2F2EE2926F12FE0B2FBD824F7DE63FE3B73EFC01ECBF692FFC461D600BDF7FFE45FCEBDFFB38AAB5DA15A7CF940F9FA6E91070C3AE2D181D1986E3D8F0FD064E9F3EFD52BD56FB0111CD8C8E8EAEEEDEBD3B989A9A92C10A7792343D497BBE1CF9DFCCEC3C1E7EE40B304660DB166AB5E6525AC955B81BB0F5D367DBB17508BB77ED84E7BA088206DEB830B9FEEAC9178E31F3B4D67A0140221CC80954528BBAC11ABC6AD268F8035246AE9AD155CA0E6E3EF026944A451004F55A282F9CF8DE9799793208825911593F73E64CB8D18F728FBA5D971689C4CD2F1FA3AE42DDEE8A0B8796221C3AB00F95CA304AC5221CC7C60B2F9C9858B83C77DCB2AC8BB66D2F8D8F8FFBAD5465A0E6824448A53D9F24D3C0ABD9E1CA2C045F0D9C0FECDD89DDD7EF82E7B9D0418033E7CEF9279EFBEE3100534110CC03A845E1C0C61AD73B3C883327C528FC841875853FB17DEB300EBFE520CAE5121CDB8601F0EC33C7BF03E0BC52EA92E3382BFBF7EFF7B3C2815C40498F582ACEA86B0E9331ED806933D55522E0F0A103181A2AA3542CA25070F1BD67BF3B73E1C2B92744E48D5AADB600A0BE91806F9A51EDC720F6279B25935CD95709305619C650A904CB629C3B3B113EF5E4B71F05708199678C316BB7DF7E7B90F76B394F7B2A1EE576582578EE996FA358F4502E9750191EC2C8F0102A95210C0F97512E15E1153C58967D05F79A6A997C761A2A7D3E5B2C15502838B014E33B4F7CEB074110FC9899A7C3305CDAB16347FD2B5FF98A484E0DB17A5FCF1483E23A1545EDADFB5F2AC5504A351FD1EA04E6E6AA84567D28087574A3D230BA69698020081186217C3F801F0408FC0061EC9E9AF1B9043220690540B15884EBBAF8D6B7BFB37CEA951F7D5344A6822098039099CF0D0C9491CEBD68129E4E6295F35805346D96ADD7ED6935006C4BC1520A9EEB7696634413E8B5363046436B83506B2CCCCF63E17208264ECD1190BE45C37843C3712C4C4D4D9B6F7EE3AB7F09605229354D44CBDBB66DF367666672B329D3F48888440C255297582AD3320589164B7712D07442DACCD6E3F39298D05E8DC08925AFD27610143194A27EBA203DB922E7DD8444E03A0E1E7FFCABA76AEBEB27B5D653002E03E899CFE5068A9AB31F18002719D4610EE2E6488831280D9644377D900E304C31905AD3C4930E4280D89A16EAB8D81499244EF31E31D4F1A7FFAEF6BDEFFEDD37004C029849977737055404923A78F06041442C489C419DB8A9CD2D91F6DD3310635E1660406C9918276FF4D0FA4CBCCBD37D332FC9EC0AA55B69F1CDF76B8D6F7CFDF12744644A44DED05A2F3073EE702013A81648070E1C282C2E2E8E01E20962BA94D29ECE85A4C4DD59BB18D57E982E002403D84E6987006248777BA36766904EB31767265E5E5C5CF87F0026C3309C01B0D62F9FDBB8FA1099DBCE9D3B9DF9F9F96166DE0191424297E281669A6119DAD4EF61A43B2E8B03DDBE7548DBE63BF62FE83FA7696D69666E6D69F659005396654D5B96B59C279FEBEBF58E1C39C28B8B8B3611958C3195B0BE721C616D562B7B2B2B356C597631B49D8265396EC12B3AC2DCD69EFEA074EC3B716FDF2E06C622F0A85E2E71534FB5C8B367CF013A68844B3313CF029802301586E11C806A9E7C2E7778A0940AC330AC4A587BBAE1AFBFC4CC65009E8878003C638CC7AC2A96ED5EE7386E6964746CF7CCD459DF76DD82E37805CB760AAEEBBA5EA1E0785E91DB1E32233D429729C763368E18156353F764C2A40D4672B63477E1F5C0AFBD06608A992F32F3EABE7DFBFCE9E969912B48505B5D45DEB973A76B8C2989C8906DDB65009ED6DA65665B6BED1291474485083887886C11B189C8262207801301EA8A48D175BD2D8E5728BB9E57F6DC62D176DCA2EDB805DB753CDB765CDB765CD72B5A8896CAB6A6DE6863D068D4B1303F87D12DDBA07533BE6A3EA75F6B84D1986B2B3F68D482E5B9892F13D18B22F262100467CAE5F2C2C4C4849FF50F4E0CC42811112232D3D3D3FE9E3D7B8CEBBAF55AADB6A8B566638C0AC390B5D6966DDB8E52CA6166C7186331B3658CB144C422A236984AA98231C6ADD76BAEEF37ECD565B15A4012916B8CF1A2F72E5BD668D12B0EDB8E57B25DAF64594E51295510E262C3AF16EAEB6B162BDB4EDE8F4D325F8968595F9E7D8199A78C315344D4CEE7262626AE3887A7CE0A4A4AACD8BFFBEEBBB1BABA4AF57A9D1A8D0655AB55353A3ACA8D46837DDF57C61832C6B0D69AB5D6CA711C2B0C434729E528A56CADB5AD94B28C315604AC4D442E8002808288B8001C001611D9C6188788E260BA006C662E59B633AA945D66DB2912AB22912A805541843C801C1176B5BFF2467D6DE16B22F2B252EAA52008CE6DD9B265E9E4C993E195B229015446E0D9ABDA4A0070F7DD77D3EAEA2A0140BD5EA7F5F575F67D9F8786865410041C86211B63280C432522A4B5B61CC7B198D98900B599D98E58A98C3136333B00DC96891B63DCB4898B881399770B4C8B88486BBDC6CCE7009CD25A9F01303B333353CB536BDA3450FD6B3DBDEE6591D4BE382B01200DA6EFFB2D10D918C3C61865DBB6DD32F10850CB18A344C432C6D82DD601281091678C7122475435C6CC02B86059D6ECD6AD5BD74E9C3811CA55AA305E937F40877ADF0BAD2F98CBCBCB2A08021E1A1A5261187218861C0733D24B3BAE9722C24A293F088235CBB2562A95CADAD532B96B0AD4B504B3D16850BD5EE7389800605996A956ABE1E8E868D82AA1C8553C39FA69FE67E3728049597D36B90627F5FF018A3089B00C617BD10000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (162,1,'UPS_rackmountable_2D_(128)',0x89504E470D0A1A0A0000000D49484452000000800000001A08060000007FC354EE0000000473424954080808087C086488000000097048597300000DD700000DD70142289B780000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00000D4A4944415468DED55B7B705C5519FFF6FDCE26BBC96E366D9AA40F9294A6AD34803348B1908EE320C2A8807F7498611CB5B6A0B45494F10138E31F8EFC238A828EA2CCE80CF8C03F1466144751B06542DB901652DAB43469BA4D9A4D76B3DB7D6777FDBE73EFB97BF6EEBDBB9BA42D782627E7DCF39D73EEBDE77BFDBE73EE1A8C4663DCE572C50D060350A62497562C9BF8B58A5651D66AD3EAB3DCB9F4CA52A9046212AF1BA98BD74BEDF37F76BF39AAF2EB4422D16440E69FDFB2654B87C9640231A360D4BC6EA46DA5F446FA502A168BEC8528539D5F37522EA5EF073DF672DF6F7878386C068D244A4F369B854824C2165DCCA47D57B2ADD13E9439F31BC92434369B8D65ABD5CA4A6ACFE57290CFE759D6AA8B7398CD66D8B46913F8FDAD156B266AACFABA91F6A5F669A41E0E876162E2ACB24E6249C95CCF24A5D369181B1BAB32E9EA7A3DFAE518A747D7135EAD36B7DB0D3E9FAF22534AA55270E9D2254826934A5D2CC58456930940642E063FF9E973E5FBA0568141FB19AE6492D6C2A0B9267B77EF6202A097CCF5FC91D7EB859D3B77AED8942FC7BC374ABF5CE673A9AEA45028A08024E5F5C2B6629E9544BF7AA9044603AE83D98A3593869218AAB4BF4200D0C4A562B158DEEFF75BD4E687523C1E87A3478FD605621F74D90898A2E47038D074FBA1A5A585E5E6E666D64E964ED478CADC1A700BC0E7210BB07BF7EE8A7BA02CC2C76FBB15B21FCDC178E654159B829E00CC242EEAB271B9747AA4A1D20E78E5B997211A4B33868B494B1869CD4878D1B559CCF86FE0CC99334FCDCDCDDDD5D7D7D7A6F669E4277B7A7A2AFC2FAF4B2F2E69A1165DCFAF374AD7ABABDBB47C277F71AEB1BC6EB15898DFB7DBEDAC2481203AF7F5548A9930901A03D01C6A01EBEB5B0F669F135EF70E43C295A85A747F6B10262333BA0C5E2E7D53733F988F38A0B36B0D44A363C85DA32094C60AA6F3B541212F8E8E8E4E2E2E2EEE31636306DBBE848B71ECE4C9938FF7F7F7FB448D2101E8EAEAAA32C3CCA4947260B71AA16070B285D432D50B0B0B30393959DB88E9F84C11AC2C87AEF5F27AF7D29B47B434FA96A504816010D2DD29482C5633DF6430610F7D5CB012FA807B2303A5669B1D8A04722B9E1DAA46653219181919790F2DDEC7F0F9E7CD02DAFF310AC19AE9E9E9073B3A3A6C5A6655F48F1843C281BBDB6143A7071E7C6A1CB5A29D315CED42D0B2C0912347744D77BD58BFD1FD85465D80D3E964C04FCB0590C917CD7E2D1730383858616EFDADAD70BE699A31A324D867AA6F6BDB0AE1E405544EA364B355CFF491B601A44FEB0A402D7AC0DE066687152C14CD1417515A4CF273C959F0FDC437E4C524BEEB1031BF220AA08426EFDB1313139F0B8542DDB5361868B136AE2AC28E6DEDACEDD3373AE1E5A30BCCB772B3C30561FDFAF5D0DBDB7B45F611F8B5F8825733FE161DB1B7C90B61CF2CD82DAEAA35BB3E741DFCE6F48BE040E1D302DD44FFF5A917C0866EA9C40547E8B32DB005DE7EEFDDB282097D7C362F80C7046B7AD641328ED6A75084778EBFC7D49FAD8B6003D0122751D11FC371E18A2840606E16ADC02F506BBF1F080434994FFE309B8AC123BB06213C7B095E3DF43EDC77FB26F8F7E85BA83176163588634E9C3801AFBDF6DA87261424ED2541E556804A1222AEFD7A591D063EF4D0437C530DB184153C4D4D606A3283DDE852B49CDFD78AE6D9E674949F4B60A2345EA08B0C964BABCD013687241C4A1F796CABBB15128E1CCC2C64C0D7DD07035D011480138A0B10D3B973E766907FCF5785812A2BF02F44FE0B6D6D6D5E35F30939924FFFCA1D1DD0D6E2807B0EBC044FECB9194C46031CF8FC3AF8FAB3EF332C40998F09A26FDCBE7D3B63961E585CC98610AFD7DAFC11770BF94610DF04E21B411C00223062C08F4A0E043908E4F39441A0B4C2A18E10184DF82C1E23384ACE2A21B4A280D865ED57339F814A02A55AD68103711A8F42A7450BB803102F4D29F76A6BF5B3F9E500500101E4FBB1FFF112C5A9B50400D349F4EFE4F4BC6ADF4FA6BFCB9F877B86BAE1B77F3906831B83D0DFD3829D0A70ED5A2FDCBAD9026F9E89B2C5E5AE80169242C95A91801ED2AF15018874AD48406B678D2378C20124A4EA1D4F8EF8799D321702710E7ABF0A84EE6B013B32A9E03680BDE0ACB23C26BCA7C3E52A335F2508669CCFA166B0C0683E5E792FFE2CC470B400EF16A48D1E5FB317D67476942DA4B102F9132F8635378254C9872F68523F082D4662610E1EDF771DCC44A2F0AB3F8FC08B3FBC1D62C85C9EF67CA61BDE78620401A293812BD23662FEF8F8784307428D1C06D59AA3DEC10895C47C32FDE4AAE8192973E1E6804FCCBC5D9C8BE6B8E9A69BCA2EC1EDC279BC3097996756520187DC046353295FB6C9EC79F1CF4825EA89C968028BD5A6B42B1187CC64AB6C21AAB67C31B7BA5BB090E675A31B59DFD35D15FD088AE4AA2B00D8B9DFE3F1348B0B485A1C8BC5E0BE211F74B75BE185BF8D4367D0090F3FF94F463F383A033B063BE0996FDD02FBEF0EC2F77E1766713621620A213B3B3B75011D6FA792FA8BD7F5C688A05034F37AA5D69E391F478CE36E8E978C77586A01C18AD02A9B038BD904F64B36984DCF576954D69B83D45C5289CD0C5C38981023DD8DF448521600A90DA54312722C0BDE021432058946ED6C0D243ADA2C686EF2E01A1861763E0AD1D8429997EC26D2B3224F69AD06EB0A00FAC4075043141B470B405AD0E64AC197EFBA16572B0BF70E75B27C7A2A0E1722182EA5B2F0F4376E64B49B377BE1BAD72FC07824C284E0ECD9B30C04AEF4CCE07201C17A20503C1310DBC4F9688E7DFBF695774BA33170A24BB1272D9089A765ED2CDF77B13D8F02209C271864E6C842906F23014849ED326325664BD7F9961C1B2F31BF2C189463990508FA7DE0F3363145085F9896192FDDA75852F84AF45E1CEBC0E74B6B0A00123723F8DB4C8CE3D24EDA3F3F370B4F7F7703980CB98A17FBCECF86613E9E853FFE607B05EDD15DABE1B38F9D66072F04028786861410A807E8449A16F0538F1143403114D4CB7C3790FA910FE799300107811CF851298242ADD34049F0A4179E989C020FBA01FB8215B2892CC6E3DC4F4B42B798CA437A3E55B1296310766BF2C91C24C9021825EDA7120426E73B5080703C7B4F63B9DD60420148C511F83543FFFA2E989D9E81D1D1772A9543105C0CC9DBC7C6C6BE89D5C7AA04003BFB91F1BFEFE9E909888897B4E1EE9B9D30D063671A2EA68E560C7F1C4678F77404AEDFD8A2B437A3A7D97B870B7EFE8F19E663E948B21E88535F6BF511B79FB5C6EB013FF5D636F970D262CA1C0C72C0476899EABCE4DBC1E25C34C735D75CA3BC6F3A93C6B55A8426831B8A8B4526007432582A90E09520914A422953841C0912A395CA560279148BC6211FC3C803C1B44166B25166305DC731BE2F265038114C184C325DA6CD25A3B0DA1584523609CFFCE8291C67A9C21A7C6D42A190656262E28B28C0AFA0601F5204003B84D044FCBDB7B77703BD9C28009437F638E1E8C939665A987B9225F5FE4FAD5116E1F8E918F077A2B23380A006AF6821E97B0291C9EAAC0681CBA5D73BD9A49218DE84313B47FCDC329099A767A5CCC11FD5A9A42CCEC3C3DCB21E1B2093CE82CFED038BC3C2985F2CC88C2E14612C7A0A3AFC21985AB8A0B4B1B59285E1F8C51310F4B4C1F98569E94819415DA188EF46D95882B7C363E0B3B4403839836B5F6442506456A008D114BA1F0CC9D99C920FA9B000E261105D6FDBB62D74E8D0A13FA0E2DC89B4C3188158BF869AF0F0BA75EB3A9D2AA449669616EBC93F91F959AC6B9AC583213293DE6649DB76ECD85105F8B440603D7ABD31A2B917CDBE78CD858603471AC7059DF08E5E16E7D2C21D333317A1736B08EC313B632ABBA7CCE053F909B8B67D03CC1B6365C6974A8AAB38959B80818E5E9837C7416BCBFF44621C06027D305B985376F8183EC03292893281CCE7B2786DAC3AC7503F29F1E5861B6E58353232F2571CF74B332EC4A37D7D7D41BECDA89E8034E5D8B163576C07EF727E5CD20808E41F848840905B0011F8F163613D10B87FFFFE8A53B7E1B70EC3DE4FEC86E7132F41A6902D9B7A99D9B6263B380AAE720C5F14B67CF1CFD66C0717D259E0573E632A6F26793014CC39CA11A66CDEDF8E8F2100B5C305D9CD820A67F0C7164342C23D680982070F1EFC82191B0AEAB048F49FA4C15BB76ED5D5742D60A7D7A6EE2FEE0CD6A2D76A13EBE2B38BA19F98B975A231EC148D0E6F0410C8411F8DA792B49FDAC439C5CD27BEA9F7EAABFF81AF3EB01B3ED97C0B1C891F57E037BFAFAD6486B58E5512E3A1A48CE3F1BC1DACB0CEB59A912456942A64C00E1658EB5A550523E7E3F3F0E6F861F8EF1B87AA15A1C649A9BC6E8BEAB3802ACD210B303535A5E97BD5004EAF8F1AB82DA74F23F7D4F2F96A4C40E11059018A8B4993A9CE4F0345F0C73100CFE23C1425AD5EBDBA4245D3D8E7B69D77D65CF42BF545D0BD703FFB2A487D6FC26A44AFF94550BD9D33D1EFA9339FB456E663B5E6E08CE775BDFB349AF59E5F8D6B44AD1633F7F76A6BC0FBF239E89AD2DAB5DDF0C8813DBA5FDFACE473F1A58C51C209158DAC5B3A15AFF97D84B91EF30960D007904B3DC61577F5AED627E25C88F48E7197F37D60AD72663A0C36ABB1DC6E84CA6F0B3F249F9A6B7DD0A2E02DFA61083239AEB1C74E3F0CF12EE5471A97EB871E2B99F34AFDF0A2D611F34AB5F82AFE9824A2FA6188E77F01E3B99D6663AA070000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (163,1,'UPS_rackmountable_2D_(24)',0x89504E470D0A1A0A0000000D49484452000000180000000508060000005F3F2CBD0000000473424954080808087C086488000000097048597300000298000002980136D347DF0000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A0000015D4944415418575551BB4A0341143D333BB3CF48DC2406D122687C442420C14EB017C4CEC68FB0F18FC4DA4FB0B3B3106D44141102BBAE139F6459CD3E9C3B90C28133DC799C73CFBD97F5FBFDB85EAF378BA2E0BEEFC3755D789E674031DD71CE31994C60599639C7710C296DC4C988FD641934175555A22C4BA002727DF67D0FAF49A4847E3CD34227815361267091E60ED234D584CA10094208E4796EC46DDB36C9984E1A0E5AB85ABDC5287B8327B419E19BF87078809B8B6BE2DD71A5D42939DB1BD8D8DF16A8D56AC62963CC081348544A6962AA86628B5B98EDB6D0D958C7FC6617736B1D2CAE2C235C5AC0CED6AEE12749722EC2303C46FE09870159CA908FC7DAAD3449A66D215025D48269659C0B38DF161E2F1FF01C0D619712CD4603EFF8C253706F8CB4DBED23D6EBF5E22008CC0CA6BD27388EF36F16244ACEF55F44516466F0CB0AA6AC0F54A56EBC765CEA3FB4F8486F5901A55ED41FE9B2926530D0C8B60000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (164,1,'UPS_rackmountable_2D_(48)',0x89504E470D0A1A0A0000000D49484452000000300000000A0806000000F2E3DD4C0000000473424954080808087C0864880000000970485973000005310000053101B7ED28520000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000003A849444154384F7D555B6B135110FEF6926C2EBBB6499B26691A6DD55245BC5441F0C122BE08A278A93EE80FF0C59FE09B7FC427F1C5AA880FA2A828082A3E55412DDA4225249AA69B5B6B92DDEC3A73E2916D6C1D7232B373E6CC999933172597CB2D0D0F0F47755D8F8742A148381C06D120FA9FC57CC33036EC33CD67183CCF43B7DB15D875DD0DDF8CE5F27D5F2C96711C47D09BC9F177508794EB743A7CB656A9541ABA699AB1643239C28695CB65349B4D6194A669026F46B3E19227B1AAAA7F2F93068E8E8E828203DBB651AFD7B1BABA2AF6A7A78FE0C5CBB768B5D6E175C901FC077CFEF9A45F43D888415542D8BB77374AA5E21039D1D51B8DC65DF2E81A45510F1A2AA3CC984151944D171B2EB10476848179922F6564E43F7FF98A8B37CFE259F415AC908986D314725BD1A7DBC771E7C61C1455C7D4644EE8A160BFD30B85C2F5F1F1F1C4D4D4D495743A8D482482E91D0EA2868AAFD5AC4899858505B4DBED7F0C968B1DE715748C2F083AC9FB4127C7721954A34DD4F43564AC0C96AB457126154B61C9FE0E9F82908C27F063AD2CE47798133870681F3ECC7FE67080EC7EBFB8B8784168A457B8C7516105AAB78EC3BB22B8742207AFB52278C108068D0FF2A48141A7B692659DE9F408F4BC8191B1310C65324813E6354C34F3243F4569C8D8702C9C397F8EF2C967FB51ABD55E931E57E407A54A8215F3D35F3EA6A25C59C173AA874B472DDC9BEF0807645EF7D31284F37F222CF7831197C6F71C506059261C97D2A9497543B2DE1AEDB1B346086144A08655C4A31606B514545D85F9CB8466C47B3A7AFA84729D18FAC4C4C42C7FA48C9F989D99C49B8F1DACFF7271723A82A7EFE7E9C26DD80A822F14A425964B820894EFC1AED6B0DD4E6165F92792090BC5524114EC603A86825D80464627B271941A4568610D993D0398BBF500AAD60BCAC0C0C00CE98AEAD4461F66B3D9537C79A1E2E1EACD4FBD9CA6E2BDFD72198D964EDDA2F5D758D9CE82B4EC3EB248FB5F6AB3175BF8F20DC7133388B74C74420E624371EA481E1ACA3AB49026642ACD2ADC36B563D7C3377B11F7EF3FA26C31C45E3E9F3F4875F950A7A23D222F58A97B28561CEA3C3EB8F9689A4F0714A27B39DE6FB8A48386F73BD0FF023DA0D4E9BAB0DFFE407E759052C2C74E3F25F29B8F6EF33302F39F8594C8F9C7F34FC4BC913387755A96B55FA1CEB34473400C326246649FEF6FA5C16F96E91F787216B0D17216C8C2E60EC6C387313B4C17231A8D296250513AF9E205370E2DC9F73C0E525760B147FC52B1E893AE1ACD97FA6FA944493536B809A30000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (165,1,'UPS_rackmountable_2D_(64)',0x89504E470D0A1A0A0000000D49484452000000400000000D080600000019AF686C0000000473424954080808087C0864880000000970485973000006EC000006EC011E7538350000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000005A74944415448899557DB6B1C6514FFCDEE5CF6327BC95E923669926E8C498C4629A288D0F6C582855A2F20142D3EF82228F4A1BE28F828883714F12FF0415A44AAA8B42242F1A90F626B515B4D425B6A927673DBFBCECEEECE7ACE37FB4D27EB26D66F397CDF39F35DCEFD9C553299CC423A9D0E0783411024038180A6AA2ABA38784D340F67D0344DD0FCFB1824CD7F8687E338E8743A7DE77EB0DDDE76BBFD2F3AD376BAB3DF5D74C6A2B9BCB6B65657E3F1B83A343434ACEBBA102C9FCF637373530820410AD70BBDF47EFB1445118F4A904CC46231ECDEBD1BD96C168542C1037EBBD56A89B34F1D7D1AF3F3D751B7EAA8D76AD03A4047FC68C8FB18E9382EEE92091C77CD1F691D8A445D63109E4884B0BCBCAC911262C4CB0DB5D96CDA7E0643A1106D4AA0D70BFC96EE87FB3DC2FF9DE9FD2C22DF8946A3C24B78AF6118026705F0A8D52C7C79E62C46F60C22FD6802B74B796F2F5B5E8E9DF0BDF131FC74E602BDEB1AE3D8F387BD7DC44B47DDD8D83841D6FF787C7C7C9A89E1705830C2DEA0EB1A5D16A0B52184625AB55A1597F70ADBAB3089B302FAB9267B1C833FACF85DDBB6BDD0E1733C1E3AB80FDFCD9D43A36D0B3CAA46506DD53C4176C29F8D3E87D5CB055C5BBCD9F54647CCA552899C6DF353B552A99C23ADBF904C26CF533E88B16564381C98B6918AEB383F9FF494625916EAF5BA10426ADA3FCB355B51E2BD0A609C9920EFF3629BF7B3F00C77ACA9887DE6A409C5506174E83E9041021A414BDC135488A250B839010FEF06891863B1518C8E8DA2B05E40B154135FF8DDC5C5C5775657573F54791359F597C9C9C94B940CF7CB50303A053C32338C6C2A820B576F52F88C0B3AC729258F1DE3BE97E60F31099C03A4D28AC5E2963CC00CB2E0D3330F203590849E0E61209515E7A6CC1C162A37A03BA608F8297302F3E56BD0DB51F17D3A760FFE2A2E4275C214FE0EB2269D8B0DE2C9C38770FAF4D7422994E78A24C327BC56A5A61A8DC675BA603FAF2D4A3AAF3F93C6C52B4B78E9C87D78F54806EF7E55406220232C269314332F3DC12F30D3FCB874677F12E43BFC5E21BD4082AB3807996C1A5A52473C996287C0687C1CF950D90D0F82B1D8386E1B45EFFEB1D85EACE805213C83DA31904AC6313268BABCD01EF2E202ED6D6C5100B9FE9C6470DF9E22A64606B1B4E2E0E4FB3FE0E4F1393C3CBC8A3F2B03C27252E8BB857EA590730D859D487A4CE3C121C621C81EE02A0042199A1DC4FAC29A70DFC22079607E5528430928280F5650DA28D19A941D54602B4DB42B6400950DA422931920E5BA71AF74658D442269C2A3C447552880847A657676F67EE109955B78E3C549C4223654C5C2E30FC63139AC20773483973FF895981C124CF7AB12FD66067EBCD7DAAC000699FC782D1521AB001DC3D2D22D64F501946F95E1B4DAB8B47619954A198D9630207E5EBE8852A384A6425E4309FB629EBEB72A68111ED48288DD1B462A047CF3EDF7E23B8F5DBB7699547EDFA2E59B2A59E1ED5C2EF71A31A189326868F8E88B9B6E62210D535F84F74EAD1033018488C96AADED09E132A988B59CFB0DD90BF42AA1372F48BABC873D80936ECA482044F5DB69B6B1D92A239288C0B1E84CCB41DE5A47341842A369A34396FE7B6D1966280ADBB1851754DB352C5CB9823F7E9F27CB87C59D6C9499999913A40845A55A7C9C5C222999585EB7F1D9B5F296EECF9FDC24FE7FE7DE10304DD3CDDAF4BD5C2E735912099013227B002B2D3731E5E6A7850A0ECE3C46C26EB83D84A2A1665B24B0DBF418011D56B3E13543A120E1DD92F9DBCA55DCB8EE964006742B04BD1FA1A47F4CF52728D95A5242DC22341FDCAE1BBC1B90C9D2FF0E0FEA42BDF2C7A5B546DD1E95652F099AD1080E3D710067CFFE88C6198B129A23F8E74031D0C19D6A67238C8EA7008177BBC653F81CA3A3239898C889F22E77B8CAA09942608120DCEDEF93C4ACB65D8FDF9BDCFEAB23F4C376FDFADDF4F17EDCDFFBEF74C776FF35BA744E20252A87F57F00873E5D6DE9A8A9310000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (166,1,'UPS_rackmountable_2D_(96)',0x89504E470D0A1A0A0000000D4948445200000060000000140806000000722B38EF0000000473424954080808087C086488000000097048597300000A6100000A6101FCCC4A250000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000009F74944415458C3AD596B6C5C4715FEEEEEDDF7D35EEFAEEDAD1F71126325A469022890A6ED8F2640790854A90868115245257EF1908A084580C44F90783FA5FE6FA98410555B902A2A0434A16A1C9CA44A138726F53BB51DAFE37D7BBDF772CEDC3B7767AF77D756C8B58F66E6CCDCB933E77CE731B37A30185C4826930D4DD3E0F178C0255186C8946D85EF90CA9375AFD7DB711C97FC749A53B6F9314DD32925A9EDDDF6B9C7B9F9B2340CA3EBBCDDBEE71EC77375E9D7A87F83CA2AB7F3F9BC578FC7E3B57DFBF6EDD1755D0890CBDDD6D57637BECFE7DBD5382E5909BC896ED46834761CD38EA440DACDA72AE24EE66F37AF3AFFD6D696206AA725FFF2E5CB37F44E88999F9FC7952B571C84CA47D6FFDF52D6DBCD2D1FB926773B9148A0BFBF5FD0C0C0002A950A6EDFBEEDD0C6C68628ABD5AAF3EEC9932771FCF8033877FE12CFE408DD9A5829A41CE07E4CF90FA5E27A68FD2659B2C74B550FB860F2FA80893D83B830F59F6D7BD6D5CDA94AC866B3E8EBEB73D0C92EC28D5895A7F2D5368F610BE0B2D338F7F89DD0255D967479CCABD7EB02612C58AE73A92239140A616D7D1D2FBDFC2ACDC7736E41F7B04BD458F3B85B0FCFD430784D9A508204D6534F7EAE759CFD4DBD542ABD4D942357E45751B6BCBC8CAB57AFB620B71BAAEF669F8AFC7656C016C00061622B600B28140A2D16C0C41620DF670B181F3F68FBE9063EF1A947B070721173C6823377C41746B95E2170B77EB3133FEA8BA0542FB7F093BE380E9F3D803F3FF732EDA5A900B874CCA0A0759759019F9E9E9E7E766C6CECD1743A9D909B64D31E1A1A6A41AC9C2C1C0EB7F8752616026F58B58E4E08EFD496A4225EF5CD92E7B64689FACDCD4DC712A415C8770860844C4B50B9DC003CA33ACE55A75A847234712FAEAFCC6C437527FE5022877756DE6DE13DD4733FAAA54DF87D3AEA8D26DA4DA3A9245EDBD4D4D4A5F5F5F54FEA26DB23F02409F53D12EA3752A954B01DFA6AB51A1E3A000C67C378E14C49A0501D77EDDA350E2A2D998D8AF24ED46E8C3BFB7097B1580C041641994C4628BF582C0AD4B32530719DD72CDF3B71E204F68CBD4FD4FB07B2A824ABF092F2D8E74BDFEFD70396B09458C08FCFE36BEB6E02DEC036DE44743F268DB7901DC8501C5D164EC96DDD24FC0B94019DA4FAAA13036813DF9D999979841470D81D0F18513A654F4F7DE6282DD283D7CE5F44B11674D0CACFC8C8087A7B7B1D144B64BB11AEF2550B50C7B9D343B735F098402000BFDF2F2C91912ED1CF42E73A13AF5BBEC3CAB222A789682402BDC78F482CDEA28048248A08598AA370BB2F188E2044EFA83CAE7B09E53E5A839A726643690C0D8F42A3C87BCFF00AFE7DE65C8B5B9D9D9D2D1058BECCC277076183907596367158150213B9297CE7F38378ED8D7745BCFAFA63A338FDEC8210020B91C72C2E2E0A2B50F37A35EFEF768E70F3DBE5DF2A8F5D202B9BC0224A1636AF9191AF96320BE2F78E1D3B86C1DC88D0015B10396B44C231A7DF4BFE3A40F3BA1540AB44281C127C4701CC17E39B7C499958065BC60C6A5A10F71E3A84B3AFBF49639B31607575F526ADF7C2B62C881F42CC9972B9FC5516ACDC2C23EA60AE8EA313297CFFD7FFC44FBFF5B0E03F3861E0CDB992130B386372235C523B8B90073775ACAC4BC4A8B9BBDAE66FD2015264365CB205B0B09958195CF2BAD922E4BBBC3ED3B68164328162A28148A829EC94AF877D8DA500C52A7A7D49E2EB4DBE4D29E29B7E2F5951AC5501D13E52808978344C71B4DF7265F67E785FB4BE0D55E6BA2B35EA57D1CF1BA816D770FAE9C378E6E77FC3070F64F1D77F5D11FD5F383580D77F368D1A0981AD807DEEC2C2828362F789B75BD9EE74DCED24CB82A7D3BB88434C2C74028E40BD5A325FBEC3413815880815707D1DB7B0556ED8FB26ABF04651AE52CCD884C85E046829454DF97B51A394D5EF0F5A6BF358D41F1C2441D71141AB0524230918548643418C0EE704F239D55592204F47059020EFE7CDA9AEE72B1F8D239DD0F0D8C3C362E2D9A575FC7D72091FFF70065FFB6C023FFAD34D8C8C8E0A7FCCA62D91AD0AB65D5BCDE5DDCA606A277849FCAD08F9645E2B5BAB1CCF8FCC8C788CAA00CBAAAD4CDD341BF01634144B0567EFF3C105F487FA50C817AC63816605CDB9E022D2A11E726B1B96F06D252C8596D017EAA58CA74A6D8FE079BCF41225F3C978148BCBB7905FBFED0461C35E1FAD2BD9560134A86F7070F03E35EB4987F2F8D2C78E52D25AC183F725F1AB17AEE2F28D75FCEEF48704EF23076318FFC73456367A857BE0A02785A10A53A68EEEB63C44B985BF930258C89DAE16E4915F923A46B3D1BE59DB44B01E40F956D94A0FA9BF681631309846F1E646F34845FF05AD806CAE071B37371CF47BBC1E143D45A4FB7B51BC55A480AB0925B0028A742E181B1A40C0AFE3BFEF5C7714206D2097CB65C96D9E2237F9AAA3001A9026F4BE343C3C3CC26DF6A9F9FC1A7EF3CC1034B322CFE808FA1AC8F5F92960517033AC094F7F318B277E7C1D7A202194E67629775AEFE47E24C938A00A5BCD84643624852FAE1E6CC156296DEDF1F5A1B149BC06294E9089CD520D957C4528857932132D054AA49882237C4DB784BD19AAA1B45A82C76E6BD4B756CEA3371EC6EF7FF93C6EDC58B0DD5933069002C24B4B4BBF208B7C94D6F8B64E95F7933FFDC3FEFDFB0FC88C860746C37EBCF2C63AFE422427D13C21C49361FCF6C51547AB2CB04C2A86AA11167ED91D80DD017637FC4EA9A8EA823813926E484D67B98FDD0D07623508F338E9878BE45AC7121308C402B6022C81EB11526A2228DAAC0493BF49A53740873EBF174EC0E0390D2BA21B5BF6BA1AAC0013AB953C12D1A8788FE526E5A95E1E1D397264E2E2C58B2FD21E1ED769C17FDCBB77EFB8DCB43C30546A067EF2FCACD36E1728D5BABCC9DC69EC4EBC6EA9A86CB3307B7A7A1C62B4CBE0CB07322E99D48318A7AB816054D4A7A6DEC213A9C711CDC448D80D1BF1947444B710EB279E2115607D732B4E27E981B893FFCBA7ECAF21DC13127C21645AF6E4AD4B78A0FE01CCCCCED3584BA61EFB70A71EC80E1D3AB46F7272F23956804F9A88BA4946175F47B44B13DD87AA766966B771BB39A4B54B45659D95CD2897C4EE47BA1DF7414CBE631DC42C01CCCD2FE2BDA9799C1A3A8EE9C2755BD024DCBA89BDE16147F0E092FE3452CEFEF8A875D76F3AD7A6D0EA06F6F178916A5A4A393F3705FF75BE0251EEF884D560DBA99F5CA84F775F39C8CDF261864E6D3B5E25DC29C9439A5ABAC774BA8E6070B04039B76762A1F37A19FDF22A82C97D1571CFD018B928BE56F0E1E96FFFB079DD70B72E43EDE92E6953048C60F3CA22E0DF76A9D8F53A9A1FCE95C7C7C7B75D94B5BB3C53FB3A5DB0ED760EB5BFD3A59CBCE296874079F9A6125B80BC8C13F939C5A754AA0F3FF8DE3785E00D1BDD12EDCEFC0ECF0AC2569F5537D8F16F7BD7D5273D89DD67D8A7E7C5C585F60A20D404666666E6647E6E2331D3C9D7EFA6DEADAFDBCF96EEB870273F3BBA7F16BCDB3F3B763A20EE761E22E727C9B5B535DFFF007E756B84B84A2F280000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (167,1,'UPS_rackmountable_3D_(128)',0x89504E470D0A1A0A0000000D49484452000000800000002308060000005CB6028B0000000473424954080808087C086488000000097048597300000DD700000DD70142289B780000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00000EE94944415478DADD5A796C1CD519FF66BDBBDEC37BF85AAF6327760E8C63C855078A0841490011481329294A45D3D2D296863F5AE56869821048AD68ABA84520558846A205A9AD90284514A40221690857C86528769C40421C7C26B1BD87AFF5DEFDBE9979B36F666777C707899391DECE9BF7BD793BEFFB7EDFF77EEF10D2E9345CE96BDDBA7575C964F21ECCAEC57407A612BD7A46BE75A2FD99AE360DD489609D4378DF673299DEDEBF7F7F3BCC804BB8120058BD7AB5CDEBF5DE8EFF4D0627C3371AFD8E2B65E0AFA1CD1E0203D6DB67B158F6BFFEFAEB03D73400366FDEBC803C5C100432F82A4C8EE930CA35028814A616D4CD3E02456565E5477BF7EE8D5FD500D8BA75AB231A8DAE96BD9CD282AF5BC9D7102046301D2430241289B75F79E595335705001E7AE8A18538BEADC536EF4134DF8E45C55752C9339C134CA4FE791A2A50B7FB50AF075E78E185D08C00C0AE5DBB5CE3E3E36BC8E0B297D7CD64AF9BE944D260FD24CA8E12180814A150E8C8CB2FBF9CBC6C00D8BD7BF7A2542AC50C7E1B26CBD5EA75571320F2BC13C67480F8435151D1DB4F3FFDF4F96905001ADC832CF52E99C091D16BAE55AFBB46BEF50C9B5D98CDE6837BF6EC19CE0B009991ABAEDADADAD2E6E6E67B5D2ED737AD566B131ABEE8722B7926186EA67FAB813A89582CD63E3C3C7CACADADEDCDEEEEEEC12C00A07707AAABABD1C602B084A1C482E871269349C0B10678192556A695F1CFDA3C5DF9E47AF942324ABC329842F4F2F9E446EBE9D5CDF79C4B26CEFB52A99CFF3F99FF2B540FFF2F8DFA1A4ACB42BA2120D266F4F0087AFC2C343AF08994AD979F4859A13A93916BCB9932B98E2ACF46EE57D3BBDAB209BE4BC3BD877FB7BFBFBFD75C28B48C8D8D4157579761CF35E2C113891C85EA539A88B720E0C16EB743494909381C0E314F320C95108D46016735E25D9BF8F68A8B8B61D5AA55E0F3F9612C1251E94BCF2BB53A9DAA6C226D8482013879B24DD113BBB3CBAC0DA1DA866818C0A94656D8D50BC593296343835EB9D1F626A27832BADBED068FC723DE592826A047D0982C8D8E8E8A6060CF7C5B041ABA2EF50FC2EFF7FC896B3F453F12B3BADC4BBA8209F4FE78D72FB7E67DCFAC35BA76FC21852D59B2242BFCD29DCF6B43B3CC25943C720ADDFADA909F4F96AB0E1F0EB521521B267920F1EF32B06B139527120955BBECFD742AAD327E321111EF0C5497EB2A227D586CF84D661508A4BE0A39BD5F04403C1E3F8764A064F6ECD96EA6101E08C820E1C489132A6F9B487EAA72A3F97CCC982FA3D05F5656A64A2C028C8C8C889ECFF2FC9DBF9C4E276CDBB64DF5FF765B31DC71F73A08AD1C8433E97359DF50E79E0D5F0D75E534E264E545E8F91B82F7C26BCFBF0A172E86B2F4A307462AA7E886B6379971EC5B89E3E28F31CCFF163DBD8A112BA634EAECB265CBB23C8F67F5E4DDBCB7B37A7C9EBD9F2FE9BDC32249AE3AACC3BCB7EB11435646EFE1CC47F966CA533979399F5039AA67BE2DAD8E28ECCFBF6E2E24DC69782F7118E2A94496D2CB8572E88CF7E434F064E537952F8391F62854FA7D08806096A1F93CFBDE818181F1D3A74F7F81DC6693C80110047FC171EDABD6D6D67FA0B17DBCC75067CBCBCBB3583829C261894189CD04C171BB3854F040600642A609A74E9D324CE826F33C91A911914002354BF4DD8C04925750D2CB6BDBA8ABCBAC7A536995DF0FC335615DE31717592199CEBD5A3B15F942C7F5602BB682C56697E887C00340FA36FE42474FA13D5AB04FABB03F71850422D1D98F1DFB3532FE3DF5F5F5257A048A1F2B8786C2B0FB27F550E72F819FFEF194E2555A4E410CDA08899C8ADC2811642490BE89BC9A45042A27A2C7481F2384B948A0CD66D30E32505A5A0ADD25BD6041706875774BD54DF079E8ACE810F2245C55E766DF37E034CA735DF9E4E5B63228B25BA018BF29958CA13EAC1C2114C4FF62DE4F510D9DFC4BECD7DD647CD52C802EACF0E7DEDEDE6DC8071A9867E9018114B4B2C9024B1BCAC5B2EFDD510A2F1E088A20B0720AA0E447CF58B3664D5E02988FE019912B9BEA7948200F4C36ACF03310520ED52370B321414B06B54492BF6856D1EBBE04368B336360D9D88BAB1641CB501BD830E268870ECA2DF12F82E3E156B0C9D148A923CB6FAC6C828F075AC08CFA55CA655999CD8B7F6E86B9D72DC4BE58404826E083F73ECE4C91B918D0D1D111C688B61DDF1DC99A06CA7F9A42033E8363C4B3B43AA8353E29801425248660DB776E81CFCF0FC23B873BE067F72F87778E1F87201226F204FE9D73E7CEC1A14387A68D08162281858820857D1AD288FCD1B7D29D4040E42F5FD292C0EDDBB7333B8BEB022E5709082E13D84D0E9597D365B1A2873A1DBAC6A7BBD95A8CE0C8BCA7058185C93950B0BCCF5901416B04BAFBC350E4AE84A573FDF0E1FB1F67868074A6FF172F5EBC84C0FE8F6A16A055141AF8187678145F28D17A3E0120180CC2130FD483BDD80C3BFFB01FF63E71AF28FFD596EBE1E1A74E8973642787748C26B061C386BC6450AFBC1009D4BEA347FEB4049011383625A53B25E6F93CF9A367CAB3727EE9968F8ED2DEC92C9A6C81E0B6802DE5507103C9C056C9FB758C9F9601C2E47A203093DCE1504FD1E5BA9568F48154A7E210BECA0AE98F05696D40C80CF1F4DEFFB2D601741CE81C86F89876EC270550E85F36B708EEBCB91A9EF9FB11B8EFCE06A8F5D9B15202E654D961E3AD4E78F3D380E8114C49E17018DADBDBF3EE294CB68C9F8918594F67DECA08204D0929D1C5489F36B1D541BE3D6AA3A6A6869918BCA55EB03BEC9074A5C096702A466620B0607DBBC39173C58E0042F2B4161CB29C78851DBF57AF6F552515D09AEC10CB7CE5A550870E97660C40C8EC395014C3F07FCC0800AAB183662D791215311A80C77E78337CD9D90FFFDC770A9E7D74357C7AAA5B3684003FFA561DFCB7A5058DEE50660EE445041CADE1F291BC4229D78AA05112C86637E4FDC459B4B30046FC284FDFAE5D0AA6A8A01A56D0F81E8F1B068603104FC6D49BAD648418F288F1A4F22C7DAE9411BF1F30B2D1F82DC87213AB2791370280CDA11E2258F2D83D585FD229F5A76ECE2CC5EB795D910C399ABF2000503137A2773879A452082426BFE3DB7EF0794D70ACF522DC754B0DBC76F00B51FEEF77CF633498078B17B8E0D12DB5B0E3B91E51D1A4649FCF072B56AC2848EAD847EA85F77CEFF0EB127AA44FFBCCED782AED3086CC933F16F6D9333F9464140B72F4888205DB718CD8A13F12C8F2A89837066303630A319756E74006000EBB6E940F8E66004132939CC77BC28543D3685C929B58423DD0820EC4A0D4530216D45D203404838100073F415A9EC6CBE572517F97150400A2E411AFD7AB506BEA3C858F799551B8FFCE6AD44014D6ADF08BE993CF07E1C26004FAFA87E1B1076F10658BE7D961F50D0938DE75490C959D9D9D22099CCE95BFA910C14224905F11E4CBF8F6A88D1D3B762865814010CB1C503C6686F170840BE332AFF263140C8C690283A00022EECB0044900D2F01407A8E97E1FB83639CF13329341E065F05F6C5EB067391097A7A2E649029AE0308CADA053AD875D8B61BBF7B481700749013D97F3D198E790E79C65068007EF7C8426C2DAA52E893CFB7402C9E82979EBC4D343EBB766E9E051B1F3F0321445D6D6D2D6CDCB8D110E1D37AB5DE73AE55447E5730D78A208B00AC2D46065958670490793E3DF3D1815F4DE481D7D5D92D02C011B4436C04878B14C73F52F8FE581C22C131111069EE240EFB898DC46014238032A4992063647C8ED7C420820012D0C05A000446435081406E5A3007BACF7F05C78E9F50F603C4C8C801B7A1A1A1EAB3CF3EFB0D66B7670100FF683632F8BFD5D5D595F38716C81B7E70971BE6555B6830037E6D69F9420F0C8D26E06CD7202C6DF02A324731C02FEEF3C2536F5C12C7D2B367CFE6247346089FD13A460E72485336974200190964633E237DF44C7956AE5D085ABF7E7D66B10BF94332110797D9216E10A592F89F04BC2401310DC3911110D03FA2F198285792DC5E301882443006F1745234AAA92813E605CC87878620358ACE988EC932A99C01A0DE5103C9C8303CFFDC5E692D4030A9A38DAC9BCACA4AB3C7E3B91FA3FC5B08EAB7140060854654CC9B8D8D8D73D86A1E7F6AA5C26B85775BFA554B8C74DDBAB8426C7C682C09EF7D3AA80AC9568B09C7259332C5621B13468C9B8B24F29EA7070223277EA87FFCB8AE9D26B2B57FC60358E2DBD23E8B208844A1DC590A66BB4532AE0C0202C0C9E017505B59039DA11E09182A1000B4F69F8659A5D5A25C9CBBB35DC634452F013EE9390995C565D03DDC87ED625F8B309225250004C7C2602FB323E892E26E206F7CED66103DD352FFD1A347FF8ACEFE00ADFED289A0A7D023BE3B7FFE7C3F219B57188549F2903FBD81084608F39B3FCC207C08D66ED414DBA4C317CDCDCD05C37DA121C20849344202F536B098F129D4F3619F1F0EB46D688F56F65DE88539CDB5600BD9D406C6D491E88645FE46E8370524E3523BA9CC62CE39942FA959080345417E014199359C193D0F4BFD4D70213190218FF2F0D03F3E080EBB0DA218A5049D5D3F219BE4C3F2E5CBABDBDADA5E42DBBC6AC6822D34363036AC6D80A647348FFFBA56F0A67B8BB8100964DBC13C1164DBC13CF163DBC0B948E0CE9D3B5511F1C89113B073EDCFE1C5917F412411558C0F72A8B7BA2DE0483A44C32B53392E6F755BC19170487617B9429A0303866AA7056C5E1B28269509E427E17674321BF4F5F529D341FEC42FFB6C3E4292AD172F5E5C71F8F0E1F5661424F54E02B1449D45C418F2C65C642D1F99334AF8A66B2AA817B5D8A10FEDD48F7FE689A576138A547DE0E087F0F0D60761AD6D25B4864F4B464C67BCDC396E8306A10ED2262650F66AC4AC33668746F35CD960D2D0C04F259C511B5C6FAACF3AD31D098CC2FBED87E183F73FCA3E11A4710CED8110D441CA9CEB2410BB88007574744C69E1A6D02ADE7425BD5D41BD95403A0A469180DD49C6881F7FE713DF0E0D959B366D52E98A22E5868D5BC431FE725FDF87C3480EC994EA08408B73E244506378FED96CE4C06121431965EE85DA9AEA2C21DFB630BF97CFA680FCB130FE081BED6A92D7B3BD029E18332249D7FCF973E1F1C776A8F64A78F29CEB7BF2E93C5F3E974C3B742AC6C5BE044303BADEAF9A06E6333E91B8A6A6A6091F07E7CF004EC71171A36D4CE331EA82752EF4F5C84C7DE2EF4EE57F27FAAEDE30C081461846238FE88C6D16CCBB7211B35CCF85CA73DDF9E9DF54EE13F19CA9D6D5CA26E3F9F99E0B9D6F9C4474094A8F69B641E4FC3F51A43139B90A70170000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (168,1,'UPS_rackmountable_3D_(24)',0x89504E470D0A1A0A0000000D494844520000001800000007080600000012F78DB60000000473424954080808087C086488000000097048597300000298000002980136D347DF0000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000001BE4944415428537D52416BD440187D93C4241B379B2D069658695096B2085EBA081EC58317112FE255F667F853F61708DEEB413C089EEC51696985B2B0B624C5CEC684266B373B89DF17894805073EDECC64E6BDEFBD89A8EB1AED984C267651148F68FA948BBE6DF27E7BE63F7844B0AB94DA0D82E0E3743A2D5B4E1186E193E170F8C275DD1DDBB6B70DC330354D831002BAAE83E73CE872435855D51F6CEBCAFA92C6D7344DF7A3287A2DC6E371D2EBF5FACBE51224804EA7F34FB1505996B02C0B9EE7613E9FD3DE35440B89C22A50D58A5A158D00A9A14E043CEB3A16F2EC42771C470D0683C7B76FBAD80A3C18761F799EA375C1C51DB2000BB1A094921CAD61DFF370F0E018879B33C83B292E470A47B766781E3CC3F1C10C459EBD35B22C7BCFF61FDEADB1E1EA78B3B76EC828AA86909145F8CCDF912855C30F6F20DCDA86B9EAC3B11DF89D0D74F3083B8BFBD87BF70949927C307CDF7F2554069928243F34AC975D22341BD2D6058B30290BB6A29C867D6160FEE51B4ECE4E615626BE777B48EA14FBE6E7E61E25F3528C46A3981ED8A7CEB4ABD9F39B50840DB20326E7751CC7D049E4A7AA446EE4BF5DD18FD020D54AAEA095A8E5797CFE0B3D41F780B88AEA860000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (169,1,'UPS_rackmountable_3D_(48)',0x89504E470D0A1A0A0000000D49484452000000300000000D0806000000EFE6EDF40000000473424954080808087C0864880000000970485973000005310000053101B7ED28520000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000004314944415448C7A5555B6B635514FECE2D9733CDADCDA54913A5ED90A1204E5141B0A320A8D329DA976A4164C0E7799DA73EF50F884FFD01E28320820C88A82DE30D61141D111D6674AA75DA899D264D9AB44D32494E4E8E6BED7497D398CE14671F166BEDB5F75EE75B7B5DB6E2380E4E32E6E6E69296659D27719AE865A241D6F79EEF67CFAD7BC0FA1F8AA2ACD8B6BDDC6AB5BEA2513D092EE53807E6E7E73D8140608A8C4ED31E06FDE4C3C03C02F85ED922FA9EE6CBC497B3D9EC4F8B8B8B9D873AB0B0B030D6E974A60F40BF48AA81FF0BE611C0F7D39549BECACE10BEE5A5A5A5F54307D2E9F467A15048090683E708F8294DD3C0A4EBBA2029BBF5FD380F322E7E4A69704466CEF39352EFB95E7BED76BBD56C36AFEDEFEFDF57262626B6868787135EAF17A55209947F471C382991F3FF01914824108944502E97B1B3B3233803387B7612376EFE895AAD0AAB651DDE36C185D3612E14E87004584F4C3774181E2F542888C783286E6FA35028E4F55AAD769D7E38230C1CD07143AEB9B9245555F1A0C10E4AB22C1BDF7C7B0DAF5DBE801FF41FE1D53C68B65B629F57EF232BC0B3EDA7F0C93B5F405175BC7AE19CB0D36834FED637363666E9F63F1E1D1D9D4D2693F0F97C188D5AF07B5514AD243832ABABABBCB9AF132701CC74E422E88B4587508B36B0A915910D8D61AD9C13379E0D8E61A3D24DF133E1D387F245338BCCE33790BB9B67EBC8E7F3B772B9DCAC4A40EC6AB5FA910CBB6337F0D2A41F175F49A0DDD875E71DDD9C75C839D5DC24D724F15CE63173698389D32439320C35ED432293412C398238F1443A8D38CBC463A9140663710CC6E30847A318B08730FFD69B04DE1611A9542A5F530D6CEBEC1D1785746066D2C6C66601E54A19D34F78F0E55A44DCA0AC0B4E1559B886611CA91777D1B12CF7CB06C0C4B6782D120EA163006A8B6CD8060CC7074553E0F1981830C3507515A14014F14043D834D74C4452816E74B9CF5A9648099D0C2AE3E3E3AFB3E19096C7DBE7CFE0FAEF2514761A98991AC477BFFD2ABAA94C837EBC3755647AB9F5EC88AC134E95BDDD7DA4B6A328E4B6C819139BDB39B13610F3E09FCA5DA8868640DC877BD54D681E0DA9F121AC5CB94A36BA1D8F9AC3F364D7D04746463E8CC5626FF04F776B1D5C7AF7160C5D83AAA958F9E50E8A5543A408AFF782EF97EFEEE29680DD4E48E76EDFFE0BCF85A7E0AF9B681816BC012F6CAB836ABB2E52CC6EB6B1B35B46F37E5344637D7F1DEFBFF7017523AF389FC9649EA9D7EB5774BFDFFF820C6BAE64E3CE56DBD51E2944BA72C075114A0621B9042A5BA75C7317BADB59B7BE5AAB63EFE7121E2B86A8A4DB1873A2E8764D07A79D0457BA68A7A3A4670B9FDEFC5CCCA53DFE1745E16985DE8035124C02788AF43ECA53453AC0397E5CDF97F9CF5CCA4CEE7740EEA547477431E6BC468FA6639AA662DB078F13EFEF70A177CF76E72C1F5C8E23E7BCC7A10E74CF215BBBF4AEECFD0BBEA900C29AE831B60000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (170,1,'UPS_rackmountable_3D_(64)',0x89504E470D0A1A0A0000000D4948445200000040000000120806000000EB2FD8220000000473424954080808087C0864880000000970485973000006EC000006EC011E7538350000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A0000069E4944415458C3BD57E96B545714FFBD65E665F62593317B422C2111444B356A172DC52A36A12D2D0D6D41FAD582D8FFA2053FB51F03FD96624BA8DF248DB5AD9422D2A0A02D88C625518BC9984C3249667B9999F77ACE9DDCF165986C767970B8F79EBB9DE577CEB94FB16D1BCFFBF5F7F7EF5514A59FBA6FD13907A9559DF3EB9D5DCDDF488675D63E25FA91EE1E5B5959B978F9F2E5B9E7D541D98E01060707FDBAAE1F65A569DF0962B56C26F07614DECADE1A7C8BE83A8DC7887E20F9C64746464AFF9A014E9F3EDD6D59167B983D7D98C8FD3F2AB7EDB5E49C05E25DA2EE58A150181B1E1E9EDE9601CE9C3963F87CBE2328C39A957E613321FE0B43FCD3F071F06F72A83065B3D92B4343438535060887C35FB95C2EC5435F2C161BA08571953E6AE124628976D5CA5BE2715F0A230572B6EBF1ABE7D79BDBEC6C278F50CCFD12E58C85A5A5A52B848E4744B6D2D5D535D5DADADAE176BBC12437905104514C55FACE31AFE57EF558AE91633646A9541202702BFBD2589AA68104010906D33445BF582C8A35D16894D6A9E5BD560976D519E5D65ECBA375D69A79676B617131855C2E27788F1F3F7EA83B21C3944C2641161282314921B7D277F2E498159567AF7A41B41466686868402412C1F2F23209B628EEE5960DC0FB0EBD7C18C3DF9C07038A9567D728D8FAF72C38940A2A8FBF79080F1EDCAFCCE8994CE63E09D4218DC09E205E4578A994ECAF47EBCD3B0DE0A4502804C330E0F57AC57DAC7C2A95C2FCFCBC4001EF65A59334DEDFB717E6711333998410DAD00D9845B3A2C446E3372247307A7614E97401A80AD77C3E9FD21389C400F1467A7B7B0718B26D6D6DA0B01010F61B25D4191A8A6A183244262626B0B0B0B02D14547B5F2220100880528F303A4352E60D8980B2BB6DB41E68C7779EF380A7ACA04F27A315B31585371AB707DBB0A3A909CB771F4255D44A884F4E4EDE24B47FA8132347977D1C8FC7EF353737C7A58758A0C1570C84FC6E0CFD648AD8663E7B8C8563E5D860B295FD5A63A9389F29FBECFD603088BABA3AA1B08023EDE13123A00251DA5FD7E445201C167B59B9A255845DD418B2F06A1E31368AB6408C57A731DDA3D91A2C9A6F0E35A1AB77170CB781893B65E85335B0A6A7A73FA3D0BBADAE427F9998779C106DF153B2C89B68DDE1C7CEF0DC9ACC5AABE454CFD75A2FE3D0D997A1535DBECAF30A62F17AB8226E846331442867BCD4FE12BCD190E88789F675EE8787C734CFE3FD9D7DF04402A2CFBC8011C68AE6455FDF3EC2922DF2C2DCDC5C8A94FF5518585E4C5EC94AA1CDDC123EF9A809E7466F23E8B5F1DEE128CE7EFF04AE860E11A3B3B3B315783BA15F4D922F159361C0C4DE6F6C6C147D8E7D491C5E8C08DED7B5B31BE150189A8F2A905A274222680429143DE538561544FDF5082A11D1E7B31AFC7184B558F92E2277D14038E8474B737D790F998010B65241D8AAB5F5EEEEEE1E09FD81BD45F4B4BB70F244072EFC368553EFF7E0ED17D3B87837572939BC562ACA97D532802C77B52A01C3DC1912CE32290DC060C866D2F0150CCC4F26455A4FC6E731FF34297CC9E7261B9348CED1AF004584AAA9588C2F2193CA4221CD545D43BC23028D8C934E67567300380147686F27DD3D250C40A5E8F3FAFAFA762164EE094EBDD3035DCD22319BC4EE2E0F223E13EFBE1AC2E8F84D5ADB2292A133D139E3BDD6581A4312DFC3B1CE95C0EFF70B45F84CCE2F8C0C99103908128959D4138C73C92C4A050BD79237283473C89A39F23070F5AF719836BD2340954357313E731D05B584824263970663B70197B98C73DF5E209468C200547E0D7AF47DC1B94F27E5BFEEECEC3C49428BA0B4542F3EFD9232A6CAC2ABA2BDF4E79C5024AF4485F02C2C27C55A49AF3A01F23A89006722E424C8C4677115E0968D2211202D60AE14107507E18DF960152D9AB310202329794D8CF35681125F1DAC154B6C5824657D86971E44965076D95CC2A3A9493C25D4783C75954AB367CF9E0F6EDDBA55D4C9E2474910B784E862BA842B89CC1A0F3EA3DC3AFC679E66E565EB2C8B32BCE43D5CFEF8E3397E99A5D369F120E296C3838DD6D62E9E3098FD630647761DC093CC0C40E07013BEF30553BC026D224331902FE545C964A5E53B803D7A6DF226266EDF134F00E908FEC8E01A39FF35BD3A8BF373940571263259F6367A086D44BCD799006512E439F63CDF2713A033091EF47A70ECD8EB18FFFD06ECAB161AE015A58F5508D87AF9AD670B1635FAAA7292A78B3CF10B7E464F6F8F58E47273292FADAD42F4333441E45E55304A9075573F666AC5B4E43BBD5E1D124E9EFC2171E601672BDFEBB59ECD1BEDDB8CE73CD7717E9EFA29AA662B7F03FA37F6EF115CEA590000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (171,1,'UPS_rackmountable_3D_(96)',0x89504E470D0A1A0A0000000D49484452000000600000001A08060000004821599F0000000473424954080808087C086488000000097048597300000A6100000A6101FCCC4A250000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00000AC94944415468DEE5596B6C1C57153EB3B3EF59CFAE9FBB7642E2786D27214D1A85BA85F44102B1522950408814142144058A445441F9417FA02045A8A0F0871610215204123F9AE60750F81114BBA58196089A384A681CE71D278E1FB163C7DEB777ED19CEB933777C773CEBDD38B6CA63E4A37BEF997B67EFFDCEF31E4BBAAEC3723EBB76EDDA88BFB113E9591C3E8DE4B5CFA9640F0BCD59E2F51F20754992D49D4EA7FF76EAD4A9EC72E2232DB500F6ECD9539DCFE777988013F02BFE83C07DD06F4FE39C77B1EDD634ADEBF8F1E3E7F52506ECA10570E0C001D78D1B371E3301277A1C49FEB0C15D26E18CA265BC85EFBA5C2E57F7D1A347873E1401ECDBB72F466E657676F659DC5027B26AFF9BC05D42E1F492759040FC7EFF5F0F1F3E9C591601ECDDBBD7A3AAEA9368864CCB71CD265AFBBF08EE43ACCF23FD9D8441F1E3D0A143672B71572505B07FFFFE3504367E8CFCF8A7B11FFA3F067731EBEF99EEAADBED76771D3C78F08EA3007C3EDF2F6459F6E364C658B972E5465CB001496113A439452FD72FC7AB74AEFD80E278A177CB3D7E98B9333333E9542A35303939D983EF72C4438F9293EAEBEB6FB6B5B53523E04084C2B05ADEB7F3459E38769A576A9DB806039AC52721E0C69694080C3B0FE3D743ADAF84E837165ADBD7D7D7EFC603EB74684E0406B5C96412EEDDBBC740211EE73B8DF93A22716C7F5709D17CBE696A9D08AD1642A110234551A05028402E97834C26C3DA6C36CB88F87C4D6B6B2B3437B7403A930559D24172919AE26F98DA4A0AABE318AC31E7E9B679BAC9A33F71AC1B7334C69D37CE6452307867C0EE0D74B7DD6444D311C12E4795CE7512905DA8E504205A1F11699A6845DCC2C435F4DD89C929F8D9CF7F6D9D933CDE725D442526612191F9C69799004465A7C78D1A334B87A54D8B4220ED4924121628E5DA0799536E6C071C6CDA170804201289905F656BA6A7A7016FADCC0288D0D7B296F87C4D2C160335CC63CC2CACFF681B043FE18781E45C6C7421685CABC5A772BECE805F75A709CE9CBA68258A5CA9EC0FE14E02F8DCA54B978EAD5BB7EE11510898D742434343917673803C1E4F115FD460AE814EE372F3782B6ABF539FB49BF64744EE880441EE880027C29B387345C4E76BABABABADB305705DFC63EBE178DB71C86A390B90F6481CAE4EDE305C88F0B485E3706DAA32FE939127A0E604FE96F62F74739EB9A06C03FFF6EDDBC3A828AFB971C31711D8672E5CB8F0E6A64D9B9EE1A61B0C06A1AAAACA0A94F43485A7211272C38D7185F95E31C0F6F6F6020AB228A3592CD95DA2DD3D12D87575758C3089606053CC22CDA79613B7007AB66EDD8A31A08DF5E3AD6B20DD982A029F9E6A5F641EC8063F5C31FFE36A075C2C5C85A61551181E1A2720E66172E5CA955B185F5FC6FD1E739B07BB8F2F3EDBDFDF7F76FDFAF5713B00E463F3B9347CE78556A809FBE15BAF5E8682D75BE4B65A5A5AA0A9A9C91288E893ED7D51704EEFC4DF15359F670FE21A6A691EB94C4EA4F9D48A990E5E24616696854554AC10C8111982A860E68F31187DFE00F851B1400CAAD87AF0AC44450A8124C62CFE342A519888A6A0D08EC15EF6C0C0C088210073CEF8F878617474F4157499C7580C108270221C0E9FC14DC74510E8210D7BAEC30F053CD83F3F1884AFED88C091B792E01584401670EEDC39C7BCFE41DB72B936EE13A2D12834363632DF4EFBA37835353565118D2913E24F676727AC5DF708C3A10A852187BD6849AAA1BFDC35294108E5D5628BA3984319D774B838E331F94A2E6C8D891A4351E8F30E81148EC1A776AC81DFFEE67523D89B96824A3E8CF1E908DF97DB765938899B7E9E80E59B207F5A254FC1D79F7B0A5EFCF10978F57B9DE0F3CAD075FA2C8CE714CB3D6DD8B001E2F1F8BC0CC5AEF1A5C8E92E60CFA1C58C46FCA668015CFBA925122DA030639C331256215B0DA004540B68450E8214F08032AB16811F24BE5F0605D78B561194038C1F52D5B904017FA72154079A2EA1727AA0311665C0F38C88F68D7B9B104B146E5B54CEF183D243074B26A6E047DF8EC3A137FE015FD8DE8C5A950452AC9776AF867DAFF563108C33102E5FBECCACC0EECB171A2F34C7292D1663005900F97F6AB90590DF175BE2F375DBB66D83352DEDCC0555630695F64D028ADCC8535C12D4FA6A21A717C0EBF1B3E485ED05FF1AFD51D02404DA152ECAC49ABC0D40B706058A055057558BAE4E83FAEA08C45B569BE799B332C47746C4BC480098DD6CA7E0CB358FB47FE7660936B604E1E4FB05387B7110DEEDB905EF9C1984AE5F7E069E7FCA05BFEF1967AEA0B9B9990545AEC9F6CCC6291B72E2F3BEDD0278DAA69BBE97AC943220CAC8588CC2BDDA896741B48E8465780153D0491D52A84C56E1C627B3A09A484ED10C4B08630137F25548A613C63A14968494F027D97C54591C632627633C903161F1B921A4F86164EC3E4B02D8EF81C4F1A7FDAA8E02C08FFB509B1EE75A4866ECCA8FC277BFB2194F9E811777C7E18F2707E0EDD3C3F0879F7C12829E3CECDE5E0F27DEBF8439B80A23232370FDFA75C77B81BD5FC97BA70C88F749496A6A6A586A492DBF07501624B6E23DA0A3A303E3C5470CB75AC84360DA0BE9B1B4E56A527A0AEA6211488E248B6A54492909B5B18D90184B30E039A55D29A88DE2FC8924022F1902407E665D169A1AEA59C0EFEFBF6D5A9264C580DADADA182ACFA3A820E72D0110F868D66FAC5AB5AA9DBB1E0A643FDD1B05BF9C4786B1A14B37EF415500A0A60A199A11E07EF0D506D8F7AB7EF4853580EBE7DD70C59B6E257C7E2FB05FC6C41840DA4F4220E2A5089E3693DB21E2F701BE8E02B76EBA030ACEAA1C8642B6001ABA0B1D4943C06694026450289AC603AD313FE7C1347728C1809664D276A3CDFB50F063299387E476C178F63EB4AC6C80F7DEEE823F9DEB352DCEB892D119315B5431053D62569927A816D4801B7FB3ADADED093469170F723EB70E03A33978BD7BD0D04AFCC0EA1561F6B1DF9D1C35F25BFA2882555BE581041E98DF9CC5DB6DA97A4FA95A12E78B7EDF5E96A00B182909CD2377474013A8FC26CCFB622D88E66096C90262369385556A0B78156F91005C18543D8A07C73A1302F199D1B9CCE08B7C49C3D47896AC4083993C06FADC4C9150C632F721E4F3C3ADFE01484CA5E6C5343ADF962D5B1EC38CF11DBCD17FDE8D1AF497D6D6D60D5EAFB7C8F40A9A0CDF3F3258040EFF801D5CBBEF16C1E4633BD8BC15DF8BADD3658C1381CFC9A9C249BE9FFAE24D98C711EA5FB8D0075FAAFF2228F715562C634220AD5725A88AA946014DE38115F91117A833AA5584B3B2C6C02CF8F05E64B84D23989F1FBF085BF547617870D8DABFA9AA737E1F9566F3E6CD9B7A7A7AFEEC46AD0FF25C5EF4B324104ADD4A15DC4AF59DDED9DDCD42453CB1ECE1A4FD34A6C0CB5D10116937F168CF5427221EB920D102C855713F7CEDFA4D98BE96849D8D4FC3D5CC2D74A726D088517B7D8B212CC241E36EC8056B637196E598854EA3B8807AB216E733CC4C7C4F8F9E07CFE53CE4F2055C67FE6B5C022B7DE644E7C47D06DD4EA91E11F9D1BB77EF960CA04BC52F35D79E8A8A7D0293822F0634D6920028E852FA29B6621ACA52D79862552A5FF8E64B65FFBBB5D8E7B4EBBD39F0AD0BA6F3EFB8EDC0F3870E49A9A553CAE8943A2E665EB9F94E6508EAD33BAEF164CEE46A4808FC32C6FBFC22466B48587575F5F0CA0F5F3603AC66D5FB353313D274CDAADF5B2E48ECEB0FC6D3F86FE01E8686EE3897ADF11083E86A66B95998126B58A8CC5C2E8DB4FB72F11D7749957CBB5449BA547FA177620C702AF02D54FE5EEC6F3A7D874A3E54DDA1FEC4C484E7DF963F5A84A50413980000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (172,1,'Video_terminal_(128)',0x89504E470D0A1A0A0000000D494844520000007B0000008008060000002B9216A50000000473424954080808087C086488000000097048597300000DD700000DD70142289B780000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00003F024944415478DAED7D09801C6595FFABAABECFB9EFC99D40420839091010420847802020417451703D58FEAEAEA2ECEABAEBDFF5BF2BEAEA1EAEC7EAAEB82820203701428418CE104820E49ACC2493B9A7E7E8FBAEEEAAFABFF7D557DDD53D332191633B380595EAE9AEAEAEFA7EEF7EEF7B9FA0691A54EA76DB6DB739ADBEA61F5A6DCE0D8AA2546765D92A67B3798B288E5A04ED9EC19E9EFFB8E79E5F8CC0F4765C9B508960AF5CB9D175E93517DE5B5D5D7F792E9793D2E934D09EC9640AC7BCA240736363AAAEDA7757F7918E1FFFD74FFF6DDF349CC7DEC44ABBA10D1B36F816AF9CFF2062B9114195106CA03D9FCF83FE5A3FA69229D87FE080ABABA7FF96B3CE5DF7CC97BEFAF5B3A7E13C89C03EEFBCF3AA6B5BE73F545BDF74A9284AA0AA0A586D5620E963009DCF971E3B0E76C0BEFD079A579E7DC16FBFFCD7DF58390DE9490276EB9CC577D5D435ADB3582CA0EF56B0596DD0D2D20456AB95039C83742E05876D7B60CFCC6DD0EF3F08CF6E7B16EC0ED78C33D7ACBDEF962FDE3E7F1AD60A07FBB28D9BCEADAA6DD850045ADFAD560BD8ED4E587CFA62F0F97C8C9B0FDBDF84CE8FEC82D0178761F0E31D10A83D02E3C171686E6E9DB364C9D2CF4EC35AE160FB6B6AFFDC6AB58B922421C81298B99B0077D81D28E63F048B172F026BD60190C42F8DE39E02B0E75C306BE64CB0D96CD03A63D6756BD7AE754C433B71B354C24DAC5DBBA16DCE69675C4340EBBB058AA04B260EB7C29A356B60F69CD970DFB6DFC0DE8776832F59079FBCFC338CE323912878BDFE99575DF7C98FE2657F350D6F0582EDADA95E6B77387D92244211701DF452916E65FB82F90BE0AB33FE169289247476EC477D6D87A3DD5D50DFD8024E87033C7EFFBA69B02B146C11D976FEBC3930323A0EA228B27D2AD0096C32D206FBFB60D78E1760A8FF08F87D5E769D6C4E83956BD681009A380D6D85EAEC73579F3D7FFD85E7239036D0B9DBBC4F04BDFB48173CF9D06F40C9C661F5D997C24CD4D7555555E0F73A61EFEBCF432C1CB64C435BA16027D299ECD1BE01E81F0A1438DBBC1BA093FE1E1B1B812D8FFE16169EB61AD29EDB60D7C0CDD031B69E713B6D0E9B0506077AEAA7A1AD5031BEEB8D1DDB330A6875D55582208840FB64A0D3BE7DEB6668A8AF859EE0E93077EE2C68AE05D8FA6A33A45369167C218B5C1415DB34B415CAD98F3F70EF1F82A3433B1C0E1B022D94ED45A01389180CF41C86EAEA6A48A1FB158A01BC7A400339FC1C035A5555B62B72F6E969682B94B3694BA7E2F7E2E16C036400036C28BC1EEAEF0597CB09F1781C3CEA6638DA350056B51BDCEA3E703AABD1F58A9001A7EDDEBDEBBFA6A1ADE0A0CA485FD75DE9646288412B4009C8FA6B809C9C659C2BCB32D88420D44A5BA0CA7E043C1E0F04834170BBDDA4DBF7EDDCB933300D6D0583BD75EBD6E848A0FFE66C361D2ABEAB813903DBDC36B3E07A11E0440824BE93C92478BD5E102529AB28CA85D3B05638D8B4FDE6BF7FFCCC707FD72733994CAC08B2C600A5BDAEBE11AAEA9A99FB65CEC333B7CC62495A2D96B93FFBD9CFC6A7619D7C137EF8E33BDD5D870E5C75B8F3E0B538B0015194BAF0FD03D94CA6BBB3635FEFE0E060EEFDBEA9CF7FF91B57B7B4CFF86E6BDB8CF90E8713F531ED0E768CC563F0D2B667201E1E05399B054192544D13B6FFE74F7F741112803A0DE931C0FEC7EFFFC78BCF6FDBBA46102D9C83548A4031A529E84254418B388F4719FF4CE139691C5DE43C25A6E4F3E1BCA28CE07987F379657F707CAC23160D8F208124DEE98DAD5DBBD6B274D5799F689D31F3E659B3E79FE3F5F94487C3C14477281882C3470E1F1A1DEABBAFEBC8BE3B1FBEF7DE9E69288F03ECCF7DFEB67C6F4F8F44AE4DF15D661A15C427FD4DF86BEC1F43AC02230CF61A8D26DA4124638ADE00FC4320E290F19B198D72549A16573535A62A4820B97C30AFE48FA2F4D837363A7C00CF09E21E462251CA6FF09C73CE719EBEF2FC835EBF7FA6A2E4955060785B4D6DF50FFFF59FFF71CB34279FA0EB85064F166175E9C10C1D686E0773E348339B4B3AE85C02682C044DFEAD4E042A7B4F1590F3254DD59CF8B71389C06FF8C0454BC10256C90A36BB137CD5358094A609A2A05CB87E437EDE298B24D4BFAA45B2D017728B979F9DB1488265CEDCF9B0E7F51D23477B0EBFB16BF7B8B7BDBD7D666B6B6B0009243D0DE37172F697FFFA9B631D07F6D549162B7B0339081A672F0049CD412E9382643C0AA97802923C42C54067470E3237A0547A4FE580ABC67BFA6B555340557402A1F70CFA110C9F8A6F24A66FFADC17588C9C529A648891F1451B118B5E8796479F3C0963A3A3108B86B44307F72AE1B1D1A4266819BC2EAA193591574882286174D582283D46D299D4E16C36DB9DCDA47BB914892091687F729C6DB3DB531AE96712C1689C57F9ABE048CD329011138745048F5D00AFA842BDA880A02878061E5554E14A1E443C0A4814A0E440C4BF851CFAC1F92C28D93424C2418884421089C440CEC980CCCB443D814DC0130118C463806E4763CC88851B192E021BC537EC796317B4B5CF048FD7CFCE6B686A86AA9A5AA1FB48A745CE2B7EFCBABFA082504A4916B2D06DE0747BA11AB8AF2E0A288B04155FE72FB9EC4A5231698DEC1015094455A2E8B64572B23C9EC9A4C79048024A3ED793C9668EE473392A570E2281C827B918B72545A6A34536E8723609760426A308B8A35586423E826257124D19298B00163C8A121EC56286CA8A521D7D5D3C8A506F01684702B1318240E2C05D43CED4D047D6904074A290F19801359D0185A448240CAFBCB80D69070908AF61B33920276760A0BF178DB271686A6A819973E62385DAC0EBF3B372A5742A55B02B885C999A61AF3586BCC66D0D464E44A7A049F898282E043B09329D408C67B031D5E24682123811321A11055229F9CB2EBF2A8BBF9541699542A24D28AA12CBC9B9F164323E381A18FEFEC0407F7765836DB3250C8E20AF3B95CA804D4330349B2E6E556E9973318D06181B0412E11A1F0C7A0FE87DFC0FE900F2F83AA58890052B028F446293902804D2CD38A03A81D8887B459D68D867FC2890378012444369A022D0144039834A8965198920CB8E79390DA94804C2A13198BF6C39A096876C220EE1F111088E8C3069C26C048183CC4167F7C9D4906E711A513A8340D87B1A3F9F9DA293094A22324E6C78BE8D118811AF9748FA38C085D2A3B1B1F1C2DB6FBF7DF1F7BEF7BD5CC5826DB7DBE3F4500420DE3EC8721EDC82AAEB6060B30880E3CC06254FE792FE141040F6BE068AAA8B4995F96934C8921EF2C42F29EC039D60F40B093A17922EA78FF098E7E7D03D482845541C4C0D0752B339D9E08B480064AE49FC48BA1FAD3FA8D6F4EF2B2A7B139AF148AA857615558B4225C7A802D47C8E118F4204C48E19145919464C2A932821080D0F41281C864422A94F46304D4890E55CC150358CD692B9156CFC60E65B6FEE9E8D607756B2188F9B5D2E46CB79E42CD4BB8E5C0447D8020AED8215071F091B8DA73CEEC4C12A636B8901A2148843E74E45150A1241E01241D14F60EFE519F1E80420E12ED235D8792AE31A025F435B817D97C8502483908E2A3F6ACCF8A32389248511A0082A4A12058860ECF81A78264C372099AD005AC158CC292A24324814AD79B02E54A00189A2118984A91C942E4819A87A640ACAF32311081AAAA8EA8848D2F1088C0DF6C1A1FDFBD12EC9D9D1C168C09BA95CB0714F917156C45B605CA16573F0E1D5F3C15FE567949DC3074E219567F0FD742609D91C710E5AD9795D44AADC4AD7B8B6245147034BD118454482A02242241291F2CD646DDBEDA81FF98EEF09687D330EE104807A123994C0234220A0D92501540378A44391884CA43B6652897E5D64AEB7C85990BF064E18121221525902EF3B9ECE43129F8B1183A27FAEA2EA51552B128685FFAD16D2A62A12A98A624523A967C5D72EBCD72A151CB335B870F636D8F2D0EFE8B9DB2A5A67835E940B9AB1B3B14610050B64D1A0A28C9291792AA41FF9DF22B7A2754346B7E8459EB1D23FD3FD6FDAC96D2291AAF0693CE96C1689280E99441019070987DC3472AC05D2F5081E271645D1094861EA42D3D509120E219F8AC750DCA35DE0708188869584BB88469D2E199865C50047CC20490067F390921536D384C094445D75A9F49F2070235557312403F4A71275BB848885938FA06B7276460A89C7E274EB63879AA4E2C1160D4EE03B59CF8AC5050934D68A01159373AE714BD730EC34EEF270CEA66B28483039148BD974928149D3785C38282E9F57AF2523FF99139054486B0A2547765F825688DE693CA09345238D7CFFA1C30760467B0B1A956948E2EF2412A3784C2381284C4467F0778368AC25D1DA97F34840F89E0D5514BA6A487828F68990905814B4C215C9CE0C4AC18A44830403561708683358D0A0244220ADA414C057F5A20A6EA7581C6E6368BC950E764AC7DA001BFF470ED45047C793C98241A2A7138BBADD2001A1E8E4E8229C055214482562D07FB41BDE7CE579088D8C821325C4E9AB56C3BC5317416D7D232B42200E643CC48CC3891B13CBC69585E2D1614717C95A0D0974BFE6CE990B13E27CDC86D0833E50625815FFD6033F2974DD68A734294D168CC6E31047232D120D432CDEC70C5699197A2A1E9148289F4E04838444C412802A10FD4EE31EDC15CFD94C4F33578A8744112C15293E994E140752033007BC0CE035281ADAFAFB2A8B70BDFCFB67E0E15FFE0439BB18CD7CF1A94761F99AB5B0E9B3B7424B7B3B50464BE4396995F18C56222AB8FA2E109A2814E891E974D514B717387128F43913C35AC97D995F83C987A68207DAEBEBEA4BC3C260E403A0E48B5AE93FF0B9AF7D07A48699C687150DB6C874B6A07324895E95B92F3906405ED54AC4370F8E16065C33297BE333B28AC3E341D87CD7CFA1DA69873A971D7C360BF3A19D160BBCF9F276B8FBDFBF0731F49355F2A78DEF6AA6DDF45B2AFF3DDD04100AC10E104AF40A7701B5D2000B9412A8615B98DE80423A4028C903991242A5615D018A55342CC46B95D0E0B41BE3E3AA78314E8F4C204902E708326028A799534133236DD6CF06C10BC50F99058BBAF1AD1D2FC0F2D96D509D08D37094FC600E7F6777F761E83AB81FFCD5D5205A2C851F30B89B2C72CD887B09459B5A107940C4A44E74915DE434E316751B42287238986D0BA1C8BF9CE54DF1154E54DCAF3624079740263A611FDA6C127A1976E3EDCAE76C3D22A614DC0C8D59ABC08C9C02D799049CC6931F05C6D60CE085822A48E7F293FE20855217D77B61D70B7F40AB5C29E568D30E3C78A7998D33100AF5690407256754AD18252B66EC4A53B5A51CA9FF419D1BB299345339E41D14E2F4659C6BFE9E21FACD6CEEB0A05B6929542E9F049C4DFA4F51B84843EB98A24E38B43975A2AE3228BA40F1E5CA1CAF555DDF047B6209A8B7AA4C274B65D92D01F5F8787F8F4E58059151FC1DC6C95A31C853FC3DFDB7E83D19BF9B456229D5D94241D2085A29871735317E37938591D111D8F3DA2BD0DDD9012BCFBB106A3D0E98B3F00C8A329974BC50941886272970AEE7D7B75B2D2C6EC055FB4960A0A17C247745777928722433AECAE6D5C924B87ED44C62CF7416B94B754D6D6CF6C638829A44CBB5DDE304BB24C2683A0BE14C0E75B70459216AE2E242654C61800D2ED64CD63318FE7691EAC02CBB05B330174A01374433A9AB2307F7C04FBF783D0889317676D7FDDF07C95B0317DDF89770F18D5F4037D15622AA35D3EF08E6D83A818D2EA520594F26310E4C8C13E0B44B5A9E3D0AB91B66716DC448F40441A9EF6D14355020A3AEA50507CCC1406D4023CDC22374B50E1BDB49F43AEC76D4C162D118D3F4808966E2EE42450C1FEE2CB93D240DB4A27C15CA64B7505A6E536A8091BACAE7E1D11FDC0E62720C7C88911F7145B50B5A22045B7FF66DE87AE315282980E1AA402895DE0523D18A7EB8C873EE952EC609EC94C839DBD8815BC97973F0442BBA5C6539001E262DA24E29C8EAFA06F0DBADCC1237C4381DEB9C3698E975A161632D05BB106EE54906B30EC7B1CFA87A240CCAAC76233053446122E0A68F20158F42B0E7102CAA02B8A41DE0F27397404D532BBF7515868E76B2FB2831F885A2E55EFA3B68A0A1181738D8DAC9C0D9D4AC4641914D4093E1222AB2AE17F3C5812FF7ADCB8F9AC9BAA54A93D3CF3E978528278BC091A676B83D3848E204774B2D71BDF4AC9A01342F6E2BFC5649544F10A01CE372C38D36A7CBCD2278ED8DD550BFEA6238E353DF80CB6EF8B30277AA86E43049865257AD14740711ADC6C3C81A385B5B5BBD15ADB3A90821AF14D3784A36CBB25A14293273B0A1438B7A5BE3850242896E27E299B1EA3C18DBBE1972A120FB2C2EE75950C4839C9046C25A7BF547593E58E3E9D542D18166C4E749AC0BCC55035177C974D7ACC8D1E53DDC8A51BED2608B1EA0D1A9889231356DB3A0768E07DA2EFE387BA845CB57C2F235E7B1D7F1D1FE822BA699743F009484870DC0ABFC3E18CE64A0AACA0FB16884C478153D6EC58A71E24485C58BF32C61914AC650DF921827FF7B72EED42670B6FE8FCAEBD004C906E2C29570209C800EDCC7D0380BA4B2B03F1487819C0675734E6559A542E8D2A422349E02CD52D6C91CC92A11F94414E224809B7D2528C9E631D18CD2E4ACEB6E01B1BA19244751C52E58B2141ADA67413234CED44B91AB2773E98A17AEA9AE82642201757535744F1E7CABBAA2C5B8DDE1609C6D009E8C85C081522D2F5A20836E8AAA4D04BAC448E321CA7C5E46DF35C3A26381813E7035A2555E5DCB73DD028B7091D166F378A0BFA71B22E120A4D062CFA34FAE72A34865796DD4D18A5E4061F6BD550EB2CAED04ABDD01199442E59BB9A4C824CFD90BABC5020E74AFD2BE9692EFB87D3E7860F33618EBEB62491A615203CFFCB77ED16AE4E87432012DEDB3691844BCB7D68A05FB4BB7DE24DBED4E85B88CB89AACD56838062E210F39C1CAC0335CAC1223CAE412517FB2143E707074148E767540E79E5DE0C9C5E1AAB567C3F537FF398CE5018219192228CA0359056EB8E96668B469D0B1FB75E8EE3800A3230148C6132CB841A06715B5548F8399F3B582B54E862055924C59263A69385480794B578356B780F564319EE1E127B7C3B36FF64070A80F72D954411A185F2EBF8E41507E241241C942554383C1112D95ACB3C16EB767544571AB3C811043B1542B2A90058995E7549B8438F37F0B355BBACB168F8621D0DF0B163909CB4E990D676D5CCB0A12683BF59453D8C06C7EE877E0713961DD862B60ED2597A2D8AB831C12D6CE37F6C05B9D0760D8E186A6D619E0A9AD031B72AC08E6C08DA12F753D2EF2C1669C9DCEE85AF218801B3A980889A488E4F241D6560D3FFCF9FFC0D597AC81A79F7B19EE7CEC052432BC54FB7C4846436073BAF96FEB7ADBEC5B9B622DAC379B944B3183931364436583ED70509AD3CDDCAE3C8F69D16BD14A2D308AB16FC348E3044F8347F3AD828121B86CE54258347FEEC41F40B1F9B11B6F84050B1742381C86F5EBD71743A7F8D99A552BD87EB4AF1F5ED87300320846434B2B0B6C689A3936AE53982040216ECE389B8B71731CAE3CC345EA2087E7D1BCEE91C030741C3C08BFF8E98F61D76BAFC19D0F3C5D62E065AC5E180D464072FAC0A54F012E09A16A85A8A1FE1B5E5449E4BDD8BD9E8A0FAC30B0D1404B51A19F427A9BE2E354F24B7558163B2452E989110B136713A750BDF864409BB7952B57C2DEBD7BA7FC7CF68C76686F69869F3DFA0C78AAAAC04B614BA198F62C1880DCD0A023056E52E958312B566EA871DD9E4A25A1BFB717363FFE283CFAE083D075E8901E4F28CF9FE3B9F73EFA343CF7E611B8FA239BE0F22B3742FBCC19CC5D13C05491AA1553BB941E65603B6B2A3EF3C56A06A89C5834258BD9BC2D2A60B0D8209E4C9B8016CAA266024F7E08EF0EE521A7BBF18EB2284D54DDB12E89DC95276348DCA733E909DE82B9C882FCE6683802FFF08DBF85EF7EFBDBD071E0C0A4401B5B3AA74257E721F8DE3F7D1B3E72D5E5B073C70E905195953C6259E4CE8646A7D5E1ACF89CB6A1B3E3E46B1778883885381B5D9BF1C37BA0D76388AD42BEAF30F8B29C451D1786ADDB5F442E97596DB8DE9CCE82629A1FE96F0492CA847A7AFB682E35B378F5C2FC6237433ADFE7F7B3F263D588CAF1EA63118A993091139EC56E47B0B3257180895639B0BAB7FEBEBEE31A90BC29524A538CEEBEEB57B0F8F425E0703A8BF1002EC68D048B0EB6ABE2A3680C6C519492A2201539891E04391B9F025A9BEAE1CA8B2F9C20CA8D71252EA1FA6A9AB1918D46202DCB904B667861619ED5A19195AFE051A6627F7C4F8FD4E5F5346336C7A6F7907168B5DB10EC2A9AD603C941671134B1D49F164DD5B01D3B5F8243BB7796E85D919F4FE7D177C9889B356B169B9020E78CFBD1EF23677ACD8A22F96B632262C7FEFDD07BB49BBDCF88D666053B1E2D36BB3E0F4D23774E048BC35EF1F171A372204903C3734D3AF36A79C62EB99C3A25D02CDE8D0F4C860C4DCA6B6E693109DAA2D5A4F17A3095EAD1791D99C0B917F8D4603A8FA482052581DEDE4AD22B5405B3E12594E864FA6BE5DC19307FDEDC6270C6B4EBA14F8D81F7E99B6F62AD390C408DA6F546E37A63A773F406F63277053548C7C2D0B92FA49FCB5B7CB06B516819A55FB4F710342F5A5AF1694E03EC140DAE6E7871CD489C4D215365E214E8F2BA437A60D12A4E52DE2314FCF0B49C66457D2A5E976AC569721E894612E9A2209604A68CA0855646580562341989A5D523C28499A1061150D786C996C83008C3DC8ECBFC99602A979E6A1B0A04500DD94E0E6B9C389BF4A7C64B8274319E63432D1BC98C499E559B183D2CD998CB833A3D88227EDF9E3DF0E6CE5721120E81BFAA1A569DF7215870CAA950DB500F769B83578F96941B165C1D534D0298B0067349021CD3D59E081801B9038DAF871F7E986C16E62F9365FD99CF7C86198A5311CE641BD92382D57A328971A928820B069A00D9BCF2764359021298B24DA48BC9B7FED54F7F02CF3DF544C984FCE79EDA0C57DDF071B86AD3F550DFA0AF14500AA250C6D5C5BA374128CBA19FE046DFB9F9E69BE1DE7BEF2D4BA268F0FCF3CFC3DD77DFCDF4FEF182CDD4CE4950C02016C53837828CB1E39C4D410E108E89F5E449128A56A1F8DEFEFBA7E1F9AD4F81DFEB8253E7B543635D35CC6A6B04BFC7018FDDFB6B78E277F7A19196D5F57759A2BCDC95D24A2D825237EB0480BEF3CE3B4B8036DE6F6FAC659CFED0430F9D1011B1EE4D056661694E4B6573B654CAD91428A01739457D7BA4617211AFE0775F796E2BFCFADFFF066AAA7C1306777824085FFFDE5D70F5C73E014E97AB3005589BE4CA53BD77A29C4DD2E52B5FF9CAA49FF9BC6E10F09EEEB8E30EB8FAEAAB8F5B94FB7C5E1841F7934B07274F738E572A6727256EA0150C698AA2E1736672CAD4400BC7869DE2E6D14894E9B4C9F4684B531DD454BB616478580FE44CC8AC1D3BAD0A7F04D83D3D3DCC509C0098C70D3FBEE376B8E0CCC5B06FDF3E78E289278EFB9A75B5B5101C09B0DC36F7B3AB2A5A8C930B65769974CE46034DD18EC1BBC7368A6877BABC68AD8E4D094A9DDF03A3C343A5B56E93FDD214B25B3D41B00F1D3A348138E93E7FF0CDCFC38CD646386DC16CF61E89F3E3DDAA6B6A203216803A3436A95A05EFA8225B60978A7193EB25B0D224041BD99BFC4FCB24DC3969D8CA3C886807D43434C0E0F038ECEDE881DA6A1FAC5DB30CAFA7C03D8F3CCBBE4EFDC12949619E8C60245A3438B6B9F0C7E8EC919191094475CB8D1F8675E7EA4B82CD9BA5CFBA25EE3E6EB0ABAA20978841FBECB970B8EB30DD536B25839D2A77BDE474026C92063265BE1209D6A97F4A0637952B9911A26BCE43F7CAED4A42338A6CBFCFC30211141A5D7BCE5238D23B0C2EBB8515EB0B93F8D5667A9A60F11B7E366825FEF0DB6DD9B262870BD7AC802F7FEEA385BF17CED3E76D757676B2208A91AA3DD6E6F7FB4190E350D7D4C4C2BFA8035B2B598C272583B3F9E025D0E0A0A4842C3919D8C763A39517015AF0C13F74F12510188FC0C2F933A105AD5D0B3704DB5B1AE082B3CF80196D4DE0F1F9F552A029948436A9E6D078E8543A6662A37C1B1BD36BC5DD2E075C71D139F0A3FFF72516B933B619335A9000AD2C426688FCE3023B2783D3EB634122A4BCAA8A07DBAC1BE3C17170482AA4043BEB3372DCD6B8792A16825D555D07A2AD1867C82B7A4BAC3C07E8E0E10158B46C798133B563580593496C523FA4668E77DBB3678F2E7ABD4EF8B77FF82B701663DA6C4BC4D290CEE6DE366A66DEA82332B9AA76049B085C10447725839D62E2078A75DBD1588295266976374462B1B7B5C62793EEB4DBEC3604B3B84426CD77DED77194C59F696B9B350B39DB571ADD7A3B3D6D3A8726061E2FD824C2C9A5A298C2C048185EDD7D60C239A321DD7E2000172D5A747C8388D7A36940762A53A6B95F825091605B4A38DB28914585984CA5C04AC910BB07A2F1C4F1B9D865F3B73595A7026BE6C0BD0FFD82A523AB7C6E7455FCF0E0E6E7991F1E91255881EFDBA9DF8A2415D288256151B3322F7B4DE5C8C72BC6292C3A63C60C5AE015B66FDF0EF73DB30B96B6B682A34997BAE9BE31B0C5F4063EAB56AD2A5CF778FC6D9AE142A54CC4D9AA28BA2A5A8C3B58F2DD54D847F56854468CAE53187DE5E311DFE680499EB59D4C41687C1C06FAFB60F7A13ED8FCFB57A0BDB5010E1F1D8266D4DF5DDD03AC17CA91CE0E08048621118F430E75259B4D5A66666B53F0B868B1B234E5F144CEE8BAB42C5473B3DEFAE4ADD75E87BA30EAFCC3E3A0758D416D02A590DB0D9FBEF24AF8E4B5D7B2D509A894892482A228C7F4E929ED69B3BB581650AC50B00BD6B8BDA0BB4C8585D4AAD2523591B385A9079472C3547E1C8D446074748401B9E5F14720158BC2F215CBE017776F063BBA5BBBF776C2D225A7C3F6575F83575FDB0DABCE3917569E750E343436414D6D1D78FC5EB059ED204E62B899999CF2CBF95CEE6D8136F2EE363C0E72C3AB0FDD306A9B51957714489F3A307DE1820BA0D1E502F9F9E721565B0B427B3B78D085A4664292217D26480D1B484E87FEB92855B61877B24A0B9393CB27E5D3443DB92419323557D3A0472261E8EFE983BD6FEC826D5B9F86EEC39D6C3A306D814000FEECFA8FC0F86800D65E7821DCF1C31FB1F75864EBC86178EC81FB98AB76015AF067AE390F5A5A5AF5FAAFC9D296FC67A93FA951FA7B2C8E4E84C3907DFD7518D8BF1FAE5FB10232C8B1BBBBBB219A4C429DAF3494DBE0D7DBA0DA90706DE497E31E43C02DCB96B1CCD854C9100B1167A573F6976EBD29FBB5BFFF8ECADA8819592F9A6AC39A8DE939EDB70B70B0014517EDCD5DBBE0973FFE3718E8EB9D20F6481CFEF75D77C3952826BFFDDD1F323159F239FADBFBF7BCC1F64307F6C39FDFFA97D0D2DA4ECB374E192827CE4E478E2DC65951C2C183E044C017B4B4C0ECC64608A0E4B966F5EA09404F658513E854A34E7971A9386BB3B051485822EED6C1AE686B9CACE63405418A11539AC62933FD2D73CB599B2CC505C01BC4294C74FFEEEEBBA0BFB7E798FA6D70707002D0E5DBEBAFBC0CE3E363ACACE9581B791154E2F47662DC7C375604E4BA73CE814F5F74D1710F948DCF5F37AE477E38E9F371B449868686987DC29AFAB1D46865EB6C2A274E5A50D7E4A8E9A4D1A886BA090B467CBC6CCA6A192710E0D94C960DC2BBB151FB0B63D58209CADAB4514D59381C819EDE5EF6FBD96C86D90C5939CB5A5E919E4EA1A8CEF6F5818644467DD2484F932790D77443306F34D4A3EBD1DFD486035FE7E835FE688E489FDA616FFB03232E8D55D4EA8D6AF10D500589F5539B85E7E80BCE55B6EBC56AC7050BD5F1EABE0EE3628A8F97CDE69CD287CDE95D0A3D5EBDA95DA12F092B003416EAD25D98C0D838FAA41E163513744E60739C056A7B499D8B91439C5E3FFCE6C96D607F6117EB59429243E14DEC55DE2057E3819B6C7004449B1D04D49912EA78113D0B0B5EDFE5F5E1759AC1568F635F7B1A084B72ACE8D0CAAA5B45BD5010EFCDC12A62F5D6D9F49E15EFC3429D94A90256D42B60C99F678D72286247CD7115BDF729231A36754A05291E62F78F44E0686D6D75A3044B5626D8365B9CD29CC519AF1AAB1DA76D382BC037FEF53F59AB2C7A50E20C7D86A7CA766A449FA2FEE4A81BB3BE5340387B169EA3400E295E15AD20201060B1931583AF1D90A46EC308A8C038030983EAD098AE93987EA6A2431501EBF6F8F16B0EB0B1CFF11234F75BD47BB490C6612DACA9E516BD96F4CFACA2DEE29AE896BDA696D7F4A054D028A8ECBB564BE979AC673AFFAE955A614BC07F4364F571D4369B360358D6269B88985A6E0A7A69B380D60E7B0EBDB3B23175B732C1C69B4FEA25BA66D74B4F730ECDFA100C1B8105D1D4BF9497F426F27ACF34FD8B8A4E243820562A24140ACD4C4DDFD7DD179A3EAB7FA60F2AD5AE4B82A80344E0E351B04825811512B512D725C5898602EBCEA0F26ED76CB90A10790F35DDBB60131944222C5E58C8CA8CF529BC02EB852EF0D263A150AAAC1AF3CE799F53268554BD6F395DDD82368D2867D87C76919ADEA612E042F70B558987833D5891608391D32E642D7108A96594A9918D397E6D2C18C3F41AAB3636084062E254AFE42F020DBC916DB1D1AD5042088688E7D53D0802270CAD3843403065BB8C66F6C69C2BADA42FAE509CE6AB15FBA91965CD1AEFB82452068EEAC1113489F2F7D4B395CF51677DC9A91BB38C3A1EED801CF53F4DA7208B1E472A1683E0E818BA90E89245A9376A96B715D3EBCD5142E266A1C8CDFE4A053B59888F172672C9BCFBBE50E81D5A30D4B85E4F2B5A1168C1DCD4C4042608A6AE8485A662A5F175C14464E68A42284E982D743E30B569B0E300BBD18472A161E80299C506245AB38496ABA0FBA73EE1F92C687C05029ACA93CCE211B9308A1E41782CC85CC64C462E254498588DBA72C57274BD5CF0D2F32F165740528B4D418C261C225B52436AAB58030D8C0A5393CCA481D20A0BA04271263ACF3D6794A298346ABDCD13D54B2C77A138DFB9B4E18D806029E01372E05732E0410EB3A83A58167C2DA27411541493B92C2D58827B8A35BED790CB94541CA2E89EF50C0EA0DB17865822A52FD548BA9F1B573CC861F8BF25BBC0D5872E7144A66FCD809B9F852264175D7C19F40D8DC0BCA141E83CD4699A900085F4B00B0DC40BD75F07F7FEEAC7150D76B134C968E7485CA10985C202E33533D45174CB6A1130A7A88257CC8117B9CC2BC88CBBA813BF887E3255BD080C38BD1B3FCDFA141034F49540CB2420111C832002D63936C6E2F0275A572672500964951AC84BC8DD2A19870830723A11B1CA8FC7029C1DCD93054CDD1B522985196AA4BBD9C4434D6F435DDFD0084DCD2DD0DCD206CDCDED505357C7BE5B55535357D99C6D0455B888CE2763B0048611307D492791C423178BD9648271191070C869C970104243033088A231180AFF51F5DC7FEC56E8F62F92CE248025360BD4009D2D35A1886C258172B0DF1EF0A244BAFBEE5FC382790BA065E65C5879D687A091E691A3F72008A5F1FB4838A48583636F543467B3FA6793EBB563DB56806DBF37A95AA110F67CB78227EF05E86478A952117411413773F96480F3C817D3B7D43AA3A6AE81B5A5A6237589A8AD6B044A16D139730AC4500499A60E0706FAB5A1A1BEE8CB7F78E6D71D07F7FF4F4573362B27364FBE3156BA31B5833426BF55F236017485C4BBC28E043C1959B4589D1741A529C2B446585D3D825B5F8FA036B0B968451D2E96E5B3F5B543464703301A1896C7C703E343037D7BBB3B0FDC130E8D3D3238381803F87A458E4B29D816C9B4724031162E70E42980325977A28A7918944C546142ABFAF9FC3E367F8B0A257DBE2AF023B8BE2A3F7B4DC6560144512C7069815B4D459459F4A3C3E3E3100E05956824141B1B1BEE3A7AA4F3A9A1BEA3BF1C1818E88393682B15E3DCF52A5DF48C072FD0C548A361F25EE9627D5EB5A4AFBF69D1D7E1345ED3247D3695978E369AE06F07B7DB85C0FA18B8042A71A70BDFD32D7151B7C4457DC27F099865F97103588AC5874241888643F9783C9688C522C3E3A3818E91E181CDC1B1912DC8B10370926F65069A046E7F2DD74542C130A1B9D5A4A73D766F61C29BC88D1963C2BB28148FA260183EC68A4008A29580B4EA6B6CDAACEC3585412DB4EC934D5F68552A58D56289BB44808926F04A3E337DA7809EA91C95C4395B03249144624D68997446C96633323E4F3A934947B2E9F458241A3A3C3E12782C121E7F0E410DC2077433831D2790ED4E6F319021E8F1608A26D9781B891240240E007F5DFE99249682351940C6F7CCEB71944FEDD126A925A6E9426414D11A24A45AF23959CDE7722A8ADD982C67E37236339E4E260752E9E43EBCC0ABC8A5BB11DCC0646B74FFA96C66B09F5BB66255F068EF43B5B4DA1D5BFE98324D6573B0F40693D4DC86023054C7A3B2235B4B9B6682D22A04CC1216A8F08E01AEE4C5C2BA98465F31DDABD13BE871379E42D1AA8414278A16265C78633901411751BA08AC4D36EFD546465613FAB6B4F2EECC99B3A1B1B15E743A9DBBCE5F75EA9930BD4DAE2ACD3AF85F7EF22B5B707C74E9CE575E384D2BC44CDFD986D7D1F2F91CB5B91EC36338994C0403430311521B9371D96F1EDEBAADA5B9E5022A221C1F0FF23DC48A1D42E8BF279249D6D2837A86D6D6D6B29EA134B1AEAEBE9674F7CB1F5AB1E07C289D3C62344464F7F2A70C76C9042E6A6D89879D00B7EF7C5F284DF76744BE3346BEF3FEA7E3E628AB81975134488509242DF2BC37BA5A58935B85782CDAE8F4D45CABAAF9989ACB8FE472A9107E999E89CA5D72F87374CC73F0158EFFFB4E00575D75D56C97CBFE117CEC33516E35A02AF453E6155566005DDBCE5C4E7E1E1FEDD08A152BDEFCE637BFA9BE2760BF0FC01A3B39F4545846F5CB2E87C3335BB0D997A095BDB8F3E0FEE5ED6DADA6F87449A759BD9B115F5ED168CC63BC763ADD73EB1A9A7E4B858FBCC332C534B3285512788D089E3486F2EA4026167D30950A5307BE04FE46EABD06FE9A6BAE69B0DBAD9FC71BFD584ECECD120445A266BE2CA127E80BC353212312EF22359FBF106FE5161B1AB407F6BFA57EEC86EB47F1E9EE8C46133F79F2C927072A166CA11889A0DF210BCFE7F2562D9744EB52C9E6380B3F4675A13669B4DA298F711B6942D1086AF0FCB261E051A17F697971B13B327D3677EE3C181909E89D9064599465D989069B1381A769B4F3713FC7EA747EBAD6EBCB8A92B50BA5C023C140CF2FF1FD20E5F4816545DF1EF46F7DEB5BE29E3D7B56DBEDD2E77239E522E4C666BC774A6EAA287914B43BD292453A9ACDA4E78D8F8FBB49FAF8D055B4B3808DC00237E6CDC7167F2F7D0FED2531954834A1EAFB9AC32E7DEDBAEBAE09E0D87CE1C1071F79A062C03689672AC8F63A3DFE350EA7FFFF202CE7A00167D7AD69A5A054E921ED76073B7A7DD5CC03A0F5B20C80F5A6787AF33C9A9BC53A2C49A618B689F7EB5BE7413CAD403E1385ACE93C804CC93421B41FEC68C22FC6978BEB5BE6FD8DC7577BE7D18E57FF1EF48E095356305E71C515D51E8FE707B29CBE11DD394B2848B96CBD5883939E88C42B22505655D1CE608199ACCCA273646BE87976BDC2A7B0103DEE44A0D535B5E076B90AC44C5E8A97C5107C4C728D8D8D3645A391FBAFBC6283ECF678BE8B97F8D6FDF7DFAFFCAF818D374ED7F4225A4D7E6FEDD725C9BA5151F23E3620651BD55AB3165938083469DFE9AD2F4CE711454709D0B4D3F9D44E8B06C35200526431802347BA61CBD667D9EC138BA451388D816BC4C28F357D47CEA6F062B59F3965D9BAAA436F3C7B0BBE159AECBC4D9B36FD8BC3267D716C7458C8645240A296E203E489D0B2CC4A610966454FC4A82A9F42A4B114AC0309D566B5C72D366710EF6918EF2F869FB9F0DC263CAF3E3436EA1DD73489EED5EDF5A024F0B3689F510FD0D0D008478F1E85FEFE7E9BDFEFFFBB79F3E67DF5DA6BAFDDF0E0830F6E3B616BFC5D02BAC5E36BB8C4EE72FD3BFABE8EA9CE254E76381D6C3D4E02DB4ECB22DBDCF89E175DA97698356B266B9C4B450554AF9D61FEB4CC80D5BB12EADD11D9AABA9495C3C1B058684D325AD93E5DF80EF54B37FE9EEA5929B0D33AE77402AA63DF8ECD17E279C3650695D7E371EE0805838BA8AFBAC54AC426EA8032509592D70CF4B2D724C65B5A5AB5583CEDD9B56B57D664BF982B353404AFC566B5FC732A11BF3C2D675CF49C345182BC0E5AC7E58517B7439AAF7E4C92AEADAD0D5A5BDB5E429574397279F47D019B8BEE1A87DBBBB175CE193F191FEA761C2B864DAB17148176B0A30309C05FDB04165A071B8A35DAC61A9F465548A18728AF3733121F39390391B141248A0C9B70C000CF64F406F9936CB45C86B7BA1EAAEBDA891B6381C1AEBF0AF41CF81DFE66BC94A33FF23A72E60A5A24DE69B7B2DF9A0C6433371B5C6EBC662B1FE0EF2D3EFD8CC71E7CF0A19BCABC10B38B68780A0A72AEB46AE5CABF8BC723B74463514F0E89BB1F2557DE349191868242C64B4E5F2AE7556DC5238F3CB2EFFD02BBB569C6C27F6A9EB1F0C6E1BE03904EC6263D97195A0432D7D3B4B3AE87363B3434B781C757A58BDE62AD52B1A32177B5D8C40463F57ABE606C682C00037DDD8CFBB3591DE4F2E723B1EEABAEC3BD011C2E3FB5AD8C27E3A19747FABBFE25161A7E154F8969A685BD366EDCF87959CEFC48CEC4592490B5E856388865AF752E2E7D5D3E41B1ADBD5D7BEBAD03CB2291487632CEE6BBC2ED869CE13A5E7AE9A5732D12EC38DCD5694926536CF284F9D2947E5DBE6CB966B13ACE7FE081075E783FC0AE431D7DE9FCA56BBFEDF1F866A6126148C523904C44502FA64B0127EEA69838026C63C90D1B134B2D6D33599A91E9637661B12C746AEA4BCA4A99353EA82A7475EC83E1C1FE82214696BCC349AAC1C3763BBEB63B3C04403E198FBE150F059E1819E8780C2D776AC74031F194D912BFECB2CB9A45411D88C7C3A2D522E91C6C06B944649772B4AA4EEE1E530BB0BABA86BFD9BEFD852DC6D04D168B3281AE70D0B38B162D72B4B4341EE8ED396AA105E8C9F0A3E7A6B6252A931C5658B2E40CCD6A755CF0D0430F3DFF5EEB6CB2B4A9F66A41CBECC5D77AFDF5ABDD9EAAB9169BCDA9E4B2904A4620938AB30980B4780CB5BA24C38D0A1D991186C7C6E6660636CB785171BE68E26E959709539BCC7C8E5F47D15728C2C7181D1B631C4F717C02D66A75311580B6431CF5767F36953892C924F787877BB72593A15E6E88C58C404BB9CBB571E315F7078381EB68BA900EB0C24576E96B23B863007DAC8D545573EB8C6F3FFBECB3779B050EDF2573806912E0E5050B167867CD6ADB313430289104239B85EE85263EE4795FD895CB572A28D3E73CF6D8637DEF25D8020F9650DDB48F59E5008D35CDB3CFF255359C832ED829369BA31AB9D84BB5B686EB4486988AE05319AF30494707A3AD34CBA269FA58486CA501B150F08780CB79594EE673F9785E91C3D974EA08827B301A1D7A33111AA3874EF19D7CE904178F8A56B21663E976D1456B13D974C2ADC7E42717D3CA71826C6C2EE4EC86C6D69B9F7BEEB9474C9C6DE1E3661C25FE5A321180013CE9F29A5316CCDD3A30306049A612C840190634651229BE404DF8962D5B114D67E416043CF59E806D02C7A04EC3D7A6800ACD7FB2F3D72EA7A7AADEE5AE6EB5399C4DE88A34A2455C8BA25D9F37AC1A1D88CDF30CF59C1872B6AC2AB92089DE7C2E3B964B2702E94438801C1BE300E6F94E56599A1F65234AC639F86D9139F7DC73BD92A8C5B2D96489989E4C649FC846EE93205A6B5F79E5956819674BA623ED363E5EC66E80CFC6A1B5B5D5BF72C5B267FAFA7AACD4C42F954CF385F8744E696F6F83B9734F79E4DEDFFEF6EAF714EC29A26882898A2D262AB6F1DD621261E64E585A21E156B454737C574CC68CC23F2F59EFED78809DE29E2D175C706E26160D8B13B95807FA4437B2434E3DF5B4A1279E787226E5872619239824A46C33C2CA9C71ACC639D5D5D5AE0BCE3F774B6F6F8F93F2F5942432EC15F2CF972F5F49B4E935B8FB3D8F8D9BF460A1052EE8D3072B7923A2B3FB3DBE23C1F1D1F98AF2CE40365451437DA3D6DBDB7F295D9FA76EB549B2717C49539A68C48838CBA55396AB470F075C0C87C3A9DF3FFB8775EBD75FB8A5AFB7D7ABA057928827996A23E32D1C0A8A0D4DADDFC273BF0A265D30BD957219719563CFBE039FA05CBDBEB240EE8F069AEC8DBABA7ABAF8C7F7EEDD3B026FDFB851CFCAA054E212808026DF3FCA0DCAAC21C5E2F1B8FCD453CF5CDCD6D69EF57A7CCCB3B1F05620A1709866A5DE62A6E0E9AD0C6F4384F6F4F4445BDADA8E1C4F03FB6305905A5A5A3441946E7DF9E5575F37A99B13918E2A575B4913E069C30E49A7D3B9AEC3DD37353536B2192936565029408A66CDA8AA67C3860DF5D3601F637C0D71BA73E7AE9B66CC98AD9437F2795B90D16DACAEAA86F90B4E091EEAEC5EB763C7CEE74DE2583DD1742A3F3FCF3D0A023CC2C167CB23EFDFBFBF0B0DDDDFD16ABFAC2F1B8FA9CBD90C1280FDDA69B0A7065A312257A817E3AFBDB6EB430B172D1A7223D7E8FEBF3461168811C4A1E01055CE2C5870CAB068B1FFE5E6CD4FAF1F19191933B97DF289727619E00AE7EA5819E0EAE38F3F7E474B6B5B5A9FA049615437533F48789F785F8B174E1AA4A91E4B100C239206D5867A31FDF8E34F6D5CB060C1EC53172EFA42369D5D99CD651D68B00994A8A0E895CBE9545C6E573F9EFAD8BE7DFB1ED9F9FA9B514E3832073AC68FF9775224C1EF4FE5F767F656C8B5B5E2A7BBD0FA3B97B8BAAEB69ECD5045B17EEA34D8C7E66E99075F2C5C8F5B3B3B3BBB71FF526932C52AD6D7D757CD9A356BAEDDA1CDB75844B9BDBDBD5596E5642C168B728013FC98FB635CC129389C4097CB227068E1E7DB29C0E2F6B810EC3A3878F00078783FAF69B0A7E69E3CE76C63E94F9729BA25CE9933A769C58AA5DFCFE7E485B1785CA492E620753CA62C94DB01AB562EA3808BE6703A724EA77B5092ACFF8CDFFBCF77F93E550E3889724B636363CD48606426A99AA54B97C3A18E83AC663E236729472E081FB482CB8D1B371228B7E27351E0E2574F3CF1C4AE77E886597804CB610435AEBEFAEA7F74D82D378C8D8FEA6B869A63DF0E275F844E64491E5A103E1C0AB3808CCFE7D36AEBEAB7C8727ED3A38F3E1A7F17DD4516A2BEFAEA8D77F774775F76DA698B61607080A54389FA66CC9CA16EDBF682E58368A07D1AF7EFE3007C1E07FCE7EF82B8CC9B746EF0868F6EFA0E32CE0DA150C804B4C6032E799653A7F42A1544D4D5D4C09C39F3E0CCD56721A72DA5EC94D0DB73F4D268683C7ADD75D7BEABB3FFD6AD5B77B6D5225DBAF0B4D3A11F81EEEDED63A95EB60A225F86EA03C5D9E84FDA5184515FE939FCAD305AA8B5EF46D52871F947376DBA23A7646FA7456E14B68E681692C904EBB54631727DAEB6DE988756F073D89D50575F03355575AC712071BCC7E386FDFBF7B279656DED3346545598BB65CB96E43BB82F71FDFAF56BD14C78CC6EB5B8DE7CEB2D181B0DB06C203D361585CC9F774AE289279FF27FA07436024DC6D36C1E6DF2E2C33E02ACA396A0BC13C38880BEE69A6BFE4ACE656E0F06C7201E4BB0E894CEC156D64999C8895C324A3152B743029D0A34C29130B8DD83505B5D070D4D8D407DFA972C3903022301D4A9071A1B9B5AC3D75F7FFD8CFBEEBB2F7022F784AAA40A09EEC60F7FF8C3B722019D9A88C7E0007273221967451D465C808A359C4E47EF078AB3B9AEEEC77D734747C76D4EA7B3F1ADB7DE1AE72E0A8961F94439FC631FBBFE2FFA7A7B7E84BC8AD7105C045C3C1163B56F469908953B5388923889F2EE547543952424DA89AB68C9693A95B8DAEFAB82EA1A3F343636B309FED406B3AFBF9708216F77BA1AD0BE081FEB7ED6AE5DEBF0783C6B90A83E81AEDEF568FCD969F5E24422CE168427D5C2BA3B529D5E4E37D4BD1E2F2C3875E15F3CF0C0833FFFC0703672D2A7104B6B381CFEBF5D5D5D128F56F90CA08D48D3895C339D4ADE816E8C1409475C149CA041CC97757B24105D289AF5C563A9A7690E41B601AB2421A0797F38CA46515DDCC06002A2D1180C0DF6B36E903535D52825829666A7E3253C6DD124E09E852F2F404E5DD7D8D8B01AB9D44ABF4469CD702861926A56D622DB588C8FAD9A4C458EAD6DEADEBDFBA95042FB4080BD69D3260981FE12EEDF79F1C51729AAE435B94CEAB14016A6A83146F1B83A9D4EF9286AE672BA19E70C0F0D8322A88512294A59522C9AE68FDB509C53933D74B158B995CCC0CEB0240AE9730A9FC6900359462A8DEFCB3E14B96990D046A6C0CCD8E8C8C21B365D7B433C951D74B95CD7489278716B4BD30254C912AB33A78E17ACAE4EAF45B0A101E8767BF435C079BFF5423F74FC8FD6A973395D34AFFDB328E958B9D507026CE4B86B288CB867CF1EF2636D3CA4180353C11E14538782291021988E02FAA9125ACD97A3A1752B72D2F9C4C5E82AB1150E4805CE9D370FA832845C292AE7256E8DC4226CC90B3772A9DFE705D121A2A84F80831555EA1C9E41D0097C8348A8B48A385340C38EC0A15225BAAD5822710F7166221EE6F5F2A5ADB79D2E279F55E29850074F52278E7A9B7434FD0ED9123535757F78F4D1C7EE319EFD0301363EDC5790BAFFB6BFBFBF2081F96E1435F0068D8251ED2142B1F2C3B260C182DA993367DE88FAF693784E355EEB5E04E351BFCFF70387DD2E343735430C010FA3CF4CC57D1EE42812CF49E4F64824C2ACF150709C2D456947FD2D59F546B84443229EEF96DCE802650A952E643CC96CCD3091F9E514CBA6C90644487A5F1B8175933045E910B81AD097F600A64AE83765967655C089B681D7EB4122A867DFA524889C53EE79F8E1476FE1C4AE7D200CB4ABAEBA6A0D3EC3EF77EFDEDD3638382871B19D32251CCCA53E5613C8D299679EB90407F153389857514813B9E34E1479BFEAEBEB23A9604102685CB572E583996CAA050D2274A9745064E22234D48CF54C682C53C90CB3BCC912CF9B261E7269C2FC5D1B72BAD56263FA941690B1D8F48A5A12FBE6AE8AA41668020575ACF05755B1BA707A9F6AE0A3B13837004B37922A7EBF5F8BC7626F1D39DA73DB4B2FBDF49A41F086617AD273360E3675887F9D1AD69B62DA4A19F7160AF71A1A1AAC679C71C6E5C8C59FC5013C13C7A15B96E5BFDEB76FDF6FF01A199388B7F5F6F6E6705F7BC925EB3F9D93725F496762821B8D3187CD85835BCD96752270A91F0B894F975BE73CEA3D4362D528792657C86AE33D6188EB2DD642335C63A39A74EA1563F8EA5ED4BFFEEA1A4624C4C941B4B42703994BB66C6064F4BE5777BEF613344EBB39B19317A2983D90931A6C92CB575E79E56AD49D6FF067314476793D9BBA7EFDFAB310E0EBF12B5480578DFB6B08C42634861E4297C7EC831B2864F89EDDB265EB4F50D46F59BE7CE9FD28AE6B224A8455897A507F523F1887C3C53A1F2658A5678A8969B49A8F71DFFA0A08ACC11E6B79ADA74D89A39D6E17531385C5E369E9E940A0B00E9A1113C7ED08AA9B5791DB5F4682DC8ED228C009DD28BA9C3005F964E76C02F44C1CA826E458CFE8E8689C3F93BA6CD9B22A7C6FB5C5623917079F006EE3C03F85FBF71E7BECB1EDC7C8781121996766643B3B3BB338A8675F71C565BF1C1A1C5C333834C87AA9F97D7ED64B4D45A0C812AF41832E895637D5B293959CCFC98CB3D92C186A80CF67A61A22DB98AA6BC3CFD0275711D4642C168FE6F2F920FACA81542AD383FAB90F25C528023B86B6C408DA2623990C9BD36436400BF6C954F1849356671357AF5BB7AE01392CC0A97D844FC88B21B88D783CC5743AA51A7F8BFB8F10E4FD27FA3B50DA3C80120E3FEDEA3CB4613C186206596D6D3D54D75431DDEBF1782734059C6A9562D2FBA160184E5BBC848221FD2FBFFCF2C54343433193CB58BE6BA6A362FEEC7802462735D8C4D928C6C9046F9E4C9DE3B33D87A7DDE970381EBEFFFEFBD3EFF0B70A8588B8BB2FBF7CC36DC1B1D1DB868687D8C7E42F93CFDDDADA5AF0EA59D37A36ED585F61C0BC8D8D8EC291EEA3AC75E6A2C54BC22886CFDFB56BD711139893ED608E199C6844F0A4B6C66994376CD870360EE8A7F0CF55DC30D9816FBF8A3AED85C71F7F7CF0BD2030EECB3B67CF9EDD76C619A73DDA71F0C0AC583CC1822335685451E4CCEB7643DBCC191047D78C564320712DF1CEF9D410A8A7E708D3D5AB569FA58642914B9E7DF6D93F940780DEEDB61FC29F7803A177CAE504BA63FEFCF933162C98F75F81C0F0B278342224D06A36B260648411F8CC00A3BF25BD1D365591CC9E3DF740241ABB7EEBD6AD1DE596F37B72EFD360BF2BA0B3192EB5B5B5DE152B565C8476C41763D1C8A258346C4F673302AD4B4A5D1DD15F5691C3A32E97E7F9C1C1A1DB77EEDCD93395E53C0D76E5036F9EB32596B972E593ED55789F5B734D83FDDE00FF76E1DDFF9541FFFFEF5A2E05A8B13B700000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (173,1,'Video_terminal_(24)',0x89504E470D0A1A0A0000000D4948445200000017000000180806000000117C66750000000473424954080808087C086488000000097048597300000298000002980136D347DF0000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000005014944415448C79D95596C54551C877FE7EEB3779D2ECCDC2E2914914DAC8945C0A0A8D362434248435454F0C1C4C4B8BC184582BE68505F78F0C1F86034312124582221156A404429C442B5D285B653684B61E8EC73E7CEDDEFF1452226B482BFB79373CE77BE9CE57F08A51477CBD35D3B963EDABEE9C4E4CCB5884FE4F77F79F0C0C7B8CF300B7534C8CDFB23724353EBEA66DE1F14DEC5FFC88270876114BF3F80B1F333981C4E05DADADAF8FB8573DD2FECFE9EDA2EE3BA6ECAB2AD1BAE65CCA9A6314D0DF3EBF1485DB421EA595DC89B3DC7BE1BB0EE174E5E7EF54D576B6A2712077805029E71215007563E093FC7209B4953C3721CC6B5AC622659544BA52C21A4405D9ACEE6339FFFFCE389630B9AB32C751A2261AEBEBA1CBCC0637E268EEADA3AD4D46E00CFB3D04B3A816572B992CE650AAA279B2B5617541DF99C02617A70398085E15A5175CBBC1EB4466BC0732C063E7B0B565313D6EFFD1492C8C15414D45706E03814C94402F95C164D2DCB601806F67D3251B6E881E60B05DB344DB82E453E9F435DC807279B46269B8161B9506D0B0003866170E88357F0EDDE97004A218922028180B8285C2B6996665AB01D0776218D35CF6C45C3438FA0984C40B11C58E0E0BA0E2875910F3622618BC8A452200C416559885B14CE1058A2A3C2E7A8E01C1D392AC1F084A0E5B3604A0A384BC3ECE438AE8D8DC0613CF02E79003F1CEB41F2FA342A021E66D1AB480963080287E6683D202F41CFE039CC4DFE89C736BE8FDA70051886C0E794C1EBF5E27B8F84B9914BD873F0200281002E4F5E258B9B333054DDF867359E60D78E1866E36370294029C5ED02716D6A14AFEFDE8EA1A1210040C0E75BFC1111C26AAAA6038440D34BE81F1C45626A12576E1521AF781835B53500055CC7C1AA680BA29A042B9381E33890448184C361FFFCFC7CF1AE7086424F644B383E3881ABF1715C999DC7D44D1654F4E08B93FD88B4AE409D9503476D88FE72F4C4E7E0492A38071145D381CF571E0130767738CB960A4A0E872FCDC0B428A4277681754CF0AE89D99BF3B8353303DE5221BA1688A981EA3A985411ADA21FD95C89D644967817DC1617AE39D2F30D6CCB8620F0104401A228419204488204EAF54008045C2918D0BD3E9FC2FA8309DB762FC7E3F1D337AE8E1D3A7FF694BA606DD9B97367CDF45CF2590AAA12CA96143525298AB1B4B62EFAF8732FEE79EA44DF696CEDD8A27CB8EFBD4100C3F3D7C7DFA694EADDDDDD5106EE6B9AA63D28499E65BC28B284E08CA2A8078E1E3D3A0100E4CECF4296650F848A1155C934AE5ABB0E2DCBD720954AC3310D0C0DF60384B5092BBEB17A595856F2A9774A9A864241456363F3ACD7EB9DE058AEE9E2C5DF9A2AABABAF5FB83010FD179C10424255F2BA6045E56E50262088BC9FA19CA3E9EA0D532F5CCA2513BF9BA61A6F6F6FCBE7B259D630CCDB52033F9DF9750B80E0E6CD1BBF9A9A9A7AB2A5A5E52459E89B5B2C9B36AC3F924AA7B60314555555B7CEFE723E4A29B5FE160C6DDAB87ED834CD1AE65E605D5D5D4BB76DDBB6F9769BE5C5E7655956BD1E2F4049B8B32336D8DDDDCD02404747872E885248D335F69ECC3B3B3B3B7A7B7BFB01E463B1581B03F7D4E8D8A89F655998A609411020CB513B1CAECD0B3C5F9EC9A499925E1AFE4F382184C462B18F08217F388E63178BC573C1A06F2DE01ED1755BB24C1DBC20A0AAB2D216446924994C1FA7941EE9EBEBBB78AFE691DEDEDE397AC7E0952B570AA1907F082E95059E2F54D7D6CB870F1F36EF9CF71729B17274C1A189C30000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (174,1,'Video_terminal_(48)',0x89504E470D0A1A0A0000000D494844520000002E0000003008060000006E6548DC0000000473424954080808087C0864880000000970485973000005310000053101B7ED28520000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00000E9F4944415468DECD9979909E459DC73FFDDCEF3533EF9C4966720C3948620E34070439B248944AC088C4A0AC96917577DD52B7CAF52875CBC57277AB745DB74A77BD4F0EC98A012A071194603451018130246008496692997993B9DF79AFE7ECEEFD63262160A1643695F279ABABEB79FB79FAFDF4B77F4777BF426BCDF95E2B57AEB4AFBFE9B61FB99EB7697878C49252F63564D21FFFE2BF7E6A1B17E932A6F2D2C2E557DEE979A9DB6CDB714AA592F1DC89A767F58F0FFCE4CBFFFDBDF7FCC582DF70E3BBAE6E9DDEFEEE74264D7B7B3B2B57ACA0F086E38CC5C3C6A5972EFAB410425C0C70EB7C5F98BB60C1759E97129E97229D4E3367CE6CFE31FE3845A39F83CF3EB36CE3BBDFDD01F4FEC529DEDCD2E2388E8DE338789ECB89E347181CED403A57105686A8D46AD15FA4A9ECDFBFEF3B491C574DD3C4344DFABA8F40748CA8F4386114278F6EDF3E7051C03FFFF9CF9F17FC9E87EE3F313250F858924489D6906B68C6A6806DF8BA5CA97EEA6239A7F5524F61F0C6776C6A324D5B1A86118308801A50065D94528E0AF4A04617541CF757C2F864A1A767DF7871E46DF3172DFE97E6E636D7CBB66E3F74E4D9BBB67EFFFB858B052E6E7BDF0713E5B8A66E5B88A5134C1563A80823F1115140697488919111C230426B854070D98AD55C75ED750481CFC0A9537ABC54945D4F3D3E6A98E61888A280516048A9A41025B23F2897BBC7C6068F178BC59EDEDE5EFF8280BF77CBDF8776AEC1E99DFB565CDBC6716D52AE4DCAB548B91639D72463812514B6500825299D2E10958B609804A57192A086B66CD00AE9D748FC327E7184D1C1417CDF470881529A2489B41086320C3392497CB8F7C4D12BBBBBBB8329998A6198B1216327AF432E6972D14283881146825026666C1229036D99601938298F698B97E2791E5243924892441125922891C4B1248E15619CD0580B2957AB84614CE8D7504924882353C5516AFC85DFBCB1FAC20B8B80035302D710C5412D53E709D62E998361181886816918188620A896E83D768499732EA16DFA7484001947C4494C9C48224352AD8E90CFA48895C68F12CA22A29444D4AC9820955015313521A9FA924A9C508925F93997A24DA37ECACE29D051B95C212F255A830284D628AD4169EEFCC227E93BFA12E95C8E8F7CE97FE8983B0FC77549A55358C20001651B664F6F45298D541AAD01AD99A83468D04CD65A53A954F9E76FDD0B5AD54D391C4AADC2308A88A20835F17BA8C9122509391DB3229F6689ADE87A742752839C6C97681082285128051A1042200420E089FDBFE6B1DDDB49E208C1C4F74208B2D90CF5290FADC5D41547EB200A4382304269100AD499C82EA02EDF48323AC87894208606515A23150831B1AA4C9422521204082D266A606CE8347B3E7B23656573EC779BF9DB2F7C9D89658C4620C8E532A0F594C10D2DF18320200842D0A078798A8561D1366F2141A2B00D415D4B2B4A4D289E68F0A522540AA9279444BCACAA8C4396AE5EC3FB3FF1592A832726FA3B674672690FD334F25306575AFAB55A8D48C644717C16DEAFD528F476D3367F1141BE99414CA6CD9AC3C0A902611C518B24B16462206A7282C4990140D38CD90CBAED98E93A068B3EB6654D404FC267D3296CDB6D9DBA731A66B556AB9248452D08B01C0743C3F8602FEB962FA07DFAE5DC70F51A8E1F3FC6E557ACE1645F1F7B0E3C43E76597C3A48A86ED104611AEE30050A994D9B6752BFF75EF2FF8E67D8F904AA5F8DD6FF6B1EAF22BB04C0B8D269372314CAB69CAE0966D54B5D60821A88D9CA6DED248AD50B50A079F7F8167BBBAF05C97288AF8D5BE7D388E871194298F0C210C8169089228A4A77B8C7CBE01D77579F277BFE5D31FFF184A298A80609C4D6FDFC0033B7FC615575E0908B2690F6188FCD415176619ADD132A6A3B981C5733B1000F3674D3A93A056AB72AABF8FBA7C238D2DADB45FFA0684101893A6A1B542954649791E5114B362C91BD8B76F1FD55A8D280CCF2844737323437D3D6820139541337570DBB04A4A69844C08278D559F09297AE2EE6BFFFE390E3CFE38F9A626FEF3075BC9D6E52662B298889F4218789E475DDD44586E6E6E62F6ECD9DC7ACB2DFC72EF2FB979FD7ABE7DF73D9CBB391A1A2BE2A5DCA93BA76119E35A6B74121126FA6C183C534B99D0E6C56CFDE6E7F8EA1D7FC7137B764D0E6C22D19CD96ABF7AD3FDECB3CFF2F0CF1F218822F26ECC934F3EF98A76C7B66999D6DA3865F06C2E3BA4B506199D551C3DC93E99E9CAB588F152959EDED38C0F9F9ECC84AF2AAF022F140A388ECD57EEF828EBAE5EC58E1D3BFE187CC6CCF494C173750D23860124117E9C70AE956801A66DB3F4B26564D21E73664EA36DC68C5700737680AFECF8E4C993DC74DD156C78CB9578AEC7E8E8E8AB5777E41A9A9D29836732B951C334D149FCB2A94CDA8A528AE258919E91986FDFBD83EFFDF821BA9E3FC6C99E6EFCC03F0BAC273F9C63361BD6AF67FFD387898F0EE28E4AAEBFEC32C68B45A49493CE6A92CAE7CD993367A6A604EEB856D51006424654A264228B4C5830DDC78EF24F1FBA9DEF7EF31B144341E264B9E7CE1FF2912D7FCD630FEF7E4547E70AEE974A44BFFE35372E5B4E6392E6D27C2BEB7239A2471FC5F7FD49708B4C7DA3886373DAD4C2A1A46A590E3A0AA886C9D986E2E818FF7BE78F38F2C2F328A578E8913DB4B5B54DCC42718C9FEDFE193316BF11A91408815719A5219B46694D656484DAE117593D771EBB9E3E408C264812CC7486ACED91CAE5182D96F03269BCAC351DE83E6F70A545CD344D8802F60E4A0EFCF857444A534934E54BD6E37DF216223B85994A33663B78C2C4B6A0D736F98F5382B46D92B22163B7904D0419D722DB3E8FECED6F26631B646D933A5BD3AA638452247142AD56C3680A88F6EDC5359D86A9296EEAAA611A88A8C6A855CF98618069524934582662F2DE3104391DE0E818274C7083184FC5B832C15601B68A102A220C0392C4A718FA68BF465CAD30363848B95C218E63D6AEBD963D7B1E432609D9BA3A3A66CD6B9F1278AC45CDB66DC6870B4CEBFD3DA60CF1AB15F24115115550B50A0465AA8303F40F140882D73EEF314D13D7F5705C17C771701C07DBB6711C9796D656DA67CE225BD7C03BDE751BAD2DD3181F1F53BFD875FFB129816B4F554DD3A4B7A7074E7E95388E88A2F83C329881E3BA647339EAEBEAA96F68A031DF44636323F9A6261A1A9BC8E79B28974ABA5229554F9F1AE8AB94C71E7FA4E7F85D3FDFB16DAF9ECA71316075E67235250C9DCBB78A3896B85A613B0E8EEDE0B80EAEE3E0BA2E8EEBE0791EAEEBE0DA2E8E6B63DB0EB66D2210C824D11A29B5D2BE52B224936464E0547FEF899E6387BA5F3CFCA3279ED877980B7809AD35EFFD9B0FAF3F7AF4A5CD60F8862142CBB47C04816908DF104615412084AA22751519D556BDF9BA9B172D5DFEE1C3878F70E8F917E9E86867F5AA15E4B2D94F6DDA70D5D701733219445AEBD77DFC70D34D37A573B9F4555A1BA7B66EDD7AF0CF82FFC9078448018D8DD366DD629AEE1A60C1DAB75C3F7FCB073E987BF2F74FF3FBA70ED0D13E9DD5AB5670E4F0F36CBBEF5E59299795D6C48669F500DF1AE87DF13B5AEBF04C9F9B37DFFC11B4719B52B2238E22A3E6FBCDB96CD6118610B66593ABAB470894EF47C520F01FDD76FF03EFD15AABD70D2E84686CED58F060120557499918B6EDD0D2DA4AE78225AC5EB58A4AA5C2A981A189230BA92814FA280EF533343840B55201A02EDF8A9DCE5C73AC6BFFBE5B6FBDE5AA52A9F45858ABD81A4518C58461441C2774765E329EC9E6F624719215425C2A8431C3B284DDD5D585EF072C5BB2F48B0F6CDFF9993F0B2E84102DD3175C55D7D8B4B7385C3092242693CDD2D8D844C7EC4EDAA6CFC21002A514B194C471C4D13F74D1DFDB8B69D9B85E06379D2D074178FF89C34F7C68EDDAB5B669C8924C2211453161181286D1C4265D291A1AF2EA9903CF2D066C2004821B6EB8FED6DEDE935F1E1D1DC3324C965DB6FCB95DBB1E5EFE7A14CF3736776CCA354DDBE038EE3201296108C7B62D3B9D4ADBC2302CA1B5509A4069355C29FB3D611CBE18C7FED1A0563D3CDCFFD2D340596B5D7EDBDBFEEA1B95D2F83F9C51390C43A47C79F6D3E90C879E3FDC32099E063280B574E9E2598E6D3F383030800656AF5AB1E38107776DFC93FF4868ADC780EF4E96FF5F1410D68C72B94A104667175A2FB7415353638FD67AF8DC19071A0E1E7C2159BE7CC9FBDADBDBEFEEEBEDE5A5978EDDF4BA9CF382842E2184E7797316CCEB3C5EA9565E99074C93B6D6B6F1DFFCF689B9C0E8ABE3FA64709877F9E5ABD7D5AAE5AF546B55DEF4A6D51FBC28E067CCAEB9B979F9A245F3B706BEDF025A784E6ADC8FFC4F3CF554D763C089D74A4642080F9877F5D56BF68F8F15EB3B2F99FBE205055FBF7EBD6B9AE6F29D3B773EF91A000D9D9D9DF3972F5BB2A3522DB7A944894C36ADA338A9D9967DDFCE5DBB6F7FADBE67CD9A95EAEC9C59191B1D33F2F98621E342AA6A59D6BF09217EF05AED5BB66C61D9B2C5FB7B4E1C9FD6DDDD2DFAFAFA3876FCB8D04A673299F407D6BD656DF0CE77BEF58F0E89366CD8306DCD9A350F87416894CB1552A974F18229BE71E3C69C52EA337BF7EEBDBB52A99CD05AD7CE6DDFB4E91D5FEB39DEF3D181A10192382693CE200C81EFFB28A9C9E572B44D6B05216436DB90715DF78D9E676F3185B941AAA4A3E6FB0C0E0C502E9559BC64E1FBAD0BA5B6947263A15078A052A9F403FEA46958D75E7BEDD2743A7D8BEB9A9B66CF994D269BE2F4A9D324894208412E93238802AA7E8DFEBE7EEA1BEACD94EB05D8164A19D4D7D78310E472F5A45329CAA54AD74F7FBAFDEE0BA6F8860D1B3EBC7BF7EE7B8068FEFCF98D3367CE7CBBEBBA574829BB0E1D3A7457A15060E3C61B1F34106F362C53C451C4E8E830A57205AD35B94C16D773B06D97542A45734B0B8630191C1AF6E338EE91523E2784FCDEC30F3FBA476BAD2F08F8E6CD9B1DDFF70F4B29B79BA6395708A1B4D6F7AC5CB9F2813BEEB8439DE39CD6BA756B6F1F1E1AFE966198A2A3A303A5144A4A2CCBA25C2ED3D2DA1A0BCC1F8E8C8DFCF6F4E9C1670E1E3CD803845AEBE8BC1659E761E36FD75ADB9EE73D72DF7DF755FED4B30B172E9C91CD787FA8562B755A6BB49AB07129A59E3B7FE1DC6DDBB6FDD93DE8458BE3AF9598AEB9E69AA58DF9FCB5AE61ECFDC9830F1E7ABD1B8BFF0340797E8EBAD4816B0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (175,1,'Video_terminal_(64)',0x89504E470D0A1A0A0000000D494844520000003E00000040080600000042E9C4F50000000473424954080808087C0864880000000970485973000006EC000006EC011E7538350000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000016C14944415468DEDD5B099854D5953E6FA9577B55EFDD34BDD04D0BCDD2024ADA4413062520515C413306B3C824E34C344EBE8C89CE6732CEE7C43193A81367D4A8F3E94CD49868882406454524015922220842774377D3F452BD547555752DAFDEFEE69C5B0BCD96A829327C3EBD7DABDE7BF5DEFDCF3DE73FCBBD70B66D43B18EBBEEB9FF2E97C77F6B3A2D572692499B07E81639EBDE1FFFE85F9E85B3ECE08BF5A01B6FBAE53E109CDF07E06AE44C46482693625F7F7F6B4AD19FF98F47FFE7071F4BE0D7DE70D3D7AAA736DEE972B920585202E5151590CEA4E0DDE6DFC16F8C678173B8EF78E0E1A7FEEE6C022E16E321C192CA3592D3094E6C047E56EB4C282D0DC27BEF6D0347CA86A9B553C121C04D78EB631F9B195FB87061D0170C7C529224A0E67265C1CF9F371FEE5FF1185C5B7B35BCB3730B848647DA57AE5C39E56303DC344DEEFC05E781288AE07038B0496CE6434303D0B5E70F604ACBC02B01F474EC866834AA7F6C80EFDDBB37F1F6DB6FF7088280E0B38D04B0EF9DEDD01F3F0F6A2AEB2191488300CC7DC43F36C0D11D5ABA967986E779E0381E584FE70D05FCDC4E08F53E89DF75D00D6360F3E6CDC6C78AD5F7ECE8F8513C36F672E10487D07909442E014E41C6EFBC66E8DA756713AB73B77EEBCE27430383CB80E7521C7071B0AD986DD9610BCC114D338614397324A925F7ECDAB22544B37BBA075D79E5959E05ED8BBF5BDFD4B2BA715A53832CA33B7BFBAD68223AFE7ECFE1839F7BE9A597E4B30AF8EA2FFFAD198FC7B333CF7494A92F6B96650161B50C13E813C77116DEA2E184AA68D3198E1392F89B04CF0B5124B4A0D3E54E6B6A466C6A99F5E9C39DFB9EEFD8DF717B57D7DE109C850777E34D37AB89898414685900BAAF0278D3C0C937403474E02D15385343A819E0340512D108C46331D0341D0CBCAFA00028AC2F7CF9ABD0DC32037C3E1FF4F5F680D71F80C181A3B0EDF76FDAF16858E5784EE37931831490C65F24C0E2E228DEB0611B6386620CA7E4D4403216EB8944867BC2E17004057F46F980FBCADFDC928A2726BCC2391740A26A0E3232BA25646627F552B6773A88A905F039797071163808B06D02671928181D354283E8D15E00EC2DC30013D5C24A25C1D27590D309306419C2234320CB2840B27F46031CE43E9E708E03D4260B49D220EDC2B32943531E78F5D5F5F7173772C399C09779399C614026E62C1E67D381ECEC0242C0F316F00232B56543068762A1AB723A51186256182418978383A9B3DAD0344C30F13EC3B0989918263205366474F67B53D7C04061E8D80CDD004BD3405164144E1A34390D4A3A09F2440C7439C95BE9B8944926A4E8D0802F3C1AFA368EB5C8C09171739108B404045836BF19908221A3A8D89BA8C50802056F7359022023E70D8109884341F00A36148249B3C573598ED05100EC9136A8080E242F70A204A6E8C4FB1C20A3164FE0F9243E27834236052F182E1492C300C36731A118F86E13FBC64FDA107AE81B1E9C1CFE8F91EB87068EE35590C541B0355071765C6E37B8790FC6DA3C533BF2CB3CF5A477AA0C5DFBDE05B7CF0F2DADB3C1EBF5E2750E443E771FF5782F8D8F40870707A0AE720AA451C5652503C98C022959059537407599A00926A84E03056C818220550DBF632F2B1AA4B1A9A8354905B54B92DCD3A64D0B14330012719819135514689671A6587C956376A2790B7B9AEB8CAAC0C3777C1D8E7475314D689D33076E7FF03108040360DA3986B3E9171C0B6404C106C9ED8492D25296B19109D0B30AB7E6EB008573275FA3EE895F6E80C1DAA942A8EFD0946202E7814C97D9A08ED226B566EFC641661B736BF83D36360A0D0E0B96D757C0954DD5D0204760EF5B9B72F7E13D66EE37D9E1336D21F33071D64CFB188971B9F8863E5B685EF46E4298BDC615AEE5E3209F078557558B9CC1D7163572C397C84438446E8A991D761E7CA1E11FC9E78538AA5F5243D6C613B2A243CF9EDD0C2C0123362021D135263062768CD015556560A1003A0B90CCE189FBEE822F7F66263CF2DD5B41CDA4732C9F05CFE7EE774B22780225747FB0A8C02D044E2C6B1919B4333307D466606D38D63B5D5E54D952F020930B3828B7C823F9A859F5CDDD6FDA5921E936D92CC2764AA022704230193CFD19ECDA0FF1D71E8645952A74BFF6346C79E1C9DC6C67CD057233EF460FE242E0A6CDFB8B0A1C259BA2C1190ABA14C3CE4D3197059C57756C92CB0D53A79FC3406BA8196E64F2D2AAEA8249E4679AAE294856C4EA22A6A70A7A078ECB0339E6BF0D4D8573CE990E37DEF39FD034BB0DD2C96861B6818382DABB25076A1BF21A6F078A0ADCE57246097822328E52C8BA9F1CF682AA137055C16C6BCE0530E2F0C0605A81CEA402D5B3E6A3AF360BE0C92BA8A6CD661E4D1B0474618AA64DB26FAE00AA7E661B082DED20BA3D70DEA24B20361E39C1CEB31AE2C238C18DD1208EA4B8C0BDDEC0B886D21F8F454140972423402BAFEEF89F8EB63F363C08F19EFDB06A713BAC5CF3551050E5AFFBD29760C982D97064CF4E181D0941066D5F3373F66D656D9E9E43E4762C4E3C36E34E042CD69D0BBDBD7DF0CCFAAD30141A394ED5734AC2A24697C78B92E48AAAEAA2DBED89D1BC2A990C94E09B26526908A28B624E0C410CF476C3F2739B617AD342F6836B3E7F03CC987B2ECC9A358BF96EAAAFF5F50FC01B9D07A105A337CEB673C90E0EDECA79865CFEC3E504914A25E0A11FDD0FFFFD9347F1BD32BBDE5853019FDEF81A5CBC64292336A6729C0D41BF0F44072B0D1617B8C7E78D09BC8061A44AF9178CE3EC96386C069CDE9F8845F05A3D741D3E8C313CDA1BDA9C887D2C1E07511010BC00355595E03ED803A439547464FE9CB92860CF61B2C8214F4CC4E12B37FC356CDBBAE5B881F48F4660F5AA6BE1F22BAF82A79E790E722380B2D212245E0C9B45BEACA8C025514A713873CC9762C231A3B6163E35AFB590A59A735A20954CA2CA639C8D44651869167B1F193BC47A45D598599406FC2025D14E31AB674E119F69E0F9C4D051E88A8F155E481EE4C6D55F80C58B3E838CAFB12C8FCE69C833F4BC868606786FD74E069CFE27CEE1D524E60B62599163753B4DF532162CE12054E3984DD229BA16C4E82B9F49D100BB0F77C1D1DE5E98FF8976A8AAA965DC5060EC428092B555B322085515E5C7BDF4D3175EC87A0A5EB66DDBC6DED1D6D68626163C55690BDE7C7B2F923A5F5254E0A8DEB2C880A38C2DCC968CE3D3603B0786B13BB2F6D34F3C0CBF7DFE178CCDA98C7CE7BD3F844F5CB4A8107616246467D9E9744B5426FE7ED9D2A5B06DFB76282FF1435363336CD9B18309E1B8BC199F17F07AC8768A1AC0884840693E079C32B48C661EC7C2930F52F7C8910E58F7D4BF1666E327BFF835B42D6C6742C86B49F6A776E1EFA98EAD5BB732D0EC5ED4985224EE75EBD6C1AA55AB4EBAD7E771934C8B1BC0A00EA1AA8B59E086CA7CF171BA7E5C7C8B5CC089D0D9DDCFBE534FA1262B514DBEDD9E1CEE9E1AFAF0F0309B692A473FFA6FB7C315175F086BD7AE3DE5BD7E046EDA96B7B821ABCDCB05F5429F2DAB27577CF243171D0E68686E86BA29950C50635D3578DC2E20C115C04E02CDF2F7D34CF9A1438790B87478F8DE6FC14224D319D31B60FFFEFDA7BCD78D599EC80BAEFAFA7A77F1921401D2822866E3725365A9E97165E2C9E0F1FB9CF3DAD1A5E18F6485AD9E34A3201C92744A95B6EDD3CF38115B6B532D2CF9D479ECBB9C36D812D4A90EA7E4A43CC1899A55513CE08A95CE931B8FA969C638459183CB0FD6043150090F3EB616DED8FA2E3CFBAB8D70341446DF3C810EC1382EA3CB4BC23E8D955F7DF5D5F0CE815E1879AF1F32836110A23A5CF1D9CF822CCBCC74261F2E14487D5333CADD515734E01353BDC8EA7CCEC635486BC649B34D03898E8FC34BBF7A01BE73CBD7A07F5C86BEA1089455D6C2FA5737C157565E01CF3FFB53268013CDC33C41D7E93D090C7E948318E9D5D440E8C82854A5DC70415D237C73DE3C98D8B001463B3B996F3F36E32254D64C21C62F2F1AABDF7DDD75DA55BF58877988CD03466FB27EF28CC7A2E3F0C0BDF7C0D64D1BD9C0632884E1914AD8BAFB0044221176CFA3F7FF007D7B0F7CF3CEBBC0EBF50170C76CFE4437A6BEFF3ECC4526FFF19A35701E9A0A1D140BB001619C20777783D6D8C84C894C82B4C95B5E81D19B54346617B3B929AF232027462790663939779C274BA765E8EEEC38560AC6168DC5A014031BD121B17322AAE3918121D8B86337B8FD7E1693B3982811831A8F083A657194BDE91AC847FB401E18C07316BC33F11E9808DA427333C9E4301CB6DD6E100746C1406DE12574656E3FB883252089C21902AE2B302894C23F3EFD2A736B264B3501A2190D329FB909C3360D34C109BCC787CD0F11A70B386C22A69F8031FC08E6EC3F135CE0D405708A3CB8040E9C95C8CA945A8A9862A2EB72A30371B65A206160EBC6CCCBED14586EEFC5DF934AA3D5B11C40439353551D744C9E286DEE7C7D3D55730345058EB6A3A24AFA409341719540075F4EB4C71290340AC028E1599041E563279ECB7F06FA2C64ABB1A24065E65CBECD3233A435AAC0628EEAD16570A326B9C0000715A43042E4590D1E398534C05420AA2AF8FA0C28981D669271B051C803BD4720323A06194C95595D502832701CBCCA42562D83EAC917D459A5C501347D0F6762D8A482808423D838006C3C063B3C9221473D7283A8A581C39ECBA4003213606362934EC561703404F16814D5DCCE6D1C70B0788035F4FF14C050E428E4058AEF2D2B29810B2EBC08FE30F416787D7EA845E2AB99520BC989F882E2CE382F6408F8F0D15EA8EB7C252B0005251F8B22880424C7C710C01868FA47DFD040DAC352DADCAE090712177DA61882549BB8A2A2B212AAABA74055750D78FD2570F3D7BF056EAF17A94783D050BFB17FCFAEFF2DDADA1901FEE29ABFDFBFE98D37E672935C58066DEB447FFAE71C2E8CF002FE000482A5505A5696ABB79742499076495531B00E144C3A95420D899989D4C4443A31D13B3E1EDEDAD9B1E7C9DD3B771E286E5A8A8743E06487D3CD5642C84835B43B279217B9180A6769ED4C146876B22A29B2D91259A8CA1619496525474195594396F7203B97A0DAD282821B89CFC17E23B0204551145B55154B57357568B02F76B863FF81D191D02B07F6EDFA695F5FDF19DF3292ADE99496BF89AAD56E713C5BAFE21C161BA023B7AFA5A08EA2680BC8D678DEA6EBD86C120AF5624E287C8E14A9B4A12A8A351E19333372DA8AC6229B93C9E43B89F0C88E48647467676767F2FF757D3C1F4BAFB9E59686F1C1B0A8289A6C061C99586FAFBC7BF7EE0F64D46822DCCF5F7A7367C01F6CEFEC3C049D5D87A1BF7F001A1AEBA175E639D86640CFA1CE25B7DDBCFA9D49C92ED951E6CF5907C7D70AD75D77CD1274A7F34DD3DE3F7BF6ECD7EEBEFB6EEB4301FF102F736057EAF004EB24D1D1E2F478CFE738B1ED8EBBBEB7786EDBB96E061CDBE1EE5E689AD608ADAD33587BEAF147AC3DEFEE36142583C19B6970BC806E80DFA366E4A712E3836FE238A227BEEBE28B2F16EBEACA2F478B5883EEB31C3DE38869985C3235B1DCEBF562D2620B347E3F72079956AEBAA7656479D834ACBB7EF9E28BCFFD5155FF80805D2E977F4145EDF4EFDAA6B9D830340F9D97D00C82A5152CE0C8EF75A37D6EA5A525EC3B1D2323A36072125F56562651B171029BA6A814857D8EE7B8CF35B42EDC8BCF6F4710050D5BB5EA9A87F0E7DF18383AC4D1BABB65D3F2B1C9EA72C4378140C0969C0E03C782CF52C8B278A7D3C5F97C3EA7DFEF9FD6D3D3F3B305F3E73ED33C7DE6F5BFC2E323CD38AD4D07CAEA57492EE9395DCD146A433EF4B1F9D5508FBF0AA6D4D52347E8AC364F41874D9B0328D6C6C1E972142662E3108FC758F1327F787CC8EA35D3466389F1398307778E5F76D9654EB7D3311E8B85BD14BE5346A8E53613E854BBA74D0578AEA565E6A10DAFBE3697BC310D117F57EB764BDFD735FD32C3D003DDDD8751C0099C04176A5CEBC8B4A6E90D8F3FFEB8FE61818BB54DE73EE00F967E231619E6540A525881C003FE4080ED7B99D63C030550C6AAABAC00412B2AA6C16A733823B06BC7EF199B4B2E17FA733738DD5E909C9E30AAE56B9191A38F24A243BB702CE68A1597ED4B26C6DBB85C4556D38D1CE8ECE7BC8B0D048370E040D702BC962FDBD3055AB651DADBDBCB79CEFC43682824509596B4B0657A8B5A593DC5FBC20B2F981F06383DB8B1BA7EC635BE40E552A7DB331FD38F520E833122718A50BDE8BA9C088AE3B32518DA6C6051B263F3A666E8E9642A3D6C197A3F0EE488AAA60F2B72E2FDE870DF3E7C6E12C7C05480663B111F53684C59D034D306036D9E105390394D24E4D6502844DBC89C142A4C325D0E4D419C376FEE8ED0D0A0A064B20B97B3E7CC9AB8E8A2C56544801FC8C6EDAC74FA10FF4F46E1D073B9550D21BF40E2F1043D92C7EF47DBF30B0EC98FE9A30FC94BD795D4DE70A8BB9392B4496C9E5B8E3B99CDF1DC14AAD3531A9A576FD33C354923A1D91D9D98BF1E4BFD49D5A88443F17C6922917075761EBEE4DCB6599BFB8FF6F32878E8EA38142C2FAFFA215EBFFD436DDBC68129A44AD8468BEE57F1C06027DED2DCC0B68E102F9CEE20BB151DAE2FE5C6644D728F063E2693DB3931251C0EDB5D879C97B7CE6C79B9BBBB9BC7A009928909DA377F3B0F67CFC1C5E371B1ACA2F2F5D3591F054718EEDA68DF5FDFBE7DFBCB27D781B3DA999BA0416CD1C1C1C191C1A191D5536AAAC185E6110E8F79972E5D1AE48AF96F52FEDC192747816DDA25972CBE4D96D337C9E99440E448DB825D1EB7110C96FC7CD3A6DFD1B6AF30B53F15FC1029635783AD0249F3FE8E83FB97343636A127AAB8E7AC019E8FC4B0A3BA5A25D96B454545E053177CE25E4553E6A0ADBB9C0E876C73DC619E777CE7E5975FDEF2019F49E0AB2EB978D1BE70245C2E6058DED8D4FCC65F0CF855575D7511BEEB0EF4EB37BEF2CA2B893F31F3E2CA9557DF6A1AFA0348526C8C94BB7BFD7EB46F09226156E753FD3EDF3FAFFBCDFA1FFEA9772F5BB6AC5592848E91D0105BE59D33A76DA7F897007DFDF5D74B38F827B04D952489D439F1C73CC88D375C7F757C22F66028340298D880A2A9E0C47C9D18BE0423C2BABAA998BB573BBBBA3AFF7DC99245FFB069D396A9A77BAFAAAA9FAFAC2C7FB8B7B787D50929A344B7BBF72F32E3575C71C5D730F0B0DF7AEBADCD388354838E9E6A97E26DB7DD16D8F7DEBBD191D111219D4E33FF4D612FF96C72865423203A1330232CC160A9AABA8AADEB7BBDFE7D1B36BC3E8F9EB162C58A1ACC1697783D9E2F22192ED13555CCA819181B1D63A132ADDFD7D636D49E71E0A4BA389867D6AF5F7F7BCECF2672CD9EBC5C71E9A597CEF0785C8FC9A9E45F29AA028383430C28A938458654A420BF9EC9C86CE9897CBD1B0326DA89892031136C1A1505BE14052561C88AA9B4832D6452FA4CCFA39A7F643C02A525E51B5FD9F0EAF233AEEA57E28100F249C2F0A460C64BC7F9E79F7F1976D7A0ED1F8DC5267E595555FEC9325E74969597431A838EF128C6F818DFCB6C1F5CB650825921086E17DB3242FFEAC9EDF5E06C46AB2984A66DA6F45BDA5D2967144827D398D0F850481E4374884FAF5BF7DB9B49DBCE387054F115FBF6EDBB0F3F928A534AEB59B468D13CCCA02EE5799E086F5D2C16FBC2B66DDB28F474E02CAD5FBE7CE9EB86AECFC0B013CACB2B30C64FB31DCE14EB9B6821E4DE58B112CD80AA425401F220607477E0C1D98F46639048A628FFED27816220F3665757D753C3C3C3E379133BA3AA4E591DAAF9BB9AA6ED4601EC415B6D43B0CBF1D2516C8F20C8B5F9A4E10497E6B9F4D2A5DF1E1B1DF91EA9E9F4694DE0C3A404131AA6EE94F5D1020695C6681F6E5555B5AE28DAEF3121D81F89467745A3D18E83070F0E10F3E79A998F6D3E7221E22310DB3F2198DBF03DBBB1FF35CED24B2FBEF8E2D80708661CF3F07039C5ED23C32322A92B959A4B8201966D5139ACBBBB876D0DAD9DDAF8D98D1B376E3EC5CA36D8A70178560530A7F3E9CB962D5D1D8F8DFF572C16F5D2FA16B935BFDF67FB0281544D4DD5E56BD7FE66EB47AEB99DCD079767B5635EC09E1C9A7F9467FE1F6409D128E154E8680000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (176,1,'Video_terminal_(96)',0x89504E470D0A1A0A0000000D494844520000005C0000006008060000009057158E0000000473424954080808087C086488000000097048597300000A6100000A6101FCCC4A250000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000029A94944415478DAED7D099C54D599EF7797BAB5757555EF7B03DD3408C8260A261845500C113026C485C42446A38913279979E3F8F232F39C4CE697CDE79B499CE864312ED11811350497605406E3CE22223B4D37F4BE57D77AABEE3ADF77EEBD55B79B06916037E378F91D6ED5EDAABBFCCF77FEDF7A4E71A669C2786F7FFF0F3FBA3A5858F81D5DD71BD369D993C9665449F41C002EF3837FFDFE77D79B137153E3B471E3F96C575C7145A86EFAFCC7EA2735AEC86632904C2621954AE13E85FB2488A2088B162ED8DBD37EF4E61FFECB775EF93002CE8FD785AEBCF2CA4869ED8C2783C1F00A399D068EE3415114BB65D9BEAFAF1F5E79E5F59933E72D78FCFF7EEFAEF33E02FC2FD80ACA26FF3C5C547C892449402D142A80CACA0A501595817D887F07769CFD277823FE12ECDCB9AB72FEC2F39FB8F5D6DBAB3F02FC14B6959FF9CCD905A1F0A73D1E0F5093240F03BDB2B20ACE59700E989C0E072FDC0EC3FFD8075DAB0F42D6C842595979DD9C73177DE923C04F45BAC355374A9257228EA69607DD03F5F57570EDD56BE1D277D740F92D9361D6338BE182458B2185B4535A5EBA9623EEF9106DE2785CC42B79CFB7C016106CDA7B58F3782C7A89442270FB97EE80BE9E5ED8B9E34DD8B36B0754D74E869A9ADAB36FF8DAAD73F1146F7F04F8FBD8962D5B567FB4A30B4CC30441C8039FA718095E7F650B6C7B7D334CAAAB81683C0EFD1D8760B07136A8AAFA11A5BCDFADA2BC2CD8D5DD8F600B76135DC07B60E7F6B7E0F0BE1D5058772BF49ADF80506412048341E8EB68866C56313E02FC7D6E7FDCF4FC1B01BF17789EC3C6B326083C03DF340C78E3E5E7C157B418A5FB3CA8ABAC81A1B807344D034DCD9AC968A6ED23C0DFE7D6D9DEF24BBF4F62B6B7053A67BFE6A1ED48330874176A0F1C3CD2057BF63E0BA27E08C82153353DF5F4D38F443F02FC7D6E8F3F72FF93C9786C0FC731E716C1CE37F230BD5E2F984A1B88D13BA05C7C9A713AD9E6B83DFC9159780A1B4AAB31D4DFFBE58C2C77B98E3229AEACAA657B03A9C5E7F381AEEBC8DB59EC0CA1EFBE5FFDF2960F25E0D75D775D70C992251FA8C5F2D07D776F3B7268DF35C944AC9700765A79653594574F814C26CBDEFBFD01C82AFA8EA1A181EA0F63108BBBE59B7FFF6ADB91968FEB28611CCF69C8AC1A726B16E148E1904FA17026D09C1B324C6D48CDAA7D86617618A6FE6E6CA87FDFD0D050776B6B6BE6FD5CF0DA1B6EA89ED134FFABD575B55FA9AEA9AB276B4441D36FFFBEBDB1837B77BD188BC6EF7DE8D777BF001FD28DFBD2576FD1FA7BFB05B00816B83C0DE4F65633ACBD41C35F6794801D82FF81CE03A7E0A715FCAE8CC792782C861F1DD60D6D50D7F45E45D57AD2A9D481BEEEB66674801281CACAF88CC669F3A735CDDE84F4210FF675FF88D3F97B1E7CF0DF07E143BE71D7DF74ABDCD7D7E723BC45C1C338D4067314E8061D06838027D0714FBC4B8D4C3B1D3B818EB3EF73AE0BD86F7CA81857AD590BFE4000AD1201E2F1A8591829E27A3B3BF5FEBE9E3476483A2DA712FD3D5D07339964B3222B3D713971383610DBAF6972774F4FCF10DE87FEDF1EF01B6FFE66ACB7AFB7904CB4CAB3E641B67A3670860602E8C021A89CA1828060F286021C82C9D15E43EF4F4526D1B3908DC5203AD40FC3B8A7C81FEB04FC9C1B7802BDA8B804BEF095AF2347FB9872244BA4A3ED087380BCFE2072B80CB29C810DEB7E839D11B3BEC72C1920F3D1C4A6E37B95E738D4A89046194861F7C7910AA378CD415D51FBD299644F2A9EEA50D54C4B3A9D3E824ED5C0FBA5BC0FDEB5E7214B60935D9C45C5D5A148C00B7EF0A071CCA163E21138F406052695880D78C953440F5122C705F74578AC1A9B646AAC634C5D03F458ECBD02869A652D1D1D846DEFEEC44EC4CE43B494749AEC73C48C8348711978240F081E09D2B2CC469433C26890E1E8C2BE36443C468ADD8F2DC2B94711DEBB287921ECF541385CCA8E093C67E271E353ABAEC49B619D24E3D912BAA6F5E1287AFAEDB7B7FF704200474599819C5D8C92890FC81135F00602880F8D9DA1B1816CA094E36B8EFE8E02CE11BF1890D545406841127D207A45F0883CEB2C91F6E8E07844BBD3B0A3F02D5211E9003C3F7E77368E24D498E8552AA06555747414A8BFF093A0ABF81E9B9EC9609F657030C96064651C5029D0E5242487A230D8D305C3F138F5C6A80E322183666546CE7028F902614F8C8687C3B8AFC4D62488DE051515F58FF7F6B61D1E77C05172652625888680EE34DDB090EAC3F70824723A7A25C08B1291308E6DDCF3F870A43451D8788A7270D6C36A26431369C7B03A0F7B8E00E6E9187997040A8E121E3BCEA4F7F8551D079821A17BEF41C747A2F31A205287530FD3E7E91C3A75BCD5491AD319683A22D555E148E17014D1A8CCA80C60501068053BC7546436AA4CD65129D6B47402E4D8101C6D3E08DD473B49A5CCC65B187FC0458F37414A0F080C4E43C90338B73A04F3673432734DC60792D1EBCB641550D534826492AC33300CB44F88A74D26FFD6D0A68D46818EA066D950F7A0E493F44BD8673EF0E09352C08A17049B0F48D122B082610923814A74A55307996CF498F819138715751729EF78C684584643FA51D9FDEA38CA0C3D88AFFD608821BC473C07F69CEEC157417C8D1DC8CCDE1A03CEFBB8067FF8FE5FE3FD43E984508ADFEF8F91C5C19E1D41457903D44E1040FB3888A015E36BDE565E1C713D388ACC3E4E1D80D4A02135202CCC1A21579D0253F4390A42E92AD1868A0E8D825E641CA510F7AA66538BD5487A537D5D5080D7553503547C4F7B1311D5551D12E90C446505529A008A20812E7A7190F980F7055197E068E3AC11A569B827B0B1D7D99E0483BA4A47FB95FE6E47A4717C144C08E05EAF3F4E0F65880664902F251E5D6B550733EF818369C7404881D183D1017A4DDDA4C869E86A3F02FBDEDE0631548CD366CD8559F3CF61568993E19148A279574781D559CCA5671760B6270C758460FAD4C6FCB5A9334D0B343A462E3F5A1F2CD34F6D389E80185A342954B41A768E82928CCC4F412F50E8399072140A1560A767B31A7E0E7582B7D1B69C8C89015CF279E3ECB151CA92F8103E940145B343D0647AF3B6A540710046D31CDBD3315D5760EFCEED70FF9DDF83C4B015D4FB13F7289C7FE927E18BB7FE2D1497968380C012689C99EF344611D48B9CC5E54EC03B37D2D8318BB7992FC0591D4F23C78BD60865886C0761A46038EFECFB05C78FB0FFEBE8E880BBD6BFECD836C10989A5F81170663998D6D0E55121AA340C9D9B660F6FD9600C0FD37A0EFA8E8234F2DA538FC239A5415854118139258530A7B410A20776C1C6077EC1CA1F9CF3183941B6CE6DD867E7C0A12CCE029638DDB494A3D547B607CCE53C298BD6EC839CE31D8F386E9FCAE53DD34BAA14E05048FCE807E03631122EF25282998138EC380F693B15321AEF083819258CA74DE7295C1B2922399D845A32EF823EF75FA075DF6E664148A8282DC02D2A62C2CAE5A59277860BFE25ABE84C095AD7B24685690367997EB9AFB10EA1FA16D21101F45E89BA9802372DBD02F669DD1E732814C25B53A0B8AC187ABBBA26067094B734B3E8488B23F7F1C87B2A6A7D137223D91D51B541B75EF068D92888D05046254703C2523EE0A8CA2966E500E369376773AC136D86C901A9A15467E9F316D66382EED0868EF7D8D1DE0E0FFEEBF720DADF07175CBC1C967DE66A288C94DA00737678C2B9550B7D911C3954FCD5759311F0CE89011C9F2B651896A5419B84129ED53830DD1A9373814D00D907C8432DA9AC016F7A0814C32289183A30DD29B4810B42966A32C1E67C32ED388BAF4DD3D607D679751B14D34D1B39D0ED11663AC73988F675C39D6B178390B142005BF66F867D2F3C0A7F7BDF1FC11F08019753F266EE5C6077B80F9DB37049399D67420027614BD3FD31F30D1B9033A11936E1BA24DBF5D270F047C0A72F5C0C26B9F85E0FEB8608EE1BC2012A5A64E100874E186F9BE072D77114E0810C997D3975677BBC39A05D21302ECFD57B5F7F094ACD18AC9C22C2F2C5F3D9F1FEE67761B0BB1BB85181332E47E8D62809FA3CE02B28A4F713A33449C21D7B999A89C33AAB9BE0B2D66CEC6D8BC156F90C701CA233CEFD18F882D6BD1380643F7BD171290C0599B36398CE39EC30AFDD590A5E234B4E8EAD509DCEC8C788F3A0734ED4D17E4FF454535E048DCBAF820BBEF2373073C179E0454598CDC8C7748EFB1CF49F8FCA324285744F1323E1BCC9A589F3A8FE4345C07953CBDBE166CEFA722C2C0B38703A8103AF3F000567CD6154328C2D818A8F38BD72F2D4BC448363D9588D3A945190993FB7E9320FF356891BAD3CE8B567CD85C286D950BE601902ED870B2EFB149C7BD15218EEED040E8EED2C77AC3FE097D83DE3B1D084008E160A9370025C5329BC8A7B0E952145FC46B18A01F90ED0F1EF49743A7A3BDB41A869826ED18FDEA20903E84576A532A023105D1D6DCC9220AA325C92ADEA79B00DFBBC86CDE5E628D01DD3CE0DFAA4E9B3A0A06E0688C14276AC664A03ECDEDF0289BEF65C48977371921B742F05D5FC413A5860471FC717708D3753F49004B6AA5AB16E72F02910949364970341D64C3A99808E23ADD0BC6B07F83351F8FCCA4BE0FA5BFE0A5A64150650CA6B9BA6C237FFFA5608C851D8BDFD0DB4288E828C4E1501ADDA34628EE074D3B6CFC74E61728EBD6D6348657245332F8083875AD9DF7FFBC433F0D46BFBA163FFCE9C3D9EB3CBB99176B91F758CC7325583D5D5D591F18F1622A588C8B90A82CD1E575318E0722603C182028B401CFB8AA2FEA92474B51C82FA4209AEBB6615F8FD7E76A2694D4D30F5AC197068FF7E587CE185505555058D0D0D30383404AF6E7B1B8E1E1A86F229D32080E7A4B095416E3E581EA7618B218F4066B30A7A94528E0E4CB7B833672B0B5D9D9DB07D6F333CF9F07D70F6D43AF8FD0B6F90060743F4423C16835061A10DBA798C5D2EA1844B74CF0604790F4F800F8C733CDC4C09F8A04CE921E80438D08DA764282D1B699D30C091463E36BD0ECE9F3FE79893CD9D3B17C2E13003DBD94A8A8B61F5F265B0E7C021D88656445DA091295BCEB6F338CE2999E098E451BC8400079709CD4C471C1951ECBC575EFE4FF8B73B7F0C7BDE7D978D8A032D1D3967EB270FAC87C32909AEBDEE8B30A5B111F93A607FDF76DDF035C5E745C347A389D734BD06FFDA3CAE94A2A384F3029F1FDA1ABAE3820889943C126C3B0ECBE1DF4EA58278E6B4A92C4E4D5143C3AD285D5C4E591B4A1E98A3B89C2E9D415DF0E86F1E84AF5DFF65D8BD6B178C5541D11F8DC1AF7E7E2FAC597D391C3A7080D11FB8E8C5E27011E5C963EB107EDC0BFE45CE6BA4045E74FC6026E1262ACDE1E69D9089F0795E75322A7206DE6C1D84975F798D65EFA946903C4EF2345948964EEA1141B0CBDAAC383B857B03904C66A15DD5F0EF9E1C2783ED8552144B411AEB8E0F42656525CB794A5EABB256F2484CA9B7B7B5591EB1CBD87603AFDB2F6924BCF4A74D3063C64CB46284BCFF86FF850B91260714FBBB5C78DC018F0B425A709201E401A2A74920D554D5C2C205F361ACF2094A8951E08A12C54CD9E9861D4A3550F96AF9A81D759261BDA6FCE75CA41B1FF2273944630598946C06A29D47D1860F3113D5F10DD4641C5445816B3EB706562CBF146459664A3D6B370A21902544F7A3DA59ABB2B27278F9854D56A7BB3AA603F93F2A943A6EDFB8DBE2E21D5FFE7266EDE6575848C34AD7641850142371BB6DA6CB62F0489475F7B95C418E497B329180443CC168235418864849317ECE8B12CC83DBBA334775208B7F50580139BC2852843AA072CC9B1D4D234E891C352B119E0F54D16BE7987B6B6E6E863B1FF983F376FC01B732DC828237EA6537AC5AC38D9C9F311F9A1B693DD06B0A260D47A3F0E4A38FC0E64DCF410A812FAFAA86EBBF712BCC5D702E040305AE6018E7846472523EA203E0F8D56D6EF05A5B5BE1DBDFFE36BCFACA2B501C894008DB430F3D0453A64C390664F746B1745E4DDB71E7F18FA7F0560299CF3A12934D44C14BF948ED783537DC08484CB09CA6FBEFF9093CF5DB07C1CC26F1A4D8017D9DF0A36FDF06EF6CDD061AD5A8E414A179CCF7DDAF4FA69A902A6BD7AE5D0B4F3DF514F4F5F7C34194DA81AE36F8021EB30A998EBF9115C5299625644C40D647B4FC7B26E1EC407C78187C9C0E99B1003F8EE05001507F5B333CFDE0F7475A0D83C3F0D3871F8073CE3F3FA750474A733EDA9B1B392781F8FAF5EB61C78E1DB9F7A4D8A737D6C3A697B7C2F3CF3F0F2B56AC38AE945302DBEB11A0B4BC8C62E2C1099170F4DCD2CE83466371F0F32A6446530A370A716E94D996518E3979594984253448918E22DF5CACC61C25F32703F89E3D7B46BC6F6AA883FFF74FDF84B9D3EAE1EEBBEF7ECFEF07FC3EA86FA0DCA63931128EDE62CA912E1D255B6001AC51536B1C846C37DB2DAA64069277B7734F333B386F5623EC6F6E87B6CE5ECB9B1C25D1F988BAABDF6CB3F4441CEE6C478F1E85A2C22044E329D40F7EB8F7077F0734A565CAA41A78E9ADEDEFF9FD205A4AC5E59513A2349984FB02FE84F3E44CC2D0CA90474BE57178D756BA505E5D0B9565C5505B65995C0D93AAD0CB2C049F0FAD1472ACDCC9DD13F0B861BC37E019B4D7C9310B8782F0CB3B6F87867ACB7F99D9380962E8DAB7B59D785A901FF93B80D6105A4F1343297E7F20CEBBA5CBD44156B4B1CC84314122577DEEA28F4374380EA5C5962F21A1D42F983D0D6DEA02CBEE1E2B5D07EEB02F37223A79A26DDFBE7D6C8CFCE627DF81F3CF99953B3EB9BE96ED0F1F3E71411509413014A67A96899170AF24253881CBCB1E3A0FCA6849E38E55A00E40E469CE5A703E148402EC4F83D13874F65831A1A9D3A7337B7824D6DCD8E3C67C6FC04982172C58002A5A23E954C635327468ED4BB0D7D3F19A27041CBD572F52203A638513C2E15E6F304E65C38A2DD554A29C56B4911C0BC7B76D1D1A78A74381DF3FFB24549417A3F7A7410C39365CDDC896E9208E67C0DBD55A2670639CD57C4F4A29C4F3AC5CB9121E7BEC317862D3369853530352297AA66D43A04633D0D4D4C46C6D320FC7727CACE795C02FF8C0234A0535353581CECECEF4F89A85029F14783EEFF551591AE76135DB7E9F7F4CE9063B364E61DCA18101686D3E041B9FFB135416485057E361AE3F51CCF6437F069993E0A265CBA1ACBC0247418895268F00E224CD4293856715689C3C997D7FD7DBEF40696C0D64A30908231D5F37772EAC9A391306B76D03A9B111424545AC163D17BA70006733A0FD20783C01411128443BBE800367A678876759E84E03192580168E61808F21DD94B018469BBDF9E041D8F0F8A3B0EDF5575976278560D4D5D6A033849DE70BC3C1FDDBB0ED878DEBD7C1E28B2E862BAE590B0D0886D7EBCF9929EE928CE301CE9CB26C16A278AEA31B37C2E5482B6FE2B569BCF8782B9C5B81925D451DD9D909665717446B6BA1183F47317B770753B984E8095047F815C52CC1435DE32BE1C0A5A990261787202B4508433C1E87B2D2D291F69B5DF290C0BF6DDAF80778E4FE5F3067C9D98E1C3902EB51E28947B76FCF9B684303FDB0F18975B0FB9DB7E1073FBD076AEA2681C01F1BE635E0F880A7DADB21B8772F2C3DEB2C88200F7F66D1A251F9421701E2E703087A76D6AC5C92244F295E3C212DB020D164833A3CF4EEF84A38A084D3346C9B52A81C0C0A0AD0CE4D5836333752B711959074AFFFED4323C07636E26C526E63DAD0AD2D30D0D707D53575A46D8F05D6C807B4DC012AE264CD6E191C5D356565505E5C0CCDE8DA93E413B5D13E4315BAD8345682CD430605C38B809B761283CED3861D57B470A9536C5A3EEE4A131F2FED58124CCA2980E50F310E1E4B55EA949BC446A1569E9525BB6A4938AB663C9596416219179ED9E1AC181F3FEB0D04E1993FBF05AF3677E07BD1AA8E35AC2A5A0AF36AC961F0CA7136498BCA9575FABB5DCB822C05B29C0683EACED1B413BD01F0204707826128A8C6160E33E54C75E8224D93F148505252CEA29BF45D1515B986D76840A74EE9EF61D615DE5F68DC01270E175C124E93A540F4C3EFDF7A1B9EDB7D946565349AFB4E3588A8DDE259A41C830379E6656036C8A860454AD7E058F5E1489540F016401772BF29F959868880E63D56E932879FD95A1861E50D3435C52372E0A1902FAA102A43A3E92912CF815760D33358965DC23E94F06F2C1F29589FA53946F439F679D604FB6FF97A76A22CF29C493878049B753C137C934D1460568C20042744C24521AF34399AA1260A70B8EE42365D84E32DA9A51B54894B35469876490282C2335307ECC823FB0EAB6503EB35FD13080CCE0251E0F3D974D39EF8908B16DADE1015D1E733FA9C5D4A6160236B8AB7CB99814D5F31B0F30D1E8F682810992C2BE1C061C84A3E0C2A6C92B340ABC8655329C8E2C893930948A04EE1AC2C55C1F84BB80136873B9CA15A8FCE73B9F806CF09ECA165CD6419F25CAD07038E77B496CB1BE52DB78AD50CDA057E9C352BC2744556D87BBBC89F149D8454123055082859BC391D444AE3690A08788C748BAE5A5360D28A0C3AD5BCC829D0322948A12E89F6F6A2A24F2087E7BDE469539B60381E836E54A0D6842E9D511751965D7C31FE8053E6DE237AF24A53C93065C9E7D53F033DA35BD5AF0EC8564D379703DEA903F1715447264310C1A1D8388F4009A8173CB817F50C1B415C56061E4105040B90B3D57412944414FABB7BA0BFAF07D272865190B3908DB5A88D906B3CD3093C0B1B703C9F5B12C459A5C2D9965E7A298BD7FFC73D3F63803B059EC52565689E3641323E3C63FCE3E194B917F39462D2D41304B890D7C0CFA19421506C8E8E2CA3C9A800AF51C1108249E9B86C9A05F4392505663A0E064A5C1215526F471B1C8E274EE9A608309AB743FC2B8A1A9B342508FA08C019E8B4E7AD24366F539F1B7482BDED682B037AC6D973A0BCBC0A2A2AABA0ACA292ADB745DB1FFFB0DE37EE806B0249B890B3C30FEDDC0A35D10118ECE9848E5882996534A766BC16776089EA5C6218C1D6096C0DF95F1C09764EDAADC56EA80EA5ACB2122A2AAAA01CF704704969191B1D931B67E53A8412D06D5D2D6677477BDF8E6DAFDD31FE394D94702A957028259D4AC3A1BD7B724353B667078FF7C656056233E034CBC2F1F1100A1742381C61AD10CDC0305A3CC565A55059590D9148516EA52126E9B8A74AB1C1FE3E6378389A8A0F0FB5F7F5766F3DB4F79D47745DD9B27BF76E05FEF9B6094822AB68167A3C23322E4E069CAAB1DE2B4FF8976C029BB5EC61E5C6C16001FA5B052C4045597FDA3370236188848B586D8B23A5FCA83D298F01B43C868706B5387A63F158ACA5A7B36DCBC17DEF3CD0D2D2B2EF4C597B85019ECD8AACFACA1B0CD98ACFAE98400E35380F0451B2986DCBE666F2AEBD75DC51581678222BF421254C412AE24A8F24B1BD9715F750F3B2F99C54424139464B295A4D745185FB38E1459501A9740A32B2ACA337A92A8A226BD9CC7032953CD8D9D5FEC72307F73EDCD9D9390067F0E6ACAECC7DFEFAAF6576BEDB2C398533ACB8C696EC11608C058EE8064A1C1B40712498D6DC40664D5B6567341956574C5D67EEA581A6A29C4A245A1435DB914A260ECBA9D45B6A36F9FA8E1D3BDAFE3B2FE3E1D4479BB3E7CCFDCA91D6233F48A6D32172DD3D3CB066598568B35A6BD1A02D4C4BDF59CE86AAF16C8AB76511F0A620723A7E4CC14ECBE211B68203E29A46F092085272DAB41997971417F9A81FA94353E92CC41332AB278C141553408BABAEAE146AAAAB84929292172F3A6FFAA75C7CFEA1588EE9035D3F9CE3DC5E1048BFDBF89F7D559595059D9D5DD0D1D90D9DE88C7475F540343A8C16451920D0505343AD9AF28E6FADB962F9ED86A20E2A4A8A22649ADDC82BA33A9ACC07D50937DF7CB3271E8D2EE53DDC65E8E556217116E8A6D6A565B5D754C3D8BA61C38653D609E20700B0B3A64910F9B95CF205E779FCA14FA0833247CD6683EE25F438706ABE15B6A88D61AF1661582B0C2D2CAFA8D94CCB78205D9BC8322AEA8D34F65D1C75478BA6669FC0733C4B915F6C71D3344F7A05CFD5AB574F41E57C169ABA1D6805F53CFBECB3FDD75C73CD4255CDDEA5EBEA39A88FFC789C4D9B26A51CA2FC27256824EE260F27C1DAB557EBD75E73752F12DF7F4463B1FFBF69D3A6D4B801EE0239ECF10426171495DE8837BC0C9FBFC6D035BF139BA6B416450579DB517156E624A5490B8DB1C01297CF2E979494425DFD14880D0F52969E434529C9725AD234853234F5D89644CAEA7E2249BE4E5E147F88B7F11B8A0C8F2579175F7CB1585151769BAA646FCB66B391743ACD0DE37905BB8477E9924F808CB446811DBA2E5B13571447E44BCBCACADCB95901EFA91A95F83F07FC9EEFAEF9ECA7B78723254BEFBBEFBEC4070A383E24B96B25A1A2AACF7BBCBE5B0D4DA9336819879CC92758AB520482108894B238B9E5450AD6B2D61299835E340583AC2499798C68ED10C5BCF6EA1B60F212F8F1BBAC5E8626ECAA22B3C9F3B1739DCF665275C1C2E29F35CEB968F2E15D5BFE81F4BDFB1EAFBDF6EAEF4522A1FFD3D5D981AAC52A75365975B4C11641D05985AE150AB695BC895656D6237834341A4C1C699C9C497BDB3BDA3C747F4174AE580818CDD8CAAA2AEA0CEE853FBD702E2F70F1356BAE7CF689277EBFF2447473CA1C4E139250A2E794D74F7B3839DC3F6374BEDD92DC020B70DCFB0205C07B0AA0B1B181014C09035A5486250E1485C5AAE9A1B314EF36A9B388A963F6CA114974C6ACBD5564EF92185182DAA97340CD665EDABBED797AD8DC4C82B56BAFD9D6DFDBBD80561AA2B20D925402979218FA88BD053A59655555D5FA96975FF3BBB2B74C80162E5C58505F5FB306AFFFBFB2994C037E476075EB78EE7776EE62F7452B464F9ED2A05754545FB77EFDFA474F37E091FA69E7AED71479592A71ECF2B0949C08906407026C4FABB955D54CA6F542EC19145CAEE48D4930E36F3DC7E5C9F83074B5B5808C76771A1B79BBEECD8F1D58585C0E8150899949A7B6F7B4EFBD69B8BF6B9763327EF6B357FE381A1DB8CDD455465F6E9019B863004E1BF908D3A7CFB86BC3868D77D90C20D83CE7286C1A41DACA952BCF350CF5773DDDDD15BDBD3DB9EFD3082A2E2E82D973E6FDFA77BF5B77C3E9043C5C52D5F083BAC6B937A6E2FD9E547C08E4642C376382F88E72893E9F9F799194476C689AC1266A59096B37E0F6927C94F1312C108EB61E82A32D87986B4F1DE4C3A14CD3BA298B142828A251D09B18EE7F69A8F7E8A3C3035DEFE069BAF159D862E3975F7EF92C2593DAADA8B2BD68CD5852ADE7A4DA8D01E991FA499394CD9B5F59604B370F23C3F5CE4C47EA0079F5EA5537B71E3EF40FF1449C4D08336D455B182E843967CFFBB775EBD7FFCDE9029C50AB0C452A2F2BA9ACBB22102A9A1B0C16D66633490179151F4A010DA98292014CE8F0D629A8440A52B0C3AE8E5B4E606BF60C0643B7D26D4425342740F205908A7C8A924E7565B2A9966C4ADE27A706B7F6751EDE6A5B28517C86ACFBDE2E5FF1C9D7E3B181F3096DC6D12E70DDD27DBC67AFAAAC325E7DFDADE92E9356B4F74EE372396F94F85597AFF8566757C74D34192189A39174015DA3A8B81866CE9CFD8DC71F7FFC67A7C50EB77F9F2160B788D71B682CAE6AF884E4F5D7891E6F9947F296881EA908C93E2C881E3F67156CE6579131AC79CAE868A9BAAE2435558BA35936A429DA205A23FD78AC379B4EEC1FE86EA1AC7ACAB6BFB3F6EBE3DAE1175DB818FDFEB487F2976301FE5ECF8C3C9C7AE9A52DA52E1E27C029D8E47535C93ECEE624E0A8FA467F7FF78D4343432CF8C77A03AF3F75DA54D40B754BD6AD5BB7E52FB6526CDB37490DC1EFCF66D3EDDD4776BF69DF8CBB89AED213FA8E3EAAA976D321BF7682F359C56D79BC97C34123EF138B170959B63C9F03B2C624CE3809E122EBA9A828F2EFD4B1CEB56CD3D72DE1F44C940B2DB0854D7CE69967EE5DBE7C9982F6FA2D837C944DBF21616A3BDA06B5D5B5F7E3671AC6D3D30497B498C7E93CF3345DCFB772C565BB5B8FB63438808FB66C8EB711C5D5D74F4ABFB4F9E52ADBA6374E30B205DBC12BC216B23B815BBAF4A22F6465F95B3DA84893C9347BDCF9F3E60127483E74B0B21FE8FAE1E6B19B611E673B4D97A4E7F1BDB175FB353C2F32857BB26013EF4E99D2987D6BEB8EF3E13D6A4AEDE7506D6AA3E824851EA8B2D4402A7A38180A3D565C52824683F5330C3D7DBD505E5AF25D8071FCA5AAF18C0F0D0C0C246B6AEAFF2C8AE249497561380233CE9AD9FCEA6B6F2C46E76CD8A637F324048A2890ECD5415B81D36BFDF9E75FBCB3A6A66E80CA04C93A5369CD474DFDD2074E29E38EB44529C4AD1534CC972CB9E8AB89F8F0D76574E5354373D6B1B5B81A4700F9061595159D3D3D03FF7BE7CE9DA498133678C9F71302B6AFEBB1A9856A1503D5D5D525B535952FF4F5F7416D4D1D9496969AC3B184C47DD816A1C767F7D8BC4A0F4E09627ECE9C39D3ABAACA5720CDCC1479AED8E48423DDDDDD0FEFC24DB57E28889432112E797029C444FB4B624A0EE8E79E337707ADAB38AD693A0CC7A2505E5153FA61049CB381A62057A1ADCC0474C2BC972C5BF64FC0194BD2C99457D1144E4407CCEB950C93E3559FD7D7E1F3FA7FF2BB75EBEEFE0BAF4DD78B2C5DB2E4C69E9ECE7F29AFA88418824DBAA4B66E4AE3190DF8EAD5AB97E3EEEBF81CBFDDB061C3E3A730C4C98AF02D5BB6ECD365A5C53F1B18E817ACD5FDAD2D58106251410A90512D4C2291A40962467969C583EB9F7CEA2BA7EA9B34343494CD9831BD4D4E2725E2EF8EAE4EE6F04D9ED2348F3FC32595E2199F46A1785FA975DBF0219A48AC5973E5ECE2A2C8BD838304B6060A02908827D14E4EB22ADEC1810156015C5B3B19A69F3513264F9AC2F7F4765FFFB145E7EA9FFBDC67AE3D154B69FEFCF93FAEAAAC9468DDC676049B7C00C94AD2A7CF580947E9FE32EE7E4E4314EFF1B1A79F7EFAF3EF379779E595579E8DD6DEAE81FE5E8E42BEB178DC7284548D0160D52A9A10A0980FB64A1CFE656515102A0C416B4B0BF4A1D437354DFFC5E3EB9FBCF9BDAE75D5555749B22CAFF14A9EDBBD3EEF9C2354968D9D490554B4559457C0EB6F6E13C433116CBC79722AFE11C1B9EAC891237B7123EB2180429F3E19D051AA1F6E6D69BD164C83A715F7292E63FF1013039AC2A8E48279040FC81999D595139DD0B21FBDDDDD50545AC2009224118E1C69BD093BAEF5A9A79EFAE11842415EE60592247DCEEFF3AE95242140B34062D1288BDFD3D2234E22BE305C481EB97946029EC9643E8BBB83E899BD6C5B1C05B6DB9FB1F727FEBE2C5F15F0FBF8586C18E2E862EB76D282D9DC91B0B59E22FBE9316B2135A733A8EC63381167C59F43435108A01D4DDF191AEAFF3E82FB2B9FCF877D97BA00F9F8D382C05F56100C4C41C786672B6924E3B95A1E4AACB0451404ABEC8E7E3714DDFC15A73DA7791A3DD46F261289BFB2959EE20A58E92E7E77C73700ED5E71DEBC790884F07555553C14A9F3FA7D2859455671685A6615B38958020A4241B64C08253E48E2698D15AA9BCCD2CF22E82A0BD112AF67A414ABB15154858B44C2BD8A92E669654FAAE055ED1F41A4103429C4A2A212561E42EBBAD0A891D832521C089C0045E1E28D1B9F7BEE4D522C671CE0AB56AD5A82F7F5EE962D5BDA6D8188D9A0EB36D6921DC76011BC19336654D7D5D57D1187EFE771F86E8FC7E3BF28290A9F8320042A2A2A201A1D621926AA204BA533308CEF298C4A65CD34659DA5F5A8D7044AF9A174222454E864FD4A0BC7E2F994564B2612AC63297B65E562450632014E261FFDD216FDD20BBD2E2A8A40616118294B34256FE0818D1B37DE62C7CFCF4809BF1187F8061BD4B42B5228DA362E8546C5C58B179F130E876FC0217F093EE47A7464566DDFBEFDA86D0ECE59BD7AD5BDE670F4525AF4A6ACBC9C29CA743AC9966052551D32591988725445B317B334D9EF1851B2C4E793D83AE524DDCE4AFFB4A7941A014DF58C94D724707B7AFBD8CFE1B88D0F549E29B4EBB76CDFB1E3B6E6E6E6D61191C733C94A21F145093FD8DADABA6AF7EEDD03766CC274C2BB684FCFF17ABD2BF0E157E3FB727CE07B91EFEF79F1C517074707B0484F2D5AB4E8A2AACAB20793A9A460A5FB828CBF75340F69111D1AFA567CDCB0271DF0B9CCBC55024DF3933856A6E7937CE00F06205450C8A88340EEEB272B4453F13EDA7044B4E2EB16745C0FB4B4B46CECE8E8E8B1758EE60ECE9D51805F7CF1C5A5A150A80FAD867BDBDBDBEFA19806D2C5791E8FE732EC8BCBB151D8B419EFF9AE6432F9C0E6CD9B3327089F92A417E0F94A2F5D76F18B070EECAF21A0C8F30BA342F388128BE4A1AE60A69B4A9303380B5C926256288A2D82F440734A91FF63785F5DA80B5A8787A2EFA664F9307EF7204A700B4AB46207BC34576CDF182BBC7B46017EE9A597962027B6DBCAD2BD2908E21FF05E7FBD60C1824D77DC71877132A3C5A625A2A0C24B2EB978DDC103072EA001535A5ACA68817E35CB9AE7231EB31E00591E7BF7EC85AAEA6AECB5C8FAE79E7BEE261B50638C2489E96E1F4899C4074829DFC27BFA22BE24D0DFC0FD6B48214F3CF9E49383A77A4E2743B374E9D2B5B168FF4FBB7B7BD9D2155555156C1A61556515DAEA695474054CC22925B77FFF3EB6D2D1C2458B5AB66EDDB100FD8138E4E67C9D3A68DC87F0272B8F07BA4333BE152B2EBB3D3A38F87703438362464E335EA7C58D8942A8428C2C96C2C290396952C313BB77EFB9E1D0A14389D39524F91F01F828E01DF0C5A6A6A610B6E5A2C8AF00536F42610F237FBF9148A4EF47A5BDADB7B7376373F16903E97F14E02790FC9CCF753A68E344DB7F01A92ABCEFC84E426C0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (177,1,'Workstation_(128)',0x89504E470D0A1A0A0000000D49484452000000800000007508060000008661E9610000000473424954080808087C086488000000097048597300000DD700000DD70142289B780000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00004E4C4944415478DAEDBD07985DC7752678EADE975FE78C4677A301300220C12026500CA2489112956DCADAB13E8DBFF9BE95773DB33B1E7B66763D49D4067BED9147FB79E793E7F3AC6DD9F2AC3CA42452224551244551CC142332911BA1737C39DD7B6BCF3955756FBDEE068826011AF2F091172FF47BF7DD57E79CFFFC2754959052C207B7F3777BF8E1673A62C9FADD20C4BD8978623893C9F6D7EBDECB75AFFE4A50ABBD522A2DEDBEEFBEFBFCBFABEB131F28C0B9BFFDE0C73FDDE242F0491CD97B05C00E7C2946AF2792C99D9974667BBDDE8062A9087B76EF827AAD5E6DEBE8D8DDDDDBFBB346CD7FA51AC897FFC93FFAE2C4070AF04B747BE6996752854AFD2302AD5C48B817477474B5F71905387AE408FCF1D7FF1092E90C89004AC53C78F53AAC1B1C84C1A111E8E9ED9BEBE9E97FD18DC79EAB79FE2B6E3DFFFA57BFFAD5F2070A7001DD1E7DF4A91170E42708DA01E41DF852E69D3E6314E0FFF8DFBF069DBDEBC1715C108EC05338FCF7427E09728BF3B08447111F279309E8ED5F07DDDD7D01A2C4C196968E673CCF7FB9D6F05FFE8B3FFDA383F21C08EF030538CBDB830F3EE8A65B3B6F8220B857091DAE58EB39480152C9D4F63FFEC69FA090E740A2F5AF1B1C81642A85A70DF890FA3E900134EA35C8E71659198AF91C542B25686DEB80B68E2EC8B4B4957A7A075E6BEFECFE793C9678251B735FF9FDDFFFBDF90F14E01CDE1E7AE8A7DD6EDCBF4738F25EB4D2BBF1A5AEF7723E5200D7896DFFF36F7D1B7EF1E2CF58B8D54A955E874422898A9086EEDE01E81F1C82542A132983A514D572095D460E4A853C94CB05701145BABAFBA077DD7A18DD78C9F19EBEC1E7E289C42B6E32F14A57ACF4D657BEF295C699AE29F68D6F7EEBB3CFFCF4F1AF572AE53E242C55D4EE0AAA6601152327A5BFE47BFE3C38E238BEB6BFD1A8ED1D3F797C0C7D58EEEFAFD01FDD2E63EEBD20C5BD4E0C6E442B75806D041F09F19ECF2F518804FD7D7D03F0EFFEDD5761CFDE3DB0B4B0080B8B8B70EAE4093871FC081CDCB713BFD541179082582201EDED5DE80A0621936D81382A4A5B470FB4B677B352F89E878A5084C307F6C29BAF3CBB61D3C55B37DC71CFE7BE94C5CF95A1E37314889C510126C64FFE452E97EFA4DF893FAF35C20681174B3FD805E907EAC2451C46462F868FDC798F8F9ECBC7F7D4F06D3504112428B2884A93C78B42A5F1167CDF9BF083E040B954D8B5383F77024FB4303E3E5EBFF07CF9A399623DB8137FCFBD8E109FC0FB21E14BC24608704404D3347D481E96F7AC08FC79FC7F72720AD2D90EB46CD431D4B6EEDE3ED87ECD8748D7A0542AA19B5884999929181F3F09E3278FA1C07D5400548A581CB2A80C9D68F9D9D676468B04BE4E4A313971129E79E261B8F757BE7C56D7122B157259BA20C771F4CF6CBE2317215109F8AAA4D2E0805E90D245C54804A4340C4F92214AEAC7F8908F64328BCCB655BAAE1BECF8F0477CFC9E3A121F429A329EBF84E744A541A4F1FD05CF6BCC36EAF52385427E0FFABB31FCD279549A738E36DF7EF0918D22F0EF65D62E80D87B927E5C20B480A321D0660B2B5E7C4F4A2004AB168D2D9DA7A3132DBAAD13700CF008C0C37B27BEC41CA10505BC71F3A53CA65EA30E8B4B0B48149758310E1FD8033866AC102E1E8418EDC80FC68E1C80DCD23CF4A23B79470588275315BC888470DDF0F7453F4D28F45392D78F5C24BF92058D52C5C72474277C2D70A45212F65BF49A4F172FBCBAE7A282B878EE049EA6653565A39B134B427B572F74397D804AE3DF8C4A830AD3C0A386EFA250A8885F50D048B3D8683466ABB5CA29F48D07F0F151449EE9E568F3B5679E896D3835F761B272FCA27BF15C97B3A48D64E569244E3F7B99529C4B3468696D8593FBF7032225A4322D68D5AD20F9BB253F26CB564AE1A352A0FFAF927776209D6985FE7583F83A2A85EF61F49007341AC8A3729C183B0C994C1666A727CF4E01907CD0A0B63B42C1DDF0E846688C5C03A86EF8551E0AD603817EC6C57BC7ABE3733C1A0DA8169790C4E460295FC0B736B4D507AC0884044EA8000E3F0F9C88E5D20F36AAA5461840464E929F7874F81E290CC10F294D9649981EF070D8DD380E5E1CA1B48D5F23A4711CE17FF8B68FD691B879498CA5928944E2CD78DC8DC7E3A8F17184CB045A4B9205D0D1D1894707645BB290C6B8BC59B8CBF4E21CA18121DE434343D0DFDF0F956A0DA6A7A660627C1C5099A15EF7A08ED6DE40019312A451A0342EF1780261BF572B042A86879102CA291E4FE27B32D0815C815C79AD52E4C8E1AC5C000E46997E00C5A2FC43D06227637D50C3A177D12D38AEC3EE81EE6318B3C6E83EE6402686D085425D27947288C003BC3264060D90A828EABE0A41BD0EB281C68B3FCC6F54A086E1CC3CFED8B98505585A5A0A5D0B8FA86D8C5249412E47A5E5AF87C8A45E939E4FBE8C8E38BD4E83DBF479A1FE091187BE967E572CC68CDA8DBBF81B6310C7E7A430F1449C073E49F748C0B238D0EDA834DDDD5D08DB6DD0D282C40CE1772D68408610B954E0F1EDE9EDE5F3529610910C15A001B55A0DE6E7E7617E7606AA388E64680D1C63898A1147C520C877506E99967648A65B60766632B4A4B38DEE48018A2E0E80A335BE51AF401261BCE20935A4D2700194AFD4038E965D461A58953128B809B43A548A845218520E9794072F2CE6D2C0E2800AC1AFD30F4DA03D5F8AE289078824A42408610121086AB28F3FB851ABF2E1A1C278553ACAE061FCDB40AD5E9C9981793C16507968A08C22AC4D6194BA48AD08013DC71FE6FB142DE15115AB284CB3D21864A0DFE6A2A264D269D871F30EB8F2CAED67A504E42295C24A2528AD084A6852BF0E6C94EDED1D8C00AC14880C745FC571A2A4D1E2FC0C7300E20DA4540D1CB3B5DE62A8D545FE69948D422D28556A88B7281899C0C1117C65247473A1AC04A8C06C677CAFFEEE07DA8803456CE87434B804F74004D3C72FC3D16F04EABB1AB10C2A8D56123C928C308A6C06FAFBD885F8C4C6D56327500883BF94ADC16F78788F4A83D6E1F381AFA302FB357C5C2B835FA5A30435F48FF393A738D4CAE50AA19B216D90CB846B2B0C416D1DCF1BF87E88FE4DAEC07A10433EB4ED8A2BCF8A1BD06F21C5F90F7FFCC7E4B250082E74B67742DFC0007475F5404B5BBBA508522B0784CFC9EA8907C4E22928978A50AE56A1542842BA95D21427602DA91DE20005A98780FEAB57EA80D44359868CAC46B022082D7CC98246EC57CF8516BA24FF8EC450A80F93128880DC8B126AC0C2975A4990C008A54CFC9AA390859481F8086934E90DFF39A02845B17489270D9C04F809A5147408568E807F780C3591CEE9300FC181C6171378DF297D88118FC17B421BC92E4BA18F4F4A846853AF94A1512E401DE3EA5A290F8D620E16A726611A43ABD9D905A8544E6F61C9440CCF29CF8A1B100FAAA2A1A55231F0F03ACA850AB2FA39D8B36F5F98FCA1E410B925E43390401744D93F428314924362FD463112E89AFA078761ECF8044C4F8E45A4FD6C150035B0A825AC4213BA661A18834B01B0B09C80FE269562B0001502042C7842067A2F091BC318E972F98B0C873E4B8AE319F721052B832F95B52944C1BFD37B5D42120171A27E287DB67A4729133F0687A30CCACC48461613A9040C970E9DCC7594C6FA4239781A504A56101F08E8BBE3F83C0115FC8DA59A87704A842AAB882A06B5410C8F2C9EB15BE53EE2974BD884C0B4C5C1189C521FF4BDC4790889F068092AF05FBEFE55A8115290919C45A4C0E132BEF4C9CF7C9619BB873FBE8144BB5828A01F9F8629E448745F2E95A18ECA5A2A97611A9FB311F1400956024A16D1991DE42C4E2CC1B980B56676494E254727BB4CC803642581E5FF48091C2D7C5002E71F8B6FF27890159B224BF4CD3DBD4923007D00ED8365C231302B59A01FABF329A5525F4AA44CF1128504FC23855608A567AC0CF4198944143147A18ACB3E877F079156BE60FE6D012B7015FF50AE3690DF78A8E31A3DE8BBA4BE0EFECF61050B94EE70F895AB4B582403A088869488EEFD18DE27E192CE36E63675743BE49F8938BE53A4C0482123FE6B42BF643A0503EBD7430F46060D14B4472E0EAF9594835CD1D2E202F29F79589C9B63656152886E913812858401A2491DDD413A9D5D9302944157A342F42088D40F95460996B17E2174098AB64B05D364CDF45CA383D07E965D057302E52E08117C255186685FC8906C85AE46F3087201A1405858012797786CC955E811A473901EAABFE1FBE98BC850F11C751CC4723D804A1D078AAC9C4245B21C575D472054BE4F48654DA48481169810D16B745E952822040AF8B7D295D5F0C58EF6360EDB287BD786FEFB747903C52F340248CD3F2C12189141085F30CA418ADA4A8430DB02FDEBD6A3B229E5300A52C6EF2E1672AC1CE5426E6D08A0C23F7D05ECD77DF56303750904BBB0DCFAA566CB0168CBD67E9CAC8985A8122DCC0F9824AA1F01E69EC84CC46EF0B150A0A049254921CE4A204265744848429DCB25FFEFD2C731EA20162F1467604746824788CF23C4D73D524CA5306EE0B02A07A0EE8D5015CF0858A0BE56771944EF517C57322204FCC86121E328A12B11D0D5D30D27C68E4319A1BAB5B5EDB47903698781FAB7DB082023B3034B07C27B9086145AD1823E671C3943ABDBC5EEA0943F7B0570580168903934D18C930852C8C6150A04320A05038DE07CAFFF161E64D552933EFD9A798F2F9530C812E93C5E10BDE6EBCF1194D163154100D72318A65D115A252905BB1CED26180D285F219400F368ED454F3202388E0A4F295425B71273543E831EBB31F51A87AF8EFEBBABDFAB8F98F9ACDB7C1EF35E0417E85F3FC496488931A9ADDB10D4405A4710283906528F3744AEE01D10C016B6010E13EF4B197D307CBC260E008285029A9D23D360CBC00805945A18B8A544B0604B20080DC2D0102D05899F2FD57B09153C1169AD420562E7AEB260129C1E14DF17E16BE673B61BA0CF93C018DCDD80BF9B90C028A8034A13E97325D4989A1770A4A0C8A37A9FF23D0ACEA590213123AB57D0AF88A24A8629221768EB5704D370043A95E24B42BB03E208FDBDFDFCDAE2D2A27255864BAD9645D424D0C1C17DE4E1EF7336B2ABAB1B3ABBBA30FC6B0BFDF759218025682B6803B94612C89940265B742FC93737185E199A19F0349FD2164EC95911A195827816B0A37C9C90215760E1B3AF57B9017EBFCF690135908E62FE260A519181D0DC410D26FD9DAC4DA51402BE46A66B9456162E94918D93E0991C3A1C23E025BA5AF0CC50B528B5608D3035C0B31B104AD90568572094EF97C2D13E5D2931F10B5616ED46A89297C0989C64915BCA2D63E10AFF756A21B461C9615E86D3D885928FC46E0C6AD57DC8236A484E7D854CF8378338E96C968B42999616EE1920E5393D02C09A22819871014A01B405A0FF94310DFD5A38E4A37980747228D0BE5E11789D1F7095967AF83C16268DB4F0B5C5ABB012783049393C5FB33F2D74128E17E81C029F0B420E4103A21494343340F81550A49CB8502E40062A44D4618576BE8ECEFC0561AE43B07F57C4315208EDF3C3ECA2A395D4F000850941A08921184BC72824A5BAC12A9572732868D5146CD836EEA10B9123118FB152C5632EBB2B0F15B9582C403EBF8491458D09DEE2621126276638EF2FFD3ACB85124882126742F063EA2F4CA07250C9784D790045021DAD00BE0E0315F0ABE82E2261A043304EB408D02E40801973118435641DB7030B47A18113E6017C8810C46411395944FC804346A15C888E201CC53CF9DA689048B16A9C8A961C0B3B1608AAAB55561F55092C4B2697A344A9C89C4E3409CDEBF9AFA42CBE4644AD18E6BDA015424010868D311C78BA51EE5E8659C69515C628EDAB0B63DA5A2B9522CC1796D01D7A9CDA65BE15A8D3B8780D1944805426CB7C88AE8342C4FCE22C64B3693E17F18F72A108B98505CE8E5269F8DDB900F39358CB9A49894103124610E2BF8A0A981C9A2C98B6623F0C05156A1852A8DEACE362CD1DC2ECA2B47208529DDBD195418312F4BC4AAF6982177159A5B28A2EA86490CB0A6C62FA6582A3FC8030FE1D74042015C4076AA0F937E824937AAF52A2C0D78927EDEEDC8456004A06190EB04A1818680850C28F685D4B6B07747676731C4F4A446D62F53ADD57F839F506361AEA3E99A5DE9D385BBD219BF40DB15802C723A692595E63ED2EC0F7FDA8E811F811A1902A21C2F212964204102982142122285FA9433F8D0E21ECEB605F70C8277910FD10171519348923932F105AB1546847DA8E210FC11F971414346BCD63A1A96BD0E4905040D802B1C23A41B1BCCEA469B4234D34215EA03F1FE6068403060FFC265408209648F14FA064CD0AFF6BA381A95CCAE5452008B37B3C8228483A2755FCD20D8F637E72059468328F4345328DA4521F81CA60AE4901A872C70A40631D5324D067EBD331BA90BA3064334EC919345604A799108AB088242C145050CC6F163A6DEC485D2BD0995B9DD4318801D2248B04427EC0EF2132484A11E3EB2441B9A19586AEC2089AADDFF2FD3A47202D85089A98BEF6F4E4E7A5FA3B6720357954EF1561B2C8D7A8E03A09A500B5FAEA1CA059FE61AEFFD4B17DDC9FE0EA10947D3A44297265E13A6FC00D3B0EBBB2A85BCB16BC54E1656050612D2EC075D8FF80B960CA73DB2EC0502A1DD73B9AFCF9965298CF86F510037981D0D92F4D0ACDC080490E4504D013564A908824BD86F177B9A1D2BB31C709D1811487AA87C240B316BC0213950D349941430503EDEA0210E1EB5C94755464C2C44E4248061D5FA59F85B96E11E82262F47926C66E5223C0993800848221C1D510DE7B0646345CFB3ADD4DEE45597880964E848E2B9E94EE2DD5D10534B809940A48C07C2863093EEA1C5E3309E4048AC7F55A10746E8A0284A24F60C5A364BC8E15A30A6185FA4EC8D9C24CA1AF5054BB0325345FA7843991A32303A12307A1134BE67D7411A57AB3F041F3025351E4B42E345B3D040A9E758CA2327E3ADB27C062FC0CF7CAE70338CD21A0CE82469C41450F2CF0401981AF23014793AE1A2280B42C40DA4DA5320A035968F8F94CB695D93FF515C4630EDF4BEEFD33295E3F4CF79A8291793E37330192A2020B05A48C5CC29A1480CA8E7452BEBE1815B9CA38E048B40CBDD23026B5DF533D21110134029732721522D490A866203447F0439873C242103DF02CC52089951A38C49CBD53CD2944FA024D38293AE17B0734197442C81261EE4C2785B40F0F42C394DAE27468074AB0814E14A99C84760D2C7C374A0737B90D4D1CB502341A2B2B82CD1C0074653308DBCC0D09155A590C3934114C989D6D8AF3F5796460F18028FBB8964C102B00B516B10BD0B74A3E0F99610179CF227E1A96B56CA8641016881C004BF8A6C425F4058B306CF4434E10913E6530A2295A2034C857034EF1C6400F90B49A4D40672C15AE438214C45521AB084C3A07C2244C6489222C16B13BD06D701CF2991C8000CD05A22E61551D74C2D05065144D822860F6AD5C4063A50BB0D020B03A8248784258BD469AE846E4D0228AB08A522CF3F921029876EC35284025954E4BF43561DF54616909D22EC69A7E4C6B9AB16A5539A1C1660BD28A11E8C250188F6B38377C8153BE9ADDABD4AFE60061CE46E7ED49F8F8BE0AC21D3D8FEB48C3D7CA62482188E68213E70EC8155047329854AD6AFBE24112760A1807C9B79239563C2F8228051CB9089D0C0AD47B544BB7815915510837167280D386810AFB2317803F3EB73007C9A46AE7A67980329188FAF9E46A966F2B05AC807E3383684DB5807FF65BBF217FFB5FFE5B24D95E4A6A2FB0880AD041AC88F4436B7320A370C9D53ED55C880BCB5C81167EC8E7C2BF41939F5721218415441274C167CFCA7508E5771551F42DA228746E20CC1CEADA0137920845022108A24651CADF3B5132C7C07728641665E426029DFEF6B5E0A56C5618FE57389A1412FAB89C82A630AD56ADF25CBFD5AB81512A38DD92C538BF00C58222762C3CCA6A06CA82A58CF84210D601025D9493AC6C9CA4D3DDD7A6F024A504B1C65A00A453E90A5E618A7ACCE9BBF2F902F40BDD07671A38740BB78229887AE6A571E106BA0404C20E0BAD7E3B6EDA80303288E9CFEA023C94D0F2890F7348642A8B9AE1873ED3948C03A15BCA945611F9A3B094432A2D24A99B4194378AE0DD7438B00A0875BD7E9827103AE721420B0F0CD90BB984F1F34A613CFC46EA09A8542B50AE94B9347BA63090C6B9985BD4193F3D91C6F40898AAA186750827DC987B9349340AA13F1B5618057734AF490162F144D9759D4EBFE1B336B2B6312710BA4152848C3F30506F8587AE76138E34D3C9EC6E17D36AA0DD82B65A5322F5B57595F1BB6BD4D3E78AA6241257113559F44DA2C9542D8D0BD11942450E55C4C07D44BA010402154F8313F9D250C8569E4055045D9DF831CD66BA2184F98108C91A7F4E87A0A400BDBD3D70F8F0112897A929A463D530D02468E80CD9D68E2612C7B981780C15A88A0A14876AB9124EAE59317358877B4DCF4560550ACFFEC6B24C2412254A2D1A90A24907541256BDE2D62C2161B2E86109C0EA58350AA1FC15F9EEC86F6992082AA9E3AB4E6CD55B40B9702457054FB55A987E415F87599E4609CFF41498BE01A9A206523C0381BE2E1A7192CA35BD00564F80E903B01E736F00D7FB5DDD1720F4A17B004C6F007FC6D57D01D17B58D95009D60D0FF3B517113D434B6EEA0550D74F9352026AB9B3423623C4DFDE2EE063977442E2EB3EB46D6AD531FECA6C1F2912210ECD49A0CF8D8C0C87825FEB2415568078225170543B4D88DD3423485A961B4240287465C5F49F0FB6024018BA04FA6FBE7E9D0F2D60D32C52C3274B0D5F1345D370D2DC64D2D083E719E508548E41450CEA3B022DFC40934B760B5A808E6E28E1092EA410E1EB4EA80C6A0E83B34C41F03E16357F844A13534AE1E8D7C8D5D0420E34004BB9A550E8AC0886AD6B2B2145235F6F876D4661D25043F2ED41AE75096219A739C52B9BC3BD3B6EBF153EFDC97BB807F19FFEE3AFE8B99DD1BC85D859BA01B5764D225974CD090C692114D0A4CA401F082B15ACE37BF3F640AA890E365D7264E4CBC1E20E60F20128C43CBA1C4E44099330D2657CDD75EC98DA4153512972118E9E88EA81AA47D0395DA10A57716A0C75745E20D05C40A88135797C49D183AF5D1328462BAC8881923F8ED520A26A58812E17EBAC229E33D9DACA3F8DFAF4A52E75DB6E4042540CA2D945F962290CDB0C029CAC6661BCE041F7E15E28CF5543E4582DDC7BE0BB0FB10C2885FFBBFFCBBFD5B9056DD578C1DD67312F305400848D12D7D3AD0A1FD50338D80FA76CC9B0A357E8B0CACCAC11860D4AC7EA6051A11D470FC2243844945AC6EB2D52F95392A08C904DFF4044EEFC65E5662122BFC31943A12B83A6052D301DE1926B051C1940C409C2641698303188923026BD2BA21E01D30760B2862A1F0F4D3D853416A94CEB3B56040D4C7FFA53F7C2B7FFE63B619B98A90E7EF3B5BC7AFE6F82D342FFF24523404F60B127325D7CF165B06E68F4EC1580D3C121846841E97CB3146059BF08D3C34297078535ED0AC04A12E9E48F4D04ED2EB10A5E7425009E36E65B73068455DB8B2C3FCA05A80293088B55CA4DA8CA9EAB390517501C754FD7CFE962AE0D08D3DFA4C358130BA810D7E7E28F08C3415F2B89D0790511368C46EDE3BE8EC7E319D5CAD5A8D5C2E61AC7012B5C8A52F4D75C732D97AC1F7BEC47B0B8B0C88DAB32D06DF4260B2154628BDBE7388CE5699B4C54A523746E26A6F31234C3270623C32370D5753B60FDD0C6B3E602A102B86ECC742DEB40BBA1ADDF24564CB60ACC3F204D472DA8491B4267FECCC5CBB04AAF9FEB622091B7624375079B8620B674B0AC989D3844C8605AC54C4A39D06D5C5244CDA8FA7B68DC55D7B0561422858ED096AF4239572B8408AF53378084A54DA5CED2F40AFA0198E273A02B82E6330D42B1A4EA09A0F67065E9AAC610A57A9B5BB5B66DDB06975E7A299790692228157AEA3CFFAFC129E5BA7EDE085F6BAC782F2D2B431356D57D227CBED68921742B2B04D0050C76015ED3DC7929C30048E705C2674AE86CFA6A924520AD38D051215A14193850A8AB1CBF63FA0C4DCC4C906EE27D33214544EEC1349BA8DE7C2D7819597A441C15723852D9BB23B562381ABE75162F0A15CDEB51B2C7A48982C0D5CF2174062A7A34AF12D984B02B888465FA2BA3C3D1D3DC027837B7A57C1106FAFB617E6EE69CAF906221806BB900E0694F52581180C96609D1247C6BB92916AE9ABAA50B437AD64F10461002AAC8F889D5BBFA5C12A21A8249AEF84DD3C8546460548E8B2F860CEA70D2D19181E95B60B224CCBD410A08671B498BBC4A69FCBF0889A1D082E55E469303087980794D210B452134EB289654D9BF86C5012262AE2B8EEF623D2E9A6CD2D2DE0D8974163A3B3B607A66F63C2A8035B75AF8F5301308BA1C1AC59951746088A1E9A431966E3AF578387587362D7850F60235D9239A7AA8274A6B14B12D7ED9C4544607E9E8484084962FC3D0316A3D938112A06B944128652152284212A8268048DDFD0BA60144B7914549224797BF83B07247BFCFD3492A420057E7F17936B1D408128826240882B523004DFE9C9C99863886A39E5EEBE07C2840995B8DAD1226378508685A26433A3A13E6AC440521C218226CC58C6A57CA928B1AFAADECAF2E2B47AE86F90044D3CF18014CB590605744C257BD7EA6E74F84F3F93817A0E71E706A59E7181C131E3A4E247CD0EB19397A0A869E8B18560EA58A0A543530AA87F04C2469425DFC8E78322C093353371DD6BA6A1812C235DE68718ABE9E36145400C56AE53CBA80900368B02517603534186B948E6C9E4F0FB269758F4093B0B0A6AE73F06564BA0D692A88102A856BADC6A5846D7881881A456454733085A568E651331750797D474D0D1742878596DB90C61DE8C9253AB6545DB84E64F942359A3037F0A33A81691937731A180102B07A023CED02340F702234584BAB56B312C47981A8F37173EC28C05EF420740146C4CB895FA8CFFA35192D791A683837D30DC94F727347983E16617410583D06A6D6E683D0295F11FAF9706A99540A63122B26B23755BCB038A2FF1EF6D5596959D36F17A58AF552386EF49CD3BCFA79382D8C53C1EA7D8EF99CEE4EA6E9D91C1134EAABC4ED326C035FEB5A42B3734B70FCD43424B21D70C9A5973765FCCEA502842E20CCD6799E15F6699264B5898105F5CDAF5BB503DD1258AC07561248878F5A1BA411A034A55B4D200DCB0F745828EDDAC3B295330233DFCE9EA368D2CE46D120544AA9C34DD0F30CECF97E2C64279A8F68EA04BC36926BA594850885CF731363314EBF526B1D1D76AA372CEAC8B57180D9F979383E390B1DDDFD902B942087D1C0F0C8F0F9428028FEA57FEBE53C241D8872003AFC015D1593F65C7FB013421149A45BD597CCFA97D70AA2F4A866E5DA9AC370CEB26C1F22C1857586A69A818C6A0D60597B60B9077B826A5833D0134B1CCBA21D35CB6879ADC0759BEB09FC39379AA08AD2E7420FD5F3693937BB6A1775EBAC0D024E9E9A82A1A161D872E94570CDF66DDC7338303078BE5D80125561611E326E1096834D26B0B9E5DD7A3D548ED05FB0E0B8A3D79EB428AD15BDA4887ADE4C66CEB803094D02947A7AB6B4E03C7C6C846E72E632720F0A21A455A089E63AF0BD2FC31C8111B6E3341785C219C246F8C2561875046E1CBABB3B59E834A1232AE044797CB9460E902B96219D4A414F57070CAF1F40A21987ECF2E9E7E74E01DC48FED414B2B0001947D33369317B11095B08EB353B1BAD5FAFF832F4EDA1C04573ABB96C2A3387CB218465671F9AA13F00FBF3918043D70051093AB47C88A2031B117C4B794C9530E20162D96B4AD0667A7A287C8D028113839E9E3EFE7E9A2318093E68CAF7AFE5D6DBD90EF942114E4D4EC381C3633C33686961FEBC440165553E94A1252E1572D0E5503A3815C27CD8222E74E826ACB0AF294F00CCF8EBBE0C7B0AC2260CD342AEAB5686AC31630F9B67A3C8A0B9E740A881D5DDC1D2EA446E5AA3C0A0869D2ED62120F7184AAB78A453CCAE34338BA36418672E0308AF88BE8F15821B54021E03CAD3D354741F11747064048E1E390AA562A1391BA8C367582307D8383A0C6FED39C8E693A25CFFC8104C8C9F3A3F6160D3DA36401316EB90308B1884166F41BE13358984DDAD4284505FF102685E584F84E7927A3122A50CBA1B878B48222CD29870D15ECE8DADDA111194EB882324924C1CF51431FD3C228D227423816911338AA2C34F0794A5ABC490085741094C3158877CBCA29ECE00321A483575BDA3A707613AC6CBB504BA6B89B982D6ECB5E6815AB219D876D9665ED76868FD3AEED1A005A4CE8B02A4742EDB5E5151D2CA9F56D2471A7E27A445F4A20910E679D5D782344A63450C225A2436847161CFBB3579025D3E068BFDFB3AAF1F58566F2286A895DAD142350D2BA62EA03805277CB88CAC5E932681A4AB8AAA72A8EB831A6D4CBD83945E2180B17CD0135855612BD5D60EC4A54C28E840B44A9922C96BCF046633299E3C323F33C159C6F396094CA5D33A9F2FA2146CD05865116507562C996908A01662CD974DEF115105297421A14298EAA19D3534D9059D78626BB5A72449A729AA8010F245D8A62EC3256DA4EE55B4DC03E873F29A06322A56E91474DC71CCF423CEE84930D3DB8388001A45B09421996D61B248936CA42578B3EE4270016ECE614860259DC94861B140961377095BF57E2BEC0BF751680AFB04877D4D2E234406D11C425AC9A468667FD46F104E3B5C1642842B661A56DD2458A310D19A46CC037453A84D22039B5086F986A8972F248242857C423F173A0720CC1A45D67D229DE1CD20A841A3798DA077D7B0F9BE2900CD0D48265255A18B34A158AC29E386C587D201FBA1267E81AAF5473237D6EF34050986D085EB445BCA1058E122584BC819722AC3295AC6920DB0EA50D10856F38270992561046EA791ADE64DAD5CBE154130EBD7593F1116BE28F1A32302C728877A1E4F6779F9166AFB6EEEE38BBA7A2F5404A069CA1557371286F3CF82C6AA615FD46D22A2E5DEF1BE1648AB8024C06A1EB05E3353B4653312E8FC3F9812AD889A69781A591318441D368115F685D9C6A6BA811DF737CFB00996650E7D90CB1404347CEB32B011BA56044728343068414D21BC8C0D377D06CD933674A87AC12A80DD1A1EFED16F58CFACB6B0B0141C31FF9A99C1B2C2FA05AC720A5D5011CDA9E4F0BC515D5AC8A8CB58580B14B00B300A180A5A5AF31096E50340366504ED5A81B492447612C9D32E21B27A116EF3666702CD114BA5F875B57A77D4C4698E0B5103C2DEE1382F1BEF58D04B24A9A185E284D6EFD8E56123348AF90368B27E7E8BB3D2FAC189C2493662270A2BA5359B465ACBC2085D4A2584709B6A0D06D675B75E104D62F5CD02161035A38659C670DE62D450E2D87C4042B86E11C7FE4E735D5F98E56C84EA05D07C115C5EBF5FF0BC7E9EFCC99358CC988935D702DE570488C713459308315DBD8EE90B0CADD6B656A5F59CEF97D0E426C0CE17585B6F4411A13EA723C2D4B0BDFA082C3B85B59F84F2E8D29E98627C7F60B912B30AA70C398DB416E70DA4B500634818AD65EA79114B194E42F1F41A39426702815D81BA7E6EC8C4EF4E065548D222D2D4E21EAC5CB1433D3FF702A4FAC0DCDC1C54ABD5F78600C0EB04B8617D9FFF0D1AE1B430B50273D3EAC76A9E9BB696D3857DCBA3007B2A3458A965299A7B0FA4D57C2A2230D0D7116515228515614EC24C4F8F2A7F2AD367878541106523997D783EBB3CF0EABC6A07ADD4C1F718D37BB43247BD0A8D4A95F3FC6A39F91254F205282D2DC2DCF414CCCDCE412E97D78B48F9CD616098EC5ABB06D08254345D8C26ECE6F3792895CA50295738DD5CABD6A054CE43BD5A87CEDE01F8D8C7EE7ED74DA1CD9DC1DA070B1C003BEC033BEC0303FDD1627876BB5893F5879544CBFA4573D51096A716C26E6A19B6A38B309D1C095F8468104002A1378BD79C426B8C076A6F00122A731914A4F06A7A53892A046831B499448306B2508085991928A0000BA5CAEAF13ABEB6FDEAED70E2F809B4B8793DEB2708F74A32255F76457A070F23789E5C224E4F0168B5D1B98525985F588442BE0885220ABA5864C499989C84220A3E9BCD70E7AFC7136962BCA23B71904C2A0B29147AA5548002FE8E9635168B9A14C0341B98C53DC0AB867C000C6BD72DDF34E4753D372F92F9E9AC1F56B17E8B33E85E78724059D98076598736BF8A026D400C05E952730A1E2E6D5AD5A8A1302B20687B141264B984C2444196F270726A0AE6110E73F982DA95434FDB36F7EA881EAB52AE13C5F676A8B7ACAFFEF2CB2F854BB75C0377DEF931F8C33FF803AB27A179155F4AA85DB2FD6A5ED49156FD72748751A0A7722FBFCDCF2FC1D33F7F0E4E1E1FE33999AAE1C4E5BE84818101DE88A265A09FCF55A35DC33429A57D8DE87BE3F1B45A9C4A34C07D17CD22B602945D6B3E192B81D75819F6590D1D0DB95AD807D0227C6885061E28445FEDCC4142142440B442825981C2137514240A53A23045A588C22CC0E2D404E7BB7722A47A9E77563F822776EAC30C1EDD1319238113243BA112044D655C2764F55A199A1421EA78A2E6F01AADD3C74C5FF08E5D240C7A4E35FA7583433030B81E868636C0CCF404BCF6CA8B7C1DB61B0802B962B6C6F1931370F4C861EE35A0AD631C61BA8E627CD06E21B49B19FD068F9A4EA4A26E2C2B5A1B8192758806ADB4946C36FBDE38808A02C2D9216C7117BB0588D3562B688DD42748076D1F470B21207EA245E23D09B25EE17B592D429E7CE2F4348CCDCFABCD9DCEF34D65DE020EBF5C5A50DA45810724785204FC1B29845606C7F19B50C09476CFA404A4026FEEDC055DDD3DF0B3F163B065EB55B06EFD7A16785757EF0AB4C8E59694FF6637605623E586D3150A40934F95B0DD70222B5D5F4C2B337D3B2D191B8BC7D4C452A966609252D0127304D0B1641C7AFB06782BBCF7A600A6335833E7177EFC43709F7C0499A6D794D3E1C50A1B0DB8906E6AA2A45E5A0D85EFFA962290D50791F5BBA404B4DE202982886AFB460968F03B3ABBA1BBA7078F5E167C77771F6FEDC65BB584118168EEDF9B9982B1A30761F7AE375020EBC35D554C1848FB202EBFEE5432ADD609D6EB1D2BF472B8A894E47D02BB19EE7D760FEA6FDC828F210595F063F1443833E8BD46016557AF75633C1A2F49E637F702F0F6641798F05728022DB9227C9ED5E31845D068C02E81B6AF7312D08290493B7CD0664CBD285CDABB979A3ABA70D0692CA20CA0B5AFA2BE15F239989A38C57BFBD07E7DC43D78F7CF9656FCFC80DAF4CAC4FF1A5150882BE66C8F0C0FC2E6CD17F30AE16DED6D2C741226ADF241C927AAC8D66A553555CC9E1A469B796A83A58D2A5A28219180F78800561868B77009BD79A05A9BA60E17F28D0685D6E06FC58384DBD6DECE3B83B6B577F0E3767AADAD13D2997468C536EC375BB61A8B422EC77BF5D0D4AC3914F8CCEC346F6CD1DADA014ECCE5F7B76B571009DE89F622D6055434A8150A904E25E09EBBEF50C2ADD757CE0DA4657BF5F67B856209BF7B16728B398E1488FCD14EA3E56201BAFBD6C13D9FF854531888F21242FF18799A4AD44A17106E950E2B148117427C9FD299DC8F178F31E432D4E17D426FFD4A1642D69B6D6983361434099CAC58EDE4998D08E132680F2DDA84B4E11E812A61945B5C80C58505F4E10BBCFB47017DF9225A3AE51FC9BA091548B8C9542B9F4F9A45A8CDFC3F1D25A9AD11EDE5E95536D05B0501D4654469628A2469EFC64514324D0B9B9B9FE37D0872B94528A2D05BF03A1C37A936DA243E869FA105278B78BD34D3B8A525DA00DEF71A661755A915412E57846617808395C6415503249AFA00C8EF3B187298415C9E1E75C4F24249C47EE96F8AC4A8ED58D57D8C67BDB040E331255CD4DEA4DEAA55ED99E7447ED1319DBA6E53C7AEA3977631EF6B6A5DB306B8942FE18016192E69FF3FB51277951F174BB4D72EC6DD6E1C859BE1739ADF914CB5853B8AA9CDB1235267829F30D4734493D0CD381834909EBF8203D078E60A659846D2BC94CBC3E4C4386F7049E7EFE9EB43455CE27374777641272259A552E50C251984AFD7365008E1AF9225AC917CE356C3342942602B81AD00454A6C6778F7C928FCE16558C8DF246408B1D1E05BA4C559261C638167F85B28D065E70A174CB4E1C76E4AB19632AF544ABCBC3AC5C8F57A2DA8576B5EBD51AD639452450BAA964B2517A135EE2633ED28AAB8E326342A342B6B3CDD1AB6B6DBFD7C8EC66FBD198A5A6E56D8C21591E003714634F065B022505F44C57CF8A11FAA750C755B9D5AE54BED676C5AF5A8E59C908ADC022907CF41E0245C03AAD51ABE2FC5E867DF4AC53CCD58A5DD2C3CEB005B096C05786EDB15DB6BC74E3C9E74F164BCCBB754A1D57292D5DCA7212D99484B36CDC97DA9CF45FBF5D565B4D484F9E1BAED46D78644B41E85AE0709D5F68D776A917A122211AEE1E151B8E4B22DB071F3660A97BEF3B9BB6FFE2AB956FDC3B3FA68779C587FDFBAE1ED1DDDFD97B4B6765E124B24BA1C6DBE41283CA7D9AA1D6B4A78205611FCDAD060B565DC7308DD46E9A330542FC449EB08BB71E6103EAF1BDC5011012D8C89A84979EC24A478A7B281C1215E34CABEE5F3397A81528334ABB40AD61A1D4632A102FCB3DFFA8D996F7CF35B1BEFBCE3967B77BEF1DA0D3210C2AA15AD524292BA699B2672E9A88081C6B1FEA29D8EF4C9BDCCA3E5CF21E4CF609835E305FE02C2F0FCD1C30716C7C7C7C34AC6777EF0B389F5EB07D751CE7B768E88D73CFA413A16D8C755AA555E63A7B3AB137ABABBF0E8E690CD75306C4A4A3A4FC1FAC16546367C2D08BC85A9F163C7F1E8C4E73DED9D3D1B7BFA872EC6FB4DA94CEBB06AFED104AE4929C4394303B94A2288C23BB50BA8B5A806EF2DEC42DC8DB1A05919120E5A3F721147F1348A54D2A934E7032819B55A18582E15B35A014A1049C8E30E0B413625651329412598C4BBFF571FE7FDA68909FE6E113369C6FFF2D0538B78BF0E2C843179774A95920F2458A450CFD72B6B9ABEFBA58585DE54AA659BEFD7F218AA1A8D6FE80168588AB1945B9C1BC763373EEE4A26D3FDBD831B367475F76F6869EFD884C39E59331A9808E20C68B01A7DA655C0E9F708B399262D938F3CA8AFAF17A39556BCEF536B17076A73C82AEDAEAE2304E24EC239FD52305EA341FE9F34A3AECD7639B983D8FB19A289885DF22A2E7850CC9241FFD6EDC4B3DB11DE2E9E9E9AEC1E1C5C1F5591EDAE625404DA4225F033D6D2A84158C62D164B9FEEEA1BFC3425845039503710118453C2532CE17B1664E0CD2239D85B2E2DEDC23754B4422CD56A958953C7DE3E864707BA96F6EEFEF503BDFD4323ED1D5DA3480AFB9AD020DCA3C85A172B5CBB3838231AAC363BB8A7A713B66CB99C7D7C3A9D82145A33CD43A4052789A06220C8CBC252EE255885E8AD165294CB85B1F25C79D7817D3B0F58BEDFB73AEEE4FBA200220AA81DE397D3E9D68BDC78E22A379EBCDE8DC5AE45B8DB803FACD5CC2BF0F41AF84244051A93AE25F24803149ED6DE4F0FFF1BDDB889A1516DAD5277D152B2387878D4FB0CB14B24529F4A2607652C9E58C4D7F6560A734FD7AAE531FC8259BC48429FF4E2ECE4D4E2DCD4187ECB1B99D68EB6FE75C343C81D8691730CC7A488D98BA269CCB668B35AC0693534588D0374B563187BD9E6A6358228CDEE9F651D04D97F3DB7B43096CF2F1D9C9B9EDCBD77E7EB6F2D2CCCCE6BF757D2F765ADEC8DA86F7625093CE7D0AE2DBC856039D5DAF58F7110EE42EB6C8DE2544FB7A361F8974AF2AAD944EC08DA4DE54E4DC976954F44A8242BA1D0D171CCB2ED514440BEB067FD26C8CFCF42A356845ABCCE9FA3CF53C86716ACA64F795EBD0B3F7A4BAAA5F396EE81D11C3EFFB34A6E7A2F9E98B6D2F5F1A8E291C6CF1466A74F14F13881DF9FEAEA59D7D3D7BF7E7D777FFF50369B4D534289EAF2F333F3D1547ADD8E2C65E426026EB895E2BD8E6DA35E2BCECDCE1D9F9999388A023F801CEA008E57DE1276451F65EDEE6A96F01B76DFED3957002D78827612726F7BF7BAFFC98DC57F0D05DD4BCBCE2D0730823D121A4D4A49675A21DDDEC749170A3BE96F3C274F0B9042235A529D2C39A6A7627338473D096839870F1F85DDFBF6717304E512844C6AFE6056210D1842CDEE1FA62CCD29DA46B57DDDC8A5FF3C73F1E6BF1E5CD73DD6D6D1D19DCA667B33994C772A95E948A7526D8954AA35914AB6A493E9743C118FA56889F7440CE616733C9E73A800FBF6EC87F9D97915DF9895AF783693DA192D58A518F44E69ED42213F3F353E71F2D4A9E363470E1E383A3E7E7C4213DDA2167A65D951B504DF58CD059C2E0F70AE7A0C075A3A7A3F9E4AB77C03B535D30465225A5984A09C854F03994EAB322B0ED8C33F7C142EDABC11D6AD5B87DAEE21E92923F3AF63AC5BE62E1DDAD1AC56A9C164B108274E9EE4CE984AADCE7043EBE824E308A324683D959B5085C8540A2387B6B636686FA7F430C26E5B3BA78B396D8C7F476B16188EFDC3142A1EE52788817776B4736128195759C85DA860375D7B2D3F5ECAE7B90183CAC4B318CA6D1C1D81E191F570ECE8F1EADB7BDE76171773F1B07CAE97B6033BBFB15AF74FE0FB33D35333C78F1F9B387AE8D0F15DBBDF388EC476490BB4A88FF2324BB7056F5BFA6A7EFF8C99C0B5F8F415DD32F77DE10B0EC6A11D6E3CF389EE751BFF6461E65442D80DA20675F4F668BCAE5D32A90E4282040E7442622C9B8299B9390E0155FF9E1F2D8FAE971D25F84FA513D0966A816CBA9FDD47269DE273C4F040A201996C8684CA8AC5757B1D2665F0BD2DA80CB4F51C23090AFAC8D831D881824DE3E78AC8B4F328D8975E7D0D2AF91CBB9D69BC1E62E3C3EBD7C3D11327E0E0D16370C355DB6178683D1FFB0E1E82ABB76DE5EF3D7CFC44EAAD4D1BE0C0FEB717DE7CFDADA55AC5EB4217D7C123E0F91175C16BAA56ABB563C78E4C1F3A706062CF9E9DE36FBEFEC6A91AED26A504680B7DB9A5979709BDBE4CE82B08DFE96A01E24C1A29F4E600F77FED6B2CC3BD7BF7860A30BB75ABB81DEF272626C4E2E2A23825847BE8E9A787B3DD235FEFEA1DFED4E489FD808C5B13366BED3FA1325CC6FA4901928603E031327A31B4A1E5A5D34915E76692DCF2447F4BA512FA3EC9240BCC020F78CED6962C6492296BF76F170E1F3906375F772D2A420B77E850A7D0E34F3D85821C54ADDB94E5A4D0B25E8775BDBDD08A0A43A870E0C85114E816E8C7D73859830AB17BEF3EB8E143D7B22B228EF2222A481B7EE7B6CB2F678579E5CDB7B86EDF4AFBFBA2229411954E4D4EC191C307279E7DE2C9A3B55A90DC7CD1E6D61D377C28B167CFEEC9D75F7D7562D7CE37A7832030106D7C7549437C791581DB105FD7C7E958FE19057F4605D04902F8025A756767A7934C269DA958CCE92C9544A5AD4DC417169C1A4266B65613451CED18622DC6E9EEBEB7DEEA1F1F9FFECCE0862B7F07B5BEB3525E846A29C7FBDD12CC76747540473B1E9D9DBCE61D9E5B57E95AA1ADB50DAD3A15F584E37D0A7D392D90405618D3E967AA9851F3E5964B2F668B4DA10215D11D3CF4E88FE0B28B2F6258AE377C54AC04CCA27FA669D564B9543C22E11C3D790246D0BDD06BE676ECC449989D9D81EB1105CC6DEFDB0738E4DC8E96BD88109F43C87FEA996761747888BB714A952A23FCE0403F74A23BA9220FA1EBB8F19AABA376AFC52578F1ADB710D116E4E1036F9FF8F10F1EDE7D6AECD81CFE86AA8F610A8E711515A08647510B7D359F5E79076B0FCED6DACF5A01BEF6B5AF39CF20D88EC258AC31DF9A086A350456CA3BA016607C46C246D88E8F6CDED0D3D5D5D78FD0D7974CA4FA119907319C19F1A53FEC88D83032E46C4B26EBD23AB6A6CA48969988A956272453502C1459D0647D44F208464958C572191E79ECC770D3F5D7315C524690FC2EAD927172720206FBFA19CAA907AFAD152D1C2DFAD09123F0997BEE8E326128A4EF3EFC307CFE539F6C4A93923553F1E4AA2BAE50440B05776A62029E7DE125F6E5E46AE6969660B07F1D2242163A68257054C893F89E8F7EF8661D7E05F0F26BAFC386A121181A54792B721F2FBCF20BB872EB16FCEE0A378F965161A797721C06E6F2C5E0D0DBFB0F3DFABDEF3E3F373D35D9A8D59688C1378246194559F6556EE26CACDD5E1107DE8DE04FAB0064FDF7DD779F034343896B86360D5F73EDF62F20C31A42841F4063EF4363EF4621766378D6815ED985703F3CC1AC381E4B7086CAD5748176C198A28140E1EDB8E17A55DCD005978585451474091E7AE44708B73DDCD244A94F95E2C4F00ADFD387A4ADA7A71BDA91C0510A983EF7B3175E84EBB66F677267DFF61D3800274F9E82BBEFFC68F81A21C637FFFC2FE1866BAFE67C7A1E854DCD1404D3192A2BA36250E3C538C2F55DB7DEC28842B719BCE6575F7F1DEEC173995554A9F7FEB9975F81EBAEBE9ADDCCDCC202BCB9672F571689D42EA0A007D70D425707924D44B429E40EA3E86E36EA859DC64E9D829776EE4145C855F7EFDCF9C4633F78E88952A1308FD798C76B2AF8D52A85A0E891EA154BF0DE32DF2EDFADB59F950290F5A3AF470ADC991EE9EFBFF78E3B3EFA47DD9D5DEB49C81D2884B82E9592AF8D23994BF222C57178FEE55FC045A31B6083DEBD621E076776760EA6676678DFFBBD070E726BF6C0BA01B6720AFDDAD17233992CC2ED41F8F89D1F59D95B8770FEECB3CFC3A7EEFDF8B2FC7900FFDF830FC2AF7EE6D33CF04B08B544D4C802F71F3EC2716817BA981AC232A1C04DD77F085AD2198C00DA982FBCBE6B3722481F0CAD8F165CA252EC4BAFBE0A1FFBC8EDA1C009F6BFF3BD87D0DD5CC2F0BE88D7D3D9D5CD313E9566F3A532C4F17CB7DC783D738312A2D6B32FBE0C1FC6E7AD1A710E1D3B0693535370F3F5D7F352F2D3A8582FBCF126472E28EFF1DD6FBCF5672F3EF7F3E76BE5F2122A40BE82B746A351C92793751C405F0BBF79DEEC396CCA585501E6E7E7E3B92068E9686BFF320AF4FFBAF9A69B1315DA0B07A1F9928B36336492AF2DE20010D4D18E9614623DF6932778B0A84043C26D359D39381833A80C63C8A009D297DFA8FEFDD3677E0EF77DEEB32BFEB667DF7E984125DA72F965706A7C02A6F071A95C41B2B881B7B7A32E9F2E146C1E5F4BA110B66DB97CC5E749AFB65EDEFCFAFE830799BC5D81AF4FCDCEC2CCF40CE4F01CFBDE7E1B8691232C20615C8F0AB279C308461A2916E86164FF830303ECF74377825C617C7C1CEEBEE3236119FB7B3F7A0CFA7B7A58298868921B3874F8287CF4961D30D0D3CB7C88BEFB0DBCB6436327A8A3E7E707F6EEFEF7C78F1C39D490325FF2BC4ABC584420A87BAF6FDA14C0830FAE1AC29D570598ABD55A7BBABA7F13A1F8B76EB9F9E6C15EFC4113089334D8BD2860DB5F1BD81C43F83D72E8107C140763B5DBCF9E7B1E2E45A24683D8541347413E87BE731E85DBD5D5C5309F2F15D99D904069E70F62F21D38707584F1E75E7C113EF7C97B579CFF176859DD68F99B376E5CE61A0E223F388C42E965D8A6C1CF20445334D2CAE162062667E6E0D61BAE6365E59DCA113D9E78FA19B875C78DDC75646E875009E87AAF47B24788430AF936461B0D8C78D6F5F7735453AD37F0BC69D876D96561DE83D0ECB9975E865B6EBA118D233ADF182ACF932FBC4C91451515E12F771DDCFDA7B2509DAFF87E395E2AD590287B1865050F3EF040A0F308F2BC2A007180AF7CE52BB13A62737B2A759F7063FFF3E0E0BA4B6EBDF99604CDBFDBB773277CF9D7FFC1694F486CFCDAED57C2C8F0B055972EC0D4F43432E70A3CFCC8A3B015854AAE83C2A993A854F7A0C2747575B232A5F59E7B2480EFFFE087F06BBFF2F915AE814AC3CF3CF71CFCEA673F1375B3A03088533C814842A49206AB8C164D8D961B464654148082A61AC37E8CDBEFB9E3F6E6091A8842BF784DF9FC70AD231C9B1FFFF469181E1C64574373F072887E1806B02174B6132FC9C2E1B131B8F68A6DCC51CC6D1C619FAE733B12427B1C1E7CF43158D7D78B616215BA3B485947913374C0091C8737F6EC43742D8CE71616FE70ECD0811F211A148378BC1A2F14EAA3A3A34CFEEEBFFF7E795E5D4048027B7BD36D19D1DD126FFF8FE038DB6EF8D0F5A31B376E80A79E7812FEFBDFF832FAD8CEA843B6A0043C3935CD2CFD17489E36E1A06770401A68CD34E5E9B61D37B105934BB005FACAEB6F6054E0C2D548EA96DFE8BC4F3EFD33F83CFA7A1E407C4EAE6401ADF8145A1E4DD3EAC6EB5842A10C6158B709E19ADC1475C6649063BC816C7F0439C7060CDD9A5DCE123CF3FC0BF019E416F66C9A497403DF7BE411B86AEB56766BB3F83E42A44DF8F91E0A59F1FA67E6E761DFFEB7E1B69B7734FD8EB7900C12471AD51C8850E2D0D8714E1AF523621221BCEDC61B98EC126212CABDFAD64EB80815A05B8F2515B176A24B790B3951B95C7E697A7AFAF76767C7F6D4CA4131D6D65649E7F3F5C1C141FF5C2AC169C3407603895A6B47ACED36BF1EFC6E2299BEFE4B5FFC824BED573F79FCC7E8932F876E1C9C34A558D1DF7750C76DEB4A01D3ED71B422CA94F5F7F7AF9AEFFECE77BF8FE4EB3664FB3DCCB45999D02248B0742CA0D0E9BCC88E50385B78C0F83B71C0298B38818AF7ECF3CFAF400BFA694FFFFC598E22289E8FC2C30A277B5E4048BE1C390B85A3F3F38B4C1CAFDCB225248B1C71A0A25C7EC9C54D6EAB5AAB61C8F822F3198A56A65071A691471C3C761CC7200B0B4828873134BC0E9190DC242354B1047B905F5C77F55510EDCD00185A4E5254C0EE22440F3CDF23E87EA40C1AA54AE9AF8F1C3EFC8D7AB1389B0E82E2C1C1C1FA33F7DFEF9F57052014402D73DF387122DD924E772584FB2F9289E4C73FF9F1BB37D1E40862DD43FDBDE8CF2F3ECB993B01FCF95FFD15FCC6977E9D05460348CC78727212076E0E3AD042DE40FF4D892162CA57A090FB50195AB472B5E8294F7BD097D3ACDC6BAD644B389078AEA7112DBEF4C52F825AF656412E59EC4F319258D78BC414A196A09CDE3B8A2E8A60DB5698E731C4BB64F366E8432BB56FAFEDDAC56B0090B25054430AB784EE65726A02096915EE403420811BDF4E63FAF2EB6F723878E945173529FB1BBBF7F07BE9F7858928E44E2FBCFA1ABA84768E124A3806AE9EFBA766BA0753FB5F7FF5C3B2569B433E50D9BA75ABF7D5AF7E35386F0A6050E01544810E2483B1546AC095F292BBEFBCF3CF46378C76D3ECD7271F7F1CFED5BFFCE7A73D31C5DFE3A8DDA790E4506EBF157DFC1BAFBECE56DE40DFBF1D079F60359349336C938593DFDE83F05AAD94E1BA6BAE59F5BC6FE20052DC6D471314AE9160C61035A64E8DC3D0D07AF6C78BA80024DEBB6EBF554F688DDAB01EF9C99348E4AE5A414877233327051A4517462E6D021595B27EB586873EBF95D3C3C4F00925E88CC7F1FB5E79ED35F8F4C7EF09C9B0B99DC0A8E52086A51FF9F08ED0EA292A78E4C99F72A84AD943CA16528DD0E5E5E6A3F50C046F01EB70310AEF835FBCF2FCF6E9B9FC040C0F1711CBCEBF02100ADC8E28D03B33934AC7E35D4EBDBEE1A24B367FE1A6EB77FC138EDDF7EC815E84CC6DE82F4F8E9F82291C2C124405AD9BFAD47A1176FBFBFAD16FB6401A0786C8523BFA5062DEBBD037137C8F2CF3CDE646EC9BFCF9459B3735E705F0FCA44C14316410B6BB3026A77AFC387EF7A568B95722B95C3E43F6D9175F6292B53C3C0C34C11B45EE308ADF45212611B7325E3F1150226864A514F1906B70CEB00B57AE50841F3EF113B863C7CDB07E5DB34251D4F0D3E75E808B4647601ADD0C296506398A59CE06F43D25CE788228AF4AAEEA1B8D863753AFD5766304F1C8DE9D3B7F9008026A5829130F38EF0A60A3406F10B4E0CF1FF083E0E2BB3FF6B16F5EB471D33ABAEA63C87E69A0D60F0E00955189F4110C9A6CDF99EADCDFFEDBFFCA717FDADE69DB227F7FFA977F059B31D6A71A00855679847E62F09474210E90B09A20A951F481EF3F8CE7FB4CE873EDDB8BBF781549610AAEBAF20A269227119508C6EB88049428222422D8EF4594A273DB3EFAAC1B359034FECDF71E62855261E50CCCA2C021AE2A8EF61277BCE1252D46CD093530DF276BD5EA54A55C398C02DF3B3333F3C6426EFE04BE65D1ABCB458C9A96E2B55AE97DE100ABA1400B4067E038231B47473EB7E3A61DBFDB9A69E57CFAC2CC34864E77AEF98B291EFFF36FFD357CFCEEBB98F05188B8B494E3D940D75EB59DAD9688A511285DE5533F7B06AE409236D0DFB7E27C441EBFFBC34754765043F1522EC7C29E5FCC21231F63245A8FFEB7B7BB07CFDFCE027F27653DD38DF80A9D9F881C3A675E2093AA8E3C41C5AC72A6572DA19D517845316DE988403E0AFC1486AF87F2F9DCDEC9C9E95DE54A710EA453C28F9571ACCB3121CA180A56DC20A8C87CBE8A84F3FD8902564381C1582C5BF5CA0331E95C74C7ED77FC3F176FBA78847EE48F1E7D047EEF777EA7C92297DF48B0C74F9E444E30C1451E1210FBE96C2BCF8D23AB239F5D402BFFE1638FC37FF72B9F5B75670CBAD21F3DFE13D871FDF59C3768FA0E14F6C1A363F0FC4B2F71BB38ADEB43F13FC17827BA9E1E8C5852EF62FA7453F888A1DDF11327D9BA49E0A55A9D512FC693379A21DD11E65053CCA9EA87DCE5380AFC2092E83D93D3937B6BB5C692147E1995A2EC415001CFA9C6A4AC39B1589D0A02AD3401BFADCD431EE6EDEEEEF66F7F3FF200A74381E1623119D46A9DC2F747464786EEBD65C72DFF8A4AB8F30BF370EAD831F847FFF0CB1CFBD20011F1A3E95634F59962E74E1C7CF2A3E42E964F5E587EA384CC934FFD14BE78DFAF9E166AFFF35FFD35C6CF1BB99132572C808302E8EFEB6372D6829C60215F8499C909F8D86932926773A3B6B453182D9C4092373DBFC0118544DF4CFCC7B116D434AB997157B09E4941F79EE7172B95CAB162B1F8F6C2FCFC9E5353136F4B298A24EC40786547C62A880234F1BEE6C41B75BF0C0D12F8622CE64332E9173D2F18AED502CA0222EB97E75AF067AD0061810820D676F2644B3D99EC4780BBE8D6DB6FFB0F975D7CC945847507F61F4038ACC255DBB6718288E075B57CC0D9DE8E6358B47BEF1E762D54541A3B7E02A6666778ED7CDA9F8F2CBB0B158BC243FAAED5FCFEF3E8F763F8F5375E77DD597D277103525ECEE0A12297ABCABAB9A3289CFD14DD0BBDB78EA3674E371AF58552B97CB45828ED9F9E9BDB3D3B3F734422C550021765D488AA749CAAE37975B2707CAD51419697420BAF529CDCDEEE774E4C482370BA2612FAB92EFEBC2B05E0ECE003F739A9475229D193ED80BA1C593F38FCB15B3F7CEBFD54A6A5313872F0002762DEED8D922E14368E1D1F830A865C548CA9A0C047378EC20012B42C0AB9B35D355EBC8030FFD97B3F7166A249B587E75F801E449D2BAD2490F92E0AEF48D128EE5E2AE4799A154DB15233A49BE11C02BD958534DB552161ABD5A68BE5D2E142BEB07F7A6A7AD7527E715C68FF4D4207C7AB0690600B0F2A9546A65536AA5EC673924BBE3BE7FAA5D152B015B6067BF7EE95EFA7C0DF9502D865E2784F4F36E1FAFD52B89BD10DFCD1964B2EDF42CEEE451CEC5FFBFC67198ADF3931E423B49E62CBA6DE3FE2054EDCC5D87B94F3E439E4021984F56D975FB6EAE7C7D052179716E1EA2BAF7CC768E3FB8F3E86216917934A8AEBE7918F505C9FA22210E5EE750752B4E6A0DA3B9056E18268E20912B6DA7889FC772EB76F7A727257A95A9A3516EE134943EB4625AA52BFB9A43D32D1C253ADAD5E6C69C947771EE067C9B24381631827AD9AC3DFD912A267AD00A646D0D9D999F412890E64A7C3EB06FA3E72FB2DB7FD01B579F968B52FBFFC12FCD3FFF17F684E08A1C512B41E3F81C29E9FC3B0ABC67B0C5F76D1259C2BA08E5BCA0F109284BB8DE067FEF6BBDF832F7DF1D74EEB46A8F3865AC0281DBD22C2409F4D212AE50C9C549AEBF4941FA0E554EC648B5A19D46CD1AED7F7A505E77CBF86FEFB04097C610919FAF4F8EE7AD5B3085BAC42906E081B4AB2215DB7E1E4F37E0C7D78127D38224480219BECBDC004FEAE1560390A20D9E9138EB3F9C33B6EFA3FB75EB6E52A9A38B917FDB6838348D9BEF9C505A8224BA6E2D0A6D1515EF28CF60BA64920AFBEF106B76EC562A76F4AA614EE6BF8BE4FDC75D769ADFB6FFEEB0348F4EEE0FE044294B9C525B4EE32FAED34B77F53C368389BD92CC040CBB8FA46E06A7129CFF7F06348D84AC5030B0B0B7B26A626F72348156CFF4DD67D3AC23680846DB9C0EF4781C30528F0F7A400360AE4110512420C617875CB476FBFFDDF77B677F2A41BD3194BEDD714775348965C16221E3C3606AFBDFA0BF8075FF8C219BFEFB59DBB30846BE3926914522EC1D1B1E330B7B0083EFAEB69F4E5D4644A459926BF6D168E0EF424525A49CC572DE618AB2F964B95A38542E1EDD9B9B95D537353476201FA6FB26E8CBB9D1842BAF7EE08DB852EF0F7A400E633BFF99BBFC9FD0241A3D1E748B9E9861B6FBC7FDB96AD375002841221B256851D37DE7846C2F7F8D3CF708166B532B01DF2FDA7BFF81622C806CEF6615CC5AC9CDAB2285D6A967EB72DDCE785AD3C5E3E8556E0A40E4FB4CE993265D8F2F9FD33B3D3BB161773A7F0873361132C700CC968410DDFAF0B74D899D656246C9E45D84691B0C1DF3961BB2014C0A0401551A01DA05DC66243DD3D9D37DE75DB1DFF777767B7434D238FFEF087F0BFFD9B7F7DC6F35087CCB7FFF601F8F55FFD3C570123BE70024E8C8F23C9CBF17EBCB44CDA72AB0E85AEE09BA64123EBF27899387CCDAF56ABE32564E8F95C7EEFC4E4D4CE72A532CBFEDB47C2E6A275FB4E354E31381EBF4C84ED4241801005F03E5314A2CF8D8B4DD75F7BC3BFDEBEF58A5BA867FEC8E143D08FE4EC23B7DD7A4686BEFBC02178F2A9A760C3D07AA8D6EBECB3BB7A7A39FEB6ADDA66E7A424BE576774E069E0815FAF54AAC751688716171691B04DEEAED51A8B8AB0C591B0412541219940C2E6FD7213B60B4601ECD6F16CADD6EE3BFE507BB6E3BABBEEBAF34F7ABB7A6324AE871F7A18EEFFBDFF955BC40DB37FFBE0413870E830CC2E2C70F87525C1BFB521C47286EE2149F3786DBC3A5B395BBBEF9789B021F13BB084846D7C7A629F216C3EC2B9C0906C39614B66325EA95EF77ED909DB8584003CB9F62B1A05CAB1182D92B7F1FAABAFFE17575DB9FD2E42015A3EFDE5175FE42650EAA3A395BFD60F0FF39A7DCB2B63E6BE817EBB5EA379F26A150C2A36A1E22CA1C491B015DF9E5F98DD3D3D3D7F0885BC92B0C591B035FE7E13B60B4B012C14680F8236244DEBDBB2D9ABEEFAE89DFFA9AFB72F7E5ABF6DDD9365D3F42BB502668D67DB34EAF5198CDB0F1772F9B7A7E7A6772E2CE44E129C0B64E944D840275CFE5B246C1794021825A00EE25232994E7A5E4FC395A3D76EBFF6B7AFBA62FBA7A8CFAE29E102012FA4402B6E2BA1D768F386A056A98E1751E0F9426EDFE4C4D4CE62A93483D4AE1C976EC9266CB5468343B2FF9609DBF9B8BDE7F501A83E3D36365697ADAD0557CAD903070E7C7B6060E0A36D2DAD19AE8AF91E278468F9538CC51B18CE9D28178B0797F2F9BDA7C64FEEF66ADE6203E1DCC590CC214847EB96E0D78488D75C701B35E979F15ACDCB12618BC71561CB6464EFB1632B04FEC0030F481B653EB89D67043028400DA4333333A96210B407AEDBBFF5F2CB3ED7DBDDF32B34C117C9DB12866447E71691A14F4DEEF71A419EA09C7CF8E9085B0609DBEC0784ED974301EC1471626020E5361AADC2753B8413B4FA00495A17C7E53D256335AA90F935598BA53024D3842D8584CDA4543F206CBFA40AA05140EC85BD3198E94DC43C2F954E241218C2C530229048EE686D8F4622DDF0544934E9BB2D2D7E09C9DADF450DFC83DB3956005B09F0214D2A71694189D4DC1CF775557B7A82ECE2A25C4ED83E10F8DF2305304AA0852AECE5648CB03F60E817DEEDFF07C0F7B90C94A643CC0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (178,1,'Workstation_(24)',0x89504E470D0A1A0A0000000D4948445200000018000000160806000000DA7D5C880000000473424954080808087C086488000000097048597300000298000002980136D347DF0000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000005914944415448899D955F885D571587BFBDCF3E7FEEBDE7DE999B493293C94453356DD3404025487CB0FA20A58D15B1A022227D28A650F0B58F99E093827DB1088A250882494054548AB6129A46FC17D2D6503B6D9A84269D4C66E6CEFD7BCEB9E7EC7DF6DE3E240D24D8075DB01EF6CBF7B159EBC712DE7BFED73A7EFCB83C74E8F02127C411048F9DFFC7F9EE85D72ECC792FFEA56B7BF2C0FD074F3EF7DCB13E8078E2EBDFEAC78D66546459565555569B7A2C941C084F4FE0D72D7ED594FAFD5845EB8F3CF6C89EC5A5DD9F0F55F868A8D40E216E094F9F3C5D5BEFD46492B1B1B9C9E6FA1A5FF9C6934FFFF07BCFFE44A5B37333371EFCB2DCDE8E5A0B899C6F25925628698660AA8A6A5A501625653965252F78E38D2BD869869F16CCB7245F78F8611CCEB73A6DCA5233B76327C3D188CBFFBE780040D55ABBD23A79B3124CA3986DAA816C3768751A2C7612CAD2904D0D9BA329936141362928F292229BA286E7D1A6465786A58F6EA79976B876FD1A8D344546510DA0F2C9D0CA5AABD2C404DA116A87AA2C616551A5A595C498DAA31A1133D611494F124012405034A82ACD466FC8C6D6DF198D8614E5145B5BBC170E406559513B6BE2D23A64ED092A878A1DAA721859D31101ADB4412025B114C492DB2D88C64DCACA609DA19976489D679215E4938C20101E4019AD8D7735DA81B48EC03AC6DAA20B431389558A380EE9A4094900B1F47724BEDFA2AC347118D87AB2116E647DF2F104AD35424A0BA084949577961A81760265C169CF18CB36E5898CA3A92DED34A49D2624777E00D3B445A533BEF4F8E3BD332FBFB4B41836084D8FB9ED3B39FCB92FAE002819C84A780B41402DA07430AA2C4DA9088D23D18E5CD7E43A60B11DE12444E296C0369B14A34D3EF3E98345B73BC73B97DE25CB0BA246FB4E66A44054DE59BC94200346C6A39DA0F282BCF654C6516A47616A7263E9A409B3ED84562B2149538AA2C0BB5B617D6FF526DDEEB6BB42298594A570355E4A6A044648B4906804B587D27ACADA31358E425BA6C6D14E1B24CD98A899321A0CEFC01EF8F87DACAEAEDE255052CA0267F022A0F4121148A40CA89134D174F49438F3080D3A138C42CF1487AE2A8657DF66381C82871B6B37595DBBC1649CD1DB1AB36BCF5E6E0F5914FEF205167AD7B1658ED005141926EBF3FEF5F7B83818A29462F7D21E762F7D84F985055A694A77761BDA18840CA89D0BDEB97C85B495220245AC04CE3901A00219BCB5B572F1B3E07D12C73E4E621747B16FB752963E75484551ECD3B4550E06BDF1683469BF7BE9723B69B6C2388A886E77968D67948A701E1AAD066BEBEBF47B1B33428840FDE137A79E019E011042C8EEE2DEAF85323ABE6BF7D2AE6F3FF95472F6EC5F7860EF2792B3AFBCD232D666F30B3B4FECEACCEEBB6FDFBE87367B83F6D6C6A069EB3A3CB0FF7E36D73746D7AF5CBA122AF5D757FFFCC757BDF75678EF3977EE5C97B0F9B1F178F8C97F9E7FEDFBB3DD4E37EDA46266A6432003C230240A155204044220A5405B8B9482ADE1D0BCFCE24B7FFBFDAF7FF5E2DADAEA19E04D2007BCF7DE0B40FCE8859FFDEEE0FE03470229098200630CE0F180313541A09052A08200632DFED67620A4C47B0F1EB646C31B2B2B570F3FFBDDEF5CBB6B4DBDF7FEAD95B79FDA1A0C5D148588DBE8244E48E284384E0854401445002449C24C3B65FBDC1C42084C5D33984CC8A7E57CD20E4FDE7B9C84F71E21843871FAF42F16B6CD7D73716181462321CF0B2A63305AD39D9D659217CCEF98637DB3C7D670C8603CAE2759767D5A167F2AF3E2A766347A7D7979D9FB7B4EA4F8E07DF4E8D1F0D1AF3E512CEDDCA9B4D63CB4FF415EBFF826B5B39465495695659EE75726E3E16FB352BF60FBFDABCBC78E7984E05EE87F150821C4895F9EFA719A369F0E0285753E9B14E395417F78AAA7F5CFE37E7F6B7979D9737B7A1F06FC50C107921F3CFFFC11319D9EC9F37CFAFF00EFADFF000F1AFE7A87EDDB0D0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (179,1,'Workstation_(48)',0x89504E470D0A1A0A0000000D49484452000000300000002C080600000023163B670000000473424954080808087C0864880000000970485973000005310000053101B7ED28520000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000011594944415468DEC55969901CE7597EFB9AFBDA999D3DA495A595B45276254B96B5BECA26C80E952ADB012A36455C455CA180C82647110865A8E2879CFCA1A0A09C72F237A18082805514E032F1116CC9D846B28E9556D62D59D26ACF99D9DD999D99EE9EBE79DEAF7B755AB23149E8AAAFBE9EABFB3D9EE779DFB7470A8280FEBF8E575EF9E990A4488F0781FF78AE50F08F7F70BCFBD8B1A3970BF9AE9F14FBBB5F7DEE9BDF9CFAB86B48BF48070E1F3EACCDD6163F2BF9305A0ABE80B786963F531565DF5FFED55F3F90C915C8755D32DA2D0A28B025A2F3AAAAEE59BDF633FF7647EFD07FEFDAB5D3B8F69AEAD3BFF3FBBB1B8DFA3DB24C4DF2E53A5130EFFB6ED50D68DAB6AD29CF71CED46B33C7C6C7C7F54F63F48F5F7EB9570BE4C764521E5754F9F38A2C6761FC4DDF9B999E49AD5CD94FBEE7E17C9E9A4B0DEA58568C4819892713238B8BFBBE7E26351EC40BC9BFFFD33F78FA2B571CE8989D27703939552893DD6ED2D2D2127988005FC8E585732D91A57B1FF8ACAFAA9AA76A5A4751E48E2CCBBA222B4B24C97559966A7EE0577DCF9F716C7B6A60709576CF5DF70E95CAE5CF298AB4DD950349917D224425500282132449D2750E0009522E97A752A99BFAFA57916E9864DB0EF63655E666A95699A3E9A909E9F48923DB899EBE9A0144C5CDE60662D3438F523EA5518FE6531C375191408D3CEC1E70E692E439B2E45932D91DCDED98594B6F971DB34DAEDE227D719E6A7373649826B159674E9CA17327CF129CA518AF98465A3C4E09AC582C4EC9648256F4F7D3FDF7DF777D1A0289360C6DA056BB4D7373159A5F5844105D2A967A2995CE938748CFD766B3D741085174257263AEE753CBF6C982C94959A34442A3640CE7718D5209150B3BBFC6791A0631753C64C8713D640CCBB6C9B12CB21035CBB6C8E9D864E3B5A1B7C9310DEAF06E34E1A4416DEC87DF788BD60FADA352B124B2C1A09A9A99A5D75E7F8D745D2713C1E06B4924031F12F9BE84F70DBA91B32A3E747CCBC016C0DB00910E4816CB17BBE2E31CA9971D2CC040C2AE283EA5E22A71B8030E390CF0181232DE53003B29490DCFA29603A7E269BC76C951B1920E390E7618B60E905D5CAC531EA49515993144996C9AEE1EDD2E0C6DC309DD30A852A9D27CB52A9CD634E56607705BABDD3248F55D3225455C4818EFC258E59A5D3824479FB13381C8104EE080C75E9085CDF03DD2710D4951903D55DC00E02345E29B05D14E14F333C248CEBC82EF8321D46C34E9FCD9B3148B27488DC510F58052A914157B7A289ECE90FF1182C950B7CD8E490AB9E0585C44DD811F72940DC58B3200271444578161B2EC0922CAB0248EA8B0F986E3C350688DA65202375228347AD960DE5D9977891C76809264B4AA4228824086B13ED59B3AD917A6496F37C844F43DBCE7C34068BDC8B481CCF4947AAE77009E9B36F02B416D5C0E28DC9418363E09072C44488AE004BBC5B9C49988A0C5377091394523901E5886818C6946852A87C63B911336BEAB44698FC9296A570CA89C27948983CB5C6238164B2532D3396AB775A1464BCD06C91012C771103C39B8DE01CFEF58C840CCB5C9C367D01BE140E804B2210CA63013117C14964240CB0E04E4290DA26B801347898D5729848B23221F84C64759E00C7026E24A820C4439CC001C083CB13C8F0D95896D72EC0E798E4501E0ED780E9C7558AA6E8010F910069354FC9031C6986452C9B8A823C2828554B203E062683CBEA39B2EC561744A92C5EB0CF0AE499A30D0BB01EFB614C2E94A26B0E2729C16705F6F3903BE680C289BEFA27412929B3428AE23B0709295CBB6E01050127EEF1A07508410089D72F0507C06A385E1118424C62DCEED88072A8C353B801AF35DF6236EC058152A12534416A078C28965BCDF683CBF8EA99C01330C18EEE723601DD871EA833138E5088966E7B80EB83667C08D3270A3038AAAF397022CA1B788820F2BB868B8AC268C5B7606AECBBE8CB48258702A1997235885446748C56059065961E3FD08FFEA35447644564268C5BC1875CC1042AC42A552C95254856210922F3FB2915EA60A4DFEC71C171BBA73CB66E2D01F1A3B8AE2A8F8D73B20496D9656C97798EF02C35E10325F82234C66C70FCF7564C186A1C9981C72418D1CC0B98A2C58585CC5593E7D3982924C578CBEA24AB84FCCD544B11224460A7A7A7A3B39D4814AA546AF1F9DA2866B8A88732B73E4C85104D5A7743A4977DFFBD0ECF59558515B4C2209245E5610C68D1719CFBB24CA6E40066EA6695248665F110466656258C5A14C36761B56C7399280930FC33CF96A0610AD2813B886AD71B3260C0C144560F74F9E7B8E1A4DEEC7B0B057ABF3A21FE2F37CA1885542B12B38D73BA0AA2D2E5E013810C861D926295C5ED86F0B72E9B6276EC4EAC4EAC3860B2985D13158E9705B01E339433644201E87139A1A111A708C38B10C29876B0EEEC595990B96EFDF5CA416EA0D2A97BAE0C0ADBB5D359D4CCC8B0C40AA420E5F758033E222032E206205211CF8B5849B29012B93425A04319B0B203B010673261C38C82AA50A525F35DCE5561AF7B351F80A5D4501130C3437B50882C42870E94C9E0899B8D52123353561AC6B856D01D6727F138845D4C6CDDC88D8AC509C19CE828D9BBA3E2F5FEC0E3BE385B5030913E7EC04C3291E3586092C1011AD824A05B408A237C20A6ED0C74AB5469F7BE41154FBD86DE70D3993CD2DAA082DDA65019590C8B2E001AF0E22CAB911D2C80A857397DF4374D8684F3840A1039E1F3A238CF7A38C801F316EA955EC8A305E03B4306551BAAB2438C0EBC6A3BB54A437DFDA0329B56FEF80A2C55B0ABA48C9B104FE036E0CA3C8B3B11DAEC47004B41512EB51C80D5F544FBAE284C7848F32E006BED8EDA87EF0E79C01369C7B25550BB392CA17896B10B708FE0D9D5A0CCDDCAAFE6E74A295DB3B204981CE170DB8645F837F8692C9FA1FC12AAC11A1531E85FD3B857016B2CB46BB11A49C65587146BCF09CAF2923FAACF50242B867B290A756AB1556D84F399BB35EEA2ACB9863862A84C62C90192224A023450E499153A2D05D370D860AE22F6702867830DC13B042268270CEB080B380DB0E95E103958212241249B250D65DC7BDAD91EC9C691A1FAD426A4C36188FE476C4804211813B1C34E56AF43913BCD8499CA1F30C28E777280B9D4E427262E88D9268C6548965D1C6EF19DB36B530D8CC76D0CBA0F73710ED1CC6C913478F5265760E467568CDE02032E044245604794F9F3E470D0CF566E45C7DA94E4BF5257AF0971FA11CEAC1750E741C5FE71EDFC1C57BAD2AA9DCB6A20B2C622CC40C8C49AC13F2C36A8310888289B2817EDD58ACD1899949B4BCE6958BC579E6C53022766058E3A56A82B0DC20E6B2797AF4B14769E5CA41BA7BFB8354EA2ED3DB6FBD268C04911546C29EBDEF50A3B184AA9BA64221471D8CA6B9A08B3290D3AE42D7CD1988B9B2A1E026174E1D27E9F41F0AFDE5EAF7690E6E0B522919372E5011B36E1774BEABD44DFD2B56505FDF4A11E9A54643B4DE1397CED3F89183E0424C70C030CD140FFDA3A3778B4A8C591D30F4C470DF6A350104F50A4F00677E9E255EA8A994AD4BC07D325310697481D55436540A8E1E2B87A66962C538B2628F6112C34A849116D1EAEA12DF77790EC68064F10E75E1C1FEF8F163F4DEBBEF0A63D1BA88A96E7931D30270C534DA19788E6BA8D444EB505F5A4217EA8887023CE4D72A155AB96A0D0252E67123011F5086024FDDB973A7F3EA9BEFFDC8B49DCF939867244F5315171777915207CB9555052386EC28AACC53A38DEA5DEE2EF70CB65B6D0D37D3B89B58B57A5049A752DFFDD6B35FFE176079B067C5C02F154BBDA3B9426938994CF70863254FA85638C0F857961F289C3D368CCE5F98A0F9DA82805C36971570546371647125AD40266DAB93C4D7CA583538D1113FFAD77FFEDBDFBDEDF34749CA251289EE58AC6B83964C3CF8AB5F7CF237BEF0EB4F96DE3F70880E1C3C4CBD8532F5F50FD007E3637F3C3038F27B8020176A13CDD8F8D95363AFA6D3B952DF8AD5777575F70E6573850138A0F27019F640E10207842D6B07578BC53377B3D9021F1A22CB89647AB1569D3BD56A355E176C8F4633F5630C2F1457ACFD5679C5BAAF83D8DD1CB97C214B2D4C4AD3D3D3A2EFEB2D77A3C7F1E9F4A99334393D9BEAEBEB4D2D2CCE8B1E275FE81EDE76CFB6DF1CDA38F4E3EEAE9CD5D3DBA3036675F4FEB999F90569ECC058B038BF14E72C78910383AB079803C1C4C4C4E2C50B17272E4F5C38F9E187670F5466A63EC0C7DC4AD7B174D1CDF0E3BC6B0B88143DEF7BFEF9E7A5BD7BF7CA172E2FEC40BFFA86D15C94584273F9020DAC5A456BD70D51B1BB0751E1A76C71EAED298317E86DB219711D8E1E1B95CB6645CBDC95CF8BA76D6029081CA7DAC202A592297040A6B397268C97FEF1A5C9CD1B877C74A7D6D1B1B14B070FBC7FA25E5F98C0A5A6B130D55015ABCD0F3F282C4FC13289AF38F0472FBC90BC7F78F861C597EED0624A1F303B00426DB62D7B048528954D2614C6711BA53F934A89A2C506B14432C98AC522556A551ADEB0812E5E9A402F53C2EB9A487F80EF9A90E5DEEE6E5A58AC53A9584037EAD23CCE0BC0790B73EFD9F3E7677FF0BD17FEEED2D9B3C74CC799440AD9F046146D2BEC5E6E2ED7CB1092BC6A752436B279777F5F2995CD644475BD3C3949E5629750242EF9C31BD6D35CB58A1EBD04FD6FD3C4E49488321FFC68260615E2E7A3EC685F6F0F4DCDCC105FAB0119648DE7CFB850E67339F1DB3EC0CFEC74F03B9546EFDADAFFC31FFDCD73878E8EFFFB7FFEE4955D975AE7668EBD71AC732BC3970F057011D0D936FA50CCB4F42FA1B1CB6FBB7333A4D01232C812C7CF6738E516E0B058AFD38AFE3EF1D02997C9A21D4850657E5E3C985220B13ABEABA1FB64307276D6AD5903A76B54048C9A709A1D625865F1DB3CA2AFA3DAB23473FD41C6A5BB366FFACC86914D5F2D97D7D2C09AD5C70A8F3D66FDF68E1DFEAD7BA108500BD31FCE4C4C4D7F2FD755F0DF3F7888560D0CD07DA3DB690B9CC92162FCA48CCBBB8C481E1E1F174F8E25B078A151A7871F7A9046366E100F773399947818D5D60D4C544B64213319D48955032BC32611E2615A364DCFCD894C713D59BBFA0E2A035EC96492CE5EB840F56653CDA4337FB66D74F49F46AAD5C427FA8786B3F0F4B3CF9677ECD8F10FA57CE15772B86916F0C8216225F4E61CB9FD706CDBD62DA88E7374F1F2A478CF84D17DE5321A378F4A28F53D80C5FE436354C8B35A192283994C9ABA519599173C4686E3629D8E1E3F892C293485898B0B9F0A52079ED7B1EDCE45C06D0F64F4A5C6E4E4FE175F7CD1FA447F313DF3CC339A92C96C7FE28927DFA9D76AEAE69161011F860BDF88235442C5E59BF7F7F60A07CE9C3B0785D18528DB904EAB63D1C6F5EB20AF6501A1E5A306984DA381AB81B875F0C946FB2043AD1CD76EDB8679A6D56EBD5B5D5878AB51AF9CB17C470F5C4DAFABAAF1EAF7BF6FDF8E0337C9E8CE6F7FBBB47DDBB61FAE5D3DF86B5B87372292F92B9F3750DEA7A667C800F1DA805411A53F05A778E25A0D79E563B652A52648CB6DC51C54885B82369C62E8B11C991DB361E8FAF176BBF94E7566EECD6ABD3EE96B9A9EB36D7D321EEFDC572A39E065107CC201E1A63FF9380B8EA6DDF9D4979EDA5F9F9FD77A10C97014081FBD6FDBB205C48DD3B1132768F3F0B088E2F8F113E1D3653616A494F96984F87BCAF10DC3A8B55BCD232DBDF576657A6E6FD3346B92E7E98EA21869CB32D11E78FF1B833FD6013EBEF28D6F94EEBFE79E1F6CD8B0F1A9E1C13582607CEC3B7090EEDC3422CA3B2BCF1420C191E5BF8FC22ED67675A335DDA82F1D6A2CD5DF9E9E9C7ED7739C3AFF6DD0916563534F4F67D7AE5D9EF847E667F4F7E847B6126BCBE5A5FD47DEFFF3C1D56BBEF8D33D7BE31BD7AF174589879BF70E8F013271413A4C6ED6E25263A251AFEFC3D0B1777A6AE660A0AA2D07E313AA83D1ACD7ADDDBB77FBCB4A77ED84F5B33A6EF93FF16F7DED6B5D0F8C8EFEC5D6AD5BBFEA62E2EA582C8DBA5EAF2F9E879CBEB7B0D878B35AA99C7424A99D00D99A68DE686ACAFE28837F9EC72D9B39677EBEB9FFE8BEEF62D8806C77F46AA5F65F0BF5CA05558AB77D189CF53C734D77B720DC2FD2E04F9C013E1EFECE77D4950B0BA9B8AE076825AC4D9B36B9FF17C2FD3C8EFF01FC6A3CD92169AC810000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (180,1,'Workstation_(64)',0x89504E470D0A1A0A0000000D49484452000000400000003B0806000000CB8C8CDC0000000473424954080808087C0864880000000970485973000006EC000006EC011E7538350000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00001B5E4944415468DED55B598C1CE771AE3EE69ED99DD9D97B97144F51122F714951A20E524A64D9B01439122C39808C0470001B10A0970408F2644A0F811E1C1B0960D82F0910C471E2883192408A6259B665C9D6451DBCC9E5BDF73D3BF7D567BEAABF67B8B49632E9C8D7903FBAA7BBE7EFBFBEAAFAEAE85ECDF77DFA7DF8BCF4D24B715F0FFF814EDA2346C81889C592D952A9F4EED973E74E75F7647F381ED68F1D7CE209EB46E7D57E970178F9E59FDCE4EACEC39AAF3D82AF0F6044F9B86E18D3E56279E85BDFFE1685C211B2AD064522612F1A894FC7138977D2D99E971CCF7BFD1FBEF9B7E3BF57001C3A74C888A532FBB0A64734A2877168DB6AD731002FBDF83F436FBFF933D2348D22F138F5F40D926146A85C5CC6C893EB38649A663D95EE3AB36EFDE61F0EAFBFF9959E78E7FB4F3FFD4465E55CE6979FFE8BF727A7C6B719BA51D731305F5923AD0058F29EEB2DF9BE3DE73AEE74B5DE98282DE74F54ABCBE3E7CF9F6F7E7242BFD24586FD19DDD41F31A3C94FE35E5DBA0EF1B1908FFBD8B64DFBEEB9879289142D2CCED385F3E7683997231B82FB9E4FE1688C529D5DB16AAD3EF2CE9BAF8DAC9F9BFEEB030F3EFAEFF8E99F5C0500FC68976539B8A51B218DD2E4FB036C13BEE79187E1F2D675C8755D0AC5A294890DF977DDFB8007746D53371ABA61D67443AB68BA56D419345F5BF43C77C173ADE96AB536555C5E1CB52C6B7C6C6CACE807E6F68FDFF9CF6D61D37B44D38C87F1DB7DBAA719BE837B6215BEE663093A3108BAAE7F8CEDEA581B7E846BD6ACDB44FD433751219F270BC058CD062D2F2FD3F4D424E5738B00C5A6858579BAEBBE4F1BBF388DA99B861D32CD487AC7016A24FA48D75CE2D5183EB69E4DE459A4DB166976837CAB4E5EBDAA35AA79637E6AC628148BF0492D4DAC305994466DBD05FBC9742F199AE60F0E6FF0F63FF090138E4642F8A787C3610A47784429168950241AA118B4168F4729994C527777377574745228648A997FF4E313E6A19D3BB6D3E4C424159B75B9D6C65A7DDC3999EAA05BB7EDA26AAD4AC5FC328D9E3C4A3353973B3F0A80A63930FD48D5F6A918E9C624069998288C6D04DB48D8C47783A2D846B00D870D8A617BA7A991E9DB00CA03913864351AD4AC37047DA75E230BC36ED4A859C3B656D1EC6AD9B02A05233F37434B4B4B625D0A38ED2AC0D8D2D4574DEE9B4824E8F1C71EA3B56BD75EB5700F663E333B4B274F9EA44CA68B7AFB072859AB530DF7AB605B2957280797A8572BE4B81E40C1F05CEDA300E87A13374B8035C8C1A4B040D25C9F6CDD07D978B2CF5B0B93686C96AE4E964EB21F09C7291A8093C2D671D8655C08E163DFC57C9E1CB3799FE7C4BE8FFBE020FEB3A936A926A0350120035527C7AA92877DBF592117C2CC9E3D4AC78F9FA0A1A161718B9635F800BE5CADD2E4F4149D3A739A2A950A35A104DBB2B13643A2033B5C776F3F2D2CE521FCEA9E646242CB17E86D72F00B1D0BD534D6AA4E3600D13D161E373614309AC7A060189ABA164069D01A2F2C1CD2497C19BF3778A110DCC7D61755631FB7A97B3A5530CA4D9D1ACD1000D3C8A130B9668C9C38000B019C0840B431522E6DE8BB896A131F0817F9BEA6B8C130C482BABABA68CFDEBD5487E00D8C7A9D01AD830C97687E6E8E2AD0FEE54B67719CDD23740D00486B60360863F30637F2D9BD20A8AC1937640B6060700D0BEDF8724C0B84870F908163868EF310CC0408E430A26C763E996C7558382EA12A80AA60C7C6DC86A18B4BF1A54CFA6AEB12200478EA3BFFD4D02262D62E9B319324E632705F667A4F40F1AF1AFC89279220C5E12BC0349A347EFEECEA0060CE3A9B6A18AA73C5053CA663A5698FB7BE689C5608CD9AD7031731E012CDE09C5C0356364C5D7C9AB50FA7A0264CBF8AF33E4C331C5284C9C231C71B5A304809ADB69A028101D4A354AED7841B383A30081299B0CEF9B905FAD1ABAF02B820622032C4E20984C0E80A50A8BD5D15002CB2CE4983E63431A94F2CAB160C5630BB80032135163600444CDF5042EB7AC00DBADA37B0F20800D0A161B6A43A2F160B6386F6D9A444705F09892FB6681EBFC537A36D09014018213D02136E281710DF873519AE846917D6110A7780BE1A542C95A90E4BA981F59BD0387391C6F38ABBF8D4A857AFE90235DB86E3BA16B9014A2CA0C796CC56E01B6D97B05CB563F017570F84562EC26018BC75025E0000089CA4870CE1035F774522D69643CADC4558DD575BB10A4D845656C0AE800864840140E002BECA154CB1005F40D00C10700CD10D248568466A26DCCF8852A5949328E540C13CD7AA0060543976122CC0E53B78925B489CE53B2A6BF003425451426E21C73C890A7A60FEAD6DB3095FC6CC11D3544422712D0057CCDE0F4C9F8537456025B45AA813B885C339891E82F61ACADF030BE028C3C25B4D4489A9715CA389C66DAB89E148C4716D449320A4B2FBF0F9D53940D7AB1C8610B885ADD95F44D12D77E0C8204503D24F9E8305652264F312B7F3DB3CA1C1D499E8427081A8A68B658443A64A6B39B2082FB8BFE0FFAEF8BA685E0F846660A8E5020000EB630B6097A41607306F45625203C4A2210144915E13EC5F451E50465EC296036E43346A81F111009081E59B485E2A481DA350434394C5F15C674E111044F39EDF16567143704C3841EC85CA882461689DCD94CFEB203F5D63523424E16181BD40702D105A0F3841919E02C6D114E87C0EA9AA5880DB667C5D84F784D55A73709451E7F9381362281C95F36E90C63380AB02108BC7739C402C21678E83C41AAE2EB159846F978C8A03840B7CC51162011C02C5EC5D2AC32A4C66FF56B468450C00113374C9303D7CF734C52F2DA2BBE2FF4A10A36DFEC177264C0860352D081512A0516B88468BCB4BB4BC3427EB62C1F9189F6317C001D4054D39C62078D772814432B5CCD2968A254A12F2685D250C9E4AB7C405243A90DAE7B9395CDA013FB035549A9E244AD140F36C15061067DFE498CDE498103234310FBB81D30E734C90570080B68268A0422316EE9A9449A725A9E9303A8508C545B90C46EDC00437D461923560D2CC9922D52B750502788D4D9F334EBE462ACCD5008847E305D65C1328F91C0EC53E61059C1E7A5AC0032B06BEDB86224B16B401C2E33017618BF0C418841B107D94A5E0DA1026B171301E56C2B10578ECEB01F1E99AD1263E3B700BAD150E7160007540A15024284B59005C6B7070902E5E1E17ED6ECD1854B82344A55C822A858A983C87BE03F7DD0D6B70E88D37DE92D43999EA6CAEC6012503A1C4F751F10139DF5436AF4902E793E0E02B77D00272D4824861C3EC9B98181C24D1405B9931BA8A43D8122CCECD0DAE09480A2997DD40258881B9AFB40275AF1627F07E32DB4DD54AB91D0A990FF6EFDF4FEF1E3E8C88D3A4572ED5C9BE5CA56AB116F8BB1A3FFAC9EBC20BEC4A1B366D42C1345CF96822E453CD90B8C75A851560D5CCE61CB6988AC41284F494E6DCC01218E12A240A81E06CE60C5F5980CDD971601D86E78BBB703EC11144BA0EF81E325552C46EE605428BAFB7AC2020C09645243AD360F87A900DB21B7AD4D3D34307BFFA559A5F58A472B984B2B72E851527430DF005470207378DC36AD299AC94C7AB2742885C062F4848C452015B536E1014F9582858D60B728320A4572D95012AB750566104B982F080CB210C82438A9080100081EB42F08F106A064F7999843D97F38115A4D8AA05B83E8927C1015397DB0078CE95BC96CB65C92E61C55C058E9EBB44DBB76D256B6A1262A0CC0A87AFD14F6825429E51350C95EDE9CC03BA1660A040F065FF8A2B88F090C2F2193D534890AD8201B244F39A5882C90273DADA165E1541212E95F1A37098C3A376050418BBBB42F3CA12F01B5C1F81F69610A9B8C46642E50ED5B53E9B37AEBB66DABB6A7FD1F39C9AC916C0083856A0E1A0E60EBE49EC6573E52C0CAB65003CB18C202AF04F7D952DDAC1D6F103F377D596B337DBF5DA1184F7B968E2F0C8D6C05B2EA7C3D28C510D19CE1F4C8C584707121CE502AD3EC36A1FCE0FC6A766917E472812895C170026884B2CC0173FB7DB559C7468B420330968D913EDBB92B36BFE0A725409A2F000FBBF19802282FB8105B4C2279F7795BFB325444D43313BB9011F284BE005718E619A1E451229909D258C6EA036F1AE91D44C4ECDD0AD5B77501CAC9CEEECA053274FFD7200406062017C43DF093820E0012144D28398A443731A3580B289C4C6153B6120B40008B5CF241812F2834892B529EDBBF00B177338C1390782B400626DFB41783402DFE7E3265B89076B8825A4CDCD71DD37783E7B5561C291907486C88F817FAEAFDD6FFA61A7DA76019E38C84FFD9605B43A3A1C2EB89AD598BCD4392F48985AB5831684152FB0002F1090932871093F10DE3354BBCC57A936F709389A78DA95048C4D5F92294C148AC514A001093AD7B08081BE3E9A9C9EA558B897A66666AE0F80C6EC6C10052004EA6AA5F92010B448109A69FACA0514A36AC2076C1D5E6009AE7C53DCE1B584F7B415FB4AD816082E830040B9F718622BE074595720B8BE0AA1A66B88BB84225195DDB549D0BBA6405DE90EE9027B9E777D2478F0E041078990279467A996B21FB881941B9A12B621BDC21556A16981EF5E197CC40B5A2F9E7FB5FF5FF9DE8A1AC13307FEEEAAEBB84DC60D0C35541125441809AB6714DCB8755CF53CE013FA48E56F189A2DEB0607F8578540D5856D28D5AFC80F34C901FC2047F002D05481A6B6AA7657AD28E5120A1C2F880E5E1B882B11C376552345840F80E048617087573A536E0082F7C902A0EBA6C58BE5871F529C4A0787A4BF6707214E921EBDED1BCA1A02AEF05A0F4482D3BE144EC139FF4AF35209EE07DCE00544D9CA167D69BD73FF901323DD699261D5C96880D46A65C9E5A5B8611EB84665B7F2C369731105DEC4C484B4DDAF9D08B105E88625CBB61A41BB27682BE15FD30B046E45875F0042DA5C57CEB6F38830D2980E546411CB45A1E44AD335E48364A1411BE1D607DF3450AEFACD06468D2CA4AEF572916ACB452CB84ACBB93CE5F3C520AF77C48AA4B5E51B57E501DC063F77FE222D2DE5A42F68C38D6B48848A85923C3FE4967815731F78E0C18F01C0301A62BE762D50A32F20E840BD9B9AC8EA403E700F0D0BD1B078D60E0F0D806958BC064D6958B4562F9187A2C5A9E4E9FCD4382D2DA827409C8E864261A9E7B93F6F9A18BC45FA2A7E6EA87E9E3CF8C0BFCF3EFC30CDCFCFD165547BDD3D7DD4D3D78FDCBF8F8E1D7D9FA2204484C4766EFBDAEB6FD2F97367656E7E54265BB84C67A6932AA58ADC3F9DC9FC120B308C269BE8F4A5733494FC67906195DC4A9172D39334B5B828C8FF7F3EDC9B676D84EC9000C1C27397588040048A46A394EDEBA1BEFE018C418AA5BA68EFC6DBE89E03611436755A0418A74E1C91EE12BB80633BEDA7A6517EBE088163F1A83C0F48C4E3C82BC2288E6A94496729D5D1495DD99E8F0700A4536717A8A0E63EFFC60F84C078D19FC487B59B4CA5A803F97C673A4D1968239DE952238DFD741765B259B9AE5C2E537E394793E397E8E4F10FA9B09C175FE6C6071323B7BA0C28CAB2ACF6639EFDF7DD43DB776C15A6E50A3087DFCCCECCCAD3607E3EC8CDD0F51B6FC635B7B79E396AFE8A97220400306F3D9AE8C049432A006E93A7A229158284894DD92AD335A59C6D6931642AB3E6214F7CC3C1165A10C191C7CB6F701E9A434A5B971E1FF72197738B58EC34952078315F908488EF2182EA2A1A702460ADB3E09C05AAAAD535AEBC2760D1D8D838E62A50BE90A71A406030990B983819D048644A00C03C2C6F0818B82A52FBD2FEA0BEBEBEEF25929DBB7181E64991E2FB1C93E1A33E9B28B2327C377CDE62783A0A08DDD47D53C7BEAE0BAF83EFC328ACC069AEC60F2680B3562E17BD72A983B2DDDDA51FBCF8FDBF9B9A18BB5CADD7333DFD6BEEED48676F4F263B3763FE484BBBDC1C6DA5BBD2C8E084486F096E2810748E16575CE0C36327E9D2858B123E3932259249C9242D6E8501B85EB8D4965B6E956BAD463D860DFB4389F993838500F08DE79FFB3A3D4F5FFF554C5C93EE09992FFEF87005054BE8CCE8391AC558CEE7E9E6751BE8D65BB6D0962D9BACE79FFDEABF11C9023AC72F1427B07D45D743DDBD036B7676F5F46DEDCC64374622B12E169C995E840E72892BDA676236DA8FD0C57DF97158222EAE1586F5B0D5C245A8DBED114BE6365A22A99A21B0BA383659523D97461B801B14B813263E108977DE198E2446BA0737DC06E65E874585448BBA2E61922D490DEEE0FAE95BB66F1BE77054AFD5D8F43C2314AE41C20BE546E1D5DCA9C9C33896E9CCF66EEAED19DC8CED4DC98ECE21494A0CD586F25658C3CA5478F7AEED74EB964DF21648A552959057AD6AE0831A4700BB54CC4F2C2ECE9F2A1596DF03AFFC9CBBF781F05E9B03AE43680E3B994CEF9A2FF40C6EF82BF8D74D904173101A3B93694A77F5D2E2E2125CA957583D1E8B5207CA5176237E40F1FA1B6F50B67788C2C5252E7AF452B98422C2E980E98FAC1D5E3FB2FEE62DAF0E0D644F87A3E1542412F5138944A5AFBF3FD795E94AE50A05F3CCC9B3347179CAE4F8CFD600B0DB613002BEE1CE2F730134DC989B999A46F2737162ECE2C94B17CE1E8135CCE3B21C4621109E4DBFD902E063DF1213C1717EF79E3DE6F442F579CBAAFDA5EF79ED5649679A993C2D23DAD14FA9545234C15D5B0843894404234631EC739DCFE1AE1F2065B35D42941980C4FDBB30F704828C90C1E32C910933CC6D2E009A82895F9A9AB65FF8F74333CB8BC58E6C57D6F8F29FFF69C7CCCC4CF9ECE8E8EC99D19353C78E1EB9786EF4CCF940D8458CE560B0BF5703AD3B01F979ABBE26F7DC73CF49FBE31446626C4C07D2462C1633C76B4BF14B2766BE914E777F2164B81A0B9446A2D1D3DD43D99E6E4934D60CAFA12816DF994A08837383B2030BB7A09972B94A7DB8AE8AD0CACFE33999995B58A0CD1BD6CBB3FB443C46D9AE2E3A7D1679C8403F9D1E3D4B7DBDBD34BBB840BD88E13954771B6EBA4952E79FBCF956E1D077FFF5F8FCF4C4F4A50B17E6601579D8FA6220F872B02D06DAAE33F7B5EA357F156DB70160E173CD66F6D30F3EF46738BAD6D0CC7EF8723F841A4434C862E1299F6B5808502A16299B49836C6C2A944AD48DC5B365542020373C93109CDFD319EEEF178D5F42988A206119C0F7D77EF633A9DB59F39CC62691B89411AF878706696E6989766DDB2A7EBC807D6E6B8D4D4E218748C9B56CEE9CE931803F7AFD8D0BDFFBEE77FEE5F29933A7AA9635E7D4EB4BD7D0B67F5D2F4A3EF0DC03E62D8DBBF63F78EFFEFFEEEDE94EF2E2D952B8F97006A9661A894C18B19C17358FEC702BD89D9FD82C170A92346D58B78E9A60DF1FBFF653DA08CD7221C244D4D191921C9D359B0030D3B37374D79EDD22D0517EF76770802691B8F8F2484BA5CD5C6374757652375CE5DCC54B74C7AEDBE9DD0F8FC8B142B92C51A007C953AE54F2DE3AFCFEF77FFED31F7F6DFEF2E5B17C3E5F1E1B1BB3AF47F076A2F6ECB3CFAAD752175FD65213A96198E9A39B376D4AD56B55BA79D32608D949C3FC14E6E245BA67DF5DEDAA6C6C7C0259D732CDCCCD49FCE52737E72F8DD19D106E706040CAE34E08CF60F0F933E7CEC12A6A92548D4F4DD1455C3B3C3C04974951B952A13B77EF86556540A639EAEDCED2D4ECBC901B578E4D58DA067E3A046BDBBD63BB94D80BB91C738476CBA68D5B37DFBAF58BD9356BAD9EBEDED31BF6ADB19FFCCC93EEFDF7DF7F63009CFE8FD3DA627DB6807B6E456EB26D616141AB22ACCCCCCF4B4CE71792F84D8D25EC6FD9B4996ED97233FC7E9816C0FEEB8257D818F40F8F1F87D94ECAA36A7E6B73110BE5BCFCC0DDFBC01959A9DAEEDE7B077C3E43C74F9D561567D3A61CB23816947FB3E3B65BE11A3121C501B8D0D8D434158AAA326C584D05C4F6ED3207679177EF1E0901C8FB1160BF900C758D4F160AE37FFCA94FD9CFDEE8CBD24F3EF96438D1D3B373D7C8C8374776EEDA1B02778CDC7E7BFB258359687B09025DB83C462047F87A82E2F0E128DC8205DD77C71E307E54843FFCC187B41F42E7E12227CE8CA2520BA9FE02041C0407B0A9CF83E476EFDC29D79F3E7B9686E076730094054C255561B300C0F6ED1991F45BDD372AD7BD7BE4A8548ECB00661C2EA49AAB2653D4F2E1A347B6972F5F9E7FE18517DC1B024003117EB95E4F853CEFBECF3DFAB9FF5A989F3732C8E5E3F0DD380A920C7C9043182F8EBBAFE72E5C6803343D3B4BC74F9CA45EB077B154148BE1373F99B8CA2891B7DF769B5C776274947A60EA9CA64ECECC88D6390AF09CBDDDDDD4055EB9EA7D50ACEFA76FBF4D7D88380CE61884E5DF30AD732355570D989A55AF9FAFD5AAEF952AD59727A6A75FFBA774BAE41F3CE8DD1000FCF9CA57BE124296B076DF7DF77D7BFBD66D9F2A41B37F78FF81F679108D745C39CCB155302972A1C37ECCE4C6850893DED8F838EDDCBE4DAE39065367BE604B0963B0C02C2C478FD5DE07E6AA6E627A46C836076EA9F353EB56C39E3BC78E55AAD7EA672BD5CA91DCC2E25B0B8B8B676DCF2B51D8451488953667B335EE75FE4A7F2FC056F0542E974C9AE6DD8F3FF6F88BB9C525330B22640DC5385E437BFC1E2F57872B3F17C7C6540587DC7C06F57B11A18D5D84CD98199BABC4D1F317E8BEBBEEFC888667C1331C1D9650CA1600A4BC4522CF2A3CE9BF5A5673B95A299F4678FC706E6EF6CD7CA930AE37BD122AB1B21E6D20F3CD3433D5AA03E5785BB76E85E20F5E77D370D54C90ADA01EF686F7EDB9E7EF77EEB8FD8F166767E8B30F3DF491D7D527C0E6B373F3E2D7BA694A98E470D707806620501AC0655698345BC6D19327A9BFB70789D0227CBD4CB566535E985660C81B1E1EC2EA42B95C3A59AD56DE9F9E997ABBD6A84FA3BA28390DBFE24722D550B96C81435C16187EEEA984F557FBC3875501E014F8A9A79E4A45FBFAEEF8FCA39FFBDF52A1185A33D88F04A50616B6A4E56473A361CD30041E10E2E3CFCFDF7997EE5DA1E1773F3842EBD7AE110D2FE696A9C2AFAC062F31CAAB2B9E8394D776EBF5DA14EA83139552E5BDA9E9E9771A8EB3084B2FA1BAAA7891722D514F58CD66D363810F4160BF958B7F029F6BD602C80CCDB1B9B9E191BD7BBFB67BE7AECF736361CFCE1DD415F4D74AD0DEE10F3FA007EFBFBFFD1B0E974790DCB0D9333BF36B229C0F7081C46D357EA485E2C48276C7CB95EAB1423E7F786E7EFE3D48B7EC1B46D9D4B44AC575EB15C3B0EFCC66DD53A74EF9870E1DF2FC5FE39FB55C1300B6822F7DE94B499466239F7FFCF1572AA572E400B4CBECDEFABC7FF498B4B1D80439C96181B921C18D4876114E64EAF8944AC58B955AF5683E977F07D1E2A8A73BC5B06B9491B255FC52A9D1D8B8D14632EF014A0F7989EFFF06FF8EE763AB41B6824BF999C1916D77FCCDEE91DD5F3C75EC386DDEB80164B58C22C7A11E843C7E2F97FB6EFC1617BF9505A22A2369395BAD548EE672B9B750F48C1A109820B01E69568DAAD1C80F0E3ABF2D816F0800B682A79F7E3A51D5F59D4F3CF6D80F33E9AE383726D89CB9A7D7B49A3E2C205F28154E23233B32B7B0F456A1B07849F7CD92E73860E828185ABB8AA17FDB02DFF05F8DB1158C2E2DF5EEDDBEF599A1A1E1A71BCD46259F2F9C410CFE607666EEAD52B53A8D494A5E28546ED66AB50462568BA17F1705BE6100D80A9E79E69970BED9EC0A452219CB6FA20489D434D7ADEAC9643551AFFFDA18FA77028016084F3CF1849EC9647408AA41B3DE6F82A17F139FFF0313895959DC8EE9410000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (181,1,'Workstation_(96)',0x89504E470D0A1A0A0000000D49484452000000600000005808060000000AB1F2F80000000473424954080808087C086488000000097048597300000A6100000A6101FCCC4A250000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000033684944415478DAED7D69B065D575DEDAE79C3B0FEFBE77DFDC333D8A6EE6866E848006091082C4961D882D5BAA0AB6A90C9538F961FF48B98A564AA954394E1C3B7125922BE5722CA5E2203B09121612205A20D134DD0DF43CBD1EDE3CBF3B4F67D8276BADBDCFB9F73D9EBA1B1A63C9F285D3E78E6758C3B7BEB5F6DAFB09DFF7E167FDF1C20B2F64CC68F21114C51356C4DC9E4AA6FB9AADD621DCDE72EAEE5B3D3DB1E3FBF6ED73FF3ACE2D7E5615F0ED6FBFBC5598E209DF974F80100FE05B517ADFB222E753A9D4B691911138F8E60F61727212F2F9BCDBD3DB7BAEBF6FF8403C957CCDAD370FFDF66FFFF389BF53C007783CFFFCF3D14426773FDEEF9302C413F8D6D6D5BE1728E0DF7EE52B90CA76433C998266BD06C5C222948A4BE07B2EE4BABB71CB17D3D9ECD14C57CFCBD271DEF45AA5A35FFDEA57EB7FA7808EC75FFDD581415FD89F93BE784208F108809FB9D66F480193E3E3DBFEF25B2FC2C5B327A1A76F08D66ED844EF839412A4E7816DB7A0522A42A55C805AB50C11CB8264262BB3D9EED1BE81B56FE407075E8D2552877EF7777EF33C4AF7AA0216FB7FF78F068F1E3CF09B8E6D5BBEEB8D4AE99D283A8D73870F1C98F57FFAB423FEF25B2FED36043C610AF12442CB9D2878F1410E400A387CF8C8B637DF3A0C9668C1C2FC3C4C4C4C80633B604523108B27219DCEC2C0D05A88C613AC10524CB351876AA504F55A057CE9C2FA8D5BE18E7B3E55CC75F7BD158B277EFF5F3DFB0FBEB7EAF94647CE9C2C95AB794318A82B1F246E692B019F7EEC49F9C8677FCE1386700C219AF8DD3AFA4B153F2E49E917D015173CCF996D3AF6A46F3BA7161666CF789E377FF9F2E5E6C729F16F7CE33B5933E13D6A22ACE02D3C8EF21EF051E61E8A9D444FB7657C301D007DDB3005ECBAF95628576AB0F7BE18BF5F44085A989B87B99919387DFC08349B4D20FDA28079CBF7F5436FFF1A94A184B9B959F8E6D7BF96FBFC2F3DF3D9A1751B0FE1CF5757006AAFCB322D080CC5A43D4A194DDF406518E0CA083A42129FF700B9202989F712F1D0034F023E37A1AB67102CD390F7DEFF90340DCB360DA3258451C3C3557D0165017E0115B7E8B9EE5CABD59A6A356A171617E7CE1886318F1656F820DEF6F5AF3FBF1DFDFE0914EC13222AEEF7A588483C919082850E5AF0FC54FAAC09A1B7EBD580E0FF00FA0606C144F938AE07895416723DFDD0D73F0CDB6EBE8565D06C346161711E0A0B0B3076F922BE6E00492F1289A23745E19DB7DF8027D66DFCF11E87966FA3102C1416E4FA8720DDDB0786E7806CA24B9511E72A55701D8781CCD70A08F7A6875A22454854046D9EE1346DC3934D0B2F3E89B7D10DA26D55EA89BAB1482C09836B3741049586EE2AEFDFF7888DD7D242C9D54969E86D653C60D1F3E5A274E542772E97EE1F1E1CDEB07ED3CEEE7CCF9A542A0DD16894058E900352F84AC886D280528660EB971FD81B041B59AEA70731BE0615849566B3052DDCD0352093EBC6CF7D705D17922917D25D79644A0558B3E126F050512DDBE6803D72EE242C2ECC5E1DF20CB254D34CD285895C3F8C0CDE476F422C6A40262260D0F0100B3DBC2114B68F7B544EB0016D6E0B7C072FCC6E80D76A80DBA842717E0666A76711132B3A04A1FD8B30EA034184AFADD346A581839B105A69D00D5A489D4A9B410B9BC5EDE489936891269818F8A21818AD88C54190F6165A5D2C1A83582C0A51DC12B118C4E371E8CAE5A01B8599C9A4218D8AC37BBE86372823A3DF6EC0004C0225E137715F2C1661667A1AEAF50606637CDFB1313EB8784C0B32C89AC81013A8185220056E171572550508C3681A6C2906989220C5C7E73EB430ED70510465338A566AE2CD09548CC9371B415121DCA09B99FC195A317E8EAFE973DC6F434B8BA1D22C0C469294847B0FBDC869E245E38DB8A828075DD569D5C1ADD751775570EA55A8170B303F390E8B4B050E6EBEF616D0E8C48A235A81374537D612362C1363A7E2F43F1A9140D035F2F5593038D00FFFF00B5FF8B1DE40E7200156CA15849B01F01524F33E8E583F34BC16304983560B15A0F7E57299638483CF1D624AADA6B2BD6B00AB859FB784F6634322D4A002D01EF555A87B720D89166F2A9746DC33245910BABCA79425047D8E9FE1D93070409382A0114196106745452D03E278F3269E836307B9AFD4B104F70C6174932E1E07BDCC47AB6285917539A43C1B619014D7C2E72D8447E56D1EC2A46C54C043E52DCD4CC2F4C438148A25B64C1B598B4FE7F2975B36FD7FFEC20578F0A17D303838F46362030A3A91826F3EFF3CCBC58A442085F94002856FA0C165325DEC5509F4263608FC278ADE96452822982B14CB50ADB7742CBDBA062C74E31A1DC0A4000C1E633B50E0D24A2001119E7A06ED49F8A808432BC72741D213939FA364F9BBF45BFA8A23D5CDB0B27043B5E10D18F8533C9F9010843A7252529C67A1B251FB12BDC835A2E04552E8094A4952457B0EFC74BD1E1EBC8642AEA3AB1204F8DB5C588BC7DC800A04FA8EE7301D0417BD0437824989FCBDB5380A6F7CF3CF109B17A1BF7F70D5D8E06BF27EE7DDBB61DB8E4FC02CB29EF1F1714CC60A80E401E6E6E71082EA084B4DBE7E0AB8113436FA512C1147388AE27D38FA58D752403C5E65AB0484161F2183F09A8446E401EF99044F57A4E5C542202193E5135CF175B372D47356082909B4679072A4521E7D218AF86BA055E12911CB892E2AC5F0090862F8A4E82DEA642C1DF20C13F7188C1173016A2D0FF1183D8395A3A049E2796AE8859EDE28B44819C1E7318633F23089B0B871533FDECE9F41A15064635BC99402A149F2447C9E48246078ED5AE81D1860AF72D033D9C3704F81B9505882C5B93954CE52187C295ED8E8A182620D5C3DE85BF158AC4410402E60A36B475198B62F94E50B256CB2100E25141FF08E5D6618648DCA5394807133B4F0BDE0B7CA9B0CA1BFA3A12A8A168E34158543C2970AB7A5426BD36777007560C1F024F1779596843A0ADDA5D774E1A6A15544C73098F7076C87CEE7119321A12A67E5F3B00D19CA226B68C904812B99925468CF9F69C40A6186218537F59A18572693E51CA077701895626B0539ACA0F14B230CB95755402C992871D4274E4B0A402F68FA5125405F5D0CDD045B3E4AC7F5E9A6108A7C83AF2E88092C680FF877AE687B0429CC09BC80AC1D05E0A2E04980A6E9EBA0E9B300C9AB7CD43629C3456B77D00AAB08350DC767CFB44C93BF2F3B051608DE0B04AD8C85F76408247AA9BECFC91992087A107F97810777E40DC47E8220AC6288AF85CF52D201592961E57BA015136C446CFC6B2A201AAF2897430BAB35212A88424595D0B5D5330C110E0B65419E0EC2F425123A055FBA7BB7038A945BAB98A1204A7992C3F1451DCF42082268614F90016590484D7DA8E3D670F19CE8292C333C962F9482257EDF63CB57C20ED111DA19B0177A835050A5BF1F603DC1077BC08ABC21B0747A9C3A750AA6A6A6D1500C486732D0D5DD03090CC6110CCA006D6F08DC24540CB45F5F9305256289120735BE18C25F5705621D8C19C7780F8CA32C056DCD8C1241C40A6148FDD6F095125CE96B782765F9CBD89381C7224E6EFACA76E9829BF859432A2B57162F03FE12440514AE8A5432801BED3D9E3E87F200A1BEAB3D0CA3087F9F8D018FDDC2802C3B629B083C4A2AAB26CF31AC341E33C6383E3B57808B17475171752400C4FBC9184D2615743CD3329939517DC844FEAFF4721D2C08C1B8C638494525BA6C17B3600D0D46189014960ADF0FA1C493CAEA0DC678C1D49575A285EDB2BB74C407A13C04F4E78E7E2F221447A70B6D10BFD74C2914B70873B96570C39F7A22B47E256809FAB41C37245A8DA195439932799A83F790EBEAD21EE0BF2F8B66C86008C2C4130599CE7443A5308B541AE967360BA9342AC555950007F70D8C250EC264B3520363B188E720DAEC3199A0025E3EDF730D05F87ECD37C84D3DD6BA89D44DC1BBCF6C34C805182F8D40112A4953B4D3645CE72F6B0B87108294E7041E14788843EE8EC77528BF4038F3D19C5A443189217572763A8547178957E629BAEA690193CA3C5094965F6BE5789EB678AFD3038043301B060A6ECD868D4C21A566667C5F0AE554894507E1C0767B0786F8F80DCC7E897E52AC54496583F392582CCD46EADB55CEC6BD8864055A96E43870F544CC177516A8EBB2AB190441A6BE185042F482A81FE607416C30742E20B4B07D66319E766DE6D71A67196341410FC180A1A1A9EC29B7A164CDD4CA5320AE6CDB0A2044A83DE3BE15301E19C290D40A12DA73C903384E68880A03351E373FB40696262E2BA8859001F377D9017410B6D1BA8B8B7310895AC8DC227CF4682C0E6634069118C24DC256E508B47481FC98615C7B8FE4FA9877ED3C004F5CF349C88E52409412188E09CAACF8801AFB032A1A446862431EBA8B11C40C3F88098A3919BE0ABE41CC603767B3442FC02FD7A8B6A585EF4AC58C0CD1CE5895FB992CE8C0B2B93C11321E9F6193054CC413BFFB7E4F58C18C68EC319D5599B2F4DBF0A38380D41A60EF202F2361361DF418B47634528A1D342043F2A2E04E251197ABC21E67FA5CA8ECD8E09A3100218884E5E0C195AF3ACC26D81A40D1BF802AFA52DD1CB4890C0BDA93ED7CC0F09495064C8813328DB546102430D1AA227E52CD3D221485155A6914784560925279822FDAC29342DD94842026485688A7CF23F567410D88C706408487A3EB8820776FB69A611E1050D020090B20289E4843BE6F08ADDFC4CDE2F810707CDA1CFD9C6A41D54A19CA182B14ED5510A4A8EC351480F85FA7ABA292330BDA733A920FD0184B17A4A967287C72375582F09819298A1A583E84F1A3ED19FC14155423B8A31A11310DA160C971551025CC141C0BDA4480451E424D0031A0B2DE0ED8217644DEEA7526643A1720E62535338A25D39CADB633E176493BE0FC2440212CCD8E4418073B797E48439938980C3B8A26B73DE05A831C165E518D2ED0D10A00F2045D8EF0425643094C400841C704ED0A3A2163162E2DB6265743965286D037A85CBD822E4BD4D3D2821761BC50C91D9D8FAAAD54A608051E60B316BC62397EA8BC20C9323C0D35AB0460E5418AE94553492EF4851EA0E187F64A68CA035CAFC5AC0622669823F8CBB2E1E5895710D44308221CBC9607A06DD4A936E3B8B612A8B4C352AEAF19B1D4DCDFEF8CE881E0C00F83AC3454F1CEE520AA8232D780385803546D4E95C1D2A51F372801B14B8990C2D26F637865862E37D0E9B593298BB59462A406C8301FE86047941304ECC80BA9A6C1F945140328D7F8113A82411D30C25217CB8C5852ABD5804BE70A219B5748A03D81CEEEA90A0231C8A0EEDF093F2A06C0B5C603A046031C3492C3CA72ECB0F6AE4E49CF7DE61F8A9A2AAB55799A1290D0AEEC752665860EC2946C516D9D048ECF23A660387045502F02153704E8DC40FDD6944A09A102424CC7CF3C2D541D6B48101C8FAC4019320CD452EA3C4104C999C4EC33C110546FD4B9D4CCC15C67C252A7B6ECA55614A1598D69104BF47800DE53D5D98EBD2FD58860E7FE7A84CF0AB05DBF46639E0C39E432E8760A73D44E0D82684504B181ACC0109AEDD066E8244CA88447A1A2F610001B7FD0626831B452DA41976A49AE8E25A0C7744961447129B8472949D3C2363A3D21784F076019F078D00159E7089ED009A208B2681A0E8D317329974B904E6734FCE8FBC573C6F173BA1C8A4594E192873FB9A30B26640446EF69C1EC9FA8012366484828684F64219D4D42A95CE111B96AB57A5D0A302231B34E1E100CDF08F400B6675FF3085FE3A9A6A69CA808EDAADA4338F069FEAFF331A695B4A7D242B94542A6F7F4FB12F4E687EFA9F755A2A4CE45CF5550A55A8CA537AAA2AA429E7E0F95CA237628A888FE2C6299FC3EBDA75EAB2D384624AA6AF79552495BB1F26CA9B1FCAEDD7731F677D2C9F5912AACEF894061FBE2328809B66C3603BFFA2B4FC3ADB7EE84271F7F3414309526AEEA01664BD448CBECE2F40FC502ED01BEB68C6563A554F0F215D6B2F8B5A24236D411801D623C28692348D8980D759435348D159D899B4EEC282933D15C294E98B4694F103A3B36443B28B3C57BCAE2E97DD71361DD48055F5D3DD59E10F1A3FCDB4AA5C2182E3B8B71A88C6CB64BE7104AB8840C6F2E266076A20419230775B9D8217CA58CA5A525F8C3FFF2557E7EF4E8BBE1D0E8DD7BEFBFBA02969646EAAAE8A5030D42108B39189C0832531158BCF20816322881CA203AF2A7C1FB78832D35AE1B11BAFC2054653548D0987F7BAA96247476CC192D17D65450274C7585B27443276A81E07DCD7C5400965A192A907B3A7B0ECBD63A3FE10453AA9234C501AEC41A1DC538CD5ABEF8AB5F803FFBFAFF8446C366B8393C5A56B033A95A723CDFD3A56B85F9012D32B4ACD2A9146CFFC42ED8BAE396AB2BE0B9E79E737FF94BBF4E5E6FB20CDD96C67E43C7011172611E79D25605418033DA8297A14503D41DC943924C2735D3717D58362EC0A9BB1ECEA4F73DAD20863AFD7D9332705F4153CC34C2E29CD07B5F979885AF03B06622CC86E472DA2A7542669811A5004EC674ED940666F498353D76EEDA055FDEFF1C266C6AE09D06E1B935453F6FADF29A3A238226ADB8DE1B86798D3C40F5A6D00872926FC86E325D6343E06E39D552C28156D310A96183D225297C3DB6AB031FBEB41D1FEAF8B9C543724A780A7AD4F023FDE7FADA8B7C559656C256D84F019E6282623BDA925941AA6CE14347494AA8BCD8B00C451141D35BBF939AAAD2048F89E189824119129AD403303C4C8AF7E85F1F7961F87230391DECEB87F189F10FDDD9C757220C8B226F924CA55658808489D999B4DAA345C2D05064744093A129695012167A9042275BC1A815D1505FB9BEAA88AAF164D7680B9F3CC43414150C608706623C6DFD2AA84B0EC052D78C7C1D0B424FE8C805600505EDCC13249FD3E2B8448534958CF9DA0BFC6B0E21060F623BB7DF7E27D253E7865A2B590188AD4D35102FA0502A431A2FB526227A905C596C108C8398A01CDA6C17C534F4545D8F831E533B1D68BDA09EC4CAA0425CBB7461E8D285C7C2570C4A6A852965A8512E1A6FF0749300C11207E50E6A4ACAE81C130E28673026CC43389C1312CC59D0D3DDCD85358F4982687BC175F2F735C343DC235A6FD66F5C01F158BC1E709C4AA506BD822AA23185E742DD058FD58AF6E891AF9905838CAFD2741BDF687864CDBA5017C40F0DD62280223D7C49A507053D0195959CDC29CB5795D680E24ADD1AC34A103E8F11901264981B687CEF1C09F3DA30E97279D8D0CAB660CDC60DD0AAD774C214189860EFBBBEFE51FC0DD3DFC80D298043682C11AF867D4B3CC8EEA9A06B888EBA629088E9B6421D8A55E30397D1A0627B3A30AAB811266D222869E81CC157F0D0C9F9A57ECF932B5EEBDEA4E07B5EF81DE004C90C7303D5AD676ABECFDD7A1DF9000F7DEAEFE33F30B46E3D382D47D34C4527697F3D1ED06834E1BD932330335FC0E4AB1BBABB7B6E4C01A964AA12D05025340782D00A86CE86035811EA677ED0FAA76957CD55C956BB1AD1B6449FE02528216B880994C035798DCD81B5FBE1732D701F74B214247B8A6652A0364C95AD2E4BCE7482C67BEE4332B8F4CD34D6506C27D59D57C3879AC77B01AFBF8E1EEDCBA3E3B079CB5678F8A107F85AD7A1326F088262B144992E9E5A415449DA056A950DF03F708240098621C2F8004265B84DE49CC2D4993175BE811E4BD6581C9619743555C506680B1F54C0B5C2AC5A8499A9D4AFB9031BA1908A7DA6E7732BBDE472851A2B53D8AFFA1FC28E080DADA66FB232098228DF4861B245E508EEB833547CA2BDA2A5D7F000F41C2A37E47BBAB94322128DDC9802A2F168D9C4C0E4F8BAD9954AB0A00B61BA1C11E2B92E3FA8963EA599BAEB871EA17205A5384377417399C750B982A72D8C6BFC4C3915BEB3850B23F410A9E9A8A7DB613C43C50719C40B08BEA3BC8D2C3E285D7301D6D38337BEAA2951B245019836CA3B13E94C5834E352A350C546FF3A5C60E3BA211819B9C0BF911EF5B1366E3008C79365726368E96C9806E635DB111D6589107274E0A52FB7341C0435755F0FEB061933075D6817F4A4CE9283C11EF5BEAEAF77C094AF3D40F250A8623E2104491D94850AACB4A7FE22454F850AC4BE2608A6EEDC90AAA6646A588B25334A919EA79ACC8C20ABBF760C20CB276ADEAC95A0BFAF1B4647476F2C06D0B8B089195BD06444CDAC6DDAA9C76185AF33649F373D92082DD70FF3F8600850EA4AA42E70AAE77A5C4186C9935282177C8F2146C7056DE52AB1D2FD9F528DC229B8F2C3FC202800724E22D4400E6DE4110489E4A51C2768A8D3086200F0A08C6AD06AAC8801D7C78252C938067A9FE70ADCC8543A4BB39B3A7B801694EFA98A68907405B453845EA03878532AE811C1978C0EB6A4736308BDC10FBBA14538AEAF08BBD43598A0313BDC583946A828A2A516E707107A87AF954071880A789429F3615D35741A8C9A511036C96BA4C110144924D9FE684A5134AA28375DBF941FEFBC44CD25D5A08C1F94A45DB7439086AEEC1961C6C98137683FD7820F787450B80B0773FC40014257BC57F68B890EE8F1C3E7CC86A4CA0D3C8DCDAA08A6CBC77A644A77AD07D31918EF4DC3083BD668EC59980113D21B3E8F507B093E6FD4ABDAFABDD00B3E7E052004058DAF8CE1D26EC38AD04A08679C288B6C7A6D792FEBED0B6244405F851142901F302795162F6B720D67C12CA3B2ED58E0859EA19F878AD2F90167CF8A03B9520DA6B0F00DD5FEC83983A1A82A7B034D1EC124AA56ABB507D1AF330FF8281F1D1014D1D2173C26E0770896D94C4759DAD1BC3E98DD2044C78CAEB0D3AC0D479DE3CB41E53414BCD19E33263B841C066D9E142838EE48DD33EA07F141C727DF6FB7507282C7415968CC6F33201E6F307DA6B0D4C1469D0CD456A298909EF3E0FF0D4050188483C176B7B52C3DEF6444747DB6C64911CCE112461B8A025D04DF87205F10ED8EEBB6AE02606A67DB41DBB7DF8E0BCB8643C15FA6A8203007099ACBF31754EF29DB93F602F600DF8388D382885D07C356132868CCD70B3BD9340BF8900F1A575F5A2AC0D4E4E4757B92A56FBD6E46DA4118EC96B656A1DBB935EDA48F64E7208D687734059237144C09E81CC8D174D4684F9B0BF2093FECBEF53BE281082DDA0F598E7A6E206DB41C1B2CCC550CDFE56948B6E7F294A006CD256B35C169D6B977B389F0D2AA54A15E2E41A5B004F3C85896964ADCF1E0E9724B30F418CC0DF6AE1284E9FC8D460BE61617A0542841A954826AB50CE54A4535EBB66C5EBA809AB7E8F8BB6EB9FDFA1480CAAF45CC8846201ADE6BA896926549970A8C8E660BEFB3FEA04C112825A823E9EF06A33874C4385A620E93BEA4D74456E3212490401D30D0F30CA2C076130CA709BE4D0DB03417AB061E0AD3AE96A038370BE55295854E5EABF05DD14BB1120EF1F1CC33CFC008FEF6ED13A7543B498765D29456EAF564EC37540F93B722139E5F588477DE3D06854281A7A692C009D32442179D37857436DF9D8752A5C48B7A109427ACE83527662CF700E1D7544BB80E03B61E9837C4B291A7968E11747B71C4D9ACE140C26F81496D6D2440D9024117E6365153284C7475A0B9528D2A885615FC065A4AA50C85E949383E37B76AE70029CBB22C9E074C33F8559D47EDA97B83E7089B26E337B39DAB288176B4B6C3860D1BB9D0168BC578DA695FFF206F1B36DE046F1CF89E1A13E09846033272D928F8A9D3E7E0F889133CF0AF4AF726971F525D5D90402A4B2D89A562898F91CE64B93F88023B3DBFFEF1001075BAE9208DAD2ECEC0C68513E809B6B6C8064F05F55080E8D70028D0CAC20CCCCFA23556AA1F69502237A72E3DEEC3214578167826790909DE0B15B09A128209D884F75D5D399E0579F6DC59E8CA75C333BFF1CF209BEBD60A12E19064A958844C57375B3F7981E72D5700052EAAA6D2EFE8F85403CA647308457528978B6C1CB49C01CDA0A7A9B55417A2CF8786863FC8800CE8DE2065EA23274FA2EA4F86AE4CC2085B173FA647A0082A1578A6CB8AB068AFBDC0D04AA0D9ECB9EE1C0C0C0EA96D6008FA718B2712A1D08450039873B3D3B0303F07C5A5058C050B50585A82AEEE5E5D90D39D1DAE6B755EC7F0F0B05262570FF4A00263B1889AF44DEB6B18EC319C4DD3C21D9D63C21F8886628659A7A9FEED40A84B1242253D1FB7F0D5B23116CF40CC6433DC264213A37368A9B427EBCE2204D04683DF420B3910360D134E8E8F216E2FF2424B34BF97961888C5533CA15A35000B9EFD1204605F130EC773969536B76FD904EBD67E918F59AFD5970DC257F1F5FCE2222C209CD204F166A3C683F8743D77EDDE035BB66EEF84563DE97F39CF5531A0296BA4D130130EE827514EDBFE60BC96334E659D0ABB2D16A6C5EB3A4454F9566FD497196C24C86C36CBD380BA50B0C9548A5BD5DBB8DF16B0D07043784B565C2E1561A958800A6E4B852263701C856DE0790D9D0FC41319DE77065CDF502366BE08F618846DCF5AB96C0115A24AE52A4FEE5E5A42812F2EF14C196250B444818DD66FB391AA64AF82ACAB88DF09D6E4C2EFA979F09C9B0ABDEA8192369F2C99B46BF4B2676043BBA8063E2F1390E2CE342D50AB8DBF96160A0749C30A17D0A0B518967FC7D40174F9EB4EE15A1DDFE1A2190D7AA3C512463B764BDAAD966CB56CD1B29B46B3D1120D7C9F6A38923BC49462950728C6452BB148DD37A3AAA310EED5FDA9802B340516467BEFF9DEB23E9212C6B8EF1FF82142D78C6250F8BB2C7A61040D0AAF0D12F1187B2419EADCEC0C4FE43030C98BC663E131F0FA693D3A2A3EB9C1A6BBAD7D56C0B3CF3EEB9CBB3C7DF2D4B98BBBB87420759F6860055225639ED71EA054838FBAA5D1D4DDC23E7509DBCAEA542F11A70C26F7A153A3033A3FBE87FB70F8402F8481EF1B462C1E37D0FAC5A69B36C34D5B36BFF1A5A79EF80DFC561A375A6A2C1789C4D6F50FADBF33DBD37F4B2693DB8A82CF1A3CCD55AA796ABEB14C98EDBD9AEDC97528F21E1D7097EFF5F8B1E72D0BC2E3E393BC08079E5B19181A0809DE43AE4FCB12249065D15206755DD44B0FD244BE2C6CDFBE233C46BD5E4BF12A30485F78E12B253537F4007A64E370C7E38F3E78EBE5F323831F0EB43DAF55AB970D23B258589A593878F0204D7FF53A31F0F9175F6FF4F5F5C52627A761726A0AB76998A6656D908EF6F6E431E00DE236046BD60C43573A55A409EDD4AFAD2FBAE438ADC2E4D885CBB8BD8AAFFB7BFA863ED1DB3FBC3D9BEBDD9C48A68654AE27F48C1AB10C5A3ABDE06ADEB0B21C4DC840F982EAC2548649F947A63B83C8918606E6296BD6AE652E194128A5A50D380877F474B61A75B2FE9CB65D476F0C34A102A8430E77EFDC68F0EC58A38D9E26B5EBC52389C4B047D36CA0237BD6D3636B18CCBABAB2BAFD5B15C5C6C6C71EE95FBBE5757C5D4645CEF99E37856460DA6E96675B8DE60CFAE0E4D2FCF42C6E47688C249ECCAE1B1C5E7F53777E6063BAAB6B23DA6A349C9DB39A37048A58E10D2BCBD1046F34E8DEDBD7CBC24D22B4104C36D0E22B980324115DC2CEB8559685C00CBD8C4460AEA3A170D92236D647C158443050808E449A4E2673B74512C97BCD48EC3EBCADAD1884F2889F164D83E20111CD5882801D89581D9550350EBC76DDBA786F3EBF8926C4F1624988FB14F412A91C2433861F89C64A781BE7EA95A5EF351A9531CF69CC4E5C397B01B76E0CBEBD7DFD6BD7F60FAE5997C9E53722F3E9F2C30E26D51E438AE7F9C9FE0A6F58A1801D5B37C186B543E0B84E472B6203E3636B555920255D2C169646AAE5D289B1B18B478E1D3978861AE9702B6B4FB68311D91B5680163C459BAE54B6F7E17832F32FF1C6EE90D2652A477368C982321974D7549AADBB93D150F08DA1DBA688F158962E6FA87A50A1506252D0282F40238A297EDD628641335B78C6A963E7F0C99E443ABB6760FDB6D96675FE3FD8766D01858C69BC8FB4DAAF1A46AB6C88C65C772EDBD79DEFEBCB20874D2413C985D90531363A0941573137E49A6A91116F0504A9513683E7B0AD92ABC872B93487F9C5E5A9A9F10BE3972E9E5858981BD302A7ADAAB7BAC6FF96861FB98C057D48E193E1F4F40E6FF9795F7AFFD1755A19778555A4D219162E6DB1741E5E3BF0869ACAA3932C72D93866969E8CF3730A76E552010E1D3A8410340911D1E239BAAE8794D58DF0F233A9740A5908E505B8652917C8D24A2503DD3DDDFFBA379F9B8FC6E35D5DE9745732998CD1440BE2E91B8686F83C24CCF363135C3CDB76F316E7F4F1B3627A6ACEE2BA8D54ACE06A2362980B38D3D3533363572E8F5FBC74E1F29913C747EAF52A2A1D8ADAC2ABAB08BDA985EE42D81DD9CE05AE6BE1D6956B6FD26F3098A6CD44FE779019FC56BD5214017D0DE02D9648423A99623E9FC02D89CF73BD43E130A2CF537B5439992C3B994EB0A21271CC091231CE382D642609621AC904A45319D4761E3D260231F42A12287910B7AFA33287FAFBD8C366E71790A5D8EC692514744F4F0FE3F5CCDC3CDC71CB2E5602BDDEB679339C1E1981370F1FA91D3978188943391389C6BBF33DD9C567BEF42B79C2F5A5C542FDE2C50B33E7CE9D9D3A71FCD8D8C9E3EF8EBBAEDBD0C22EAE62E9352DF8A6861AB7633D11B95A22B6AA0248E0FBF7EF17A74E9D12F33B778A7DF8DED4D49428140A62707050CC5896F1EE2BDF425CEF7D3E99CAEE9D9FBE8CF8ECE81E224541A9F0454955FF401FE47BFB78D1BC356BD661F6994621C799C2911063286C0A6E69DC682E2E2983B2CAFE7C37B54C4212BF77EADC79B869FD3AA8205B22CA79EAEC59D872D34D2C64BA7AAA47EDDCBE9513BA732317E19E3BEFE099ED93D3D398285560C7B6ADA8987978F3D0DB98D5AEE1364552C85A645D540D9D42A5BD77ECD8E281575EB9E0D45A72F3E6F5F2ED83072750F0F3A8D496162809BAD461E9950EA1D7B4B5DB7AF3829EB4CEA46B55E35EF9D997BFFC6503056FC537C423A69B8F48C7319181200C1A065E0C82B6346F5ABB21974C746D1C1F1B7F0893BC5FCC74E7865389B849C24AA512BCB44BAE2BC30AA04BA0F7030A1047215DBC320ABB766C47AB4EB2058F4F4EC1952B5720DFA35AFCE268F16751E8B7EEDCC9E55EBAC205CC423F79CFDDFCF9D4CC2CCC20F7BEF3F6DBF83509F7DCF9116E98ADD4AA707EE4320C0DF6B1412C15CB70D3C675ACE489A919B8EF9EDDACB8D367CF410ACFB371FD7AA862E6FCD67BC7600C29F1C4E8E8F4F75E7CE1D0E963C7AEB8B65DB43D6F5120134386565D013157B3767F356BBFA602C8F29F7AEAA9C8CEDDBBFBF7ECD9F3CB880EEB10E9872C33D2876CA5172F3C6F984637265331AEA55B56B86E0EADA678FED225D8B9750B7463A6481E50444B9E40BE7FE6EC19181E1A0E4BCD3C551485D0D3D30DDD9845123D3C73EE1C3C78DF7DE1B59C457868D61B70FBAD6A86C9F98B17E1E4A9D3B061DD3AC670EAB8A6FECF743A0D63984FDC76F30ECE2508D2DE39761CEEDFBB87CB1DF45DF298ED5BB640B15486B7DF7B0FBD2B0F3584211A96CCE2EF9BC8B486FAFA60137AD9281AC33BA7CFF867CF9C79E7A5FFF317FF7B6C7474B455AF2F61A65BC4EBAFE0BED3DA036C97D763EDD75400593F424D3CD9DFFFE8C30FEEFBE3FEBEBE5EC2DB6E0C74315A933316634C2E964AF0F22BAFC2AE9D37C3FCC2024FD9A72C9196EE3D7FFE3CDF08E179177A0015F9CEA0B5EDBBFF53EDC40431FAB51FBC0E9F7DE4336D815FB8001313933CD9AD52ADA9192B78CC7854951A6829CB7B77DF051914182DABF0E6DB6FC3DEDDBBF58C461FDE3A7214065088F4BC542EC3BBA7CEC07AF488A55211366ED8C01047FC7F6E6E0EF6DDF7496E4B3C78F8087AE20E34982EF4CA2B3081C227E341AB8702C2DAE8D4547DF4E2A56FBCF4E20B7F5A2995E69183968AC562636969C95E2178F8B0EB6CBF4F017881493395F985E1756BFFF0A1071EECA2C623B218C2579E89426B25E34DD71A4D486152B2158359678C7E0915F3E9071FD0AB4AA9C7C8A5CBBC96F2D0E010CC215C90554651919E4D2BCF2659A1FDBDBDB069C37A561A5DD28F9009ED4581D379E9B1542CC2E9336719766667E7F8F5B1D3A761786090832D617B2A9964581B4345EEFBE4BD7C5D542238F2EE31F8E49EBB3968CF2F2EC12B3FF801EC4408A4E588CF63CCB879FB3684CC2CAFF7B9889FDF73C7EDFC5BBACE83C74EC0C5D12B97E7A667BF72F2EC91578C925D2EE6724DC44CF7C08103DE8D2E70BEAA07447AB28FC5A3C97F7FDFBD9FDC8C41172A4B4BF0D003CB67FB11E3F8F36FFE253CFD8B9F674CA57AF82C95655198870E1F85CD376DE46E36CC4AF0667730DE663359848C141C3A7A141EB8F7DE65AB147EE76552DCFDAC5CF210C2FC97BEFF2AB29B01A8D5EB0C3554048BA15750061B43CFDAB97D07737412F221F48007D1B229BF200FF9EEABAFA160B772C9B8582E73AC214BA732028D6F1023A2075DEFE8D838DCAE5F136D3DF0E65B303430C009D75A844EF2EEE3E72E50507F656A7AE22BF35353679A8651EF76DDD6F0F0B0F7DC73CFC98F44011C03F6EF8FA4E6E67A3069F9CFE954EAB19F7BF2C9CCEB08175F78EA17A141429EA5DA4D8D932562374514701683AEA7C75BEFB8ED568E07C1E3CDB70F2324AD47EB1F68570751C0FFF7DB2F32BECF23032101D17CDA5ABD06194CD86889E23D6885E40D649984CB54E2BDFD96F68CC3D3E72F7060DF72D326643473308F464285B301A4A364C99467902593572C160A1CE86FDFB5537537E37DBC7BFC04B2A021FE8CBEDF6CB4B88634DCDFCFC724D398C0D842B368366FDCA860F2E22578FBF8497B6E61E1BF4F8E9FFB4F8562633E6F59F57C3EEF7C5825BC8F053DFDF4D36666D3A664C477EE6BD6E49F3EF6C8C3FDEB31F08D8D5E41ABDD0B39B4C26864F576ECEF22FCEC434F8969D8A0B49D18CA0B2FBD049BD629B6810912C7079A2294443ABA84C2DF82D0D38B3017F6DF8F8DC1185AE5839FEA08CA1746600403F1107A24597C0D03348628E8425A4B7161E4F265D87BD75DEC8DF4189B9CE4AE855B6EBE996B4C57C6C7E108321DC27852320DF4F4A0478CA3903763CC0ACE3F8BF4940C62FB96CDAAB480F7701495B561CD1A9844E3BB88F056423A4CB5A9F9C2E23F9E3F7BF6F5F3C3C3B503FBF77F28387A9F0288C93FF5E52F47625353790C823B3EFDF0C3FF6DDB96ADDB0E63D0FBE2D34FB1F03A1FE4EED3D3D35CD96CE0C59E4341D13A6974D8354383A830CC58D1434848EF9D3C05776BABEC4CEA5E7EED00EC41E151418E8E378334F32CC60D6A31A1E1C606CDE745BCDE8DF84F1E41D0A53CC0478EBF4DCFD4F1E187070F31B6131C4EA3572C2186D3048D1C9EBF1F95456BC59D46BADA954E322B0A1E9750E1550CBAB722A90826E0BDF6E69BBCD0F71C42521DEF8B171F54D3443996583C9FA2F5BFDE7EEBED7F519D99293DFFFCF3CE47A2804E2F70AAD5B54343039F7BF4E1CFFC5E3C96801FBEFE034E6A88A5D072BD29BC115A5399A0A20B2D8AF60447744C0AC68F23CBE90CD084BDDFFACE77E189C71E61AC9E468B9A42E5D1A07401836A9ED66346B67219ADFFC94797FFF6F0BBEF21CBE985F55CFA558F77D03269A891981991823866DFC49AFAD09A07F1BB144F567B501E720585FED0A73EC5149888C17BA7CF22D35A44389228709B575F0F6A966A6A936065D21FAEA8371B6710B2DE9A9C98F8F3E985854B69CC11BEF6B5AFB91F9902022FA05880016FDB430F3EF047DBB7EED8C565037467C26EC3B8FA62741438BF7FE007F0B9C71E65EF98989AE4AC348F18DB6AD479D83197ED2286010FECDDBBEC78648107D1E33EFB994F2FA3AEDF79E5FB9CC851E188063FC81B7A50697DE8719D5E75B50719C1E4F40CBC8B8C6A01638DC7E3CF6A19FC60489605AE5ADD7DC7B6676BB5FA854AB57272767AE6E862B93C86322B220415D369BF606786AB1821EC8F2C062CF3824C26292D6B4D7EB0FF91CF3EFAF81F60501698A2C33FF98D5F5FA5EEEDC124063A12343530C510DF6989471A41A2090DD43A72FCE44978ECD30F2FFB1D8DA5BE7A007382CF3C1C5A3C61FC29CC1DCE22CC50264C9935254C44557BF158E465D7FB202A49B4741AAD9CC68B2B084FB1585C2F51D95E534877567ACD6663B28E022F964BC7A767E68EE2B5CC1AAE5B4580AF7A42D48D98D7888954AB4C8B0DF5F7DB70EA9487F0233F923CE07D5EF0F4D311ABABAB3B128D6EBDFFFEFBFF60E78E4FDC39363A06E9789483290DA4509244B51DB2402A25F4A23552ABC86A0F6215F477B9F6DCBD3B7C8F18D5050CA0EF62F64A9931353BD11F5AC863904EE331CF5EBA0877EDDCC5B1E45A0FA2C6D3183F2610D6E690C616285872DE120F3376B51AA65E5ED39776A3DE1843F675AE542E1D9B1A9F7C0F1911FD9995AA19F1ABBE43CBB9194D3316B3FD52C9A97475B9982D7AF33B77CA7D78BAFDCF3DE75F7B6DDC0FA980C00B906A2412420CF776773FF4D8A38FFD57F40A318F4CE153F7ECE6C0FA411EC4825E3FF816D45030341043C2A6C0685826AC41FAB80E99C6CA073506BCF8F2CBF0194CEED22B08004D171D45763385B16409194F0DA924D59182B90E6AE9601976FC4ACFABE3E34AAD5E3DB3B8B4740C93ABE3AE942584A1AA490B7AF97E236959CD3AF2E49C100E7ED7ADD56A321038C28C1F0CA67F54ED37575540501B8AE7F33964445BEFBB77EFEFEDFAC4CEBD73A880C17C3766A53FBEF994CA0157464799D65550F0094D3DEBC868766DDB8250D213E23ED1C4EF7DFF350EDAAB3D286FF8E60BDF6616449042CC84A8203545A4B411F87ADD3A29831E7F49B940098578A95AAE9C592A14DE99989A3A6B1A46C537BC8A74453D8290820A6899F1B8ED5996632E2C7898797B854241EEDCB9D3270B878F58E01F480141767CB15A4D78B63D9C4FA7EFFFDC639FFDE3AE4CD63874E820FCD35FFB35C66D6A5CBD84CC0213142E19D39846370A7BD3867548F9320C4D96A5F8F92584305A6F74934E6E3AA1E8F8A953F0C93DF784419732542E29A3022D4CD448110479104E5FA5C6319797B8E7D5DF5BCD8546BD3E522E974F2FCC2F1C5D5C5CBC84AAA81A54BDF4BC9A138D363084B72288DF8D6CC3CDB5722EE62AF2E314F807560079C1B3CF3E6B39B1580ED3F92D7BF7ECF977B7EDBAE5415AFEFDFCB973980D23E5C3B43D45357DC46CCA4469C0E35564404FFFC2E7573DE6811FBD8949D39DCB620579CCC177DE855A995621F1D8BA89295119A07355426E27572DE57EBD5E9B41B675A15AAD9C98C5808989D724C1898101535856CD779CA68316EE229275E3361E8B79EB3A05BE7FFF0D15D23E1605747A01DEF1503A9DBEF7EF3FFEF89FE4BABACD85C505D8B777CFAA41F73CA6ED535353CBAAA0C183BCE42FFEDF0BB01593A1256AFB46588A9202D3E9F00FE69095AB85F2A8F71FF7AEE3A262276AB5EA79CC544F4C4ECDBCD3ACD5E67C8414B26E20815B76D37022B667188E8D90821AF47622169D3A75CAFF4911F8875240E005954CA62BDE6C6EBEF3EEDDFFE68E5DB73D4A1967AD5484C71F7D64D5E6DA575E7F03366F580F83FD037019F93E255EC5729517CDA3C25AF817293483A1FE4B123AED6DC76E217E8F61C03E5B2A158F8D4F4EBFE73ACE12C189637AB548C050104EF018CB184ADF4FB0C03F94023A2BA5AE690E9AD9EC3D3FFFD863FF2397EB891C39FC36FCA32FFCF2322F181B9F400E7F1E621878698C9652F79E7C0FE702E15FA0A0BF2186984EEB95F29FFD68356BD57AFD3232A5B34B4B8577F15C270DCF2B11860B14B834A1EE806C093B623BC85052C85028609E1F3EEFEF837D7F2D0CE5274A0181173423912C4A72F3EE3BEEF89D3B6FBDFDEF5176FCD68F7EC463B434964B2D8B3409828270382DD5578B6053714EFD9D159B28641131FC62B95A39535C2ABE33393373CE94B28281B58A3CB2469430F237CC507EA214D0E9058D68742019B3EE7AE2F127BF91EFC947FD157FC2837BFB0946A863CC561BC2C97CBD410CA57A727E7EFE9DC2E2E215DF9015CF51023762B261BA11BB8A90126F2043C9AD6428FBD574B2BF657F7FF7032920F0022F95CA48DBDE78DB6DB7FDD6ADB7DCFA4BD4864E819217B66BD192BF4D89029FC60CF342A9543931333777B45A2A4DFBC2AB182252F5855D37FD68A38118646096996AB55C62287BF279EFD44F117E7FEC0A08BCE00A4054CECCE46389C4963DF7DCFDFBA6690D62E0ACA0C02F164BE513D35313EF359BCE5CC0C125263C3F8D0CE52752013A3B36E21B36C445B54A19720FE236A7A3424A9B841DC5CDF3FDD6B5188AFFB3FA07ED6F44019D4A48A552915A341A4BE8EE5A2312F16AB6ED860CE53C32947D3FBD0CE527560181123ABBE7E8BDD0BAFF9630948FE3F1FF0146BEE5E725E73D2E0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (182,1,'Zabbix_server_2D_(128)',0x89504E470D0A1A0A0000000D49484452000000800000001108060000001504A42D0000000473424954080808087C086488000000097048597300000DD700000DD70142289B780000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00000B0E4944415468DEE55A6B6C53E7197E8F7D7C8BED90BB7331491C020D0C04084447800C1085B13229A0894AACAB54F8B349ED9F76FD59555AD17EF447ABFE98B4492D2B5AD1DA21AA16414307E57EDD1A5AC6252426019290C4899DBB93F816EF7D3EFB38C7C6C74E224D6CDA271DCE393EEF777B9FE7BD7D418A46A32449D20A22CAA3785BB366CD8FB8FDA1C6660B9BC2619A4F93743A2958516188CCB3FFFF72D3E974D1A9A9A9E07FC35A3A3A3A745D5D5DF2DDBB773F1A1B1BF3198D4632180CC07C627474F47D8965DEE7EB35BE0CA99DAB8C263A140C90631E134FC9063AF49B5FD33F9B6FA652237E8FC65FF93DAA7A1612525A51AD77219FF22D180C925EAF9F99554A5E455499334D4BFD26A574CEF45D66E56EDDB8892E5FFFFE99833FD0DF4BADF76ED1F47444BC9B4C26CACDCD25BBDD4E369B8D0607079B64FE7DA702BECBE522ABD54A77EEDC111D3C3A89BE65C6EC636596BCFB2E4906C3AC260E3E7840BD9F1CA6D1911172392BA8B0B0901E3F7E0CCB981700B391956599162E5C9878BF71E3066D58DF409D9D9D14662F940AE29CBC5996BE151515949393239E2F5EBE2CEE8AD29F651BF20D24AD63C3860D622FC002C6C1583F070258F0112035363652737373A2035CC57024027322C96CCE4A00DBF6ED24979450477D7DA2FFB1A347E9C08103624228C9E7F3A5ED8BF9972E5D4AD7AF5F1780A56B353535545E5E4EF7EFDF172C069B1F3D7A44656565C4EE8C8687870589E1E69EF4F4888D7A3C1E5AB76E1DB10BD45C37BEF7B07C777777DAEF168B056191262626E8DEBD7BB46CD932315E5D5D1D0D0C0C88B931675E5E1E935C2F48F8A4AB9D644B8EDA9FA5F182B14729ED67299D7452A7B4B48CF70D4DF829140EA68626E2D04E939393C4214AD80F083089A78686066A6969116E42B12800188877F6BCF55666F077ECA0FCFDFBE9F1CE9D146C6B832F14EE106384422171C1BB68816B6682A12D58B040534671E9006AF9F2E514617202E4152B56505151910043AD07000330B0278C9BA9819C5A320017E320ACF4F5F5D1DAB56BA9BDBD9D56AF5E2D48A952A8B030ACABC851464E576D1C2849859B1ABCF4CF2693999CE5A5622C8036C4C4F60D0EC5C8243DED9540D017366FA2B1B17111013BBB9FD0F933A769D0E74DDA07307DF8F021555757531B3062EC418029C595E28245A90910CCE07E13E0B1229C9F7F4E4F5E7D9526AE5C99F1203C868981E5E44310000BC573DAB0110C2636E3F7FBD3CA608CB9B86D1000771000E4D10A25000FF3AA4394BA8190D3D3D3B39C97620460422EA9AD49022ADDB3A4B276E5399F89585C5C28D61C980A50A0AC947A3DFD2AC720259EF164301A28C2EB2B7594D0542040BEA1618EF1D6A435633E800E63811EB0275E671004F8235F2FF10F5B20E876BBD14B6750AC3792399619AAAAA8EAE4491A78E71D1A3D762C9971DCDFC8D7D5AB57A9B2B252904A0B44FC0EC561D35A320A31E0F2311680733A9DD4DFDF2FC006891256CC1BE6BD0860312694A1E55960C1E8978960980B9E00F11E24C6BC580FBC0ED65DC2A14F3173C4DD5247311360510254296DD22AA50555D6CB3C9741009563B65090D765B7DB9292DD544FA297F5718FA1A79AAA85F45D8E25890020378743FFAA55ABAC18973DD9710E991FC8FCF227EED810573E7A34B1725F540810CE40007D7E3E553535D1C8679F91EFC30F9FFA0E907217E491C56C6246170B052BAE524BC95887960C368831B02EB860A5C1AD29ED0127A04B962CA11C06DEC96061E3001E572010D0F43E5096D677450663E18E3C006B402EA234E41F88AF1847E6F0D7DA729FDC6D6ED20CD3DA3E84E6D1E9A9CFC26BA9B083EE787F17F8FE535EA38EC9CCBC9F3C2F2B02503CFF18158941DCFD0B0268588DC46EB5F2CB2F29C01543DF9B6F6A2ECCC8406004F7A3C7E29252337CD573CFB7673366FC02601E435502A49604FC4F2FB5B4B69189F38D4084F9CCD75727BF4E9929F9B5BBB78FB205BA2E9649BFEA99D7AE9E5E76C726A137D9687BA615806CC4D623491E80C15FC246AE838E957027AB19C38918B2AC9F29E08308E174993FB3A9E2F0618C4ADDAFBCF23410AA16989CA045AE1A61D5D1E8F49CA89C5A7E652BC7D4711C565A535925AC3A560AFDE7E64502AB24A8ED1D0F05897D033DA4DD6D1E25698A8E753C5F5E81836C561399395C2CEE6C23EB74889A5CCF93B7B28E6C9E4EDEF7D9A43D70E5549B1A62933C008418F444FCC7154993FC38DE7B8FCC2B57D243AE2BA3195CBA88DBE3E35CBA95D1AD5BB744998758ADD51C0E078D8C8C688600C4E07C0E3B00756868483CA3AC44C2857171B88172122562F377CD5C962DA0D6D65691F8C0456B35F4471EA0957C42699081E2906FE059991FF9002A88D2D25271F7C473028A86E9A5BD7B393770D01D2E1975AC5B948F1E4F1FDDBCF93D6DDFB19D421C4EBE3A7E2291184BAA132BB5274C47C0F1F1783E545A423273FE173FB45179D04F27EAF792FB855F91F3EAF1A433001806F01489A52AD4C93C7821DF7395044C392AD44A020B5E7F9DF25E7E993AD6AFA7C8E06056E2222602248C0B0B45D9A6D55632A90014949BAEA1CE86A2518A418E131ABA74E912EDDBB74F8083F88CDF418050282812347831BCABF384D40662A2B4D49A5701186383C83813B876ED1AEDD9B347FC3ECE2407012187E42C76BCAE232B13D2E9ACA05E5E2FD6876728DF6AB3938389110E8744F2E9F74F50EA91A594B07A29CDD18194D52B4503534F2581C057A986F8BD9A89BC0D1EE0B77CED420880904200250F10E5617CFEDCDDBBC971F0203DDABA9542F172315B33724C8455637C00082BD5F4166C81B06028548B4C1A67EFA2D4C39AD5568379B17E2839D3BC38E0292828C0D1A8A64C244D328C793127EE336E351AB75E8989EAE1DFC35C5AE3E44D664F708F49E9A501AF8F4B32B7D0C920976C5BB6FC84F2F3F2E95F77EE929DCB3797AB9A7A39E770BBDB69E3C6F5A2143C73F602AF21AC224432017E57534F7A294AE60757E8C71F5FA4902F483D294920C05774545555F53C27D2DBF136AE6C101FA148B50790F837F0B3982DBEE2C8110A339B8BDF7E3B33FBD812DDFB7E192F0563870F209672D8A3D5E08633C92899BAE2A9607590078038C9C31E6085B0786C1856ADC467E5404AABFA003933FE6D836500B4397EAE81F94154AFD72B3C0F08243C005BBE5209D4D6D6D296CD9BE958F40B8A8423B46777235DBE728586474669078700F46B6975535DDD73B4A1BE9E42E15885B3BBB191CE9D3FCFDF43F4F35D2F0A0FFAC3ADDBD4EF1D54011ACB7546792C8341471F54DCA04AC338352C5D4CFF78CD4D25BF2FA7E8B968027C8C0B6CB107AC0F7726EA54E22008CA83E2B66DDB26EAE7D82664CE268DE4E701CAB8EEF5BCF1C6ECF21555E580493D6C5938B655AC46CB92953094A941069B010038D8C0A916123EA5011C1C174306A0297365729990C9E6522183B58128C82B70AE819253ED4562248A26CAC58F3EFE843E3DF257E1E2D1FF9BD36738EE87688C89D3C663A0C103A0A43DF4E7BF247290935F7F23FA63CCBBBC377894A1A1E194C43446008F7744DCF7D3A698C7E5EA78E3895A1A1A1CA03EEA4EEC9D2D5E9C9E0263E431F1134B3F087023560484658084F88A09150F6063ABCCE7F7D1A347E75887C4AA07B3D546D5358B621B6B3A95B18B67C09B7558CF858B59654EFDFD3459B80C743011C4BCA7B2CCEB9DC5BCB39161AB0D8545394D450E67E277AB7DC6AB19D8831498ED333955914525679A099D66135FF65885C9DCCC2F2C9D93FAEDB9F98C9F51E442E23899F31B84381807C8C8EFC3FCFE3729FEFF010E32F8BBD865D93871F273B2662E2929596C3699A2857979E15A976BCE7FD4C7FF0730DAED16265694FECF9A9E158E539667BD8EDBB76FCBEC2579393A1D5BFD39C67A9C71C6E11F47D2C0171E8FE7D37F03AC928066A5577C080000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (183,1,'Zabbix_server_2D_(64)',0x89504E470D0A1A0A0000000D4948445200000040000000090806000000823E2A7A0000000473424954080808087C0864880000000970485973000006EC000006EC011E7538350000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000004714944415448C7A5564B6F1B5514FE663CF1D84EE247C68FD8CE3BCEAB20FE410A124282055291C20A894DC5AEEAAE2B965D7449575D54A4ADCA6351D125484845025510014D1044564A42541287384E1CC7EFF17B38E78EC70F5A36E971AE73E7CCBDE79EF39DEF9C6B09C07B345E77B95CEE37E617573EA8E8F83F492C2D299B6EEF40AF4E923BB3EEB724F5EDB31E9B8D2660883F538C56DF3AC37AD3B7C69C05029A512C940FF192F2E497356D6B6BEBB1C7E3A90E0D0D7DC7AEEDC562B18952A98493E363DC256FDFBE7103D240374ED9E1406D6F0F77BEFE063F8E8FC166B35150DD20555545B55A255F0D31F8BDA22862DE6AB5C4FB114D433C1E87CFEBED736880CEE175CD66B30D9684C1C141618FE76C27180CE2D95E82C621012E9D3BF8622E8BBFB6E3989E9EC6C4C40432994C42611F161616B0B9B90987D38933723875ED5A377B144CF8F66D64EFDD833D348A542A8599991930609644A3511C1C1C748270921D62140861A4D3698C8D8D091DEF8D4622C8E5729DBD6EB71BB55A0DBAAE7700989F9F17F62A950A666767855DC63B3C1EC5883F20D6584C93DAC34E408E8E8650AFD7707C9CEEBCB3C9325E7B7509D95C019FDF596D93CA10A0921F4D06E02165E90A1DA86B9AE66CD0A1BD12BC7E1D67B76EA1914CC21E8EE2F4F41473737322CB9670B6386B16288D464304CC6B39B83D620F239ECFE745F09C756686B596C12A97CB1D7BACE3E039F0DDDD5D905F6851B984463404FD3EB3D0A43600FCA1B942FEB814190D898018F1B4EBCE7C572D1561D4ABE4B3C91E4AC41981E323FF1E32004F68B448F10F391D6BB4B3C8E2BB7C19FAC606F4F575F1AC90B560388283E451A7B0F93B5B283E47B77436DB65117D8E4F331827100A65CAB4D4ED33D96211FF25F5AF7466EFDED4491A5E2A9D677F1F8A715ED1F59A59D2B29CA77F5E2AAFA74A9B1232D5698CB3D6AA998B5C172FC21608E06C75B5CF88D3A142F3F9886AF58E8E1A8AC8A0A56376844221A1B37A003FFFB4B6865030D0A13BCBF0F0B06050AD7D2ED336426552246098AA76BB1DE17018F1A77F221AF25249CC8875C9A323BC72E1021E3CF84AB0E545222B764C8E87F1F11FDFE2FD8F3E85FEE527424F36270904B357D1F35BAC640A0B00C8393B3509CFCA0A9257AF3E673443B40E53300E6A8CBD41B0A3BD8E70FDF333D39E7B06CF935446DC03787DEFDEDEF2B1002D140A62CFD4D49428096689934A85078BC3E1824AC98851397ABC1E51026962D9E4C438BEFFE131016FA04EB7CE00F9F528320DF7D1235474B3F7706365A0E9EC7718802156705D0B3610F2EE4B9704C5476FDEEC8FFEB32F84335C9B9C5DA37D4559DD9A9DB684B3C8996660B6B7B7E1F7FB45A6AD7D560FE03983D9BB97ED339BD8EECECE0E5D8101A1CFE70BD4B9B3D40F0C5A5FC429CD25C94667A890E93E661F540725914C73F0B26CA39E43E7693264E7EFA437415E5C5C34D7AA6A83817D777979F93E39270DAAEAD09B25BD1C6CB61A2FA2D4C9C29CFA9B24A9E4FCB9EEA2268167539473D56FC0EF6F55F47AE2657E03A45247EAC6FACF7E02344137536B7F7FFFC37F01620C060E2E1A38D80000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (184,1,'Zabbix_server_2D_(96)',0x89504E470D0A1A0A0000000D49484452000000600000000D080600000056F26BBC0000000473424954080808087C086488000000097048597300000A6100000A6101FCCC4A250000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A0000076D4944415458C3D558594C5C5518FEEE3030C02C6C1D9642A12DD0AA5DA818DA9AB656EAD2D43ED9C468627C3146637CB0F5C1178D894B7CF2C987AAF1C5E88389515FAA36EE0BB515DB22A552EAD0420728200303CC0CCCC2CC5CFFEF30779CE56231B10F9E7098CB9DB3FCE7FBBE7F3968003648BF47BA261DFBF6DD75B4C566ABBFC362D1B1CAE66FDBEE08689A86FF592B2828D092BA1E8A86A38B37739F6432815FBBBB9D7EFFCCF4D0D0D057A5A5A590AE0B6427085AB7F49D56AB9506211A8DA2489EDFD375DCEE70C05251F18F8B276666F0EE3DF7A127300F5B51D10D4CD1337EAFAEF9FE9C82BBA626FDB796F7B072BBD190A5441275B50D181D9BBCA9444F5CF762F08FDFD5F3DAB56B61B3D9505C5C0C5DD7FBADF2AE915F1C39720457AE5C414F4F0FAC02A42799C4BE830751FEF8E3A68B1636354193858677ED4242C60666FD58B3660D9C4E2782C160DEF8FAFA7A8C8F8F73D3ACF70E21B9ACAC0C939393282F2FC7E2E2222806BE6B6868C089CF3E43A9AD087373736A6D0A24CB8EC242548848A6A6A6F2F62C93F578D8191149494909E8A449B1B5AEAE0ED5D5D5F8F9975F3036368A29DFF4BF43344305DA8D9897E38642812C1CB66FDF8EEE6EEA1E2E1210E641979696D2838A8480683C8EF98F3E523DB75985C5A69327312AA4C57D3E148AE74C4F4FAB835555552910CD08201099FBB01198F5EBD72BF2B76EDD8ADEDE5EECDDBB5791B84C9606AFD7AB94E372B9E0F7FB73C3889ACFB5731B092591B48D6E4F623996642E83A3C362B160EBED7728D0146E9A01AA86E5A09AFDD92076582C9A5A6B52BC33228230A2AFF179CBA61654C8BE14C7773FFE84EF4E7E9EB689FB85422165979C314C02BCD29B4419168FC7A30E44D5C475F3406111C5367EFA29268F1E457460605985620CBD6061614181C4C3E6362AB7B2B2D2D43BD2E12C91509F048C20353636CA410B303931A58825A09148245F7072701E28975CAA3D776D7A0A01E05ABA80EA7094A2BD6D5B168066C01B9FF5223212A00990B5D56EC464CFF4BC148B76397F6D4DB53AEBAD9B5AF1ED177FDB41A16DDCB811F1783C1C08047EB38ACA3A455D2101BE540CF3882237D30396C403F20E2AE4347CF821FCC78F63E1FBEFFF0E030292DD6E17771EC3EEDDBB9507E5457F2194C4E6861012CE46EF191919C90A27B3B3B32AAF10581E86EBFED3DAB97500FFA65219E6B86F41CA53D9E6E7E7557CB0CABBFE0BBD39F3CC72C832B87D596FB4FCC893FAE574395524084BD733842018F78A1D6DB1586C617878F811ABA10EBA060522075104C473D4C456FBE69B889C3F8FB9F7DFCF0E4916F19A52BB5AE3E4D7DF64A5592DE5D2970707536FB5B4FB1BADAFFF529602D3EDEA1022E145D44A888C49C2FCA1EB543E4A5C5B549593E76F18973DB2B6B3CC851ABBEBA627E1CC6022181513273D950C1501E20EAA2493BECF5059228780AAE79E834592E0C433CF986EE254B1BC09E170D8207375F96C85EA95E18A5ED575EA14DA2469F924D750CDFFA6DA351B4BDB988F9689EFC7C4F81896228B2A6CF8C43BDC6EB70A511C5722958A6F6675093A290271555463DD5A375CC1591C1CEEC5CB079EC64C5D3312177E4DDB2367BA85E730C2A3E1013A37A41B1B3D9300D7830FC279F830BC870EAD68C0D0F09084915A75808B172FE67DBF73E74E480D9C0E0169E284D43D7BF6E0F4E9D3E8E8E8C0B973E7D0DADAAAF2890A57229401C9352484A1C86CFE8E1D3BD0D5D595B7E7B66DDB5448BB74E992AAD08C904732B9079F23E1281E7EF8211CE8BC1BC7DF7A074F3DF984AC754A12A815EDEDED78E5D5D7D5F8EC68A3E53DC562513135898AF232D86341DC191C47D45D0F7F4B1B6CA9FC438C8D729F4D7265A35558794B1EECFC82C0A73D20156B4B0438F78B2FE2DABDF7428FC55624807318F35851B1D23053DEBA75EB543C365329E7B26A20F0048B80D39BB82E730193EC860D1B4CE7D353CCF6E45C2A8D1ECECE33D206A3106010E0FCC1C12B424418DE91517CF9D5D7181D1D93B185B2EF9C901EC7E1070E614C4A68AE5729849E3FFF1B76EDEAC0B56B5E0C5CF6A868A85912E99C302FE3DE68EE4085E773144F7C83E194DA8901C1679762C5DDD2D2F20A3D202E1EA0D138AA975F2AC3494673331A4F9C802E4A5C9F917433DBECDB6F03C10521AF187D7D7D4A5966958A51DF9B7D4765B32E672949E0AF5FBFAEC6116CDAC2E4CECA8AD5C34AF309742C472024936BD04B8C3C472F64F8E545482503F961854502073C834A40D1680C0532B649EE3A956B06D0DCD2ACAA1E566424D0EB1DC126A96E486AFFC01F6A0D15528409DFB41FB76112F7D78FE0DBF605F8368790FC60D903787EAEC94FDA223D44CA5E10D05F3B76EC185886B212A1411B03013C7BF6ECAAE2DF278F3E868FFB2FAA1BB41143732F5C3C303735BB2350DD042B9E5379D1D05929470B340B1C5255104C8E33ABF7A96AA3D4CCF400DE33962B9EEC46AF09C89CDA1ADE84C7FF93646B2B2E35CD3B3D67BB100A065489BE7FFF7E6CD9B20567CE9CE1C5F4258E6E95FE6E6767E716B98D2E8AD2AACA1D0E5B8BCD16692EB14756B3F1C2E6D6F26022F9BFFB5F1009D6F9BFA048347433F7E9EBBB60BF7AF56A89DC1FE6C55B7F174F7609D697E5AEF3FC5FD16E43B3BBFA54DB0000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (185,1,'Zabbix_server_3D_(128)',0x89504E470D0A1A0A0000000D49484452000000800000001B0806000000B49F874B0000000473424954080808087C086488000000097048597300000DD700000DD70142289B780000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A00000C784944415468DEED5A696C54D7153E6F566F83376C63076C0642C0E01065231092B0440AA22C6D54552849DB1F49831A55517F24AA9AFEEF8F44CA8F546A7E343FA2A296464A5115829DB0C440EA382840C00B310662C7C666BCEF9ED59EE9F7DD9937BCD99D146220B9F2D57BF3DE9D7BCF3DE73BDF39E78EB5502824F3DD344D2BC66507FA2EF46DE80EB9F3DA18FA11F45AF48FA1F7815B41286DBE0060B7DB570583C1DD11A36F4037DF88796F0540CF454CF4D390B5D66C36D7050281B3A17912FC7B0300BCDC929797F738AEBB2246BF7B5E347F6B02A41F72D5413775369BEDC8F0F0F0C41D0180C2C2C20278FAF688C1792DB81D3C759E650BA037100CB3B3B3B54343436DB71500EE4683E0CACB31373DDE72A751F9F72C5B27D9C16432D54297C73B3B3BBDB71400209479CD9A351B10CF756AAFFE81D3F9CD94CB8DB9EBC90E168BA5B6B5B5B57B5E00F0D8638F397C3EDF367C975EFE133C5AF8A3A7CE8B6CADE8CC1D6AF3F3F31B8F1F3F3E73D300B071E3C62A2670A0221A7D331ED97E34C22D255BB4CC043B7CF4E9A79F0EFE5F0080B1B5A79E7A6A5D84D669F4B53F1AE2B6912B887E86CC80D05C0B66F83255999914007BF7EEDD999D9D7D20180CD9BEAB80600A41D98782F7B6A8CB6FB475647272F296386C40422E1EB73BD0D5D5F5EC891327CE185E7B60FB7E0D37BF40FF1DCF66F437393939658829CE7B3C3EF9632828DF258D0F586DF2DFBD2FCAE5AEAE1F9CFDAB972F93F3CDEDF32EC7F4D4A49C3DF3B94C4E8C933166AC566B108EAD1C13E5B91BED6FB4EDEF19E2F9050C10C40FC10BD5876D3669028276A25B2B2BE9D6735B19E3275D7DD2D3DB2B975B5B25CF9167241D439889476CEC032D81AF24FD7BC393DE9E1E29AF288F3E8B5F2BFE81669C4D4B0887A9C71AC6F3D2D7DF2FAB9639657C626ADE01D071E5A28C8F8DEA1F2DCB962D538C80B0200E87C3065B6F27002AF54D3EF3CC33D203C5D5D7D78B0E882EB31964E191E5CDCD62CECF9FD3C27DAFBE2A936FFD45CC6693F87C5ED9BC79933436364A5555D50DD9182A10999999218A251008880D4065C8713A9D642F75BF6FDF3EA95EB54A9A21776565E50D8BBBD3D3D34A2F5424D7A732CBCBCBA5B8B8583DAF3B7C588DED77752741DDF71B00BC1E77CC13CA79DF7DF7C961C8487B434F0E02C0C3978F3EFAA852A629E2E51CC00DF90201F5F9624141FA989F9B2BCE8606F19C3D2BC36FBE09BC59C58A7EF5EA55F57EE1C28532303020DDDDC94B571A69EBD6ADB27FFF7EF1FBFD49C7AC5BB74E56AF5E2D8865B20AC625951D3B764C7D8F8CD5D1D1C1832805822918AA170C4423151616CAD1A34753CABE67CF1EF9EAABAFA4A5A525E97B844379FAE9A7656A6A4AADBD73E74E79EFBDF7D495CF3C7090BEBE3E59B2648998C003048535CB2EC51595D70942D3A2D7846709F7D057519102196D303939253EE84467A2F025F67E6DCD6A19181C9402C83A383422EDAD4D32D8DF17B30FEA823A59BB76AD5CB97285F379A200282D2D95E1E16105026338980906E792F1C962186E7674545C2FBD147D6CC11C595959CA389C97C65BB06041D229B81EDBC30F3F2CE3E3E349C770AE648D73B2D3D0FA3C54D6C4C48432C6A2458BA4A6A6262DA32C5FBE3C6D664D6324938720E43B32926E3C7E2E80C3AC4028E067CD102334496DC4C89F14611F958B2BC4E3F52A279A00007AAE5D0B071F034AF4FBDCEC1CA95AB2589C554BB017BF2C7038C4D5F535F61EBB1F82956C495DD1D1B15F2F01C0603502A18BA8B4D3A74F470DC2EE4FB2F1F856F6FAEB62874776AC5F2FA10880C27358D482636363CAAB531950258DF81E15C731A900E0F5263F0565C64D2F24C330CE9101A81BAECBA4C78C30C6BD040CB2C5CF5B9081E192AD4DE08C8C8CA8B5A950C5009A49EDA3B8A858562C772618EBFABDCE08897986232F574AC098D41965CFC3E76CEACE906B1819C58CB5CBCB4A19D7959C3D76177490ADC06FCC632E5CB8209B366D52CFE1EC5FC3313B098027D0F703C17B38080F87705D48EFA7D2A2C84ED10A5F78410A9F7F5E3A1E79443180B15918060080F7DF7F5FD6031C5A8698C8B5B8E174EF75B622DDF333632FE95BDF2C430CC383BE61EE8354CD79530120D3BAFA181A99DED3805057565626AD4870F575F9FD92929228034C8C8D48C7A58B49F79C98DC6A316F4D34AE29FC8CF764A6A8376BC9925F914B6DAD0049B6F8B147026778A01FDF0BC694E5B06D37E4ACE47CD0C50597CBF5730B3E0429248586B2A8E17FE3FA5B9D01D2012077F36659F4D65BD2BD6387F81153929D0568115A37C310E79B9A1268D6A8A02FC03E21C3218716A73252E2674826F99E5D8B182D6090710861ACF1F353887759B27EC306357FE3A95331DE10DFBA90A77423F94D37A61520538993255C145B99801AD87116327C79FEBC8C8E8C2AD6F1228D696E99C752D04406988DB10574760E7B588C7D46CB398B11E15672B6C816DDF82A07B0243F05B0AD58214B0E1C10D7CB2FCBF4C99329E5282A2D133F90E8F7FAC0A33E754892785C9170897DA7432114FF3694C2A742620705BAB91EEB618F37E1384A8B9FDA38572876D690164A2A7232D7CECE7328655BAD3699EF161F0260D3C7C10026A3135A8C494EA40258A91B9F3D1849AA8CCD8C24A5EAD021197DE71D197BF7DDB44258E1A59B1EDF24972F5F8EF1FE84DA3A4D7898EB5826728CFF6C070F1E94279F7C523A3B3B63A8FF66ACCBF2564F6EEB3E0E9781AE9EAF952CD4A59E3F30BF0944283A1755530806727B3CDFD9B865154E292AC811BBCD22BB5A1BA438E0953F6FF8A55C58B7434ADABF9060637D0C0360CD225E29831EF22CF1314E37BECE02B371B4A8E1193DDF8BF8D7FFDA6B1905ED8201AE2EAD52091A6B500221556329CAD8CE922A596392C3399824D2B02B57AE9473E7CEC9FDF7DFAFCA1B761A82F199F75C8B95CD030F3CA0F281548DE5E53564D93C0349D648E90F3EF8A03224CF155851F05A5D5D2D8328BD282FF55784D28D18A17198FCBEF89B17E4DE7B6B503A9E54CFB66CD9ACF2862F4E9F91E79E7B56DC2855F7EDFB87F4AA0C7F4E3FDD1832FAF051734141BE58CC2659E919910AFFB484721C32EAAC91DC9E2B0A6046F0D2BE34BCB1CCB6E0C523B82ED613210AAE1B5FE500715540F9DB6F8B094AEE46622573F8A1C46AB3AA728CDE4F0FA092D2359655A9C6E85504B36E3DC32760081CD6FFDCC3D0D0504219C8FA37DDBA1C4B8F4C35863AA1FC9C9F40A6677FF3CD37F2D0430FA9330202830744FA5C3AF50E4296B68B1701D80955315C6C6F9731DC0F0DA34EC7BD4ABAF15DCD64CE68F0C457B1A7B25DF67C719BC0D65EB7385C1D621D71C584001A9F8E4D1B732FD843754545C55E32007FCFDFA887002ACB18024C4C68A87CF4E2575E91BCEDDBA5031E1374BBE7845956012CD3A83C1A305DA2454552D9A9C67832D025156A89E42CBCE7BAFA9ED2ADCB79D38DA15CE9BECFB5744AD522593B8DAAEB916E62C3FC4AB65018C8DC67C01F60CE2F3FDBBD534A4A4BA4A9A94581FA9E7B5628066B6BBB245BB73C01F9BCF2C1877531FB8F0F4747973AC5AEC186D367C5D9D220724D129240CA184906C9922B50152CA3B6DC7A08A08014CC1802080062BB64F76E59F4C61BAAD45B5A5F9FD1F0AD35F746CF1348C5F41A2A39552DCFC603A34C63E8491CC3BA9D1ECE92908AA1C268243288EE3D0C13FA3900019EAA0CE4BA9C2FDDBA7CC77978A24960F14AAF6708D0CB512303984D6625CBD2AAA5E2BAD6A74EF278CF839AECEC1C295F542E4118620118C40146E5BBAB577B95819622A7E0DCB9B93972D7E2BBC4E3F6A8B9BC3E7FC2EF1123A83AEC60D9578A2E49B9C52DBFBABB4A2EFFBA4B8AFE5A2AC183C1A84CD403C3A3CE005C0772AA93C0693D09249D6DDBB64DD153A42A103394ED669908C377EDD8F1AD931596635C9C14AB9FA7CFA6385CA28138365DE9C9779C830661FDCF4D35A1BCD41B0F66080ABBDD86B9B262EAFB54F3EA072EE9D6A56C3ABB309FA041DADAAEFFBF264392025F24D63274FE7DDF3FF19DF0F903A3E5E12347B1F7A0FADCDE7E290A683A08C7F9FD61801EAAAD435939ABCADBA6E6165576F87CB1C7E366735896B10982D62B7F9075E117DD28BBEB9D323E362CBDD2190500F3A2356BD6281B338C45F634C9594E500E6CDECE0D3011D27F602100ECF0B262C6D3CF3EFB963F0787AB0796450C032A33C7C6D2B501C4C64CED931327338EA93B7C44B2C038F434B60F3E3C94767CFFE0909C6B6ACE30A621E3BA478E7D2241188B7A2B2EA9B89E44A6F94E8EE187D2ECDCB98D9B4B73380AE004D9004EF89472140ECCCEDF5CC850B81F4232FD2FF50F2140C89F40D13F4519E580074D010879404C35A83644AA733A9DDFFABF3A883A7CDF343387A3E43BAD51E1F0EC50E65CFEE636324B84A53484CB7330787BC4B167C1A0FF418574E07FBF14493B4AEB31620000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (186,1,'Zabbix_server_3D_(64)',0x89504E470D0A1A0A0000000D49484452000000400000000D080600000019AF686C0000000473424954080808087C0864880000000970485973000006EC000006EC011E7538350000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000005034944415448C7BD564B6F135714FEE6618F1D13BF13A7499C383606F1508822405D145880845A8490BA824D77DDB22842EAA61BC40F615BB56CCAA2295D54828656904A84145854A8A94AEC90A71DC793C48F997EE7C6766340D024851B1DCDCCF5BDE79EF39DEF3B379AEBBAD8E9D0346D848F4F68E7681FD274BC9F91A7FD401BA3FDC81C96769CC37600E8E9E909D46AB533DC738EC94BE27DDB396C3760BFC19743BBCFEF31C330C61617171FF0DDF9DF00D8CB619AE639499A9F2769D62E827DA7A371CE128B73DB719C31AFD77BFBC99327F96D0170F8F0616F6767E7493A5155E6EFFBDE61B0EFC3D7A4B043D7F5B16AB53A3E3131516D038016A20DA6D3E9EE8F8E1DBF11D4F46EBAF4B49C6F59ACEFD903B7C3BFCB6077A855FE954AA5ED9CF41A1FA82E2D1716EF8DDFFDC2B6ED6228147A2C008CF9FDFEB3A4398C4A15DF562BD87BFA3460186D9B1DDBC6CD62093F25FBB1B1B1211DF0ED87371E96CF82C7E345B15884691AADD0B4B7242CC3C3B87C7EBF9A995F2CED0AFCF2EA2A7E9FBC8F60B013B1580C64C52FD2B5474F9C3881783C8E759EF9D4B2E03041777DBD65A18B17618442CAC96C6E06B148183E8FD9B203FBB2E8B0BCADEFAE681499540A07F6EFC307896E0CF6F763F8D0412CCDCF211E89C02749D12C5AB2B757CD598DEF0E9E7F6C741489AE38BA6251A48752C866D270DC3A4AE515549D1AAA7CAFA28E1AADAE39A8EB2E5C5343381E41281A56EF62307518968943C307914A0FA2509847A5B28128E31B1E1E8665592993394DD03ECEE7F3E8E8E840B552817DE74E0BB5CEF3E7618F8FA374EB167CA34761DBAB10B6ECA11CB66A509CAE132C19F23BFB8720ACAC394AAC80B0873DA6A55B59170C06DB74CC0646021A6D6B88004E9D3A89E4C0C0E677635E19FF8459D16804F57A9D891637D7689B3C8AC76358636C93BF3D50FB72B95C7D6464C42897CBF70480AF19E4596EFC8300ECAF6E09C47FFC387C478E60FEFA75F56DD0616730848542011B8D6445D44BA4B6C3837945B60213DAAE95ED7F7DF13B1289619573C595924A4ECC309755B21591551328AE11BACA783E938397ACF0B338530F1F91C2532FC9477BB396B6AC2DAF969BF1FDC5C71081FECE6C20AE3388FDC2807A23096F26A3A83F7BE54A9B339FE899097AFC9BCD506385BD1E8F4ADE61427AA33A9270C0E75349F23A42381C61135BE15A5384DDDAEBE15EA99ACC37F74A1C3EEF661F96DE11A14472B32FE0B73CE8EDED51F3CB85650C0E2471E7EEBD16F02F0FD3B4D0DF97C0674F7FC6979F7E05FB79AEC9D0B4802E26911C958A05020115B4E8DF603F885FBD8AFCE5CBAFB46DE9C4FD7D7D207D5A731220BB6A6B4E1C2793492C2C2C609595CC66B38AFA85E5650C707EEBDE307B4B85B26B7678914C8AFD637A7A5A2596A1FE05A0D9B97974F5C431941A62137510980BB03F6430FDE7DF64879F67EA58A2FFBEDE3E4C3E9A52C0D76AAE2AD84C20086F79066EB55DA204FAB400909480F9FF8E3ADC595B43E4D225B80CAAFBDAB57648BFB9C9442A4AEBE2A4A951DEAF0ABC660F68CA40129075CF9E3D535D778DBE2579A9BAE8BCB9D747A60880CD21FB9A3D448090BD72A5D8B2DF2E93A5753E6DA5EB3075DFDDD5453669649A8F79643039F5987E2BF46160A564C31D20BB22DFC3758ACABF14446260CC21E1DC05DE02371888C6CE1C3CB3B6E124EA75F73512C25C36AB3DD475CD85FB5F2EEE57464501E7D9D1152620D46A4EFDAD82DF6CCADACB31C8EBDC8B593CB8FFAB9E4824F264E83A0BF3F93FCFA63E489E26E2D60000000049454E44AE426082);
INSERT INTO `images` (`imageid`,`imagetype`,`name`,`image`) VALUES (187,1,'Zabbix_server_3D_(96)',0x89504E470D0A1A0A0000000D4948445200000060000000140806000000722B38EF0000000473424954080808087C086488000000097048597300000A6100000A6101FCCC4A250000001974455874536F667477617265007777772E696E6B73636170652E6F72679BEE3C1A000008844944415458C3D5585B4C5CD715DD7798E131C0C0F0306060C2CBD8AE05D85679D4B24B8D1CAB6DE234921BCB4AD54AA9FC998FC41FF988A57C58CD67F31545AD1255FDB4A25441AA63BBB65B3F63D3E014830D041BCC6BC002CC63188631F3CC5A8799611E174213E3D847DADCE1DE7BCED97BAFB51FE76AC160503672689AF6022E2F430E417E01499167770420ED903390B3905BC10D7690F6A4D787C30D6969694DB8BE8CB5E9F89AF5CEDD68327C8F310939075BCEBADDEE7F41BFD9671280DCDC5C4B5252D2C110CB7F0DC9FBB13CB68120FA216D004345C7D4D4D4ED27111DDF1B80AD5BB756F87CBE43A1F4D20C313D238E7A5A203E24108C0EC885818101C7860270E4C891A4BEBEBE3DA1D442C76F7F4E1CF534F6F441BEC4B3330683E16C5757D79D2702C0FEFDFBB33D1ECF2FE974FCFB2B48CE73ECA4A739ECE1429E929272F1D2A54B0BEB06E0E8D1A3755EAFF755A497838140A001B78CDFB51BF23F8BEF73E950D8A864A3F6C43A5EF8A7CD6834FE1B60B49E3A75AA330600C84F210742BFA5B1B1E984CD1F483F6058BF4327F6FC4CB50BCFDB48369A2408E73B175C1BBA0FC82CED5FB5896BC1E51E1E1E3A93919121E9E9E9ACE1E7E8E5DB90BAD4D454494E4E96F9F979015AF23730A02137578C9B37AFB9B87774543EFE79B374CC3BC4643289DFEF97FF873C41D17F99BA30AAC6C7C7A5183A783D1E09A885B5C8CC1596C5AEB866CE65B790BC7C1471B917A5BC6C8B0C8F8C6F280063A3833270BF47FD2E2B2B53B685B2C6374C2F05281C72F8F061E9E9E9918E8E0EF5421F98D15C5F2F96D75ED35D34B5A64634BC37B8772F8CD264E2E143B1D96C9203D0D0A2E9754DD2DFDFAF008A1ED6EC6C292A2A12BBDD2E9B366D929999194500EAC0F54E03001F9C4F2F6798CDE272B912802A292991070F1E24EC59585828641BF501E3D4DE148BC522C5C5C572EDC60D191A1A94C94733B10845C12C5A2C7C6BDF5F99AC45A532D7C27CE44DDAB873E74E696B6B63EA4B27008B34606161410844D8288FD72BCE2FBE5092C0CEAA2AB17DFEB90CBFF492F81D60BE31499C4EA7626C361C3A3B9B785EA1D138A0C9E3C78F63EED3D979797972F7EE5DD9B66D9B72E45E804A47733D1AF210E09696964A6666A62C2D2DC51FFCA4A0A04046464674A38873868787C50CF0685F7575B58AF2E5B90644AD417635342C3B5193C8558BF262B8BEF16A2B2956D7B4B45419B58F8B1BF62C4FD322D7EACA72E587B49414B978F9AA5CF8676B4C6D999B9B53CFA7A7A7DD04A007489450DFDEDE5E151A2816E25B258F24E5E448E9A79FCAD81B6F883764B429C9287EE6528040475BADD6C4530C98979F9FAF808E1E4C5BE162B8B8B8B81CB263634AC92A004D7D080041C2812F2182A29985E641776DCEC14956FD3F8A94491DA8271D996E4E935DB535BACED703A1203F6F991800D39A95255E9F6F85FB2110CC58B3A478B3CCC31FDBB754CAF9E04A91BF7FFFBEB20BBABA1C0EC77F8DECE9118E7330D40407DC0653769139E18563D886FBA59F7D2693274F8AFBD6AD1516C349593088E9231C457A00D099AB751B4C09939393CAD10492EF12043A8DFAB090ADB636C1D3EBC2B827E712B8F00847168C17F6192693516EDDBC915828127EEADE4C7827364569D0DB1B53A39001DA6047230070830C7F502D26FE09868C73536165701C9B38367FF289384F9F16676B6BC233634AAA2AA8A7CF9D8B5524A44C775F9FCAE39A8EF65DDDDD2130E2CCC59F2584B83517A0B816E5D295AB116BA38DEAE9BBA7EB9BE01A85B817732CD66CD95450B2E1453810A52CFC9C87B4AB853F6318434C0982711A644F040016BEA891FFDE7B12007BA63FF8407713736A8A545556AA1CBF1A5357F978A77B3F07A98E05F4F2E5CB525B5B2B8F1E3D8A74463F646DEAC69AC7F175C76D19B78F8821E0152BF61B1C1C92F2F23215C98C400BEAC703DC5BDF79C22F9959F952662B14B363567EDBFF959C38F0A6D82B774AA0F358441F64982AEA10034038BC99FBC312880220EBF5D7C5DCD42423870EADAAC0080A5D11BA0EE6F93B77124FE20D28742CB07464F46077B26FDF3EB972E50ACE208D72F3E64DA9ABAB53A982B99A7A723DE67882AB377FF7EEDD72EDDAB5843D77ECD8A180ECECEC54859AA98AC598AD2D8BB101CD83CFE393577FF38ABCF8E201F9E8A3BFC8B1637F94EBD7BF54003434D4CBC93FBD2F13139331F1A547018F67496500A6E264B7536A17A7C497952773B6ED9216AA5BF4319B0E0AEC322035FEC40854FE0AA5ACBC193E0B50FC10C56C7424B96FBF2D432D2D125CA500AA8E03A0B188B2D361AFABC73C763264B5EE7902298FFBB3CBA1D3D825B070920C6C2399C7CBCBCB75E71304BD3D6907010C314E3190B5863546E904571AD009F5F70FC81208670730E72F5C44A1B62B2739D02DF97C417905C4B3DBC7543DCACFCB95F6AF3BA4A9B15E454C774FEF3228067F24E25CC926F97375BD9887CFCB36C77F6430B0020081A5C08E3CE8F20E23C0CD62C50DC992B0E2010251512136E4FB209C53D1DEAEEBB8990F3F149975C051A98AA9ECF7E37B750E1A4D03F49E79603C19CE224C47B3A524DBD9429AA00719CBDF74F26AF309A0272E6D723F763B048DCF6938BB10824160355461FECE462D28467B999D6D556787E5D6525307C0AC2C0B5256319A12AF02ABD4562AF700D80BB85297AE3BDD9182CFB676727A5AB60426E460C1985CDDE196A99A7909FC3D1069B96943F8D30DF67611B27771E3FDE3C78F4B1F0A258D576C4397F05654A7B3D6F8C7EF7E2FADDFF4A86E281F8E6424C47F4BA1C16400591D3FE8DCC7B81FDF79A94E08670A3FEE5B2C59EABDD5E6D319F1DF7468302332CCF8E8A1EE2FBAA4501561FB1329B629A966DDBAF3BFF6EBB2E0742832343737ABD4C8548BF6FA04DFDE02F9B8A5A5653B98B608638AAC9999A6325372A0323DC3BF9E8DDD5515C9CE1FE103E40FFDFC47804194C0D292C71FBF6630BA25FBEECDB5B55EEAE9EE36DCBBD7A7A1E5F5A0AE5DAFACACB420ADF6A2CD7EE75B1EBAEF8F483150520000000049454E44AE426082);
START TRANSACTION;
INSERT INTO `role` (`roleid`,`name`,`type`,`readonly`) VALUES ('1','User role','1','0'),
('2','Admin role','2','0'),
('3','Super admin role','3','1'),
('4','Guest role','1','0');
INSERT INTO `ugset` (`ugsetid`,`hash`) VALUES ('1','b21d61561974b06cbeb97a71ca880e92f0fc06d49ac3246280afb88dfa6050a6');
INSERT INTO `users` (`userid`,`username`,`name`,`surname`,`passwd`,`url`,`autologin`,`autologout`,`refresh`,`rows_per_page`,`roleid`) VALUES ('1','Admin','Zabbix','Administrator','$2y$10$92nDno4n0Zm7Ej7Jfsz8WukBfgSS/U0QkIuu8WkJPihXBb2A1UrEK','','1','0','30s','50','3'),
('2','guest','','','$2y$10$89otZrRNmde97rIyzclecuk6LwKAsHN0BcvoOKGjbT.BwMBfm7G06','','0','15m','30s','50','4');
INSERT INTO `hstgrp` (`groupid`,`name`,`flags`,`uuid`,`type`) VALUES ('1','Templates','0','7df96b18c230490a9a0a9e2307226338','1'),
('2','Linux servers','0','dc579cd7a1a34222933f24f52a68bcd8','0'),
('4','Zabbix servers','0','6f6799aa69e844b4b3918f779f2abf08','0'),
('5','Discovered hosts','0','f2481361f99448eea617b7b1d4765566','0'),
('6','Virtual machines','0','137f19e6e2dc4219b33553b812627bc2','0'),
('7','Hypervisors','0','1b837a3c078647049a0c00c61b4d57b5','0'),
('9','Templates/Network devices','0','36bff6c29af64692839d077febfc7079','1'),
('10','Templates/Operating systems','0','846977d1dfed4968bc5f8bdb363285bc','1'),
('11','Templates/Server hardware','0','e960332b3f6c46a1956486d4f3f99fce','1'),
('12','Templates/Applications','0','a571c0d144b14fd4a87a9d9b2aa9fcd6','1'),
('13','Templates/Databases','0','748ad4d098d447d492bb935c907f652f','1'),
('14','Templates/Virtualization','0','02e4df4f20b848e79267641790f241da','1'),
('15','Templates/Telephony','0','1d12408342854fd5a4436dd6d5d1bd4a','1'),
('16','Templates/SAN','0','7c2cb727f85b492d88cd56e17127c64d','1'),
('17','Templates/Video surveillance','0','d37f71c7e3f7469bab645852a69a2018','1'),
('18','Templates/Power','0','3dcd5bbe90534f9e8eb5c2d53756af63','1'),
('19','Applications','0','a571c0d144b14fd4a87a9d9b2aa9fcd6','0'),
('20','Databases','0','748ad4d098d447d492bb935c907f652f','0'),
('21','Templates/Cloud','0','c2c162144c2d4c5491c8801193af4945','1');
INSERT INTO `drules` (`druleid`,`proxyid`,`name`,`iprange`,`delay`,`status`,`concurrency_max`) VALUES ('2',NULL,'Local network','192.168.0.1-254','1h','1','0');
INSERT INTO `dchecks` (`dcheckid`,`druleid`,`type`,`key_`,`snmp_community`,`ports`,`snmpv3_securityname`,`snmpv3_securitylevel`,`snmpv3_authpassphrase`,`snmpv3_privpassphrase`,`uniq`,`snmpv3_authprotocol`,`snmpv3_privprotocol`,`snmpv3_contextname`,`host_source`,`name_source`,`allow_redirect`) VALUES ('2','2','9','system.uname','','10050','','0','','','0','0','0','','1','0','0');
INSERT INTO `media_type` (`mediatypeid`,`type`,`name`,`smtp_server`,`smtp_helo`,`smtp_email`,`exec_path`,`gsm_modem`,`username`,`passwd`,`smtp_port`,`smtp_security`,`smtp_verify_peer`,`smtp_verify_host`,`smtp_authentication`,`maxsessions`,`maxattempts`,`attempt_interval`,`message_format`,`script`,`timeout`,`process_tags`,`show_event_menu`,`event_menu_url`,`event_menu_name`,`description`,`provider`) VALUES ('1','0','Email','mail.example.com','example.com','zabbix@example.com','','','','','25','0','0','0','0','1','3','10s','0','','30s','0','0','','','','0'),
('3','2','SMS','','','','','/dev/ttyS0','','','25','0','0','0','0','1','3','10s','1','','30s','0','0','','','','0'),
('4','0','Email (HTML)','mail.example.com','example.com','zabbix@example.com','','','','','25','0','0','0','0','1','3','10s','1','','30s','0','0','','','','0'),
('34','0','Gmail','smtp.gmail.com','example.com','zabbix@example.com','','','','','587','1','0','0','1','1','3','10s','1','','30s','0','0','','','','1'),
('35','0','Gmail relay','smtp-relay.gmail.com','example.com','zabbix@example.com','','','','','587','1','0','0','0','1','3','10s','1','','30s','0','0','','','','2'),
('36','0','Office365','smtp.office365.com','example.com','zabbix@example.com','','','','','587','1','0','0','1','1','3','10s','1','','30s','0','0','','','','3'),
('37','0','Office365 relay','example-com.mail.protection.outlook.com','example.com','zabbix@example.com','','','','','25','1','0','0','0','1','3','10s','1','','30s','0','0','','','','4'),
('70','4','Brevis.one','','','','','','','','25','0','0','0','0','1','3','10s','1','var BrevisOne = {\r\n params: [],\r\n\r\n addParam: function (name, value) {\r\n BrevisOne.params.push(name + \'=\' + encodeURIComponent(value));\r\n },\r\n\r\n setProxy: function (HTTPProxy) {\r\n BrevisOne.HTTPProxy = HTTPProxy;\r\n },\r\n\r\n setPayload: function (params) {\r\n var parts = params.send_to.split(\':\'),\r\n defaultValues = {\r\n ring: \'true\',\r\n flash: \'true\',\r\n telauto: \'false\'\r\n };\r\n\r\n BrevisOne.addParam(\'username\', params.username);\r\n BrevisOne.addParam(\'password\', params.password);\r\n BrevisOne.addParam(\'text\', params.text);\r\n\r\n if (parts.length > 1) {\r\n BrevisOne.addParam(\'mode\', parts[0]);\r\n BrevisOne.addParam(\'to\', parts[1]);\r\n }\r\n else {\r\n BrevisOne.addParam(\'to\', parts[0]);\r\n }\r\n\r\n Object.keys(defaultValues)\r\n .forEach(function (key) {\r\n if (params[key] && params[key].trim() && params[key].toLowerCase() === defaultValues[key]) {\r\n BrevisOne.addParam(key, defaultValues[key]);\r\n }\r\n });\r\n },\r\n\r\n request: function () {\r\n var response,\r\n request = new HttpRequest(),\r\n data = \'?\' + BrevisOne.params.join(\'&\');\r\n\r\n request.addHeader(\'Content-Type: multipart/form-data\');\r\n\r\n if (typeof BrevisOne.HTTPProxy !== \'undefined\' && BrevisOne.HTTPProxy !== \'\') {\r\n request.setProxy(BrevisOne.HTTPProxy);\r\n }\r\n\r\n Zabbix.log(4, \'[ BrevisOne Webhook ] Sending request.\');\r\n\r\n response = request.post(params.endpoint + data);\r\n\r\n Zabbix.log(4, \'[ BrevisOne Webhook ] Received response with status code \' +\r\n request.getStatus() + \'\\n\' + response);\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n var message = \'Request failed with status code \' + request.getStatus();\r\n\r\n if (response) {\r\n message += \': \' + response;\r\n }\r\n\r\n throw message + \'. Check debug log for more information.\';\r\n }\r\n }\r\n};\r\n\r\ntry {\r\n var params = JSON.parse(value);\r\n\r\n [\'endpoint\', \'password\', \'username\', \'text\', \'send_to\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\'\r\n || !params[field].trim()) {\r\n throw \'Required parameter is not set: "\' + field + \'".\';\r\n }\r\n });\r\n\r\n if (params.send_to === \'{ALERT.SENDTO}\') {\r\n throw \'Required parameter is not set: "send_to".\';\r\n }\r\n\r\n BrevisOne.setProxy(params.HTTPProxy);\r\n BrevisOne.setPayload(params);\r\n BrevisOne.request();\r\n\r\n return \'OK\';\r\n}\r\ncatch (error) {\r\n Zabbix.log(3, \'[ BrevisOne Webhook ] ERROR: \' + error);\r\n throw \'Sending failed: \' + error;\r\n}','30s','0','0','','','','0'),
('71','4','Discord','','','','','','','','25','0','0','0','0','1','3','10s','1','const CLogger = function(serviceName) {\r\n this.serviceName = serviceName;\r\n this.INFO = 4\r\n this.WARN = 3\r\n this.ERROR = 2\r\n this.log = function(level, msg) {\r\n Zabbix.log(level, \'[\' + this.serviceName + \'] \' + msg);\r\n }\r\n}\r\n\r\nconst CWebhook = function(value) {\r\n try {\r\n params = JSON.parse(value);\r\n\r\n if ([\'0\', \'1\', \'2\', \'3\', \'4\'].indexOf(params.event_source) === -1) {\r\n throw \'Incorrect "event_source" parameter given: \' + params.event_source + \'.\\nMust be 0-4.\';\r\n }\r\n\r\n if ([\'0\', \'3\', \'4\'].indexOf(params.event_source) !== -1 && [\'0\', \'1\'].indexOf(params.event_value) === -1) {\r\n throw \'Incorrect "event_value" parameter given: \' + params.event_value + \'.\\nMust be 0 or 1.\';\r\n }\r\n\r\n if ([\'0\', \'3\', \'4\'].indexOf(params.event_source) !== -1) {\r\n if (params.event_source === \'1\' && [\'0\', \'1\', \'2\', \'3\'].indexOf(params.event_value) === -1) {\r\n throw \'Incorrect "event_value" parameter given: \' + params.event_value + \'.\\nMust be 0-3.\';\r\n }\r\n\r\n if (params.event_source === \'0\' && [\'0\', \'1\'].indexOf(params.event_update_status) === -1) {\r\n throw \'Incorrect "event_update_status" parameter given: \' + params.event_update_status + \'.\\nMust be 0 or 1.\';\r\n }\r\n\r\n if (params.event_source === \'4\') {\r\n if ([\'0\', \'1\', \'2\', \'3\', \'4\', \'5\'].indexOf(params.event_update_nseverity) !== -1 && params.event_update_nseverity != params.event_nseverity) {\r\n params.event_nseverity = params.event_update_nseverity;\r\n params.event_severity = params.event_update_severity;\r\n params.event_update_status = \'1\';\r\n }\r\n }\r\n }\r\n\r\n this.runCallback = function(name, params) {\r\n if (typeof this[name] === \'function\') {\r\n return this[name].apply(this, [params]);\r\n }\r\n }\r\n\r\n this.handleEvent = function(source, event) {\r\n const alert = { source: source, event: event };\r\n return [\r\n this.runCallback(\'on\' + source + event, alert),\r\n this.runCallback(\'on\' + event, alert),\r\n this.runCallback(\'onEvent\', alert)\r\n ];\r\n }\r\n\r\n this.handleEventless = function(source) {\r\n const alert = { source: source, event: null };\r\n return [\r\n this.runCallback(\'on\' + source, alert),\r\n this.runCallback(\'onEvent\', alert)\r\n ];\r\n }\r\n\r\n this.run = function() {\r\n var results = [];\r\n if (typeof this.httpProxy === \'string\' && this.httpProxy.trim() !== \'\') {\r\n this.request.setProxy(this.httpProxy);\r\n }\r\n const types = { \'0\': \'Trigger\', \'1\': \'Discovery\', \'2\': \'Autoreg\', \'3\': \'Internal\', \'4\': \'Service\' };\r\n\r\n if ([\'0\', \'3\', \'4\'].indexOf(this.params.event_source) !== -1) {\r\n var event = (this.params.event_update_status === \'1\')\r\n ? \'Update\'\r\n : ((this.params.event_value === \'1\') ? \'Problem\' : \'Resolve\');\r\n\r\n results = this.handleEvent(types[this.params.event_source], event);\r\n }\r\n else if (typeof types[this.params.event_source] !== \'undefined\') {\r\n results = this.handleEventless(types[this.params.event_source]);\r\n }\r\n else {\r\n throw \'Unexpected "event_source": \' + this.params.event_source;\r\n }\r\n\r\n for (idx in results) {\r\n if (typeof results[idx] !== \'undefined\') {\r\n return JSON.stringify(results[idx]);\r\n }\r\n }\r\n }\r\n this.httpProxy = params.http_proxy;\r\n this.params = params;\r\n this.runCallback(\'onCheckParams\', {});\r\n } catch (error) {\r\n throw \'Webhook processing failed: \' + error;\r\n }\r\n}\r\n\r\nconst CParamValidator = {\r\n\r\n isType: function(value, type) {\r\n if (type === \'array\') {\r\n return Array.isArray(value);\r\n }\r\n if (type === \'integer\') {\r\n return CParamValidator.isInteger(value);\r\n }\r\n if (type === \'float\') {\r\n return CParamValidator.isFloat(value);\r\n }\r\n\r\n return (typeof value === type);\r\n },\r\n\r\n isInteger: function(value) {\r\n if (!CParamValidator.ifMatch(value, /^-?\\d+$/)) {\r\n return false;\r\n }\r\n\r\n return !isNaN(parseInt(value));\r\n },\r\n\r\n isFloat: function(value) {\r\n if (!CParamValidator.ifMatch(value, /^-?\\d+\\.\\d+$/)) {\r\n return false;\r\n }\r\n\r\n return !isNaN(parseFloat(value));\r\n },\r\n\r\n isDefined: function(value) {\r\n return !CParamValidator.isType(value, \'undefined\');\r\n },\r\n\r\n isEmpty: function(value) {\r\n if (!CParamValidator.isType(value, \'string\')) {\r\n throw \'Value "\' + value + \'" must be a string to be checked for emptiness.\';\r\n }\r\n\r\n return (value.trim() === \'\');\r\n },\r\n\r\n isMacroSet: function(value, macro) {\r\n if (CParamValidator.isDefined(macro)) {\r\n return !(CParamValidator.ifMatch(value, \'^\\{\' + macro + \'\\}$\'))\r\n }\r\n\r\n return !(CParamValidator.ifMatch(value, \'^\\{[$#]{0,1}[A-Z_\\.]+[\\:]{0,1}["]{0,1}.*["]{0,1}\\}$\') || value === \'*UNKNOWN*\')\r\n },\r\n\r\n withinRange: function(value, min, max) {\r\n if (!CParamValidator.isType(value, \'number\')) {\r\n throw \'Value "\' + value + \'" must be a number to be checked for range.\';\r\n }\r\n if (value < ((CParamValidator.isDefined(min)) ? min : value)\r\n || value > ((CParamValidator.isDefined(max)) ? max : value)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n\r\n inArray: function(value, array) {\r\n if (!CParamValidator.isType(array, \'array\')) {\r\n throw \'The array must be an array to check the value for existing in it.\';\r\n }\r\n\r\n return (array.indexOf((typeof value === \'string\') ? value.toLowerCase() : value) !== -1);\r\n },\r\n\r\n ifMatch: function(value, regex) {\r\n return (new RegExp(regex)).test(value);\r\n },\r\n\r\n match: function(value, regex) {\r\n if (!CParamValidator.isType(value, \'string\')) {\r\n throw \'Value "\' + value + \'" must be a string to be matched with the regular expression.\';\r\n }\r\n\r\n return value.match(new RegExp(regex));\r\n },\r\n\r\n checkURL: function(value) {\r\n if (CParamValidator.isEmpty(value)) {\r\n throw \'URL value "\' + value + \'" must be a non-empty string.\';\r\n }\r\n if (!CParamValidator.ifMatch(value, \'^(http|https):\\/\\/.+\')) {\r\n throw \'URL value "\' + value + \'" must contain a schema.\';\r\n }\r\n\r\n return value.endsWith(\'/\') ? value.slice(0, -1) : value;\r\n },\r\n\r\n check: function(key, rule, params) {\r\n if (!CParamValidator.isDefined(rule.type)) {\r\n throw \'Mandatory attribute "type" has not been defined for parameter "\' + key + \'".\';\r\n }\r\n if (!CParamValidator.isDefined(params[key])) {\r\n throw \'Checked parameter "\' + key + \'" was not found in the list of input parameters.\';\r\n }\r\n var value = params[key],\r\n error_message = null;\r\n switch (rule.type) {\r\n case \'string\':\r\n if (!CParamValidator.isType(value, \'string\')) {\r\n throw \'Value "\' + key + \'" must be a string.\';\r\n }\r\n if (CParamValidator.isEmpty(value)) {\r\n error_message = \'Value "\' + key + \'" must be a non-empty string\';\r\n break;\r\n }\r\n if (CParamValidator.isDefined(rule.len) && value.length < rule.len) {\r\n error_message = \'Value "\' + key + \'" must be a string with a length > \' + rule.len;\r\n }\r\n if (CParamValidator.isDefined(rule.regex) && !CParamValidator.ifMatch(value, rule.regex)) {\r\n error_message = \'Value "\' + key + \'" must match the regular expression "\' + rule.regex + \'"\';\r\n }\r\n if (CParamValidator.isDefined(rule.url) && rule.url === true) {\r\n value = CParamValidator.checkURL(value);\r\n }\r\n break;\r\n case \'integer\':\r\n if (!CParamValidator.isInteger(value)) {\r\n error_message = \'Value "\' + key + \'" must be an integer\';\r\n break;\r\n }\r\n value = parseInt(value);\r\n break;\r\n case \'float\':\r\n if (!CParamValidator.isFloat(value)) {\r\n error_message = \'Value "\' + key + \'" must be a floating-point number\';\r\n break;\r\n }\r\n value = parseFloat(value);\r\n break;\r\n case \'boolean\':\r\n if (CParamValidator.inArray(value, [\'1\', \'true\', \'yes\', \'on\'])) {\r\n value = true;\r\n }\r\n else if (CParamValidator.inArray(value, [\'0\', \'false\', \'no\', \'off\'])) {\r\n value = false;\r\n }\r\n else {\r\n error_message = \'Value "\' + key + \'" must be a boolean-like.\';\r\n }\r\n break;\r\n case \'array\':\r\n try {\r\n value = JSON.parse(value);\r\n } catch (error) {\r\n throw \'Value "\' + key + \'" contains invalid JSON.\';\r\n }\r\n if (!CParamValidator.isType(value, \'array\')) {\r\n error_message = \'Value "\' + key + \'" must be an array.\';\r\n }\r\n if (CParamValidator.isDefined(rule.tags) && rule.tags === true) {\r\n value = value.reduce(function(acc, obj) {\r\n acc[obj.tag] = obj.value || null;\r\n return acc;\r\n }, {});\r\n }\r\n break;\r\n case \'object\':\r\n value = JSON.parse(value);\r\n if (!CParamValidator.isType(value, \'object\')) {\r\n error_message = \'Value "\' + key + \'" must be an object.\';\r\n }\r\n break;\r\n default:\r\n throw \'Unexpected attribute type "\' + rule.type + \'" for value "\' + key + \'". Available: \' +\r\n [\'integer\', \'float\', \'string\', \'boolean\', \'array\', \'object\'].join(\', \');\r\n }\r\n params[key] = value;\r\n if (CParamValidator.inArray(rule.type, [\'integer\', \'float\']) && error_message === null && (CParamValidator.isDefined(rule.min)\r\n || CParamValidator.isDefined(rule.max)) && !CParamValidator.withinRange(value, rule.min, rule.max)) {\r\n error_message = \'Value "\' + key + \'" must be a number \' + ((CParamValidator.isDefined(rule.min) && CParamValidator.isDefined(rule.max))\r\n ? (rule.min + \'..\' + rule.max) : ((CParamValidator.isDefined(rule.min)) ? \'>\' + rule.min : \'<\' + rule.max));\r\n }\r\n else if (CParamValidator.isDefined(rule.array) && !CParamValidator.inArray(value, rule.array)) {\r\n error_message = \'Value "\' + key + \'" must be in the array \' + JSON.stringify(rule.array);\r\n }\r\n else if (CParamValidator.isDefined(rule.macro) && !CParamValidator.isMacroSet(value.toString(), rule.macro)) {\r\n error_message = \'The macro \' + ((CParamValidator.isDefined(rule.macro)) ? \'{\' + rule.macro + \'} \' : \' \') + \'is not set\';\r\n }\r\n if (error_message !== null) {\r\n if (CParamValidator.isDefined(rule.default) && CParamValidator.isType(rule.default, rule.type)) {\r\n params[key] = rule.default;\r\n }\r\n else {\r\n Zabbix.log(4, \'Default value for "\' + key + \'" must be a \' + rule.type + \'. Skipped.\');\r\n throw \'Incorrect value for variable "\' + key + \'". \' + error_message;\r\n }\r\n }\r\n\r\n return this;\r\n },\r\n\r\n validate: function(rules, params) {\r\n if (!CParamValidator.isType(params, \'object\') || CParamValidator.isType(params, \'array\')) {\r\n throw \'Incorrect parameters value. The value must be an object.\';\r\n }\r\n for (var key in rules) {\r\n CParamValidator.check(key, rules[key], params);\r\n }\r\n }\r\n}\r\n\r\nconst CHttpRequest = function(logger) {\r\n this.request = new HttpRequest();\r\n if (typeof logger !== \'object\' || logger === null) {\r\n this.logger = Zabbix;\r\n }\r\n else {\r\n this.logger = logger;\r\n }\r\n\r\n this.clearHeader = function() {\r\n this.request.clearHeader();\r\n }\r\n\r\n this.addHeaders = function(value) {\r\n var headers = [];\r\n\r\n if (typeof value === \'object\' && value !== null) {\r\n if (!Array.isArray(value)) {\r\n Object.keys(value).forEach(function(key) {\r\n headers.push(key + \': \' + value[key]);\r\n });\r\n }\r\n else {\r\n headers = value;\r\n }\r\n }\r\n else if (typeof value === \'string\') {\r\n value.split(\'\\r\\n\').forEach(function(header) {\r\n headers.push(header);\r\n });\r\n }\r\n\r\n for (var idx in headers) {\r\n this.request.addHeader(headers[idx]);\r\n }\r\n }\r\n\r\n this.setProxy = function(proxy) {\r\n this.request.setProxy(proxy);\r\n }\r\n\r\n this.plainRequest = function(method, url, data) {\r\n var resp = null;\r\n method = method.toLowerCase();\r\n this.logger.log(4, \'Sending \' + method + \' request:\' + JSON.stringify(data));\r\n if ([\'get\', \'post\', \'put\', \'patch\', \'delete\', \'trace\'].indexOf(method) !== -1) {\r\n resp = this.request[method](url, data);\r\n }\r\n else if ([\'connect\', \'head\', \'options\'].indexOf(method) !== -1) {\r\n resp = this.request[method](url);\r\n }\r\n else {\r\n throw \'Unexpected method. Method \' + method + \' is not supported.\';\r\n }\r\n this.logger.log(4, \'Response has been received: \' + resp);\r\n\r\n return resp;\r\n }\r\n\r\n this.jsonRequest = function(method, url, data) {\r\n this.addHeaders(\'Content-Type: application/json\');\r\n var resp = this.plainRequest(method, url, JSON.stringify(data));\r\n try {\r\n resp = JSON.parse(resp);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response: not well-formed JSON was received\';\r\n }\r\n\r\n return resp;\r\n }\r\n\r\n this.getStatus = function() {\r\n return this.request.getStatus();\r\n }\r\n}\r\n\r\nconst CWebhookHelper = {\r\n\r\n createProblemURL: function(event_source, zabbix_url, trigger_id, event_id) {\r\n if (event_source === \'0\') {\r\n return zabbix_url + \'/tr_events.php?triggerid=\' + trigger_id + \'&eventid=\' + event_id;\r\n } else if (event_source === \'4\') {\r\n return zabbix_url + \'/zabbix.php?action=service.list\';\r\n }\r\n\r\n return zabbix_url;\r\n },\r\n\r\n};\r\n\r\nvar SEVERITY_COLORS = [\r\n \'#97AAB3\',\r\n \'#7499FF\',\r\n \'#FFC859\',\r\n \'#FFA059\',\r\n \'#E97659\',\r\n \'#E45959\',\r\n \'#009900\'\r\n],\r\n serviceLogName = \'Discord Webhook\',\r\n Logger = new CLogger(serviceLogName),\r\n Discord = CWebhook;\r\n\r\nfunction stringTruncate(str, len) {\r\n return str.length > len ? str.substring(0, len - 3) + \'...\' : str;\r\n}\r\n\r\nDiscord.prototype.onCheckParams = function () {\r\n CParamValidator.validate({discord_endpoint: {type: \'string\', url: true}, zabbix_url: {type: \'string\', url: true}, alert_message: {type: \'string\'},\r\n alert_subject: {type: \'string\'}, event_nseverity: {type: \'integer\', default: 1}, user_agent: {type: \'string\'}}, this.params);\r\n\r\n this.params.discord_endpoint = this.params.discord_endpoint.replace(\'/api/\', \'/api/v10/\') + \'?wait=True\';\r\n\r\n if (this.params.event_source === \'3\' && this.params.event_value === \'1\') {\r\n this.params.event_nseverity = 4;\r\n }\r\n\r\n if (this.params.event_value === \'0\') {\r\n this.params.event_nseverity = 6;\r\n }\r\n\r\n if (this.params.event_source === \'0\') {\r\n CParamValidator.validate({event_id: {type: \'integer\'}, trigger_id: {type: \'integer\'}}, this.params);\r\n }\r\n\r\n this.data = {\r\n embeds: [\r\n {\r\n color: parseInt(SEVERITY_COLORS[this.params.event_nseverity].replace(\'#\', \'\'), 16),\r\n url: CWebhookHelper.createProblemURL(this.params.event_source, this.params.zabbix_url, this.params.trigger_id, this.params.event_id),\r\n title: stringTruncate(this.params.alert_subject, 256),\r\n description: stringTruncate(this.params.alert_message, 4096)\r\n }\r\n ]\r\n };\r\n};\r\n\r\nDiscord.prototype.onEvent = function (alert) {\r\n Logger.log(Logger.INFO, \'Source: \' + alert.source + \'; Event: \' + alert.event);\r\n\r\n this.request.addHeaders({"User-Agent": this.params.user_agent});\r\n const response = this.request.jsonRequest(\'POST\', this.params.discord_endpoint, this.data);\r\n\r\n if (!response.id) {\r\n const error_message = CParamValidator.isType(response.message, \'string\') ? response.message : \'Unknown error\';\r\n\r\n throw error_message + \'. For more details check the Zabbix server log.\';\r\n }\r\n\r\n return \'OK\';\r\n};\r\n\r\n\r\ntry {\r\n var hook = new Discord(value);\r\n hook.request = new CHttpRequest(Logger);\r\n return hook.run();\r\n}\r\ncatch (error) {\r\n Logger.log(Logger.WARN, \'notification failed: \' + error);\r\n throw \'Sending failed: \' + error;\r\n}','30s','0','0','','','This media type integrates your Zabbix installation with your Discord server using the Zabbix webhook feature.\r\n\r\nDiscord configuration:\r\n\r\n1. Go to `https://discord.com/app` or open the Discord desktop application. Open your *Server Settings* and head to the *Integrations* tab. \r\n2. Press the *Create Webhook* button to create a new webhook.\r\n3. Click on the webhook that has been created and edit the details if needed.\r\n4. After setting up your Discord webhook press "Save Changes". Now you can copy Discord webhook URL now by pressing "Copy Webhook URL" or you can view it later.\r\n\r\nZabbix configuration:\r\n\r\n1. Before you can start using Discord webhook, set up the global macro "{$ZABBIX.URL}":\r\n- In the Zabbix web interface, go to "Administration" → "Macros" section in the dropdown menu in the top left corner.\r\n- Set up the global macro "{$ZABBIX.URL}" which will contain the URL to the Zabbix frontend. The URL should be either an IP address, a fully qualified domain name, or localhost.\r\n- Specifying a protocol is mandatory, whereas the port is optional. Depending on the web server configuration you might also need to append "/zabbix" to the end of URL. Good examples: \r\n - http://zabbix.com\r\n - https://zabbix.lan/zabbix\r\n - http://server.zabbix.lan/\r\n - http://localhost\r\n - http://127.0.0.1:8080\r\n- Bad examples:\r\n - zabbix.com\r\n - http://zabbix/\r\n\r\n2. Create a Zabbix user and add media:\r\n- If you want to create a new user, go to the "Users" → "Users" section, click the "Create user" button in the top right corner. In the "User" tab, fill in all required fields (marked with red asterisks). \r\n- In the "Media" tab, add a new media and select "Discord" type from the drop-down list. The "Send to" field must contain the URL of the Discord webhook created before.\r\n- Make sure this user has access to all hosts for which you would like problem notifications to be sent to Discord.\r\n\r\n3. Great! You can now start using this media type in actions and receive alerts!\r\n\r\nYou can find the latest version of this media and additional information in the official Zabbix repository:\r\nhttps://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/discord','0'),
('72','4','Event-Driven Ansible','','','','','','','','25','0','0','0','0','1','3','10s','1','var Eda = {\r\n params: {},\r\n\r\n setParams: function (params) {\r\n var required_params = [\r\n \'send_to\',\r\n \'event_source\',\r\n \'event_value\',\r\n \'event_date\',\r\n \'event_time\'],\r\n integer_fields = [\r\n \'event_id\',\r\n \'event_nseverity\',\r\n \'event_object\',\r\n \'event_source\',\r\n \'event_value\',\r\n \'host_id\',\r\n \'trigger_id\'];\r\n\r\n required_params.forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n });\r\n\r\n Eda.params = params;\r\n\r\n integer_fields.forEach(function (key) {\r\n if (typeof Eda.params[key] !== \'undefined\') {\r\n if (isNaN(Eda.params[key])) {\r\n throw \'Parameter "\' + key + \'" must be integer. Given value: \' + Eda.params[key];\r\n }\r\n Eda.params[key] = parseInt(Eda.params[key]);\r\n }\r\n });\r\n\r\n // Check type of event. Possible values: 0 - Trigger\r\n if (params.event_source != 0) {\r\n throw (\'Incorrect "event_source" parameter given: \' + params.event_source \r\n + \'\\nOnly trigger-based events are supported\');\r\n }\r\n\r\n // Check trigger update and trigger resolve events\r\n if (params.event_source == 0 && params.event_value != 1) {\r\n throw (\'Incorrect "event_value" parameter given: "\' + params.event_value \r\n + \'".\\nOnly trigger-based events of problem are supported\');\r\n }\r\n \r\n // Check endpoint\r\n Eda.params.endpoint = (Eda.params.endpoint.startsWith(\'/\'))\r\n ? Eda.params.endpoint : \'/\' + Eda.params.endpoint;\r\n // Prepare groups\r\n Eda.params.host_groups = (typeof Eda.params[\'host_groups\'] !== \'undefined\')\r\n ? this.prepareHostgroups(Eda.params.host_groups): []\r\n // Prepare tags\r\n Eda.params.event_tags = (typeof Eda.params[\'event_tags\'] !== \'undefined\')\r\n ? this.transformTags(Eda.params.event_tags): {}\r\n // Prepare timestamp\r\n Eda.params.event_datetime_timestamp = this.getTimestamp(\r\n Eda.params.event_date, Eda.params.event_time)\r\n },\r\n\r\n setProxy: function (HTTPProxy) {\r\n Eda.HTTPProxy = HTTPProxy;\r\n },\r\n\r\n prepareHostgroups: function (hostgroups) {\r\n var host_groups = []; \r\n hostgroups.split(\',\').forEach(function (group) {\r\n group = group.trim();\r\n if (group.length > 0) {\r\n host_groups.push(group);\r\n }\r\n });\r\n return host_groups;\r\n },\r\n\r\n getTimestamp: function (date, time) {\r\n try {\r\n return Date.parse(date.split(\'.\').join(\'-\') + \'T\' + time + \'.000Z\') / 1000 + new Date().getTimezoneOffset() * 60;\r\n } catch (_) {}\r\n \r\n throw (\'Failed to parse event time.\');\r\n },\r\n\r\n transformTags: function (event_tags) {\r\n var tags = {};\r\n if (event_tags) {\r\n try {\r\n JSON.parse(event_tags).forEach(function (object) {\r\n var tag = object[\'tag\'];\r\n tags[tag] = tags[tag] || [];\r\n tags[tag].push(object[\'value\']);\r\n });\r\n } catch (error) {\r\n throw \'Event tags format is invalid.\';\r\n }\r\n }\r\n \r\n return tags;\r\n },\r\n\r\n sendMessage: function () {\r\n var response, request = new HttpRequest();\r\n var url = Eda.params[\'send_to\'] + Eda.params[\'endpoint\'];\r\n var data = JSON.stringify(Eda.params);\r\n Zabbix.log(4, \'[ Event-Driven Ansible webhook ] URL: \' + url + \' data: \' + data);\r\n \r\n if (typeof Eda.HTTPProxy !== \'undefined\' && Eda.HTTPProxy !== \'\') {\r\n request.setProxy(Eda.HTTPProxy);\r\n }\r\n request.addHeader(\'Content-Type: application/json\');\r\n response = request.post(url, data);\r\n \r\n Zabbix.log(4, \'[ Event-Driven Ansible webhook ] HTTP code: \' + request.getStatus()\r\n + \' response: \' + response);\r\n\r\n if (request.getStatus() !== 200) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n }\r\n};\r\n\r\n\r\ntry {\r\n var params = JSON.parse(value);\r\n \r\n Eda.setParams(params);\r\n Eda.setProxy(params.HTTPProxy);\r\n Eda.sendMessage();\r\n return true;\r\n}\r\ncatch (error) {\r\n Zabbix.log(3, \'[ Event-Driven Ansible webhook ] notification failed: \' + error);\r\n throw \'Sending failed: \' + error;\r\n}','30s','0','0','','','','0'),
('73','4','Express.ms','','','','','','','','25','0','0','0','0','1','3','10s','1','var Express = {\r\n params: [],\r\n\r\n setParams: function (params) {\r\n if (typeof params !== \'object\') {\r\n return;\r\n }\r\n\r\n Express.params = params;\r\n\r\n if (typeof Express.params.url === \'string\' && !Express.params.url.endsWith(\'/\')) {\r\n Express.params.url += \'/\';\r\n }\r\n },\r\n\r\n setProxy: function (HTTPProxy) {\r\n Express.HTTPProxy = HTTPProxy;\r\n },\r\n\r\n request: function (query, data) {\r\n var response,\r\n url = Express.params.url + query,\r\n request = new HttpRequest();\r\n\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Authorization: Bearer \' + Express.params.token);\r\n\r\n if (typeof Express.HTTPProxy !== \'undefined\' && Express.HTTPProxy !== \'\') {\r\n request.setProxy(Express.HTTPProxy);\r\n }\r\n\r\n if (typeof data !== \'undefined\') {\r\n data = JSON.stringify(data);\r\n }\r\n\r\n Zabbix.log(4, \'[ Express Webhook ] Sending request: \' + url +\r\n ((typeof data === \'string\') ? (\'\\n\' + data) : \'\'));\r\n\r\n response = request.post(url, data);\r\n\r\n Zabbix.log(4, \'[ Express Webhook ] Received response with status code \' +\r\n request.getStatus() + \'\\n\' + response);\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n Zabbix.log(4, \'[ Express Webhook ] Failed to parse response received from Express\');\r\n response = {};\r\n }\r\n }\r\n\r\n if (response.status !== \'ok\') {\r\n var message = \'Request failed with status code \' + request.getStatus();\r\n\r\n if (typeof response.reason !== \'undefined\') {\r\n message += \': \' + JSON.stringify(response.reason);\r\n }\r\n\r\n throw message + \'. Check debug log for more information.\';\r\n }\r\n\r\n return response.result;\r\n },\r\n\r\n postMessage: function (is_problem) {\r\n var data,\r\n url,\r\n result = {tags: {}},\r\n response;\r\n\r\n if (is_problem) {\r\n data = {\r\n group_chat_id: Express.params.send_to,\r\n notification: {\r\n status: \'ok\',\r\n body: Express.params.message\r\n }\r\n };\r\n url = \'api/v4/botx/notifications/direct\';\r\n }\r\n else {\r\n data = {\r\n reply: {\r\n status: \'ok\',\r\n body: Express.params.message\r\n }\r\n };\r\n url = \'api/v3/botx/events/reply_event\';\r\n\r\n try {\r\n var tags = JSON.parse(Express.params.tags);\r\n }\r\n catch (error) {\r\n throw \'Value of "express_tags" is not JSON. Value: \' + Express.params.tags + \'.\';\r\n }\r\n\r\n tags.forEach(function(tag) {\r\n if (tag.tag === \'__zbx_ex_sync_id_\' + Express.params.send_to) {\r\n data.source_sync_id = tag.value;\r\n }\r\n });\r\n\r\n if (!data.source_sync_id) {\r\n throw \'Cannot update data. sync_id for the provided sender is unknown.\';\r\n }\r\n }\r\n\r\n response = Express.request(url, data);\r\n\r\n if (is_problem && response.sync_id) {\r\n result.tags[\'__zbx_ex_sync_id_\' + Express.params.send_to] = response.sync_id;\r\n\r\n return JSON.stringify(result);\r\n }\r\n else {\r\n return \'OK\';\r\n }\r\n }\r\n};\r\n\r\ntry {\r\n var params = JSON.parse(value),\r\n express = {},\r\n required_params = [\r\n \'express_url\', \'express_send_to\', \'express_message\', \'express_tags\', \'express_token\',\r\n \'event_source\', \'event_value\', \'event_update_status\'\r\n ];\r\n\r\n Object.keys(params)\r\n .forEach(function (key) {\r\n if (key.startsWith(\'express_\')) {\r\n express[key.substring(8)] = params[key];\r\n }\r\n\r\n if (required_params.indexOf(key) !== -1\r\n && (params[key].trim() === \'\' || params[key] === \'{ALERT.SENDTO}\')) {\r\n throw \'Parameter "\' + key + \'" can\\\'t be empty.\';\r\n }\r\n });\r\n\r\n if ([0, 1, 2, 3].indexOf(parseInt(params.event_source)) === -1) {\r\n throw \'Incorrect "event_source" parameter given: \' + params.event_source + \'\\nMust be 0-3.\';\r\n }\r\n\r\n // Forcing event_value and event_update_status for non trigger-based events.\r\n if (params.event_source !== \'0\' ) {\r\n params.event_value = \'1\';\r\n params.event_update_status = \'0\';\r\n }\r\n\r\n if (params.event_value !== \'0\' && params.event_value !== \'1\') {\r\n throw \'Incorrect "event_value" parameter given: \' + params.event_value + \'\\nMust be 0 or 1.\';\r\n }\r\n\r\n // Check {EVENT.UPDATE.STATUS} only for trigger-based events.\r\n if (params.event_update_status !== \'0\' && params.event_update_status !== \'1\' && params.event_source === \'0\') {\r\n throw \'Incorrect "event_update_status" parameter given: \' + params.event_update_status + \'\\nMust be 0 or 1.\';\r\n }\r\n\r\n Express.setParams(express);\r\n Express.setProxy(params.HTTPProxy);\r\n\r\n return Express.postMessage(params.event_value === \'1\' && params.event_update_status === \'0\');\r\n}\r\ncatch (error) {\r\n Zabbix.log(3, \'[ Express Webhook ] ERROR: \' + error);\r\n throw \'Sending failed: \' + error;\r\n}','30s','1','0','','','','0'),
('74','4','GitHub','','','','','','','','25','0','0','0','0','1','3','10s','1','const CLogger = function(serviceName) {\r\n this.serviceName = serviceName;\r\n this.INFO = 4\r\n this.WARN = 3\r\n this.ERROR = 2\r\n this.log = function(level, msg) {\r\n Zabbix.log(level, \'[\' + this.serviceName + \'] \' + msg);\r\n }\r\n}\r\n\r\nconst CWebhook = function(value) {\r\n try {\r\n params = JSON.parse(value);\r\n\r\n if ([\'0\', \'1\', \'2\', \'3\', \'4\'].indexOf(params.event_source) === -1) {\r\n throw \'Incorrect "event_source" parameter given: \' + params.event_source + \'.\\nMust be 0-4.\';\r\n }\r\n\r\n if ([\'0\', \'3\', \'4\'].indexOf(params.event_source) !== -1 && [\'0\', \'1\'].indexOf(params.event_value) === -1) {\r\n throw \'Incorrect "event_value" parameter given: \' + params.event_value + \'.\\nMust be 0 or 1.\';\r\n }\r\n\r\n if ([\'0\', \'3\', \'4\'].indexOf(params.event_source) !== -1) {\r\n if (params.event_source === \'1\' && [\'0\', \'1\', \'2\', \'3\'].indexOf(params.event_value) === -1) {\r\n throw \'Incorrect "event_value" parameter given: \' + params.event_value + \'.\\nMust be 0-3.\';\r\n }\r\n\r\n if (params.event_source === \'0\' && [\'0\', \'1\'].indexOf(params.event_update_status) === -1) {\r\n throw \'Incorrect "event_update_status" parameter given: \' + params.event_update_status + \'.\\nMust be 0 or 1.\';\r\n }\r\n\r\n if (params.event_source === \'4\') {\r\n if ([\'0\', \'1\', \'2\', \'3\', \'4\', \'5\'].indexOf(params.event_update_nseverity) !== -1 && params.event_update_nseverity != params.event_nseverity) {\r\n params.event_nseverity = params.event_update_nseverity;\r\n params.event_severity = params.event_update_severity;\r\n params.event_update_status = \'1\';\r\n }\r\n }\r\n }\r\n\r\n this.runCallback = function(name, params) {\r\n if (typeof this[name] === \'function\') {\r\n return this[name].apply(this, [params]);\r\n }\r\n }\r\n\r\n this.handleEvent = function(source, event) {\r\n const alert = { source: source, event: event };\r\n return [\r\n this.runCallback(\'on\' + source + event, alert),\r\n this.runCallback(\'on\' + event, alert),\r\n this.runCallback(\'onEvent\', alert)\r\n ];\r\n }\r\n\r\n this.handleEventless = function(source) {\r\n const alert = { source: source, event: null };\r\n return [\r\n this.runCallback(\'on\' + source, alert),\r\n this.runCallback(\'onEvent\', alert)\r\n ];\r\n }\r\n\r\n this.run = function() {\r\n var results = [];\r\n if (typeof this.httpProxy === \'string\' && this.httpProxy.trim() !== \'\') {\r\n this.request.setProxy(this.httpProxy);\r\n }\r\n const types = { \'0\': \'Trigger\', \'1\': \'Discovery\', \'2\': \'Autoreg\', \'3\': \'Internal\', \'4\': \'Service\' };\r\n\r\n if ([\'0\', \'3\', \'4\'].indexOf(this.params.event_source) !== -1) {\r\n var event = (this.params.event_update_status === \'1\')\r\n ? \'Update\'\r\n : ((this.params.event_value === \'1\') ? \'Problem\' : \'Resolve\');\r\n\r\n results = this.handleEvent(types[this.params.event_source], event);\r\n }\r\n else if (typeof types[this.params.event_source] !== \'undefined\') {\r\n results = this.handleEventless(types[this.params.event_source]);\r\n }\r\n else {\r\n throw \'Unexpected "event_source": \' + this.params.event_source;\r\n }\r\n\r\n for (idx in results) {\r\n if (typeof results[idx] !== \'undefined\') {\r\n return JSON.stringify(results[idx]);\r\n }\r\n }\r\n }\r\n this.httpProxy = params.http_proxy;\r\n this.params = params;\r\n this.runCallback(\'onCheckParams\', {});\r\n } catch (error) {\r\n throw \'Webhook processing failed: \' + error;\r\n }\r\n}\r\n\r\nconst CParamValidator = {\r\n\r\n isType: function(value, type) {\r\n if (type === \'array\') {\r\n return Array.isArray(value);\r\n }\r\n if (type === \'integer\') {\r\n return CParamValidator.isInteger(value);\r\n }\r\n if (type === \'float\') {\r\n return CParamValidator.isFloat(value);\r\n }\r\n\r\n return (typeof value === type);\r\n },\r\n\r\n isInteger: function(value) {\r\n if (!CParamValidator.ifMatch(value, /^-?\\d+$/)) {\r\n return false;\r\n }\r\n\r\n return !isNaN(parseInt(value));\r\n },\r\n\r\n isFloat: function(value) {\r\n if (!CParamValidator.ifMatch(value, /^-?\\d+\\.\\d+$/)) {\r\n return false;\r\n }\r\n\r\n return !isNaN(parseFloat(value));\r\n },\r\n\r\n isDefined: function(value) {\r\n return !CParamValidator.isType(value, \'undefined\');\r\n },\r\n\r\n isEmpty: function(value) {\r\n if (!CParamValidator.isType(value, \'string\')) {\r\n throw \'Value "\' + value + \'" must be a string to be checked for emptiness.\';\r\n }\r\n\r\n return (value.trim() === \'\');\r\n },\r\n\r\n isMacroSet: function(value, macro) {\r\n if (CParamValidator.isDefined(macro)) {\r\n return !(CParamValidator.ifMatch(value, \'^\\{\' + macro + \'\\}$\'))\r\n }\r\n\r\n return !(CParamValidator.ifMatch(value, \'^\\{[$#]{0,1}[A-Z_\\.]+[\\:]{0,1}["]{0,1}.*["]{0,1}\\}$\') || value === \'*UNKNOWN*\')\r\n },\r\n\r\n withinRange: function(value, min, max) {\r\n if (!CParamValidator.isType(value, \'number\')) {\r\n throw \'Value "\' + value + \'" must be a number to be checked for range.\';\r\n }\r\n if (value < ((CParamValidator.isDefined(min)) ? min : value)\r\n || value > ((CParamValidator.isDefined(max)) ? max : value)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n\r\n inArray: function(value, array) {\r\n if (!CParamValidator.isType(array, \'array\')) {\r\n throw \'The array must be an array to check the value for existing in it.\';\r\n }\r\n\r\n return (array.indexOf((typeof value === \'string\') ? value.toLowerCase() : value) !== -1);\r\n },\r\n\r\n ifMatch: function(value, regex) {\r\n return (new RegExp(regex)).test(value);\r\n },\r\n\r\n match: function(value, regex) {\r\n if (!CParamValidator.isType(value, \'string\')) {\r\n throw \'Value "\' + value + \'" must be a string to be matched with the regular expression.\';\r\n }\r\n\r\n return value.match(new RegExp(regex));\r\n },\r\n\r\n checkURL: function(value) {\r\n if (CParamValidator.isEmpty(value)) {\r\n throw \'URL value "\' + value + \'" must be a non-empty string.\';\r\n }\r\n if (!CParamValidator.ifMatch(value, \'^(http|https):\\/\\/.+\')) {\r\n throw \'URL value "\' + value + \'" must contain a schema.\';\r\n }\r\n\r\n return value.endsWith(\'/\') ? value.slice(0, -1) : value;\r\n },\r\n\r\n check: function(key, rule, params) {\r\n if (!CParamValidator.isDefined(rule.type)) {\r\n throw \'Mandatory attribute "type" has not been defined for parameter "\' + key + \'".\';\r\n }\r\n if (!CParamValidator.isDefined(params[key])) {\r\n throw \'Checked parameter "\' + key + \'" was not found in the list of input parameters.\';\r\n }\r\n var value = params[key],\r\n error_message = null;\r\n switch (rule.type) {\r\n case \'string\':\r\n if (!CParamValidator.isType(value, \'string\')) {\r\n throw \'Value "\' + key + \'" must be a string.\';\r\n }\r\n if (CParamValidator.isEmpty(value)) {\r\n error_message = \'Value "\' + key + \'" must be a non-empty string\';\r\n break;\r\n }\r\n if (CParamValidator.isDefined(rule.len) && value.length < rule.len) {\r\n error_message = \'Value "\' + key + \'" must be a string with a length > \' + rule.len;\r\n }\r\n if (CParamValidator.isDefined(rule.regex) && !CParamValidator.ifMatch(value, rule.regex)) {\r\n error_message = \'Value "\' + key + \'" must match the regular expression "\' + rule.regex + \'"\';\r\n }\r\n if (CParamValidator.isDefined(rule.url) && rule.url === true) {\r\n value = CParamValidator.checkURL(value);\r\n }\r\n break;\r\n case \'integer\':\r\n if (!CParamValidator.isInteger(value)) {\r\n error_message = \'Value "\' + key + \'" must be an integer\';\r\n break;\r\n }\r\n value = parseInt(value);\r\n break;\r\n case \'float\':\r\n if (!CParamValidator.isFloat(value)) {\r\n error_message = \'Value "\' + key + \'" must be a floating-point number\';\r\n break;\r\n }\r\n value = parseFloat(value);\r\n break;\r\n case \'boolean\':\r\n if (CParamValidator.inArray(value, [\'1\', \'true\', \'yes\', \'on\'])) {\r\n value = true;\r\n }\r\n else if (CParamValidator.inArray(value, [\'0\', \'false\', \'no\', \'off\'])) {\r\n value = false;\r\n }\r\n else {\r\n error_message = \'Value "\' + key + \'" must be a boolean-like.\';\r\n }\r\n break;\r\n case \'array\':\r\n try {\r\n value = JSON.parse(value);\r\n } catch (error) {\r\n throw \'Value "\' + key + \'" contains invalid JSON.\';\r\n }\r\n if (!CParamValidator.isType(value, \'array\')) {\r\n error_message = \'Value "\' + key + \'" must be an array.\';\r\n }\r\n if (CParamValidator.isDefined(rule.tags) && rule.tags === true) {\r\n value = value.reduce(function(acc, obj) {\r\n acc[obj.tag] = obj.value || null;\r\n return acc;\r\n }, {});\r\n }\r\n break;\r\n case \'object\':\r\n value = JSON.parse(value);\r\n if (!CParamValidator.isType(value, \'object\')) {\r\n error_message = \'Value "\' + key + \'" must be an object.\';\r\n }\r\n break;\r\n default:\r\n throw \'Unexpected attribute type "\' + rule.type + \'" for value "\' + key + \'". Available: \' +\r\n [\'integer\', \'float\', \'string\', \'boolean\', \'array\', \'object\'].join(\', \');\r\n }\r\n params[key] = value;\r\n if (CParamValidator.inArray(rule.type, [\'integer\', \'float\']) && error_message === null && (CParamValidator.isDefined(rule.min)\r\n || CParamValidator.isDefined(rule.max)) && !CParamValidator.withinRange(value, rule.min, rule.max)) {\r\n error_message = \'Value "\' + key + \'" must be a number \' + ((CParamValidator.isDefined(rule.min) && CParamValidator.isDefined(rule.max))\r\n ? (rule.min + \'..\' + rule.max) : ((CParamValidator.isDefined(rule.min)) ? \'>\' + rule.min : \'<\' + rule.max));\r\n }\r\n else if (CParamValidator.isDefined(rule.array) && !CParamValidator.inArray(value, rule.array)) {\r\n error_message = \'Value "\' + key + \'" must be in the array \' + JSON.stringify(rule.array);\r\n }\r\n else if (CParamValidator.isDefined(rule.macro) && !CParamValidator.isMacroSet(value.toString(), rule.macro)) {\r\n error_message = \'The macro \' + ((CParamValidator.isDefined(rule.macro)) ? \'{\' + rule.macro + \'} \' : \' \') + \'is not set\';\r\n }\r\n if (error_message !== null) {\r\n if (CParamValidator.isDefined(rule.default) && CParamValidator.isType(rule.default, rule.type)) {\r\n params[key] = rule.default;\r\n }\r\n else {\r\n Zabbix.log(4, \'Default value for "\' + key + \'" must be a \' + rule.type + \'. Skipped.\');\r\n throw \'Incorrect value for variable "\' + key + \'". \' + error_message;\r\n }\r\n }\r\n\r\n return this;\r\n },\r\n\r\n validate: function(rules, params) {\r\n if (!CParamValidator.isType(params, \'object\') || CParamValidator.isType(params, \'array\')) {\r\n throw \'Incorrect parameters value. The value must be an object.\';\r\n }\r\n for (var key in rules) {\r\n CParamValidator.check(key, rules[key], params);\r\n }\r\n }\r\n}\r\n\r\nconst CHttpRequest = function(logger) {\r\n this.request = new HttpRequest();\r\n if (typeof logger !== \'object\' || logger === null) {\r\n this.logger = Zabbix;\r\n }\r\n else {\r\n this.logger = logger;\r\n }\r\n\r\n this.clearHeader = function() {\r\n this.request.clearHeader();\r\n }\r\n\r\n this.addHeaders = function(value) {\r\n var headers = [];\r\n\r\n if (typeof value === \'object\' && value !== null) {\r\n if (!Array.isArray(value)) {\r\n Object.keys(value).forEach(function(key) {\r\n headers.push(key + \': \' + value[key]);\r\n });\r\n }\r\n else {\r\n headers = value;\r\n }\r\n }\r\n else if (typeof value === \'string\') {\r\n value.split(\'\\r\\n\').forEach(function(header) {\r\n headers.push(header);\r\n });\r\n }\r\n\r\n for (var idx in headers) {\r\n this.request.addHeader(headers[idx]);\r\n }\r\n }\r\n\r\n this.setProxy = function(proxy) {\r\n this.request.setProxy(proxy);\r\n }\r\n\r\n this.plainRequest = function(method, url, data) {\r\n var resp = null;\r\n method = method.toLowerCase();\r\n this.logger.log(4, \'Sending \' + method + \' request:\' + JSON.stringify(data));\r\n if ([\'get\', \'post\', \'put\', \'patch\', \'delete\', \'trace\'].indexOf(method) !== -1) {\r\n resp = this.request[method](url, data);\r\n }\r\n else if ([\'connect\', \'head\', \'options\'].indexOf(method) !== -1) {\r\n resp = this.request[method](url);\r\n }\r\n else {\r\n throw \'Unexpected method. Method \' + method + \' is not supported.\';\r\n }\r\n this.logger.log(4, \'Response has been received: \' + resp);\r\n\r\n return resp;\r\n }\r\n\r\n this.jsonRequest = function(method, url, data) {\r\n this.addHeaders(\'Content-Type: application/json\');\r\n var resp = this.plainRequest(method, url, JSON.stringify(data));\r\n try {\r\n resp = JSON.parse(resp);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response: not well-formed JSON was received\';\r\n }\r\n\r\n return resp;\r\n }\r\n\r\n this.getStatus = function() {\r\n return this.request.getStatus();\r\n }\r\n}\r\n\r\nconst CWebhookHelper = {\r\n\r\n createProblemURL: function(event_source, zabbix_url, trigger_id, event_id) {\r\n if (event_source === \'0\') {\r\n return zabbix_url + \'/tr_events.php?triggerid=\' + trigger_id + \'&eventid=\' + event_id;\r\n } else if (event_source === \'4\') {\r\n return zabbix_url + \'/zabbix.php?action=service.list\';\r\n }\r\n\r\n return zabbix_url;\r\n },\r\n\r\n};\r\n\r\nvar serviceLogName = \'GitHub Webhook\',\r\n Logger = new CLogger(serviceLogName),\r\n GitHub = CWebhook;\r\n\r\nGitHub.prototype.onCheckParams = function () {\r\n CParamValidator.validate({\r\n alert_message: {type: \'string\'},\r\n alert_subject: {type: \'string\'},\r\n github_api_version: {type: \'string\'},\r\n github_repo: {type: \'string\'},\r\n github_token: {type: \'string\'},\r\n github_url: {type: \'string\', url: true},\r\n github_user_agent: {type: \'string\'},\r\n github_zabbix_event_priority_label_prefix: {type: \'string\', default: \'Zabbix Event Priority: \'},\r\n github_zabbix_event_source_label_prefix: {type: \'string\', default: \'Zabbix Event Source: \'},\r\n github_zabbix_event_status_label_prefix: {type: \'string\', default: \'Zabbix Event Status: \'},\r\n github_zabbix_generic_label: {type: \'string\', default: \'Zabbix GitHub Webhook\'},\r\n zabbix_url: {type: \'string\', url: true}\r\n }, this.params);\r\n\r\n this.request_headers = {\r\n \'User-Agent\': this.params.github_user_agent,\r\n \'Accept\': \'application/vnd.github+json\',\r\n \'X-GitHub-Api-Version\': this.params.github_api_version,\r\n \'Authorization\': \'Bearer \' + this.params.github_token\r\n };\r\n\r\n this.payload_data = {\r\n title: this.params.alert_subject,\r\n labels: [\r\n {\r\n name: this.params.github_zabbix_generic_label\r\n }\r\n ]\r\n };\r\n\r\n this.result = {tags: {}};\r\n};\r\n\r\nfunction checkResponse(response, received_code, required_code, response_field, error_message) {\r\n if (received_code != required_code || !CParamValidator.isDefined(response[response_field])) {\r\n var message = error_message + \' Request failed with status code \' + received_code;\r\n\r\n if (CParamValidator.isDefined(response.message) && Object.keys(response.message).length > 0) {\r\n message += \': \' + response.message;\r\n }\r\n\r\n throw message + \' Check debug log for more information.\';\r\n }\r\n}\r\n\r\nGitHub.prototype.createIssue = function () {\r\n this.payload_data.body = this.params.alert_message + \'\\n\' + CWebhookHelper.createProblemURL(this.params.event_source, this.params.zabbix_url, this.params.trigger_id, this.params.event_id);\r\n\r\n this.request.addHeaders(this.request_headers);\r\n\r\n const response = this.request.jsonRequest(\'POST\', this.params.github_url + \'/repos/\' + this.params.github_repo + \'/issues\', this.payload_data);\r\n\r\n checkResponse(response, this.request.getStatus(), 201, \'number\', \'Cannot create GitHub issue.\');\r\n\r\n return response;\r\n}\r\n\r\nGitHub.prototype.updateIssue = function () {\r\n this.request.addHeaders(this.request_headers);\r\n\r\n const response = this.request.jsonRequest(\'PATCH\', this.params.github_url + \'/repos/\' + this.params.github_repo + \'/issues/\' + this.params.github_issue_number, this.payload_data);\r\n\r\n checkResponse(response, this.request.getStatus(), 200, \'number\', \'Cannot update GitHub issue.\');\r\n\r\n return response;\r\n}\r\n\r\nGitHub.prototype.addIssueComment = function () {\r\n this.payload_data = {\r\n body: this.params.alert_message\r\n };\r\n\r\n this.request.addHeaders(this.request_headers);\r\n\r\n const response = this.request.jsonRequest(\'POST\', this.params.github_url + \'/repos/\' + this.params.github_repo + \'/issues/\' + this.params.github_issue_number + \'/comments\', this.payload_data);\r\n\r\n checkResponse(response, this.request.getStatus(), 201, \'id\', \'Cannot add comment for GitHub issue.\');\r\n\r\n return response;\r\n}\r\n\r\nGitHub.prototype.onProblem = function (alert) {\r\n if (CParamValidator.isMacroSet(this.params.github_issue_number)) {\r\n return this.onUpdate(alert);\r\n }\r\n\r\n Logger.log(Logger.INFO, \'Source: \' + alert.source + \'; Event: \' + alert.event);\r\n\r\n if (this.params.event_source === \'0\') {\r\n CParamValidator.validate({event_id: {type: \'integer\'}, trigger_id: {type: \'integer\'}}, this.params);\r\n }\r\n\r\n this.payload_data.labels.push({name: this.params.github_zabbix_event_source_label_prefix + alert.source});\r\n\r\n this.payload_data.labels.push({name: this.params.github_zabbix_event_status_label_prefix + \'Problem\'});\r\n\r\n if (!CParamValidator.isEmpty(this.params.event_severity) && CParamValidator.isMacroSet(this.params.event_severity, \'EVENT.SEVERITY\')) {\r\n this.payload_data.labels.push({name: this.params.github_zabbix_event_priority_label_prefix + this.params.event_severity});\r\n }\r\n\r\n const response = this.createIssue();\r\n\r\n this.result.tags = {\r\n __zbx_github_issue_number: response.number,\r\n __zbx_github_repo: this.params.github_repo,\r\n __zbx_github_link: response.html_url\r\n };\r\n\r\n return this.result;\r\n}\r\n\r\nGitHub.prototype.onUpdate = function (alert) {\r\n Logger.log(Logger.INFO, \'Source: \' + alert.source + \'; Event: \' + alert.event);\r\n\r\n if (!CParamValidator.isMacroSet(this.params.github_issue_number)) {\r\n throw "Failed to update the existing issue: no issue number was received."\r\n }\r\n\r\n this.payload_data.labels.push({name: this.params.github_zabbix_event_source_label_prefix + alert.source});\r\n\r\n if (this.params.event_value === \'0\') {\r\n this.payload_data.labels.push({name: this.params.github_zabbix_event_status_label_prefix + \'Resolved\'});\r\n } else {\r\n this.payload_data.labels.push({name: this.params.github_zabbix_event_status_label_prefix + \'Problem\'});\r\n }\r\n\r\n if (!CParamValidator.isEmpty(this.params.event_severity) && CParamValidator.isMacroSet(this.params.event_severity, \'EVENT.SEVERITY\')) {\r\n this.payload_data.labels.push({name: this.params.github_zabbix_event_priority_label_prefix + this.params.event_severity});\r\n }\r\n\r\n this.updateIssue();\r\n\r\n this.request.clearHeader();\r\n this.addIssueComment();\r\n\r\n return this.result;\r\n}\r\n\r\nGitHub.prototype.onResolve = function (alert) {\r\n return this.onUpdate(alert);\r\n}\r\n\r\nGitHub.prototype.onDiscovery = function (alert) {\r\n Logger.log(Logger.INFO, \'Source: \' + alert.source + \'; Event: \' + alert.event);\r\n\r\n this.payload_data.labels.push({name: this.params.github_zabbix_event_source_label_prefix + alert.source});\r\n\r\n this.createIssue();\r\n\r\n return this.result;\r\n}\r\n\r\nGitHub.prototype.onAutoreg = function (alert) {\r\n return this.onDiscovery(alert);\r\n}\r\n\r\ntry {\r\n var hook = new GitHub(value);\r\n hook.request = new CHttpRequest(Logger);\r\n return hook.run();\r\n}\r\ncatch (error) {\r\n Logger.log(Logger.WARN, \'notification failed: \' + error);\r\n throw \'Sending failed: \' + error;\r\n}','30s','1','1','{EVENT.TAGS.__zbx_github_link}','Github: Issue {EVENT.TAGS.__zbx_github_issue_number}','This media type integrates your Zabbix installation with GitHub using the Zabbix webhook feature.\r\n\r\nGitHub configuration:\r\n\r\n1. Create an access token.\r\n\r\nOne of the simplest ways to send authenticated requests is to use a personal access token - either a classic or a fine-grained one:\r\nhttps://docs.github.com/en/rest/authentication/authenticating-to-the-rest-api?apiVersion=2022-11-28#authenticating-with-a-personal-access-token\r\n\r\nClassic personal access token\r\n\r\nYou can create a new classic personal access token by following the instructions in the official documentation:\r\nhttps://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-personal-access-token-classic\r\n\r\nThe token user must have a permission to create issues and issue comments in the desired repositories. For webhook to work on private repositories, the "repo" scope must be set in token settings to have full control of private repositories.\r\n\r\nAdditional information about OAuth scopes is available in the official documentation:\r\nhttps://docs.github.com/en/apps/oauth-apps/building-oauth-apps/scopes-for-oauth-apps#available-scopes\r\n\r\nFine-grained personal access token\r\n\r\nAlternatively, you can use a fine-grained personal access token:\r\nhttps://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token\r\n\r\nIn order to use fine-grained tokens to monitor organization-owned repositories, organizations must opt in to fine-grained personal access tokens and set up a personal access token policy:\r\nhttps://docs.github.com/en/organizations/managing-programmatic-access-to-your-organization/setting-a-personal-access-token-policy-for-your-organization\r\n\r\nThe fine-grained token needs to have the following permission set to provide access to the repository issues:\r\n- "Issues" repository permissions (write)\r\n\r\n2. Copy and save the created token somewhere, as it will be shown only once for security reasons.\r\n\r\nZabbix configuration:\r\n\r\n1. Before you can start using Zammad webhook, set up the global macro "{$ZABBIX.URL}":\r\n- In the Zabbix web interface, go to "Administration" → "Macros" section in the dropdown menu in the top left corner.\r\n- Set up the global macro "{$ZABBIX.URL}" which will contain the URL to the Zabbix frontend. The URL should be either an IP address, a fully qualified domain name, or localhost.\r\n- Specifying a protocol is mandatory, whereas the port is optional. Depending on the web server configuration you might also need to append "/zabbix" to the end of URL. Good examples:\r\n - http://zabbix.com\r\n - https://zabbix.lan/zabbix\r\n - http://server.zabbix.lan/\r\n - http://localhost\r\n - http://127.0.0.1:8080\r\n- Bad examples:\r\n - zabbix.com\r\n - http://zabbix/\r\n\r\n2. Set the "github_token" webhook parameter value to the access token that you created previously.\r\n\r\nYou can also adjust the issue labels created by the webhook in the following parameters:\r\n- github_zabbix_event_priority_label_prefix - the prefix for the issue label that displays the Zabbix event priority in the supported event sources. It is set to "Zabbix Event Priority: " by default.\r\n- github_zabbix_event_source_label_prefix - the prefix for the issue label that displays the Zabbix event source. It is set to "Zabbix Event Source: " by default.\r\n- github_zabbix_event_status_label_prefix - the prefix for the issue label that displays the Zabbix event status. It is set to "Zabbix Event Status: " by default.\r\n- github_zabbix_generic_label - the label that is added to all issues created by the webhook. It is set to "Zabbix GitHub Webhook" by default.\r\n\r\nNote that the webhook will reuse the labels with the same name that already exist in the repository (including the color, so it can changed from the default value for new labels in GitHub, if needed). Also, the labels are replaced when the issue is updated, so any user-added labels will be removed.\r\n\r\n4. Create a Zabbix user and add media:\r\n- If you want to create a new user, go to the "Users" → "Users" section, click the "Create user" button in the top right corner. In the "User" tab, fill in all required fields (marked with red asterisks).\r\n- In the "Media" tab, add a new media and select "Zammad" type from the drop-down list. In field "Send to" specify the full repo name (owner/project name) e.g. johndoe/example-project.\r\n- Make sure this user has access to all hosts for which you would like problem notifications to be sent to GitHub.\r\n\r\n5. Great! You can now start using this media type in actions and create GitHub issues!\r\n\r\nYou can find the latest version of this media and additional information in the official Zabbix repository:\r\nhttps://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/github','0'),
('75','4','GLPi','','','','','','','','25','0','0','0','0','1','1','10s','1','const CLogger = function(serviceName) {\r\n this.serviceName = serviceName;\r\n this.INFO = 4\r\n this.WARN = 3\r\n this.ERROR = 2\r\n this.log = function(level, msg) {\r\n Zabbix.log(level, \'[\' + this.serviceName + \'] \' + msg);\r\n }\r\n}\r\n\r\nconst CWebhook = function(value) {\r\n try {\r\n params = JSON.parse(value);\r\n\r\n if ([\'0\', \'1\', \'2\', \'3\', \'4\'].indexOf(params.event_source) === -1) {\r\n throw \'Incorrect "event_source" parameter given: \' + params.event_source + \'.\\nMust be 0-4.\';\r\n }\r\n\r\n if ([\'0\', \'3\', \'4\'].indexOf(params.event_source) !== -1 && [\'0\', \'1\'].indexOf(params.event_value) === -1) {\r\n throw \'Incorrect "event_value" parameter given: \' + params.event_value + \'.\\nMust be 0 or 1.\';\r\n }\r\n\r\n if ([\'0\', \'3\', \'4\'].indexOf(params.event_source) !== -1) {\r\n if (params.event_source === \'1\' && [\'0\', \'1\', \'2\', \'3\'].indexOf(params.event_value) === -1) {\r\n throw \'Incorrect "event_value" parameter given: \' + params.event_value + \'.\\nMust be 0-3.\';\r\n }\r\n\r\n if (params.event_source === \'0\' && [\'0\', \'1\'].indexOf(params.event_update_status) === -1) {\r\n throw \'Incorrect "event_update_status" parameter given: \' + params.event_update_status + \'.\\nMust be 0 or 1.\';\r\n }\r\n\r\n if (params.event_source === \'4\') {\r\n if ([\'0\', \'1\', \'2\', \'3\', \'4\', \'5\'].indexOf(params.event_update_nseverity) !== -1 && params.event_update_nseverity != params.event_nseverity) {\r\n params.event_nseverity = params.event_update_nseverity;\r\n params.event_severity = params.event_update_severity;\r\n params.event_update_status = \'1\';\r\n }\r\n }\r\n }\r\n\r\n this.runCallback = function(name, params) {\r\n if (typeof this[name] === \'function\') {\r\n return this[name].apply(this, [params]);\r\n }\r\n }\r\n\r\n this.handleEvent = function(source, event) {\r\n const alert = { source: source, event: event };\r\n return [\r\n this.runCallback(\'on\' + source + event, alert),\r\n this.runCallback(\'on\' + event, alert),\r\n this.runCallback(\'onEvent\', alert)\r\n ];\r\n }\r\n\r\n this.handleEventless = function(source) {\r\n const alert = { source: source, event: null };\r\n return [\r\n this.runCallback(\'on\' + source, alert),\r\n this.runCallback(\'onEvent\', alert)\r\n ];\r\n }\r\n\r\n this.run = function() {\r\n var results = [];\r\n if (typeof this.httpProxy === \'string\' && this.httpProxy.trim() !== \'\') {\r\n this.request.setProxy(this.httpProxy);\r\n }\r\n const types = { \'0\': \'Trigger\', \'1\': \'Discovery\', \'2\': \'Autoreg\', \'3\': \'Internal\', \'4\': \'Service\' };\r\n\r\n if ([\'0\', \'3\', \'4\'].indexOf(this.params.event_source) !== -1) {\r\n var event = (this.params.event_update_status === \'1\')\r\n ? \'Update\'\r\n : ((this.params.event_value === \'1\') ? \'Problem\' : \'Resolve\');\r\n\r\n results = this.handleEvent(types[this.params.event_source], event);\r\n }\r\n else if (typeof types[this.params.event_source] !== \'undefined\') {\r\n results = this.handleEventless(types[this.params.event_source]);\r\n }\r\n else {\r\n throw \'Unexpected "event_source": \' + this.params.event_source;\r\n }\r\n\r\n for (idx in results) {\r\n if (typeof results[idx] !== \'undefined\') {\r\n return JSON.stringify(results[idx]);\r\n }\r\n }\r\n }\r\n this.httpProxy = params.http_proxy;\r\n this.params = params;\r\n this.runCallback(\'onCheckParams\', {});\r\n } catch (error) {\r\n throw \'Webhook processing failed: \' + error;\r\n }\r\n}\r\n\r\nconst CParamValidator = {\r\n\r\n isType: function(value, type) {\r\n if (type === \'array\') {\r\n return Array.isArray(value);\r\n }\r\n if (type === \'integer\') {\r\n return CParamValidator.isInteger(value);\r\n }\r\n if (type === \'float\') {\r\n return CParamValidator.isFloat(value);\r\n }\r\n\r\n return (typeof value === type);\r\n },\r\n\r\n isInteger: function(value) {\r\n if (!CParamValidator.ifMatch(value, /^-?\\d+$/)) {\r\n return false;\r\n }\r\n\r\n return !isNaN(parseInt(value));\r\n },\r\n\r\n isFloat: function(value) {\r\n if (!CParamValidator.ifMatch(value, /^-?\\d+\\.\\d+$/)) {\r\n return false;\r\n }\r\n\r\n return !isNaN(parseFloat(value));\r\n },\r\n\r\n isDefined: function(value) {\r\n return !CParamValidator.isType(value, \'undefined\');\r\n },\r\n\r\n isEmpty: function(value) {\r\n if (!CParamValidator.isType(value, \'string\')) {\r\n throw \'Value "\' + value + \'" must be a string to be checked for emptiness.\';\r\n }\r\n\r\n return (value.trim() === \'\');\r\n },\r\n\r\n isMacroSet: function(value, macro) {\r\n if (CParamValidator.isDefined(macro)) {\r\n return !(CParamValidator.ifMatch(value, \'^\\{\' + macro + \'\\}$\'))\r\n }\r\n\r\n return !(CParamValidator.ifMatch(value, \'^\\{[$#]{0,1}[A-Z_\\.]+[\\:]{0,1}["]{0,1}.*["]{0,1}\\}$\') || value === \'*UNKNOWN*\')\r\n },\r\n\r\n withinRange: function(value, min, max) {\r\n if (!CParamValidator.isType(value, \'number\')) {\r\n throw \'Value "\' + value + \'" must be a number to be checked for range.\';\r\n }\r\n if (value < ((CParamValidator.isDefined(min)) ? min : value)\r\n || value > ((CParamValidator.isDefined(max)) ? max : value)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n\r\n inArray: function(value, array) {\r\n if (!CParamValidator.isType(array, \'array\')) {\r\n throw \'The array must be an array to check the value for existing in it.\';\r\n }\r\n\r\n return (array.indexOf((typeof value === \'string\') ? value.toLowerCase() : value) !== -1);\r\n },\r\n\r\n ifMatch: function(value, regex) {\r\n return (new RegExp(regex)).test(value);\r\n },\r\n\r\n match: function(value, regex) {\r\n if (!CParamValidator.isType(value, \'string\')) {\r\n throw \'Value "\' + value + \'" must be a string to be matched with the regular expression.\';\r\n }\r\n\r\n return value.match(new RegExp(regex));\r\n },\r\n\r\n checkURL: function(value) {\r\n if (CParamValidator.isEmpty(value)) {\r\n throw \'URL value "\' + value + \'" must be a non-empty string.\';\r\n }\r\n if (!CParamValidator.ifMatch(value, \'^(http|https):\\/\\/.+\')) {\r\n throw \'URL value "\' + value + \'" must contain a schema.\';\r\n }\r\n\r\n return value.endsWith(\'/\') ? value.slice(0, -1) : value;\r\n },\r\n\r\n check: function(key, rule, params) {\r\n if (!CParamValidator.isDefined(rule.type)) {\r\n throw \'Mandatory attribute "type" has not been defined for parameter "\' + key + \'".\';\r\n }\r\n if (!CParamValidator.isDefined(params[key])) {\r\n throw \'Checked parameter "\' + key + \'" was not found in the list of input parameters.\';\r\n }\r\n var value = params[key],\r\n error_message = null;\r\n switch (rule.type) {\r\n case \'string\':\r\n if (!CParamValidator.isType(value, \'string\')) {\r\n throw \'Value "\' + key + \'" must be a string.\';\r\n }\r\n if (CParamValidator.isEmpty(value)) {\r\n error_message = \'Value "\' + key + \'" must be a non-empty string\';\r\n break;\r\n }\r\n if (CParamValidator.isDefined(rule.len) && value.length < rule.len) {\r\n error_message = \'Value "\' + key + \'" must be a string with a length > \' + rule.len;\r\n }\r\n if (CParamValidator.isDefined(rule.regex) && !CParamValidator.ifMatch(value, rule.regex)) {\r\n error_message = \'Value "\' + key + \'" must match the regular expression "\' + rule.regex + \'"\';\r\n }\r\n if (CParamValidator.isDefined(rule.url) && rule.url === true) {\r\n value = CParamValidator.checkURL(value);\r\n }\r\n break;\r\n case \'integer\':\r\n if (!CParamValidator.isInteger(value)) {\r\n error_message = \'Value "\' + key + \'" must be an integer\';\r\n break;\r\n }\r\n value = parseInt(value);\r\n break;\r\n case \'float\':\r\n if (!CParamValidator.isFloat(value)) {\r\n error_message = \'Value "\' + key + \'" must be a floating-point number\';\r\n break;\r\n }\r\n value = parseFloat(value);\r\n break;\r\n case \'boolean\':\r\n if (CParamValidator.inArray(value, [\'1\', \'true\', \'yes\', \'on\'])) {\r\n value = true;\r\n }\r\n else if (CParamValidator.inArray(value, [\'0\', \'false\', \'no\', \'off\'])) {\r\n value = false;\r\n }\r\n else {\r\n error_message = \'Value "\' + key + \'" must be a boolean-like.\';\r\n }\r\n break;\r\n case \'array\':\r\n try {\r\n value = JSON.parse(value);\r\n } catch (error) {\r\n throw \'Value "\' + key + \'" contains invalid JSON.\';\r\n }\r\n if (!CParamValidator.isType(value, \'array\')) {\r\n error_message = \'Value "\' + key + \'" must be an array.\';\r\n }\r\n if (CParamValidator.isDefined(rule.tags) && rule.tags === true) {\r\n value = value.reduce(function(acc, obj) {\r\n acc[obj.tag] = obj.value || null;\r\n return acc;\r\n }, {});\r\n }\r\n break;\r\n case \'object\':\r\n value = JSON.parse(value);\r\n if (!CParamValidator.isType(value, \'object\')) {\r\n error_message = \'Value "\' + key + \'" must be an object.\';\r\n }\r\n break;\r\n default:\r\n throw \'Unexpected attribute type "\' + rule.type + \'" for value "\' + key + \'". Available: \' +\r\n [\'integer\', \'float\', \'string\', \'boolean\', \'array\', \'object\'].join(\', \');\r\n }\r\n params[key] = value;\r\n if (CParamValidator.inArray(rule.type, [\'integer\', \'float\']) && error_message === null && (CParamValidator.isDefined(rule.min)\r\n || CParamValidator.isDefined(rule.max)) && !CParamValidator.withinRange(value, rule.min, rule.max)) {\r\n error_message = \'Value "\' + key + \'" must be a number \' + ((CParamValidator.isDefined(rule.min) && CParamValidator.isDefined(rule.max))\r\n ? (rule.min + \'..\' + rule.max) : ((CParamValidator.isDefined(rule.min)) ? \'>\' + rule.min : \'<\' + rule.max));\r\n }\r\n else if (CParamValidator.isDefined(rule.array) && !CParamValidator.inArray(value, rule.array)) {\r\n error_message = \'Value "\' + key + \'" must be in the array \' + JSON.stringify(rule.array);\r\n }\r\n else if (CParamValidator.isDefined(rule.macro) && !CParamValidator.isMacroSet(value.toString(), rule.macro)) {\r\n error_message = \'The macro \' + ((CParamValidator.isDefined(rule.macro)) ? \'{\' + rule.macro + \'} \' : \' \') + \'is not set\';\r\n }\r\n if (error_message !== null) {\r\n if (CParamValidator.isDefined(rule.default) && CParamValidator.isType(rule.default, rule.type)) {\r\n params[key] = rule.default;\r\n }\r\n else {\r\n Zabbix.log(4, \'Default value for "\' + key + \'" must be a \' + rule.type + \'. Skipped.\');\r\n throw \'Incorrect value for variable "\' + key + \'". \' + error_message;\r\n }\r\n }\r\n\r\n return this;\r\n },\r\n\r\n validate: function(rules, params) {\r\n if (!CParamValidator.isType(params, \'object\') || CParamValidator.isType(params, \'array\')) {\r\n throw \'Incorrect parameters value. The value must be an object.\';\r\n }\r\n for (var key in rules) {\r\n CParamValidator.check(key, rules[key], params);\r\n }\r\n }\r\n}\r\n\r\nconst CHttpRequest = function(logger) {\r\n this.request = new HttpRequest();\r\n if (typeof logger !== \'object\' || logger === null) {\r\n this.logger = Zabbix;\r\n }\r\n else {\r\n this.logger = logger;\r\n }\r\n\r\n this.clearHeader = function() {\r\n this.request.clearHeader();\r\n }\r\n\r\n this.addHeaders = function(value) {\r\n var headers = [];\r\n\r\n if (typeof value === \'object\' && value !== null) {\r\n if (!Array.isArray(value)) {\r\n Object.keys(value).forEach(function(key) {\r\n headers.push(key + \': \' + value[key]);\r\n });\r\n }\r\n else {\r\n headers = value;\r\n }\r\n }\r\n else if (typeof value === \'string\') {\r\n value.split(\'\\r\\n\').forEach(function(header) {\r\n headers.push(header);\r\n });\r\n }\r\n\r\n for (var idx in headers) {\r\n this.request.addHeader(headers[idx]);\r\n }\r\n }\r\n\r\n this.setProxy = function(proxy) {\r\n this.request.setProxy(proxy);\r\n }\r\n\r\n this.plainRequest = function(method, url, data) {\r\n var resp = null;\r\n method = method.toLowerCase();\r\n this.logger.log(4, \'Sending \' + method + \' request:\' + JSON.stringify(data));\r\n if ([\'get\', \'post\', \'put\', \'patch\', \'delete\', \'trace\'].indexOf(method) !== -1) {\r\n resp = this.request[method](url, data);\r\n }\r\n else if ([\'connect\', \'head\', \'options\'].indexOf(method) !== -1) {\r\n resp = this.request[method](url);\r\n }\r\n else {\r\n throw \'Unexpected method. Method \' + method + \' is not supported.\';\r\n }\r\n this.logger.log(4, \'Response has been received: \' + resp);\r\n\r\n return resp;\r\n }\r\n\r\n this.jsonRequest = function(method, url, data) {\r\n this.addHeaders(\'Content-Type: application/json\');\r\n var resp = this.plainRequest(method, url, JSON.stringify(data));\r\n try {\r\n resp = JSON.parse(resp);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response: not well-formed JSON was received\';\r\n }\r\n\r\n return resp;\r\n }\r\n\r\n this.getStatus = function() {\r\n return this.request.getStatus();\r\n }\r\n}\r\n\r\nconst CWebhookHelper = {\r\n\r\n createProblemURL: function(event_source, zabbix_url, trigger_id, event_id) {\r\n if (event_source === \'0\') {\r\n return zabbix_url + \'/tr_events.php?triggerid=\' + trigger_id + \'&eventid=\' + event_id;\r\n } else if (event_source === \'4\') {\r\n return zabbix_url + \'/zabbix.php?action=service.list\';\r\n }\r\n\r\n return zabbix_url;\r\n },\r\n\r\n};\r\n\r\nconst serviceLogName = \'GLPi Webhook\',\r\n Logger = new CLogger(serviceLogName),\r\n GLPi = CWebhook;\r\n\r\nGLPi.prototype.onCheckParams = function () {\r\n CParamValidator.validate({\r\n alert_message: { type: \'string\' },\r\n alert_subject: { type: \'string\' },\r\n zabbix_url: { type: \'string\', url: true },\r\n glpi_url: { type: \'string\', url: true },\r\n glpi_user_token: { type: \'string\' }\r\n }, this.params);\r\n\r\n this.params.use_app_token = false;\r\n\r\n if (CParamValidator.isDefined(this.params.glpi_app_token) && !CParamValidator.isEmpty(this.params.glpi_app_token)) {\r\n this.params.use_app_token = true;\r\n }\r\n\r\n if (this.params.event_source === \'0\') {\r\n CParamValidator.validate({ trigger_id: { type: \'integer\' }, event_id: { type: \'integer\' } }, this.params);\r\n this.params.zabbix_url = CWebhookHelper.createProblemURL(this.params.event_source, this.params.zabbix_url, this.params.trigger_id, this.params.event_id);\r\n }\r\n\r\n if (params.event_value != \'0\' && CParamValidator.isMacroSet(this.params.glpi_problem_id)) {\r\n this.params.event_update_status = \'1\';\r\n }\r\n\r\n this.data = {\r\n input: {\r\n name: this.params.alert_subject,\r\n urgency: (this.params.event_nseverity = isNaN(Number(this.params.event_nseverity)) ? 2 : this.params.event_nseverity)\r\n }\r\n };\r\n\r\n this.dataFollowup = {\r\n input: {\r\n items_id: this.params.glpi_problem_id,\r\n itemtype: \'Problem\',\r\n content: this.params.alert_message + \'
Link to problem in Zabbix\',\r\n }\r\n };\r\n\r\n this.result = { tags: {} };\r\n}\r\n\r\nGLPi.prototype.getAuthToken = function () {\r\n\r\n this.request.addHeaders(\'Authorization: user_token \' + this.params.glpi_user_token);\r\n if (this.params.use_app_token) {\r\n this.request.addHeaders(\'App-Token: \' + this.params.glpi_app_token);\r\n }\r\n var response = this.request.jsonRequest(\'post\', this.params.glpi_url + \'/apirest.php/initSession\');\r\n\r\n if ((this.request.getStatus() !== 200 && this.request.getStatus() !== 201)) {\r\n Logger.log(Logger.INFO, \'HTTP code: \' + this.request.getStatus());\r\n if (CParamValidator.isType(response.description, \'string\')) {\r\n throw response.description;\r\n }\r\n else {\r\n Logger.log(Logger.INFO, \'Request not successful. Received response: \' + JSON.stringify(response));\r\n throw \'Unknown INFO. Check debug log for more information.\';\r\n }\r\n }\r\n if (!CParamValidator.isType(response.session_token, \'string\') || CParamValidator.isEmpty(response.session_token)) {\r\n Logger.log(Logger.INFO, \'Check getting GLPi sessionToken: \' + response.session_token);\r\n throw \'Required GLPi sessionToken is not received.\';\r\n }\r\n\r\n return response.session_token;\r\n}\r\n\r\nGLPi.prototype.sendRequest = function (method, path, data) {\r\n\r\n this.request.clearHeader();\r\n this.request.addHeaders(\'Session-Token:\' + this.params.authToken);\r\n if (this.params.use_app_token) {\r\n this.request.addHeaders(\'App-Token: \' + this.params.glpi_app_token);\r\n }\r\n var response = this.request.jsonRequest(method, this.params.glpi_url + path, data);\r\n\r\n if ((this.request.getStatus() !== 200 && this.request.getStatus() !== 201)) {\r\n Logger.log(Logger.INFO, \'HTTP code: \' + this.request.getStatus());\r\n if (CParamValidator.isType(response.description, \'string\')) {\r\n throw response.description;\r\n }\r\n else {\r\n Logger.log(Logger.INFO, \'Request not successful. Received response: \' + JSON.stringify(response));\r\n throw \'Unknown INFO. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n return response;\r\n}\r\n\r\nGLPi.prototype.createProblem = function (status) {\r\n this.data.input.content = this.params.alert_message + \'
Link to problem in Zabbix\';\r\n\r\n if (CParamValidator.isDefined(status)) {\r\n this.data.input.status = status;\r\n }\r\n\r\n var response = this.sendRequest(\'post\', \'/apirest.php/Problem/\', this.data);\r\n\r\n if (!CParamValidator.isDefined(response.id)) {\r\n throw \'Cannot create GPLi problem. Check debug log for more information.\';\r\n }\r\n\r\n return response.id\r\n}\r\n\r\nGLPi.prototype.updateProblem = function (status) {\r\n CParamValidator.validate({ glpi_problem_id: { type: \'string\' } }, this.params);\r\n this.data.id = this.params.glpi_problem_id;\r\n\r\n if (CParamValidator.isDefined(status)) {\r\n this.data.input.status = status;\r\n }\r\n\r\n this.sendRequest(\'put\', \'/apirest.php/Problem/\' + this.params.glpi_problem_id, this.data);\r\n this.sendRequest(\'post\', \'/apirest.php/Problem/\' + this.params.glpi_problem_id + \'/ITILFollowup\', this.dataFollowup);\r\n}\r\n\r\nGLPi.prototype.onProblem = function (alert) {\r\n Logger.log(Logger.INFO, \'Source: \' + alert.source + \'; Event: \' + alert.event);\r\n const problem_id = this.createProblem(1)\r\n\r\n this.result.tags.__zbx_glpi_problem_id = problem_id;\r\n this.result.tags.__zbx_glpi_link = this.params.glpi_url + \'/front/problem.form.php?id=\' + problem_id;\r\n\r\n return this.result;\r\n}\r\n\r\nGLPi.prototype.onUpdate = function (alert) {\r\n Logger.log(Logger.INFO, \'Source: \' + alert.source + \'; Event: \' + alert.event);\r\n this.updateProblem();\r\n\r\n return this.result;\r\n}\r\n\r\nGLPi.prototype.onResolve = function (alert) {\r\n Logger.log(Logger.INFO, \'Source: \' + alert.source + \'; Event: \' + alert.event);\r\n this.updateProblem(5);\r\n\r\n return this.result;\r\n}\r\n\r\nGLPi.prototype.onDiscovery = function () {\r\n return this.createProblem();\r\n}\r\n\r\nGLPi.prototype.onAutoreg = function () {\r\n return this.createProblem();\r\n}\r\n\r\ntry {\r\n var hook = new GLPi(value);\r\n hook.request = new CHttpRequest(Logger);\r\n hook.params.authToken = hook.getAuthToken();\r\n return hook.run();\r\n}\r\ncatch (error) {\r\n Logger.log(Logger.WARN, \'notification failed: \' + error);\r\n throw \'Sending failed: \' + error;\r\n}','30s','1','1','{EVENT.TAGS.__zbx_glpi_link}','GLPi: Problem {EVENT.TAGS.__zbx_glpi_problem_id}','This media type integrates your Zabbix installation with your GLPi installation using the Zabbix webhook feature.\r\n\r\nGLPi configuration:\r\n\r\n1. Enable access to the GLPi REST API:\r\n- In the GLPi web interface, go to "Setup" → "General" → "API".\r\n- Set the "Enable Rest API" and "Enable Rest API" options to "Yes" and click the "Save" button.\r\n\r\n2. Add a new API client:\r\n- Click the "Add API client" button.\r\n- Specify the API client name and set the "Active" option to "Yes".\r\n- For security reasons, you may want to restrict the API client to the IP address of Zabbix server and/or create an additional application token (will be generated by default; you can uncheck the "Regenerate" checkbox if you don\'t want to use it).\r\n- Click the "Add" button.\r\n- If you\'ve opted to create an application token, open the settings of the created API client, and then copy and save the generated application token.\r\n\r\n3. Create a new user profile with permissions to create problems and followups (alternatively, you can use an existing profile with sufficient privileges):\r\n- Go to "Administration" → "Profiles" and click the "Add" button on the top of the page.\r\n- Specify the profile name and set the "Profile\'s Interface" option to "Standard Interface", and then click the "Add" button.\r\n- Open the created profile and click the "Assistance" tab.\r\n- Set the "Add followup (requester)" permission for the "Followups" line in the "Followups/Tasks" section.\r\n- Set the "Update", "Create", and "See all" permissions in the "Problems" section.\r\n- Click the "Save" button.\r\n\r\n4. Create a new user:\r\n- Go to "Administration" → "Users" and click the "Add User" button on the top of the page.\r\n- Specify the user login and set the "Profiles" option to the profile that you created in the previous step (or any other existing profile with permissions to create problems and followups).\r\n- Click the "Add" button.\r\n- Open the profile of the created user and check the "Regenerate" checkbox of the "API token" option; click "Save".\r\n- Copy and save the generated user API token.\r\n\r\nZabbix configuration:\r\n\r\n1. Before you can start using the GLPi webhook, set the global macro "{$ZABBIX.URL}":\r\n- In the Zabbix web interface, go to "Administration" → "Macros" in the top-left drop-down menu.\r\n- Set the global macro "{$ZABBIX.URL}" to the URL of the Zabbix frontend. The URL should be either an IP address, a fully qualified domain name, or localhost.\r\n- Specifying a protocol is mandatory, whereas the port is optional. Depending on the web server configuration, you might also need to append "/zabbix" to the end of URL. Good examples:\r\n - http://zabbix.com\r\n - https://zabbix.lan/zabbix\r\n - http://server.zabbix.lan/\r\n - http://localhost\r\n - http://127.0.0.1:8080\r\n- Bad examples:\r\n - zabbix.com\r\n - http://zabbix/\r\n\r\n2. Set the following webhook parameters:\r\n- glpi_app_token - if you\'ve opted to use an application token during the creation of API client, specify it here; otherwise leave it empty\r\n- glpi_url - the frontend URL of your GLPi installation\r\n- glpi_user_token - the user token that was generated during creation of GLPi user\r\n\r\n3. Click the "Enabled" checkbox to enable the media type and click the "Update" button to save the webhook settings.\r\n\r\n4. Create a Zabbix user and add media:\r\n- To create a new user, go to the "Users" → "Users" section, click the "Create user" button in the top right corner. In the "User" tab, fill in all required fields (marked with red asterisks).\r\n- In the "Media" tab, click "Add" and select the type "GLPi" from the drop-down list. Add any value in the "Send to" field: it is not used in the webhook, but is required.\r\n- Make sure this user has access to all hosts for which you would like problem notifications to be sent to GLPi.\r\n\r\n5. Done! You can now start using this media type in actions and create problem items in GLPi.\r\n\r\nYou can find the latest version of this media and additional information in the official Zabbix repository:\r\nhttps://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/glpi','0'),
('76','4','iLert','','','','','','','','25','0','0','0','0','1','3','10s','1','try {\r\n var result = { tags: {} },\r\n params = JSON.parse(value),\r\n req = new HttpRequest(),\r\n resp = \'\';\r\n\r\n if (typeof params.HTTPProxy === \'string\' && params.HTTPProxy.trim() !== \'\') {\r\n req.setProxy(params.HTTPProxy);\r\n }\r\n var alertSourceKey = params[\'.ILERT.ALERT.SOURCE.KEY\'];\r\n if (!alertSourceKey || (typeof alertSourceKey === \'string\' && alertSourceKey.trim() === \'\')) {\r\n throw \'incorrect value for variable "ILERT.ALERT.SOURCE.KEY". The value must be a non-empty string.\';\r\n }\r\n delete params[\'.ILERT.ALERT.SOURCE.KEY\'];\r\n \r\n var ilertApiBaseURL = "https://api.ilert.com";\r\n var reqURL = encodeURI(ilertApiBaseURL + "/api/v1/events/zabbix-mt/" + alertSourceKey)\r\n\r\n var incidentKey = "zabbix-" + params[\'EVENT.ID\'];\r\n var incidentViewURL = ilertApiBaseURL + "/api/v1/incidents/resolve-ik/" + alertSourceKey + "/" + incidentKey;\r\n\r\n req.addHeader(\'Accept: application/json\');\r\n req.addHeader(\'Content-Type: application/json\');\r\n\r\n Zabbix.log(4, \'[iLert Webhook] Sending request:\' + JSON.stringify(params));\r\n resp = req.post(reqURL, JSON.stringify(params));\r\n Zabbix.log(4, \'[iLert Webhook] Receiving response:\' + resp);\r\n\r\n try {\r\n resp = JSON.parse(resp);\r\n }\r\n catch (error) {\r\n throw \'incorrect response. iLert returned a non-JSON object.\';\r\n }\r\n\r\n if (req.getStatus() == 200) {\r\n result.tags.__ilert_incident_url = incidentViewURL;\r\n return JSON.stringify(result);\r\n }\r\n\r\n if (req.getStatus() == 400 && typeof resp === \'object\' && typeof resp.code === \'string\') {\r\n if (resp.code === \'NO_OPEN_INCIDENT_WITH_KEY\') {\r\n return JSON.stringify(result);\r\n }\r\n if (resp.code === \'INCIDENT_ALREADY_ACCEPTED\') {\r\n result.tags.__ilert_incident_url = incidentViewURL;\r\n return JSON.stringify(result);\r\n }\r\n }\r\n\r\n if (typeof resp === \'object\' && typeof resp.message === \'string\') {\r\n throw resp.message;\r\n }\r\n else {\r\n throw \'Unknown error.\';\r\n }\r\n}\r\ncatch (error) {\r\n Zabbix.log(3, \'[iLert Webhook] Notification failed : \' + error);\r\n throw \'iLert notification failed : \' + error;\r\n}','30s','1','1','{EVENT.TAGS.__ilert_incident_url}','iLert incident','Please refer to https://docs.ilert.com/integrations/zabbix/native \r\n \r\nSet global macro {$ZABBIX.URL} with your Zabbix server URL.\r\nAdd a dedicated user with the media type "iLert". You can also rewrite the incident summary via ".ILERT.INCIDENT.SUMMARY" parameter or leave it empty to use the standard pattern.','0'),
('77','4','iTop','','','','','','','','25','0','0','0','0','1','3','10s','1','var Itop = {\r\n params: {},\r\n\r\n setParams: function (params) {\r\n if (typeof params !== \'object\') {\r\n return;\r\n }\r\n\r\n if (params.log !== \'private_log\' && params.log !== \'public_log\') {\r\n throw \'Incorrect "itop_log" parameter given: \' + params.log + \'\\nMust be "private_log" or "public_log".\';\r\n }\r\n\r\n Itop.params = params;\r\n if (typeof Itop.params.url === \'string\') {\r\n if (!Itop.params.url.endsWith(\'/\')) {\r\n Itop.params.url += \'/\';\r\n }\r\n\r\n Itop.params.url += \'webservices/rest.php?version=\' + encodeURIComponent(Itop.params.api_version);\r\n }\r\n },\r\n\r\n setProxy: function (HTTPProxy) {\r\n Itop.HTTPProxy = HTTPProxy;\r\n },\r\n\r\n setCreatePayload: function () {\r\n json_data.operation = \'core/create\';\r\n json_data.fields.org_id = Itop.params.organization_id;\r\n json_data.fields.title = params.alert_subject;\r\n json_data.fields.description = params.alert_message.replace(\'<\', \'<\')\r\n .replace(\'>\', \'>\')\r\n .replace(/(?:\\r\\n|\\r|\\n)/g, \'
\');\r\n },\r\n\r\n setUpdatePayload: function () {\r\n json_data.operation = \'core/update\';\r\n json_data.key = Itop.params.id;\r\n json_data.fields.title = params.alert_subject;\r\n json_data.fields[Itop.params.log] = {\r\n add_item: {\r\n message: params.alert_subject + \'\\n\' + params.alert_message,\r\n format: \'text\'\r\n }\r\n };\r\n },\r\n\r\n request: function (data) {\r\n [\'url\', \'user\', \'password\', \'organization_id\', \'class\', \'api_version\', \'id\'].forEach(function (field) {\r\n if (typeof Itop.params !== \'object\' || typeof Itop.params[field] === \'undefined\'\r\n || Itop.params[field] === \'\' ) {\r\n throw \'Required Itop param is not set: "itop_\' + field + \'".\';\r\n }\r\n });\r\n\r\n var response,\r\n url = Itop.params.url,\r\n request = new HttpRequest(),\r\n object;\r\n\r\n request.addHeader(\'Content-Type: multipart/form-data\');\r\n request.addHeader(\'Authorization: Basic \' + btoa(Itop.params.user + \':\' + Itop.params.password));\r\n\r\n if (Itop.HTTPProxy) {\r\n request.setProxy(Itop.HTTPProxy);\r\n }\r\n\r\n if (typeof data !== \'undefined\') {\r\n data = JSON.stringify(data);\r\n }\r\n\r\n Zabbix.log(4, \'[ iTop Webhook ] Sending request: \' + url + \'&json_data=\' + data);\r\n\r\n response = request.post(url + \'&json_data=\' + encodeURIComponent(data));\r\n\r\n Zabbix.log(4, \'[ iTop Webhook ] Received response with status code \' + request.getStatus() + \'\\n\' + response);\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n Zabbix.log(4, \'[ iTop Webhook ] Failed to parse response received from iTop\');\r\n throw \'Failed to parse response received from iTop.\\nRequest status code \' +\r\n request.getStatus() + \'. Check debug log for more information.\';\r\n }\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n throw \'Request failed with status code \' + request.getStatus() + \'. Check debug log for more information.\';\r\n }\r\n else if (typeof response.code !== \'undefined\' && response.code !== 0) {\r\n throw \'Request failed with iTop code \' + response.code + \': \' +\r\n JSON.stringify(response.message) + \'. Check debug log for more information.\';\r\n }\r\n else {\r\n Object.keys(response.objects)\r\n .forEach(function (key) {\r\n object = response.objects[key];\r\n });\r\n \r\n return {\r\n status: request.getStatus(),\r\n response: object.fields\r\n };\r\n }\r\n }\r\n};\r\n\r\ntry {\r\n var params = JSON.parse(value),\r\n json_data = {},\r\n itop_params = {},\r\n result = {tags: {}},\r\n required_params = [\r\n \'alert_subject\', \'summary\', \'event_recovery_value\',\r\n \'event_source\', \'event_value\', \'action_name\'\r\n ];\r\n\r\n Object.keys(params)\r\n .forEach(function (key) {\r\n if (key.startsWith(\'itop_\')) {\r\n itop_params[key.substring(5)] = params[key];\r\n }\r\n else if (required_params.indexOf(key) !== -1 && params[key] === \'\') {\r\n throw \'Parameter "\' + key + \'" can\\\'t be empty.\';\r\n }\r\n });\r\n\r\n if ([0, 1, 2, 3].indexOf(parseInt(params.event_source)) === -1) {\r\n throw \'Incorrect "event_source" parameter given: \' + params.event_source + \'\\nMust be 0-3.\';\r\n }\r\n\r\n // Check {EVENT.VALUE} for trigger-based and internal events.\r\n if (params.event_value !== \'0\' && params.event_value !== \'1\'\r\n && (params.event_source === \'0\' || params.event_source === \'3\')) {\r\n throw \'Incorrect "event_value" parameter given: \' + params.event_value + \'\\nMust be 0 or 1.\';\r\n }\r\n\r\n // Check {EVENT.UPDATE.STATUS} only for trigger-based events.\r\n if (params.event_update_status !== \'0\' && params.event_update_status !== \'1\' && params.event_source === \'0\') {\r\n throw \'Incorrect "event_update_status" parameter given: \' + params.event_update_status + \'\\nMust be 0 or 1.\';\r\n }\r\n\r\n if (params.event_source !== \'0\' && params.event_recovery_value === \'0\') {\r\n throw \'Recovery operations are supported only for trigger-based actions.\';\r\n }\r\n\r\n Itop.setParams(itop_params);\r\n Itop.setProxy(params.HTTPProxy);\r\n\r\n json_data.operation = \'\';\r\n json_data.class = Itop.params.class;\r\n json_data.comment = Itop.params.comment;\r\n json_data.output_fields = \'id, friendlyname\';\r\n json_data.fields = {};\r\n\r\n // Create issue for non trigger-based events.\r\n if (params.event_source !== \'0\' && params.event_recovery_value !== \'0\') {\r\n Itop.setCreatePayload();\r\n Itop.request(json_data);\r\n }\r\n // Create issue for trigger-based events.\r\n else if (params.event_value === \'1\' && params.event_update_status === \'0\'\r\n && (Itop.params.id === \'{EVENT.TAGS.__zbx_itop_id}\' || Itop.params.id === \'*UNKNOWN*\')) {\r\n Itop.setCreatePayload();\r\n\r\n var response = Itop.request(json_data);\r\n\r\n result.tags.__zbx_itop_id = response.response.id;\r\n result.tags.__zbx_itop_key = response.response.friendlyname;\r\n result.tags.__zbx_itop_link = params.itop_url + (params.itop_url.endsWith(\'/\') ? \'\' : \'/\') +\r\n \'pages/UI.php?operation=details&class=\' + encodeURIComponent(Itop.params.class) + \'&id=\' +\r\n encodeURIComponent(response.response.id);\r\n }\r\n // Update created issue for trigger-based event.\r\n else {\r\n if (Itop.params.id === \'{EVENT.TAGS.__zbx_itop_id}\' || Itop.params.id === \'*UNKNOWN*\') {\r\n throw \'Incorrect iTop ticket ID given: \' + Itop.params.id;\r\n }\r\n Itop.setUpdatePayload();\r\n Itop.request(json_data);\r\n }\r\n\r\n return JSON.stringify(result);\r\n}\r\ncatch (error) {\r\n Zabbix.log(3, \'[ iTop Webhook ] ERROR: \' + error);\r\n throw \'Sending failed: \' + error;\r\n}','30s','1','1','{EVENT.TAGS.__zbx_itop_link}','iTop: {EVENT.TAGS.__zbx_itop_key}','','0'),
('78','4','Jira','','','','','','','','25','0','0','0','0','1','3','10s','1','const CLogger = function(serviceName) {\r\n this.serviceName = serviceName;\r\n this.INFO = 4\r\n this.WARN = 3\r\n this.ERROR = 2\r\n this.log = function(level, msg) {\r\n Zabbix.log(level, \'[\' + this.serviceName + \'] \' + msg);\r\n }\r\n}\r\n\r\nconst CWebhook = function(value) {\r\n try {\r\n params = JSON.parse(value);\r\n\r\n if ([\'0\', \'1\', \'2\', \'3\', \'4\'].indexOf(params.event_source) === -1) {\r\n throw \'Incorrect "event_source" parameter given: \' + params.event_source + \'.\\nMust be 0-4.\';\r\n }\r\n\r\n if ([\'0\', \'3\', \'4\'].indexOf(params.event_source) !== -1 && [\'0\', \'1\'].indexOf(params.event_value) === -1) {\r\n throw \'Incorrect "event_value" parameter given: \' + params.event_value + \'.\\nMust be 0 or 1.\';\r\n }\r\n\r\n if ([\'0\', \'3\', \'4\'].indexOf(params.event_source) !== -1) {\r\n if (params.event_source === \'1\' && [\'0\', \'1\', \'2\', \'3\'].indexOf(params.event_value) === -1) {\r\n throw \'Incorrect "event_value" parameter given: \' + params.event_value + \'.\\nMust be 0-3.\';\r\n }\r\n\r\n if (params.event_source === \'0\' && [\'0\', \'1\'].indexOf(params.event_update_status) === -1) {\r\n throw \'Incorrect "event_update_status" parameter given: \' + params.event_update_status + \'.\\nMust be 0 or 1.\';\r\n }\r\n\r\n if (params.event_source === \'4\') {\r\n if ([\'0\', \'1\', \'2\', \'3\', \'4\', \'5\'].indexOf(params.event_update_nseverity) !== -1 && params.event_update_nseverity != params.event_nseverity) {\r\n params.event_nseverity = params.event_update_nseverity;\r\n params.event_severity = params.event_update_severity;\r\n params.event_update_status = \'1\';\r\n }\r\n }\r\n }\r\n\r\n this.runCallback = function(name, params) {\r\n if (typeof this[name] === \'function\') {\r\n return this[name].apply(this, [params]);\r\n }\r\n }\r\n\r\n this.handleEvent = function(source, event) {\r\n const alert = { source: source, event: event };\r\n return [\r\n this.runCallback(\'on\' + source + event, alert),\r\n this.runCallback(\'on\' + event, alert),\r\n this.runCallback(\'onEvent\', alert)\r\n ];\r\n }\r\n\r\n this.handleEventless = function(source) {\r\n const alert = { source: source, event: null };\r\n return [\r\n this.runCallback(\'on\' + source, alert),\r\n this.runCallback(\'onEvent\', alert)\r\n ];\r\n }\r\n\r\n this.run = function() {\r\n var results = [];\r\n if (typeof this.httpProxy === \'string\' && this.httpProxy.trim() !== \'\') {\r\n this.request.setProxy(this.httpProxy);\r\n }\r\n const types = { \'0\': \'Trigger\', \'1\': \'Discovery\', \'2\': \'Autoreg\', \'3\': \'Internal\', \'4\': \'Service\' };\r\n\r\n if ([\'0\', \'3\', \'4\'].indexOf(this.params.event_source) !== -1) {\r\n var event = (this.params.event_update_status === \'1\')\r\n ? \'Update\'\r\n : ((this.params.event_value === \'1\') ? \'Problem\' : \'Resolve\');\r\n\r\n results = this.handleEvent(types[this.params.event_source], event);\r\n }\r\n else if (typeof types[this.params.event_source] !== \'undefined\') {\r\n results = this.handleEventless(types[this.params.event_source]);\r\n }\r\n else {\r\n throw \'Unexpected "event_source": \' + this.params.event_source;\r\n }\r\n\r\n for (idx in results) {\r\n if (typeof results[idx] !== \'undefined\') {\r\n return JSON.stringify(results[idx]);\r\n }\r\n }\r\n }\r\n this.httpProxy = params.http_proxy;\r\n this.params = params;\r\n this.runCallback(\'onCheckParams\', {});\r\n } catch (error) {\r\n throw \'Webhook processing failed: \' + error;\r\n }\r\n}\r\n\r\nconst CWebhookHelper = {\r\n\r\n createProblemURL: function(event_source, zabbix_url, trigger_id, event_id) {\r\n if (event_source === \'0\') {\r\n return zabbix_url + \'/tr_events.php?triggerid=\' + trigger_id + \'&eventid=\' + event_id;\r\n } else if (event_source === \'4\') {\r\n return zabbix_url + \'/zabbix.php?action=service.list\';\r\n }\r\n\r\n return zabbix_url;\r\n },\r\n\r\n};\r\n\r\nconst CParamValidator = {\r\n\r\n isType: function(value, type) {\r\n if (type === \'array\') {\r\n return Array.isArray(value);\r\n }\r\n if (type === \'integer\') {\r\n return CParamValidator.isInteger(value);\r\n }\r\n if (type === \'float\') {\r\n return CParamValidator.isFloat(value);\r\n }\r\n\r\n return (typeof value === type);\r\n },\r\n\r\n isInteger: function(value) {\r\n if (!CParamValidator.ifMatch(value, /^-?\\d+$/)) {\r\n return false;\r\n }\r\n\r\n return !isNaN(parseInt(value));\r\n },\r\n\r\n isFloat: function(value) {\r\n if (!CParamValidator.ifMatch(value, /^-?\\d+\\.\\d+$/)) {\r\n return false;\r\n }\r\n\r\n return !isNaN(parseFloat(value));\r\n },\r\n\r\n isDefined: function(value) {\r\n return !CParamValidator.isType(value, \'undefined\');\r\n },\r\n\r\n isEmpty: function(value) {\r\n if (!CParamValidator.isType(value, \'string\')) {\r\n throw \'Value "\' + value + \'" must be a string to be checked for emptiness.\';\r\n }\r\n\r\n return (value.trim() === \'\');\r\n },\r\n\r\n isMacroSet: function(value, macro) {\r\n if (CParamValidator.isDefined(macro)) {\r\n return !(CParamValidator.ifMatch(value, \'^\\{\' + macro + \'\\}$\'))\r\n }\r\n\r\n return !(CParamValidator.ifMatch(value, \'^\\{[$#]{0,1}[A-Z_\\.]+[\\:]{0,1}["]{0,1}.*["]{0,1}\\}$\') || value === \'*UNKNOWN*\')\r\n },\r\n\r\n withinRange: function(value, min, max) {\r\n if (!CParamValidator.isType(value, \'number\')) {\r\n throw \'Value "\' + value + \'" must be a number to be checked for range.\';\r\n }\r\n if (value < ((CParamValidator.isDefined(min)) ? min : value)\r\n || value > ((CParamValidator.isDefined(max)) ? max : value)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n\r\n inArray: function(value, array) {\r\n if (!CParamValidator.isType(array, \'array\')) {\r\n throw \'The array must be an array to check the value for existing in it.\';\r\n }\r\n\r\n return (array.indexOf((typeof value === \'string\') ? value.toLowerCase() : value) !== -1);\r\n },\r\n\r\n ifMatch: function(value, regex) {\r\n return (new RegExp(regex)).test(value);\r\n },\r\n\r\n match: function(value, regex) {\r\n if (!CParamValidator.isType(value, \'string\')) {\r\n throw \'Value "\' + value + \'" must be a string to be matched with the regular expression.\';\r\n }\r\n\r\n return value.match(new RegExp(regex));\r\n },\r\n\r\n checkURL: function(value) {\r\n if (CParamValidator.isEmpty(value)) {\r\n throw \'URL value "\' + value + \'" must be a non-empty string.\';\r\n }\r\n if (!CParamValidator.ifMatch(value, \'^(http|https):\\/\\/.+\')) {\r\n throw \'URL value "\' + value + \'" must contain a schema.\';\r\n }\r\n\r\n return value.endsWith(\'/\') ? value.slice(0, -1) : value;\r\n },\r\n\r\n check: function(key, rule, params) {\r\n if (!CParamValidator.isDefined(rule.type)) {\r\n throw \'Mandatory attribute "type" has not been defined for parameter "\' + key + \'".\';\r\n }\r\n if (!CParamValidator.isDefined(params[key])) {\r\n throw \'Checked parameter "\' + key + \'" was not found in the list of input parameters.\';\r\n }\r\n var value = params[key],\r\n error_message = null;\r\n switch (rule.type) {\r\n case \'string\':\r\n if (!CParamValidator.isType(value, \'string\')) {\r\n throw \'Value "\' + key + \'" must be a string.\';\r\n }\r\n if (CParamValidator.isEmpty(value)) {\r\n error_message = \'Value "\' + key + \'" must be a non-empty string\';\r\n break;\r\n }\r\n if (CParamValidator.isDefined(rule.len) && value.length < rule.len) {\r\n error_message = \'Value "\' + key + \'" must be a string with a length > \' + rule.len;\r\n }\r\n if (CParamValidator.isDefined(rule.regex) && !CParamValidator.ifMatch(value, rule.regex)) {\r\n error_message = \'Value "\' + key + \'" must match the regular expression "\' + rule.regex + \'"\';\r\n }\r\n if (CParamValidator.isDefined(rule.url) && rule.url === true) {\r\n value = CParamValidator.checkURL(value);\r\n }\r\n break;\r\n case \'integer\':\r\n if (!CParamValidator.isInteger(value)) {\r\n error_message = \'Value "\' + key + \'" must be an integer\';\r\n break;\r\n }\r\n value = parseInt(value);\r\n break;\r\n case \'float\':\r\n if (!CParamValidator.isFloat(value)) {\r\n error_message = \'Value "\' + key + \'" must be a floating-point number\';\r\n break;\r\n }\r\n value = parseFloat(value);\r\n break;\r\n case \'boolean\':\r\n if (CParamValidator.inArray(value, [\'1\', \'true\', \'yes\', \'on\'])) {\r\n value = true;\r\n }\r\n else if (CParamValidator.inArray(value, [\'0\', \'false\', \'no\', \'off\'])) {\r\n value = false;\r\n }\r\n else {\r\n error_message = \'Value "\' + key + \'" must be a boolean-like.\';\r\n }\r\n break;\r\n case \'array\':\r\n try {\r\n value = JSON.parse(value);\r\n } catch (error) {\r\n throw \'Value "\' + key + \'" contains invalid JSON.\';\r\n }\r\n if (!CParamValidator.isType(value, \'array\')) {\r\n error_message = \'Value "\' + key + \'" must be an array.\';\r\n }\r\n if (CParamValidator.isDefined(rule.tags) && rule.tags === true) {\r\n value = value.reduce(function(acc, obj) {\r\n acc[obj.tag] = obj.value || null;\r\n return acc;\r\n }, {});\r\n }\r\n break;\r\n case \'object\':\r\n value = JSON.parse(value);\r\n if (!CParamValidator.isType(value, \'object\')) {\r\n error_message = \'Value "\' + key + \'" must be an object.\';\r\n }\r\n break;\r\n default:\r\n throw \'Unexpected attribute type "\' + rule.type + \'" for value "\' + key + \'". Available: \' +\r\n [\'integer\', \'float\', \'string\', \'boolean\', \'array\', \'object\'].join(\', \');\r\n }\r\n params[key] = value;\r\n if (CParamValidator.inArray(rule.type, [\'integer\', \'float\']) && error_message === null && (CParamValidator.isDefined(rule.min)\r\n || CParamValidator.isDefined(rule.max)) && !CParamValidator.withinRange(value, rule.min, rule.max)) {\r\n error_message = \'Value "\' + key + \'" must be a number \' + ((CParamValidator.isDefined(rule.min) && CParamValidator.isDefined(rule.max))\r\n ? (rule.min + \'..\' + rule.max) : ((CParamValidator.isDefined(rule.min)) ? \'>\' + rule.min : \'<\' + rule.max));\r\n }\r\n else if (CParamValidator.isDefined(rule.array) && !CParamValidator.inArray(value, rule.array)) {\r\n error_message = \'Value "\' + key + \'" must be in the array \' + JSON.stringify(rule.array);\r\n }\r\n else if (CParamValidator.isDefined(rule.macro) && !CParamValidator.isMacroSet(value.toString(), rule.macro)) {\r\n error_message = \'The macro \' + ((CParamValidator.isDefined(rule.macro)) ? \'{\' + rule.macro + \'} \' : \' \') + \'is not set\';\r\n }\r\n if (error_message !== null) {\r\n if (CParamValidator.isDefined(rule.default) && CParamValidator.isType(rule.default, rule.type)) {\r\n params[key] = rule.default;\r\n }\r\n else {\r\n Zabbix.log(4, \'Default value for "\' + key + \'" must be a \' + rule.type + \'. Skipped.\');\r\n throw \'Incorrect value for variable "\' + key + \'". \' + error_message;\r\n }\r\n }\r\n\r\n return this;\r\n },\r\n\r\n validate: function(rules, params) {\r\n if (!CParamValidator.isType(params, \'object\') || CParamValidator.isType(params, \'array\')) {\r\n throw \'Incorrect parameters value. The value must be an object.\';\r\n }\r\n for (var key in rules) {\r\n CParamValidator.check(key, rules[key], params);\r\n }\r\n }\r\n}\r\n\r\nconst CHttpRequest = function(logger) {\r\n this.request = new HttpRequest();\r\n if (typeof logger !== \'object\' || logger === null) {\r\n this.logger = Zabbix;\r\n }\r\n else {\r\n this.logger = logger;\r\n }\r\n\r\n this.clearHeader = function() {\r\n this.request.clearHeader();\r\n }\r\n\r\n this.addHeaders = function(value) {\r\n var headers = [];\r\n\r\n if (typeof value === \'object\' && value !== null) {\r\n if (!Array.isArray(value)) {\r\n Object.keys(value).forEach(function(key) {\r\n headers.push(key + \': \' + value[key]);\r\n });\r\n }\r\n else {\r\n headers = value;\r\n }\r\n }\r\n else if (typeof value === \'string\') {\r\n value.split(\'\\r\\n\').forEach(function(header) {\r\n headers.push(header);\r\n });\r\n }\r\n\r\n for (var idx in headers) {\r\n this.request.addHeader(headers[idx]);\r\n }\r\n }\r\n\r\n this.setProxy = function(proxy) {\r\n this.request.setProxy(proxy);\r\n }\r\n\r\n this.plainRequest = function(method, url, data) {\r\n var resp = null;\r\n method = method.toLowerCase();\r\n this.logger.log(4, \'Sending \' + method + \' request:\' + JSON.stringify(data));\r\n if ([\'get\', \'post\', \'put\', \'patch\', \'delete\', \'trace\'].indexOf(method) !== -1) {\r\n resp = this.request[method](url, data);\r\n }\r\n else if ([\'connect\', \'head\', \'options\'].indexOf(method) !== -1) {\r\n resp = this.request[method](url);\r\n }\r\n else {\r\n throw \'Unexpected method. Method \' + method + \' is not supported.\';\r\n }\r\n this.logger.log(4, \'Response has been received: \' + resp);\r\n\r\n return resp;\r\n }\r\n\r\n this.jsonRequest = function(method, url, data) {\r\n this.addHeaders(\'Content-Type: application/json\');\r\n var resp = this.plainRequest(method, url, JSON.stringify(data));\r\n try {\r\n resp = JSON.parse(resp);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response: not well-formed JSON was received\';\r\n }\r\n\r\n return resp;\r\n }\r\n\r\n this.getStatus = function() {\r\n return this.request.getStatus();\r\n }\r\n}\r\n\r\nvar ZABBIX_SEVERITY_MAP = ["not_classified", "information", "warning", "average", "high", "disaster"];\r\n\r\nvar serviceLogName = \'Jira Webhook\',\r\n Logger = new CLogger(serviceLogName),\r\n Jira = CWebhook;\r\n\r\nJira.prototype.onCheckParams = function () {\r\n CParamValidator.validate({\r\n jira_url: { type: \'string\', url: true},\r\n jira_user: { type: \'string\' },\r\n jira_password: { type: \'string\' },\r\n jira_issue_type: { type: \'string\' },\r\n jira_project_key: { type: \'string\' },\r\n event_source: { type: \'string\' },\r\n alert_subject: { type: \'string\' },\r\n alert_message: { type: \'string\' },\r\n event_nseverity: { type: \'integer\', default: 0 }\r\n }, this.params);\r\n\r\n this.priority = this.params.event_source == 3 ? this.params.jira_priority_internal : this.params[\'severity_\' + ZABBIX_SEVERITY_MAP[this.params.event_nseverity]];\r\n this.params.event_tags_json = parseTags(this.params.event_tags_json, false);\r\n\r\n if (this.params.event_tags_json.length > 0) {\r\n this.labels = setLabels(this.params.event_tags_json);\r\n }\r\n\r\n parseOptionalFields();\r\n\r\n this.result = { tags: {} };\r\n}\r\n\r\nfunction escapeMarkup(str) {\r\n var length = str.length,\r\n result = \'\',\r\n markup = [\'{\', \'|\', \'}\', \'~\', \'_\', \'\\\\\', \'[\', \']\', \'^\', \'<\', \'>\', \'?\', \'!\', \'#\', \'+\', \'*\', \'&\'];\r\n\r\n for (var i = 0; i < length; i++) {\r\n var char = str[i];\r\n result += (markup.indexOf(char) !== -1) ? (\'\' + str[i].charCodeAt() + \';\') : char;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nfunction parseOptionalFields() {\r\n this.params.customfields = {};\r\n this.params.components = [];\r\n\r\n Object.keys(this.params).forEach(function (key) {\r\n if (key.startsWith(\'customfield_\')) {\r\n this.params.customfields[key] = this.params[key];\r\n }\r\n\r\n if (key.startsWith(\'component_\')) {\r\n this.params.components.push({"name": this.params[key]})\r\n }\r\n });\r\n}\r\n\r\nJira.prototype.addCustomFields = function (data) {\r\n if (typeof this.params.customfields === \'object\' && Object.keys(this.params.customfields).length) {\r\n var schemaData = this.sendRequest(\'GET\', \'/rest/api/latest/field\'),\r\n schema = {};\r\n\r\n schemaData.forEach(function (item) {\r\n schema[item.id] = item.schema;\r\n });\r\n\r\n Object.keys(this.params.customfields).forEach(function (field) {\r\n if (typeof schema[field] === \'object\' && schema[field].type) { \r\n const type = schema[field].type;\r\n\r\n if (type === \'number\') {\r\n data.fields[field] = parseInt(this.params.customfields[field]);\r\n }\r\n else if (type === \'string\' && schema[field][\'custom\'].split(\':\')[1] === \'url\') {\r\n if (this.params.customfields[field] === \'zabbix_url\') {\r\n data.fields[field] = CWebhookHelper.createProblemURL(this.params.event_source, this.params.zabbix_url, this.params.trigger_id, this.params.event_id);\r\n } else {\r\n data.fields[field] = this.params.customfields[field];\r\n }\r\n }\r\n else if (type === \'date\') {\r\n if (this.params.customfields[field].match(/\\d+[.-]\\d+[.-]\\d+/) !== null) {\r\n data.fields[field] = this.params.customfields[field].replace(/\\./g, \'-\');\r\n }\r\n }\r\n else if (type === \'datetime\') {\r\n if (this.params.customfields[field].match(/\\d+[.-]\\d+[.-]\\d+T\\d+:\\d+:\\d+/) !== null) {\r\n data.fields[field] = this.params.customfields[field].replace(/\\./g, \'-\');\r\n }\r\n }\r\n else if (type === \'option\') {\r\n data.fields[field] = { \'value\': this.params.customfields[field] };\r\n }\r\n else if (type === \'array\') {\r\n if (schema[field].items === \'option\') {\r\n const valuesList = this.params.customfields[field].split(\',\');\r\n data.fields[field] = [];\r\n valuesList.forEach(function (val) {\r\n data.fields[field].push({\'value\': val})\r\n });\r\n }\r\n else {\r\n data.fields[field] = [this.params.customfields[field]];\r\n }\r\n }\r\n else {\r\n data.fields[field] = this.params.customfields[field];\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n Logger.log(Logger.WARN, \'No customfields found.\');\r\n }\r\n\r\n return data;\r\n}\r\n\r\nfunction parseTags(event_tags) {\r\n try {\r\n return JSON.parse(event_tags);\r\n }\r\n catch (error) {\r\n if (this.params.event_source == 0 || this.params.event_source > 2) {\r\n Logger.log(Logger.WARN, \'No event tags were found. Should be an object. Received event tags: "\' + event_tags + \'".\');\r\n }\r\n return [];\r\n }\r\n}\r\n\r\nfunction getTagValue(tags, key, throw_on_fail) {\r\n for (i in tags) {\r\n if (tags[i].tag === key) {\r\n return tags[i].value\r\n }\r\n }\r\n\r\n if (!throw_on_fail) {\r\n return false;\r\n } else {\r\n throw \'Tag "\' + key + \'" is not in the event tag list.\'\r\n }\r\n};\r\n\r\nfunction setLabels(event_tags_json) {\r\n var buffer = [];\r\n\r\n event_tags_json.forEach(function (tag) {\r\n if (typeof tag.tag !== \'undefined\' && typeof tag.value !== \'undefined\' && !tag.tag.startsWith(\'__zbx\')) {\r\n label = (tag.tag + (tag.value ? (\':\' + tag.value) : \'\')).replace(/\\s/g, \'_\');\r\n if (label.length < 256) {\r\n buffer.push(label);\r\n }\r\n }\r\n });\r\n\r\n if (buffer.length === 0) {\r\n Logger.log(Logger.WARN, \'No labels were set.\');\r\n }\r\n\r\n return buffer;\r\n}\r\n\r\nJira.prototype.commentIssue = function (issue_key) {\r\n var data = {\r\n body: this.params.alert_message,\r\n };\r\n this.sendRequest(\'POST\', \'/rest/api/latest/issue/\' + encodeURIComponent(issue_key) + \'/comment\', data);\r\n}\r\n\r\nJira.prototype.sendRequest = function (method, path, data) {\r\n this.request.clearHeader();\r\n this.request.addHeaders(\'Authorization: Basic \' + btoa(this.params.jira_user + \':\' + this.params.jira_password));\r\n\r\n var response = this.request.jsonRequest(method, this.params.jira_url + path, data);\r\n\r\n if ((this.request.getStatus() !== 200 && this.request.getStatus() !== 201)) {\r\n Logger.log(Logger.WARN, \'HTTP code: \' + this.request.getStatus());\r\n if (CParamValidator.isType(response.description, \'string\')) {\r\n throw response.description;\r\n }\r\n else {\r\n Logger.log(Logger.WARN, \'Request not successful. Received response: \' + JSON.stringify(response));\r\n throw \'Unknown error. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n return response;\r\n}\r\n\r\nJira.prototype.onProblem = function (alert) {\r\n if (this.params.event_tags_json.length > 0 && getTagValue(this.params.event_tags_json, \'__zbx_jira_issuekey\', false) !== false) {\r\n return this.onUpdate(alert, true);\r\n }\r\n\r\n var data = {\r\n fields: {\r\n project: {\r\n key: this.params.jira_project_key\r\n },\r\n issuetype: {\r\n name: this.params.jira_issue_type\r\n },\r\n summary: this.params.alert_subject,\r\n description: this.params.alert_message,\r\n priority: {\r\n "name": this.priority\r\n }\r\n }\r\n };\r\n\r\n if (this.labels && this.labels.length > 0) {\r\n data.fields.labels = this.labels;\r\n }\r\n\r\n if (this.params.components && this.params.components.length > 0) {\r\n data.fields.components = this.params.components;\r\n }\r\n\r\n var response = this.sendRequest(\'POST\', \'/rest/api/latest/issue\', this.addCustomFields(data));\r\n this.result.tags = {\r\n __zbx_jira_issuekey: response.key,\r\n __zbx_jira_issuelink: this.params.jira_url + \'/browse/\' + response.key\r\n }\r\n return this.result;\r\n}\r\n\r\nJira.prototype.onUpdate = function (alert, dontUpdatePriority) {\r\n var data = {\r\n fields: {\r\n summary: this.params.alert_subject,\r\n priority: {\r\n "name": this.priority\r\n }\r\n }\r\n };\r\n\r\n if (dontUpdatePriority && this.params.event_source != 0) {\r\n delete data[\'fields\'][\'priority\'];\r\n }\r\n\r\n var jira_issue_key = getTagValue(this.params.event_tags_json, \'__zbx_jira_issuekey\', true);\r\n this.sendRequest(\'PUT\', \'/rest/api/latest/issue/\' + encodeURIComponent(jira_issue_key) + \'?returnIssue=true\', this.addCustomFields(data));\r\n this.commentIssue(jira_issue_key);\r\n\r\n return this.result;\r\n}\r\n\r\nJira.prototype.onResolve = function (alert) {\r\n return this.onUpdate(alert, true);\r\n}\r\n\r\nJira.prototype.onDiscovery = function (alert) {\r\n this.priority = this.params.jira_priority_discovery;\r\n return this.onProblem(alert);\r\n}\r\n\r\nJira.prototype.onAutoreg = function (alert) {\r\n this.priority = this.params.jira_priority_autoregistration;\r\n return this.onProblem(alert);\r\n}\r\n\r\ntry {\r\n var hook = new Jira(value);\r\n hook.request = new CHttpRequest(Logger);\r\n return hook.run();\r\n}\r\ncatch (error) {\r\n Logger.log(Logger.WARN, \'notification failed: \' + error);\r\n throw \'Sending failed: \' + error;\r\n}','30s','1','1','{EVENT.TAGS.__zbx_jira_issuelink}','Jira: {EVENT.TAGS.__zbx_jira_issuekey}','https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/jira\r\n\r\n1. To make this integration work, you will need the following from Jira:\r\n * Jira instance URL;\r\n * Jira project key and issue type that the issues created by Zabbix will use;\r\n * Jira username and password or API token. API token is strongly recommended and can be obtained at https://id.atlassian.com/manage/api-tokens.\r\n2. In the Zabbix web interface, go to Administration → Macros section. Set up the global macro "{$ZABBIX.URL}" which will contain the URL to the Zabbix frontend.\r\n3. On this page replace the placeholder \'<...>\' values with the ones from the step #1.\r\n4. In Zabbix, you need to have a Zabbix user and add Media with the Jira media type. Make sure this user has access to all hosts for which you would like problem issues to be created in Jira.','0'),
('79','4','Jira Service Management','','','','','','','','25','0','0','0','0','1','3','10s','1','const CLogger = function(serviceName) {\r\n this.serviceName = serviceName;\r\n this.INFO = 4\r\n this.WARN = 3\r\n this.ERROR = 2\r\n this.log = function(level, msg) {\r\n Zabbix.log(level, \'[\' + this.serviceName + \'] \' + msg);\r\n }\r\n}\r\n\r\nconst CWebhook = function(value) {\r\n try {\r\n params = JSON.parse(value);\r\n\r\n if ([\'0\', \'1\', \'2\', \'3\', \'4\'].indexOf(params.event_source) === -1) {\r\n throw \'Incorrect "event_source" parameter given: \' + params.event_source + \'.\\nMust be 0-4.\';\r\n }\r\n\r\n if ([\'0\', \'3\', \'4\'].indexOf(params.event_source) !== -1 && [\'0\', \'1\'].indexOf(params.event_value) === -1) {\r\n throw \'Incorrect "event_value" parameter given: \' + params.event_value + \'.\\nMust be 0 or 1.\';\r\n }\r\n\r\n if ([\'0\', \'3\', \'4\'].indexOf(params.event_source) !== -1) {\r\n if (params.event_source === \'1\' && [\'0\', \'1\', \'2\', \'3\'].indexOf(params.event_value) === -1) {\r\n throw \'Incorrect "event_value" parameter given: \' + params.event_value + \'.\\nMust be 0-3.\';\r\n }\r\n\r\n if (params.event_source === \'0\' && [\'0\', \'1\'].indexOf(params.event_update_status) === -1) {\r\n throw \'Incorrect "event_update_status" parameter given: \' + params.event_update_status + \'.\\nMust be 0 or 1.\';\r\n }\r\n\r\n if (params.event_source === \'4\') {\r\n if ([\'0\', \'1\', \'2\', \'3\', \'4\', \'5\'].indexOf(params.event_update_nseverity) !== -1 && params.event_update_nseverity != params.event_nseverity) {\r\n params.event_nseverity = params.event_update_nseverity;\r\n params.event_severity = params.event_update_severity;\r\n params.event_update_status = \'1\';\r\n }\r\n }\r\n }\r\n\r\n this.runCallback = function(name, params) {\r\n if (typeof this[name] === \'function\') {\r\n return this[name].apply(this, [params]);\r\n }\r\n }\r\n\r\n this.handleEvent = function(source, event) {\r\n const alert = { source: source, event: event };\r\n return [\r\n this.runCallback(\'on\' + source + event, alert),\r\n this.runCallback(\'on\' + event, alert),\r\n this.runCallback(\'onEvent\', alert)\r\n ];\r\n }\r\n\r\n this.handleEventless = function(source) {\r\n const alert = { source: source, event: null };\r\n return [\r\n this.runCallback(\'on\' + source, alert),\r\n this.runCallback(\'onEvent\', alert)\r\n ];\r\n }\r\n\r\n this.run = function() {\r\n var results = [];\r\n if (typeof this.httpProxy === \'string\' && this.httpProxy.trim() !== \'\') {\r\n this.request.setProxy(this.httpProxy);\r\n }\r\n const types = { \'0\': \'Trigger\', \'1\': \'Discovery\', \'2\': \'Autoreg\', \'3\': \'Internal\', \'4\': \'Service\' };\r\n\r\n if ([\'0\', \'3\', \'4\'].indexOf(this.params.event_source) !== -1) {\r\n var event = (this.params.event_update_status === \'1\')\r\n ? \'Update\'\r\n : ((this.params.event_value === \'1\') ? \'Problem\' : \'Resolve\');\r\n\r\n results = this.handleEvent(types[this.params.event_source], event);\r\n }\r\n else if (typeof types[this.params.event_source] !== \'undefined\') {\r\n results = this.handleEventless(types[this.params.event_source]);\r\n }\r\n else {\r\n throw \'Unexpected "event_source": \' + this.params.event_source;\r\n }\r\n\r\n for (idx in results) {\r\n if (typeof results[idx] !== \'undefined\') {\r\n return JSON.stringify(results[idx]);\r\n }\r\n }\r\n }\r\n this.httpProxy = params.http_proxy;\r\n this.params = params;\r\n this.runCallback(\'onCheckParams\', {});\r\n } catch (error) {\r\n throw \'Webhook processing failed: \' + error;\r\n }\r\n}\r\n\r\nconst CWebhookHelper = {\r\n\r\n createProblemURL: function(event_source, zabbix_url, trigger_id, event_id) {\r\n if (event_source === \'0\') {\r\n return zabbix_url + \'/tr_events.php?triggerid=\' + trigger_id + \'&eventid=\' + event_id;\r\n } else if (event_source === \'4\') {\r\n return zabbix_url + \'/zabbix.php?action=service.list\';\r\n }\r\n\r\n return zabbix_url;\r\n },\r\n\r\n};\r\n\r\nconst CParamValidator = {\r\n\r\n isType: function(value, type) {\r\n if (type === \'array\') {\r\n return Array.isArray(value);\r\n }\r\n if (type === \'integer\') {\r\n return CParamValidator.isInteger(value);\r\n }\r\n if (type === \'float\') {\r\n return CParamValidator.isFloat(value);\r\n }\r\n\r\n return (typeof value === type);\r\n },\r\n\r\n isInteger: function(value) {\r\n if (!CParamValidator.ifMatch(value, /^-?\\d+$/)) {\r\n return false;\r\n }\r\n\r\n return !isNaN(parseInt(value));\r\n },\r\n\r\n isFloat: function(value) {\r\n if (!CParamValidator.ifMatch(value, /^-?\\d+\\.\\d+$/)) {\r\n return false;\r\n }\r\n\r\n return !isNaN(parseFloat(value));\r\n },\r\n\r\n isDefined: function(value) {\r\n return !CParamValidator.isType(value, \'undefined\');\r\n },\r\n\r\n isEmpty: function(value) {\r\n if (!CParamValidator.isType(value, \'string\')) {\r\n throw \'Value "\' + value + \'" must be a string to be checked for emptiness.\';\r\n }\r\n\r\n return (value.trim() === \'\');\r\n },\r\n\r\n isMacroSet: function(value, macro) {\r\n if (CParamValidator.isDefined(macro)) {\r\n return !(CParamValidator.ifMatch(value, \'^\\{\' + macro + \'\\}$\'))\r\n }\r\n\r\n return !(CParamValidator.ifMatch(value, \'^\\{[$#]{0,1}[A-Z_\\.]+[\\:]{0,1}["]{0,1}.*["]{0,1}\\}$\') || value === \'*UNKNOWN*\')\r\n },\r\n\r\n withinRange: function(value, min, max) {\r\n if (!CParamValidator.isType(value, \'number\')) {\r\n throw \'Value "\' + value + \'" must be a number to be checked for range.\';\r\n }\r\n if (value < ((CParamValidator.isDefined(min)) ? min : value)\r\n || value > ((CParamValidator.isDefined(max)) ? max : value)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n\r\n inArray: function(value, array) {\r\n if (!CParamValidator.isType(array, \'array\')) {\r\n throw \'The array must be an array to check the value for existing in it.\';\r\n }\r\n\r\n return (array.indexOf((typeof value === \'string\') ? value.toLowerCase() : value) !== -1);\r\n },\r\n\r\n ifMatch: function(value, regex) {\r\n return (new RegExp(regex)).test(value);\r\n },\r\n\r\n match: function(value, regex) {\r\n if (!CParamValidator.isType(value, \'string\')) {\r\n throw \'Value "\' + value + \'" must be a string to be matched with the regular expression.\';\r\n }\r\n\r\n return value.match(new RegExp(regex));\r\n },\r\n\r\n checkURL: function(value) {\r\n if (CParamValidator.isEmpty(value)) {\r\n throw \'URL value "\' + value + \'" must be a non-empty string.\';\r\n }\r\n if (!CParamValidator.ifMatch(value, \'^(http|https):\\/\\/.+\')) {\r\n throw \'URL value "\' + value + \'" must contain a schema.\';\r\n }\r\n\r\n return value.endsWith(\'/\') ? value.slice(0, -1) : value;\r\n },\r\n\r\n check: function(key, rule, params) {\r\n if (!CParamValidator.isDefined(rule.type)) {\r\n throw \'Mandatory attribute "type" has not been defined for parameter "\' + key + \'".\';\r\n }\r\n if (!CParamValidator.isDefined(params[key])) {\r\n throw \'Checked parameter "\' + key + \'" was not found in the list of input parameters.\';\r\n }\r\n var value = params[key],\r\n error_message = null;\r\n switch (rule.type) {\r\n case \'string\':\r\n if (!CParamValidator.isType(value, \'string\')) {\r\n throw \'Value "\' + key + \'" must be a string.\';\r\n }\r\n if (CParamValidator.isEmpty(value)) {\r\n error_message = \'Value "\' + key + \'" must be a non-empty string\';\r\n break;\r\n }\r\n if (CParamValidator.isDefined(rule.len) && value.length < rule.len) {\r\n error_message = \'Value "\' + key + \'" must be a string with a length > \' + rule.len;\r\n }\r\n if (CParamValidator.isDefined(rule.regex) && !CParamValidator.ifMatch(value, rule.regex)) {\r\n error_message = \'Value "\' + key + \'" must match the regular expression "\' + rule.regex + \'"\';\r\n }\r\n if (CParamValidator.isDefined(rule.url) && rule.url === true) {\r\n value = CParamValidator.checkURL(value);\r\n }\r\n break;\r\n case \'integer\':\r\n if (!CParamValidator.isInteger(value)) {\r\n error_message = \'Value "\' + key + \'" must be an integer\';\r\n break;\r\n }\r\n value = parseInt(value);\r\n break;\r\n case \'float\':\r\n if (!CParamValidator.isFloat(value)) {\r\n error_message = \'Value "\' + key + \'" must be a floating-point number\';\r\n break;\r\n }\r\n value = parseFloat(value);\r\n break;\r\n case \'boolean\':\r\n if (CParamValidator.inArray(value, [\'1\', \'true\', \'yes\', \'on\'])) {\r\n value = true;\r\n }\r\n else if (CParamValidator.inArray(value, [\'0\', \'false\', \'no\', \'off\'])) {\r\n value = false;\r\n }\r\n else {\r\n error_message = \'Value "\' + key + \'" must be a boolean-like.\';\r\n }\r\n break;\r\n case \'array\':\r\n try {\r\n value = JSON.parse(value);\r\n } catch (error) {\r\n throw \'Value "\' + key + \'" contains invalid JSON.\';\r\n }\r\n if (!CParamValidator.isType(value, \'array\')) {\r\n error_message = \'Value "\' + key + \'" must be an array.\';\r\n }\r\n if (CParamValidator.isDefined(rule.tags) && rule.tags === true) {\r\n value = value.reduce(function(acc, obj) {\r\n acc[obj.tag] = obj.value || null;\r\n return acc;\r\n }, {});\r\n }\r\n break;\r\n case \'object\':\r\n value = JSON.parse(value);\r\n if (!CParamValidator.isType(value, \'object\')) {\r\n error_message = \'Value "\' + key + \'" must be an object.\';\r\n }\r\n break;\r\n default:\r\n throw \'Unexpected attribute type "\' + rule.type + \'" for value "\' + key + \'". Available: \' +\r\n [\'integer\', \'float\', \'string\', \'boolean\', \'array\', \'object\'].join(\', \');\r\n }\r\n params[key] = value;\r\n if (CParamValidator.inArray(rule.type, [\'integer\', \'float\']) && error_message === null && (CParamValidator.isDefined(rule.min)\r\n || CParamValidator.isDefined(rule.max)) && !CParamValidator.withinRange(value, rule.min, rule.max)) {\r\n error_message = \'Value "\' + key + \'" must be a number \' + ((CParamValidator.isDefined(rule.min) && CParamValidator.isDefined(rule.max))\r\n ? (rule.min + \'..\' + rule.max) : ((CParamValidator.isDefined(rule.min)) ? \'>\' + rule.min : \'<\' + rule.max));\r\n }\r\n else if (CParamValidator.isDefined(rule.array) && !CParamValidator.inArray(value, rule.array)) {\r\n error_message = \'Value "\' + key + \'" must be in the array \' + JSON.stringify(rule.array);\r\n }\r\n else if (CParamValidator.isDefined(rule.macro) && !CParamValidator.isMacroSet(value.toString(), rule.macro)) {\r\n error_message = \'The macro \' + ((CParamValidator.isDefined(rule.macro)) ? \'{\' + rule.macro + \'} \' : \' \') + \'is not set\';\r\n }\r\n if (error_message !== null) {\r\n if (CParamValidator.isDefined(rule.default) && CParamValidator.isType(rule.default, rule.type)) {\r\n params[key] = rule.default;\r\n }\r\n else {\r\n Zabbix.log(4, \'Default value for "\' + key + \'" must be a \' + rule.type + \'. Skipped.\');\r\n throw \'Incorrect value for variable "\' + key + \'". \' + error_message;\r\n }\r\n }\r\n\r\n return this;\r\n },\r\n\r\n validate: function(rules, params) {\r\n if (!CParamValidator.isType(params, \'object\') || CParamValidator.isType(params, \'array\')) {\r\n throw \'Incorrect parameters value. The value must be an object.\';\r\n }\r\n for (var key in rules) {\r\n CParamValidator.check(key, rules[key], params);\r\n }\r\n }\r\n}\r\n\r\nconst CHttpRequest = function(logger) {\r\n this.request = new HttpRequest();\r\n if (typeof logger !== \'object\' || logger === null) {\r\n this.logger = Zabbix;\r\n }\r\n else {\r\n this.logger = logger;\r\n }\r\n\r\n this.clearHeader = function() {\r\n this.request.clearHeader();\r\n }\r\n\r\n this.addHeaders = function(value) {\r\n var headers = [];\r\n\r\n if (typeof value === \'object\' && value !== null) {\r\n if (!Array.isArray(value)) {\r\n Object.keys(value).forEach(function(key) {\r\n headers.push(key + \': \' + value[key]);\r\n });\r\n }\r\n else {\r\n headers = value;\r\n }\r\n }\r\n else if (typeof value === \'string\') {\r\n value.split(\'\\r\\n\').forEach(function(header) {\r\n headers.push(header);\r\n });\r\n }\r\n\r\n for (var idx in headers) {\r\n this.request.addHeader(headers[idx]);\r\n }\r\n }\r\n\r\n this.setProxy = function(proxy) {\r\n this.request.setProxy(proxy);\r\n }\r\n\r\n this.plainRequest = function(method, url, data) {\r\n var resp = null;\r\n method = method.toLowerCase();\r\n this.logger.log(4, \'Sending \' + method + \' request:\' + JSON.stringify(data));\r\n if ([\'get\', \'post\', \'put\', \'patch\', \'delete\', \'trace\'].indexOf(method) !== -1) {\r\n resp = this.request[method](url, data);\r\n }\r\n else if ([\'connect\', \'head\', \'options\'].indexOf(method) !== -1) {\r\n resp = this.request[method](url);\r\n }\r\n else {\r\n throw \'Unexpected method. Method \' + method + \' is not supported.\';\r\n }\r\n this.logger.log(4, \'Response has been received: \' + resp);\r\n\r\n return resp;\r\n }\r\n\r\n this.jsonRequest = function(method, url, data) {\r\n this.addHeaders(\'Content-Type: application/json\');\r\n var resp = this.plainRequest(method, url, JSON.stringify(data));\r\n try {\r\n resp = JSON.parse(resp);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response: not well-formed JSON was received\';\r\n }\r\n\r\n return resp;\r\n }\r\n\r\n this.getStatus = function() {\r\n return this.request.getStatus();\r\n }\r\n}\r\n\r\nvar ZABBIX_SEVERITY_MAP = ["not_classified", "information", "warning", "average", "high", "disaster"];\r\n\r\nvar serviceLogName = \'Jira Service Management Webhook\',\r\n Logger = new CLogger(serviceLogName),\r\n Jira = CWebhook;\r\n\r\nJira.prototype.onCheckParams = function () {\r\n CParamValidator.validate({\r\n jira_url: { type: \'string\', url: true},\r\n jira_user: { type: \'string\' },\r\n jira_password: { type: \'string\' },\r\n jira_request_type_id: { type: \'string\' },\r\n jira_servicedesk_id: { type: \'string\' },\r\n issue_comments_public: {type: \'boolean\', default: false},\r\n event_source: { type: \'string\' },\r\n alert_subject: { type: \'string\' },\r\n alert_message: { type: \'string\' },\r\n event_nseverity: { type: \'integer\', default: 0 }\r\n }, this.params);\r\n\r\n this.priority = this.params.event_source == 3 ? this.params.jira_priority_internal : this.params[\'severity_\' + ZABBIX_SEVERITY_MAP[this.params.event_nseverity]];\r\n this.params.event_tags_json = parseTags(this.params.event_tags_json, false);\r\n\r\n if (this.params.event_tags_json.length > 0) {\r\n this.labels = setLabels(this.params.event_tags_json);\r\n }\r\n\r\n parseOptionalFields();\r\n\r\n this.result = { tags: {} };\r\n}\r\n\r\nfunction escapeMarkup(str) {\r\n var length = str.length,\r\n result = \'\',\r\n markup = [\'{\', \'|\', \'}\', \'~\', \'_\', \'\\\\\', \'[\', \']\', \'^\', \'<\', \'>\', \'?\', \'!\', \'#\', \'+\', \'*\', \'&\'];\r\n\r\n for (var i = 0; i < length; i++) {\r\n var char = str[i];\r\n result += (markup.indexOf(char) !== -1) ? (\'\' + str[i].charCodeAt() + \';\') : char;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nfunction parseOptionalFields() {\r\n this.params.customfields = {};\r\n this.params.components = [];\r\n\r\n Object.keys(this.params).forEach(function (key) {\r\n if (key.startsWith(\'customfield_\')) {\r\n this.params.customfields[key] = this.params[key];\r\n }\r\n\r\n if (key.startsWith(\'component_\')) {\r\n this.params.components.push({"name": this.params[key]})\r\n }\r\n });\r\n}\r\n\r\nJira.prototype.addCustomFields = function (data, requestFieldValues) {\r\n if (typeof this.params.customfields === \'object\' && Object.keys(this.params.customfields).length) {\r\n var schemaData = this.sendRequest(\'GET\', \'/rest/api/latest/field\'),\r\n schema = {};\r\n\r\n schemaData.forEach(function (item) {\r\n schema[item.id] = item.schema;\r\n });\r\n\r\n var placeholder = (requestFieldValues ? \'requestFieldValues\' : \'fields\');\r\n\r\n Object.keys(this.params.customfields).forEach(function (field) {\r\n if (typeof schema[field] === \'object\' && schema[field].type) {\r\n const type = schema[field].type;\r\n\r\n if (type === \'number\') {\r\n data[placeholder][field] = parseInt(this.params.customfields[field]);\r\n }\r\n else if (type === \'string\' && schema[field][\'custom\'].split(\':\')[1] === \'url\') {\r\n if (this.params.customfields[field] === \'zabbix_url\') {\r\n data[placeholder][field] = CWebhookHelper.createProblemURL(this.params.event_source, this.params.zabbix_url, this.params.trigger_id, this.params.event_id);\r\n } else {\r\n data[placeholder][field] = this.params.customfields[field];\r\n }\r\n }\r\n else if (type === \'date\') {\r\n if (this.params.customfields[field].match(/\\d+[.-]\\d+[.-]\\d+/) !== null) {\r\n data[placeholder][field] = this.params.customfields[field].replace(/\\./g, \'-\');\r\n }\r\n }\r\n else if (type === \'datetime\') {\r\n if (this.params.customfields[field].match(/\\d+[.-]\\d+[.-]\\d+T\\d+:\\d+:\\d+/) !== null) {\r\n data[placeholder][field] = this.params.customfields[field].replace(/\\./g, \'-\');\r\n }\r\n }\r\n else if (type === \'option\') {\r\n data[placeholder][field] = { \'value\': this.params.customfields[field] };\r\n }\r\n else if (type === \'array\') {\r\n if (schema[field].items === \'option\') {\r\n const valuesList = this.params.customfields[field].split(\',\');\r\n data[placeholder][field] = [];\r\n valuesList.forEach(function (val) {\r\n data[placeholder][field].push({\'value\': val})\r\n });\r\n }\r\n else {\r\n data[placeholder][field] = [this.params.customfields[field]];\r\n }\r\n }\r\n else {\r\n data[placeholder][field] = this.params.customfields[field];\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n Logger.log(Logger.WARN, \'No customfields found.\');\r\n }\r\n\r\n return data;\r\n}\r\n\r\nfunction parseTags(event_tags) {\r\n try {\r\n return JSON.parse(event_tags);\r\n }\r\n catch (error) {\r\n if (this.params.event_source == 0 || this.params.event_source > 2) {\r\n Logger.log(Logger.WARN, \'No event tags were found. Should be an object. Received event tags: "\' + event_tags + \'".\');\r\n }\r\n return [];\r\n }\r\n}\r\n\r\nfunction getTagValue(tags, key, throw_on_fail) {\r\n for (i in tags) {\r\n if (tags[i].tag === key) {\r\n return tags[i].value\r\n }\r\n }\r\n\r\n if (!throw_on_fail) {\r\n return false;\r\n } else {\r\n throw \'Tag "\' + key + \'" is not in the event tag list.\'\r\n }\r\n};\r\n\r\nfunction setLabels(event_tags_json) {\r\n var buffer = [];\r\n\r\n event_tags_json.forEach(function (tag) {\r\n if (typeof tag.tag !== \'undefined\' && typeof tag.value !== \'undefined\' && !tag.tag.startsWith(\'__zbx\')) {\r\n label = (tag.tag + (tag.value ? (\':\' + tag.value) : \'\')).replace(/\\s/g, \'_\');\r\n if (label.length < 256) {\r\n buffer.push(label);\r\n }\r\n }\r\n });\r\n\r\n if (buffer.length === 0) {\r\n Logger.log(Logger.WARN, \'No labels were set.\');\r\n }\r\n\r\n return buffer;\r\n}\r\n\r\nJira.prototype.commentIssue = function (issue_key) {\r\n var data = {\r\n body: this.params.alert_message,\r\n public: this.params.issue_comments_public\r\n };\r\n this.sendRequest(\'POST\', \'/rest/servicedeskapi/request/\' + encodeURIComponent(issue_key) + \'/comment\', data);\r\n}\r\n\r\nJira.prototype.sendRequest = function (method, path, data) {\r\n this.request.clearHeader();\r\n this.request.addHeaders(\'Authorization: Basic \' + btoa(this.params.jira_user + \':\' + this.params.jira_password));\r\n\r\n var response = this.request.jsonRequest(method, this.params.jira_url + path, data);\r\n\r\n if ((this.request.getStatus() !== 200 && this.request.getStatus() !== 201)) {\r\n Logger.log(Logger.WARN, \'HTTP code: \' + this.request.getStatus());\r\n if (CParamValidator.isType(response.description, \'string\')) {\r\n throw response.description;\r\n }\r\n else {\r\n Logger.log(Logger.WARN, \'Request not successful. Received response: \' + JSON.stringify(response));\r\n throw \'Unknown error. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n return response;\r\n}\r\n\r\nJira.prototype.onProblem = function (alert) {\r\n if (this.params.event_tags_json.length > 0 && getTagValue(this.params.event_tags_json, \'__zbx_jira_requestkey\', false) !== false) {\r\n return this.onUpdate(alert, true);\r\n }\r\n\r\n var data = {\r\n serviceDeskId: this.params.jira_servicedesk_id,\r\n requestTypeId: this.params.jira_request_type_id,\r\n requestFieldValues: {\r\n summary: this.params.alert_subject,\r\n description: this.params.alert_message,\r\n priority: {\r\n "name": this.priority\r\n }\r\n }\r\n };\r\n\r\n if (this.labels && this.labels.length > 0) {\r\n data.requestFieldValues.labels = this.labels;\r\n }\r\n\r\n if (this.params.components && this.params.components.length > 0) {\r\n data.requestFieldValues.components = this.params.components;\r\n }\r\n\r\n var response = this.sendRequest(\'POST\', \'/rest/servicedeskapi/request\', this.addCustomFields(data, true));\r\n this.result.tags = {\r\n __zbx_jira_requestkey: response.issueKey,\r\n __zbx_jira_requestlink: this.params.jira_url + \'/browse/\' + response.issueKey\r\n }\r\n return this.result;\r\n}\r\n\r\nJira.prototype.onUpdate = function (alert, dontUpdatePriority) {\r\n var data = {\r\n fields: {\r\n summary: this.params.alert_subject,\r\n priority: {\r\n "name": this.priority\r\n }\r\n }\r\n };\r\n\r\n if (dontUpdatePriority && this.params.event_source != 0) {\r\n delete data[\'fields\'][\'priority\'];\r\n }\r\n\r\n var jira_issue_key = getTagValue(this.params.event_tags_json, \'__zbx_jira_requestkey\', true);\r\n this.sendRequest(\'PUT\', \'/rest/api/latest/issue/\' + encodeURIComponent(jira_issue_key) + \'?returnIssue=true\', this.addCustomFields(data));\r\n this.commentIssue(jira_issue_key);\r\n\r\n return this.result;\r\n}\r\n\r\nJira.prototype.onResolve = function (alert) {\r\n return this.onUpdate(alert, true);\r\n}\r\n\r\nJira.prototype.onDiscovery = function (alert) {\r\n this.priority = this.params.jira_priority_discovery;\r\n return this.onProblem(alert);\r\n}\r\n\r\nJira.prototype.onAutoreg = function (alert) {\r\n this.priority = this.params.jira_priority_autoregistration;\r\n return this.onProblem(alert);\r\n}\r\n\r\ntry {\r\n var hook = new Jira(value);\r\n hook.request = new CHttpRequest(Logger);\r\n return hook.run();\r\n}\r\ncatch (error) {\r\n Logger.log(Logger.WARN, \'notification failed: \' + error);\r\n throw \'Sending failed: \' + error;\r\n}','30s','1','1','{EVENT.TAGS.__zbx_jira_requestlink}','Jira Service Management: {EVENT.TAGS.__zbx_jira_requestkey}','https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/jira_service_management\r\n\r\n1. To make this integration work, you will need the following from Jira:\r\n * Jira instance URL;\r\n * Jira service desk id and request type id that the issues created by Zabbix will use;\r\n * Jira username and password or API token. API token is strongly recommended and can be obtained at https://id.atlassian.com/manage/api-tokens.\r\n2. In the Zabbix web interface, go to Administration → Macros section. Set up the global macro "{$ZABBIX.URL}" which will contain the URL to the Zabbix frontend.\r\n3. On this page replace the placeholder \'<...>\' values with the ones from the step #1.\r\n4. In Zabbix, you need to have a Zabbix user and add Media with the Jira Service Management media type. Make sure this user has access to all hosts for which you would like problem issues to be created in Jira.','0'),
('80','4','Line','','','','','','','','25','0','0','0','0','1','3','10s','1','function sendMessage(to, messages, params) {\r\n var response,\r\n request = new HttpRequest();\r\n\r\n if (typeof params.HTTPProxy === \'string\' && params.HTTPProxy.trim() !== \'\') {\r\n request.setProxy(params.HTTPProxy);\r\n }\r\n\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Authorization: Bearer \' + params.bot_token);\r\n\r\n response = request.post(\'https://api.line.me/v2/bot/message/push\', JSON.stringify({\r\n "to": to,\r\n "messages": messages\r\n }));\r\n\r\n if (request.getStatus() !== 200) {\r\n throw response;\r\n }\r\n}\r\n\r\nfunction validateParams(params) {\r\n if (typeof params.bot_token !== \'string\' || params.bot_token.trim() === \'\') {\r\n throw \'Field "bot_token" cannot be empty\';\r\n }\r\n\r\n if ([0, 1, 2, 3].indexOf(parseInt(params.event_source)) === -1) {\r\n throw \'Incorrect "event_source" parameter given: "\' + params.event_source + \'".\\nMust be 0-3.\';\r\n }\r\n\r\n if (params.event_source !== \'0\') {\r\n params.event_nseverity = \'0\';\r\n params.event_severity = \'Not classified\';\r\n params.event_update_status = \'0\';\r\n }\r\n\r\n if (params.event_source === \'1\' || params.event_source === \'2\') {\r\n params.event_value = \'1\';\r\n }\r\n\r\n if ([0, 1, 2, 3, 4, 5].indexOf(parseInt(params.event_nseverity)) === -1) {\r\n throw \'Incorrect "event_nseverity" parameter given: \' + params.event_nseverity + \'\\nMust be 0-5.\';\r\n }\r\n\r\n if (params.event_update_status !== \'0\' && params.event_update_status !== \'1\') {\r\n throw \'Incorrect "event_update_status" parameter given: \' + params.event_update_status + \'\\nMust be 0 or 1.\';\r\n }\r\n\r\n if (params.event_value !== \'0\' && params.event_value !== \'1\') {\r\n throw \'Incorrect "event_value" parameter given: \' + params.event_value + \'\\nMust be 0 or 1.\';\r\n }\r\n\r\n if (isNaN(params.trigger_id) && params.event_source === \'0\') {\r\n throw \'field "trigger_id" is not a number\';\r\n }\r\n\r\n if (typeof params.zabbix_url !== \'string\' || params.zabbix_url.trim() === \'\') {\r\n throw \'Field "zabbix_url" cannot be empty\';\r\n }\r\n\r\n if (!/^(http|https):\\/\\/.+/.test(params.zabbix_url)) {\r\n throw \'Field "zabbix_url" must contain a schema\';\r\n }\r\n}\r\n\r\nfunction getZabbixProblemLink(params) {\r\n return params.zabbix_url + (params.zabbix_url.endsWith(\'/\') ? \'\' : \'/\') + \'tr_events.php?triggerid=\' + params.trigger_id + \'&eventid=\' + params.event_id; \r\n}\r\n\r\ntry {\r\n var params = JSON.parse(value);\r\n\r\n validateParams(params);\r\n\r\n severity_emoji = [\r\n "\\u26AA",\r\n "\\uD83D\\uDD35",\r\n "\\uD83D\\uDFE4",\r\n "\\uD83D\\uDFE1",\r\n "\\uD83D\\uDFE0",\r\n "\\uD83D\\uDD34",\r\n ];\r\n\r\n // If its a trigger and a recovery operation and not an update operation.\r\n if (params.event_source === \'0\' && params.event_value === \'0\' && params.event_update_status === \'0\') {\r\n var line_message = [\r\n {\r\n "type": "text",\r\n "text": \'\\u2705 \' + params.alert_subject + \'\\n\\n\' + params.alert_message + \'\\n\' + params.trigger_description + \'\\n\\n\' + getZabbixProblemLink(params)\r\n }\r\n ];\r\n }\r\n // If its a trigger and its a problem.\r\n else if (params.event_source === \'0\' && params.event_value === \'1\') {\r\n var line_message = [\r\n {\r\n "type": "text",\r\n "text": severity_emoji[params.event_nseverity] + \' \' + params.alert_subject + \'\\n\\n\' + params.alert_message + \'\\n\' + params.trigger_description + \'\\n\\n\' + getZabbixProblemLink(params)\r\n }\r\n ];\r\n }\r\n // If its a trigger and its an update operation.\r\n else if (params.event_source === \'0\' && params.event_update_status === \'1\') {\r\n var line_message = [\r\n {\r\n "type": "text",\r\n "text": \'\\u2733 \' + severity_emoji[params.event_nseverity] + \' \' + params.alert_subject + \'\\n\\n\' + params.alert_message + \'\\n\' + params.trigger_description + \'\\n\\n\' + getZabbixProblemLink(params)\r\n }\r\n ];\r\n }\r\n else {\r\n var line_message = [\r\n {\r\n "type": "text",\r\n "text": params.alert_subject + \'\\n\\n\' + params.alert_message + \'\\n\'\r\n }\r\n ];\r\n }\r\n\r\n sendMessage(params.send_to, line_message, params);\r\n\r\n return \'OK\';\r\n}\r\ncatch (err) {\r\n Zabbix.log(4, \'[ Line Webhook ] Line notification failed : \' + err);\r\n throw \'Line notification failed : \' + err;\r\n}','30s','0','0','','','Please refer to setup guide here: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/line\r\n\r\nSet bot_token parameter to your Line bot token.\r\nWhen assigning Line media to the Zabbix user - add the ID of the target recipient. Use a userId, groupId, or roomId value.','0'),
('81','4','ManageEngine ServiceDesk','','','','','','','','25','0','0','0','0','1','3','10s','1','var MEngine = {\r\n params: {},\r\n\r\n setParams: function (params) {\r\n if (typeof params !== \'object\') {\r\n return;\r\n }\r\n\r\n MEngine.params = params;\r\n if (typeof MEngine.params.url === \'string\') {\r\n if (!MEngine.params.url.endsWith(\'/\')) {\r\n MEngine.params.url += \'/\';\r\n }\r\n\r\n MEngine.params.url += \'api/v3/\';\r\n }\r\n\r\n if (MEngine.params.on_premise.toLowerCase() !== \'true\'\r\n && typeof MEngine.params.on_demand_url_auth === \'string\') {\r\n if (!MEngine.params.on_demand_url_auth.endsWith(\'/\')) {\r\n MEngine.params.on_demand_url_auth += \'/\';\r\n }\r\n\r\n MEngine.params.on_demand_url_auth += \'oauth/v2/token?\';\r\n }\r\n },\r\n\r\n setProxy: function (HTTPProxy) {\r\n MEngine.HTTPProxy = HTTPProxy;\r\n },\r\n\r\n createLink: function (id, url) {\r\n return url + (url.endsWith(\'/\') ? \'\' : \'/\') +\r\n ((MEngine.params.on_premise.toLowerCase() === \'true\')\r\n ? (\'WorkOrder.do?woMode=viewWO&woID=\' + id)\r\n : (\'app/itdesk/ui/requests/\' + id + \'/details\')\r\n );\r\n },\r\n\r\n refreshAccessToken: function () {\r\n [\r\n \'on_demand_url_auth\',\r\n \'on_demand_refresh_token\',\r\n \'on_demand_client_id\',\r\n \'on_demand_client_secret\'\r\n ].forEach(function (field) {\r\n if (typeof MEngine.params !== \'object\' || typeof MEngine.params[field] === \'undefined\'\r\n || MEngine.params[field].trim() === \'\' ) {\r\n throw \'Required MEngine param is not set: "sd_\' + field + \'".\';\r\n }\r\n });\r\n\r\n var response,\r\n request = new HttpRequest(),\r\n url = MEngine.params.on_demand_url_auth +\r\n \'refresh_token=\' + encodeURIComponent(MEngine.params.on_demand_refresh_token) +\r\n \'&grant_type=refresh_token&client_id=\' + encodeURIComponent(MEngine.params.on_demand_client_id) +\r\n \'&client_secret=\' + encodeURIComponent(MEngine.params.on_demand_client_secret) +\r\n \'&redirect_uri=https://www.zoho.com&scope=SDPOnDemand.requests.ALL\';\r\n\r\n if (MEngine.HTTPProxy) {\r\n request.setProxy(MEngine.HTTPProxy);\r\n }\r\n\r\n Zabbix.log(4, \'[ ManageEngine Webhook ] Refreshing access token. Request: \' + url);\r\n\r\n response = request.post(url);\r\n\r\n Zabbix.log(4, \'[ ManageEngine Webhook ] Received response with status code \' +\r\n request.getStatus() + \'\\n\' + response);\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n Zabbix.log(4, \'[ ManageEngine Webhook ] Failed to parse response received from Zoho Accounts\');\r\n }\r\n\r\n if ((request.getStatus() < 200 || request.getStatus() >= 300) && !response.access_token) {\r\n throw \'Access token refresh failed with HTTP status code \' + request.getStatus() +\r\n \'. Check debug log for more information.\';\r\n }\r\n else {\r\n MEngine.params.on_demand_auth_token = response.access_token;\r\n }\r\n },\r\n\r\n request: function (method, query, data) {\r\n var response,\r\n url = MEngine.params.url + query,\r\n input,\r\n request = new HttpRequest(),\r\n message;\r\n\r\n if (MEngine.params.on_premise.toLowerCase() === \'true\') {\r\n request.addHeader(\'TECHNICIAN_KEY: \' + MEngine.params.on_premise_auth_token);\r\n }\r\n else {\r\n request.addHeader(\'Authorization: Zoho-oauthtoken \' + MEngine.params.on_demand_auth_token);\r\n request.addHeader(\'Accept: application/v3+json\');\r\n }\r\n\r\n if (MEngine.HTTPProxy) {\r\n request.setProxy(MEngine.HTTPProxy);\r\n }\r\n\r\n if (typeof data !== \'undefined\') {\r\n data = JSON.stringify(data);\r\n }\r\n\r\n input = \'input_data=\' + encodeURIComponent(data);\r\n Zabbix.log(4, \'[ ManageEngine Webhook ] Sending request: \' + url + \'?\' + input);\r\n\r\n switch (method) {\r\n case \'post\':\r\n response = request.post(url, input);\r\n break;\r\n\r\n case \'put\':\r\n response = request.put(url, input);\r\n break;\r\n\r\n default:\r\n throw \'Unsupported HTTP request method: \' + method;\r\n }\r\n\r\n Zabbix.log(4, \'[ ManageEngine Webhook ] Received response with status code \' +\r\n request.getStatus() + \'\\n\' + response);\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n Zabbix.log(4, \'[ ManageEngine Webhook ] Failed to parse response received from ManageEngine\');\r\n }\r\n\r\n if ((request.getStatus() < 200 || request.getStatus() >= 300)\r\n && typeof response.response_status !== \'object\') {\r\n throw \'Request failed with HTTP status code \' + request.getStatus() +\r\n \'. Check debug log for more information.\';\r\n }\r\n else if (typeof response.response_status === \'object\' && response.response_status.status === \'failed\') {\r\n message = \'Request failed with status_code \';\r\n\r\n if (typeof response.response_status.messages === \'object\'\r\n && response.response_status.messages[0]\r\n && response.response_status.messages[0].message) {\r\n message += response.response_status.messages[0].status_code +\r\n \'. Message: \' + response.response_status.messages[0].message;\r\n }\r\n else {\r\n message += response.response_status.status_code;\r\n }\r\n\r\n message += \'. Check debug log for more information.\';\r\n throw message;\r\n }\r\n else if (response.request) {\r\n return response.request.id;\r\n }\r\n },\r\n\r\n createPaylaod: function (fields, isNote) {\r\n var data = {},\r\n result;\r\n\r\n if (isNote) {\r\n data.description = fields[\'field_string:description\'].replace(/(?:\\r\\n|\\r|\\n)/g, \'
\');\r\n result = {request_note: data};\r\n }\r\n else {\r\n Object.keys(fields)\r\n .forEach(function(field) {\r\n if (fields[field].trim() === \'\') {\r\n Zabbix.log(4, \'[ ManageEngine Webhook ] Field "\' + field +\r\n \'" can\\\'t be empty. The field ignored.\');\r\n }\r\n else {\r\n try {\r\n var prefix = field.split(\':\')[0],\r\n root;\r\n\r\n if (prefix.startsWith(\'udf_\') && !data.udf_fields) {\r\n data.udf_fields = {};\r\n root = data.udf_fields;\r\n }\r\n else if (prefix.startsWith(\'udf_\')) {\r\n root = data.udf_fields;\r\n }\r\n else {\r\n root = data;\r\n }\r\n\r\n if (prefix.endsWith(\'string\')) {\r\n root[field.substring(field.indexOf(\':\') + 1)\r\n .toLowerCase()] = fields[field];\r\n }\r\n else {\r\n root[field.substring(field.indexOf(\':\') + 1)\r\n .toLowerCase()] = {\r\n name: fields[field]\r\n };\r\n }\r\n }\r\n catch (error) {\r\n Zabbix.log(4, \'[ ManageEngine Webhook ] Can\\\'t parse field "\' + field +\r\n \'". The field ignored.\');\r\n }\r\n }\r\n });\r\n if (data.description) {\r\n data.description = data.description.replace(/(?:\\r\\n|\\r|\\n)/g, \'
\');\r\n }\r\n\r\n result = {request: data};\r\n }\r\n\r\n return result;\r\n }\r\n};\r\n\r\ntry {\r\n var params = JSON.parse(value),\r\n fields = {},\r\n sd = {},\r\n result = {tags: {}},\r\n required_params = [\r\n \'sd_on_premise\', \'field_string:subject\', \'field_string:description\',\r\n \'event_recovery_value\', \'event_source\', \'event_value\', \'event_update_status\'\r\n ],\r\n severities = [\r\n {name: \'not_classified\', color: \'#97AAB3\'},\r\n {name: \'information\', color: \'#7499FF\'},\r\n {name: \'warning\', color: \'#FFC859\'},\r\n {name: \'average\', color: \'#FFA059\'},\r\n {name: \'high\', color: \'#E97659\'},\r\n {name: \'disaster\', color: \'#E45959\'},\r\n {name: \'default\', color: \'#000000\'}\r\n ];\r\n\r\n Object.keys(params)\r\n .forEach(function (key) {\r\n if (key.startsWith(\'sd_\')) {\r\n sd[key.substring(3)] = params[key];\r\n }\r\n else if (key.startsWith(\'field_\') || key.startsWith(\'udf_field_\')) {\r\n fields[key] = params[key];\r\n }\r\n\r\n if (required_params.indexOf(key) !== -1 && params[key].trim() === \'\') {\r\n throw \'Parameter "\' + key + \'" can\\\'t be empty.\';\r\n }\r\n });\r\n\r\n if ([0, 1, 2, 3].indexOf(parseInt(params.event_source)) === -1) {\r\n throw \'Incorrect "event_source" parameter given: \' + params.event_source + \'\\nMust be 0-3.\';\r\n }\r\n\r\n // Check {EVENT.VALUE} for trigger-based and internal events.\r\n if (params.event_value !== \'0\' && params.event_value !== \'1\'\r\n && (params.event_source === \'0\' || params.event_source === \'3\')) {\r\n throw \'Incorrect "event_value" parameter given: \' + params.event_value + \'\\nMust be 0 or 1.\';\r\n }\r\n\r\n // Check {EVENT.UPDATE.STATUS} only for trigger-based events.\r\n if (params.event_update_status !== \'0\' && params.event_update_status !== \'1\' && params.event_source === \'0\') {\r\n throw \'Incorrect "event_update_status" parameter given: \' + params.event_update_status + \'\\nMust be 0 or 1.\';\r\n }\r\n\r\n if (params.event_source !== \'0\' && params.event_recovery_value === \'0\') {\r\n throw \'Recovery operations are supported only for trigger-based actions.\';\r\n }\r\n\r\n if ([0, 1, 2, 3, 4, 5].indexOf(parseInt(params.event_nseverity)) === -1) {\r\n params.event_nseverity = \'6\';\r\n }\r\n\r\n if (params.event_update_status === \'1\' && (typeof params.sd_request_id === \'undefined\'\r\n || params.sd_request_id.trim() === \'\'\r\n || params.sd_request_id === \'{EVENT.TAGS.__zbx_sd_request_id}\'\r\n || params.sd_request_id === \'*UNKNOWN*\')) {\r\n throw \'Parameter "sd_request_id" can\\\'t be empty for update operation.\';\r\n }\r\n\r\n MEngine.setParams(sd);\r\n MEngine.setProxy(params.HTTPProxy);\r\n\r\n if (MEngine.params.on_premise.toLowerCase() !== \'true\') {\r\n MEngine.refreshAccessToken();\r\n }\r\n\r\n // Create issue for non trigger-based events.\r\n if (params.event_source !== \'0\' && params.event_recovery_value !== \'0\') {\r\n fields[\'field_object:priority\'] = params[\'priority_\' + severities[params.event_nseverity].name]\r\n || \'Normal\';\r\n\r\n MEngine.request(\'post\', \'requests\', MEngine.createPaylaod(fields));\r\n }\r\n // Create issue for trigger-based events.\r\n else if (params.event_value === \'1\' && params.event_update_status === \'0\') {\r\n fields[\'field_object:priority\'] = params[\'priority_\' + severities[params.event_nseverity].name]\r\n || \'Normal\';\r\n\r\n var id = MEngine.request(\'post\', \'requests\', MEngine.createPaylaod(fields));\r\n\r\n result.tags.__zbx_sd_request_id = id;\r\n result.tags.__zbx_sd_request_link = MEngine.createLink(id, params.sd_url);\r\n }\r\n // Update created issue for trigger-based event.\r\n else {\r\n if (params.event_update_status === \'1\') {\r\n MEngine.request(\'post\', \'requests/\' + params.sd_request_id + \'/notes\',\r\n MEngine.createPaylaod(fields, true)\r\n );\r\n }\r\n delete fields[\'field_string:description\'];\r\n MEngine.request(\'put\', \'requests/\' + params.sd_request_id, MEngine.createPaylaod(fields));\r\n }\r\n\r\n return JSON.stringify(result);\r\n}\r\ncatch (error) {\r\n Zabbix.log(3, \'[ ManageEngine Webhook ] ERROR: \' + error);\r\n throw \'Sending failed: \' + error;\r\n}','30s','1','1','{EVENT.TAGS.__zbx_sd_request_link}','ManageEngine: {EVENT.TAGS.__zbx_sd_request_id}','','0'),
('82','4','MantisBT','','','','','','','','25','0','0','0','0','1','1','10s','1','var Mantisbt = {\r\n params: {},\r\n\r\n setParams: function (params) {\r\n if (typeof params !== \'object\') {\r\n return;\r\n }\r\n Mantisbt.params = params;\r\n },\r\n\r\n setProxy: function (HTTPProxy) {\r\n Mantisbt.HTTPProxy = HTTPProxy;\r\n },\r\n\r\n checkUrlFormat: function (url) {\r\n if (typeof url === \'string\' && !url.endsWith(\'/\')) {\r\n url += \'/\';\r\n }\r\n\r\n if (url.indexOf(\'http://\') === -1 && url.indexOf(\'https://\') === -1) {\r\n url = \'https://\' + url;\r\n }\r\n\r\n return url;\r\n },\r\n\r\n getProblemURL: function (zabbix_url, triggerid, eventid, event_source) {\r\n var problem_url = zabbix_url;\r\n\r\n if (event_source === \'0\') {\r\n problem_url += \'tr_events.php?triggerid=\' + triggerid + \'&eventid=\' + eventid;\r\n }\r\n\r\n return problem_url;\r\n },\r\n\r\n request: function (method, url, data) {\r\n [\'token\', \'url\', \'category\'].forEach(function (field) {\r\n if (typeof Mantisbt.params !== \'object\' || typeof Mantisbt.params[field] === \'undefined\' || Mantisbt.params[field] === \'\') {\r\n throw \'Required MantisBT param is not set: "\' + field + \'".\';\r\n }\r\n });\r\n\r\n var response,\r\n request = new HttpRequest();\r\n\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Authorization: \' + Mantisbt.params.token);\r\n\r\n if (typeof Mantisbt.HTTPProxy !== \'undefined\' && Mantisbt.HTTPProxy !== \'\') {\r\n request.setProxy(Mantisbt.HTTPProxy);\r\n }\r\n\r\n if (typeof data !== \'undefined\') {\r\n data = JSON.stringify(data);\r\n }\r\n\r\n Zabbix.log(4, \'[ MantisBT Webhook ] Sending request: \' + url + ((typeof data === \'string\') ? (\'\\n\' + data) : \'\'));\r\n\r\n switch (method) {\r\n case \'post\':\r\n response = request.post(url, data);\r\n break;\r\n\r\n case \'patch\':\r\n response = request.patch(url, data);\r\n break;\r\n\r\n default:\r\n throw \'Unsupported HTTP request method: \' + method;\r\n }\r\n\r\n Zabbix.log(4, \'[ MantisBT Webhook ] Received response with status code \' + request.getStatus() + \'\\n\' + response);\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n Zabbix.log(4, \'[ MantisBT Webhook ] Failed to parse the response received from MantisBT\');\r\n response = null;\r\n }\r\n }\r\n\r\n if (typeof response !== \'object\') {\r\n throw \'Failed to process the response received from MantisBT. Check debug log for more information.\';\r\n }\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n var message = \'Request failed with status code \' + request.getStatus();\r\n\r\n if (typeof response.message !== \'undefined\') {\r\n message += \': \' + response.message;\r\n }\r\n\r\n throw message;\r\n }\r\n\r\n return response;\r\n }\r\n};\r\n\r\ntry {\r\n var params = JSON.parse(value),\r\n mantisbt = {},\r\n url = \'\',\r\n data = {},\r\n result = { tags: {} },\r\n required_params = [\r\n \'alert_subject\', \'alert_message\', \'event_source\', \'event_value\', \'event_update_action\',\r\n \'event_update_status\', \'event_recovery_value\', \'event_nseverity\', \'event_tagsjson\',\r\n \'event_id\', \'trigger_id\', \'zabbix_url\', \'alert_sendto\',\r\n \'mantisbt_token\', \'mantisbt_url\', \'mantisbt_category\', \'mantisbt_issue_number\', \'mantisbt_use_zabbix_tags\'\r\n ],\r\n method,\r\n severities = [\'none\', \'low\', \'normal\', \'high\', \'urgent\', \'immediate\'];\r\n\r\n\r\n Object.keys(params)\r\n .forEach(function (key) {\r\n if (key.startsWith(\'mantisbt_\')) {\r\n mantisbt[key.substring(9)] = params[key];\r\n }\r\n else if (required_params.indexOf(key) !== -1 && params[key] === \'\') {\r\n throw \'Parameter "\' + key + \'" cannot be empty.\';\r\n }\r\n });\r\n\r\n if ([0, 1, 2, 3].indexOf(parseInt(params.event_source)) === -1) {\r\n throw \'Incorrect "event_source" parameter given: \' + params.event_source + \'\\nMust be 0-3.\';\r\n }\r\n\r\n // Check {EVENT.VALUE} for trigger-based and internal events.\r\n if (params.event_value !== \'0\' && params.event_value !== \'1\' && (params.event_source === \'0\' || params.event_source === \'3\')) {\r\n throw \'Incorrect "event_value" parameter given: \' + params.event_value + \'\\nMust be 0 or 1.\';\r\n }\r\n\r\n // Check {EVENT.UPDATE.STATUS} only for trigger-based events.\r\n if (params.event_update_status !== \'0\' && params.event_update_status !== \'1\' && params.event_source === \'0\') {\r\n throw \'Incorrect "event_update_status" parameter given: \' + params.event_update_status + \'\\nMust be 0 or 1.\';\r\n }\r\n\r\n if (params.event_source !== \'0\' && params.event_recovery_value === \'0\') {\r\n throw \'Recovery operations are supported for trigger-based actions only.\';\r\n }\r\n\r\n if (typeof params.zabbix_url !== \'string\' || params.zabbix_url.trim() === \'\' || params.zabbix_url === \'{$ZABBIX.URL}\') {\r\n throw \'Field "zabbix_url" cannot be empty.\';\r\n }\r\n\r\n // Check for backslash in the end of url and schema.\r\n mantisbt.url = Mantisbt.checkUrlFormat(mantisbt.url);\r\n params.zabbix_url = Mantisbt.checkUrlFormat(params.zabbix_url);\r\n\r\n // In case of resolve event.\r\n if (params.event_source === \'0\' && params.event_value === \'0\') {\r\n method = "patch";\r\n url = mantisbt.url + \'api/rest/issues/\' + mantisbt.issue_number;\r\n data = {\r\n summary: params.alert_subject,\r\n status: {\r\n name: "resolved"\r\n }\r\n };\r\n if (/commented/.test(params.event_update_action)) {\r\n data.additional_information = params.event_update_message;\r\n }\r\n process_tags = false;\r\n }\r\n // In case of update event.\r\n else if (params.event_source === \'0\' && params.event_update_status === \'1\') {\r\n method = "patch";\r\n url = mantisbt.url + \'api/rest/issues/\' + mantisbt.issue_number;\r\n data = {\r\n status: {},\r\n priority: {\r\n name: severities[parseInt(params.event_nseverity, 10)]\r\n }\r\n };\r\n if (/commented/.test(params.event_update_action)) {\r\n data.additional_information = params.event_update_message;\r\n }\r\n if (/acknowledged/.test(params.event_update_action)) {\r\n data.status.name = "acknowledged";\r\n }\r\n if (/unacknowledged/.test(params.event_update_action)) {\r\n data.status.name = "new";\r\n }\r\n process_tags = false;\r\n }\r\n else {\r\n method = \'post\';\r\n url = mantisbt.url + \'api/rest/issues\';\r\n\r\n data = {\r\n summary: params.alert_subject,\r\n description: params.alert_message,\r\n project: { name: params.alert_sendto },\r\n category: { name: mantisbt.category },\r\n priority: {\r\n name: parseInt(params.event_nseverity, 10) ? severities[parseInt(params.event_nseverity, 10)] : "none"\r\n }\r\n };\r\n if (params.event_source === \'0\') {\r\n problem_url = Mantisbt.getProblemURL(params.zabbix_url, params.trigger_id, params.event_id, params.event_source);\r\n data.description += \'\\n\' + problem_url;\r\n\r\n if (mantisbt.use_zabbix_tags === "true") {\r\n var alert_tags = JSON.parse(params.event_tagsjson);\r\n data.tags = alert_tags.map(function (t) { return { name: t.value ? (t.tag + \': \' + t.value) : t.tag }; });\r\n }\r\n }\r\n process_tags = true;\r\n }\r\n\r\n Mantisbt.setParams(mantisbt);\r\n Mantisbt.setProxy(params.HTTPProxy);\r\n\r\n var response = Mantisbt.request(method, url, data);\r\n\r\n if (process_tags) {\r\n result.tags.__zbx_mantisbt_issue_number = response.issue.id;\r\n result.tags.__zbx_mantisbt_link = mantisbt.url + \'view.php?id=\' + response.issue.id;\r\n }\r\n\r\n Zabbix.log(4, \'[ MantisBT Webhook ] Result: \' + JSON.stringify(result));\r\n return JSON.stringify(result);\r\n}\r\ncatch (error) {\r\n Zabbix.log(4, \'[ MantisBT Webhook ] ERROR: \' + error);\r\n throw \'Sending failed: \' + error;\r\n}','30s','1','1','{EVENT.TAGS.__zbx_mantisbt_link}','MantisBT: Issue ID {EVENT.TAGS.__zbx_mantisbt_issue_number}','','0'),
('83','4','Mattermost','','','','','','','','25','0','0','0','0','1','1','10s','1','var SEVERITY_COLORS = [\r\n \'#97AAB3\', \'#7499FF\', \'#FFC859\',\r\n \'#FFA059\', \'#E97659\', \'#E45959\'\r\n];\r\n\r\nvar RESOLVE_COLOR = \'#009900\';\r\n\r\nvar SEND_MODE_HANDLERS = {\r\n alarm: handlerAlarm,\r\n event: handlerEvent\r\n};\r\n\r\nif (!String.prototype.format) {\r\n String.prototype.format = function() {\r\n var args = arguments;\r\n\r\n return this.replace(/{(\\d+)}/g, function(match, number) {\r\n return number in args\r\n ? args[number]\r\n : match\r\n ;\r\n });\r\n };\r\n}\r\n\r\nfunction isEventProblem(params) {\r\n return params.event_value == 1\r\n && params.event_update_status == 0\r\n ;\r\n}\r\n\r\nfunction isEventUpdate(params) {\r\n return params.event_value == 1\r\n && params.event_update_status == 1\r\n ;\r\n}\r\n\r\nfunction isEventResolve(params) {\r\n return params.event_value == 0;\r\n}\r\n\r\nfunction getPermalink(mattermost_url, team_name, postid) {\r\n return \'{0}/{1}/pl/{2}\'.format(\r\n mattermost_url.replace(/\\/+$/, \'\'),\r\n team_name,\r\n postid\r\n );\r\n}\r\n\r\nfunction getChannel(send_to) {\r\n switch (true) {\r\n case /.+\\/#.+/.test(send_to):\r\n return getChannelByName(send_to);\r\n\r\n case /@.+/.test(send_to):\r\n return getDirectChannel(send_to);\r\n\r\n default:\r\n return getChannelByID(send_to);\r\n }\r\n}\r\n\r\nfunction getChannelByName(send_to) {\r\n var team_chan = send_to\r\n .trim()\r\n .split(\'/#\');\r\n\r\n var resp = JSON.parse(req.get(\r\n Mattermost.channel_byname.format(team_chan[0], team_chan[1]),\r\n JSON.stringify(fields)\r\n )\r\n );\r\n\r\n if (req.getStatus() != 200) {\r\n throw \'[{0}] {1}\'.format(resp.status_code, resp.message);\r\n }\r\n\r\n return resp;\r\n}\r\n\r\nfunction getDirectChannel(send_to) {\r\n Zabbix.log(5, \'[ Mattermost Webhook ] Call {0}({1})\'.format(\r\n arguments.callee.name,\r\n JSON.stringify(arguments)\r\n ));\r\n\r\n var teamUser = send_to\r\n .trim()\r\n .split(\'/@\'),\r\n bot = getBotUser(),\r\n user = getUserByName(teamUser[1]);\r\n\r\n var resp = JSON.parse(req.post(\r\n Mattermost.direct_channel,\r\n JSON.stringify([bot.id, user.id])\r\n )\r\n );\r\n\r\n Zabbix.log(5, \'[ Mattermost Webhook ] Result {0}: {1}\'.format(\r\n arguments.callee.name,\r\n JSON.stringify(resp)\r\n ));\r\n\r\n if (req.getStatus() != 201) {\r\n throw \'[{0}] {1}\'.format(resp.status_code, resp.message);\r\n }\r\n\r\n resp.team_name = teamUser[0];\r\n\r\n return resp;\r\n}\r\n\r\nfunction getChannelByID(channelID) {\r\n Zabbix.log(5, \'[ Mattermost Webhook ] Call {0}({1})\'.format(\r\n arguments.callee.name,\r\n JSON.stringify(arguments)\r\n ));\r\n\r\n var resp = JSON.parse(req.get(\r\n Mattermost.get_channel.format(channelID),\r\n JSON.stringify(fields)\r\n )\r\n );\r\n\r\n Zabbix.log(5, \'[ Mattermost Webhook ] Result {0}: {1}\'.format(\r\n arguments.callee.name,\r\n JSON.stringify(resp)\r\n ));\r\n\r\n if (req.getStatus() != 200) {\r\n throw \'[{0}] {1}\'.format(resp.status_code, resp.message);\r\n }\r\n\r\n return resp;\r\n}\r\n\r\nfunction getBotUser() {\r\n Zabbix.log(5, \'[ Mattermost Webhook ] Call {0}({1})\'.format(\r\n arguments.callee.name,\r\n JSON.stringify(arguments)\r\n ));\r\n\r\n var resp = JSON.parse(req.get(\r\n Mattermost.bot_user,\r\n JSON.stringify(fields)\r\n )\r\n );\r\n\r\n Zabbix.log(5, \'[ Mattermost Webhook ] Result {0}: {1}\'.format(\r\n arguments.callee.name,\r\n JSON.stringify(resp)\r\n ));\r\n\r\n if (req.getStatus() != 200) {\r\n throw \'[{0}] {1}\'.format(resp.status_code, resp.message);\r\n }\r\n\r\n return resp;\r\n}\r\n\r\nfunction getUserByName(userName) {\r\n Zabbix.log(5, \'[ Mattermost Webhook ] Call {0}({1})\'.format(\r\n arguments.callee.name,\r\n JSON.stringify(arguments)\r\n ));\r\n\r\n var resp = JSON.parse(req.get(\r\n Mattermost.user_byname.format(userName),\r\n JSON.stringify(fields)\r\n )\r\n );\r\n\r\n Zabbix.log(5, \'[ Mattermost Webhook ] Result {0}: {1}\'.format(\r\n arguments.callee.name,\r\n JSON.stringify(resp)\r\n ));\r\n\r\n if (req.getStatus() != 200) {\r\n throw \'[{0}] {1}\'.format(resp.status_code, resp.message);\r\n }\r\n\r\n return resp;\r\n}\r\n\r\nfunction getTeamByID(teamID) {\r\n Zabbix.log(5, \'[ Mattermost Webhook ] Call {0}({1})\'.format(\r\n arguments.callee.name,\r\n JSON.stringify(arguments)\r\n ));\r\n\r\n var resp = JSON.parse(req.get(\r\n Mattermost.get_team.format(teamID),\r\n JSON.stringify(fields)\r\n )\r\n );\r\n\r\n Zabbix.log(5, \'[ Mattermost Webhook ] Result {0}: {1}\'.format(\r\n arguments.callee.name,\r\n JSON.stringify(resp)\r\n ));\r\n\r\n if (req.getStatus() != 200) {\r\n throw \'[{0}] {1}\'.format(resp.status_code, resp.message);\r\n }\r\n\r\n return resp;\r\n}\r\n\r\nfunction createProblemURL(zabbix_url, triggerid, eventid, event_source) {\r\n var problem_url = \'\';\r\n if (event_source === \'0\') {\r\n problem_url = \'{0}/tr_events.php?triggerid={1}&eventid={2}\'\r\n .format(\r\n zabbix_url,\r\n triggerid,\r\n eventid\r\n );\r\n }\r\n else {\r\n problem_url = zabbix_url;\r\n }\r\n\r\n return problem_url;\r\n}\r\n\r\nfunction getTagValue(event_tags, key) {\r\n var pattern = new RegExp(\'(\' + key + \':.+)\');\r\n var tagValue = event_tags\r\n .split(\',\')\r\n .filter(function (v) {\r\n return v.match(pattern);\r\n })\r\n .map(function (v) {\r\n return v.split(\':\')[1];\r\n })[0]\r\n || 0;\r\n\r\n return tagValue;\r\n}\r\n\r\nfunction handlerAlarm(req, params) {\r\n var channel = getChannel(params.send_to);\r\n var fields = {\r\n channel_id: channel.id,\r\n props: {}\r\n };\r\n\r\n if (isEventProblem(params)) {\r\n var team_name = channel.team_name\r\n ? channel.team_name\r\n : getTeamByID(channel.team_id).name;\r\n\r\n fields.props.attachments = [\r\n createMessage(\r\n SEVERITY_COLORS[params.event_nseverity] || 0,\r\n params.event_date,\r\n params.event_time,\r\n createProblemURL(params.zabbix_url, params.trigger_id, params.event_id, params.event_source)\r\n )\r\n ];\r\n\r\n var resp = JSON.parse(req.post(\r\n Mattermost.post_message,\r\n JSON.stringify(fields)\r\n )\r\n );\r\n\r\n if (req.getStatus() != 201) {\r\n throw \'[{0}] {1}\'.format(resp.status_code, resp.message);\r\n }\r\n\r\n result.tags.__mattermost_post_id = resp.id;\r\n result.tags.__mattermost_channel_id = channel.id;\r\n result.tags.__mattermost_channel_name = channel.name;\r\n result.tags.__mattermost_message_link = getPermalink(\r\n params.mattermost_url,\r\n team_name,\r\n resp.id\r\n );\r\n\r\n }\r\n else if (isEventUpdate(params)) {\r\n fields.root_id = getTagValue(params.event_tags, \'mattermost_post_id\');\r\n\r\n if (params.event_source === \'0\') {}\r\n fields.props.attachments = [\r\n createMessage(\r\n SEVERITY_COLORS[params.event_nseverity] || 0,\r\n params.event_update_date,\r\n params.event_update_time,\r\n createProblemURL(params.zabbix_url, params.trigger_id, params.event_id, params.event_source),\r\n true\r\n )\r\n ];\r\n\r\n resp = JSON.parse(req.post(\r\n Mattermost.post_message, JSON.stringify(fields)\r\n )\r\n );\r\n\r\n if (req.getStatus() != 201) {\r\n throw \'[{0}] {1}\'.format(resp.status_code, resp.message);\r\n }\r\n\r\n }\r\n else if (isEventResolve(params)) {\r\n fields.channel_id = getTagValue(params.event_tags, \'mattermost_channel_id\');\r\n fields.id = getTagValue(params.event_tags, \'mattermost_post_id\');\r\n fields.props.attachments = [\r\n createMessage(\r\n RESOLVE_COLOR,\r\n params.event_date,\r\n params.event_time,\r\n createProblemURL(params.zabbix_url, params.trigger_id, params.event_id, params.event_source)\r\n )\r\n ];\r\n\r\n var post_id = getTagValue(params.event_tags, \'mattermost_post_id\');\r\n\r\n resp = JSON.parse(req.put(\r\n Mattermost.chat_update.format(post_id),\r\n JSON.stringify(fields)\r\n )\r\n );\r\n\r\n if (req.getStatus() != 200) {\r\n throw \'[{0}] {1}\'.format(resp.status_code, resp.message);\r\n }\r\n }\r\n}\r\n\r\nfunction handlerEvent(req, params) {\r\n var channel = getChannel(params.send_to);\r\n var fields = {\r\n channel_id: channel.id,\r\n props: {}\r\n };\r\n\r\n if (isEventProblem(params)) {\r\n var team_name = channel.team_name\r\n ? channel.team_name\r\n : getTeamByID(channel.team_id).name;\r\n\r\n fields.props.attachments = [\r\n createMessage(\r\n SEVERITY_COLORS[params.event_nseverity] || 0,\r\n params.event_date,\r\n params.event_time,\r\n createProblemURL(params.zabbix_url, params.trigger_id, params.event_id, params.event_source)\r\n )\r\n ];\r\n\r\n var resp = JSON.parse(req.post(Mattermost.post_message, JSON.stringify(fields)));\r\n\r\n if (req.getStatus() != 201) {\r\n throw \'[{0}] {1}\'.format(resp.status_code, resp.message);\r\n }\r\n\r\n result.tags.__mattermost_channel_name = channel.name;\r\n result.tags.__mattermost_message_link = getPermalink(\r\n params.mattermost_url,\r\n team_name,\r\n resp.id\r\n );\r\n\r\n }\r\n else if (isEventUpdate(params)) {\r\n fields.props.attachments = [\r\n createMessage(\r\n SEVERITY_COLORS[params.event_nseverity] || 0,\r\n params.event_update_date,\r\n params.event_update_time,\r\n createProblemURL(params.zabbix_url, params.trigger_id, params.event_id, params.event_source),\r\n false\r\n )\r\n ];\r\n\r\n resp = JSON.parse(req.post(Mattermost.post_message, JSON.stringify(fields)));\r\n\r\n if (req.getStatus() != 201) {\r\n throw \'[{0}] {1}\'.format(resp.status_code, resp.message);\r\n }\r\n\r\n }\r\n else if (isEventResolve(params)) {\r\n fields.props.attachments = [\r\n createMessage(\r\n RESOLVE_COLOR,\r\n params.event_recovery_date,\r\n params.event_recovery_time,\r\n createProblemURL(params.zabbix_url, params.trigger_id, params.event_id, params.event_source)\r\n )\r\n ];\r\n\r\n resp = JSON.parse(req.post(Mattermost.post_message, JSON.stringify(fields)));\r\n\r\n if (req.getStatus() != 201) {\r\n throw \'[{0}] {1}\'.format(resp.status_code, resp.message);\r\n }\r\n }\r\n}\r\n\r\nfunction createMessage(\r\n event_severity_color,\r\n event_date,\r\n event_time,\r\n problem_url,\r\n isShort\r\n) {\r\n var message = {\r\n fallbac: params.alert_subject,\r\n title: params.alert_subject,\r\n color: event_severity_color,\r\n title_link: problem_url,\r\n footer: problem_url,\r\n\r\n fields: [\r\n {\r\n title: \'Host\',\r\n value: \'{0} [{1}]\'.format(params.host_name, params.host_ip),\r\n short: true\r\n },\r\n {\r\n title: \'Event time\',\r\n value: \'{0} {1}\'.format(event_date, event_time),\r\n short: true\r\n }\r\n ],\r\n };\r\n\r\n \r\n if (params.event_source === \'0\') {\r\n message.fields.push(\r\n {\r\n title: \'Severity\',\r\n value: params.event_severity,\r\n short: true\r\n },\r\n {\r\n title: \'Opdata\',\r\n value: params.event_opdata,\r\n short: true\r\n }\r\n );\r\n }\r\n\r\n if (!isShort && params.event_source === \'0\') {\r\n message.fields.push(\r\n {\r\n title: \'Event tags\',\r\n value: \'`{0}`\'.format(params.event_tags.replace(/__.+?:(.+?,|.+)/g, \'\') || \'None\'),\r\n short: true\r\n },\r\n {\r\n title: \'Trigger description\',\r\n value: params.trigger_description,\r\n short: true\r\n }\r\n );\r\n }\r\n\r\n if (params.event_source !== \'0\' || params.event_update_status === \'1\') {\r\n message.fields.push(\r\n {\r\n title: \'Details\',\r\n value: params.alert_message,\r\n short: false\r\n }\r\n );\r\n }\r\n\r\n return message;\r\n}\r\n\r\nfunction validateParams(params) {\r\n if (typeof params.bot_token !== \'string\' || params.bot_token.trim() === \'\') {\r\n throw \'Field "bot_token" cannot be empty\';\r\n }\r\n\r\n if (isNaN(params.event_id)) {\r\n throw \'Field "event_id" is not a number\';\r\n }\r\n\r\n if ([0, 1, 2, 3].indexOf(parseInt(params.event_source)) === -1) {\r\n throw \'Incorrect "event_source" parameter given: "\' + params.event_source + \'".\\nMust be 0-3.\';\r\n }\r\n\r\n if (params.event_source !== \'0\') {\r\n params.event_nseverity = \'0\';\r\n params.event_severity = \'Not classified\';\r\n params.event_update_status = \'0\';\r\n params.send_mode = \'event\';\r\n }\r\n\r\n if (params.event_source === \'1\' || params.event_source === \'2\') {\r\n params.event_value = \'1\';\r\n }\r\n\r\n if (params.event_source === \'1\') {\r\n params.host_name = params.discovery_host_dns;\r\n params.host_ip = params.discovery_host_ip;\r\n }\r\n\r\n if ([0, 1, 2, 3, 4, 5].indexOf(parseInt(params.event_nseverity)) === -1) {\r\n throw \'Incorrect "event_nseverity" parameter given: \' + params.event_nseverity + \'\\nMust be 0-5.\';\r\n }\r\n\r\n if (typeof params.event_severity !== \'string\' || params.event_severity.trim() === \'\') {\r\n throw \'Field "event_severity" cannot be empty\';\r\n }\r\n\r\n if (params.event_update_status !== \'0\' && params.event_update_status !== \'1\') {\r\n throw \'Incorrect "event_update_status" parameter given: \' + params.event_update_status + \'\\nMust be 0 or 1.\';\r\n }\r\n\r\n if (params.event_value !== \'0\' && params.event_value !== \'1\') {\r\n throw \'Incorrect "event_value" parameter given: \' + params.event_value + \'\\nMust be 0 or 1.\';\r\n }\r\n\r\n if (typeof params.host_ip !== \'string\' || params.host_ip.trim() === \'\') {\r\n throw \'Field "host_ip" cannot be empty\';\r\n }\r\n\r\n if (typeof params.host_name !== \'string\' || params.host_name.trim() === \'\') {\r\n throw \'Field "host_name" cannot be empty\';\r\n }\r\n\r\n if (typeof params.mattermost_url !== \'string\' || params.mattermost_url.trim() === \'\') {\r\n throw \'Field "mattermost_url" cannot be empty\';\r\n }\r\n\r\n if (!/^(http|https):\\/\\/.+/.test(params.mattermost_url)) {\r\n throw \'Field "mattermost_url" must contain a schema\';\r\n }\r\n\r\n if ([\'alarm\', \'event\'].indexOf(params.send_mode) === -1) {\r\n throw \'Incorrect "send_mode" parameter given: \' + params.send_mode + \'\\nMust be "alarm" or "event".\';\r\n }\r\n\r\n if (typeof params.send_to !== \'string\' || params.send_to.trim() === \'\') {\r\n throw \'Field "send_to" cannot be empty\';\r\n }\r\n\r\n if (isNaN(params.trigger_id) && params.event_source === \'0\') {\r\n throw \'field "trigger_id" is not a number\';\r\n }\r\n\r\n if (typeof params.zabbix_url !== \'string\' || params.zabbix_url.trim() === \'\') {\r\n throw \'Field "zabbix_url" cannot be empty\';\r\n }\r\n\r\n if (!/^(http|https):\\/\\/.+/.test(params.zabbix_url)) {\r\n throw \'Field "zabbix_url" must contain a schema\';\r\n }\r\n\r\n}\r\n\r\ntry {\r\n var params = JSON.parse(value);\r\n\r\n validateParams(params);\r\n\r\n var req = new HttpRequest(),\r\n fields = {},\r\n result = {tags: {}};\r\n\r\n if (typeof params.HTTPProxy === \'string\' && params.HTTPProxy.trim() !== \'\') {\r\n req.setProxy(params.HTTPProxy);\r\n }\r\n\r\n req.addHeader(\'Content-Type: application/json; charset=utf-8\');\r\n req.addHeader(\'Authorization: Bearer \' + params.bot_token);\r\n\r\n params.mattermost_url = params.mattermost_url.replace(/\\/+$/, \'\');\r\n params.zabbix_url = params.zabbix_url.replace(/\\/+$/, \'\');\r\n\r\n var APIEndpoint = params.mattermost_url + \'/api/v4/\';\r\n\r\n var Mattermost = {\r\n post_message: APIEndpoint + \'posts\',\r\n get_channel: APIEndpoint + \'channels/{0}\',\r\n get_team: APIEndpoint + \'teams/{0}\',\r\n chat_update: APIEndpoint + \'posts/{0}\',\r\n direct_channel: APIEndpoint + \'channels/direct\',\r\n channel_byname: APIEndpoint + \'teams/name/{0}/channels/name/{1}\',\r\n user_byname: APIEndpoint + \'users/username/{0}\',\r\n bot_user: APIEndpoint + \'users/me\'\r\n\r\n };\r\n\r\n params.send_mode = params.send_mode.toLowerCase();\r\n params.send_mode = params.send_mode in SEND_MODE_HANDLERS\r\n ? params.send_mode\r\n : \'alarm\';\r\n\r\n SEND_MODE_HANDLERS[params.send_mode](req, params);\r\n\r\n if (params.event_source === \'0\') {\r\n return JSON.stringify(result);\r\n }\r\n else {\r\n return \'OK\';\r\n }\r\n}\r\ncatch (error) {\r\n Zabbix.log(4, \'[ Mattermost Webhook ] Mattermost notification failed: \' + error);\r\n throw \'Mattermost notification failed: \' + error;\r\n}','30s','1','1','{EVENT.TAGS.__mattermost_message_link}','Open in Mattermost: {EVENT.TAGS.__mattermost_channel_name}','','0'),
('84','4','MS Teams','','','','','','','','25','0','0','0','0','1','3','10s','1','const CLogger = function(serviceName) {\r\n this.serviceName = serviceName;\r\n this.INFO = 4\r\n this.WARN = 3\r\n this.ERROR = 2\r\n this.log = function(level, msg) {\r\n Zabbix.log(level, \'[\' + this.serviceName + \'] \' + msg);\r\n }\r\n}\r\n\r\nconst CWebhook = function(value) {\r\n try {\r\n params = JSON.parse(value);\r\n\r\n if ([\'0\', \'1\', \'2\', \'3\', \'4\'].indexOf(params.event_source) === -1) {\r\n throw \'Incorrect "event_source" parameter given: \' + params.event_source + \'.\\nMust be 0-4.\';\r\n }\r\n\r\n if ([\'0\', \'3\', \'4\'].indexOf(params.event_source) !== -1 && [\'0\', \'1\'].indexOf(params.event_value) === -1) {\r\n throw \'Incorrect "event_value" parameter given: \' + params.event_value + \'.\\nMust be 0 or 1.\';\r\n }\r\n\r\n if ([\'0\', \'3\', \'4\'].indexOf(params.event_source) !== -1) {\r\n if (params.event_source === \'1\' && [\'0\', \'1\', \'2\', \'3\'].indexOf(params.event_value) === -1) {\r\n throw \'Incorrect "event_value" parameter given: \' + params.event_value + \'.\\nMust be 0-3.\';\r\n }\r\n\r\n if (params.event_source === \'0\' && [\'0\', \'1\'].indexOf(params.event_update_status) === -1) {\r\n throw \'Incorrect "event_update_status" parameter given: \' + params.event_update_status + \'.\\nMust be 0 or 1.\';\r\n }\r\n\r\n if (params.event_source === \'4\') {\r\n if ([\'0\', \'1\', \'2\', \'3\', \'4\', \'5\'].indexOf(params.event_update_nseverity) !== -1 && params.event_update_nseverity != params.event_nseverity) {\r\n params.event_nseverity = params.event_update_nseverity;\r\n params.event_severity = params.event_update_severity;\r\n params.event_update_status = \'1\';\r\n }\r\n }\r\n }\r\n\r\n this.runCallback = function(name, params) {\r\n if (typeof this[name] === \'function\') {\r\n return this[name].apply(this, [params]);\r\n }\r\n }\r\n\r\n this.handleEvent = function(source, event) {\r\n const alert = { source: source, event: event };\r\n return [\r\n this.runCallback(\'on\' + source + event, alert),\r\n this.runCallback(\'on\' + event, alert),\r\n this.runCallback(\'onEvent\', alert)\r\n ];\r\n }\r\n\r\n this.handleEventless = function(source) {\r\n const alert = { source: source, event: null };\r\n return [\r\n this.runCallback(\'on\' + source, alert),\r\n this.runCallback(\'onEvent\', alert)\r\n ];\r\n }\r\n\r\n this.run = function() {\r\n var results = [];\r\n if (typeof this.httpProxy === \'string\' && this.httpProxy.trim() !== \'\') {\r\n this.request.setProxy(this.httpProxy);\r\n }\r\n const types = { \'0\': \'Trigger\', \'1\': \'Discovery\', \'2\': \'Autoreg\', \'3\': \'Internal\', \'4\': \'Service\' };\r\n\r\n if ([\'0\', \'3\', \'4\'].indexOf(this.params.event_source) !== -1) {\r\n var event = (this.params.event_update_status === \'1\')\r\n ? \'Update\'\r\n : ((this.params.event_value === \'1\') ? \'Problem\' : \'Resolve\');\r\n\r\n results = this.handleEvent(types[this.params.event_source], event);\r\n }\r\n else if (typeof types[this.params.event_source] !== \'undefined\') {\r\n results = this.handleEventless(types[this.params.event_source]);\r\n }\r\n else {\r\n throw \'Unexpected "event_source": \' + this.params.event_source;\r\n }\r\n\r\n for (idx in results) {\r\n if (typeof results[idx] !== \'undefined\') {\r\n return JSON.stringify(results[idx]);\r\n }\r\n }\r\n }\r\n this.httpProxy = params.http_proxy;\r\n this.params = params;\r\n this.runCallback(\'onCheckParams\', {});\r\n } catch (error) {\r\n throw \'Webhook processing failed: \' + error;\r\n }\r\n}\r\n\r\nconst CWebhookHelper = {\r\n\r\n createProblemURL: function(event_source, zabbix_url, trigger_id, event_id) {\r\n if (event_source === \'0\') {\r\n return zabbix_url + \'/tr_events.php?triggerid=\' + trigger_id + \'&eventid=\' + event_id;\r\n } else if (event_source === \'4\') {\r\n return zabbix_url + \'/zabbix.php?action=service.list\';\r\n }\r\n\r\n return zabbix_url;\r\n },\r\n\r\n};\r\n\r\nconst CParamValidator = {\r\n\r\n isType: function(value, type) {\r\n if (type === \'array\') {\r\n return Array.isArray(value);\r\n }\r\n if (type === \'integer\') {\r\n return CParamValidator.isInteger(value);\r\n }\r\n if (type === \'float\') {\r\n return CParamValidator.isFloat(value);\r\n }\r\n\r\n return (typeof value === type);\r\n },\r\n\r\n isInteger: function(value) {\r\n if (!CParamValidator.ifMatch(value, /^-?\\d+$/)) {\r\n return false;\r\n }\r\n\r\n return !isNaN(parseInt(value));\r\n },\r\n\r\n isFloat: function(value) {\r\n if (!CParamValidator.ifMatch(value, /^-?\\d+\\.\\d+$/)) {\r\n return false;\r\n }\r\n\r\n return !isNaN(parseFloat(value));\r\n },\r\n\r\n isDefined: function(value) {\r\n return !CParamValidator.isType(value, \'undefined\');\r\n },\r\n\r\n isEmpty: function(value) {\r\n if (!CParamValidator.isType(value, \'string\')) {\r\n throw \'Value "\' + value + \'" must be a string to be checked for emptiness.\';\r\n }\r\n\r\n return (value.trim() === \'\');\r\n },\r\n\r\n isMacroSet: function(value, macro) {\r\n if (CParamValidator.isDefined(macro)) {\r\n return !(CParamValidator.ifMatch(value, \'^\\{\' + macro + \'\\}$\'))\r\n }\r\n\r\n return !(CParamValidator.ifMatch(value, \'^\\{[$#]{0,1}[A-Z_\\.]+[\\:]{0,1}["]{0,1}.*["]{0,1}\\}$\') || value === \'*UNKNOWN*\')\r\n },\r\n\r\n withinRange: function(value, min, max) {\r\n if (!CParamValidator.isType(value, \'number\')) {\r\n throw \'Value "\' + value + \'" must be a number to be checked for range.\';\r\n }\r\n if (value < ((CParamValidator.isDefined(min)) ? min : value)\r\n || value > ((CParamValidator.isDefined(max)) ? max : value)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n\r\n inArray: function(value, array) {\r\n if (!CParamValidator.isType(array, \'array\')) {\r\n throw \'The array must be an array to check the value for existing in it.\';\r\n }\r\n\r\n return (array.indexOf((typeof value === \'string\') ? value.toLowerCase() : value) !== -1);\r\n },\r\n\r\n ifMatch: function(value, regex) {\r\n return (new RegExp(regex)).test(value);\r\n },\r\n\r\n match: function(value, regex) {\r\n if (!CParamValidator.isType(value, \'string\')) {\r\n throw \'Value "\' + value + \'" must be a string to be matched with the regular expression.\';\r\n }\r\n\r\n return value.match(new RegExp(regex));\r\n },\r\n\r\n checkURL: function(value) {\r\n if (CParamValidator.isEmpty(value)) {\r\n throw \'URL value "\' + value + \'" must be a non-empty string.\';\r\n }\r\n if (!CParamValidator.ifMatch(value, \'^(http|https):\\/\\/.+\')) {\r\n throw \'URL value "\' + value + \'" must contain a schema.\';\r\n }\r\n\r\n return value.endsWith(\'/\') ? value.slice(0, -1) : value;\r\n },\r\n\r\n check: function(key, rule, params) {\r\n if (!CParamValidator.isDefined(rule.type)) {\r\n throw \'Mandatory attribute "type" has not been defined for parameter "\' + key + \'".\';\r\n }\r\n if (!CParamValidator.isDefined(params[key])) {\r\n throw \'Checked parameter "\' + key + \'" was not found in the list of input parameters.\';\r\n }\r\n var value = params[key],\r\n error_message = null;\r\n switch (rule.type) {\r\n case \'string\':\r\n if (!CParamValidator.isType(value, \'string\')) {\r\n throw \'Value "\' + key + \'" must be a string.\';\r\n }\r\n if (CParamValidator.isEmpty(value)) {\r\n error_message = \'Value "\' + key + \'" must be a non-empty string\';\r\n break;\r\n }\r\n if (CParamValidator.isDefined(rule.len) && value.length < rule.len) {\r\n error_message = \'Value "\' + key + \'" must be a string with a length > \' + rule.len;\r\n }\r\n if (CParamValidator.isDefined(rule.regex) && !CParamValidator.ifMatch(value, rule.regex)) {\r\n error_message = \'Value "\' + key + \'" must match the regular expression "\' + rule.regex + \'"\';\r\n }\r\n if (CParamValidator.isDefined(rule.url) && rule.url === true) {\r\n value = CParamValidator.checkURL(value);\r\n }\r\n break;\r\n case \'integer\':\r\n if (!CParamValidator.isInteger(value)) {\r\n error_message = \'Value "\' + key + \'" must be an integer\';\r\n break;\r\n }\r\n value = parseInt(value);\r\n break;\r\n case \'float\':\r\n if (!CParamValidator.isFloat(value)) {\r\n error_message = \'Value "\' + key + \'" must be a floating-point number\';\r\n break;\r\n }\r\n value = parseFloat(value);\r\n break;\r\n case \'boolean\':\r\n if (CParamValidator.inArray(value, [\'1\', \'true\', \'yes\', \'on\'])) {\r\n value = true;\r\n }\r\n else if (CParamValidator.inArray(value, [\'0\', \'false\', \'no\', \'off\'])) {\r\n value = false;\r\n }\r\n else {\r\n error_message = \'Value "\' + key + \'" must be a boolean-like.\';\r\n }\r\n break;\r\n case \'array\':\r\n try {\r\n value = JSON.parse(value);\r\n } catch (error) {\r\n throw \'Value "\' + key + \'" contains invalid JSON.\';\r\n }\r\n if (!CParamValidator.isType(value, \'array\')) {\r\n error_message = \'Value "\' + key + \'" must be an array.\';\r\n }\r\n if (CParamValidator.isDefined(rule.tags) && rule.tags === true) {\r\n value = value.reduce(function(acc, obj) {\r\n acc[obj.tag] = obj.value || null;\r\n return acc;\r\n }, {});\r\n }\r\n break;\r\n case \'object\':\r\n value = JSON.parse(value);\r\n if (!CParamValidator.isType(value, \'object\')) {\r\n error_message = \'Value "\' + key + \'" must be an object.\';\r\n }\r\n break;\r\n default:\r\n throw \'Unexpected attribute type "\' + rule.type + \'" for value "\' + key + \'". Available: \' +\r\n [\'integer\', \'float\', \'string\', \'boolean\', \'array\', \'object\'].join(\', \');\r\n }\r\n params[key] = value;\r\n if (CParamValidator.inArray(rule.type, [\'integer\', \'float\']) && error_message === null && (CParamValidator.isDefined(rule.min)\r\n || CParamValidator.isDefined(rule.max)) && !CParamValidator.withinRange(value, rule.min, rule.max)) {\r\n error_message = \'Value "\' + key + \'" must be a number \' + ((CParamValidator.isDefined(rule.min) && CParamValidator.isDefined(rule.max))\r\n ? (rule.min + \'..\' + rule.max) : ((CParamValidator.isDefined(rule.min)) ? \'>\' + rule.min : \'<\' + rule.max));\r\n }\r\n else if (CParamValidator.isDefined(rule.array) && !CParamValidator.inArray(value, rule.array)) {\r\n error_message = \'Value "\' + key + \'" must be in the array \' + JSON.stringify(rule.array);\r\n }\r\n else if (CParamValidator.isDefined(rule.macro) && !CParamValidator.isMacroSet(value.toString(), rule.macro)) {\r\n error_message = \'The macro \' + ((CParamValidator.isDefined(rule.macro)) ? \'{\' + rule.macro + \'} \' : \' \') + \'is not set\';\r\n }\r\n if (error_message !== null) {\r\n if (CParamValidator.isDefined(rule.default) && CParamValidator.isType(rule.default, rule.type)) {\r\n params[key] = rule.default;\r\n }\r\n else {\r\n Zabbix.log(4, \'Default value for "\' + key + \'" must be a \' + rule.type + \'. Skipped.\');\r\n throw \'Incorrect value for variable "\' + key + \'". \' + error_message;\r\n }\r\n }\r\n\r\n return this;\r\n },\r\n\r\n validate: function(rules, params) {\r\n if (!CParamValidator.isType(params, \'object\') || CParamValidator.isType(params, \'array\')) {\r\n throw \'Incorrect parameters value. The value must be an object.\';\r\n }\r\n for (var key in rules) {\r\n CParamValidator.check(key, rules[key], params);\r\n }\r\n }\r\n}\r\n\r\nconst CHttpRequest = function(logger) {\r\n this.request = new HttpRequest();\r\n if (typeof logger !== \'object\' || logger === null) {\r\n this.logger = Zabbix;\r\n }\r\n else {\r\n this.logger = logger;\r\n }\r\n\r\n this.clearHeader = function() {\r\n this.request.clearHeader();\r\n }\r\n\r\n this.addHeaders = function(value) {\r\n var headers = [];\r\n\r\n if (typeof value === \'object\' && value !== null) {\r\n if (!Array.isArray(value)) {\r\n Object.keys(value).forEach(function(key) {\r\n headers.push(key + \': \' + value[key]);\r\n });\r\n }\r\n else {\r\n headers = value;\r\n }\r\n }\r\n else if (typeof value === \'string\') {\r\n value.split(\'\\r\\n\').forEach(function(header) {\r\n headers.push(header);\r\n });\r\n }\r\n\r\n for (var idx in headers) {\r\n this.request.addHeader(headers[idx]);\r\n }\r\n }\r\n\r\n this.setProxy = function(proxy) {\r\n this.request.setProxy(proxy);\r\n }\r\n\r\n this.plainRequest = function(method, url, data) {\r\n var resp = null;\r\n method = method.toLowerCase();\r\n this.logger.log(4, \'Sending \' + method + \' request:\' + JSON.stringify(data));\r\n if ([\'get\', \'post\', \'put\', \'patch\', \'delete\', \'trace\'].indexOf(method) !== -1) {\r\n resp = this.request[method](url, data);\r\n }\r\n else if ([\'connect\', \'head\', \'options\'].indexOf(method) !== -1) {\r\n resp = this.request[method](url);\r\n }\r\n else {\r\n throw \'Unexpected method. Method \' + method + \' is not supported.\';\r\n }\r\n this.logger.log(4, \'Response has been received: \' + resp);\r\n\r\n return resp;\r\n }\r\n\r\n this.jsonRequest = function(method, url, data) {\r\n this.addHeaders(\'Content-Type: application/json\');\r\n var resp = this.plainRequest(method, url, JSON.stringify(data));\r\n try {\r\n resp = JSON.parse(resp);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response: not well-formed JSON was received\';\r\n }\r\n\r\n return resp;\r\n }\r\n\r\n this.getStatus = function() {\r\n return this.request.getStatus();\r\n }\r\n}\r\n\r\nvar SEVERITY_COLORS = [\r\n \'#97AAB3\',\r\n \'#7499FF\',\r\n \'#FFC859\',\r\n \'#FFA059\',\r\n \'#E97659\',\r\n \'#E45959\',\r\n \'#009900\',\r\n \'#1F1F1F\'\r\n],\r\n serviceLogName = \'MS Teams Webhook\',\r\n Logger = new CLogger(serviceLogName),\r\n MSTeams = CWebhook;\r\n\r\nMSTeams.prototype.addBodyFact = function (name, value) {\r\n if (!CParamValidator.isDefined(this.data.sections[0].facts)) {\r\n this.data.sections[0].facts = [];\r\n }\r\n this.data.sections[0].facts.push({name: name, value: value});\r\n}\r\n\r\nMSTeams.prototype.onCheckParams = function () {\r\n CParamValidator.validate({teams_endpoint: {type: \'string\'}, event_source: {type: \'string\'}, alert_subject: {type: \'string\'},\r\n alert_message: {type: \'string\'}, host_ip: {type: \'string\', default: \'\'}, zabbix_url: {type: \'string\', url: true},\r\n use_default_message: {type: \'boolean\', default: false}, event_nseverity: {type: \'integer\', default: 7}}, this.params);\r\n var actionName = \'Zabbix Home\';\r\n if (!CParamValidator.inArray(this.params.event_source, [\'0\',\'3\',\'4\'])\r\n || this.params.alert_message.startsWith("NOTE: Escalation canceled:")) {\r\n this.params[\'use_default_message\'] = true;\r\n }\r\n if (this.params.event_source === \'0\') {\r\n CParamValidator.validate({event_id: {type: \'integer\'}, trigger_id: {type: \'integer\'}}, this.params);\r\n actionName = \'Event Info\';\r\n }\r\n var actionURL = CWebhookHelper.createProblemURL(this.params.event_source, this.params.zabbix_url, this.params.trigger_id, this.params.event_id);\r\n if (this.params.event_value === \'0\') {\r\n this.params.event_nseverity = 6;\r\n }\r\n this.data = {\r\n themeColor: SEVERITY_COLORS[this.params.event_nseverity].replace(\'#\', \'\'),\r\n summary: this.params.alert_subject,\r\n sections: [{\r\n markdown: \'false\',\r\n activityTitle: this.params.alert_subject,\r\n text: (this.params.event_source === \'0\' && !this.params.use_default_message) ? this.params.trigger_description : this.params.alert_message\r\n }],\r\n potentialAction: [{\r\n \'@type\': \'OpenUri\',\r\n name: actionName,\r\n targets: [{\r\n os: \'default\',\r\n uri: actionURL\r\n }]\r\n }]\r\n };\r\n};\r\n\r\nMSTeams.prototype.makeUpDefaultMessage = function () {\r\n if (!this.params.use_default_message) {\r\n if (!CParamValidator.isEmpty(this.params.host_name) && CParamValidator.isMacroSet(this.params.host_name, \'HOST.NAME\')) {\r\n this.addBodyFact(\'Host\', this.params.host_name + ((!CParamValidator.isEmpty(this.params.host_ip)) ? \' [\' + this.params.host_ip + \']\' : \'\'));\r\n }\r\n if (!CParamValidator.isEmpty(this.params.event_severity) && CParamValidator.isMacroSet(this.params.event_severity, \'EVENT.SEVERITY\')) {\r\n this.addBodyFact(\'Severity\', this.params.event_severity);\r\n }\r\n if (!CParamValidator.isEmpty(this.params.event_opdata) && CParamValidator.isMacroSet(this.params.event_opdata, \'EVENT.OPDATA\')) {\r\n this.addBodyFact(\'Operational data\', this.params.event_opdata);\r\n }\r\n if (!CParamValidator.isEmpty(this.params.event_tags) && CParamValidator.isMacroSet(this.params.event_tags, \'EVENT.TAGS\')) {\r\n this.addBodyFact(\'Event tags\', this.params.event_tags);\r\n }\r\n\r\n Object.keys(this.params).forEach(function (key) {\r\n if (key.startsWith(\'fact_\') && this.params[key] !== \'\') {\r\n this.addBodyFact(key.substring(5), this.params[key]);\r\n }\r\n else if (key.startsWith(\'openUri_\') && this.params[key] !== \'\' && !this.params[key].startsWith(\'{\')) {\r\n this.data.potentialAction.push({\r\n \'@type\': \'OpenUri\',\r\n name: key.substring(8),\r\n targets: [{\r\n os: \'default\',\r\n uri: this.params[key]\r\n }]\r\n });\r\n }\r\n });\r\n }\r\n}\r\n\r\nconst htmlMultiline = function (text) {\r\n return text.replace(/(?:\\r\\n|\\r|\\n)/g, \'
\');\r\n}\r\n\r\nMSTeams.prototype.sendRequest = function () {\r\n this.request.addHeaders({"Content-Type": "application/json"});\r\n var response = this.request.plainRequest(\'POST\', this.params.teams_endpoint, JSON.stringify(this.data));\r\n\r\n if (response !== \'1\') {\r\n Logger.log(Logger.WARN, \'FAILED with response: \' + response);\r\n throw response;\r\n }\r\n return \'OK\';\r\n};\r\n\r\nMSTeams.prototype.onProblem = function (alert) {\r\n Logger.log(Logger.INFO, \'Source: \' + alert.source + \'; Event: \' + alert.event);\r\n if (!this.params.use_default_message) {\r\n this.addBodyFact(\'Event time\', this.params.event_time + \' \' + this.params.event_date);\r\n this.makeUpDefaultMessage();\r\n }\r\n this.data.sections[0].text = htmlMultiline(this.data.sections[0].text);\r\n\r\n return this.sendRequest();\r\n}\r\n\r\nMSTeams.prototype.onUpdate = function (alert) {\r\n Logger.log(Logger.INFO, \'Source: \' + alert.source + \'; Event: \' + alert.event);\r\n if (!this.params.use_default_message) {\r\n this.data.sections[0].text = this.params.event_update_user + \' \' + this.params.event_update_action + \'.\';\r\n if (this.params.event_update_message) {\r\n this.data.sections[0].text += \'
Message:
\' + this.params.event_update_message;\r\n }\r\n this.addBodyFact(\'Event update time\', this.params.event_update_time + \' \' + this.params.event_update_date);\r\n this.makeUpDefaultMessage();\r\n }\r\n this.data.sections[0].text = htmlMultiline(this.data.sections[0].text);\r\n\r\n return this.sendRequest();\r\n}\r\n\r\nMSTeams.prototype.onResolve = function (alert) {\r\n Logger.log(Logger.INFO, \'Source: \' + alert.source + \'; Event: \' + alert.event);\r\n if (!this.params.use_default_message) {\r\n this.addBodyFact(\'Recovery time\', this.params.event_recovery_time + \' \' + this.params.event_recovery_date);\r\n this.makeUpDefaultMessage();\r\n }\r\n this.data.sections[0].text = htmlMultiline(this.data.sections[0].text);\r\n\r\n return this.sendRequest();\r\n}\r\n\r\nMSTeams.prototype.onDiscovery = function (alert) {\r\n return this.onProblem(alert);\r\n}\r\n\r\nMSTeams.prototype.onAutoreg = function (alert) {\r\n return this.onProblem(alert);\r\n}\r\n\r\ntry {\r\n var hook = new MSTeams(value);\r\n hook.request = new CHttpRequest(Logger);\r\n return hook.run();\r\n}\r\ncatch (error) {\r\n Logger.log(Logger.WARN, \'notification failed: \' + error);\r\n throw \'Sending failed: \' + error;\r\n}','30s','0','0','','','https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/msteams\r\n\r\n1. Add official Zabbix webhook connector from MS Teams apps for the channel, where you want to receive notifications.\r\n2. Create Incoming webhook for your channel.\r\n3. In the Zabbix web interface go to Administration → Macros section. Setup the global macro "{$ZABBIX.URL}" which will contain the URL to the Zabbix frontend. \r\n4. On this page replace placeholder with the incoming webhook URL, created during the webhook setup in MS Teams.\r\n5. To receive Zabbix notifications in MS Teams, you need to create a Zabbix user and add Media with the MS Teams media type. Make sure this user has access to all hosts for which you would like problem notifications to be sent to MS Teams.','0'),
('85','4','MS Teams Workflow','','','','','','','','25','0','0','0','0','1','3','10s','1','const CLogger = function(serviceName) {\r\n this.serviceName = serviceName;\r\n this.INFO = 4\r\n this.WARN = 3\r\n this.ERROR = 2\r\n this.log = function(level, msg) {\r\n Zabbix.log(level, \'[\' + this.serviceName + \'] \' + msg);\r\n }\r\n}\r\n\r\nconst CWebhook = function(value) {\r\n try {\r\n params = JSON.parse(value);\r\n\r\n if ([\'0\', \'1\', \'2\', \'3\', \'4\'].indexOf(params.event_source) === -1) {\r\n throw \'Incorrect "event_source" parameter given: \' + params.event_source + \'.\\nMust be 0-4.\';\r\n }\r\n\r\n if ([\'0\', \'3\', \'4\'].indexOf(params.event_source) !== -1 && [\'0\', \'1\'].indexOf(params.event_value) === -1) {\r\n throw \'Incorrect "event_value" parameter given: \' + params.event_value + \'.\\nMust be 0 or 1.\';\r\n }\r\n\r\n if ([\'0\', \'3\', \'4\'].indexOf(params.event_source) !== -1) {\r\n if (params.event_source === \'1\' && [\'0\', \'1\', \'2\', \'3\'].indexOf(params.event_value) === -1) {\r\n throw \'Incorrect "event_value" parameter given: \' + params.event_value + \'.\\nMust be 0-3.\';\r\n }\r\n\r\n if (params.event_source === \'0\' && [\'0\', \'1\'].indexOf(params.event_update_status) === -1) {\r\n throw \'Incorrect "event_update_status" parameter given: \' + params.event_update_status + \'.\\nMust be 0 or 1.\';\r\n }\r\n\r\n if (params.event_source === \'4\') {\r\n if ([\'0\', \'1\', \'2\', \'3\', \'4\', \'5\'].indexOf(params.event_update_nseverity) !== -1 && params.event_update_nseverity != params.event_nseverity) {\r\n params.event_nseverity = params.event_update_nseverity;\r\n params.event_severity = params.event_update_severity;\r\n params.event_update_status = \'1\';\r\n }\r\n }\r\n }\r\n\r\n this.runCallback = function(name, params) {\r\n if (typeof this[name] === \'function\') {\r\n return this[name].apply(this, [params]);\r\n }\r\n }\r\n\r\n this.handleEvent = function(source, event) {\r\n const alert = { source: source, event: event };\r\n return [\r\n this.runCallback(\'on\' + source + event, alert),\r\n this.runCallback(\'on\' + event, alert),\r\n this.runCallback(\'onEvent\', alert)\r\n ];\r\n }\r\n\r\n this.handleEventless = function(source) {\r\n const alert = { source: source, event: null };\r\n return [\r\n this.runCallback(\'on\' + source, alert),\r\n this.runCallback(\'onEvent\', alert)\r\n ];\r\n }\r\n\r\n this.run = function() {\r\n var results = [];\r\n if (typeof this.httpProxy === \'string\' && this.httpProxy.trim() !== \'\') {\r\n this.request.setProxy(this.httpProxy);\r\n }\r\n const types = { \'0\': \'Trigger\', \'1\': \'Discovery\', \'2\': \'Autoreg\', \'3\': \'Internal\', \'4\': \'Service\' };\r\n\r\n if ([\'0\', \'3\', \'4\'].indexOf(this.params.event_source) !== -1) {\r\n var event = (this.params.event_update_status === \'1\')\r\n ? \'Update\'\r\n : ((this.params.event_value === \'1\') ? \'Problem\' : \'Resolve\');\r\n\r\n results = this.handleEvent(types[this.params.event_source], event);\r\n }\r\n else if (typeof types[this.params.event_source] !== \'undefined\') {\r\n results = this.handleEventless(types[this.params.event_source]);\r\n }\r\n else {\r\n throw \'Unexpected "event_source": \' + this.params.event_source;\r\n }\r\n\r\n for (idx in results) {\r\n if (typeof results[idx] !== \'undefined\') {\r\n return JSON.stringify(results[idx]);\r\n }\r\n }\r\n }\r\n this.httpProxy = params.http_proxy;\r\n this.params = params;\r\n this.runCallback(\'onCheckParams\', {});\r\n } catch (error) {\r\n throw \'Webhook processing failed: \' + error;\r\n }\r\n}\r\n\r\nconst CParamValidator = {\r\n\r\n isType: function(value, type) {\r\n if (type === \'array\') {\r\n return Array.isArray(value);\r\n }\r\n if (type === \'integer\') {\r\n return CParamValidator.isInteger(value);\r\n }\r\n if (type === \'float\') {\r\n return CParamValidator.isFloat(value);\r\n }\r\n\r\n return (typeof value === type);\r\n },\r\n\r\n isInteger: function(value) {\r\n if (!CParamValidator.ifMatch(value, /^-?\\d+$/)) {\r\n return false;\r\n }\r\n\r\n return !isNaN(parseInt(value));\r\n },\r\n\r\n isFloat: function(value) {\r\n if (!CParamValidator.ifMatch(value, /^-?\\d+\\.\\d+$/)) {\r\n return false;\r\n }\r\n\r\n return !isNaN(parseFloat(value));\r\n },\r\n\r\n isDefined: function(value) {\r\n return !CParamValidator.isType(value, \'undefined\');\r\n },\r\n\r\n isEmpty: function(value) {\r\n if (!CParamValidator.isType(value, \'string\')) {\r\n throw \'Value "\' + value + \'" must be a string to be checked for emptiness.\';\r\n }\r\n\r\n return (value.trim() === \'\');\r\n },\r\n\r\n isMacroSet: function(value, macro) {\r\n if (CParamValidator.isDefined(macro)) {\r\n return !(CParamValidator.ifMatch(value, \'^\\{\' + macro + \'\\}$\'))\r\n }\r\n\r\n return !(CParamValidator.ifMatch(value, \'^\\{[$#]{0,1}[A-Z_\\.]+[\\:]{0,1}["]{0,1}.*["]{0,1}\\}$\') || value === \'*UNKNOWN*\')\r\n },\r\n\r\n withinRange: function(value, min, max) {\r\n if (!CParamValidator.isType(value, \'number\')) {\r\n throw \'Value "\' + value + \'" must be a number to be checked for range.\';\r\n }\r\n if (value < ((CParamValidator.isDefined(min)) ? min : value)\r\n || value > ((CParamValidator.isDefined(max)) ? max : value)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n\r\n inArray: function(value, array) {\r\n if (!CParamValidator.isType(array, \'array\')) {\r\n throw \'The array must be an array to check the value for existing in it.\';\r\n }\r\n\r\n return (array.indexOf((typeof value === \'string\') ? value.toLowerCase() : value) !== -1);\r\n },\r\n\r\n ifMatch: function(value, regex) {\r\n return (new RegExp(regex)).test(value);\r\n },\r\n\r\n match: function(value, regex) {\r\n if (!CParamValidator.isType(value, \'string\')) {\r\n throw \'Value "\' + value + \'" must be a string to be matched with the regular expression.\';\r\n }\r\n\r\n return value.match(new RegExp(regex));\r\n },\r\n\r\n checkURL: function(value) {\r\n if (CParamValidator.isEmpty(value)) {\r\n throw \'URL value "\' + value + \'" must be a non-empty string.\';\r\n }\r\n if (!CParamValidator.ifMatch(value, \'^(http|https):\\/\\/.+\')) {\r\n throw \'URL value "\' + value + \'" must contain a schema.\';\r\n }\r\n\r\n return value.endsWith(\'/\') ? value.slice(0, -1) : value;\r\n },\r\n\r\n check: function(key, rule, params) {\r\n if (!CParamValidator.isDefined(rule.type)) {\r\n throw \'Mandatory attribute "type" has not been defined for parameter "\' + key + \'".\';\r\n }\r\n if (!CParamValidator.isDefined(params[key])) {\r\n throw \'Checked parameter "\' + key + \'" was not found in the list of input parameters.\';\r\n }\r\n var value = params[key],\r\n error_message = null;\r\n switch (rule.type) {\r\n case \'string\':\r\n if (!CParamValidator.isType(value, \'string\')) {\r\n throw \'Value "\' + key + \'" must be a string.\';\r\n }\r\n if (CParamValidator.isEmpty(value)) {\r\n error_message = \'Value "\' + key + \'" must be a non-empty string\';\r\n break;\r\n }\r\n if (CParamValidator.isDefined(rule.len) && value.length < rule.len) {\r\n error_message = \'Value "\' + key + \'" must be a string with a length > \' + rule.len;\r\n }\r\n if (CParamValidator.isDefined(rule.regex) && !CParamValidator.ifMatch(value, rule.regex)) {\r\n error_message = \'Value "\' + key + \'" must match the regular expression "\' + rule.regex + \'"\';\r\n }\r\n if (CParamValidator.isDefined(rule.url) && rule.url === true) {\r\n value = CParamValidator.checkURL(value);\r\n }\r\n break;\r\n case \'integer\':\r\n if (!CParamValidator.isInteger(value)) {\r\n error_message = \'Value "\' + key + \'" must be an integer\';\r\n break;\r\n }\r\n value = parseInt(value);\r\n break;\r\n case \'float\':\r\n if (!CParamValidator.isFloat(value)) {\r\n error_message = \'Value "\' + key + \'" must be a floating-point number\';\r\n break;\r\n }\r\n value = parseFloat(value);\r\n break;\r\n case \'boolean\':\r\n if (CParamValidator.inArray(value, [\'1\', \'true\', \'yes\', \'on\'])) {\r\n value = true;\r\n }\r\n else if (CParamValidator.inArray(value, [\'0\', \'false\', \'no\', \'off\'])) {\r\n value = false;\r\n }\r\n else {\r\n error_message = \'Value "\' + key + \'" must be a boolean-like.\';\r\n }\r\n break;\r\n case \'array\':\r\n try {\r\n value = JSON.parse(value);\r\n } catch (error) {\r\n throw \'Value "\' + key + \'" contains invalid JSON.\';\r\n }\r\n if (!CParamValidator.isType(value, \'array\')) {\r\n error_message = \'Value "\' + key + \'" must be an array.\';\r\n }\r\n if (CParamValidator.isDefined(rule.tags) && rule.tags === true) {\r\n value = value.reduce(function(acc, obj) {\r\n acc[obj.tag] = obj.value || null;\r\n return acc;\r\n }, {});\r\n }\r\n break;\r\n case \'object\':\r\n value = JSON.parse(value);\r\n if (!CParamValidator.isType(value, \'object\')) {\r\n error_message = \'Value "\' + key + \'" must be an object.\';\r\n }\r\n break;\r\n default:\r\n throw \'Unexpected attribute type "\' + rule.type + \'" for value "\' + key + \'". Available: \' +\r\n [\'integer\', \'float\', \'string\', \'boolean\', \'array\', \'object\'].join(\', \');\r\n }\r\n params[key] = value;\r\n if (CParamValidator.inArray(rule.type, [\'integer\', \'float\']) && error_message === null && (CParamValidator.isDefined(rule.min)\r\n || CParamValidator.isDefined(rule.max)) && !CParamValidator.withinRange(value, rule.min, rule.max)) {\r\n error_message = \'Value "\' + key + \'" must be a number \' + ((CParamValidator.isDefined(rule.min) && CParamValidator.isDefined(rule.max))\r\n ? (rule.min + \'..\' + rule.max) : ((CParamValidator.isDefined(rule.min)) ? \'>\' + rule.min : \'<\' + rule.max));\r\n }\r\n else if (CParamValidator.isDefined(rule.array) && !CParamValidator.inArray(value, rule.array)) {\r\n error_message = \'Value "\' + key + \'" must be in the array \' + JSON.stringify(rule.array);\r\n }\r\n else if (CParamValidator.isDefined(rule.macro) && !CParamValidator.isMacroSet(value.toString(), rule.macro)) {\r\n error_message = \'The macro \' + ((CParamValidator.isDefined(rule.macro)) ? \'{\' + rule.macro + \'} \' : \' \') + \'is not set\';\r\n }\r\n if (error_message !== null) {\r\n if (CParamValidator.isDefined(rule.default) && CParamValidator.isType(rule.default, rule.type)) {\r\n params[key] = rule.default;\r\n }\r\n else {\r\n Zabbix.log(4, \'Default value for "\' + key + \'" must be a \' + rule.type + \'. Skipped.\');\r\n throw \'Incorrect value for variable "\' + key + \'". \' + error_message;\r\n }\r\n }\r\n\r\n return this;\r\n },\r\n\r\n validate: function(rules, params) {\r\n if (!CParamValidator.isType(params, \'object\') || CParamValidator.isType(params, \'array\')) {\r\n throw \'Incorrect parameters value. The value must be an object.\';\r\n }\r\n for (var key in rules) {\r\n CParamValidator.check(key, rules[key], params);\r\n }\r\n }\r\n}\r\n\r\nconst CHttpRequest = function(logger) {\r\n this.request = new HttpRequest();\r\n if (typeof logger !== \'object\' || logger === null) {\r\n this.logger = Zabbix;\r\n }\r\n else {\r\n this.logger = logger;\r\n }\r\n\r\n this.clearHeader = function() {\r\n this.request.clearHeader();\r\n }\r\n\r\n this.addHeaders = function(value) {\r\n var headers = [];\r\n\r\n if (typeof value === \'object\' && value !== null) {\r\n if (!Array.isArray(value)) {\r\n Object.keys(value).forEach(function(key) {\r\n headers.push(key + \': \' + value[key]);\r\n });\r\n }\r\n else {\r\n headers = value;\r\n }\r\n }\r\n else if (typeof value === \'string\') {\r\n value.split(\'\\r\\n\').forEach(function(header) {\r\n headers.push(header);\r\n });\r\n }\r\n\r\n for (var idx in headers) {\r\n this.request.addHeader(headers[idx]);\r\n }\r\n }\r\n\r\n this.setProxy = function(proxy) {\r\n this.request.setProxy(proxy);\r\n }\r\n\r\n this.plainRequest = function(method, url, data) {\r\n var resp = null;\r\n method = method.toLowerCase();\r\n this.logger.log(4, \'Sending \' + method + \' request:\' + JSON.stringify(data));\r\n if ([\'get\', \'post\', \'put\', \'patch\', \'delete\', \'trace\'].indexOf(method) !== -1) {\r\n resp = this.request[method](url, data);\r\n }\r\n else if ([\'connect\', \'head\', \'options\'].indexOf(method) !== -1) {\r\n resp = this.request[method](url);\r\n }\r\n else {\r\n throw \'Unexpected method. Method \' + method + \' is not supported.\';\r\n }\r\n this.logger.log(4, \'Response has been received: \' + resp);\r\n\r\n return resp;\r\n }\r\n\r\n this.jsonRequest = function(method, url, data) {\r\n this.addHeaders(\'Content-Type: application/json\');\r\n var resp = this.plainRequest(method, url, JSON.stringify(data));\r\n try {\r\n resp = JSON.parse(resp);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response: not well-formed JSON was received\';\r\n }\r\n\r\n return resp;\r\n }\r\n\r\n this.getStatus = function() {\r\n return this.request.getStatus();\r\n }\r\n}\r\n\r\nconst CWebhookHelper = {\r\n\r\n createProblemURL: function(event_source, zabbix_url, trigger_id, event_id) {\r\n if (event_source === \'0\') {\r\n return zabbix_url + \'/tr_events.php?triggerid=\' + trigger_id + \'&eventid=\' + event_id;\r\n } else if (event_source === \'4\') {\r\n return zabbix_url + \'/zabbix.php?action=service.list\';\r\n }\r\n\r\n return zabbix_url;\r\n },\r\n\r\n};\r\n\r\n\r\nvar serviceLogName = \'MS Teams Webhook\',\r\n Logger = new CLogger(serviceLogName),\r\n MSTeams = CWebhook;\r\n\r\nMSTeams.prototype.onCheckParams = function () {\r\n CParamValidator.validate({\r\n alert_subject: { type: \'string\' }, alert_message: { type: \'string\' },\r\n zabbix_url: { type: \'string\', url: true }, teams_endpoint: { type: \'string\', url: true }\r\n }, this.params);\r\n\r\n if (this.params.event_source === \'0\') {\r\n CParamValidator.validate({ event_id: { type: \'integer\' }, trigger_id: { type: \'integer\' } }, this.params);\r\n }\r\n\r\n this.body = {\r\n type: "message",\r\n attachments: [\r\n {\r\n contentType: "application/vnd.microsoft.card.adaptive",\r\n contentUrl: null,\r\n content: {\r\n $schema: "http://adaptivecards.io/schemas/adaptive-card.json",\r\n type: "AdaptiveCard",\r\n version: "1.4",\r\n body: [\r\n {\r\n type: "Container",\r\n items: [\r\n {\r\n type: "TextBlock",\r\n size: "Medium",\r\n wrap: "true",\r\n weight: "Bolder",\r\n text: this.params.alert_subject\r\n }\r\n ],\r\n style: "",\r\n bleed: true\r\n }\r\n ],\r\n actions: [\r\n {\r\n type: "Action.OpenUrl",\r\n title: "Event info",\r\n url: CWebhookHelper.createProblemURL(this.params.event_source, this.params.zabbix_url, this.params.trigger_id, this.params.event_id)\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n };\r\n\r\n this.params.alert_message = this.params.alert_message.split(\'\\n\');\r\n\r\n for (line in this.params.alert_message) {\r\n this.body.attachments[0].content.body.push({\r\n type: "TextBlock",\r\n wrap: "true",\r\n text: this.params.alert_message[line]\r\n });\r\n }\r\n\r\n};\r\n\r\nMSTeams.prototype.sendRequest = function (color) {\r\n this.body.attachments[0].content.body[0].style = color;\r\n\r\n this.request.addHeaders({ "Content-Type": "application/json" });\r\n var response = this.request.plainRequest(\'POST\', this.params.teams_endpoint, JSON.stringify(this.body));\r\n\r\n if (this.request.getStatus() !== 202) {\r\n Logger.log(Logger.INFO, \'HTTP code: \' + this.request.getStatus() + \'. Endpoint response:\' + response);\r\n throw \'HTTP code: \' + this.request.getStatus() + \'. Endpoint response:\' + response;\r\n }\r\n\r\n return \'OK\';\r\n};\r\n\r\nMSTeams.prototype.onProblem = function () {\r\n return this.sendRequest("attention");\r\n};\r\n\r\nMSTeams.prototype.onResolve = function () {\r\n return this.sendRequest("good");\r\n};\r\n\r\nMSTeams.prototype.onUpdate = function () {\r\n return this.sendRequest("emphasis");\r\n};\r\n\r\nMSTeams.prototype.onDiscovery = function () {\r\n return this.sendRequest("emphasis");\r\n};\r\n\r\nMSTeams.prototype.onAutoreg = function () {\r\n return this.sendRequest("emphasis");\r\n};\r\n\r\ntry {\r\n var hook = new MSTeams(value);\r\n hook.request = new CHttpRequest(Logger);\r\n return hook.run();\r\n}\r\ncatch (error) {\r\n Logger.log(Logger.WARN, \'notification failed: \' + error);\r\n throw \'Sending failed: \' + error;\r\n};','30s','0','0','','','To set up a webhook, please follow these steps:\r\n\r\n- Create a workflow in MS Teams. You can use the "Post a message in a channel when a webhook request is received" template for it.\r\n- Copy the endpoint URL and place it in the teams_endpoint parameter.\r\n- Set up the global macro {$ZABBIX.URL}, which will contain the URL to the Zabbix frontend.\r\n- Create a Zabbix user and add the MS Teams Workflow media to it.\r\n\r\nFor more detailed instructions, please visit https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/.','0'),
('86','4','Opsgenie','','','','','','','','25','0','0','0','0','1','3','10s','1','var method,\r\n Media = {\r\n params: {},\r\n name: \'\',\r\n labels: [],\r\n HTTPProxy: \'\',\r\n\r\n setParams: function (params) {\r\n if (typeof params !== \'object\') {\r\n return;\r\n }\r\n\r\n Media.params = params;\r\n Media.params.api += Media.params.api.endsWith(\'/\') ? \'\' : \'/\';\r\n Media.params.web += Media.params.web.endsWith(\'/\') ? \'\' : \'/\';\r\n },\r\n\r\n setProxy: function (HTTPProxy) {\r\n if (typeof HTTPProxy !== \'undefined\' && HTTPProxy.trim() !== \'\') {\r\n Media.HTTPProxy = HTTPProxy;\r\n }\r\n },\r\n\r\n setTags: function(event_tags_json) {\r\n if (typeof event_tags_json !== \'undefined\' && event_tags_json !== \'\'\r\n && event_tags_json !== \'{EVENT.TAGSJSON}\') {\r\n\r\n try {\r\n var tags = JSON.parse(event_tags_json),\r\n label;\r\n\r\n tags.forEach(function (tag) {\r\n if (typeof tag.tag === \'string\') {\r\n label = (tag.tag + (typeof tag.value !== \'undefined\'\r\n && tag.value !== \'\' ? (\':\' + tag.value) : \'\')).replace(/\\s/g, \'_\');\r\n Media.labels.push(label);\r\n }\r\n });\r\n }\r\n catch (error) {\r\n Zabbix.log(4, \'[ \' + Media.name + \' Webhook ] Failed to parse "event_tags_json" param\');\r\n }\r\n }\r\n },\r\n\r\n request: function (method, query, data, allow_404) {\r\n if (typeof(allow_404) === \'undefined\') {\r\n allow_404 = false;\r\n }\r\n\r\n [\'api\', \'token\'].forEach(function (field) {\r\n if (typeof Media.params !== \'object\' || typeof Media.params[field] === \'undefined\'\r\n || Media.params[field] === \'\') {\r\n throw \'Required \' + Media.name + \' param is not set: "\' + field + \'".\';\r\n }\r\n });\r\n\r\n var response,\r\n url = Media.params.api + query,\r\n request = new HttpRequest();\r\n\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Authorization: \' + Media.params.token);\r\n request.setProxy(Media.HTTPProxy);\r\n\r\n if (typeof data !== \'undefined\') {\r\n data = JSON.stringify(data);\r\n }\r\n\r\n Zabbix.log(4, \'[ \' + Media.name + \' Webhook ] Sending request: \' +\r\n url + ((typeof data === \'string\') ? (\'\\n\' + data) : \'\'));\r\n\r\n switch (method) {\r\n case \'get\':\r\n response = request.get(url, data);\r\n break;\r\n\r\n case \'post\':\r\n response = request.post(url, data);\r\n break;\r\n\r\n case \'put\':\r\n response = request.put(url, data);\r\n break;\r\n\r\n default:\r\n throw \'Unsupported HTTP request method: \' + method;\r\n }\r\n\r\n Zabbix.log(4, \'[ \' + Media.name + \' Webhook ] Received response with status code \' +\r\n request.getStatus() + \'\\n\' + response);\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n Zabbix.log(4, \'[ \' + Media.name + \' Webhook ] Failed to parse response.\');\r\n response = null;\r\n }\r\n }\r\n\r\n if ((request.getStatus() < 200 || request.getStatus() >= 300)\r\n && (!allow_404 || request.getStatus() !== 404)) {\r\n var message = \'Request failed with status code \' + request.getStatus();\r\n\r\n if (response !== null) {\r\n if (typeof response.errors === \'object\' && Object.keys(response.errors).length > 0) {\r\n message += \': \' + JSON.stringify(response.errors);\r\n }\r\n else if (typeof response.errorMessages === \'object\' && Object.keys(response.errorMessages).length > 0) {\r\n message += \': \' + JSON.stringify(response.errorMessages);\r\n }\r\n else if (typeof response.message === \'string\') {\r\n message += \': \' + response.message;\r\n }\r\n }\r\n\r\n throw message + \' Check debug log for more information.\';\r\n }\r\n\r\n return {\r\n status: request.getStatus(),\r\n response: response\r\n };\r\n },\r\n\r\n getAlertId: function (requestId) {\r\n status_counter = params.status_counter || 25; \r\n do {\r\n resp = Media.request(\'get\', \'requests/\' + requestId, undefined, true);\r\n status_counter -= 1; \r\n }\r\n while ( status_counter > 0 && \r\n ( \r\n typeof resp.response !== \'object\' || \r\n typeof resp.response.data === \'undefined\' ||\r\n resp.response.data.success === false &&\r\n !resp.response.data.status.includes("There is no open alert") &&\r\n !resp.response.data.status.includes("Alert is already")\r\n ) \r\n );\r\n\r\n if (typeof resp.response !== \'object\' || typeof resp.response.data === \'undefined\') {\r\n throw \'Cannot get \' + Media.name + \' issue ID. Check debug log for more information.\';\r\n }\r\n else if (resp.response.data.success === false ) {\r\n throw Media.name + \': Operation status (\' + resp.response.data.status + \')\';\r\n }\r\n\r\n return resp;\r\n }\r\n};\r\n\r\ntry {\r\n var result = {tags: {}},\r\n params = JSON.parse(value),\r\n media = {},\r\n fields = {},\r\n resp = {},\r\n responders = [],\r\n tags = [],\r\n required_params = [\r\n \'alert_subject\',\r\n \'alert_message\',\r\n \'event_id\',\r\n \'event_source\',\r\n \'event_value\',\r\n \'event_update_status\',\r\n \'opsgenie_api\',\r\n \'opsgenie_web\',\r\n \'opsgenie_token\'\r\n ],\r\n severities = [\r\n \'not_classified\',\r\n \'information\',\r\n \'warning\',\r\n \'average\',\r\n \'high\',\r\n \'disaster\',\r\n \'resolved\',\r\n \'default\'\r\n ],\r\n priority;\r\n\r\n Object.keys(params)\r\n .forEach(function (key) {\r\n if (required_params.indexOf(key) !== -1 && params[key].trim() === \'\') {\r\n throw \'Parameter "\' + key + \'" cannot be empty.\';\r\n }\r\n if (key.startsWith(\'opsgenie_\')) {\r\n media[key.substring(9)] = params[key];\r\n }\r\n });\r\n\r\n // Possible values of event_source:\r\n // 0 - Trigger, 1 - Discovery, 2 - Autoregistration, 3 - Internal.\r\n if ([0, 1, 2, 3].indexOf(parseInt(params.event_source)) === -1) {\r\n throw \'Incorrect "event_source" parameter given: "\' + params.event_source + \'".\\nMust be 0-3.\';\r\n }\r\n\r\n // Check event_value for trigger-based and internal events.\r\n // Possible values: 1 for problem, 0 for recovering\r\n if (params.event_value !== \'0\' && params.event_value !== \'1\'\r\n && (params.event_source === \'0\' || params.event_source === \'3\')) {\r\n throw \'Incorrect "event_value" parameter given: \' + params.event_value + \'\\nMust be 0 or 1.\';\r\n }\r\n\r\n // Check event_update_status only for trigger-based events.\r\n // Possible values: 0 - Webhook was called because of problem/recovery event, 1 - Update operation.\r\n if (params.event_source === \'0\' && params.event_update_status !== \'0\' && params.event_update_status !== \'1\') {\r\n throw \'Incorrect "event_update_status" parameter given: \' + params.event_update_status + \'\\nMust be 0 or 1.\';\r\n }\r\n\r\n // Check event_id for a numeric value.\r\n if (isNaN(parseInt(params.event_id)) || params.event_id < 1) {\r\n throw \'Incorrect "event_id" parameter given: \' + params.event_id + \'\\nMust be a positive number.\';\r\n }\r\n\r\n if ((params.event_source === \'1\' || params.event_source === \'2\') && params.event_value === \'0\') {\r\n throw \'Recovery operations are supported only for Trigger and Internal actions.\';\r\n }\r\n\r\n if ([0, 1, 2, 3, 4, 5].indexOf(parseInt(params.event_nseverity)) === -1) {\r\n params.event_nseverity = \'7\';\r\n }\r\n\r\n if (params.event_value === \'0\') {\r\n params.event_nseverity = \'6\';\r\n }\r\n\r\n priority = params[\'severity_\' + severities[params.event_nseverity]];\r\n params.zbxurl = params.zbxurl + (params.zbxurl.endsWith(\'/\') ? \'\' : \'/\');\r\n\r\n Media.name = \'Opsgenie\';\r\n Media.setParams(media);\r\n Media.params.token = \'GenieKey \' + Media.params.token;\r\n Media.setProxy(params.HTTPProxy);\r\n Media.setTags(params.event_tags_json); // Set Media.labels\r\n\r\n // Create an issue.\r\n // Numeric value of the event that triggered an action (1 for problem, 0 for recovering).\r\n // Numeric value of the problem update status. Possible values:\r\n // 0 - Webhook was called because of problem/recovery event, 1 - Update operation.\r\n if ((params.event_source == 0 && params.event_value == 1 && params.event_update_status == 0)\r\n || (params.event_source == 3 && params.event_value == 1)\r\n || params.event_source == 1 || params.event_source == 2) {\r\n fields.message = params.alert_subject;\r\n fields.alias = params.event_id;\r\n fields.description = params.alert_message;\r\n fields.priority = priority;\r\n fields.source = \'Zabbix\';\r\n\r\n if (params.event_source === \'0\') {\r\n fields.details = {\r\n \'Zabbix server\': params.zbxurl,\r\n Problem: params.zbxurl + \'tr_events.php?triggerid=\' + params.trigger_id + \'&eventid=\' + params.event_id\r\n };\r\n }\r\n else {\r\n fields.details = {\'Zabbix server\': params.zbxurl};\r\n }\r\n\r\n if (typeof params.opsgenie_teams === \'string\') {\r\n responders = params.opsgenie_teams.split(\',\');\r\n fields.responders = responders.map(function(team) {\r\n return {type: \'team\', name: team.trim()};\r\n });\r\n }\r\n\r\n fields.tags = Media.labels;\r\n if (typeof params.opsgenie_tags === \'string\') {\r\n tags = params.opsgenie_tags.split(\',\');\r\n tags.forEach(function(item) {\r\n fields.tags.push(item.trim());\r\n });\r\n }\r\n\r\n resp = Media.request(\'post\', \'\', fields);\r\n if (typeof resp.response !== \'object\' || typeof resp.response.result === \'undefined\') {\r\n throw \'Cannot create \' + Media.name + \' issue. Check debug log for more information.\';\r\n }\r\n\r\n if (resp.status === 202) {\r\n resp = Media.getAlertId(resp.response.requestId);\r\n if (params.event_source == 0 && params.event_value == 1 && params.event_update_status == 0) {\r\n result.tags.__zbx_ops_issuekey = resp.response.data.alertId;\r\n result.tags.__zbx_ops_issuelink = Media.params.web + \'alert/detail/\' + resp.response.data.alertId;\r\n }\r\n }\r\n else {\r\n throw Media.name + \' response code is unexpected. Check debug log for more information.\';\r\n }\r\n }\r\n // Update or close the created issue.\r\n else {\r\n fields.user = (params.event_value != 0) ? params.zbxuser : \'\';\r\n fields.note = params.alert_message;\r\n if ( [0, 3].indexOf(parseInt(params.event_source)) > -1 && params.event_value == 0 ) {\r\n // skip sending of close request from update operation(mandatory when both update & recovery operations are defined in action) \r\n method = params.event_update_status == 0 ? "close" : "skip";\r\n }\r\n else if ( params.event_source == 0 && params.event_value == 1 && params.event_update_status == 1 && params.event_update_action.includes(\'acknowledged\')) {\r\n method = params.event_update_action.includes(\'unacknowledged\') ? "unacknowledge" : "acknowledge";\r\n }\r\n else {\r\n method = "notes";\r\n }\r\n\r\n if (method !== "skip") {\r\n resp = Media.request(\'post\', params.event_id + \'/\' + method +\'?identifierType=alias\', fields);\r\n\r\n if (typeof resp.response !== \'object\' || typeof resp.response.result === \'undefined\') {\r\n throw \'Cannot update \' + Media.name + \' issue. Check debug log for more information.\';\r\n }\r\n\r\n if (resp.status === 202) {\r\n resp = Media.getAlertId(resp.response.requestId);\r\n }\r\n else {\r\n throw Media.name + \' response code is unexpected. Check debug log for more information.\';\r\n }\r\n }\r\n }\r\n return JSON.stringify(result);\r\n}\r\ncatch (error) {\r\n Zabbix.log(3, \'[ \' + Media.name + \' Webhook ] ERROR: \' + error);\r\n throw \'Sending failed: \' + error;\r\n}','30s','1','1','{EVENT.TAGS.__zbx_ops_issuelink}','Opsgenie: {EVENT.TAGS.__zbx_ops_issuekey}','Please refer to https://docs.opsgenie.com/docs/alert-api and https://www.zabbix.com/documentation/7.4/manual/config/notifications/media/webhook#example_scripts.\r\n \r\nSet global macro {$ZABBIX.URL} with your Zabbix server URL.\r\nAdd dedicated user with media type "Opsgenie".\r\nChange the values of the variables opsgenie_api (https://api.opsgenie.com/v2/alerts or https://api.eu.opsgenie.com/v2/alerts),\r\nopsgenie_web (for example, https://myzabbix.app.opsgenie.com), opsgenie_token.','0'),
('87','4','OTRS CE','','','','','','','','25','0','0','0','0','1','3','10s','1','const CLogger = function(serviceName) {\r\n this.serviceName = serviceName;\r\n this.INFO = 4\r\n this.WARN = 3\r\n this.ERROR = 2\r\n this.log = function(level, msg) {\r\n Zabbix.log(level, \'[\' + this.serviceName + \'] \' + msg);\r\n }\r\n}\r\n\r\nconst CWebhook = function(value) {\r\n try {\r\n params = JSON.parse(value);\r\n\r\n if ([\'0\', \'1\', \'2\', \'3\', \'4\'].indexOf(params.event_source) === -1) {\r\n throw \'Incorrect "event_source" parameter given: \' + params.event_source + \'.\\nMust be 0-4.\';\r\n }\r\n\r\n if ([\'0\', \'3\', \'4\'].indexOf(params.event_source) !== -1 && [\'0\', \'1\'].indexOf(params.event_value) === -1) {\r\n throw \'Incorrect "event_value" parameter given: \' + params.event_value + \'.\\nMust be 0 or 1.\';\r\n }\r\n\r\n if ([\'0\', \'3\', \'4\'].indexOf(params.event_source) !== -1) {\r\n if (params.event_source === \'1\' && [\'0\', \'1\', \'2\', \'3\'].indexOf(params.event_value) === -1) {\r\n throw \'Incorrect "event_value" parameter given: \' + params.event_value + \'.\\nMust be 0-3.\';\r\n }\r\n\r\n if (params.event_source === \'0\' && [\'0\', \'1\'].indexOf(params.event_update_status) === -1) {\r\n throw \'Incorrect "event_update_status" parameter given: \' + params.event_update_status + \'.\\nMust be 0 or 1.\';\r\n }\r\n\r\n if (params.event_source === \'4\') {\r\n if ([\'0\', \'1\', \'2\', \'3\', \'4\', \'5\'].indexOf(params.event_update_nseverity) !== -1 && params.event_update_nseverity != params.event_nseverity) {\r\n params.event_nseverity = params.event_update_nseverity;\r\n params.event_severity = params.event_update_severity;\r\n params.event_update_status = \'1\';\r\n }\r\n }\r\n }\r\n\r\n this.runCallback = function(name, params) {\r\n if (typeof this[name] === \'function\') {\r\n return this[name].apply(this, [params]);\r\n }\r\n }\r\n\r\n this.handleEvent = function(source, event) {\r\n const alert = { source: source, event: event };\r\n return [\r\n this.runCallback(\'on\' + source + event, alert),\r\n this.runCallback(\'on\' + event, alert),\r\n this.runCallback(\'onEvent\', alert)\r\n ];\r\n }\r\n\r\n this.handleEventless = function(source) {\r\n const alert = { source: source, event: null };\r\n return [\r\n this.runCallback(\'on\' + source, alert),\r\n this.runCallback(\'onEvent\', alert)\r\n ];\r\n }\r\n\r\n this.run = function() {\r\n var results = [];\r\n if (typeof this.httpProxy === \'string\' && this.httpProxy.trim() !== \'\') {\r\n this.request.setProxy(this.httpProxy);\r\n }\r\n const types = { \'0\': \'Trigger\', \'1\': \'Discovery\', \'2\': \'Autoreg\', \'3\': \'Internal\', \'4\': \'Service\' };\r\n\r\n if ([\'0\', \'3\', \'4\'].indexOf(this.params.event_source) !== -1) {\r\n var event = (this.params.event_update_status === \'1\')\r\n ? \'Update\'\r\n : ((this.params.event_value === \'1\') ? \'Problem\' : \'Resolve\');\r\n\r\n results = this.handleEvent(types[this.params.event_source], event);\r\n }\r\n else if (typeof types[this.params.event_source] !== \'undefined\') {\r\n results = this.handleEventless(types[this.params.event_source]);\r\n }\r\n else {\r\n throw \'Unexpected "event_source": \' + this.params.event_source;\r\n }\r\n\r\n for (idx in results) {\r\n if (typeof results[idx] !== \'undefined\') {\r\n return JSON.stringify(results[idx]);\r\n }\r\n }\r\n }\r\n this.httpProxy = params.http_proxy;\r\n this.params = params;\r\n this.runCallback(\'onCheckParams\', {});\r\n } catch (error) {\r\n throw \'Webhook processing failed: \' + error;\r\n }\r\n}\r\n\r\nconst CWebhookHelper = {\r\n\r\n createProblemURL: function(event_source, zabbix_url, trigger_id, event_id) {\r\n if (event_source === \'0\') {\r\n return zabbix_url + \'/tr_events.php?triggerid=\' + trigger_id + \'&eventid=\' + event_id;\r\n } else if (event_source === \'4\') {\r\n return zabbix_url + \'/zabbix.php?action=service.list\';\r\n }\r\n\r\n return zabbix_url;\r\n },\r\n\r\n};\r\n\r\nconst CParamValidator = {\r\n\r\n isType: function(value, type) {\r\n if (type === \'array\') {\r\n return Array.isArray(value);\r\n }\r\n if (type === \'integer\') {\r\n return CParamValidator.isInteger(value);\r\n }\r\n if (type === \'float\') {\r\n return CParamValidator.isFloat(value);\r\n }\r\n\r\n return (typeof value === type);\r\n },\r\n\r\n isInteger: function(value) {\r\n if (!CParamValidator.ifMatch(value, /^-?\\d+$/)) {\r\n return false;\r\n }\r\n\r\n return !isNaN(parseInt(value));\r\n },\r\n\r\n isFloat: function(value) {\r\n if (!CParamValidator.ifMatch(value, /^-?\\d+\\.\\d+$/)) {\r\n return false;\r\n }\r\n\r\n return !isNaN(parseFloat(value));\r\n },\r\n\r\n isDefined: function(value) {\r\n return !CParamValidator.isType(value, \'undefined\');\r\n },\r\n\r\n isEmpty: function(value) {\r\n if (!CParamValidator.isType(value, \'string\')) {\r\n throw \'Value "\' + value + \'" must be a string to be checked for emptiness.\';\r\n }\r\n\r\n return (value.trim() === \'\');\r\n },\r\n\r\n isMacroSet: function(value, macro) {\r\n if (CParamValidator.isDefined(macro)) {\r\n return !(CParamValidator.ifMatch(value, \'^\\{\' + macro + \'\\}$\'))\r\n }\r\n\r\n return !(CParamValidator.ifMatch(value, \'^\\{[$#]{0,1}[A-Z_\\.]+[\\:]{0,1}["]{0,1}.*["]{0,1}\\}$\') || value === \'*UNKNOWN*\')\r\n },\r\n\r\n withinRange: function(value, min, max) {\r\n if (!CParamValidator.isType(value, \'number\')) {\r\n throw \'Value "\' + value + \'" must be a number to be checked for range.\';\r\n }\r\n if (value < ((CParamValidator.isDefined(min)) ? min : value)\r\n || value > ((CParamValidator.isDefined(max)) ? max : value)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n\r\n inArray: function(value, array) {\r\n if (!CParamValidator.isType(array, \'array\')) {\r\n throw \'The array must be an array to check the value for existing in it.\';\r\n }\r\n\r\n return (array.indexOf((typeof value === \'string\') ? value.toLowerCase() : value) !== -1);\r\n },\r\n\r\n ifMatch: function(value, regex) {\r\n return (new RegExp(regex)).test(value);\r\n },\r\n\r\n match: function(value, regex) {\r\n if (!CParamValidator.isType(value, \'string\')) {\r\n throw \'Value "\' + value + \'" must be a string to be matched with the regular expression.\';\r\n }\r\n\r\n return value.match(new RegExp(regex));\r\n },\r\n\r\n checkURL: function(value) {\r\n if (CParamValidator.isEmpty(value)) {\r\n throw \'URL value "\' + value + \'" must be a non-empty string.\';\r\n }\r\n if (!CParamValidator.ifMatch(value, \'^(http|https):\\/\\/.+\')) {\r\n throw \'URL value "\' + value + \'" must contain a schema.\';\r\n }\r\n\r\n return value.endsWith(\'/\') ? value.slice(0, -1) : value;\r\n },\r\n\r\n check: function(key, rule, params) {\r\n if (!CParamValidator.isDefined(rule.type)) {\r\n throw \'Mandatory attribute "type" has not been defined for parameter "\' + key + \'".\';\r\n }\r\n if (!CParamValidator.isDefined(params[key])) {\r\n throw \'Checked parameter "\' + key + \'" was not found in the list of input parameters.\';\r\n }\r\n var value = params[key],\r\n error_message = null;\r\n switch (rule.type) {\r\n case \'string\':\r\n if (!CParamValidator.isType(value, \'string\')) {\r\n throw \'Value "\' + key + \'" must be a string.\';\r\n }\r\n if (CParamValidator.isEmpty(value)) {\r\n error_message = \'Value "\' + key + \'" must be a non-empty string\';\r\n break;\r\n }\r\n if (CParamValidator.isDefined(rule.len) && value.length < rule.len) {\r\n error_message = \'Value "\' + key + \'" must be a string with a length > \' + rule.len;\r\n }\r\n if (CParamValidator.isDefined(rule.regex) && !CParamValidator.ifMatch(value, rule.regex)) {\r\n error_message = \'Value "\' + key + \'" must match the regular expression "\' + rule.regex + \'"\';\r\n }\r\n if (CParamValidator.isDefined(rule.url) && rule.url === true) {\r\n value = CParamValidator.checkURL(value);\r\n }\r\n break;\r\n case \'integer\':\r\n if (!CParamValidator.isInteger(value)) {\r\n error_message = \'Value "\' + key + \'" must be an integer\';\r\n break;\r\n }\r\n value = parseInt(value);\r\n break;\r\n case \'float\':\r\n if (!CParamValidator.isFloat(value)) {\r\n error_message = \'Value "\' + key + \'" must be a floating-point number\';\r\n break;\r\n }\r\n value = parseFloat(value);\r\n break;\r\n case \'boolean\':\r\n if (CParamValidator.inArray(value, [\'1\', \'true\', \'yes\', \'on\'])) {\r\n value = true;\r\n }\r\n else if (CParamValidator.inArray(value, [\'0\', \'false\', \'no\', \'off\'])) {\r\n value = false;\r\n }\r\n else {\r\n error_message = \'Value "\' + key + \'" must be a boolean-like.\';\r\n }\r\n break;\r\n case \'array\':\r\n try {\r\n value = JSON.parse(value);\r\n } catch (error) {\r\n throw \'Value "\' + key + \'" contains invalid JSON.\';\r\n }\r\n if (!CParamValidator.isType(value, \'array\')) {\r\n error_message = \'Value "\' + key + \'" must be an array.\';\r\n }\r\n if (CParamValidator.isDefined(rule.tags) && rule.tags === true) {\r\n value = value.reduce(function(acc, obj) {\r\n acc[obj.tag] = obj.value || null;\r\n return acc;\r\n }, {});\r\n }\r\n break;\r\n case \'object\':\r\n value = JSON.parse(value);\r\n if (!CParamValidator.isType(value, \'object\')) {\r\n error_message = \'Value "\' + key + \'" must be an object.\';\r\n }\r\n break;\r\n default:\r\n throw \'Unexpected attribute type "\' + rule.type + \'" for value "\' + key + \'". Available: \' +\r\n [\'integer\', \'float\', \'string\', \'boolean\', \'array\', \'object\'].join(\', \');\r\n }\r\n params[key] = value;\r\n if (CParamValidator.inArray(rule.type, [\'integer\', \'float\']) && error_message === null && (CParamValidator.isDefined(rule.min)\r\n || CParamValidator.isDefined(rule.max)) && !CParamValidator.withinRange(value, rule.min, rule.max)) {\r\n error_message = \'Value "\' + key + \'" must be a number \' + ((CParamValidator.isDefined(rule.min) && CParamValidator.isDefined(rule.max))\r\n ? (rule.min + \'..\' + rule.max) : ((CParamValidator.isDefined(rule.min)) ? \'>\' + rule.min : \'<\' + rule.max));\r\n }\r\n else if (CParamValidator.isDefined(rule.array) && !CParamValidator.inArray(value, rule.array)) {\r\n error_message = \'Value "\' + key + \'" must be in the array \' + JSON.stringify(rule.array);\r\n }\r\n else if (CParamValidator.isDefined(rule.macro) && !CParamValidator.isMacroSet(value.toString(), rule.macro)) {\r\n error_message = \'The macro \' + ((CParamValidator.isDefined(rule.macro)) ? \'{\' + rule.macro + \'} \' : \' \') + \'is not set\';\r\n }\r\n if (error_message !== null) {\r\n if (CParamValidator.isDefined(rule.default) && CParamValidator.isType(rule.default, rule.type)) {\r\n params[key] = rule.default;\r\n }\r\n else {\r\n Zabbix.log(4, \'Default value for "\' + key + \'" must be a \' + rule.type + \'. Skipped.\');\r\n throw \'Incorrect value for variable "\' + key + \'". \' + error_message;\r\n }\r\n }\r\n\r\n return this;\r\n },\r\n\r\n validate: function(rules, params) {\r\n if (!CParamValidator.isType(params, \'object\') || CParamValidator.isType(params, \'array\')) {\r\n throw \'Incorrect parameters value. The value must be an object.\';\r\n }\r\n for (var key in rules) {\r\n CParamValidator.check(key, rules[key], params);\r\n }\r\n }\r\n}\r\n\r\nconst CHttpRequest = function(logger) {\r\n this.request = new HttpRequest();\r\n if (typeof logger !== \'object\' || logger === null) {\r\n this.logger = Zabbix;\r\n }\r\n else {\r\n this.logger = logger;\r\n }\r\n\r\n this.clearHeader = function() {\r\n this.request.clearHeader();\r\n }\r\n\r\n this.addHeaders = function(value) {\r\n var headers = [];\r\n\r\n if (typeof value === \'object\' && value !== null) {\r\n if (!Array.isArray(value)) {\r\n Object.keys(value).forEach(function(key) {\r\n headers.push(key + \': \' + value[key]);\r\n });\r\n }\r\n else {\r\n headers = value;\r\n }\r\n }\r\n else if (typeof value === \'string\') {\r\n value.split(\'\\r\\n\').forEach(function(header) {\r\n headers.push(header);\r\n });\r\n }\r\n\r\n for (var idx in headers) {\r\n this.request.addHeader(headers[idx]);\r\n }\r\n }\r\n\r\n this.setProxy = function(proxy) {\r\n this.request.setProxy(proxy);\r\n }\r\n\r\n this.plainRequest = function(method, url, data) {\r\n var resp = null;\r\n method = method.toLowerCase();\r\n this.logger.log(4, \'Sending \' + method + \' request:\' + JSON.stringify(data));\r\n if ([\'get\', \'post\', \'put\', \'patch\', \'delete\', \'trace\'].indexOf(method) !== -1) {\r\n resp = this.request[method](url, data);\r\n }\r\n else if ([\'connect\', \'head\', \'options\'].indexOf(method) !== -1) {\r\n resp = this.request[method](url);\r\n }\r\n else {\r\n throw \'Unexpected method. Method \' + method + \' is not supported.\';\r\n }\r\n this.logger.log(4, \'Response has been received: \' + resp);\r\n\r\n return resp;\r\n }\r\n\r\n this.jsonRequest = function(method, url, data) {\r\n this.addHeaders(\'Content-Type: application/json\');\r\n var resp = this.plainRequest(method, url, JSON.stringify(data));\r\n try {\r\n resp = JSON.parse(resp);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response: not well-formed JSON was received\';\r\n }\r\n\r\n return resp;\r\n }\r\n\r\n this.getStatus = function() {\r\n return this.request.getStatus();\r\n }\r\n}\r\n\r\nconst SEVERITIES = ["not_classified", "information", "warning", "average", "high", "disaster"],\r\n serviceLogName = \' ((OTRS)) CE Webhook \',\r\n Logger = new CLogger(serviceLogName),\r\n OTRS = CWebhook;\r\n\r\nOTRS.prototype.onCheckParams = function () {\r\n CParamValidator.validate({alert_subject: {type: \'string\'}, alert_message: {type: \'string\'},\r\n event_nseverity: {type: \'integer\', default: -1}, otrs_url: {type: \'string\', url: true}, otrs_auth_user: {type: \'string\'},\r\n otrs_auth_password: {type: \'string\'}, otrs_customer: {type: \'string\'}, otrs_default_priority_id: {type: \'integer\', min: 1, max: 5},\r\n otrs_queue: {type: \'string\'}, otrs_ticket_type: {type: \'string\'}, otrs_ticket_state: {type: \'string\'}, otrs_time_unit: {type: \'integer\'},\r\n otrs_closed_state_id: {type: \'integer\', default: 0}, zabbix_url: {type: \'string\', url: true}}, this.params);\r\n this.params.entrypoint = \'/nph-genericinterface.pl/Webservice/ZabbixTicketConnector/Ticket\';\r\n\r\n var priority;\r\n if (this.params.event_nseverity >= 0 && this.params.event_nseverity < SEVERITIES.length) {\r\n priority = this.params[\'severity_\' + SEVERITIES[this.params.event_nseverity]];\r\n }\r\n this.priority = (CParamValidator.isDefined(priority)) ? priority.trim() : this.params.otrs_default_priority_id;\r\n\r\n if (this.params.event_source === \'0\') {\r\n CParamValidator.validate({trigger_id: {type: \'integer\'}, event_id: {type: \'integer\'}}, this.params);\r\n this.params.zabbix_url = CWebhookHelper.createProblemURL(this.params.event_source, this.params.zabbix_url, this.params.trigger_id, this.params.event_id);\r\n this.params.alert_message = this.params.alert_subject + \'\\n\' + this.params.alert_message + \'\\n\' +\r\n this.params.zabbix_url + \'\\n\';\r\n }\r\n if (this.params.event_value != \'0\' && CParamValidator.isMacroSet(this.params.otrs_ticket_id)) {\r\n this.params.event_update_status = \'1\';\r\n }\r\n this.dynamicFields = {}\r\n Object.keys(this.params).forEach(function (key) {\r\n if (key.startsWith(\'dynamicfield_\')) {\r\n this.dynamicFields[key.substring(13)] = this.params[key];\r\n }\r\n });\r\n\r\n this.data = {\r\n Article: {\r\n Subject: this.params.alert_subject,\r\n Body: (CParamValidator.isDefined(this.params.alert_message)) ? this.params.alert_message : \'\',\r\n TimeUnit: this.params.otrs_time_unit.toString(),\r\n ContentType: \'text/plain; charset=utf8\'\r\n }\r\n };\r\n\r\n this.result = {tags: {}};\r\n};\r\n\r\nOTRS.prototype.sendRequest = function (method) {\r\n var url = this.params.otrs_url + this.params.entrypoint +\r\n \'?UserLogin=\' + encodeURIComponent(this.params.otrs_auth_user) +\r\n \'&Password=\' + encodeURIComponent(this.params.otrs_auth_password);\r\n\r\n var response = this.request.jsonRequest(method, url, this.data);\r\n\r\n if (!CParamValidator.isType(response, \'object\')) {\r\n Logger.log(Logger.INFO, \'API response ERROR: \' + response);\r\n throw \'Unknown error. Check debug log for more information.\';\r\n }\r\n if (this.request.getStatus() < 200 || this.request.getStatus() >= 300) {\r\n var message = \'status code \' + this.request.getStatus();\r\n Logger.log(Logger.INFO, \'API response ERROR with \' + message + \': \' + response);\r\n throw \'Request failed with \' + message + \'. Check debug log for more information.\';\r\n }\r\n if (CParamValidator.isDefined(response.Error) && Object.keys(response.Error).length > 0) {\r\n Logger.log(Logger.INFO, \'API response ERROR: \' + JSON.stringify(response.Error));\r\n throw \'Request failed: \' + JSON.stringify(response.Error);\r\n }\r\n\r\n return {\r\n status: this.request.getStatus(),\r\n response: response\r\n };\r\n};\r\n\r\nOTRS.prototype.createTicket = function () {\r\n this.data[\'Ticket\'] = {\r\n Title: this.params.alert_subject,\r\n Queue: this.params.otrs_queue,\r\n Type: this.params.otrs_ticket_type,\r\n State: this.params.otrs_ticket_state,\r\n PriorityID: this.priority.toString(),\r\n CustomerUser: this.params.otrs_customer\r\n }\r\n\r\n var result = this.sendRequest(\'post\');\r\n\r\n if (!CParamValidator.isDefined(result.response.TicketID) || result.status != 200) {\r\n throw \'Cannot create ((OTRS)) CE ticket. Check debug log for more information.\';\r\n }\r\n\r\n return result.response.TicketID;\r\n}\r\n\r\nOTRS.prototype.updateTicket = function () {\r\n CParamValidator.validate({otrs_ticket_id: {type: \'string\'}, entrypoint: {type: \'string\'}}, this.params);\r\n this.params.entrypoint += \'/\' + encodeURIComponent(this.params.otrs_ticket_id);\r\n\r\n var result = this.sendRequest(\'put\');\r\n\r\n if (!CParamValidator.isDefined(result.response.TicketID) || result.status != 200) {\r\n throw \'Cannot update ((OTRS)) CE ticket. Check debug log for more information.\';\r\n }\r\n\r\n return result.response.TicketID;\r\n}\r\n\r\nOTRS.prototype.onProblem = function (alert) {\r\n Logger.log(Logger.INFO, \'Source: \' + alert.source + \'; Event: \' + alert.event);\r\n if (CParamValidator.isDefined(alert.source) && CParamValidator.inArray(alert.source, [\'trigger\', \'service\', \'internal\'])) {\r\n if (Object.keys(this.dynamicFields).length > 0) {\r\n this.data.DynamicField = [];\r\n Object.keys(this.dynamicFields).forEach(function(field) {\r\n if (field !== undefined) {\r\n if (this.dynamicFields[field].match(/^\\d{4}[.-]\\d{2}[.-]\\d{2}$/)) {\r\n this.dynamicFields[field] = this.dynamicFields[field].replace(/\\./g, \'-\');\r\n }\r\n \r\n this.data.DynamicField.push({Name: field, Value: this.dynamicFields[field]});\r\n }\r\n });\r\n }\r\n const ticket_id = this.createTicket(alert);\r\n this.result.tags.__zbx_otrs_ticket_id = ticket_id;\r\n this.result.tags.__zbx_otrs_ticketlink = this.params.otrs_url + \'index.pl?Action=AgentTicketZoom;TicketID=\' + ticket_id;\r\n\r\n return this.result;\r\n }\r\n return this.createTicket();\r\n}\r\n\r\nOTRS.prototype.onUpdate = function (alert) {\r\n Logger.log(Logger.INFO, \'Source: \' + alert.source + \'; Event: \' + alert.event);\r\n this.updateTicket();\r\n\r\n return this.result;\r\n}\r\n\r\nOTRS.prototype.onResolve = function (alert) {\r\n Logger.log(Logger.INFO, \'Source: \' + alert.source + \'; Event: \' + alert.event);\r\n if (this.params.otrs_closed_state_id > 0) {\r\n this.data[\'Ticket\'] = {\r\n StateID: this.params.otrs_closed_state_id\r\n }\r\n }\r\n this.updateTicket();\r\n\r\n return this.result;\r\n}\r\n\r\nOTRS.prototype.onDiscovery = function (alert) {\r\n return this.onProblem(alert);\r\n}\r\n\r\nOTRS.prototype.onAutoreg = function (alert) {\r\n return this.onProblem(alert);\r\n}\r\n\r\ntry {\r\n var hook = new OTRS(value);\r\n hook.request = new CHttpRequest(Logger);\r\n return hook.run();\r\n}\r\ncatch (error) {\r\n Logger.log(Logger.WARN, \'notification failed: \' + error);\r\n throw \'Sending failed: \' + error;\r\n}','30s','1','1','{EVENT.TAGS.__zbx_otrs_ticketlink}','((OTRS)) CE: ticket #{EVENT.TAGS.__zbx_otrs_ticket_id}','This media type integrates your Zabbix installation with your ((OTRS)) CE installation using the Zabbix webhook feature.\r\n\r\n((OTRS)) CE configuration:\r\n\r\n1. Create a new web service. To do so, navigate to "Admin" → "Web services" and import the "ZabbixTicketConnector.yml" file (it can be found in the official Zabbix repository next to the media type file).\r\n\r\n2. Create a new customer.\r\n\r\n3. Create a new customer user. Select the ID of the customer that you created in the previous step.\r\n\r\n4. Create a new agent. Depending on the ticket queue you want to use for tickets created by the webhook, set the "RW" permission for the group that this ticket queue belongs to. In the example below, if you want to use the "Misc" queue, you must set the "RW" permission for the group "users".\r\n\r\nZabbix configuration:\r\n\r\n1. Before you can start using the ((OTRS)) CE webhook, set the global macro "{$ZABBIX.URL}":\r\n- In the Zabbix web interface, go to "Administration" → "Macros" in the top-left dropdown menu.\r\n- Set the global macro "{$ZABBIX.URL}" to the URL of the Zabbix frontend. The URL should be either an IP address, a fully qualified domain name, or localhost.\r\n- Specifying a protocol is mandatory, whereas the port is optional. Depending on the web server configuration, you might also need to append "/zabbix" to the end of URL. Good examples:\r\n - http://zabbix.com\r\n - https://zabbix.lan/zabbix\r\n - http://server.zabbix.lan/\r\n - http://localhost\r\n - http://127.0.0.1:8080\r\n- Bad examples:\r\n - zabbix.com\r\n - http://zabbix/\r\n\r\n2. Set the following webhook parameters:\r\n- otrs_auth_user - the username of the agent\r\n- otrs_auth_password - the password of the agent\r\n- otrs_customer - the email of the customer user\r\n- otrs_queue - the queue that will be used for tickets created by the webhook\r\n- otrs_url - the frontend URL of your ((OTRS)) CE installation (for example, "https://otrs.example.com/otrs")\r\n\r\n3. If you want to prioritize issues according to the severity values in Zabbix, you can define mapping parameters (create them as additional webhook parameters):\r\n- severity_ - the ((OTRS)) CE priority ID ( in the parameter name can be one of the following values: "not_classified", "information", "warning", "average", "high", "disaster")\r\n\r\n4. If you have dynamic fields in ((OTRS)) CE and want them to be filled with values from Zabbix, add webhook parameters in the format "dynamicfield_<((OTRS)) CE dynamic field name>", similarly to the previous step. Dynamic fields can only be of the types "text", "textarea", "checkbox", or "date".\r\n\r\n5. If you want the webhook to close tickets related to **resolved** problems in Zabbix, you can change the following parameter value:\r\n- otrs_closed_state_id - ((OTRS)) CE state ID for closed tasks (possible values: 0 - Disable tickets closing, >0 - State ID from the State Management page).\r\n\r\n6. If you use the ticket type feature, you can change the type of the created tickets:\r\n- otrs_ticket_type - ((OTRS)) CE ticket type (set to "Unclassified" by default; present on fresh installations).\r\n\r\n7. Click the "Enabled" checkbox to enable the mediatype and click the "Update" button to save the webhook settings.\r\n\r\n8. Create a Zabbix user and add media:\r\n- To create a new user, go to the "Users" → "Users" section, click the "Create user" button in the top right corner. In the "User" tab, fill in all required fields (marked with red asterisks).\r\n- In the "Media" tab, click "Add" and select the type "OTRS CE" from the drop-down list. Add any value in the "Send to" field: it is not used in the webhook, but is required.\r\n- Make sure this user has access to all hosts for which you would like problem notifications to be sent to ((OTRS)) CE.\r\n\r\n9. Done! You can now start using this media type in actions and create tickets.\r\n\r\nYou can find the latest version of this media and additional information in the official Zabbix repository:\r\nhttps://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/otrs_ce','0'),
('88','4','PagerDuty','','','','','','','','25','0','0','0','0','1','3','10s','1','const CLogger = function(serviceName) {\r\n this.serviceName = serviceName;\r\n this.INFO = 4\r\n this.WARN = 3\r\n this.ERROR = 2\r\n this.log = function(level, msg) {\r\n Zabbix.log(level, \'[\' + this.serviceName + \'] \' + msg);\r\n }\r\n}\r\n\r\nconst CWebhook = function(value) {\r\n try {\r\n params = JSON.parse(value);\r\n\r\n if ([\'0\', \'1\', \'2\', \'3\', \'4\'].indexOf(params.event_source) === -1) {\r\n throw \'Incorrect "event_source" parameter given: \' + params.event_source + \'.\\nMust be 0-4.\';\r\n }\r\n\r\n if ([\'0\', \'3\', \'4\'].indexOf(params.event_source) !== -1 && [\'0\', \'1\'].indexOf(params.event_value) === -1) {\r\n throw \'Incorrect "event_value" parameter given: \' + params.event_value + \'.\\nMust be 0 or 1.\';\r\n }\r\n\r\n if ([\'0\', \'3\', \'4\'].indexOf(params.event_source) !== -1) {\r\n if (params.event_source === \'1\' && [\'0\', \'1\', \'2\', \'3\'].indexOf(params.event_value) === -1) {\r\n throw \'Incorrect "event_value" parameter given: \' + params.event_value + \'.\\nMust be 0-3.\';\r\n }\r\n\r\n if (params.event_source === \'0\' && [\'0\', \'1\'].indexOf(params.event_update_status) === -1) {\r\n throw \'Incorrect "event_update_status" parameter given: \' + params.event_update_status + \'.\\nMust be 0 or 1.\';\r\n }\r\n\r\n if (params.event_source === \'4\') {\r\n if ([\'0\', \'1\', \'2\', \'3\', \'4\', \'5\'].indexOf(params.event_update_nseverity) !== -1 && params.event_update_nseverity != params.event_nseverity) {\r\n params.event_nseverity = params.event_update_nseverity;\r\n params.event_severity = params.event_update_severity;\r\n params.event_update_status = \'1\';\r\n }\r\n }\r\n }\r\n\r\n this.runCallback = function(name, params) {\r\n if (typeof this[name] === \'function\') {\r\n return this[name].apply(this, [params]);\r\n }\r\n }\r\n\r\n this.handleEvent = function(source, event) {\r\n const alert = { source: source, event: event };\r\n return [\r\n this.runCallback(\'on\' + source + event, alert),\r\n this.runCallback(\'on\' + event, alert),\r\n this.runCallback(\'onEvent\', alert)\r\n ];\r\n }\r\n\r\n this.handleEventless = function(source) {\r\n const alert = { source: source, event: null };\r\n return [\r\n this.runCallback(\'on\' + source, alert),\r\n this.runCallback(\'onEvent\', alert)\r\n ];\r\n }\r\n\r\n this.run = function() {\r\n var results = [];\r\n if (typeof this.httpProxy === \'string\' && this.httpProxy.trim() !== \'\') {\r\n this.request.setProxy(this.httpProxy);\r\n }\r\n const types = { \'0\': \'Trigger\', \'1\': \'Discovery\', \'2\': \'Autoreg\', \'3\': \'Internal\', \'4\': \'Service\' };\r\n\r\n if ([\'0\', \'3\', \'4\'].indexOf(this.params.event_source) !== -1) {\r\n var event = (this.params.event_update_status === \'1\')\r\n ? \'Update\'\r\n : ((this.params.event_value === \'1\') ? \'Problem\' : \'Resolve\');\r\n\r\n results = this.handleEvent(types[this.params.event_source], event);\r\n }\r\n else if (typeof types[this.params.event_source] !== \'undefined\') {\r\n results = this.handleEventless(types[this.params.event_source]);\r\n }\r\n else {\r\n throw \'Unexpected "event_source": \' + this.params.event_source;\r\n }\r\n\r\n for (idx in results) {\r\n if (typeof results[idx] !== \'undefined\') {\r\n return JSON.stringify(results[idx]);\r\n }\r\n }\r\n }\r\n this.httpProxy = params.http_proxy;\r\n this.params = params;\r\n this.runCallback(\'onCheckParams\', {});\r\n } catch (error) {\r\n throw \'Webhook processing failed: \' + error;\r\n }\r\n}\r\n\r\nconst CWebhookHelper = {\r\n\r\n createProblemURL: function(event_source, zabbix_url, trigger_id, event_id) {\r\n if (event_source === \'0\') {\r\n return zabbix_url + \'/tr_events.php?triggerid=\' + trigger_id + \'&eventid=\' + event_id;\r\n } else if (event_source === \'4\') {\r\n return zabbix_url + \'/zabbix.php?action=service.list\';\r\n }\r\n\r\n return zabbix_url;\r\n },\r\n\r\n};\r\n\r\nconst CParamValidator = {\r\n\r\n isType: function(value, type) {\r\n if (type === \'array\') {\r\n return Array.isArray(value);\r\n }\r\n if (type === \'integer\') {\r\n return CParamValidator.isInteger(value);\r\n }\r\n if (type === \'float\') {\r\n return CParamValidator.isFloat(value);\r\n }\r\n\r\n return (typeof value === type);\r\n },\r\n\r\n isInteger: function(value) {\r\n if (!CParamValidator.ifMatch(value, /^-?\\d+$/)) {\r\n return false;\r\n }\r\n\r\n return !isNaN(parseInt(value));\r\n },\r\n\r\n isFloat: function(value) {\r\n if (!CParamValidator.ifMatch(value, /^-?\\d+\\.\\d+$/)) {\r\n return false;\r\n }\r\n\r\n return !isNaN(parseFloat(value));\r\n },\r\n\r\n isDefined: function(value) {\r\n return !CParamValidator.isType(value, \'undefined\');\r\n },\r\n\r\n isEmpty: function(value) {\r\n if (!CParamValidator.isType(value, \'string\')) {\r\n throw \'Value "\' + value + \'" must be a string to be checked for emptiness.\';\r\n }\r\n\r\n return (value.trim() === \'\');\r\n },\r\n\r\n isMacroSet: function(value, macro) {\r\n if (CParamValidator.isDefined(macro)) {\r\n return !(CParamValidator.ifMatch(value, \'^\\{\' + macro + \'\\}$\'))\r\n }\r\n\r\n return !(CParamValidator.ifMatch(value, \'^\\{[$#]{0,1}[A-Z_\\.]+[\\:]{0,1}["]{0,1}.*["]{0,1}\\}$\') || value === \'*UNKNOWN*\')\r\n },\r\n\r\n withinRange: function(value, min, max) {\r\n if (!CParamValidator.isType(value, \'number\')) {\r\n throw \'Value "\' + value + \'" must be a number to be checked for range.\';\r\n }\r\n if (value < ((CParamValidator.isDefined(min)) ? min : value)\r\n || value > ((CParamValidator.isDefined(max)) ? max : value)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n\r\n inArray: function(value, array) {\r\n if (!CParamValidator.isType(array, \'array\')) {\r\n throw \'The array must be an array to check the value for existing in it.\';\r\n }\r\n\r\n return (array.indexOf((typeof value === \'string\') ? value.toLowerCase() : value) !== -1);\r\n },\r\n\r\n ifMatch: function(value, regex) {\r\n return (new RegExp(regex)).test(value);\r\n },\r\n\r\n match: function(value, regex) {\r\n if (!CParamValidator.isType(value, \'string\')) {\r\n throw \'Value "\' + value + \'" must be a string to be matched with the regular expression.\';\r\n }\r\n\r\n return value.match(new RegExp(regex));\r\n },\r\n\r\n checkURL: function(value) {\r\n if (CParamValidator.isEmpty(value)) {\r\n throw \'URL value "\' + value + \'" must be a non-empty string.\';\r\n }\r\n if (!CParamValidator.ifMatch(value, \'^(http|https):\\/\\/.+\')) {\r\n throw \'URL value "\' + value + \'" must contain a schema.\';\r\n }\r\n\r\n return value.endsWith(\'/\') ? value.slice(0, -1) : value;\r\n },\r\n\r\n check: function(key, rule, params) {\r\n if (!CParamValidator.isDefined(rule.type)) {\r\n throw \'Mandatory attribute "type" has not been defined for parameter "\' + key + \'".\';\r\n }\r\n if (!CParamValidator.isDefined(params[key])) {\r\n throw \'Checked parameter "\' + key + \'" was not found in the list of input parameters.\';\r\n }\r\n var value = params[key],\r\n error_message = null;\r\n switch (rule.type) {\r\n case \'string\':\r\n if (!CParamValidator.isType(value, \'string\')) {\r\n throw \'Value "\' + key + \'" must be a string.\';\r\n }\r\n if (CParamValidator.isEmpty(value)) {\r\n error_message = \'Value "\' + key + \'" must be a non-empty string\';\r\n break;\r\n }\r\n if (CParamValidator.isDefined(rule.len) && value.length < rule.len) {\r\n error_message = \'Value "\' + key + \'" must be a string with a length > \' + rule.len;\r\n }\r\n if (CParamValidator.isDefined(rule.regex) && !CParamValidator.ifMatch(value, rule.regex)) {\r\n error_message = \'Value "\' + key + \'" must match the regular expression "\' + rule.regex + \'"\';\r\n }\r\n if (CParamValidator.isDefined(rule.url) && rule.url === true) {\r\n value = CParamValidator.checkURL(value);\r\n }\r\n break;\r\n case \'integer\':\r\n if (!CParamValidator.isInteger(value)) {\r\n error_message = \'Value "\' + key + \'" must be an integer\';\r\n break;\r\n }\r\n value = parseInt(value);\r\n break;\r\n case \'float\':\r\n if (!CParamValidator.isFloat(value)) {\r\n error_message = \'Value "\' + key + \'" must be a floating-point number\';\r\n break;\r\n }\r\n value = parseFloat(value);\r\n break;\r\n case \'boolean\':\r\n if (CParamValidator.inArray(value, [\'1\', \'true\', \'yes\', \'on\'])) {\r\n value = true;\r\n }\r\n else if (CParamValidator.inArray(value, [\'0\', \'false\', \'no\', \'off\'])) {\r\n value = false;\r\n }\r\n else {\r\n error_message = \'Value "\' + key + \'" must be a boolean-like.\';\r\n }\r\n break;\r\n case \'array\':\r\n try {\r\n value = JSON.parse(value);\r\n } catch (error) {\r\n throw \'Value "\' + key + \'" contains invalid JSON.\';\r\n }\r\n if (!CParamValidator.isType(value, \'array\')) {\r\n error_message = \'Value "\' + key + \'" must be an array.\';\r\n }\r\n if (CParamValidator.isDefined(rule.tags) && rule.tags === true) {\r\n value = value.reduce(function(acc, obj) {\r\n acc[obj.tag] = obj.value || null;\r\n return acc;\r\n }, {});\r\n }\r\n break;\r\n case \'object\':\r\n value = JSON.parse(value);\r\n if (!CParamValidator.isType(value, \'object\')) {\r\n error_message = \'Value "\' + key + \'" must be an object.\';\r\n }\r\n break;\r\n default:\r\n throw \'Unexpected attribute type "\' + rule.type + \'" for value "\' + key + \'". Available: \' +\r\n [\'integer\', \'float\', \'string\', \'boolean\', \'array\', \'object\'].join(\', \');\r\n }\r\n params[key] = value;\r\n if (CParamValidator.inArray(rule.type, [\'integer\', \'float\']) && error_message === null && (CParamValidator.isDefined(rule.min)\r\n || CParamValidator.isDefined(rule.max)) && !CParamValidator.withinRange(value, rule.min, rule.max)) {\r\n error_message = \'Value "\' + key + \'" must be a number \' + ((CParamValidator.isDefined(rule.min) && CParamValidator.isDefined(rule.max))\r\n ? (rule.min + \'..\' + rule.max) : ((CParamValidator.isDefined(rule.min)) ? \'>\' + rule.min : \'<\' + rule.max));\r\n }\r\n else if (CParamValidator.isDefined(rule.array) && !CParamValidator.inArray(value, rule.array)) {\r\n error_message = \'Value "\' + key + \'" must be in the array \' + JSON.stringify(rule.array);\r\n }\r\n else if (CParamValidator.isDefined(rule.macro) && !CParamValidator.isMacroSet(value.toString(), rule.macro)) {\r\n error_message = \'The macro \' + ((CParamValidator.isDefined(rule.macro)) ? \'{\' + rule.macro + \'} \' : \' \') + \'is not set\';\r\n }\r\n if (error_message !== null) {\r\n if (CParamValidator.isDefined(rule.default) && CParamValidator.isType(rule.default, rule.type)) {\r\n params[key] = rule.default;\r\n }\r\n else {\r\n Zabbix.log(4, \'Default value for "\' + key + \'" must be a \' + rule.type + \'. Skipped.\');\r\n throw \'Incorrect value for variable "\' + key + \'". \' + error_message;\r\n }\r\n }\r\n\r\n return this;\r\n },\r\n\r\n validate: function(rules, params) {\r\n if (!CParamValidator.isType(params, \'object\') || CParamValidator.isType(params, \'array\')) {\r\n throw \'Incorrect parameters value. The value must be an object.\';\r\n }\r\n for (var key in rules) {\r\n CParamValidator.check(key, rules[key], params);\r\n }\r\n }\r\n}\r\n\r\nconst CHttpRequest = function(logger) {\r\n this.request = new HttpRequest();\r\n if (typeof logger !== \'object\' || logger === null) {\r\n this.logger = Zabbix;\r\n }\r\n else {\r\n this.logger = logger;\r\n }\r\n\r\n this.clearHeader = function() {\r\n this.request.clearHeader();\r\n }\r\n\r\n this.addHeaders = function(value) {\r\n var headers = [];\r\n\r\n if (typeof value === \'object\' && value !== null) {\r\n if (!Array.isArray(value)) {\r\n Object.keys(value).forEach(function(key) {\r\n headers.push(key + \': \' + value[key]);\r\n });\r\n }\r\n else {\r\n headers = value;\r\n }\r\n }\r\n else if (typeof value === \'string\') {\r\n value.split(\'\\r\\n\').forEach(function(header) {\r\n headers.push(header);\r\n });\r\n }\r\n\r\n for (var idx in headers) {\r\n this.request.addHeader(headers[idx]);\r\n }\r\n }\r\n\r\n this.setProxy = function(proxy) {\r\n this.request.setProxy(proxy);\r\n }\r\n\r\n this.plainRequest = function(method, url, data) {\r\n var resp = null;\r\n method = method.toLowerCase();\r\n this.logger.log(4, \'Sending \' + method + \' request:\' + JSON.stringify(data));\r\n if ([\'get\', \'post\', \'put\', \'patch\', \'delete\', \'trace\'].indexOf(method) !== -1) {\r\n resp = this.request[method](url, data);\r\n }\r\n else if ([\'connect\', \'head\', \'options\'].indexOf(method) !== -1) {\r\n resp = this.request[method](url);\r\n }\r\n else {\r\n throw \'Unexpected method. Method \' + method + \' is not supported.\';\r\n }\r\n this.logger.log(4, \'Response has been received: \' + resp);\r\n\r\n return resp;\r\n }\r\n\r\n this.jsonRequest = function(method, url, data) {\r\n this.addHeaders(\'Content-Type: application/json\');\r\n var resp = this.plainRequest(method, url, JSON.stringify(data));\r\n try {\r\n resp = JSON.parse(resp);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response: not well-formed JSON was received\';\r\n }\r\n\r\n return resp;\r\n }\r\n\r\n this.getStatus = function() {\r\n return this.request.getStatus();\r\n }\r\n}\r\n\r\nvar severityMapping = [\r\n \'info\',\r\n \'info\',\r\n \'warning\',\r\n \'warning\',\r\n \'error\',\r\n \'critical\'\r\n],\r\n serviceLogName = \'PagerDuty Webhook\',\r\n Logger = new CLogger(serviceLogName),\r\n PagerDuty = CWebhook;\r\n\r\nfunction getDefaultEventData(data, params) {\r\n data.event_action = \'trigger\';\r\n data.payload.custom_details = {\r\n \'Alert message\': params.alert_message\r\n };\r\n Object.keys(params).forEach(function (key) {\r\n if (key.startsWith(\'customdetails_\') && !CParamValidator.isEmpty(params[key])) {\r\n data.payload.custom_details[key.substring(14)] = params[key];\r\n }\r\n });\r\n data.client = \'Zabbix\';\r\n data.client_url = params.zabbix_url;\r\n\r\n return data;\r\n};\r\n\r\nPagerDuty.prototype.onCheckParams = function () {\r\n this.params.url = \'https://events.pagerduty.com/v2/enqueue\';\r\n CParamValidator.validate({api_token: {type: \'string\'}, event_id: {type: \'integer\'},\r\n alert_subject: {type: \'string\'}, host_ip: {type: \'string\', default: \'\'}, zabbix_url: {type: \'string\', url: true},\r\n event_nseverity: {type: \'integer\', min: 0, max: 5, default: 0}}, this.params);\r\n if (CParamValidator.inArray(this.params.event_source, [\'0\',\'3\',\'4\'])) {\r\n CParamValidator.validate({host_name: {type: \'string\', default: \'\'}}, this.params);\r\n if (this.params.event_source === \'0\') {\r\n CParamValidator.validate({trigger_id: {type: \'integer\'}, event_update_status: {type: \'string\', array: [\'0\', \'1\']},\r\n event_ack: {type: \'boolean\'}}, this.params);\r\n }\r\n else {\r\n CParamValidator.validate({alert_message: {type: \'string\'}, event_ack: {type: \'boolean\', default: false}}, this.params);\r\n }\r\n }\r\n this.data = {\r\n routing_key: this.params.api_token,\r\n dedup_key: String(this.params.event_id),\r\n payload: {\r\n summary: this.params.alert_subject,\r\n source: (!CParamValidator.isEmpty(this.params.host_name)) ? (this.params.host_name +\r\n ((!CParamValidator.isEmpty(this.params.host_ip)) ? \' : \' + this.params.host_ip : \'\')) : \'Zabbix\',\r\n severity: severityMapping[this.params.event_nseverity],\r\n }\r\n }\r\n}\r\n\r\nPagerDuty.prototype.onProblem = function (alert) {\r\n Logger.log(Logger.INFO, \'Source: \' + alert.source + \'; Event: \' + alert.event);\r\n this.data = getDefaultEventData(this.data, this.params);\r\n if (CParamValidator.isDefined(alert.source) && alert.source === \'Trigger\') {\r\n this.data.links = [{\r\n href: CWebhookHelper.createProblemURL(this.params.event_source, this.params.zabbix_url, this.params.trigger_id, this.params.event_id),\r\n text: \'Event link\'\r\n }];\r\n }\r\n\r\n return this.sendRequest();\r\n}\r\n\r\nPagerDuty.prototype.onUpdate = function (alert) {\r\n Logger.log(Logger.INFO, \'Source: \' + alert.source + \'; Event: \' + alert.event);\r\n if (this.params.event_ack === true) {\r\n this.data.event_action = \'acknowledge\';\r\n return this.sendRequest();\r\n }\r\n this.data = getDefaultEventData(this.data, this.params);\r\n\r\n return this.sendRequest();\r\n}\r\n\r\nPagerDuty.prototype.onResolve = function (alert) {\r\n Logger.log(Logger.INFO, \'Source: \' + alert.source + \'; Event: \' + alert.event);\r\n this.data = getDefaultEventData(this.data, this.params);\r\n this.data.event_action = \'resolve\';\r\n \r\n return this.sendRequest();\r\n}\r\n\r\nPagerDuty.prototype.onDiscovery = function (alert) {\r\n Logger.log(Logger.INFO, \'Source: \' + alert.source + \'; Event: \' + alert.event);\r\n this.data = getDefaultEventData(this.data, this.params);\r\n this.data.payload.source = \'Discovery\';\r\n\r\n return this.sendRequest();\r\n}\r\n\r\nPagerDuty.prototype.onAutoreg = function (alert) {\r\n return this.onProblem(alert);\r\n}\r\n\r\nPagerDuty.prototype.sendRequest = function () {\r\n var response = this.request.jsonRequest(\'POST\', this.params.url, this.data);\r\n if (!CParamValidator.isType(response, \'object\')) {\r\n Logger.log(Logger.INFO, \'API response ERROR: \' + response);\r\n throw \'Unknown error. Check debug log for more information.\';\r\n }\r\n if (this.request.getStatus() != 202) {\r\n if (CParamValidator.isType(response.errors, \'array\') && CParamValidator.isType(response.errors[0], \'string\')) {\r\n throw response.errors[0];\r\n }\r\n else {\r\n throw \'Unknown error. HTTP status: \' + this.request.getStatus();\r\n }\r\n }\r\n if (response.status != \'success\') {\r\n Logger.log(Logger.INFO, \'API response ERROR: \' + response);\r\n throw \'Unknown error. Check debug log for more information.\';\r\n }\r\n\r\n return \'OK\';\r\n};\r\n\r\ntry {\r\n var hook = new PagerDuty(value);\r\n hook.request = new CHttpRequest(Logger);\r\n return hook.run();\r\n}\r\ncatch (error) {\r\n Logger.log(Logger.WARN, \'notification failed: \' + error);\r\n throw \'Sending failed: \' + error;\r\n}','30s','0','0','','','Please refer to https://v2.developer.pagerduty.com/docs/send-an-event-events-api-v2 and https://www.zabbix.com/documentation/7.4/manual/config/notifications/media/webhook#example_scripts.\r\n\r\nSet global macro {$ZABBIX.URL} with your Zabbix server URL.\r\nAdd a dedicated user with the media type "PagerDuty" and place the integration key in the user\'s "Send to" parameter to integrate into the service.','0'),
('89','4','Pushover','','','','','','','','25','0','0','0','0','0','3','10s','1','try {\r\n var params = JSON.parse(value),\r\n request = new HttpRequest(),\r\n data,\r\n response,\r\n severities = [\r\n {name: \'not_classified\', color: \'#97AAB3\'},\r\n {name: \'information\', color: \'#7499FF\'},\r\n {name: \'warning\', color: \'#FFC859\'},\r\n {name: \'average\', color: \'#FFA059\'},\r\n {name: \'high\', color: \'#E97659\'},\r\n {name: \'disaster\', color: \'#E45959\'},\r\n {name: \'resolved\', color: \'#009900\'},\r\n {name: \'default\', color: \'#000000\'}\r\n ],\r\n priority;\r\n\r\n if (typeof params.HTTPProxy === \'string\' && params.HTTPProxy.trim() !== \'\') {\r\n request.setProxy(params.HTTPProxy);\r\n }\r\n\r\n if ([0, 1, 2, 3].indexOf(parseInt(params.event_source)) === -1) {\r\n throw \'Incorrect "event_source" parameter given: "\' + params.event_source + \'".\\nMust be 0-3.\';\r\n }\r\n\r\n if (params.event_value !== \'0\' && params.event_value !== \'1\'\r\n && (params.event_source === \'0\' || params.event_source === \'3\')) {\r\n throw \'Incorrect "event_value" parameter given: \' + params.event_value + \'\\nMust be 0 or 1.\';\r\n }\r\n\r\n if ([0, 1, 2, 3, 4, 5].indexOf(parseInt(params.event_nseverity)) === -1) {\r\n params.event_nseverity = \'7\';\r\n }\r\n\r\n if (params.event_value === \'0\') {\r\n params.event_nseverity = \'6\';\r\n }\r\n\r\n priority = params[\'priority_\' + severities[params.event_nseverity].name] || params.priority_default;\r\n\r\n if (isNaN(priority) || priority < -2 || priority > 2) {\r\n throw \'"priority" should be -2..2\';\r\n }\r\n\r\n if (params.event_source === \'0\' && isNaN(params.triggerid)) {\r\n throw \'field "triggerid" is not a number\';\r\n }\r\n\r\n if (isNaN(params.eventid)) {\r\n throw \'field "eventid" is not a number\';\r\n }\r\n\r\n if (typeof params.message !== \'string\' || params.message.trim() === \'\') {\r\n throw \'field "message" cannot be empty\';\r\n }\r\n\r\n data = {\r\n token: params.token,\r\n user: params.user,\r\n title: params.title,\r\n message: params.message,\r\n url: (params.event_source === \'0\') \r\n ? params.url + \'/tr_events.php?triggerid=\' + params.triggerid + \'&eventid=\' + params.eventid\r\n : params.url,\r\n url_title: params.url_title,\r\n priority: priority\r\n };\r\n\r\n if (priority == 2) {\r\n if (isNaN(params.retry) || params.retry < 30) {\r\n throw \'field "retry" should be a number with value of at least 30 if "priority" is set to 2\';\r\n }\r\n\r\n if (isNaN(params.expire) || params.expire > 10800) {\r\n throw \'field "expire" should be a number with value of at most 10800 if "priority" is set to 2\';\r\n }\r\n\r\n data.retry = params.retry;\r\n data.expire = params.expire;\r\n }\r\n\r\n data = JSON.stringify(data);\r\n Zabbix.log(4, \'[ Pushover Webhook ] Sending request: \' + params.endpoint + \'\\n\' + data);\r\n\r\n request.addHeader(\'Content-Type: application/json\');\r\n response = request.post(params.endpoint, data);\r\n\r\n Zabbix.log(4, \'[ Pushover Webhook ] Received response with status code \' + request.getStatus() + \'\\n\' + response);\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n Zabbix.log(4, \'[ Pushover Webhook ] Failed to parse response received from Pushover\');\r\n response = null;\r\n }\r\n }\r\n\r\n if (request.getStatus() != 200 || response === null || typeof response !== \'object\' || response.status !== 1) {\r\n if (response !== null && typeof response === \'object\' && typeof response.errors === \'object\'\r\n && typeof response.errors[0] === \'string\') {\r\n throw response.errors[0];\r\n }\r\n else {\r\n throw \'Unknown error. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n return \'OK\';\r\n}\r\ncatch (error) {\r\n Zabbix.log(4, \'[ Pushover Webhook ] Pushover notification failed: \' + error);\r\n throw \'Pushover notification failed: \' + error;\r\n}','30s','0','0','','','Please refer to setup guide here: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/pushover\r\n\r\nSet token parameter with to your Pushover application key.\r\nWhen assigning Pushover media to the Zabbix user - add user key into send to field.','0'),
('90','4','Redmine','','','','','','','','25','0','0','0','0','1','3','10s','1','var Redmine = {\r\n params: {},\r\n\r\n setParams: function (params) {\r\n if (typeof params !== \'object\') {\r\n return;\r\n }\r\n\r\n Redmine.params = params;\r\n if (typeof Redmine.params.url === \'string\') {\r\n if (!Redmine.params.url.endsWith(\'/\')) {\r\n Redmine.params.url += \'/\';\r\n }\r\n }\r\n },\r\n\r\n addCustomFields: function (data, fields) {\r\n if (typeof fields === \'object\' && Object.keys(fields).length) {\r\n\r\n data.issue.custom_fields = [];\r\n Object.keys(fields)\r\n .forEach(function (field) {\r\n var field_value = fields[field];\r\n\r\n if (field_value !== undefined) {\r\n data.issue.custom_fields.push({ id: field, value: field_value });\r\n }\r\n });\r\n\r\n }\r\n return data;\r\n },\r\n\r\n request: function (method, query, data) {\r\n [\'url\', \'access_key\'].forEach(function (field) {\r\n if (typeof Redmine.params !== \'object\' || typeof Redmine.params[field] === \'undefined\'\r\n || Redmine.params[field] === \'\' ) {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n });\r\n\r\n var response,\r\n url = Redmine.params.url + query,\r\n request = new HttpRequest();\r\n\r\n if (typeof Redmine.HTTPProxy === \'string\' && Redmine.HTTPProxy.trim() !== \'\') {\r\n request.setProxy(Redmine.HTTPProxy);\r\n }\r\n\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'X-Redmine-API-Key: \' + Redmine.params.access_key);\r\n\r\n if (typeof data !== \'undefined\') {\r\n data = JSON.stringify(data);\r\n }\r\n\r\n Zabbix.log(4, \'[ Redmine Webhook ] Sending request: \' +\r\n url + ((typeof data === \'string\') ? (\' \' + data) : \'\'));\r\n\r\n switch (method) {\r\n case \'get\':\r\n response = request.get(url, data);\r\n break;\r\n\r\n case \'post\':\r\n response = request.post(url, data);\r\n break;\r\n\r\n case \'put\':\r\n response = request.put(url, data);\r\n break;\r\n\r\n default:\r\n throw \'Unsupported HTTP request method: \' + method;\r\n }\r\n\r\n Zabbix.log(4, \'[ Redmine Webhook ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n Zabbix.log(4, \'[ Redmine Webhook ] Failed to parse response received from Redmine\');\r\n response = null;\r\n }\r\n }\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n var message = \'Request failed with status code \' + request.getStatus();\r\n\r\n if (response !== null && typeof response.errors !== \'undefined\'\r\n && Object.keys(response.errors).length > 0) {\r\n message += \': \' + JSON.stringify(response.errors);\r\n }\r\n else if (response !== null && typeof response.errorMessages !== \'undefined\'\r\n && Object.keys(response.errorMessages).length > 0) {\r\n message += \': \' + JSON.stringify(response.errorMessages);\r\n }\r\n\r\n throw message + \' Check debug log for more information.\';\r\n }\r\n\r\n return {\r\n status: request.getStatus(),\r\n response: response\r\n };\r\n },\r\n\r\n getProjectID: function(name) {\r\n var result = Redmine.request(\'get\', \'projects.json\'),\r\n project_id;\r\n\r\n if (result.response) {\r\n var projects = result.response.projects || [];\r\n\r\n for (var i in projects) {\r\n if (projects[i].name === name) {\r\n project_id = projects[i].id;\r\n break;\r\n }\r\n }\r\n }\r\n else {\r\n Zabbix.log(4, \'[ Redmine Webhook ] Failed to retrieve project data.\');\r\n }\r\n\r\n if (typeof project_id === \'undefined\') {\r\n throw \'Cannot find project with name: \' + name;\r\n }\r\n\r\n return project_id;\r\n },\r\n\r\n createIssue: function(subject, description, priority, fields) {\r\n var project_id = /^\\d+$/.test(Redmine.params.project)\r\n ? Redmine.params.project\r\n : Redmine.getProjectID(Redmine.params.project),\r\n data = {\r\n issue: {\r\n project_id: project_id,\r\n tracker_id: Redmine.params.tracker_id,\r\n subject: subject,\r\n description: description\r\n }\r\n },\r\n result;\r\n\r\n if (priority) {\r\n data.issue.priority_id = priority;\r\n }\r\n\r\n result = Redmine.request(\'post\', \'issues.json\', Redmine.addCustomFields(data, fields));\r\n\r\n if (typeof result.response !== \'object\'\r\n || typeof result.response.issue.id === \'undefined\'\r\n || result.status != 201) {\r\n throw \'Cannot create Redmine issue. Check debug log for more information.\';\r\n }\r\n\r\n return result.response.issue.id;\r\n },\r\n\r\n updateIssue: function (note, fields, status) {\r\n var data = {\r\n issue: {\r\n notes: note || \'\'\r\n }\r\n };\r\n\r\n if (status) {\r\n data.issue.status_id = status;\r\n }\r\n\r\n Redmine.request(\'put\', \'issues/\' + Redmine.params.issue_key + \'.json\', Redmine.addCustomFields(data, fields));\r\n }\r\n\r\n};\r\n\r\ntry {\r\n var params = JSON.parse(value),\r\n params_redmine = {},\r\n params_fields = {},\r\n params_update = {},\r\n result = {tags: {}},\r\n required_params = [\r\n \'alert_subject\', \'tracker_id\', \'project\',\r\n \'event_source\', \'event_value\', \'event_update_status\'\r\n ],\r\n severities = [\r\n {name: \'not_classified\', color: \'#97AAB3\'},\r\n {name: \'information\', color: \'#7499FF\'},\r\n {name: \'warning\', color: \'#FFC859\'},\r\n {name: \'average\', color: \'#FFA059\'},\r\n {name: \'high\', color: \'#E97659\'},\r\n {name: \'disaster\', color: \'#E45959\'},\r\n {name: \'resolved\', color: \'#009900\'},\r\n {name: null, color: \'#000000\'}\r\n ],\r\n priority;\r\n\r\n Object.keys(params)\r\n .forEach(function (key) {\r\n if (key.startsWith(\'redmine_\')) {\r\n params_redmine[key.substring(8)] = params[key];\r\n }\r\n else if (key.startsWith(\'customfield_\')) {\r\n params_fields[key.substring(12)] = params[key];\r\n }\r\n else if (key.startsWith(\'event_update_\')) {\r\n params_update[key.substring(13)] = params[key];\r\n }\r\n else if (required_params.indexOf(key) !== -1 && params[key].trim() === \'\') {\r\n throw \'Parameter "\' + key + \'" cannot be empty.\';\r\n }\r\n });\r\n\r\n if ([0, 1, 2, 3].indexOf(parseInt(params.event_source)) === -1) {\r\n throw \'Incorrect "event_source" parameter given: \' + params.event_source + \'\\nMust be 0-3.\';\r\n }\r\n\r\n // Check {EVENT.VALUE} for trigger-based and internal events.\r\n if (params.event_value !== \'0\' && params.event_value !== \'1\'\r\n && (params.event_source === \'0\' || params.event_source === \'3\')) {\r\n throw \'Incorrect "event_value" parameter given: \' + params.event_value + \'\\nMust be 0 or 1.\';\r\n }\r\n\r\n // Check {EVENT.UPDATE.STATUS} only for trigger-based events.\r\n if (params.event_source === \'0\' && params.event_update_status !== \'0\' && params.event_update_status !== \'1\') {\r\n throw \'Incorrect "event_update_status" parameter given: \' + params.event_update_status + \'\\nMust be 0 or 1.\';\r\n }\r\n\r\n\r\n if (typeof params_redmine.close_status_id === \'string\' && params_redmine.close_status_id.trim() !== \'\' && !parseInt(params_redmine.close_status_id, 10)) {\r\n throw \'Incorrect "redmine_close_status_id" parameter given! Must be an integer.\';\r\n }\r\n\r\n if (params.event_source !== \'0\' && params.event_value === \'0\') {\r\n throw \'Recovery operations are supported only for trigger-based actions.\';\r\n }\r\n\r\n if (params.event_source === \'0\'\r\n && ((params.event_value === \'1\' && params.event_update_status === \'1\')\r\n || (params.event_value === \'0\'\r\n && (params.event_update_status === \'0\' || params.event_update_status === \'1\')))\r\n && (isNaN(parseInt(params.redmine_issue_key)) || parseInt(params.redmine_issue_key) < 1 )) {\r\n throw \'Incorrect "redmine_issue_key" parameter given: \' + params.redmine_issue_key +\r\n \'\\nMust be positive integer.\';\r\n }\r\n\r\n if ([0, 1, 2, 3, 4, 5].indexOf(parseInt(params.event_nseverity)) === -1) {\r\n params.event_nseverity = \'7\';\r\n }\r\n\r\n if (params.event_value === \'0\') {\r\n params.event_nseverity = \'6\';\r\n }\r\n\r\n priority = params[\'severity_\' + severities[params.event_nseverity].name];\r\n priority = priority && priority.trim() || severities[7].name;\r\n\r\n Redmine.setParams(params_redmine);\r\n Redmine.HTTPProxy = params.HTTPProxy;\r\n\r\n // Create issue for non trigger-based events.\r\n if (params.event_source !== \'0\'\r\n && params.event_value !== \'0\') {\r\n Redmine.createIssue(params.alert_subject, params.alert_message, priority);\r\n }\r\n // Create issue for trigger-based events.\r\n else if (params.event_value === \'1\' && params_update.status === \'0\') {\r\n var issue_id = Redmine.createIssue(params.alert_subject,\r\n params.alert_subject + \'\\n\' + params.alert_message + \'\\n\' +\r\n params.zabbix_url + (params.zabbix_url.endsWith(\'/\') ? \'\' : \'/\') +\r\n \'tr_events.php?triggerid=\' + params.trigger_id + \'&eventid=\' + params.event_id + \'\\n\',\r\n priority,\r\n params_fields);\r\n\r\n result.tags.__zbx_redmine_issue_id = issue_id;\r\n result.tags.__zbx_redmine_issuelink = params.redmine_url +\r\n (params.redmine_url.endsWith(\'/\') ? \'\' : \'/\') + \'issues/\' + issue_id;\r\n }\r\n // Close issue if parameter close_status_id is set and it is a recovery operation\r\n else if (params.event_value === \'0\' && typeof params_redmine.close_status_id === \'string\' && params_redmine.close_status_id.trim() !== \'\') {\r\n Redmine.updateIssue(params.alert_subject + \'\\n\' + params.alert_message, params_fields, params_redmine.close_status_id);\r\n }\r\n // Update created issue for trigger-based event.\r\n else {\r\n Redmine.updateIssue(params.alert_subject + \'\\n\' + params.alert_message, params_fields);\r\n }\r\n\r\n return JSON.stringify(result);\r\n}\r\ncatch (error) {\r\n Zabbix.log(3, \'[ Redmine Webhook ] ERROR: \' + error);\r\n throw \'Sending failed: \' + error;\r\n}','30s','1','1','{EVENT.TAGS.__zbx_redmine_issuelink}','Redmine: issue #{EVENT.TAGS.__zbx_redmine_issue_id}','','0'),
('91','4','Rocket.Chat','','','','','','','','25','0','0','0','0','1','3','10s','1','var RocketChat = {\r\n params: {},\r\n\r\n setParams: function (params) {\r\n if (typeof params !== \'object\') {\r\n return;\r\n }\r\n\r\n RocketChat.params = params;\r\n if (RocketChat.params.url && RocketChat.params.api_url) {\r\n if (!RocketChat.params.url.endsWith(\'/\')) {\r\n RocketChat.params.url += \'/\';\r\n }\r\n if (!RocketChat.params.api_url.endsWith(\'/\')) {\r\n RocketChat.params.api_url += \'/\';\r\n }\r\n if (RocketChat.params.api_url.startsWith(\'/\')) {\r\n RocketChat.params.api_url = RocketChat.params.api_url.substring(1);\r\n }\r\n\r\n RocketChat.params.url += RocketChat.params.api_url;\r\n }\r\n },\r\n\r\n setProxy: function (HTTPProxy) {\r\n RocketChat.HTTPProxy = HTTPProxy;\r\n },\r\n\r\n addFields: function (fields) {\r\n var data = [];\r\n\r\n if (typeof fields === \'object\' && Object.keys(fields).length) {\r\n Object.keys(fields)\r\n .forEach(function(field) {\r\n if (fields[field] === \'\') {\r\n Zabbix.log(4, \'[ RocketChat Webhook ] Field "\' + field +\r\n \'" can\\\'t be empty. The field ignored.\');\r\n }\r\n else {\r\n try {\r\n var parts = field.split(\':\'),\r\n prefix = parts[0].split(\'_\');\r\n\r\n if (typeof prefix[2] === \'undefined\'\r\n || (prefix[2] === \'p\' && params.event_value === \'1\')\r\n || (prefix[2] === \'r\' && params.event_value === \'0\')) {\r\n data.push({\r\n title: field.substring(field.indexOf(\':\') + 1),\r\n value: fields[field],\r\n short: prefix[1] === \'short\'\r\n });\r\n }\r\n }\r\n catch (error) {\r\n Zabbix.log(4, \'[ RocketChat Webhook ] Can\\\'t parse field "\' + field +\r\n \'". The field ignored.\');\r\n }\r\n }\r\n });\r\n }\r\n\r\n return data;\r\n },\r\n\r\n request: function (method, query, data) {\r\n [\'url\', \'api_url\', \'user_id\', \'user_token\', \'send_to\'].forEach(function (field) {\r\n if (typeof RocketChat.params !== \'object\' || typeof RocketChat.params[field] === \'undefined\'\r\n || RocketChat.params[field] === \'\' ) {\r\n throw \'Required parameter is not set: "\' + field + \'".\';\r\n }\r\n });\r\n\r\n var response,\r\n url = RocketChat.params.url + query,\r\n request = new HttpRequest();\r\n\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'X-Auth-Token:\' + RocketChat.params.user_token);\r\n request.addHeader(\'X-User-Id:\' + RocketChat.params.user_id);\r\n\r\n if (typeof RocketChat.HTTPProxy !== \'undefined\' && RocketChat.HTTPProxy !== \'\') {\r\n request.setProxy(RocketChat.HTTPProxy);\r\n }\r\n\r\n if (typeof data !== \'undefined\') {\r\n data = JSON.stringify(data);\r\n }\r\n\r\n Zabbix.log(4, \'[ RocketChat Webhook ] Sending request: \' + url +\r\n ((typeof data === \'string\') ? (\'\\n\' + data) : \'\'));\r\n\r\n switch (method) {\r\n case \'get\':\r\n response = request.get(url, data);\r\n break;\r\n\r\n case \'post\':\r\n response = request.post(url, data);\r\n break;\r\n\r\n default:\r\n throw \'Unsupported HTTP request method: \' + method;\r\n }\r\n\r\n Zabbix.log(4, \'[ RocketChat Webhook ] Received response with status code \' +\r\n request.getStatus() + \'\\n\' + response);\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n Zabbix.log(4, \'[ RocketChat Webhook ] Failed to parse response received from RocketChat\');\r\n response = null;\r\n }\r\n }\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n var message = \'Request failed with status code \' + request.getStatus();\r\n\r\n if (response !== null && typeof response.message !== \'undefined\') {\r\n message += \': \' + JSON.stringify(response.message);\r\n }\r\n else if (response !== null && typeof response.error !== \'undefined\') {\r\n message += \': \' + JSON.stringify(response.error);\r\n }\r\n\r\n throw message + \'. Check debug log for more information.\';\r\n }\r\n\r\n return {\r\n status: request.getStatus(),\r\n response: response\r\n };\r\n },\r\n\r\n postMessage: function(use_default_message, message, fields) {\r\n var data = {\r\n channel: RocketChat.params.send_to,\r\n attachments: [{\r\n collapsed: false,\r\n color: RocketChat.params.color,\r\n title: params.alert_subject\r\n }]\r\n };\r\n\r\n if (RocketChat.params.title_link) {\r\n data.attachments[0].title_link = RocketChat.params.title_link;\r\n }\r\n\r\n if (use_default_message) {\r\n data.attachments[0].text = message;\r\n }\r\n else {\r\n data.attachments[0].fields = RocketChat.addFields(fields);\r\n }\r\n\r\n var result = RocketChat.request(\'post\', \'chat.postMessage\', data);\r\n\r\n if (typeof result.response !== \'object\' || typeof result.response.message._id === \'undefined\') {\r\n throw \'Cannot send RocketChat message. Check debug log for more information.\';\r\n }\r\n\r\n return {\r\n id: result.response.message._id,\r\n rid: result.response.message.rid,\r\n channel: result.response.channel\r\n };\r\n },\r\n\r\n sendMessage: function(update, fields) {\r\n\r\n var data = {\r\n message: {\r\n rid: RocketChat.params.room_id,\r\n tmid: RocketChat.params.msg_id,\r\n tshow: true\r\n }\r\n };\r\n\r\n if (update.status === \'0\') {\r\n data.message.attachments = [{\r\n collapsed: false,\r\n color: RocketChat.params.color,\r\n title: params.alert_subject,\r\n title_link: RocketChat.params.title_link,\r\n fields: RocketChat.addFields(fields)\r\n }];\r\n }\r\n else {\r\n data.message.alias = update.user;\r\n data.message.msg = update.action;\r\n if (update.message) {\r\n data.message.attachments = [{\r\n color: RocketChat.params.color,\r\n text: update.message\r\n }];\r\n }\r\n }\r\n\r\n RocketChat.request(\'post\', \'chat.sendMessage\', data);\r\n },\r\n\r\n getMessageLink: function(rid, id) {\r\n var room = RocketChat.request(\'get\', \'rooms.info?roomId=\' + encodeURIComponent(rid)),\r\n link = params.rc_url +\r\n (params.rc_url.endsWith(\'/\') ? \'\' : \'/\');\r\n\r\n switch (room.response.room.t) {\r\n case \'c\':\r\n link += \'channel/\' + room.response.room.name + \'?msg=\' + id;\r\n break;\r\n\r\n case \'p\':\r\n link += \'group/\' + room.response.room.name + \'?msg=\' + id;\r\n break;\r\n\r\n case \'d\':\r\n link += \'direct/\' + rid + \'?msg=\' + id;\r\n break;\r\n\r\n default:\r\n Zabbix.log(4, \'[ RocketChat Webhook ] Can\\\'t get room type. Link to message will not be added.\');\r\n }\r\n\r\n return link;\r\n }\r\n};\r\n\r\ntry {\r\n var params = JSON.parse(value),\r\n response,\r\n fields = {},\r\n rc = {},\r\n update = {},\r\n result = {tags: {}},\r\n required_params = [\'alert_subject\', \'alert_message\', \'event_source\', \'event_value\'],\r\n severities = [\r\n {name: \'not_classified\', color: \'#97AAB3\'},\r\n {name: \'information\', color: \'#7499FF\'},\r\n {name: \'warning\', color: \'#FFC859\'},\r\n {name: \'average\', color: \'#FFA059\'},\r\n {name: \'high\', color: \'#E97659\'},\r\n {name: \'disaster\', color: \'#E45959\'},\r\n {name: \'resolved\', color: \'#009900\'},\r\n {name: \'default\', color: \'#000000\'}\r\n ];\r\n\r\n Object.keys(params)\r\n .forEach(function (key) {\r\n if (key.startsWith(\'rc_\')) {\r\n rc[key.substring(3)] = params[key];\r\n }\r\n else if (key.startsWith(\'field_\')) {\r\n fields[key.substring(6)] = params[key];\r\n }\r\n else if (key.startsWith(\'event_update_\')) {\r\n update[key.substring(13)] = params[key];\r\n }\r\n else if (required_params.indexOf(key) !== -1 && params[key] === \'\') {\r\n throw \'Parameter "\' + key + \'" can\\\'t be empty.\';\r\n }\r\n });\r\n\r\n if ([0, 1, 2, 3].indexOf(parseInt(params.event_source)) === -1) {\r\n throw \'Incorrect "event_source" parameter given: \' + params.event_source + \'\\nMust be 0-3.\';\r\n }\r\n\r\n // Forcing parameters for non trigger-based events.\r\n if (params.event_source !== \'0\') {\r\n params.use_default_message = \'true\';\r\n params.event_nseverity = \'0\';\r\n params.rc_title_link = false;\r\n }\r\n\r\n // Check {EVENT.VALUE} for trigger-based and internal events.\r\n if (params.event_value !== \'0\' && params.event_value !== \'1\'\r\n && (params.event_source === \'0\' || params.event_source === \'3\')) {\r\n throw \'Incorrect "event_value" parameter given: \' + params.event_value + \'\\nMust be 0 or 1.\';\r\n }\r\n\r\n // Check {EVENT.UPDATE.STATUS} only for trigger-based events.\r\n if (params.event_update_status !== \'0\' && params.event_update_status !== \'1\' && params.event_source === \'0\') {\r\n throw \'Incorrect "event_update_status" parameter given: \' + params.event_update_status + \'\\nMust be 0 or 1.\';\r\n }\r\n\r\n if ([0, 1, 2, 3, 4, 5].indexOf(parseInt(params.event_nseverity)) === -1) {\r\n params.event_nseverity = \'7\';\r\n }\r\n\r\n if (params.event_value === \'0\') {\r\n params.event_nseverity = \'6\';\r\n }\r\n\r\n RocketChat.setParams(rc);\r\n RocketChat.setProxy(params.HTTPProxy);\r\n RocketChat.params.color = severities[params.event_nseverity].color;\r\n\r\n // Send default message if use_default_message === true.\r\n if (params.use_default_message.toLowerCase() === \'true\') {\r\n response = RocketChat.postMessage(true, params.alert_message);\r\n result.tags.__zbx_rc_id = response.id;\r\n result.tags.__zbx_rc_rid = response.rid;\r\n result.tags.__zbx_rc_msg_url = RocketChat.getMessageLink(response.rid, response.id);\r\n }\r\n // Send message for trigger-based events.\r\n else if (params.event_value === \'1\' && update.status === \'0\') {\r\n response = RocketChat.postMessage(false, params.alert_message, fields);\r\n result.tags.__zbx_rc_id = response.id;\r\n result.tags.__zbx_rc_rid = response.rid;\r\n result.tags.__zbx_rc_msg_url = RocketChat.getMessageLink(response.rid, response.id);\r\n }\r\n // Send thread message for trigger-based event.\r\n else {\r\n RocketChat.sendMessage(update, fields);\r\n }\r\n\r\n return JSON.stringify(result);\r\n}\r\ncatch (error) {\r\n Zabbix.log(3, \'[ RocketChat Webhook ] ERROR: \' + error);\r\n throw \'Sending failed: \' + error;\r\n}','30s','1','1','{EVENT.TAGS.__zbx_rc_msg_url}','Rocket.Chat','','0'),
('92','4','ServiceNow','','','','','','','','25','0','0','0','0','1','3','10s','1','var ServiceNow = {\r\n params: {},\r\n\r\n setParams: function (params) {\r\n if (typeof params !== \'object\') {\r\n return;\r\n }\r\n\r\n ServiceNow.params = params;\r\n if (typeof ServiceNow.params.url === \'string\') {\r\n if (!ServiceNow.params.url.endsWith(\'/\')) {\r\n ServiceNow.params.url += \'/\';\r\n }\r\n\r\n ServiceNow.params.url += \'api/now/table/incident\';\r\n }\r\n },\r\n\r\n setProxy: function (HTTPProxy) {\r\n ServiceNow.HTTPProxy = HTTPProxy;\r\n },\r\n\r\n setFields: function (data, fields) {\r\n if (typeof fields === \'object\' && Object.keys(fields).length) {\r\n Object.keys(fields)\r\n .forEach(function(field) {\r\n data[field] = (fields[field].match(/^\\d{4}\\.\\d{2}\\.\\d{2}$/) !== null)\r\n ? fields[field].replace(/\\./g, \'-\')\r\n : fields[field];\r\n });\r\n }\r\n },\r\n\r\n request: function (method, data) {\r\n [\'url\', \'user\', \'password\'].forEach(function (field) {\r\n if (typeof ServiceNow.params !== \'object\' || typeof ServiceNow.params[field] === \'undefined\'\r\n || ServiceNow.params[field] === \'\' ) {\r\n throw \'Required ServiceNow param is not set: "\' + field + \'".\';\r\n }\r\n });\r\n\r\n var response,\r\n url = ServiceNow.params.url,\r\n request = new HttpRequest();\r\n\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Authorization: Basic \' + btoa(ServiceNow.params.user + \':\' + ServiceNow.params.password));\r\n\r\n if (typeof ServiceNow.HTTPProxy !== \'undefined\' && ServiceNow.HTTPProxy !== \'\') {\r\n request.setProxy(ServiceNow.HTTPProxy);\r\n }\r\n\r\n if (typeof data !== \'undefined\') {\r\n data = JSON.stringify(data);\r\n }\r\n\r\n Zabbix.log(4, \'[ ServiceNow Webhook ] Sending request: \' + url + ((typeof data === \'string\')\r\n ? (\'\\n\' + data)\r\n : \'\'));\r\n\r\n switch (method) {\r\n case \'get\':\r\n response = request.get(url, data);\r\n break;\r\n\r\n case \'post\':\r\n response = request.post(url, data);\r\n break;\r\n\r\n case \'put\':\r\n response = request.put(url, data);\r\n break;\r\n\r\n default:\r\n throw \'Unsupported HTTP request method: \' + method;\r\n }\r\n\r\n Zabbix.log(4, \'[ ServiceNow Webhook ] Received response with status code \' +\r\n request.getStatus() + \'\\n\' + response);\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n Zabbix.log(4, \'[ ServiceNow Webhook ] Failed to parse response received from ServiceNow\');\r\n response = null;\r\n }\r\n }\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n var message = \'Request failed with status code \' + request.getStatus();\r\n\r\n if (response !== null && typeof response.error.message !== \'undefined\'\r\n && Object.keys(response.error).length > 0) {\r\n message += \': \' + JSON.stringify(response.error.message);\r\n }\r\n\r\n throw message + \' Check debug log for more information.\';\r\n }\r\n else if (typeof response.result !== \'object\' || typeof response.result.sys_id === \'undefined\') {\r\n throw \'Cannot create ServiceNow incident. Check debug log for more information.\';\r\n }\r\n\r\n return response.result;\r\n }\r\n};\r\n\r\ntry {\r\n var params = JSON.parse(value),\r\n fields = {},\r\n servicenow = {},\r\n data = {},\r\n result = {tags: {}},\r\n required_params = [\r\n \'alert_subject\', \'alert_message\', \'event_source\', \'event_value\',\r\n \'event_update_status\', \'event_recovery_value\', \'event_nseverity\'\r\n ],\r\n severities = [\r\n {name: \'not_classified\', color: \'#97AAB3\'},\r\n {name: \'information\', color: \'#7499FF\'},\r\n {name: \'warning\', color: \'#FFC859\'},\r\n {name: \'average\', color: \'#FFA059\'},\r\n {name: \'high\', color: \'#E97659\'},\r\n {name: \'disaster\', color: \'#E45959\'},\r\n {name: \'resolved\', color: \'#009900\'},\r\n {name: \'default\', color: \'#000000\'}\r\n ],\r\n method = \'post\',\r\n process_tags = true;\r\n\r\n Object.keys(params)\r\n .forEach(function (key) {\r\n if (key.startsWith(\'servicenow_\')) {\r\n servicenow[key.substring(11)] = params[key];\r\n }\r\n else if (key.startsWith(\'u_\')) {\r\n fields[key] = params[key];\r\n }\r\n else if (required_params.indexOf(key) !== -1 && params[key] === \'\') {\r\n throw \'Parameter "\' + key + \'" can\\\'t be empty.\';\r\n }\r\n });\r\n\r\n if ([0, 1, 2, 3].indexOf(parseInt(params.event_source)) === -1) {\r\n throw \'Incorrect "event_source" parameter given: \' + params.event_source + \'\\nMust be 0-3.\';\r\n }\r\n\r\n if ([0, 1, 2, 3, 4, 5].indexOf(parseInt(params.event_nseverity)) === -1) {\r\n params.event_nseverity = \'7\';\r\n }\r\n\r\n // Check {EVENT.VALUE} for trigger-based and internal events.\r\n if (params.event_value !== \'0\' && params.event_value !== \'1\'\r\n && (params.event_source === \'0\' || params.event_source === \'3\')) {\r\n throw \'Incorrect "event_value" parameter given: \' + params.event_value + \'\\nMust be 0 or 1.\';\r\n }\r\n\r\n // Check {EVENT.UPDATE.STATUS} only for trigger-based events.\r\n if (params.event_update_status !== \'0\' && params.event_update_status !== \'1\' && params.event_source === \'0\') {\r\n throw \'Incorrect "event_update_status" parameter given: \' + params.event_update_status + \'\\nMust be 0 or 1.\';\r\n }\r\n\r\n if (params.event_source !== \'0\' && params.event_recovery_value === \'0\') {\r\n throw \'Recovery operations are supported only for trigger-based actions.\';\r\n }\r\n\r\n data.short_description = params.alert_subject;\r\n data.description = params.alert_message;\r\n data.comments = params.alert_message;\r\n\r\n if (typeof params[\'urgency_for_\' + severities[params.event_nseverity].name] !== \'undefined\') {\r\n data.urgency = params[\'urgency_for_\' + severities[params.event_nseverity].name];\r\n }\r\n\r\n ServiceNow.setParams(servicenow);\r\n ServiceNow.setProxy(params.HTTPProxy);\r\n ServiceNow.setFields(data, fields);\r\n\r\n if (params.event_source === \'0\' && (params.event_value === \'0\' || params.event_update_status === \'1\')) {\r\n process_tags = false;\r\n method = \'put\';\r\n delete data.description;\r\n delete data.urgency;\r\n ServiceNow.params.url += \'/\' + params.servicenow_sys_id;\r\n }\r\n\r\n var response = ServiceNow.request(method, data);\r\n\r\n if (process_tags) {\r\n result.tags.__zbx_servicenow_sys_id = response.sys_id;\r\n result.tags.__zbx_servicenow_link = params.servicenow_url +\r\n (params.servicenow_url.endsWith(\'/\') ? \'\' : \'/\') + \'incident.do?sys_id=\' + response.sys_id;\r\n result.tags.__zbx_servicenow_number = response.number;\r\n }\r\n\r\n return JSON.stringify(result);\r\n}\r\ncatch (error) {\r\n Zabbix.log(3, \'[ ServiceNow Webhook ] ERROR: \' + error);\r\n throw \'Sending failed: \' + error;\r\n}','30s','1','1','{EVENT.TAGS.__zbx_servicenow_link}','ServiceNow: {EVENT.TAGS.__zbx_servicenow_number}','','0'),
('93','4','SIGNL4','','','','','','','','25','0','0','0','0','1','3','10s','1','// SIGNL4 Webhook\r\ntry {\r\n var response,\r\n payload,\r\n params = JSON.parse(value),\r\n endpoint = \'https://connect.signl4.com/webhook/\',\r\n request = new HttpRequest();\r\n\r\n if (typeof params.HTTPProxy === \'string\' && params.HTTPProxy.trim() !== \'\') {\r\n request.setProxy(params.HTTPProxy);\r\n }\r\n\r\n if (typeof params.teamsecret === \'string\' && params.teamsecret.trim() !== \'\') {\r\n endpoint += params.teamsecret;\r\n delete params.teamsecret;\r\n }\r\n else {\r\n throw \'The team secret of your SIGNL4 team cannot be empty.\';\r\n }\r\n\r\n if (typeof params.Severity === \'string\' && params.Severity === \'{EVENT.SEVERITY}\') {\r\n params.Severity = \'Not classified\';\r\n }\r\n\r\n if (typeof params.User === \'string\' && params.User === \'{USER.FULLNAME}\') {\r\n params.User = \'\';\r\n }\r\n\r\n if (typeof params.Event_Update_Action === \'string\' && params.Event_Update_Action === \'{EVENT.UPDATE.ACTION}\') {\r\n params.Event_Update_Action = \'\';\r\n }\r\n\r\n // Assemble X-S4-ExternalID for two-way integration\r\n // Format: "ZabbixEventID: 222 ZabbixURL: https://your-zabbix-server/zabbix/"\r\n params[\'X-S4-ExternalID\'] = \'ZabbixEventID: \' + params.Event_ID;\r\n if (typeof params.Zabbix_URL === \'string\' && params.Zabbix_URL.indexOf(\'http\') == 0) {\r\n // Make sure the URL ends with \'/\'\r\n if (params.Zabbix_URL.charAt(params.Zabbix_URL.length - 1) != \'/\') {\r\n params.Zabbix_URL = params.Zabbix_URL + \'/\';\r\n }\r\n\r\n params[\'X-S4-ExternalID\'] = params[\'X-S4-ExternalID\'] + \' ZabbixURL: \' + params.Zabbix_URL;\r\n\r\n // Add Link parameter\r\n params[\'Link\'] = params.Zabbix_URL + "tr_events.php?triggerid="+params.Trigger_ID + "&eventid=" + params.Event_ID;\r\n }\r\n\r\n // Check if this is a new problem or a recovery\r\n if (params.Trigger_Status == \'OK\') {\r\n params[\'X-S4-Status\'] = \'resolved\';\r\n }\r\n else {\r\n params[\'X-S4-Status\'] = \'new\';\r\n params[\'X-S4-SourceSystem\'] = \'Zabbix\';\r\n }\r\n\r\n payload = JSON.stringify(params);\r\n Zabbix.log(4, \'[ SIGNL4 Webhook ] Sending request: \' + payload);\r\n\r\n request.addHeader(\'Content-Type: application/json\');\r\n response = request.post(endpoint, \'payload=\' + payload);\r\n\r\n Zabbix.log(4, \'[ SIGNL4 Webhook ] Received response with status code \' +\r\n request.getStatus() + \'\\n\' + response\r\n );\r\n\r\n if (request.getStatus() !== 201) {\r\n throw \'Request failed with status code \' + request.getStatus() +\r\n \'. Check debug log for more information.\';\r\n }\r\n\r\n return \'OK\';\r\n}\r\ncatch (error) {\r\n Zabbix.log(4, \'[ SIGNL4 Webhook ] ERROR: \' + error);\r\n\r\n throw \'Sending failed: \' + error;\r\n}','30s','0','0','','','SIGNL4 is a mobile alert notification app for powerful alerting, alert management and mobile assignment of work items. It offers alerting via app push, SMS and voice calls including escalations, tracking, and duty scheduling.\r\n\r\nGet the app at https://www.signl4.com.\r\n\r\nFind out more including an integration video here: https://www.signl4.com/blog/portfolio_item/zabbix-mobile-alert-notification-duty-schedule-escalation/','0'),
('94','4','Slack','','','','','','','','25','0','0','0','0','1','1','10s','1','const CLogger = function(serviceName) {\r\n this.serviceName = serviceName;\r\n this.INFO = 4\r\n this.WARN = 3\r\n this.ERROR = 2\r\n this.log = function(level, msg) {\r\n Zabbix.log(level, \'[\' + this.serviceName + \'] \' + msg);\r\n }\r\n}\r\n\r\nconst CWebhook = function(value) {\r\n try {\r\n params = JSON.parse(value);\r\n\r\n if ([\'0\', \'1\', \'2\', \'3\', \'4\'].indexOf(params.event_source) === -1) {\r\n throw \'Incorrect "event_source" parameter given: \' + params.event_source + \'.\\nMust be 0-4.\';\r\n }\r\n\r\n if ([\'0\', \'3\', \'4\'].indexOf(params.event_source) !== -1 && [\'0\', \'1\'].indexOf(params.event_value) === -1) {\r\n throw \'Incorrect "event_value" parameter given: \' + params.event_value + \'.\\nMust be 0 or 1.\';\r\n }\r\n\r\n if ([\'0\', \'3\', \'4\'].indexOf(params.event_source) !== -1) {\r\n if (params.event_source === \'1\' && [\'0\', \'1\', \'2\', \'3\'].indexOf(params.event_value) === -1) {\r\n throw \'Incorrect "event_value" parameter given: \' + params.event_value + \'.\\nMust be 0-3.\';\r\n }\r\n\r\n if (params.event_source === \'0\' && [\'0\', \'1\'].indexOf(params.event_update_status) === -1) {\r\n throw \'Incorrect "event_update_status" parameter given: \' + params.event_update_status + \'.\\nMust be 0 or 1.\';\r\n }\r\n\r\n if (params.event_source === \'4\') {\r\n if ([\'0\', \'1\', \'2\', \'3\', \'4\', \'5\'].indexOf(params.event_update_nseverity) !== -1 && params.event_update_nseverity != params.event_nseverity) {\r\n params.event_nseverity = params.event_update_nseverity;\r\n params.event_severity = params.event_update_severity;\r\n params.event_update_status = \'1\';\r\n }\r\n }\r\n }\r\n\r\n this.runCallback = function(name, params) {\r\n if (typeof this[name] === \'function\') {\r\n return this[name].apply(this, [params]);\r\n }\r\n }\r\n\r\n this.handleEvent = function(source, event) {\r\n const alert = { source: source, event: event };\r\n return [\r\n this.runCallback(\'on\' + source + event, alert),\r\n this.runCallback(\'on\' + event, alert),\r\n this.runCallback(\'onEvent\', alert)\r\n ];\r\n }\r\n\r\n this.handleEventless = function(source) {\r\n const alert = { source: source, event: null };\r\n return [\r\n this.runCallback(\'on\' + source, alert),\r\n this.runCallback(\'onEvent\', alert)\r\n ];\r\n }\r\n\r\n this.run = function() {\r\n var results = [];\r\n if (typeof this.httpProxy === \'string\' && this.httpProxy.trim() !== \'\') {\r\n this.request.setProxy(this.httpProxy);\r\n }\r\n const types = { \'0\': \'Trigger\', \'1\': \'Discovery\', \'2\': \'Autoreg\', \'3\': \'Internal\', \'4\': \'Service\' };\r\n\r\n if ([\'0\', \'3\', \'4\'].indexOf(this.params.event_source) !== -1) {\r\n var event = (this.params.event_update_status === \'1\')\r\n ? \'Update\'\r\n : ((this.params.event_value === \'1\') ? \'Problem\' : \'Resolve\');\r\n\r\n results = this.handleEvent(types[this.params.event_source], event);\r\n }\r\n else if (typeof types[this.params.event_source] !== \'undefined\') {\r\n results = this.handleEventless(types[this.params.event_source]);\r\n }\r\n else {\r\n throw \'Unexpected "event_source": \' + this.params.event_source;\r\n }\r\n\r\n for (idx in results) {\r\n if (typeof results[idx] !== \'undefined\') {\r\n return JSON.stringify(results[idx]);\r\n }\r\n }\r\n }\r\n this.httpProxy = params.http_proxy;\r\n this.params = params;\r\n this.runCallback(\'onCheckParams\', {});\r\n } catch (error) {\r\n throw \'Webhook processing failed: \' + error;\r\n }\r\n}\r\n\r\nconst CParamValidator = {\r\n\r\n isType: function(value, type) {\r\n if (type === \'array\') {\r\n return Array.isArray(value);\r\n }\r\n if (type === \'integer\') {\r\n return CParamValidator.isInteger(value);\r\n }\r\n if (type === \'float\') {\r\n return CParamValidator.isFloat(value);\r\n }\r\n\r\n return (typeof value === type);\r\n },\r\n\r\n isInteger: function(value) {\r\n if (!CParamValidator.ifMatch(value, /^-?\\d+$/)) {\r\n return false;\r\n }\r\n\r\n return !isNaN(parseInt(value));\r\n },\r\n\r\n isFloat: function(value) {\r\n if (!CParamValidator.ifMatch(value, /^-?\\d+\\.\\d+$/)) {\r\n return false;\r\n }\r\n\r\n return !isNaN(parseFloat(value));\r\n },\r\n\r\n isDefined: function(value) {\r\n return !CParamValidator.isType(value, \'undefined\');\r\n },\r\n\r\n isEmpty: function(value) {\r\n if (!CParamValidator.isType(value, \'string\')) {\r\n throw \'Value "\' + value + \'" must be a string to be checked for emptiness.\';\r\n }\r\n\r\n return (value.trim() === \'\');\r\n },\r\n\r\n isMacroSet: function(value, macro) {\r\n if (CParamValidator.isDefined(macro)) {\r\n return !(CParamValidator.ifMatch(value, \'^\\{\' + macro + \'\\}$\'))\r\n }\r\n\r\n return !(CParamValidator.ifMatch(value, \'^\\{[$#]{0,1}[A-Z_\\.]+[\\:]{0,1}["]{0,1}.*["]{0,1}\\}$\') || value === \'*UNKNOWN*\')\r\n },\r\n\r\n withinRange: function(value, min, max) {\r\n if (!CParamValidator.isType(value, \'number\')) {\r\n throw \'Value "\' + value + \'" must be a number to be checked for range.\';\r\n }\r\n if (value < ((CParamValidator.isDefined(min)) ? min : value)\r\n || value > ((CParamValidator.isDefined(max)) ? max : value)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n\r\n inArray: function(value, array) {\r\n if (!CParamValidator.isType(array, \'array\')) {\r\n throw \'The array must be an array to check the value for existing in it.\';\r\n }\r\n\r\n return (array.indexOf((typeof value === \'string\') ? value.toLowerCase() : value) !== -1);\r\n },\r\n\r\n ifMatch: function(value, regex) {\r\n return (new RegExp(regex)).test(value);\r\n },\r\n\r\n match: function(value, regex) {\r\n if (!CParamValidator.isType(value, \'string\')) {\r\n throw \'Value "\' + value + \'" must be a string to be matched with the regular expression.\';\r\n }\r\n\r\n return value.match(new RegExp(regex));\r\n },\r\n\r\n checkURL: function(value) {\r\n if (CParamValidator.isEmpty(value)) {\r\n throw \'URL value "\' + value + \'" must be a non-empty string.\';\r\n }\r\n if (!CParamValidator.ifMatch(value, \'^(http|https):\\/\\/.+\')) {\r\n throw \'URL value "\' + value + \'" must contain a schema.\';\r\n }\r\n\r\n return value.endsWith(\'/\') ? value.slice(0, -1) : value;\r\n },\r\n\r\n check: function(key, rule, params) {\r\n if (!CParamValidator.isDefined(rule.type)) {\r\n throw \'Mandatory attribute "type" has not been defined for parameter "\' + key + \'".\';\r\n }\r\n if (!CParamValidator.isDefined(params[key])) {\r\n throw \'Checked parameter "\' + key + \'" was not found in the list of input parameters.\';\r\n }\r\n var value = params[key],\r\n error_message = null;\r\n switch (rule.type) {\r\n case \'string\':\r\n if (!CParamValidator.isType(value, \'string\')) {\r\n throw \'Value "\' + key + \'" must be a string.\';\r\n }\r\n if (CParamValidator.isEmpty(value)) {\r\n error_message = \'Value "\' + key + \'" must be a non-empty string\';\r\n break;\r\n }\r\n if (CParamValidator.isDefined(rule.len) && value.length < rule.len) {\r\n error_message = \'Value "\' + key + \'" must be a string with a length > \' + rule.len;\r\n }\r\n if (CParamValidator.isDefined(rule.regex) && !CParamValidator.ifMatch(value, rule.regex)) {\r\n error_message = \'Value "\' + key + \'" must match the regular expression "\' + rule.regex + \'"\';\r\n }\r\n if (CParamValidator.isDefined(rule.url) && rule.url === true) {\r\n value = CParamValidator.checkURL(value);\r\n }\r\n break;\r\n case \'integer\':\r\n if (!CParamValidator.isInteger(value)) {\r\n error_message = \'Value "\' + key + \'" must be an integer\';\r\n break;\r\n }\r\n value = parseInt(value);\r\n break;\r\n case \'float\':\r\n if (!CParamValidator.isFloat(value)) {\r\n error_message = \'Value "\' + key + \'" must be a floating-point number\';\r\n break;\r\n }\r\n value = parseFloat(value);\r\n break;\r\n case \'boolean\':\r\n if (CParamValidator.inArray(value, [\'1\', \'true\', \'yes\', \'on\'])) {\r\n value = true;\r\n }\r\n else if (CParamValidator.inArray(value, [\'0\', \'false\', \'no\', \'off\'])) {\r\n value = false;\r\n }\r\n else {\r\n error_message = \'Value "\' + key + \'" must be a boolean-like.\';\r\n }\r\n break;\r\n case \'array\':\r\n try {\r\n value = JSON.parse(value);\r\n } catch (error) {\r\n throw \'Value "\' + key + \'" contains invalid JSON.\';\r\n }\r\n if (!CParamValidator.isType(value, \'array\')) {\r\n error_message = \'Value "\' + key + \'" must be an array.\';\r\n }\r\n if (CParamValidator.isDefined(rule.tags) && rule.tags === true) {\r\n value = value.reduce(function(acc, obj) {\r\n acc[obj.tag] = obj.value || null;\r\n return acc;\r\n }, {});\r\n }\r\n break;\r\n case \'object\':\r\n value = JSON.parse(value);\r\n if (!CParamValidator.isType(value, \'object\')) {\r\n error_message = \'Value "\' + key + \'" must be an object.\';\r\n }\r\n break;\r\n default:\r\n throw \'Unexpected attribute type "\' + rule.type + \'" for value "\' + key + \'". Available: \' +\r\n [\'integer\', \'float\', \'string\', \'boolean\', \'array\', \'object\'].join(\', \');\r\n }\r\n params[key] = value;\r\n if (CParamValidator.inArray(rule.type, [\'integer\', \'float\']) && error_message === null && (CParamValidator.isDefined(rule.min)\r\n || CParamValidator.isDefined(rule.max)) && !CParamValidator.withinRange(value, rule.min, rule.max)) {\r\n error_message = \'Value "\' + key + \'" must be a number \' + ((CParamValidator.isDefined(rule.min) && CParamValidator.isDefined(rule.max))\r\n ? (rule.min + \'..\' + rule.max) : ((CParamValidator.isDefined(rule.min)) ? \'>\' + rule.min : \'<\' + rule.max));\r\n }\r\n else if (CParamValidator.isDefined(rule.array) && !CParamValidator.inArray(value, rule.array)) {\r\n error_message = \'Value "\' + key + \'" must be in the array \' + JSON.stringify(rule.array);\r\n }\r\n else if (CParamValidator.isDefined(rule.macro) && !CParamValidator.isMacroSet(value.toString(), rule.macro)) {\r\n error_message = \'The macro \' + ((CParamValidator.isDefined(rule.macro)) ? \'{\' + rule.macro + \'} \' : \' \') + \'is not set\';\r\n }\r\n if (error_message !== null) {\r\n if (CParamValidator.isDefined(rule.default) && CParamValidator.isType(rule.default, rule.type)) {\r\n params[key] = rule.default;\r\n }\r\n else {\r\n Zabbix.log(4, \'Default value for "\' + key + \'" must be a \' + rule.type + \'. Skipped.\');\r\n throw \'Incorrect value for variable "\' + key + \'". \' + error_message;\r\n }\r\n }\r\n\r\n return this;\r\n },\r\n\r\n validate: function(rules, params) {\r\n if (!CParamValidator.isType(params, \'object\') || CParamValidator.isType(params, \'array\')) {\r\n throw \'Incorrect parameters value. The value must be an object.\';\r\n }\r\n for (var key in rules) {\r\n CParamValidator.check(key, rules[key], params);\r\n }\r\n }\r\n}\r\n\r\nconst CHttpRequest = function(logger) {\r\n this.request = new HttpRequest();\r\n if (typeof logger !== \'object\' || logger === null) {\r\n this.logger = Zabbix;\r\n }\r\n else {\r\n this.logger = logger;\r\n }\r\n\r\n this.clearHeader = function() {\r\n this.request.clearHeader();\r\n }\r\n\r\n this.addHeaders = function(value) {\r\n var headers = [];\r\n\r\n if (typeof value === \'object\' && value !== null) {\r\n if (!Array.isArray(value)) {\r\n Object.keys(value).forEach(function(key) {\r\n headers.push(key + \': \' + value[key]);\r\n });\r\n }\r\n else {\r\n headers = value;\r\n }\r\n }\r\n else if (typeof value === \'string\') {\r\n value.split(\'\\r\\n\').forEach(function(header) {\r\n headers.push(header);\r\n });\r\n }\r\n\r\n for (var idx in headers) {\r\n this.request.addHeader(headers[idx]);\r\n }\r\n }\r\n\r\n this.setProxy = function(proxy) {\r\n this.request.setProxy(proxy);\r\n }\r\n\r\n this.plainRequest = function(method, url, data) {\r\n var resp = null;\r\n method = method.toLowerCase();\r\n this.logger.log(4, \'Sending \' + method + \' request:\' + JSON.stringify(data));\r\n if ([\'get\', \'post\', \'put\', \'patch\', \'delete\', \'trace\'].indexOf(method) !== -1) {\r\n resp = this.request[method](url, data);\r\n }\r\n else if ([\'connect\', \'head\', \'options\'].indexOf(method) !== -1) {\r\n resp = this.request[method](url);\r\n }\r\n else {\r\n throw \'Unexpected method. Method \' + method + \' is not supported.\';\r\n }\r\n this.logger.log(4, \'Response has been received: \' + resp);\r\n\r\n return resp;\r\n }\r\n\r\n this.jsonRequest = function(method, url, data) {\r\n this.addHeaders(\'Content-Type: application/json\');\r\n var resp = this.plainRequest(method, url, JSON.stringify(data));\r\n try {\r\n resp = JSON.parse(resp);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response: not well-formed JSON was received\';\r\n }\r\n\r\n return resp;\r\n }\r\n\r\n this.getStatus = function() {\r\n return this.request.getStatus();\r\n }\r\n}\r\n\r\nconst CWebhookHelper = {\r\n\r\n createProblemURL: function(event_source, zabbix_url, trigger_id, event_id) {\r\n if (event_source === \'0\') {\r\n return zabbix_url + \'/tr_events.php?triggerid=\' + trigger_id + \'&eventid=\' + event_id;\r\n } else if (event_source === \'4\') {\r\n return zabbix_url + \'/zabbix.php?action=service.list\';\r\n }\r\n\r\n return zabbix_url;\r\n },\r\n\r\n};\r\n\r\nvar serviceLogName = \'Slack Webhook\',\r\n Logger = new CLogger(serviceLogName),\r\n Slack = CWebhook;\r\n\r\nSlack.prototype.onCheckParams = function () {\r\n CParamValidator.validate({\r\n alert_subject: { type: \'string\' },\r\n alert_message: { type: \'string\' },\r\n bot_token: { type: \'string\' },\r\n zabbix_url: { type: \'string\', url: true },\r\n channel: { type: \'string\', macro: \'ALERT.SENDTO\' },\r\n slack_mode: { type: \'string\', array: [\'alarm\', \'event\'], }\r\n }, this.params);\r\n\r\n if (this.params.event_source === \'0\') {\r\n CParamValidator.validate({\r\n event_id: { type: \'integer\' },\r\n trigger_id: { type: \'integer\' }\r\n }, this.params);\r\n }\r\n\r\n if (CParamValidator.inArray(this.params.event_source, [\'0\', \'3\', \'4\'])) {\r\n CParamValidator.validate({\r\n event_tags: { type: \'array\', macro: \'EVENT.TAGSJSON\', tags: true, default: {} }\r\n }, this.params);\r\n }\r\n\r\n if (this.params.event_value != \'0\' && CParamValidator.isDefined(this.params.event_tags[\'__channel_id_\' + this.params.channel])) {\r\n this.params.event_update_status = \'1\';\r\n }\r\n\r\n this.severity_colors = [\r\n \'#97AAB3\',\r\n \'#7499FF\',\r\n \'#FFC859\',\r\n \'#FFA059\',\r\n \'#E97659\',\r\n \'#E45959\'\r\n ];\r\n\r\n this.resolve_color = \'#009900\';\r\n this.slack_endpoint = \'https://slack.com/api/\';\r\n\r\n this.problem_url = CWebhookHelper.createProblemURL(this.params.event_source, this.params.zabbix_url, this.params.trigger_id, this.params.event_id);\r\n\r\n this.data = {\r\n channel: this.params.channel,\r\n attachments: [\r\n {\r\n fallback: this.params.alert_subject,\r\n title: this.params.alert_subject,\r\n color: this.severity_colors[this.params.event_nseverity],\r\n title_link: this.problem_url,\r\n text: this.params.alert_message,\r\n actions: [\r\n {\r\n type: \'button\',\r\n text: \'Open in Zabbix\',\r\n url: this.problem_url\r\n }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n this.reply = {\r\n channel: this.params.channel,\r\n thread_ts: \'\',\r\n blocks: [\r\n {\r\n type: \'context\',\r\n elements: [\r\n {\r\n type: \'plain_text\',\r\n text: \'Event update message\'\r\n }\r\n ]\r\n },\r\n {\r\n type: \'rich_text\',\r\n elements: [\r\n {\r\n type: \'rich_text_section\',\r\n elements: [\r\n {\r\n type: \'text\',\r\n text: \'\',\r\n style: {\r\n italic: true\r\n }\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n };\r\n};\r\n\r\nSlack.prototype.sendRequest = function (route, data, tags) {\r\n this.request.clearHeader();\r\n this.request.addHeaders({\r\n \'Content-Type\': \'application/json; charset=utf-8;\',\r\n \'Authorization\': \'Bearer \' + this.params.bot_token\r\n });\r\n\r\n var response = this.request.jsonRequest(\'POST\', this.slack_endpoint + route, data);\r\n\r\n if (this.request.getStatus() !== 200 || !CParamValidator.isType(response.ok, \'boolean\') || response.ok !== true) {\r\n Logger.log(Logger.INFO, \'HTTP code: \' + this.request.getStatus());\r\n if (CParamValidator.isType(response.error, \'string\')) {\r\n throw \'Endpoint response:\' + response.error;\r\n }\r\n else {\r\n throw \'Unknown error. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n if (tags) {\r\n return {\r\n tags: {\r\n [\'__message_ts_\' + this.params.channel]: response.ts,\r\n [\'__channel_id_\' + this.params.channel]: response.channel,\r\n [\'__message_link_\' + this.params.channel]: this.getPermalink(response.channel, response.ts),\r\n }\r\n };\r\n\r\n }\r\n else {\r\n return { tags: {} };\r\n }\r\n};\r\n\r\nSlack.prototype.getPermalink = function (channel, message_ts) {\r\n var response = this.request.jsonRequest(\'GET\', this.slack_endpoint + \'chat.getPermalink\' + \'?channel=\' + channel + \'&message_ts=\' + message_ts);\r\n\r\n if (this.request.getStatus() !== 200 || !CParamValidator.isType(response.ok, \'boolean\') || response.ok !== true) {\r\n Logger.log(Logger.INFO, \'HTTP code: \' + this.request.getStatus());\r\n if (CParamValidator.isType(response.error, \'string\')) {\r\n throw \'Endpoint response:\' + response.error;\r\n }\r\n else {\r\n throw \'Unknown error. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n if (!CParamValidator.isDefined(response.permalink)) {\r\n throw \'Permalink is missed from the JSON response\';\r\n }\r\n\r\n return response.permalink;\r\n};\r\n\r\nSlack.prototype.onProblem = function (properties) {\r\n Logger.log(Logger.INFO, \'Source: \' + properties.source + \'; Event: \' + properties.event);\r\n\r\n if (this.params.slack_mode === "alarm") {\r\n return this.sendRequest(\'chat.postMessage\', this.data, true);\r\n } else {\r\n return this.sendRequest(\'chat.postMessage\', this.data, false);\r\n }\r\n};\r\n\r\nSlack.prototype.onUpdate = function (properties) {\r\n Logger.log(Logger.INFO, \'Source: \' + properties.source + \'; Event: \' + properties.event);\r\n\r\n if (this.params.slack_mode === "alarm") {\r\n this.data.channel = this.params.event_tags[\'__channel_id_\' + this.params.channel];\r\n this.data.ts = this.params.event_tags[\'__message_ts_\' + this.params.channel];\r\n\r\n if (CParamValidator.isMacroSet(this.params.event_update_message, \'EVENT.UPDATE.MESSAGE\') && !CParamValidator.isEmpty(this.params.event_update_message)) {\r\n this.reply.thread_ts = this.data.ts;\r\n this.reply.blocks[1].elements[0].elements[0].text = this.params.event_update_message;\r\n this.sendRequest(\'chat.postMessage\', this.reply, false);\r\n }\r\n\r\n if (/\\backnowledged/.test(this.params.event_update_action)) {\r\n this.sendRequest(\'reactions.add\', { channel: this.data.channel, timestamp: this.data.ts, name: \'white_check_mark\' }, false);\r\n }\r\n\r\n if (/\\bunacknowledged/.test(this.params.event_update_action)) {\r\n this.sendRequest(\'reactions.remove\', { channel: this.data.channel, timestamp: this.data.ts, name: \'white_check_mark\' }, false);\r\n }\r\n\r\n if (/\\bclosed/.test(this.params.event_update_action)) {\r\n return { tags: {} };\r\n }\r\n else {\r\n return this.sendRequest(\'chat.update\', this.data, false);\r\n }\r\n } else {\r\n return this.sendRequest(\'chat.postMessage\', this.data, false);\r\n }\r\n};\r\n\r\nSlack.prototype.onResolve = function (properties) {\r\n Logger.log(Logger.INFO, \'Source: \' + properties.source + \'; Event: \' + properties.event);\r\n this.data.attachments[0].color = this.resolve_color;\r\n\r\n if (this.params.slack_mode === "alarm") {\r\n this.data.channel = this.params.event_tags[\'__channel_id_\' + this.params.channel];\r\n this.data.ts = this.params.event_tags[\'__message_ts_\' + this.params.channel];\r\n\r\n return this.sendRequest(\'chat.update\', this.data, false);\r\n } else {\r\n return this.sendRequest(\'chat.postMessage\', this.data, false);\r\n }\r\n};\r\n\r\nSlack.prototype.onDiscovery = function (properties) {\r\n return this.onProblem(properties);\r\n};\r\n\r\nSlack.prototype.onAutoreg = function (properties) {\r\n return this.onProblem(properties);\r\n};\r\n\r\ntry {\r\n var hook = new Slack(value);\r\n hook.request = new CHttpRequest(Logger);\r\n return hook.run();\r\n}\r\ncatch (error) {\r\n Logger.log(Logger.WARN, \'Notification failed: \' + error);\r\n throw \'Sending failed: \' + error;\r\n}','30s','1','0','','','Preparing slack for a Zabbix media type:\r\n1. On the page Your Apps (https://api.slack.com/apps) press \'Create an App\', select \'From scratch\' and specify its name and workspace.\r\n2. In the \'Add features and functionality\' section, select \'Bots\' and press \'Review Scopes to Add\'.\r\n3. In the \'Scopes\' section, find \'Bot Token Scopes\', press \'Add an OAuth Scope\' and add \'chat:write\', \'im:write\', \'groups:write\' and \'reactions:write\' scopes.\r\n4. In the \'Settings\' section on the left side of the page press \'Install App\' and then \'Install to Workspace\'.\r\n5. Press \'Allow\' and copy \'Bot User OAuth Access Token\', which will be used to set up webhook.\r\n\r\nIn Zabbix:\r\n1. Set global macro {$ZABBIX.URL}\r\n2. Set user media for slack using channel name or member ID\r\n3. Set media param \'bot_token\' to the previously created token\r\n\r\nFor a detailed instructions please read full README file https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/slack/README.md','0'),
('95','4','SolarWinds Service Desk','','','','','','','','25','0','0','0','0','1','3','10s','1','var SolarWinds = {\r\n params: {},\r\n\r\n setParams: function (params) {\r\n if (typeof params !== \'object\') {\r\n return;\r\n }\r\n\r\n SolarWinds.params = params;\r\n SolarWinds.params.endpoint = \'https://api.samanage.com/\';\r\n },\r\n\r\n setProxy: function (HTTPProxy) {\r\n SolarWinds.HTTPProxy = HTTPProxy;\r\n },\r\n\r\n addCustomFields: function (data, fields) {\r\n if (typeof data.incident === \'object\' && typeof fields === \'object\' && Object.keys(fields).length) {\r\n if (typeof fields.sw_fields === \'object\' && Object.keys(fields.sw_fields).length) {\r\n Object.keys(fields.sw_fields)\r\n .forEach(function(field) {\r\n try {\r\n data.incident[field] = JSON.parse(fields.sw_fields[field]);\r\n }\r\n catch (error) {\r\n data.incident[field] = fields.sw_fields[field];\r\n }\r\n });\r\n }\r\n\r\n if (typeof fields.sw_customfields === \'object\' && Object.keys(fields.sw_customfields).length) {\r\n data.incident.custom_fields_values = {custom_fields_value: []};\r\n Object.keys(fields.sw_customfields)\r\n .forEach(function(field) {\r\n data.incident.custom_fields_values.custom_fields_value.push({\r\n name: field,\r\n value: fields.sw_customfields[field]\r\n });\r\n });\r\n }\r\n }\r\n\r\n return data;\r\n },\r\n\r\n request: function (method, query, data) {\r\n [\'token\'].forEach(function (field) {\r\n if (typeof SolarWinds.params !== \'object\' || typeof SolarWinds.params[field] === \'undefined\'\r\n || SolarWinds.params[field] === \'\' ) {\r\n throw \'Required SolarWinds param is not set: "\' + field + \'".\';\r\n }\r\n });\r\n\r\n var response,\r\n url = SolarWinds.params.endpoint + query,\r\n request = new HttpRequest();\r\n\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'X-Samanage-Authorization: Bearer \' + SolarWinds.params.token);\r\n request.addHeader(\'Accept: application/vnd.samanage.v2.1+json\');\r\n\r\n if (typeof SolarWinds.HTTPProxy !== \'undefined\' && SolarWinds.HTTPProxy !== \'\') {\r\n request.setProxy(SolarWinds.HTTPProxy);\r\n }\r\n\r\n if (typeof data !== \'undefined\') {\r\n data = JSON.stringify(data);\r\n }\r\n\r\n Zabbix.log(4, \'[ SolarWinds SD Webhook ] Sending request: \' + url + ((typeof data === \'string\')\r\n ? (\'\\n\' + data)\r\n : \'\'));\r\n\r\n switch (method) {\r\n case \'get\':\r\n response = request.get(url, data);\r\n break;\r\n\r\n case \'post\':\r\n response = request.post(url, data);\r\n break;\r\n\r\n case \'put\':\r\n response = request.put(url, data);\r\n break;\r\n\r\n default:\r\n throw \'Unsupported HTTP request method: \' + method;\r\n }\r\n\r\n Zabbix.log(4, \'[ SolarWinds SD Webhook ] Received response with status code \' + request.getStatus() +\r\n \'\\n\' + response);\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n Zabbix.log(4, \'[ SolarWinds SD Webhook ] Failed to parse response received from SolarWinds\');\r\n response = null;\r\n }\r\n }\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n var message = \'Request failed with status code \' + request.getStatus();\r\n\r\n if (response !== null && typeof response.error !== \'undefined\'\r\n && Object.keys(response.error).length > 0) {\r\n message += \': \' + JSON.stringify(response.error);\r\n }\r\n else if (response !== null && typeof response === \'object\'\r\n && Object.keys(response).length > 0) {\r\n Object.keys(response)\r\n .forEach(function(field) {\r\n message += \'\\n\' + field + \': \' + response[field][0];\r\n });\r\n }\r\n\r\n throw message + \' Check debug log for more information.\';\r\n }\r\n\r\n return {\r\n status: request.getStatus(),\r\n response: response\r\n };\r\n },\r\n\r\n createIncident: function(name, description, fields) {\r\n var data = {\r\n incident: {\r\n name: name,\r\n description: description,\r\n priority: SolarWinds.params.priority\r\n }\r\n };\r\n\r\n var result = SolarWinds.request(\'post\', \'incidents.json\', SolarWinds.addCustomFields(data, fields));\r\n\r\n if (typeof result.response !== \'object\' || typeof result.response.id === \'undefined\') {\r\n throw \'Cannot create SolarWinds incident. Check debug log for more information.\';\r\n }\r\n\r\n return result.response.id;\r\n },\r\n\r\n updateIncident: function(name, fields, message) {\r\n var data = {\r\n incident: {\r\n name: name,\r\n priority: SolarWinds.params.priority\r\n }\r\n };\r\n\r\n SolarWinds.request(\r\n \'put\',\r\n \'incidents/\' + SolarWinds.params.incident_id + \'.json\',\r\n SolarWinds.addCustomFields(data, fields));\r\n\r\n SolarWinds.commenIncident(message);\r\n },\r\n\r\n commenIncident: function(message) {\r\n var data = {\r\n comment: {\r\n body: message\r\n }\r\n };\r\n\r\n SolarWinds.request(\'post\', \'incidents/\' + SolarWinds.params.incident_id + \'/comments.json\', data);\r\n }\r\n};\r\n\r\ntry {\r\n var params = JSON.parse(value),\r\n fields = {},\r\n samanage = {},\r\n result = {tags: {}},\r\n required_params = [\'alert_subject\', \'event_recovery_value\', \'event_source\', \'event_value\', \'priority_default\'],\r\n severities = [\r\n {name: \'not_classified\'},\r\n {name: \'information\'},\r\n {name: \'warning\'},\r\n {name: \'average\'},\r\n {name: \'high\'},\r\n {name: \'disaster\'},\r\n {name: \'resolved\'},\r\n {name: \'default\'}\r\n ];\r\n\r\n fields.sw_fields = {};\r\n fields.sw_customfields = {};\r\n\r\n Object.keys(params)\r\n .forEach(function (key) {\r\n if (key.startsWith(\'samanage_\')) {\r\n samanage[key.substring(9)] = params[key];\r\n }\r\n else if (key.startsWith(\'sw_field_\')) {\r\n fields.sw_fields[key.substring(9)] = params[key];\r\n }\r\n else if (key.startsWith(\'sw_customfield_\')) {\r\n fields.sw_customfields[key.substring(15)] = params[key];\r\n }\r\n else if (required_params.indexOf(key) !== -1 && params[key] === \'\') {\r\n throw \'Parameter "\' + key + \'" can\\\'t be empty.\';\r\n }\r\n });\r\n\r\n if ([0, 1, 2, 3].indexOf(parseInt(params.event_source)) === -1) {\r\n throw \'Incorrect "event_source" parameter given: \' + params.event_source + \'\\nMust be 0-3.\';\r\n }\r\n\r\n // Check {EVENT.VALUE} for trigger-based and internal events.\r\n if (params.event_value !== \'0\' && params.event_value !== \'1\'\r\n && (params.event_source === \'0\' || params.event_source === \'3\')) {\r\n throw \'Incorrect "event_value" parameter given: \' + params.event_value + \'\\nMust be 0 or 1.\';\r\n }\r\n\r\n // Check {EVENT.UPDATE.STATUS} only for trigger-based events.\r\n if (params.event_update_status !== \'0\' && params.event_update_status !== \'1\' && params.event_source === \'0\') {\r\n throw \'Incorrect "event_update_status" parameter given: \' + params.event_update_status + \'\\nMust be 0 or 1.\';\r\n }\r\n\r\n if (params.event_source !== \'0\' && params.event_recovery_value === \'0\') {\r\n throw \'Recovery operations are supported only for trigger-based actions.\';\r\n }\r\n\r\n if ([0, 1, 2, 3, 4, 5].indexOf(parseInt(params.event_nseverity)) === -1) {\r\n params.event_nseverity = \'7\';\r\n }\r\n\r\n if (params.event_value === \'0\') {\r\n params.event_nseverity = \'6\';\r\n }\r\n\r\n samanage.priority = params[\'priority_\' + severities[params.event_nseverity].name] || params.priority_default;\r\n\r\n SolarWinds.setParams(samanage);\r\n SolarWinds.setProxy(params.HTTPProxy);\r\n\r\n // Create incident for non trigger-based events.\r\n if (params.event_source !== \'0\' && params.event_recovery_value !== \'0\') {\r\n SolarWinds.createIncident(params.alert_subject, params.alert_message);\r\n }\r\n // Create incident for trigger-based events.\r\n else if (params.event_value === \'1\' && params.event_update_status === \'0\'\r\n && (samanage.incident_id === \'{EVENT.TAGS.__zbx_solarwinds_inc_id}\' || samanage.incident_id === \'*UNKNOWN*\')) {\r\n var key = SolarWinds.createIncident(params.alert_subject, params.alert_message, fields);\r\n\r\n\r\n result.tags.__zbx_solarwinds_inc_id = key;\r\n result.tags.__zbx_solarwinds_inc_link = params.samanage_url +\r\n (params.samanage_url.endsWith(\'/\') ? \'\' : \'/\') + \'incidents/\' + key;\r\n }\r\n // Update created incident for trigger-based event.\r\n else {\r\n if (samanage.incident_id === \'{EVENT.TAGS.__zbx_solarwinds_inc_id}\' || samanage.incident_id === \'\' || samanage.incident_id === \'*UNKNOWN*\') {\r\n throw \'Incorrect incident key given: \' + samanage.incident_id;\r\n }\r\n if (!params.alert_message) {\r\n throw \'Parameter "alert_message" can\\\'t be empty.\';\r\n }\r\n SolarWinds.updateIncident(params.alert_subject, fields, params.alert_message);\r\n }\r\n\r\n if (params.event_source === \'0\') {\r\n return JSON.stringify(result);\r\n }\r\n else {\r\n return \'OK\';\r\n }\r\n}\r\ncatch (error) {\r\n Zabbix.log(3, \'[ SolarWinds SD Webhook ] ERROR: \' + error);\r\n throw \'Sending failed: \' + error;\r\n}','30s','1','1','{EVENT.TAGS.__zbx_solarwinds_inc_link}','SolarWinds incident ID: {EVENT.TAGS.__zbx_solarwinds_inc_id}','','0'),
('96','4','SysAid','','','','','','','','25','0','0','0','0','1','3','10s','1','var SysAid = {\r\n params: {},\r\n\r\n setParams: function (params) {\r\n var required = [\'url\', \'auth_user\', \'auth_password\', \'category_level_1\', \'category_level_2\',\r\n \'category_level_3\', \'incident_id\', \'template_id\', \'urgency_id\', \'incident_state\',\r\n \'default_priority_id\'\r\n ];\r\n\r\n required.forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n });\r\n\r\n SysAid.params = params;\r\n if (typeof SysAid.params.url === \'string\' && !SysAid.params.url.endsWith(\'/\')) {\r\n SysAid.params.url += \'/\';\r\n }\r\n },\r\n\r\n login: function () {\r\n var result = SysAid.request(\'post\', \'api/v1/login\', {\r\n user_name: SysAid.params.auth_user,\r\n password: SysAid.params.auth_password\r\n });\r\n\r\n return result.response.user.id;\r\n },\r\n\r\n request: function (method, query, data) {\r\n var response,\r\n request = SysAid.req || (SysAid.req = new HttpRequest()),\r\n url = SysAid.params.url + query;\r\n\r\n if (typeof SysAid.HTTPProxy !== \'undefined\' && SysAid.HTTPProxy.trim() !== \'\') {\r\n request.setProxy(SysAid.HTTPProxy);\r\n }\r\n\r\n if (typeof data !== \'undefined\') {\r\n data = JSON.stringify(data);\r\n }\r\n\r\n Zabbix.log(4, \'[ SysAid Webhook ] Sending request: \' +\r\n url + ((typeof data === \'string\') ? (\' \' + data) : \'\'));\r\n\r\n switch (method) {\r\n case \'get\':\r\n response = request.get(url, data);\r\n break;\r\n\r\n case \'post\':\r\n response = request.post(url, data);\r\n break;\r\n\r\n case \'put\':\r\n response = request.put(url, data);\r\n break;\r\n\r\n default:\r\n throw \'Unsupported HTTP request method: \' + method;\r\n }\r\n\r\n Zabbix.log(4, \'[ SysAid Webhook ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200) {\r\n var message = \'Request failed with status code \' + request.getStatus();\r\n\r\n message += \': \' + response;\r\n throw message + \' Check debug log for more information.\';\r\n }\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n Zabbix.log(4, \'[ SysAid Webhook ] Failed to parse response received from SysAid\');\r\n response = null;\r\n }\r\n }\r\n\r\n if (response === null || (typeof response.Error !== \'undefined\' && Object.keys(response.Error).length > 0)) {\r\n throw \'Request failed: \' + JSON.stringify(response.Error);\r\n }\r\n\r\n return {\r\n status: request.getStatus(),\r\n response: response\r\n };\r\n },\r\n\r\n createIncident: function(subject, message, priority) {\r\n var result = SysAid.request(\'post\', \'api/v1/sr/?template=\' + encodeURIComponent(SysAid.params.template_id), {\r\n info: [\r\n {\r\n key: \'problem_type\',\r\n value: [\r\n SysAid.params.category_level_1,\r\n SysAid.params.category_level_2,\r\n SysAid.params.category_level_3\r\n ].join(\'_\')\r\n },\r\n {\r\n key: \'title\',\r\n value: subject\r\n },\r\n {\r\n key: \'description\',\r\n value: message\r\n },\r\n {\r\n key: \'status\',\r\n value: \'1\'\r\n },\r\n {\r\n key: \'urgency\',\r\n value: SysAid.params.urgency_id\r\n },\r\n {\r\n key: \'priority\',\r\n value: priority || SysAid.params.default_priority_id,\r\n }\r\n ]\r\n });\r\n\r\n if (result.response.id === \'undefined\') {\r\n throw \'Cannot create SysAid incident. Check debug log for more information.\';\r\n }\r\n\r\n return result.response.id;\r\n },\r\n\r\n updateTicket: function(note) {\r\n var date = new Date().getTime();\r\n\r\n SysAid.request(\'put\', \'api/v1/sr/\' + encodeURIComponent(SysAid.params.incident_id), {\r\n id: SysAid.params.incident_id,\r\n info: [\r\n {\r\n key: \'update_time\',\r\n value: date\r\n },\r\n {\r\n key: \'notes\',\r\n value: [\r\n {\r\n userName: \'Zabbix\',\r\n createDate: date,\r\n text: note\r\n }\r\n ]\r\n }\r\n ]\r\n });\r\n }\r\n};\r\n\r\ntry {\r\n var params = JSON.parse(value),\r\n params_sysaid = {},\r\n params_update = {},\r\n result = {tags: {}},\r\n required_params = [\'alert_subject\', \'event_source\', \'event_value\', \'event_update_status\'],\r\n severities = [\r\n {name: \'not_classified\', color: \'#97AAB3\'},\r\n {name: \'information\', color: \'#7499FF\'},\r\n {name: \'warning\', color: \'#FFC859\'},\r\n {name: \'average\', color: \'#FFA059\'},\r\n {name: \'high\', color: \'#E97659\'},\r\n {name: \'disaster\', color: \'#E45959\'},\r\n {name: \'resolved\', color: \'#009900\'},\r\n {name: null, color: \'#000000\'}\r\n ],\r\n priority;\r\n\r\n Object.keys(params)\r\n .forEach(function (key) {\r\n if (key.startsWith(\'sysaid_\')) {\r\n params_sysaid[key.substring(7)] = params[key];\r\n }\r\n else if (key.startsWith(\'event_update_\')) {\r\n params_update[key.substring(13)] = params[key];\r\n }\r\n else if (required_params.indexOf(key) !== -1 && params[key].trim() === \'\') {\r\n throw \'Parameter "\' + key + \'" cannot be empty.\';\r\n }\r\n });\r\n\r\n if ([0, 1, 2, 3].indexOf(parseInt(params.event_source)) === -1) {\r\n throw \'Incorrect "event_source" parameter given: \' + params.event_source + \'\\nMust be 0-3.\';\r\n }\r\n\r\n // Check {EVENT.VALUE} for trigger-based and internal events.\r\n if (params.event_value !== \'0\' && params.event_value !== \'1\'\r\n && (params.event_source === \'0\' || params.event_source === \'3\')) {\r\n throw \'Incorrect "event_value" parameter given: \' + params.event_value + \'\\nMust be 0 or 1.\';\r\n }\r\n\r\n // Check {EVENT.UPDATE.STATUS} only for trigger-based events.\r\n if (params.event_source === \'0\' && params.event_update_status !== \'0\' && params.event_update_status !== \'1\') {\r\n throw \'Incorrect "event_update_status" parameter given: \' + params.event_update_status + \'\\nMust be 0 or 1.\';\r\n }\r\n\r\n if (params.event_source !== \'0\' && params.event_value === \'0\') {\r\n throw \'Recovery operations are supported only for trigger-based actions.\';\r\n }\r\n\r\n if (params.event_source === \'0\' && ((params.event_value === \'1\' && params.event_update_status === \'1\')\r\n || (params.event_value === \'0\' && (params.event_update_status === \'0\' || params.event_update_status === \'1\')))\r\n && (isNaN(parseInt(params.sysaid_incident_id)) || parseInt(params.sysaid_incident_id) < 1 )) {\r\n throw \'Incorrect "sysaid_incident_id" parameter given: \' + params.sysaid_incident_id + \'\\nMust be positive integer.\';\r\n }\r\n\r\n if ([0, 1, 2, 3, 4, 5].indexOf(parseInt(params.event_nseverity)) === -1) {\r\n params.event_nseverity = \'7\';\r\n }\r\n\r\n if (params.event_value === \'0\') {\r\n params.event_nseverity = \'6\';\r\n }\r\n\r\n priority = params[\'severity_\' + severities[params.event_nseverity].name];\r\n priority = priority && priority.trim() || severities[7].name;\r\n\r\n SysAid.setParams(params_sysaid);\r\n SysAid.HTTPProxy = params.HTTPProxy;\r\n SysAid.login();\r\n\r\n if (params.event_source !== \'0\' && params.event_value !== \'0\') {\r\n // Create ticket for non trigger-based events.\r\n SysAid.createIncident(params.alert_subject, params.alert_message, priority);\r\n }\r\n else if (params.event_value === \'1\' && params_update.status === \'0\') {\r\n // Create ticket for trigger-based events.\r\n var incident_id = SysAid.createIncident(params.alert_subject, params.alert_subject + \'\\n\' + params.alert_message +\r\n \'\\n\' + params.zabbix_url + (params.zabbix_url.endsWith(\'/\') ? \'\' : \'/\') + \'tr_events.php?triggerid=\' +\r\n params.trigger_id + \'&eventid=\' + params.event_id + \'\\n\', priority\r\n );\r\n\r\n result.tags.__zbx_sysaid_incident_id = incident_id;\r\n result.tags.__zbx_sysaid_incidentlink = params.sysaid_url +\r\n (params.sysaid_url.endsWith(\'/\') ? \'\' : \'/\') + \'SREdit.jsp?id=\' + incident_id + \'&fromId=IncidentsList\';\r\n }\r\n else {\r\n // Update created ticket for trigger-based event.\r\n SysAid.updateTicket(params.alert_subject + \'\\n\' + params.alert_message);\r\n }\r\n\r\n return JSON.stringify(result);\r\n}\r\ncatch (error) {\r\n Zabbix.log(3, \'[ SysAid Webhook ] ERROR: \' + error);\r\n throw \'Sending failed: \' + error;\r\n}','30s','1','1','{EVENT.TAGS.__zbx_sysaid_incidentlink}','SysAid: incident #{EVENT.TAGS.__zbx_sysaid_incident_id}','','0'),
('97','4','Telegram','','','','','','','','25','0','0','0','0','1','3','10s','1','const CLogger = function(serviceName) {\r\n this.serviceName = serviceName;\r\n this.INFO = 4\r\n this.WARN = 3\r\n this.ERROR = 2\r\n this.log = function(level, msg) {\r\n Zabbix.log(level, \'[\' + this.serviceName + \'] \' + msg);\r\n }\r\n}\r\n\r\nconst CWebhook = function(value) {\r\n try {\r\n params = JSON.parse(value);\r\n\r\n if ([\'0\', \'1\', \'2\', \'3\', \'4\'].indexOf(params.event_source) === -1) {\r\n throw \'Incorrect "event_source" parameter given: \' + params.event_source + \'.\\nMust be 0-4.\';\r\n }\r\n\r\n if ([\'0\', \'3\', \'4\'].indexOf(params.event_source) !== -1 && [\'0\', \'1\'].indexOf(params.event_value) === -1) {\r\n throw \'Incorrect "event_value" parameter given: \' + params.event_value + \'.\\nMust be 0 or 1.\';\r\n }\r\n\r\n if ([\'0\', \'3\', \'4\'].indexOf(params.event_source) !== -1) {\r\n if (params.event_source === \'1\' && [\'0\', \'1\', \'2\', \'3\'].indexOf(params.event_value) === -1) {\r\n throw \'Incorrect "event_value" parameter given: \' + params.event_value + \'.\\nMust be 0-3.\';\r\n }\r\n\r\n if (params.event_source === \'0\' && [\'0\', \'1\'].indexOf(params.event_update_status) === -1) {\r\n throw \'Incorrect "event_update_status" parameter given: \' + params.event_update_status + \'.\\nMust be 0 or 1.\';\r\n }\r\n\r\n if (params.event_source === \'4\') {\r\n if ([\'0\', \'1\', \'2\', \'3\', \'4\', \'5\'].indexOf(params.event_update_nseverity) !== -1 && params.event_update_nseverity != params.event_nseverity) {\r\n params.event_nseverity = params.event_update_nseverity;\r\n params.event_severity = params.event_update_severity;\r\n params.event_update_status = \'1\';\r\n }\r\n }\r\n }\r\n\r\n this.runCallback = function(name, params) {\r\n if (typeof this[name] === \'function\') {\r\n return this[name].apply(this, [params]);\r\n }\r\n }\r\n\r\n this.handleEvent = function(source, event) {\r\n const alert = { source: source, event: event };\r\n return [\r\n this.runCallback(\'on\' + source + event, alert),\r\n this.runCallback(\'on\' + event, alert),\r\n this.runCallback(\'onEvent\', alert)\r\n ];\r\n }\r\n\r\n this.handleEventless = function(source) {\r\n const alert = { source: source, event: null };\r\n return [\r\n this.runCallback(\'on\' + source, alert),\r\n this.runCallback(\'onEvent\', alert)\r\n ];\r\n }\r\n\r\n this.run = function() {\r\n var results = [];\r\n if (typeof this.httpProxy === \'string\' && this.httpProxy.trim() !== \'\') {\r\n this.request.setProxy(this.httpProxy);\r\n }\r\n const types = { \'0\': \'Trigger\', \'1\': \'Discovery\', \'2\': \'Autoreg\', \'3\': \'Internal\', \'4\': \'Service\' };\r\n\r\n if ([\'0\', \'3\', \'4\'].indexOf(this.params.event_source) !== -1) {\r\n var event = (this.params.event_update_status === \'1\')\r\n ? \'Update\'\r\n : ((this.params.event_value === \'1\') ? \'Problem\' : \'Resolve\');\r\n\r\n results = this.handleEvent(types[this.params.event_source], event);\r\n }\r\n else if (typeof types[this.params.event_source] !== \'undefined\') {\r\n results = this.handleEventless(types[this.params.event_source]);\r\n }\r\n else {\r\n throw \'Unexpected "event_source": \' + this.params.event_source;\r\n }\r\n\r\n for (idx in results) {\r\n if (typeof results[idx] !== \'undefined\') {\r\n return JSON.stringify(results[idx]);\r\n }\r\n }\r\n }\r\n this.httpProxy = params.http_proxy;\r\n this.params = params;\r\n this.runCallback(\'onCheckParams\', {});\r\n } catch (error) {\r\n throw \'Webhook processing failed: \' + error;\r\n }\r\n}\r\n\r\nconst CParamValidator = {\r\n\r\n isType: function(value, type) {\r\n if (type === \'array\') {\r\n return Array.isArray(value);\r\n }\r\n if (type === \'integer\') {\r\n return CParamValidator.isInteger(value);\r\n }\r\n if (type === \'float\') {\r\n return CParamValidator.isFloat(value);\r\n }\r\n\r\n return (typeof value === type);\r\n },\r\n\r\n isInteger: function(value) {\r\n if (!CParamValidator.ifMatch(value, /^-?\\d+$/)) {\r\n return false;\r\n }\r\n\r\n return !isNaN(parseInt(value));\r\n },\r\n\r\n isFloat: function(value) {\r\n if (!CParamValidator.ifMatch(value, /^-?\\d+\\.\\d+$/)) {\r\n return false;\r\n }\r\n\r\n return !isNaN(parseFloat(value));\r\n },\r\n\r\n isDefined: function(value) {\r\n return !CParamValidator.isType(value, \'undefined\');\r\n },\r\n\r\n isEmpty: function(value) {\r\n if (!CParamValidator.isType(value, \'string\')) {\r\n throw \'Value "\' + value + \'" must be a string to be checked for emptiness.\';\r\n }\r\n\r\n return (value.trim() === \'\');\r\n },\r\n\r\n isMacroSet: function(value, macro) {\r\n if (CParamValidator.isDefined(macro)) {\r\n return !(CParamValidator.ifMatch(value, \'^\\{\' + macro + \'\\}$\'))\r\n }\r\n\r\n return !(CParamValidator.ifMatch(value, \'^\\{[$#]{0,1}[A-Z_\\.]+[\\:]{0,1}["]{0,1}.*["]{0,1}\\}$\') || value === \'*UNKNOWN*\')\r\n },\r\n\r\n withinRange: function(value, min, max) {\r\n if (!CParamValidator.isType(value, \'number\')) {\r\n throw \'Value "\' + value + \'" must be a number to be checked for range.\';\r\n }\r\n if (value < ((CParamValidator.isDefined(min)) ? min : value)\r\n || value > ((CParamValidator.isDefined(max)) ? max : value)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n\r\n inArray: function(value, array) {\r\n if (!CParamValidator.isType(array, \'array\')) {\r\n throw \'The array must be an array to check the value for existing in it.\';\r\n }\r\n\r\n return (array.indexOf((typeof value === \'string\') ? value.toLowerCase() : value) !== -1);\r\n },\r\n\r\n ifMatch: function(value, regex) {\r\n return (new RegExp(regex)).test(value);\r\n },\r\n\r\n match: function(value, regex) {\r\n if (!CParamValidator.isType(value, \'string\')) {\r\n throw \'Value "\' + value + \'" must be a string to be matched with the regular expression.\';\r\n }\r\n\r\n return value.match(new RegExp(regex));\r\n },\r\n\r\n checkURL: function(value) {\r\n if (CParamValidator.isEmpty(value)) {\r\n throw \'URL value "\' + value + \'" must be a non-empty string.\';\r\n }\r\n if (!CParamValidator.ifMatch(value, \'^(http|https):\\/\\/.+\')) {\r\n throw \'URL value "\' + value + \'" must contain a schema.\';\r\n }\r\n\r\n return value.endsWith(\'/\') ? value.slice(0, -1) : value;\r\n },\r\n\r\n check: function(key, rule, params) {\r\n if (!CParamValidator.isDefined(rule.type)) {\r\n throw \'Mandatory attribute "type" has not been defined for parameter "\' + key + \'".\';\r\n }\r\n if (!CParamValidator.isDefined(params[key])) {\r\n throw \'Checked parameter "\' + key + \'" was not found in the list of input parameters.\';\r\n }\r\n var value = params[key],\r\n error_message = null;\r\n switch (rule.type) {\r\n case \'string\':\r\n if (!CParamValidator.isType(value, \'string\')) {\r\n throw \'Value "\' + key + \'" must be a string.\';\r\n }\r\n if (CParamValidator.isEmpty(value)) {\r\n error_message = \'Value "\' + key + \'" must be a non-empty string\';\r\n break;\r\n }\r\n if (CParamValidator.isDefined(rule.len) && value.length < rule.len) {\r\n error_message = \'Value "\' + key + \'" must be a string with a length > \' + rule.len;\r\n }\r\n if (CParamValidator.isDefined(rule.regex) && !CParamValidator.ifMatch(value, rule.regex)) {\r\n error_message = \'Value "\' + key + \'" must match the regular expression "\' + rule.regex + \'"\';\r\n }\r\n if (CParamValidator.isDefined(rule.url) && rule.url === true) {\r\n value = CParamValidator.checkURL(value);\r\n }\r\n break;\r\n case \'integer\':\r\n if (!CParamValidator.isInteger(value)) {\r\n error_message = \'Value "\' + key + \'" must be an integer\';\r\n break;\r\n }\r\n value = parseInt(value);\r\n break;\r\n case \'float\':\r\n if (!CParamValidator.isFloat(value)) {\r\n error_message = \'Value "\' + key + \'" must be a floating-point number\';\r\n break;\r\n }\r\n value = parseFloat(value);\r\n break;\r\n case \'boolean\':\r\n if (CParamValidator.inArray(value, [\'1\', \'true\', \'yes\', \'on\'])) {\r\n value = true;\r\n }\r\n else if (CParamValidator.inArray(value, [\'0\', \'false\', \'no\', \'off\'])) {\r\n value = false;\r\n }\r\n else {\r\n error_message = \'Value "\' + key + \'" must be a boolean-like.\';\r\n }\r\n break;\r\n case \'array\':\r\n try {\r\n value = JSON.parse(value);\r\n } catch (error) {\r\n throw \'Value "\' + key + \'" contains invalid JSON.\';\r\n }\r\n if (!CParamValidator.isType(value, \'array\')) {\r\n error_message = \'Value "\' + key + \'" must be an array.\';\r\n }\r\n if (CParamValidator.isDefined(rule.tags) && rule.tags === true) {\r\n value = value.reduce(function(acc, obj) {\r\n acc[obj.tag] = obj.value || null;\r\n return acc;\r\n }, {});\r\n }\r\n break;\r\n case \'object\':\r\n value = JSON.parse(value);\r\n if (!CParamValidator.isType(value, \'object\')) {\r\n error_message = \'Value "\' + key + \'" must be an object.\';\r\n }\r\n break;\r\n default:\r\n throw \'Unexpected attribute type "\' + rule.type + \'" for value "\' + key + \'". Available: \' +\r\n [\'integer\', \'float\', \'string\', \'boolean\', \'array\', \'object\'].join(\', \');\r\n }\r\n params[key] = value;\r\n if (CParamValidator.inArray(rule.type, [\'integer\', \'float\']) && error_message === null && (CParamValidator.isDefined(rule.min)\r\n || CParamValidator.isDefined(rule.max)) && !CParamValidator.withinRange(value, rule.min, rule.max)) {\r\n error_message = \'Value "\' + key + \'" must be a number \' + ((CParamValidator.isDefined(rule.min) && CParamValidator.isDefined(rule.max))\r\n ? (rule.min + \'..\' + rule.max) : ((CParamValidator.isDefined(rule.min)) ? \'>\' + rule.min : \'<\' + rule.max));\r\n }\r\n else if (CParamValidator.isDefined(rule.array) && !CParamValidator.inArray(value, rule.array)) {\r\n error_message = \'Value "\' + key + \'" must be in the array \' + JSON.stringify(rule.array);\r\n }\r\n else if (CParamValidator.isDefined(rule.macro) && !CParamValidator.isMacroSet(value.toString(), rule.macro)) {\r\n error_message = \'The macro \' + ((CParamValidator.isDefined(rule.macro)) ? \'{\' + rule.macro + \'} \' : \' \') + \'is not set\';\r\n }\r\n if (error_message !== null) {\r\n if (CParamValidator.isDefined(rule.default) && CParamValidator.isType(rule.default, rule.type)) {\r\n params[key] = rule.default;\r\n }\r\n else {\r\n Zabbix.log(4, \'Default value for "\' + key + \'" must be a \' + rule.type + \'. Skipped.\');\r\n throw \'Incorrect value for variable "\' + key + \'". \' + error_message;\r\n }\r\n }\r\n\r\n return this;\r\n },\r\n\r\n validate: function(rules, params) {\r\n if (!CParamValidator.isType(params, \'object\') || CParamValidator.isType(params, \'array\')) {\r\n throw \'Incorrect parameters value. The value must be an object.\';\r\n }\r\n for (var key in rules) {\r\n CParamValidator.check(key, rules[key], params);\r\n }\r\n }\r\n}\r\n\r\nconst CHttpRequest = function(logger) {\r\n this.request = new HttpRequest();\r\n if (typeof logger !== \'object\' || logger === null) {\r\n this.logger = Zabbix;\r\n }\r\n else {\r\n this.logger = logger;\r\n }\r\n\r\n this.clearHeader = function() {\r\n this.request.clearHeader();\r\n }\r\n\r\n this.addHeaders = function(value) {\r\n var headers = [];\r\n\r\n if (typeof value === \'object\' && value !== null) {\r\n if (!Array.isArray(value)) {\r\n Object.keys(value).forEach(function(key) {\r\n headers.push(key + \': \' + value[key]);\r\n });\r\n }\r\n else {\r\n headers = value;\r\n }\r\n }\r\n else if (typeof value === \'string\') {\r\n value.split(\'\\r\\n\').forEach(function(header) {\r\n headers.push(header);\r\n });\r\n }\r\n\r\n for (var idx in headers) {\r\n this.request.addHeader(headers[idx]);\r\n }\r\n }\r\n\r\n this.setProxy = function(proxy) {\r\n this.request.setProxy(proxy);\r\n }\r\n\r\n this.plainRequest = function(method, url, data) {\r\n var resp = null;\r\n method = method.toLowerCase();\r\n this.logger.log(4, \'Sending \' + method + \' request:\' + JSON.stringify(data));\r\n if ([\'get\', \'post\', \'put\', \'patch\', \'delete\', \'trace\'].indexOf(method) !== -1) {\r\n resp = this.request[method](url, data);\r\n }\r\n else if ([\'connect\', \'head\', \'options\'].indexOf(method) !== -1) {\r\n resp = this.request[method](url);\r\n }\r\n else {\r\n throw \'Unexpected method. Method \' + method + \' is not supported.\';\r\n }\r\n this.logger.log(4, \'Response has been received: \' + resp);\r\n\r\n return resp;\r\n }\r\n\r\n this.jsonRequest = function(method, url, data) {\r\n this.addHeaders(\'Content-Type: application/json\');\r\n var resp = this.plainRequest(method, url, JSON.stringify(data));\r\n try {\r\n resp = JSON.parse(resp);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response: not well-formed JSON was received\';\r\n }\r\n\r\n return resp;\r\n }\r\n\r\n this.getStatus = function() {\r\n return this.request.getStatus();\r\n }\r\n}\r\n\r\nvar serviceLogName = \'Telegram Webhook\',\r\n Logger = new CLogger(serviceLogName),\r\n Telegram = CWebhook;\r\n\r\nfunction escapeMarkup(str, mode) {\r\n switch (mode) {\r\n case \'markdown\':\r\n return str.replace(/([_*\\[`])/g, \'\\\\$&\');\r\n case \'markdownv2\':\r\n return str.replace(/([_*\\[\\]()~`>#+\\-=|{}.!])/g, \'\\\\$&\');\r\n case \'html\':\r\n return str.replace(/<(\\s|[^a-z\\/])/g, \'<$1\');\r\n default:\r\n return str;\r\n }\r\n}\r\n\r\nTelegram.prototype.getMessageID = function (chat_id, message_thread_id) {\r\n const tag_key = \'__telegram_msg_id_\' + chat_id + (message_thread_id ? \'_\' + message_thread_id : \'\');\r\n if (CParamValidator.isDefined(this.params.event_tags[tag_key])) {\r\n return this.params.event_tags[tag_key];\r\n }\r\n return null;\r\n}\r\n\r\nTelegram.prototype.onCheckParams = function () {\r\n CParamValidator.validate(\r\n {\r\n api_token: {type: \'string\'},\r\n api_chat_id: {type: \'string\'},\r\n alert_message: {type: \'string\'}\r\n },\r\n this.params\r\n );\r\n\r\n if (CParamValidator.inArray(this.params.event_source, [\'0\', \'3\', \'4\'])) {\r\n CParamValidator.validate({\r\n event_tags: {type: \'array\', macro: \'EVENT.TAGSJSON\', tags: true, default: {}}\r\n }, this.params);\r\n }\r\n\r\n this.params.url = \'https://api.telegram.org/bot\';\r\n this.data = {\r\n disable_web_page_preview: true,\r\n disable_notification: false\r\n };\r\n const match = this.params.api_chat_id.match(/^(-?\\d+|@[a-zA-Z0-9_]+)(?::(\\d+))?$/);\r\n if (!match) {\r\n throw \'Invalid format for api_chat_id: "\' + this.params.api_chat_id + \'". Must be a numeric group ID or @GroupName, optionally followed by :message_thread_id.\';\r\n }\r\n this.data[\'chat_id\'] = match[1];\r\n if (CParamValidator.isDefined(match[2])) {\r\n this.data[\'message_thread_id\'] = match[2];\r\n }\r\n this.data[\'text\'] = ((this.params.alert_subject !== \'\') ? this.params.alert_subject + \'\\n\' : \'\') + this.params.alert_message;\r\n if ([\'markdown\', \'html\', \'markdownv2\'].indexOf(this.params.api_parse_mode.toLowerCase()) !== -1) {\r\n this.data[\'parse_mode\'] = this.params.api_parse_mode.toLowerCase();\r\n this.data[\'text\'] = escapeMarkup(this.data[\'text\'], this.data[\'parse_mode\']);\r\n }\r\n const reply_to_message_id = this.getMessageID(this.data[\'chat_id\'], this.data[\'message_thread_id\']);\r\n if (reply_to_message_id !== null) {\r\n this.data[\'reply_to_message_id\'] = reply_to_message_id;\r\n }\r\n this.result = {tags: {}};\r\n};\r\n\r\nTelegram.prototype.onEvent = function (alert) {\r\n Logger.log(Logger.INFO, \'Source: \' + alert.source + \'; Event: \' + alert.event);\r\n Logger.log(Logger.INFO, \'URL: \' + this.params.url.replace(this.params.api_token, \'\'));\r\n var response = this.request.jsonRequest(\'POST\', this.params.url + this.params.api_token + \'/sendMessage\', this.data);\r\n\r\n if (this.request.getStatus() !== 200 || !CParamValidator.isType(response.ok, \'boolean\') || response.ok !== true) {\r\n Logger.log(Logger.INFO, \'HTTP code: \' + this.request.getStatus());\r\n if (CParamValidator.isType(response.description, \'string\')) {\r\n throw response.description;\r\n }\r\n else {\r\n throw \'Unknown error. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n if (CParamValidator.isDefined(response.result.message_id) && this.getMessageID(this.data[\'chat_id\'], this.data[\'message_thread_id\']) === null) {\r\n this.result.tags[\'__telegram_msg_id_\' + this.data[\'chat_id\'] + (this.data[\'message_thread_id\'] ? \'_\' + this.data[\'message_thread_id\'] : \'\')] = response.result.message_id;\r\n }\r\n\r\n return this.result;\r\n};\r\n\r\ntry {\r\n var hook = new Telegram(value);\r\n hook.request = new CHttpRequest(Logger);\r\n return hook.run();\r\n}\r\ncatch (error) {\r\n Logger.log(Logger.WARN, \'notification failed: \' + error);\r\n throw \'Sending failed: \' + error;\r\n}','30s','1','0','','','This media type integrates your Zabbix installation with Telegram using the Zabbix webhook feature.\r\n\r\nTelegram configuration:\r\n\r\n1. Register a new Telegram bot: send "/newbot" to "@BotFather" and follow the instructions. The token provided by "@BotFather" in the final step will be needed for configuring the Zabbix webhook.\r\n\r\n2. Set up personal or group notifications:\r\n\r\n2.1 Personal notifications:\r\n\r\n2.1.1 Retrieve the chat ID of the user the bot should send messages to. The user should send "/getid" to "@myidbot" in the Telegram messenger.\r\n\r\n2.1.2 The user should also send "/start" to the bot created in step 1. If you skip this step, the Telegram bot won\'t be able to send messages to the user (bots cannot initiate conversations with users).\r\n\r\n2.2 Group notifications:\r\n\r\n2.2.1 Retrieve the group ID of the group that the bot should send messages to. Add "@myidbot" and the bot created in step 1 to your group.\r\n\r\n2.2.2 In the group chat, send: "/getgroupid@myidbot".\r\n\r\n2.2.3 If the bot is added to a supergroup and you want the bot to send messages to a specific topic instead of the default "General" channel, right-click any message in that topic and click "Copy Message Link". The copied link will have the following format: "https://t.me/c///", for example: "https://t.me/c/1234567890/2/1". In this example, the topic ID is "2".\r\n\r\nNote:\r\n- The group ID is a negative number, for example: "-1234567890".\r\n- The supergroup ID is a negative number prefixed with "-100", for example: "-1001234567890"\r\n- The public group or supergroup ID can also be specified in media type properties as a name prefixed by "@", for example: "@MyGroupName".\r\n\r\n3. Depending on where you want to send notifications, copy and save the bot token, personal chat ID or group ID, and topic ID (if you want to send messages to a specific supergroup topic), as you will need these later to set up the media type in Zabbix.\r\n\r\nZabbix configuration:\r\n\r\n1. Set the following webhook parameters:\r\n- "api_parse_mode" - the formatting mode applied for messages (possible values: "markdown", "html", "markdownv2")\r\n- "api_token" - the token of the bot used to send messages\r\n\r\nLearn more about message formatting options in Telegram Bot API documentation:\r\n- Markdown: https://core.telegram.org/bots/api#markdown-style\r\n- HTML: https://core.telegram.org/bots/api#html-style\r\n- MarkdownV2: https://core.telegram.org/bots/api#markdownv2-style\r\n\r\nNote: Your Telegram-related actions should be separated from other notification types (e.g., SMS); otherwise, if you use Markdown or HTML in the alert subject or body, you may receive plain-text alerts with raw tags.\r\n\r\n2. Click the "Enabled" checkbox to enable the media type and click the "Update" button to save the webhook settings.\r\n\r\n3. Create a Zabbix user and add media:\r\n- To create a new user, go to the "Users" → "Users" section, click the "Create user" button in the top right corner. In the "User" tab, fill in all required fields (marked with red asterisks).\r\n- Make sure this user has access to all hosts for which you would like problem notifications to be sent to Telegram.\r\n- In the "Media" tab, click "Add" and select the type "Telegram" from the drop-down list.\r\n- In the "Send to" field, specify the Telegram user chat ID or group ID that you retrieved during Telegram setup. To send notifications to a specific topic within a supergroup, specify the topic ID after the semicolon delimiter in the format ":", for example: "-1001234567890:2", "@MyGroupName:2".\r\n\r\n4. Done! You can now start using this media type in actions and create tickets.\r\n\r\nYou can find the latest version of this media and additional information in the official Zabbix repository:\r\nhttps://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/telegram','0'),
('98','4','TOPdesk','','','','','','','','25','0','0','0','0','1','3','10s','1','var Media = {\r\n params: {},\r\n name: \'\',\r\n labels: [],\r\n HTTPProxy: \'\',\r\n\r\n setParams: function (params) {\r\n if (typeof params !== \'object\') {\r\n return;\r\n }\r\n\r\n Media.params = params;\r\n Media.params.api += Media.params.api.endsWith(\'/\') ? \'\' : \'/\';\r\n },\r\n\r\n setProxy: function (HTTPProxy) {\r\n if (typeof HTTPProxy !== \'undefined\' && HTTPProxy.trim() !== \'\') {\r\n Media.HTTPProxy = HTTPProxy;\r\n }\r\n },\r\n\r\n request: function (method, query, data) {\r\n [\'api\', \'token\'].forEach(function (field) {\r\n if (typeof Media.params !== \'object\' || typeof Media.params[field] === \'undefined\'\r\n || Media.params[field] === \'\') {\r\n throw \'Required \' + Media.name + \' param is not set: "\' + field + \'".\';\r\n }\r\n });\r\n\r\n var response,\r\n url = Media.params.api + query,\r\n request = new HttpRequest();\r\n\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Authorization: \' + Media.params.token);\r\n request.setProxy(Media.HTTPProxy);\r\n\r\n if (typeof data !== \'undefined\') {\r\n data = JSON.stringify(data);\r\n }\r\n\r\n Zabbix.log(4, \'[ \' + Media.name + \' Webhook ] Sending request: \' +\r\n url + ((typeof data === \'string\') ? (\'\\n\' + data) : \'\'));\r\n\r\n switch (method) {\r\n case \'get\':\r\n response = request.get(url, data);\r\n break;\r\n\r\n case \'post\':\r\n response = request.post(url, data);\r\n break;\r\n\r\n case \'put\':\r\n response = request.put(url, data);\r\n break;\r\n\r\n default:\r\n throw \'Unsupported HTTP request method: \' + method;\r\n }\r\n\r\n Zabbix.log(4, \'[ \' + Media.name + \' Webhook ] Received response with status code \' +\r\n request.getStatus() + \'\\n\' + response);\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n Zabbix.log(4, \'[ \' + Media.name + \' Webhook ] Failed to parse response.\');\r\n response = null;\r\n }\r\n }\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n var message = \'Request failed with status code \' + request.getStatus();\r\n\r\n if (response !== null) {\r\n if (typeof response.errors === \'object\' && Object.keys(response.errors).length > 0) {\r\n message += \': \' + JSON.stringify(response.errors);\r\n }\r\n else if (typeof response.errorMessages === \'object\' && Object.keys(response.errorMessages).length > 0) {\r\n message += \': \' + JSON.stringify(response.errorMessages);\r\n }\r\n else if (typeof response.message === \'string\') {\r\n message += \': \' + response.message;\r\n }\r\n }\r\n\r\n throw message + \' Check debug log for more information.\';\r\n }\r\n\r\n return {\r\n status: request.getStatus(),\r\n response: response\r\n };\r\n }\r\n};\r\n\r\ntry {\r\n var result = {tags: {}},\r\n params = JSON.parse(value),\r\n media = {},\r\n fields = {},\r\n resp = {},\r\n required_params = [\r\n \'alert_subject\',\r\n \'alert_message\',\r\n \'event_id\',\r\n \'event_source\',\r\n \'event_value\',\r\n \'event_update_status\',\r\n \'topdesk_api\',\r\n \'topdesk_user\',\r\n \'topdesk_password\'\r\n ],\r\n severities = [\r\n \'not_classified\',\r\n \'information\',\r\n \'warning\',\r\n \'average\',\r\n \'high\',\r\n \'disaster\',\r\n \'resolved\',\r\n \'default\'\r\n ],\r\n priority;\r\n\r\n Object.keys(params)\r\n .forEach(function (key) {\r\n if (required_params.indexOf(key) !== -1 && params[key].trim() === \'\') {\r\n throw \'Parameter "\' + key + \'" cannot be empty.\';\r\n }\r\n if (key.startsWith(\'topdesk_\')) {\r\n media[key.substring(8)] = params[key];\r\n }\r\n });\r\n\r\n // Possible values of event_source:\r\n // 0 - Trigger, 1 - Discovery, 2 - Autoregistration, 3 - Internal.\r\n if ([0, 1, 2, 3].indexOf(parseInt(params.event_source)) === -1) {\r\n throw \'Incorrect "event_source" parameter given: "\' + params.event_source + \'".\\nMust be 0-3.\';\r\n }\r\n\r\n // Check event_value for trigger-based and internal events.\r\n // Possible values: 1 for problem, 0 for recovering\r\n if (params.event_value !== \'0\' && params.event_value !== \'1\'\r\n && (params.event_source === \'0\' || params.event_source === \'3\')) {\r\n throw \'Incorrect "event_value" parameter given: \' + params.event_value + \'\\nMust be 0 or 1.\';\r\n }\r\n\r\n // Check event_update_status only for trigger-based events.\r\n // Possible values: 0 - Webhook was called because of problem/recovery event, 1 - Update operation.\r\n if (params.event_source === \'0\' && params.event_update_status !== \'0\' && params.event_update_status !== \'1\') {\r\n throw \'Incorrect "event_update_status" parameter given: \' + params.event_update_status + \'\\nMust be 0 or 1.\';\r\n }\r\n\r\n // Check event_id for a numeric value.\r\n if (isNaN(parseInt(params.event_id)) || params.event_id < 1) {\r\n throw \'Incorrect "event_id" parameter given: \' + params.event_id + \'\\nMust be a positive number.\';\r\n }\r\n\r\n if ((params.event_source === \'1\' || params.event_source === \'2\') && params.event_value === \'0\') {\r\n throw \'Recovery operations are supported only for Trigger and Internal actions.\';\r\n }\r\n\r\n if ([0, 1, 2, 3, 4, 5].indexOf(parseInt(params.event_nseverity)) === -1) {\r\n params.event_nseverity = \'7\';\r\n }\r\n\r\n if (params.event_value === \'0\') {\r\n params.event_nseverity = \'6\';\r\n }\r\n\r\n priority = params[\'severity_\' + severities[params.event_nseverity]];\r\n params.zbxurl = params.zbxurl + (params.zbxurl.endsWith(\'/\') ? \'\' : \'/\');\r\n\r\n Media.name = \'TOPdesk\';\r\n Media.setParams(media);\r\n Media.params.token = \'Basic \' + btoa(Media.params.user + \':\' + Media.params.password);\r\n Media.setProxy(params.HTTPProxy);\r\n\r\n // Create an issue.\r\n // Numeric value of the event that triggered an action (1 for problem, 0 for recovering).\r\n // Numeric value of the problem update status. Possible values:\r\n // 0 - Webhook was called because of problem/recovery event, 1 - Update operation.\r\n if ((params.event_source == 0 && params.event_value == 1 && params.event_update_status == 0)\r\n || (params.event_source == 3 && params.event_value == 1)\r\n || params.event_source == 1 || params.event_source == 2) {\r\n Zabbix.log(4, \'[ \' + Media.name + \' Webhook ] Request of the ticket creating.\');\r\n fields.caller = {dynamicName: \'Zabbix\'};\r\n fields.briefDescription = params.alert_subject;\r\n fields.request = params.alert_message.replace(/\\n/g, \'
\');\r\n fields.priority = {name: priority};\r\n fields.processingStatus = {name: Media.params.status};\r\n fields.externalNumber = params.event_id;\r\n fields.request += \'
\' + params.zbxurl;\r\n\r\n if (params.event_source === \'0\') {\r\n fields.request += \'tr_events.php?triggerid=\' + params.trigger_id + \'&eventid=\' + params.event_id;\r\n }\r\n\r\n resp = Media.request(\'post\', \'tas/api/incidents\', fields);\r\n if (typeof resp.response !== \'object\' || typeof resp.response.id === \'undefined\') {\r\n throw \'Cannot create \' + Media.name + \' issue. Check debug log for more information.\';\r\n }\r\n\r\n if (params.event_source == 0 && params.event_value == 1 && params.event_update_status == 0) {\r\n result.tags.__zbx_tpd_issuekey = resp.response.number;\r\n result.tags.__zbx_tpd_issuelink = Media.params.api +\r\n \'tas/secure/incident?action=show&unid=\' + resp.response.id;\r\n }\r\n }\r\n // Update a created issue.\r\n else {\r\n if (params.event_source == 3 && params.event_value == 0) {\r\n throw \'Internal event recovery actions are not supported.\';\r\n }\r\n\r\n Zabbix.log(4, \'[ \' + Media.name + \' Webhook ] Request of the ticket updating.\');\r\n fields.action = params.alert_message.replace(/\\n/g, \'
\');\r\n\r\n resp = Media.request(\'put\', \'tas/api/incidents/number/\' + Media.params.issue_key, fields);\r\n if (typeof resp.response !== \'object\' || typeof resp.response.id === \'undefined\'\r\n || resp.response.number !== Media.params.issue_key) {\r\n throw \'Cannot update \' + Media.name + \' issue. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n return JSON.stringify(result);\r\n}\r\ncatch (error) {\r\n Zabbix.log(3, \'[ \' + Media.name + \' Webhook ] ERROR: \' + error);\r\n throw \'Sending failed: \' + error;\r\n}','30s','1','1','{EVENT.TAGS.__zbx_tpd_issuelink}','TOPdesk: {EVENT.TAGS.__zbx_tpd_issuekey}','Please refer to https://developers.topdesk.com/documentation/index.html and https://www.zabbix.com/documentation/7.4/manual/config/notifications/media/webhook#example_scripts.\r\n \r\nSet global macro {$ZABBIX.URL} with your Zabbix server URL.\r\nAdd a dedicated user with the media type "TOPdesk".\r\nChange the values of the variables topdesk_api (URL), topdesk_password, topdesk_user. The topdesk_status is the default status for creating a new TOPdesk ticket.','0'),
('99','4','VictorOps','','','','','','','','25','0','0','0','0','1','3','10s','1','var VictorOps = {\r\n params: {},\r\n\r\n setParams: function (params) {\r\n if (typeof params !== \'object\') {\r\n return;\r\n }\r\n\r\n VictorOps.params = params;\r\n if (VictorOps.params.endpoint) {\r\n if (!VictorOps.params.endpoint.endsWith(\'/\')) {\r\n VictorOps.params.endpoint += \'/\';\r\n }\r\n\r\n if (typeof VictorOps.params.routing_key !== \'undefined\'\r\n && VictorOps.params.routing_key !== \'{ALERT.SENDTO}\'\r\n && VictorOps.params.routing_key !== \'Default\') {\r\n VictorOps.params.endpoint += VictorOps.params.routing_key;\r\n }\r\n }\r\n },\r\n\r\n setProxy: function (HTTPProxy) {\r\n VictorOps.HTTPProxy = HTTPProxy;\r\n },\r\n\r\n addFields: function (fields) {\r\n var data = {};\r\n\r\n if (typeof fields === \'object\') {\r\n Object.keys(fields)\r\n .forEach(function(field) {\r\n if (fields[field] === \'\') {\r\n Zabbix.log(4, \'[ VictorOps Webhook ] Field "\' + field +\r\n \'" can\\\'t be empty. The field ignored.\');\r\n }\r\n else {\r\n try {\r\n var parts = field.split(\':\'),\r\n prefix = parts[0].split(\'_\');\r\n\r\n if (typeof prefix[1] === \'undefined\'\r\n || (prefix[1] === \'p\' && params.event_value === \'1\'\r\n && (params.event_update_status === \'0\'\r\n || params.event_update_status === \'{EVENT.UPDATE.STATUS}\'))\r\n || (prefix[1] === \'r\' && params.event_value === \'0\'\r\n && (params.event_update_status === \'0\'\r\n || params.event_update_status === \'{EVENT.UPDATE.STATUS}\'))\r\n || (prefix[1] === \'u\' && params.event_update_status === \'1\')) {\r\n data[field.substring(field.indexOf(\':\') + 1)] = fields[field];\r\n }\r\n }\r\n catch (error) {\r\n Zabbix.log(4, \'[ VictorOps Webhook ] Can\\\'t parse field "\' + field +\r\n \'". The field ignored.\');\r\n }\r\n }\r\n });\r\n }\r\n\r\n return data;\r\n },\r\n\r\n request: function (data) {\r\n if (typeof VictorOps.params !== \'object\' || typeof VictorOps.params.endpoint === \'undefined\'\r\n || VictorOps.params.endpoint === \'\' ) {\r\n throw \'Required parameter is not set: "vops_endpoint".\';\r\n }\r\n\r\n var response,\r\n url = VictorOps.params.endpoint,\r\n request = new HttpRequest();\r\n\r\n request.addHeader(\'Content-Type: application/json\');\r\n\r\n if (typeof VictorOps.HTTPProxy !== \'undefined\' && VictorOps.HTTPProxy !== \'\') {\r\n request.setProxy(VictorOps.HTTPProxy);\r\n }\r\n\r\n if (typeof data !== \'undefined\') {\r\n data = JSON.stringify(data);\r\n }\r\n\r\n Zabbix.log(4, \'[ VictorOps Webhook ] Sending request: \' + url +\r\n ((typeof data === \'string\') ? (\'\\n\' + data) : \'\'));\r\n\r\n response = request.post(url, data);\r\n\r\n Zabbix.log(4, \'[ VictorOps Webhook ] Received response with status code \' +\r\n request.getStatus() + \'\\n\' + response);\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n Zabbix.log(4, \'[ VictorOps Webhook ] Failed to parse response received from VictorOps\');\r\n response = null;\r\n }\r\n }\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n var message = \'Request failed with status code \' + request.getStatus();\r\n\r\n if (response !== null && typeof response.messages !== \'undefined\') {\r\n message += \': \' + JSON.stringify(response.messages);\r\n }\r\n\r\n throw message + \'. Check debug log for more information.\';\r\n }\r\n\r\n return response;\r\n }\r\n};\r\n\r\ntry {\r\n var params = JSON.parse(value),\r\n fields = {},\r\n vops = {},\r\n required_params = [\'event_source\', \'event_value\', \'priority_update\'],\r\n severities = [\r\n {name: \'not_classified\', color: \'#97AAB3\'},\r\n {name: \'information\', color: \'#7499FF\'},\r\n {name: \'warning\', color: \'#FFC859\'},\r\n {name: \'average\', color: \'#FFA059\'},\r\n {name: \'high\', color: \'#E97659\'},\r\n {name: \'disaster\', color: \'#E45959\'},\r\n {name: \'resolved\', color: \'#009900\'},\r\n {name: \'default\', color: \'#000000\'}\r\n ];\r\n\r\n Object.keys(params)\r\n .forEach(function (key) {\r\n if (key.startsWith(\'vops_\')) {\r\n vops[key.substring(5)] = params[key];\r\n }\r\n else if (key.startsWith(\'field\')) {\r\n fields[key.substring(5)] = params[key];\r\n }\r\n else if (required_params.indexOf(key) !== -1 && params[key] === \'\') {\r\n throw \'Parameter "\' + key + \'" can\\\'t be empty.\';\r\n }\r\n });\r\n\r\n if ([0, 1, 2, 3].indexOf(parseInt(params.event_source)) === -1) {\r\n throw \'Incorrect "event_source" parameter given: \' + params.event_source + \'\\nMust be 0-3.\';\r\n }\r\n\r\n // Check {EVENT.VALUE} for trigger-based and internal events.\r\n if (params.event_value !== \'0\' && params.event_value !== \'1\'\r\n && (params.event_source === \'0\' || params.event_source === \'3\')) {\r\n throw \'Incorrect "event_value" parameter given: \' + params.event_value + \'\\nMust be 0 or 1.\';\r\n }\r\n\r\n // Check {EVENT.UPDATE.STATUS} only for trigger-based events.\r\n if (params.event_update_status !== \'0\' && params.event_update_status !== \'1\' && params.event_source === \'0\') {\r\n throw \'Incorrect "event_update_status" parameter given: \' + params.event_update_status + \'\\nMust be 0 or 1.\';\r\n }\r\n\r\n if ([0, 1, 2, 3, 4, 5].indexOf(parseInt(params.event_nseverity)) === -1) {\r\n params.event_nseverity = \'7\';\r\n }\r\n\r\n if (params.event_value === \'0\') {\r\n params.event_nseverity = \'6\';\r\n }\r\n\r\n if (params.event_update_status === \'1\') {\r\n fields[\':message_type\'] = params.priority_update;\r\n }\r\n else {\r\n fields[\':message_type\'] = params[\'priority_\' + severities[params.event_nseverity].name]\r\n || \'INFO\';\r\n }\r\n\r\n if (params.event_info && params.event_source === \'0\') {\r\n fields[\':event_info\'] = params.event_info;\r\n }\r\n\r\n VictorOps.setParams(vops);\r\n VictorOps.setProxy(params.HTTPProxy);\r\n VictorOps.request(VictorOps.addFields(fields));\r\n\r\n return \'OK\';\r\n}\r\ncatch (error) {\r\n Zabbix.log(3, \'[ VictorOps Webhook ] ERROR: \' + error);\r\n throw \'Sending failed: \' + error;\r\n}','30s','0','0','','','','0'),
('100','4','Zammad','','','','','','','','25','0','0','0','0','1','3','10s','1','const CLogger = function(serviceName) {\r\n this.serviceName = serviceName;\r\n this.INFO = 4\r\n this.WARN = 3\r\n this.ERROR = 2\r\n this.log = function(level, msg) {\r\n Zabbix.log(level, \'[\' + this.serviceName + \'] \' + msg);\r\n }\r\n}\r\n\r\nconst CWebhook = function(value) {\r\n try {\r\n params = JSON.parse(value);\r\n\r\n if ([\'0\', \'1\', \'2\', \'3\', \'4\'].indexOf(params.event_source) === -1) {\r\n throw \'Incorrect "event_source" parameter given: \' + params.event_source + \'.\\nMust be 0-4.\';\r\n }\r\n\r\n if ([\'0\', \'3\', \'4\'].indexOf(params.event_source) !== -1 && [\'0\', \'1\'].indexOf(params.event_value) === -1) {\r\n throw \'Incorrect "event_value" parameter given: \' + params.event_value + \'.\\nMust be 0 or 1.\';\r\n }\r\n\r\n if ([\'0\', \'3\', \'4\'].indexOf(params.event_source) !== -1) {\r\n if (params.event_source === \'1\' && [\'0\', \'1\', \'2\', \'3\'].indexOf(params.event_value) === -1) {\r\n throw \'Incorrect "event_value" parameter given: \' + params.event_value + \'.\\nMust be 0-3.\';\r\n }\r\n\r\n if (params.event_source === \'0\' && [\'0\', \'1\'].indexOf(params.event_update_status) === -1) {\r\n throw \'Incorrect "event_update_status" parameter given: \' + params.event_update_status + \'.\\nMust be 0 or 1.\';\r\n }\r\n\r\n if (params.event_source === \'4\') {\r\n if ([\'0\', \'1\', \'2\', \'3\', \'4\', \'5\'].indexOf(params.event_update_nseverity) !== -1 && params.event_update_nseverity != params.event_nseverity) {\r\n params.event_nseverity = params.event_update_nseverity;\r\n params.event_severity = params.event_update_severity;\r\n params.event_update_status = \'1\';\r\n }\r\n }\r\n }\r\n\r\n this.runCallback = function(name, params) {\r\n if (typeof this[name] === \'function\') {\r\n return this[name].apply(this, [params]);\r\n }\r\n }\r\n\r\n this.handleEvent = function(source, event) {\r\n const alert = { source: source, event: event };\r\n return [\r\n this.runCallback(\'on\' + source + event, alert),\r\n this.runCallback(\'on\' + event, alert),\r\n this.runCallback(\'onEvent\', alert)\r\n ];\r\n }\r\n\r\n this.handleEventless = function(source) {\r\n const alert = { source: source, event: null };\r\n return [\r\n this.runCallback(\'on\' + source, alert),\r\n this.runCallback(\'onEvent\', alert)\r\n ];\r\n }\r\n\r\n this.run = function() {\r\n var results = [];\r\n if (typeof this.httpProxy === \'string\' && this.httpProxy.trim() !== \'\') {\r\n this.request.setProxy(this.httpProxy);\r\n }\r\n const types = { \'0\': \'Trigger\', \'1\': \'Discovery\', \'2\': \'Autoreg\', \'3\': \'Internal\', \'4\': \'Service\' };\r\n\r\n if ([\'0\', \'3\', \'4\'].indexOf(this.params.event_source) !== -1) {\r\n var event = (this.params.event_update_status === \'1\')\r\n ? \'Update\'\r\n : ((this.params.event_value === \'1\') ? \'Problem\' : \'Resolve\');\r\n\r\n results = this.handleEvent(types[this.params.event_source], event);\r\n }\r\n else if (typeof types[this.params.event_source] !== \'undefined\') {\r\n results = this.handleEventless(types[this.params.event_source]);\r\n }\r\n else {\r\n throw \'Unexpected "event_source": \' + this.params.event_source;\r\n }\r\n\r\n for (idx in results) {\r\n if (typeof results[idx] !== \'undefined\') {\r\n return JSON.stringify(results[idx]);\r\n }\r\n }\r\n }\r\n this.httpProxy = params.http_proxy;\r\n this.params = params;\r\n this.runCallback(\'onCheckParams\', {});\r\n } catch (error) {\r\n throw \'Webhook processing failed: \' + error;\r\n }\r\n}\r\n\r\nconst CParamValidator = {\r\n\r\n isType: function(value, type) {\r\n if (type === \'array\') {\r\n return Array.isArray(value);\r\n }\r\n if (type === \'integer\') {\r\n return CParamValidator.isInteger(value);\r\n }\r\n if (type === \'float\') {\r\n return CParamValidator.isFloat(value);\r\n }\r\n\r\n return (typeof value === type);\r\n },\r\n\r\n isInteger: function(value) {\r\n if (!CParamValidator.ifMatch(value, /^-?\\d+$/)) {\r\n return false;\r\n }\r\n\r\n return !isNaN(parseInt(value));\r\n },\r\n\r\n isFloat: function(value) {\r\n if (!CParamValidator.ifMatch(value, /^-?\\d+\\.\\d+$/)) {\r\n return false;\r\n }\r\n\r\n return !isNaN(parseFloat(value));\r\n },\r\n\r\n isDefined: function(value) {\r\n return !CParamValidator.isType(value, \'undefined\');\r\n },\r\n\r\n isEmpty: function(value) {\r\n if (!CParamValidator.isType(value, \'string\')) {\r\n throw \'Value "\' + value + \'" must be a string to be checked for emptiness.\';\r\n }\r\n\r\n return (value.trim() === \'\');\r\n },\r\n\r\n isMacroSet: function(value, macro) {\r\n if (CParamValidator.isDefined(macro)) {\r\n return !(CParamValidator.ifMatch(value, \'^\\{\' + macro + \'\\}$\'))\r\n }\r\n\r\n return !(CParamValidator.ifMatch(value, \'^\\{[$#]{0,1}[A-Z_\\.]+[\\:]{0,1}["]{0,1}.*["]{0,1}\\}$\') || value === \'*UNKNOWN*\')\r\n },\r\n\r\n withinRange: function(value, min, max) {\r\n if (!CParamValidator.isType(value, \'number\')) {\r\n throw \'Value "\' + value + \'" must be a number to be checked for range.\';\r\n }\r\n if (value < ((CParamValidator.isDefined(min)) ? min : value)\r\n || value > ((CParamValidator.isDefined(max)) ? max : value)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n\r\n inArray: function(value, array) {\r\n if (!CParamValidator.isType(array, \'array\')) {\r\n throw \'The array must be an array to check the value for existing in it.\';\r\n }\r\n\r\n return (array.indexOf((typeof value === \'string\') ? value.toLowerCase() : value) !== -1);\r\n },\r\n\r\n ifMatch: function(value, regex) {\r\n return (new RegExp(regex)).test(value);\r\n },\r\n\r\n match: function(value, regex) {\r\n if (!CParamValidator.isType(value, \'string\')) {\r\n throw \'Value "\' + value + \'" must be a string to be matched with the regular expression.\';\r\n }\r\n\r\n return value.match(new RegExp(regex));\r\n },\r\n\r\n checkURL: function(value) {\r\n if (CParamValidator.isEmpty(value)) {\r\n throw \'URL value "\' + value + \'" must be a non-empty string.\';\r\n }\r\n if (!CParamValidator.ifMatch(value, \'^(http|https):\\/\\/.+\')) {\r\n throw \'URL value "\' + value + \'" must contain a schema.\';\r\n }\r\n\r\n return value.endsWith(\'/\') ? value.slice(0, -1) : value;\r\n },\r\n\r\n check: function(key, rule, params) {\r\n if (!CParamValidator.isDefined(rule.type)) {\r\n throw \'Mandatory attribute "type" has not been defined for parameter "\' + key + \'".\';\r\n }\r\n if (!CParamValidator.isDefined(params[key])) {\r\n throw \'Checked parameter "\' + key + \'" was not found in the list of input parameters.\';\r\n }\r\n var value = params[key],\r\n error_message = null;\r\n switch (rule.type) {\r\n case \'string\':\r\n if (!CParamValidator.isType(value, \'string\')) {\r\n throw \'Value "\' + key + \'" must be a string.\';\r\n }\r\n if (CParamValidator.isEmpty(value)) {\r\n error_message = \'Value "\' + key + \'" must be a non-empty string\';\r\n break;\r\n }\r\n if (CParamValidator.isDefined(rule.len) && value.length < rule.len) {\r\n error_message = \'Value "\' + key + \'" must be a string with a length > \' + rule.len;\r\n }\r\n if (CParamValidator.isDefined(rule.regex) && !CParamValidator.ifMatch(value, rule.regex)) {\r\n error_message = \'Value "\' + key + \'" must match the regular expression "\' + rule.regex + \'"\';\r\n }\r\n if (CParamValidator.isDefined(rule.url) && rule.url === true) {\r\n value = CParamValidator.checkURL(value);\r\n }\r\n break;\r\n case \'integer\':\r\n if (!CParamValidator.isInteger(value)) {\r\n error_message = \'Value "\' + key + \'" must be an integer\';\r\n break;\r\n }\r\n value = parseInt(value);\r\n break;\r\n case \'float\':\r\n if (!CParamValidator.isFloat(value)) {\r\n error_message = \'Value "\' + key + \'" must be a floating-point number\';\r\n break;\r\n }\r\n value = parseFloat(value);\r\n break;\r\n case \'boolean\':\r\n if (CParamValidator.inArray(value, [\'1\', \'true\', \'yes\', \'on\'])) {\r\n value = true;\r\n }\r\n else if (CParamValidator.inArray(value, [\'0\', \'false\', \'no\', \'off\'])) {\r\n value = false;\r\n }\r\n else {\r\n error_message = \'Value "\' + key + \'" must be a boolean-like.\';\r\n }\r\n break;\r\n case \'array\':\r\n try {\r\n value = JSON.parse(value);\r\n } catch (error) {\r\n throw \'Value "\' + key + \'" contains invalid JSON.\';\r\n }\r\n if (!CParamValidator.isType(value, \'array\')) {\r\n error_message = \'Value "\' + key + \'" must be an array.\';\r\n }\r\n if (CParamValidator.isDefined(rule.tags) && rule.tags === true) {\r\n value = value.reduce(function(acc, obj) {\r\n acc[obj.tag] = obj.value || null;\r\n return acc;\r\n }, {});\r\n }\r\n break;\r\n case \'object\':\r\n value = JSON.parse(value);\r\n if (!CParamValidator.isType(value, \'object\')) {\r\n error_message = \'Value "\' + key + \'" must be an object.\';\r\n }\r\n break;\r\n default:\r\n throw \'Unexpected attribute type "\' + rule.type + \'" for value "\' + key + \'". Available: \' +\r\n [\'integer\', \'float\', \'string\', \'boolean\', \'array\', \'object\'].join(\', \');\r\n }\r\n params[key] = value;\r\n if (CParamValidator.inArray(rule.type, [\'integer\', \'float\']) && error_message === null && (CParamValidator.isDefined(rule.min)\r\n || CParamValidator.isDefined(rule.max)) && !CParamValidator.withinRange(value, rule.min, rule.max)) {\r\n error_message = \'Value "\' + key + \'" must be a number \' + ((CParamValidator.isDefined(rule.min) && CParamValidator.isDefined(rule.max))\r\n ? (rule.min + \'..\' + rule.max) : ((CParamValidator.isDefined(rule.min)) ? \'>\' + rule.min : \'<\' + rule.max));\r\n }\r\n else if (CParamValidator.isDefined(rule.array) && !CParamValidator.inArray(value, rule.array)) {\r\n error_message = \'Value "\' + key + \'" must be in the array \' + JSON.stringify(rule.array);\r\n }\r\n else if (CParamValidator.isDefined(rule.macro) && !CParamValidator.isMacroSet(value.toString(), rule.macro)) {\r\n error_message = \'The macro \' + ((CParamValidator.isDefined(rule.macro)) ? \'{\' + rule.macro + \'} \' : \' \') + \'is not set\';\r\n }\r\n if (error_message !== null) {\r\n if (CParamValidator.isDefined(rule.default) && CParamValidator.isType(rule.default, rule.type)) {\r\n params[key] = rule.default;\r\n }\r\n else {\r\n Zabbix.log(4, \'Default value for "\' + key + \'" must be a \' + rule.type + \'. Skipped.\');\r\n throw \'Incorrect value for variable "\' + key + \'". \' + error_message;\r\n }\r\n }\r\n\r\n return this;\r\n },\r\n\r\n validate: function(rules, params) {\r\n if (!CParamValidator.isType(params, \'object\') || CParamValidator.isType(params, \'array\')) {\r\n throw \'Incorrect parameters value. The value must be an object.\';\r\n }\r\n for (var key in rules) {\r\n CParamValidator.check(key, rules[key], params);\r\n }\r\n }\r\n}\r\n\r\nconst CHttpRequest = function(logger) {\r\n this.request = new HttpRequest();\r\n if (typeof logger !== \'object\' || logger === null) {\r\n this.logger = Zabbix;\r\n }\r\n else {\r\n this.logger = logger;\r\n }\r\n\r\n this.clearHeader = function() {\r\n this.request.clearHeader();\r\n }\r\n\r\n this.addHeaders = function(value) {\r\n var headers = [];\r\n\r\n if (typeof value === \'object\' && value !== null) {\r\n if (!Array.isArray(value)) {\r\n Object.keys(value).forEach(function(key) {\r\n headers.push(key + \': \' + value[key]);\r\n });\r\n }\r\n else {\r\n headers = value;\r\n }\r\n }\r\n else if (typeof value === \'string\') {\r\n value.split(\'\\r\\n\').forEach(function(header) {\r\n headers.push(header);\r\n });\r\n }\r\n\r\n for (var idx in headers) {\r\n this.request.addHeader(headers[idx]);\r\n }\r\n }\r\n\r\n this.setProxy = function(proxy) {\r\n this.request.setProxy(proxy);\r\n }\r\n\r\n this.plainRequest = function(method, url, data) {\r\n var resp = null;\r\n method = method.toLowerCase();\r\n this.logger.log(4, \'Sending \' + method + \' request:\' + JSON.stringify(data));\r\n if ([\'get\', \'post\', \'put\', \'patch\', \'delete\', \'trace\'].indexOf(method) !== -1) {\r\n resp = this.request[method](url, data);\r\n }\r\n else if ([\'connect\', \'head\', \'options\'].indexOf(method) !== -1) {\r\n resp = this.request[method](url);\r\n }\r\n else {\r\n throw \'Unexpected method. Method \' + method + \' is not supported.\';\r\n }\r\n this.logger.log(4, \'Response has been received: \' + resp);\r\n\r\n return resp;\r\n }\r\n\r\n this.jsonRequest = function(method, url, data) {\r\n this.addHeaders(\'Content-Type: application/json\');\r\n var resp = this.plainRequest(method, url, JSON.stringify(data));\r\n try {\r\n resp = JSON.parse(resp);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response: not well-formed JSON was received\';\r\n }\r\n\r\n return resp;\r\n }\r\n\r\n this.getStatus = function() {\r\n return this.request.getStatus();\r\n }\r\n}\r\n\r\nconst CWebhookHelper = {\r\n\r\n createProblemURL: function(event_source, zabbix_url, trigger_id, event_id) {\r\n if (event_source === \'0\') {\r\n return zabbix_url + \'/tr_events.php?triggerid=\' + trigger_id + \'&eventid=\' + event_id;\r\n } else if (event_source === \'4\') {\r\n return zabbix_url + \'/zabbix.php?action=service.list\';\r\n }\r\n\r\n return zabbix_url;\r\n },\r\n\r\n};\r\n\r\nvar ZABBIX_SEVERITY_MAP = ["not_classified", "information", "warning", "average", "high", "disaster"],\r\n serviceLogName = \'Zammad Webhook\',\r\n Logger = new CLogger(serviceLogName),\r\n Zammad = CWebhook;\r\n\r\nZammad.prototype.onCheckParams = function () {\r\n CParamValidator.validate({\r\n alert_message: {type: \'string\'},\r\n alert_subject: {type: \'string\'},\r\n zammad_url: {type: \'string\', url: true},\r\n zammad_customer: {type: \'string\'},\r\n zammad_access_token: {type: \'string\'},\r\n zammad_group: {type: \'string\'},\r\n zammad_enable_tags: {type: \'boolean\', default: false},\r\n event_nseverity: {type: \'integer\', default: -1},\r\n zabbix_url: {type: \'string\', url: true}\r\n }, this.params);\r\n\r\n if (CParamValidator.inArray(this.params.event_source, [\'0\', \'3\', \'4\'])) {\r\n CParamValidator.validate({\r\n event_tags: {type: \'array\', macro: \'EVENT.TAGSJSON\', tags: true, default: {}}\r\n }, this.params);\r\n }\r\n\r\n var priority;\r\n\r\n if (this.params.event_nseverity >= 0 && this.params.event_nseverity < ZABBIX_SEVERITY_MAP.length) {\r\n priority = this.params[\'severity_\' + ZABBIX_SEVERITY_MAP[this.params.event_nseverity]];\r\n }\r\n this.priority = (CParamValidator.isDefined(priority)) ? priority.trim() : null;\r\n\r\n this.result = {tags: {}};\r\n};\r\n\r\nZammad.prototype.onProblem = function (alert) {\r\n if (CParamValidator.isDefined(this.params.event_tags[\'__zbx_zammad_ticket_id\'])) {\r\n return this.onUpdate(alert);\r\n }\r\n\r\n Logger.log(Logger.INFO, \'Source: \' + alert.source + \'; Event: \' + alert.event);\r\n\r\n this.request.addHeaders(\'Authorization: Token token=\' + this.params.zammad_access_token);\r\n\r\n var payload_data = {\r\n title: this.params.alert_subject,\r\n group: this.params.zammad_group,\r\n article: {\r\n subject: this.params.alert_subject,\r\n body: this.params.alert_message + \'\\n\' + CWebhookHelper.createProblemURL(this.params.event_source, this.params.zabbix_url, this.params.trigger_id, this.params.event_id),\r\n type: \'note\',\r\n internal: false\r\n },\r\n customer: this.params.zammad_customer\r\n };\r\n\r\n if (this.priority) {\r\n payload_data.priority_id = this.priority;\r\n }\r\n\r\n const response = this.request.jsonRequest(\'POST\', this.params.zammad_url + \'/api/v1/tickets\', payload_data);\r\n\r\n if (this.request.getStatus() != 201 || !CParamValidator.isDefined(response.id)) {\r\n var message = \'Cannot create Zammad ticket. Request failed with status code \' + this.request.getStatus();\r\n\r\n if (CParamValidator.isDefined(response.error) && Object.keys(response.error).length > 0) {\r\n message += \': \' + response.error;\r\n }\r\n\r\n throw message + \' Check debug log for more information.\';\r\n }\r\n\r\n this.result.tags = {\r\n __zbx_zammad_ticket_id: response.id,\r\n __zbx_zammad_ticketlink: this.params.zammad_url + \'/#ticket/zoom/\' + response.id\r\n };\r\n\r\n if (this.params.zammad_enable_tags && Object.keys(this.params.event_tags).length > 0 && CParamValidator.inArray(this.params.event_source, [\'0\', \'3\', \'4\'])) {\r\n this.request.clearHeader();\r\n this.request.addHeaders({\r\n "Content-Type": "application/json",\r\n "Authorization": "Token token=" + this.params.zammad_access_token\r\n });\r\n\r\n payload_data = {\r\n item: \'\',\r\n object: \'Ticket\',\r\n o_id: response.id\r\n };\r\n\r\n try {\r\n for (var tag in this.params.event_tags) {\r\n payload_data.item = tag;\r\n\r\n if (this.params.event_tags[tag]) {\r\n payload_data.item += ": " + this.params.event_tags[tag];\r\n }\r\n\r\n this.request.plainRequest(\'POST\', this.params.zammad_url + \'/api/v1/tags/add\', JSON.stringify(payload_data));\r\n\r\n if (this.request.getStatus() != 201) {\r\n Logger.log(Logger.INFO, \'Failed to set tag: \' + tag);\r\n }\r\n }\r\n }\r\n catch (error) {\r\n Logger.log(Logger.INFO, \'Failed to add ticket tags: \' + error);\r\n }\r\n }\r\n\r\n return this.result;\r\n}\r\n\r\nZammad.prototype.onUpdate = function (alert) {\r\n Logger.log(Logger.INFO, \'Source: \' + alert.source + \'; Event: \' + alert.event);\r\n\r\n if (!CParamValidator.isDefined(this.params.event_tags[\'__zbx_zammad_ticket_id\'])) {\r\n throw "Failed to update the existing ticket: no ticket ID was received."\r\n }\r\n\r\n\r\n this.request.addHeaders(\'Authorization: Token token=\' + this.params.zammad_access_token);\r\n\r\n const payload_data = {\r\n ticket_id: this.params.event_tags[\'__zbx_zammad_ticket_id\'],\r\n subject: this.params.alert_subject,\r\n body: this.params.alert_message,\r\n type: \'note\',\r\n internal: false\r\n };\r\n\r\n const response = this.request.jsonRequest(\'POST\', this.params.zammad_url + \'/api/v1/ticket_articles\', payload_data);\r\n\r\n if (this.request.getStatus() != 201 || !CParamValidator.isDefined(response.id)) {\r\n var message = \'Cannot update Zammad ticket. Request failed with status code \' + this.request.getStatus();\r\n\r\n if (CParamValidator.isDefined(response.error) && Object.keys(response.error).length > 0) {\r\n message += \': \' + response.error;\r\n }\r\n\r\n throw message + \' Check debug log for more information.\';\r\n }\r\n\r\n return this.result;\r\n}\r\n\r\nZammad.prototype.onResolve = function (alert) {\r\n return this.onUpdate(alert);\r\n}\r\n\r\nZammad.prototype.onDiscovery = function (alert) {\r\n return this.onProblem(alert);\r\n}\r\n\r\nZammad.prototype.onAutoreg = function (alert) {\r\n return this.onProblem(alert);\r\n}\r\n\r\ntry {\r\n var hook = new Zammad(value);\r\n hook.request = new CHttpRequest(Logger);\r\n return hook.run();\r\n}\r\ncatch (error) {\r\n Logger.log(Logger.WARN, \'notification failed: \' + error);\r\n throw \'Sending failed: \' + error;\r\n}','30s','1','1','{EVENT.TAGS.__zbx_zammad_ticketlink}','Zammad: Ticket #{EVENT.TAGS.__zbx_zammad_ticket_id}','This media type integrates your Zabbix installation with your Zammad installation using the Zabbix webhook feature.\r\n\r\nZammad configuration:\r\n\r\n1. Check that API Token Access is enabled in "Settings" → "System" → "API".\r\n2. Open the profile settings of the customer user and create a new Personal User Token.\r\n3. Set the "ticket.agent" permission for the token and press Create.\r\n4. Copy and save the created token somewhere, as it will be shown only once for security reasons.\r\n\r\nZabbix configuration:\r\n\r\n1. Before you can start using Zammad webhook, set up the global macro "{$ZABBIX.URL}":\r\n- In the Zabbix web interface, go to "Administration" → "Macros" section in the dropdown menu in the top left corner.\r\n- Set up the global macro "{$ZABBIX.URL}" which will contain the URL to the Zabbix frontend. The URL should be either an IP address, a fully qualified domain name, or localhost.\r\n- Specifying a protocol is mandatory, whereas the port is optional. Depending on the web server configuration you might also need to append "/zabbix" to the end of URL. Good examples:\r\n - http://zabbix.com\r\n - https://zabbix.lan/zabbix\r\n - http://server.zabbix.lan/\r\n - http://localhost\r\n - http://127.0.0.1:8080\r\n- Bad examples:\r\n - zabbix.com\r\n - http://zabbix/\r\n\r\n2. Set the following webhook parameters:\r\n- zammad_access_token - the access token that you created during Zammad configuration\r\n- zammad_url - the frontend URL of your Zammad installation\r\n- zammad_customer - the Zammad user email\r\n- zammad_enable_tags - if you want to add the Zabbix event tags to the Zammad tickets that are created, you can set it to one of the following values: "1", "true", "yes", "on" (note, that if the tag support is enabled, each tag is sent via separate HTTP request and created tags will also remain in the Zammad when tickets are closed/deleted)\r\n- zammad_group - if needed, you can change the Zammad user group\r\n\r\n3. If you want to prioritize issues according to the severity values in Zabbix, you can define mapping parameters (create them as additional webhook parameters):\r\n- severity_ - the Zammad priority ID ( in the parameter name can be one of the following values: "not_classified", "information", "warning", "average", "high", "disaster")\r\n\r\n4. Create a Zabbix user and add media:\r\n- If you want to create a new user, go to the "Users" → "Users" section, click the "Create user" button in the top right corner. In the "User" tab, fill in all required fields (marked with red asterisks).\r\n- In the "Media" tab, add a new media and select "Zammad" type from the drop-down list. Add any value to the "Send to" field: it is required to be filled, but it is not used.\r\n- Make sure this user has access to all hosts for which you would like problem notifications to be sent to Zammad.\r\n\r\n5. Great! You can now start using this media type in actions and create tickets!\r\n\r\nYou can find the latest version of this media and additional information in the official Zabbix repository:\r\nhttps://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/zammad','0'),
('101','4','Zendesk','','','','','','','','25','0','0','0','0','1','3','10s','1','var Zendesk = {\r\n params: {},\r\n\r\n setParams: function (params) {\r\n if (typeof params !== \'object\') {\r\n return;\r\n }\r\n\r\n Zendesk.params = params;\r\n if (typeof Zendesk.params.url === \'string\') {\r\n if (!Zendesk.params.url.endsWith(\'/\')) {\r\n Zendesk.params.url += \'/\';\r\n }\r\n Zendesk.params.url += \'api/v2/\';\r\n }\r\n },\r\n\r\n addCustomFields: function (data, fields) {\r\n if (typeof fields === \'object\' && Object.keys(fields).length) {\r\n var schema = Zendesk.getSchema(),\r\n arr = [],\r\n i,\r\n n;\r\n\r\n if (schema) {\r\n Object.keys(fields)\r\n .forEach(function(field) {\r\n for (i = 0, n = schema.ticket_fields.length; i < n; i++) {\r\n if (schema.ticket_fields[i].id == field\r\n && [\'text\', \'integer\', \'date\'].indexOf(schema.ticket_fields[i].type) !== -1){\r\n\r\n switch (schema.ticket_fields[i].type) {\r\n case \'integer\':\r\n fields[field] = parseInt(fields[field]);\r\n break;\r\n case \'date\':\r\n if (fields[field].match(/^\\d{4}[.-]\\d{2}[.-]\\d{2}$/) !== null) {\r\n fields[field] = fields[field].replace(/\\./g, \'-\');\r\n }\r\n else {\r\n fields[field] = \'\';\r\n }\r\n break;\r\n }\r\n\r\n arr.push({id: field, value: fields[field]});\r\n break;\r\n }\r\n }\r\n });\r\n\r\n if (arr.length) {\r\n data.ticket[\'custom_fields\'] = arr;\r\n }\r\n }\r\n else {\r\n Zabbix.log(4, \'[Zendesk Webhook] Failed to retrieve field schema.\');\r\n }\r\n }\r\n\r\n return data;\r\n },\r\n\r\n request: function (method, query, data) {\r\n [\'url\', \'token\', \'type\'].forEach(function (field) {\r\n if (typeof Zendesk.params !== \'object\' || typeof Zendesk.params[field] === \'undefined\') {\r\n throw \'Required Zendesk param is not set: \' + field + \'\\n\' + Zendesk.params[field];\r\n }\r\n });\r\n\r\n var response,\r\n url = Zendesk.params.url + query,\r\n request = new HttpRequest();\r\n\r\n if (typeof Zendesk.HTTPProxy === \'string\' && Zendesk.HTTPProxy.trim() !== \'\') {\r\n request.setProxy(Zendesk.HTTPProxy);\r\n }\r\n\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Authorization: Basic \' + btoa(Zendesk.params.token));\r\n\r\n if (typeof data !== \'undefined\') {\r\n data = JSON.stringify(data);\r\n }\r\n\r\n Zabbix.log(4, \'[Zendesk Webhook] Sending request: \' + url + ((typeof data === \'string\') ? (\' \' + data) : \'\'));\r\n\r\n switch (method) {\r\n case \'get\':\r\n response = request.get(url, data);\r\n break;\r\n\r\n case \'post\':\r\n response = request.post(url, data);\r\n break;\r\n\r\n case \'put\':\r\n response = request.put(url, data);\r\n break;\r\n\r\n default:\r\n throw \'Unsupported HTTP request method: \' + method;\r\n }\r\n\r\n Zabbix.log(4, \'[Zendesk Webhook] Received response with status code \' + request.getStatus() + \'. \' + response);\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n Zabbix.log(4, \'[Zendesk Webhook] Failed to parse response received from Zendesk.\');\r\n }\r\n }\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n var message = \'Request failed with status code \' + request.getStatus();\r\n\r\n if (response !== null && typeof response.error !== \'undefined\'\r\n && Object.keys(response.error).length > 0) {\r\n message += \': \' + JSON.stringify(response.error);\r\n }\r\n else if (response !== null && typeof response.description !== \'undefined\'\r\n && Object.keys(response.description).length > 0) {\r\n message += \': \' + JSON.stringify(response.description);\r\n }\r\n else {\r\n message += \'. \' + response;\r\n }\r\n throw message + \'. Check debug log for more information.\';\r\n }\r\n\r\n return {\r\n status: request.getStatus(),\r\n response: response\r\n };\r\n },\r\n\r\n getSchema: function() {\r\n var result = Zendesk.request(\'get\', \'ticket_fields.json\');\r\n\r\n return result.response;\r\n },\r\n\r\n createIssue: function(data, fields) {\r\n var result = Zendesk.request(\'post\', \'tickets.json\', Zendesk.addCustomFields(data, fields));\r\n\r\n if (typeof result.response !== \'object\' || typeof result.response.ticket.id === \'undefined\'\r\n || result.status != 201) {\r\n throw \'Cannot create Zendesk issue. Check debug log for more information.\';\r\n }\r\n\r\n return result.response.ticket.id;\r\n },\r\n\r\n updateIssue: function(data, fields) {\r\n Zendesk.request(\'put\', \'tickets/\' + Zendesk.params.issue_key + \'.json\', Zendesk.addCustomFields(data, fields));\r\n }\r\n};\r\n\r\ntry {\r\n var params = JSON.parse(value),\r\n fields = {},\r\n zendesk = {},\r\n update = {},\r\n data = {},\r\n result = {tags: {}},\r\n required_params = [\r\n \'alert_subject\',\r\n \'alert_message\',\r\n \'event_id\',\r\n \'event_source\',\r\n \'event_value\',\r\n \'event_update_status\'\r\n ],\r\n severities = [\r\n {name: \'not_classified\', color: \'#97AAB3\'},\r\n {name: \'information\', color: \'#7499FF\'},\r\n {name: \'warning\', color: \'#FFC859\'},\r\n {name: \'average\', color: \'#FFA059\'},\r\n {name: \'high\', color: \'#E97659\'},\r\n {name: \'disaster\', color: \'#E45959\'},\r\n {name: \'resolved\', color: \'#009900\'},\r\n {name: \'default\', color: \'#000000\'}\r\n ],\r\n priority;\r\n\r\n Object.keys(params)\r\n .forEach(function (key) {\r\n if (key.startsWith(\'zendesk_\')) {\r\n zendesk[key.substring(8)] = params[key];\r\n }\r\n else if (key.startsWith(\'customfield_\')) {\r\n fields[key.substring(12)] = params[key];\r\n }\r\n else if (key.startsWith(\'event_update_\')) {\r\n update[key.substring(13)] = params[key];\r\n }\r\n else if (required_params.indexOf(key) !== -1 && params[key].trim() === \'\') {\r\n throw \'Parameter \' + key + \' cannot be empty.\';\r\n }\r\n });\r\n\r\n // Possible values: question, incident, problems, task\r\n if ([\'question\', \'incident\', \'problem\', \'task\'].indexOf(params.zendesk_type) === -1) {\r\n throw \'Incorrect "zendesk_type" parameter given: \' + params.zendesk_type +\r\n \'\\nMust be one of question, incident, problem, task.\';\r\n }\r\n\r\n // Possible values: 0 - Trigger, 1 - Discovery, 2 - Autoregistration, 3 - Internal.\r\n if ([0, 1, 2, 3].indexOf(parseInt(params.event_source)) === -1) {\r\n throw \'Incorrect "event_source" parameter given: \' + params.event_source + \'\\nMust be 0-3.\';\r\n }\r\n\r\n // Check {EVENT.VALUE} for trigger-based and internal events.\r\n // Possible values: 1 for problem, 0 for recovering\r\n if (params.event_value !== \'0\' && params.event_value !== \'1\'\r\n && (params.event_source === \'0\' || params.event_source === \'3\')) {\r\n throw \'Incorrect "event_value" parameter given: \' + params.event_value + \'\\nMust be 0 or 1.\';\r\n }\r\n\r\n // Check {EVENT.UPDATE.STATUS} only for trigger-based events.\r\n // Possible values: 0 - Webhook was called because of problem/recovery event, 1 - Update operation.\r\n if (params.event_source === \'0\' && params.event_update_status !== \'0\' && params.event_update_status !== \'1\') {\r\n throw \'Incorrect "event_update_status" parameter given: \' + params.event_update_status + \'\\nMust be 0 or 1.\';\r\n }\r\n\r\n if (params.event_source !== \'0\' && params.event_value === \'0\') {\r\n throw \'Recovery operations are supported only for trigger-based actions.\';\r\n }\r\n\r\n // Zendesk_issue_key must be a positive integer if an update action is being performed.\r\n if (params.event_source === \'0\' && ((params.event_value === \'1\' && params.event_update_status === \'1\')\r\n || (params.event_value === \'0\' && (params.event_update_status === \'0\' || params.event_update_status === \'1\')))\r\n && (isNaN(parseInt(params.zendesk_issue_key)) || parseInt(params.zendesk_issue_key) < 1 )) {\r\n throw \'Incorrect "zendesk_issue_key" parameter given: \' + params.zendesk_issue_key +\r\n \'\\nMust be positive integer.\';\r\n }\r\n\r\n if ([0, 1, 2, 3, 4, 5].indexOf(parseInt(params.event_nseverity)) === -1) {\r\n params.event_nseverity = \'7\';\r\n }\r\n\r\n if (params.event_value === \'0\') {\r\n params.event_nseverity = \'6\';\r\n }\r\n\r\n priority = params[\'severity_\' + severities[params.event_nseverity].name] || severities[7].name;\r\n\r\n Zendesk.setParams(zendesk);\r\n Zendesk.HTTPProxy = params.HTTPProxy;\r\n\r\n // Create issue for non trigger-based events.\r\n if (params.event_source !== \'0\' && params.event_value !== \'0\') {\r\n data = {\r\n ticket: {\r\n external_id: params.event_id,\r\n type: Zendesk.params.type,\r\n status: \'new\',\r\n subject: params.alert_subject,\r\n comment: {\r\n body: params.alert_message,\r\n public: \'false\'\r\n },\r\n priority: priority,\r\n tags: params.event_tags\r\n }\r\n };\r\n\r\n Zendesk.createIssue(data, fields);\r\n }\r\n // Create issue for trigger-based events.\r\n else if (params.event_value === \'1\' && update.status === \'0\') {\r\n data = {\r\n ticket: {\r\n external_id: params.event_id,\r\n type: Zendesk.params.type,\r\n status: \'new\',\r\n subject: params.alert_subject,\r\n comment: {\r\n body: params.zbxurl + (params.zbxurl.endsWith(\'/\') ? \'\' : \'/\') + \'tr_events.php?triggerid=\' +\r\n params.trigger_id + \'&eventid=\' + params.event_id + \'\\n\' + params.alert_message,\r\n public: \'false\'\r\n },\r\n priority: priority,\r\n tags: params.event_tags\r\n }\r\n };\r\n var key = Zendesk.createIssue(data, fields);\r\n\r\n result.tags.__zbx_zdk_issuekey = key;\r\n result.tags.__zbx_zdk_issuelink = params.zendesk_url +\r\n (params.zendesk_url.endsWith(\'/\') ? \'\' : \'/\') + \'agent/tickets/\' + key;\r\n }\r\n // Update created issue for trigger-based event.\r\n else {\r\n data = {\r\n ticket: {\r\n type: Zendesk.params.type,\r\n subject: params.alert_subject,\r\n comment: {\r\n body: params.alert_message,\r\n public: \'false\'\r\n }\r\n }\r\n };\r\n\r\n Zendesk.updateIssue(data, fields);\r\n }\r\n\r\n return JSON.stringify(result);\r\n}\r\ncatch (error) {\r\n Zabbix.log(3, \'[Zendesk Webhook] ERROR: \' + error);\r\n throw \'Sending failed: \' + error;\r\n}','30s','1','1','{EVENT.TAGS.__zbx_zdk_issuelink}','Zendesk: {EVENT.TAGS.__zbx_zdk_issuekey}','','0');
INSERT INTO `media_type_param` (`mediatype_paramid`,`mediatypeid`,`name`,`value`,`sortorder`) VALUES ('646','70','endpoint','','0'),
('647','70','flash','false','0'),
('648','70','password','','0'),
('649','70','ring','false','0'),
('650','70','send_to','{ALERT.SENDTO}','0'),
('651','70','telauto','true','0'),
('652','70','text','{ALERT.MESSAGE}','0'),
('653','70','username','','0'),
('654','71','alert_message','{ALERT.MESSAGE}','0'),
('655','71','alert_subject','{ALERT.SUBJECT}','0'),
('656','71','discord_endpoint','{ALERT.SENDTO}','0'),
('657','71','event_id','{EVENT.ID}','0'),
('658','71','event_nseverity','{EVENT.NSEVERITY}','0'),
('659','71','event_severity','{EVENT.SEVERITY}','0'),
('660','71','event_source','{EVENT.SOURCE}','0'),
('661','71','event_update_nseverity','{EVENT.UPDATE.NSEVERITY}','0'),
('662','71','event_update_severity','{EVENT.UPDATE.SEVERITY}','0'),
('663','71','event_update_status','{EVENT.UPDATE.STATUS}','0'),
('664','71','event_value','{EVENT.VALUE}','0'),
('665','71','trigger_id','{TRIGGER.ID}','0'),
('666','71','user_agent','ZabbixServer (zabbix.com, 7.4)','0'),
('667','71','zabbix_url','{$ZABBIX.URL}','0'),
('668','72','acknowledged','{EVENT.ACK.STATUS}','0'),
('669','72','endpoint','/endpoint','0'),
('670','72','event_date','{EVENT.DATE}','0'),
('671','72','event_id','{EVENT.ID}','0'),
('672','72','event_name','{EVENT.NAME}','0'),
('673','72','event_nseverity','{EVENT.NSEVERITY}','0'),
('674','72','event_object','{EVENT.OBJECT}','0'),
('675','72','event_severity','{EVENT.SEVERITY}','0'),
('676','72','event_source','{EVENT.SOURCE}','0'),
('677','72','event_tags','{EVENT.TAGSJSON}','0'),
('678','72','event_time','{EVENT.TIME}','0'),
('679','72','event_value','{EVENT.VALUE}','0'),
('680','72','host_groups','{TRIGGER.HOSTGROUP.NAME}','0'),
('681','72','host_host','{HOST.HOST}','0'),
('682','72','host_id','{HOST.ID}','0'),
('683','72','host_ip','{HOST.IP}','0'),
('684','72','host_port','{HOST.PORT}','0'),
('685','72','HTTPProxy','','0'),
('686','72','monitoring_source','Zabbix sever','0'),
('687','72','operation_data','{EVENT.OPDATA}','0'),
('688','72','send_to','{ALERT.SENDTO}','0'),
('689','72','subject','{ALERT.SUBJECT}','0'),
('690','72','trigger_description','{TRIGGER.DESCRIPTION}','0'),
('691','72','trigger_id','{TRIGGER.ID}','0'),
('692','72','trigger_name','{TRIGGER.NAME}','0'),
('693','73','event_source','{EVENT.SOURCE}','0'),
('694','73','event_update_status','{EVENT.UPDATE.STATUS}','0'),
('695','73','event_value','{EVENT.VALUE}','0'),
('696','73','express_message','{ALERT.MESSAGE}','0'),
('697','73','express_send_to','{ALERT.SENDTO}','0'),
('698','73','express_tags','{EVENT.TAGSJSON}','0'),
('699','73','express_token','','0'),
('700','73','express_url','','0'),
('701','74','alert_message','{ALERT.MESSAGE}','0'),
('702','74','alert_subject','{ALERT.SUBJECT}','0'),
('703','74','event_id','{EVENT.ID}','0'),
('704','74','event_nseverity','{EVENT.NSEVERITY}','0'),
('705','74','event_severity','{EVENT.SEVERITY}','0'),
('706','74','event_source','{EVENT.SOURCE}','0'),
('707','74','event_update_nseverity','{EVENT.UPDATE.NSEVERITY}','0'),
('708','74','event_update_severity','{EVENT.UPDATE.SEVERITY}','0'),
('709','74','event_update_status','{EVENT.UPDATE.STATUS}','0'),
('710','74','event_value','{EVENT.VALUE}','0'),
('711','74','github_api_version','2022-11-28','0'),
('712','74','github_issue_number','{EVENT.TAGS.__zbx_github_issue_number}','0'),
('713','74','github_repo','{ALERT.SENDTO}','0'),
('714','74','github_token','','0'),
('715','74','github_url','https://api.github.com','0'),
('716','74','github_user_agent','Zabbix/7.4','0'),
('717','74','github_zabbix_event_priority_label_prefix','Zabbix Event Priority:','0'),
('718','74','github_zabbix_event_source_label_prefix','Zabbix Event Source:','0'),
('719','74','github_zabbix_event_status_label_prefix','Zabbix Event Status:','0'),
('720','74','github_zabbix_generic_label','Zabbix GitHub Webhook','0'),
('721','74','trigger_id','{TRIGGER.ID}','0'),
('722','74','zabbix_url','{$ZABBIX.URL}','0'),
('723','75','alert_message','{ALERT.MESSAGE}','0'),
('724','75','alert_subject','{ALERT.SUBJECT}','0'),
('725','75','event_id','{EVENT.ID}','0'),
('726','75','event_nseverity','{EVENT.NSEVERITY}','0'),
('727','75','event_severity','{EVENT.SEVERITY}','0'),
('728','75','event_source','{EVENT.SOURCE}','0'),
('729','75','event_update_nseverity','{EVENT.UPDATE.NSEVERITY}','0'),
('730','75','event_update_severity','{EVENT.UPDATE.SEVERITY}','0'),
('731','75','event_update_status','{EVENT.UPDATE.STATUS}','0'),
('732','75','event_value','{EVENT.VALUE}','0'),
('733','75','glpi_problem_id','{EVENT.TAGS.__zbx_glpi_problem_id}','0'),
('735','75','glpi_url','','0'),
('736','75','trigger_id','{TRIGGER.ID}','0'),
('737','75','zabbix_url','{$ZABBIX.URL}','0'),
('738','76','.ILERT.ALERT.SOURCE.KEY','{ALERT.SENDTO}','0'),
('739','76','.ILERT.INCIDENT.SUMMARY','','0'),
('740','76','ALERT.MESSAGE','{ALERT.MESSAGE}','0'),
('741','76','ALERT.SUBJECT','{ALERT.SUBJECT}','0'),
('742','76','EVENT.ACK.STATUS','{EVENT.ACK.STATUS}','0'),
('743','76','EVENT.DATE','{EVENT.DATE}','0'),
('744','76','EVENT.ID','{EVENT.ID}','0'),
('745','76','EVENT.NAME','{EVENT.NAME}','0'),
('746','76','EVENT.NSEVERITY','{EVENT.NSEVERITY}','0'),
('747','76','EVENT.OPDATA','{EVENT.OPDATA}','0'),
('748','76','EVENT.RECOVERY.DATE','{EVENT.RECOVERY.DATE}','0'),
('749','76','EVENT.RECOVERY.TIME','{EVENT.RECOVERY.TIME}','0'),
('750','76','EVENT.RECOVERY.VALUE','{EVENT.RECOVERY.VALUE}','0'),
('751','76','EVENT.SEVERITY','{EVENT.SEVERITY}','0'),
('752','76','EVENT.TAGS','{EVENT.TAGS}','0'),
('753','76','EVENT.TIME','{EVENT.TIME}','0'),
('754','76','EVENT.UPDATE.ACTION','{EVENT.UPDATE.ACTION}','0'),
('755','76','EVENT.UPDATE.DATE','{EVENT.UPDATE.DATE}','0'),
('756','76','EVENT.UPDATE.MESSAGE','{EVENT.UPDATE.MESSAGE}','0'),
('757','76','EVENT.UPDATE.STATUS','{EVENT.UPDATE.STATUS}','0'),
('758','76','EVENT.UPDATE.TIME','{EVENT.UPDATE.TIME}','0'),
('759','76','EVENT.VALUE','{EVENT.VALUE}','0'),
('760','76','HOST.HOST','{HOST.HOST}','0'),
('761','76','HOST.IP','{HOST.IP}','0'),
('762','76','HOST.NAME','{HOST.NAME}','0'),
('763','76','ITEM.ID1','{ITEM.ID1}','0'),
('764','76','ITEM.ID2','{ITEM.ID2}','0'),
('765','76','ITEM.ID3','{ITEM.ID3}','0'),
('766','76','ITEM.ID4','{ITEM.ID4}','0'),
('767','76','ITEM.ID5','{ITEM.ID5}','0'),
('768','76','ITEM.NAME1','{ITEM.NAME1}','0'),
('769','76','ITEM.NAME2','{ITEM.NAME2}','0'),
('770','76','ITEM.NAME3','{ITEM.NAME3}','0'),
('771','76','ITEM.NAME4','{ITEM.NAME4}','0'),
('772','76','ITEM.NAME5','{ITEM.NAME5}','0'),
('773','76','TRIGGER.DESCRIPTION','{TRIGGER.DESCRIPTION}','0'),
('774','76','TRIGGER.ID','{TRIGGER.ID}','0'),
('775','76','TRIGGER.NAME','{TRIGGER.NAME}','0'),
('776','76','TRIGGER.SEVERITY','{TRIGGER.SEVERITY}','0'),
('777','76','TRIGGER.STATUS','{TRIGGER.STATUS}','0'),
('778','76','TRIGGER.URL','{TRIGGER.URL}','0'),
('779','76','TRIGGER.VALUE','{TRIGGER.VALUE}','0'),
('780','76','USER.FULLNAME','{USER.FULLNAME}','0'),
('781','76','ZABBIX.URL','{$ZABBIX.URL}','0'),
('782','77','alert_message','{ALERT.MESSAGE}','0'),
('783','77','alert_subject','{ALERT.SUBJECT}','0'),
('784','77','event_recovery_value','{EVENT.RECOVERY.VALUE}','0'),
('785','77','event_source','{EVENT.SOURCE}','0'),
('786','77','event_update_status','{EVENT.UPDATE.STATUS}','0'),
('787','77','event_value','{EVENT.VALUE}','0'),
('788','77','itop_api_version','1.3','0'),
('789','77','itop_class','UserRequest','0'),
('790','77','itop_comment','Created by Zabbix action {ACTION.NAME}','0'),
('791','77','itop_id','{EVENT.TAGS.__zbx_itop_id}','0'),
('792','77','itop_log','private_log','0'),
('793','77','itop_organization_id','','0'),
('794','77','itop_password','','0'),
('795','77','itop_url','','0'),
('796','77','itop_user','','0'),
('797','78','alert_message','{ALERT.MESSAGE}','0'),
('798','78','alert_subject','{ALERT.SUBJECT}','0'),
('799','78','event_id','{EVENT.ID}','0'),
('800','78','event_nseverity','{EVENT.NSEVERITY}','0'),
('801','78','event_recovery_value','{EVENT.RECOVERY.VALUE}','0'),
('802','78','event_severity','{EVENT.SEVERITY}','0'),
('803','78','event_source','{EVENT.SOURCE}','0'),
('804','78','event_tags_json','{EVENT.TAGSJSON}','0'),
('805','78','event_update_action','{EVENT.UPDATE.ACTION}','0'),
('806','78','event_update_message','{EVENT.UPDATE.MESSAGE}','0'),
('807','78','event_update_nseverity','{EVENT.UPDATE.NSEVERITY}','0'),
('808','78','event_update_severity','{EVENT.UPDATE.SEVERITY}','0'),
('809','78','event_update_status','{EVENT.UPDATE.STATUS}','0'),
('810','78','event_update_user','{USER.FULLNAME}','0'),
('811','78','event_value','{EVENT.VALUE}','0'),
('812','78','jira_issue_type','','0'),
('813','78','jira_password','','0'),
('814','78','jira_priority_autoregistration','Low','0'),
('815','78','jira_priority_discovery','Low','0'),
('816','78','jira_priority_internal','Low','0'),
('817','78','jira_project_key','','0'),
('818','78','jira_url','','0'),
('819','78','jira_user','','0'),
('820','78','severity_average','Medium','0'),
('821','78','severity_disaster','Highest','0'),
('822','78','severity_high','High','0'),
('823','78','severity_information','Lowest','0'),
('824','78','severity_not_classified','Lowest','0'),
('825','78','severity_warning','Low','0'),
('826','78','trigger_description','{TRIGGER.DESCRIPTION}','0'),
('827','78','trigger_id','{TRIGGER.ID}','0'),
('828','78','zabbix_url','{$ZABBIX.URL}','0'),
('829','79','alert_message','{ALERT.MESSAGE}','0'),
('830','79','alert_subject','{ALERT.SUBJECT}','0'),
('831','79','event_id','{EVENT.ID}','0'),
('832','79','event_nseverity','{EVENT.NSEVERITY}','0'),
('833','79','event_recovery_value','{EVENT.RECOVERY.VALUE}','0'),
('834','79','event_severity','{EVENT.SEVERITY}','0'),
('835','79','event_source','{EVENT.SOURCE}','0'),
('836','79','event_tags_json','{EVENT.TAGSJSON}','0'),
('837','79','event_update_nseverity','{EVENT.UPDATE.NSEVERITY}','0'),
('838','79','event_update_severity','{EVENT.UPDATE.SEVERITY}','0'),
('839','79','event_update_status','{EVENT.UPDATE.STATUS}','0'),
('840','79','event_value','{EVENT.VALUE}','0'),
('841','79','issue_comments_public','false','0'),
('842','79','jira_password','','0'),
('843','79','jira_priority_autoregistration','Low','0'),
('844','79','jira_priority_discovery','Low','0'),
('845','79','jira_priority_internal','Low','0'),
('846','79','jira_request_type_id','','0'),
('847','79','jira_servicedesk_id','','0'),
('848','79','jira_url','','0'),
('849','79','jira_user','','0'),
('850','79','severity_average','Medium','0'),
('851','79','severity_disaster','Highest','0'),
('852','79','severity_high','High','0'),
('853','79','severity_information','Lowest','0'),
('854','79','severity_not_classified','Lowest','0'),
('855','79','severity_warning','Low','0'),
('856','79','trigger_id','{TRIGGER.ID}','0'),
('857','79','zabbix_url','{$ZABBIX.URL}','0'),
('858','80','alert_message','{ALERT.MESSAGE}','0'),
('859','80','alert_subject','{ALERT.SUBJECT}','0'),
('860','80','bot_token','','0'),
('861','80','event_id','{EVENT.ID}','0'),
('862','80','event_nseverity','{EVENT.NSEVERITY}','0'),
('863','80','event_source','{EVENT.SOURCE}','0'),
('864','80','event_update_status','{EVENT.UPDATE.STATUS}','0'),
('865','80','event_value','{EVENT.VALUE}','0'),
('866','80','send_to','{ALERT.SENDTO}','0'),
('867','80','trigger_description','{TRIGGER.DESCRIPTION}','0'),
('868','80','trigger_id','{TRIGGER.ID}','0'),
('869','80','zabbix_url','{$ZABBIX.URL}','0'),
('870','81','event_nseverity','{EVENT.NSEVERITY}','0'),
('871','81','event_recovery_value','{EVENT.RECOVERY.VALUE}','0'),
('872','81','event_source','{EVENT.SOURCE}','0'),
('873','81','event_update_status','{EVENT.UPDATE.STATUS}','0'),
('874','81','event_value','{EVENT.VALUE}','0'),
('875','81','field_ref:requester','','0'),
('876','81','field_string:description','{ALERT.MESSAGE}','0'),
('877','81','field_string:subject','{ALERT.SUBJECT}','0'),
('878','81','priority_average','Normal','0'),
('879','81','priority_default','Normal','0'),
('880','81','priority_disaster','High','0'),
('881','81','priority_high','High','0'),
('882','81','priority_information','Low','0'),
('883','81','priority_not_classified','Low','0'),
('884','81','priority_warning','Medium','0'),
('885','81','sd_on_demand_client_id','','0'),
('886','81','sd_on_demand_client_secret','','0'),
('887','81','sd_on_demand_refresh_token','','0'),
('888','81','sd_on_demand_url_auth','','0'),
('889','81','sd_on_premise','true','0'),
('890','81','sd_on_premise_auth_token','','0'),
('891','81','sd_request_id','{EVENT.TAGS.__zbx_sd_request_id}','0'),
('892','81','sd_url','','0'),
('893','81','trigger_description','{TRIGGER.DESCRIPTION}','0'),
('894','82','alert_message','{ALERT.MESSAGE}','0'),
('895','82','alert_sendto','{ALERT.SENDTO}','0'),
('896','82','alert_subject','{ALERT.SUBJECT}','0'),
('897','82','event_id','{EVENT.ID}','0'),
('898','82','event_nseverity','{EVENT.NSEVERITY}','0'),
('899','82','event_recovery_value','{EVENT.RECOVERY.VALUE}','0'),
('900','82','event_source','{EVENT.SOURCE}','0'),
('901','82','event_tagsjson','{EVENT.TAGSJSON}','0'),
('902','82','event_update_action','{EVENT.UPDATE.ACTION}','0'),
('903','82','event_update_message','{EVENT.UPDATE.MESSAGE}','0'),
('904','82','event_update_status','{EVENT.UPDATE.STATUS}','0'),
('905','82','event_value','{EVENT.VALUE}','0'),
('906','82','mantisbt_category','[All Projects] General','0'),
('907','82','mantisbt_issue_number','{EVENT.TAGS.__zbx_mantisbt_issue_number}','0'),
('908','82','mantisbt_token','','0'),
('909','82','mantisbt_url','','0'),
('910','82','mantisbt_use_zabbix_tags','true','0'),
('911','82','trigger_id','{TRIGGER.ID}','0'),
('912','82','zabbix_url','{$ZABBIX.URL}','0'),
('913','83','alert_message','{ALERT.MESSAGE}','0'),
('914','83','alert_subject','{ALERT.SUBJECT}','0'),
('915','83','bot_token','','0'),
('916','83','discovery_host_dns','{DISCOVERY.DEVICE.DNS}','0'),
('917','83','discovery_host_ip','{DISCOVERY.DEVICE.IPADDRESS}','0'),
('918','83','event_date','{EVENT.DATE}','0'),
('919','83','event_id','{EVENT.ID}','0'),
('920','83','event_nseverity','{EVENT.NSEVERITY}','0'),
('921','83','event_opdata','{EVENT.OPDATA}','0'),
('922','83','event_recovery_date','{EVENT.RECOVERY.DATE}','0'),
('923','83','event_recovery_time','{EVENT.RECOVERY.TIME}','0'),
('924','83','event_severity','{EVENT.SEVERITY}','0'),
('925','83','event_source','{EVENT.SOURCE}','0'),
('926','83','event_tags','{EVENT.TAGS}','0'),
('927','83','event_time','{EVENT.TIME}','0'),
('928','83','event_update_date','{EVENT.UPDATE.DATE}','0'),
('929','83','event_update_status','{EVENT.UPDATE.STATUS}','0'),
('930','83','event_update_time','{EVENT.UPDATE.TIME}','0'),
('931','83','event_value','{EVENT.VALUE}','0'),
('932','83','host_ip','{HOST.IP}','0'),
('933','83','host_name','{HOST.HOST}','0'),
('934','83','mattermost_url','','0'),
('935','83','send_mode','alarm','0'),
('936','83','send_to','{ALERT.SENDTO}','0'),
('937','83','trigger_description','{TRIGGER.DESCRIPTION}','0'),
('938','83','trigger_id','{TRIGGER.ID}','0'),
('939','83','zabbix_url','{$ZABBIX.URL}','0'),
('940','84','alert_message','{ALERT.MESSAGE}','0'),
('941','84','alert_subject','{ALERT.SUBJECT}','0'),
('942','84','event_date','{EVENT.DATE}','0'),
('943','84','event_id','{EVENT.ID}','0'),
('944','84','event_nseverity','{EVENT.NSEVERITY}','0'),
('945','84','event_opdata','{EVENT.OPDATA}','0'),
('946','84','event_recovery_date','{EVENT.RECOVERY.DATE}','0'),
('947','84','event_recovery_time','{EVENT.RECOVERY.TIME}','0'),
('948','84','event_severity','{EVENT.SEVERITY}','0'),
('949','84','event_source','{EVENT.SOURCE}','0'),
('950','84','event_status','{EVENT.STATUS}','0'),
('951','84','event_tags','{EVENT.TAGS}','0'),
('952','84','event_time','{EVENT.TIME}','0'),
('953','84','event_update_action','{EVENT.UPDATE.ACTION}','0'),
('954','84','event_update_date','{EVENT.UPDATE.DATE}','0'),
('955','84','event_update_message','{EVENT.UPDATE.MESSAGE}','0'),
('956','84','event_update_nseverity','{EVENT.UPDATE.NSEVERITY}','0'),
('957','84','event_update_severity','{EVENT.UPDATE.SEVERITY}','0'),
('958','84','event_update_status','{EVENT.UPDATE.STATUS}','0'),
('959','84','event_update_time','{EVENT.UPDATE.TIME}','0'),
('960','84','event_update_user','{USER.FULLNAME}','0'),
('961','84','event_value','{EVENT.VALUE}','0'),
('962','84','host_ip','{HOST.IP}','0'),
('963','84','host_name','{HOST.NAME}','0'),
('964','84','teams_endpoint','','0'),
('965','84','trigger_description','{TRIGGER.DESCRIPTION}','0'),
('966','84','trigger_id','{TRIGGER.ID}','0'),
('967','84','use_default_message','false','0'),
('968','84','zabbix_url','{$ZABBIX.URL}','0'),
('969','85','alert_message','{ALERT.MESSAGE}','0'),
('970','85','alert_subject','{ALERT.SUBJECT}','0'),
('971','85','event_id','{EVENT.ID}','0'),
('972','85','event_nseverity','{EVENT.NSEVERITY}','0'),
('973','85','event_severity','{EVENT.SEVERITY}','0'),
('974','85','event_source','{EVENT.SOURCE}','0'),
('975','85','event_update_nseverity','{EVENT.UPDATE.NSEVERITY}','0'),
('976','85','event_update_severity','{EVENT.UPDATE.SEVERITY}','0'),
('977','85','event_update_status','{EVENT.UPDATE.STATUS}','0'),
('978','85','event_value','{EVENT.VALUE}','0'),
('979','85','teams_endpoint','','0'),
('980','85','trigger_id','{TRIGGER.ID}','0'),
('981','85','zabbix_url','{$ZABBIX.URL}','0'),
('982','86','alert_message','{ALERT.MESSAGE}','0'),
('983','86','alert_subject','{ALERT.SUBJECT}','0'),
('984','86','event_id','{EVENT.ID}','0'),
('985','86','event_nseverity','{EVENT.NSEVERITY}','0'),
('986','86','event_source','{EVENT.SOURCE}','0'),
('987','86','event_tags_json','{EVENT.TAGSJSON}','0'),
('988','86','event_update_action','{EVENT.UPDATE.ACTION}','0'),
('989','86','event_update_status','{EVENT.UPDATE.STATUS}','0'),
('990','86','event_value','{EVENT.VALUE}','0'),
('991','86','opsgenie_api','','0'),
('992','86','opsgenie_tags','','0'),
('993','86','opsgenie_teams','','0'),
('994','86','opsgenie_token','','0'),
('995','86','opsgenie_web','','0'),
('996','86','severity_average','P3','0'),
('997','86','severity_default','P5','0'),
('998','86','severity_disaster','P1','0'),
('999','86','severity_high','P2','0'),
('1000','86','severity_information','P5','0'),
('1001','86','severity_not_classified','P5','0'),
('1002','86','severity_warning','P4','0'),
('1003','86','status_counter','25','0'),
('1004','86','trigger_id','{TRIGGER.ID}','0'),
('1005','86','zbxurl','{$ZABBIX.URL}','0'),
('1006','86','zbxuser','{USER.FULLNAME}','0'),
('1007','87','alert_message','{ALERT.MESSAGE}','0'),
('1008','87','alert_subject','{ALERT.SUBJECT}','0'),
('1009','87','event_id','{EVENT.ID}','0'),
('1010','87','event_nseverity','{EVENT.NSEVERITY}','0'),
('1011','87','event_severity','{EVENT.SEVERITY}','0'),
('1012','87','event_source','{EVENT.SOURCE}','0'),
('1013','87','event_update_nseverity','{EVENT.UPDATE.NSEVERITY}','0'),
('1014','87','event_update_severity','{EVENT.UPDATE.SEVERITY}','0'),
('1015','87','event_update_status','{EVENT.UPDATE.STATUS}','0'),
('1016','87','event_value','{EVENT.VALUE}','0'),
('1017','87','otrs_auth_password','','0'),
('1018','87','otrs_auth_user','','0'),
('1019','87','otrs_closed_state_id','0','0'),
('1020','87','otrs_customer','','0'),
('1021','87','otrs_default_priority_id','3','0'),
('1022','87','otrs_queue','','0'),
('1023','87','otrs_ticket_id','{EVENT.TAGS.__zbx_otrs_ticket_id}','0'),
('1024','87','otrs_ticket_state','new','0'),
('1025','87','otrs_time_unit','0','0'),
('1026','87','otrs_url','','0'),
('1027','87','trigger_id','{TRIGGER.ID}','0'),
('1028','87','zabbix_url','{$ZABBIX.URL}','0'),
('1029','88','alert_message','{ALERT.MESSAGE}','0'),
('1030','88','alert_subject','{ALERT.SUBJECT}','0'),
('1031','88','api_token','{ALERT.SENDTO}','0'),
('1032','88','event_ack','{EVENT.ACK.STATUS}','0'),
('1033','88','event_id','{EVENT.ID}','0'),
('1034','88','event_nseverity','{EVENT.NSEVERITY}','0'),
('1035','88','event_severity','{EVENT.SEVERITY}','0'),
('1036','88','event_source','{EVENT.SOURCE}','0'),
('1037','88','event_update_nseverity','{EVENT.UPDATE.NSEVERITY}','0'),
('1038','88','event_update_severity','{EVENT.UPDATE.SEVERITY}','0'),
('1039','88','event_update_status','{EVENT.UPDATE.STATUS}','0'),
('1040','88','event_value','{EVENT.VALUE}','0'),
('1041','88','host_ip','{HOST.IP}','0'),
('1042','88','host_name','{HOST.NAME}','0'),
('1043','88','trigger_id','{TRIGGER.ID}','0'),
('1044','88','zabbix_url','{$ZABBIX.URL}','0'),
('1045','89','endpoint','https://api.pushover.net/1/messages.json','0'),
('1046','89','eventid','{EVENT.ID}','0'),
('1047','89','event_nseverity','{EVENT.NSEVERITY}','0'),
('1048','89','event_source','{EVENT.SOURCE}','0'),
('1049','89','event_value','{EVENT.VALUE}','0'),
('1050','89','expire','1200','0'),
('1051','89','message','{ALERT.MESSAGE}','0'),
('1052','89','priority_average','0','0'),
('1053','89','priority_default','0','0'),
('1054','89','priority_disaster','0','0'),
('1055','89','priority_high','0','0'),
('1056','89','priority_information','0','0'),
('1057','89','priority_not_classified','0','0'),
('1058','89','priority_warning','0','0'),
('1059','89','retry','60','0'),
('1060','89','title','{ALERT.SUBJECT}','0'),
('1061','89','token','','0'),
('1062','89','triggerid','{TRIGGER.ID}','0'),
('1063','89','url','{$ZABBIX.URL}','0'),
('1064','89','url_title','Zabbix','0'),
('1065','89','user','{ALERT.SENDTO}','0'),
('1066','90','alert_message','{ALERT.MESSAGE}','0'),
('1067','90','alert_subject','{ALERT.SUBJECT}','0'),
('1068','90','event_id','{EVENT.ID}','0'),
('1069','90','event_nseverity','{EVENT.NSEVERITY}','0'),
('1070','90','event_source','{EVENT.SOURCE}','0'),
('1071','90','event_update_message','{EVENT.UPDATE.MESSAGE}','0'),
('1072','90','event_update_status','{EVENT.UPDATE.STATUS}','0'),
('1073','90','event_value','{EVENT.VALUE}','0'),
('1074','90','redmine_access_key','','0'),
('1075','90','redmine_issue_key','{EVENT.TAGS.__zbx_redmine_issue_id}','0'),
('1076','90','redmine_project','','0'),
('1077','90','redmine_tracker_id','','0'),
('1078','90','redmine_url','','0'),
('1079','90','trigger_id','{TRIGGER.ID}','0'),
('1080','90','zabbix_url','{$ZABBIX.URL}','0'),
('1081','91','alert_message','{ALERT.MESSAGE}','0'),
('1082','91','alert_subject','{ALERT.SUBJECT}','0'),
('1083','91','event_nseverity','{EVENT.NSEVERITY}','0'),
('1084','91','event_source','{EVENT.SOURCE}','0'),
('1085','91','event_update_action','{EVENT.UPDATE.ACTION}','0'),
('1086','91','event_update_message','{EVENT.UPDATE.MESSAGE}','0'),
('1087','91','event_update_status','{EVENT.UPDATE.STATUS}','0'),
('1088','91','event_update_user','{USER.FULLNAME}','0'),
('1089','91','event_value','{EVENT.VALUE}','0'),
('1090','91','field_1_full:Host','{HOST.NAME} [{HOST.IP}]','0'),
('1091','91','field_2_short:Severity','{EVENT.SEVERITY}','0'),
('1092','91','field_3_short:Event time','{EVENT.DATE} {EVENT.TIME}','0'),
('1093','91','field_3_short_r:Recovery time','{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}','0'),
('1094','91','field_4_short_r:Event duration','{EVENT.DURATION}','0'),
('1095','91','field_5_short:Operational data','{EVENT.OPDATA}','0'),
('1096','91','field_999_full_p:Trigger description','{TRIGGER.DESCRIPTION}','0'),
('1097','91','rc_api_url','api/v1/','0'),
('1098','91','rc_msg_id','{EVENT.TAGS.__zbx_rc_id}','0'),
('1099','91','rc_room_id','{EVENT.TAGS.__zbx_rc_rid}','0'),
('1100','91','rc_send_to','{ALERT.SENDTO}','0'),
('1101','91','rc_title_link','{$ZABBIX.URL}/tr_events.php?triggerid={TRIGGER.ID}&eventid={EVENT.ID}','0'),
('1102','91','rc_url','','0'),
('1103','91','rc_user_id','','0'),
('1104','91','rc_user_token','','0'),
('1105','91','use_default_message','false','0'),
('1106','92','alert_message','{ALERT.MESSAGE}','0'),
('1107','92','alert_subject','{ALERT.SUBJECT}','0'),
('1108','92','event_nseverity','{EVENT.NSEVERITY}','0'),
('1109','92','event_recovery_value','{EVENT.RECOVERY.VALUE}','0'),
('1110','92','event_source','{EVENT.SOURCE}','0'),
('1111','92','event_update_status','{EVENT.UPDATE.STATUS}','0'),
('1112','92','event_value','{EVENT.VALUE}','0'),
('1113','92','servicenow_password','','0'),
('1114','92','servicenow_sys_id','{EVENT.TAGS.__zbx_servicenow_sys_id}','0'),
('1115','92','servicenow_url','{ALERT.SENDTO}','0'),
('1116','92','servicenow_user','','0'),
('1117','92','urgency_for_average','2','0'),
('1118','92','urgency_for_disaster','1','0'),
('1119','92','urgency_for_high','2','0'),
('1120','92','urgency_for_information','3','0'),
('1121','92','urgency_for_not_classified','3','0'),
('1122','92','urgency_for_warning','3','0'),
('1123','93','Event_Ack_Status','{EVENT.ACK.STATUS}','0'),
('1124','93','Event_Date_Time','{EVENT.DATE} {EVENT.TIME}','0'),
('1125','93','Event_ID','{EVENT.ID}','0'),
('1126','93','Event_Update_Action','{EVENT.UPDATE.ACTION}','0'),
('1127','93','Event_Update_Status','{EVENT.UPDATE.STATUS}','0'),
('1128','93','Hostname','{HOST.NAME}','0'),
('1129','93','Host_IP','{HOST.IP}','0'),
('1130','93','Message','{ALERT.MESSAGE}','0'),
('1131','93','Severity','{EVENT.SEVERITY}','0'),
('1132','93','Subject','{ALERT.SUBJECT}','0'),
('1133','93','teamsecret','{ALERT.SENDTO}','0'),
('1134','93','Trigger_ID','{TRIGGER.ID}','0'),
('1135','93','Trigger_Status','{TRIGGER.STATUS}','0'),
('1136','93','User','{USER.FULLNAME}','0'),
('1137','93','Zabbix_URL','{$ZABBIX.URL}','0'),
('1138','94','alert_message','{ALERT.MESSAGE}','0'),
('1139','94','alert_subject','{ALERT.SUBJECT}','0'),
('1140','94','bot_token','','0'),
('1141','94','channel','{ALERT.SENDTO}','0'),
('1142','94','event_id','{EVENT.ID}','0'),
('1143','94','event_nseverity','{EVENT.NSEVERITY}','0'),
('1144','94','event_severity','{EVENT.SEVERITY}','0'),
('1145','94','event_source','{EVENT.SOURCE}','0'),
('1146','94','event_tags','{EVENT.TAGSJSON}','0'),
('1147','94','event_update_action','{EVENT.UPDATE.ACTION}','0'),
('1148','94','event_update_message','{EVENT.UPDATE.MESSAGE}','0'),
('1149','94','event_update_nseverity','{EVENT.UPDATE.NSEVERITY}','0'),
('1150','94','event_update_severity','{EVENT.UPDATE.SEVERITY}','0'),
('1151','94','event_update_status','{EVENT.UPDATE.STATUS}','0'),
('1152','94','event_value','{EVENT.VALUE}','0'),
('1153','94','slack_mode','alarm','0'),
('1154','94','trigger_id','{TRIGGER.ID}','0'),
('1155','94','zabbix_url','{$ZABBIX.URL}','0'),
('1156','95','alert_message','{ALERT.MESSAGE}','0'),
('1157','95','alert_subject','{ALERT.SUBJECT}','0'),
('1158','95','event_nseverity','{EVENT.NSEVERITY}','0'),
('1159','95','event_recovery_value','{EVENT.RECOVERY.VALUE}','0'),
('1160','95','event_source','{EVENT.SOURCE}','0'),
('1161','95','event_update_status','{EVENT.UPDATE.STATUS}','0'),
('1162','95','event_value','{EVENT.VALUE}','0'),
('1163','95','priority_average','Medium','0'),
('1164','95','priority_default','Low','0'),
('1165','95','priority_disaster','Critical','0'),
('1166','95','priority_high','High','0'),
('1167','95','samanage_incident_id','{EVENT.TAGS.__zbx_solarwinds_inc_id}','0'),
('1168','95','samanage_token','','0'),
('1169','95','samanage_url','','0'),
('1170','96','alert_message','{ALERT.MESSAGE}','0'),
('1171','96','alert_subject','{ALERT.SUBJECT}','0'),
('1172','96','event_id','{EVENT.ID}','0'),
('1173','96','event_nseverity','{EVENT.NSEVERITY}','0'),
('1174','96','event_source','{EVENT.SOURCE}','0'),
('1175','96','event_update_message','{EVENT.UPDATE.MESSAGE}','0'),
('1176','96','event_update_status','{EVENT.UPDATE.STATUS}','0'),
('1177','96','event_value','{EVENT.VALUE}','0'),
('1178','96','sysaid_auth_password','','0'),
('1179','96','sysaid_auth_user','','0'),
('1180','96','sysaid_category_level_1','','0'),
('1181','96','sysaid_category_level_2','','0'),
('1182','96','sysaid_category_level_3','','0'),
('1183','96','sysaid_default_priority_id','1','0'),
('1184','96','sysaid_incident_id','{EVENT.TAGS.__zbx_sysaid_incident_id}','0'),
('1185','96','sysaid_incident_state','1','0'),
('1186','96','sysaid_template_id','','0'),
('1187','96','sysaid_urgency_id','','0'),
('1188','96','sysaid_url','','0'),
('1189','96','trigger_id','{TRIGGER.ID}','0'),
('1190','96','zabbix_url','{$ZABBIX.URL}','0'),
('1191','97','alert_message','{ALERT.MESSAGE}','0'),
('1192','97','alert_subject','{ALERT.SUBJECT}','0'),
('1193','97','api_chat_id','{ALERT.SENDTO}','0'),
('1194','97','api_parse_mode','','0'),
('1195','97','api_token','','0'),
('1196','97','event_nseverity','{EVENT.NSEVERITY}','0'),
('1197','97','event_severity','{EVENT.SEVERITY}','0'),
('1198','97','event_source','{EVENT.SOURCE}','0'),
('1199','97','event_tags','{EVENT.TAGSJSON}','0'),
('1200','97','event_update_nseverity','{EVENT.UPDATE.NSEVERITY}','0'),
('1201','97','event_update_severity','{EVENT.UPDATE.SEVERITY}','0'),
('1202','97','event_update_status','{EVENT.UPDATE.STATUS}','0'),
('1203','97','event_value','{EVENT.VALUE}','0'),
('1204','98','alert_message','{ALERT.MESSAGE}','0'),
('1205','98','alert_subject','{ALERT.SUBJECT}','0'),
('1206','98','event_id','{EVENT.ID}','0'),
('1207','98','event_nseverity','{EVENT.NSEVERITY}','0'),
('1208','98','event_source','{EVENT.SOURCE}','0'),
('1209','98','event_update_status','{EVENT.UPDATE.STATUS}','0'),
('1210','98','event_value','{EVENT.VALUE}','0'),
('1211','98','severity_average','P3','0'),
('1212','98','severity_default','P5','0'),
('1213','98','severity_disaster','P1','0'),
('1214','98','severity_high','P2','0'),
('1215','98','severity_information','P5','0'),
('1216','98','severity_not_classified','P5','0'),
('1217','98','severity_warning','P4','0'),
('1218','98','topdesk_api','','0'),
('1219','98','topdesk_issue_key','{EVENT.TAGS.__zbx_tpd_issuekey}','0'),
('1220','98','topdesk_password','','0'),
('1221','98','topdesk_status','','0'),
('1222','98','topdesk_user','','0'),
('1223','98','trigger_id','{TRIGGER.ID}','0'),
('1224','98','zbxurl','{$ZABBIX.URL}','0'),
('1225','99','event_info','{$ZABBIX.URL}/tr_events.php?triggerid={TRIGGER.ID}&eventid={EVENT.ID}','0'),
('1226','99','event_nseverity','{EVENT.NSEVERITY}','0'),
('1227','99','event_recovery_value','{EVENT.RECOVERY.VALUE}','0'),
('1228','99','event_source','{EVENT.SOURCE}','0'),
('1229','99','event_update_status','{EVENT.UPDATE.STATUS}','0'),
('1230','99','event_value','{EVENT.VALUE}','0'),
('1231','99','field:entity_display_name','{ALERT.SUBJECT}','0'),
('1232','99','field:entity_id','{EVENT.ID}','0'),
('1233','99','field:hostname','{HOST.NAME}','0'),
('1234','99','field:monitoring_tool','Zabbix','0'),
('1235','99','field:operational_data','{EVENT.OPDATA}','0'),
('1236','99','field:severity','{EVENT.SEVERITY}','0'),
('1237','99','field:state_message','{ALERT.MESSAGE}','0'),
('1238','99','field_p:trigger_description','{TRIGGER.DESCRIPTION}','0'),
('1239','99','field_r:event_duration','{EVENT.DURATION}','0'),
('1240','99','field_r:recovery time','{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}','0'),
('1241','99','priority_average','WARNING','0'),
('1242','99','priority_default','INFO','0'),
('1243','99','priority_disaster','CRITICAL','0'),
('1244','99','priority_high','WARNING','0'),
('1245','99','priority_information','INFO','0'),
('1246','99','priority_not_classified','INFO','0'),
('1247','99','priority_resolved','OK','0'),
('1248','99','priority_update','INFO','0'),
('1249','99','priority_warning','INFO','0'),
('1250','99','vops_endpoint','','0'),
('1251','99','vops_routing_key','{ALERT.SENDTO}','0'),
('1252','100','alert_message','{ALERT.MESSAGE}','0'),
('1253','100','alert_subject','{ALERT.SUBJECT}','0'),
('1254','100','event_id','{EVENT.ID}','0'),
('1255','100','event_nseverity','{EVENT.NSEVERITY}','0'),
('1256','100','event_severity','{EVENT.SEVERITY}','0'),
('1257','100','event_source','{EVENT.SOURCE}','0'),
('1258','100','event_tags','{EVENT.TAGSJSON}','0'),
('1259','100','event_update_nseverity','{EVENT.UPDATE.NSEVERITY}','0'),
('1260','100','event_update_severity','{EVENT.UPDATE.SEVERITY}','0'),
('1261','100','event_update_status','{EVENT.UPDATE.STATUS}','0'),
('1262','100','event_value','{EVENT.VALUE}','0'),
('1263','100','trigger_id','{TRIGGER.ID}','0'),
('1264','100','zabbix_url','{$ZABBIX.URL}','0'),
('1265','100','zammad_access_token','','0'),
('1266','100','zammad_customer','','0'),
('1267','100','zammad_enable_tags','false','0'),
('1268','100','zammad_group','Users','0'),
('1269','100','zammad_url','','0'),
('1270','101','alert_message','{ALERT.MESSAGE}','0'),
('1271','101','alert_subject','{ALERT.SUBJECT}','0'),
('1272','101','event_id','{EVENT.ID}','0'),
('1273','101','event_nseverity','{EVENT.NSEVERITY}','0'),
('1274','101','event_source','{EVENT.SOURCE}','0'),
('1275','101','event_tags','{EVENT.TAGS}','0'),
('1276','101','event_update_status','{EVENT.UPDATE.STATUS}','0'),
('1277','101','event_value','{EVENT.VALUE}','0'),
('1278','101','severity_average','normal','0'),
('1279','101','severity_default','-','0'),
('1280','101','severity_disaster','urgent','0'),
('1281','101','severity_high','high','0'),
('1282','101','severity_information','low','0'),
('1283','101','severity_not_classified','low','0'),
('1284','101','severity_warning','normal','0'),
('1285','101','trigger_id','{TRIGGER.ID}','0'),
('1286','101','zbxurl','{$ZABBIX.URL}','0'),
('1287','101','zendesk_issue_key','{EVENT.TAGS.__zbx_zdk_issuekey}','0'),
('1288','101','zendesk_token','','0'),
('1289','101','zendesk_type','incident','0'),
('1290','101','zendesk_url','','0'),
('1291','87','otrs_ticket_type','Unclassified','0'),
('1292','75','glpi_app_token','','0'),
('1293','75','glpi_user_token','','0');
INSERT INTO `media_type_message` (`mediatype_messageid`,`mediatypeid`,`eventsource`,`recovery`,`subject`,`message`) VALUES ('1','1','0','0','Problem: {EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOperational data: {EVENT.OPDATA}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('2','1','0','1','Resolved in {EVENT.DURATION}: {EVENT.NAME}','Problem has been resolved at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nProblem duration: {EVENT.DURATION}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('3','1','0','2','Updated problem in {EVENT.AGE}: {EVENT.NAME}','{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\n{EVENT.UPDATE.MESSAGE}\r\n\r\nCurrent problem status is {EVENT.STATUS}, age is {EVENT.AGE}, acknowledged: {EVENT.ACK.STATUS}.'),
('4','1','1','0','Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}','Discovery rule: {DISCOVERY.RULE.NAME}\r\n\r\nDevice IP: {DISCOVERY.DEVICE.IPADDRESS}\r\nDevice DNS: {DISCOVERY.DEVICE.DNS}\r\nDevice status: {DISCOVERY.DEVICE.STATUS}\r\nDevice uptime: {DISCOVERY.DEVICE.UPTIME}\r\n\r\nDevice service name: {DISCOVERY.SERVICE.NAME}\r\nDevice service port: {DISCOVERY.SERVICE.PORT}\r\nDevice service status: {DISCOVERY.SERVICE.STATUS}\r\nDevice service uptime: {DISCOVERY.SERVICE.UPTIME}'),
('5','1','2','0','Autoregistration: {HOST.HOST}','Host name: {HOST.HOST}\r\nHost IP: {HOST.IP}\r\nAgent port: {HOST.PORT}'),
('6','3','0','0','','{EVENT.SEVERITY}: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\n{EVENT.DATE} {EVENT.TIME}'),
('7','3','0','1','','Resolved in {EVENT.DURATION}: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\n{EVENT.DATE} {EVENT.TIME}'),
('8','3','0','2','','{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem in {EVENT.AGE} at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}'),
('9','3','1','0','','Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}'),
('10','3','2','0','','Autoregistration: {HOST.HOST}\r\nHost IP: {HOST.IP}\r\nAgent port: {HOST.PORT}'),
('11','4','0','0','Problem: {EVENT.NAME}','Problem started at {{EVENT.TIME}.htmlencode()} on {{EVENT.DATE}.htmlencode()}
Problem name: {{EVENT.NAME}.htmlencode()}
Host: {{HOST.NAME}.htmlencode()}
Severity: {{EVENT.SEVERITY}.htmlencode()}
Operational data: {{EVENT.OPDATA}.htmlencode()}
Original problem ID: {{EVENT.ID}.htmlencode()}
{{TRIGGER.URL}.htmlencode()}'),
('12','4','0','1','Resolved in {EVENT.DURATION}: {EVENT.NAME}','Problem has been resolved at {{EVENT.RECOVERY.TIME}.htmlencode()} on {{EVENT.RECOVERY.DATE}.htmlencode()}
Problem name: {{EVENT.NAME}.htmlencode()}
Problem duration: {{EVENT.DURATION}.htmlencode()}
Host: {{HOST.NAME}.htmlencode()}
Severity: {{EVENT.SEVERITY}.htmlencode()}
Original problem ID: {{EVENT.ID}.htmlencode()}
{{TRIGGER.URL}.htmlencode()}'),
('13','4','0','2','Updated problem in {EVENT.AGE}: {EVENT.NAME}','{{USER.FULLNAME}.htmlencode()} {{EVENT.UPDATE.ACTION}.htmlencode()} problem at {{EVENT.UPDATE.DATE}.htmlencode()} {{EVENT.UPDATE.TIME}.htmlencode()}.
{{EVENT.UPDATE.MESSAGE}.htmlencode()}
Current problem status: {{EVENT.STATUS}.htmlencode()}
Age: {{EVENT.AGE}.htmlencode()}
Acknowledged: {{EVENT.ACK.STATUS}.htmlencode()}.'),
('14','4','1','0','Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}','Discovery rule: {{DISCOVERY.RULE.NAME}.htmlencode()}
Device IP: {{DISCOVERY.DEVICE.IPADDRESS}.htmlencode()}
Device DNS: {{DISCOVERY.DEVICE.DNS}.htmlencode()}
Device status: {{DISCOVERY.DEVICE.STATUS}.htmlencode()}
Device uptime: {{DISCOVERY.DEVICE.UPTIME}.htmlencode()}
Device service name: {{DISCOVERY.SERVICE.NAME}.htmlencode()}
Device service port: {{DISCOVERY.SERVICE.PORT}.htmlencode()}
Device service status: {{DISCOVERY.SERVICE.STATUS}.htmlencode()}
Device service uptime: {{DISCOVERY.SERVICE.UPTIME}.htmlencode()}'),
('15','4','2','0','Autoregistration: {HOST.HOST}','Host name: {{HOST.HOST}.htmlencode()}
Host IP: {{HOST.IP}.htmlencode()}
Agent port: {{HOST.PORT}.htmlencode()}'),
('160','34','0','0','Problem: {EVENT.NAME}','Problem started at {{EVENT.TIME}.htmlencode()} on {{EVENT.DATE}.htmlencode()}
Problem name: {{EVENT.NAME}.htmlencode()}
Host: {{HOST.NAME}.htmlencode()}
Severity: {{EVENT.SEVERITY}.htmlencode()}
Operational data: {{EVENT.OPDATA}.htmlencode()}
Original problem ID: {{EVENT.ID}.htmlencode()}
{{TRIGGER.URL}.htmlencode()}'),
('161','34','0','1','Resolved in {EVENT.DURATION}: {EVENT.NAME}','Problem has been resolved at {{EVENT.RECOVERY.TIME}.htmlencode()} on {{EVENT.RECOVERY.DATE}.htmlencode()}
Problem name: {{EVENT.NAME}.htmlencode()}
Problem duration: {{EVENT.DURATION}.htmlencode()}
Host: {{HOST.NAME}.htmlencode()}
Severity: {{EVENT.SEVERITY}.htmlencode()}
Original problem ID: {{EVENT.ID}.htmlencode()}
{{TRIGGER.URL}.htmlencode()}'),
('162','34','0','2','Updated problem in {EVENT.AGE}: {EVENT.NAME}','{{USER.FULLNAME}.htmlencode()} {{EVENT.UPDATE.ACTION}.htmlencode()} problem at {{EVENT.UPDATE.DATE}.htmlencode()} {{EVENT.UPDATE.TIME}.htmlencode()}.
{{EVENT.UPDATE.MESSAGE}.htmlencode()}
Current problem status: {{EVENT.STATUS}.htmlencode()}
Age: {{EVENT.AGE}.htmlencode()}
Acknowledged: {{EVENT.ACK.STATUS}.htmlencode()}.'),
('163','34','1','0','Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}','Discovery rule: {{DISCOVERY.RULE.NAME}.htmlencode()}
Device IP: {{DISCOVERY.DEVICE.IPADDRESS}.htmlencode()}
Device DNS: {{DISCOVERY.DEVICE.DNS}.htmlencode()}
Device status: {{DISCOVERY.DEVICE.STATUS}.htmlencode()}
Device uptime: {{DISCOVERY.DEVICE.UPTIME}.htmlencode()}
Device service name: {{DISCOVERY.SERVICE.NAME}.htmlencode()}
Device service port: {{DISCOVERY.SERVICE.PORT}.htmlencode()}
Device service status: {{DISCOVERY.SERVICE.STATUS}.htmlencode()}
Device service uptime: {{DISCOVERY.SERVICE.UPTIME}.htmlencode()}'),
('164','34','2','0','Autoregistration: {HOST.HOST}','Host name: {{HOST.HOST}.htmlencode()}
Host IP: {{HOST.IP}.htmlencode()}
Agent port: {{HOST.PORT}.htmlencode()}'),
('165','35','0','0','Problem: {EVENT.NAME}','Problem started at {{EVENT.TIME}.htmlencode()} on {{EVENT.DATE}.htmlencode()}
Problem name: {{EVENT.NAME}.htmlencode()}
Host: {{HOST.NAME}.htmlencode()}
Severity: {{EVENT.SEVERITY}.htmlencode()}
Operational data: {{EVENT.OPDATA}.htmlencode()}
Original problem ID: {{EVENT.ID}.htmlencode()}
{{TRIGGER.URL}.htmlencode()}'),
('166','35','0','1','Resolved in {EVENT.DURATION}: {EVENT.NAME}','Problem has been resolved at {{EVENT.RECOVERY.TIME}.htmlencode()} on {{EVENT.RECOVERY.DATE}.htmlencode()}
Problem name: {{EVENT.NAME}.htmlencode()}
Problem duration: {{EVENT.DURATION}.htmlencode()}
Host: {{HOST.NAME}.htmlencode()}
Severity: {{EVENT.SEVERITY}.htmlencode()}
Original problem ID: {{EVENT.ID}.htmlencode()}
{{TRIGGER.URL}.htmlencode()}'),
('167','35','0','2','Updated problem in {EVENT.AGE}: {EVENT.NAME}','{{USER.FULLNAME}.htmlencode()} {{EVENT.UPDATE.ACTION}.htmlencode()} problem at {{EVENT.UPDATE.DATE}.htmlencode()} {{EVENT.UPDATE.TIME}.htmlencode()}.
{{EVENT.UPDATE.MESSAGE}.htmlencode()}
Current problem status: {{EVENT.STATUS}.htmlencode()}
Age: {{EVENT.AGE}.htmlencode()}
Acknowledged: {{EVENT.ACK.STATUS}.htmlencode()}.'),
('168','35','1','0','Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}','Discovery rule: {{DISCOVERY.RULE.NAME}.htmlencode()}
Device IP: {{DISCOVERY.DEVICE.IPADDRESS}.htmlencode()}
Device DNS: {{DISCOVERY.DEVICE.DNS}.htmlencode()}
Device status: {{DISCOVERY.DEVICE.STATUS}.htmlencode()}
Device uptime: {{DISCOVERY.DEVICE.UPTIME}.htmlencode()}
Device service name: {{DISCOVERY.SERVICE.NAME}.htmlencode()}
Device service port: {{DISCOVERY.SERVICE.PORT}.htmlencode()}
Device service status: {{DISCOVERY.SERVICE.STATUS}.htmlencode()}
Device service uptime: {{DISCOVERY.SERVICE.UPTIME}.htmlencode()}'),
('169','35','2','0','Autoregistration: {HOST.HOST}','Host name: {{HOST.HOST}.htmlencode()}
Host IP: {{HOST.IP}.htmlencode()}
Agent port: {{HOST.PORT}.htmlencode()}'),
('170','36','0','0','Problem: {EVENT.NAME}','Problem started at {{EVENT.TIME}.htmlencode()} on {{EVENT.DATE}.htmlencode()}
Problem name: {{EVENT.NAME}.htmlencode()}
Host: {{HOST.NAME}.htmlencode()}
Severity: {{EVENT.SEVERITY}.htmlencode()}
Operational data: {{EVENT.OPDATA}.htmlencode()}
Original problem ID: {{EVENT.ID}.htmlencode()}
{{TRIGGER.URL}.htmlencode()}'),
('171','36','0','1','Resolved in {EVENT.DURATION}: {EVENT.NAME}','Problem has been resolved at {{EVENT.RECOVERY.TIME}.htmlencode()} on {{EVENT.RECOVERY.DATE}.htmlencode()}
Problem name: {{EVENT.NAME}.htmlencode()}
Problem duration: {{EVENT.DURATION}.htmlencode()}
Host: {{HOST.NAME}.htmlencode()}
Severity: {{EVENT.SEVERITY}.htmlencode()}
Original problem ID: {{EVENT.ID}.htmlencode()}
{{TRIGGER.URL}.htmlencode()}'),
('172','36','0','2','Updated problem in {EVENT.AGE}: {EVENT.NAME}','{{USER.FULLNAME}.htmlencode()} {{EVENT.UPDATE.ACTION}.htmlencode()} problem at {{EVENT.UPDATE.DATE}.htmlencode()} {{EVENT.UPDATE.TIME}.htmlencode()}.
{{EVENT.UPDATE.MESSAGE}.htmlencode()}
Current problem status: {{EVENT.STATUS}.htmlencode()}
Age: {{EVENT.AGE}.htmlencode()}
Acknowledged: {{EVENT.ACK.STATUS}.htmlencode()}.'),
('173','36','1','0','Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}','Discovery rule: {{DISCOVERY.RULE.NAME}.htmlencode()}
Device IP: {{DISCOVERY.DEVICE.IPADDRESS}.htmlencode()}
Device DNS: {{DISCOVERY.DEVICE.DNS}.htmlencode()}
Device status: {{DISCOVERY.DEVICE.STATUS}.htmlencode()}
Device uptime: {{DISCOVERY.DEVICE.UPTIME}.htmlencode()}
Device service name: {{DISCOVERY.SERVICE.NAME}.htmlencode()}
Device service port: {{DISCOVERY.SERVICE.PORT}.htmlencode()}
Device service status: {{DISCOVERY.SERVICE.STATUS}.htmlencode()}
Device service uptime: {{DISCOVERY.SERVICE.UPTIME}.htmlencode()}'),
('174','36','2','0','Autoregistration: {HOST.HOST}','Host name: {{HOST.HOST}.htmlencode()}
Host IP: {{HOST.IP}.htmlencode()}
Agent port: {{HOST.PORT}.htmlencode()}'),
('175','37','0','0','Problem: {EVENT.NAME}','Problem started at {{EVENT.TIME}.htmlencode()} on {{EVENT.DATE}.htmlencode()}
Problem name: {{EVENT.NAME}.htmlencode()}
Host: {{HOST.NAME}.htmlencode()}
Severity: {{EVENT.SEVERITY}.htmlencode()}
Operational data: {{EVENT.OPDATA}.htmlencode()}
Original problem ID: {{EVENT.ID}.htmlencode()}
{{TRIGGER.URL}.htmlencode()}'),
('176','37','0','1','Resolved in {EVENT.DURATION}: {EVENT.NAME}','Problem has been resolved at {{EVENT.RECOVERY.TIME}.htmlencode()} on {{EVENT.RECOVERY.DATE}.htmlencode()}
Problem name: {{EVENT.NAME}.htmlencode()}
Problem duration: {{EVENT.DURATION}.htmlencode()}
Host: {{HOST.NAME}.htmlencode()}
Severity: {{EVENT.SEVERITY}.htmlencode()}
Original problem ID: {{EVENT.ID}.htmlencode()}
{{TRIGGER.URL}.htmlencode()}'),
('177','37','0','2','Updated problem in {EVENT.AGE}: {EVENT.NAME}','{{USER.FULLNAME}.htmlencode()} {{EVENT.UPDATE.ACTION}.htmlencode()} problem at {{EVENT.UPDATE.DATE}.htmlencode()} {{EVENT.UPDATE.TIME}.htmlencode()}.
{{EVENT.UPDATE.MESSAGE}.htmlencode()}
Current problem status: {{EVENT.STATUS}.htmlencode()}
Age: {{EVENT.AGE}.htmlencode()}
Acknowledged: {{EVENT.ACK.STATUS}.htmlencode()}.'),
('178','37','1','0','Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}','Discovery rule: {{DISCOVERY.RULE.NAME}.htmlencode()}
Device IP: {{DISCOVERY.DEVICE.IPADDRESS}.htmlencode()}
Device DNS: {{DISCOVERY.DEVICE.DNS}.htmlencode()}
Device status: {{DISCOVERY.DEVICE.STATUS}.htmlencode()}
Device uptime: {{DISCOVERY.DEVICE.UPTIME}.htmlencode()}
Device service name: {{DISCOVERY.SERVICE.NAME}.htmlencode()}
Device service port: {{DISCOVERY.SERVICE.PORT}.htmlencode()}
Device service status: {{DISCOVERY.SERVICE.STATUS}.htmlencode()}
Device service uptime: {{DISCOVERY.SERVICE.UPTIME}.htmlencode()}'),
('179','37','2','0','Autoregistration: {HOST.HOST}','Host name: {{HOST.HOST}.htmlencode()}
Host IP: {{HOST.IP}.htmlencode()}
Agent port: {{HOST.PORT}.htmlencode()}'),
('397','70','0','0','[{EVENT.STATUS}] {EVENT.NAME}','[{EVENT.STATUS}] {EVENT.NAME}\r\nStarted at {EVENT.TIME} on {EVENT.DATE}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOperational data: {EVENT.OPDATA}\r\nEvent info: {$ZABBIX.URL}/tr_events.php?triggerid={TRIGGER.ID}&eventid={EVENT.ID}'),
('398','70','0','1','Resolved in {EVENT.DURATION}: {EVENT.NAME}','[{EVENT.STATUS}] {EVENT.NAME}\r\nResolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nEvent info: {$ZABBIX.URL}/tr_events.php?triggerid={TRIGGER.ID}&eventid={EVENT.ID}'),
('399','70','0','2','[{EVENT.STATUS}] {EVENT.NAME}','[{EVENT.STATUS}] {EVENT.NAME}\r\n\r\n{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\n{EVENT.UPDATE.MESSAGE}'),
('400','70','1','0','Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}','Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}\r\nDiscovery rule: {DISCOVERY.RULE.NAME}\r\n\r\nDevice IP: {DISCOVERY.DEVICE.IPADDRESS}\r\nDevice DNS: {DISCOVERY.DEVICE.DNS}\r\nDevice status: {DISCOVERY.DEVICE.STATUS}\r\nDevice uptime: {DISCOVERY.DEVICE.UPTIME}\r\n\r\nDevice service name: {DISCOVERY.SERVICE.NAME}\r\nDevice service port: {DISCOVERY.SERVICE.PORT}\r\nDevice service status: {DISCOVERY.SERVICE.STATUS}\r\nDevice service uptime: {DISCOVERY.SERVICE.UPTIME}'),
('401','70','2','0','Autoregistration: {HOST.HOST}','Autoregistration: {HOST.HOST}\r\nHost IP: {HOST.IP}\r\nAgent port: {HOST.PORT}'),
('402','71','0','0','Problem: {EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOperational data: {EVENT.OPDATA}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('403','71','0','1','Resolved in {EVENT.DURATION}: {EVENT.NAME}','Problem has been resolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('404','71','0','2','Updated problem in {EVENT.AGE}: {EVENT.NAME}','{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\n{EVENT.UPDATE.MESSAGE}\r\n\r\nCurrent problem status is {EVENT.STATUS}, age is {EVENT.AGE}, acknowledged: {EVENT.ACK.STATUS}.'),
('405','71','1','0','Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}','Discovery rule: {DISCOVERY.RULE.NAME}\r\n\r\nDevice IP: {DISCOVERY.DEVICE.IPADDRESS}\r\nDevice DNS: {DISCOVERY.DEVICE.DNS}\r\nDevice status: {DISCOVERY.DEVICE.STATUS}\r\nDevice uptime: {DISCOVERY.DEVICE.UPTIME}\r\n\r\nDevice service name: {DISCOVERY.SERVICE.NAME}\r\nDevice service port: {DISCOVERY.SERVICE.PORT}\r\nDevice service status: {DISCOVERY.SERVICE.STATUS}\r\nDevice service uptime: {DISCOVERY.SERVICE.UPTIME}'),
('406','71','2','0','Autoregistration: {HOST.HOST}','Host name: {HOST.HOST}\r\nHost IP: {HOST.IP}\r\nAgent port: {HOST.PORT}'),
('407','71','3','0','[{EVENT.STATUS}] {EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nOriginal problem ID: {EVENT.ID}'),
('408','71','3','1','[{EVENT.STATUS}] {EVENT.NAME}','Problem has been resolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nOriginal problem ID: {EVENT.ID}'),
('409','71','4','0','Service "{SERVICE.NAME}" problem: {EVENT.NAME}','Service problem started at {EVENT.TIME} on {EVENT.DATE}\r\nService problem name: {EVENT.NAME}\r\nService: {SERVICE.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\nService description: {SERVICE.DESCRIPTION}\r\n\r\n{SERVICE.ROOTCAUSE}'),
('410','71','4','1','Service "{SERVICE.NAME}" resolved in {EVENT.DURATION}: {EVENT.NAME}','Service "{SERVICE.NAME}" has been resolved at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nProblem duration: {EVENT.DURATION}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\nService description: {SERVICE.DESCRIPTION}'),
('411','71','4','2','Changed "{SERVICE.NAME}" service status to {EVENT.UPDATE.SEVERITY} in {EVENT.AGE}','Changed "{SERVICE.NAME}" service status to {EVENT.UPDATE.SEVERITY} at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\nCurrent problem age is {EVENT.AGE}.\r\nService description: {SERVICE.DESCRIPTION}\r\n\r\n{SERVICE.ROOTCAUSE}'),
('412','72','0','0','Event ID: {EVENT.ID}, Host: {HOST.HOST}, Problem: {EVENT.NAME}',''),
('413','73','0','0','[{EVENT.STATUS}] {EVENT.NAME}','[{EVENT.STATUS}] {EVENT.NAME}\r\nStarted at {EVENT.TIME} on {EVENT.DATE}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOperational data: {EVENT.OPDATA}\r\nEvent info: {$ZABBIX.URL}/tr_events.php?triggerid={TRIGGER.ID}&eventid={EVENT.ID}'),
('414','73','0','1','Resolved in {EVENT.DURATION}: {EVENT.NAME}','[{EVENT.STATUS}] {EVENT.NAME}\r\nResolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nEvent info: {$ZABBIX.URL}/tr_events.php?triggerid={TRIGGER.ID}&eventid={EVENT.ID}'),
('415','73','0','2','[{EVENT.STATUS}] {EVENT.NAME}','[{EVENT.STATUS}] {EVENT.NAME}\r\n\r\n{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\n{EVENT.UPDATE.MESSAGE}'),
('416','73','1','0','Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}','Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}\r\nDiscovery rule: {DISCOVERY.RULE.NAME}\r\n\r\nDevice IP: {DISCOVERY.DEVICE.IPADDRESS}\r\nDevice DNS: {DISCOVERY.DEVICE.DNS}\r\nDevice status: {DISCOVERY.DEVICE.STATUS}\r\nDevice uptime: {DISCOVERY.DEVICE.UPTIME}\r\n\r\nDevice service name: {DISCOVERY.SERVICE.NAME}\r\nDevice service port: {DISCOVERY.SERVICE.PORT}\r\nDevice service status: {DISCOVERY.SERVICE.STATUS}\r\nDevice service uptime: {DISCOVERY.SERVICE.UPTIME}'),
('417','73','2','0','Autoregistration: {HOST.HOST}','Autoregistration: {HOST.HOST}\r\nHost IP: {HOST.IP}\r\nAgent port: {HOST.PORT}'),
('418','74','0','0','Problem: {EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOperational data: {EVENT.OPDATA}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('419','74','0','1','Resolved in {EVENT.DURATION}: {EVENT.NAME}','Problem has been resolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('420','74','0','2','Updated problem in {EVENT.AGE}: {EVENT.NAME}','{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\n{EVENT.UPDATE.MESSAGE}\r\n\r\nCurrent problem status is {EVENT.STATUS}, age is {EVENT.AGE}, acknowledged: {EVENT.ACK.STATUS}.'),
('421','74','1','0','Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}','Discovery rule: {DISCOVERY.RULE.NAME}\r\n\r\nDevice IP: {DISCOVERY.DEVICE.IPADDRESS}\r\nDevice DNS: {DISCOVERY.DEVICE.DNS}\r\nDevice status: {DISCOVERY.DEVICE.STATUS}\r\nDevice uptime: {DISCOVERY.DEVICE.UPTIME}\r\n\r\nDevice service name: {DISCOVERY.SERVICE.NAME}\r\nDevice service port: {DISCOVERY.SERVICE.PORT}\r\nDevice service status: {DISCOVERY.SERVICE.STATUS}\r\nDevice service uptime: {DISCOVERY.SERVICE.UPTIME}'),
('422','74','2','0','Autoregistration: {HOST.HOST}','Host name: {HOST.HOST}\r\nHost IP: {HOST.IP}\r\nAgent port: {HOST.PORT}'),
('423','74','3','0','[{EVENT.STATUS}] {EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nOriginal problem ID: {EVENT.ID}'),
('424','74','3','1','[{EVENT.STATUS}] {EVENT.NAME}','Problem has been resolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nOriginal problem ID: {EVENT.ID}'),
('425','74','4','0','Service "{SERVICE.NAME}" problem: {EVENT.NAME}','Service problem started at {EVENT.TIME} on {EVENT.DATE}\r\nService problem name: {EVENT.NAME}\r\nService: {SERVICE.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\nService description: {SERVICE.DESCRIPTION}\r\n\r\n{SERVICE.ROOTCAUSE}'),
('426','74','4','1','Service "{SERVICE.NAME}" resolved in {EVENT.DURATION}: {EVENT.NAME}','Service "{SERVICE.NAME}" has been resolved at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nProblem duration: {EVENT.DURATION}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\nService description: {SERVICE.DESCRIPTION}'),
('427','74','4','2','Changed "{SERVICE.NAME}" service status to {EVENT.UPDATE.SEVERITY} in {EVENT.AGE}','Changed "{SERVICE.NAME}" service status to {EVENT.UPDATE.SEVERITY} at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\nCurrent problem age is {EVENT.AGE}.\r\nService description: {SERVICE.DESCRIPTION}\r\n\r\n{SERVICE.ROOTCAUSE}'),
('428','75','0','0','Problem: {EVENT.NAME}','- Problem started at {EVENT.TIME} on {EVENT.DATE}
- Problem name: {EVENT.NAME}
- Host: {HOST.NAME}
- Severity: {EVENT.SEVERITY}
- Operational data: {EVENT.OPDATA}
- Original problem ID: {EVENT.ID}
{TRIGGER.URL}'),
('429','75','0','1','Resolved in {EVENT.DURATION}: {EVENT.NAME}','- Problem has been resolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}
- Problem name: {EVENT.NAME}
- Host: {HOST.NAME}
- Severity: {EVENT.SEVERITY}
- Operational data: {EVENT.OPDATA}
- Original problem ID: {EVENT.ID}
{TRIGGER.URL}'),
('430','75','0','2','Updated problem in {EVENT.AGE}: {EVENT.NAME}','{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.TIME} on {EVENT.UPDATE.DATE}.
{EVENT.UPDATE.MESSAGE}
Current problem status is {EVENT.STATUS}, age is {EVENT.AGE}, acknowledged: {EVENT.ACK.STATUS}.
'),
('431','75','1','0','Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}','- Discovery rule: {DISCOVERY.RULE.NAME}
- Device IP: {DISCOVERY.DEVICE.IPADDRESS}
- Device DNS: {DISCOVERY.DEVICE.DNS}
- Device status: {DISCOVERY.DEVICE.STATUS}
- Device uptime: {DISCOVERY.DEVICE.UPTIME}
- Device service name: {DISCOVERY.SERVICE.NAME}
- Device service port: {DISCOVERY.SERVICE.PORT}
- Device service status: {DISCOVERY.SERVICE.STATUS}
- Device service uptime: {DISCOVERY.SERVICE.UPTIME}
'),
('432','75','2','0','Autoregistration: {HOST.HOST}','- Host name: {HOST.HOST}
- Host IP: {HOST.IP}
- Agent port: {HOST.PORT}
'),
('433','75','3','0','[{EVENT.STATUS}] {EVENT.NAME}','- Problem started at {EVENT.TIME} on {EVENT.DATE}
- Problem name: {EVENT.NAME}
- Host: {HOST.NAME}
- Original problem ID: {EVENT.ID}
'),
('434','75','3','1','[{EVENT.STATUS}] {EVENT.NAME}','- Problem has been resolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}
- Problem name: {EVENT.NAME}
- Host: {HOST.NAME}
- Original problem ID: {EVENT.ID}
'),
('435','75','4','0','Service "{SERVICE.NAME}" problem: {EVENT.NAME}','- Service problem started at {EVENT.TIME} on {EVENT.DATE}
- Service problem name: {EVENT.NAME}
- Service: {SERVICE.NAME}
- Severity: {EVENT.SEVERITY}
- Original problem ID: {EVENT.ID}
- Service description: {SERVICE.DESCRIPTION}
{SERVICE.ROOTCAUSE}
'),
('436','75','4','1','Service "{SERVICE.NAME}" resolved in {EVENT.DURATION}: {EVENT.NAME}','- Service {SERVICE.NAME} has been resolved at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}
- Problem name: {EVENT.NAME}
- Problem duration: {EVENT.DURATION}
- Severity: {EVENT.SEVERITY}
- Original problem ID: {EVENT.ID}
- Service description:
'),
('437','75','4','2','Changed "{SERVICE.NAME}" service status to {EVENT.UPDATE.SEVERITY} in {EVENT.AGE}','- Changed {SERVICE.NAME} service status to {EVENT.UPDATE.SEVERITY} at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.
- Current problem age is {EVENT.AGE}.
- Service description: {SERVICE.DESCRIPTION}
{SERVICE.ROOTCAUSE}
'),
('438','76','0','0','Problem: {EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOperational data: {EVENT.OPDATA}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('439','76','0','1','Resolved in {EVENT.DURATION}: {EVENT.NAME}','Problem has been resolved at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nProblem duration: {EVENT.DURATION}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('440','76','0','2','Updated problem in {EVENT.AGE}: {EVENT.NAME}','{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\n{EVENT.UPDATE.MESSAGE}\r\n\r\nCurrent problem status is {EVENT.STATUS}, age is {EVENT.AGE}, acknowledged: {EVENT.ACK.STATUS}.'),
('441','77','0','0','[{EVENT.STATUS}] {EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOperational data: {EVENT.OPDATA}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('442','77','0','1','[{EVENT.STATUS}] {EVENT.NAME}','Problem has been resolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('443','77','0','2','[{EVENT.STATUS}] {EVENT.NAME}','{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\n{EVENT.UPDATE.MESSAGE}\r\n\r\nCurrent problem status is {EVENT.STATUS}, acknowledged: {EVENT.ACK.STATUS}.'),
('444','77','1','0','Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}','Discovery rule: {DISCOVERY.RULE.NAME}\r\n\r\nDevice IP: {DISCOVERY.DEVICE.IPADDRESS}\r\nDevice DNS: {DISCOVERY.DEVICE.DNS}\r\nDevice status: {DISCOVERY.DEVICE.STATUS}\r\nDevice uptime: {DISCOVERY.DEVICE.UPTIME}\r\n\r\nDevice service name: {DISCOVERY.SERVICE.NAME}\r\nDevice service port: {DISCOVERY.SERVICE.PORT}\r\nDevice service status: {DISCOVERY.SERVICE.STATUS}\r\nDevice service uptime: {DISCOVERY.SERVICE.UPTIME}'),
('445','77','2','0','Autoregistration: {HOST.HOST}','Host name: {HOST.HOST}\r\nHost IP: {HOST.IP}\r\nAgent port: {HOST.PORT}'),
('446','78','0','0','[{EVENT.STATUS}] {EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOperational data: {EVENT.OPDATA}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('447','78','0','1','[{EVENT.STATUS}] {EVENT.NAME}','Problem has been resolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('448','78','0','2','[{EVENT.STATUS}] {EVENT.NAME}','{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\n{EVENT.UPDATE.MESSAGE}\r\n\r\nCurrent problem status is {EVENT.STATUS}, acknowledged: {EVENT.ACK.STATUS}.'),
('449','78','1','0','Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}','Discovery rule: {DISCOVERY.RULE.NAME}\r\n\r\nDevice IP: {DISCOVERY.DEVICE.IPADDRESS}\r\nDevice DNS: {DISCOVERY.DEVICE.DNS}\r\nDevice status: {DISCOVERY.DEVICE.STATUS}\r\nDevice uptime: {DISCOVERY.DEVICE.UPTIME}\r\n\r\nDevice service name: {DISCOVERY.SERVICE.NAME}\r\nDevice service port: {DISCOVERY.SERVICE.PORT}\r\nDevice service status: {DISCOVERY.SERVICE.STATUS}\r\nDevice service uptime: {DISCOVERY.SERVICE.UPTIME}'),
('450','78','2','0','Autoregistration: {HOST.HOST}','Host name: {HOST.HOST}\r\nHost IP: {HOST.IP}\r\nAgent port: {HOST.PORT}'),
('451','78','3','0','[{EVENT.STATUS}] {EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nOriginal problem ID: {EVENT.ID}'),
('452','78','3','1','[{EVENT.STATUS}] {EVENT.NAME}','Problem has been resolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nOriginal problem ID: {EVENT.ID}'),
('453','78','4','0','[{EVENT.STATUS}] Service "{SERVICE.NAME}" problem: {EVENT.NAME}','Service problem started at {EVENT.TIME} on {EVENT.DATE}\r\nService problem name: {EVENT.NAME}\r\nService: {SERVICE.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\nService description: {SERVICE.DESCRIPTION}\r\n\r\n{SERVICE.ROOTCAUSE}'),
('454','78','4','1','[{EVENT.STATUS}] Service "{SERVICE.NAME}" problem: {EVENT.NAME}','Service "{SERVICE.NAME}" has been resolved at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nProblem duration: {EVENT.DURATION}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\nService description: {SERVICE.DESCRIPTION}'),
('455','78','4','2','[{EVENT.STATUS}] Service "{SERVICE.NAME}" problem: {EVENT.NAME}','Changed "{SERVICE.NAME}" service status to {EVENT.UPDATE.SEVERITY} at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\nCurrent problem age is {EVENT.AGE}.\r\nService description: {SERVICE.DESCRIPTION}\r\n\r\n{SERVICE.ROOTCAUSE}'),
('456','79','0','0','[{EVENT.STATUS}] {EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOperational data: {EVENT.OPDATA}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('457','79','0','1','[{EVENT.STATUS}] {EVENT.NAME}','Problem has been resolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('458','79','0','2','[{EVENT.STATUS}] {EVENT.NAME}','{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\n{EVENT.UPDATE.MESSAGE}\r\n\r\nCurrent problem status is {EVENT.STATUS}, acknowledged: {EVENT.ACK.STATUS}.'),
('459','79','1','0','Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}','Discovery rule: {DISCOVERY.RULE.NAME}\r\n\r\nDevice IP: {DISCOVERY.DEVICE.IPADDRESS}\r\nDevice DNS: {DISCOVERY.DEVICE.DNS}\r\nDevice status: {DISCOVERY.DEVICE.STATUS}\r\nDevice uptime: {DISCOVERY.DEVICE.UPTIME}\r\n\r\nDevice service name: {DISCOVERY.SERVICE.NAME}\r\nDevice service port: {DISCOVERY.SERVICE.PORT}\r\nDevice service status: {DISCOVERY.SERVICE.STATUS}\r\nDevice service uptime: {DISCOVERY.SERVICE.UPTIME}'),
('460','79','2','0','Autoregistration: {HOST.HOST}','Host name: {HOST.HOST}\r\nHost IP: {HOST.IP}\r\nAgent port: {HOST.PORT}'),
('461','79','3','0','[{EVENT.STATUS}] {EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nOriginal problem ID: {EVENT.ID}'),
('462','79','3','1','[{EVENT.STATUS}] {EVENT.NAME}','Problem has been resolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nOriginal problem ID: {EVENT.ID}'),
('463','79','4','0','[{EVENT.STATUS}] Service "{SERVICE.NAME}" problem: {EVENT.NAME}','Service problem started at {EVENT.TIME} on {EVENT.DATE}\r\nService problem name: {EVENT.NAME}\r\nService: {SERVICE.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\nService description: {SERVICE.DESCRIPTION}\r\n\r\n{SERVICE.ROOTCAUSE}'),
('464','79','4','1','[{EVENT.STATUS}] Service "{SERVICE.NAME}" problem: {EVENT.NAME}','Service "{SERVICE.NAME}" has been resolved at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nProblem duration: {EVENT.DURATION}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\nService description: {SERVICE.DESCRIPTION}'),
('465','79','4','2','[{EVENT.STATUS}] Service "{SERVICE.NAME}" problem: {EVENT.NAME}','Changed "{SERVICE.NAME}" service status to {EVENT.UPDATE.SEVERITY} at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\nCurrent problem age is {EVENT.AGE}.\r\nService description: {SERVICE.DESCRIPTION}\r\n\r\n{SERVICE.ROOTCAUSE}'),
('466','80','0','0','Problem: {EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOperational data: {EVENT.OPDATA}\r\nOriginal problem ID: {EVENT.ID}'),
('467','80','0','1','Resolved in {EVENT.DURATION}: {EVENT.NAME}','Problem has been resolved at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nProblem duration: {EVENT.DURATION}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}'),
('468','80','0','2','Updated problem in {EVENT.AGE}: {EVENT.NAME}','{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\n{EVENT.UPDATE.MESSAGE}\r\n\r\nCurrent problem status is {EVENT.STATUS}, age is {EVENT.AGE}, acknowledged: {EVENT.ACK.STATUS}.'),
('469','80','1','0','Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}','Discovery rule: {DISCOVERY.RULE.NAME}\r\n\r\nDevice IP: {DISCOVERY.DEVICE.IPADDRESS}\r\nDevice DNS: {DISCOVERY.DEVICE.DNS}\r\nDevice status: {DISCOVERY.DEVICE.STATUS}\r\nDevice uptime: {DISCOVERY.DEVICE.UPTIME}\r\n\r\nDevice service name: {DISCOVERY.SERVICE.NAME}\r\nDevice service port: {DISCOVERY.SERVICE.PORT}\r\nDevice service status: {DISCOVERY.SERVICE.STATUS}\r\nDevice service uptime: {DISCOVERY.SERVICE.UPTIME}'),
('470','80','2','0','Autoregistration: {HOST.HOST}','Host name: {HOST.HOST}\r\nHost IP: {HOST.IP}\r\nAgent port: {HOST.PORT}'),
('471','81','0','0','[{EVENT.STATUS}] {EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOperational data: {EVENT.OPDATA}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('472','81','0','1','[{EVENT.STATUS}] {EVENT.NAME}','Problem has been resolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('473','81','0','2','[{EVENT.STATUS}] {EVENT.NAME}','{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\n{EVENT.UPDATE.MESSAGE}\r\n\r\nCurrent problem status is {EVENT.STATUS}, acknowledged: {EVENT.ACK.STATUS}.'),
('474','81','1','0','Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}','Discovery rule: {DISCOVERY.RULE.NAME}\r\n\r\nDevice IP: {DISCOVERY.DEVICE.IPADDRESS}\r\nDevice DNS: {DISCOVERY.DEVICE.DNS}\r\nDevice status: {DISCOVERY.DEVICE.STATUS}\r\nDevice uptime: {DISCOVERY.DEVICE.UPTIME}\r\n\r\nDevice service name: {DISCOVERY.SERVICE.NAME}\r\nDevice service port: {DISCOVERY.SERVICE.PORT}\r\nDevice service status: {DISCOVERY.SERVICE.STATUS}\r\nDevice service uptime: {DISCOVERY.SERVICE.UPTIME}'),
('475','81','2','0','Autoregistration: {HOST.HOST}','Host name: {HOST.HOST}\r\nHost IP: {HOST.IP}\r\nAgent port: {HOST.PORT}'),
('476','82','0','0','[{EVENT.STATUS}] {EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOperational data: {EVENT.OPDATA}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('477','82','0','1','[{EVENT.STATUS}] {EVENT.NAME}','Problem has been resolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('478','82','0','2','[{EVENT.STATUS}] {EVENT.NAME}','{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\n{EVENT.UPDATE.MESSAGE}\r\n\r\nCurrent problem status is {EVENT.STATUS}, acknowledged: {EVENT.ACK.STATUS}.'),
('479','82','1','0','Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}','Discovery rule: {DISCOVERY.RULE.NAME}\r\n\r\nDevice IP: {DISCOVERY.DEVICE.IPADDRESS}\r\nDevice DNS: {DISCOVERY.DEVICE.DNS}\r\nDevice status: {DISCOVERY.DEVICE.STATUS}\r\nDevice uptime: {DISCOVERY.DEVICE.UPTIME}\r\n\r\nDevice service name: {DISCOVERY.SERVICE.NAME}\r\nDevice service port: {DISCOVERY.SERVICE.PORT}\r\nDevice service status: {DISCOVERY.SERVICE.STATUS}\r\nDevice service uptime: {DISCOVERY.SERVICE.UPTIME}'),
('480','82','2','0','Autoregistration: {HOST.HOST}','Host name: {HOST.HOST}\r\nHost IP: {HOST.IP}\r\nAgent port: {HOST.PORT}'),
('481','82','3','0','[{EVENT.STATUS}] {EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nOriginal problem ID: {EVENT.ID}'),
('482','82','3','1','[{EVENT.STATUS}] {EVENT.NAME}','Problem has been resolved in {EVENT.DURATION}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nOriginal problem ID: {EVENT.ID}'),
('483','83','0','0','Problem: {EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOperational data: {EVENT.OPDATA}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('484','83','0','1','Resolved in {EVENT.DURATION}: {EVENT.NAME}','Problem has been resolved at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nProblem duration: {EVENT.DURATION}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('485','83','0','2','Updated problem in {EVENT.AGE}: {EVENT.NAME}','{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\n{EVENT.UPDATE.MESSAGE}\r\n\r\nCurrent problem status is {EVENT.STATUS}, age is {EVENT.AGE}, acknowledged: {EVENT.ACK.STATUS}.'),
('486','83','1','0','Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}','Discovery rule: {DISCOVERY.RULE.NAME}\r\n\r\nDevice IP: {DISCOVERY.DEVICE.IPADDRESS}\r\nDevice DNS: {DISCOVERY.DEVICE.DNS}\r\nDevice status: {DISCOVERY.DEVICE.STATUS}\r\nDevice uptime: {DISCOVERY.DEVICE.UPTIME}\r\n\r\nDevice service name: {DISCOVERY.SERVICE.NAME}\r\nDevice service port: {DISCOVERY.SERVICE.PORT}\r\nDevice service status: {DISCOVERY.SERVICE.STATUS}\r\nDevice service uptime: {DISCOVERY.SERVICE.UPTIME}'),
('487','83','2','0','Autoregistration: {HOST.HOST}','Host name: {HOST.HOST}\r\nHost IP: {HOST.IP}\r\nAgent port: {HOST.PORT}'),
('488','84','0','0','Problem: {EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOperational data: {EVENT.OPDATA}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('489','84','0','1','Resolved in {EVENT.DURATION}: {EVENT.NAME}','Problem has been resolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('490','84','0','2','Updated problem in {EVENT.AGE}: {EVENT.NAME}','{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\n{EVENT.UPDATE.MESSAGE}\r\n\r\nCurrent problem status is {EVENT.STATUS}, age is {EVENT.AGE}, acknowledged: {EVENT.ACK.STATUS}.'),
('491','84','1','0','Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}','Discovery rule: {DISCOVERY.RULE.NAME}\r\n\r\nDevice IP: {DISCOVERY.DEVICE.IPADDRESS}\r\nDevice DNS: {DISCOVERY.DEVICE.DNS}\r\nDevice status: {DISCOVERY.DEVICE.STATUS}\r\nDevice uptime: {DISCOVERY.DEVICE.UPTIME}\r\n\r\nDevice service name: {DISCOVERY.SERVICE.NAME}\r\nDevice service port: {DISCOVERY.SERVICE.PORT}\r\nDevice service status: {DISCOVERY.SERVICE.STATUS}\r\nDevice service uptime: {DISCOVERY.SERVICE.UPTIME}'),
('492','84','2','0','Autoregistration: {HOST.HOST}','Host name: {HOST.HOST}\r\nHost IP: {HOST.IP}\r\nAgent port: {HOST.PORT}'),
('493','84','3','0','[{EVENT.STATUS}] {EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nOriginal problem ID: {EVENT.ID}'),
('494','84','3','1','[{EVENT.STATUS}] {EVENT.NAME}','Problem has been resolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nOriginal problem ID: {EVENT.ID}'),
('495','84','4','0','Service "{SERVICE.NAME}" problem: {EVENT.NAME}','Service problem started at {EVENT.TIME} on {EVENT.DATE}\r\nService problem name: {EVENT.NAME}\r\nService: {SERVICE.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\nService description: {SERVICE.DESCRIPTION}\r\n\r\n{SERVICE.ROOTCAUSE}'),
('496','84','4','1','Service "{SERVICE.NAME}" resolved in {EVENT.DURATION}: {EVENT.NAME}','Service "{SERVICE.NAME}" has been resolved at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nProblem duration: {EVENT.DURATION}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\nService description: {SERVICE.DESCRIPTION}'),
('497','84','4','2','Changed "{SERVICE.NAME}" service status to {EVENT.UPDATE.SEVERITY} in {EVENT.AGE}','Changed "{SERVICE.NAME}" service status to {EVENT.UPDATE.SEVERITY} at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\nCurrent problem age is {EVENT.AGE}.\r\nService description: {SERVICE.DESCRIPTION}\r\n\r\n{SERVICE.ROOTCAUSE}'),
('498','85','0','0','Problem: {EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOperational data: {EVENT.OPDATA}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('499','85','0','1','Resolved in {EVENT.DURATION}: {EVENT.NAME}','Problem has been resolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('500','85','0','2','Updated problem in {EVENT.AGE}: {EVENT.NAME}','{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\n{EVENT.UPDATE.MESSAGE}\r\n\r\nCurrent problem status is {EVENT.STATUS}, age is {EVENT.AGE}, acknowledged: {EVENT.ACK.STATUS}.'),
('501','85','1','0','Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}','Discovery rule: {DISCOVERY.RULE.NAME}\r\n\r\nDevice IP: {DISCOVERY.DEVICE.IPADDRESS}\r\nDevice DNS: {DISCOVERY.DEVICE.DNS}\r\nDevice status: {DISCOVERY.DEVICE.STATUS}\r\nDevice uptime: {DISCOVERY.DEVICE.UPTIME}\r\n\r\nDevice service name: {DISCOVERY.SERVICE.NAME}\r\nDevice service port: {DISCOVERY.SERVICE.PORT}\r\nDevice service status: {DISCOVERY.SERVICE.STATUS}\r\nDevice service uptime: {DISCOVERY.SERVICE.UPTIME}'),
('502','85','2','0','Autoregistration: {HOST.HOST}','Host name: {HOST.HOST}\r\nHost IP: {HOST.IP}\r\nAgent port: {HOST.PORT}'),
('503','85','3','0','[{EVENT.STATUS}] {EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nOriginal problem ID: {EVENT.ID}'),
('504','85','3','1','[{EVENT.STATUS}] {EVENT.NAME}','Problem has been resolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nOriginal problem ID: {EVENT.ID}'),
('505','85','4','0','Service "{SERVICE.NAME}" problem: {EVENT.NAME}','Service problem started at {EVENT.TIME} on {EVENT.DATE}\r\nService problem name: {EVENT.NAME}\r\nService: {SERVICE.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\nService description: {SERVICE.DESCRIPTION}\r\n\r\n{SERVICE.ROOTCAUSE}'),
('506','85','4','1','Service "{SERVICE.NAME}" resolved in {EVENT.DURATION}: {EVENT.NAME}','Service "{SERVICE.NAME}" has been resolved at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nProblem duration: {EVENT.DURATION}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\nService description: {SERVICE.DESCRIPTION}'),
('507','85','4','2','Changed "{SERVICE.NAME}" service status to {EVENT.UPDATE.SEVERITY} in {EVENT.AGE}','Changed "{SERVICE.NAME}" service status to {EVENT.UPDATE.SEVERITY} at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\nCurrent problem age is {EVENT.AGE}.\r\nService description: {SERVICE.DESCRIPTION}\r\n\r\n{SERVICE.ROOTCAUSE}'),
('508','86','0','0','Problem: {EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOperational data: {EVENT.OPDATA}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('509','86','0','1','Resolved in {EVENT.DURATION}: {EVENT.NAME}','Problem has been resolved at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nProblem duration: {EVENT.DURATION}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('510','86','0','2','Updated problem in {EVENT.AGE}: {EVENT.NAME}','{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\n{EVENT.UPDATE.MESSAGE}\r\n\r\nCurrent problem status is {EVENT.STATUS}, age is {EVENT.AGE}, acknowledged: {EVENT.ACK.STATUS}.'),
('511','86','1','0','Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}','Discovery rule: {DISCOVERY.RULE.NAME}\r\n\r\nDevice IP: {DISCOVERY.DEVICE.IPADDRESS}\r\nDevice DNS: {DISCOVERY.DEVICE.DNS}\r\nDevice status: {DISCOVERY.DEVICE.STATUS}\r\nDevice uptime: {DISCOVERY.DEVICE.UPTIME}\r\n\r\nDevice service name: {DISCOVERY.SERVICE.NAME}\r\nDevice service port: {DISCOVERY.SERVICE.PORT}\r\nDevice service status: {DISCOVERY.SERVICE.STATUS}\r\nDevice service uptime: {DISCOVERY.SERVICE.UPTIME}'),
('512','86','2','0','Autoregistration: {HOST.HOST}','Host name: {HOST.HOST}\r\nHost IP: {HOST.IP}\r\nAgent port: {HOST.PORT}'),
('513','87','0','0','Problem: {EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOperational data: {EVENT.OPDATA}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('514','87','0','1','Resolved in {EVENT.DURATION}: {EVENT.NAME}','Problem has been resolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('515','87','0','2','Updated problem in {EVENT.AGE}: {EVENT.NAME}','{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\n{EVENT.UPDATE.MESSAGE}\r\n\r\nCurrent problem status is {EVENT.STATUS}, age is {EVENT.AGE}, acknowledged: {EVENT.ACK.STATUS}.'),
('516','87','1','0','Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}','Discovery rule: {DISCOVERY.RULE.NAME}\r\n\r\nDevice IP: {DISCOVERY.DEVICE.IPADDRESS}\r\nDevice DNS: {DISCOVERY.DEVICE.DNS}\r\nDevice status: {DISCOVERY.DEVICE.STATUS}\r\nDevice uptime: {DISCOVERY.DEVICE.UPTIME}\r\n\r\nDevice service name: {DISCOVERY.SERVICE.NAME}\r\nDevice service port: {DISCOVERY.SERVICE.PORT}\r\nDevice service status: {DISCOVERY.SERVICE.STATUS}\r\nDevice service uptime: {DISCOVERY.SERVICE.UPTIME}'),
('517','87','2','0','Autoregistration: {HOST.HOST}','Host name: {HOST.HOST}\r\nHost IP: {HOST.IP}\r\nAgent port: {HOST.PORT}'),
('518','87','3','0','[{EVENT.STATUS}] {EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nOriginal problem ID: {EVENT.ID}'),
('519','87','3','1','[{EVENT.STATUS}] {EVENT.NAME}','Problem has been resolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nOriginal problem ID: {EVENT.ID}'),
('520','87','4','0','Service "{SERVICE.NAME}" problem: {EVENT.NAME}','Service problem started at {EVENT.TIME} on {EVENT.DATE}\r\nService problem name: {EVENT.NAME}\r\nService: {SERVICE.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\nService description: {SERVICE.DESCRIPTION}\r\n\r\n{SERVICE.ROOTCAUSE}'),
('521','87','4','1','Service "{SERVICE.NAME}" resolved in {EVENT.DURATION}: {EVENT.NAME}','Service "{SERVICE.NAME}" has been resolved at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nProblem duration: {EVENT.DURATION}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\nService description: {SERVICE.DESCRIPTION}'),
('522','87','4','2','Changed "{SERVICE.NAME}" service status to {EVENT.UPDATE.SEVERITY} in {EVENT.AGE}','Changed "{SERVICE.NAME}" service status to {EVENT.UPDATE.SEVERITY} at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\nCurrent problem age is {EVENT.AGE}.\r\nService description: {SERVICE.DESCRIPTION}\r\n\r\n{SERVICE.ROOTCAUSE}'),
('523','88','0','0','Problem: {EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOperational data: {EVENT.OPDATA}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('524','88','0','1','Resolved in {EVENT.DURATION}: {EVENT.NAME}','Problem has been resolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('525','88','0','2','Updated problem in {EVENT.AGE}: {EVENT.NAME}','{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\n{EVENT.UPDATE.MESSAGE}\r\n\r\nCurrent problem status is {EVENT.STATUS}, age is {EVENT.AGE}, acknowledged: {EVENT.ACK.STATUS}.'),
('526','88','1','0','Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}','Discovery rule: {DISCOVERY.RULE.NAME}\r\n\r\nDevice IP: {DISCOVERY.DEVICE.IPADDRESS}\r\nDevice DNS: {DISCOVERY.DEVICE.DNS}\r\nDevice status: {DISCOVERY.DEVICE.STATUS}\r\nDevice uptime: {DISCOVERY.DEVICE.UPTIME}\r\n\r\nDevice service name: {DISCOVERY.SERVICE.NAME}\r\nDevice service port: {DISCOVERY.SERVICE.PORT}\r\nDevice service status: {DISCOVERY.SERVICE.STATUS}\r\nDevice service uptime: {DISCOVERY.SERVICE.UPTIME}'),
('527','88','2','0','Autoregistration: {HOST.HOST}','Host name: {HOST.HOST}\r\nHost IP: {HOST.IP}\r\nAgent port: {HOST.PORT}'),
('528','88','3','0','[{EVENT.STATUS}] {EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nOriginal problem ID: {EVENT.ID}'),
('529','88','3','1','[{EVENT.STATUS}] {EVENT.NAME}','Problem has been resolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nOriginal problem ID: {EVENT.ID}'),
('530','88','4','0','Service "{SERVICE.NAME}" problem: {EVENT.NAME}','Service problem started at {EVENT.TIME} on {EVENT.DATE}\r\nService problem name: {EVENT.NAME}\r\nService: {SERVICE.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\nService description: {SERVICE.DESCRIPTION}\r\n\r\n{SERVICE.ROOTCAUSE}'),
('531','88','4','1','Service "{SERVICE.NAME}" resolved in {EVENT.DURATION}: {EVENT.NAME}','Service "{SERVICE.NAME}" has been resolved at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nProblem duration: {EVENT.DURATION}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\nService description: {SERVICE.DESCRIPTION}'),
('532','88','4','2','Changed "{SERVICE.NAME}" service status to {EVENT.UPDATE.SEVERITY} in {EVENT.AGE}','Changed "{SERVICE.NAME}" service status to {EVENT.UPDATE.SEVERITY} at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\nCurrent problem age is {EVENT.AGE}.\r\nService description: {SERVICE.DESCRIPTION}\r\n\r\n{SERVICE.ROOTCAUSE}'),
('533','89','0','0','Problem: {EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOperational data: {EVENT.OPDATA}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('534','89','0','1','Resolved in {EVENT.DURATION}: {EVENT.NAME}','Problem has been resolved at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nProblem duration: {EVENT.DURATION}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('535','89','0','2','Updated problem in {EVENT.AGE}: {EVENT.NAME}','{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\n{EVENT.UPDATE.MESSAGE}\r\n\r\nCurrent problem status is {EVENT.STATUS}, age is {EVENT.AGE}, acknowledged: {EVENT.ACK.STATUS}.'),
('536','89','1','0','Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}','Discovery rule: {DISCOVERY.RULE.NAME}\r\n\r\nDevice IP: {DISCOVERY.DEVICE.IPADDRESS}\r\nDevice DNS: {DISCOVERY.DEVICE.DNS}\r\nDevice status: {DISCOVERY.DEVICE.STATUS}\r\nDevice uptime: {DISCOVERY.DEVICE.UPTIME}\r\n\r\nDevice service name: {DISCOVERY.SERVICE.NAME}\r\nDevice service port: {DISCOVERY.SERVICE.PORT}\r\nDevice service status: {DISCOVERY.SERVICE.STATUS}\r\nDevice service uptime: {DISCOVERY.SERVICE.UPTIME}'),
('537','89','2','0','Autoregistration: {HOST.HOST}','Host name: {HOST.HOST}\r\nHost IP: {HOST.IP}\r\nAgent port: {HOST.PORT}'),
('538','90','0','0','Problem: {EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOperational data: {EVENT.OPDATA}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('539','90','0','1','Resolved: {EVENT.NAME}','Problem has been resolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('540','90','0','2','Updated problem: {EVENT.NAME}','{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\n{EVENT.UPDATE.MESSAGE}\r\n\r\nCurrent problem status is {EVENT.STATUS}, acknowledged: {EVENT.ACK.STATUS}.'),
('541','90','1','0','Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}','Discovery rule: {DISCOVERY.RULE.NAME}\r\n\r\nDevice IP: {DISCOVERY.DEVICE.IPADDRESS}\r\nDevice DNS: {DISCOVERY.DEVICE.DNS}\r\nDevice status: {DISCOVERY.DEVICE.STATUS}\r\nDevice uptime: {DISCOVERY.DEVICE.UPTIME}\r\n\r\nDevice service name: {DISCOVERY.SERVICE.NAME}\r\nDevice service port: {DISCOVERY.SERVICE.PORT}\r\nDevice service status: {DISCOVERY.SERVICE.STATUS}\r\nDevice service uptime: {DISCOVERY.SERVICE.UPTIME}'),
('542','90','2','0','Autoregistration: {HOST.HOST}','Host name: {HOST.HOST}\r\nHost IP: {HOST.IP}\r\nAgent port: {HOST.PORT}'),
('543','91','0','0','[{EVENT.STATUS}] {EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOperational data: {EVENT.OPDATA}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('544','91','0','1','[{EVENT.STATUS}] {EVENT.NAME}','Problem has been resolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('545','91','0','2','[{EVENT.STATUS}] {EVENT.NAME}','{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\n{EVENT.UPDATE.MESSAGE}\r\n\r\nCurrent problem status is {EVENT.STATUS}, acknowledged: {EVENT.ACK.STATUS}.'),
('546','91','1','0','Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}','Discovery rule: {DISCOVERY.RULE.NAME}\r\n\r\nDevice IP: {DISCOVERY.DEVICE.IPADDRESS}\r\nDevice DNS: {DISCOVERY.DEVICE.DNS}\r\nDevice status: {DISCOVERY.DEVICE.STATUS}\r\nDevice uptime: {DISCOVERY.DEVICE.UPTIME}\r\n\r\nDevice service name: {DISCOVERY.SERVICE.NAME}\r\nDevice service port: {DISCOVERY.SERVICE.PORT}\r\nDevice service status: {DISCOVERY.SERVICE.STATUS}\r\nDevice service uptime: {DISCOVERY.SERVICE.UPTIME}'),
('547','91','2','0','Autoregistration: {HOST.HOST}','Host name: {HOST.HOST}\r\nHost IP: {HOST.IP}\r\nAgent port: {HOST.PORT}'),
('548','92','0','0','[{EVENT.STATUS}] {EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOperational data: {EVENT.OPDATA}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('549','92','0','1','[{EVENT.STATUS}] {EVENT.NAME}','Problem has been resolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('550','92','0','2','[{EVENT.STATUS}] {EVENT.NAME}','{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\n{EVENT.UPDATE.MESSAGE}\r\n\r\nCurrent problem status is {EVENT.STATUS}, acknowledged: {EVENT.ACK.STATUS}.'),
('551','92','1','0','Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}','Discovery rule: {DISCOVERY.RULE.NAME}\r\n\r\nDevice IP: {DISCOVERY.DEVICE.IPADDRESS}\r\nDevice DNS: {DISCOVERY.DEVICE.DNS}\r\nDevice status: {DISCOVERY.DEVICE.STATUS}\r\nDevice uptime: {DISCOVERY.DEVICE.UPTIME}\r\n\r\nDevice service name: {DISCOVERY.SERVICE.NAME}\r\nDevice service port: {DISCOVERY.SERVICE.PORT}\r\nDevice service status: {DISCOVERY.SERVICE.STATUS}\r\nDevice service uptime: {DISCOVERY.SERVICE.UPTIME}'),
('552','92','2','0','Autoregistration: {HOST.HOST}','Host name: {HOST.HOST}\r\nHost IP: {HOST.IP}\r\nAgent port: {HOST.PORT}'),
('553','93','0','0','Problem: {EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOperational data: {EVENT.OPDATA}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('554','93','0','1','Resolved: {EVENT.NAME}','Problem has been resolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('555','93','0','2','Updated problem: {EVENT.NAME}','{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\n{EVENT.UPDATE.MESSAGE}\r\n\r\nCurrent problem status is {EVENT.STATUS}, acknowledged: {EVENT.ACK.STATUS}.'),
('556','93','1','0','Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}','Discovery rule: {DISCOVERY.RULE.NAME}\r\n\r\nDevice IP: {DISCOVERY.DEVICE.IPADDRESS}\r\nDevice DNS: {DISCOVERY.DEVICE.DNS}\r\nDevice status: {DISCOVERY.DEVICE.STATUS}\r\nDevice uptime: {DISCOVERY.DEVICE.UPTIME}\r\n\r\nDevice service name: {DISCOVERY.SERVICE.NAME}\r\nDevice service port: {DISCOVERY.SERVICE.PORT}\r\nDevice service status: {DISCOVERY.SERVICE.STATUS}\r\nDevice service uptime: {DISCOVERY.SERVICE.UPTIME}'),
('557','93','2','0','Autoregistration: {HOST.HOST}','Host name: {HOST.HOST}\r\nHost IP: {HOST.IP}\r\nAgent port: {HOST.PORT}'),
('558','94','0','0','Problem: {EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOperational data: {EVENT.OPDATA}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('559','94','0','1','Resolved in {EVENT.DURATION}: {EVENT.NAME}','Problem has been resolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('560','94','0','2','Updated: {EVENT.NAME}','Problem updated at {EVENT.TIME} on {EVENT.DATE}\r\n{USER.FULLNAME} {EVENT.UPDATE.ACTION}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nOperational data: {EVENT.OPDATA}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('561','94','1','0','Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}','Discovery rule: {DISCOVERY.RULE.NAME}\r\n\r\nDevice IP: {DISCOVERY.DEVICE.IPADDRESS}\r\nDevice DNS: {DISCOVERY.DEVICE.DNS}\r\nDevice status: {DISCOVERY.DEVICE.STATUS}\r\nDevice uptime: {DISCOVERY.DEVICE.UPTIME}\r\n\r\nDevice service name: {DISCOVERY.SERVICE.NAME}\r\nDevice service port: {DISCOVERY.SERVICE.PORT}\r\nDevice service status: {DISCOVERY.SERVICE.STATUS}\r\nDevice service uptime: {DISCOVERY.SERVICE.UPTIME}'),
('562','94','2','0','Autoregistration: {HOST.HOST}','Host name: {HOST.HOST}\r\nHost IP: {HOST.IP}\r\nAgent port: {HOST.PORT}'),
('563','94','3','0','[{EVENT.STATUS}] {EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nOriginal problem ID: {EVENT.ID}'),
('564','94','3','1','[{EVENT.STATUS}] {EVENT.NAME}','Problem has been resolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nOriginal problem ID: {EVENT.ID}'),
('565','94','4','0','Service "{SERVICE.NAME}" problem: {EVENT.NAME}','Service problem started at {EVENT.TIME} on {EVENT.DATE}\r\nService problem name: {EVENT.NAME}\r\nService: {SERVICE.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\nService description: {SERVICE.DESCRIPTION}\r\n\r\n{SERVICE.ROOTCAUSE}'),
('566','94','4','1','Service "{SERVICE.NAME}" resolved in {EVENT.DURATION}: {EVENT.NAME}','Service "{SERVICE.NAME}" has been resolved at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nProblem duration: {EVENT.DURATION}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\nService description: {SERVICE.DESCRIPTION}'),
('567','94','4','2','Changed "{SERVICE.NAME}" service status to {EVENT.UPDATE.SEVERITY} in {EVENT.AGE}','Changed "{SERVICE.NAME}" service status to {EVENT.UPDATE.SEVERITY} at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\nCurrent problem age is {EVENT.AGE}.\r\nService description: {SERVICE.DESCRIPTION}\r\n\r\n{SERVICE.ROOTCAUSE}'),
('568','95','0','0','[{EVENT.STATUS}] {EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOperational data: {EVENT.OPDATA}\r\nOriginal problem ID: {EVENT.ID}\r\n\r\nTrigger description: {TRIGGER.DESCRIPTION}'),
('569','95','0','1','[{EVENT.STATUS}] {EVENT.NAME}','Problem has been resolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('570','95','0','2','[{EVENT.STATUS}] {EVENT.NAME}','{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\n{EVENT.UPDATE.MESSAGE}\r\n\r\nCurrent problem status is {EVENT.STATUS}, acknowledged: {EVENT.ACK.STATUS}.'),
('571','95','1','0','Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}','Discovery rule: {DISCOVERY.RULE.NAME}\r\n\r\nDevice IP: {DISCOVERY.DEVICE.IPADDRESS}\r\nDevice DNS: {DISCOVERY.DEVICE.DNS}\r\nDevice status: {DISCOVERY.DEVICE.STATUS}\r\nDevice uptime: {DISCOVERY.DEVICE.UPTIME}\r\n\r\nDevice service name: {DISCOVERY.SERVICE.NAME}\r\nDevice service port: {DISCOVERY.SERVICE.PORT}\r\nDevice service status: {DISCOVERY.SERVICE.STATUS}\r\nDevice service uptime: {DISCOVERY.SERVICE.UPTIME}'),
('572','95','2','0','Autoregistration: {HOST.HOST}','Host name: {HOST.HOST}\r\nHost IP: {HOST.IP}\r\nAgent port: {HOST.PORT}'),
('573','96','0','0','Problem: {EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOperational data: {EVENT.OPDATA}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('574','96','0','1','Resolved: {EVENT.NAME}','Problem has been resolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('575','96','0','2','Updated problem: {EVENT.NAME}','{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\n{EVENT.UPDATE.MESSAGE}\r\n\r\nCurrent problem status is {EVENT.STATUS}, acknowledged: {EVENT.ACK.STATUS}.'),
('576','96','1','0','Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}','Discovery rule: {DISCOVERY.RULE.NAME}\r\n\r\nDevice IP: {DISCOVERY.DEVICE.IPADDRESS}\r\nDevice DNS: {DISCOVERY.DEVICE.DNS}\r\nDevice status: {DISCOVERY.DEVICE.STATUS}\r\nDevice uptime: {DISCOVERY.DEVICE.UPTIME}\r\n\r\nDevice service name: {DISCOVERY.SERVICE.NAME}\r\nDevice service port: {DISCOVERY.SERVICE.PORT}\r\nDevice service status: {DISCOVERY.SERVICE.STATUS}\r\nDevice service uptime: {DISCOVERY.SERVICE.UPTIME}'),
('577','96','2','0','Autoregistration: {HOST.HOST}','Host name: {HOST.HOST}\r\nHost IP: {HOST.IP}\r\nAgent port: {HOST.PORT}'),
('578','97','0','0','Problem: {EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOperational data: {EVENT.OPDATA}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('579','97','0','1','Resolved in {EVENT.DURATION}: {EVENT.NAME}','Problem has been resolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('580','97','0','2','Updated problem in {EVENT.AGE}: {EVENT.NAME}','{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\n{EVENT.UPDATE.MESSAGE}\r\n\r\nCurrent problem status is {EVENT.STATUS}, age is {EVENT.AGE}, acknowledged: {EVENT.ACK.STATUS}.'),
('581','97','1','0','Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}','Discovery rule: {DISCOVERY.RULE.NAME}\r\n\r\nDevice IP: {DISCOVERY.DEVICE.IPADDRESS}\r\nDevice DNS: {DISCOVERY.DEVICE.DNS}\r\nDevice status: {DISCOVERY.DEVICE.STATUS}\r\nDevice uptime: {DISCOVERY.DEVICE.UPTIME}\r\n\r\nDevice service name: {DISCOVERY.SERVICE.NAME}\r\nDevice service port: {DISCOVERY.SERVICE.PORT}\r\nDevice service status: {DISCOVERY.SERVICE.STATUS}\r\nDevice service uptime: {DISCOVERY.SERVICE.UPTIME}'),
('582','97','2','0','Autoregistration: {HOST.HOST}','Host name: {HOST.HOST}\r\nHost IP: {HOST.IP}\r\nAgent port: {HOST.PORT}'),
('583','97','3','0','[{EVENT.STATUS}] {EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nOriginal problem ID: {EVENT.ID}'),
('584','97','3','1','[{EVENT.STATUS}] {EVENT.NAME}','Problem has been resolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nOriginal problem ID: {EVENT.ID}'),
('585','97','4','0','Service "{SERVICE.NAME}" problem: {EVENT.NAME}','Service problem started at {EVENT.TIME} on {EVENT.DATE}\r\nService problem name: {EVENT.NAME}\r\nService: {SERVICE.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\nService description: {SERVICE.DESCRIPTION}\r\n\r\n{SERVICE.ROOTCAUSE}'),
('586','97','4','1','Service "{SERVICE.NAME}" resolved in {EVENT.DURATION}: {EVENT.NAME}','Service "{SERVICE.NAME}" has been resolved at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nProblem duration: {EVENT.DURATION}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\nService description: {SERVICE.DESCRIPTION}'),
('587','97','4','2','Changed "{SERVICE.NAME}" service status to {EVENT.UPDATE.SEVERITY} in {EVENT.AGE}','Changed "{SERVICE.NAME}" service status to {EVENT.UPDATE.SEVERITY} at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\nCurrent problem age is {EVENT.AGE}.\r\nService description: {SERVICE.DESCRIPTION}\r\n\r\n{SERVICE.ROOTCAUSE}'),
('588','98','0','0','Problem: {EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOperational data: {EVENT.OPDATA}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('589','98','0','1','Resolved in {EVENT.DURATION}: {EVENT.NAME}','Problem has been resolved at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nProblem duration: {EVENT.DURATION}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('590','98','0','2','Updated problem in {EVENT.AGE}: {EVENT.NAME}','{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\n{EVENT.UPDATE.MESSAGE}\r\n\r\nCurrent problem status is {EVENT.STATUS}, age is {EVENT.AGE}, acknowledged: {EVENT.ACK.STATUS}.'),
('591','98','1','0','Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}','Discovery rule: {DISCOVERY.RULE.NAME}\r\n\r\nDevice IP: {DISCOVERY.DEVICE.IPADDRESS}\r\nDevice DNS: {DISCOVERY.DEVICE.DNS}\r\nDevice status: {DISCOVERY.DEVICE.STATUS}\r\nDevice uptime: {DISCOVERY.DEVICE.UPTIME}\r\n\r\nDevice service name: {DISCOVERY.SERVICE.NAME}\r\nDevice service port: {DISCOVERY.SERVICE.PORT}\r\nDevice service status: {DISCOVERY.SERVICE.STATUS}\r\nDevice service uptime: {DISCOVERY.SERVICE.UPTIME}'),
('592','98','2','0','Autoregistration: {HOST.HOST}','Host name: {HOST.HOST}\r\nHost IP: {HOST.IP}\r\nAgent port: {HOST.PORT}'),
('593','99','0','0','Problem: {EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOperational data: {EVENT.OPDATA}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('594','99','0','1','Resolved in {EVENT.DURATION}: {EVENT.NAME}','Problem has been resolved at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nProblem duration: {EVENT.DURATION}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('595','99','0','2','[{EVENT.STATUS}] {EVENT.NAME}','{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\n{EVENT.UPDATE.MESSAGE}\r\n\r\nCurrent problem status is {EVENT.STATUS}, acknowledged: {EVENT.ACK.STATUS}.'),
('596','99','1','0','Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}','Discovery rule: {DISCOVERY.RULE.NAME}\r\n\r\nDevice IP: {DISCOVERY.DEVICE.IPADDRESS}\r\nDevice DNS: {DISCOVERY.DEVICE.DNS}\r\nDevice status: {DISCOVERY.DEVICE.STATUS}\r\nDevice uptime: {DISCOVERY.DEVICE.UPTIME}\r\n\r\nDevice service name: {DISCOVERY.SERVICE.NAME}\r\nDevice service port: {DISCOVERY.SERVICE.PORT}\r\nDevice service status: {DISCOVERY.SERVICE.STATUS}\r\nDevice service uptime: {DISCOVERY.SERVICE.UPTIME}'),
('597','99','2','0','Autoregistration: {HOST.HOST}','Host name: {HOST.HOST}\r\nHost IP: {HOST.IP}\r\nAgent port: {HOST.PORT}'),
('598','100','0','0','Problem: {EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOperational data: {EVENT.OPDATA}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('599','100','0','1','Resolved in {EVENT.DURATION}: {EVENT.NAME}','Problem has been resolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('600','100','0','2','Updated problem in {EVENT.AGE}: {EVENT.NAME}','{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\n{EVENT.UPDATE.MESSAGE}\r\n\r\nCurrent problem status is {EVENT.STATUS}, age is {EVENT.AGE}, acknowledged: {EVENT.ACK.STATUS}.'),
('601','100','1','0','Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}','Discovery rule: {DISCOVERY.RULE.NAME}\r\n\r\nDevice IP: {DISCOVERY.DEVICE.IPADDRESS}\r\nDevice DNS: {DISCOVERY.DEVICE.DNS}\r\nDevice status: {DISCOVERY.DEVICE.STATUS}\r\nDevice uptime: {DISCOVERY.DEVICE.UPTIME}\r\n\r\nDevice service name: {DISCOVERY.SERVICE.NAME}\r\nDevice service port: {DISCOVERY.SERVICE.PORT}\r\nDevice service status: {DISCOVERY.SERVICE.STATUS}\r\nDevice service uptime: {DISCOVERY.SERVICE.UPTIME}'),
('602','100','2','0','Autoregistration: {HOST.HOST}','Host name: {HOST.HOST}\r\nHost IP: {HOST.IP}\r\nAgent port: {HOST.PORT}'),
('603','100','3','0','[{EVENT.STATUS}] {EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nOriginal problem ID: {EVENT.ID}'),
('604','100','3','1','[{EVENT.STATUS}] {EVENT.NAME}','Problem has been resolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nOriginal problem ID: {EVENT.ID}'),
('605','100','4','0','Service "{SERVICE.NAME}" problem: {EVENT.NAME}','Service problem started at {EVENT.TIME} on {EVENT.DATE}\r\nService problem name: {EVENT.NAME}\r\nService: {SERVICE.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\nService description: {SERVICE.DESCRIPTION}\r\n\r\n{SERVICE.ROOTCAUSE}'),
('606','100','4','1','Service "{SERVICE.NAME}" resolved in {EVENT.DURATION}: {EVENT.NAME}','Service "{SERVICE.NAME}" has been resolved at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nProblem duration: {EVENT.DURATION}\r\nSeverity: {EVENT.SEVERITY}\r\nOriginal problem ID: {EVENT.ID}\r\nService description: {SERVICE.DESCRIPTION}'),
('607','100','4','2','Changed "{SERVICE.NAME}" service status to {EVENT.UPDATE.SEVERITY} in {EVENT.AGE}','Changed "{SERVICE.NAME}" service status to {EVENT.UPDATE.SEVERITY} at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\nCurrent problem age is {EVENT.AGE}.\r\nService description: {SERVICE.DESCRIPTION}\r\n\r\n{SERVICE.ROOTCAUSE}'),
('608','101','0','0','{EVENT.NAME}','Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOperational data: {EVENT.OPDATA}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('609','101','0','1','{EVENT.NAME}','Problem has been resolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOperational data: {EVENT.OPDATA}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}'),
('610','101','0','2','{EVENT.NAME}','{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\n{EVENT.UPDATE.MESSAGE}\r\n\r\nCurrent problem status is {EVENT.STATUS}, acknowledged: {EVENT.ACK.STATUS}.'),
('611','101','1','0','Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}','Discovery rule: {DISCOVERY.RULE.NAME}\r\n\r\nDevice IP: {DISCOVERY.DEVICE.IPADDRESS}\r\nDevice DNS: {DISCOVERY.DEVICE.DNS}\r\nDevice status: {DISCOVERY.DEVICE.STATUS}\r\nDevice uptime: {DISCOVERY.DEVICE.UPTIME}\r\n\r\nDevice service name: {DISCOVERY.SERVICE.NAME}\r\nDevice service port: {DISCOVERY.SERVICE.PORT}\r\nDevice service status: {DISCOVERY.SERVICE.STATUS}\r\nDevice service uptime: {DISCOVERY.SERVICE.UPTIME}'),
('612','101','2','0','Autoregistration: {HOST.HOST}','Host name: {HOST.HOST}\r\nHost IP: {HOST.IP}\r\nAgent port: {HOST.PORT}'),
('613','101','3','0','Internal problem: {EVENT.NAME}','Internal problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nOperational data: {EVENT.OPDATA}\r\nOriginal problem ID: {EVENT.ID}');
INSERT INTO `usrgrp` (`usrgrpid`,`name`,`gui_access`,`users_status`,`debug_mode`,`userdirectoryid`,`mfa_status`,`mfaid`) VALUES ('7','Zabbix administrators','0','0','0',NULL,'0',NULL),
('8','Guests','0','0','0',NULL,'0',NULL),
('9','Disabled','0','1','0',NULL,'0',NULL),
('11','Enabled debug mode','0','0','1',NULL,'0',NULL),
('12','No access to the frontend','3','0','0',NULL,'0',NULL),
('13','Internal','1','0','0',NULL,'0',NULL);
INSERT INTO `users_groups` (`id`,`usrgrpid`,`userid`) VALUES ('2','8','2'),
('3','9','2'),
('4','7','1'),
('5','13','1'),
('6','13','2');
INSERT INTO `ugset_group` (`ugsetid`,`usrgrpid`) VALUES ('1','13'),
('1','8'),
('1','9');
INSERT INTO `user_ugset` (`userid`,`ugsetid`) VALUES ('2','1');
INSERT INTO `scripts` (`scriptid`,`name`,`command`,`host_access`,`usrgrpid`,`groupid`,`description`,`confirmation`,`type`,`execute_on`,`timeout`,`scope`,`port`,`authtype`,`username`,`password`,`publickey`,`privatekey`,`menu_path`,`url`,`new_window`,`manualinput`,`manualinput_prompt`,`manualinput_validator`,`manualinput_validator_type`,`manualinput_default_value`) VALUES ('1','Ping','ping -c 3 {HOST.CONN}; case $? in [01]) true;; *) false;; esac','2',NULL,NULL,'','','0','2','30s','2','','0','','','','','','','1','0','','','0',''),
('2','Traceroute','/usr/bin/traceroute {HOST.CONN}','2',NULL,NULL,'','','0','2','30s','2','','0','','','','','','','1','0','','','0',''),
('3','Detect operating system','sudo /usr/bin/nmap -O {HOST.CONN}','2','7',NULL,'','','0','2','30s','2','','0','','','','','','','1','0','','','0','');
INSERT INTO `actions` (`actionid`,`name`,`eventsource`,`evaltype`,`status`,`esc_period`,`formula`,`pause_suppressed`,`notify_if_canceled`,`pause_symptoms`) VALUES ('2','Auto discovery. Linux servers.','1','0','1','0','','1','1','1'),
('3','Report problems to Zabbix administrators','0','0','1','1h','','1','1','1'),
('4','Report not supported items','3','0','1','1h','','1','1','1'),
('5','Report not supported low level discovery rules','3','0','1','1h','','1','1','1'),
('6','Report unknown triggers','3','0','1','1h','','1','1','1');
INSERT INTO `operations` (`operationid`,`actionid`,`operationtype`,`esc_period`,`esc_step_from`,`esc_step_to`,`evaltype`,`recovery`) VALUES ('1','2','6','0','1','1','0','0'),
('2','2','4','0','1','1','0','0'),
('3','3','0','0','1','1','0','0'),
('4','4','0','0','1','1','0','0'),
('5','5','0','0','1','1','0','0'),
('6','6','0','0','1','1','0','0'),
('7','3','11','0','1','1','0','1'),
('8','4','11','0','1','1','0','1'),
('9','5','11','0','1','1','0','1'),
('10','6','11','0','1','1','0','1');
INSERT INTO `opmessage` (`operationid`,`default_msg`,`subject`,`message`,`mediatypeid`) VALUES ('3','1','','',NULL),
('4','1','','',NULL),
('5','1','','',NULL),
('6','1','','',NULL),
('7','1','','',NULL),
('8','1','','',NULL),
('9','1','','',NULL),
('10','1','','',NULL);
INSERT INTO `opmessage_grp` (`opmessage_grpid`,`operationid`,`usrgrpid`) VALUES ('1','3','7'),
('2','4','7'),
('3','5','7'),
('4','6','7');
INSERT INTO `opgroup` (`opgroupid`,`operationid`,`groupid`) VALUES ('1','2','2');
INSERT INTO `conditions` (`conditionid`,`actionid`,`conditiontype`,`operator`,`value`,`value2`) VALUES ('2','2','10','0','0',''),
('3','2','8','0','9',''),
('4','2','12','2','Linux',''),
('6','4','23','0','0',''),
('7','5','23','0','2',''),
('8','6','23','0','4','');
INSERT INTO `graph_theme` (`graphthemeid`,`theme`,`backgroundcolor`,`graphcolor`,`gridcolor`,`maingridcolor`,`gridbordercolor`,`textcolor`,`highlightcolor`,`leftpercentilecolor`,`rightpercentilecolor`,`nonworktimecolor`,`colorpalette`) VALUES ('1','blue-theme','FFFFFF','FFFFFF','CCD5D9','ACBBC2','ACBBC2','1F2C33','E33734','429E47','E33734','EBEBEB','1A7C11,F63100,2774A4,A54F10,FC6EA3,6C59DC,AC8C14,611F27,F230E0,5CCD18,BB2A02,5A2B57,89ABF8,7EC25C,274482,2B5429,8048B4,FD5434,790E1F,87AC4D,E89DF4'),
('2','dark-theme','2B2B2B','2B2B2B','454545','4F4F4F','4F4F4F','F2F2F2','E45959','59DB8F','E45959','333333','199C0D,F63100,2774A4,F7941D,FC6EA3,6C59DC,C7A72D,BA2A5D,F230E0,5CCD18,BB2A02,AC41A5,89ABF8,7EC25C,3165D5,79A277,AA73DE,FD5434,F21C3E,87AC4D,E89DF4'),
('3','hc-light','FFFFFF','FFFFFF','555555','000000','333333','000000','333333','000000','000000','EBEBEB','1A7C11,F63100,2774A4,A54F10,FC6EA3,6C59DC,AC8C14,611F27,F230E0,5CCD18,BB2A02,5A2B57,89ABF8,7EC25C,274482,2B5429,8048B4,FD5434,790E1F,87AC4D,E89DF4'),
('4','hc-dark','000000','000000','666666','888888','4F4F4F','FFFFFF','FFFFFF','FFFFFF','FFFFFF','333333','199C0D,F63100,2774A4,F7941D,FC6EA3,6C59DC,C7A72D,BA2A5D,F230E0,5CCD18,BB2A02,AC41A5,89ABF8,7EC25C,3165D5,79A277,AA73DE,FD5434,F21C3E,87AC4D,E89DF4');
INSERT INTO `globalmacro` (`globalmacroid`,`macro`,`value`,`description`,`type`) VALUES ('2','{$SNMP_COMMUNITY}','public','','0');
INSERT INTO `regexps` (`regexpid`,`name`,`test_string`) VALUES ('1','File systems for discovery','ext3'),
('2','Network interfaces for discovery','eth0'),
('3','Storage devices for SNMP discovery','/boot'),
('4','Windows service names for discovery','SysmonLog'),
('5','Windows service startup states for discovery','automatic');
INSERT INTO `expressions` (`expressionid`,`regexpid`,`expression`,`expression_type`,`exp_delimiter`,`case_sensitive`) VALUES ('1','1','^(btrfs|ext2|ext3|ext4|reiser|xfs|ffs|ufs|jfs|jfs2|vxfs|hfs|apfs|refs|ntfs|fat32|zfs)$','3',',','0'),
('3','3','^(Physical memory|Virtual memory|Memory buffers|Cached memory|Swap space)$','4',',','1'),
('5','4','^(MMCSS|gupdate|SysmonLog|clr_optimization_v2.0.50727_32|clr_optimization_v4.0.30319_32)$','4',',','1'),
('6','5','^(automatic|automatic delayed)$','3',',','1'),
('7','2','^Software Loopback Interface','4',',','1'),
('8','2','^(In)?[Ll]oop[Bb]ack[0-9._]*$','4',',','1'),
('9','2','^NULL[0-9.]*$','4',',','1'),
('10','2','^[Ll]o[0-9.]*$','4',',','1'),
('11','2','^[Ss]ystem$','4',',','1'),
('12','2','^Nu[0-9.]*$','4',',','1');
INSERT INTO `config_autoreg_tls` (`autoreg_tlsid`,`tls_psk_identity`,`tls_psk`) VALUES ('1','','');
INSERT INTO `module` (`moduleid`,`id`,`relative_path`,`status`,`config`) VALUES ('1','actionlog','widgets/actionlog','1','[]'),
('2','clock','widgets/clock','1','[]'),
('3','topitems','widgets/topitems','1','[]'),
('4','discovery','widgets/discovery','1','[]'),
('5','favgraphs','widgets/favgraphs','1','[]'),
('6','favmaps','widgets/favmaps','1','[]'),
('7','geomap','widgets/geomap','1','[]'),
('8','graph','widgets/graph','1','[]'),
('9','graphprototype','widgets/graphprototype','1','[]'),
('10','hostavail','widgets/hostavail','1','[]'),
('11','item','widgets/item','1','[]'),
('12','map','widgets/map','1','[]'),
('13','navtree','widgets/navtree','1','[]'),
('14','itemhistory','widgets/itemhistory','1','[]'),
('15','problemhosts','widgets/problemhosts','1','[]'),
('16','problems','widgets/problems','1','[]'),
('17','problemsbysv','widgets/problemsbysv','1','[]'),
('18','slareport','widgets/slareport','1','[]'),
('19','svggraph','widgets/svggraph','1','[]'),
('20','systeminfo','widgets/systeminfo','1','[]'),
('21','tophosts','widgets/tophosts','1','[]'),
('22','trigover','widgets/trigover','1','[]'),
('23','url','widgets/url','1','[]'),
('24','web','widgets/web','1','[]'),
('25','gauge','widgets/gauge','1','[]'),
('26','toptriggers','widgets/toptriggers','1','[]'),
('27','piechart','widgets/piechart','1','[]'),
('28','honeycomb','widgets/honeycomb','1','[]'),
('29','hostnavigator','widgets/hostnavigator','1','[]'),
('30','itemnavigator','widgets/itemnavigator','1','[]'),
('31','hostcard','widgets/hostcard','1','[]'),
('32','itemcard','widgets/itemcard','1','[]');
INSERT INTO `role_rule` (`role_ruleid`,`roleid`,`type`,`name`,`value_int`,`value_str`,`value_moduleid`,`value_serviceid`) VALUES ('1','1','0','ui.default_access','1','',NULL,NULL),
('2','1','0','services.read','1','',NULL,NULL),
('3','1','0','services.write','0','',NULL,NULL),
('4','1','0','modules.default_access','1','',NULL,NULL),
('5','1','0','api.access','1','',NULL,NULL),
('6','1','0','api.mode','0','',NULL,NULL),
('7','1','0','actions.default_access','1','',NULL,NULL),
('8','2','0','ui.default_access','1','',NULL,NULL),
('9','2','0','services.read','1','',NULL,NULL),
('10','2','0','services.write','1','',NULL,NULL),
('11','2','0','modules.default_access','1','',NULL,NULL),
('12','2','0','api.access','1','',NULL,NULL),
('13','2','0','api.mode','0','',NULL,NULL),
('14','2','0','actions.default_access','1','',NULL,NULL),
('15','3','0','ui.default_access','1','',NULL,NULL),
('16','3','0','services.read','1','',NULL,NULL),
('17','3','0','services.write','1','',NULL,NULL),
('18','3','0','modules.default_access','1','',NULL,NULL),
('19','3','0','api.access','1','',NULL,NULL),
('20','3','0','api.mode','0','',NULL,NULL),
('21','3','0','actions.default_access','1','',NULL,NULL),
('22','4','0','ui.default_access','1','',NULL,NULL),
('23','4','0','services.read','1','',NULL,NULL),
('24','4','0','services.write','0','',NULL,NULL),
('25','4','0','modules.default_access','1','',NULL,NULL),
('26','4','0','api.access','0','',NULL,NULL),
('27','4','0','actions.default_access','0','',NULL,NULL);
INSERT INTO `settings` (`name`,`type`,`value_str`,`value_int`,`value_usrgrpid`,`value_hostgroupid`,`value_userdirectoryid`,`value_mfaid`) VALUES ('alert_usrgrpid','3','','0','7',NULL,NULL,NULL),
('auditlog_enabled','2','','1',NULL,NULL,NULL,NULL),
('auditlog_mode','2','','1',NULL,NULL,NULL,NULL),
('authentication_type','2','','0',NULL,NULL,NULL,NULL),
('autoreg_tls_accept','2','','1',NULL,NULL,NULL,NULL),
('blink_period','1','2m','0',NULL,NULL,NULL,NULL),
('compress_older','1','7d','0',NULL,NULL,NULL,NULL),
('compression_status','2','','0',NULL,NULL,NULL,NULL),
('connect_timeout','1','3s','0',NULL,NULL,NULL,NULL),
('custom_color','2','','0',NULL,NULL,NULL,NULL),
('db_extension','1','','0',NULL,NULL,NULL,NULL),
('dbversion_status','1','','0',NULL,NULL,NULL,NULL),
('default_inventory_mode','2','','-1',NULL,NULL,NULL,NULL),
('default_lang','1','en_US','0',NULL,NULL,NULL,NULL),
('default_theme','1','blue-theme','0',NULL,NULL,NULL,NULL),
('default_timezone','1','system','0',NULL,NULL,NULL,NULL),
('disabled_usrgrpid','3','','0',NULL,NULL,NULL,NULL),
('discovery_groupid','4','','0',NULL,'5',NULL,NULL),
('geomaps_attribution','1','','0',NULL,NULL,NULL,NULL),
('geomaps_max_zoom','2','','0',NULL,NULL,NULL,NULL),
('geomaps_tile_provider','1','OpenStreetMap.Mapnik','0',NULL,NULL,NULL,NULL),
('geomaps_tile_url','1','','0',NULL,NULL,NULL,NULL),
('ha_failover_delay','1','1m','0',NULL,NULL,NULL,NULL),
('history_period','1','24h','0',NULL,NULL,NULL,NULL),
('hk_audit','1','31d','0',NULL,NULL,NULL,NULL),
('hk_audit_mode','2','','1',NULL,NULL,NULL,NULL),
('hk_events_autoreg','1','1d','0',NULL,NULL,NULL,NULL),
('hk_events_discovery','1','1d','0',NULL,NULL,NULL,NULL),
('hk_events_internal','1','1d','0',NULL,NULL,NULL,NULL),
('hk_events_mode','2','','1',NULL,NULL,NULL,NULL),
('hk_events_service','1','1d','0',NULL,NULL,NULL,NULL),
('hk_events_trigger','1','365d','0',NULL,NULL,NULL,NULL),
('hk_history','1','31d','0',NULL,NULL,NULL,NULL),
('hk_history_global','2','','0',NULL,NULL,NULL,NULL),
('hk_history_mode','2','','1',NULL,NULL,NULL,NULL),
('hk_services','1','365d','0',NULL,NULL,NULL,NULL),
('hk_services_mode','2','','1',NULL,NULL,NULL,NULL),
('hk_sessions','1','31d','0',NULL,NULL,NULL,NULL),
('hk_sessions_mode','2','','1',NULL,NULL,NULL,NULL),
('hk_trends','1','365d','0',NULL,NULL,NULL,NULL),
('hk_trends_global','2','','0',NULL,NULL,NULL,NULL),
('hk_trends_mode','2','','1',NULL,NULL,NULL,NULL),
('http_auth_enabled','2','','0',NULL,NULL,NULL,NULL),
('http_case_sensitive','2','','1',NULL,NULL,NULL,NULL),
('http_login_form','2','','0',NULL,NULL,NULL,NULL),
('http_strip_domains','1','','0',NULL,NULL,NULL,NULL),
('iframe_sandboxing_enabled','2','','1',NULL,NULL,NULL,NULL),
('iframe_sandboxing_exceptions','1','','0',NULL,NULL,NULL,NULL),
('instanceid','1','','0',NULL,NULL,NULL,NULL),
('item_test_timeout','1','60s','0',NULL,NULL,NULL,NULL),
('jit_provision_interval','1','1h','0',NULL,NULL,NULL,NULL),
('ldap_auth_enabled','2','','0',NULL,NULL,NULL,NULL),
('ldap_case_sensitive','2','','1',NULL,NULL,NULL,NULL),
('ldap_jit_status','2','','0',NULL,NULL,NULL,NULL),
('ldap_userdirectoryid','5','','0',NULL,NULL,NULL,NULL),
('login_attempts','2','','5',NULL,NULL,NULL,NULL),
('login_block','1','30s','0',NULL,NULL,NULL,NULL),
('max_in_table','2','','50',NULL,NULL,NULL,NULL),
('max_overview_table_size','2','','50',NULL,NULL,NULL,NULL),
('max_period','1','2y','0',NULL,NULL,NULL,NULL),
('media_type_test_timeout','1','65s','0',NULL,NULL,NULL,NULL),
('mfa_status','2','','0',NULL,NULL,NULL,NULL),
('mfaid','6','','0',NULL,NULL,NULL,NULL),
('ok_ack_color','1','009900','0',NULL,NULL,NULL,NULL),
('ok_ack_style','2','','1',NULL,NULL,NULL,NULL),
('ok_period','1','5m','0',NULL,NULL,NULL,NULL),
('ok_unack_color','1','009900','0',NULL,NULL,NULL,NULL),
('ok_unack_style','2','','1',NULL,NULL,NULL,NULL),
('passwd_check_rules','2','','8',NULL,NULL,NULL,NULL),
('passwd_min_length','2','','8',NULL,NULL,NULL,NULL),
('period_default','1','1h','0',NULL,NULL,NULL,NULL),
('problem_ack_color','1','CC0000','0',NULL,NULL,NULL,NULL),
('problem_ack_style','2','','1',NULL,NULL,NULL,NULL),
('problem_unack_color','1','CC0000','0',NULL,NULL,NULL,NULL),
('problem_unack_style','2','','1',NULL,NULL,NULL,NULL),
('proxy_secrets_provider','2','','0',NULL,NULL,NULL,NULL),
('report_test_timeout','1','60s','0',NULL,NULL,NULL,NULL),
('saml_auth_enabled','2','','0',NULL,NULL,NULL,NULL),
('saml_case_sensitive','2','','0',NULL,NULL,NULL,NULL),
('saml_jit_status','2','','0',NULL,NULL,NULL,NULL),
('script_timeout','1','60s','0',NULL,NULL,NULL,NULL),
('search_limit','2','','1000',NULL,NULL,NULL,NULL),
('server_check_interval','2','','10',NULL,NULL,NULL,NULL),
('server_status','1','','0',NULL,NULL,NULL,NULL),
('session_key','1','0e1e3fb9846cbe4e079a22d38b2db33e','0',NULL,NULL,NULL,NULL),
('severity_color_0','1','97AAB3','0',NULL,NULL,NULL,NULL),
('severity_color_1','1','7499FF','0',NULL,NULL,NULL,NULL),
('severity_color_2','1','FFC859','0',NULL,NULL,NULL,NULL),
('severity_color_3','1','FFA059','0',NULL,NULL,NULL,NULL),
('severity_color_4','1','E97659','0',NULL,NULL,NULL,NULL),
('severity_color_5','1','E45959','0',NULL,NULL,NULL,NULL),
('severity_name_0','1','Not classified','0',NULL,NULL,NULL,NULL),
('severity_name_1','1','Information','0',NULL,NULL,NULL,NULL),
('severity_name_2','1','Warning','0',NULL,NULL,NULL,NULL),
('severity_name_3','1','Average','0',NULL,NULL,NULL,NULL),
('severity_name_4','1','High','0',NULL,NULL,NULL,NULL),
('severity_name_5','1','Disaster','0',NULL,NULL,NULL,NULL),
('show_technical_errors','2','','0',NULL,NULL,NULL,NULL),
('snmptrap_logging','2','','1',NULL,NULL,NULL,NULL),
('socket_timeout','1','3s','0',NULL,NULL,NULL,NULL),
('software_update_check_data','1','','0',NULL,NULL,NULL,NULL),
('software_update_checkid','1','','0',NULL,NULL,NULL,NULL),
('timeout_browser','1','60s','0',NULL,NULL,NULL,NULL),
('timeout_db_monitor','1','3s','0',NULL,NULL,NULL,NULL),
('timeout_external_check','1','3s','0',NULL,NULL,NULL,NULL),
('timeout_http_agent','1','3s','0',NULL,NULL,NULL,NULL),
('timeout_script','1','3s','0',NULL,NULL,NULL,NULL),
('timeout_simple_check','1','3s','0',NULL,NULL,NULL,NULL),
('timeout_snmp_agent','1','3s','0',NULL,NULL,NULL,NULL),
('timeout_ssh_agent','1','3s','0',NULL,NULL,NULL,NULL),
('timeout_telnet_agent','1','3s','0',NULL,NULL,NULL,NULL),
('timeout_zabbix_agent','1','3s','0',NULL,NULL,NULL,NULL),
('uri_valid_schemes','1','http,https,ftp,file,mailto,tel,ssh','0',NULL,NULL,NULL,NULL),
('url','1','','0',NULL,NULL,NULL,NULL),
('validate_uri_schemes','2','','1',NULL,NULL,NULL,NULL),
('vault_provider','2','','0',NULL,NULL,NULL,NULL),
('work_period','1','1-5,09:00-18:00','0',NULL,NULL,NULL,NULL),
('x_frame_options','1','SAMEORIGIN','0',NULL,NULL,NULL,NULL);
INSERT INTO `hgset` (`hgsetid`,`hash`) VALUES ('1','e629fa6598d732768f7c726b4b621285f9c3b85303900aa912017db7617d8bdb'),
('2','4ec9599fc203d176a301536c2e091a19bc852759b255bd6818810a42c5fed14a'),
('3','4523540f1504cd17100c4835e85b7eefd49911580f8efff0599a8f283be6b9e3'),
('4','ef8704ac79657fbf2818c74a70a571c131283abd8914eca173cd032929702789'),
('5','6f4b6612125fb3a0daecd2799dfd6c9c299424fd920f9b308110a2c1fbd8f443'),
('6','4b227777d4dd1fc61c6f884f48641d02b4d121d3fd328cb08b5531fcacdabf8a'),
('7','19581e27de7ced00ff1ce50b2047e7a567c76b1cbaebabe5ef03f7c3017bb5b7'),
('8','6b51d431df5d7f141cbececcf79edf3dd861c3b4069f0b11661a3eefacbba918'),
('9','b17ef6d19c7a5b1ee83b907c595526dcb1eb06db8227d650d5dda0a9f4ce8cd9'),
('10','4fc82b26aecb47d2868c4efbe3581732a3e7cbcc6c2efb32062c08170a05eeb8'),
('11','4a44dc15364204a80fe80e9039455cc1608281820fe2b24f1e5233ade6af1dd5'),
('12','3fdba35f04dc8c462986c992bcf875546257113072a909c162f7e470e581e278');
INSERT INTO `hosts` (`hostid`,`proxyid`,`host`,`status`,`ipmi_authtype`,`ipmi_privilege`,`ipmi_username`,`ipmi_password`,`name`,`flags`,`templateid`,`description`,`tls_connect`,`tls_accept`,`tls_issuer`,`tls_subject`,`tls_psk_identity`,`tls_psk`,`discover`,`custom_interfaces`,`uuid`,`name_upper`,`vendor_name`,`vendor_version`,`proxy_groupid`,`monitored_by`,`wizard_ready`,`readme`) VALUES ('10001',NULL,'Linux by Zabbix agent','3','-1','2','','','Linux by Zabbix agent','0',NULL,'This is an official Linux template. It requires Zabbix agent 7.4 or newer.\r\n\r\nNotes on filesystem (FS) discovery:\r\n- The ext4/3/2 filesystem reserves space for privileged usage, typically set at 5% by default.\r\n- BTRFS allocates a default of 10% of the volume for its own needs.\r\n- To mitigate potential disasters, FS usage triggers are based on the maximum available space.\r\n - Utilization formula: \'pused = 100 - 100 * (available / total - free + available)\'\r\n- The FS utilization chart, derived from graph prototypes, reflects FS reserved space as the difference between used and available space from the total volume.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/387225-discussion-thread-for-official-zabbix-template-for-linux\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','f8f7908280354f2abeed07dc788c3747','LINUX BY ZABBIX AGENT','Zabbix','7.4-2',NULL,'0','1','## Overview\r\n\r\nThis is an official Linux template. It requires Zabbix agent 7.4 or newer.\r\n\r\n#### Notes on filesystem (FS) discovery:\r\n- The ext4/3/2 FS reserves space for privileged usage, typically set at 5% by default.\r\n- BTRFS allocates a default of 10% of the volume for its own needs.\r\n- To mitigate potential disasters, FS usage triggers are based on the maximum available space.\r\n - Utilization formula: `pused = 100 - 100 * (available / total - free + available)`\r\n- The FS utilization chart, derived from graph prototypes, reflects FS reserved space as the difference between used and available space from the total volume.'),
('10047',NULL,'Zabbix server health','3','-1','2','','','Zabbix server health','0',NULL,'This template is designed to monitor internal Zabbix metrics on the local Zabbix server.\r\n\r\nLink this template to the local Zabbix server host.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','e2d2b4e4ac28483996cc11fe42823d57','ZABBIX SERVER HEALTH','Zabbix','7.4-5',NULL,'0','1','## Overview\r\n\r\nThis template is designed to monitor internal Zabbix metrics on the local Zabbix server.\r\n\r\n## Setup\r\n\r\nLink this template to the local Zabbix server host.'),
('10048',NULL,'Zabbix proxy health','3','-1','2','','','Zabbix proxy health','0',NULL,'This template is designed to monitor internal Zabbix metrics on the local Zabbix proxy.\r\n\r\nLink this template to the local Zabbix proxy host.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','dd114bf0fb2f46bc84840f1bb24e2b23','ZABBIX PROXY HEALTH','Zabbix','7.4-3',NULL,'0','1','## Overview\r\n\r\nThis template is designed to monitor internal Zabbix metrics on the local Zabbix proxy.\r\n\r\n## Setup\r\n\r\nLink this template to the local Zabbix proxy host.'),
('10074',NULL,'OpenBSD by Zabbix agent','3','-1','2','','','OpenBSD by Zabbix agent','0',NULL,'This is an Official OpenBSD template. It requires Zabbix agent 7.4 or newer.\r\n\r\nNotes on filesystem (FS) discovery:\r\n - The ext4/3/2 FS reserves space for privileged usage, typically set at 5% by default.\r\n - BTRFS allocates a default of 10% of the volume for its own needs.\r\n - To mitigate potential disasters, FS usage triggers are based on the maximum available space.\r\n - Utilization formula: \'pused = 100 - 100 * (available / total - free + available)\'\r\n - The FS utilization chart, derived from graph prototypes, reflects FS reserved space as the difference between used and available space from the total volume.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','760be6e1c2194a5bb7c0df47cc5f71ca','OPENBSD BY ZABBIX AGENT','Zabbix','7.4-1',NULL,'0','0',''),
('10075',NULL,'FreeBSD by Zabbix agent','3','-1','2','','','FreeBSD by Zabbix agent','0',NULL,'This is an official FreeBSD template. It requires Zabbix agent 7.4 or newer.\r\n\r\nNotes on filesystem (FS) discovery:\r\n - The ext4/3/2 FS reserves space for privileged usage, typically set at 5% by default.\r\n - BTRFS allocates a default of 10% of the volume for its own needs.\r\n - To mitigate potential disasters, FS usage triggers are based on the maximum available space.\r\n - Utilization formula: \'pused = 100 - 100 * (available / total - free + available)\'\r\n - The FS utilization chart, derived from graph prototypes, reflects FS reserved space as the difference between used and available space from the total volume.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','a3dc630729e443139f4e608954fa6e19','FREEBSD BY ZABBIX AGENT','Zabbix','7.4-1',NULL,'0','0',''),
('10076',NULL,'AIX by Zabbix agent','3','-1','2','','','AIX by Zabbix agent','0',NULL,'This is an official AIX template. It requires Zabbix agent 7.4 or newer.\r\n\r\nNotes on filesystem (FS) discovery:\r\n - The ext4/3/2 FS reserves space for privileged usage, typically set at 5% by default.\r\n - BTRFS allocates a default of 10% of the volume for its own needs.\r\n - To mitigate potential disasters, FS usage triggers are based on the maximum available space.\r\n - Utilization formula: \'pused = 100 - 100 * (available / total - free + available)\'\r\n - The FS utilization chart, derived from graph prototypes, reflects FS reserved space as the difference between used and available space from the total volume.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','7e6bb0931a72459db9514aa924b420bc','AIX BY ZABBIX AGENT','Zabbix','7.4-1',NULL,'0','0',''),
('10077',NULL,'HP-UX by Zabbix agent','3','-1','2','','','HP-UX by Zabbix agent','0',NULL,'This is an official HP-UX template. It requires Zabbix agent 7.4 or newer.\r\n\r\nNotes on filesystem (FS) discovery:\r\n - The ext4/3/2 FS reserves space for privileged usage, typically set at 5% by default.\r\n - BTRFS allocates a default of 10% of the volume for its own needs.\r\n - To mitigate potential disasters, FS usage triggers are based on the maximum available space.\r\n - Utilization formula: \'pused = 100 - 100 * (available / total - free + available)\'\r\n - The FS utilization chart, derived from graph prototypes, reflects FS reserved space as the difference between used and available space from the total volume.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','b1fd823d262042e08291313f72be9452','HP-UX BY ZABBIX AGENT','Zabbix','7.4-1',NULL,'0','0',''),
('10078',NULL,'Solaris by Zabbix agent','3','-1','2','','','Solaris by Zabbix agent','0',NULL,'This is an official Solaris OS template. It requires Zabbix agent 7.4 or newer.\r\n\r\nNotes on filesystem (FS) discovery:\r\n - The ext4/3/2 FS reserves space for privileged usage, typically set at 5% by default.\r\n - BTRFS allocates a default of 10% of the volume for its own needs.\r\n - To mitigate potential disasters, FS usage triggers are based on the maximum available space.\r\n - Utilization formula: \'pused = 100 - 100 * (available / total - free + available)\'\r\n - The FS utilization chart, derived from graph prototypes, reflects FS reserved space as the difference between used and available space from the total volume.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','eaf36c98b91843b7b79bd5184a23d377','SOLARIS BY ZABBIX AGENT','Zabbix','7.4-1',NULL,'0','0',''),
('10079',NULL,'macOS by Zabbix agent','3','-1','2','','','macOS by Zabbix agent','0',NULL,'This is an official macOS template. It requires Zabbix agent 7.4 or newer.\r\n\r\nNotes on filesystem (FS) discovery:\r\n - The ext4/3/2 FS reserves space for privileged usage, typically set at 5% by default.\r\n - BTRFS allocates a default of 10% of the volume for its own needs.\r\n - To mitigate potential disasters, FS usage triggers are based on the maximum available space.\r\n - Utilization formula: \'pused = 100 - 100 * (available / total - free + available)\'\r\n - The FS utilization chart, derived from graph prototypes, reflects FS reserved space as the difference between used and available space from the total volume.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','f895df5b37494f668cde1a2388d7af8b','MACOS BY ZABBIX AGENT','Zabbix','7.4-1',NULL,'0','0',''),
('10081',NULL,'Windows by Zabbix agent','3','-1','2','','','Windows by Zabbix agent','0',NULL,'This is an official Windows template. It requires Zabbix agent 7.4 or newer.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/387224-discussion-thread-for-official-zabbix-template-for-windows\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','13b06904a6bf41cbb795e3193d896340','WINDOWS BY ZABBIX AGENT','Zabbix','7.4-2',NULL,'0','1','## Overview\r\n\r\nThis is an official Windows template. It requires Zabbix agent 7.4 or newer.'),
('10084',NULL,'Zabbix server','0','-1','2','','','Zabbix server','0',NULL,'','1','1','','','','','0','0','','ZABBIX SERVER','','',NULL,'0','0',''),
('10169',NULL,'Generic Java JMX','3','-1','2','','','Generic Java JMX','0',NULL,'Generated by official Zabbix template tool "Templator"','1','1','','','','','0','0','72aab08f7f27406a8f2c291648e5ba95','GENERIC JAVA JMX','Zabbix','7.4-0',NULL,'0','0',''),
('10171',NULL,'Intel SR1530 IPMI','3','-1','2','','','Intel SR1530 IPMI','0',NULL,'Template for monitoring Intel SR1530 server system.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','f01bd64eef4049fabe087cccae590226','INTEL SR1530 IPMI','Zabbix','7.4-0',NULL,'0','0',''),
('10172',NULL,'Intel SR1630 IPMI','3','-1','2','','','Intel SR1630 IPMI','0',NULL,'Template for monitoring Intel SR1630 server system.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','2327c665b46e4aa781d41240168c3867','INTEL SR1630 IPMI','Zabbix','7.4-0',NULL,'0','0',''),
('10173',NULL,'VMware','3','-1','2','','','VMware','0',NULL,'You can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/\r\n\r\nNote: To enable discovery of hardware sensors of VMware Hypervisors, set the macro \'{$VMWARE.HV.SENSOR.DISCOVERY}\' to the value \'true\' on the discovered host level.\r\n\r\nNote: To create custom performance counter see documentation: https://www.zabbix.com/documentation/7.4/manual/vm_monitoring/vmware_keys#footnotes\r\n\r\nNote: To get all supported counters and generate path for custom performance counter see documentation: https://www.zabbix.com/documentation/7.4/manual/appendix/items/perf_counters\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','56079badd056419383cc26e6a4fcc7e0','VMWARE','Zabbix','7.4-2',NULL,'0','1','## Overview\r\n\r\nThis template set is designed for the effortless deployment of VMware vCenter and ESX hypervisor monitoring and doesn\'t require any external scripts.\r\n\r\n- The template "VMware Guest" is used in discovery and normally should not be manually linked to a host.\r\n- The template "VMware Hypervisor" can be used in discovery as well as manually linked to a host.\r\n\r\nFor additional information, please see [Zabbix documentation on VM monitoring](https://www.zabbix.com/documentation/7.4/manual/vm_monitoring).\r\n\r\n## Setup\r\n\r\n1. Compile Zabbix server with the required options (`--with-libxml2` and `--with-libcurl`)\r\n2. Set the `StartVMwareCollectors` option in the Zabbix server configuration file to "1" or more\r\n3. Create a new host\r\n4. If you want to use a separate user for monitoring, make sure that the user is a member of the `SystemConfiguration.ReadOnly` and `vStatsGroup` groups\r\nSet the host wizard configuration fields required for VMware authentication: `VMware URL`, `VMware username` and `VMware password`\r\n5. Link the template to the host created earlier\r\n\r\nNote: To enable discovery of hardware sensors of VMware hypervisors, set the host wizard configuration field `Monitoring of hardware sensors` to the selected state.\r\n\r\nAdditional resources:\r\n- How to [create a custom performance counter](https://www.zabbix.com/documentation/7.4/manual/vm_monitoring/vmware_keys#footnotes)\r\n- How to get all supported counters and [generate a path for the custom performance counter](https://www.zabbix.com/documentation/7.4/manual/appendix/items/perf_counters)'),
('10174',NULL,'VMware Guest','3','-1','2','','','VMware Guest','0',NULL,'Note: To enable trigger for free space for guest VM, set macro \'{$VMWARE.VM.FS.TRIGGER.USED}\' to the value \'1\' on the discovered host level.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','7942fb93ae3b47cf9ca0ea4beb0675ce','VMWARE GUEST','Zabbix','7.4-4',NULL,'0','0',''),
('10175',NULL,'VMware Hypervisor','3','-1','2','','','VMware Hypervisor','0',NULL,'You can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/\r\n\r\nThis template can be used in discovery as well as manually linked to a host. To use this template as manually linked to a host, attach it to the host and set manually the value of \'{$VMWARE.HV.UUID}\' macro.\r\n\r\nNote: To create custom performance counter see documentation: https://www.zabbix.com/documentation/7.4/manual/vm_monitoring/vmware_keys#footnotes\r\n\r\nNote: To get all supported counters and generate path for custom performance counter see documentation: https://www.zabbix.com/documentation/7.4/manual/appendix/items/perf_counters\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','5899b2f0aced4085b5ac25d0461b3425','VMWARE HYPERVISOR','Zabbix','7.4-2',NULL,'0','1','## Overview\r\n\r\nThis template is designed for the effortless deployment of VMware ESX hypervisor monitoring and doesn\'t require any external scripts.\r\n\r\nThis template can be used in discovery as well as manually linked to a host.\r\n\r\nFor additional information, please see [Zabbix documentation on VM monitoring](https://www.zabbix.com/documentation/7.4/manual/vm_monitoring).\r\n\r\nTo use this template as manually linked to a host, attach it to the host and manually set the `Hypervisor UUID` host wizard configuration field.\r\n\r\n## Setup\r\n\r\nTo use this template as manually linked to a host:\r\n 1. Compile Zabbix server with the required options (`--with-libxml2` and `--with-libcurl`)\r\n 2. Set the `StartVMwareCollectors` option in the Zabbix server configuration file to "1" or more\r\n 3. Set the host wizard configuration fields required for VMware authentication: `VMware URL`, `VMware username` and `VMware password`\r\n 4. To get the hypervisor UUID, enable access to the hypervisor via SSH and log in via SSH using a valid login and password.\r\n 5. Run the following command and specify the UUID in the `Hypervisor UUID` host wizard configuration field:\r\n ```text\r\n vim-cmd hostsvc/hostsummary | grep uuid\r\n ```\r\n\r\nNote: To enable discovery of hardware sensors of VMware hypervisors, set the host wizard configuration field `Monitoring of hardware sensors` to the selected state.'),
('10207',NULL,'Alcatel Timetra TiMOS by SNMP','3','-1','2','','','Alcatel Timetra TiMOS by SNMP','0',NULL,'Template Net Alcatel Timetra TiMOS\r\n\r\nMIBs used:\r\nEtherLike-MIB\r\nTIMETRA-SYSTEM-MIB\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nTIMETRA-CHASSIS-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','53044571fb864d87af32473e08c76d0b','ALCATEL TIMETRA TIMOS BY SNMP','Zabbix','7.4-2',NULL,'0','0',''),
('10208',NULL,'Brocade FC by SNMP','3','-1','2','','','Brocade FC by SNMP','0',NULL,'Template Net Brocade FC\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nSW-MIB\r\nIF-MIB\r\n\r\nKnown Issues:\r\n\r\n Description: no IF-MIB::ifAlias is available\r\n Version: v6.3.1c, v7.0.0c, v7.4.1c\r\n Device: all\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','de96d02bd5f242bfa31308ae2131d03f','BROCADE FC BY SNMP','Zabbix','7.4-2',NULL,'0','0',''),
('10210',NULL,'Brocade_Foundry Nonstackable by SNMP','3','-1','2','','','Brocade_Foundry Nonstackable by SNMP','0',NULL,'Template Net Brocade Foundry Nonstackable\r\n\r\nMIBs used:\r\nFOUNDRY-SN-AGENT-MIB\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','6ecfb7083ddf45f183ab4be50cfba37a','BROCADE_FOUNDRY NONSTACKABLE BY SNMP','Zabbix','7.4-2',NULL,'0','0',''),
('10211',NULL,'Brocade_Foundry Stackable by SNMP','3','-1','2','','','Brocade_Foundry Stackable by SNMP','0',NULL,'Template Brocade Foundry Stackable\r\n\r\nMIBs used:\r\nFOUNDRY-SN-AGENT-MIB\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nFOUNDRY-SN-STACKING-MIB\r\nIF-MIB\r\n\r\nKnown Issues:\r\n\r\n Description: Correct fan(returns fan status as \'other(1)\' and temperature (returns 0) for the non-master Switches are not available in SNMP\r\n Version: Version 08.0.40b and above\r\n Device: ICX 7750 in stack\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','f64ad01567914165a493815e492fb315','BROCADE_FOUNDRY STACKABLE BY SNMP','Zabbix','7.4-2',NULL,'0','0',''),
('10218',NULL,'Cisco IOS by SNMP','3','-1','2','','','Cisco IOS by SNMP','0',NULL,'Template Cisco IOS Software releases 12.2(3.5) or later\r\n\r\nMIBs used:\r\nCISCO-MEMORY-POOL-MIB\r\nIF-MIB\r\nEtherLike-MIB\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nCISCO-ENVMON-MIB\r\nCISCO-PROCESS-MIB\r\nENTITY-MIB\r\n\r\nKnown Issues:\r\n\r\n Description: no if(in|out)(Errors|Discards) are available for vlan ifType\r\n Version: IOS for example: 12.1(22)EA11, 15.4(3)M2\r\n Device: C2911, C7600\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','aa3ce9bd8c1d40a2b0f83f9e642e88ee','CISCO IOS BY SNMP','Zabbix','7.4-2',NULL,'0','1','## Overview\r\n\r\n### Known Issues\r\n\r\nDescription: no if(in|out)(Errors|Discards) are available for vlan ifType\r\nVersion: IOS for example: 12.1(22)EA11, 15.4(3)M2\r\nDevice: C2911, C7600'),
('10220',NULL,'Cisco IOS prior to 12.0_3_T by SNMP','3','-1','2','','','Cisco IOS prior to 12.0_3_T by SNMP','0',NULL,'Cisco IOS Software releases prior to 12.0(3)T\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nOLD-CISCO-CPU-MIB\r\nCISCO-ENVMON-MIB\r\nCISCO-MEMORY-POOL-MIB\r\nENTITY-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','1bb42fbdb9054645a62ff81f14ba3b99','CISCO IOS PRIOR TO 12.0_3_T BY SNMP','Zabbix','7.4-2',NULL,'0','1',''),
('10221',NULL,'Dell Force S-Series by SNMP','3','-1','2','','','Dell Force S-Series by SNMP','0',NULL,'Template Dell Force S-Series\r\n\r\nMIBs used:\r\nF10-S-SERIES-CHASSIS-MIB\r\nEtherLike-MIB\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','e5ec7acc7efc4ac491b6fa552ab077ae','DELL FORCE S-SERIES BY SNMP','Zabbix','7.4-2',NULL,'0','0',''),
('10222',NULL,'D-Link DES 7200 by SNMP','3','-1','2','','','D-Link DES 7200 by SNMP','0',NULL,'Template D-Link DES 7200\r\n\r\nMIBs used:\r\nENTITY-MIBdescription has changed\r\nIF-MIB\r\nMY-PROCESS-MIB\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMY-MEMORY-MIB\r\nENTITY-MIB\r\nMY-SYSTEM-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','395184b5d5b048a68e06c91154c56847','D-LINK DES 7200 BY SNMP','Zabbix','7.4-2',NULL,'0','0',''),
('10223',NULL,'D-Link DES_DGS Switch by SNMP','3','-1','2','','','D-Link DES_DGS Switch by SNMP','0',NULL,'Template D-Link DES_DGS Switch\r\n\r\nMIBs used:\r\nEQUIPMENT-MIB\r\nIF-MIB\r\nDLINK-AGENT-MIB\r\nEtherLike-MIB\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nENTITY-MIB\r\n\r\nKnown Issues:\r\n\r\n Description: D-Link reports missing PSU as fail(4)\r\n Version: Firmware: 1.73R008,hardware revision: B1\r\n Device: DGS-3420-26SC Gigabit Ethernet Switch\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','d3176749a5274264938f487cd89d17eb','D-LINK DES_DGS SWITCH BY SNMP','Zabbix','7.4-2',NULL,'0','0',''),
('10224',NULL,'Extreme EXOS by SNMP','3','-1','2','','','Extreme EXOS by SNMP','0',NULL,'Template Extreme EXOS\r\n\r\nMIBs used:\r\nEXTREME-SYSTEM-MIB\r\nIF-MIB\r\nEtherLike-MIB\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nEXTREME-SOFTWARE-MONITOR-MIB\r\nENTITY-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','861dbdece18f4b8f85214a319995eb3e','EXTREME EXOS BY SNMP','Zabbix','7.4-2',NULL,'0','0',''),
('10226',NULL,'Network Generic Device by SNMP','3','-1','2','','','Network Generic Device by SNMP','0',NULL,'Template Net Network Generic Device\r\n\r\nMIBs used:\r\nEtherLike-MIB\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','67332e679035423f85090aa985947c36','NETWORK GENERIC DEVICE BY SNMP','Zabbix','7.4-2',NULL,'0','0',''),
('10227',NULL,'HP Comware HH3C by SNMP','3','-1','2','','','HP Comware HH3C by SNMP','0',NULL,'Template Net HP Comware (HH3C)\r\n\r\nMIBs used:\r\nEtherLike-MIB\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nENTITY-MIB\r\nHH3C-ENTITY-EXT-MIB\r\nIF-MIB\r\n\r\nKnown Issues:\r\n\r\n Description: No temperature sensors. All entities of them return 0 for HH3C-ENTITY-EXT-MIB::hh3cEntityExtTemperature\r\n Version: 1910-48 Switch Software Version 5.20.99, Release 1116 Copyright(c)2010-2016 Hewlett Packard Enterprise Development LP\r\n Device: HP 1910-48\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','57aeccd43b744942b9555269b79a96ad','HP COMWARE HH3C BY SNMP','Zabbix','7.4-2',NULL,'0','0',''),
('10229',NULL,'Huawei VRP by SNMP','3','-1','2','','','Huawei VRP by SNMP','0',NULL,'Template Net Huawei VRP\r\n\r\nMIBs used:\r\nEtherLike-MIB\r\nHUAWEI-ENTITY-EXTENT-MIB\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nENTITY-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','ad4c3dad4b7b492685d1fd3bd3a664f9','HUAWEI VRP BY SNMP','Zabbix','7.4-2',NULL,'0','0',''),
('10230',NULL,'Intel_Qlogic Infiniband by SNMP','3','-1','2','','','Intel_Qlogic Infiniband by SNMP','0',NULL,'Template Net Intel_Qlogic Infiniband\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nICS-CHASSIS-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','6f7f2c44e13a46a4b219fbb5db92f3f7','INTEL_QLOGIC INFINIBAND BY SNMP','Zabbix','7.4-2',NULL,'0','0',''),
('10231',NULL,'Juniper by SNMP','3','-1','2','','','Juniper by SNMP','0',NULL,'Template Net Juniper\r\n\r\nMIBs used:\r\nEtherLike-MIB\r\nJUNIPER-ALARM-MIB\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nJUNIPER-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','a326034825984bbd8a3a5885f3939bb3','JUNIPER BY SNMP','Zabbix','7.4-2',NULL,'0','0',''),
('10233',NULL,'Mikrotik by SNMP','3','-1','2','','','Mikrotik by SNMP','0',NULL,'Template Net Mikrotik\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nKnown Issues:\r\n\r\n Description: Doesn\'t have ifHighSpeed filled. fixed in more recent versions\r\n Version: RouterOS 6.28 or lower\r\n\r\n Description: Doesn\'t have any temperature sensors\r\n Version: RouterOS 6.38.5\r\n Device: Mikrotik 941-2nD, Mikrotik 951G-2HnD\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','815b5a81b29a477695fddbd533ad9c84','MIKROTIK BY SNMP','Zabbix','7.4-4',NULL,'0','1','## Overview\r\n\r\nAt the core of all MikroTik hardware is RouterOS, a powerful and versatile operating system. It offers a vast array of networking features.\r\n\r\n### Known Issues\r\n\r\n Description: Doesn\'t have ifHighSpeed filled. fixed in more recent versions\r\n Version: RouterOS 6.28 or lower\r\n\r\n Description: Doesn\'t have any temperature sensors\r\n Version: RouterOS 6.38.5\r\n Device: Mikrotik 941-2nD, Mikrotik 951G-2HnD'),
('10234',NULL,'Netgear Fastpath by SNMP','3','-1','2','','','Netgear Fastpath by SNMP','0',NULL,'Template Net Netgear Fastpath\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nFASTPATH-SWITCHING-MIB\r\nFASTPATH-BOXSERVICES-PRIVATE-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','5920713da492452889adabc25e259caa','NETGEAR FASTPATH BY SNMP','Zabbix','7.4-2',NULL,'0','0',''),
('10235',NULL,'QTech QSW by SNMP','3','-1','2','','','QTech QSW by SNMP','0',NULL,'Template Net QTech QSW\r\n\r\nMIBs used:\r\nQTECH-MIB\r\nEtherLike-MIB\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nENTITY-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','21f3e79e1d2e4f5e868d1ef81c94bbfd','QTECH QSW BY SNMP','Zabbix','7.4-2',NULL,'0','0',''),
('10236',NULL,'TP-LINK by SNMP','3','-1','2','','','TP-LINK by SNMP','0',NULL,'Template Net TP-LINK\r\n\r\nMIBs used:\r\nTPLINK-SYSINFO-MIB\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nTPLINK-SYSMONITOR-MIB\r\nIF-MIB\r\n\r\nKnown Issues:\r\n\r\n Description: Default sysLocation, sysName and sysContact is not filled with proper data. Real hostname and location can be found only in private branch (TPLINK-SYSINFO-MIB). Please check whether this problem exists in the latest firmware: https://www.tp-link.com/en/support/download/t2600g-28ts/#Firmware\r\n Version: 2.0.0 Build 20170628 Rel.55184 (Beta)\r\n Device: T2600G-28TS 2.0\r\n\r\n Description: The Serial number of the product (tpSysInfoSerialNum) is missing in HW versions prior to V2_170323\r\n Version: Prior to version V2_170323\r\n Device: T2600G-28TS 2.0\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','2b9039885edf45b8bdd39f16dd069133','TP-LINK BY SNMP','Zabbix','7.4-2',NULL,'0','0',''),
('10237',NULL,'Ubiquiti AirOS by SNMP','3','-1','2','','','Ubiquiti AirOS by SNMP','0',NULL,'Template Net Ubiquiti AirOS\r\n\r\nMIBs used:\r\nFROGFOOT-RESOURCES-MIB\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nIEEE802dot11-MIB\r\nIF-MIB\r\n\r\nKnown Issues:\r\n\r\n Description: UBNT unifi reports speed: like IF-MIB::ifSpeed.1 = Gauge32: 4294967295 for all interfaces\r\n Version: Firmware: BZ.ar7240.v3.7.51.6230.170322.1513\r\n Device: UBNT UAP-LR\r\n\r\n Description: UBNT AirMax(NanoStation, NanoBridge etc) reports ifSpeed: as 0 for VLAN and wireless(ath0) interfaces\r\n Version: Firmware: XW.ar934x.v5.6-beta4.22359.140521.1836\r\n Device: NanoStation M5\r\n\r\n Description: UBNT AirMax(NanoStation, NanoBridge etc) reports always return ifType: as ethernet(6) even for wifi,vlans and other types\r\n Version: Firmware: XW.ar934x.v5.6-beta4.22359.140521.1836\r\n Device: NanoStation M5\r\n\r\n Description: ifXTable is not provided in IF-MIB. So Interfaces Simple Template is used instead\r\n Version: all above\r\n Device: NanoStation, UAP-LR\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','6c235d126c1f4895acfe2156b140a886','UBIQUITI AIROS BY SNMP','Zabbix','7.4-3',NULL,'0','0',''),
('10248',NULL,'Linux by SNMP','3','-1','2','','','Linux by SNMP','0',NULL,'This is an official Linux template. It requires an SNMP client.\r\n\r\nMIBs used:\r\nEtherLike-MIB\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nUCD-DISKIO-MIB\r\nUCD-SNMP-MIB\r\nIF-MIB\r\n\r\nNotes on filesystem (FS) discovery:\r\n - The ext4/3/2 FS reserves space for privileged usage, typically set at 5% by default.\r\n - BTRFS allocates a default of 10% of the volume for its own needs.\r\n - To mitigate potential disasters, FS usage triggers are based on the maximum available space.\r\n - Utilization formula: \'pused = 100 * (used / used + available)\'\r\n - The FS utilization chart, derived from graph prototypes, reflects FS reserved space as the difference between used and available space from the total volume.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/387225-discussion-thread-for-official-zabbix-template-for-linux\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','4d3a7adbb6964bd08f2b9d28e0da6496','LINUX BY SNMP','Zabbix','7.4-4',NULL,'0','1','## Overview\r\n\r\nThis is an official Linux template. It requires an SNMP client.\r\n\r\n#### Notes on filesystem (FS) discovery:\r\n- The ext4/3/2 FS reserves space for privileged usage, typically set at 5% by default.\r\n- BTRFS allocates a default of 10% of the volume for its own needs.\r\n- To mitigate potential disasters, FS usage triggers are based on the maximum available space.\r\n - Utilization formula: `pused = 100 * (used / used + available)`\r\n- The FS utilization chart, derived from graph prototypes, reflects FS reserved space as the difference between used and available space from the total volume.\r\n\r\n## Setup\r\n\r\nInstall snmpd agent on Linux OS, enable SNMPv2.\r\n\r\nMake sure access to UCD-SNMP-MIB is allowed from Zabbix server/proxy host, since,\r\nby default, snmpd (for example, in Ubuntu) limits access to basic system information only:\r\n\r\n```text\r\nrocommunity public default -V systemonly\r\n```\r\n\r\nEnsure snmpd is monitoring disks, using `includeALLDisks` or `disk` options. Example:\r\n```\r\nincludeALLDisks 0% # monitors all disks starting with 0% fill rate\r\n# disk / 0% # monitor only / root volume starting with 0% fill rate\r\n```\r\nMake sure you change that in order to read metrics of UCD-SNMP-MIB and UCD-DISKIO-MIB. Please refer to the documentation:\r\nhttp://www.net-snmp.org/wiki/index.php/Vacm\r\n\r\nYou can also try to use `snmpconf`:\r\n\r\nhttp://www.net-snmp.org/wiki/index.php/TUT:snmpd_configuration'),
('10249',NULL,'Windows by SNMP','3','-1','2','','','Windows by SNMP','0',NULL,'This is an official Windows template. It requires an SNMP client.\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nIF-MIB\r\n\r\nKnown Issues:\r\n\r\n Description:\r\n 64-bit I/O is not supported even though `IfxTable` is present.\r\n Currently, Windows gets its interface status from MIB-2. Since these 64-bit SNMP counters (`ifHCInOctets`, `ifHCOutOctets`, etc.) are defined as an extension to IF-MIB, Microsoft has not implemented it.\r\n https://social.technet.microsoft.com/Forums/windowsserver/en-US/07b62ff0-94f6-40ca-a99d-d129c1b33d70/windows-2008-r2-snmp-64bit-counters-support?forum=winservergen\r\n Version: Win2008, Win2012R2.\r\n\r\n Description: MIB is not supported\r\n Version: WindowsXP\r\n\r\n Description: EtherLike MIB is not supported\r\n Version: any\r\n\r\n Description:\r\n HOST-RESOURCES-MIB::hrStorageSize is limited to number 2147483647.\r\n Storage size is calculated using: `hrStorageSize` and `hrStorageAllocationUnits`.\r\n Allocation size of 512 bytes, sets the limit of monitored device to 1TB.\r\n Version: any\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','f9a59315c8944853bb91c0a9ec3056d7','WINDOWS BY SNMP','Zabbix','7.4-3',NULL,'0','1','## Overview\r\n\r\nThis is an official Windows template. It requires an SNMP client.\r\n\r\nMIBs used:\r\n- HOST-RESOURCES-MIB\r\n- SNMPv2-MIB\r\n- IF-MIB\r\n\r\n### Known Issues\r\n\r\n- 64-bit I/O is not supported even though `IfxTable` is present.\r\n Currently, Windows gets its interface status from MIB-2. Since these 64-bit SNMP counters (`ifHCInOctets`, `ifHCOutOctets`, etc.) are defined as an extension to IF-MIB, Microsoft has not implemented it.\r\n https://social.technet.microsoft.com/Forums/windowsserver/en-US/07b62ff0-94f6-40ca-a99d-d129c1b33d70/windows-2008-r2-snmp-64bit-counters-support?forum=winservergen\r\n - version: Win2008, Win2012R2.\r\n- `ifXTable` is not supported.\r\n - version: WindowsXP\r\n- EtherLike MIB is not supported\r\n - version: any\r\n- HOST-RESOURCES-MIB::hrStorageSize is limited to number 2147483647.\r\n Storage size is calculated using: `hrStorageSize` and `hrStorageAllocationUnits`.\r\n An allocation size of 512 bytes, sets the limit of monitored device to 1TB.\r\n |hrStorageAllocationUnits|Max size (TB)|\r\n |---|---|\r\n |512 bytes|1|\r\n |1024 bytes|2|\r\n |2048 bytes|4|\r\n |64 KB|128|\r\n - version: any'),
('10250',NULL,'HP Enterprise Switch by SNMP','3','-1','2','','','HP Enterprise Switch by SNMP','0',NULL,'Template Net HP Enterprise Switch\r\n\r\nMIBs used:\r\nNETSWITCH-MIB\r\nHP-ICF-CHASSIS\r\nENTITY-SENSORS-MIB\r\nIF-MIB\r\nEtherLike-MIB\r\nSEMI-MIB\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nENTITY-MIB\r\nSTATISTICS-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','cce20a5d149a48b7ac7f5383c3510883','HP ENTERPRISE SWITCH BY SNMP','Zabbix','7.4-2',NULL,'0','0',''),
('10251',NULL,'Mellanox by SNMP','3','-1','2','','','Mellanox by SNMP','0',NULL,'The updated template for monitoring the Mellanox network switches over SNMP agent. All items collected in one template without any linked templates.\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nENTITY-SENSORS-MIB\r\nENTITY-STATE-MIB\r\nENTITY-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','a60798c651604d93a062bec0f8a89751','MELLANOX BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10253',NULL,'Cisco IOS versions 12.0_3_T-12.2_3.5 by SNMP','3','-1','2','','','Cisco IOS versions 12.0_3_T-12.2_3.5 by SNMP','0',NULL,'Cisco IOS Software releases later to 12.0(3)T and prior to 12.2(3.5)\r\n\r\nMIBs used:\r\nCISCO-MEMORY-POOL-MIB\r\nIF-MIB\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nCISCO-ENVMON-MIB\r\nCISCO-PROCESS-MIB\r\nENTITY-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','40c233aaa3424fd29dc378022ff3461d','CISCO IOS VERSIONS 12.0_3_T-12.2_3.5 BY SNMP','Zabbix','7.4-2',NULL,'0','1',''),
('10254',NULL,'Arista by SNMP','3','-1','2','','','Arista by SNMP','0',NULL,'Template Net Arista\r\n\r\nMIBs used:\r\nENTITY-SENSORS-MIB\r\nENTITY-STATE-MIB\r\nIF-MIB\r\nEtherLike-MIB\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nENTITY-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','26674f62500e4e79b9f470bbf962130d','ARISTA BY SNMP','Zabbix','7.4-2',NULL,'0','0',''),
('10255',NULL,'Dell iDRAC by SNMP','3','-1','2','','','Dell iDRAC by SNMP','0',NULL,'Template for Dell servers with iDRAC version 7 and later.\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nIDRAC-MIB-SMIv2\r\nSNMPv2-MIB\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/426752-discussion-thread-for-official-zabbix-dell-templates\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','43dc5c8a9a0e4786b64e44422c7f32b4','DELL IDRAC BY SNMP','Zabbix','7.4-3',NULL,'0','0',''),
('10256',NULL,'HP iLO by SNMP','3','-1','2','','','HP iLO by SNMP','0',NULL,'Template Server HP iLO\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nCPQHLTH-MIB\r\nSNMPv2-MIB\r\nCPQSINFO-MIB\r\nCPQIDA-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','c2a7ddca051d4b4a9553f339c57e47a9','HP ILO BY SNMP','Zabbix','7.4-2',NULL,'0','0',''),
('10258',NULL,'IBM IMM by SNMP','3','-1','2','','','IBM IMM by SNMP','0',NULL,'Template Server IBM IMM\r\n\r\nMIBs used:\r\nIMM-MIB\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\n\r\nKnown Issues:\r\n\r\n Description: Some IMMs (IMM1) do not return disks\r\n Version: IMM1\r\n Device: IBM x3250M3\r\n\r\n Description: Some IMMs (IMM1) do not return fan status: fanHealthStatus\r\n Version: IMM1\r\n Device: IBM x3250M3\r\n\r\n Description: IMM1 servers (M2, M3 generations) sysObjectID is NET-SNMP-MIB::netSnmpAgentOIDs.10\r\n Version: IMM1\r\n Device: IMM1 servers (M2,M3 generations)\r\n\r\n Description: IMM1 servers (M2, M3 generations) only Ambient temperature sensor available\r\n Version: IMM1\r\n Device: IMM1 servers (M2,M3 generations)\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','c9e1acd3ae4a427ab39724b6bcaf839e','IBM IMM BY SNMP','Zabbix','7.4-2',NULL,'0','0',''),
('10259',NULL,'Supermicro Aten by SNMP','3','-1','2','','','Supermicro Aten by SNMP','0',NULL,'Template Server Supermicro Aten\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nATEN-IPMI-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','cf0947cc05d3450b9a6d66b2eb180482','SUPERMICRO ATEN BY SNMP','Zabbix','7.4-2',NULL,'0','0',''),
('10260',NULL,'Apache Tomcat by JMX','3','-1','2','','','Apache Tomcat by JMX','0',NULL,'The template to monitor Apache Tomcat by Zabbix that work without any external scripts.\r\nThe metrics are collected by JMX.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/411862-discussion-thread-for-official-zabbix-template-tomcat\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','3cc8c9ae7055458c9a803597007f70bd','APACHE TOMCAT BY JMX','Zabbix','7.4-0',NULL,'0','0',''),
('10261',NULL,'Remote Zabbix server health','3','-1','2','','','Remote Zabbix server health','0',NULL,'This template is designed to monitor internal Zabbix metrics on the remote Zabbix server.\r\n\r\nSpecify the address of the remote Zabbix server by changing the {$ZABBIX.SERVER.ADDRESS} and {$ZABBIX.SERVER.PORT} macros. Don\'t forget to adjust the "StatsAllowedIP" parameter in the remote server\'s configuration file to allow the collection of statistics.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','79b16cbbe593444eae3de66de0cb566b','REMOTE ZABBIX SERVER HEALTH','Zabbix','7.4-5',NULL,'0','1','## Overview\r\n\r\nThis template is designed to monitor internal Zabbix metrics on the remote Zabbix server.\r\n\r\n## Setup\r\n\r\nSpecify the address of the remote Zabbix server as the values for the `Zabbix server Address` and `Zabbix server Port` configuration fields. Don\'t forget to adjust the `StatsAllowedIP` parameter in the remote server\'s configuration file to allow the collection of statistics.'),
('10262',NULL,'Remote Zabbix proxy health','3','-1','2','','','Remote Zabbix proxy health','0',NULL,'This template is designed to monitor internal Zabbix metrics on the remote Zabbix proxy.\r\n\r\nSpecify the address of the remote Zabbix proxy by updating the {$ZABBIX.PROXY.ADDRESS} and {$ZABBIX.PROXY.PORT} macros. Don\'t forget to adjust the "StatsAllowedIP" parameter in the remote proxy\'s configuration file to allow the collection of statistics.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','970c2342146549768e6b91a26089bcdf','REMOTE ZABBIX PROXY HEALTH','Zabbix','7.4-3',NULL,'0','1','## Overview\r\n\r\nThis template is designed to monitor internal Zabbix metrics on the remote Zabbix proxy.\r\n\r\n## Setup\r\n\r\nSpecify the address of the remote Zabbix proxy as the values for the `Zabbix proxy Address` and `Zabbix proxy Port` configuration fields. Don\'t forget to adjust the `StatsAllowedIP` parameter in the remote proxy\'s configuration file to allow the collection of statistics.'),
('10264',NULL,'Apache by Zabbix agent','3','-1','2','','','Apache by Zabbix agent','0',NULL,'Get metrics from mod_status module using HTTP agent.\r\nhttps://httpd.apache.org/docs/current/mod/mod_status.html\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/384764-discussion-thread-for-official-zabbix-template-apache\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','a8d91e4f36794e32b73090d5edf3d7ae','APACHE BY ZABBIX AGENT','Zabbix','7.4-1',NULL,'0','1','## Overview\r\n\r\nThis template is designed for the effortless deployment of Apache monitoring by Zabbix via Zabbix agent and doesn\'t require any external scripts.\r\nThe template `Apache by Zabbix agent` - collects metrics by polling [mod_status](https://httpd.apache.org/docs/current/mod/mod_status.html) locally with Zabbix agent:\r\n \r\n```text\r\n127.0.0.1\r\nServerVersion: Apache/2.4.41 (Unix)\r\nServerMPM: event\r\nServer Built: Aug 14 2019 00:35:10\r\nCurrentTime: Friday, 16-Aug-2019 12:38:40 UTC\r\nRestartTime: Wednesday, 14-Aug-2019 07:58:26 UTC\r\nParentServerConfigGeneration: 1\r\nParentServerMPMGeneration: 0\r\nServerUptimeSeconds: 189613\r\nServerUptime: 2 days 4 hours 40 minutes 13 seconds\r\nLoad1: 4.60\r\nLoad5: 1.20\r\nLoad15: 0.47\r\nTotal Accesses: 27860\r\nTotal kBytes: 33011\r\nTotal Duration: 54118\r\nCPUUser: 18.02\r\nCPUSystem: 31.76\r\nCPUChildrenUser: 0\r\nCPUChildrenSystem: 0\r\nCPULoad: .0262535\r\nUptime: 189613\r\nReqPerSec: .146931\r\nBytesPerSec: 178.275\r\nBytesPerReq: 1213.33\r\nDurationPerReq: 1.9425\r\nBusyWorkers: 7\r\nIdleWorkers: 93\r\nProcesses: 4\r\nStopping: 0\r\nBusyWorkers: 7\r\nIdleWorkers: 93\r\nConnsTotal: 13\r\nConnsAsyncWriting: 0\r\nConnsAsyncKeepAlive: 5\r\nConnsAsyncClosing: 0\r\nScoreboard: ...\r\n\r\n```\r\n \r\nIt also uses Zabbix agent to collect `Apache` Linux process statistics such as CPU usage, memory usage, and whether the process is running or not.\r\n\r\n## Setup\r\n\r\nSee the setup instructions for [mod_status](https://httpd.apache.org/docs/current/mod/mod_status.html).\r\n\r\nCheck the availability of the module with this command line: `httpd -M 2>/dev/null | grep status_module`\r\n\r\nThis is an example configuration of the Apache web server:\r\n\r\n```text\r\n\r\n SetHandler server-status\r\n Require host example.com\r\n\r\n```\r\n\r\nIf you use another path, then do not forget to change the `Apache status page path` host wizard configuration field.'),
('10265',NULL,'Apache by HTTP','3','-1','2','','','Apache by HTTP','0',NULL,'This template is designed for the effortless deployment of Apache monitoring by Zabbix via HTTP and doesn\'t require any external scripts.\r\n\r\nThe template collects metrics by polling \'mod_status\' with HTTP agent remotely.\r\n\r\nSetup:\r\n\r\n1. See the setup instructions for mod_status:\r\nhttps://httpd.apache.org/docs/current/mod/mod_status.html\r\n\r\nCheck the availability of the module with this command line:\r\nhttpd -M 2>/dev/null | grep status_module\r\n\r\nThis is an example configuration of the Apache web server:\r\n\r\n\r\n SetHandler server-status\r\n Require host example.com\r\n\r\n\r\n2. Set the hostname or IP address of the Apache status page host in the \'{$APACHE.STATUS.HOST}\' macro. You can also change the status page port in the \'{$APACHE.STATUS.PORT}\' macro and status page path in the \'{$APACHE.STATUS.PATH}\' macro if necessary.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/384764-discussion-thread-for-official-zabbix-template-apache\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','86702e8bc514434e8c914d50c206cb94','APACHE BY HTTP','Zabbix','7.4-1',NULL,'0','1','## Overview\r\n\r\nThis template is designed for the effortless deployment of Apache monitoring by Zabbix via HTTP and doesn\'t require any external scripts.\r\n\r\nThe template collects metrics by polling [`mod_status`](https://httpd.apache.org/docs/current/mod/mod_status.html) with HTTP agent remotely:\r\n\r\n```text\r\n127.0.0.1\r\nServerVersion: Apache/2.4.41 (Unix)\r\nServerMPM: event\r\nServer Built: Aug 14 2019 00:35:10\r\nCurrentTime: Friday, 16-Aug-2019 12:38:40 UTC\r\nRestartTime: Wednesday, 14-Aug-2019 07:58:26 UTC\r\nParentServerConfigGeneration: 1\r\nParentServerMPMGeneration: 0\r\nServerUptimeSeconds: 189613\r\nServerUptime: 2 days 4 hours 40 minutes 13 seconds\r\nLoad1: 4.60\r\nLoad5: 1.20\r\nLoad15: 0.47\r\nTotal Accesses: 27860\r\nTotal kBytes: 33011\r\nTotal Duration: 54118\r\nCPUUser: 18.02\r\nCPUSystem: 31.76\r\nCPUChildrenUser: 0\r\nCPUChildrenSystem: 0\r\nCPULoad: .0262535\r\nUptime: 189613\r\nReqPerSec: .146931\r\nBytesPerSec: 178.275\r\nBytesPerReq: 1213.33\r\nDurationPerReq: 1.9425\r\nBusyWorkers: 7\r\nIdleWorkers: 93\r\nProcesses: 4\r\nStopping: 0\r\nBusyWorkers: 7\r\nIdleWorkers: 93\r\nConnsTotal: 13\r\nConnsAsyncWriting: 0\r\nConnsAsyncKeepAlive: 5\r\nConnsAsyncClosing: 0\r\nScoreboard: ...\r\n```\r\n\r\n## Setup\r\n\r\n1. See the setup instructions for [`mod_status`](https://httpd.apache.org/docs/current/mod/mod_status.html).\r\n\r\nCheck the availability of the module with this command line:\r\n`httpd -M 2>/dev/null | grep status_module`\r\n\r\nThis is an example configuration of the Apache web server:\r\n\r\n```text\r\n\r\n SetHandler server-status\r\n Require host example.com\r\n\r\n```\r\n\r\n2. Set the hostname or IP address of the Apache status page host in the `Apache status host` host wizard configuration field. You can also change the status page port in the `Apache status page port` field and status page path in the `Apache status page path` field if necessary.'),
('10266',NULL,'Nginx by Zabbix agent','3','-1','2','','','Nginx by Zabbix agent','0',NULL,'Get metrics from stub status module using Zabbix agent running on Linux\r\nhttps://nginx.ru/en/docs/http/ngx_http_stub_status_module.html\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/384765-discussion-thread-for-official-zabbix-template-nginx\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','27f6424905884dbb96ab9210d987a56c','NGINX BY ZABBIX AGENT','Zabbix','7.4-1',NULL,'0','1','## Overview\r\n\r\nThis template is developed to monitor Nginx by Zabbix that works without any external scripts.\r\nMost of the metrics are collected in one go, thanks to Zabbix bulk data collection.\r\n\r\nThe template `Nginx by Zabbix agent` - collects metrics by polling the [Module ngx_http_stub_status_module](https://nginx.ru/en/docs/http/ngx_http_stub_status_module.html) locally with Zabbix agent:\r\n\r\n```text\r\nActive connections: 291\r\nserver accepts handled requests\r\n16630948 16630948 31070465\r\nReading: 6 Writing: 179 Waiting: 106\r\n```\r\n\r\nNote that this template doesn\'t support HTTPS and redirects (limitations of `web.page.get`).\r\n\r\nIt also uses Zabbix agent to collect `Nginx` Linux process statistics, such as CPU usage, memory usage and whether the process is running or not.\r\n\r\n\r\n## Setup\r\n\r\nSee the setup instructions for [ngx_http_stub_status_module](https://nginx.ru/en/docs/http/ngx_http_stub_status_module.html).\r\nTest the availability of the `http_stub_status_module` `nginx -V 2>&1 | grep -o with-http_stub_status_module`.\r\n\r\nExample configuration of Nginx:\r\n```text\r\nlocation = /basic_status {\r\n stub_status;\r\n allow 127.0.0.1;\r\n allow ::1;\r\n deny all;\r\n}\r\n```\r\n\r\nIf you use another location, then don\'t forget to change the `Nginx status page path` host wizard configuration field.\r\n\r\nExample answer from Nginx:\r\n```text\r\nActive connections: 291\r\nserver accepts handled requests\r\n16630948 16630948 31070465\r\nReading: 6 Writing: 179 Waiting: 106\r\n```\r\n\r\nNote that this template doesn\'t support https and redirects (limitations of web.page.get).'),
('10267',NULL,'Nginx by HTTP','3','-1','2','','','Nginx by HTTP','0',NULL,'This template is developed to monitor Nginx by Zabbix that works without any external scripts.\r\nMost of the metrics are collected in one go, thanks to Zabbix bulk data collection.\r\n\r\nThe template collects metrics by polling the module \'ngx_http_stub_status_module\' with HTTP agent remotely:\r\nhttps://nginx.ru/en/docs/http/ngx_http_stub_status_module.html\r\n\r\nActive connections: 291\r\nserver accepts handled requests\r\n16630948 16630948 31070465\r\nReading: 6 Writing: 179 Waiting: 106\r\n\r\nSetup:\r\n\r\n1. See the setup instructions for \'ngx_http_stub_status_module\':\r\nhttps://nginx.ru/en/docs/http/ngx_http_stub_status_module.html\r\n\r\nTest the availability of the \'http_stub_status_module\' with \'nginx -V 2>&1 | grep -o with-http_stub_status_module\'.\r\n\r\nExample configuration of Nginx:\r\n\r\nlocation = /basic_status {\r\n stub_status;\r\n allow ;\r\n deny all;\r\n}\r\n\r\n2. Set the hostname or IP address of the Nginx host or Nginx container in the \'{$NGINX.STUB_STATUS.HOST}\' macro. You can also change the status page port in the \'{$NGINX.STUB_STATUS.PORT}\' macro, the status page scheme in the \'{$NGINX.STUB_STATUS.SCHEME}\' macro and the status page path in the \'{$NGINX.STUB_STATUS.PATH}\' macro if necessary.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/384765-discussion-thread-for-official-zabbix-template-nginx\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','13d5bb0a4ae84228bff408aab5be338e','NGINX BY HTTP','Zabbix','7.4-1',NULL,'0','1','## Overview\r\n\r\nThis template is developed to monitor Nginx by Zabbix that works without any external scripts.\r\nMost of the metrics are collected in one go, thanks to Zabbix bulk data collection.\r\n\r\nThe template collects metrics by polling the module [`ngx_http_stub_status_module`](https://nginx.ru/en/docs/http/ngx_http_stub_status_module.html) with HTTP agent remotely:\r\n\r\n```text\r\nActive connections: 291\r\nserver accepts handled requests\r\n16630948 16630948 31070465\r\nReading: 6 Writing: 179 Waiting: 106\r\n```\r\n\r\n## Setup\r\n\r\n1. See the setup instructions for [`ngx_http_stub_status_module`](https://nginx.ru/en/docs/http/ngx_http_stub_status_module.html).\r\n\r\nTest the availability of the `http_stub_status_module` with `nginx -V 2>&1 | grep -o with-http_stub_status_module`.\r\n\r\nExample configuration of Nginx:\r\n\r\n```text\r\nlocation = /basic_status {\r\n stub_status;\r\n allow ;\r\n deny all;\r\n}\r\n```\r\n\r\n2. Set the hostname or IP address of the Nginx host or Nginx container in the `Nginx status host` host wizard configuration field. You can also change the status page port in the `Nginx status page path` field, select the status page scheme in the `Request scheme` field and change the status page path in the `Nginx status page path` field if necessary.\r\n\r\nExample answer from Nginx:\r\n\r\n```text\r\nActive connections: 291\r\nserver accepts handled requests\r\n16630948 16630948 31070465\r\nReading: 6 Writing: 179 Waiting: 106\r\n```'),
('10285',NULL,'Linux by Prom','3','-1','2','','','Linux by Prom','0',NULL,'This template collects Linux metrics from node_exporter 0.18 and above. Support for older node_exporter versions is provided as \'best effort\'.\r\n\r\nSetup:\r\n\r\n1. Set up the node_exporter according to the official documentation:\r\nhttps://prometheus.io/docs/guides/node-exporter/\r\n\r\nUse node_exporter v0.18.0 or above.\r\n\r\n2. Set the hostname or IP address of the node_exporter host in the \'{$NODE_EXPORTER_HOST}\' macro. You can also change the Prometheus endpoint port in the \'{$NODE_EXPORTER_PORT}\' macro if necessary.\r\n\r\nKnown Issues:\r\n\r\n - Node Exporter 0.16.0 renamed many metrics. CPU utilization for "guest" and "guest_nice" metrics are not supported in this template with Node Exporter < 0.16. Disk IO metrics are not supported. Other metrics provided as best effort. See https://github.com/prometheus/node_exporter/releases/tag/v0.16.0 for details.\r\n - version: below 0.16.0\r\n - metric node_network_info with label \'device\' cannot be found, so network discovery is not possible.\r\n - version: below 0.18\r\n\r\nNotes on filesystem (FS) discovery:\r\n - The ext4/3/2 FS reserves space for privileged usage, typically set at 5% by default.\r\n - BTRFS allocates a default of 10% of the volume for its own needs.\r\n - To mitigate potential disasters, FS usage triggers are based on the maximum available space.\r\n - Utilization formula: \'pused = 100 - 100 * (available / total - free + available)\'\r\n - The FS utilization chart, derived from graph prototypes, reflects FS reserved space as the difference between used and available space from the total volume.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/387225-discussion-thread-for-official-zabbix-template-for-linux\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','2506b0ca01884903b547b1e19b76ce6d','LINUX BY PROM','Zabbix','7.4-3',NULL,'0','1','## Overview\r\n\r\nThis template collects Linux metrics from Node Exporter 0.18 and above. Support for older Node Exporter versions is provided as best effort.\r\n\r\n### Known Issues\r\n\r\n - Node Exporter 0.16.0 renamed many metrics. CPU utilization for "guest" and "guest_nice" metrics are not supported in this template with Node Exporter < 0.16. Disk IO metrics are not supported. Other metrics provided as best effort. See https://github.com/prometheus/node_exporter/releases/tag/v0.16.0 for details\r\nSee https://github.com/prometheus/node_exporter/releases/tag/v0.16.0 for details.\r\n - version: below 0.16.0\r\n - metric node_network_info with label \'device\' cannot be found, so network discovery is not possible.\r\n - version: below 0.18\r\n\r\n#### Notes on filesystem (FS) discovery:\r\n - The ext4/3/2 FS reserves space for privileged usage, typically set at 5% by default.\r\n - BTRFS allocates a default of 10% of the volume for its own needs.\r\n - To mitigate potential disasters, FS usage triggers are based on the maximum available space.\r\n - Utilization formula: `pused = 100 - 100 * (available / total - free + available)`\r\n - The FS utilization chart, derived from graph prototypes, reflects FS reserved space as the difference between used and available space from the total volume.\r\n\r\n## Setup\r\n\r\n1. Set up the node_exporter according to the [`official documentation`](https://prometheus.io/docs/guides/node-exporter/). Use node_exporter v0.18.0 or above.\r\n\r\n2. Set the hostname or IP address of the node_exporter host in the `The node_exporter host` parameter. You can also change the Prometheus endpoint port in the `TCP Port node_exporter` parameter if necessary.'),
('10300',NULL,'RabbitMQ cluster by Zabbix agent','3','-1','2','','','RabbitMQ cluster by Zabbix agent','0',NULL,'Get cluster metrics from RabbitMQ management plugin provided an HTTP-based API using Zabbix agent.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/387226-discussion-thread-for-official-zabbix-template-rabbitmq\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','5fa761bc51e4432a90c6c9eece930c4a','RABBITMQ CLUSTER BY ZABBIX AGENT','Zabbix','7.4-0',NULL,'0','0',''),
('10301',NULL,'RabbitMQ node by Zabbix agent','3','-1','2','','','RabbitMQ node by Zabbix agent','0',NULL,'Get node metrics from RabbitMQ management plugin provided an HTTP-based API using Zabbix agent.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/387226-discussion-thread-for-official-zabbix-template-rabbitmq\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','d5dc11ae9ab143a89c4be534bbb35188','RABBITMQ NODE BY ZABBIX AGENT','Zabbix','7.4-0',NULL,'0','0',''),
('10302',NULL,'RabbitMQ cluster by HTTP','3','-1','2','','','RabbitMQ cluster by HTTP','0',NULL,'This template is developed to monitor the messaging broker RabbitMQ cluster by Zabbix that works without any external scripts.\r\nMost of the metrics are collected in one go, thanks to Zabbix bulk data collection.\r\n\r\nThe template collects metrics by polling RabbitMQ management plugin with HTTP agent remotely.\r\n\r\nSetup:\r\n\r\n1. Enable the RabbitMQ management plugin. See the RabbitMQ documentation for the instructions:\r\nhttps://www.rabbitmq.com/management.html\r\n\r\n2. Create a user to monitor the service:\r\n\r\nrabbitmqctl add_user zbx_monitor \r\nrabbitmqctl set_permissions -p / zbx_monitor "" "" ".*"\r\nrabbitmqctl set_user_tags zbx_monitor monitoring\r\n\r\n3. Set the hostname or IP address of the RabbitMQ cluster host in the \'{$RABBITMQ.API.CLUSTER_HOST}\' macro. You can also change the port in the \'{$RABBITMQ.API.PORT}\' macro and the scheme in the \'{$RABBITMQ.API.SCHEME}\' macro if necessary.\r\n\r\n4. Set the user name and password in the macros \'{$RABBITMQ.API.USER}\' and \'{$RABBITMQ.API.PASSWORD}\'.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/387226-discussion-thread-for-official-zabbix-template-rabbitmq\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','8c8474148c2a4eaeabe5a9331ea99d77','RABBITMQ CLUSTER BY HTTP','Zabbix','7.4-0',NULL,'0','0',''),
('10303',NULL,'RabbitMQ node by HTTP','3','-1','2','','','RabbitMQ node by HTTP','0',NULL,'This template is developed to monitor the messaging broker RabbitMQ node by Zabbix that works without any external scripts.\r\nMost of the metrics are collected in one go, thanks to Zabbix bulk data collection.\r\n\r\nThe template collects metrics by polling RabbitMQ management plugin with HTTP agent remotely.\r\n\r\nSetup:\r\n\r\n1. Enable the RabbitMQ management plugin. See the RabbitMQ documentation for the instructions:\r\nhttps://www.rabbitmq.com/management.html\r\n\r\n2. Create a user to monitor the service:\r\n\r\nrabbitmqctl add_user zbx_monitor \r\nrabbitmqctl set_permissions -p / zbx_monitor "" "" ".*"\r\nrabbitmqctl set_user_tags zbx_monitor monitoring\r\n\r\n3. Set the hostname or IP address of the RabbitMQ node host in the \'{$RABBITMQ.API.HOST}\' macro. You can also change the port in the \'{$RABBITMQ.API.PORT}\' macro and the scheme in the \'{$RABBITMQ.API.SCHEME}\' macro if necessary.\r\n\r\n4. Set the user name and password in the macros \'{$RABBITMQ.API.USER}\' and \'{$RABBITMQ.API.PASSWORD}\'.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/387226-discussion-thread-for-official-zabbix-template-rabbitmq\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','b9514029d03b44de9adf24251778dbf3','RABBITMQ NODE BY HTTP','Zabbix','7.4-0',NULL,'0','0',''),
('10304',NULL,'Cisco UCS by SNMP','3','-1','2','','','Cisco UCS by SNMP','0',NULL,'Template Server Cisco UCS\r\n\r\nMIBs used:\r\nCISCO-UNIFIED-COMPUTING-COMPUTE-MIB\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nCISCO-UNIFIED-COMPUTING-PROCESSOR-MIB\r\nCISCO-UNIFIED-COMPUTING-EQUIPMENT-MIB\r\nCISCO-UNIFIED-COMPUTING-STORAGE-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','cb66d34564e44b3893442fc74cf6e951','CISCO UCS BY SNMP','Zabbix','7.4-2',NULL,'0','0',''),
('10308',NULL,'HAProxy by Zabbix agent','3','-1','2','','','HAProxy by Zabbix agent','0',NULL,'The template to monitor HAProxy by Zabbix that works without any external scripts.\r\nMost of the metrics are collected in one go, thanks to Zabbix bulk data collection.\r\n\r\nThe template collects metrics by polling the HAProxy stats page with Zabbix agent.\r\n\r\nNote, that this template doesn\'t support authentication and redirects (limitations of \'web.page.get\').\r\n\r\nSetup:\r\n\r\n1. Set up the HAProxy stats page:\r\nhttps://www.haproxy.com/blog/exploring-the-haproxy-stats-page/\r\n\r\nThe example configuration of HAProxy:\r\n\r\nfrontend stats\r\n bind *:8404\r\n stats enable\r\n stats uri /stats\r\n stats refresh 10s\r\n\r\n2. Set the hostname or IP address of the HAProxy stats host or container in the \'{$HAPROXY.STATS.HOST}\' macro. You can also change the status page port in the \'{$HAPROXY.STATS.PORT}\' macro, the status page scheme in the \'{$HAPROXY.STATS.SCHEME}\' macro and the status page path in the \'{$HAPROXY.STATS.PATH}\' macro if necessary.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/393527-discussion-thread-for-official-zabbix-template-haproxy\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','812073bf8df143bcae2a84b32c3965e5','HAPROXY BY ZABBIX AGENT','Zabbix','7.4-1',NULL,'0','0',''),
('10309',NULL,'HAProxy by HTTP','3','-1','2','','','HAProxy by HTTP','0',NULL,'The template to monitor HAProxy by Zabbix that works without any external scripts.\r\nMost of the metrics are collected in one go, thanks to Zabbix bulk data collection.\r\n\r\nThe template collects metrics by polling the HAProxy stats page with HTTP agent.\r\n\r\nSetup:\r\n\r\n1. Set up the HAProxy stats page:\r\nhttps://www.haproxy.com/blog/exploring-the-haproxy-stats-page/\r\n\r\nIf you want to use authentication, set the username and password in the \'stats auth\' option of the configuration file.\r\n\r\nThe example configuration of HAProxy:\r\n\r\nfrontend stats\r\n bind *:8404\r\n stats enable\r\n stats uri /stats\r\n stats refresh 10s\r\n #stats auth Username:Password # Authentication credentials\r\n\r\n2. Set the hostname or IP address of the HAProxy stats host or container in the \'{$HAPROXY.STATS.HOST}\' macro. You can also change the status page port in the \'{$HAPROXY.STATS.PORT}\' macro, the status page scheme in the \'{$HAPROXY.STATS.SCHEME}\' macro and the status page path in the \'{$HAPROXY.STATS.PATH}\' macro if necessary.\r\n\r\n3. If you have enabled authentication in the HAProxy configuration file in step 1, set the username and password in the `{$HAPROXY.USERNAME}` and `{$HAPROXY.PASSWORD}` macros.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/393527-discussion-thread-for-official-zabbix-template-haproxy\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','948d046cb2894e5c8d07767a518cc1a9','HAPROXY BY HTTP','Zabbix','7.4-1',NULL,'0','0',''),
('10310',NULL,'Redis by Zabbix agent 2','3','-1','2','','','Redis by Zabbix agent 2','0',NULL,'Get Redis metrics from plugin for the New Zabbix Agent (zabbix-agent2).\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/389050-discussion-thread-for-official-zabbix-template-redis\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','e111446745a1425b862f8727ae63bce4','REDIS BY ZABBIX AGENT 2','Zabbix','7.4-1',NULL,'0','0',''),
('10316',NULL,'MySQL by Zabbix agent','3','-1','2','','','MySQL by Zabbix agent','0',NULL,'Requirements for template operation:\r\n\r\n1. Install Zabbix agent and MySQL client. If necessary, add the path to the \'mysql\' and \'mysqladmin\' utilities to the global environment variable PATH.\r\n\r\n2. Copy the \'template_db_mysql.conf\' file with user parameters into folder with Zabbix agent configuration (/etc/zabbix/zabbix_agentd.d/ by default). Don\'t forget to restart Zabbix agent.\r\n\r\n3. Create the MySQL user that will be used for monitoring (\'\' at your discretion). For example:\r\n\r\nCREATE USER \'zbx_monitor\'@\'%\' IDENTIFIED BY \'\';\r\nGRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO \'zbx_monitor\'@\'%\';\r\n\r\nFor more information, please see MySQL documentation (https://dev.mysql.com/doc/refman/8.0/en/grant.html).\r\n\r\nNOTE: In order to collect replication metrics, MariaDB Enterprise Server 10.5.8-5 and above and MariaDB Community Server 10.5.9 and above require the SLAVE MONITOR privilege to be set for the monitoring user:\r\n\r\nGRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW,SLAVE MONITOR ON *.* TO \'zbx_monitor\'@\'%\';\r\n\r\nFor more information, please read the MariaDB documentation (https://mariadb.com/docs/server/ref/mdb/privileges/SLAVE_MONITOR/).\r\n\r\n4. Create \'.my.cnf\' configuration file in the home directory of Zabbix agent for Linux distributions (/var/lib/zabbix by default) or \'my.cnf\' in c:\\ for Windows. For example:\r\n\r\n[client]\r\nprotocol=tcp\r\nuser=\'zbx_monitor\'\r\npassword=\'\'\r\n\r\nFor more information, please see MySQL documentation (https://dev.mysql.com/doc/refman/8.0/en/option-files.html).\r\n\r\nNOTE: Linux distributions that use SELinux may require additional steps for access configuration.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/384189-discussion-thread-for-official-zabbix-template-db-mysql\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','f255e3fc32124b55b2a17ef3c961e5f5','MYSQL BY ZABBIX AGENT','Zabbix','7.4-3',NULL,'0','1','## Setup\r\n\r\n1. Install MySQL client. If necessary, add the path to the `mysql` and `mysqladmin` utilities to the global environment variable PATH.\r\n2. Copy the `template_db_mysql.conf` file with user parameters into folder with Zabbix agent configuration (/etc/zabbix/zabbix_agentd.d/ by default). Don\'t forget to restart Zabbix agent.\r\n3. Create the MySQL user that will be used for monitoring (`` at your discretion). For example:\r\n\r\n```text\r\nCREATE USER \'zbx_monitor\'@\'%\' IDENTIFIED BY \'\';\r\nGRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO \'zbx_monitor\'@\'%\';\r\n```\r\n\r\nFor more information, please see [`MySQL documentation`](https://dev.mysql.com/doc/refman/8.0/en/grant.html).\r\n\r\n4. Create `.my.cnf` configuration file in the home directory of Zabbix agent for Linux distributions (/var/lib/zabbix by default) or `my.cnf` in c:\\ for Windows. For example:\r\n\r\n```text\r\n[client]\r\nprotocol=tcp\r\nuser=\'zbx_monitor\'\r\npassword=\'\'\r\n```\r\n\r\nFor more information, please see [`MySQL documentation`](https://dev.mysql.com/doc/refman/8.0/en/option-files.html).\r\n\r\n**NOTE:** In order to collect replication metrics, MariaDB Enterprise Server 10.5.8-5 and above and MariaDB Community Server 10.5.9 and above require the `SLAVE MONITOR` privilege to be set for the monitoring user:\r\n\r\n```text\r\nGRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW,SLAVE MONITOR ON *.* TO \'zbx_monitor\'@\'%\';\r\n```\r\n\r\nFor more information, please read the [`MariaDB documentation`](https://mariadb.com/docs/server/ref/mdb/privileges/SLAVE_MONITOR/).\r\n\r\nNOTE: Linux distributions that use SELinux may require additional steps for access configuration.\r\n\r\nFor example, the following rule could be added to the SELinux policy:\r\n\r\n```text\r\n# cat < zabbix_home.te\r\nmodule zabbix_home 1.0;\r\n\r\nrequire {\r\n type zabbix_agent_t;\r\n type zabbix_var_lib_t;\r\n type mysqld_etc_t;\r\n type mysqld_port_t;\r\n type mysqld_var_run_t;\r\n class file { open read };\r\n class tcp_socket name_connect;\r\n class sock_file write;\r\n}\r\n\r\n#============= zabbix_agent_t ==============\r\n\r\nallow zabbix_agent_t zabbix_var_lib_t:file read;\r\nallow zabbix_agent_t zabbix_var_lib_t:file open;\r\nallow zabbix_agent_t mysqld_etc_t:file read;\r\nallow zabbix_agent_t mysqld_port_t:tcp_socket name_connect;\r\nallow zabbix_agent_t mysqld_var_run_t:sock_file write;\r\nEOF\r\n# checkmodule -M -m -o zabbix_home.mod zabbix_home.te\r\n# semodule_package -o zabbix_home.pp -m zabbix_home.mod\r\n# semodule -i zabbix_home.pp\r\n# restorecon -R /var/lib/zabbix\r\n```'),
('10317',NULL,'MySQL by ODBC','3','-1','2','','','MySQL by ODBC','0',NULL,'Requirements for template operation:\r\n1. Create a MySQL user for monitoring. For example:\r\n\r\nCREATE USER \'zbx_monitor\'@\'%\' IDENTIFIED BY \'\';\r\nGRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO \'zbx_monitor\'@\'%\';\r\n\r\nFor more information please read the MySQL documentation https://dev.mysql.com/doc/refman/8.0/en/grant.html.\r\n\r\nNOTE: In order to collect replication metrics, MariaDB Enterprise Server 10.5.8-5 and above and MariaDB Community Server 10.5.9 and above require the SLAVE MONITOR privilege to be set for the monitoring user:\r\n\r\nGRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW,SLAVE MONITOR ON *.* TO \'zbx_monitor\'@\'%\';\r\n\r\nFor more information please read the MariaDB documentation https://mariadb.com/docs/server/ref/mdb/privileges/SLAVE_MONITOR/\r\n\r\n2. Set the user name and password in the host macros ({$MYSQL.USER} and {$MYSQL.PASSWORD}).\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/384189-discussion-thread-for-official-zabbix-template-db-mysql\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','e19c120027e04da69b130e0f6cea29fc','MYSQL BY ODBC','Zabbix','7.4-3',NULL,'0','1','## Setup\r\n\r\n1. Create a MySQL user for monitoring (`` at your discretion):\r\n\r\n```text\r\nCREATE USER \'zbx_monitor\'@\'%\' IDENTIFIED BY \'\';\r\nGRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO \'zbx_monitor\'@\'%\';\r\n```\r\n\r\nFor more information, please see MySQL documentation https://dev.mysql.com/doc/refman/8.0/en/grant.html\r\n\r\n**NOTE:** In order to collect replication metrics, MariaDB Enterprise Server 10.5.8-5 and above and MariaDB Community Server 10.5.9 and above require the `SLAVE MONITOR` privilege to be set for the monitoring user:\r\n\r\n```text\r\nGRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW,SLAVE MONITOR ON *.* TO \'zbx_monitor\'@\'%\';\r\n```\r\n\r\nFor more information please read the MariaDB documentation https://mariadb.com/docs/server/ref/mdb/privileges/SLAVE_MONITOR/\r\n\r\n2. Set the username and password in the `MySQL user` and `MySQL password` host wizard configuration fields.'),
('10318',NULL,'Docker by Zabbix agent 2','3','-1','2','','','Docker by Zabbix agent 2','0',NULL,'Get Docker engine metrics from plugin for the New Zabbix Agent (zabbix-agent2).\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/435429-discussion-thread-for-official-zabbix-template-docker\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','c5fd214cdd0d4b3b8272e73b022ba5c2','DOCKER BY ZABBIX AGENT 2','Zabbix','7.4-1',NULL,'0','0',''),
('10319',NULL,'Memcached by Zabbix agent 2','3','-1','2','','','Memcached by Zabbix agent 2','0',NULL,'Get Memcached metrics from plugin for the New Zabbix Agent (zabbix-agent2).\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/398623-discussion-thread-for-official-zabbix-template-memcached\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','05894ba2c9184d33992bf1bd21c347f6','MEMCACHED BY ZABBIX AGENT 2','Zabbix','7.4-2',NULL,'0','0',''),
('10320',NULL,'MySQL by Zabbix agent 2','3','-1','2','','','MySQL by Zabbix agent 2','0',NULL,'Requirements for template operation:\r\n\r\n1. Create a MySQL user for monitoring. For example:\r\n\r\nCREATE USER \'zbx_monitor\'@\'%\' IDENTIFIED BY \'\';\r\nGRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO \'zbx_monitor\'@\'%\';\r\n\r\nFor more information please read the MySQL documentation https://dev.mysql.com/doc/refman/8.0/en/grant.html.\r\n\r\nNOTE: In order to collect replication metrics, MariaDB Enterprise Server 10.5.8-5 and above and MariaDB Community Server 10.5.9 and above require the SLAVE MONITOR privilege to be set for the monitoring user:\r\n\r\nGRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW,SLAVE MONITOR ON *.* TO \'zbx_monitor\'@\'%\';\r\n\r\nFor more information please read the MariaDB documentation https://mariadb.com/docs/server/ref/mdb/privileges/SLAVE_MONITOR/\r\n\r\n2. Set in the {$MYSQL.DSN} macro the data source name of the MySQL instance either session name from Zabbix agent 2 configuration file or URI.\r\nExamples: MySQL1, tcp://localhost:3306, tcp://172.16.0.10, unix:/var/run/mysql.sock\r\nFor more information about MySQL Unix socket file please read the MySQL documentation https://dev.mysql.com/doc/refman/8.0/en/problems-with-mysql-sock.html.\r\n\r\n3. If you had set URI in the {$MYSQL.DSN}, please define the user name and password in host macros ({$MYSQL.USER} and {$MYSQL.PASSWORD}).\r\nLeave macros {$MYSQL.USER} and {$MYSQL.PASSWORD} empty if you use a session name. Set the user name and password in the Plugins.Mysql.<...> section of your Zabbix agent 2 configuration file.\r\nFor more information about configuring the Zabbix MySQL plugin please read the documentation https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/src/go/plugins/mysql/README.md.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/384189-discussion-thread-for-official-zabbix-template-db-mysql\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','4904f84303c74c5e955b7849730c3155','MYSQL BY ZABBIX AGENT 2','Zabbix','7.4-3',NULL,'0','1','## Setup\r\n\r\n1. Create a MySQL user for monitoring (`` at your discretion):\r\n\r\n```text\r\nCREATE USER \'zbx_monitor\'@\'%\' IDENTIFIED BY \'\';\r\nGRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO \'zbx_monitor\'@\'%\';\r\n```\r\n\r\nFor more information, please see MySQL documentation https://dev.mysql.com/doc/refman/8.0/en/grant.html\r\n\r\n**NOTE:** In order to collect replication metrics, MariaDB Enterprise Server 10.5.8-5 and above and MariaDB Community Server 10.5.9 and above require the `SLAVE MONITOR` privilege to be set for the monitoring user:\r\n\r\n```text\r\nGRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW,SLAVE MONITOR ON *.* TO \'zbx_monitor\'@\'%\';\r\n```\r\n\r\nFor more information please read the MariaDB documentation https://mariadb.com/docs/server/ref/mdb/privileges/SLAVE_MONITOR/\r\n\r\n2. Set in the `MySQL DSN` host wizard configuration field macro the data source name of the MySQL instance either session name from Zabbix agent 2 configuration file or URI.\r\n**Examples:** MySQL1, tcp://localhost:3306, tcp://172.16.0.10, unix:/var/run/mysql.sock\r\nFor more information about MySQL Unix socket file, see the MySQL documentation https://dev.mysql.com/doc/refman/8.0/en/problems-with-mysql-sock.html.\r\n\r\n3. If you had set URI in the `MySQL DSN` field, define the user name and password in `MySQL user` and `MySQL password` host wizard configuration fields.\r\nLeave fields `MySQL user` and `MySQL password` empty if you use a session name. Set the user name and password in the Plugins.Mysql.<...> section of your Zabbix agent 2 configuration file.\r\nFor more information about configuring the Zabbix MySQL plugin, see the documentation https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/src/go/plugins/mysql/README.md.'),
('10321',NULL,'Chassis by IPMI','3','-1','2','','','Chassis by IPMI','0',NULL,'Template for monitoring servers with BMC over IPMI that work without any external scripts.\r\nAll metrics are collected at once, thanks to Zabbix\'s bulk data collection. The template is available starting from Zabbix version 5.0.\r\nIt collects metrics by polling BMC remotely using an IPMI agent.\r\n\r\n\r\nKnown Issues:\r\n\r\n Description: If the BMC has a sensor with an empty threshold value, we get the LLD error "Cannot create trigger...".\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/398023-discussion-thread-for-official-zabbix-template-ipmi\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','02f35169a5a54a5aad8b3f06e798ab1f','CHASSIS BY IPMI','Zabbix','7.4-0',NULL,'0','0',''),
('10322',NULL,'Elasticsearch Cluster by HTTP','3','-1','2','','','Elasticsearch Cluster by HTTP','0',NULL,'The template to monitor Elasticsearch by Zabbix that work without any external scripts.\r\nIt works with both standalone and cluster instances.\r\nThe metrics are collected in one pass remotely using an HTTP agent.\r\nThey are getting values from REST API \'_cluster/health\', \'_cluster/stats\', \'_nodes/stats\' requests.\r\n\r\nSetup:\r\n\r\n1. Set the hostname or IP address of the Elasticsearch host in the \'{$ELASTICSEARCH.HOST}\' macro.\r\n\r\n2. Set the login and password in the \'{$ELASTICSEARCH.USERNAME}\' and \'{$ELASTICSEARCH.PASSWORD}\' macros.\r\n\r\n3. If you use an atypical location of ES API, don\'t forget to change the macros \'{$ELASTICSEARCH.SCHEME}\',\'{$ELASTICSEARCH.PORT}\'.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/399473-discussion-thread-for-official-zabbix-template-for-elasticsearch\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','52b2664578884d9eba62e47375c99f8e','ELASTICSEARCH CLUSTER BY HTTP','Zabbix','7.4-2',NULL,'0','0',''),
('10323',NULL,'ClickHouse by HTTP','3','-1','2','','','ClickHouse by HTTP','0',NULL,'This template is designed for the effortless deployment of ClickHouse monitoring by Zabbix via HTTP and doesn\'t require any external scripts.\r\n\r\nSetup:\r\n\r\n1. Create a user to monitor the service. For example, you could create a file \'/etc/clickhouse-server/users.d/zabbix.xml\' with the following content:\r\n\r\n\r\n \r\n \r\n zabbix_pass\r\n \r\n web\r\n default\r\n \r\n test\r\n \r\n \r\n \r\n\r\n\r\n2. Set the hostname or IP address of the ClickHouse HTTP endpoint in the \'{$CLICKHOUSE.HOST}\' macro. You can also change the port in the \'{$CLICKHOUSE.PORT}\' macro and scheme in the \'{$CLICKHOUSE.SCHEME}\' macro if necessary.\r\n\r\n3. Set the login and password in the macros \'{$CLICKHOUSE.USER}\' and \'{$CLICKHOUSE.PASSWORD}\'. If you don\'t need an authentication - remove headers from HTTP-Agent type items.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','95f2053c21094ad4968440b562cc7ea2','CLICKHOUSE BY HTTP','Zabbix','7.4-0',NULL,'0','0',''),
('10324',NULL,'Etcd by HTTP','3','-1','2','','','Etcd by HTTP','0',NULL,'This template is designed to monitor \'etcd\' by Zabbix that works without any external scripts.\r\nMost of the metrics are collected in one go, thanks to Zabbix bulk data collection.\r\n\r\nThe template \'Etcd by HTTP\' — collects metrics by help of the HTTP agent from \'/metrics\' endpoint.\r\n\r\nRefer to the vendor documentation:\r\nhttps://etcd.io/docs/v3.5/op-guide/monitoring/#metrics-endpoint\r\n\r\nFor the users of \'etcd version <= 3.4\':\r\n\r\nIn \'etcd v3.5\' some metrics have been deprecated. See more details on \'Upgrade etcd from 3.4 to 3.5\':\r\nhttps://etcd.io/docs/v3.4/upgrades/upgrade_3_5/\r\nPlease upgrade your \'etcd\' instance, or use older \'Etcd by HTTP\' template version.\r\n\r\nSetup:\r\n\r\n1. Make sure that \'etcd\' allows the collection of metrics. You can test it by running:\r\ncurl -L http://localhost:2379/metrics\r\n\r\n2. Check if \'etcd\' is accessible from Zabbix proxy or Zabbix server depending on where you are planning to do the monitoring. To verify it, run:\r\ncurl -L http://:2379/metrics\r\n\r\n3. Add the template to the \'etcd\' node. Set the hostname or IP address of the \'etcd\' host in the \'{$ETCD.HOST}\' macro. By default, the template uses a client\'s port.\r\nYou can configure metrics endpoint location by adding \'--listen-metrics-urls\' flag.\r\n\r\nFor more details, see the etcd documentation:\r\nhttps://etcd.io/docs/v3.5/op-guide/configuration/#profiling-and-monitoring\r\n\r\nAdditional points to consider:\r\n\r\n- If you have specified a non-standard port for \'etcd\', don\'t forget to change macros: \'{$ETCD.SCHEME}\' and \'{$ETCD.PORT}\'.\r\n- You can set \'{$ETCD.USERNAME}\' and \'{$ETCD.PASSWORD}\' macros in the template to use on a host level if necessary.\r\n- To test availability, run : \'zabbix_get -s etcd-host -k etcd.health\'.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','b25b8b517a4743c48037bfa10af3dc3c','ETCD BY HTTP','Zabbix','7.4-1',NULL,'0','0',''),
('10325',NULL,'IIS by Zabbix agent','3','-1','2','','','IIS by Zabbix agent','0',NULL,'Get metrics from IIS using Zabbix agent running on Windows.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/401862-discussion-thread-for-official-zabbix-template-internet-information-services\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','c7c7e5dc319b4801982e719beb1c5191','IIS BY ZABBIX AGENT','Zabbix','7.4-3',NULL,'0','0',''),
('10326',NULL,'IIS by Zabbix agent active','3','-1','2','','','IIS by Zabbix agent active','0',NULL,'Get metrics from IIS using Zabbix agent running on Windows.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/401862-discussion-thread-for-official-zabbix-template-internet-information-services\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','4677be3e07bf4f3285496f2f4230b928','IIS BY ZABBIX AGENT ACTIVE','Zabbix','7.4-3',NULL,'0','0',''),
('10327',NULL,'MSSQL by ODBC','3','-1','2','','','MSSQL by ODBC','0',NULL,'This template is designed for the effortless deployment of MSSQL monitoring by Zabbix via ODBC and doesn\'t require any external scripts.\r\n\r\nSetup:\r\n\r\n1. Create an MSSQL user for monitoring.\r\n\r\n View Server State and View Any Definition permissions should be granted to the user.\r\n Grant this user read permissions to the sysjobschedules, sysjobhistory, and sysjobs tables.\r\n\r\n For more information, see MSSQL documentation:\r\n \r\n - Create a database user: https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/create-a-database-user?view=sql-server-ver16\r\n \r\n - GRANT Server Permissions: https://docs.microsoft.com/en-us/sql/t-sql/statements/grant-server-permissions-transact-sql?view=sql-server-ver16\r\n \r\n - Configure a User to Create and Manage SQL Server Agent Jobs: https://docs.microsoft.com/en-us/sql/ssms/agent/configure-a-user-to-create-and-manage-sql-server-agent-jobs?view=sql-server-ver16\r\n\r\n2. Set the user name and password in the host macros ({$MSSQL.USER} and {$MSSQL.PASSWORD}).\r\n\r\n3. Do not forget to install Microsoft ODBC driver on Zabbix server or Zabbix proxy and specify data source name in macro {$MSSQL.DSN}.\r\n \r\n See Microsoft documentation for instructions: https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver16.\r\n\r\n Note! Credentials in the odbc.ini do not work for MSSQL.\r\n\r\nThe "Service\'s TCP port state" item uses the {$MSSQL.HOST} and {$MSSQL.PORT} macros to check the availability of the MSSQL instance, change these if necessary. Keep in mind that if dynamic ports are used on the MSSQL server side, this check will not work correctly.\r\n\r\nIf your instance uses a non-default TCP port, set the port in your section of odbc.ini in the line Server = IP or FQDN name, port.\r\n\r\nNote: You can use the context macros {$MSSQL.BACKUP_FULL.USED}, {$MSSQL.BACKUP_LOG.USED}, and {$MSSQL.BACKUP_DIFF.USED} to disable backup age triggers for a certain database. If set to a value other than "1", the trigger expression for the backup age will not fire.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','001a1677f6a949b6bddfdb2926023300','MSSQL BY ODBC','Zabbix','7.4-3',NULL,'0','1','## Setup\r\n\r\n1. Create an MSSQL user for monitoring. For example, "zbx_monitor".\r\n\r\n**View Server State** and **View Any Definition** permissions should be granted to the user.\r\nGrant this user read permissions to the `sysjobschedules`, `sysjobhistory`, and `sysjobs` tables.\r\n\r\nFor example, using T-SQL commands:\r\n\r\n```sql\r\nGRANT SELECT ON OBJECT::msdb.dbo.sysjobs TO zbx_monitor;\r\nGRANT SELECT ON OBJECT::msdb.dbo.sysjobservers TO zbx_monitor;\r\nGRANT SELECT ON OBJECT::msdb.dbo.sysjobactivity TO zbx_monitor;\r\nGRANT EXECUTE ON OBJECT::msdb.dbo.agent_datetime TO zbx_monitor;\r\n```\r\n\r\nFor more information, see MSSQL documentation:\r\n\r\n[Create a database user](https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/create-a-database-user?view=sql-server-ver16)\r\n\r\n[GRANT Server Permissions](https://docs.microsoft.com/en-us/sql/t-sql/statements/grant-server-permissions-transact-sql?view=sql-server-ver16)\r\n\r\n[Configure a User to Create and Manage SQL Server Agent Jobs](https://docs.microsoft.com/en-us/sql/ssms/agent/configure-a-user-to-create-and-manage-sql-server-agent-jobs?view=sql-server-ver16)\r\n\r\n2. Set the username and password in the `MSSQL user` and `MSSQL password` host wizard configuration fields.\r\n\r\n3. Do not forget to install Microsoft ODBC driver on Zabbix server or Zabbix proxy and specify data source name in the `MSSQL DSN` host wizard configuration field.\r\n\r\nSee Microsoft documentation for instructions: https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver16.\r\n\r\n**Note! Credentials in the `odbc.ini` do not work for MSSQL.**\r\n\r\nThe `Service\'s TCP port state` item uses the `MSSQL address` and `MSSQL TCP port` host wizard configuration fields to check the availability of the MSSQL instance, change these if necessary. Keep in mind that if dynamic ports are used on the MSSQL server side, this check will not work correctly.\r\n\r\nIf your instance uses a non-default TCP port, set the port in your section of `odbc.ini` in the line Server = IP or FQDN name, port.\r\n\r\nNote: You can use the `Monitoring of full backup`, `Monitoring of log backup`, and `Monitoring of differential backup` host wizard configuration fields to disable backup age triggers. If set to unselected state, the trigger expression for the backup age will not fire.'),
('10328',NULL,'Oracle by ODBC','3','-1','2','','','Oracle by ODBC','0',NULL,'1. Create an Oracle user for monitoring.\r\n\r\n2. Set the hostname or IP address of the Oracle DB instance, user name and password in host macros ({$ORACLE.HOST}, {$ORACLE.USER} and {$ORACLE.PASSWORD}).\r\n Do not forget to install the Microsoft ODBC driver on the Zabbix server or the Zabbix proxy.\r\n See Oracle documentation for instructions: https://www.oracle.com/database/technologies/releasenote-odbc-ic.html.\r\n\r\n Note! Credentials in the odbc.ini do not work for Oracle.\r\n Note! Be sure that ODBC connects to Oracle with session parameter NLS_NUMERIC_CHARACTERS= \'.,\' It is important for correct display float numbers in Zabbix.\r\nThe "Service\'s TCP port state" item uses {$ORACLE.HOST} and {$ORACLE.PORT} macros to check the availability of the listener.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','00ade9277d7c41e8b57d638b22d54372','ORACLE BY ODBC','Zabbix','7.4-1',NULL,'0','1','## Overview\r\n\r\nThe template is developed to monitor a single DBMS Oracle Database instance with ODBC and can monitor CDB or non-CDB installations.\r\n\r\n## Supported versions\r\n\r\nOracle Database 12c2 and newer.\r\n\r\n**Important! This integration queries the `V$ACTIVE_SESSION_HISTORY` dynamic performance view which is part of the Oracle Diagnostics Pack. Please make sure that you have the licence required for using this management pack.**\r\n\r\n## Setup\r\n\r\n1. Create an Oracle Database user for monitoring:\r\n\r\n In CDB installations, it is possible to monitor tablespaces from the CDB (container database) and all PDBs (pluggable databases). To do so, a common user is needed with the correct rights:\r\n\r\n ```\r\n CREATE USER c##zabbix_mon IDENTIFIED BY ;\r\n -- Grant access to the c##zabbix_mon user.\r\n ALTER USER c##zabbix_mon SET CONTAINER_DATA=ALL CONTAINER=CURRENT;\r\n GRANT CONNECT, CREATE SESSION TO c##zabbix_mon;\r\n GRANT SELECT_CATALOG_ROLE to c##zabbix_mon;\r\n GRANT SELECT ON v_$instance TO c##zabbix_mon;\r\n GRANT SELECT ON v_$database TO c##zabbix_mon;\r\n GRANT SELECT ON v_$sysmetric TO c##zabbix_mon;\r\n GRANT SELECT ON v_$system_parameter TO c##zabbix_mon;\r\n GRANT SELECT ON v_$session TO c##zabbix_mon;\r\n GRANT SELECT ON v_$recovery_file_dest TO c##zabbix_mon;\r\n GRANT SELECT ON v_$active_session_history TO c##zabbix_mon;\r\n GRANT SELECT ON v_$osstat TO c##zabbix_mon;\r\n GRANT SELECT ON v_$process TO c##zabbix_mon;\r\n GRANT SELECT ON v_$datafile TO c##zabbix_mon;\r\n GRANT SELECT ON v_$pgastat TO c##zabbix_mon;\r\n GRANT SELECT ON v_$sgastat TO c##zabbix_mon;\r\n GRANT SELECT ON v_$log TO c##zabbix_mon;\r\n GRANT SELECT ON v_$archive_dest TO c##zabbix_mon;\r\n GRANT SELECT ON v_$asm_diskgroup TO c##zabbix_mon;\r\n GRANT SELECT ON v_$asm_diskgroup_stat TO c##zabbix_mon;\r\n GRANT SELECT ON DBA_USERS TO c##zabbix_mon;\r\n ```\r\n This is needed because the template uses `CDB_*` views to monitor tablespaces from the CDB and different PDBs - the monitoring user therefore needs access to the container data objects on all PDBs.\r\n\r\n However, if you wish to monitor only a single PDB or a non-CDB instance, a local user is sufficient:\r\n \r\n ```\r\n CREATE USER zabbix_mon IDENTIFIED BY ;\r\n -- Grant access to the zabbix_mon user.\r\n GRANT CONNECT, CREATE SESSION TO zabbix_mon;\r\n GRANT SELECT_CATALOG_ROLE to zabbix_mon;\r\n GRANT SELECT ON v_$instance TO zabbix_mon;\r\n GRANT SELECT ON v_$database TO zabbix_mon;\r\n GRANT SELECT ON v_$sysmetric TO zabbix_mon;\r\n GRANT SELECT ON v_$system_parameter TO zabbix_mon;\r\n GRANT SELECT ON v_$session TO zabbix_mon;\r\n GRANT SELECT ON v_$recovery_file_dest TO zabbix_mon;\r\n GRANT SELECT ON v_$active_session_history TO zabbix_mon;\r\n GRANT SELECT ON v_$osstat TO zabbix_mon;\r\n GRANT SELECT ON v_$process TO zabbix_mon;\r\n GRANT SELECT ON v_$datafile TO zabbix_mon;\r\n GRANT SELECT ON v_$pgastat TO zabbix_mon;\r\n GRANT SELECT ON v_$sgastat TO zabbix_mon;\r\n GRANT SELECT ON v_$log TO zabbix_mon;\r\n GRANT SELECT ON v_$archive_dest TO zabbix_mon;\r\n GRANT SELECT ON v_$asm_diskgroup TO zabbix_mon;\r\n GRANT SELECT ON v_$asm_diskgroup_stat TO zabbix_mon;\r\n GRANT SELECT ON DBA_USERS TO zabbix_mon;\r\n ```\r\n **Important! Ensure that the ODBC connection to Oracle includes the session parameter `NLS_NUMERIC_CHARACTERS= \'.,\'`. It is important for displaying the float numbers in Zabbix correctly.**\r\n\r\n **Important! These privileges grant the monitoring user `SELECT_CATALOG_ROLE`, which, in turn, gives access to thousands of tables in the database.**\r\n This role is required to access the `V$RESTORE_POINT` dynamic performance view.\r\n However, there are ways to go around this, if the `SELECT_CATALOG_ROLE` assigned to a monitoring user raises any security issues.\r\n One way to do this is using **pipelined table functions**:\r\n\r\n 1. Log into your database as the `SYS` user or make sure that your administration user has the required privileges to execute the steps below;\r\n\r\n 2. Create types for the table function:\r\n\r\n ```sql\r\n CREATE OR REPLACE TYPE zbx_mon_restore_point_row AS OBJECT (\r\n SCN NUMBER,\r\n DATABASE_INCARNATION# NUMBER,\r\n GUARANTEE_FLASHBACK_DATABASE VARCHAR2(3),\r\n STORAGE_SIZE NUMBER,\r\n TIME TIMESTAMP(9),\r\n RESTORE_POINT_TIME TIMESTAMP(9),\r\n PRESERVED VARCHAR2(3),\r\n NAME VARCHAR2(128),\r\n PDB_RESTORE_POINT VARCHAR2(3),\r\n CLEAN_PDB_RESTORE_POINT VARCHAR2(3),\r\n PDB_INCARNATION# NUMBER,\r\n REPLICATED VARCHAR2(3),\r\n CON_ID NUMBER\r\n );\r\n CREATE OR REPLACE TYPE zbx_mon_restore_point_tab IS TABLE OF zbx_mon_restore_point_row;\r\n ```\r\n\r\n 3. Create the pipelined table function:\r\n\r\n ```sql\r\n CREATE OR REPLACE FUNCTION zbx_mon_restore_point RETURN zbx_mon_restore_point_tab PIPELINED AS\r\n BEGIN\r\n FOR i IN (SELECT * FROM V$RESTORE_POINT) LOOP\r\n PIPE ROW (zbx_mon_restore_point_row(i.SCN, i.DATABASE_INCARNATION#, i.GUARANTEE_FLASHBACK_DATABASE, i.STORAGE_SIZE, i.TIME, i.RESTORE_POINT_TIME, i.PRESERVED, i.NAME, i.PDB_RESTORE_POINT, i.CLEAN_PDB_RESTORE_POINT, i.PDB_INCARNATION#, i.REPLICATED, i.CON_ID));\r\n END LOOP;\r\n RETURN;\r\n END;\r\n ```\r\n\r\n 4. Grant the Zabbix monitoring user the Execute privilege on the created pipelined table function and replace the monitoring user `V$RESTORE_POINT` view with the `SYS` user function (in this example, the `SYS` user is used to create DB types and function):\r\n\r\n ```sql\r\n GRANT EXECUTE ON zbx_mon_restore_point TO c##zabbix_mon;\r\n CREATE OR REPLACE VIEW c##zabbix_mon.V$RESTORE_POINT AS SELECT * FROM TABLE(SYS.zbx_mon_restore_point);\r\n ```\r\n\r\n 5. Finally, revoke the `SELECT_CATALOG_ROLE` and grant additional permissions that were previously covered by the `SELECT_CATALOG_ROLE`.\r\n\r\n ```sql\r\n REVOKE SELECT_CATALOG_ROLE FROM c##zabbix_mon;\r\n GRANT SELECT ON v_$pdbs TO c##zabbix_mon;\r\n GRANT SELECT ON v_$sort_segment TO c##zabbix_mon;\r\n GRANT SELECT ON v_$parameter TO c##zabbix_mon;\r\n GRANT SELECT ON CDB_TABLESPACES TO c##zabbix_mon;\r\n GRANT SELECT ON CDB_DATA_FILES TO c##zabbix_mon;\r\n GRANT SELECT ON CDB_FREE_SPACE TO c##zabbix_mon;\r\n GRANT SELECT ON CDB_TEMP_FILES TO c##zabbix_mon;\r\n ```\r\n\r\n > Note that in these examples, the monitoring user is named `c##zabbix_mon` and the system user - `SYS`. Change these example usernames to ones that are appropriate for your environment.\r\n \r\n If this workaround does not work for you, there are more options available, such as __materialized views__, but look out for data refresh as `V$RESTORE_POINT` is a dynamic performance view.\r\n\r\n2. Install the ODBC driver on Zabbix server or Zabbix proxy.\r\n See the [Oracle documentation](https://www.oracle.com/database/technologies/releasenote-odbc-ic.html) for instructions.\r\n\r\n3. Configure Zabbix server or Zabbix proxy for using the Oracle environment:\r\n\r\n This step is required only when:\r\n \r\n * installing Oracle Instant Client with .rpm packages with a version < 19.3 (if Instant Client is the only Oracle software installed on Zabbix server or Zabbix proxy);\r\n \r\n * installing Oracle Instant Client manually with .zip files.\r\n \r\n There are multiple configuration options:\r\n \r\n 1. Using the `LDCONFIG` utility **(recommended option)**:\r\n \r\n To update the runtime link path, it is recommended to use the ```LDCONFIG``` utility, for example:\r\n \r\n ```\r\n # sh -c "echo /opt/oracle/instantclient_19_18 > /etc/ld.so.conf.d/oracle-instantclient.conf"\r\n # ldconfig\r\n ```\r\n \r\n 2. Using the application configuration file:\r\n \r\n An alternative solution is to export the required variables by editing or adding a new application configuration file:\r\n \r\n * ```/etc/sysconfig/zabbix-server # for server```\r\n \r\n * ```/etc/sysconfig/zabbix-proxy # for proxy```\r\n \r\n And then, adding:\r\n \r\n ```\r\n # Oracle Instant Client library\r\n LD_LIBRARY_PATH=/opt/oracle/instantclient_19_18:$LD_LIBRARY_PATH\r\n export LD_LIBRARY_PATH\r\n ```\r\n \r\n Keep in mind that the library paths will vary depending on your installation.\r\n\r\n This is a minimal configuration example. Depending on the Oracle Instant Client version, required functionality and host operating system, a different set of additional packages might need to be installed.\r\n For more detailed configuration instructions, see the [official Oracle Instant Client installation instructions for Linux](https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html).\r\n\r\n4. Restart Zabbix server or Zabbix proxy.\r\n\r\n5. Set the username and password in host wizard configuration fields `Username` and `Password`.\r\n\r\n6. Set the `Oracle URL`, `Oracle driver path` and `Oracle Service Name` in host wizard configuration fields.\r\n\r\n * `Oracle URL` is a hostname or IP address of the Oracle DB instance.\r\n\r\n * `Oracle driver path` is a path to the driver location in the OS. The ODBC driver file should be found in the Instant Client directory and named `libsqora.so.XX.Y`.\r\n\r\n * `Oracle Service Name` is a service name to which the host will connect to. It is important as it determines if the connection is established to a non-CDB, CDB, or PDB. If you wish to monitor tablespaces of all PDBs, you will need to set a service name that points to the CDB.\r\n Active service names can be seen from the instance running Oracle Database with `lsnrctl status`.\r\n \r\n **Important! Make sure that the user created in step #1 is present on the specified service.**\r\n\r\n The "Service\'s TCP port state" item uses `{$ORACLE.HOST}` and `{$ORACLE.PORT}` macros to check the availability of the listener.'),
('10329',NULL,'PostgreSQL by Zabbix agent 2','3','-1','2','','','PostgreSQL by Zabbix agent 2','0',NULL,'This template is designed for the deployment of PostgreSQL monitoring by Zabbix via Zabbix agent 2 and uses a loadable plugin to run SQL queries.\r\n\r\nSetup:\r\n\r\n1. Deploy Zabbix agent 2 with the PostgreSQL plugin. Starting with Zabbix versions 6.0.10 / 6.2.4 / 6.4 PostgreSQL metrics are moved to a loadable plugin and require installation of a separate package or compilation of the plugin from sources (https://www.zabbix.com/documentation/7.4/manual/extensions/plugins/build).\r\n\r\n2. Create the PostgreSQL user for monitoring (`` at your discretion) and inherit permissions from the default role `pg_monitor`:\r\nCREATE USER zbx_monitor WITH PASSWORD \'\' INHERIT;\r\nGRANT pg_monitor TO zbx_monitor;\r\n\r\n3. Edit the `pg_hba.conf` configuration file to allow connections for the user `zbx_monitor`. You can check the PostgreSQL documentation for examples (https://www.postgresql.org/docs/current/auth-pg-hba-conf.html).\r\n\r\n4. Set the connection string for the PostgreSQL instance in the `{$PG.CONNSTRING.AGENT2}` macro as URI, such as ``, or specify the named session - ``.\r\n\r\nNote: if you want to use SSL/TLS encryption to protect communications with the remote PostgreSQL instance, a named session must be used. In that case, the instance URI should be specified in the `Plugins.PostgreSQL.Sessions.*.Uri` parameter in the PostgreSQL plugin configuration files alongside all the encryption parameters (type, certificate/key filepaths if needed etc.).\r\n\r\nYou can check the PostgreSQL plugin documentation (https://git.zabbix.com/projects/AP/repos/postgresql/browse?at=refs%2Fheads%2Frelease%2F7.4) for details about agent plugin parameters and named sessions.\r\n\r\nAlso, it is assumed that you set up the PostgreSQL instance to work in the desired encryption mode. Check the PostgreSQL documentation (https://www.postgresql.org/docs/current/ssl-tcp.html) for details.\r\n\r\nNote that plugin TLS certificate validation relies on checking the Subject Alternative Names (SAN) instead of the Common Name (CN), check the cryptography package documentation (https://pkg.go.dev/crypto/x509) for details.\r\n\r\nFor example, to enable required encryption in transport mode without identity checks you could create the file `/etc/zabbix/zabbix_agent2.d/postgresql_myconn.conf` with the following configuration for the named session `myconn` (replace `` with the address of the PostgreSQL instance):\r\nPlugins.PostgreSQL.Sessions.myconn.Uri=tcp://:5432\r\nPlugins.PostgreSQL.Sessions.myconn.TLSConnect=required\r\n\r\nThen set the `{$PG.CONNSTRING.AGENT2}` macro to `myconn` to use this named session.\r\n\r\n5. Set the password that you specified in step 2 in the macro `{$PG.PASSWORD}`.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/384190-%C2%A0discussion-thread-for-official-zabbix-template-db-postgresql\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','d0ef7d659a8f4beaaabfc4b6134e737a','POSTGRESQL BY ZABBIX AGENT 2','Zabbix','7.4-3',NULL,'0','1','## Overview\r\n\r\nThis template is designed for the deployment of PostgreSQL monitoring by Zabbix via Zabbix agent 2 and uses a loadable plugin to run SQL queries.\r\n\r\n## Setup\r\n\r\n1. Create the PostgreSQL user for monitoring (`` at your discretion) and inherit permissions from the default role `pg_monitor`:\r\n\r\n```sql\r\nCREATE USER zbx_monitor WITH PASSWORD \'\' INHERIT;\r\nGRANT pg_monitor TO zbx_monitor;\r\n```\r\n\r\n3. Edit the `pg_hba.conf` configuration file to allow connections for the user `zbx_monitor`. For example, you could add one of the following rows to allow local TCP connections from the same host:\r\n\r\n```bash\r\n# TYPE DATABASE USER ADDRESS METHOD\r\n host all zbx_monitor localhost trust\r\n host all zbx_monitor 127.0.0.1/32 md5\r\n host all zbx_monitor ::1/128 scram-sha-256\r\n```\r\n\r\nFor more information please read the PostgreSQL documentation `https://www.postgresql.org/docs/current/auth-pg-hba-conf.html`.\r\n\r\n4. Set the connection string for the PostgreSQL instance in the `PostgreSQL connection string` host wizard configuration field as URI, such as ``, or specify the named session - ``.\r\n\r\n**Note:** if you want to use SSL/TLS encryption to protect communications with the remote PostgreSQL instance, a named session must be used. In that case, the instance URI should be specified in the `Plugins.PostgreSQL.Sessions.*.Uri` parameter in the PostgreSQL plugin configuration files alongside all the encryption parameters (type, certificate/key filepaths if needed etc.).\r\n\r\nYou can check the [`PostgreSQL plugin documentation`](https://git.zabbix.com/projects/AP/repos/postgresql/browse?at=refs%2Fheads%2Frelease%2F7.4) for details about agent plugin parameters and named sessions.\r\n\r\nAlso, it is assumed that you set up the PostgreSQL instance to work in the desired encryption mode. Check the [`PostgreSQL documentation`](https://www.postgresql.org/docs/current/ssl-tcp.html) for details.\r\n\r\n**Note:** plugin TLS certificate validation relies on checking the Subject Alternative Names (SAN) instead of the Common Name (CN), check the cryptography package [`documentation`](https://pkg.go.dev/crypto/x509) for details.\r\n\r\nFor example, to enable required encryption in transport mode without identity checks you could create the file `/etc/zabbix/zabbix_agent2.d/postgresql_myconn.conf` with the following configuration for the named session `myconn` (replace `` with the address of the PostgreSQL instance):\r\n\r\n```bash\r\nPlugins.PostgreSQL.Sessions.myconn.Uri=tcp://:5432\r\nPlugins.PostgreSQL.Sessions.myconn.TLSConnect=required\r\n```\r\n\r\nThen set the `PostgreSQL connection string` field to `myconn` to use this named session.\r\n\r\n5. Set the password that you specified in step 2 in the `PostgreSQL user password` field.'),
('10330',NULL,'PHP-FPM by Zabbix agent','3','-1','2','','','PHP-FPM by Zabbix agent','0',NULL,'Get PHP-FPM metrics using Zabbix agent running on Linux.\r\n\r\nNote that depending on your OS distribution, the PHP-FPM process name may vary. Please, check the actual name in the line "Name" from /proc//status file (https://www.zabbix.com/documentation/7.4/manual/appendix/items/proc_mem_num_notes) and change {$PHP_FPM.PROCESS.NAME.PARAMETER} macro if needed.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','1cbda0970410435684135884d0cb7090','PHP-FPM BY ZABBIX AGENT','Zabbix','7.4-1',NULL,'0','0',''),
('10331',NULL,'PHP-FPM by HTTP','3','-1','2','','','PHP-FPM by HTTP','0',NULL,'Get PHP-FPM metrics using the Zabbix HTTP agent.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','49c77ce207f8478da53e761526d6eca5','PHP-FPM BY HTTP','Zabbix','7.4-1',NULL,'0','0',''),
('10335',NULL,'Oracle by Zabbix agent 2','3','-1','2','','','Oracle by Zabbix agent 2','0',NULL,'Get metrics from Oracle Database using Zabbix agent 2.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','d670c32f007d438c9dcd32db57d2b691','ORACLE BY ZABBIX AGENT 2','Zabbix','7.4-1',NULL,'0','1','## Overview\r\n\r\nThe template is developed to monitor a single DBMS Oracle Database instance with Zabbix agent 2.\r\n\r\n## Supported versions\r\n\r\nOracle Database 12c2 and newer.\r\n\r\n**Important! This integration queries the `V$ACTIVE_SESSION_HISTORY` dynamic performance view which is part of the Oracle Diagnostics Pack. Please make sure that you have the licence required for using this management pack.**\r\n\r\n## Setup\r\n\r\n1. Set the \'URI or session name\' value using either or named session.\r\n2. If you want to override parameters from Zabbix agent configuration file, set the user name, password and service name in host wizard configuration fields(Username, Password, and Service Name).\r\n\r\n User can contain sysdba, sysoper, sysasm privileges. It must be used with `as` as a separator e.g `user as sysdba`, privilege can be upper or lowercase, and must be at the end of username string.\r\n\r\nTest availability:\r\n ```zabbix_get -s oracle-host -k oracle.ping["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"]```'),
('10336',NULL,'Asterisk by HTTP','3','-1','2','','','Asterisk by HTTP','0',NULL,'The template gets Asterisk metrics from AMI by HTTP agent.\r\nYou should enable the mini-HTTP Server, add the option webenabled=yes in the general section of the manager.conf file and create Asterisk Manager user with system and command write permissions within your Asterisk instance.\r\nDisable the PJSIP driver if you do not use PJSIP or do not have PJSIP endpoints.\r\nPlease, define AMI address in the {$AMI.URL} macro. Also, set the hostname or IP address of the AMI host in the {$AMI.HOST} macro for Zabbix to check Asterisk service status.\r\nThen you can define {$AMI.USERNAME} and {$AMI.SECRET} macros in the template for using on the host level.\r\nIf there are errors, increase the logging to debug level and see the Zabbix server log.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/410060-discussion-thread-for-official-zabbix-template-asterisk\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','30cc187a4e994c39b07f53d86b5cc6bc','ASTERISK BY HTTP','Zabbix','7.4-2',NULL,'0','0',''),
('10343',NULL,'Linux by Zabbix agent active','3','-1','2','','','Linux by Zabbix agent active','0',NULL,'This is an official Linux template. It requires Zabbix agent 7.4 or newer.\r\n\r\nNotes on filesystem (FS) discovery:\r\n - The ext4/3/2 FS reserves space for privileged usage, typically set at 5% by default.\r\n - BTRFS allocates a default of 10% of the volume for its own needs.\r\n - To mitigate potential disasters, FS usage triggers are based on the maximum available space.\r\n - Utilization formula: \'pused = 100 - 100 * (available / total - free + available)\'\r\n - The FS utilization chart, derived from graph prototypes, reflects FS reserved space as the difference between used and available space from the total volume.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/387225-discussion-thread-for-official-zabbix-template-for-linux\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','e2307c94f1744af7a8f1f458a67af424','LINUX BY ZABBIX AGENT ACTIVE','Zabbix','7.4-2',NULL,'0','1','## Overview\r\n\r\nThis is an official Linux template. It requires Zabbix agent 7.4 or newer.\r\n\r\n#### Notes on filesystem (FS) discovery:\r\n- The ext4/3/2 FS reserves space for privileged usage, typically set at 5% by default.\r\n- BTRFS allocates a default of 10% of the volume for its own needs.\r\n- To mitigate potential disasters, FS usage triggers are based on the maximum available space.\r\n - Utilization formula: `pused = 100 - 100 * (available / total - free + available)`\r\n- The FS utilization chart, derived from graph prototypes, reflects FS reserved space as the difference between used and available space from the total volume.'),
('10351',NULL,'Windows by Zabbix agent active','3','-1','2','','','Windows by Zabbix agent active','0',NULL,'This is an official Windows template. It requires Zabbix agent 7.4 or newer.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/387224-discussion-thread-for-official-zabbix-template-for-windows\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','5fdd2ca8b8f84962aaea5a218b46ea7d','WINDOWS BY ZABBIX AGENT ACTIVE','Zabbix','7.4-2',NULL,'0','1','## Overview\r\n\r\nThis is an official Windows template. It requires Zabbix agent 7.4 or newer.'),
('10353',NULL,'Ceph by Zabbix agent 2','3','-1','2','','','Ceph by Zabbix agent 2','0',NULL,'You can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/410059-discussion-thread-for-official-zabbix-template-ceph\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','09fb25d089f7467f860895f6e71d3fa2','CEPH BY ZABBIX AGENT 2','Zabbix','7.4-2',NULL,'0','0',''),
('10355',NULL,'Squid by SNMP','3','-1','2','','','Squid by SNMP','0',NULL,'Template for monitoring Squid caching proxy via SNMP\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/409339-discussion-thread-for-official-zabbix-template-squid\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','8e5236f799b347a8ae90a979198be85e','SQUID BY SNMP','Zabbix','7.4-2',NULL,'0','0',''),
('10357',NULL,'PostgreSQL by Zabbix agent','3','-1','2','','','PostgreSQL by Zabbix agent','0',NULL,'This template is designed for the deployment of PostgreSQL monitoring by Zabbix via Zabbix agent and uses user parameters to run SQL queries with the `psql` command-line tool.\r\n\r\nNote:\r\n- The template requires `pg_isready` and `psql` utilities to be installed on the same host with Zabbix agent.\r\n- The template requires files with SQL queries and user parameters that can be found in the Zabbix official repository:\r\nhttps://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/postgresql?at=refs%2Fheads%2Frelease%2F6.0\r\n\r\nSetup:\r\n\r\n1. Deploy Zabbix agent and create the PostgreSQL user for monitoring (`` at your discretion) with proper access rights to your PostgreSQL instance.\r\n\r\nFor PostgreSQL version 10 and above:\r\nCREATE USER zbx_monitor WITH PASSWORD \'\' INHERIT;\r\nGRANT pg_monitor TO zbx_monitor;\r\n\r\nFor PostgreSQL version 9.6 and below:\r\nCREATE USER zbx_monitor WITH PASSWORD \'\';\r\nGRANT SELECT ON pg_stat_database TO zbx_monitor;\r\nALTER USER zbx_monitor WITH SUPERUSER;\r\n\r\n2. Copy the `postgresql/` directory to the `zabbix` user home directory - `/var/lib/zabbix/`. The `postgresql/` directory contains the files with SQL queries needed to obtain metrics from PostgreSQL instance.\r\n\r\nIf the home directory of the `zabbix` user doesn\'t exist, create it first:\r\nmkdir -m u=rwx,g=rwx,o= -p /var/lib/zabbix\r\nchown zabbix:zabbix /var/lib/zabbix\r\n\r\n3. Copy the `template_db_postgresql.conf` file, containing user parameters, to the Zabbix agent configuration directory `/etc/zabbix/zabbix_agentd.d/` and restart Zabbix agent service.\r\n\r\nIf you want to use SSL/TLS encryption to protect communications with the remote PostgreSQL instance, you can modify the connection string in user parameters. For example, to enable required encryption in transport mode without identity checks you could append `?sslmode=required` to the end of the connection string for all keys that use `psql`:\r\nUserParameter=pgsql.bgwriter[*], psql -qtAX postgresql://"$3":"$4"@"$1":"$2"/"$5"?sslmode=required -f "/var/lib/zabbix/postgresql/pgsql.bgwriter.sql"\r\n\r\nConsult the PostgreSQL documentation about protection modes (https://www.postgresql.org/docs/current/libpq-ssl.html#LIBPQ-SSL-PROTECTION) and client connection parameters (https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNECT-SSLMODE).\r\n\r\nAlso, it is assumed that you set up the PostgreSQL instance to work in the desired encryption mode. Check the PostgreSQL documentation (https://www.postgresql.org/docs/current/ssl-tcp.html) for details.\r\n\r\n4. Edit the `pg_hba.conf` configuration file to allow connections for the user `zbx_monitor`. You can check the PostgreSQL documentation for examples (https://www.postgresql.org/docs/current/auth-pg-hba-conf.html).\r\n\r\n5. Specify the host name or IP address in the `{$PG.HOST}` macro. Adjust the port number with `{$PG.PORT}` macro if needed.\r\n\r\n6. Set the password that you specified in step 1 in the macro `{$PG.PASSWORD}`.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/384190-%C2%A0discussion-thread-for-official-zabbix-template-db-postgresql\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','399bd1ee587245ecac6f39beaa99886f','POSTGRESQL BY ZABBIX AGENT','Zabbix','7.4-2',NULL,'0','1','## Overview\r\n\r\nThis template is designed for the deployment of PostgreSQL monitoring by Zabbix via Zabbix agent and uses user parameters to run SQL queries with the `psql` command-line tool.\r\n\r\n## Setup\r\n\r\n**Note:**\r\n- The template requires `pg_isready` and `psql` utilities to be installed on the same host with Zabbix agent.\r\n\r\n1. Create the PostgreSQL user for monitoring (`` at your discretion) with proper access rights to your PostgreSQL instance.\r\n\r\nFor PostgreSQL version 10 and above:\r\n\r\n```sql\r\nCREATE USER zbx_monitor WITH PASSWORD \'\' INHERIT;\r\nGRANT pg_monitor TO zbx_monitor;\r\n```\r\n\r\nFor PostgreSQL version 9.6 and below:\r\n\r\n```sql\r\nCREATE USER zbx_monitor WITH PASSWORD \'\';\r\nGRANT SELECT ON pg_stat_database TO zbx_monitor;\r\n\r\n-- To collect WAL metrics, the user must have a `superuser` role.\r\nALTER USER zbx_monitor WITH SUPERUSER;\r\n```\r\n\r\n2. Copy the `postgresql/` directory to the `zabbix` user home directory - `/var/lib/zabbix/`. The `postgresql/` directory contains the files with SQL queries needed to obtain metrics from PostgreSQL instance.\r\n\r\nIf the home directory of the `zabbix` user doesn\'t exist, create it first:\r\n\r\n```bash\r\nmkdir -m u=rwx,g=rwx,o= -p /var/lib/zabbix\r\nchown zabbix:zabbix /var/lib/zabbix\r\n```\r\n\r\n3. Copy the `template_db_postgresql.conf` file, containing user parameters, to the Zabbix agent configuration directory `/etc/zabbix/zabbix_agentd.d/` and restart Zabbix agent service.\r\n\r\n**Note:** if you want to use SSL/TLS encryption to protect communications with the remote PostgreSQL instance, you can modify the connection string in user parameters. For example, to enable required encryption in transport mode without identity checks you could append `?sslmode=required` to the end of the connection string for all keys that use `psql`:\r\n\r\n```bash\r\nUserParameter=pgsql.bgwriter[*], psql -qtAX postgresql://"$3":"$4"@"$1":"$2"/"$5"?sslmode=required -f "/var/lib/zabbix/postgresql/pgsql.bgwriter.sql"\r\n```\r\n\r\nConsult the PostgreSQL documentation about [`protection modes`](https://www.postgresql.org/docs/current/libpq-ssl.html#LIBPQ-SSL-PROTECTION) and [`client connection parameters`](https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNECT-SSLMODE).\r\n\r\nAlso, it is assumed that you set up the PostgreSQL instance to work in the desired encryption mode. Check the [`PostgreSQL documentation`](https://www.postgresql.org/docs/current/ssl-tcp.html) for details.\r\n\r\n4. Edit the `pg_hba.conf` configuration file to allow connections for the user `zbx_monitor`. For example, you could add one of the following rows to allow local TCP connections from the same host:\r\n\r\n```bash\r\n# TYPE DATABASE USER ADDRESS METHOD\r\n host all zbx_monitor localhost trust\r\n host all zbx_monitor 127.0.0.1/32 md5\r\n host all zbx_monitor ::1/128 scram-sha-256\r\n```\r\n\r\nFor more information please read the PostgreSQL documentation `https://www.postgresql.org/docs/current/auth-pg-hba-conf.html`.\r\n\r\n5. Specify the host name or IP address in the `PostgreSQL host` host wizard configuration field. Adjust the port number in the `PostgreSQL port` field if needed.\r\n\r\n6. Set the password that you specified in step 1 in the `PostgreSQL user password` field.'),
('10358',NULL,'Apache ActiveMQ by JMX','3','-1','2','','','Apache ActiveMQ by JMX','0',NULL,'The template to monitor Apache ActiveMQ by Zabbix that work without any external scripts.\r\nThe metrics are collected by JMX.\r\nYou can set macro values and add macros with context for specific brokers or destinations following macro description.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/411049-discussion-thread-for-official-zabbix-template-amq\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','c87e0a2e0683483ab7c6f3c380e9f840','APACHE ACTIVEMQ BY JMX','Zabbix','7.4-1',NULL,'0','0',''),
('10359',NULL,'Aranet Cloud','3','-1','2','','','Aranet Cloud','0',NULL,'Generated by official Zabbix template tool "Templator"','1','1','','','','','0','0','af21edc47557400583e537904ea632aa','ARANET CLOUD','Zabbix','7.4-1',NULL,'0','0',''),
('10360',NULL,'Microsoft Exchange Server 2016 by Zabbix agent','3','-1','2','','','Microsoft Exchange Server 2016 by Zabbix agent','0',NULL,'The template to monitor Microsoft Exchange Server 2016 by Zabbix that works without any external scripts.\r\nThe metrics are collected by Zabbix agent.\r\nRecommended to use it with "OS Windows by Zabbix agent" template.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/415007-discussion-thread-for-official-zabbix-template-microsoft-exchange\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','cbf70ed444394566bcf213dd63d4d352','MICROSOFT EXCHANGE SERVER 2016 BY ZABBIX AGENT','Zabbix','7.4-1',NULL,'0','0',''),
('10361',NULL,'Microsoft Exchange Server 2016 by Zabbix agent active','3','-1','2','','','Microsoft Exchange Server 2016 by Zabbix agent active','0',NULL,'The template to monitor Microsoft Exchange Server 2016 by Zabbix that works without any external scripts.\r\nThe metrics are collected by Zabbix agent active.\r\nRecommended to use it with "OS Windows by Zabbix agent active" template.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/415007-discussion-thread-for-official-zabbix-template-microsoft-exchange\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','a0e05ca631034676821b7e0e1ce25488','MICROSOFT EXCHANGE SERVER 2016 BY ZABBIX AGENT ACTIVE','Zabbix','7.4-1',NULL,'0','0',''),
('10362',NULL,'GitLab by HTTP','3','-1','2','','','GitLab by HTTP','0',NULL,'Get GitLab metrics by HTTP agent from Prometheus metrics endpoint.\r\n\r\nTo access the metrics, the client IP address must be explicitly allowed. See https://docs.gitlab.com/ee/administration/monitoring/ip_whitelist.html.\r\nOr second method, using token variable from http://your.gitlab.address/admin/health_check (fill {$GITLAB.HEALTH.TOKEN} macro with variable path like "?token=your_token").\r\nDon\'t forget change macros {$GITLAB.URL}.\r\nSome metrics may not be collected depending on your Gitlab instance version and configuration. See (Gitlab\'s documentation[)https://docs.gitlab.com/ee/administration/monitoring/prometheus/gitlab_metrics.html] for further information about its metric collection.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','f445dac89ff74deabaae9dcb84815998','GITLAB BY HTTP','Zabbix','7.4-1',NULL,'0','0',''),
('10363',NULL,'Hadoop by HTTP','3','-1','2','','','Hadoop by HTTP','0',NULL,'The template gets the Hadoop metrics from cluster\'s hosts (ResourceManager, NodeManagers, NameNode, DataNodes) by HTTP agent. You should define the IP address (or FQDN) and Web-UI port for the ResourceManager in {$HADOOP.RESOURCEMANAGER.HOST} and {$HADOOP.RESOURCEMANAGER.PORT} macros and for the NameNode in {$HADOOP.NAMENODE.HOST} and {$HADOOP.NAMENODE.PORT} macros respectively. Macros can be set in the template or overridden at the host level.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/413459-discussion-thread-for-official-zabbix-template-hadoop\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','e129aeba7c814bf189772cf5919b4bbb','HADOOP BY HTTP','Zabbix','7.4-2',NULL,'0','0',''),
('10364',NULL,'Apache Kafka by JMX','3','-1','2','','','Apache Kafka by JMX','0',NULL,'Official JMX Template for Apache Kafka.\r\n The metrics are collected by JMX.\r\n You can set {$KAFKA.USER} and {$KAFKA.PASSWORD} macros in the template for using on the host level.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','2eb43a3c9666467683b9ce09d2bd26d7','APACHE KAFKA BY JMX','Zabbix','7.4-1',NULL,'0','0',''),
('10365',NULL,'HashiCorp Vault by HTTP','3','-1','2','','','HashiCorp Vault by HTTP','0',NULL,'Get HashiCorp Vault metrics from Vault API HTTP Prometheus metrics endpoint.\r\n\r\nSome metrics may not be collected depending on your Vault instance version and configuration.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','2f82248e411340429d390e8389850401','HASHICORP VAULT BY HTTP','Zabbix','7.4-1',NULL,'0','0',''),
('10366',NULL,'VMware FQDN','3','-1','2','','','VMware FQDN','0',NULL,'You can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/\r\n\r\nNote: To enable discovery of hardware sensors of VMware Hypervisors, set the macro \'{$VMWARE.HV.SENSOR.DISCOVERY}\' to the value \'true\' on the discovered host level.\r\n\r\nNote: To create custom performance counter see documentation: https://www.zabbix.com/documentation/7.4/manual/vm_monitoring/vmware_keys#footnotes\r\n\r\nNote: To get all supported counters and generate path for custom performance counter see documentation: https://www.zabbix.com/documentation/7.4/manual/appendix/items/perf_counters\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','ca02e82e6c414d0aa7aedc8d78468a49','VMWARE FQDN','Zabbix','7.4-2',NULL,'0','1','## Overview\r\n\r\nThis template set is designed for the effortless deployment of VMware vCenter and ESX hypervisor monitoring and doesn\'t require any external scripts.\r\n\r\n- The template "VMware Guest" is used in discovery and normally should not be manually linked to a host.\r\n- The template "VMware Hypervisor" can be used in discovery as well as manually linked to a host.\r\n\r\nFor additional information, please see [Zabbix documentation on VM monitoring](https://www.zabbix.com/documentation/7.4/manual/vm_monitoring).\r\n\r\n## Setup\r\n\r\n1. Compile Zabbix server with the required options (`--with-libxml2` and `--with-libcurl`)\r\n2. Set the `StartVMwareCollectors` option in the Zabbix server configuration file to "1" or more\r\n3. Create a new host\r\n4. If you want to use a separate user for monitoring, make sure that the user is a member of the `SystemConfiguration.ReadOnly` and `vStatsGroup` groups\r\nSet the host wizard configuration fields required for VMware authentication: `VMware URL`, `VMware username` and `VMware password`\r\n5. Link the template to the host created earlier\r\n\r\nNote: To enable discovery of hardware sensors of VMware hypervisors, set the host wizard configuration field `Monitoring of hardware sensors` to the selected state.\r\n\r\nAdditional resources:\r\n- How to [create a custom performance counter](https://www.zabbix.com/documentation/7.4/manual/vm_monitoring/vmware_keys#footnotes)\r\n- How to get all supported counters and [generate a path for the custom performance counter](https://www.zabbix.com/documentation/7.4/manual/appendix/items/perf_counters)'),
('10369',NULL,'Zookeeper by HTTP','3','-1','2','','','Zookeeper by HTTP','0',NULL,'This template is designed for the effortless deployment of Apache Zookeeper monitoring by Zabbix via HTTP and doesn\'t require any external scripts.\r\n\r\nThis template works with standalone and cluster instances. Metrics are collected from each Zookeeper node by requests to AdminServer\r\n\r\nSetup:\r\n\r\n1. Enable the AdminServer and configure the parameters according to the official documentation:\r\nhttps://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_adminserver_config\r\n\r\n2. Set the hostname or IP address of the Apache Zookeeper host in the \'{$ZOOKEEPER.HOST}\' macro. You can also change the \'{$ZOOKEEPER.COMMAND_URL}\', \'{$ZOOKEEPER.PORT}\' and \'{$ZOOKEEPER.SCHEME}\' macros if necessary.\r\n\r\nYou can discuss this template or leave feedback on our forum:\r\nhttps://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','b606eda347ea4663a33ad4d12a482750','ZOOKEEPER BY HTTP','Zabbix','7.4-1',NULL,'0','0',''),
('10370',NULL,'Apache Cassandra by JMX','3','-1','2','','','Apache Cassandra by JMX','0',NULL,'The template to monitor Apache Cassandra by Zabbix that work without any external scripts.\r\nIt works with both standalone and cluster instances.\r\nThe metrics are collected by JMX.\r\nYou can set {$CASSANDRA.USER} and {$CASSANDRA.PASSWORD} macros in the template for using on the host level.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/410057-discussion-thread-for-official-zabbix-template-apache-cassandra\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','5c42de26643c4b43b23a11159df021ce','APACHE CASSANDRA BY JMX','Zabbix','7.4-0',NULL,'0','0',''),
('10371',NULL,'Morningstar ProStar MPPT by SNMP','3','-1','2','','','Morningstar ProStar MPPT by SNMP','0',NULL,'MIBs used:\r\nPROSTAR-MPPT\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','b84324c2a40a496dbbb379bbf5dde8d5','MORNINGSTAR PROSTAR MPPT BY SNMP','Zabbix','7.4-2',NULL,'0','0',''),
('10372',NULL,'Morningstar ProStar PWM by SNMP','3','-1','2','','','Morningstar ProStar PWM by SNMP','0',NULL,'MIBs used:\r\nPROSTAR-PWM\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','24bed6339f0a492fab86fe757394b937','MORNINGSTAR PROSTAR PWM BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10373',NULL,'Morningstar SunSaver MPPT by SNMP','3','-1','2','','','Morningstar SunSaver MPPT by SNMP','0',NULL,'MIBs used:\r\nSUNSAVER-MPPT\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','f1336fd88ab0415a9c02892a71e50032','MORNINGSTAR SUNSAVER MPPT BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10374',NULL,'Morningstar SureSine by SNMP','3','-1','2','','','Morningstar SureSine by SNMP','0',NULL,'MIBs used:\r\nSURESINE\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','3bbfe42c78c74f04a2565431fbdd19e2','MORNINGSTAR SURESINE BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10375',NULL,'Morningstar TriStar MPPT 600V by SNMP','3','-1','2','','','Morningstar TriStar MPPT 600V by SNMP','0',NULL,'MIBs used:\r\nTRISTAR-MPPT\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','2d20a2fbd540492089fdcafc8feb60e3','MORNINGSTAR TRISTAR MPPT 600V BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10376',NULL,'Morningstar TriStar MPPT by SNMP','3','-1','2','','','Morningstar TriStar MPPT by SNMP','0',NULL,'MIBs used:\r\nTRISTAR-MPPT\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','07b32152c3654e8ead4c1eeae24efa8f','MORNINGSTAR TRISTAR MPPT BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10377',NULL,'Morningstar TriStar PWM by SNMP','3','-1','2','','','Morningstar TriStar PWM by SNMP','0',NULL,'MIBs used:\r\nTRISTAR\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','230fa9f7c1774821bbe6cdcbbba5cbc6','MORNINGSTAR TRISTAR PWM BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10378',NULL,'NetApp FAS3220 by SNMP','3','-1','2','','','NetApp FAS3220 by SNMP','0',NULL,'The template to monitor SAN NetApp FAS3220 cluster by Zabbix SNMP agent.\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nNETAPP-MIB\r\nIF-MIB\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/416694-discussion-thread-for-official-zabbix-template-netapp-fas3220\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','e118ab11c1ec4f9cbe21dfce1441c0f6','NETAPP FAS3220 BY SNMP','Zabbix','7.4-3',NULL,'0','0',''),
('10379',NULL,'Jenkins by HTTP','3','-1','2','','','Jenkins by HTTP','0',NULL,'Get Jenkins metrics by HTTP agent.\r\nMetrics are collected by requests to Metrics API. Install Metrics plugin and configure access to the Metrics Servlet by issuing API key.\r\nDon\'t forget to change macros {$JENKINS.URL}, {$JENKINS.USER}, {$JENKINS.API.TOKEN}, {$JENKINS.API.KEY}.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','2ef2f2eb75ee4a0bae839e22aa76e5fc','JENKINS BY HTTP','Zabbix','7.4-1',NULL,'0','0',''),
('10380',NULL,'Hikvision camera by HTTP','3','-1','2','','','Hikvision camera by HTTP','0',NULL,'This template is designed for the effortless deployment of Hikvision cameras monitoring by Zabbix via HTTP and doesn\'t require any external scripts.\r\n\r\nSample device overview page:\r\nhttps://www.hikvision.com/en/products/IP-Products/Network-Cameras/\r\n\r\nSetup:\r\n\r\n1. Set the hostname or IP address of the Hikvision ISAPI host in the \'{$HIKVISION_ISAPI_HOST}\' macro.\r\n\r\n2. Set the user name and password in the \'{$PASSWORD}\' and \'{$USER}\' macros.\r\n\r\n3. Change other macros according to your camera configuration if necessary.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','3fb4020df2984b0ab64dfd8355ff5c65','HIKVISION CAMERA BY HTTP','Zabbix','7.4-1',NULL,'0','0',''),
('10381',NULL,'Ignite by JMX','3','-1','2','','','Ignite by JMX','0',NULL,'The template to monitor Apache Ignite by Zabbix that work without any external scripts.\r\n It works with both standalone and cluster instances.\r\n The metrics are discoverable and collected by JMX.\r\n Current JMX tree hierarchy contains classloader by default. Add the following jvm option `-DIGNITE_MBEAN_APPEND_CLASS_LOADER_ID=false`to will exclude one level with Classloader name.\r\n You can set {$IGNITE.USER} and {$IGNITE.PASSWORD} macros in the template for using on the host level.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','ab05dbb15ff047f192782f617f0627ac','IGNITE BY JMX','Zabbix','7.4-1',NULL,'0','0',''),
('10382',NULL,'Microsoft SharePoint by HTTP','3','-1','2','','','Microsoft SharePoint by HTTP','0',NULL,'Overview:\r\nTemplate receives data via HTTP Agent.\r\nSetup:\r\nCreate a new host.\r\nDefine macros according to your Sharepoint web portal.\r\nIt is recommended to fill in the values of the filter macros to avoid getting redundant data.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','8d5fe5b4ebb64255a2429b34c7dd3681','MICROSOFT SHAREPOINT BY HTTP','Zabbix','7.4-0',NULL,'0','0',''),
('10385',NULL,'Huawei OceanStor 5300 V5 by SNMP','3','-1','2','','','Huawei OceanStor 5300 V5 by SNMP','0',NULL,'The template to monitor SAN Huawei OceanStor 5300 V5 by Zabbix SNMP agent.\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/418855-discussion-thread-for-official-zabbix-template-huawei-oceanstor\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','c5564dd58c394b969d5365cc5de3e7f8','HUAWEI OCEANSTOR 5300 V5 BY SNMP','Zabbix','7.4-3',NULL,'0','0',''),
('10386',NULL,'MongoDB node by Zabbix agent 2','3','-1','2','','','MongoDB node by Zabbix agent 2','0',NULL,'Get MongoDB metrics from plugin for the zabbix-agent2.\r\n 1. Setup and configure zabbix-agent2 compiled with the MongoDB monitoring plugin.\r\n 2. Set the {$MONGODB.CONNSTRING} such as or named session.\r\n 3. Set the user name and password in host macros ({$MONGODB.USER}, {$MONGODB.PASSWORD}) if you want to override parameters from the Zabbix agent configuration file.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/420659-discussion-thread-for-official-zabbix-template-db-mongodb\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','81aa8c5ab5594f77a2b26fb7f5094048','MONGODB NODE BY ZABBIX AGENT 2','Zabbix','7.4-0',NULL,'0','0',''),
('10387',NULL,'MongoDB cluster by Zabbix agent 2','3','-1','2','','','MongoDB cluster by Zabbix agent 2','0',NULL,'Get MongoDB metrics from plugin for the zabbix-agent2.\r\n 1. Setup and configure zabbix-agent2 compiled with the MongoDB monitoring plugin.\r\n 2. Set the {$MONGODB.CONNSTRING} such as or named session.\r\n 3. Set the user name and password in host macros ({$MONGODB.USER}, {$MONGODB.PASSWORD}) if you want to override parameters from the Zabbix agent configuration file.\r\n\r\n All sharded Mongodb nodes (mongod) will be discovered with attached template "MongoDB node".\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/420659-discussion-thread-for-official-zabbix-template-db-mongodb\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','d38b271797bd41f2ad8c79d83b9d8d9c','MONGODB CLUSTER BY ZABBIX AGENT 2','Zabbix','7.4-0',NULL,'0','0',''),
('10390',NULL,'Cisco Catalyst 3750V2-24FS by SNMP','3','-1','2','','','Cisco Catalyst 3750V2-24FS by SNMP','0',NULL,'Template Cisco Catalyst 3750V2-24FS\r\n \r\n MIBs used:\r\n CISCO-MEMORY-POOL-MIB\r\n IF-MIB\r\n EtherLike-MIB\r\n SNMPv2-MIB\r\n CISCO-PROCESS-MIB\r\n CISCO-ENVMON-MIB\r\n ENTITY-MIB\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/418396-discussion-thread-for-official-zabbix-templates-for-cisco\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','6ff896f545e043cc98de6d98698d41df','CISCO CATALYST 3750V2-24FS BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10391',NULL,'Cisco Catalyst 3750V2-24PS by SNMP','3','-1','2','','','Cisco Catalyst 3750V2-24PS by SNMP','0',NULL,'Template Cisco Catalyst 3750V2-24PS\r\n \r\n MIBs used:\r\n CISCO-MEMORY-POOL-MIB\r\n IF-MIB\r\n EtherLike-MIB\r\n SNMPv2-MIB\r\n CISCO-PROCESS-MIB\r\n CISCO-ENVMON-MIB\r\n ENTITY-MIB\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/418396-discussion-thread-for-official-zabbix-templates-for-cisco\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','4583f0c3bc894251a6c5e7129cb5b9aa','CISCO CATALYST 3750V2-24PS BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10392',NULL,'Cisco Catalyst 3750V2-24TS by SNMP','3','-1','2','','','Cisco Catalyst 3750V2-24TS by SNMP','0',NULL,'Template Cisco Catalyst 3750V2-24TS\r\n \r\n MIBs used:\r\n CISCO-MEMORY-POOL-MIB\r\n IF-MIB\r\n EtherLike-MIB\r\n SNMPv2-MIB\r\n CISCO-PROCESS-MIB\r\n CISCO-ENVMON-MIB\r\n ENTITY-MIB\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/418396-discussion-thread-for-official-zabbix-templates-for-cisco\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','30d084c6b7844b7cab6cf820b00bb7b2','CISCO CATALYST 3750V2-24TS BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10393',NULL,'Cisco Catalyst 3750V2-48PS by SNMP','3','-1','2','','','Cisco Catalyst 3750V2-48PS by SNMP','0',NULL,'Template Cisco Catalyst 3750V2-48PS\r\n \r\n MIBs used:\r\n CISCO-MEMORY-POOL-MIB\r\n IF-MIB\r\n EtherLike-MIB\r\n SNMPv2-MIB\r\n CISCO-PROCESS-MIB\r\n CISCO-ENVMON-MIB\r\n ENTITY-MIB\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/418396-discussion-thread-for-official-zabbix-templates-for-cisco\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','ea096c13a09b4d7a9be0aab1cec95206','CISCO CATALYST 3750V2-48PS BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10394',NULL,'Cisco Catalyst 3750V2-48TS by SNMP','3','-1','2','','','Cisco Catalyst 3750V2-48TS by SNMP','0',NULL,'Template Cisco Catalyst 3750V2-48TS\r\n \r\n MIBs used:\r\n CISCO-MEMORY-POOL-MIB\r\n IF-MIB\r\n EtherLike-MIB\r\n SNMPv2-MIB\r\n CISCO-PROCESS-MIB\r\n CISCO-ENVMON-MIB\r\n ENTITY-MIB\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/418396-discussion-thread-for-official-zabbix-templates-for-cisco\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','f744679600844c07b2b4eedda9bc3d0c','CISCO CATALYST 3750V2-48TS BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10395',NULL,'APC UPS by SNMP','3','-1','2','','','APC UPS by SNMP','0',NULL,'Template Power APC UPS\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nPowerNet-MIB\r\nSNMPv2-MIB\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/420730-discussion-thread-for-official-zabbix-template-apc-ups\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','3ec55c9966624ef5bc1b50502812d581','APC UPS BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10396',NULL,'NetApp AFF A700 by HTTP','3','-1','2','','','NetApp AFF A700 by HTTP','0',NULL,'The template to monitor SAN NetApp AFF A700 cluster by Zabbix HTTP agent.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','79267c69f54a4e59b4152aba4e8c4bd5','NETAPP AFF A700 BY HTTP','Zabbix','7.4-0',NULL,'0','0',''),
('10397',NULL,'TiDB PD by HTTP','3','-1','2','','','TiDB PD by HTTP','0',NULL,'The template to monitor PD server of TiDB cluster by Zabbix that works without any external scripts.\r\nMost of the metrics are collected in one go, thanks to Zabbix bulk data collection.\r\nDon\'t forget to change the macros {$PD.URL}, {$PD.PORT}.\r\n\r\nTemplate `TiDB PD by HTTP` — collects metrics by HTTP agent from PD /metrics endpoint and from monitoring API.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','43596328d4d74a5592906a9e08e3fd96','TIDB PD BY HTTP','Zabbix','7.4-1',NULL,'0','0',''),
('10398',NULL,'TiDB by HTTP','3','-1','2','','','TiDB by HTTP','0',NULL,'The template to monitor TiDB server of TiDB cluster by Zabbix that works without any external scripts.\r\nMost of the metrics are collected in one go, thanks to Zabbix bulk data collection.\r\nDon\'t forget to change the macros {$TIDB.URL}, {$TIDB.PORT}.\r\n\r\nTemplate `TiDB by HTTP` — collects metrics by HTTP agent from PD /metrics endpoint and from monitoring API.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','8ec72ebbe3204d7789429640abcac610','TIDB BY HTTP','Zabbix','7.4-1',NULL,'0','0',''),
('10399',NULL,'TiDB TiKV by HTTP','3','-1','2','','','TiDB TiKV by HTTP','0',NULL,'The template to monitor TiKV server of TiDB cluster by Zabbix that works without any external scripts.\r\nMost of the metrics are collected in one go, thanks to Zabbix bulk data collection.\r\nDon\'t forget to change the macros {$TIKV.URL}, {$TIKV.PORT}.\r\n\r\nTemplate `TiDB TiKV by HTTP` — collects metrics by HTTP agent from TiKV /metrics endpoint.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','3a0bbbb2ec0a4c58bba3ba3a3d6ce660','TIDB TIKV BY HTTP','Zabbix','7.4-1',NULL,'0','0',''),
('10400',NULL,'APC UPS Galaxy 3500 by SNMP','3','-1','2','','','APC UPS Galaxy 3500 by SNMP','0',NULL,'Template Power APC UPS Galaxy 3500\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nPowerNet-MIB\r\nSNMPv2-MIB\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/420730-discussion-thread-for-official-zabbix-template-apc-ups\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','5d3971cd973b46e7915d7ae0750bac57','APC UPS GALAXY 3500 BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10401',NULL,'APC Smart-UPS 2200 RM by SNMP','3','-1','2','','','APC Smart-UPS 2200 RM by SNMP','0',NULL,'Template Power APC Smart-UPS 2200 RM\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nPowerNet-MIB\r\nSNMPv2-MIB\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/420730-discussion-thread-for-official-zabbix-template-apc-ups\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','e8c0b2c40e884f1598d86f3edf020ea7','APC SMART-UPS 2200 RM BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10402',NULL,'APC Smart-UPS 3000 XLM by SNMP','3','-1','2','','','APC Smart-UPS 3000 XLM by SNMP','0',NULL,'Template Power APC Smart-UPS 3000 XLM\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nPowerNet-MIB\r\nSNMPv2-MIB\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/420730-discussion-thread-for-official-zabbix-template-apc-ups\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','eafd78764fde4110b9e46ae184f327ba','APC SMART-UPS 3000 XLM BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10403',NULL,'APC Smart-UPS RT 1000 RM XL by SNMP','3','-1','2','','','APC Smart-UPS RT 1000 RM XL by SNMP','0',NULL,'Template Power APC Smart-UPS RT 1000 RM XL\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nPowerNet-MIB\r\nSNMPv2-MIB\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/420730-discussion-thread-for-official-zabbix-template-apc-ups\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','340ec6917c274ead8fab36925e57f30a','APC SMART-UPS RT 1000 RM XL BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10404',NULL,'APC Smart-UPS RT 1000 XL by SNMP','3','-1','2','','','APC Smart-UPS RT 1000 XL by SNMP','0',NULL,'Template Power APC Smart-UPS RT 1000 XL\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nPowerNet-MIB\r\nSNMPv2-MIB\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/420730-discussion-thread-for-official-zabbix-template-apc-ups\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','32d3c78ff44c4c3c9ff5b893ad7f5fc9','APC SMART-UPS RT 1000 XL BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10406',NULL,'APC Smart-UPS SRT 8000 by SNMP','3','-1','2','','','APC Smart-UPS SRT 8000 by SNMP','0',NULL,'Template Power APC Smart-UPS SRT 8000\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nPowerNet-MIB\r\nSNMPv2-MIB\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/420730-discussion-thread-for-official-zabbix-template-apc-ups\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','b3caafda8c5345cc832ac3be3cefa615','APC SMART-UPS SRT 8000 BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10407',NULL,'APC UPS Symmetra LX by SNMP','3','-1','2','','','APC UPS Symmetra LX by SNMP','0',NULL,'Template Power APC UPS Symmetra LX\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nPowerNet-MIB\r\nSNMPv2-MIB\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/420730-discussion-thread-for-official-zabbix-template-apc-ups\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','0b9a899ff8f1467c9fdf999d02b9fd77','APC UPS SYMMETRA LX BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10408',NULL,'APC UPS Symmetra RM by SNMP','3','-1','2','','','APC UPS Symmetra RM by SNMP','0',NULL,'Template Power APC UPS Symmetra RM\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nPowerNet-MIB\r\nSNMPv2-MIB\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/420730-discussion-thread-for-official-zabbix-template-apc-ups\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','1dac0a88c3774315b90622a48031e369','APC UPS SYMMETRA RM BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10409',NULL,'APC UPS Symmetra RX by SNMP','3','-1','2','','','APC UPS Symmetra RX by SNMP','0',NULL,'Template Power APC UPS Symmetra RX\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nPowerNet-MIB\r\nSNMPv2-MIB\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/420730-discussion-thread-for-official-zabbix-template-apc-ups\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','4ffb0f9103084384a98379ed533865e9','APC UPS SYMMETRA RX BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10410',NULL,'WildFly Domain by JMX','3','-1','2','','','WildFly Domain by JMX','0',NULL,'Official JMX Template for WildFly.\r\nThe metrics are collected by JMX. This template works with Domain Controller.\r\nYou can set {$WILDFLY.USER} and {$WILDFLY.PASSWORD} macros in the template for using on the host level.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','4b27e636b6ad4ce68511d344d5604999','WILDFLY DOMAIN BY JMX','Zabbix','7.4-1',NULL,'0','0',''),
('10411',NULL,'WildFly Server by JMX','3','-1','2','','','WildFly Server by JMX','0',NULL,'Official JMX Template for WildFly.\r\nThe metrics are collected by JMX. This template works with standalone and domain instances.\r\nYou can set {$WILDFLY.USER} and {$WILDFLY.PASSWORD} macros in the template for using on the host level.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','2bf5827343f0420792ad953f290baa05','WILDFLY SERVER BY JMX','Zabbix','7.4-1',NULL,'0','0',''),
('10412',NULL,'APC Smart-UPS SRT 5000 by SNMP','3','-1','2','','','APC Smart-UPS SRT 5000 by SNMP','0',NULL,'Template Power APC Smart-UPS SRT 5000\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nPowerNet-MIB\r\nSNMPv2-MIB\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/420730-discussion-thread-for-official-zabbix-template-apc-ups\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','8ec76aeb703747a5affdf435bc12f572','APC SMART-UPS SRT 5000 BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10413',NULL,'Website certificate by Zabbix agent 2','3','-1','2','','','Website certificate by Zabbix agent 2','0',NULL,'The template to monitor TLS/SSL certificate on the website by Zabbix agent 2 that works without any external scripts.\r\n\r\nZabbix agent 2 with the WebCertificate plugin requests certificate using the web.certificate.get key and returns JSON with certificate attributes.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/428309-discussion-thread-for-official-zabbix-template-tls-ssl-certificates-monitoring\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','5630ec1b1baf449abe1bc5521f85fe6c','WEBSITE CERTIFICATE BY ZABBIX AGENT 2','Zabbix','7.4-1',NULL,'0','0',''),
('10414',NULL,'Cloudflare by HTTP','3','-1','2','','','Cloudflare by HTTP','0',NULL,'The template to monitor Cloudflare to see your web traffic and DNS metrics.\r\nIt works without any external scripts and uses Script item.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','08ef3d687d754b0aba17e1dcbd77d4bd','CLOUDFLARE BY HTTP','Zabbix','7.4-1',NULL,'0','0',''),
('10415',NULL,'NGINX Plus by HTTP','3','-1','2','','','NGINX Plus by HTTP','0',NULL,'Get Nginx Plus metrics by HTTP agent.\r\nMetrics are collected by requests to Nginx Plus API.\r\nDon\'t forget to change macros {$NGINX.API.ENDPOINT}.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','8cad0f2564694416b60bd8a414948641','NGINX PLUS BY HTTP','Zabbix','7.4-0',NULL,'0','0',''),
('10416',NULL,'Systemd by Zabbix agent 2','3','-1','2','','','Systemd by Zabbix agent 2','0',NULL,'Get systemd units metrics from plugin for the zabbix-agent2.\r\n 1. Setup and configure zabbix-agent2 compiled with the Systemd monitoring plugin.\r\n 2. Set filters with macros if you want to override default filter parameters.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','90ac276995294a6aa88462c032d2ddaf','SYSTEMD BY ZABBIX AGENT 2','Zabbix','7.4-2',NULL,'0','0',''),
('10417',NULL,'GridGain by JMX','3','-1','2','','','GridGain by JMX','0',NULL,'The template to monitor GridGain In-Memory Computing Platform by Zabbix that work without any external scripts.\r\n It works with both standalone and cluster instances.\r\n The metrics are discoverable and collected by JMX.\r\n Current JMX tree hierarchy contains classloader by default. Add the following jvm option `-DIGNITE_MBEAN_APPEND_CLASS_LOADER_ID=false`to will exclude one level with Classloader name.\r\n You can set {$GRIDGAIN.USER} and {$GRIDGAIN.PASSWORD} macros in the template for using on the host level.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','47d87c39c121429b98a18f641aa443ea','GRIDGAIN BY JMX','Zabbix','7.4-1',NULL,'0','0',''),
('10418',NULL,'Cisco ASAv by SNMP','3','-1','2','','','Cisco ASAv by SNMP','0',NULL,'Template Net Cisco ASAv\r\n\r\nMIBs used:\r\nCISCO-PORT-MIB\r\nCISCO-MEMORY-POOL-MIB\r\nCISCO-REMOTE-ACCESS-MONITOR-MIB\r\nIF-MIB\r\nRFC1213-MIB\r\nCISCO-PROCESS-MIB\r\nENTITY-MIB\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/418396-discussion-thread-for-official-zabbix-templates-for-cisco\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','75d009cd4dc84ee7a8fc479fa2fbaeee','CISCO ASAV BY SNMP','Zabbix','7.4-2',NULL,'0','0',''),
('10419',NULL,'F5 Big-IP by SNMP','3','-1','2','','','F5 Big-IP by SNMP','0',NULL,'MIBs used:\r\nRFC1213-MIB\r\nF5-BIGIP-LOCAL-MIB\r\nF5-BIGIP-SYSTEM-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','44c2c2d94a4447c6a924386640e4854a','F5 BIG-IP BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10420',NULL,'ZYXEL AAM1212-51 IES-612 by SNMP','3','-1','2','','','ZYXEL AAM1212-51 IES-612 by SNMP','0',NULL,'ZYXEL AAM1212-51 / IES-612\r\n\r\nMIBs used:\r\nRFC1213-MIB\r\nHOST-RESOURCES-MIB\r\nADSL-LINE-MIB\r\nZYXEL-IESCOMMON-MIB\r\nIF-MIB\r\n\r\nKnown Issues:\r\n\r\n Description: Incorrect handling of SNMP bulk requests. Disable the use of bulk requests in the SNMP interface settings.\r\n Version: all versions firmware\r\n Device: ZYXEL AAM1212-51 / IES-612\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/422668-discussion-thread-for-official-zabbix-templates-for-zyxel\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','3a71dcdcfe0b4a0e8284d8939d335cce','ZYXEL AAM1212-51 IES-612 BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10421',NULL,'ZYXEL ES3500-8PD by SNMP','3','-1','2','','','ZYXEL ES3500-8PD by SNMP','0',NULL,'ZYXEL ES3500-8PD\r\n\r\nMIBs used:\r\nRFC1213-MIB\r\nHOST-RESOURCES-MIB\r\nZYXEL-ES3500-8PD-MIB\r\nIF-MIB\r\n\r\nKnown Issues:\r\n\r\n Description: Incorrect handling of SNMP bulk requests. Disable the use of bulk requests in the SNMP interface settings.\r\n Version: all versions firmware\r\n Device: ZYXEL ES3500-8PD\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/422668-discussion-thread-for-official-zabbix-templates-for-zyxel\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','b8a6f34fd5c447b1b9310746a96f4e80','ZYXEL ES3500-8PD BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10422',NULL,'ZYXEL GS-4012F by SNMP','3','-1','2','','','ZYXEL GS-4012F by SNMP','0',NULL,'ZYXEL GS-4012F\r\n\r\nMIBs used:\r\nZYXEL-GS4012F-MIB\r\nRFC1213-MIB\r\nHOST-RESOURCES-MIB\r\nIF-MIB\r\n\r\nKnown Issues:\r\n\r\n Description: Incorrect handling of SNMP bulk requests. Disable the use of bulk requests in the SNMP interface settings.\r\n Version: all versions firmware\r\n Device: ZYXEL GS-4012F\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/422668-discussion-thread-for-official-zabbix-templates-for-zyxel\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','73f123bb9ffe4587a0269c7e8752b2ed','ZYXEL GS-4012F BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10423',NULL,'ZYXEL IES-500x by SNMP','3','-1','2','','','ZYXEL IES-500x by SNMP','0',NULL,'ZYXEL IES-500x\r\n\r\nMIBs used:\r\nRFC1213-MIB\r\nHOST-RESOURCES-MIB\r\nADSL-LINE-MIB\r\nZYXEL-IES5000-MIB\r\nIF-MIB\r\n\r\nKnown Issues:\r\n\r\n Description: Incorrect handling of SNMP bulk requests. Disable the use of bulk requests in the SNMP interface settings.\r\n Version: all versions firmware\r\n Device: ZYXEL IES-500x\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/422668-discussion-thread-for-official-zabbix-templates-for-zyxel\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','3db86b0d235e4c7b80f7d6144ca08925','ZYXEL IES-500X BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10424',NULL,'ZYXEL IES-6000 by SNMP','3','-1','2','','','ZYXEL IES-6000 by SNMP','0',NULL,'ZYXEL IES-6000\r\n\r\nMIBs used:\r\nRFC1213-MIB\r\nHOST-RESOURCES-MIB\r\nADSL-LINE-MIB\r\nZYXEL-IES5000-MIB\r\nIF-MIB\r\n\r\nKnown Issues:\r\n\r\n Description: Incorrect handling of SNMP bulk requests. Disable the use of bulk requests in the SNMP interface settings.\r\n Version: all versions firmware\r\n Device: ZYXEL IES-6000\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/422668-discussion-thread-for-official-zabbix-templates-for-zyxel\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','3645654baaf04f11927b171bcb048349','ZYXEL IES-6000 BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10425',NULL,'ZYXEL IES1248-51 by SNMP','3','-1','2','','','ZYXEL IES1248-51 by SNMP','0',NULL,'ZYXEL IES1248-51\r\n\r\nMIBs used:\r\nRFC1213-MIB\r\nHOST-RESOURCES-MIB\r\nADSL-LINE-MIB\r\nZYXEL-IESCOMMON-MIB\r\nIF-MIB\r\n\r\nKnown Issues:\r\n\r\n Description: Incorrect handling of SNMP bulk requests. Disable the use of bulk requests in the SNMP interface settings.\r\n Version: all versions firmware\r\n Device: ZYXEL IES1248-51\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/422668-discussion-thread-for-official-zabbix-templates-for-zyxel\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','8e6d7067cd094e56a52db999b3199edc','ZYXEL IES1248-51 BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10426',NULL,'ZYXEL MES-3528 by SNMP','3','-1','2','','','ZYXEL MES-3528 by SNMP','0',NULL,'ZYXEL MES-3528\r\n\r\nMIBs used:\r\nRFC1213-MIB\r\nHOST-RESOURCES-MIB\r\nZYXEL-MES3528-MIB\r\nIF-MIB\r\n\r\nKnown Issues:\r\n\r\n Description: Incorrect handling of SNMP bulk requests. Disable the use of bulk requests in the SNMP interface settings.\r\n Version: all versions firmware\r\n Device: ZYXEL MES-3528\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/422668-discussion-thread-for-official-zabbix-templates-for-zyxel\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','249de8d8d21e4dda9c3f766ab6201378','ZYXEL MES-3528 BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10427',NULL,'ZYXEL MES3500-10 by SNMP','3','-1','2','','','ZYXEL MES3500-10 by SNMP','0',NULL,'ZYXEL MES3500-10\r\n\r\nMIBs used:\r\nRFC1213-MIB\r\nHOST-RESOURCES-MIB\r\nZYXEL-MES3500-10-MIB\r\nIF-MIB\r\n\r\nKnown Issues:\r\n\r\n Description: Incorrect handling of SNMP bulk requests. Disable the use of bulk requests in the SNMP interface settings.\r\n Version: all versions firmware\r\n Device: ZYXEL MES3500-10\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/422668-discussion-thread-for-official-zabbix-templates-for-zyxel\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','21a95afef0e74fb19691693090403d1d','ZYXEL MES3500-10 BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10428',NULL,'ZYXEL MES3500-24 by SNMP','3','-1','2','','','ZYXEL MES3500-24 by SNMP','0',NULL,'ZYXEL MES3500-24\r\n\r\nMIBs used:\r\nRFC1213-MIB\r\nHOST-RESOURCES-MIB\r\nZYXEL-MES3500-24-MIB\r\nIF-MIB\r\n\r\nKnown Issues:\r\n\r\n Description: Incorrect handling of SNMP bulk requests. Disable the use of bulk requests in the SNMP interface settings.\r\n Version: all versions firmware\r\n Device: ZYXEL MES3500-24\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/422668-discussion-thread-for-official-zabbix-templates-for-zyxel\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','292970ad91204722b5e5cb3233fc0026','ZYXEL MES3500-24 BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10429',NULL,'ZYXEL MGS-3712 by SNMP','3','-1','2','','','ZYXEL MGS-3712 by SNMP','0',NULL,'ZYXEL MGS-3712\r\n\r\nMIBs used:\r\nRFC1213-MIB\r\nHOST-RESOURCES-MIB\r\nZYXEL-MGS3712F-MIB\r\nIF-MIB\r\n\r\nKnown Issues:\r\n\r\n Description: Incorrect handling of SNMP bulk requests. Disable the use of bulk requests in the SNMP interface settings.\r\n Version: all versions firmware\r\n Device: ZYXEL MGS-3712\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/422668-discussion-thread-for-official-zabbix-templates-for-zyxel\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','8ea7299983f24d0a913606e334f0e526','ZYXEL MGS-3712 BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10430',NULL,'ZYXEL MGS-3712F by SNMP','3','-1','2','','','ZYXEL MGS-3712F by SNMP','0',NULL,'ZYXEL MGS-3712F\r\n\r\nMIBs used:\r\nRFC1213-MIB\r\nHOST-RESOURCES-MIB\r\nZYXEL-MGS3712F-MIB\r\nIF-MIB\r\n\r\nKnown Issues:\r\n\r\n Description: Incorrect handling of SNMP bulk requests. Disable the use of bulk requests in the SNMP interface settings.\r\n Version: all versions firmware\r\n Device: ZYXEL MGS-3712F\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/422668-discussion-thread-for-official-zabbix-templates-for-zyxel\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','01deb47efa1f4a9092de67fd61820a7d','ZYXEL MGS-3712F BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10431',NULL,'ZYXEL MES3500-24S by SNMP','3','-1','2','','','ZYXEL MES3500-24S by SNMP','0',NULL,'ZYXEL MES3500-24S\r\n\r\nMIBs used:\r\nZYXEL-TRANSCEIVER-MIB\r\nIF-MIB\r\nRFC1213-MIB\r\nHOST-RESOURCES-MIB\r\nZYXEL-HW-MONITOR-MIB\r\nZYXEL-PORT-MIB\r\nZYXEL-ES-COMMON\r\n\r\nKnown Issues:\r\n\r\n Description: Incorrect handling of SNMP bulk requests. Disable the use of bulk requests in the SNMP interface settings.\r\n Version: all versions firmware\r\n Device: ZYXEL MGS3520-28\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/422668-discussion-thread-for-official-zabbix-templates-for-zyxel\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','89eef2fe23964f44bf9aec6d00e39efd','ZYXEL MES3500-24S BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10432',NULL,'ZYXEL MGS3520-28x by SNMP','3','-1','2','','','ZYXEL MGS3520-28x by SNMP','0',NULL,'ZYXEL MGS3520-28x\r\n\r\nMIBs used:\r\nZYXEL-TRANSCEIVER-MIB\r\nIF-MIB\r\nRFC1213-MIB\r\nHOST-RESOURCES-MIB\r\nZYXEL-HW-MONITOR-MIB\r\nZYXEL-PORT-MIB\r\nZYXEL-ES-COMMON\r\n\r\nKnown Issues:\r\n\r\n Description: Incorrect handling of SNMP bulk requests. Disable the use of bulk requests in the SNMP interface settings.\r\n Version: all versions firmware\r\n Device: ZYXEL MGS3520-28\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/422668-discussion-thread-for-official-zabbix-templates-for-zyxel\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','9cc843a085bb4ee5af0dc4d764a7eee9','ZYXEL MGS3520-28X BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10433',NULL,'ZYXEL XGS-4728F by SNMP','3','-1','2','','','ZYXEL XGS-4728F by SNMP','0',NULL,'ZYXEL XGS-4728F\r\n\r\nMIBs used:\r\nRFC1213-MIB\r\nHOST-RESOURCES-MIB\r\nZYXEL-XGS4728F-MIB\r\nIF-MIB\r\n\r\nKnown Issues:\r\n\r\n Description: Incorrect handling of SNMP bulk requests. Disable the use of bulk requests in the SNMP interface settings.\r\n Version: all versions firmware\r\n Device: ZYXEL XGS-4728F\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/422668-discussion-thread-for-official-zabbix-templates-for-zyxel\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','ab18a5665b7d4bed876881b5c4e8ce51','ZYXEL XGS-4728F BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10434',NULL,'Cisco UCS Manager by SNMP','3','-1','2','','','Cisco UCS Manager by SNMP','0',NULL,'This is a template for Cisco UCS Manager monitoring via Zabbix SNMP Agent that works without any external scripts.\r\n\r\n\r\nMIBs used:\r\nCISCO-UNIFIED-COMPUTING-COMPUTE-MIB\r\nCISCO-UNIFIED-COMPUTING-EQUIPMENT-MIB\r\nIF-MIB\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nCISCO-UNIFIED-COMPUTING-PROCESSOR-MIB\r\nCISCO-UNIFIED-COMPUTING-STORAGE-MIB\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/418396-discussion-thread-for-official-zabbix-templates-for-cisco\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','d5eb4ce08a334098a85e6e02c534be90','CISCO UCS MANAGER BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10435',NULL,'DELL PowerEdge R720 by HTTP','3','-1','2','','','DELL PowerEdge R720 by HTTP','0',NULL,'Template for DELL PowerEdge R720 servers with iDRAC 8/9 firmware 4.32 and later and Redfish API enabled.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/426752-discussion-thread-for-official-zabbix-dell-templates\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','9643f22821104f809e2486be83e1816e','DELL POWEREDGE R720 BY HTTP','Zabbix','7.4-2',NULL,'0','0',''),
('10436',NULL,'DELL PowerEdge R720 by SNMP','3','-1','2','','','DELL PowerEdge R720 by SNMP','0',NULL,'Template for DELL PowerEdge R720 servers with iDRAC version 7 and later.\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nIDRAC-MIB-SMIv2\r\nSNMPv2-MIB\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/426752-discussion-thread-for-official-zabbix-dell-templates\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','fe5b8448661f41b9a6d948fccd7f9045','DELL POWEREDGE R720 BY SNMP','Zabbix','7.4-3',NULL,'0','0',''),
('10437',NULL,'DELL PowerEdge R740 by HTTP','3','-1','2','','','DELL PowerEdge R740 by HTTP','0',NULL,'Template for DELL PowerEdge R740 servers with iDRAC 8/9 firmware 4.32 and later and Redfish API enabled.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/426752-discussion-thread-for-official-zabbix-dell-templates\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','3f707f39c32a4b6e8b214c38a260f6f9','DELL POWEREDGE R740 BY HTTP','Zabbix','7.4-2',NULL,'0','0',''),
('10438',NULL,'DELL PowerEdge R740 by SNMP','3','-1','2','','','DELL PowerEdge R740 by SNMP','0',NULL,'Template for DELL PowerEdge R740 servers with iDRAC version 7 and later.\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nIDRAC-MIB-SMIv2\r\nSNMPv2-MIB\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/426752-discussion-thread-for-official-zabbix-dell-templates\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','9fde0e1c36f8453da72f97535d4e74ca','DELL POWEREDGE R740 BY SNMP','Zabbix','7.4-3',NULL,'0','0',''),
('10439',NULL,'DELL PowerEdge R820 by HTTP','3','-1','2','','','DELL PowerEdge R820 by HTTP','0',NULL,'Template for DELL PowerEdge R820 servers with iDRAC 8/9 firmware 4.32 and later and Redfish API enabled.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/426752-discussion-thread-for-official-zabbix-dell-templates\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','1e9fe6b88c7542638c0f5d94484858b2','DELL POWEREDGE R820 BY HTTP','Zabbix','7.4-2',NULL,'0','0',''),
('10440',NULL,'DELL PowerEdge R820 by SNMP','3','-1','2','','','DELL PowerEdge R820 by SNMP','0',NULL,'Template for DELL PowerEdge R820 servers with iDRAC version 7 and later.\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nIDRAC-MIB-SMIv2\r\nSNMPv2-MIB\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/426752-discussion-thread-for-official-zabbix-dell-templates\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','d41c5d0fa91545d68cced1b5dabe4bf1','DELL POWEREDGE R820 BY SNMP','Zabbix','7.4-3',NULL,'0','0',''),
('10441',NULL,'DELL PowerEdge R840 by HTTP','3','-1','2','','','DELL PowerEdge R840 by HTTP','0',NULL,'Template for DELL PowerEdge R840 servers with iDRAC 8/9 firmware 4.32 and later and Redfish API enabled.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/426752-discussion-thread-for-official-zabbix-dell-templates\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','20147f00f92d4240aab0b70cf578c022','DELL POWEREDGE R840 BY HTTP','Zabbix','7.4-2',NULL,'0','0',''),
('10442',NULL,'DELL PowerEdge R840 by SNMP','3','-1','2','','','DELL PowerEdge R840 by SNMP','0',NULL,'Template for DELL PowerEdge R840 servers with iDRAC version 7 and later.\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nIDRAC-MIB-SMIv2\r\nSNMPv2-MIB\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/426752-discussion-thread-for-official-zabbix-dell-templates\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','fc834b8da8864678b55557e9a237eac9','DELL POWEREDGE R840 BY SNMP','Zabbix','7.4-3',NULL,'0','0',''),
('10443',NULL,'HPE ProLiant BL460 by SNMP','3','-1','2','','','HPE ProLiant BL460 by SNMP','0',NULL,'Template for HPE ProLiant BL460 servers with HP iLO version 4 and later.\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nCPQHLTH-MIB\r\nSNMPv2-MIB\r\nCPQNIC-MIB\r\nCPQSINFO-MIB\r\nCPQIDA-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','172ec7e51f1c4a6ba49baffbab3dda97','HPE PROLIANT BL460 BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10444',NULL,'HPE ProLiant BL920 by SNMP','3','-1','2','','','HPE ProLiant BL920 by SNMP','0',NULL,'Template for HPE ProLiant BL920 servers with HP iLO version 4 and later.\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nCPQHLTH-MIB\r\nSNMPv2-MIB\r\nCPQNIC-MIB\r\nCPQSINFO-MIB\r\nCPQIDA-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','586119e5e27e4062a3cce8601ecb8d71','HPE PROLIANT BL920 BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10445',NULL,'HPE ProLiant DL360 by SNMP','3','-1','2','','','HPE ProLiant DL360 by SNMP','0',NULL,'Template for HPE ProLiant DL360 servers with HP iLO version 4 and later.\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nCPQHLTH-MIB\r\nSNMPv2-MIB\r\nCPQNIC-MIB\r\nCPQSINFO-MIB\r\nCPQIDA-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','60cb9ccb922e4fd194a1d9573db10237','HPE PROLIANT DL360 BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10446',NULL,'HPE ProLiant DL380 by SNMP','3','-1','2','','','HPE ProLiant DL380 by SNMP','0',NULL,'Template for HPE ProLiant DL380 servers with HP iLO version 4 and later.\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nCPQHLTH-MIB\r\nSNMPv2-MIB\r\nCPQNIC-MIB\r\nCPQSINFO-MIB\r\nCPQIDA-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','379aaf7e87574debb4f5c3947a22ec68','HPE PROLIANT DL380 BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10447',NULL,'Travis CI by HTTP','3','-1','2','','','Travis CI by HTTP','0',NULL,'Template for monitoring Travis CI https://travis-ci.com\r\nYou must set {$TRAVIS.API.TOKEN} and {$TRAVIS.API.URL} macros.\r\n {$TRAVIS.API.TOKEN} is a Travis API authentication token located in User -> Settings -> API authentication.\r\n {$TRAVIS.API.URL} could be in 2 different variations:\r\n - for a private project : api.travis-ci.com\r\n - for an enterprise projects: api.example.com (where you replace example.com with the domain Travis CI is running on)\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','8cdbe00a2a3046ee962d28d32567968a','TRAVIS CI BY HTTP','Zabbix','7.4-1',NULL,'0','0',''),
('10448',NULL,'InfluxDB by HTTP','3','-1','2','','','InfluxDB by HTTP','0',NULL,'Get InfluxDB metrics by HTTP agent from Prometheus metrics endpoint.\r\nFor organization discovery template need to use Authorization via API token. See docs: https://docs.influxdata.com/influxdb/v2.0/security/tokens/\r\n\r\nDon\'t forget change macros {$INFLUXDB.URL}, {$INFLUXDB.API.TOKEN}.\r\nSome metrics may not be collected depending on your InfluxDB instance version and configuration.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','a6fe3640b23544e7ae15d438b38ce1cd','INFLUXDB BY HTTP','Zabbix','7.4-1',NULL,'0','0',''),
('10449',NULL,'MikroTik CCR1009-7G-1C-1SPC by SNMP','3','-1','2','','','MikroTik CCR1009-7G-1C-1S+PC by SNMP','0',NULL,'The template for monitoring Ethernet router MikroTik CCR1009-7G-1C-1S+PC.\r\n\r\n7x Gigabit Ethernet, 1x Combo port (SFP or Gigabit Ethernet), 1xSFP+ cage, 9\r\ncores x 1GHz CPU, 2GB RAM, LCD panel, passive cooling desktop enclosure, SmartCard\r\nslot, RouterOS L6, PSU\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','d596d6d231bf49c08890aa3ff135ecc6','MIKROTIK CCR1009-7G-1C-1S+PC BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10450',NULL,'MikroTik CCR1009-7G-1C-1S by SNMP','3','-1','2','','','MikroTik CCR1009-7G-1C-1S+ by SNMP','0',NULL,'The template for monitoring Ethernet router MikroTik CCR1009-7G-1C-1S+.\r\n\r\n1U rackmount, 7x Gigabit Ethernet, 1x Combo port (SFP or Gigabit Ethernet),\r\n1xSFP+ cage, 9 cores x 1.2GHz CPU, 2GB RAM, LCD panel, Dual Power supplies,\r\nSmartCard slot, RouterOS L6\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','a809695fbc784b75adcd4833c86bca8d','MIKROTIK CCR1009-7G-1C-1S+ BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10451',NULL,'MikroTik CCR1009-7G-1C-PC by SNMP','3','-1','2','','','MikroTik CCR1009-7G-1C-PC by SNMP','0',NULL,'The template for monitoring Ethernet router MikroTik CCR1009-7G-1C-PC.\r\n\r\n7x Gigabit Ethernet, 1x Combo port (SFP or Gigabit Ethernet), 9 cores x 1GHz\r\nCPU, 1GB RAM, passive cooling case, RouterOS L6\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','012e7043ff9849e197c42bf41cdf4d9a','MIKROTIK CCR1009-7G-1C-PC BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10452',NULL,'MikroTik CCR1016-12G by SNMP','3','-1','2','','','MikroTik CCR1016-12G by SNMP','0',NULL,'The template for monitoring Ethernet router MikroTik CCR1016-12G.\r\n\r\n1U rackmount, 12x Gigabit Ethernet, LCD, 16 cores x 1.2GHz CPU, 2GB RAM, 17.8mpps\r\nfastpath, Up to 12Gbit/s throughput, RouterOS L6, Dual PSU\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','5ed19d1f74224588bf5f53ac47003acc','MIKROTIK CCR1016-12G BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10453',NULL,'MikroTik CCR1016-12S-1S by SNMP','3','-1','2','','','MikroTik CCR1016-12S-1S+ by SNMP','0',NULL,'The template for monitoring Ethernet router MikroTik CCR1016-12S-1S+.\r\n\r\n1U rackmount, 12xSFP cage, 1xSFP+ cage, 16 cores x 1.2GHz CPU, 2GB RAM, LCD\r\npanel, Dual Power supplies, RouterOS L6\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','654910b270d9464f863ed085ba7302ce','MIKROTIK CCR1016-12S-1S+ BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10454',NULL,'MikroTik CCR1036-12G-4S-EM by SNMP','3','-1','2','','','MikroTik CCR1036-12G-4S-EM by SNMP','0',NULL,'The template for monitoring Ethernet router MikroTik CCR1036-12G-4S-EM.\r\n\r\n1U rackmount, 12x Gigabit Ethernet, 4xSFP cages, LCD, 36 cores x 1.2GHz CPU,\r\n8GB RAM, 24 mpps fastpath, Up to 16Gbit/s throughput, RouterOS L6, Dual PSU\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','930c0e0534a9424fb01f2b6218d8ce59','MIKROTIK CCR1036-12G-4S-EM BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10455',NULL,'MikroTik CCR1036-12G-4S by SNMP','3','-1','2','','','MikroTik CCR1036-12G-4S by SNMP','0',NULL,'The template for monitoring Ethernet router MikroTik CCR1036-12G-4S.\r\n\r\n1U rackmount, 12x Gigabit Ethernet, 4xSFP cages, LCD, 36 cores x 1.2GHz CPU,\r\n4GB RAM, 24 mpps fastpath, Up to 16Gbit/s throughput, RouterOS L6, Dual PSU\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','82b428ad78d34988b93f3d577f2b6adc','MIKROTIK CCR1036-12G-4S BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10456',NULL,'MikroTik CCR1036-8G-2SEM by SNMP','3','-1','2','','','MikroTik CCR1036-8G-2S+EM by SNMP','0',NULL,'The template for monitoring Ethernet router MikroTik CCR1036-8G-2S+EM.\r\n\r\n1U rackmount, 8x Gigabit Ethernet, 2xSFP+ cages, LCD, 36 cores x 1.2GHz CPU,\r\n8GB RAM, 41.5mpps fastpath, Up to 28Gbit/s throughput, RouterOS L6, Dual PSU\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','7b3ecb24366f4685970df8e1143323f0','MIKROTIK CCR1036-8G-2S+EM BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10457',NULL,'MikroTik CCR1036-8G-2S by SNMP','3','-1','2','','','MikroTik CCR1036-8G-2S+ by SNMP','0',NULL,'The template for monitoring Ethernet router MikroTik CCR1036-8G-2S+.\r\n\r\n1U rackmount, 8x Gigabit Ethernet, 2xSFP+ cages, LCD, 36 cores x 1.2GHz CPU,\r\n4GB RAM, 41.5mpps fastpath, Up to 28Gbit/s throughput, RouterOS L6, Dual PSU\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','7f44e67e3f564ec9894c9142d7276553','MIKROTIK CCR1036-8G-2S+ BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10458',NULL,'MikroTik CCR1072-1G-8S by SNMP','3','-1','2','','','MikroTik CCR1072-1G-8S+ by SNMP','0',NULL,'The template for monitoring Ethernet router MikroTik CCR1072-1G-8S+.\r\n\r\n1U rackmount, 1x Gigabit Ethernet, 8xSFP+ cages, LCD, 72 cores x 1GHz CPU, 16GB\r\nRAM, up to 120 million packets per second, 80Gbps throughput, RouterOS L6\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','e7894db1c4c94e0f8715977e751368b3','MIKROTIK CCR1072-1G-8S+ BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10459',NULL,'MikroTik CCR2004-16G-2S by SNMP','3','-1','2','','','MikroTik CCR2004-16G-2S+ by SNMP','0',NULL,'The template for monitoring Ethernet router MikroTik CCR2004-16G-2S+.\r\n\r\nThis powerful and affordable router crushes all previous CCR models in single-core\r\nperformance. 16x Gigabit Ethernet ports, 2x10G SFP+ cages, active cooling and\r\nthe best single-core performance per watt & best overall performance per watt\r\namong all the CCR devices.\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','ab871d051e304f83950171c5243aa4db','MIKROTIK CCR2004-16G-2S+ BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10460',NULL,'MikroTik CCR2004-1G-12S2XS by SNMP','3','-1','2','','','MikroTik CCR2004-1G-12S+2XS by SNMP','0',NULL,'The template for monitoring Ethernet router MikroTik CCR2004-1G-12S+2XS.\r\n\r\nThe Connectivity Router - your best companion when it comes to SFP, SFP+ and\r\nSFP28 management! 1, 10 and 25 Gbps ports in a single device to make your life\r\neasier.\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','f2efeb94f4bd4ed9ab34a973c0363eb8','MIKROTIK CCR2004-1G-12S+2XS BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10461',NULL,'MikroTik CRS106-1C-5S by SNMP','3','-1','2','','','MikroTik CRS106-1C-5S by SNMP','0',NULL,'The template for monitoring Switch MikroTik CRS106-1C-5S.\r\n\r\nSmart Switch, 5x SFP cages, 1x Combo port (SFP or Gigabit Ethernet), 400MHz\r\nCPU, 128MB RAM, desktop case, RouterOS L5\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','20ea139663264c21bca0dcecf2e95589','MIKROTIK CRS106-1C-5S BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10462',NULL,'MikroTik CRS109-8G-1S-2HnD-IN by SNMP','3','-1','2','','','MikroTik CRS109-8G-1S-2HnD-IN by SNMP','0',NULL,'The template for monitoring Switch MikroTik CRS109-8G-1S-2HnD-IN.\r\n\r\n8x Gigabit Smart Switch, 1x SFP cage, LCD, 802.11b/g/n Dual Chain wireless,\r\n600MHz CPU, 128MB RAM, Metal desktop case, RouterOS L5, supports 10-57V, 802.3af/at\r\ncompliant\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','fac16383680c4454be48b6db870d975e','MIKROTIK CRS109-8G-1S-2HND-IN BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10463',NULL,'MikroTik CRS112-8G-4S-IN by SNMP','3','-1','2','','','MikroTik CRS112-8G-4S-IN by SNMP','0',NULL,'The template for monitoring Switch MikroTik CRS112-8G-4S-IN.\r\n\r\n8x Gigabit Ethernet Smart Switch, 4x SFP cages, 400MHz CPU, 128MB RAM, desktop\r\ncase, RouterOS L5\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','8d7d49fd0b3f4b1f9046dc0e94457931','MIKROTIK CRS112-8G-4S-IN BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10464',NULL,'MikroTik CRS112-8P-4S-IN by SNMP','3','-1','2','','','MikroTik CRS112-8P-4S-IN by SNMP','0',NULL,'The template for monitoring Switch MikroTik CRS112-8P-4S-IN.\r\n\r\n8x Gigabit Ethernet Smart Switch with PoE-out, 4x SFP cages, 400MHz CPU, 128MB\r\nRAM, desktop case, RouterOS L5\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','538ec67ce01341a9b281dbd86d86d2a2','MIKROTIK CRS112-8P-4S-IN BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10465',NULL,'MikroTik CRS125-24G-1S-2HnD-IN by SNMP','3','-1','2','','','MikroTik CRS125-24G-1S-2HnD-IN by SNMP','0',NULL,'The template for monitoring Switch MikroTik CRS125-24G-1S-2HnD-IN.\r\n\r\n24x Gigabit Ethernet layer 3 Smart Switch, 1x SFP cage, LCD, 802.11b/g/n Dual\r\nChain wireless, 600MHz CPU, 128MB RAM, Metal desktop case, RouterOS L5\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','c8db153405704d859ba5ee19f08b46f3','MIKROTIK CRS125-24G-1S-2HND-IN BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10466',NULL,'MikroTik CRS212-1G-10S-1SIN by SNMP','3','-1','2','','','MikroTik CRS212-1G-10S-1S+IN by SNMP','0',NULL,'The template for monitoring Switch MikroTik CRS212-1G-10S-1S+IN.\r\n\r\nSmart Switch, 1x Gigabit LAN, 10x SFP cages, 1x SFP+ cage, LCD, 400MHz CPU,\r\n64MB RAM, Metal desktop case, RouterOS L5\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','cdb6ebceb1174bada392dd24889b14d9','MIKROTIK CRS212-1G-10S-1S+IN BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10467',NULL,'MikroTik CRS305-1G-4SIN by SNMP','3','-1','2','','','MikroTik CRS305-1G-4S+IN by SNMP','0',NULL,'The template for monitoring Switch MikroTik CRS305-1G-4S+IN.\r\n\r\nFive-port desktop switch with one Gigabit Ethernet port and four SFP+ 10Gbps\r\nports\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','223101f878704022a04c30c3ff066e3f','MIKROTIK CRS305-1G-4S+IN BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10468',NULL,'MikroTik CRS309-1G-8SIN by SNMP','3','-1','2','','','MikroTik CRS309-1G-8S+IN by SNMP','0',NULL,'The template for monitoring Switch MikroTik CRS309-1G-8S+IN.\r\n\r\nDesktop switch with one Gigabit Ethernet port and eight SFP+ 10Gbps ports\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','bcc01f2b466345c4bcbe0cea1a7884d1','MIKROTIK CRS309-1G-8S+IN BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10469',NULL,'MikroTik CRS312-4C8XG-RM by SNMP','3','-1','2','','','MikroTik CRS312-4C+8XG-RM by SNMP','0',NULL,'The template for monitoring Switch MikroTik CRS312-4C+8XG-RM.\r\n\r\nSwitch of the future: the first MikroTik product with 10G RJ45 Ethernet ports\r\nand SFP+\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','8da94e2f01ff46e28becf0b08ff09ace','MIKROTIK CRS312-4C+8XG-RM BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10470',NULL,'MikroTik CRS317-1G-16SRM by SNMP','3','-1','2','','','MikroTik CRS317-1G-16S+RM by SNMP','0',NULL,'The template for monitoring Switch MikroTik CRS317-1G-16S+RM.\r\n\r\nSmart Switch, 1 x Gigabit LAN, 16 x SFP+ cages, Dual Core 800MHz CPU, 1GB RAM,\r\n1U rackmount passive cooling case, Dual Power Supplies\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','f474ff823fe84d689b9e4c6a4f0ce59e','MIKROTIK CRS317-1G-16S+RM BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10471',NULL,'MikroTik CRS326-24G-2SIN by SNMP','3','-1','2','','','MikroTik CRS326-24G-2S+IN by SNMP','0',NULL,'The template for monitoring Switch MikroTik CRS326-24G-2S+IN.\r\n\r\n24 Gigabit ports, 2 SFP+ cages and a desktop case – server room power for your\r\nhome!\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','c5f41fe0f54f470f9e304384838f150a','MIKROTIK CRS326-24G-2S+IN BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10472',NULL,'MikroTik CRS326-24G-2SRM by SNMP','3','-1','2','','','MikroTik CRS326-24G-2S+RM by SNMP','0',NULL,'The template for monitoring Switch MikroTik CRS326-24G-2S+RM.\r\n\r\n24 Gigabit port switch with 2 x SFP+ cages in 1U rackmount case, Dual boot (RouterOS\r\nor SwitchOS)\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','bc80883918ac4f879427ca145122b5cb','MIKROTIK CRS326-24G-2S+RM BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10473',NULL,'MikroTik CRS326-24S2QRM by SNMP','3','-1','2','','','MikroTik CRS326-24S+2Q+RM by SNMP','0',NULL,'The template for monitoring Switch MikroTik CRS326-24S+2Q+RM.\r\n\r\nOur fastest switch for the most demanding setups\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','e7ed0e0cbd0b439394f6498ea90dc31d','MIKROTIK CRS326-24S+2Q+RM BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10474',NULL,'MikroTik CRS328-24P-4SRM by SNMP','3','-1','2','','','MikroTik CRS328-24P-4S+RM by SNMP','0',NULL,'The template for monitoring Switch MikroTik CRS328-24P-4S+RM.\r\n\r\n24 port Gigabit Ethernet router/switch with four 10Gbps SFP+ ports in 1U rackmount\r\ncase, Dual Boot and PoE output, 500W\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','dcf88bca5aaf4123a10eb3daab28a9af','MIKROTIK CRS328-24P-4S+RM BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10475',NULL,'MikroTik CRS328-4C-20S-4SRM by SNMP','3','-1','2','','','MikroTik CRS328-4C-20S-4S+RM by SNMP','0',NULL,'The template for monitoring Switch MikroTik CRS328-4C-20S-4S+RM.\r\n\r\nSmart Switch, 20 x SFP cages, 4 x SFP+ cages, 4 x Combo ports (Gigabit Ethernet\r\nor SFP), 800MHz CPU, 512MB RAM, 1U rackmount case, Dual Power Supplies, RouterOS\r\nL5 or SwitchOS (Dual Boot)\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','6742f5ed33ca4c19b8e61203770e5fe5','MIKROTIK CRS328-4C-20S-4S+RM BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10476',NULL,'MikroTik CRS354-48G-4S2QRM by SNMP','3','-1','2','','','MikroTik CRS354-48G-4S+2Q+RM by SNMP','0',NULL,'The template for monitoring Switch MikroTik CRS354-48G-4S+2Q+RM.\r\n\r\nBest price and best performance on the market – this 48 port switch will rock\r\nany setup, including 40 Gbps devices!\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','d1c1ab5db2c34c17ae3541407f8b7faa','MIKROTIK CRS354-48G-4S+2Q+RM BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10477',NULL,'MikroTik CRS354-48P-4S2QRM by SNMP','3','-1','2','','','MikroTik CRS354-48P-4S+2Q+RM by SNMP','0',NULL,'The template for monitoring Switch MikroTik CRS354-48P-4S+2Q+RM.\r\n\r\nThe 48 port champion you’ve been waiting for - now with PoE-out!\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','fa5e5e131eb34bbea1b1f7b2352a853d','MIKROTIK CRS354-48P-4S+2Q+RM BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10478',NULL,'MikroTik CSS326-24G-2SRM by SNMP','3','-1','2','','','MikroTik CSS326-24G-2S+RM by SNMP','0',NULL,'The template for monitoring Switch MikroTik CSS326-24G-2S+RM.\r\n\r\nSwOS powered 24 port Gigabit Ethernet switch with two SFP+ ports in 1U rackmount\r\ncase\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','75ada0d6fb22416a9e6e5f44c2c3f64a','MIKROTIK CSS326-24G-2S+RM BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10479',NULL,'MikroTik CSS610-8G-2SIN by SNMP','3','-1','2','','','MikroTik CSS610-8G-2S+IN by SNMP','0',NULL,'The template for monitoring Switch MikroTik CSS610-8G-2S+IN.\r\n\r\nEight 1G Ethernet ports and two SFP+ ports for 10G fiber connectivity. Portable,\r\npowerful and extremely cost-effective - this switch is an instant classic!\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','8d22b4d1a9c6457fbd6fd959263f91db','MIKROTIK CSS610-8G-2S+IN BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10480',NULL,'MikroTik FiberBox by SNMP','3','-1','2','','','MikroTik FiberBox by SNMP','0',NULL,'The template for monitoring Switch MikroTik FiberBox.\r\n\r\nAn outdoor switch with five SFP ports\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','2bd6f566391d49dab6bee184522ab5fa','MIKROTIK FIBERBOX BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10481',NULL,'MikroTik PowerBox Pro by SNMP','3','-1','2','','','MikroTik PowerBox Pro by SNMP','0',NULL,'The template for monitoring Ethernet router MikroTik PowerBox Pro.\r\n\r\nFive Gigabit Ethernet Router with 4xPoE-out ports, SFP cage and outdoor enclosure\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','c03e1ab0128a4ae1847bc04a34f5634e','MIKROTIK POWERBOX PRO BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10482',NULL,'MikroTik PowerBox by SNMP','3','-1','2','','','MikroTik PowerBox by SNMP','0',NULL,'The template for monitoring Ethernet router MikroTik PowerBox.\r\n\r\n650MHz CPU, 64MB RAM, 5xEthernet with PoE output for four ports, RouterOS L4,\r\noutdoor case, PSU\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','0c7b3c03a5854f868b56f3ab63e2d3f7','MIKROTIK POWERBOX BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10483',NULL,'MikroTik RB1100AHx4 Dude Edition by SNMP','3','-1','2','','','MikroTik RB1100AHx4 Dude Edition by SNMP','0',NULL,'The template for monitoring Ethernet router MikroTik RB1100AHx4 Dude Edition.\r\n\r\nPowerful 1U rackmount router with 13x Gigabit Ethernet ports, 60GB M.2 drive\r\nfor Dude database\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','fac50638cb77468598c29a6a47520c24','MIKROTIK RB1100AHX4 DUDE EDITION BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10484',NULL,'MikroTik RB1100AHx4 by SNMP','3','-1','2','','','MikroTik RB1100AHx4 by SNMP','0',NULL,'The template for monitoring Ethernet router MikroTik RB1100AHx4.\r\n\r\nPowerful 1U rackmount router with 13x Gigabit Ethernet ports\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','3dfd1a55987848e5aa6ffe92c228f63b','MIKROTIK RB1100AHX4 BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10485',NULL,'MikroTik RB2011UiAS-IN by SNMP','3','-1','2','','','MikroTik RB2011UiAS-IN by SNMP','0',NULL,'The template for monitoring Ethernet router MikroTik RB2011UiAS-IN.\r\n\r\nDesktop metal case, 5xEthernet, 5xGigabit Ethernet, USB, LCD, PoE out on port\r\n10, 600MHz CPU, 128MB RAM, RouterOS L5\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','8cf537f34600403b9de31d3db4eb2a1d','MIKROTIK RB2011UIAS-IN BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10486',NULL,'MikroTik RB2011UiAS-RM by SNMP','3','-1','2','','','MikroTik RB2011UiAS-RM by SNMP','0',NULL,'The template for monitoring Ethernet router MikroTik RB2011UiAS-RM.\r\n\r\n1U rackmount, 5xEthernet, 5xGigabit Ethernet, USB, LCD, PoE out on port 10,\r\n600MHz CPU, 128MB RAM, RouterOS L5\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','969cf5dca58f47f0b271ccf62ef79c13','MIKROTIK RB2011UIAS-RM BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10487',NULL,'MikroTik RB2011iL-IN by SNMP','3','-1','2','','','MikroTik RB2011iL-IN by SNMP','0',NULL,'The template for monitoring Ethernet router MikroTik RB2011iL-IN.\r\n\r\nDesktop metal case, 5xEthernet, 5xGigabit Ethernet, PoE out on port 10, 600MHz\r\nCPU, 64MB RAM, RouterOS L4\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','141438a05f904b518c7d3ddfbbabf91f','MIKROTIK RB2011IL-IN BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10488',NULL,'MikroTik RB2011iL-RM by SNMP','3','-1','2','','','MikroTik RB2011iL-RM by SNMP','0',NULL,'The template for monitoring Ethernet router MikroTik RB2011iL-RM.\r\n\r\n1U rackmount, 5xEthernet, 5xGigabit Ethernet, PoE out on port 10, 600MHz CPU,\r\n64MB RAM, RouterOS L4\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','6d9737c72e5540d39e3553b773a587b1','MIKROTIK RB2011IL-RM BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10489',NULL,'MikroTik RB2011iLS-IN by SNMP','3','-1','2','','','MikroTik RB2011iLS-IN by SNMP','0',NULL,'The template for monitoring Ethernet router MikroTik RB2011iLS-IN.\r\n\r\nDesktop metal case, 5xEthernet, 5xGigabit Ethernet, SFP cage, PoE out on port\r\n10, 600MHz CPU, 64MB RAM, RouterOS L4\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','318fd61c22fa4f1a92a71376814d6c32','MIKROTIK RB2011ILS-IN BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10490',NULL,'MikroTik RB260GSP by SNMP','3','-1','2','','','MikroTik RB260GSP by SNMP','0',NULL,'The template for monitoring Switch MikroTik RB260GSP.\r\n\r\n5x Gigabit PoE out Ethernet Smart Switch, SFP cage, plastic case, SwOS\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','5331ecc3be9f47d6a8eb0732ae141239','MIKROTIK RB260GSP BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10491',NULL,'MikroTik RB260GS by SNMP','3','-1','2','','','MikroTik RB260GS by SNMP','0',NULL,'The template for monitoring Switch MikroTik RB260GS.\r\n\r\n5x Gigabit Ethernet Smart Switch, SFP cage, plastic case, SwOS\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','1a74dd95e7244493a1b13b94fe9dd9e8','MIKROTIK RB260GS BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10492',NULL,'MikroTik RB3011UiAS-RM by SNMP','3','-1','2','','','MikroTik RB3011UiAS-RM by SNMP','0',NULL,'The template for monitoring Ethernet router MikroTik RB3011UiAS-RM.\r\n\r\n1U rackmount, 10xGigabit Ethernet, SFP, USB 3.0, LCD, PoE out on port 10, 2x1.4GHz\r\nCPU, 1GB RAM, RouterOS L5\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','cc762a057f0f467ab571b6d76a9bb278','MIKROTIK RB3011UIAS-RM BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10493',NULL,'MikroTik RB4011iGSRM by SNMP','3','-1','2','','','MikroTik RB4011iGS+RM by SNMP','0',NULL,'The template for monitoring Ethernet router MikroTik RB4011iGS+RM.\r\n\r\nPowerful 10xGigabit port router with a Quad-core 1.4Ghz CPU, 1GB RAM, SFP+ 10Gbps\r\ncage and desktop case with rack ears\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','780c4a9a657e42fc83f1ab9a535f5184','MIKROTIK RB4011IGS+RM BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10494',NULL,'MikroTik RB5009UGSIN by SNMP','3','-1','2','','','MikroTik RB5009UG+S+IN by SNMP','0',NULL,'The template for monitoring Ethernet router MikroTik RB5009UG+S+IN.\r\n\r\nThe ultimate heavy-duty home lab router with USB 3.0, 1G and 2.5G Ethernet and\r\na 10G SFP+ cage. You can mount four of these new routers in a single 1U rackmount\r\nspace! Unprecedented processing power in such a small form factor.\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','7b6f7a12a6b449ca926e74c894eca354','MIKROTIK RB5009UG+S+IN BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10495',NULL,'MikroTik hEX PoE lite by SNMP','3','-1','2','','','MikroTik hEX PoE lite by SNMP','0',NULL,'The template for monitoring Ethernet router MikroTik hEX PoE lite.\r\n\r\n5xEthernet with PoE output for four ports, USB, 650MHz CPU, 64MB RAM, RouterOS\r\nL4\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','a5ddacdd5ac64b82bf5183769cc03e8c','MIKROTIK HEX POE LITE BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10496',NULL,'MikroTik hEX PoE by SNMP','3','-1','2','','','MikroTik hEX PoE by SNMP','0',NULL,'The template for monitoring Ethernet router MikroTik hEX PoE.\r\n\r\n5x Gigabit Ethernet with PoE output for four ports, SFP, USB, 800MHz CPU, 128MB\r\nRAM, RouterOS L4\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','ff57532daf924030b364e3b75acb74c4','MIKROTIK HEX POE BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10497',NULL,'MikroTik hEX S by SNMP','3','-1','2','','','MikroTik hEX S by SNMP','0',NULL,'The template for monitoring Ethernet router MikroTik hEX S.\r\n\r\n5x Gigabit Ethernet, SFP, Dual Core 880MHz CPU, 256MB RAM, USB, microSD, RouterOS\r\nL4, IPsec hardware encryption support and The Dude server package\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','7802db8c2f9c4a7eba7b381b8f3fa5c5','MIKROTIK HEX S BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10498',NULL,'MikroTik hEX lite by SNMP','3','-1','2','','','MikroTik hEX lite by SNMP','0',NULL,'The template for monitoring Ethernet router MikroTik hEX lite.\r\n\r\n5x Ethernet, Small plastic case, 850MHz CPU, 64MB RAM, Most affordable MPLS\r\nrouter, RouterOS L4\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','2785d83763c641a7a7937b516665d93a','MIKROTIK HEX LITE BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10499',NULL,'MikroTik hEX by SNMP','3','-1','2','','','MikroTik hEX by SNMP','0',NULL,'The template for monitoring Ethernet router MikroTik hEX.\r\n\r\n5x Gigabit Ethernet, Dual Core 880MHz CPU, 256MB RAM, USB, microSD, RouterOS\r\nL4\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','68c2034014f24115ae9e910962530472','MIKROTIK HEX BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10500',NULL,'MikroTik netPower 15FR by SNMP','3','-1','2','','','MikroTik netPower 15FR by SNMP','0',NULL,'The template for monitoring Switch MikroTik netPower 15FR.\r\n\r\nAn outdoor 18 port switch with 15 reverse PoE ports and SFP. Cut costs, not\r\nspeed - choose GPEN over GPON!\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','f1928e12f9554599a9adb516f38b6bf6','MIKROTIK NETPOWER 15FR BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10501',NULL,'MikroTik netPower 16P by SNMP','3','-1','2','','','MikroTik netPower 16P by SNMP','0',NULL,'The template for monitoring Switch MikroTik netPower 16P.\r\n\r\nAn outdoor 18 port switch with 16 Gigabit PoE-out ports and 2 SFP+. Power all\r\nyour access points anywhere!\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','b126aaf4499d49d7b4fcee0329b7dea7','MIKROTIK NETPOWER 16P BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10502',NULL,'MikroTik netPower Lite 7R by SNMP','3','-1','2','','','MikroTik netPower Lite 7R by SNMP','0',NULL,'The template for monitoring Switch MikroTik netPower Lite 7R.\r\n\r\nAn outdoor reverse PoE switch with Gigabit Ethernet and 10G SFP+ ports.\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nMIKROTIK-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','1782caa5bf724f66a23e7dbb96ef7ba2','MIKROTIK NETPOWER LITE 7R BY SNMP','Zabbix','7.4-4',NULL,'0','0',''),
('10503',NULL,'VMWare SD-WAN VeloCloud by HTTP','3','-1','2','','','VMWare SD-WAN VeloCloud by HTTP','0',NULL,'Template for monitoring VMWare SD-WAN VeloCloud https://www.vmware.com/products/sd-wan.html\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','e1ca624566424496bff9d90c261ab37b','VMWARE SD-WAN VELOCLOUD BY HTTP','Zabbix','7.4-0',NULL,'0','0',''),
('10504',NULL,'Kubernetes API server by HTTP','3','-1','2','','','Kubernetes API server by HTTP','0',NULL,'Get Kubernetes API server metrics by HTTP agent from Prometheus metrics endpoint.\r\n\r\nDon\'t forget change macros {$KUBE.API.SERVER.URL}, {$KUBE.API.TOKEN}.\r\nSome metrics may not be collected depending on your Kubernetes API server instance version and configuration.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','85ce114c802e4e28a5f3597e07d07032','KUBERNETES API SERVER BY HTTP','Zabbix','7.4-2',NULL,'0','1','## Overview\r\n\r\nThe template to monitor Kubernetes API server that works without any external scripts.\r\nMost of the metrics are collected in one go, thanks to Zabbix bulk data collection.\r\n\r\nTemplate `Kubernetes API server by HTTP` - collects metrics by HTTP agent from API server /metrics endpoint.\r\n\r\n## Setup\r\n\r\nInternal service metrics are collected from /metrics endpoint.\r\nTemplate needs to use Authorization via API token.\r\n\r\nSet the following fields: `Kubernetes API server URL`, `API Authorization Token`.\r\n\r\n*NOTE.* Some metrics may not be collected depending on your Kubernetes API server instance version and configuration.'),
('10505',NULL,'Kubernetes Controller manager by HTTP','3','-1','2','','','Kubernetes Controller manager by HTTP','0',NULL,'Get Kubernetes Controller manager metrics by HTTP agent from Prometheus metrics endpoint.\r\n\r\nDon\'t forget change macros {$KUBE.API.SERVER.URL}.\r\nSome metrics may not be collected depending on your Kubernetes Controller manager instance version and configuration.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','2420a8a4fda74fbc81743aed69fafa3b','KUBERNETES CONTROLLER MANAGER BY HTTP','Zabbix','7.4-1',NULL,'0','1','## Overview\r\n\r\nThe template to monitor Kubernetes Controller manager by Zabbix that works without any external scripts.\r\nMost of the metrics are collected in one go, thanks to Zabbix bulk data collection.\r\n\r\nTemplate `Kubernetes Controller manager by HTTP` - collects metrics by HTTP agent from Controller manager /metrics endpoint.\r\n\r\n## Setup\r\n\r\nInternal service metrics are collected from /metrics endpoint.\r\nTemplate needs to use Authorization via API token.\r\n\r\nSet the following fields: `Metrics endpoint URL`, `API Authorization Token`.\r\n\r\n*NOTE.* You might need to set the `--binding-address` option for Controller Manager to the address where Zabbix proxy can reach it.\r\nFor example, for clusters created with `kubeadm` it can be set in the following manifest file (changes will be applied immediately):\r\n\r\n- /etc/kubernetes/manifests/kube-controller-manager.yaml\r\n\r\n*NOTE.* Some metrics may not be collected depending on your Kubernetes Controller manager instance version and configuration.'),
('10506',NULL,'Kubernetes Kubelet by HTTP','3','-1','2','','','Kubernetes Kubelet by HTTP','0',NULL,'Get Kubernetes kubelet metrics by HTTP agent from Prometheus metrics endpoint.\r\n\r\nDon\'t forget change macros {$KUBE.KUBELET.URL}, {$KUBE.API.TOKEN}.\r\nSome metrics may not be collected depending on your Kubernetes API server instance version and configuration.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','e785916967c14544b59c3644c3edda3a','KUBERNETES KUBELET BY HTTP','Zabbix','7.4-1',NULL,'0','1','## Overview\r\n\r\nThe template to monitor Kubernetes Kubelet by Zabbix that works without any external scripts.\r\nMost of the metrics are collected in one go, thanks to Zabbix bulk data collection.\r\n\r\nTemplate `Kubernetes Kubelet by HTTP` - collects metrics by HTTP agent from Kubelet /metrics endpoint.\r\n\r\n## Setup\r\n\r\nInternal service metrics are collected from /metrics endpoint.\r\nTemplate needs to use Authorization via API token.\r\n\r\nSet the following fields: `Kubelet URL`, `API Authorization Token`.\r\n\r\n*NOTE.* Some metrics may not be collected depending on your Kubernetes instance version and configuration.'),
('10507',NULL,'Kubernetes nodes by HTTP','3','-1','2','','','Kubernetes nodes by HTTP','0',NULL,'Get Kubernetes nodes metrics by HTTP.\r\nMetrics are collected by requests to Kubernetes API.\r\n\r\nDon\'t forget to read the README.md for the correct setup of the template.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','f397be2340734d24bc666102fbe184a5','KUBERNETES NODES BY HTTP','Zabbix','7.4-4',NULL,'0','1','## Overview\r\n\r\nThe template to monitor Kubernetes nodes that work without any external scripts.\r\nIt works without external scripts and uses the script item to make HTTP requests to the Kubernetes API.\r\n\r\nChange the values according to the environment in the file $HOME/zabbix_values.yaml.\r\n\r\nFor example:\r\n\r\n - ## Enables use of **Zabbix proxy**\r\n enabled: false\r\n\r\nSet the field: `Kubernetes API URL` such as `://:`.\r\n\r\nGet the generated service account token using the command\r\n\r\n`kubectl get secret zabbix-service-account -n monitoring -o jsonpath={.data.token} | base64 -d`\r\n\r\nThen set it to the field: `API Authorization Token`.\r\n\r\nSet up the fields to filter the metrics of discovered nodes\r\n\r\n\r\n## Setup\r\n\r\nInstall the [Zabbix Helm Chart](https://git.zabbix.com/projects/ZT/repos/kubernetes-helm/browse?at=refs%2Fheads%2Frelease/7.4) in your Kubernetes cluster.\r\n\r\nSet the following fields: `Kubernetes API URL` such as `://:`.\r\n\r\nGet the generated service account token using the command\r\n\r\n`kubectl get secret zabbix-service-account -n monitoring -o jsonpath={.data.token} | base64 -d`\r\n\r\nThen set it to the field: `API Authorization Token`.\r\n\r\nSet `Nodes Endpoint Name` with Zabbix agent\'s endpoint name. See `kubectl -n monitoring get ep`. Default: `zabbix-zabbix-helm-chrt-agent`.\r\n\r\nSet up the fields to filter the metrics of discovered nodes and host creation based on host prototypes:\r\n\r\n- `Node Matches Filter`\r\n- `Node Exclusion Filter`\r\n- `Node Role Matches Filter`\r\n- `Node Role Exclusion Filter`\r\n\r\nSet up fields to filter pod metrics by namespace:\r\n\r\n- `Pod Namespace Matches Filter`\r\n- `Pod Namespace Exclusion Filter`\r\n\r\n**Note**, If you have a large cluster, it is highly recommended to set a filter for discoverable pods.\r\n\r\nYou can use the `Node Labels Filter`, `Pod Labels Filter`, `Node Annotations Filter` and `Pod Annotations Filter` fields for advanced filtering of nodes and pods by labels and annotations.\r\n\r\nNotes about labels and annotations filters:\r\n\r\n- Values should be specified separated by commas and must have the key/value form with support for regular expressions in the value (`key1: value, key2: regexp`).\r\n- ECMAScript syntax is used for regular expressions.\r\n- Filters are applied if such a label key exists for the entity that is being filtered (it means that if you specify a key in a filter, entities which do not have this key will not be affected by the filter and will still be discovered, and only entities containing that key will be filtered by the value).\r\n- You can also use the exclamation point symbol (`!`) to invert the filter (`!key: value`).\r\n\r\nFor example: `kubernetes.io/hostname: kubernetes-node[5-25], !node-role.kubernetes.io/ingress: .*`. As a result, the nodes 5-25 without the "ingress" role will be discovered.\r\n\r\n\r\nSee the Kubernetes documentation for details about labels and annotations:\r\n\r\n- \r\n- \r\n\r\n**Note**, the discovered nodes will be created as separate hosts in Zabbix with the Linux template automatically assigned to them.'),
('10509',NULL,'Kubernetes Scheduler by HTTP','3','-1','2','','','Kubernetes Scheduler by HTTP','0',NULL,'Get Kubernetes Scheduler metrics by HTTP agent from Prometheus metrics endpoint.\r\n\r\nDon\'t forget change macros {$KUBE.API.SERVER.URL}.\r\nSome metrics may not be collected depending on your Kubernetes Scheduler instance version and configuration.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','ece96efdf0a045b99ede7978fa9366d6','KUBERNETES SCHEDULER BY HTTP','Zabbix','7.4-1',NULL,'0','1','## Overview\r\n\r\nThe template to monitor Kubernetes Scheduler by Zabbix that works without any external scripts.\r\nMost of the metrics are collected in one go, thanks to Zabbix bulk data collection.\r\n\r\nTemplate `Kubernetes Scheduler by HTTP` - collects metrics by HTTP agent from Scheduler /metrics endpoint.\r\n\r\n## Setup\r\n\r\nInternal service metrics are collected from /metrics endpoint.\r\nTemplate needs to use Authorization via API token.\r\n\r\nSet the following fields: `Scheduler metrics endpoint URL`, `API Authorization Token`.\r\n\r\n*NOTE.* You might need to set the `--binding-address` option for Scheduler to the address where Zabbix proxy can reach it.\r\nFor example, for clusters created with `kubeadm` it can be set in the following manifest file (changes will be applied immediately):\r\n\r\n- /etc/kubernetes/manifests/kube-scheduler.yaml\r\n\r\n*NOTE.* Some metrics may not be collected depending on your Kubernetes Scheduler instance version and configuration.'),
('10510',NULL,'Kubernetes cluster state by HTTP','3','-1','2','','','Kubernetes cluster state by HTTP','0',NULL,'Get Kubernetes state metrics by HTTP.\r\nMetrics are collected by requests to Kubernetes API.\r\n\r\nDon\'t forget to read the README.md for the correct setup of the template.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','07695028a2ba4b66a5414797bec791df','KUBERNETES CLUSTER STATE BY HTTP','Zabbix','7.4-3',NULL,'0','1','## Overview\r\n\r\nThe template to monitor Kubernetes state.\r\nIt works without external scripts and uses the script item to make HTTP requests to the Kubernetes API.\r\n\r\nTemplate `Kubernetes cluster state by HTTP` - collects metrics by HTTP agent from kube-state-metrics endpoint and Kubernetes API.\r\n\r\n*NOTE.* Some metrics may not be collected depending on your Kubernetes version and configuration.\r\n\r\n## Setup\r\n\r\nInstall the [Zabbix Helm Chart](https://git.zabbix.com/projects/ZT/repos/kubernetes-helm/browse?at=refs%2Fheads%2Frelease/7.4) in your Kubernetes cluster.\r\nInternal service metrics are collected from kube-state-metrics endpoint.\r\n\r\nTemplate needs to use authorization via API token.\r\n\r\nSet the `Kubernetes API URL` such as `://:`.\r\n\r\nGet the generated service account token using the command:\r\n\r\n`kubectl get secret zabbix-service-account -n monitoring -o jsonpath={.data.token} | base64 -d`\r\n\r\nThen set it to the field: `API Authorization Token`.\r\nSet `State Endpoint Name` with Kube state metrics endpoint name. See `kubectl -n monitoring get ep`. Default: `zabbix-kube-state-metrics`.\r\n\r\n*NOTE.* If you wish to monitor Controller Manager and Scheduler components, you might need to set the `--binding-address` option for them to the address where Zabbix proxy can reach them.\r\nFor example, for clusters created with `kubeadm` it can be set in the following manifest files (changes will be applied immediately):\r\n\r\n- /etc/kubernetes/manifests/kube-controller-manager.yaml\r\n- /etc/kubernetes/manifests/kube-scheduler.yaml\r\n\r\nDepending on your Kubernetes distribution, you might need to adjust `Control Plane Taint` field (for example, set it to `node-role.kubernetes.io/master` for OpenShift).\r\n\r\n*NOTE.* Some metrics may not be collected depending on your Kubernetes version and configuration.\r\n\r\nSet up the fields to filter the metrics of discovered Kubelets by node names:\r\n\r\n- `Kubelet Node Matches Filter`\r\n- `Kubelet Node Exclude Filter`\r\n\r\nSet up fields to filter metrics by namespace:\r\n\r\n- `Namespace Matches Filter`\r\n- `Namespace Exclude Filter`\r\n\r\nSet up fields to filter node metrics by nodename:\r\n\r\n- `Node Matches Filter`\r\n- `Node Exclude Filter`\r\n\r\n**Note**: If you have a large cluster, it is highly recommended to set a filter for discoverable namespaces.\r\n\r\nYou can use the `Kubelet Labels Filter` and `Kubelet Annotations Filter` fields for advanced filtering of kubelets by node labels and annotations.\r\n\r\nNotes about labels and annotations filters:\r\n\r\n- Values should be specified separated by commas and must have the key/value form with support for regular expressions in the value (`key1: value, key2: regexp`).\r\n- ECMAScript syntax is used for regular expressions.\r\n- Filters are applied if such label key exists for the entity that is being filtered (it means that if you specify a key in the filter, entities that do not have this key will not be affected by the filter and will still be discovered, and only entities containing that key will be filtered by the value).\r\n- You can also use the exclamation point symbol (`!`) to invert the filter (`!key: value`).\r\n\r\nFor example: `kubernetes.io/hostname: kubernetes-node[5-25], !node-role.kubernetes.io/ingress: .*`. As a result, the kubelets on nodes 5-25 without the "ingress" role will be discovered.\r\n\r\n\r\nSee the Kubernetes documentation for details about labels and annotations:\r\n\r\n- \r\n- \r\n\r\nYou can also set up evaluation periods for replica mismatch triggers (Deployments, ReplicaSets, StatefulSets) with the field `Replica Mismatch Evaluation Period`, which supports context and regular expressions.'),
('10515',NULL,'PFSense by SNMP','3','-1','2','','','PFSense by SNMP','0',NULL,'Template for monitoring pfSense by SNMP\r\nSetup:\r\n 1. Enable SNMP daemon at Services in pfSense web interface https://docs.netgate.com/pfsense/en/latest/services/snmp.html\r\n 2. Setup firewall rule to get access from Zabbix proxy or Zabbix server by SNMP https://docs.netgate.com/pfsense/en/latest/firewall/index.html#managing-firewall-rules\r\n 3. Link template to the host\r\n\r\n\r\nMIBs used:\r\nBEGEMOT-PF-MIB\r\nHOST-RESOURCES-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','16f281aeb8904d3db8b66dda94611fcc','PFSENSE BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10516',NULL,'OpenWeatherMap by HTTP','3','-1','2','','','OpenWeatherMap by HTTP','0',NULL,'Get weather metrics from OpenWeatherMap current weather API by HTTP.\r\nIt works without any external scripts and uses the Script item.\r\n\r\nSetup:\r\n 1. Create a host.\r\n\r\n 2. Link the template to the host.\r\n\r\n 3. Customize the values of {$OPENWEATHERMAP.API.TOKEN} and {$LOCATION} macros. \r\n OpenWeatherMap API Tokens are available in your OpenWeatherMap account https://home.openweathermap.org/api_keys. \r\n Locations can be set by few ways:\r\n - by geo coordinates (for example: 56.95,24.0833)\r\n - by location name (for example: Riga)\r\n - by location ID. Link to the list of city ID: http://bulk.openweathermap.org/sample/city.list.json.gz\r\n - by zip/post code with a country code (for example: 94040,us)\r\n A few locations can be added to the macro at the same time by "|" delimiter. \r\n For example: 43.81821,7.76115|Riga|2643743|94040,us.\r\n Please note that API requests by city name, zip-codes and city id will be deprecated soon.\r\n \r\n Language and units macros can be customized too if necessary.\r\n List of available languages: https://openweathermap.org/current#multi.\r\n Available units of measurement are: standard, metric and imperial https://openweathermap.org/current#data.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','8098b3c157ab456abd55d3840eef79c1','OPENWEATHERMAP BY HTTP','Zabbix','7.4-1',NULL,'0','0',''),
('10517',NULL,'Proxmox VE by HTTP','3','-1','2','','','Proxmox VE by HTTP','0',NULL,'This template is designed for the effortless deployment of Proxmox VE monitoring by Zabbix via HTTP and doesn\'t require any external scripts.\r\n\r\nProxmox VE uses a REST like API. The concept is described in Resource Oriented Architecture (ROA).\r\n\r\nCheck the API documentation for details:\r\nhttps://pve.proxmox.com/pve-docs/api-viewer/index.html\r\n\r\nSetup:\r\n\r\n1. Create an API token for the monitoring user. Important note: for security reasons, it is recommended to create a separate user (Datacenter - Permissions).\r\n\r\nPlease provide the necessary access levels for both the User and the Token:\r\n\r\n* Check: ["perm","/",["Sys.Audit"]]\r\n* Check: ["perm","/storage",["Datastore.Audit"]]\r\n* Check: ["perm","/vms",["VM.Audit"]]\r\n\r\n2. Copy the resulting Token ID and Secret into the host macros \'{$PVE.TOKEN.ID}\' and \'{$PVE.TOKEN.SECRET}\'.\r\n\r\n3. Set the hostname or IP address of the Proxmox VE API host in the \'{$PVE.URL.HOST}\' macro. You can also change the API port in the \'{$PVE.URL.PORT}\' macro if necessary.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','4958b76448d74ff1b6d7d6280449beee','PROXMOX VE BY HTTP','Zabbix','7.4-1',NULL,'0','0',''),
('10518',NULL,'TrueNAS CORE by SNMP','3','-1','2','','','TrueNAS CORE by SNMP','0',NULL,'Template for monitoring TrueNAS CORE by SNMP.\r\n\r\nSetup:\r\n1. Import the template into Zabbix.\r\n2. Enable SNMP daemon at Services in TrueNAS CORE web interface: https://www.truenas.com/docs/core/uireference/services/snmpscreen/\r\n3. Link the template to the host.\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\nUCD-DISKIO-MIB\r\nUCD-SNMP-MIB\r\nFREENAS-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','28e31ef9402d4c1ba2fbc730a288d2d8','TRUENAS CORE BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10519',NULL,'CockroachDB by HTTP','3','-1','2','','','CockroachDB by HTTP','0',NULL,'The template to monitor CockroachDB nodes by Zabbix that works without any external scripts.\r\nMost of the metrics are collected in one go, thanks to Zabbix bulk data collection.\r\n\r\nThe template collects metrics by HTTP agent from Prometheus endpoint and health endpoints.\r\n\r\nInternal node metrics are collected from Prometheus /_status/vars endpoint.\r\nNode health metrics are collected from /health and /health?ready=1 endpoints.\r\nThe template doesn\'t require usage of session token.\r\n\r\nNote, that some metrics may not be collected depending on your CockroachDB version and configuration.\r\n\r\nSetup:\r\n\r\nSet the hostname or IP address of the CockroachDB node host in the \'{$COCKROACHDB.API.HOST}\' macro. You can also change the port in the \'{$COCKROACHDB.API.PORT}\' macro and the scheme in the \'{$COCKROACHDB.API.SCHEME}\' macro if necessary.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','36116d8675da47b8a678193969d5a787','COCKROACHDB BY HTTP','Zabbix','7.4-0',NULL,'0','0',''),
('10520',NULL,'Envoy Proxy by HTTP','3','-1','2','','','Envoy Proxy by HTTP','0',NULL,'Get Envoy Proxy metrics by HTTP agent from metrics endpoint.\r\nhttps://www.envoyproxy.io/docs/envoy/v1.20.0/operations/stats_overview\r\n\r\nDon\'t forget to change macros {$ENVOY.URL}, {$ENVOY.METRICS.PATH}.\r\nSome metrics may not be collected depending on your Envoy Proxy instance version and configuration.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','0368ca599bbb49729587b9c43ac83084','ENVOY PROXY BY HTTP','Zabbix','7.4-0',NULL,'0','0',''),
('10521',NULL,'HashiCorp Consul Node by HTTP','3','-1','2','','','HashiCorp Consul Node by HTTP','0',NULL,'Get HashiCorp Consul Node metrics by HTTP agent from metrics endpoint.\r\n\r\nDon\'t forget to change macros {$CONSUL.NODE.API.URL}, {$CONSUL.TOKEN}.\r\nSome metrics may not be collected depending on your HashiCorp Consul instance version and configuration.\r\nMore information about metrics you can find in official documentation: https://www.consul.io/docs/agent/telemetry\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','884bdbeea93c4be0a11a2c92a5f8adce','HASHICORP CONSUL NODE BY HTTP','Zabbix','7.4-0',NULL,'0','0',''),
('10522',NULL,'HashiCorp Consul Cluster by HTTP','3','-1','2','','','HashiCorp Consul Cluster by HTTP','0',NULL,'Get HashiCorp Consul Cluster services and nodes by HTTP agent from API endpoints.\r\n\r\nDon\'t forget to change macros {$CONSUL.CLUSTER.URL}, {$CONSUL.TOKEN}.\r\nSome metrics may not be collected depending on your HashiCorp Consul instance version and configuration.\r\nMore information about metrics you can find in official documentation: https://www.consul.io/docs/agent/telemetry\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','3db29bb6b2b14fa289ba7915264efcdf','HASHICORP CONSUL CLUSTER BY HTTP','Zabbix','7.4-1',NULL,'0','0',''),
('10524',NULL,'HPE MSA 2040 Storage by HTTP','3','-1','2','','','HPE MSA 2040 Storage by HTTP','0',NULL,'The template to monitor HPE MSA 2040 by HTTP.\r\nIt works without any external scripts and uses the script item.\r\n\r\nSetup:\r\n1. Create a user with a monitor role on the storage, for example "zabbix".\r\n2. Link the template to a host.\r\n3. Set the hostname or IP address of the host in the {$HPE.MSA.API.HOST} macro and configure the username and password in the {$HPE.MSA.API.USERNAME} and {$HPE.MSA.API.PASSWORD} macros.\r\n4. Change the {$HPE.MSA.API.SCHEME} and {$HPE.MSA.API.PORT} macros if needed.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','be10b1140fce4cc08247260b71bcd037','HPE MSA 2040 STORAGE BY HTTP','Zabbix','7.4-0',NULL,'0','0',''),
('10525',NULL,'HPE MSA 2060 Storage by HTTP','3','-1','2','','','HPE MSA 2060 Storage by HTTP','0',NULL,'The template to monitor HPE MSA 2060 by HTTP.\r\nIt works without any external scripts and uses the script item.\r\n\r\nSetup:\r\n1. Create a user with a monitor role on the storage, for example "zabbix".\r\n2. Link the template to a host.\r\n3. Set the hostname or IP address of the host in the {$HPE.MSA.API.HOST} macro and configure the username and password in the {$HPE.MSA.API.USERNAME} and {$HPE.MSA.API.PASSWORD} macros.\r\n4. Change the {$HPE.MSA.API.SCHEME} and {$HPE.MSA.API.PORT} macros if needed.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','10537641cfa3416ab0f1451cdb61d804','HPE MSA 2060 STORAGE BY HTTP','Zabbix','7.4-0',NULL,'0','0',''),
('10526',NULL,'HPE Primera by HTTP','3','-1','2','','','HPE Primera by HTTP','0',NULL,'The template to monitor HPE Primera by HTTP.\r\nIt works without any external scripts and uses the script item.\r\n\r\nSetup:\r\n 1. Create a user on the storage with a browse role and enable it for all domains, for example "zabbix".\r\n 2. The WSAPI server does not start automatically.\r\n - Log in to the CLI as Super, Service, or any role granted the wsapi_set right.\r\n - Start the WSAPI server by command: `startwsapi`.\r\n - To check WSAPI state use command: `showwsapi`.\r\n 3. Link template to the host.\r\n 4. Set the hostname or IP address of the host in the {$HPE.PRIMERA.API.HOST} macro and configure the username and password in the {$HPE.PRIMERA.API.USERNAME} and {$HPE.PRIMERA.API.PASSWORD} macros.\r\n 5. Change the {$HPE.PRIMERA.API.SCHEME} and {$HPE.PRIMERA.API.PORT} macros if needed.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','b8750c02b5624c6889979b129735bd56','HPE PRIMERA BY HTTP','Zabbix','7.4-0',NULL,'0','0',''),
('10527',NULL,'AWS EC2 by HTTP','3','-1','2','','','AWS EC2 by HTTP','0',NULL,'Get AWS EC2 and attached AWS EBS volumes metrics and uses the script item to make HTTP requests to the CloudWatch API.\r\nDon\'t forget to read the README.md for the correct setup of the template.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','7af6d68b223a43d4bf8526cc5dc3fe2e','AWS EC2 BY HTTP','Zabbix','7.4-3',NULL,'0','1','## Overview\r\n\r\nThe template to monitor AWS EC2 and attached AWS EBS volumes by HTTP via Zabbix that works without any external scripts.\r\nMost of the metrics are collected in one go, thanks to Zabbix bulk data collection.\r\n*NOTE*\r\nThis template uses the GetMetricData CloudWatch API calls to list and retrieve metrics.\r\nFor more information, please refer to the [CloudWatch pricing](https://aws.amazon.com/cloudwatch/pricing/) page.\r\n\r\nAdditional information about metrics and used API methods:\r\n* [Full metrics list related to EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using_cloudwatch_ebs.html)\r\n* [Full metrics list related to EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)\r\n* [DescribeAlarms API method](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarms.html)\r\n* [DescribeVolumes API method](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVolumes.html)\r\n\r\n\r\n## Setup\r\n\r\nThe template get AWS EC2 and attached AWS EBS volumes metrics and uses the script item to make HTTP requests to the CloudWatch API.\r\n\r\nBefore using the template, you need to create an IAM policy with the necessary permissions for the Zabbix role in your AWS account.\r\n\r\n### Required Permissions\r\nAdd the following required permissions to your Zabbix IAM policy in order to collect Amazon EC2 metrics.\r\n\r\n```json\r\n{\r\n "Version":"2012-10-17",\r\n "Statement":[\r\n {\r\n "Action":[\r\n "ec2:DescribeVolumes",\r\n "cloudwatch:"DescribeAlarms",\r\n "cloudwatch:GetMetricData"\r\n ],\r\n "Effect":"Allow",\r\n "Resource":"*"\r\n }\r\n ]\r\n }\r\n```\r\n\r\n### Access Key Authorization\r\n\r\nIf you are using access key authorization, you need to generate an access key and secret key for an IAM user with the necessary permissions:\r\n\r\n1. Create an IAM user with programmatic access.\r\n2. Attach the required policy to the IAM user.\r\n3. Generate an access key and secret key.\r\n4. Use the generated credentials in the macros `Access key ID` and `Secret access key`.\r\n\r\n### Assume Role Authorization\r\nFor using assume role authorization, add the appropriate permissions to the role you are using:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Action": "sts:AssumeRole",\r\n "Resource": "arn:aws:iam::{Account}:user/{UserName}"\r\n },\r\n {\r\n "Effect": "Allow",\r\n "Action": [\r\n "ec2:DescribeVolumes",\r\n "cloudwatch:"DescribeAlarms",\r\n "cloudwatch:GetMetricData"\r\n ],\r\n "Resource": "*"\r\n }\r\n ]\r\n}\r\n```\r\n\r\n#### Trust Relationships for Assume Role Authorization\r\nNext, add a principal to the trust relationships of the role you are using:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Principal": {\r\n "AWS": "arn:aws:iam::{Account}:user/{UserName}"\r\n },\r\n "Action": "sts:AssumeRole"\r\n }\r\n ]\r\n}\r\n```\r\nSet the following fields: `Access key ID`, `Secret access key`, `STS Region`, `ARN assume role`.\r\n\r\n### Role-Based Authorization\r\nIf you are using role-based authorization, set the appropriate permissions:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Action": "iam:PassRole",\r\n "Resource": "arn:aws:iam::<<--account-id-->>:role/<<--role_name-->>"\r\n },\r\n {\r\n "Sid": "VisualEditor1",\r\n "Effect": "Allow",\r\n "Action": [\r\n "ec2:DescribeVolumes",\r\n "cloudwatch:"DescribeAlarms",\r\n "cloudwatch:GetMetricData"\r\n "ec2:AssociateIamInstanceProfile",\r\n "ec2:ReplaceIamInstanceProfileAssociation"\r\n ],\r\n "Resource": "*"\r\n }\r\n ]\r\n}\r\n```\r\n\r\n#### Trust Relationships for Role-Based Authorization\r\nNext, add a principal to the trust relationships of the role you are using:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Principal": {\r\n "Service": [\r\n "ec2.amazonaws.com"\r\n ]\r\n },\r\n "Action": [\r\n "sts:AssumeRole"\r\n ]\r\n }\r\n ]\r\n}\r\n```\r\n\r\n**Note**: Using role-based authorization is only possible when you use a Zabbix server or proxy inside AWS.\r\n\r\nFor more information, see the [EC2 policies](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-iam.html) on the AWS website.\r\n\r\nSet the following fields: `Authorization method`, `AWS Region`, `EC2 instance ID`.\r\n\r\nFor more information about manage access keys, see [official documentation](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys)\r\n\r\nAlso, see the Macros section for a list of macros used for LLD filters.'),
('10528',NULL,'OPNsense by SNMP','3','-1','2','','','OPNsense by SNMP','0',NULL,'Template for monitoring OPNsense by SNMP\r\nSetup:\r\n 1. Enable bsnmpd daemon by creating new config file "/etc/rc.conf.d/bsnmpd" with the following content:\r\n bsnmpd_enable="YES"\r\n 2. Uncomment the following lines in "/etc/snmpd.config" file to enable required SNMP modules:\r\n begemotSnmpdModulePath."hostres" = "/usr/lib/snmp_hostres.so"\r\n begemotSnmpdModulePath."pf" = "/usr/lib/snmp_pf.so"\r\n 3. Start bsnmpd daemon with the following command:\r\n /etc/rc.d/bsnmpd start\r\n 4. Setup a firewall rule to get access from Zabbix proxy or Zabbix server by SNMP (https://docs.opnsense.org/manual/firewall.html).\r\n 5. Link the template to a host.\r\n\r\n\r\nMIBs used:\r\nBEGEMOT-PF-MIB\r\nHOST-RESOURCES-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','0c94915edb4c41bf8c627dddb4f68f5a','OPNSENSE BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10529',NULL,'AWS RDS instance by HTTP','3','-1','2','','','AWS RDS instance by HTTP','0',NULL,'The template gets AWS RDS instance metrics and uses the script item to make HTTP requests to the CloudWatch API.\r\nDon\'t forget to read the README.md for the correct setup of the template.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','c6d9475847f44d9193f8253e5995b8f8','AWS RDS INSTANCE BY HTTP','Zabbix','7.4-3',NULL,'0','1','## Overview\r\n\r\nThe template to monitor AWS RDS instance by HTTP via Zabbix that works without any external scripts.\r\nMost of the metrics are collected in one go, thanks to Zabbix bulk data collection.\r\n*NOTE*\r\nThis template uses the GetMetricData CloudWatch API calls to list and retrieve metrics.\r\nFor more information, please refer to the [CloudWatch pricing](https://aws.amazon.com/cloudwatch/pricing/) page.\r\n\r\nAdditional information about metrics and used API methods:\r\n\r\n* [Full metrics list related to RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-metrics.html)\r\n* [Full metrics list related to Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMySQL.Monitoring.Metrics.html#Aurora.AuroraMySQL.Monitoring.Metrics.instances)\r\n* [DescribeAlarms API method](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarms.html)\r\n\r\n\r\n## Setup\r\n\r\nThe template get AWS RDS instance metrics and uses the script item to make HTTP requests to the CloudWatch API.\r\n\r\nBefore using the template, you need to create an IAM policy with the necessary permissions for the Zabbix role in your AWS account.\r\n\r\n### Required Permissions\r\nAdd the following required permissions to your Zabbix IAM policy in order to collect Amazon RDS metrics.\r\n\r\n```json\r\n{\r\n "Version":"2012-10-17",\r\n "Statement":[\r\n {\r\n "Action":[\r\n "cloudwatch:DescribeAlarms",\r\n "cloudwatch:GetMetricData",\r\n "rds:DescribeEvents",\r\n "rds:DescribeDBInstances"\r\n ],\r\n "Effect":"Allow",\r\n "Resource":"*"\r\n }\r\n ]\r\n }\r\n```\r\n\r\n### Access Key Authorization\r\n\r\nIf you are using access key authorization, you need to generate an access key and secret key for an IAM user with the necessary permissions:\r\n\r\n1. Create an IAM user with programmatic access.\r\n2. Attach the required policy to the IAM user.\r\n3. Generate an access key and secret key.\r\n4. Use the generated credentials in the macros `Access key ID` and `Secret access key`.\r\n\r\n### Assume Role Authorization\r\nFor using assume role authorization, add the appropriate permissions to the role you are using:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Action": "sts:AssumeRole",\r\n "Resource": "arn:aws:iam::{Account}:user/{UserName}"\r\n },\r\n {\r\n "Effect": "Allow",\r\n "Action": [\r\n "cloudwatch:DescribeAlarms",\r\n "cloudwatch:GetMetricData",\r\n "rds:DescribeEvents",\r\n "rds:DescribeDBInstances"\r\n ],\r\n "Resource": "*"\r\n }\r\n ]\r\n}\r\n```\r\n\r\n#### Trust Relationships for Assume Role Authorization\r\nNext, add a principal to the trust relationships of the role you are using:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Principal": {\r\n "AWS": "arn:aws:iam::{Account}:user/{UserName}"\r\n },\r\n "Action": "sts:AssumeRole"\r\n }\r\n ]\r\n}\r\n```\r\nSet the following fields: `Access key ID`, `Secret access key`, `STS Region`, `ARN assume role`.\r\n\r\n### Role-Based Authorization\r\nIf you are using role-based authorization, set the appropriate permissions:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Action": "iam:PassRole",\r\n "Resource": "arn:aws:iam::<<--account-id-->>:role/<<--role_name-->>"\r\n },\r\n {\r\n "Sid": "VisualEditor1",\r\n "Effect": "Allow",\r\n "Action": [\r\n "cloudwatch:DescribeAlarms",\r\n "cloudwatch:GetMetricData",\r\n "rds:DescribeEvents",\r\n "rds:DescribeDBInstances",\r\n "ec2:AssociateIamInstanceProfile",\r\n "ec2:ReplaceIamInstanceProfileAssociation"\r\n ],\r\n "Resource": "*"\r\n }\r\n ]\r\n}\r\n```\r\n\r\n#### Trust Relationships for Role-Based Authorization\r\nNext, add a principal to the trust relationships of the role you are using:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Principal": {\r\n "Service": [\r\n "ec2.amazonaws.com"\r\n ]\r\n },\r\n "Action": [\r\n "sts:AssumeRole"\r\n ]\r\n }\r\n ]\r\n}\r\n```\r\n\r\n**Note**: Using role-based authorization is only possible when you use a Zabbix server or proxy inside AWS.\r\n\r\nSet the following fields: `Authorization method`, `AWS Region`, `RDS DB Instance identifier`.\r\n\r\nFor more information about manage access keys, see [official documentation](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys)\r\n\r\nAlso, see the Macros section for a list of macros used for LLD filters.'),
('10530',NULL,'AWS S3 bucket by HTTP','3','-1','2','','','AWS S3 bucket by HTTP','0',NULL,'The template gets AWS S3 bucket metrics and uses the script item to make HTTP requests to the CloudWatch API.\r\nDon\'t forget to read the README.md for the correct setup of the template.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','a14ab6b4e80643fe8daa9d7288658f79','AWS S3 BUCKET BY HTTP','Zabbix','7.4-3',NULL,'0','1','## Overview\r\n\r\nThe template to monitor AWS S3 bucket by HTTP via Zabbix that works without any external scripts.\r\nMost of the metrics are collected in one go, thanks to Zabbix bulk data collection.\r\n*NOTE*\r\nThis template uses the GetMetricData CloudWatch API calls to list and retrieve metrics.\r\nFor more information, please refer to the [CloudWatch pricing](https://aws.amazon.com/cloudwatch/pricing/) page.\r\n\r\nAdditional information about metrics and used API methods:\r\n\r\n* [Full metrics list related to S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metrics-dimensions.html)\r\n* [DescribeAlarms API method](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarms.html)\r\n\r\n## Setup\r\n\r\nThe template gets AWS S3 metrics and uses the script item to make HTTP requests to the CloudWatch API.\r\n\r\nBefore using the template, you need to create an IAM policy for the Zabbix role in your AWS account with the necessary permissions.\r\n\r\n### Required Permissions\r\nAdd the following required permissions to your Zabbix IAM policy in order to collect Amazon S3 metrics.\r\n\r\n```json\r\n{\r\n "Version":"2012-10-17",\r\n "Statement":[\r\n {\r\n "Action":[\r\n "cloudwatch:DescribeAlarms",\r\n "cloudwatch:GetMetricData",\r\n "s3:GetMetricsConfiguration"\r\n ],\r\n "Effect":"Allow",\r\n "Resource":"*"\r\n }\r\n ]\r\n }\r\n```\r\n\r\n### Access Key Authorization\r\n\r\nIf you are using access key authorization, you need to generate an access key and secret key for an IAM user with the necessary permissions:\r\n\r\n1. Create an IAM user with programmatic access.\r\n2. Attach the required policy to the IAM user.\r\n3. Generate an access key and secret key.\r\n4. Use the generated credentials in the macros `Access key ID` and `Secret access key`.\r\n\r\n### Assume role authorization\r\nFor using assume role authorization, add the appropriate permissions to the role you are using:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Action": "sts:AssumeRole",\r\n "Resource": "arn:aws:iam::{Account}:user/{UserName}"\r\n },\r\n {\r\n "Effect": "Allow",\r\n "Action": [\r\n "cloudwatch:DescribeAlarms",\r\n "cloudwatch:GetMetricData",\r\n "s3:GetMetricsConfiguration"\r\n ],\r\n "Resource": "*"\r\n }\r\n ]\r\n}\r\n```\r\n\r\n#### Trust Relationships for Assume Role Authorization\r\nNext, add a principal to the trust relationships of the role you are using:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Principal": {\r\n "AWS": "arn:aws:iam::{Account}:user/{UserName}"\r\n },\r\n "Action": "sts:AssumeRole"\r\n }\r\n ]\r\n}\r\n```\r\nSet the following fields: `Access key ID`, `Secret access key`, `STS Region`, `ARN assume role`.\r\n\r\n### Role-Based Authorization\r\nIf you are using role-based authorization, set the appropriate permissions:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Action": "iam:PassRole",\r\n "Resource": "arn:aws:iam::<<--account-id-->>:role/<<--role_name-->>"\r\n },\r\n {\r\n "Sid": "VisualEditor1",\r\n "Effect": "Allow",\r\n "Action": [\r\n "cloudwatch:DescribeAlarms",\r\n "cloudwatch:GetMetricData",\r\n "s3:GetMetricsConfiguration",\r\n "ec2:AssociateIamInstanceProfile",\r\n "ec2:ReplaceIamInstanceProfileAssociation"\r\n ],\r\n "Resource": "*"\r\n }\r\n ]\r\n}\r\n```\r\n\r\n#### Trust Relationships for Role-Based Authorization\r\nNext, add a principal to the trust relationships of the role you are using:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Principal": {\r\n "Service": [\r\n "ec2.amazonaws.com"\r\n ]\r\n },\r\n "Action": [\r\n "sts:AssumeRole"\r\n ]\r\n }\r\n ]\r\n}\r\n```\r\n\r\n**Note**: Using role-based authorization is only possible when you use a Zabbix server or proxy inside AWS.\r\n\r\nTo gather Request metrics, [enable Requests metrics](https://docs.aws.amazon.com/AmazonS3/latest/userguide/cloudwatch-monitoring.html) on your Amazon S3 buckets from the AWS console.\r\n\r\nYou can also define a filter for the Request metrics using a shared prefix, object tag, or access point.\r\n\r\nSet the following fields: `Authorization method`, `S3 bucket name`.\r\n\r\nFor more information about manage access keys, see [official documentation](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys)\r\n\r\nAlso, see the Macros section for a list of macros used for LLD filters.'),
('10531',NULL,'Azure by HTTP','3','-1','2','','','Azure by HTTP','0',NULL,'This template is designed to monitor Microsoft Azure by HTTP.\r\nIt works without any external scripts and uses the script item.\r\nCurrently the template supports the discovery of virtual machines (VMs), Cosmos DB for MongoDB, storage accounts, Microsoft SQL, MySQL, and PostgreSQL servers.\r\n\r\nSetup:\r\n 1. Create an Azure service principal via the Azure command-line interface (Azure CLI) for your subscription.\r\n `az ad sp create-for-rbac --name zabbix --role reader --scope /subscriptions/`\r\n See https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli for more details.\r\n 2. Link the template to a host.\r\n 3. Configure the macros: `{$AZURE.APP.ID}`, `{$AZURE.PASSWORD}`, `{$AZURE.TENANT.ID}`, and `{$AZURE.SUBSCRIPTION.ID}`.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','fa58228fee8a4e34a7c6503950d1c615','AZURE BY HTTP','Zabbix','7.4-4',NULL,'0','1','## Overview\r\n\r\n- This template is designed to monitor Microsoft Azure by HTTP.\r\n- It works without any external scripts and uses the script item.\r\n- Currently, the template supports the discovery of virtual machines (VMs), VM scale sets, Cosmos DB for MongoDB, storage accounts, Microsoft SQL, MySQL, and PostgreSQL servers.\r\n\r\n## Setup\r\n\r\n1. Create an Azure service principal via the Azure command-line interface (Azure CLI) for your subscription.\r\n\r\n `az ad sp create-for-rbac --name zabbix --role reader --scope /subscriptions/`\r\n\r\n> See [Azure documentation](https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli) for more details.\r\n\r\n2. Link the template to a host.\r\n3. Configure the macros: `Azure App ID`, `Azure password`, `Azure tenant ID`, `Azure subscription ID`.'),
('10532',NULL,'Azure Virtual Machine by HTTP','3','-1','2','','','Azure Virtual Machine by HTTP','0',NULL,'This template is designed to monitor Microsoft Azure virtual machines (VMs) by HTTP.\r\nIt works without any external scripts and uses the script item.\r\n\r\nSetup:\r\n 1. Create an Azure service principal via the Azure command-line interface (Azure CLI) for your subscription.\r\n `az ad sp create-for-rbac --name zabbix --role reader --scope /subscriptions/`\r\n See https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli for more details.\r\n 2. Link the template to a host.\r\n 3. Configure the macros: {$AZURE.APP.ID}, {$AZURE.PASSWORD}, {$AZURE.TENANT.ID}, {$AZURE.SUBSCRIPTION.ID}, and {$AZURE.RESOURCE.ID}.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','820fa4a1565c43e4aac07a691a5bface','AZURE VIRTUAL MACHINE BY HTTP','Zabbix','7.4-1',NULL,'0','1','## Overview\r\n\r\nThis template is designed to monitor Microsoft Azure virtual machines (VMs) by HTTP.\r\nIt works without any external scripts and uses the script item.\r\n\r\n## Setup\r\n\r\n1. Create an Azure service principal via the Azure command-line interface (Azure CLI) for your subscription.\r\n\r\n `az ad sp create-for-rbac --name zabbix --role reader --scope /subscriptions/`\r\n\r\n> See [Azure documentation](https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli) for more details.\r\n\r\n2. Link the template to a host.\r\n3. Configure the macros: `Azure App ID`, `Azure password`, `Azure tenant ID`, `Azure subscription ID`, and `Azure virtual machine ID`.'),
('10534',NULL,'HPE Synergy by HTTP','3','-1','2','','','HPE Synergy by HTTP','0',NULL,'This template is designed to monitor HPE Synergy by HTTP.\r\nIt works without any external scripts and uses the script item.\r\n\r\nSetup:\r\n 1. Link template to the host.\r\n 2. Set the hostname or IP address of the host in the {$HPE.SYNERGY.API.HOST} macro and configure the username and password in the {$HPE.SYNERGY.API.USERNAME} and {$HPE.SYNERGY.API.PASSWORD} macros.\r\n 3. Change the {$HPE.SYNERGY.API.SCHEME} and {$HPE.SYNERGY.API.PORT} macros if needed.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','0ffde4421f524bcbac2f47fec87c0f95','HPE SYNERGY BY HTTP','Zabbix','7.4-0',NULL,'0','0',''),
('10535',NULL,'AWS by HTTP','3','-1','2','','','AWS by HTTP','0',NULL,'Get AWS EC2, RDS and S3 instances, AWS ECS clusters, AWS Elastic Load Balancing, Backup vaults. Don\'t forget to read the README.md for the correct setup of the template.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','c60e5929ab474f67bbe67dc6b04e709d','AWS BY HTTP','Zabbix','7.4-4',NULL,'0','1','## Overview\r\n\r\nThis template is designed for the effortless deployment of AWS monitoring by Zabbix via HTTP and doesn\'t require any external scripts.\r\n- Currently, the template supports the discovery of EC2 and RDS instances, ECS clusters, ELB, Lambda, S3 buckets and Backup vaults.\r\n\r\n## Setup\r\n\r\nBefore using the template, you need to create an IAM policy for the Zabbix role in your AWS account with the necessary permissions.\r\n\r\n### Required Permissions\r\nAdd the following required permissions to your Zabbix IAM policy in order to collect metrics.\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Action": [\r\n "cloudwatch:DescribeAlarms",\r\n "cloudwatch:GetMetricData",\r\n "ec2:DescribeInstances",\r\n "ec2:DescribeVolumes",\r\n "ec2:DescribeRegions",\r\n "rds:DescribeEvents",\r\n "rds:DescribeDBInstances",\r\n "ecs:DescribeClusters",\r\n "ecs:ListServices",\r\n "ecs:ListTasks",\r\n "ecs:ListClusters",\r\n "s3:ListAllMyBuckets",\r\n "s3:GetBucketLocation",\r\n "s3:GetMetricsConfiguration",\r\n "elasticloadbalancing:DescribeLoadBalancers",\r\n "elasticloadbalancing:DescribeTargetGroups",\r\n "ec2:DescribeSecurityGroups",\r\n "lambda:ListFunctions",\r\n "backup:ListBackupVaults",\r\n "backup:ListBackupJobs",\r\n "backup:ListCopyJobs",\r\n "backup:ListRestoreJobs"\r\n ],\r\n "Effect": "Allow",\r\n "Resource": "*"\r\n }\r\n ]\r\n}\r\n```\r\n\r\n### Access Key Authorization\r\n\r\nIf you are using access key authorization, you need to generate an access key and secret key for an IAM user with the necessary permissions:\r\n\r\n1. Create an IAM user with programmatic access.\r\n2. Attach the required policy to the IAM user.\r\n3. Generate an access key and secret key.\r\n4. Use the generated credentials in `Access key ID` and `Secret access key`.\r\n\r\n### Assume Role Authorization\r\nFor using assume role authorization, add the appropriate permissions to the role you are using:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Action": "sts:AssumeRole",\r\n "Resource": "arn:aws:iam::{Account}:user/{UserName}"\r\n },\r\n {\r\n "Effect": "Allow",\r\n "Action": [\r\n "cloudwatch:DescribeAlarms",\r\n "cloudwatch:GetMetricData",\r\n "ec2:DescribeInstances",\r\n "ec2:DescribeVolumes",\r\n "ec2:DescribeRegions",\r\n "rds:DescribeEvents",\r\n "rds:DescribeDBInstances",\r\n "ecs:DescribeClusters",\r\n "ecs:ListServices",\r\n "ecs:ListTasks",\r\n "ecs:ListClusters",\r\n "s3:ListAllMyBuckets",\r\n "s3:GetBucketLocation",\r\n "s3:GetMetricsConfiguration",\r\n "ec2:AssociateIamInstanceProfile",\r\n "ec2:ReplaceIamInstanceProfileAssociation",\r\n "elasticloadbalancing:DescribeLoadBalancers",\r\n "elasticloadbalancing:DescribeTargetGroups",\r\n "ec2:DescribeSecurityGroups",\r\n "lambda:ListFunctions",\r\n "backup:ListBackupVaults",\r\n "backup:ListBackupJobs",\r\n "backup:ListCopyJobs",\r\n "backup:ListRestoreJobs"\r\n ],\r\n "Resource": "*"\r\n }\r\n ]\r\n}\r\n```\r\n\r\n#### Trust Relationships for Assume Role Authorization\r\nNext, add a principal to the trust relationships of the role you are using:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Principal": {\r\n "AWS": "arn:aws:iam::{Account}:user/{UserName}"\r\n },\r\n "Action": "sts:AssumeRole"\r\n }\r\n ]\r\n}\r\n```\r\nSet the following fields: `Access key ID`, `Secret access key`, `STS Region`, `ARN assume role`.\r\n\r\n### Role-Based Authorization\r\nIf you are using role-based authorization, add the appropriate permissions:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Action": "iam:PassRole",\r\n "Resource": "arn:aws:iam::<<--account-id-->>:role/<<--role_name-->>"\r\n },\r\n {\r\n "Effect": "Allow",\r\n "Action": [\r\n "cloudwatch:DescribeAlarms",\r\n "cloudwatch:GetMetricData",\r\n "ec2:DescribeInstances",\r\n "ec2:DescribeVolumes",\r\n "ec2:DescribeRegions",\r\n "rds:DescribeEvents",\r\n "rds:DescribeDBInstances",\r\n "ecs:DescribeClusters",\r\n "ecs:ListServices",\r\n "ecs:ListTasks",\r\n "ecs:ListClusters",\r\n "s3:ListAllMyBuckets",\r\n "s3:GetBucketLocation",\r\n "s3:GetMetricsConfiguration",\r\n "ec2:AssociateIamInstanceProfile",\r\n "ec2:ReplaceIamInstanceProfileAssociation",\r\n "elasticloadbalancing:DescribeLoadBalancers",\r\n "elasticloadbalancing:DescribeTargetGroups",\r\n "ec2:DescribeSecurityGroups",\r\n "lambda:ListFunctions",\r\n "backup:ListBackupVaults",\r\n "backup:ListBackupJobs",\r\n "backup:ListCopyJobs",\r\n "backup:ListRestoreJobs"\r\n ],\r\n "Resource": "*"\r\n }\r\n ]\r\n}\r\n```\r\n\r\n#### Trust Relationships for Role-Based Authorization\r\nNext, add a principal to the trust relationships of the role you are using:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Principal": {\r\n "Service": [\r\n "ec2.amazonaws.com"\r\n ]\r\n },\r\n "Action": [\r\n "sts:AssumeRole"\r\n ]\r\n }\r\n ]\r\n}\r\n```\r\n\r\n**Note**: Using role-based authorization is only possible when you use a Zabbix server or proxy inside AWS.\r\n\r\nTo gather Request metrics, enable [Requests metrics](https://docs.aws.amazon.com/AmazonS3/latest/userguide/cloudwatch-monitoring.html) on your Amazon S3 buckets from the AWS console.\r\n\r\nChoose a method of authorization (field of `Authorization method`).\r\n\r\nFor more information about managing access keys, see [official documentation](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys).\r\n\r\nRefer to the Macros section for a list of macros used for LLD filters.\r\n\r\nAdditional information about the metrics and used API methods:\r\n* [Full metrics list related to EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using_cloudwatch_ebs.html)\r\n* [Full metrics list related to EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)\r\n* [Full metrics list related to RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-metrics.html)\r\n* [Full metrics list related to Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMySQL.Monitoring.Metrics.html#Aurora.AuroraMySQL.Monitoring.Metrics.instances)\r\n* [Full metrics list related to S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metrics-dimensions.html)\r\n* [Full metrics list related to ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cloudwatch-metrics.html)\r\n* [Full metrics list related to ELB ALB](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-cloudwatch-metrics.html)\r\n* [Full metrics list related to Backup vault](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_BackupVaultListMember.html)\r\n* [Full metrics list related to Backup jobs](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_BackupJob.html)\r\n* [DescribeAlarms API method](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarms.html)\r\n* [DescribeVolumes API method](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVolumes.html)\r\n* [DescribeLoadBalancers API method](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html)'),
('10539',NULL,'Azure MySQL Flexible Server by HTTP','3','-1','2','','','Azure MySQL Flexible Server by HTTP','0',NULL,'This template is designed to monitor Microsoft Azure MySQL flexible servers by HTTP.\r\nIt works without any external scripts and uses the script item.\r\n\r\nSetup:\r\n 1. Create an Azure service principal via the Azure command-line interface (Azure CLI) for your subscription.\r\n `az ad sp create-for-rbac --name zabbix --role reader --scope /subscriptions/`\r\n See https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli for more details.\r\n 2. Link the template to a host.\r\n 3. Configure the macros: {$AZURE.APP.ID}, {$AZURE.PASSWORD}, {$AZURE.TENANT.ID}, {$AZURE.SUBSCRIPTION.ID}, and {$AZURE.RESOURCE.ID}.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','ec92c7b0b1d14946b6ac61de89357199','AZURE MYSQL FLEXIBLE SERVER BY HTTP','Zabbix','7.4-1',NULL,'0','1','## Overview\r\n\r\nThis template is designed to monitor Microsoft Azure MySQL flexible servers by HTTP.\r\nIt works without any external scripts and uses the script item.\r\n\r\n## Setup\r\n\r\n1. Create an Azure service principal via the Azure command-line interface (Azure CLI) for your subscription.\r\n\r\n `az ad sp create-for-rbac --name zabbix --role reader --scope /subscriptions/`\r\n\r\n> See [Azure documentation](https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli) for more details.\r\n\r\n2. Link the template to a host.\r\n3. Configure the macros: `Azure App ID`, `Azure password`, `Azure tenant ID`, `Azure subscription ID`, and `Azure MySQL server ID.`.'),
('10540',NULL,'Azure MySQL Single Server by HTTP','3','-1','2','','','Azure MySQL Single Server by HTTP','0',NULL,'This template is designed to monitor Microsoft Azure MySQL single servers by HTTP.\r\nIt works without any external scripts and uses the script item.\r\n\r\nSetup:\r\n 1. Create an Azure service principal via the Azure command-line interface (Azure CLI) for your subscription.\r\n `az ad sp create-for-rbac --name zabbix --role reader --scope /subscriptions/`\r\n See https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli for more details.\r\n 2. Link the template to a host.\r\n 3. Configure the macros: {$AZURE.APP.ID}, {$AZURE.PASSWORD}, {$AZURE.TENANT.ID}, {$AZURE.SUBSCRIPTION.ID}, and {$AZURE.RESOURCE.ID}.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','c1396bf1e8cf46f6a407e88ddceef0b8','AZURE MYSQL SINGLE SERVER BY HTTP','Zabbix','7.4-1',NULL,'0','1','## Overview\r\n\r\nThis template is designed to monitor Microsoft Azure MySQL single servers by HTTP.\r\nIt works without any external scripts and uses the script item.\r\n\r\n## Setup\r\n\r\n1. Create an Azure service principal via the Azure command-line interface (Azure CLI) for your subscription.\r\n\r\n `az ad sp create-for-rbac --name zabbix --role reader --scope /subscriptions/`\r\n\r\n> See [Azure documentation](https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli) for more details.\r\n\r\n2. Link the template to a host.\r\n3. Configure the macros: `Azure App ID`, `Azure password`, `Azure tenant ID`, `Azure subscription ID`, and `Azure MySQL server ID`.'),
('10543',NULL,'Azure PostgreSQL Flexible Server by HTTP','3','-1','2','','','Azure PostgreSQL Flexible Server by HTTP','0',NULL,'This template is designed to monitor Microsoft Azure PostgreSQL flexible servers by HTTP.\r\nIt works without any external scripts and uses the script item.\r\n\r\nSetup:\r\n 1. Create an Azure service principal via the Azure command-line interface (Azure CLI) for your subscription.\r\n `az ad sp create-for-rbac --name zabbix --role reader --scope /subscriptions/`\r\n See https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli for more details.\r\n 2. Link the template to a host.\r\n 3. Configure the macros: {$AZURE.APP.ID}, {$AZURE.PASSWORD}, {$AZURE.TENANT.ID}, {$AZURE.SUBSCRIPTION.ID}, and {$AZURE.RESOURCE.ID}.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','35ef29f24158444097272d2ea7fa6044','AZURE POSTGRESQL FLEXIBLE SERVER BY HTTP','Zabbix','7.4-1',NULL,'0','1','## Overview\r\n\r\nThis template is designed to monitor Microsoft Azure PostgreSQL flexible servers by HTTP.\r\nIt works without any external scripts and uses the script item.\r\n\r\n## Setup\r\n\r\n1. Create an Azure service principal via the Azure command-line interface (Azure CLI) for your subscription.\r\n\r\n `az ad sp create-for-rbac --name zabbix --role reader --scope /subscriptions/`\r\n\r\n> See [Azure documentation](https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli) for more details.\r\n\r\n2. Link the template to a host.\r\n3. Configure the macros: `Azure App ID`, `Azure password`, `Azure tenant ID`, `Azure subscription ID`, and `Azure PostgreSQL server ID`.'),
('10544',NULL,'Azure PostgreSQL Single Server by HTTP','3','-1','2','','','Azure PostgreSQL Single Server by HTTP','0',NULL,'This template is designed to monitor Microsoft Azure PostgreSQL servers by HTTP.\r\nIt works without any external scripts and uses the script item.\r\n\r\nSetup:\r\n 1. Create an Azure service principal via the Azure command-line interface (Azure CLI) for your subscription.\r\n `az ad sp create-for-rbac --name zabbix --role reader --scope /subscriptions/`\r\n See https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli for more details.\r\n 2. Link the template to a host.\r\n 3. Configure the macros: {$AZURE.APP.ID}, {$AZURE.PASSWORD}, {$AZURE.TENANT.ID}, {$AZURE.SUBSCRIPTION.ID}, and {$AZURE.RESOURCE.ID}.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','d023e2cd326c486f908e3e361d1fe157','AZURE POSTGRESQL SINGLE SERVER BY HTTP','Zabbix','7.4-1',NULL,'0','1','## Overview\r\n\r\nThis template is designed to monitor Microsoft Azure PostgreSQL servers by HTTP.\r\nIt works without any external scripts and uses the script item.\r\n\r\n## Setup\r\n\r\n1. Create an Azure service principal via the Azure command-line interface (Azure CLI) for your subscription.\r\n\r\n `az ad sp create-for-rbac --name zabbix --role reader --scope /subscriptions/`\r\n\r\n> See [Azure documentation](https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli) for more details.\r\n\r\n2. Link the template to a host.\r\n3. Configure the macros: `Azure App ID`, `Azure password`, `Azure tenant ID`, `Azure subscription ID`, and `Azure PostgreSQL server ID`.'),
('10546',NULL,'Cisco Meraki dashboard by HTTP','3','-1','2','','','Cisco Meraki dashboard by HTTP','0',NULL,'Template for monitoring Cisco Meraki dashboard https://meraki.cisco.com/products/meraki-dashboard/\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','2fca6b60914b4fa98132b1a7885ab014','CISCO MERAKI DASHBOARD BY HTTP','Zabbix','7.4-2',NULL,'0','0',''),
('10547',NULL,'Cisco Meraki device by HTTP','3','-1','2','','','Cisco Meraki device by HTTP','0',NULL,'Generated by official Zabbix template tool "Templator"','1','1','','','','','0','0','2cae7d2eeca04e6fa7419759ac9ad814','CISCO MERAKI DEVICE BY HTTP','Zabbix','7.4-1',NULL,'0','0',''),
('10548',NULL,'Cisco Meraki organization by HTTP','3','-1','2','','','Cisco Meraki organization by HTTP','0',NULL,'Generated by official Zabbix template tool "Templator"','1','1','','','','','0','0','39e2f742d0b24ea489b7f61d27a5df1c','CISCO MERAKI ORGANIZATION BY HTTP','Zabbix','7.4-0',NULL,'0','0',''),
('10551',NULL,'Cisco Nexus 9000 Series by SNMP','3','-1','2','','','Cisco Nexus 9000 Series by SNMP','0',NULL,'Template Cisco Nexus 9000 Series\r\n \r\n MIBs used:\r\n CISCO-ENHANCED-MEMPOOL-MIB\r\n CISCO-ENTITY-FRU-CONTROL-MIB\r\n CISCO-ENTITY-SENSOR-MIB\r\n CISCO-PROCESS-MIB\r\n ENTITY-MIB\r\n EtherLike-MIB\r\n IF-MIB\r\n SNMPv2-MIB\r\n SNMP-FRAMEWORK-MIB\r\n CISCO-IMAGE-MIB\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/418396-discussion-thread-for-official-zabbix-templates-for-cisco\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','80fc469750f84061924662a98c33580c','CISCO NEXUS 9000 SERIES BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10552',NULL,'Control-M enterprise manager by HTTP','3','-1','2','','','Control-M enterprise manager by HTTP','0',NULL,'This template is designed to get metrics from the Control-M Enterprise Manager using the Control-M Automation API with HTTP agent.\r\n\r\nThis template monitors active Service Level Agreement (SLA) services, discovers Control-M servers using Low Level Discovery and also creates host prototypes for them in conjunction with the `Control-M server by HTTP` template.\r\n\r\nTo use this template, macros `{$API.TOKEN}` and `{$API.URI.ENDPOINT}` need to be set.\r\n\r\n> See [Zabbix template operation](https://www.zabbix.com/documentation/7.4/manual/config/templates_out_of_the_box/http) for basic instructions.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','24b64f6d22b446dabecc86ee3f199004','CONTROL-M ENTERPRISE MANAGER BY HTTP','Zabbix','7.4-0',NULL,'0','0',''),
('10553',NULL,'Control-M server by HTTP','3','-1','2','','','Control-M server by HTTP','0',NULL,'This template is designed to get metrics from the Control-M server using the Control-M Automation API with HTTP agent.\r\n\r\nThis template monitors server statistics, discovers jobs and agents using Low Level Discovery.\r\n\r\nTo use this template, macros `{$API.TOKEN}`, `{$API.URI.ENDPOINT}`, and `{$SERVER.NAME}` need to be set.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','c077d6c381904e94a4df88136588b551','CONTROL-M SERVER BY HTTP','Zabbix','7.4-0',NULL,'0','0',''),
('10555',NULL,'Veeam Backup and Replication by HTTP','3','-1','2','','','Veeam Backup and Replication by HTTP','0',NULL,'This template is designed to monitor Veeam Backup and Replication.\r\n\r\nNOTE: The RESTful API may not be available for some editions, see (https://www.veeam.com/licensing-pricing.html) for more details.\r\n\r\nSetup:\r\n 1. Create a user to monitor the service or use an existing read-only account.\r\n See (https://helpcenter.veeam.com/docs/backup/vbr_rest/reference/vbr-rest-v1-rev2.html?ver=110#tag/Login/operation/CreateToken!path=grant_type&t=request) for more details. \r\n 2. Link the template to a host.\r\n 3. Configure the following macros: {$VEEAM.API.URL}, {$VEEAM.USER}, and {$VEEAM.PASSWORD}.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','738085dde4e749d49199e5e6fd4d56ab','VEEAM BACKUP AND REPLICATION BY HTTP','Zabbix','7.4-0',NULL,'0','0',''),
('10556',NULL,'Veeam Backup Enterprise Manager by HTTP','3','-1','2','','','Veeam Backup Enterprise Manager by HTTP','0',NULL,'This template is designed to monitor Veeam Backup Enterprise Manager.\r\n\r\nNOTE: The REST API may not be available for some editions, see (https://www.veeam.com/licensing-pricing.html) for more details.\r\n\r\nSetup:\r\n 1. Create a user to monitor the service, or use an existing read-only account.\r\n Similarly to the user authentication in the Veeam Backup Enterprise Manager Web UI, \r\n the client authentication in the REST API dictates which operations a client is allowed to perform when working with the REST API.\r\n That is, if the client is authenticated using an account that does not have enough permissions to perform some actions, it will not be able to execute them.\r\n You can also obtain the collected jobs if you are logged in under an account having only `Portal Administrator` role.\r\n See (https://helpcenter.veeam.com/docs/backup/em_rest/http_authentication.html?ver=110) for more details.\r\n 2. Link the template to a host.\r\n 3. Configure the following macros: {$VEEAM.MANAGER.API.URL}, {$VEEAM.MANAGER.USER}, {$VEEAM.MANAGER.PASSWORD}.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','2ce384bafd524db5b910d7f55bca1fbb','VEEAM BACKUP ENTERPRISE MANAGER BY HTTP','Zabbix','7.4-0',NULL,'0','0',''),
('10557',NULL,'Azure Microsoft SQL Database by HTTP','3','-1','2','','','Azure Microsoft SQL Database by HTTP','0',NULL,'This template is designed to monitor Microsoft SQL databases by HTTP.\r\nIt works without any external scripts and uses the script item.\r\n\r\nSetup:\r\n 1. Create an Azure service principal via the Azure command-line interface (Azure CLI) for your subscription.\r\n `az ad sp create-for-rbac --name zabbix --role reader --scope /subscriptions/`\r\n See https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli for more details.\r\n 2. Link the template to a host.\r\n 3. Configure the macros: {$AZURE.APP.ID}, {$AZURE.PASSWORD}, {$AZURE.TENANT.ID}, {$AZURE.SUBSCRIPTION.ID}, and {$AZURE.RESOURCE.ID}.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','2d8b9329b5d04cdf85bf17d2d0db2b29','AZURE MICROSOFT SQL DATABASE BY HTTP','Zabbix','7.4-1',NULL,'0','1','## Overview\r\n\r\nThis template is designed to monitor Microsoft SQL databases by HTTP.\r\nIt works without any external scripts and uses the script item.\r\n\r\n## Setup\r\n\r\n1. Create an Azure service principal via the Azure command-line interface (Azure CLI) for your subscription.\r\n\r\n `az ad sp create-for-rbac --name zabbix --role reader --scope /subscriptions/`\r\n\r\n> See [Azure documentation](https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli) for more details.\r\n\r\n2. Link the template to a host.\r\n3. Configure the macros: `Azure App ID`, `Azure password`, `Azure tenant ID`, `Azure subscription ID`, and `Azure MSSQL database ID`.'),
('10558',NULL,'Azure Microsoft SQL Serverless Database by HTTP','3','-1','2','','','Azure Microsoft SQL Serverless Database by HTTP','0',NULL,'This template is designed to monitor Microsoft SQL serverless databases by HTTP.\r\nIt works without any external scripts and uses the script item.\r\n\r\nSetup:\r\n 1. Create an Azure service principal via the Azure command-line interface (Azure CLI) for your subscription.\r\n `az ad sp create-for-rbac --name zabbix --role reader --scope /subscriptions/`\r\n See https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli for more details.\r\n 2. Link the template to a host.\r\n 3. Configure the macros: {$AZURE.APP.ID}, {$AZURE.PASSWORD}, {$AZURE.TENANT.ID}, {$AZURE.SUBSCRIPTION.ID}, and {$AZURE.RESOURCE.ID}.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','5175afdf713744d9a81ce53864ccfc1d','AZURE MICROSOFT SQL SERVERLESS DATABASE BY HTTP','Zabbix','7.4-1',NULL,'0','1','## Overview\r\n\r\nThis template is designed to monitor Microsoft SQL serverless databases by HTTP.\r\nIt works without any external scripts and uses the script item.\r\n\r\n## Setup\r\n\r\n1. Create an Azure service principal via the Azure command-line interface (Azure CLI) for your subscription.\r\n\r\n `az ad sp create-for-rbac --name zabbix --role reader --scope /subscriptions/`\r\n\r\n> See [Azure documentation](https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli) for more details.\r\n\r\n2. Link the template to a host.\r\n3. Configure the macros: `Azure App ID`, `Azure password`, `Azure tenant ID`, `Azure subscription ID`, and `Azure MSSQL database ID`.'),
('10560',NULL,'OS processes by Zabbix agent','3','-1','2','','','OS processes by Zabbix agent','0',NULL,'Get processes metrics using item proc.get by Zabbix agent.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','0f6889282f6048e2b1370e569e578985','OS PROCESSES BY ZABBIX AGENT','Zabbix','7.4-0',NULL,'0','0',''),
('10561',NULL,'Zabbix agent','3','-1','2','','','Zabbix agent','0',NULL,'Use this template for agents reachable from Zabbix server/proxy (passive mode).\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','8aa4557f6c3f4aadbc03447fca3af9f6','ZABBIX AGENT','Zabbix','7.4-1',NULL,'0','0',''),
('10562',NULL,'Zabbix agent active','3','-1','2','','','Zabbix agent active','0',NULL,'Use this template instead of \'Zabbix agent\' for agents running in active mode only.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','650bec3f2f364a478b82317396949459','ZABBIX AGENT ACTIVE','Zabbix','7.4-1',NULL,'0','0',''),
('10563',NULL,'Generic by SNMP','3','-1','2','','','Generic by SNMP','0',NULL,'Template Module Generic\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nSNMPv2-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','4cb1aabe2b704b5c882963c2ef87d8f6','GENERIC BY SNMP','Zabbix','7.4-2',NULL,'0','0',''),
('10564',NULL,'ICMP Ping','3','-1','2','','','ICMP Ping','0',NULL,'Template Net ICMP Ping\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','37e5eb5606bc4abba66c8b20381a1e8a','ICMP PING','Zabbix','7.4-2',NULL,'0','1','## Setup\r\n\r\nSet `Threshold of ICMP packet loss` and `Threshold of the average ICMP response`'),
('10565',NULL,'SMART by Zabbix agent 2','3','-1','2','','','SMART by Zabbix agent 2','0',NULL,'The template for monitoring S.M.A.R.T. attributes of physical disk that works without any external scripts. It collects metrics by Zabbix agent 2 version 5.0 and later with Smartmontools version 7.1 and later. Disk discovery LLD rule finds all HDD, SSD, NVMe disks with S.M.A.R.T. enabled. Attribute discovery LLD rule have pre-defined Vendor Specific Attributes for each disk, and will be discovered if attribute is present.\r\n\r\nSetup:\r\n\r\n1. Install Zabbix agent 2 and Smartmontools 7.1 or newer.\r\n\r\n2. Ensure the path to the "smartctl" executable is correctly specified. You can either provide the full path to the executable (e.g., "/usr/sbin/smartctl" on Linux or "C:\\Program Files\\smartctl\\smartctl.exe" on Windows) in the configuration file or ensure that the folder containing the "smartctl" executable is added to the system\'s environment variables ("PATH"). This applies to both Linux and Windows systems.\r\n\r\nExample for Linux: \r\nPlugins.Smart.Path=/usr/sbin/smartctl\r\n\r\nExample for Windows:\r\nPlugins.Smart.Path="C:\\Program Files\\smartctl\\smartctl.exe"\r\n\r\n3. Grant Zabbix agent 2 super/admin user privileges for the "smartctl" utility (not required for Windows). Example for Linux (add the line that grants execution of the "smartctl" utility without the password):\r\n\r\n- Run the "visudo" command to edit the "sudoers" file:\r\nsudo visudo\r\n\r\n- Add the permission line and save the changes:\r\nzabbix ALL=(ALL) NOPASSWD:/usr/sbin/smartctl\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/415662-discussion-thread-for-official-zabbix-smart-disk-monitoring\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','7b6c6228b25f4586b42cd1bf37ff8034','SMART BY ZABBIX AGENT 2','Zabbix','7.4-2',NULL,'0','0',''),
('10566',NULL,'SMART by Zabbix agent 2 active','3','-1','2','','','SMART by Zabbix agent 2 active','0',NULL,'The template for monitoring S.M.A.R.T. attributes of physical disk that works without any external scripts. It collects metrics by Zabbix agent 2 version 5.0 and later with Smartmontools version 7.1 and later. Disk discovery LLD rule finds all HDD, SSD, NVMe disks with S.M.A.R.T. enabled. Attribute discovery LLD rule have pre-defined Vendor Specific Attributes for each disk, and will be discovered if attribute is present.\r\n\r\nSetup:\r\n\r\n1. Install Zabbix agent 2 and Smartmontools 7.1 or newer.\r\n\r\n2. Ensure the path to the "smartctl" executable is correctly specified. You can either provide the full path to the executable (e.g., "/usr/sbin/smartctl" on Linux or "C:\\Program Files\\smartctl\\smartctl.exe" on Windows) in the configuration file or ensure that the folder containing the "smartctl" executable is added to the system\'s environment variables ("PATH"). This applies to both Linux and Windows systems.\r\n\r\nExample for Linux: \r\nPlugins.Smart.Path=/usr/sbin/smartctl\r\n\r\nExample for Windows:\r\nPlugins.Smart.Path="C:\\Program Files\\smartctl\\smartctl.exe"\r\n\r\n3. Grant Zabbix agent 2 super/admin user privileges for the "smartctl" utility (not required for Windows). Example for Linux (add the line that grants execution of the "smartctl" utility without the password):\r\n\r\n- Run the "visudo" command to edit the "sudoers" file:\r\nsudo visudo\r\n\r\n- Add the permission line and save the changes:\r\nzabbix ALL=(ALL) NOPASSWD:/usr/sbin/smartctl\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/415662-discussion-thread-for-official-zabbix-smart-disk-monitoring\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','e518b1340ce44d7389d2cc7c304a97b4','SMART BY ZABBIX AGENT 2 ACTIVE','Zabbix','7.4-2',NULL,'0','0',''),
('10568',NULL,'Azure Cosmos DB for MongoDB by HTTP','3','-1','2','','','Azure Cosmos DB for MongoDB by HTTP','0',NULL,'This template is designed to monitor Microsoft Azure Cosmos DB for MongoDB by HTTP.\r\nIt works without any external scripts and uses the script item.\r\n\r\nSetup:\r\n 1. Create an Azure service principal via the Azure command-line interface (Azure CLI) for your subscription.\r\n `az ad sp create-for-rbac --name zabbix --role reader --scope /subscriptions/`\r\n See https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli for more details.\r\n 2. Link the template to a host.\r\n 3. Configure the macros: {$AZURE.APP.ID}, {$AZURE.PASSWORD}, {$AZURE.TENANT.ID}, {$AZURE.SUBSCRIPTION.ID}, and {$AZURE.RESOURCE.ID}.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','29325098807848aa928b4192ad5e020f','AZURE COSMOS DB FOR MONGODB BY HTTP','Zabbix','7.4-1',NULL,'0','1','## Setup\r\n\r\n1. Create an Azure service principal via the Azure command-line interface (Azure CLI) for your subscription.\r\n\r\n `az ad sp create-for-rbac --name zabbix --role reader --scope /subscriptions/`\r\n\r\n> See [Azure documentation](https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli) for more details.\r\n\r\n2. Link the template to a host.\r\n3. Configure the macros: `Azure App ID`, `Azure password`, `Azure tenant ID`, `Azure subscription ID`, and `Azure Cosmos DB ID`.'),
('10570',NULL,'GCP by HTTP','3','-1','2','','','GCP by HTTP','0',NULL,'Discover GCP Compute Engine/Cloud SQL Instances and Compute Engine project quota metrics.\r\nDon\'t forget to read the README.md for the correct setup of the template.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','4e1e9372a5fe4297936210bc4fc4b1c0','GCP BY HTTP','Zabbix','7.4-2',NULL,'0','1','## Overview\r\n\r\nThis template is designed to monitor Google Cloud Platform (hereinafter - GCP) by Zabbix.\r\nIt works without any external scripts and uses the script item.\r\nThe template currently supports the discovery of [Compute Engine](https://cloud.google.com/compute)/[Cloud SQL](https://cloud.google.com/sql) instances and Compute Engine project quota metrics.\r\n\r\n\r\n## Setup\r\n\r\n1. Enable the `Stackdriver Monitoring API` for the GCP project you wish to monitor.\r\n>Refer to the [vendor documentation](https://cloud.google.com/monitoring/api/enable-api).\r\n2. Create a service account in Google Cloud console for the project you have to monitor.\r\n>Refer to the [vendor documentation](https://cloud.google.com/iam/docs/creating-managing-service-accounts).\r\n3. Create and download the service account key in JSON format.\r\n>Refer to the [vendor documentation](https://cloud.google.com/iam/docs/creating-managing-service-account-keys).\r\n4. If you want to monitor Cloud SQL services - don\'t forget to activate the Cloud SQL Admin API.\r\n>Refer to the [vendor documentation](https://cloud.google.com/sql/docs/mysql/admin-api) for the details.\r\n5. Copy the `project_id`, `private_key_id`, `private_key`, `client_email` from the JSON key file and add them to their corresponding macros `GCP project ID`, `Private key id`, `Private key data`, `Client e-mail` in host wizard configuration fields.\r\n\r\n**Additional information**:\r\n\r\n Make sure that you\'re creating the service account using the credentials with the `Project Owner/Project IAM Admin/service account Admin` role.\r\n\r\n The service account JSON key file can only be downloaded once: regenerate it if the previous key has been lost.\r\n\r\n The service account should have `Project Viewer` permissions or granular permissions for the GCP Compute Engine API/GCP Cloud SQL.\r\n\r\n You can copy and paste private_key string data from the Service Account JSON key file as is or replace the new line metasymbol (\\n) with an actual new line.\r\n\r\n>Please, refer to the [vendor documentation](https://cloud.google.com/iam/docs/manage-access-service-accounts) about the service accounts management.\r\n\r\n**IMPORTANT!!!**\r\n\r\n Secret authorization token is defined as a plain text in host prototype settings by default due to Zabbix templates export/import limits: therefore, it is highly recommended to change the user macro `{$GCP.AUTH.TOKEN}` value type to `SECRET` for all host prototypes after the template `GCP by HTTP` import.\r\n\r\n All the instances/quotas/metrics discovered are related to a particular GCP project.\r\n To monitor several GCP projects - create their corresponding service accounts/Zabbix hosts.\r\n\r\n GCP Access Token is available for 1 hour (3600 seconds) after the generation request.\r\n\r\n To avoid a GCP token inconsistency between Zabbix database and Zabbix server configuration cache, don\'t set Zabbix server configuration parameter CacheUpdateFrequency to a value over 45 minutes and don\'t set the update interval for the GCP Authorization item to more than 1 hour (maximum CacheUpdateFrequency value).\r\n\r\nAdditional information about metrics and used API methods:\r\n\r\n [Compute Engine](https://cloud.google.com/monitoring/api/metrics_gcp#gcp-compute)\r\n\r\n [Cloud SQL](https://cloud.google.com/monitoring/api/metrics_gcp#gcp-cloudsql)'),
('10571',NULL,'GCP Cloud SQL MSSQL by HTTP','3','-1','2','','','GCP Cloud SQL MSSQL by HTTP','0',NULL,'Get GCP Cloud SQL MSSQL instances monitoring with script item usage to perform HTTP requests to Google Cloud Platform Monitoring API.\r\nThis template will be automatically connected to discovered entities with all their required parameters pre-defined.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','507d70db18554a4e9ee5e09bb29bc85f','GCP CLOUD SQL MSSQL BY HTTP','Zabbix','7.4-2',NULL,'0','0',''),
('10572',NULL,'GCP Cloud SQL MSSQL Replica by HTTP','3','-1','2','','','GCP Cloud SQL MSSQL Replica by HTTP','0',NULL,'Get GCP Cloud SQL MSSQL monitoring for read-only replicas with script item usage to perform HTTP requests to Google Cloud Platform Monitoring API.\r\nThis template will be automatically connected to discovered entities with all their required parameters pre-defined.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','54f0ffb538d94a9bb8062df3e63c4cb6','GCP CLOUD SQL MSSQL REPLICA BY HTTP','Zabbix','7.4-2',NULL,'0','0',''),
('10573',NULL,'GCP Cloud SQL MySQL by HTTP','3','-1','2','','','GCP Cloud SQL MySQL by HTTP','0',NULL,'Get GCP Cloud SQL MySQL instances monitoring with script item usage to perform HTTP requests to Google Cloud Platform Monitoring API.\r\nThis template will be automatically connected to discovered entities with all their required parameters pre-defined.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','38456af4aedd4b168ec3fa4ad2acb256','GCP CLOUD SQL MYSQL BY HTTP','Zabbix','7.4-2',NULL,'0','0',''),
('10574',NULL,'GCP Cloud SQL MySQL Replica by HTTP','3','-1','2','','','GCP Cloud SQL MySQL Replica by HTTP','0',NULL,'Get GCP Cloud SQL MySQL monitoring for read-only replicas with script item usage to perform HTTP requests to Google Cloud Platform Monitoring API.\r\nThis template will be automatically connected to discovered entities with all their required parameters pre-defined.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','9d7871c093f9489293421396b9fea668','GCP CLOUD SQL MYSQL REPLICA BY HTTP','Zabbix','7.4-2',NULL,'0','0',''),
('10575',NULL,'GCP Cloud SQL PostgreSQL by HTTP','3','-1','2','','','GCP Cloud SQL PostgreSQL by HTTP','0',NULL,'Get GCP Cloud SQL PostgreSQL instances monitoring with script item usage to perform HTTP requests to Google Cloud Platform Monitoring API.\r\nThis template will be automatically connected to discovered entities with all their required parameters pre-defined.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','e74c1e12f82e4d9880a368b53f5e65a4','GCP CLOUD SQL POSTGRESQL BY HTTP','Zabbix','7.4-2',NULL,'0','0',''),
('10576',NULL,'GCP Cloud SQL PostgreSQL Replica by HTTP','3','-1','2','','','GCP Cloud SQL PostgreSQL Replica by HTTP','0',NULL,'Get GCP Cloud SQL PostgreSQL monitoring for read-only replicas with script item usage to perform HTTP requests to Google Cloud Platform Monitoring API.\r\nThis template will be automatically connected to discovered entities with all their required parameters pre-defined.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','b43a7c5f1d1d43d28e2eb8f0a9f6f16f','GCP CLOUD SQL POSTGRESQL REPLICA BY HTTP','Zabbix','7.4-2',NULL,'0','0',''),
('10577',NULL,'GCP Compute Engine Instance by HTTP','3','-1','2','','','GCP Compute Engine Instance by HTTP','0',NULL,'Discover GCP Compute Engine instances by HTTP with script item usage.\r\nThis template will be automatically connected to discovered entities with all their required parameters pre-defined.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','6d2443db49e54d59a82b9b525f2424ef','GCP COMPUTE ENGINE INSTANCE BY HTTP','Zabbix','7.4-2',NULL,'0','0',''),
('10582',NULL,'AWS Cost Explorer by HTTP','3','-1','2','','','AWS Cost Explorer by HTTP','0',NULL,'The template gets AWS Cost Explorer metrics and uses the script item to make HTTP requests to the Cost Explorer API.\r\nThe Cost Explorer API can access the historical data over up to 12 months and the data for current month.\r\nDon\'t forget to read the README.md for the correct setup of the template.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','dce23cdaef364e139efa580d8a304ffe','AWS COST EXPLORER BY HTTP','Zabbix','7.4-4',NULL,'0','1','## Overview\r\n\r\nThe template to monitor AWS Cost Explorer by HTTP via Zabbix, which works without any external scripts.\r\nMost of the metrics are collected in one go, thanks to Zabbix bulk data collection.\r\n*NOTE*\r\nThis template uses the Cost Explorer API calls to list and retrieve metrics.\r\nFor more information, please refer to the [Cost Explorer pricing](https://aws.amazon.com/aws-cost-management/aws-cost-explorer/pricing/) page.\r\n\r\n\r\n## Setup\r\n\r\nBefore using the template, you need to create an IAM policy for the Zabbix role in your AWS account with the necessary permissions.\r\n\r\n* [IAM policies for AWS Cost Management](https://docs.aws.amazon.com/cost-management/latest/userguide/billing-permissions-ref.html)\r\n\r\n### Required Permissions\r\nAdd the following required permissions to your Zabbix IAM policy in order to collect metrics.\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Action": [\r\n "ce:GetDimensionValues",\r\n "ce:GetCostAndUsage"\r\n ],\r\n "Effect": "Allow",\r\n "Resource": "*"\r\n }\r\n ]\r\n}\r\n```\r\n\r\n### Access Key Authorization\r\n\r\nIf you are using access key authorization, you need to generate an access key and secret key for an IAM user with the necessary permissions:\r\n\r\n1. Create an IAM user with programmatic access.\r\n2. Attach the required policy to the IAM user.\r\n3. Generate an access key and secret key.\r\n4. Use the generated credentials in the macros `Access key ID` and `Secret access key`.\r\n\r\n### Assume Role Authorization\r\nFor using assume role authorization, add the appropriate permissions to the role you are using:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Action": "sts:AssumeRole",\r\n "Resource": "arn:aws:iam::{Account}:user/{UserName}"\r\n },\r\n {\r\n "Effect": "Allow",\r\n "Action": [\r\n "ce:GetDimensionValues",\r\n "ce:GetCostAndUsage"\r\n ],\r\n "Resource": "*"\r\n }\r\n ]\r\n}\r\n```\r\n\r\n#### Trust Relationships for Assume Role Authorization\r\nNext, add a principal to the trust relationships of the role you are using:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Principal": {\r\n "AWS": "arn:aws:iam::{Account}:user/{UserName}"\r\n },\r\n "Action": "sts:AssumeRole"\r\n }\r\n ]\r\n}\r\n```\r\nSet the following fields: `Access key ID`, `Secret access key`, `STS Region`, `ARN assume role`.\r\n\r\n### Role-Based Authorization\r\nIf you are using role-based authorization, add the appropriate permissions:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Action": "iam:PassRole",\r\n "Resource": "arn:aws:iam::<<--account-id-->>:role/<<--role_name-->>"\r\n },\r\n {\r\n "Effect": "Allow",\r\n "Action": [\r\n "ce:GetDimensionValues",\r\n "ce:GetCostAndUsage",\r\n "ec2:AssociateIamInstanceProfile",\r\n "ec2:ReplaceIamInstanceProfileAssociation"\r\n ],\r\n "Resource": "*"\r\n }\r\n ]\r\n}\r\n```\r\n\r\n#### Trust Relationships for Role-Based Authorization\r\nNext, add a principal to the trust relationships of the role you are using:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Principal": {\r\n "Service": [\r\n "ec2.amazonaws.com"\r\n ]\r\n },\r\n "Action": [\r\n "sts:AssumeRole"\r\n ]\r\n }\r\n ]\r\n}\r\n```\r\n\r\n**Note**: Using role-based authorization is only possible when you use a Zabbix server or proxy inside AWS.\r\n\r\nChoose a method of authorization (field of `Authorization method`).\r\n\r\nFor more information about managing access keys, see the [official documentation](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys).\r\n\r\nAlso, see the Macros section for a list of macros used in LLD filters.\r\n\r\nAdditional information about metrics and used API methods:\r\n\r\n* [Describe AWS Cost Explore API actions](https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Operations.html)'),
('10583',NULL,'AWS ECS Cluster by HTTP','3','-1','2','','','AWS ECS Cluster by HTTP','0',NULL,'The template gets AWS ECS Cluster metrics and uses the script item to make HTTP requests to the CloudWatch API.\r\nDon\'t forget to read the README.md for the correct setup of the template.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','c94105c23220452baed03ba87f09ca12','AWS ECS CLUSTER BY HTTP','Zabbix','7.4-4',NULL,'0','1','## Overview\r\n\r\nThe template to monitor AWS ECS Serverless Cluster by HTTP via Zabbix that works without any external scripts.\r\nMost of the metrics are collected in one go, thanks to Zabbix bulk data collection.\r\n*NOTE*\r\nThis template uses the GetMetricData CloudWatch API calls to list and retrieve metrics.\r\nFor more information, please refer to the [CloudWatch pricing](https://aws.amazon.com/cloudwatch/pricing/) page.\r\n\r\nAdditional information about the metrics and used API methods:\r\n\r\n* [Full metrics list related to ECS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-metrics-ECS.html)\r\n* [DescribeAlarms API method](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarms.html)\r\n\r\n## Setup\r\n\r\nThe template gets AWS ECS metrics and uses the script item to make HTTP requests to the CloudWatch API.\r\n\r\nBefore using the template, you need to create an IAM policy for the Zabbix role in your AWS account with the necessary permissions.\r\n\r\n### Required Permissions\r\nAdd the following required permissions to your Zabbix IAM policy in order to collect Amazon ECS metrics.\r\n\r\n```json\r\n{\r\n "Version":"2012-10-17",\r\n "Statement":[\r\n {\r\n "Action":[\r\n "cloudwatch:DescribeAlarms",\r\n "cloudwatch:GetMetricData",\r\n "ecs:ListServices"\r\n ],\r\n "Effect":"Allow",\r\n "Resource":"*"\r\n }\r\n ]\r\n }\r\n```\r\n\r\n### Access Key Authorization\r\n\r\nIf you are using access key authorization, you need to generate an access key and secret key for an IAM user with the necessary permissions:\r\n\r\n1. Create an IAM user with programmatic access.\r\n2. Attach the required policy to the IAM user.\r\n3. Generate an access key and secret key.\r\n4. Use the generated credentials in the macros `Access key ID` and `Secret access key`.\r\n\r\n### Assume role authorization\r\nFor using assume role authorization, add the appropriate permissions to the role you are using:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Action": "sts:AssumeRole",\r\n "Resource": "arn:aws:iam::{Account}:user/{UserName}"\r\n },\r\n {\r\n "Effect": "Allow",\r\n "Action": [\r\n "cloudwatch:DescribeAlarms",\r\n "cloudwatch:GetMetricData",\r\n "ecs:ListServices"\r\n ],\r\n "Resource": "*"\r\n }\r\n ]\r\n}\r\n```\r\n\r\n#### Trust Relationships for Assume Role Authorization\r\nNext, add a principal to the trust relationships of the role you are using:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Principal": {\r\n "AWS": "arn:aws:iam::{Account}:user/{UserName}"\r\n },\r\n "Action": "sts:AssumeRole"\r\n }\r\n ]\r\n}\r\n```\r\nSet the following fields: `Access key ID`, `Secret access key`, `STS Region`, `ARN assume role`.\r\n\r\n### Role-Based Authorization\r\nIf you are using role-based authorization, set the appropriate permissions:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Action": "iam:PassRole",\r\n "Resource": "arn:aws:iam::<<--account-id-->>:role/<<--role_name-->>"\r\n },\r\n {\r\n "Sid": "VisualEditor1",\r\n "Effect": "Allow",\r\n "Action": [\r\n "cloudwatch:DescribeAlarms",\r\n "cloudwatch:GetMetricData",\r\n "ecs:ListServices",\r\n "ec2:AssociateIamInstanceProfile",\r\n "ec2:ReplaceIamInstanceProfileAssociation"\r\n ],\r\n "Resource": "*"\r\n }\r\n ]\r\n}\r\n```\r\n#### Trust Relationships for Role-Based Authorization\r\nNext, add a principal to the trust relationships of the role you are using:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Principal": {\r\n "Service": [\r\n "ec2.amazonaws.com"\r\n ]\r\n },\r\n "Action": [\r\n "sts:AssumeRole"\r\n ]\r\n }\r\n ]\r\n}\r\n```\r\n\r\n**Note**: Using role-based authorization is only possible when you use a Zabbix server or proxy inside AWS.\r\n\r\nSet the following macros `Authorization method`, `AWS Region`, `ECS cluster name`.\r\n\r\nFor more information about managing access keys, see [official documentation](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys)\r\n\r\nRefer to the Macros section for a list of macros used for LLD filters.'),
('10584',NULL,'AWS ECS Serverless Cluster by HTTP','3','-1','2','','','AWS ECS Serverless Cluster by HTTP','0',NULL,'The template gets AWS ECS Serverless Cluster metrics and uses the script item to make HTTP requests to the CloudWatch API.\r\nDon\'t forget to read the README.md for the correct setup of the template.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','5e225ad1c2cc4d0bbf75586e7bf8871b','AWS ECS SERVERLESS CLUSTER BY HTTP','Zabbix','7.4-4',NULL,'0','1','## Overview\r\n\r\nThe template to monitor AWS ECS Serverless Cluster by HTTP via Zabbix that works without any external scripts.\r\nMost of the metrics are collected in one go, thanks to Zabbix bulk data collection.\r\n*NOTE*\r\nThis template uses the GetMetricData CloudWatch API calls to list and retrieve metrics.\r\nFor more information, please refer to the [CloudWatch pricing](https://aws.amazon.com/cloudwatch/pricing/) page.\r\n\r\nAdditional information about the metrics and used API methods:\r\n\r\n* [Full metrics list related to ECS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-metrics-ECS.html)\r\n* [DescribeAlarms API method](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarms.html)\r\n\r\n## Setup\r\n\r\nThe template gets AWS ECS metrics and uses the script item to make HTTP requests to the CloudWatch API.\r\n\r\nBefore using the template, you need to create an IAM policy for the Zabbix role in your AWS account with the necessary permissions.\r\n\r\n### Required Permissions\r\nAdd the following required permissions to your Zabbix IAM policy in order to collect Amazon ECS metrics.\r\n\r\n```json\r\n{\r\n "Version":"2012-10-17",\r\n "Statement":[\r\n {\r\n "Action":[\r\n "cloudwatch:DescribeAlarms",\r\n "cloudwatch:GetMetricData",\r\n "ecs:ListServices"\r\n ],\r\n "Effect":"Allow",\r\n "Resource":"*"\r\n }\r\n ]\r\n }\r\n```\r\n\r\n### Access Key Authorization\r\n\r\nIf you are using access key authorization, you need to generate an access key and secret key for an IAM user with the necessary permissions:\r\n\r\n1. Create an IAM user with programmatic access.\r\n2. Attach the required policy to the IAM user.\r\n3. Generate an access key and secret key.\r\n4. Use the generated credentials in the macros `Access key ID` and `Secret access key`.\r\n\r\n### Assume role authorization\r\nFor using assume role authorization, add the appropriate permissions to the role you are using:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Action": "sts:AssumeRole",\r\n "Resource": "arn:aws:iam::{Account}:user/{UserName}"\r\n },\r\n {\r\n "Effect": "Allow",\r\n "Action": [\r\n "cloudwatch:DescribeAlarms",\r\n "cloudwatch:GetMetricData",\r\n "ecs:ListServices"\r\n ],\r\n "Resource": "*"\r\n }\r\n ]\r\n}\r\n```\r\n\r\n#### Trust Relationships for Assume Role Authorization\r\nNext, add a principal to the trust relationships of the role you are using:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Principal": {\r\n "AWS": "arn:aws:iam::{Account}:user/{UserName}"\r\n },\r\n "Action": "sts:AssumeRole"\r\n }\r\n ]\r\n}\r\n```\r\nSet the following fields: `Access key ID`, `Secret access key`, `STS Region`, `ARN assume role`.\r\n\r\n### Role-Based Authorization\r\nIf you are using role-based authorization, set the appropriate permissions:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Action": "iam:PassRole",\r\n "Resource": "arn:aws:iam::<<--account-id-->>:role/<<--role_name-->>"\r\n },\r\n {\r\n "Sid": "VisualEditor1",\r\n "Effect": "Allow",\r\n "Action": [\r\n "cloudwatch:DescribeAlarms",\r\n "cloudwatch:GetMetricData",\r\n "ecs:ListServices",\r\n "ec2:AssociateIamInstanceProfile",\r\n "ec2:ReplaceIamInstanceProfileAssociation"\r\n ],\r\n "Resource": "*"\r\n }\r\n ]\r\n}\r\n```\r\n#### Trust Relationships for Role-Based Authorization\r\nNext, add a principal to the trust relationships of the role you are using:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Principal": {\r\n "Service": [\r\n "ec2.amazonaws.com"\r\n ]\r\n },\r\n "Action": [\r\n "sts:AssumeRole"\r\n ]\r\n }\r\n ]\r\n}\r\n```\r\n\r\n**Note**: Using role-based authorization is only possible when you use a Zabbix server or proxy inside AWS.\r\n\r\nSet the following macros `Authorization method`, `AWS Region`, `ECS cluster name`.\r\n\r\nFor more information about managing access keys, see [official documentation](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys)\r\n\r\nRefer to the Macros section for a list of macros used for LLD filters.'),
('10586',NULL,'OpenStack by HTTP','3','-1','2','','','OpenStack by HTTP','0',NULL,'Requests OpenStack API access token and discovers available OpenStack services using OpenStack Identity API by HTTP using script item and creates host prototypes for them.\r\n\r\nTemplate uses OpenStack application credentials for authorization.\r\n\r\nZabbix currently supports OpenStack Nova service.\r\n\r\nRead the template documentation prior to using this template.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','4e3fb27f028e4c35b8c9fc43b11c07d7','OPENSTACK BY HTTP','Zabbix','7.4-0',NULL,'0','0',''),
('10587',NULL,'OpenStack Nova by HTTP','3','-1','2','','','OpenStack Nova by HTTP','0',NULL,'Discovers and monitors project limits, servers, services, hypervisors, availability zones, hypervisors and tenants with OpenStack Compute API by HTTP using script and HTTP agent items.\r\n\r\nThis template receives token and service URL from parent host, therefore no additional configuration is necessary.\r\n\r\nRead the template documentation prior to using this template.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','ff637e001b91472d8730eb7f10e65800','OPENSTACK NOVA BY HTTP','Zabbix','7.4-0',NULL,'0','0',''),
('10589',NULL,'PostgreSQL by ODBC','3','-1','2','','','PostgreSQL by ODBC','0',NULL,'This template is designed for the effortless deployment of PostgreSQL monitoring by Zabbix via ODBC and doesn\'t require any external scripts.\r\n\r\nSetup:\r\n\r\n1. Create the PostgreSQL user for monitoring (`` at your discretion) and inherit permissions from the default role `pg_monitor`:\r\nCREATE USER zbx_monitor WITH PASSWORD \'\' INHERIT;\r\nGRANT pg_monitor TO zbx_monitor;\r\n\r\n2. Edit the `pg_hba.conf` configuration file to allow TCP connections for the user `zbx_monitor`. You can check the PostgreSQL documentation for examples (https://www.postgresql.org/docs/current/auth-pg-hba-conf.html).\r\n\r\n3. Install the PostgreSQL ODBC driver.\r\n\r\n4. Set up the connection string with the `{$PG.CONNSTRING.ODBC}` macro. The minimum required parameters are:\r\n- `Driver=` - set the name of the driver which will be used for monitoring (from the `odbcinst.ini` file) or specify the path to the driver file (for example `/usr/lib64/psqlodbcw.so`);\r\n- `Servername=` - set the host name or IP address of the PostgreSQL instance;\r\n- `Port=` - adjust the port number if needed.\r\n\r\nIf you want to use SSL/TLS encryption to protect communications with the remote PostgreSQL instance, you can also specify encryption parameters here.\r\n\r\nIt is assumed that you set up the PostgreSQL instance to work in the desired encryption mode. Check the PostgreSQL documentation (https://www.postgresql.org/docs/current/ssl-tcp.html) for details.\r\n\r\nFor example, to enable required encryption in transport mode without identity checks, the connection string could look like this (replace `` with the address of the PostgreSQL instance):\r\nServername=;Port=5432;Driver=/usr/lib64/psqlodbcw.so;SSLmode=require\r\n\r\n5. Set the password that you specified in step 1 in the macro `{$PG.PASSWORD}`.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/384190-%C2%A0discussion-thread-for-official-zabbix-template-db-postgresql\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','e0a7c3e725c445228b03116dc6114fe9','POSTGRESQL BY ODBC','Zabbix','7.4-2',NULL,'0','1','## Setup\r\n\r\n1. Create the PostgreSQL user for monitoring (`` at your discretion) and inherit permissions from the default role `pg_monitor`:\r\n\r\n```sql\r\nCREATE USER zbx_monitor WITH PASSWORD \'\' INHERIT;\r\nGRANT pg_monitor TO zbx_monitor;\r\n```\r\n\r\n2. Edit the `pg_hba.conf` configuration file to allow TCP connections for the user `zbx_monitor`. For example, you could add one of the following rows to allow local connections from the same host:\r\n\r\n```bash\r\n# TYPE DATABASE USER ADDRESS METHOD\r\n host all zbx_monitor localhost trust\r\n host all zbx_monitor 127.0.0.1/32 md5\r\n host all zbx_monitor ::1/128 scram-sha-256\r\n```\r\n\r\nFor more information please read the PostgreSQL documentation `https://www.postgresql.org/docs/current/auth-pg-hba-conf.html`.\r\n\r\n3. Install the PostgreSQL ODBC driver. Check the [`Zabbix documentation`](https://www.zabbix.com/documentation/7.4/manual/config/items/itemtypes/odbc_checks/) for details about ODBC checks and [`recommended parameters page`](https://www.zabbix.com/documentation/7.4/manual/config/items/itemtypes/odbc_checks/unixodbc_postgresql).\r\n\r\n4. Set up the connection string in the `PostgreSQL connection string` host wizard configuration field. The minimum required parameters are:\r\n\r\n- `Driver=` - set the name of the driver which will be used for monitoring (from the `odbcinst.ini` file) or specify the path to the driver file (for example `/usr/lib64/psqlodbcw.so`);\r\n- `Servername=` - set the host name or IP address of the PostgreSQL instance;\r\n- `Port=` - adjust the port number if needed.\r\n\r\n**Note:** if you want to use SSL/TLS encryption to protect communications with the remote PostgreSQL instance, you can also specify encryption parameters here.\r\n\r\nIt is assumed that you set up the PostgreSQL instance to work in the desired encryption mode. Check the [`PostgreSQL documentation`](https://www.postgresql.org/docs/current/ssl-tcp.html) for details.\r\n\r\nFor example, to enable required encryption in transport mode without identity checks, the connection string could look like this (replace `` with the address of the PostgreSQL instance):\r\n\r\n```\r\nServername=;Port=5432;Driver=/usr/lib64/psqlodbcw.so;SSLmode=require\r\n```\r\n\r\n5. Set the password that you specified in step 1 in the `PostgreSQL user password` field.'),
('10590',NULL,'Cisco SD-WAN by HTTP','3','-1','2','','','Cisco SD-WAN by HTTP','0',NULL,'Discover Cisco SD-WAN devices by HTTP with script item usage.\r\n\r\nSetup:\r\n1. Put your username and password from Cisco SD-WAN vManage into {$SDWAN.API.USERNAME} and {$SDWAN.API.PASSWORD} macros.\r\n2. Set your Cisco SD-WAN vManage URL as {$SDWAN.API.URL} macro value.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','e5cf4e7ac41a470b99e4262d1c5ee104','CISCO SD-WAN BY HTTP','Zabbix','7.4-0',NULL,'0','0',''),
('10591',NULL,'Cisco SD-WAN device by HTTP','3','-1','2','','','Cisco SD-WAN device by HTTP','0',NULL,'Get Cisco SD-WAN devices monitoring with script item usage to perform HTTP requests to Cisco SD-WAN API.\r\nThis template will be automatically connected to discovered entities with all required parameters pre-defined.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','e1e25df663204b099f2597caf89a0678','CISCO SD-WAN DEVICE BY HTTP','Zabbix','7.4-0',NULL,'0','0',''),
('10593',NULL,'Mantis BT by HTTP','3','-1','2','','','Mantis BT by HTTP','0',NULL,'Get Mantis BT issues by HTTP.\r\nMetrics are collected by requests to Mantis BT API.\r\nPlease change macros {$MANTIS.URL} and {$MANTIS.TOKEN}.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','2c96393f8f2945c1a9f03f86adf5eb57','MANTIS BT BY HTTP','Zabbix','7.4-2',NULL,'0','0',''),
('10594',NULL,'HashiCorp Nomad by HTTP','3','-1','2','','','HashiCorp Nomad by HTTP','0',NULL,'Discover HashiCorp Nomad servers and clients automatically.\r\n\r\nDon\'t forget to change macro {$NOMAD.ENDPOINT.API.URL}, {$NOMAD.TOKEN} values.\r\n\r\nYou can discuss this template or leave feedback on our forum: https://www.zabbix.com/forum/zabbix-suggestions-and-feedback.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','f74adf26d9ab44ada318002d31fd2881','HASHICORP NOMAD BY HTTP','Zabbix','7.4-0',NULL,'0','0',''),
('10595',NULL,'HashiCorp Nomad Client by HTTP','3','-1','2','','','HashiCorp Nomad Client by HTTP','0',NULL,'Get HashiCorp Nomad client metrics by HTTP from metrics endpoint.\r\n\r\nMore information about metrics is available in the official documentation: https://developer.hashicorp.com/nomad/docs/operations/metrics-reference.\r\n\r\nYou can discuss this template or leave feedback on our forum: https://www.zabbix.com/forum/zabbix-suggestions-and-feedback.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','44eac6a1abe34999b85ad6d0e40073fd','HASHICORP NOMAD CLIENT BY HTTP','Zabbix','7.4-0',NULL,'0','0',''),
('10596',NULL,'HashiCorp Nomad Server by HTTP','3','-1','2','','','HashiCorp Nomad Server by HTTP','0',NULL,'Get HashiCorp Nomad server metrics by HTTP from metrics endpoint.\r\n\r\nMore information about metrics is available in the official documentation: https://developer.hashicorp.com/nomad/docs/operations/metrics-reference.\r\n\r\nYou can discuss this template or leave feedback on our forum: https://www.zabbix.com/forum/zabbix-suggestions-and-feedback.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','8598d0e2bd6f4903832ec91b7b300062','HASHICORP NOMAD SERVER BY HTTP','Zabbix','7.4-0',NULL,'0','0',''),
('10599',NULL,'Acronis Cyber Protect Cloud by HTTP','3','-1','2','','','Acronis Cyber Protect Cloud by HTTP','0',NULL,'Requests Acronis Cyber Protect Cloud API access token and creates host prototype for MSP.\r\n\r\nTemplate uses HTTP item to query Acronis Cyber Protect Cloud API client for authorization.\r\n\r\nRead the template documentation prior to using this template.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','d0571c5f2c204b7ab244843040288a35','ACRONIS CYBER PROTECT CLOUD BY HTTP','Zabbix','7.4-1',NULL,'0','0',''),
('10600',NULL,'Acronis Cyber Protect Cloud MSP by HTTP','3','-1','2','','','Acronis Cyber Protect Cloud MSP by HTTP','0',NULL,'Discovers and monitors alerts, clients, devices using HTTP agent items.\r\n\r\nThis template receives API token and datacenter URL from parent host, therefore no additional configuration is necessary.\r\n\r\nRead the template documentation prior to using this template.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','bf3107deff3a4aabab1e1c0ee71a3281','ACRONIS CYBER PROTECT CLOUD MSP BY HTTP','Zabbix','7.4-1',NULL,'0','0',''),
('10602',NULL,'Nextcloud by HTTP','3','-1','2','','','Nextcloud by HTTP','0',NULL,'This template is designed for monitoring Nextcloud by HTTP via Zabbix, and it works without any external scripts.\r\n Nextcloud is a suite of client-server software for creating and using file hosting services.\r\n For more information, see the [`official documentation`](https://docs.nextcloud.com/server/latest/developer_manual/client_apis/OCS/ocs-api-overview.html#)\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','34f386276a094e8e9a6e46653fdf05b1','NEXTCLOUD BY HTTP','Zabbix','7.4-2',NULL,'0','0',''),
('10603',NULL,'FortiGate by HTTP','3','-1','2','','','FortiGate by HTTP','0',NULL,'The template for monitoring FortiGate Next Generation Firewall by HTTP.\r\n\r\n1. On the FortiGate GUI, select System > Admin Profiles > Create New.\r\n2. Enter a profile name (ex. zabbix_ro) and enable all the Read permissions. Please note the profile name, it will be used a bit later.\r\n3. Go to System > Administrators > Create New > REST API Admin.\r\n4. Enter the API-user\'s name and select the profile name you created in step 2.\r\n5. The trusted host can be specified to ensure that only Zabbix server can reach the FortiGate.\r\n6. Click OK and an API token will be generated. Make a note of the API token as it\'s only shown once and cannot be retrieved.\r\n7. Put the API token into {$FGATE.API.TOKEN} macro.\r\n8. Set your FortiGate GUI IP/FQDN as {$FGATE.API.FQDN} macro value.\r\n9. If FortiGate GUI uses HTTPS, put "https" value into {$FGATE.SCHEME} macro and "443" into {$FGATE.API.PORT} macro.\r\n10. If FortiGate GUI port differs from the standard one, specify it in {$FGATE.API.PORT} macro.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','e56c9577c225476eb6d8f1c2f5dc90a5','FORTIGATE BY HTTP','Zabbix','7.4-0',NULL,'0','0',''),
('10604',NULL,'FortiGate by SNMP','3','-1','2','','','FortiGate by SNMP','0',NULL,'The template for monitoring FortiGate firewall by SNMP.\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nFORTINET-FORTIGATE-MIB\r\nFORTINET-CORE-MIB\r\nSNMPv2-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','1f38deb487fc4a8d965e407ba7c5247f','FORTIGATE BY SNMP','Zabbix','7.4-2',NULL,'0','0',''),
('10605',NULL,'HPE iLO by HTTP','3','-1','2','','','HPE iLO by HTTP','0',NULL,'This template is designed for the effortless deployment of HPE iLO monitoring by Zabbix via iLO RESTful API and doesn\'t require any external scripts.\r\n\r\nSetup:\r\n\r\n1. Create the iLO user for monitoring (for example, `zbx_monitor`). The user will only need to have the `Login` privilege, which can be assigned manually or by assigning the `ReadOnly` role to the user.\r\n2. Set the iLO API endpoint URL in the `{$ILO.URL}` macro in the format `://[:port]/` (port is optional).\r\n3. Set the name of the user that you created in step 1 in the `{$ILO.USER}` macro.\r\n4. Set the password of the user that you created in step 1 in the `{$ILO.PASSWORD}` macro.\r\n\r\nFor more details about HPE Redfish services, refer to the official documentation:\r\nhttps://servermanagementportal.ext.hpe.com/docs/redfishservices/\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','d50f6dcfc3e44244a0fc9fd933607024','HPE ILO BY HTTP','Zabbix','7.4-0',NULL,'0','0',''),
('10606',NULL,'Azure Cost Management by HTTP','3','-1','2','','','Azure Cost Management by HTTP','0',NULL,'This template is designed to monitor Microsoft Cost Management by HTTP.\r\nIt works without any external scripts and uses the script item.\r\n\r\nSetup:\r\n 1. Create an Azure service principal via the Azure command-line interface (Azure CLI) for your subscription.\r\n `az ad sp create-for-rbac --name zabbix --role reader --scope /subscriptions/`\r\n See https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli for more details.\r\n 2. Link the template to a host.\r\n 3. Configure the macros: {$AZURE.APP.ID}, {$AZURE.PASSWORD}, {$AZURE.TENANT.ID}, {$AZURE.SUBSCRIPTION.ID}.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','c0263df8d8c14d30b24afcf45a6a354f','AZURE COST MANAGEMENT BY HTTP','Zabbix','7.4-2',NULL,'0','1','## Overview\r\n\r\nThis template is designed to monitor Microsoft Cost Management by HTTP.\r\nIt works without any external scripts and uses the script item.\r\n\r\n## Setup\r\n\r\n1. Create an Azure service principal via the Azure command-line interface (Azure CLI) for your subscription.\r\n\r\n `az ad sp create-for-rbac --name zabbix --role reader --scope /subscriptions/`\r\n\r\n> See [Azure documentation](https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli) for more details.\r\n\r\n2. Link the template to a host.\r\n3. Configure the macros: `Azure App ID`, `Azure password`, `Azure tenant ID`, `Azure subscription ID`.'),
('10607',NULL,'AWS ELB Application Load Balancer by HTTP','3','-1','2','','','AWS ELB Application Load Balancer by HTTP','0',NULL,'The template is designed to monitor AWS ELB Application Load Balancer by HTTP via Zabbix, and it works without any external scripts.\r\nDon\'t forget to read the README.md for the correct setup of the template.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','f59c8b4156ec4386a7c724534ddd384d','AWS ELB APPLICATION LOAD BALANCER BY HTTP','Zabbix','7.4-3',NULL,'0','1','## Overview\r\n\r\n*Please scroll down for AWS ELB Network Load Balancer by HTTP.*\r\n\r\nThe template is designed to monitor AWS ELB Application Load Balancer by HTTP via Zabbix, and it works without any external scripts.\r\nMost of the metrics are collected in one go, thanks to Zabbix bulk data collection.\r\n\r\nThis template uses the GetMetricData CloudWatch API calls to list and retrieve metrics.\r\nFor more information, please refer to the [CloudWatch pricing](https://aws.amazon.com/cloudwatch/pricing/) page.\r\n\r\nAdditional information about metrics and API methods used in the template:\r\n* [Full metrics list related to AWS ELB Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-cloudwatch-metrics.html)\r\n* [DescribeAlarms API method](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarms.html)\r\n* [DescribeTargetGroups API method](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html)\r\n\r\n\r\n## Setup\r\n\r\nThe template gets AWS ELB Application Load Balancer metrics and uses the script item to make HTTP requests to the CloudWatch API.\r\n\r\nBefore using the template, you need to create an IAM policy with the necessary permissions for the Zabbix role in your AWS account. For more information, visit the [ELB policies page](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/elb-api-permissions.html) on the AWS website.\r\n\r\n### Required Permissions\r\nAdd the following required permissions to your Zabbix IAM policy in order to collect AWS ELB Application Load Balancer metrics.\r\n\r\n```json\r\n{\r\n "Version":"2012-10-17",\r\n "Statement":[\r\n {\r\n "Action":[\r\n "cloudwatch:DescribeAlarms",\r\n "cloudwatch:GetMetricData",\r\n "elasticloadbalancing:DescribeTargetGroups"\r\n ],\r\n "Effect":"Allow",\r\n "Resource":"*"\r\n }\r\n ]\r\n }\r\n```\r\n\r\n### Access Key Authorization\r\n\r\nIf you are using access key authorization, you need to generate an access key and secret key for an IAM user with the necessary permissions:\r\n\r\n1. Create an IAM user with programmatic access.\r\n2. Attach the required policy to the IAM user.\r\n3. Generate an access key and secret key.\r\n4. Use the generated credentials in the macros `Access key ID` and `Secret access key`.\r\n\r\n### Assume role authorization\r\nFor using assume role authorization, add the appropriate permissions to the role you are using:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Action": "sts:AssumeRole",\r\n "Resource": "arn:aws:iam::{Account}:user/{UserName}"\r\n },\r\n {\r\n "Effect": "Allow",\r\n "Action": [\r\n "cloudwatch:DescribeAlarms",\r\n "cloudwatch:GetMetricData",\r\n "elasticloadbalancing:DescribeTargetGroups"\r\n ],\r\n "Resource": "*"\r\n }\r\n ]\r\n}\r\n```\r\n\r\n#### Trust Relationships for Assume Role Authorization\r\nNext, add a principal to the trust relationships of the role you are using:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Principal": {\r\n "AWS": "arn:aws:iam::{Account}:user/{UserName}"\r\n },\r\n "Action": "sts:AssumeRole"\r\n }\r\n ]\r\n}\r\n```\r\nSet the following fields: `Access key ID`, `Secret access key`, `STS Region`, `ARN assume role`.\r\n\r\n### Role-Based Authorization\r\nIf you are using role-based authorization, set the appropriate permissions:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Action": "iam:PassRole",\r\n "Resource": "arn:aws:iam::<<--account-id-->>:role/<<--role_name-->>"\r\n },\r\n {\r\n "Sid": "VisualEditor1",\r\n "Effect": "Allow",\r\n "Action": [\r\n "cloudwatch:DescribeAlarms",\r\n "cloudwatch:GetMetricData",\r\n "elasticloadbalancing:DescribeTargetGroups",\r\n "ec2:AssociateIamInstanceProfile",\r\n "ec2:ReplaceIamInstanceProfileAssociation"\r\n ],\r\n "Resource": "*"\r\n }\r\n ]\r\n}\r\n```\r\n\r\n#### Trust Relationships for Role-Based Authorization\r\nNext, add a principal to the trust relationships of the role you are using:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Principal": {\r\n "Service": [\r\n "ec2.amazonaws.com"\r\n ]\r\n },\r\n "Action": [\r\n "sts:AssumeRole"\r\n ]\r\n }\r\n ]\r\n}\r\n```\r\n\r\n**Note**: Using role-based authorization is only possible when you use a Zabbix server or proxy inside AWS.\r\n\r\nSet the following fields: `Authorization method`, `AWS Region`, and `Load Balancer ARN`.\r\n\r\nFor more information about managing access keys, see [official AWS documentation](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys).\r\n\r\nSee the section below for a list of macros used for LLD filters.'),
('10609',NULL,'MSSQL by Zabbix agent 2','3','-1','2','','','MSSQL by Zabbix agent 2','0',NULL,'This template is designed for the effortless deployment of MSSQL monitoring by Zabbix via Zabbix agent 2 and uses a loadable plugin to run SQL queries.\r\n\r\nSetup:\r\n\r\n1. Deploy Zabbix agent 2 with the MSSQL plugin. You can use this template starting with version 7.4.0 of both Zabbix and the MSSQL plugin.\r\n\r\n For more information, see MSSQL plugin documentation: https://git.zabbix.com/projects/AP/repos/mssql/browse\r\n\r\n Important! Starting with version 7.4-1 of this template, the MSSQL plugin must be updated to a version equal to or above 7.4.0. (You can check the version of the template in its YAML file under the "vendor" section.)\r\n\r\n Loadable plugin requires installation of one of the following:\r\n\r\n - Separate package\r\n \r\n - Binary file\r\n \r\n - Compilation from sources: https://www.zabbix.com/documentation/7.4/manual/extensions/plugins/build\r\n\r\n2. Create an MSSQL user for monitoring.\r\n\r\n View Server State and View Any Definition permissions should be granted to the user.\r\n Grant this user read permissions to the sysjobschedules, sysjobhistory, and sysjobs tables.\r\n\r\n For more information, see MSSQL documentation:\r\n \r\n - Create a database user: https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/create-a-database-user?view=sql-server-ver16\r\n \r\n - GRANT Server Permissions: https://docs.microsoft.com/en-us/sql/t-sql/statements/grant-server-permissions-transact-sql?view=sql-server-ver16\r\n \r\n - Configure a User to Create and Manage SQL Server Agent Jobs: https://docs.microsoft.com/en-us/sql/ssms/agent/configure-a-user-to-create-and-manage-sql-server-agent-jobs?view=sql-server-ver16\r\n\r\n3. Set the user name and password in the host macros ({$MSSQL.USER} and {$MSSQL.PASSWORD}).\r\n\r\n4. Set the connection string for the MSSQL instance in the {$MSSQL.URI} macro as a URI, such as , or specify the named session - .\r\n\r\nThe "Service\'s TCP port state" item uses the {$MSSQL.HOST} and {$MSSQL.PORT} macros to check the availability of the MSSQL instance, change these if necessary. Keep in mind that if dynamic ports are used on the MSSQL server side, this check will not work correctly.\r\n\r\nNote: You can use the context macros {$MSSQL.BACKUP_FULL.USED}, {$MSSQL.BACKUP_LOG.USED}, and {$MSSQL.BACKUP_DIFF.USED} to disable backup age triggers for a certain database. If set to a value other than "1", the trigger expression for the backup age will not fire.\r\n\r\nNote: Since version 7.2.0, you can also connect to the MSSQL instance using its name. To do this, set the connection string in the {$MSSQL.URI} macro as .\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','75fc96367e8d4588ba8314145fc12d35','MSSQL BY ZABBIX AGENT 2','Zabbix','7.4-2',NULL,'0','1','## Setup\r\n\r\n1. Create an MSSQL user for monitoring. For example, "zbx_monitor".\r\n\r\n**View Server State** and **View Any Definition** permissions should be granted to the user.\r\nGrant this user read permissions to the `sysjobschedules`, `sysjobhistory`, and `sysjobs` tables.\r\n\r\nFor example, using T-SQL commands:\r\n\r\n```sql\r\nGRANT SELECT ON OBJECT::msdb.dbo.sysjobs TO zbx_monitor;\r\nGRANT SELECT ON OBJECT::msdb.dbo.sysjobservers TO zbx_monitor;\r\nGRANT SELECT ON OBJECT::msdb.dbo.sysjobactivity TO zbx_monitor;\r\nGRANT EXECUTE ON OBJECT::msdb.dbo.agent_datetime TO zbx_monitor;\r\n```\r\n\r\nFor more information, see MSSQL documentation:\r\n\r\n[Create a database user](https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/create-a-database-user?view=sql-server-ver16)\r\n\r\n[GRANT Server Permissions](https://docs.microsoft.com/en-us/sql/t-sql/statements/grant-server-permissions-transact-sql?view=sql-server-ver16)\r\n\r\n[Configure a User to Create and Manage SQL Server Agent Jobs](https://docs.microsoft.com/en-us/sql/ssms/agent/configure-a-user-to-create-and-manage-sql-server-agent-jobs?view=sql-server-ver16)\r\n\r\n2. Set the username and password in the `MSSQL user` and `MSSQL password` host wizard configuration fields.\r\n\r\n3. Set the connection string for the MSSQL instance in the `MSSQL URI` host wizard configuration field as a URI, such as ``, or specify the named session - ``.\r\n\r\nThe `Service\'s TCP port state` item uses the `MSSQL address` and `MSSQL TCP port` host wizard configuration fields to check the availability of the MSSQL instance, change these if necessary. Keep in mind that if dynamic ports are used on the MSSQL server side, this check will not work correctly.\r\n\r\nNote: You can use the `Monitoring of full backup`, `Monitoring of log backup`, and `Monitoring of differential backup` host wizard configuration fields to disable backup age triggers. If set to unselected state, the trigger expression for the backup age will not fire.\r\n\r\nNote: Since version 7.2.0, you can also connect to the MSSQL instance using its name. To do this, set the connection string in the `MSSQL URI` host wizard configuration field as ``.'),
('10610',NULL,'YugabyteDB by HTTP','3','-1','2','','','YugabyteDB by HTTP','0',NULL,'This template is designed for the deployment of YugabyteDB monitoring by Zabbix via HTTP and doesn\'t require any external scripts.\r\n\r\nTo set up the template:\r\n\r\n1. Set your account ID as a value of the {$YUGABYTEDB.ACCOUNT.ID} macro. The account ID is the unique identifier for your customer account in YugabyteDB Managed. You can access the account ID from your profile in the YugabyteDB Managed user interface. To get your account ID, log in to YugabyteDB Managed and click the user profile icon. \r\nSee YugabyteDB documentation for instructions:\r\nhttps://yugabyte.stoplight.io/docs/managed-apis/tvsjh28t5ivmw-getting-started#account-id\r\n\r\n2. Set your project ID as a value of the {$YUGABYTEDB.PROJECT.ID} macro. The project ID is the unique identifier for a YugabyteDB Managed project. You can access the project ID from your profile in the YugabyteDB Managed user interface (along with the account ID). \r\nSee YugabyteDB documentation for instructions:\r\nhttps://yugabyte.stoplight.io/docs/managed-apis/tvsjh28t5ivmw-getting-started#project-id\r\n\r\n3. Generate the API access token and specify it as a value of the {$YUGABYTEDB.ACCESS.TOKEN} macro. \r\nSee YugabyteDB documentation for instructions:\r\nhttps://docs.yugabyte.com/preview/yugabyte-cloud/managed-automation/managed-apikeys/#create-an-api-key\r\n\r\nNOTE: If needed, you can specify a HTTP proxy for the template to use by changing the value of the {$YUGABYTEDB.PROXY} user macro.\r\n\r\nIMPORTANT! The value of the {$YUGABYTEDB.ACCESS.TOKEN} macro is stored as plain (not secret) text by default.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','bc056b1724e748bba50928f8cc605f8e','YUGABYTEDB BY HTTP','Zabbix','7.4-1',NULL,'0','0',''),
('10611',NULL,'YugabyteDB Cluster by HTTP','3','-1','2','','','YugabyteDB Cluster by HTTP','0',NULL,'This template is designed for the deployment of YugabyteDB clusters monitoring by Zabbix via HTTP and doesn\'t require any external scripts. This template will be automatically connected to discovered entities with all required parameters pre-defined.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','f5fff9a83f774f4688692ad58aa35d45','YUGABYTEDB CLUSTER BY HTTP','Zabbix','7.4-0',NULL,'0','0',''),
('10613',NULL,'Check Point Next Generation Firewall by SNMP','3','-1','2','','','Check Point Next Generation Firewall by SNMP','0',NULL,'The template for monitoring Check Point Quantum Next Generation Firewall Security Gateway by SNMP.\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nCHECKPOINT-MIB\r\nUCD-SNMP-MIB\r\nSNMPv2-MIB\r\nIF-MIB\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','3a7ff6eb19bb4a42b5b5b34a7179b30c','CHECK POINT NEXT GENERATION FIREWALL BY SNMP','Zabbix','7.4-2',NULL,'0','0',''),
('10614',NULL,'Oracle Cloud Autonomous Database by HTTP','3','-1','2','','','Oracle Cloud Autonomous Database by HTTP','0',NULL,'This template monitors Oracle Cloud Infrastructure (OCI) autonomous database (serverless) resources.\r\n\r\nThis template is not meant to be used independently, but together with Oracle Cloud by HTTP as a template for\r\nLLD host prototypes.\r\n\r\nRead the template documentation prior to using this template.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','178645e229484bcf9cb030dc1edccebb','ORACLE CLOUD AUTONOMOUS DATABASE BY HTTP','Zabbix','7.4-3',NULL,'0','0',''),
('10615',NULL,'Oracle Cloud Block Volume by HTTP','3','-1','2','','','Oracle Cloud Block Volume by HTTP','0',NULL,'This template monitors Oracle Cloud Infrastructure (OCI) block volume resources.\r\n\r\nThis template is not meant to be used independently, but together with Oracle Cloud by HTTP as a template for\r\nLLD host prototypes.\r\n\r\nRead the template documentation prior to using this template.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','8afa1796d280425b99c7ea36900dac24','ORACLE CLOUD BLOCK VOLUME BY HTTP','Zabbix','7.4-2',NULL,'0','0',''),
('10616',NULL,'Oracle Cloud Boot Volume by HTTP','3','-1','2','','','Oracle Cloud Boot Volume by HTTP','0',NULL,'Monitor Oracle Cloud Infrastructure (OCI) boot volume.\r\n\r\nThis template is not meant to be used independently, but instead with Oracle Cloud by HTTP as a template for\r\nLLD host prototypes.\r\n\r\nRead the template documentation prior to using this template.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','e5486d98ff414c1391de1bd369a7f9db','ORACLE CLOUD BOOT VOLUME BY HTTP','Zabbix','7.4-2',NULL,'0','0',''),
('10617',NULL,'Oracle Cloud by HTTP','3','-1','2','','','Oracle Cloud by HTTP','0',NULL,'Monitor resources of Oracle Cloud Infrastructure (OCI) services.\r\n\r\nThis template handles discovery of various OCI services.\r\n\r\nRead the template documentation prior to using this template.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','057558a26d934b4683d73a7058499d62','ORACLE CLOUD BY HTTP','Zabbix','7.4-2',NULL,'0','1','## Overview\r\n\r\nThis template is designed as a master template that discovers various Oracle Cloud Infrastructure (OCI) services\r\nand resources, such as:\r\n\r\n* OCI Compute;\r\n\r\n* OCI Autonomous Database (serverless);\r\n\r\n* OCI Object Storage;\r\n\r\n* OCI Virtual Cloud Networks (VCNs);\r\n\r\n* OCI Block Volumes;\r\n\r\n* OCI Boot Volumes.\r\n\r\nFor communication with OCI, this template utilizes script items which execute HTTP `GET` and `POST` requests. \r\n`POST` requests are required for OCI Monitoring API as it utilizes Monitoring Query Language (MQL) which uses an\r\nHTTP request body for queries.\r\n\r\n\r\n## Setup\r\n\r\n## Required setup\r\n\r\nFor this template to work, it needs authentication details to use in requests. To acquire this information, see\r\nthe following steps:\r\n\r\n1. Log into your administrator account in Oracle Cloud Console.\r\n\r\n2. Create a new user that will be used by Zabbix for monitoring.\r\n\r\n3. Create a new security policy and assign a previously created user to it.\r\n\r\n4. This policy will contain a set of rules that will give monitoring user access to specific resources in your\r\nOCI. Make sure to add the following rules to the policy:\r\n \r\n ```\r\n Allow group \'zabbix_api\' to read metrics in tenancy\r\n Allow group \'zabbix_api\' to read instances in tenancy\r\n Allow group \'zabbix_api\' to read subnets in tenancy\r\n Allow group \'zabbix_api\' to read vcns in tenancy\r\n Allow group \'zabbix_api\' to read vnic-attachments in tenancy\r\n Allow group \'zabbix_api\' to read volumes in tenancy\r\n Allow group \'zabbix_api\' to read objectstorage-namespaces in tenancy\r\n Allow group \'zabbix_api\' to read buckets in tenancy\r\n Allow group \'zabbix_api\' to read autonomous-databases in tenancy\r\n ```\r\n \r\n In this example, `zabbix_api` is the name of the previously created monitoring user. Rename it to your\r\nmonitoring user\'s name.\r\n\r\n5. Generate an API key pair for your monitoring user - open your monitoring user profile and on the left side,\r\npress `API keys` and then, `Add API key` (if generating a new key pair, do not forget to save the private key).\r\n \r\n6. After this, Oracle Cloud Console will provide additional information that is required for access, such as:\r\n\r\n * Tenancy OCID;\r\n \r\n * User OCID;\r\n \r\n * Fingerprint;\r\n \r\n * Region.\r\n\r\n > Save this information somewhere or keep this window open. This information will be required in later steps.\r\n\r\n7. In Zabbix, create a new host and assign this template to it (Oracle Cloud by HTTP).\r\n\r\n8. In host wizard configuration fields please set next values (from step #6):\r\n\r\n * `OCID tenancy` - set the tenancy OCID value;\r\n \r\n * `OCID user` - set the user OCID value;\r\n \r\n * `Fingerprint` - set the fingerprint value;\r\n \r\n * `Private key` - copy and paste the contents of private key file here.\r\n\r\n9. After the authentication credentials are entered, you need to identify the OCI API endpoints that match your\r\nregion (as provided by Oracle Cloud Console in step #6).\r\nTo do so, you can use the OCI [API Reference and Endpoints](https://docs.public.oneportal.content.oci.oraclecloud.com/en-us/iaas/api/#/) list, where each API service has a dedicated page with the respective API endpoints.\r\n\r\n The required API service endpoints are:\r\n \r\n * [Core Services API](https://docs.public.oneportal.content.oci.oraclecloud.com/en-us/iaas/api/#/en/iaas/20160918/);\r\n \r\n * [Database Service API](https://docs.public.oneportal.content.oci.oraclecloud.com/en-us/iaas/api/#/en/database/20160918/);\r\n \r\n * [Object Storage Service API](https://docs.public.oneportal.content.oci.oraclecloud.com/en-us/iaas/api/#/en/objectstorage/20160918/);\r\n \r\n * [Monitoring API](https://docs.public.oneportal.content.oci.oraclecloud.com/en-us/iaas/api/#/en/monitoring/20180401/).\r\n \r\n10. When the API endpoints are identified, you need to set them in host wizard configuration fields (similarly to step #8):\r\n\r\n * `Core Services host` - Core Services API endpoint, for example, `iaas.eu-stockholm-1.oraclecloud.com`;\r\n\r\n * `Database Service host` - Database Service API endpoint, for example, `database.eu-stockholm-1.oraclecloud.com`;\r\n\r\n * `Object Storage host` - Object Storage Service API endpoint, for example, `objectstorage.eu-stockholm-1.oraclecloud.com`;\r\n\r\n * `Monitoring host` - Monitoring API endpoint, for example, `telemetry.eu-stockholm-1.oraclecloud.com`;\r\n \r\n > IMPORTANT! API Endpoint URLs need to be entered without the HTTP scheme (`https://`).\r\n \r\n11. Once you\'ve completed adding the host to Zabbix, and it will automatically discover services and monitor them.\r\n\r\n## Optional setup\r\n\r\n#### Example\r\n\r\n1. In Oracle Cloud Console, add a free-form tag to a resource, for example, a compute instance.\r\nThe tag key will be `location_group` and the tag value will be `eu-north-1`.\r\n\r\n2. Open the Oracle Cloud by HTTP template in Zabbix and go to "Discovery rules".\r\nFind "Compute instances discovery" and open it.\r\n\r\n3. Under "LLD macros", add a new macro that will represent this location group tag, for example:\r\n`{#LOCATION_GROUP}` `$.tags.location_group`.\r\n \r\n4. Under the "Filters" tab, there will already be filters regarding the compute instance name and state.\r\nClick "Add" to add a new filter and define the previously created LLD macro and add a matching pattern and\r\nvalue, for example, `{#LOCATION_GROUP}` `matches` `eu-north-*`.\r\n\r\n5. The next time `Compute instances discovery` is executed, it will only discover OCI compute instances that\r\nhave the free-form tag `location_group` that matches the regex of `eu-north-*`. You can also experiment with\r\nthe LLD filter pattern matching value to receive different matching results for a specified value.'),
('10618',NULL,'Oracle Cloud Compute by HTTP','3','-1','2','','','Oracle Cloud Compute by HTTP','0',NULL,'This template monitors Oracle Cloud Infrastructure (OCI) single compute instance resources and discovers attached\r\nvirtual network interface cards (VNICs) and monitors their resources.\r\n\r\nThis template is not meant to be used independently, but together with Oracle Cloud by HTTP as a template for\r\nLLD host prototypes.\r\n\r\nRead the template documentation prior to using this template.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','e6b0aada359944d09ee4bd46c1a55587','ORACLE CLOUD COMPUTE BY HTTP','Zabbix','7.4-2',NULL,'0','0',''),
('10619',NULL,'Oracle Cloud Networking by HTTP','3','-1','2','','','Oracle Cloud Networking by HTTP','0',NULL,'This template monitors Oracle Cloud Infrastructure (OCI) single virtual network card availability and discovers\r\nattached subnets and monitors their availability.\r\n\r\nThis template is not meant to be used independently, but together with Oracle Cloud by HTTP as a template for \r\nLLD host prototypes.\r\n\r\nRead the template documentation prior to using this template.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','62d99b55585e41dd89736f5f46074dcb','ORACLE CLOUD NETWORKING BY HTTP','Zabbix','7.4-2',NULL,'0','0',''),
('10620',NULL,'Oracle Cloud Object Storage by HTTP','3','-1','2','','','Oracle Cloud Object Storage by HTTP','0',NULL,'This template monitors Oracle Cloud Infrastructure (OCI) object storage resources.\r\n\r\nThis template is not meant to be used independently, but together with Oracle Cloud by HTTP as a template for\r\nLLD host prototypes.\r\n\r\nRead the template documentation prior to using this template.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','e8f89476695848e99ba900a5664d290b','ORACLE CLOUD OBJECT STORAGE BY HTTP','Zabbix','7.4-2',NULL,'0','0',''),
('10627',NULL,'AWS ELB Network Load Balancer by HTTP','3','-1','2','','','AWS ELB Network Load Balancer by HTTP','0',NULL,'The template is designed to monitor AWS ELB Network Load Balancer by HTTP via Zabbix, and it works without any external scripts.\r\nDon\'t forget to read the README.md for the correct setup of the template.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','4c7d0c6e342b40458611bdb6e9dd958f','AWS ELB NETWORK LOAD BALANCER BY HTTP','Zabbix','7.4-3',NULL,'0','1','## Overview\r\n\r\nThe template is designed to monitor AWS ELB Network Load Balancer by HTTP via Zabbix, and it works without any external scripts.\r\nMost of the metrics are collected in one go, thanks to Zabbix bulk data collection.\r\n\r\nThis template uses the GetMetricData CloudWatch API calls to list and retrieve metrics.\r\nFor more information, please refer to the [CloudWatch pricing](https://aws.amazon.com/cloudwatch/pricing/) page.\r\n\r\nAdditional information about metrics and API methods used in the template:\r\n* [Full metrics list related to AWS ELB Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html)\r\n* [DescribeAlarms API method](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarms.html)\r\n* [DescribeTargetGroups API method](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html)\r\n\r\n\r\n## Setup\r\n\r\nThe template gets AWS ELB Network Load Balancer metrics and uses the script item to make HTTP requests to the CloudWatch API.\r\n\r\nBefore using the template, you need to create an IAM policy with the necessary permissions for the Zabbix role in your AWS account. For more information, visit the [ELB policies page](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/elb-api-permissions.html) on the AWS website.\r\n\r\n### Required Permissions\r\nAdd the following required permissions to your Zabbix IAM policy in order to collect AWS ELB Network Load Balancer metrics.\r\n\r\n```json\r\n{\r\n "Version":"2012-10-17",\r\n "Statement":[\r\n {\r\n "Action":[\r\n "cloudwatch:DescribeAlarms",\r\n "cloudwatch:GetMetricData",\r\n "elasticloadbalancing:DescribeTargetGroups"\r\n ],\r\n "Effect":"Allow",\r\n "Resource":"*"\r\n }\r\n ]\r\n }\r\n```\r\n\r\n### Access Key Authorization\r\n\r\nIf you are using access key authorization, you need to generate an access key and secret key for an IAM user with the necessary permissions:\r\n\r\n1. Create an IAM user with programmatic access.\r\n2. Attach the required policy to the IAM user.\r\n3. Generate an access key and secret key.\r\n4. Use the generated credentials in the macros `Access key ID` and `Secret access key`.\r\n\r\n### Assume role authorization\r\nFor using assume role authorization, add the appropriate permissions to the role you are using:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Action": "sts:AssumeRole",\r\n "Resource": "arn:aws:iam::{Account}:user/{UserName}"\r\n },\r\n {\r\n "Effect": "Allow",\r\n "Action": [\r\n "cloudwatch:DescribeAlarms",\r\n "cloudwatch:GetMetricData",\r\n "elasticloadbalancing:DescribeTargetGroups"\r\n ],\r\n "Resource": "*"\r\n }\r\n ]\r\n}\r\n```\r\n\r\n#### Trust Relationships for Assume Role Authorization\r\nNext, add a principal to the trust relationships of the role you are using:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Principal": {\r\n "AWS": "arn:aws:iam::{Account}:user/{UserName}"\r\n },\r\n "Action": "sts:AssumeRole"\r\n }\r\n ]\r\n}\r\n```\r\nSet the following fields: `Access key ID`, `Secret access key`, `STS Region`, `ARN assume role`.\r\n\r\n### Role-Based Authorization\r\nIf you are using role-based authorization, set the appropriate permissions:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Action": "iam:PassRole",\r\n "Resource": "arn:aws:iam::<<--account-id-->>:role/<<--role_name-->>"\r\n },\r\n {\r\n "Sid": "VisualEditor1",\r\n "Effect": "Allow",\r\n "Action": [\r\n "cloudwatch:DescribeAlarms",\r\n "cloudwatch:GetMetricData",\r\n "elasticloadbalancing:DescribeTargetGroups",\r\n "ec2:AssociateIamInstanceProfile",\r\n "ec2:ReplaceIamInstanceProfileAssociation"\r\n ],\r\n "Resource": "*"\r\n }\r\n ]\r\n}\r\n```\r\n\r\n#### Trust Relationships for Role-Based Authorization\r\nNext, add a principal to the trust relationships of the role you are using:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Principal": {\r\n "Service": [\r\n "ec2.amazonaws.com"\r\n ]\r\n },\r\n "Action": [\r\n "sts:AssumeRole"\r\n ]\r\n }\r\n ]\r\n}\r\n```\r\n\r\n**Note**: Using role-based authorization is only possible when you use a Zabbix server or proxy inside AWS.\r\n\r\nSet the following fields: `Authorization method`, `AWS Region`, and `Load Balancer ARN`.\r\n\r\nFor more information about managing access keys, see [official AWS documentation](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys).\r\n\r\nSee the section below for a list of macros used for LLD filters.'),
('10628',NULL,'Website by Browser','3','-1','2','','','Website by Browser','0',NULL,'The template to monitor a website\'s availability and performance on the website by Browser.\r\n\r\nZabbix server uses a web browser to perform navigation and collect performance metrics.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','2526dce71d714e31bd545e96370c67b2','WEBSITE BY BROWSER','Zabbix','7.4-1',NULL,'0','0',''),
('10629',NULL,'GitHub repository by HTTP','3','-1','2','','','GitHub repository by HTTP','0',NULL,'This template is designed for the effortless deployment of GitHub repository monitoring by Zabbix via GitHub REST API and doesn\'t require any external scripts.\r\n\r\nFor more details about GitHub REST API, refer to the official documentation:\r\nhttps://docs.github.com/en/rest?apiVersion=2022-11-28\r\n\r\nSetup:\r\n\r\n1. Create an access token for monitoring\r\n\r\nOne of the simplest ways to send authenticated requests is to use a personal access token - either a classic or a fine-grained one:\r\nhttps://docs.github.com/en/rest/authentication/authenticating-to-the-rest-api?apiVersion=2022-11-28#authenticating-with-a-personal-access-token\r\n\r\nClassic personal access token\r\n\r\nYou can create a new classic personal access token by following the instructions in the official documentation:\r\nhttps://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-personal-access-token-classic\r\n\r\nFor public repositories, no additional permission scopes are required. For monitoring to work on private repositories, the "repo" scope must be set to have full control of private repositories.\r\n\r\nAdditional information about OAuth scopes is available in the official documentation:\r\nhttps://docs.github.com/en/apps/oauth-apps/building-oauth-apps/scopes-for-oauth-apps#available-scopes\r\n\r\nNote that authenticated users must have admin access to the repository and the "repo" scope must be set to get information about self-hosted runners:\r\nhttps://docs.github.com/en/rest/actions/self-hosted-runners?apiVersion=2022-11-28#list-self-hosted-runners-for-a-repository\r\n\r\nFine-grained personal access token\r\n\r\nAlternatively, you can use a fine-grained personal access token:\r\nhttps://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token\r\n\r\nIn order to use fine-grained tokens to monitor organization-owned repositories, organizations must opt in to fine-grained personal access tokens and set up a personal access token policy:\r\nhttps://docs.github.com/en/organizations/managing-programmatic-access-to-your-organization/setting-a-personal-access-token-policy-for-your-organization\r\n\r\nThe fine-grained token needs to have the following permissions set to provide access to the repository resources:\r\n- "Actions" repository permissions (read);\r\n- "Administration" repository permissions (read);\r\n- "Contents" repository permissions (read);\r\n- "Issues" repository permissions (read);\r\n- "Metadata" repository permissions (read);\r\n- "Pull requests" repository permissions (read).\r\n\r\n2. Set the access token that you\'ve created in step 1 in the "{$GITHUB.API.TOKEN}" macro\r\n3. Change the API URL in the "{$GITHUB.API.URL}" macro if needed (for self-hosted installations)\r\n4. Set the repository owner name in the "{$GITHUB.REPO.OWNER}" macro\r\n5. Set the repository name in the "{$GITHUB.REPO.NAME}" macro\r\n6. Set the LLD rule filters if needed (you may want to use it to also stay within rate limits as on large repositories, LLD rules may generate a lot of script items)\r\n\r\nNote: Update intervals and timeouts for script items can be changed individually via "{$GITHUB.INTERVAL}" and "{$GITHUB.TIMEOUT}" macros with context. Depending on the repository being monitored, it can be adjusted if needed (if you are exceeding rate limits, you can increase update intervals for some script items to stay within per hour request limits). But be aware that it may also affect the triggers (check whether the item is used in triggers and adjust thresholds and/or evaluation periods if needed).\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','11144543d1144a3693aa0b97a1c20dac','GITHUB REPOSITORY BY HTTP','Zabbix','7.4-1',NULL,'0','0',''),
('10630',NULL,'Jira Data Center by JMX','3','-1','2','','','Jira Data Center by JMX','0',NULL,'This template is used for monitoring Jira Data Center health. It is designed for standalone operation for on-premises Jira installations.\r\n\r\nThis template uses a single data source, JMX, which requires JMX RMI setup of your Jira application and Java Gateway setup on the Zabbix side.\r\nIf you need "Garbage collector" and "Web server" monitoring, add "Generic Java JMX" and "Apache Tomcat by JMX" templates on the same host.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nSetup:\r\n Metrics are collected by JMX.\r\n 0. Deploy the Zabbix Java Gateway component ([instructions](https://www.zabbix.com/documentation/7.4/manual/concepts/java)).\r\n 1. Enable and configure JMX access to Jira Data Center. See documentation for [instructions](https://confluence.atlassian.com/adminjiraserver/live-monitoring-using-the-jmx-interface-939707304.html).\r\n 2. Assign the "Jira Data Center by JMX" template to the host with a JMX interface.\r\n 2. If your Jira installation requires authentication for JMX, set the values in the host macros `{$JMX.USERNAME}` and `{$JMX.PASSWORD}`.\r\n 3. (Optional) Set custom macro values and add macros with context for specific metrics following the macro description.\r\n 4. (Optional) Assign the "Generic Java JMX" template for garbage collector monitoring.\r\n 5. (Optional) Assign the "Apache Tomcat by JMX" template for web server monitoring.\r\n\r\ntested_on:\r\n - Jira Data Center 9.14.1\r\n - Jira Data Center 9.12.4\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','a7f0c853c6634b1dacaaf43c2a0d9375','JIRA DATA CENTER BY JMX','Zabbix','7.4-1',NULL,'0','0',''),
('10631',NULL,'Microsoft 365 reports by HTTP','3','-1','2','','','Microsoft 365 reports by HTTP','0',NULL,'This template is designed to monitor Microsoft 365 reports by HTTP. It works without any external scripts and uses script items.\r\nThe template uses endpoints in the Microsoft Graph API to gather daily metrics from weekly reports.\r\nThe template is meant to be used as a long-term trend monitoring tool.\r\n\r\nSetup:\r\n 1. Register the app with Microsoft Entra ID.\r\n 2. Configure Microsoft Graph application permissions on the app ID:\r\n `Reports.Read.All` - required for app usage and activity metrics\r\n `ServiceHealth.Read.All` - required for service discovery and service status metrics\r\n 3. Request administrator consent.\r\n 4. Configure the macros: `{$MS365.APP.ID}`, `{$MS365.PASSWORD}`, `{$MS365.TENANT.ID}`.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','03e93dc9a8194a17958544a056d02316','MICROSOFT 365 REPORTS BY HTTP','Zabbix','7.4-2',NULL,'0','0',''),
('10632',NULL,'AWS Lambda by HTTP','3','-1','2','','','AWS Lambda by HTTP','0',NULL,'The template is designed to monitor AWS Lambda by HTTP via Zabbix, and it works without any external scripts.\r\nDon\'t forget to read the README.md for the correct setup of the template.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','fd36e0a231d343d38a95d1ed789584ca','AWS LAMBDA BY HTTP','Zabbix','7.4-3',NULL,'0','1','## Overview\r\n\r\nThis template uses the GetMetricData CloudWatch API calls to list and retrieve metrics.\r\nFor more information, please refer to the [CloudWatch pricing](https://aws.amazon.com/cloudwatch/pricing/) page.\r\n\r\nAdditional information about metrics and API methods used in the template:\r\n* [Full metrics list related to AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-metrics.html)\r\n* [DescribeAlarms API method](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarms.html)\r\n\r\n\r\n## Setup\r\n\r\nThe template gets AWS Lambda metrics and uses the script item to make HTTP requests to the CloudWatch API.\r\n\r\nBefore using the template, you need to create an IAM policy with the necessary permissions for the Zabbix role in your AWS account. For more information, visit the [Lambda permissions page](https://docs.aws.amazon.com/lambda/latest/dg/lambda-permissions.html) on the AWS website.\r\n\r\n### Required Permissions\r\nAdd the following required permissions to your Zabbix IAM policy in order to collect AWS Lambda metrics.\r\n\r\n```json\r\n{\r\n "Version":"2012-10-17",\r\n "Statement":[\r\n {\r\n "Action":[\r\n "cloudwatch:DescribeAlarms",\r\n "cloudwatch:GetMetricData"\r\n ],\r\n "Effect":"Allow",\r\n "Resource":"*"\r\n }\r\n ]\r\n }\r\n```\r\n\r\n### Access Key Authorization\r\n\r\nIf you are using access key authorization, you need to generate an access key and secret key for an IAM user with the necessary permissions:\r\n\r\n1. Create an IAM user with programmatic access.\r\n2. Attach the required policy to the IAM user.\r\n3. Generate an access key and secret key.\r\n4. Use the generated credentials in the macros `Access key ID` and `Secret access key`.\r\n\r\n### Assume role authorization\r\nFor using assume role authorization, add the appropriate permissions to the role you are using:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Action": "sts:AssumeRole",\r\n "Resource": "arn:aws:iam::{Account}:user/{UserName}"\r\n },\r\n {\r\n "Effect": "Allow",\r\n "Action": [\r\n "cloudwatch:DescribeAlarms",\r\n "cloudwatch:GetMetricData"\r\n ],\r\n "Resource": "*"\r\n }\r\n ]\r\n}\r\n```\r\n\r\n#### Trust Relationships for Assume Role Authorization\r\nNext, add a principal to the trust relationships of the role you are using:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Principal": {\r\n "AWS": "arn:aws:iam::{Account}:user/{UserName}"\r\n },\r\n "Action": "sts:AssumeRole"\r\n }\r\n ]\r\n}\r\n```\r\nSet the following fields: `Access key ID`, `Secret access key`, `STS Region`, `ARN assume role`.\r\n\r\n### Role-Based Authorization\r\nIf you are using role-based authorization, set the appropriate permissions:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Action": "iam:PassRole",\r\n "Resource": "arn:aws:iam::<<--account-id-->>:role/<<--role_name-->>"\r\n },\r\n {\r\n "Sid": "VisualEditor1",\r\n "Effect": "Allow",\r\n "Action": [\r\n "cloudwatch:DescribeAlarms",\r\n "cloudwatch:GetMetricData",\r\n "ec2:AssociateIamInstanceProfile",\r\n "ec2:ReplaceIamInstanceProfileAssociation"\r\n ],\r\n "Resource": "*"\r\n }\r\n ]\r\n}\r\n```\r\n#### Trust Relationships for Role-Based Authorization\r\nNext, add a principal to the trust relationships of the role you are using:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Principal": {\r\n "Service": [\r\n "ec2.amazonaws.com"\r\n ]\r\n },\r\n "Action": [\r\n "sts:AssumeRole"\r\n ]\r\n }\r\n ]\r\n}\r\n```\r\n\r\n**Note**: Using role-based authorization is only possible when you use a Zabbix server or proxy inside AWS.\r\n\r\nSet the following fields: `Authorization method`, `AWS Region`, and `Lambda function ARN`.\r\n\r\nFor more information about managing access keys, see the [official AWS documentation](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys).\r\n\r\nSee the section below for a list of macros used for LLD filters.'),
('10634',NULL,'Azure VM Scale Set by HTTP','3','-1','2','','','Azure VM Scale Set by HTTP','0',NULL,'This template is designed to monitor Microsoft Azure virtual machine scale sets by HTTP.\r\nIt works without any external scripts and uses the script item.\r\n\r\nSetup:\r\n 1. Create an Azure service principal via the Azure command-line interface (Azure CLI) for your subscription.\r\n `az ad sp create-for-rbac --name zabbix --role reader --scope /subscriptions/`\r\n See https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli for more details.\r\n 2. Link the template to a host.\r\n 3. Configure the macros: {$AZURE.APP.ID}, {$AZURE.PASSWORD}, {$AZURE.TENANT.ID}, {$AZURE.SUBSCRIPTION.ID}, and {$AZURE.RESOURCE.ID}.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','d0fd5d346b1740dda9d3a976371789dd','AZURE VM SCALE SET BY HTTP','Zabbix','7.4-1',NULL,'0','1','## Overview\r\n\r\nThis template is designed to monitor Microsoft Azure virtual machine scale sets by HTTP.\r\nIt works without any external scripts and uses the script item.\r\n\r\n## Setup\r\n\r\n1. Create an Azure service principal via the Azure command-line interface (Azure CLI) for your subscription.\r\n\r\n `az ad sp create-for-rbac --name zabbix --role reader --scope /subscriptions/`\r\n\r\n> See [Azure documentation](https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli) for more details.\r\n\r\n2. Link the template to a host.\r\n3. Configure the macros: `Azure App ID`, `Azure password`, `Azure tenant ID`, `Azure subscription ID`, and `Azure scale set ID`.'),
('10636',NULL,'Huawei OceanStor V6 by SNMP','3','-1','2','','','Huawei OceanStor V6 by SNMP','0',NULL,'This template is developed to monitor SAN Huawei OceanStor V6 via the Zabbix SNMP agent.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/418855-discussion-thread-for-official-zabbix-template-huawei-oceanstor\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','521d864fe8574f19b350f7ddbe259042','HUAWEI OCEANSTOR V6 BY SNMP','Zabbix','7.4-2',NULL,'0','0',''),
('10637',NULL,'Apache by Zabbix agent active','3','-1','2','','','Apache by Zabbix agent active','0',NULL,'Get metrics from mod_status module using HTTP agent.\r\nhttps://httpd.apache.org/docs/current/mod/mod_status.html\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/384764-discussion-thread-for-official-zabbix-template-apache\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','aa3286a824464020863ead141e8f0afc','APACHE BY ZABBIX AGENT ACTIVE','Zabbix','7.4-1',NULL,'0','1','## Overview\r\n\r\nThis template is designed for the effortless deployment of Apache monitoring by Zabbix via Zabbix agent and doesn\'t require any external scripts.\r\nThe template `Apache by Zabbix agent` - collects metrics by polling [mod_status](https://httpd.apache.org/docs/current/mod/mod_status.html) locally with Zabbix agent:\r\n \r\n```text\r\n127.0.0.1\r\nServerVersion: Apache/2.4.41 (Unix)\r\nServerMPM: event\r\nServer Built: Aug 14 2019 00:35:10\r\nCurrentTime: Friday, 16-Aug-2019 12:38:40 UTC\r\nRestartTime: Wednesday, 14-Aug-2019 07:58:26 UTC\r\nParentServerConfigGeneration: 1\r\nParentServerMPMGeneration: 0\r\nServerUptimeSeconds: 189613\r\nServerUptime: 2 days 4 hours 40 minutes 13 seconds\r\nLoad1: 4.60\r\nLoad5: 1.20\r\nLoad15: 0.47\r\nTotal Accesses: 27860\r\nTotal kBytes: 33011\r\nTotal Duration: 54118\r\nCPUUser: 18.02\r\nCPUSystem: 31.76\r\nCPUChildrenUser: 0\r\nCPUChildrenSystem: 0\r\nCPULoad: .0262535\r\nUptime: 189613\r\nReqPerSec: .146931\r\nBytesPerSec: 178.275\r\nBytesPerReq: 1213.33\r\nDurationPerReq: 1.9425\r\nBusyWorkers: 7\r\nIdleWorkers: 93\r\nProcesses: 4\r\nStopping: 0\r\nBusyWorkers: 7\r\nIdleWorkers: 93\r\nConnsTotal: 13\r\nConnsAsyncWriting: 0\r\nConnsAsyncKeepAlive: 5\r\nConnsAsyncClosing: 0\r\nScoreboard: ...\r\n\r\n```\r\n \r\nIt also uses Zabbix agent to collect `Apache` Linux process statistics such as CPU usage, memory usage, and whether the process is running or not.\r\n\r\n## Setup\r\n\r\nSee the setup instructions for [mod_status](https://httpd.apache.org/docs/current/mod/mod_status.html).\r\n\r\nCheck the availability of the module with this command line: `httpd -M 2>/dev/null | grep status_module`\r\n\r\nThis is an example configuration of the Apache web server:\r\n\r\n```text\r\n\r\n SetHandler server-status\r\n Require host example.com\r\n\r\n```\r\n\r\nIf you use another path, then do not forget to change the `Apache status page path` host wizard configuration field.'),
('10638',NULL,'Website certificate by Zabbix agent 2 active','3','-1','2','','','Website certificate by Zabbix agent 2 active','0',NULL,'The template to monitor TLS/SSL certificate on the website by Zabbix agent 2 that works without any external scripts.\r\n\r\nZabbix agent 2 with the WebCertificate plugin requests certificate using the web.certificate.get key and returns JSON with certificate attributes.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/428309-discussion-thread-for-official-zabbix-template-tls-ssl-certificates-monitoring\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','de38542cf4f24fafab33520677f392c4','WEBSITE CERTIFICATE BY ZABBIX AGENT 2 ACTIVE','Zabbix','7.4-1',NULL,'0','0',''),
('10639',NULL,'Nginx by Zabbix agent active','3','-1','2','','','Nginx by Zabbix agent active','0',NULL,'Get metrics from stub status module using Zabbix agent running on Linux\r\nhttps://nginx.ru/en/docs/http/ngx_http_stub_status_module.html\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/384765-discussion-thread-for-official-zabbix-template-nginx\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','d2cebb67b4d94a12a072db85e7be6a33','NGINX BY ZABBIX AGENT ACTIVE','Zabbix','7.4-1',NULL,'0','1','## Overview\r\n\r\nThis template is developed to monitor Nginx by Zabbix that works without any external scripts.\r\nMost of the metrics are collected in one go, thanks to Zabbix bulk data collection.\r\n\r\nThe template `Nginx by Zabbix agent` - collects metrics by polling the [Module ngx_http_stub_status_module](https://nginx.ru/en/docs/http/ngx_http_stub_status_module.html) locally with Zabbix agent:\r\n\r\n```text\r\nActive connections: 291\r\nserver accepts handled requests\r\n16630948 16630948 31070465\r\nReading: 6 Writing: 179 Waiting: 106\r\n```\r\n\r\nNote that this template doesn\'t support HTTPS and redirects (limitations of `web.page.get`).\r\n\r\nIt also uses Zabbix agent to collect `Nginx` Linux process statistics, such as CPU usage, memory usage and whether the process is running or not.\r\n\r\n\r\n## Setup\r\n\r\nSee the setup instructions for [ngx_http_stub_status_module](https://nginx.ru/en/docs/http/ngx_http_stub_status_module.html).\r\nTest the availability of the `http_stub_status_module` `nginx -V 2>&1 | grep -o with-http_stub_status_module`.\r\n\r\nExample configuration of Nginx:\r\n```text\r\nlocation = /basic_status {\r\n stub_status;\r\n allow 127.0.0.1;\r\n allow ::1;\r\n deny all;\r\n}\r\n```\r\n\r\nIf you use another location, then don\'t forget to change the `Nginx status page path` host wizard configuration field.\r\n\r\nExample answer from Nginx:\r\n```text\r\nActive connections: 291\r\nserver accepts handled requests\r\n16630948 16630948 31070465\r\nReading: 6 Writing: 179 Waiting: 106\r\n```\r\n\r\nNote that this template doesn\'t support https and redirects (limitations of web.page.get).'),
('10640',NULL,'Nutanix Cluster Prism Element by HTTP','3','-1','2','','','Nutanix Cluster Prism Element by HTTP','0',NULL,'Prism Element: It is a service already built into the platform for every Nutanix cluster deployed. It provides the ability to fully configure, manage, and monitor Nutanix clusters running any hypervisors, however, It only manages the cluster it is part of.\r\n\r\nThis template is designed for the effortless deployment of Nutanix Cluster Prism Element monitoring and doesn\'t require any external scripts.\r\n\r\nThis template can be used in discovery, as well as manually linked to a host - to do so, attach it to the host and manually set the value of the \'{$NUTANIX.CLUSTER.UUID}\' macro.\r\n\r\nMore details can be found in the official documentation:\r\n - on retrieving UUIDs: https://www.nutanixbible.com/19b-cli.html\r\n - on the Nutanix Prism Element REST API: https://www.nutanix.dev/api_reference/apis/prism_v2.html\r\n - on differences between Nutanix API versions: https://www.nutanix.dev/api-versions/\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','b6027e374e424481951ca2256099515c','NUTANIX CLUSTER PRISM ELEMENT BY HTTP','Zabbix','7.4-2',NULL,'0','0',''),
('10641',NULL,'Nutanix Host Prism Element by HTTP','3','-1','2','','','Nutanix Host Prism Element by HTTP','0',NULL,'Prism Element: It is a service already built into the platform for every Nutanix cluster deployed. It provides the ability to fully configure, manage, and monitor Nutanix clusters running any hypervisors, however, It only manages the cluster it is part of.\r\n\r\nThis template is designed for the effortless deployment of Nutanix Host Prism Element monitoring and doesn\'t require any external scripts.\r\n\r\nThis template can be used in discovery, as well as manually linked to a host - to do so, attach it to the host and manually set the value of the \'{$NUTANIX.HOST.UUID}\' macro.\r\n\r\nMore details can be found in the official documentation:\r\n - on retrieving UUIDs: https://www.nutanixbible.com/19b-cli.html\r\n - on the Nutanix Prism Element REST API: https://www.nutanix.dev/api_reference/apis/prism_v2.html\r\n - on differences between Nutanix API versions: https://www.nutanix.dev/api-versions/\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','8ab5387c8887435587cce8383b2fc6c5','NUTANIX HOST PRISM ELEMENT BY HTTP','Zabbix','7.4-2',NULL,'0','0',''),
('10642',NULL,'Nutanix Prism Element by HTTP','3','-1','2','','','Nutanix Prism Element by HTTP','0',NULL,'Prism Element: It is a service already built into the platform for every Nutanix cluster deployed. It provides the ability to fully configure, manage, and monitor Nutanix clusters running any hypervisors, however, it only manages the cluster it is part of.\r\n\r\nThis template is designed for the effortless deployment of Nutanix Prism Element monitoring and doesn\'t require any external scripts.\r\n\r\nThe templates "Nutanix Host Prism Element by HTTP" and "Nutanix Cluster Prism Element by HTTP" can be used in discovery, as well as manually linked to a host.\r\n\r\nMore details can be found in the official documentation:\r\n - on the Nutanix Prism Element REST API: https://www.nutanix.dev/api_reference/apis/prism_v2.html\r\n - on the differences between Nutanix API versions: https://www.nutanix.dev/api-versions/\r\n - on the differences between Nutanix Prism Element REST API and Nutanix Prism Central REST API: https://next.nutanix.com/how-it-works-22/differences-between-prism-element-prism-central-and-prism-pro-37137\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','0bb43a48a33f48ad910441384486edb4','NUTANIX PRISM ELEMENT BY HTTP','Zabbix','7.4-1',NULL,'0','0',''),
('10645',NULL,'PHP-FPM by Zabbix agent active','3','-1','2','','','PHP-FPM by Zabbix agent active','0',NULL,'Get PHP-FPM metrics using Zabbix agent running on Linux.\r\n\r\nNote that depending on your OS distribution, the PHP-FPM process name may vary. Please, check the actual name in the line "Name" from /proc//status file (https://www.zabbix.com/documentation/7.4/manual/appendix/items/proc_mem_num_notes) and change {$PHP_FPM.PROCESS.NAME.PARAMETER} macro if needed.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','a9e83f950e9f41a78474d523c8376338','PHP-FPM BY ZABBIX AGENT ACTIVE','Zabbix','7.4-1',NULL,'0','0',''),
('10646',NULL,'MySQL by Zabbix agent 2 active','3','-1','2','','','MySQL by Zabbix agent 2 active','0',NULL,'Requirements for template operation:\r\n\r\n1. Create a MySQL user for monitoring. For example:\r\n\r\nCREATE USER \'zbx_monitor\'@\'%\' IDENTIFIED BY \'\';\r\nGRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO \'zbx_monitor\'@\'%\';\r\n\r\nFor more information please read the MySQL documentation https://dev.mysql.com/doc/refman/8.0/en/grant.html.\r\n\r\nNOTE: In order to collect replication metrics, MariaDB Enterprise Server 10.5.8-5 and above and MariaDB Community Server 10.5.9 and above require the SLAVE MONITOR privilege to be set for the monitoring user:\r\n\r\nGRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW,SLAVE MONITOR ON *.* TO \'zbx_monitor\'@\'%\';\r\n\r\nFor more information please read the MariaDB documentation https://mariadb.com/docs/server/ref/mdb/privileges/SLAVE_MONITOR/\r\n\r\n2. Set in the {$MYSQL.DSN} macro the data source name of the MySQL instance either session name from Zabbix agent 2 configuration file or URI.\r\nExamples: MySQL1, tcp://localhost:3306, tcp://172.16.0.10, unix:/var/run/mysql.sock\r\nFor more information about MySQL Unix socket file please read the MySQL documentation https://dev.mysql.com/doc/refman/8.0/en/problems-with-mysql-sock.html.\r\n\r\n3. If you had set URI in the {$MYSQL.DSN}, please define the user name and password in host macros ({$MYSQL.USER} and {$MYSQL.PASSWORD}).\r\nLeave macros {$MYSQL.USER} and {$MYSQL.PASSWORD} empty if you use a session name. Set the user name and password in the Plugins.Mysql.<...> section of your Zabbix agent 2 configuration file.\r\nFor more information about configuring the Zabbix MySQL plugin please read the documentation https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/src/go/plugins/mysql/README.md.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/384189-discussion-thread-for-official-zabbix-template-db-mysql\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','51ffd432b9324ce2b04e1d4dc4122d16','MYSQL BY ZABBIX AGENT 2 ACTIVE','Zabbix','7.4-3',NULL,'0','1','## Setup\r\n\r\n1. Create a MySQL user for monitoring (`` at your discretion):\r\n\r\n```text\r\nCREATE USER \'zbx_monitor\'@\'%\' IDENTIFIED BY \'\';\r\nGRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO \'zbx_monitor\'@\'%\';\r\n```\r\n\r\nFor more information, please see MySQL documentation https://dev.mysql.com/doc/refman/8.0/en/grant.html\r\n\r\n**NOTE:** In order to collect replication metrics, MariaDB Enterprise Server 10.5.8-5 and above and MariaDB Community Server 10.5.9 and above require the `SLAVE MONITOR` privilege to be set for the monitoring user:\r\n\r\n```text\r\nGRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW,SLAVE MONITOR ON *.* TO \'zbx_monitor\'@\'%\';\r\n```\r\n\r\nFor more information please read the MariaDB documentation https://mariadb.com/docs/server/ref/mdb/privileges/SLAVE_MONITOR/\r\n\r\n2. Set in the `MySQL DSN` host wizard configuration field macro the data source name of the MySQL instance either session name from Zabbix agent 2 configuration file or URI.\r\n**Examples:** MySQL1, tcp://localhost:3306, tcp://172.16.0.10, unix:/var/run/mysql.sock\r\nFor more information about MySQL Unix socket file, see the MySQL documentation https://dev.mysql.com/doc/refman/8.0/en/problems-with-mysql-sock.html.\r\n\r\n3. If you had set URI in the `MySQL DSN` field, define the user name and password in `MySQL user` and `MySQL password` host wizard configuration fields.\r\nLeave fields `MySQL user` and `MySQL password` empty if you use a session name. Set the user name and password in the Plugins.Mysql.<...> section of your Zabbix agent 2 configuration file.\r\nFor more information about configuring the Zabbix MySQL plugin, see the documentation https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/src/go/plugins/mysql/README.md.'),
('10647',NULL,'MySQL by Zabbix agent active','3','-1','2','','','MySQL by Zabbix agent active','0',NULL,'Requirements for template operation:\r\n\r\n1. Install Zabbix agent and MySQL client. If necessary, add the path to the \'mysql\' and \'mysqladmin\' utilities to the global environment variable PATH.\r\n\r\n2. Copy the \'template_db_mysql.conf\' file with user parameters into folder with Zabbix agent configuration (/etc/zabbix/zabbix_agentd.d/ by default). Don\'t forget to restart Zabbix agent.\r\n\r\n3. Create the MySQL user that will be used for monitoring (\'\' at your discretion). For example:\r\n\r\nCREATE USER \'zbx_monitor\'@\'%\' IDENTIFIED BY \'\';\r\nGRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO \'zbx_monitor\'@\'%\';\r\n\r\nFor more information, please see MySQL documentation (https://dev.mysql.com/doc/refman/8.0/en/grant.html).\r\n\r\nNOTE: In order to collect replication metrics, MariaDB Enterprise Server 10.5.8-5 and above and MariaDB Community Server 10.5.9 and above require the SLAVE MONITOR privilege to be set for the monitoring user:\r\n\r\nGRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW,SLAVE MONITOR ON *.* TO \'zbx_monitor\'@\'%\';\r\n\r\nFor more information, please read the MariaDB documentation (https://mariadb.com/docs/server/ref/mdb/privileges/SLAVE_MONITOR/).\r\n\r\n4. Create \'.my.cnf\' configuration file in the home directory of Zabbix agent for Linux distributions (/var/lib/zabbix by default) or \'my.cnf\' in c:\\ for Windows. For example:\r\n\r\n[client]\r\nprotocol=tcp\r\nuser=\'zbx_monitor\'\r\npassword=\'\'\r\n\r\nFor more information, please see MySQL documentation (https://dev.mysql.com/doc/refman/8.0/en/option-files.html).\r\n\r\nNOTE: Linux distributions that use SELinux may require additional steps for access configuration.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/384189-discussion-thread-for-official-zabbix-template-db-mysql\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','1ae69b01417849b180717f62ad7819d6','MYSQL BY ZABBIX AGENT ACTIVE','Zabbix','7.4-3',NULL,'0','1','## Setup\r\n\r\n1. Install MySQL client. If necessary, add the path to the `mysql` and `mysqladmin` utilities to the global environment variable PATH.\r\n2. Copy the `template_db_mysql.conf` file with user parameters into folder with Zabbix agent configuration (/etc/zabbix/zabbix_agentd.d/ by default). Don\'t forget to restart Zabbix agent.\r\n3. Create the MySQL user that will be used for monitoring (`` at your discretion). For example:\r\n\r\n```text\r\nCREATE USER \'zbx_monitor\'@\'%\' IDENTIFIED BY \'\';\r\nGRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO \'zbx_monitor\'@\'%\';\r\n```\r\n\r\nFor more information, please see [`MySQL documentation`](https://dev.mysql.com/doc/refman/8.0/en/grant.html).\r\n\r\n4. Create `.my.cnf` configuration file in the home directory of Zabbix agent for Linux distributions (/var/lib/zabbix by default) or `my.cnf` in c:\\ for Windows. For example:\r\n\r\n```text\r\n[client]\r\nprotocol=tcp\r\nuser=\'zbx_monitor\'\r\npassword=\'\'\r\n```\r\n\r\nFor more information, please see [`MySQL documentation`](https://dev.mysql.com/doc/refman/8.0/en/option-files.html).\r\n\r\n**NOTE:** In order to collect replication metrics, MariaDB Enterprise Server 10.5.8-5 and above and MariaDB Community Server 10.5.9 and above require the `SLAVE MONITOR` privilege to be set for the monitoring user:\r\n\r\n```text\r\nGRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW,SLAVE MONITOR ON *.* TO \'zbx_monitor\'@\'%\';\r\n```\r\n\r\nFor more information, please read the [`MariaDB documentation`](https://mariadb.com/docs/server/ref/mdb/privileges/SLAVE_MONITOR/).\r\n\r\nNOTE: Linux distributions that use SELinux may require additional steps for access configuration.\r\n\r\nFor example, the following rule could be added to the SELinux policy:\r\n\r\n```text\r\n# cat < zabbix_home.te\r\nmodule zabbix_home 1.0;\r\n\r\nrequire {\r\n type zabbix_agent_t;\r\n type zabbix_var_lib_t;\r\n type mysqld_etc_t;\r\n type mysqld_port_t;\r\n type mysqld_var_run_t;\r\n class file { open read };\r\n class tcp_socket name_connect;\r\n class sock_file write;\r\n}\r\n\r\n#============= zabbix_agent_t ==============\r\n\r\nallow zabbix_agent_t zabbix_var_lib_t:file read;\r\nallow zabbix_agent_t zabbix_var_lib_t:file open;\r\nallow zabbix_agent_t mysqld_etc_t:file read;\r\nallow zabbix_agent_t mysqld_port_t:tcp_socket name_connect;\r\nallow zabbix_agent_t mysqld_var_run_t:sock_file write;\r\nEOF\r\n# checkmodule -M -m -o zabbix_home.mod zabbix_home.te\r\n# semodule_package -o zabbix_home.pp -m zabbix_home.mod\r\n# semodule -i zabbix_home.pp\r\n# restorecon -R /var/lib/zabbix\r\n```'),
('10648',NULL,'PostgreSQL by Zabbix agent 2 active','3','-1','2','','','PostgreSQL by Zabbix agent 2 active','0',NULL,'This template is designed for the deployment of PostgreSQL monitoring by Zabbix via Zabbix agent 2 and uses a loadable plugin to run SQL queries.\r\n\r\nSetup:\r\n\r\n1. Deploy Zabbix agent 2 with the PostgreSQL plugin. Starting with Zabbix versions 6.0.10 / 6.2.4 / 6.4 PostgreSQL metrics are moved to a loadable plugin and require installation of a separate package or compilation of the plugin from sources (https://www.zabbix.com/documentation/7.4/manual/extensions/plugins/build).\r\n\r\n2. Create the PostgreSQL user for monitoring (`` at your discretion) and inherit permissions from the default role `pg_monitor`:\r\nCREATE USER zbx_monitor WITH PASSWORD \'\' INHERIT;\r\nGRANT pg_monitor TO zbx_monitor;\r\n\r\n3. Edit the `pg_hba.conf` configuration file to allow connections for the user `zbx_monitor`. You can check the PostgreSQL documentation for examples (https://www.postgresql.org/docs/current/auth-pg-hba-conf.html).\r\n\r\n4. Set the connection string for the PostgreSQL instance in the `{$PG.CONNSTRING.AGENT2}` macro as URI, such as ``, or specify the named session - ``.\r\n\r\nNote: if you want to use SSL/TLS encryption to protect communications with the remote PostgreSQL instance, a named session must be used. In that case, the instance URI should be specified in the `Plugins.PostgreSQL.Sessions.*.Uri` parameter in the PostgreSQL plugin configuration files alongside all the encryption parameters (type, certificate/key filepaths if needed etc.).\r\n\r\nYou can check the PostgreSQL plugin documentation (https://git.zabbix.com/projects/AP/repos/postgresql/browse?at=refs%2Fheads%2Frelease%2F7.4) for details about agent plugin parameters and named sessions.\r\n\r\nAlso, it is assumed that you set up the PostgreSQL instance to work in the desired encryption mode. Check the PostgreSQL documentation (https://www.postgresql.org/docs/current/ssl-tcp.html) for details.\r\n\r\nNote that plugin TLS certificate validation relies on checking the Subject Alternative Names (SAN) instead of the Common Name (CN), check the cryptography package documentation (https://pkg.go.dev/crypto/x509) for details.\r\n\r\nFor example, to enable required encryption in transport mode without identity checks you could create the file `/etc/zabbix/zabbix_agent2.d/postgresql_myconn.conf` with the following configuration for the named session `myconn` (replace `` with the address of the PostgreSQL instance):\r\nPlugins.PostgreSQL.Sessions.myconn.Uri=tcp://:5432\r\nPlugins.PostgreSQL.Sessions.myconn.TLSConnect=required\r\n\r\nThen set the `{$PG.CONNSTRING.AGENT2}` macro to `myconn` to use this named session.\r\n\r\n5. Set the password that you specified in step 2 in the macro `{$PG.PASSWORD}`.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/384190-%C2%A0discussion-thread-for-official-zabbix-template-db-postgresql\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','21cca24cec1d40cdb0c2999aa6ac3037','POSTGRESQL BY ZABBIX AGENT 2 ACTIVE','Zabbix','7.4-3',NULL,'0','1','## Overview\r\n\r\nThis template is designed for the deployment of PostgreSQL monitoring by Zabbix via Zabbix agent 2 and uses a loadable plugin to run SQL queries.\r\n\r\n## Setup\r\n\r\n1. Create the PostgreSQL user for monitoring (`` at your discretion) and inherit permissions from the default role `pg_monitor`:\r\n\r\n```sql\r\nCREATE USER zbx_monitor WITH PASSWORD \'\' INHERIT;\r\nGRANT pg_monitor TO zbx_monitor;\r\n```\r\n\r\n2. Edit the `pg_hba.conf` configuration file to allow connections for the user `zbx_monitor`. For example, you could add one of the following rows to allow local TCP connections from the same host:\r\n\r\n```bash\r\n# TYPE DATABASE USER ADDRESS METHOD\r\n host all zbx_monitor localhost trust\r\n host all zbx_monitor 127.0.0.1/32 md5\r\n host all zbx_monitor ::1/128 scram-sha-256\r\n```\r\n\r\nFor more information please read the PostgreSQL documentation `https://www.postgresql.org/docs/current/auth-pg-hba-conf.html`.\r\n\r\n3. Set the connection string for the PostgreSQL instance in the `PostgreSQL connection string` host wizard configuration field as URI, such as ``, or specify the named session - ``.\r\n\r\n**Note:** if you want to use SSL/TLS encryption to protect communications with the remote PostgreSQL instance, a named session must be used. In that case, the instance URI should be specified in the `Plugins.PostgreSQL.Sessions.*.Uri` parameter in the PostgreSQL plugin configuration files alongside all the encryption parameters (type, certificate/key filepaths if needed etc.).\r\n\r\nYou can check the [`PostgreSQL plugin documentation`](https://git.zabbix.com/projects/AP/repos/postgresql/browse?at=refs%2Fheads%2Frelease%2F7.4) for details about agent plugin parameters and named sessions.\r\n\r\nAlso, it is assumed that you set up the PostgreSQL instance to work in the desired encryption mode. Check the [`PostgreSQL documentation`](https://www.postgresql.org/docs/current/ssl-tcp.html) for details.\r\n\r\n**Note:** plugin TLS certificate validation relies on checking the Subject Alternative Names (SAN) instead of the Common Name (CN), check the cryptography package [`documentation`](https://pkg.go.dev/crypto/x509) for details.\r\n\r\nFor example, to enable required encryption in transport mode without identity checks you could create the file `/etc/zabbix/zabbix_agent2.d/postgresql_myconn.conf` with the following configuration for the named session `myconn` (replace `` with the address of the PostgreSQL instance):\r\n\r\n```bash\r\nPlugins.PostgreSQL.Sessions.myconn.Uri=tcp://:5432\r\nPlugins.PostgreSQL.Sessions.myconn.TLSConnect=required\r\n```\r\n\r\nThen set the `PostgreSQL connection string` field to `myconn` to use this named session.\r\n\r\n4. Set the password that you specified in step 2 in the `PostgreSQL user password` field.'),
('10649',NULL,'PostgreSQL by Zabbix agent active','3','-1','2','','','PostgreSQL by Zabbix agent active','0',NULL,'This template is designed for the deployment of PostgreSQL monitoring by Zabbix via Zabbix agent and uses user parameters to run SQL queries with the `psql` command-line tool.\r\n\r\nNote:\r\n- The template requires `pg_isready` and `psql` utilities to be installed on the same host with Zabbix agent.\r\n- The template requires files with SQL queries and user parameters that can be found in the Zabbix official repository:\r\nhttps://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/postgresql?at=refs%2Fheads%2Frelease%2F6.0\r\n\r\nSetup:\r\n\r\n1. Deploy Zabbix agent and create the PostgreSQL user for monitoring (`` at your discretion) with proper access rights to your PostgreSQL instance.\r\n\r\nFor PostgreSQL version 10 and above:\r\nCREATE USER zbx_monitor WITH PASSWORD \'\' INHERIT;\r\nGRANT pg_monitor TO zbx_monitor;\r\n\r\nFor PostgreSQL version 9.6 and below:\r\nCREATE USER zbx_monitor WITH PASSWORD \'\';\r\nGRANT SELECT ON pg_stat_database TO zbx_monitor;\r\nALTER USER zbx_monitor WITH SUPERUSER;\r\n\r\n2. Copy the `postgresql/` directory to the `zabbix` user home directory - `/var/lib/zabbix/`. The `postgresql/` directory contains the files with SQL queries needed to obtain metrics from PostgreSQL instance.\r\n\r\nIf the home directory of the `zabbix` user doesn\'t exist, create it first:\r\nmkdir -m u=rwx,g=rwx,o= -p /var/lib/zabbix\r\nchown zabbix:zabbix /var/lib/zabbix\r\n\r\n3. Copy the `template_db_postgresql.conf` file, containing user parameters, to the Zabbix agent configuration directory `/etc/zabbix/zabbix_agentd.d/` and restart Zabbix agent service.\r\n\r\nIf you want to use SSL/TLS encryption to protect communications with the remote PostgreSQL instance, you can modify the connection string in user parameters. For example, to enable required encryption in transport mode without identity checks you could append `?sslmode=required` to the end of the connection string for all keys that use `psql`:\r\nUserParameter=pgsql.bgwriter[*], psql -qtAX postgresql://"$3":"$4"@"$1":"$2"/"$5"?sslmode=required -f "/var/lib/zabbix/postgresql/pgsql.bgwriter.sql"\r\n\r\nConsult the PostgreSQL documentation about protection modes (https://www.postgresql.org/docs/current/libpq-ssl.html#LIBPQ-SSL-PROTECTION) and client connection parameters (https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNECT-SSLMODE).\r\n\r\nAlso, it is assumed that you set up the PostgreSQL instance to work in the desired encryption mode. Check the PostgreSQL documentation (https://www.postgresql.org/docs/current/ssl-tcp.html) for details.\r\n\r\n4. Edit the `pg_hba.conf` configuration file to allow connections for the user `zbx_monitor`. You can check the PostgreSQL documentation for examples (https://www.postgresql.org/docs/current/auth-pg-hba-conf.html).\r\n\r\n5. Specify the host name or IP address in the `{$PG.HOST}` macro. Adjust the port number with `{$PG.PORT}` macro if needed.\r\n\r\n6. Set the password that you specified in step 1 in the macro `{$PG.PASSWORD}`.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/384190-%C2%A0discussion-thread-for-official-zabbix-template-db-postgresql\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','7005acc9123e4bc290805a3a16dab9cf','POSTGRESQL BY ZABBIX AGENT ACTIVE','Zabbix','7.4-2',NULL,'0','1','## Overview\r\n\r\nThis template is designed for the deployment of PostgreSQL monitoring by Zabbix via Zabbix agent and uses user parameters to run SQL queries with the `psql` command-line tool.\r\n\r\n## Setup\r\n\r\n**Note:**\r\n- The template requires `pg_isready` and `psql` utilities to be installed on the same host with Zabbix agent.\r\n\r\n1. Create the PostgreSQL user for monitoring (`` at your discretion) with proper access rights to your PostgreSQL instance.\r\n\r\nFor PostgreSQL version 10 and above:\r\n\r\n```sql\r\nCREATE USER zbx_monitor WITH PASSWORD \'\' INHERIT;\r\nGRANT pg_monitor TO zbx_monitor;\r\n```\r\n\r\nFor PostgreSQL version 9.6 and below:\r\n\r\n```sql\r\nCREATE USER zbx_monitor WITH PASSWORD \'\';\r\nGRANT SELECT ON pg_stat_database TO zbx_monitor;\r\n\r\n-- To collect WAL metrics, the user must have a `superuser` role.\r\nALTER USER zbx_monitor WITH SUPERUSER;\r\n```\r\n\r\n2. Copy the `postgresql/` directory to the `zabbix` user home directory - `/var/lib/zabbix/`. The `postgresql/` directory contains the files with SQL queries needed to obtain metrics from PostgreSQL instance.\r\n\r\nIf the home directory of the `zabbix` user doesn\'t exist, create it first:\r\n\r\n```bash\r\nmkdir -m u=rwx,g=rwx,o= -p /var/lib/zabbix\r\nchown zabbix:zabbix /var/lib/zabbix\r\n```\r\n\r\n3. Copy the `template_db_postgresql.conf` file, containing user parameters, to the Zabbix agent configuration directory `/etc/zabbix/zabbix_agentd.d/` and restart Zabbix agent service.\r\n\r\n**Note:** if you want to use SSL/TLS encryption to protect communications with the remote PostgreSQL instance, you can modify the connection string in user parameters. For example, to enable required encryption in transport mode without identity checks you could append `?sslmode=required` to the end of the connection string for all keys that use `psql`:\r\n\r\n```bash\r\nUserParameter=pgsql.bgwriter[*], psql -qtAX postgresql://"$3":"$4"@"$1":"$2"/"$5"?sslmode=required -f "/var/lib/zabbix/postgresql/pgsql.bgwriter.sql"\r\n```\r\n\r\nConsult the PostgreSQL documentation about [`protection modes`](https://www.postgresql.org/docs/current/libpq-ssl.html#LIBPQ-SSL-PROTECTION) and [`client connection parameters`](https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNECT-SSLMODE).\r\n\r\nAlso, it is assumed that you set up the PostgreSQL instance to work in the desired encryption mode. Check the [`PostgreSQL documentation`](https://www.postgresql.org/docs/current/ssl-tcp.html) for details.\r\n\r\n4. Edit the `pg_hba.conf` configuration file to allow connections for the user `zbx_monitor`. For example, you could add one of the following rows to allow local TCP connections from the same host:\r\n\r\n```bash\r\n# TYPE DATABASE USER ADDRESS METHOD\r\n host all zbx_monitor localhost trust\r\n host all zbx_monitor 127.0.0.1/32 md5\r\n host all zbx_monitor ::1/128 scram-sha-256\r\n```\r\n\r\nFor more information please read the PostgreSQL documentation `https://www.postgresql.org/docs/current/auth-pg-hba-conf.html`.\r\n\r\n5. Specify the host name or IP address in the `PostgreSQL host` host wizard configuration field. Adjust the port number in the `PostgreSQL port` field if needed.\r\n\r\n6. Set the password that you specified in step 1 in the `PostgreSQL user password` field.'),
('10650',NULL,'Nvidia by Zabbix agent 2 active','3','-1','2','','','Nvidia by Zabbix agent 2 active','0',NULL,'This template is designed for Nvidia GPU monitoring and doesn\'t require any external scripts.\r\n1. Setup and configure Zabbix agent 2 compiled with the Nvidia monitoring plugin.\r\n2. Create a host and attach the template to it.\r\nAll Nvidia GPUs will be discovered. Set filters with macros if you want to override default filter parameters.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','7297d66e419543c6b83dd8cfe5eb4fb7','NVIDIA BY ZABBIX AGENT 2 ACTIVE','Zabbix','7.4-1',NULL,'0','0',''),
('10651',NULL,'Nvidia by Zabbix agent 2','3','-1','2','','','Nvidia by Zabbix agent 2','0',NULL,'This template is designed for Nvidia GPU monitoring and doesn\'t require any external scripts.\r\n1. Setup and configure Zabbix agent 2 compiled with the Nvidia monitoring plugin.\r\n2. Create a host with Zabbix agent interface and attach the template to it.\r\nAll Nvidia GPUs will be discovered. Set filters with macros if you want to override default filter parameters.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','32a39c8aca9445df862e9f3e1369c19a','NVIDIA BY ZABBIX AGENT 2','Zabbix','7.4-1',NULL,'0','0',''),
('10652',NULL,'Azure SQL Managed Instance by HTTP','3','-1','2','','','Azure SQL Managed Instance by HTTP','0',NULL,'This template is designed to monitor Azure SQL Managed Instance by HTTP.\r\nIt works without any external scripts and uses the script item.\r\n\r\nSetup:\r\n 1. Create an Azure service principal via the Azure command-line interface (Azure CLI) for your subscription.\r\n `az ad sp create-for-rbac --name zabbix --role reader --scope /subscriptions/`\r\n See https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli for more details.\r\n 2. Link the template to a host.\r\n 3. Configure the macros: {$AZURE.APP.ID}, {$AZURE.PASSWORD}, {$AZURE.TENANT.ID}, {$AZURE.SUBSCRIPTION.ID}, and {$AZURE.RESOURCE.ID}.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','a93f57ccc68e442da79bf4a20fe46570','AZURE SQL MANAGED INSTANCE BY HTTP','Zabbix','7.4-2',NULL,'0','1','## Overview\r\n\r\nThis template is designed to monitor Microsoft Azure SQL Managed Instance by HTTP.\r\nIt works without any external scripts and uses the script item.\r\n\r\n## Setup\r\n\r\n1. Create an Azure service principal via the Azure command-line interface (Azure CLI) for your subscription.\r\n\r\n `az ad sp create-for-rbac --name zabbix --role reader --scope /subscriptions/`\r\n\r\n> See [Azure documentation](https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli) for more details.\r\n\r\n2. Link the template to a host.\r\n3. Configure the macros: `Azure App ID`, `Azure password`, `Azure tenant ID`, `Azure subscription ID`, and `Azure SQL managed instance ID`.'),
('10654',NULL,'Juniper MX by SNMP','3','-1','2','','','Juniper MX by SNMP','0',NULL,'The template for monitoring Juniper MX Series by SNMP.\r\n\r\nMIBs used:\r\nSNMPv2-MIB\r\nEtherLike-MIB\r\nHOST-RESOURCES-MIB\r\nIF-MIB\r\nOSPF-MIB\r\nJUNIPER-ALARM-MIB\r\nJUNIPER-DOM-MIB\r\nJUNIPER-MIB\r\nBGP4-V2-MIB-JUNIPER\r\nOSPFV3-MIB-JUNIPER\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','fe7eb8b22ce84017b07bcab36e9032dc','JUNIPER MX BY SNMP','Zabbix','7.4-1',NULL,'0','0',''),
('10655',NULL,'Palo Alto PA-440 by HTTP','3','-1','2','','','Palo Alto PA-440 by HTTP','0',NULL,'This template is designed for the effortless deployment of Palo Alto PA-440 monitoring by Zabbix via XML API and doesn\'t require any external scripts.\r\n\r\nSetup:\r\n\r\nConfigure a user for monitoring. Note that in order to retrieve the device certificate information, superuser privileges are required. If you opt for a user with limited access (for security reasons), the device certificate expiration metrics will not be discovered.\r\n\r\nSuperuser privileges user (full access to all data):\r\n1. Add a new administrator user. Go to "Device" > "Administrators" and click "Add".\r\n2. Enter the necessary details. Set the "Administrator Type" to "Dynamic" and select the built-in "Superuser" role. Commit the changes.\r\n\r\nLimited privileges user (no access to device certificate data):\r\n1. Create a new Admin Role. Go to "Device" > "Admin Role" and click "Add".\r\n2. Enter the necessary details. Adjust the list of permissions:\r\n- Restrict access to all sections in the "Web UI" tab\r\n- Allow access to the "Configuration" and "Operational Requests" sections in the "XML API" tab\r\n- Check that the access to CLI is set to "None" in the "Command Line" tab\r\n- Restrict access to all sections in the "REST API" tab\r\n3. Add a new administrator user. Go to "Device" > "Administrators" and click "Add".\r\n4. Enter the necessary details. Set the "Administrator Type" to "Role Based" and select the profile that was created in the previous steps. Commit the changes.\r\n\r\nSet the host macros:\r\n1. Set the firewall XML API endpoint URL in the "{$PAN.PA440.API.URL}" macro in the format "://[:port]/api" (port is optional).\r\n2. Set the name of the user that you created in the "{$PAN.PA440.USER}" macro.\r\n3. Set the password of the user that you created in the "{$PAN.PA440.PASSWORD}" macro.\r\n\r\nFor more details about PAN-OS API, refer to the official documentation:\r\nhttps://docs.paloaltonetworks.com/pan-os/11-1/pan-os-panorama-api\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','edc752f178f94b9dbaee459ec7bacc66','PALO ALTO PA-440 BY HTTP','Zabbix','7.4-0',NULL,'0','0',''),
('10656',NULL,'DELL PowerEdge R660 by HTTP','3','-1','2','','','DELL PowerEdge R660 by HTTP','0',NULL,'Template for DELL PowerEdge R660 servers with iDRAC 8/9 firmware 4.32 and later and Redfish API enabled.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/426752-discussion-thread-for-official-zabbix-dell-templates\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','185867ae9b4a46b59d53931d3330c770','DELL POWEREDGE R660 BY HTTP','Zabbix','7.4-1',NULL,'0','0',''),
('10657',NULL,'DELL PowerEdge R660 by SNMP','3','-1','2','','','DELL PowerEdge R660 by SNMP','0',NULL,'Template for DELL PowerEdge R660 servers with iDRAC version 7 and later.\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nIDRAC-MIB-SMIv2\r\nSNMPv2-MIB\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/426752-discussion-thread-for-official-zabbix-dell-templates\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','3ba7dec7c0034d86ad1c73b4f8ee8994','DELL POWEREDGE R660 BY SNMP','Zabbix','7.4-2',NULL,'0','0',''),
('10658',NULL,'DELL PowerEdge R750 by HTTP','3','-1','2','','','DELL PowerEdge R750 by HTTP','0',NULL,'Template for DELL PowerEdge R750 servers with iDRAC 8/9 firmware 4.32 and later and Redfish API enabled.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/426752-discussion-thread-for-official-zabbix-dell-templates\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','42b18986c8b34c2d9c36f9cd00565bd5','DELL POWEREDGE R750 BY HTTP','Zabbix','7.4-1',NULL,'0','0',''),
('10659',NULL,'DELL PowerEdge R750 by SNMP','3','-1','2','','','DELL PowerEdge R750 by SNMP','0',NULL,'Template for DELL PowerEdge R750 servers with iDRAC version 7 and later.\r\n\r\nMIBs used:\r\nHOST-RESOURCES-MIB\r\nIDRAC-MIB-SMIv2\r\nSNMPv2-MIB\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/426752-discussion-thread-for-official-zabbix-dell-templates\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','419145c8af7e4b8eb30af8460bbed566','DELL POWEREDGE R750 BY SNMP','Zabbix','7.4-2',NULL,'0','0',''),
('10660',NULL,'Zabbix proxy health by Zabbix agent','3','-1','2','','','Zabbix proxy health by Zabbix agent','0',NULL,'This template is designed to monitor internal Zabbix metrics on the remote Zabbix proxy via the passive Zabbix agent.\r\n\r\nSpecify the address of the remote Zabbix proxy by changing the {$ZABBIX.PROXY.ADDRESS} and {$ZABBIX.PROXY.PORT} macros. Don\'t forget to adjust the "StatsAllowedIP" parameter in the remote proxy\'s configuration file to allow the collection of statistics.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','8cd15d3b39654eb7b7423e6b109037b2','ZABBIX PROXY HEALTH BY ZABBIX AGENT','Zabbix','7.4-3',NULL,'0','1','## Overview\r\n\r\nThis template is designed to monitor internal Zabbix metrics on the remote Zabbix proxy via the passive Zabbix agent.\r\n\r\n## Setup\r\n\r\nSpecify the address of the remote Zabbix proxy as the values for the `Zabbix proxy Address` and `Zabbix proxy Port` configuration fields. Don\'t forget to adjust the `StatsAllowedIP` parameter in the remote proxy\'s configuration file to allow the collection of statistics.'),
('10661',NULL,'Zabbix proxy health by Zabbix agent active','3','-1','2','','','Zabbix proxy health by Zabbix agent active','0',NULL,'This template is designed to monitor internal Zabbix metrics on the remote Zabbix proxy via the active Zabbix agent.\r\n\r\nSpecify the address of the remote Zabbix proxy by changing the {$ZABBIX.PROXY.ADDRESS} and {$ZABBIX.PROXY.PORT} macros. Don\'t forget to adjust the "StatsAllowedIP" parameter in the remote proxy\'s configuration file to allow the collection of statistics.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','02aac022a62c48bba810d07bbaa712cc','ZABBIX PROXY HEALTH BY ZABBIX AGENT ACTIVE','Zabbix','7.4-3',NULL,'0','1','## Overview\r\n\r\nThis template is designed to monitor internal Zabbix metrics on the remote Zabbix proxy via the active Zabbix agent.\r\n\r\n## Setup\r\n\r\nSpecify the address of the remote Zabbix proxy as the values for the `Zabbix proxy Address` and `Zabbix proxy Port` configuration fields. Don\'t forget to adjust the `StatsAllowedIP` parameter in the remote proxy\'s configuration file to allow the collection of statistics.'),
('10662',NULL,'Zabbix server health by Zabbix agent','3','-1','2','','','Zabbix server health by Zabbix agent','0',NULL,'This template is designed to monitor Zabbix server metrics via the passive Zabbix agent.\r\n\r\nSpecify the address of the remote Zabbix server by changing the {$ZABBIX.SERVER.ADDRESS} and {$ZABBIX.SERVER.PORT} macros. Don\'t forget to adjust the "StatsAllowedIP" parameter in the remote server\'s configuration file to allow the collection of statistics.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','d31c888d12aa4bf68f280bc242501743','ZABBIX SERVER HEALTH BY ZABBIX AGENT','Zabbix','7.4-5',NULL,'0','1','## Overview\r\n\r\nThis template is designed to monitor Zabbix server metrics via the passive Zabbix agent.\r\n\r\n## Setup\r\n\r\nSpecify the address of the remote Zabbix server as the values for the `Zabbix server Address` and `Zabbix server Port` configuration fields. Don\'t forget to adjust the `StatsAllowedIP` parameter in the remote server\'s configuration file to allow the collection of statistics.'),
('10663',NULL,'Zabbix server health by Zabbix agent active','3','-1','2','','','Zabbix server health by Zabbix agent active','0',NULL,'This template is designed to monitor Zabbix server metrics via the active Zabbix agent.\r\n\r\nSpecify the address of the remote Zabbix server by changing the {$ZABBIX.SERVER.ADDRESS} and {$ZABBIX.SERVER.PORT} macros. Don\'t forget to adjust the "StatsAllowedIP" parameter in the remote server\'s configuration file to allow the collection of statistics.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','6d6c147c87de4af1b09cf0f55bac50a0','ZABBIX SERVER HEALTH BY ZABBIX AGENT ACTIVE','Zabbix','7.4-5',NULL,'0','1','## Overview\r\n\r\nThis template is designed to monitor Zabbix server metrics via the active Zabbix agent.\r\n\r\n## Setup\r\n\r\nSpecify the address of the remote Zabbix server as the values for the `Zabbix server Address` and `Zabbix server Port` configuration fields. Don\'t forget to adjust the `StatsAllowedIP` parameter in the remote server\'s configuration file to allow the collection of statistics.'),
('10664',NULL,'Azure Microsoft SQL DTU Database by HTTP','3','-1','2','','','Azure Microsoft SQL DTU Database by HTTP','0',NULL,'This template is designed to monitor Microsoft SQL DTU-based databases via HTTP.\r\nIt works without any external scripts and uses the script item.\r\n\r\nSetup:\r\n 1. Create an Azure service principal via the Azure command-line interface (Azure CLI) for your subscription.\r\n `az ad sp create-for-rbac --name zabbix --role reader --scope /subscriptions/`\r\n See https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli for more details.\r\n 2. Link the template to a host.\r\n 3. Configure the macros: {$AZURE.APP.ID}, {$AZURE.PASSWORD}, {$AZURE.TENANT.ID}, {$AZURE.SUBSCRIPTION.ID} and {$AZURE.RESOURCE.ID}.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','c3a9fa0e07be4c1bbe19ae65c3375d17','AZURE MICROSOFT SQL DTU DATABASE BY HTTP','Zabbix','7.4-1',NULL,'0','1','## Overview\r\n\r\nThis template is designed to monitor Microsoft SQL DTU-based databases via HTTP.\r\nIt works without any external scripts and uses the script item.\r\n\r\n## Setup\r\n\r\n1. Create an Azure service principal via the Azure command-line interface (Azure CLI) for your subscription.\r\n\r\n `az ad sp create-for-rbac --name zabbix --role reader --scope /subscriptions/`\r\n\r\n> See [Azure documentation](https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli) for more details.\r\n\r\n2. Link the template to a host.\r\n3. Configure the macros: `Azure App ID`, `Azure password`, `Azure tenant ID`, `Azure subscription ID` and `Azure SQL DTU-based database ID`.'),
('10665',NULL,'Pure Storage FlashArray v1 by HTTP','3','-1','2','','','Pure Storage FlashArray v1 by HTTP','0',NULL,'Setup:\r\n1. Create a host for the Pure Storage FlashArray device and assign to it the "Pure Storage FlashArray v1 by HTTP" template.\r\n2. Enter your API token from the Purity//FA web interface into the {$PURE.FLASHARRAY.API.TOKEN} macro.\r\n3. Set your Purity//FA web interface URL as the {$PURE.FLASHARRAY.API.URL} macro value.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','ae3ce7156aae4ae79a72742365c884ea','PURE STORAGE FLASHARRAY V1 BY HTTP','Zabbix','7.4-1',NULL,'0','0',''),
('10666',NULL,'Pure Storage FlashArray v2 by HTTP','3','-1','2','','','Pure Storage FlashArray v2 by HTTP','0',NULL,'Setup:\r\n1. Create a host for the Pure Storage FlashArray device and assign to it the "Pure Storage FlashArray v2 by HTTP" template.\r\n2. Enter your API token from the Purity//FA web interface into the {$PURE.FLASHARRAY.API.TOKEN} macro.\r\n3. Set your Purity//FA web interface URL as the {$PURE.FLASHARRAY.API.URL} macro value.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback.\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','44990575121d4798b9e10520604c786c','PURE STORAGE FLASHARRAY V2 BY HTTP','Zabbix','7.4-1',NULL,'0','0',''),
('10667',NULL,'Juniper MX by NETCONF','3','-1','2','','','Juniper MX by NETCONF','0',NULL,'The template for monitoring Juniper MX Series by NETCONF.\r\n\r\nNOTE\r\nThis template uses SSH checks with new `subsystem` in item key, available 7.2 and above.\r\n\r\nFor this template to work, you must enable the NETCONF service. To acquire this information, see the following steps:\r\n\r\n 1. Enable the NETCONF service on either the default NETCONF port (830) or a user-defined port\r\n To use the default NETCONF port (830), include the netconf ssh statement at the [edit system services] hierarchy level:\r\n set netconf ssh\r\n 2. Create a local user account:\r\n set user zabbix class read-only\r\n set plain-text-password\r\n 3. Commit the configuration:\r\n commit\r\n\r\nFor more details read Enable NETCONF Service over SSH https://www.juniper.net/documentation/us/en/software/junos/netconf/topics/topic-map/netconf-ssh-connection.html.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','12af2a9efcc84c3298bf1654aa96c0db','JUNIPER MX BY NETCONF','Zabbix','7.4-0',NULL,'0','0',''),
('10690',NULL,'Azure Backup Jobs by HTTP','3','-1','2','','','Azure Backup Jobs by HTTP','0',NULL,'This template is designed to monitor Azure Backup Jobs via HTTP.\r\nIt works without any external scripts and uses the script item.\r\n\r\nSetup:\r\n 1. Create an Azure service principal via the Azure command-line interface (Azure CLI) for your subscription.\r\n `az ad sp create-for-rbac --name zabbix --role reader --scope /subscriptions/`\r\n See https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli for more details.\r\n 2. Link the template to a host.\r\n 3. Configure the macros: {$AZURE.APP.ID}, {$AZURE.PASSWORD}, {$AZURE.TENANT.ID}, {$AZURE.SUBSCRIPTION.ID}, and {$AZURE.RESOURCE.ID}.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','3d527f609e344ed8a4ec19762c31c619','AZURE BACKUP JOBS BY HTTP','Zabbix','7.4-1',NULL,'0','1','## Overview\r\n\r\nThis template is designed to monitor Microsoft Azure Backup Jobs via HTTP.\r\nIt works without any external scripts and uses the script item.\r\n\r\n## Setup\r\n\r\n1. Create an Azure service principal via the Azure command-line interface (Azure CLI) for your subscription.\r\n\r\n `az ad sp create-for-rbac --name zabbix --role reader --scope /subscriptions/`\r\n\r\n> See [Azure documentation](https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli) for more details.\r\n\r\n2. Link the template to a host.\r\n3. Configure the macros: `Azure App ID`, `Azure password`, `Azure tenant ID`, `Azure subscription ID`, `Azure Vault ID` and `Backup jobs period`.'),
('10716',NULL,'Acronis CPC MSP {#SCOPE}','0','-1','2','','','Acronis CPC MSP {#SCOPE}','2',NULL,'','1','1','','','','','0','0','bbdc747270f64876bc701dd87c27dbbe','ACRONIS CPC MSP {#SCOPE}','','',NULL,'0','0',''),
('10717',NULL,'Consul {#NODE_NAME}','0','-1','2','','','Consul {#NODE_NAME}','2',NULL,'','1','1','','','','','0','1','20efdd208e1548a7877a970e1600e5ba','CONSUL {#NODE_NAME}','','',NULL,'0','0',''),
('10718',NULL,'{#SERVER.NAME}','0','-1','2','','','Control-M server [{#SERVER.NAME}]','2',NULL,'','1','1','','','','','0','0','1ade45fcbb9e407ca32542564b12f2b1','CONTROL-M SERVER [{#SERVER.NAME}]','','',NULL,'0','0',''),
('10719',NULL,'{#NAME}','1','-1','2','','','{#NAME}','2',NULL,'','1','1','','','','','1','1','bfcbf26edd704bdfaa65e244a987839e','{#NAME}','','',NULL,'0','0',''),
('10720',NULL,'API {#NAME}','0','-1','2','','','API {#NAME}','2',NULL,'','1','1','','','','','0','1','a67ac5100e6d499088e4c81856f947fc','API {#NAME}','','',NULL,'0','0',''),
('10721',NULL,'Controller manager {#NAME}','0','-1','2','','','Controller manager {#NAME}','2',NULL,'','1','1','','','','','0','1','9d529f3924fc4831a62fb1eec79b64d7','CONTROLLER MANAGER {#NAME}','','',NULL,'0','0',''),
('10722',NULL,'Kubelet {#NAME}','0','-1','2','','','Kubelet {#NAME}','2',NULL,'','1','1','','','','','0','1','c1c4807f378a47dfa59e9bbc8e43f5e2','KUBELET {#NAME}','','',NULL,'0','0',''),
('10723',NULL,'Scheduler {#NAME}','0','-1','2','','','Scheduler {#NAME}','2',NULL,'','1','1','','','','','0','1','46da4b85c58f4c59825e61778a64a58e','SCHEDULER {#NAME}','','',NULL,'0','0',''),
('10724',NULL,'{#CLIENT.ID}','0','-1','2','','','{#CLIENT.NAME}-client','2',NULL,'','1','1','','','','','0','1','8284dcf3055749d3b27720526c665e34','{#CLIENT.NAME}-CLIENT','','',NULL,'0','0',''),
('10725',NULL,'{#SERVER.ID}','0','-1','2','','','{#SERVER.NAME}','2',NULL,'','1','1','','','','','0','1','addb1ce7995f44089a13128052171445','{#SERVER.NAME}','','',NULL,'0','0',''),
('10726',NULL,'{#NUTANIX.CLUSTER.UUID}','0','-1','2','','','{#NUTANIX.CLUSTER.NAME}','2',NULL,'','1','1','','','','','0','0','c1f630a16e304dcda7771895344638c7','{#NUTANIX.CLUSTER.NAME}','','',NULL,'0','0',''),
('10727',NULL,'{#NUTANIX.HOST.UUID}','0','-1','2','','','{#NUTANIX.HOST.NAME}','2',NULL,'','1','1','','','','','0','0','24ccbeb75dc949ccb6c094416618443b','{#NUTANIX.HOST.NAME}','','',NULL,'0','0',''),
('10728',NULL,'{#HV.UUID}','0','-1','2','','','{#HV.NAME}','2',NULL,'','1','1','','','','','0','1','051a1469d4d045cbbf818fcc843a352e','{#HV.NAME}','','',NULL,'0','0',''),
('10729',NULL,'{#VM.UUID}','0','-1','2','','','{#VM.NAME}','2',NULL,'','1','1','','','','','0','1','23b9ae9d6f33414880db1cb107115810','{#VM.NAME}','','',NULL,'0','0',''),
('10730',NULL,'{#HV.UUID}','0','-1','2','','','{#HV.NAME}','2',NULL,'','1','1','','','','','0','1','51cf7ea3e6a74f7e8dde628dbc5347a3','{#HV.NAME}','','',NULL,'0','0',''),
('10731',NULL,'{#VM.DNS}','0','-1','2','','','{#VM.NAME}','2',NULL,'','1','1','','','','','0','1','a12e25c500a14fcf99295c207371ca1b','{#VM.NAME}','','',NULL,'0','0',''),
('10732',NULL,'{#AWS.EC2.INSTANCE.ID}','0','-1','2','','','{#AWS.EC2.INSTANCE.NAME}','2',NULL,'','1','1','','','','','0','1','c4c830c727294b07926c39b00cf19046','{#AWS.EC2.INSTANCE.NAME}','','',NULL,'0','0',''),
('10733',NULL,'{#AWS.ECS.CLUSTER.NAME}','0','-1','2','','','{#AWS.ECS.CLUSTER.NAME}','2',NULL,'','1','1','','','','','0','0','71072e5a149e45b293946866f8220c07','{#AWS.ECS.CLUSTER.NAME}','','',NULL,'0','0',''),
('10734',NULL,'{#AWS.ELB.NAME}','0','-1','2','','','{#AWS.ELB.NAME}','2',NULL,'','1','1','','','','','0','0','2c31bc79209e41978f76315406339769','{#AWS.ELB.NAME}','','',NULL,'0','0',''),
('10735',NULL,'{#AWS.LAMBDA.NAME}','0','-1','2','','','{#AWS.LAMBDA.NAME}','2',NULL,'','1','1','','','','','0','0','7b468bda682c402b96fd55210aa85155','{#AWS.LAMBDA.NAME}','','',NULL,'0','0',''),
('10736',NULL,'{#AWS.RDS.INSTANCE.ID}','0','-1','2','','','{#AWS.RDS.INSTANCE.ID}','2',NULL,'','1','1','','','','','0','1','799663c52a644f78aa3b3c14d4cc7235','{#AWS.RDS.INSTANCE.ID}','','',NULL,'0','0',''),
('10737',NULL,'{#AWS.S3.NAME}','0','-1','2','','','{#AWS.S3.NAME}','2',NULL,'','1','1','','','','','0','1','e45bd9810ea14718b17b875aad3fc544','{#AWS.S3.NAME}','','',NULL,'0','0',''),
('10738',NULL,'Azure Cosmos DB {#NAME}','0','-1','2','','','Azure Cosmos DB {#NAME}','2',NULL,'','1','1','','','','','0','0','16eec30e921e4627b3599b4d06e48072','AZURE COSMOS DB {#NAME}','','',NULL,'0','0',''),
('10739',NULL,'Azure Microsoft SQL database {#NAME}','0','-1','2','','','Azure Microsoft SQL database {#NAME}','2',NULL,'','1','1','','','','','0','0','2aaf7dc7e9f04ccf9dd91fcd803fa076','AZURE MICROSOFT SQL DATABASE {#NAME}','','',NULL,'0','0',''),
('10740',NULL,'Azure MySQL server {#NAME}','0','-1','2','','','Azure MySQL server {#NAME}','2',NULL,'','1','1','','','','','0','0','55b87078c14c4561b53e64af5ed77d61','AZURE MYSQL SERVER {#NAME}','','',NULL,'0','0',''),
('10741',NULL,'Azure PostgreSQL server {#NAME}','0','-1','2','','','Azure PostgreSQL server {#NAME}','2',NULL,'','1','1','','','','','0','0','54f0e0ec288f4feb9a2dc58a8726bd1d','AZURE POSTGRESQL SERVER {#NAME}','','',NULL,'0','0',''),
('10742',NULL,'Azure VM scale set {#NAME}','0','-1','2','','','Azure VM scale set {#NAME}','2',NULL,'','1','1','','','','','0','0','1cbeb513fe3648b6829836800952c9c7','AZURE VM SCALE SET {#NAME}','','',NULL,'0','0',''),
('10743',NULL,'Azure SQL managed instance {#NAME}','0','-1','2','','','Azure SQL managed instance {#NAME}','2',NULL,'','1','1','','','','','0','0','5211d232275145598294fc35bac96075','AZURE SQL MANAGED INSTANCE {#NAME}','','',NULL,'0','0',''),
('10744',NULL,'Azure vault {#NAME}','0','-1','2','','','Azure vault {#NAME}','2',NULL,'','1','1','','','','','0','0','fb057eebe3fb4d2483c8a3e7fe4c7b07','AZURE VAULT {#NAME}','','',NULL,'0','0',''),
('10745',NULL,'Azure virtual machine {#NAME}','0','-1','2','','','Azure virtual machine {#NAME}','2',NULL,'','1','1','','','','','0','0','d08c0ee33c924b28bf1fed571da6c7f4','AZURE VIRTUAL MACHINE {#NAME}','','',NULL,'0','0',''),
('10746',NULL,'{#GCP.PROJECT.ID}-{#CLOUD_SQL.INSTANCE.NAME}','0','-1','2','','','{#CLOUD_SQL.INSTANCE.NAME}','2',NULL,'','1','1','','','','','0','1','edc6ab9314ed410b8a3cf6bfedff51ab','{#CLOUD_SQL.INSTANCE.NAME}','','',NULL,'0','0',''),
('10747',NULL,'{#GCP.PROJECT.ID}-{#CLOUD_SQL.INSTANCE.NAME}','0','-1','2','','','{#CLOUD_SQL.INSTANCE.NAME}','2',NULL,'','1','1','','','','','0','1','8b2556b881b14b86a98f90a447ae9734','{#CLOUD_SQL.INSTANCE.NAME}','','',NULL,'0','0',''),
('10748',NULL,'{#GCP.PROJECT.ID}-{#CLOUD_SQL.INSTANCE.NAME}','0','-1','2','','','{#CLOUD_SQL.INSTANCE.NAME}','2',NULL,'','1','1','','','','','0','1','0fbbc550fda448d39aad6d0710f28b6a','{#CLOUD_SQL.INSTANCE.NAME}','','',NULL,'0','0',''),
('10749',NULL,'{#GCE.INSTANCE.ID}','0','-1','2','','','{#GCE.INSTANCE.NAME}','2',NULL,'','1','1','','','','','0','1','cb22d82a12814afb8ba833c649d575c4','{#GCE.INSTANCE.NAME}','','',NULL,'0','0',''),
('10750',NULL,'OpenStack {#SERVICE_NAME}','0','-1','2','','','OpenStack {#SERVICE_NAME}','2',NULL,'','1','1','','','','','0','0','580d769292ec48379c5b84cd5c72533b','OPENSTACK {#SERVICE_NAME}','','',NULL,'0','0',''),
('10751',NULL,'OCI Block Volume - {#ID}','0','-1','2','','','OCI Block Volume - {#ID}','2',NULL,'','1','1','','','','','0','0','5030f7dadd5b40558e07a4545d7346bd','OCI BLOCK VOLUME - {#ID}','','',NULL,'0','0',''),
('10752',NULL,'OCI Boot Volume - {#ID}','0','-1','2','','','OCI Boot Volume - {#ID}','2',NULL,'','1','1','','','','','0','0','914b808a4a014f6e824a3b9c53f1b492','OCI BOOT VOLUME - {#ID}','','',NULL,'0','0',''),
('10753',NULL,'OCI Compute - {#ID}','0','-1','2','','','OCI Compute - {#ID}','2',NULL,'','1','1','','','','','0','0','9337374066e04291b2f94f8ad5470f54','OCI COMPUTE - {#ID}','','',NULL,'0','0',''),
('10754',NULL,'OCI Autonomous DB - {#NAME}','0','-1','2','','','OCI Autonomous DB - {#NAME}','2',NULL,'','1','1','','','','','0','0','88d0076a057c441ab5a531cfcb650e84','OCI AUTONOMOUS DB - {#NAME}','','',NULL,'0','0',''),
('10755',NULL,'OCI Bucket - {#NAME}','0','-1','2','','','OCI Bucket - {#NAME}','2',NULL,'','1','1','','','','','0','0','f71e979727ce42daa80a34da5ffb296f','OCI BUCKET - {#NAME}','','',NULL,'0','0',''),
('10756',NULL,'OCI VCN - {#ID}','0','-1','2','','','OCI VCN - {#ID}','2',NULL,'','1','1','','','','','0','0','5329fee3dbc643ebbb99472c67a0a207','OCI VCN - {#ID}','','',NULL,'0','0',''),
('10757',NULL,'{#HOSTNAME}','0','-1','2','','','{#HOSTNAME}','2',NULL,'','1','1','','','','','0','0','809db5d8d32a45898e8401f288a42fac','{#HOSTNAME}','','',NULL,'0','0',''),
('10758',NULL,'{#HOSTNAME}','0','-1','2','','','{#HOSTNAME}','2',NULL,'','1','1','','','','','0','0','3fcd3244b1234186bda9a35c8f61c850','{#HOSTNAME}','','',NULL,'0','0',''),
('10759',NULL,'{#CLUSTER.ID}','0','-1','2','','','YugabyteDB Cluster [{#CLUSTER.NAME}]','2',NULL,'','1','1','','','','','0','0','1a7ec22ad5ad41e0bcb04c01c2c45e4e','YUGABYTEDB CLUSTER [{#CLUSTER.NAME}]','','',NULL,'0','0',''),
('10760',NULL,'{#UUID}','0','-1','2','','','[{#TYPE}] {#NAME}','2',NULL,'','1','1','','','','','0','1','8c53a2dded4a47cba1eb3398aff888d7','[{#TYPE}] {#NAME}','','',NULL,'0','0',''),
('10761',NULL,'{#SERIAL}','0','-1','2','','','[{#SERIAL}] [{#PRODUCT_TYPE}] {#NAME}','2',NULL,'','1','1','','','','','0','0','86d599f384d94b368508a170911213ec','[{#SERIAL}] [{#PRODUCT_TYPE}] {#NAME}','','',NULL,'0','0',''),
('10762',NULL,'meraki-organization-{#ID}','0','-1','2','','','[{#REGION}] {#NAME}','2',NULL,'','1','1','','','','','0','0','59cd2e995b814d7e9f8411dbc7420c76','[{#REGION}] {#NAME}','','',NULL,'0','0',''),
('10763',NULL,'Cisco Secure Firewall Threat Defense by HTTP','3','-1','2','','','Cisco Secure Firewall Threat Defense by HTTP','0',NULL,'This template is designed to monitor Cisco Secure Firewall Threat Defense devices using the REST API.\r\nIt provides metrics such as CPU and memory usage, interface statistics, connection tracking, and more.\r\nThe template includes items, triggers, and graphs to help you monitor the performance and health of your Cisco Secure Firewall Threat Defense devices.\r\nIt is based on the Cisco Secure Firewall Threat Defense REST API and requires the API URL, username, and password to be set as macros.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','1818cd052f174772a48bfc275d0016dd','CISCO SECURE FIREWALL THREAT DEFENSE BY HTTP','Zabbix','7.4-0',NULL,'0','1','## Overview\r\n\r\nThis template provides monitoring capabilities for Cisco Secure Firewall Threat Defense devices using the REST API.\r\nIt includes metrics for CPU and memory usage, interface statistics, connection tracking, and more.\r\n\r\n## Setup\r\n\r\nBasic Auth is formed using the username and password of an administrator account that is used to log in to either FDM (Firepower Device Manager) or FMC (Firepower Management Center), depending on your deployment.\r\n\r\nUse the credentials in `API username` and `API password`.\r\nThe `API URL` of the Cisco Secure Firewall Threat Defense REST API, e.g., `https://ftd.example.com/api/fdm/latest`.'),
('10764',NULL,'AWS Backup Vault by HTTP','3','-1','2','','','AWS Backup Vault by HTTP','0',NULL,'The template is designed to monitor AWS Backup vaults and jobs by HTTP via Zabbix, and it works without any external scripts.\r\nDon\'t forget to read the README.md for the correct setup of the template.\r\n\r\nYou can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback\r\n\r\nGenerated by official Zabbix template tool "Templator"','1','1','','','','','0','0','024cf4f0711c4c39a4e016858efc5e37','AWS BACKUP VAULT BY HTTP','Zabbix','7.4-0',NULL,'0','1','## Overview\r\n\r\nThis template uses the AWS Backup API calls to list and retrieve metrics.\r\nFor more information, please refer to the [AWS Backup API]https://docs.aws.amazon.com/aws-backup/latest/devguide/api-reference.html) page.\r\n\r\nAdditional information about metrics and API methods used in the template:\r\n* [Metrics related to a Backup vault](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_BackupVaultListMember.html)\r\n* [Metrics related to a Backup job](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_BackupJob.html)\r\n\r\n\r\n## Setup\r\n\r\nThe template gets AWS Backup vault metrics and uses the script item to make HTTP requests to the AWS Backup API.\r\n\r\nBefore using the template, you need to create an IAM policy with the necessary permissions for the Zabbix role in your AWS account.\r\n\r\n### Required Permissions\r\nAdd the following required permissions to your Zabbix IAM policy in order to collect AWS Backup vaults and jobs.\r\n\r\n```json\r\n{\r\n "Version":"2012-10-17",\r\n "Statement":[\r\n {\r\n "Action":[\r\n "backup:ListBackupVaults",\r\n "backup:ListBackupJobs",\r\n "backup:ListCopyJobs",\r\n "backup:ListRestoreJobs"\r\n ],\r\n "Effect":"Allow",\r\n "Resource":"*"\r\n }\r\n ]\r\n }\r\n```\r\n\r\n### Access Key Authorization\r\nIf you are using access key authorization, you need to generate an access key and secret key for an IAM user with the necessary permissions:\r\n\r\n1. Create an IAM user with programmatic access.\r\n2. Attach the required policy to the IAM user.\r\n3. Generate an access key and secret key.\r\n4. Use the generated credentials in the macros `{$AWS.ACCESS.KEY.ID}` and `{$AWS.SECRET.ACCESS.KEY}`.\r\n\r\n### Assume Role Authorization\r\nFor using assume role authorization, add the appropriate permissions to the role you are using:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Action": "sts:AssumeRole",\r\n "Resource": "arn:aws:iam::{Account}:user/{UserName}"\r\n },\r\n {\r\n "Effect": "Allow",\r\n "Action": [\r\n "backup:ListBackupVaults",\r\n "backup:ListBackupJobs",\r\n "backup:ListCopyJobs",\r\n "backup:ListRestoreJobs"\r\n ],\r\n "Resource": "*"\r\n }\r\n ]\r\n}\r\n```\r\n\r\n#### Trust Relationships for Assume Role Authorization\r\nNext, add a principal to the trust relationships of the role you are using:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Principal": {\r\n "AWS": "arn:aws:iam::{Account}:user/{UserName}"\r\n },\r\n "Action": "sts:AssumeRole"\r\n }\r\n ]\r\n}\r\n```\r\nSet the following macros: `{$AWS.ACCESS.KEY.ID}`, `{$AWS.SECRET.ACCESS.KEY}`, `{$AWS.STS.REGION}`, `{$AWS.ASSUME.ROLE.ARN}`.\r\n\r\n### Role-Based Authorization\r\nIf you are using role-based authorization, set the appropriate permissions:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Action": "iam:PassRole",\r\n "Resource": "arn:aws:iam::<<--account-id-->>:role/<<--role_name-->>"\r\n },\r\n {\r\n "Sid": "VisualEditor1",\r\n "Effect": "Allow",\r\n "Action": [\r\n "backup:ListBackupVaults",\r\n "backup:ListBackupJobs",\r\n "backup:ListCopyJobs",\r\n "backup:ListRestoreJobs"\r\n ],\r\n "Resource": "*"\r\n }\r\n ]\r\n}\r\n```\r\n\r\n#### Trust Relationships for Role-Based Authorization\r\nNext, add a principal to the trust relationships of the role you are using:\r\n\r\n```json\r\n{\r\n "Version": "2012-10-17",\r\n "Statement": [\r\n {\r\n "Effect": "Allow",\r\n "Principal": {\r\n "Service": [\r\n "backup.amazonaws.com"\r\n ]\r\n },\r\n "Action": [\r\n "sts:AssumeRole"\r\n ]\r\n }\r\n ]\r\n}\r\n```\r\n\r\n**Note**: Using role-based authorization is only possible when you use a Zabbix server or proxy inside AWS.\r\n\r\nSet the macros: `{$AWS.AUTH_TYPE}`, `{$AWS.REGION}`, and `{$AWS.BACKUP_VAULT.NAME}`.\r\n\r\nFor more information about managing access keys, see the [official AWS documentation](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys).\r\n\r\nSee the section below for a list of macros used for LLD filters.'),
('10765',NULL,'{#AWS.BACKUP_VAULT.NAME}','0','-1','2','','','{#AWS.BACKUP_VAULT.NAME}','2',NULL,'','1','1','','','','','0','0','44f23ddbb22646aea4db43a90646f695','{#AWS.BACKUP_VAULT.NAME}','','',NULL,'0','0','');
INSERT INTO `hgset_group` (`hgsetid`,`groupid`) VALUES ('1','15'),
('2','18'),
('3','17'),
('4','12'),
('4','9'),
('5','21'),
('6','4'),
('7','9'),
('8','12'),
('9','16'),
('10','11'),
('11','10'),
('12','13');
INSERT INTO `host_hgset` (`hostid`,`hgsetid`) VALUES ('10001','11'),
('10047','8'),
('10048','8'),
('10074','11'),
('10075','11'),
('10076','11'),
('10077','11'),
('10078','11'),
('10079','11'),
('10081','11'),
('10084','6'),
('10169','8'),
('10171','10'),
('10172','10'),
('10173','8'),
('10174','8'),
('10175','8'),
('10207','7'),
('10208','7'),
('10210','7'),
('10211','7'),
('10218','7'),
('10220','7'),
('10221','7'),
('10222','7'),
('10223','7'),
('10224','7'),
('10226','7'),
('10227','7'),
('10229','7'),
('10230','7'),
('10231','7'),
('10233','7'),
('10234','7'),
('10235','7'),
('10236','7'),
('10237','7'),
('10248','11'),
('10249','11'),
('10250','7'),
('10251','7'),
('10253','7'),
('10254','7'),
('10255','10'),
('10256','10'),
('10258','10'),
('10259','10'),
('10260','8'),
('10261','8'),
('10262','8'),
('10264','8'),
('10265','8'),
('10266','8'),
('10267','8'),
('10285','11'),
('10300','8'),
('10301','8'),
('10302','8'),
('10303','8'),
('10304','10'),
('10308','8'),
('10309','8'),
('10310','12'),
('10316','12'),
('10317','12'),
('10318','8'),
('10319','8'),
('10320','12'),
('10321','10'),
('10322','8'),
('10323','12'),
('10324','8'),
('10325','8'),
('10326','8'),
('10327','12'),
('10328','12'),
('10329','12'),
('10330','8'),
('10331','8'),
('10335','12'),
('10336','1'),
('10343','11'),
('10351','11'),
('10353','8'),
('10355','8'),
('10357','12'),
('10358','8'),
('10359','8'),
('10360','8'),
('10361','8'),
('10362','8'),
('10363','8'),
('10364','8'),
('10365','8'),
('10366','8'),
('10369','8'),
('10370','12'),
('10371','7'),
('10372','7'),
('10373','7'),
('10374','7'),
('10375','7'),
('10376','7'),
('10377','7'),
('10378','9'),
('10379','8'),
('10380','3'),
('10381','12'),
('10382','8'),
('10385','9'),
('10386','12'),
('10387','12'),
('10390','7'),
('10391','7'),
('10392','7'),
('10393','7'),
('10394','7'),
('10395','2'),
('10396','9'),
('10397','12'),
('10398','12'),
('10399','12'),
('10400','2'),
('10401','2'),
('10402','2'),
('10403','2'),
('10404','2'),
('10406','2'),
('10407','2'),
('10408','2'),
('10409','2'),
('10410','8'),
('10411','8'),
('10412','2'),
('10413','8'),
('10414','8'),
('10415','8'),
('10416','8'),
('10417','12'),
('10418','7'),
('10419','7'),
('10420','7'),
('10421','7'),
('10422','7'),
('10423','7'),
('10424','7'),
('10425','7'),
('10426','7'),
('10427','7'),
('10428','7'),
('10429','7'),
('10430','7'),
('10431','7'),
('10432','7'),
('10433','7'),
('10434','10'),
('10435','10'),
('10436','10'),
('10437','10'),
('10438','10'),
('10439','10'),
('10440','10'),
('10441','10'),
('10442','10'),
('10443','10'),
('10444','10'),
('10445','10'),
('10446','10'),
('10447','8'),
('10448','8'),
('10449','7'),
('10450','7'),
('10451','7'),
('10452','7'),
('10453','7'),
('10454','7'),
('10455','7'),
('10456','7'),
('10457','7'),
('10458','7'),
('10459','7'),
('10460','7'),
('10461','7'),
('10462','7'),
('10463','7'),
('10464','7'),
('10465','7'),
('10466','7'),
('10467','7'),
('10468','7'),
('10469','7'),
('10470','7'),
('10471','7'),
('10472','7'),
('10473','7'),
('10474','7'),
('10475','7'),
('10476','7'),
('10477','7'),
('10478','7'),
('10479','7'),
('10480','7'),
('10481','7'),
('10482','7'),
('10483','7'),
('10484','7'),
('10485','7'),
('10486','7'),
('10487','7'),
('10488','7'),
('10489','7'),
('10490','7'),
('10491','7'),
('10492','7'),
('10493','7'),
('10494','7'),
('10495','7'),
('10496','7'),
('10497','7'),
('10498','7'),
('10499','7'),
('10500','7'),
('10501','7'),
('10502','7'),
('10503','7'),
('10504','8'),
('10505','8'),
('10506','8'),
('10507','8'),
('10509','8'),
('10510','8'),
('10515','8'),
('10516','8'),
('10517','8'),
('10518','8'),
('10519','12'),
('10520','8'),
('10521','8'),
('10522','8'),
('10524','9'),
('10525','9'),
('10526','9'),
('10527','5'),
('10528','8'),
('10529','5'),
('10530','5'),
('10531','5'),
('10532','5'),
('10534','10'),
('10535','5'),
('10539','5'),
('10540','5'),
('10543','5'),
('10544','5'),
('10546','4'),
('10547','4'),
('10548','4'),
('10551','7'),
('10552','8'),
('10553','8'),
('10555','8'),
('10556','8'),
('10557','5'),
('10558','5'),
('10560','8'),
('10561','8'),
('10562','8'),
('10563','7'),
('10564','7'),
('10565','10'),
('10566','10'),
('10568','5'),
('10570','5'),
('10571','5'),
('10572','5'),
('10573','5'),
('10574','5'),
('10575','5'),
('10576','5'),
('10577','5'),
('10582','5'),
('10583','5'),
('10584','5'),
('10586','5'),
('10587','5'),
('10589','12'),
('10590','4'),
('10591','4'),
('10593','8'),
('10594','8'),
('10595','8'),
('10596','8'),
('10599','8'),
('10600','8'),
('10602','8'),
('10603','7'),
('10604','7'),
('10605','10'),
('10606','5'),
('10607','5'),
('10609','12'),
('10610','12'),
('10611','12'),
('10613','7'),
('10614','5'),
('10615','5'),
('10616','5'),
('10617','5'),
('10618','5'),
('10619','5'),
('10620','5'),
('10627','5'),
('10628','8'),
('10629','8'),
('10630','8'),
('10631','8'),
('10632','5'),
('10634','5'),
('10636','9'),
('10637','8'),
('10638','8'),
('10639','8'),
('10640','8'),
('10641','8'),
('10642','8'),
('10645','8'),
('10646','12'),
('10647','12'),
('10648','12'),
('10649','12'),
('10650','8'),
('10651','8'),
('10652','5'),
('10654','7'),
('10655','7'),
('10656','10'),
('10657','10'),
('10658','10'),
('10659','10'),
('10660','8'),
('10661','8'),
('10662','8'),
('10663','8'),
('10664','5'),
('10665','9'),
('10666','9'),
('10667','7'),
('10690','5'),
('10763','7'),
('10764','5');
INSERT INTO `group_prototype` (`group_prototypeid`,`hostid`,`name`,`groupid`,`templateid`) VALUES ('280','10716','','19',NULL),
('281','10717','','19',NULL),
('282','10717','Consul cluster/{#NODE_DATACENTER}',NULL,NULL),
('283','10718','','19',NULL),
('284','10718','Control-M/{#SERVER.NAME}',NULL,NULL),
('285','10719','','19',NULL),
('286','10719','{#CLUSTER_HOSTNAME}: Kubernetes/Nodes/Role: {#ROLES}',NULL,NULL),
('287','10720','','19',NULL),
('288','10721','','19',NULL),
('289','10722','','19',NULL),
('290','10723','','19',NULL),
('291','10720','{#CLUSTER_HOSTNAME}: Kubernetes/Components: {#COMPONENT.API}',NULL,NULL),
('292','10721','{#CLUSTER_HOSTNAME}: Kubernetes/Components: {#COMPONENT.CONTROLLER}',NULL,NULL),
('293','10722','{#CLUSTER_HOSTNAME}: Kubernetes/Components: {#COMPONENT}',NULL,NULL),
('294','10723','{#CLUSTER_HOSTNAME}: Kubernetes/Components: {#COMPONENT.SCHEDULER}',NULL,NULL),
('295','10724','','19',NULL),
('296','10725','','19',NULL),
('297','10726','','19',NULL),
('298','10727','','19',NULL),
('299','10728','','19',NULL),
('300','10729','','19',NULL),
('301','10728','{#CLUSTER.NAME} (hypervisor)',NULL,NULL),
('302','10728','{#DATACENTER.NAME}',NULL,NULL),
('303','10729','{#CLUSTER.NAME} (vm)',NULL,NULL),
('304','10729','{#DATACENTER.NAME}/{#VM.FOLDER} (vm)',NULL,NULL),
('305','10729','{#HV.NAME}',NULL,NULL),
('306','10730','','19',NULL),
('307','10731','','19',NULL),
('308','10730','{#CLUSTER.NAME} (hypervisor)',NULL,NULL),
('309','10730','{#DATACENTER.NAME}',NULL,NULL),
('310','10731','{#CLUSTER.NAME} (vm)',NULL,NULL),
('311','10731','{#DATACENTER.NAME}/{#VM.FOLDER} (vm)',NULL,NULL),
('312','10731','{#HV.NAME}',NULL,NULL),
('313','10732','','6',NULL),
('314','10733','','19',NULL),
('315','10734','','19',NULL),
('316','10735','','19',NULL),
('317','10736','','20',NULL),
('318','10737','','19',NULL),
('319','10738','','20',NULL),
('320','10739','','20',NULL),
('321','10740','','20',NULL),
('322','10741','','20',NULL),
('323','10742','','6',NULL),
('324','10743','','20',NULL),
('325','10744','','19',NULL),
('326','10745','','6',NULL),
('327','10746','','20',NULL),
('328','10747','','20',NULL),
('329','10748','','20',NULL),
('330','10749','','6',NULL),
('331','10750','','6',NULL),
('332','10751','','19',NULL),
('333','10752','','19',NULL),
('334','10753','','6',NULL),
('335','10754','','20',NULL),
('336','10755','','19',NULL),
('337','10756','','19',NULL),
('338','10757','','20',NULL),
('339','10758','','20',NULL),
('340','10757','MongoDB sharded cluster/{#REPLICASET}',NULL,NULL),
('341','10758','MongoDB sharded cluster/{#ID}',NULL,NULL),
('342','10759','','20',NULL),
('343','10760','','19',NULL),
('344','10760','Cisco SD-WAN/{#TYPE}',NULL,NULL),
('345','10761','','19',NULL),
('346','10762','','19',NULL),
('347','10762','{#REGION}',NULL,NULL),
('348','10765','','19',NULL);
INSERT INTO `interface` (`interfaceid`,`hostid`,`main`,`type`,`useip`,`ip`,`dns`,`port`) VALUES ('1','10084','1','1','1','127.0.0.1','','10050'),
('56','10717','1','1','1','{#NODE_ADDRESS}','','10050'),
('57','10719','1','1','1','{#IP}','','10050'),
('58','10720','1','1','1','{#IP}','','10050'),
('59','10721','1','1','1','{#IP}','','10050'),
('60','10722','1','1','1','{#IP}','','10050'),
('61','10723','1','1','1','{#IP}','','10050'),
('62','10724','1','1','1','{#CLIENT.IP}','','10050'),
('63','10725','1','1','1','{#SERVER.IP}','','10050'),
('64','10728','1','1','1','{#HV.IP}','','10050'),
('65','10729','1','1','1','{#VM.IP}','','10050'),
('66','10730','1','1','1','{#HV.IP}','','10050'),
('67','10731','1','1','1','{#VM.IP}','','10050'),
('68','10732','1','1','1','{#AWS.EC2.INSTANCE.ID}','','10050'),
('69','10736','1','1','1','{#AWS.RDS.INSTANCE.ID}','','10050'),
('70','10737','1','1','1','{#AWS.S3.NAME}','','10050'),
('71','10746','0','1','1','{#CLOUD_SQL.INSTANCE.EXT.IP}','external.ip','10050'),
('72','10746','1','1','1','{#CLOUD_SQL.INSTANCE.IP}','internal.ip','10050'),
('73','10747','0','1','1','{#CLOUD_SQL.INSTANCE.EXT.IP}','external.ip','10050'),
('74','10747','1','1','1','{#CLOUD_SQL.INSTANCE.IP}','internal.ip','10050'),
('75','10748','0','1','1','{#CLOUD_SQL.INSTANCE.EXT.IP}','external.ip','10050'),
('76','10748','1','1','1','{#CLOUD_SQL.INSTANCE.IP}','internal.ip','10050'),
('77','10749','0','1','1','{#GCE.INSTANCE.EXT.IP}','external.ip','10050'),
('78','10749','1','1','1','{#GCE.INSTANCE.IP}','internal.ip','10050'),
('79','10760','0','1','1','{#INT.IP}','internal.ip','10050'),
('80','10760','1','1','1','{#IP}','external.ip','10050');
INSERT INTO `valuemap` (`valuemapid`,`hostid`,`name`,`uuid`) VALUES ('13','10264','Service state','452297e814a84b08a72730a7b777e378'),
('14','10265','Service state','a5d1f911fb264bd4bc087ea582626d7f'),
('15','10266','Service state','53c8528c18814f30a45d1540ab9e5c00'),
('16','10267','Service state','5c0883d194e8494498474106c22be2ca'),
('17','10301','Service state','c369d410303349b4973431b6ff8dcb85'),
('18','10303','Service state','aaf7d0b8b306412b8a3272343708518f'),
('19','10308','Service state','4980ec41c6644ecb9d5b52027a381fd8'),
('20','10309','Service state','a8a0c20f1d404a79900064ac5d11a8b2'),
('21','10310','Service state','ae3eec95cd1c440ba6c67ed5d7b7b915'),
('22','10316','Service state','4f2d7ca3c89246c6b691557447230031'),
('23','10317','Service state','622c38d0af2a4b6ea7a640a5d1a22b93'),
('24','10318','Service state','8effc3f81db14540996e2373dde6eca9'),
('25','10319','Service state','acd57d4f29a34286a801ce49cd6553fe'),
('26','10320','Service state','f2e8233fcf0a4dd2b53a82ca48436a88'),
('27','10322','Service state','15d416d869894fdb959ca2cda2c5e37c'),
('28','10323','Service state','94147888c7ad4f5bae864eb2698f0237'),
('29','10324','Service state','1735a8d251b24c3fbab32e766064536b'),
('30','10325','Service state','5f3f78a3470c48b69442d942f21d11d0'),
('31','10326','Service state','41be60c561114627b861677603b92acb'),
('32','10327','Service state','03cde96b90a641598db572a662dc2064'),
('33','10328','Service state','45ad479873b84113a98fa21b21081c65'),
('34','10330','Service state','1caa1e7c41e14c7492ab8112f93ea068'),
('35','10331','Service state','8e8fa515c14c4ac181db791c2c68c518'),
('36','10335','Service state','31c489581d8b4246942c663b88fbaf9f'),
('37','10336','Service state','d6e38832f2d44ec0bf6761e36fd7668f'),
('38','10353','Service state','22fe6d6c74454775994f07fc05d7bafd'),
('39','10355','Service state','1bd791d250e441aeb1c73e499d96e98e'),
('40','10357','Service state','372bc939f3924aafa13c4821b83a9276'),
('41','10363','Service state','6c967c4df18d4c7ebb0fd4be17df292a'),
('42','10365','Service state','547a6b8002d44a8f8f363023c6097b1e'),
('43','10175','Service state','25d04e2838af4fcca9ddd21df6781497'),
('44','10378','Service state','d3b3a064c6e445db8b9179ac79d257bf'),
('46','10325','Windows service state','d65f1af3c1e24a338983c52c5aa07d27'),
('47','10326','Windows service state','6dc834d8e50842d3a7337b0f88540b61'),
('51','10174','VMware VirtualMachinePowerState','78f08f5c5c0047b999a2e8daa96cf8b7'),
('52','10173','VMware status','3c59c22905054d42ac4ee8b72fe5f270'),
('53','10175','VMware status','2b324fd8d7624874a3a81449b62c2cd6'),
('54','10366','VMware status','5e5e3b01ef334bd39441568ebd0c31c0'),
('55','10047','Value cache operating mode','97bbea700550483bbd8405b4dd9d8005'),
('56','10261','Value cache operating mode','5dff563dde3c45d8b6d92525111384c6'),
('57','10251','ENTITY-SENSORS-MIB::EntitySensorStatus','d42214398aea4362b4fc61a090f188e1'),
('58','10254','ENTITY-SENSORS-MIB::EntitySensorStatus','318f3041aea04848a223de86e589c232'),
('64','10285','ifOperStatus','4827063819f14d539f509552c84f5f94'),
('71','10207','TIMETRA-CHASSIS-MIB::TmnxDeviceState','95a194271a584008a81564fd80189c5a'),
('72','10208','SW-MIB::swSensorStatus','73618556ee4b4e8f9ec9acf0893e13ea'),
('73','10208','SW-MIB::swOperStatus','54427fdf694547c598e3662df09a980a'),
('74','10210','FOUNDRY-SN-AGENT-MIB::snChasPwrSupplyOperStatus','fe1c4f9f35a34b6189110fc95e21b086'),
('75','10211','FOUNDRY-SN-AGENT-MIB::snChasPwrSupplyOperStatus','7b767e61825544bb857347f303a1f077'),
('76','10210','FOUNDRY-SN-AGENT-MIB::snChasFanOperStatus','d457efd8cee74f168bd88f4fb2376142'),
('77','10211','FOUNDRY-SN-AGENT-MIB::snChasFanOperStatus','41fadae69fa64af4a21c853fc00f23c0'),
('79','10221','F10-S-SERIES-CHASSIS-MIB::chSysFanTrayOperStatus','b389c759db0448ffbe28d4572fbfb3e9'),
('80','10221','F10-S-SERIES-CHASSIS-MIB::chSysPowerSupplyOperStatus','2532df482bd348ba8202c3eb2b76340b'),
('81','10222','MY-SYSTEM-MIB::mySystemFanIsNormal','5889e276245d411bacd130427ae4a5d4'),
('82','10223','EQUIPMENT-MIB::swFanStatus','e7ab460cf1bf4fca8afc22566257fc3a'),
('83','10223','EQUIPMENT-MIB::swPowerStatus','a46e6b21933f4aa7be17f9f11b1356ee'),
('84','10224','EXTREME-SYSTEM-MIB::extremeFanOperational','b71a1b2d06324275a37a1952f13e29b3'),
('85','10224','EXTREME-SYSTEM-MIB::extremeOverTemperatureAlarm','34c686dbaf8649b3b7dcc243068a739a'),
('86','10224','EXTREME-SYSTEM-MIB::extremePowerSupplyStatus','85bfdbc16637406fb5f1a23a15f16c77'),
('87','10227','HH3C-ENTITY-EXT-MIB::hh3cEntityExtErrorStatus','d7832aa00dd743bb8451cabff4e90e60'),
('88','10250','HP-ICF-CHASSIS::hpicfSensorStatus','3c0731bf0669419fa8ebfdf9f7ec14de'),
('89','10229','HUAWEI-ENTITY-EXTENT-MIB::hwEntityFanState','5d3f20a830b34f668c5f3ece41a039cd'),
('90','10230','ICS-CHASSIS-MIB::icsChassisFanOperStatus','39299506ad14445fa7b7a9e78cc54619'),
('91','10230','ICS-CHASSIS-MIB::icsChassisSensorSlotOperStatus','4c80241c4d5d4b949577e9741710a32b'),
('92','10230','ICS-CHASSIS-MIB::icsChassisPowerSupplyOperStatus','535cb21845474749994bf7c395e39312'),
('93','10231','JUNIPER-ALARM-MIB::jnxRedAlarmState','3aaa451c55cd4e72ab84b65dd8310564'),
('94','10231','JUNIPER-ALARM-MIB::jnxOperatingState','64128e7f2adf44988b0ca3edd76cba61'),
('95','10251','ENTITY-STATE-MIB::EntityOperState','bd1dc90aa54849d0a5ae9bdf368d03a9'),
('96','10254','ENTITY-STATE-MIB::EntityOperState','15ba17df88eb435d9d48145fba8d9029'),
('97','10234','FASTPATH-BOXSERVICES-PRIVATE-MIB::boxServicesPowSupplyItemState','d11e2b2f01c641728d1b7f764fa49f37'),
('98','10234','FASTPATH-BOXSERVICES-PRIVATE-MIB::boxServicesFanItemState','3046d246b1064c749c1c9144442c0fac'),
('99','10234','FASTPATH-BOXSERVICES-PRIVATE-MIB::boxServicesTempSensorState','4da55a4de7284012890e1fd5458f039a'),
('100','10235','QTECH-MIB::sysFanStatus','fe2ada3a06844e138b3c4fed1a8c8d2d'),
('101','10235','QTECH-MIB::sysPowerStatus','439cee4220954720aa34725fdc6c365e'),
('102','10256','CPQSINFO-MIB::status','8374297ea234491b980591a8daa88e1f'),
('103','10256','CPQHLTH-MIB::cpqHeTemperatureLocale','f1e590a8cc744e22b900595851833357'),
('104','10256','CPQIDA-MIB::cpqDaCntlrModel','140a21785b764c95a3f78c8c05ed0844'),
('105','10256','CPQIDA-MIB::cpqDaPhyDrvStatus','68bc7370fb8a43ee9957240e29636562'),
('106','10258','IMM-MIB::systemHealthStat','61bded84be1d419083d8bd8a8bd25152'),
('107','10255','IDRAC-MIB-SMIv2::ObjectStatusEnum','7cf6cc68df264e1f9cb0373b1fbca6a8'),
('108','10255','IDRAC-MIB-SMIv2::StatusProbeEnum','beb79217c0854cc4b83d6c498a92067c'),
('109','10255','IDRAC-MIB-SMIv2::physicalDiskComponentStatus','1125af03f5a24d84866e7ad7c1789fb4'),
('110','10255','IDRAC-MIB-SMIv2::BooleanType','1026b6847bd44fb5885bdfab49042d32'),
('111','10255','IDRAC-MIB-SMIv2::physicalDiskMediaType','8abb91818b39418d9ba1b83cd5078870'),
('112','10255','IDRAC-MIB-SMIv2::batteryState','4709491dc6ea41958de78e939e1b7964'),
('113','10255','IDRAC-MIB-SMIv2::virtualDiskLayout','150fd042191d4417a29df8dc554dae06'),
('114','10255','IDRAC-MIB-SMIv2::virtualDiskOperationalState','79a1e3792c20400bba39073240987448'),
('115','10255','IDRAC-MIB-SMIv2::virtualDiskWritePolicy','d9103bd7f6934230a67ae98607183788'),
('116','10255','IDRAC-MIB-SMIv2::virtualDiskState','41e6acc448194f3aac2612904ce851ad'),
('117','10256','CPQIDA-MIB::cpqDaPhyDrvSmartStatus','54b288da67e1431c9d401cf47a518bcc'),
('118','10256','CPQIDA-MIB::cpqDaAccelStatus','20d96ea63e994ba49244b94a4c24aec3'),
('119','10256','CPQIDA-MIB::cpqDaAccelBattery','7502d61cf7644a2d9cff7462f53569ee'),
('120','10256','CPQIDA-MIB::cpqDaPhyDrvMediaType','8351a024aa4d42d1915b44abe8acc4aa'),
('121','10256','CPQIDA-MIB::cpqDaLogDrvFaultTol','442c9095de9f4aa5bcca659292b2c12b'),
('122','10256','CPQIDA-MIB::cpqDaLogDrvStatus','8db38b47aba64739ae9f078f43b42888'),
('123','10329','PostgreSQL recovery role','9f38c01c325248d4b538c0582432b541'),
('124','10357','PostgreSQL recovery role','2e376ee568d04e7bbe98cbae4181f313'),
('125','10329','PostgreSQL replication status','0fba38eefa4c4073b46d3f8579fda314'),
('126','10357','PostgreSQL replication status','7f553f18ef6544ceaa4b50c4ebf0e583'),
('128','10285','Linux::Interface protocol types','4d912f1ee95942038f306ddefb3a57b3'),
('134','10301','RabbitMQ healthcheck','08ee896f31a1457a8e9b4f6f251700d4'),
('135','10303','RabbitMQ healthcheck','55188bbb2ede4300a6292b373ee36ab7'),
('136','10301','Alarm state','ce579def20ac488dbce1ff69baaa8c50'),
('137','10303','Alarm state','e65c3d3e8ea443a281b37c51ca461c26'),
('138','10304','CISCO-UNIFIED-COMPUTING-TC-MIB::CucsEquipmentOperability','e1686896f31e483f9add962dbbd90afb'),
('139','10304','CISCO-UNIFIED-COMPUTING-TC-MIB::CucsLsOperState','398aa5bf5eb44a8c8dd96babd98f1bd3'),
('140','10304','CISCO-UNIFIED-COMPUTING-TC-MIB::CucsStoragePDriveStatus','9b7c7078039c4e348ab417da71b96f5c'),
('141','10304','CISCO-UNIFIED-COMPUTING-TC-MIB::CucsStorageLunType','7d3e38476c894ae59ecac6640b24f833'),
('142','10304','CISCO-UNIFIED-COMPUTING-TC-MIB::CucsEquipmentPresence','5055674c42a241e3a2156de1dc1715bf'),
('143','10310','Redis bgwrite status','098c2240a8e947fc9f6f0a677ffcbc0e'),
('144','10310','Redis flag','3b6cd97c65d14e10bdabf5c42d767ad9'),
('145','10310','Redis repl offset','47c80efdf46745f1959eee76f68014e7'),
('146','10310','Redis bgsave time','82f4dc4ef0c9471d82dbe3605f4f31d0'),
('147','10318','Docker flag','c289195aa4dc47ab883fa95c9cb6fd07'),
('148','10322','ES cluster state','d651bdf75d0849d5ab2b0802fab76e22'),
('149','10323','Replicas state','4d926c30529447b3816cec3f1440b47a'),
('150','10324','Etcd healthcheck','f25e21a70baa4e009bdbcb44acb1a22e'),
('151','10324','Etcd leader','7bcaf8a520e24613a96d49e63a91a55b'),
('152','10325','Application pool state','63d1ad6b4cf643da870b14c53da6c52f'),
('153','10326','Application pool state','636c6915a8154b6ea1ea5b00f015c149'),
('154','10327','MSSQL DB state','bac1a10dad134d50add5bc9550e2ebf3'),
('155','10327','MSSQL AG Connected state','bfbb00eb85d747dabeda2954a5d659b7'),
('156','10327','MSSQL AG Join state','47413c135c094cdc8b59f18a9b195a78'),
('157','10327','MSSQL AG Operational state','a570f341d9a8470797aecfebd376b2b8'),
('158','10327','MSSQL AG Recovery health','4ec6a96ff6c64756b2f27e47972fd9f6'),
('159','10327','MSSQL AG Role','596556fba6064efb8155233371eb2950'),
('160','10327','MSSQL AG Synchronization health','2ab0923b3ce14ffc9dd454114f6b15be'),
('161','10327','MSSQL - Yes / No','c66ee50a8b3f4b6788b732bb8a6b514e'),
('162','10327','MSSQL Mirroring State','f1c105c262c5476798a93eaa4c46fbda'),
('163','10327','MSSQL Mirroring Role','09aaa82ccd6a444b80d5d3bb182fbafd'),
('164','10327','MSSQL Safety level','e70421b2c3db4ce1937791bdb432040e'),
('165','10327','MSSQL Witness state','aa9de6e21d08486db04f29e10d11a94c'),
('166','10328','Oracle DB open status','d0912db18fe54941b9345ebf869fd1a6'),
('167','10335','Oracle DB open status','015a0c94ba2644c6aa343d3f792a4072'),
('168','10328','Oracle DB role','df05d594141f42ebb294cf6adca5fd6b'),
('169','10335','Oracle DB role','afade10cda4e453982355342ba9d8d9f'),
('170','10328','Oracle instance status','41e105c52bf045899c3c4a1cb4e16865'),
('171','10335','Oracle instance status','4893318c780f47719e12e839c9a846c2'),
('172','10328','Oracle instance role','97b689d7ddc04bcd9b9f92af6ba783bd'),
('173','10335','Oracle instance role','53d97b73db8449959420e03114d345c3'),
('174','10328','Oracle archiver state','3afaab75342c4be186fb4f595ed62a31'),
('175','10335','Oracle archiver state','f39e64058fef423bb858ba45834a3455'),
('176','10328','Oracle tablespace status','c6633e4ef9a84fa7b843529479a06158'),
('177','10335','Oracle tablespace status','f14ed94cf12740a19e221ddaa4855c54'),
('178','10328','Oracle Archivelog status','79af6c068ba141ba9806f4341edd9266'),
('179','10335','Oracle Archivelog status','5a90da8dd6124159a7f82a7a996f0a53'),
('180','10328','Oracle force log status','f00ca5c45ab84df788820af2642e4784'),
('181','10335','Oracle force log status','1d9f4a44f2f94a799768f147cb712331'),
('182','10328','Oracle log mode','809554f521d645ea8e8850c3b1f41579'),
('183','10335','Oracle log mode','910dd4a87f75434289fa2e345778d18d'),
('184','10353','Ceph cluster status','2a4b2a8c55ba48b2a815e4123c9ea7fa'),
('185','10360','Exchange database copy role','4a0e19e58ade4e8c878a6b87f4021416'),
('186','10361','Exchange database copy role','0797c152a163407aa9490a63f80a8fd1'),
('187','10360','Exchange database state','2d131c4a033c4145a6bd66ec4c0c030a'),
('188','10361','Exchange database state','a4fac47b56e4470c9c6d435d7eb06845'),
('189','10362','GitLab healthcheck','3b40391bb8b6472e9c3fd8e1f001fe04'),
('190','10364','Kafka controller state','cf2440fb69c24371b231cb0a69002333'),
('191','10365','Vault flag','46edbd58c7384b53bb31775244c23343'),
('192','10371','ProStar MPPT charge state','1703c3aeb1b24641821e1c6d2cb4c8b7'),
('193','10371','ProStar MPPT load state','b5403a0805a54b9294f69a1e11a438b1'),
('194','10372','ProStar PWM charge state','f94eb6ad54c44281878c7c018c6209d1'),
('195','10372','ProStar PWM load state','f0be8765c74e4c4788d4ff99a6c5ccd4'),
('196','10373','SunSaver MPPT charge state','b51b9440e801481fbb76f28b4a5431d1'),
('197','10373','SunSaver MPPT load state','f21076ed51104b84ba4d78dd74bd1a5b'),
('198','10374','SureSine load state','1d6f60ea7d414cb8a26ddad70fc352b2'),
('199','10375','TriStar MPPT 600V charge state','8a0dfdf98d254c219905751cccc878d7'),
('200','10376','TriStar MPPT charge state','3c6c60ef422c4788bf0c5b74ffab7ef0'),
('201','10377','TriStar PWM charge state','4985c4742d5844e7bc0aee5aeeacc436'),
('202','10377','TriStar PWM control mode','252c3fb63cc34bb1a36ae6e9cbe5880c'),
('203','10377','TriStar PWM load state','735e1a0d990a4c449e59eeb402f3b40e'),
('204','10378','FAS3220 HA cannot takeover cause','e078162b11ff49f59c3ab6d905f88f2c'),
('205','10378','FAS3220 HA settings','d6993f0258dd4978a85aa5c141f1706e'),
('206','10378','FAS3220 NVRAM battery status','1fe2bf70bd63468584708a9d09eb42a1'),
('207','10378','FAS3220 Port health','ee5e67c90bca4ded84df2d82589bc2fb'),
('208','10378','FAS3220 Port link state','bd6ea858292c414d9bfd435631001ef5'),
('209','10378','FAS3220 Port role','c598c387157d4450b5bf8f68e6e794a4'),
('210','10378','FAS3220 Port speed','6b0fec10a0eb4c70a8982419c6e635b9'),
('211','10378','FAS3220 Port UP by administrator','c50cdd6dbe19482abdb870c12e7c7b8d'),
('212','10379','Computer online','d1b719ea85464279bd473fcdb34008da'),
('213','10379','Computer state','5313fc2399b24216945ed6416a00d55d'),
('214','10379','Jenkins healthcheck','a51dacf033d1423a886ca9dbfdf9b175'),
('215','10379','Service state','b45a6b0148074212bf45d6bb311565c2'),
('216','10380','Login status','4c14241141504a9d852d83965c309f31'),
('217','10256','CPQHLTH-MIB::cpqHeTemperatureCondition','1a03c5602a4a49f8839d820c666434fc'),
('218','10382','HTTP response status code','70add725d6a84f6f9ed0917107dfffc9'),
('219','10385','Huawei storage: Controller role','b5c6d9d67da54531a918c93a9c98cec8'),
('220','10385','Huawei storage: Health status','b7f399070ee0419cac1722f80268ff1a'),
('221','10385','Huawei storage: LUN status','e361f6b8fe92430f86d0e3dc70118ba9'),
('222','10385','Huawei storage: Running status','ae5093d843784258aa32437cde486574'),
('223','10300','RabbitMQ healthcheck','78275d6daacf42b4b97e3d806dfe81fe'),
('224','10302','RabbitMQ healthcheck','3380e05a15774dad92e77c983448698b'),
('225','10386','MongoDB flag','9f921e1503e74204b8f128966f9562bc'),
('226','10386','ReplicaSet node state','a99141555eff42ff8d367f10d9a7c569'),
('227','10386','Service state','b37ba44823e34a13a119f86f3d58a65a'),
('228','10387','MongoDB flag','2014769595e34d4bb18dbcf4d9eaf112'),
('229','10387','Service state','3cedce4712fa4a3eba63ccd7a790ecf6'),
('230','10390','CISCO-ENVMON-MIB::CiscoEnvMonState','673c7626d11b4867aba08e96b0fbd149'),
('231','10390','EtherLike-MIB::dot3StatsDuplexStatus','4c04fea7546044d9a9c64762a9e1ebdd'),
('232','10390','IF-MIB::ifOperStatus','346b197cb4fe42cb9b304ce246e5924f'),
('233','10390','IF-MIB::ifType','94e4f1da1ff24b96bdccf04ec663a1ae'),
('234','10390','Service state','3a72216b3fea4ad482d0e3655e407747'),
('235','10390','zabbix.host.available','868c28a7406c4ab3b48b783a6e7590ba'),
('236','10391','CISCO-ENVMON-MIB::CiscoEnvMonState','cbeb53fa3c2a4b16b7f7ee92265efd8c'),
('237','10391','EtherLike-MIB::dot3StatsDuplexStatus','5ef472cb5f424ef9a7393156204613ba'),
('238','10391','IF-MIB::ifOperStatus','73b7c034142043b689792e1e71dd5872'),
('239','10391','IF-MIB::ifType','635461b9ca404cc1b92c1fab0c6327f6'),
('240','10391','Service state','142fe822cc424a76899551b6f29799d9'),
('241','10391','zabbix.host.available','939c7551b81e40e9b053e624211d0901'),
('242','10392','CISCO-ENVMON-MIB::CiscoEnvMonState','fea34445b6cd4847b420d212f9b0201e'),
('243','10392','EtherLike-MIB::dot3StatsDuplexStatus','867b0e42f8a24a278ee15476aeadfa0b'),
('244','10392','IF-MIB::ifOperStatus','3534f9f22afe4f98a712a86ce755f491'),
('245','10392','IF-MIB::ifType','88b99531b08248e8be1fc0a3210acee1'),
('246','10392','Service state','653ce2314e6f499b84250048df1314f8'),
('247','10392','zabbix.host.available','690c4c1545894d049ac8e26e3de7ec9c'),
('248','10393','CISCO-ENVMON-MIB::CiscoEnvMonState','e47b3ba8fb9c4ecf82701ddf571d55b6'),
('249','10393','EtherLike-MIB::dot3StatsDuplexStatus','412b00b4bfbc48b4906370635c12dcee'),
('250','10393','IF-MIB::ifOperStatus','358db91b44e645df92072f0a1449de2e'),
('251','10393','IF-MIB::ifType','877039dc6b0a467783828f3421887b83'),
('252','10393','Service state','1d4c62bd989748a0b7947b6455405d96'),
('253','10393','zabbix.host.available','ff706c036eac4ef88570e41629e65514'),
('254','10394','CISCO-ENVMON-MIB::CiscoEnvMonState','52875f5c6b1b4bb3987c3baa03860d4d'),
('255','10394','EtherLike-MIB::dot3StatsDuplexStatus','8decf4d7d8744711b5f2ea68b5e73d14'),
('256','10394','IF-MIB::ifOperStatus','e8815fad611e47389c987c88a029cece'),
('257','10394','IF-MIB::ifType','93f29c48ad8b4bc7afe036817d946b18'),
('258','10394','Service state','ee7cb62782d44458abc9f7cca816dca8'),
('259','10394','zabbix.host.available','6273854a740e41718cd1354f227cf4db'),
('260','10251','IF-MIB::ifOperStatus','04fa3aad27e044a094dce939b3d361ec'),
('261','10251','IF-MIB::ifType','afe0ce28ed5d49dd822cc7013356c599'),
('262','10251','Service state','deb16b99706645929e300b0590f013f3'),
('263','10251','zabbix.host.available','a85fe23199cd4d779655f690a706d7c7'),
('264','10395','PowerNet-MIB::uioSensorStatusAlarmStatus','a808aadebf964e0cb6b8724bf1165013'),
('265','10395','PowerNet-MIB::upsAdvBatteryReplaceIndicator','731b036e41d147ba81bfcfb7e99b561b'),
('266','10395','PowerNet-MIB::upsAdvInputLineFailCause','f310a0bceb06404d9daee67ab578e4b8'),
('267','10395','PowerNet-MIB::upsBasicBatteryStatus','795c75c652124ad282bad3dfd50b8e39'),
('269','10395','zabbix.host.available','781c568d935d40f2a43951488cf2e046'),
('270','10327','MSSQL Job Run Status','eefa6e0e6f8b4facbc12004437b7ee8f'),
('271','10397','Service state','bce54cbdf2b8487985f9c7847a4c4918'),
('272','10398','Service state','047f0303f1bc424a959f5d0ceaab77c7'),
('273','10400','PowerNet-MIB::uioSensorStatusAlarmStatus','30a78904cbc94fc58609dc1a11aa48ef'),
('274','10400','PowerNet-MIB::upsAdvBatteryReplaceIndicator','ace379c23ae247f3b92ccffb9eef920c'),
('275','10400','PowerNet-MIB::upsAdvInputLineFailCause','19686fc030ee4c6bb69aacd3b9c735ca'),
('276','10400','PowerNet-MIB::upsBasicBatteryStatus','80593b554d0a431aa89a0c4960f8565c'),
('277','10400','PowerNet-MIB::upsBasicOutputStatus','f41b7d5469e64557ab0cdb81526aeac0'),
('278','10400','zabbix.host.available','edd7578bf71146dd88770a39eec537e0'),
('279','10401','PowerNet-MIB::uioSensorStatusAlarmStatus','6940a4d08173433bb4bc8ff3b44e578c'),
('280','10401','PowerNet-MIB::upsAdvBatteryReplaceIndicator','add26e1622ed4d1fbdb4a9bdbf7facb8'),
('281','10401','PowerNet-MIB::upsAdvInputLineFailCause','2597173167e34be0943fb6c81f2597e5'),
('282','10401','PowerNet-MIB::upsBasicBatteryStatus','7d2a66214d4b4b96890aa9e1c9bcf050'),
('283','10401','PowerNet-MIB::upsBasicOutputStatus','351383a7383a4472a31c09009cf9d1f5'),
('284','10401','zabbix.host.available','3aadc179423b4298b2e8a6e4850466a5'),
('285','10402','PowerNet-MIB::uioSensorStatusAlarmStatus','55fecbd639c44c328b4199569a7305ef'),
('286','10402','PowerNet-MIB::upsAdvBatteryReplaceIndicator','1ce6860b108948bda40d514fd4e3ed69'),
('287','10402','PowerNet-MIB::upsAdvInputLineFailCause','db1fa20d76c8416c83fa0b7fda536fa8'),
('288','10402','PowerNet-MIB::upsBasicBatteryStatus','50b6ae187875406ea8ba1669add70899'),
('289','10402','PowerNet-MIB::upsBasicOutputStatus','9c5fd52c36f6451ea3f502a871e821d7'),
('290','10402','zabbix.host.available','89597d423b454a42aa80fa8f7a20f273'),
('291','10403','PowerNet-MIB::uioSensorStatusAlarmStatus','7cf932d3b9304f2cb151134e9ea3be82'),
('292','10403','PowerNet-MIB::upsAdvBatteryReplaceIndicator','63c5f0e1601947e5a02abd25a07a9af4'),
('293','10403','PowerNet-MIB::upsAdvInputLineFailCause','70d097ce846c45aeb3c8be031c427511'),
('294','10403','PowerNet-MIB::upsBasicBatteryStatus','3424a9229a134b47b8544d611be082fb'),
('295','10403','PowerNet-MIB::upsBasicOutputStatus','05a60d9c47274f5a8f6c92efe8158b8e'),
('296','10403','zabbix.host.available','d4ee88b3cf5d4d95b27be2e7b2f20e3c'),
('297','10404','PowerNet-MIB::uioSensorStatusAlarmStatus','b2af1e2dcb874d43949c383f9b347f36'),
('298','10404','PowerNet-MIB::upsAdvBatteryReplaceIndicator','b06b54b07e6840e5a0c52ba7a6acf86a'),
('299','10404','PowerNet-MIB::upsAdvInputLineFailCause','a62f96735c47467da94b6bcf98cc013d'),
('300','10404','PowerNet-MIB::upsBasicBatteryStatus','ed12e8780c384caba8035fbb1c78e115'),
('301','10404','PowerNet-MIB::upsBasicOutputStatus','ae2ed0c2c99a4ad496f7a35226e3d4f0'),
('302','10404','zabbix.host.available','8cddc4f99ecb4866b1638b82b145ea8b'),
('309','10406','PowerNet-MIB::uioSensorStatusAlarmStatus','864d59cbfcc8431cb334b812bf7ef3a3'),
('310','10406','PowerNet-MIB::upsAdvBatteryReplaceIndicator','cc42cb7a7fb4417fa1c143e214958c1d'),
('311','10406','PowerNet-MIB::upsAdvInputLineFailCause','a3bbd0be8c7c4dc1aa9accb9f22292c9'),
('312','10406','PowerNet-MIB::upsBasicBatteryStatus','f801d4fb07c644e4be1f01e99ba48aa7'),
('313','10406','PowerNet-MIB::upsBasicOutputStatus','28964e9cf2b849fbb2f8d998cecdacda'),
('314','10406','zabbix.host.available','12058346f9e046388767c2939bbed2cf'),
('315','10395','PowerNet-MIB::upsBasicOutputStatus','c536d9dc64724643a9291c9b601b1eac'),
('316','10407','PowerNet-MIB::uioSensorStatusAlarmStatus','aec3362485c242ec928cb8ecfe5e61cf'),
('317','10407','PowerNet-MIB::upsAdvBatteryReplaceIndicator','912d8834176b4fe4a2f6bd12ef3ee3c1'),
('318','10407','PowerNet-MIB::upsAdvInputLineFailCause','e079fa8cc9614245b0fecf4b8f42feca'),
('319','10407','PowerNet-MIB::upsBasicBatteryStatus','24229472978c42739cdbe7aa47e1d34c'),
('320','10407','PowerNet-MIB::upsBasicOutputStatus','8c2c9721615c4408976f7632180ecfe3'),
('321','10407','zabbix.host.available','625f28bd49f14e49a1a7a4da01429906'),
('322','10408','PowerNet-MIB::uioSensorStatusAlarmStatus','8516e97893ed4f2ebe70766d17eeacde'),
('323','10408','PowerNet-MIB::upsAdvBatteryReplaceIndicator','84387eb0a5ef4523ac5d990eb4a6a796'),
('324','10408','PowerNet-MIB::upsAdvInputLineFailCause','58104ecf15d34fe38922f3fe5fa25027'),
('325','10408','PowerNet-MIB::upsBasicBatteryStatus','43715c15fed840fc8e188d062c0ef2da'),
('326','10408','PowerNet-MIB::upsBasicOutputStatus','d9b5340729684dd0a450b6de6b14b590'),
('327','10408','zabbix.host.available','cdf3578a66db4cfda6c36b4bbb295173'),
('328','10409','PowerNet-MIB::uioSensorStatusAlarmStatus','e2877a188bd24918992f8c7878550924'),
('329','10409','PowerNet-MIB::upsAdvBatteryReplaceIndicator','33d83523ceee4f3e916c885ebb33e8b9'),
('330','10409','PowerNet-MIB::upsAdvInputLineFailCause','c50ef9a9476d47e6935a6026bbb24d06'),
('331','10409','PowerNet-MIB::upsBasicBatteryStatus','96a985d8351f48be86c5b00472b48feb'),
('332','10409','PowerNet-MIB::upsBasicOutputStatus','160f7a39770d492c93403097650c1568'),
('333','10409','zabbix.host.available','cc7a368057bc47eeb834dc9363183c59'),
('334','10410','WildFly flag','e23e06cfd0ce4e069b9d996f101f6ee6'),
('335','10411','WildFly flag','4004b5f2501f44a69dc86afce3daa4d1'),
('336','10412','PowerNet-MIB::uioSensorStatusAlarmStatus','41e166e2a5f948488238198920ab4b17'),
('337','10412','PowerNet-MIB::upsAdvBatteryReplaceIndicator','224af0a6a5db48ef9c8861bc61873ea9'),
('338','10412','PowerNet-MIB::upsAdvInputLineFailCause','ded19296204545b9ab463d4fc65f3cfd'),
('339','10412','PowerNet-MIB::upsBasicBatteryStatus','271d8f0594cf451a8aaa98c84850ebf7'),
('340','10412','PowerNet-MIB::upsBasicOutputStatus','171d4d5bf01442e391b04f9e448df5a0'),
('341','10412','zabbix.host.available','8b4f199f5e704cbea67182d4abf9b8de'),
('342','10308','Server mode','bf2e9463450d4f4899abcac85cde0a92'),
('343','10309','Server mode','450c1b2c6d58432b8a5b34dd3b5e8870'),
('344','10416','Unit Active State','fe20979701834a80a823c514d11c19e7'),
('345','10416','Unit File State','e0a5e55e5a074a26935386c5e29a0e36'),
('346','10416','Unit Load State','0309ef57e92a4ea2ae4404a685f0e7b8'),
('347','10418','Cisco ASAv algorithm validate packets','764f7c162b8a45d9b41e795cf2f5f8da'),
('348','10418','Cisco ASAv encryption algorithm','f38e3c5200c941aa831857698eb3ea8b'),
('349','10418','Cisco ASAv port admin status','8395b87d3ff3496aabafdfd1d2e1c4be'),
('350','10418','Cisco ASAv port operational status','e97c331986454b68917c771c3bba9a3d'),
('351','10418','Cisco ASAv session protocol','22e5704487924e4ebca70e2062d40da4'),
('352','10418','Cisco ASAv user authenticate method','8dd72ccb744e4bd989ea739e21da7820'),
('353','10418','Physical class','3c3b7c75af4b4fedb12e30fb74406a23'),
('354','10418','SNMP available','91e8696b05654efca8f03b700ea74b0b'),
('355','10419','Chassis status','849febb31f524e9296afc5ec6ffb2fe3'),
('356','10419','Module provision level','ed7e1317987b433e9aa7168db3824c94'),
('357','10419','Pause state','6e590fa7db7441d5a4b145204ee254bb'),
('358','10419','SNMP available','b615a47192fc48f4b2cedb205c33f7d0'),
('359','10420','SNMP available','2b7c7c3eecb743e8a30ab3adc74ffd06'),
('360','10420','ZYXEL AAM1212-51 / IES-612 port admin status','db7f61bebcac452c8081b2c58d1013d8'),
('361','10420','ZYXEL AAM1212-51 / IES-612 port operational status','6c2a29dac43340399990340fe26a7a72'),
('362','10421','SNMP available','494c8983c4cf453789d2f0bbbe5cbbf3'),
('363','10421','ZYXEL ES3500-8PD operational mode port link up type','7cfe02e1eb224f6abe5216aaec31402c'),
('364','10421','ZYXEL ES3500-8PD operational mode port speed duplex','b568c9f69a1a4dd5951f1121523475c9'),
('365','10421','ZYXEL ES3500-8PD port admin status','4a20dd55c16b4c9082f267c532a4507a'),
('366','10421','ZYXEL ES3500-8PD port operational status','17635045a1ee4b8bba21b7d44634c57f'),
('367','10421','ZYXEL ES3500-8PD SFP status','875833a6ca71431da2b3747c4c1e3008'),
('368','10422','SNMP available','c6ba6086ed584ba0a4dd58ffe8564fbf'),
('369','10422','ZYXEL GS-4012F operational mode port link up type','82cce670bef64a47b326bb8b1a2f6cd8'),
('370','10422','ZYXEL GS-4012F operational mode port speed duplex','d7d38cadffc240f9a01434546659d036'),
('371','10422','ZYXEL GS-4012F port admin status','7456d212b8f44f7da215fc86f39e3956'),
('372','10422','ZYXEL GS-4012F port operational status','afa699db0bfc4cfbb48729932967230e'),
('373','10423','SNMP available','10dd3d9951014a38bc3517df54381a66'),
('374','10423','ZYXEL IES-500x module status','efd6a6086011465ca956b1664f7d6474'),
('375','10423','ZYXEL IES-500x module type','892651d2b1e3431490f2c531a50e2732'),
('376','10423','ZYXEL IES-500x port admin status','9174dafc199e438994256eff4dd87bdd'),
('377','10423','ZYXEL IES-500x port operational status','f64c046f1eca45e09dad683603f4674b'),
('378','10424','SNMP available','5247e9e5efcd4b29b864e336619eafcf'),
('379','10424','ZYXEL IES-6000 module status','0236177f088340ff8ce5adb9361b8df8'),
('380','10424','ZYXEL IES-6000 module type','7ad4e124b8184fb8abc454c70c67e309'),
('381','10424','ZYXEL IES-6000 port admin status','b20f50ac559f45369de16c04f5ccf523'),
('382','10424','ZYXEL IES-6000 port operational status','2f3b061e1d6f46a3b8216b2398fc2896'),
('383','10425','SNMP available','34ea860866f24498927b73f4ce438837'),
('384','10425','ZYXEL IES1248-51 port admin status','b933d3a98256457d906de8f7da377bac'),
('385','10425','ZYXEL IES1248-51 port operational status','e780cc91765849a0ace3d2eb2e4824a0'),
('386','10426','SNMP available','ac3d8b1e51074733a8bce57814528d83'),
('387','10426','ZYXEL MES-3528 operational mode port link up type','042fc0ecdef34baab224062d4f746b96'),
('388','10426','ZYXEL MES-3528 operational mode port speed duplex','cce63413576040fe8df5969886da993d'),
('389','10426','ZYXEL MES-3528 port admin status','6220d70f35404dd6834674510e0ae9ea'),
('390','10426','ZYXEL MES-3528 port operational status','36e992f6794a492e87c3c5a9749e26b3'),
('391','10426','ZYXEL MES-3528 SFP status','da9692b414de47d5bac9cd3287492e0b'),
('392','10427','SNMP available','7ad9362759b542d98a67796dd13fc5d4'),
('393','10427','ZYXEL MES3500-10 operational mode port link up type','064efc8dae8e47ae9c14713c7b31a36c'),
('394','10427','ZYXEL MES3500-10 operational mode port speed duplex','4ad7b4bf94494c93bdcbf36af095d5c3'),
('395','10427','ZYXEL MES3500-10 port admin status','e6a8dc82d4ca4b989daafd66ef1ab2ce'),
('396','10427','ZYXEL MES3500-10 port operational status','a96f6ed4d9e34a0cb79cee8bdbd672f5'),
('397','10427','ZYXEL MES3500-10 SFP status','8e9755ff129740298ab5f5497c6c17a2'),
('398','10428','SNMP available','dbb03955eb7043dda4dea1a9d7e8e043'),
('399','10428','ZYXEL MES3500-24 operational mode port link up type','c0f699295af740e2aabbb06c6718e8f8'),
('400','10428','ZYXEL MES3500-24 operational mode port speed duplex','f94441e46ffe4908a8a57089cbdaeaa7'),
('401','10428','ZYXEL MES3500-24 port admin status','df2213aff9984b3f837f99944f3c9bc0'),
('402','10428','ZYXEL MES3500-24 port operational status','679674c6b9364083a1eb1c9c9be136a2'),
('403','10428','ZYXEL MES3500-24 SFP status','f12de6ba6b4c4556b276f9d5d509ffcf'),
('404','10429','SNMP available','6e923e1e3ed34b8f87357b5fd7407c54'),
('405','10429','ZYXEL MGS-3712 operational mode port link up type','7c5d7efbd17f48619a3f4211a269b38d'),
('406','10429','ZYXEL MGS-3712 operational mode port speed duplex','da42da17340044ea83521107ac4dee04'),
('407','10429','ZYXEL MGS-3712 port admin status','7e107b2d754945dbaf833955fcae7f48'),
('408','10429','ZYXEL MGS-3712 port operational status','ed71a5038bf34198a3a56b0020ad728e'),
('409','10429','ZYXEL MGS-3712 SFP status','b89570749c5d4dcb9378b7951803b8e4'),
('410','10430','SNMP available','bf6cbe819fb94c85becf4364c47ef1c4'),
('411','10430','ZYXEL MGS-3712F operational mode port link up type','2695f35dedcf41e1aade2037e931c57e'),
('412','10430','ZYXEL MGS-3712F operational mode port speed duplex','c2b235ab2e6042568c096fdfb466f7dc'),
('413','10430','ZYXEL MGS-3712F port admin status','d145d8ee5ad2423f906335d30bfef592'),
('414','10430','ZYXEL MGS-3712F port operational status','655823ba854540c78a8078d4e7594bf9'),
('415','10430','ZYXEL MGS-3712F SFP status','bf0d94784c404b209d4c75c8f582a5c6'),
('416','10431','SNMP available','9e4265c1129d482fa12a09e657a7cda3'),
('417','10431','ZYXEL MES3500-24S operational mode port link up type','615d399b1a6045359dfc262b364b4c55'),
('418','10431','ZYXEL MES3500-24S operational mode port speed duplex','4217cd5f5c1f4b438cd4701c023da375'),
('419','10431','ZYXEL MES3500-24S port admin status','7e705fdb791341b8a1c86ee7d85fbfea'),
('420','10431','ZYXEL MES3500-24S port operational status','08e22f2eac034c9db9bba73040cea453'),
('421','10431','ZYXEL MES3500-24S SFP status','161770392cdb4dcd92c3596b5ad6d06a'),
('422','10432','SNMP available','5c5037a96f084a8182a5fb00f49ff285'),
('423','10432','ZYXEL MGS3520-28x operational mode port link up type','2b38ddd0e1a34cfab7dd6af9ebf28aca'),
('424','10432','ZYXEL MGS3520-28x operational mode port speed duplex','f23ebe496cfc4e659a09eff530b81a24'),
('425','10432','ZYXEL MGS3520-28x port admin status','3e0566598e394d80988fb49cd3215922'),
('426','10432','ZYXEL MGS3520-28x port operational status','2ffe41460977466cb09bc241b8d22739'),
('427','10432','ZYXEL MGS3520-28x SFP status','4443c6780c8f4d16a5f1efd5426db02e'),
('428','10433','SNMP available','a7acf3b0ac684d4e80c560bcd3dd2dc6'),
('429','10433','ZYXEL XGS-4728F operational mode port link up type','042ccfb45b0a4ef7bc8842f731dd8c4f'),
('430','10433','ZYXEL XGS-4728F operational mode port speed duplex','d466ff32531d4eaea989c07aa5989d6b'),
('431','10433','ZYXEL XGS-4728F port admin status','250f228ead4b433f987d42014255a617'),
('432','10433','ZYXEL XGS-4728F port operational status','ed13145eeefd44dda083716080725e60'),
('433','10433','ZYXEL XGS-4728F SFP status','49b0a85b7da947ab91e47ed2f2123907'),
('434','10434','CISCO-UNIFIED-COMPUTING-TC-MIB::CucsEquipmentOperability','8648df22d8be42359900e11ea395a98c'),
('435','10434','CISCO-UNIFIED-COMPUTING-TC-MIB::CucsEquipmentPresence','17dde900e96a47929b0abed0d5006c84'),
('436','10434','CISCO-UNIFIED-COMPUTING-TC-MIB::CucsLsOperState','c4a3603d4d8944ad8a8d2529bc3f1278'),
('437','10434','CISCO-UNIFIED-COMPUTING-TC-MIB::CucsStorageLunType','7d09a2b8df18410ca871ed9e7dbe6aa1'),
('438','10434','CISCO-UNIFIED-COMPUTING-TC-MIB::CucsStoragePDriveStatus','70a906bfe3b447a39e5a0f0ba5210ae2'),
('439','10434','CISCO-UNIFIED-COMPUTING-TC-MIB::CucsStorageTechnology','e1407fbe331343d3bda7d7eb122c085a'),
('440','10434','IF-MIB::ifOperStatus','2b0fde08268f4ce7b47aae3827ebdf23'),
('441','10434','IF-MIB::ifType','be402fda36e64dd2ad807925755735c4'),
('442','10434','zabbix.host.available','9ea529bf28a84fae95f1506ca6ca37b8'),
('444','10436','IDRAC-MIB-SMIv2::batteryState','3764082c250540f0b2827412a751f842'),
('445','10436','IDRAC-MIB-SMIv2::BooleanType','ef50d21a037545078e00102504b9b79d'),
('446','10436','IDRAC-MIB-SMIv2::ObjectStatusEnum','faa7d65868044cb08c2681db9615ef83'),
('447','10436','IDRAC-MIB-SMIv2::physicalDiskComponentStatus','c0b777b910e94d338ebfaacc94ca5c54'),
('448','10436','IDRAC-MIB-SMIv2::physicalDiskMediaType','596722d9a0b84c499908e460ba634a87'),
('449','10436','IDRAC-MIB-SMIv2::StatusProbeEnum','bd55f661ad24498a8876816ef9e70506'),
('450','10436','IDRAC-MIB-SMIv2::virtualDiskLayout','487f601e3f35437e800314865895b69b'),
('451','10436','IDRAC-MIB-SMIv2::virtualDiskOperationalState','a02a3f0c0fb24a52887f3feec42ae42a'),
('452','10436','IDRAC-MIB-SMIv2::virtualDiskReadPolicy','e2b543acfe9045ae8950075c1174b836'),
('453','10436','IDRAC-MIB-SMIv2::virtualDiskState','348ab665927b43e2b7e53eac8ab95820'),
('454','10436','IDRAC-MIB-SMIv2::virtualDiskWritePolicy','3bfaa8f277a549f7ae8a1bf0dc49e64f'),
('455','10436','zabbix.host.available','8124caf5004c4dd8985810ac9e6374b6'),
('457','10438','IDRAC-MIB-SMIv2::batteryState','557381876b894611bf213f55946b49a1'),
('458','10438','IDRAC-MIB-SMIv2::BooleanType','39a00987a4e14c0286acd9942db37e03'),
('459','10438','IDRAC-MIB-SMIv2::ObjectStatusEnum','ac53b62fdab246aa807e234ae9982102'),
('460','10438','IDRAC-MIB-SMIv2::physicalDiskComponentStatus','432abc8431e0438696cd1b96d3515a5c'),
('461','10438','IDRAC-MIB-SMIv2::physicalDiskMediaType','8aa7cecdd0944b91b8cdcba75e28d781'),
('462','10438','IDRAC-MIB-SMIv2::StatusProbeEnum','b096a16930734ec28bc0a5a5e7634783'),
('463','10438','IDRAC-MIB-SMIv2::virtualDiskLayout','3fcb8ac498564f068c4b30f3423fbe8c'),
('464','10438','IDRAC-MIB-SMIv2::virtualDiskOperationalState','6850d7335f6c423b87527a1a0252d00f'),
('465','10438','IDRAC-MIB-SMIv2::virtualDiskReadPolicy','076e6a30b90c49e9bcbb8a1adbc0b02d'),
('466','10438','IDRAC-MIB-SMIv2::virtualDiskState','4699f81ffa784d43b8e74aeb258a15cb'),
('467','10438','IDRAC-MIB-SMIv2::virtualDiskWritePolicy','15f75cf464d347308db357fa80e67f0e'),
('468','10438','zabbix.host.available','cf94dd75c6274a2aaff23e3a26eee213'),
('479','10440','IDRAC-MIB-SMIv2::batteryState','1a2c68f0f2384c0da7027981bd4bb5be'),
('480','10440','IDRAC-MIB-SMIv2::BooleanType','045512ecd6b94fbab71dd17abf5b8f4b'),
('481','10440','IDRAC-MIB-SMIv2::ObjectStatusEnum','82b2ff6e115d4d098ae1025547853b4b'),
('482','10440','IDRAC-MIB-SMIv2::physicalDiskComponentStatus','168707d69c984df4837638c72f103749'),
('483','10440','IDRAC-MIB-SMIv2::physicalDiskMediaType','1f138e6846544243a2729b41be9a97aa'),
('484','10440','IDRAC-MIB-SMIv2::StatusProbeEnum','9d25c114ba8046f5b126be9111d95184'),
('485','10440','IDRAC-MIB-SMIv2::virtualDiskLayout','e81dcef10a30448db51b9805ec60b863'),
('486','10440','IDRAC-MIB-SMIv2::virtualDiskOperationalState','e9e9b851915747c4b608934cd1235bc5'),
('487','10440','IDRAC-MIB-SMIv2::virtualDiskReadPolicy','92115895f7b9477983c67012b111afb3'),
('488','10440','IDRAC-MIB-SMIv2::virtualDiskState','7573aa4192534f44863508890606f917'),
('489','10440','IDRAC-MIB-SMIv2::virtualDiskWritePolicy','c6d4cfe5cf8b43808dce81cc1bcc4be3'),
('490','10440','zabbix.host.available','c5660f822c4a4567888e7f98d3bfab13'),
('492','10442','IDRAC-MIB-SMIv2::batteryState','692c968229d64965b3f6c59ca79b4522'),
('493','10442','IDRAC-MIB-SMIv2::BooleanType','1ee27c8f7c9d4f7cbafc8c7567b70c67'),
('494','10442','IDRAC-MIB-SMIv2::ObjectStatusEnum','c238adb07fea463a8cb21f962fcb24d9'),
('495','10442','IDRAC-MIB-SMIv2::physicalDiskComponentStatus','ee4ff377e3984685993e230911e6c13e'),
('496','10442','IDRAC-MIB-SMIv2::physicalDiskMediaType','7409409d584845e39579b478171a600a'),
('497','10442','IDRAC-MIB-SMIv2::StatusProbeEnum','1a301ddb56ba46d38314d5c3129544b4'),
('498','10442','IDRAC-MIB-SMIv2::virtualDiskLayout','f3e45e2d860b48c2a6f2b7a068cac361'),
('499','10442','IDRAC-MIB-SMIv2::virtualDiskOperationalState','6d457df3bf6646b3824ccc7be984587c'),
('500','10442','IDRAC-MIB-SMIv2::virtualDiskReadPolicy','47bf555344fd4fc1a15b372374bc75a7'),
('501','10442','IDRAC-MIB-SMIv2::virtualDiskState','2e035bf66ff144d8ab5e0c681bb246f6'),
('502','10442','IDRAC-MIB-SMIv2::virtualDiskWritePolicy','59eff775037e4e58925d3475ed0b0e34'),
('503','10442','zabbix.host.available','6b1b96e063084c8eb474006a9c691fb5'),
('504','10443','CPQHLTH-MIB::cpqHeTemperatureCondition','1b67de295fef454cb89744b101cf5a19'),
('505','10443','CPQHLTH-MIB::cpqHeTemperatureLocale','07d063dcbb3d4f1a8642bfd93afcd327'),
('506','10443','CPQIDA-MIB::cpqDaAccelBattery','009fd99d3734459285fa037c4a0ca201'),
('507','10443','CPQIDA-MIB::cpqDaAccelStatus','e138320082fc4aa69f3b23dad80272b2'),
('508','10443','CPQIDA-MIB::cpqDaCntlrModel','4891472973f84343ade2c5b61d96fcef'),
('509','10443','CPQIDA-MIB::cpqDaLogDrvFaultTol','a368b7472246477599d6278df8348bc9'),
('510','10443','CPQIDA-MIB::cpqDaLogDrvStatus','aab16842347c4e58b9bbee274dad3c62'),
('511','10443','CPQIDA-MIB::cpqDaPhyDrvMediaType','b3b110016c8c4272b9228161798a9bbd'),
('512','10443','CPQIDA-MIB::cpqDaPhyDrvSmartStatus','5b016d244c6845f7afcc80361aec2af1'),
('513','10443','CPQIDA-MIB::cpqDaPhyDrvStatus','2f4e1eb1f32847b3808372d02f752575'),
('514','10443','CPQNIC-MIB::cpqNicIfPhysAdapterStatus','3fe7ff0237a54f6cae3a1b8ffdabf157'),
('515','10443','CPQSINFO-MIB::status','342d09a1cfe543b9ac1555daee9f2235'),
('516','10443','zabbix.host.available','c57a256a525b46b0a1d0646200de57e2'),
('517','10444','CPQHLTH-MIB::cpqHeTemperatureCondition','1f0d43fc8b334b6da324b6ce4f838f81'),
('518','10444','CPQHLTH-MIB::cpqHeTemperatureLocale','96287ed099c14e09b2e1708487f64d8d'),
('519','10444','CPQIDA-MIB::cpqDaAccelBattery','684758347f0740e08af4986ed148e81f'),
('520','10444','CPQIDA-MIB::cpqDaAccelStatus','ff25d5d2484f40ea99b212e19c48e375'),
('521','10444','CPQIDA-MIB::cpqDaCntlrModel','4dc1441ab9964badbcb73e0dc213fe39'),
('522','10444','CPQIDA-MIB::cpqDaLogDrvFaultTol','3fd86d20618b43f39911746d72c2c242'),
('523','10444','CPQIDA-MIB::cpqDaLogDrvStatus','e72171bf818e4ee1bdf9638cb0494693'),
('524','10444','CPQIDA-MIB::cpqDaPhyDrvMediaType','3d32638b989d4d3e87f727baaef8b051'),
('525','10444','CPQIDA-MIB::cpqDaPhyDrvSmartStatus','137c69d61b394c979d7d25d91bcc2f0b'),
('526','10444','CPQIDA-MIB::cpqDaPhyDrvStatus','9af698a37bd844069eb2235f7f5d4800'),
('527','10444','CPQNIC-MIB::cpqNicIfPhysAdapterStatus','04dcfa6e36ca4a0590475d84186a5d62'),
('528','10444','CPQSINFO-MIB::status','83162a1a3b124ab2ae9b4cf1149486f9'),
('529','10444','zabbix.host.available','63b879b39b084a318547620421164c05'),
('530','10445','CPQHLTH-MIB::cpqHeTemperatureCondition','eb946b7168084341870c9157173b5c1e'),
('531','10445','CPQHLTH-MIB::cpqHeTemperatureLocale','a293ad4b90c14fe188623341b954d852'),
('532','10445','CPQIDA-MIB::cpqDaAccelBattery','ca2a5be5f3cf4fa7a9812d483ba043c5'),
('533','10445','CPQIDA-MIB::cpqDaAccelStatus','f15cd1d7fa7e4e05b46e872daa3a3c83'),
('534','10445','CPQIDA-MIB::cpqDaCntlrModel','abaffb0a2a1f47ec8aa64f6264d29092'),
('535','10445','CPQIDA-MIB::cpqDaLogDrvFaultTol','204396956bfe4ff5808dfa93bb35705c'),
('536','10445','CPQIDA-MIB::cpqDaLogDrvStatus','adb434bee0104007a4c0d053211bc2e7'),
('537','10445','CPQIDA-MIB::cpqDaPhyDrvMediaType','6cc6b46021f74cae83b29a62fc2cd1c0'),
('538','10445','CPQIDA-MIB::cpqDaPhyDrvSmartStatus','02eab0a3c02d440c82b86ddbd4ed1af6'),
('539','10445','CPQIDA-MIB::cpqDaPhyDrvStatus','8ab32bfce9f143da86a458427804a5f4'),
('540','10445','CPQNIC-MIB::cpqNicIfPhysAdapterStatus','d7ae95f8b813415c8d35cfe8debf8f2d'),
('541','10445','CPQSINFO-MIB::status','365afa633545431482f2ec054750da88'),
('542','10445','zabbix.host.available','9665746d6c2a4ad0b85b2f1f7d1cb12d'),
('543','10446','CPQHLTH-MIB::cpqHeTemperatureCondition','5655717fa32f4711b3062b97f1e5895b'),
('544','10446','CPQHLTH-MIB::cpqHeTemperatureLocale','ae1477baf3c046cbb5519346f28c7017'),
('545','10446','CPQIDA-MIB::cpqDaAccelBattery','af8340b5070f47e085eb91eb4580d728'),
('546','10446','CPQIDA-MIB::cpqDaAccelStatus','4c4378c0d1af4a6693f8c03bfaa9ad40'),
('547','10446','CPQIDA-MIB::cpqDaCntlrModel','23a855763fc346ea8a3559399ffa7428'),
('548','10446','CPQIDA-MIB::cpqDaLogDrvFaultTol','87ad87e768bc4d8ab77841e29176c36f'),
('549','10446','CPQIDA-MIB::cpqDaLogDrvStatus','46a2f599d46d438899ea4d8c552f51b4'),
('550','10446','CPQIDA-MIB::cpqDaPhyDrvMediaType','5f6868416f454beba585a0d2e9038117'),
('551','10446','CPQIDA-MIB::cpqDaPhyDrvSmartStatus','f78e361d31d94c479594b9d73257f80a'),
('552','10446','CPQIDA-MIB::cpqDaPhyDrvStatus','0efa6b7ed90f4edebc3282af5dbaf6c4'),
('553','10446','CPQNIC-MIB::cpqNicIfPhysAdapterStatus','1d312bcad99c43b8931fb128f6250afa'),
('554','10446','CPQSINFO-MIB::status','48e68c2789334818b5536be3f8628f66'),
('555','10446','zabbix.host.available','1b63c6eea5fc42a99501408d603c158b'),
('556','10448','InfluxDB healthcheck','d1b4478bdfc44c6db79a4a262f605d92'),
('557','10419','SNMP ltmPoolStatusEnabledState','74bcf04a70da49f89f04a20a9830fe13'),
('558','10419','SNMP ltmVsStatusAvailState','3a8776175b1f4cd7aa62f0182c7e3ed7'),
('559','10419','SNMP sysCmFailoverStatusId','6f96920248994bca92eb8d4394346027'),
('560','10419','SNMP sysCmSyncStatusId','1a42ed91b734453ab29a4c1f1feaca89'),
('561','10503','Edge activation state','6ac13cd1206145919ae7c9776ef5e76b'),
('562','10503','Edge HA status','cd8d83dc329144d9925a5c52db95df96'),
('563','10503','Edge states','87f150cd23e14448b35980b546dc2cd8'),
('564','10503','Link states','249b93828946422c9ef8870a915661ca'),
('565','10047','Cluster node status','cee1681b12ff49b6b7d442a851e870b4'),
('566','10261','Cluster node status','25ab0f5c570b4a7e9d15bd41db79fe25'),
('567','10505','Leader status','fa1732213d27418a88a61c964d93e9d7'),
('568','10507','Node conditions','785b20f8979341c4b470870ec8f50414'),
('569','10507','Pod conditions','f93e30e125de4909b52e7c38bc3f2c97'),
('570','10507','Pod phase','21ff77dde5964dcfb4bb2ae202a5f33c'),
('571','10515','IF-MIB::ifOperStatus','2216d8afb349448394590770ff99e56a'),
('572','10515','IF-MIB::ifType','3165b9b6c79e446f9d1029571518004e'),
('573','10515','Services status','fc5652614ee94cd8b437b3058886e857'),
('575','10515','SNMPv2-TC::TruthValue','f6bb441b7a65446c96c546bd3f3140ee'),
('576','10515','zabbix.host.available','d553e33d8b104a5e89d88500e85fa5fc'),
('578','10207','EtherLike-MIB::dot3StatsDuplexStatus','b31f48e2216f441daa0b05561ac2ab6a'),
('579','10207','IF-MIB::ifOperStatus','0a25bc3fe4dd40f8a08962befa8416d1'),
('580','10207','IF-MIB::ifType','ce3031283a6d458489747bfbf3696ab6'),
('581','10207','Service state','2d7b52f7709c460597a1ff44c1e39a1b'),
('582','10207','zabbix.host.available','03dcc409833146f6a1678df8b1311c40'),
('583','10254','EtherLike-MIB::dot3StatsDuplexStatus','322511c8bbf34b8da79b98e47067db64'),
('584','10254','IF-MIB::ifOperStatus','97fa6952fa0a4a2a965ba1e88eebe706'),
('585','10254','IF-MIB::ifType','629b7642da57472ea36074d43e45ce8e'),
('586','10254','Service state','ab33ce8c3fff400eb49d274d76143a37'),
('587','10254','zabbix.host.available','564ef39203334aff99b78aa8fb3fd2da'),
('588','10208','IF-MIB::ifOperStatus','c8b95f7ce9e44b5ea09273fb6c3c9a28'),
('589','10208','IF-MIB::ifType','db55d484980244b4bf5c60e0908f4e9b'),
('590','10208','Service state','17cb6bdbe4244a8fab16c0cbca5a4a00'),
('591','10208','zabbix.host.available','2fdee7620a3a449f9dd61eb3405e620c'),
('592','10210','IF-MIB::ifOperStatus','1b40ba5987784986bb25aa9dfa2d1e81'),
('593','10210','IF-MIB::ifType','5a55c0fddcc9450eb3e07b76cc73f8ee'),
('594','10210','Service state','ac73622b29f54d21aa6bcbac5a783599'),
('595','10210','zabbix.host.available','f74856688e9444bd93951f0c246ae483'),
('596','10211','IF-MIB::ifOperStatus','82de0c54872847d190ee681690aac69c'),
('597','10211','IF-MIB::ifType','6ba7778a7b454c649d6eb0126edd6a62'),
('598','10211','Service state','534121daa14949a6b5205cb9b7138b04'),
('599','10211','zabbix.host.available','e7bbb30eb3b748c6b6087bc2c353c3a8'),
('600','10220','CISCO-ENVMON-MIB::CiscoEnvMonState','0e5588b6aa714283b436031ff8ebc93a'),
('601','10220','Service state','9fc9d3c2eb254de996d9c4a61ba58671'),
('602','10220','zabbix.host.available','bb13061dd5b542f9b0f5921e75866679'),
('603','10218','CISCO-ENVMON-MIB::CiscoEnvMonState','fb67666002524322b1b9ae9ed1611be5'),
('604','10218','EtherLike-MIB::dot3StatsDuplexStatus','36ad5e7621ff466ca89e641c4410c6a1'),
('605','10218','IF-MIB::ifOperStatus','6c1104306b5447328703076cb76b64a9'),
('606','10218','IF-MIB::ifType','80d8685de68c49d8beb0f96f58baa1ce'),
('607','10218','Service state','521e28cd45a1421d89b1588e5392b50a'),
('608','10218','zabbix.host.available','cc333fe140bc45388e5508237b42e1ad'),
('609','10253','CISCO-ENVMON-MIB::CiscoEnvMonState','d811f4c78e8246f6a3ed1e903ade574d'),
('610','10253','IF-MIB::ifOperStatus','b4d11dd4e18b4958a17b5da31d101e08'),
('611','10253','IF-MIB::ifType','475ca8ba5faf4ddca62bd41be9b3d410'),
('612','10253','Service state','5470fefd50c64782ac60e3a2aa8b3d3c'),
('613','10253','zabbix.host.available','91d7e7e2bd4d48d7aecb9f9b4654185f'),
('614','10221','EtherLike-MIB::dot3StatsDuplexStatus','1962bc26a6064ee6868371f86d44dbeb'),
('615','10221','IF-MIB::ifOperStatus','7f124ca304d9431386bba2edbb9b2560'),
('616','10221','IF-MIB::ifType','9fde4e729aaf43cc993167d7c0bcae23'),
('617','10221','Service state','38ce73f0eb6b4c4a912b61b2014156fb'),
('618','10221','zabbix.host.available','01bced41864644fd842efed7085fda69'),
('619','10222','IF-MIB::ifOperStatus','538fac0622da44f6983715e4ab5174d8'),
('620','10222','IF-MIB::ifType','111695131cb1419e910bec80a4b8e799'),
('621','10222','Service state','613f2da376b04842aad29125788f0b91'),
('622','10222','zabbix.host.available','73baa4be94844904b9a6fc06152a948a'),
('623','10223','EtherLike-MIB::dot3StatsDuplexStatus','a5032b272e4c4208b16ce190833103b0'),
('624','10223','IF-MIB::ifOperStatus','2bdac31f40b04baaa131ebedde8d5077'),
('625','10223','IF-MIB::ifType','d050b91fbb5c406b8b59e4e66d3c783e'),
('626','10223','Service state','1012a8cf8ce34825aae3ffbb36ee1313'),
('627','10223','zabbix.host.available','93ebe10df982453aa98621c1f1d070f9'),
('628','10224','EtherLike-MIB::dot3StatsDuplexStatus','60e2bd909e284621a8a21810623b0e94'),
('629','10224','IF-MIB::ifOperStatus','2fcb120b5eb840ddbad31a7291711b7d'),
('630','10224','IF-MIB::ifType','d09aa2831cca48eb8c9011582c15bea1'),
('631','10224','Service state','3177ca5723c3410daf20723b88019907'),
('632','10224','zabbix.host.available','c6691c15854b472982f8a6636efdbe82'),
('633','10226','EtherLike-MIB::dot3StatsDuplexStatus','df2e3dab72d94efba9a85bfd7d1c3148'),
('634','10226','IF-MIB::ifOperStatus','9b4ab9573d184bf381f80ba4392fedc7'),
('635','10226','IF-MIB::ifType','8f5eaea6553c4053b1d04569bc14bcb7'),
('636','10226','Service state','b146c1413392488884ca17289a55055a'),
('637','10226','zabbix.host.available','77a05f825d144596a08149088121951a'),
('638','10227','EtherLike-MIB::dot3StatsDuplexStatus','ec3b9adaa2ad448db5a613cfb6e02fd3'),
('639','10227','IF-MIB::ifOperStatus','47c29a4e28094f59a3666ab1bc7bbba9'),
('640','10227','IF-MIB::ifType','023e30ad64bc402abf989de29c2b7c5e'),
('641','10227','Service state','814a713abe0740bc93531596474b80b2'),
('642','10227','zabbix.host.available','f6c6d62117c749a482792e753486a2be'),
('643','10250','EtherLike-MIB::dot3StatsDuplexStatus','846197beea984cc783b84822437bbace'),
('644','10250','IF-MIB::ifOperStatus','28a4a6c5a2b84802bfb1e3215ae398a7'),
('645','10250','IF-MIB::ifType','5a230e50a04d4855808dc213db1bb5c5'),
('646','10250','Service state','5a584e3a8795417c86911e6ffc37b0bd'),
('647','10250','zabbix.host.available','b9fe3941224749efa881a61b56c5d888'),
('648','10229','EtherLike-MIB::dot3StatsDuplexStatus','64bf3ebd444c4c4ca472b0846790b107'),
('649','10229','IF-MIB::ifOperStatus','ec040521269743e7a402bbdd1c952ea3'),
('650','10229','IF-MIB::ifType','a46f120c4e16400980806c27eb08de1e'),
('651','10229','Service state','3bde7ef9431d4a9e86d3cb88bb46a38b'),
('652','10229','zabbix.host.available','c2435e2487434b3b888c54cb4b6c0139'),
('653','10230','IF-MIB::ifOperStatus','59e447d9af934975975b38972c8a7fca'),
('654','10230','IF-MIB::ifType','f959de5e694a4e46a35da37ff58af887'),
('655','10230','Service state','9c931d7fbc984fd6b3a44a09fec264e1'),
('656','10230','zabbix.host.available','d6130251df4c41c0b417fcd8d71f3f15'),
('657','10231','EtherLike-MIB::dot3StatsDuplexStatus','69625f8a027542638c3ca9b64522602d'),
('658','10231','IF-MIB::ifOperStatus','79269236a24e4a1d8f40a600ee1c3a65'),
('659','10231','IF-MIB::ifType','f345b4dd14784f7f96902ad7f95d4038'),
('660','10231','Service state','e3bf54eef520492a94ad3d7bd7c3dede'),
('661','10231','zabbix.host.available','022ceae4990140a59b2ceca83a826dd5'),
('662','10449','IF-MIB::ifOperStatus','2c87030228374ab0a2f1051f5fdd1c48'),
('663','10449','IF-MIB::ifType','20bb48090ee04eadb771f56365193646'),
('664','10449','Service state','e7be0480e0904cc6a68cc027961d36f3'),
('665','10449','zabbix.host.available','1cab243abc4747c3ae5bc1e432c8e2f2'),
('666','10450','IF-MIB::ifOperStatus','3a94c6ec55bb4acea2aff228712bc4f2'),
('667','10450','IF-MIB::ifType','0a80c83f5dcc47b095641aa5a0ed3fcf'),
('668','10450','Service state','e785477c09fb4857b2b6ab0065eb30bb'),
('669','10450','zabbix.host.available','845e465060de4e619f5d2fc841730211'),
('670','10451','IF-MIB::ifOperStatus','fc286c3054704db2bc3b0e8b88ff74c0'),
('671','10451','IF-MIB::ifType','1299953fcf1143fb9155f889f39af069'),
('672','10451','Service state','85dc872152ec4c5f8af35558e554abae'),
('673','10451','zabbix.host.available','1f457b001e2e4d6c8ce2c386ea4d7f77'),
('674','10452','IF-MIB::ifOperStatus','22f415a6b99d4266adc34008f74b8273'),
('675','10452','IF-MIB::ifType','6ed02c4fe35042698491af23e9f9bf81'),
('676','10452','Service state','c16dce20ddb24e648936f2c874df7611'),
('677','10452','zabbix.host.available','9556e9053f5f49e2b8f8f4c312a15fc0'),
('678','10453','IF-MIB::ifOperStatus','1fd54fd1f5b245aa92674432cac9455d'),
('679','10453','IF-MIB::ifType','e8025fb20449470da19bf5881ebe3467'),
('680','10453','Service state','f9e0c946ec844715a29819e037a52d46'),
('681','10453','zabbix.host.available','d0c9d2ac973d49f09fd14d04803ccdf6'),
('682','10454','IF-MIB::ifOperStatus','91555b102b4344ecabb9ffba5cefdfd2'),
('683','10454','IF-MIB::ifType','e93fd9e1a289402f9631275a21da92a8'),
('684','10454','Service state','562a1120aa7148b3a3ebd862480574bf'),
('685','10454','zabbix.host.available','eaac357da10f4fa3ad2cf4cb5784c45a'),
('686','10455','IF-MIB::ifOperStatus','584f260e2200488084f41fbe709dd0ab'),
('687','10455','IF-MIB::ifType','12b06f3b345c43e7b9b6f2299b2608bb'),
('688','10455','Service state','8dd8911e238240a3a0455805bb8128af'),
('689','10455','zabbix.host.available','2f9ffba5f4ae4226b8ff39e4bff0b5d1'),
('690','10456','IF-MIB::ifOperStatus','33859113b37a4ed7b36e31ec6d016fd5'),
('691','10456','IF-MIB::ifType','480088441ae34e1d93cd19fa6379e30f'),
('692','10456','Service state','72f64e97a698449cbd0b6b60bc418b2e'),
('693','10456','zabbix.host.available','a52a4ff531194e7090d12246e011e9d0'),
('694','10457','IF-MIB::ifOperStatus','6e4c66c16e274c5f8caa1617020884cc'),
('695','10457','IF-MIB::ifType','ec8ebd0e1ace4fc4b455cd932c5abb6f'),
('696','10457','Service state','33a1f843573446878618a06307d76f8d'),
('697','10457','zabbix.host.available','4e2dde2550564c3baa667b369e03b257'),
('698','10458','IF-MIB::ifOperStatus','766be8ef402c431995ab5c5e70970cf4'),
('699','10458','IF-MIB::ifType','2a9c7cab3ad0446896cc2ef6121d4452'),
('700','10458','Service state','b5de6f35c8c14486b755175e8dee1d41'),
('701','10458','zabbix.host.available','506571817e794083bdf3a7276b60c22d'),
('702','10459','IF-MIB::ifOperStatus','39905ed60f834c78836e3fe8b4cf34fe'),
('703','10459','IF-MIB::ifType','308b4e2991ad4af88564441bc0e23b93'),
('704','10459','Service state','1624693f374e437db131f743864e865b'),
('705','10459','zabbix.host.available','95c329958acd4df1b5e2459725d50115'),
('706','10460','IF-MIB::ifOperStatus','d58e77f172d14ec5ab67d03296c7d38c'),
('707','10460','IF-MIB::ifType','acf4edb812eb4123af1d8560e63221bd'),
('708','10460','Service state','ad346998940e4b4e8e131b26ee4bee23'),
('709','10460','zabbix.host.available','6bd7aa56b18d4545891bfb11b69ddbd4'),
('710','10461','IF-MIB::ifOperStatus','ce35f7985cc545bb821b0d0603ddcdd5'),
('711','10461','IF-MIB::ifType','15e27cbe878e40b69ca4b16a3f6d1e2a'),
('712','10461','Service state','aae875e8761d49fda56524ee5d37f279'),
('713','10461','zabbix.host.available','287ca5d5072f4fa7b96a31a0812e1cc5'),
('714','10462','IF-MIB::ifOperStatus','10ff85e100864e88910e26efd34896d3'),
('715','10462','IF-MIB::ifType','b65a31c66306406a8fe73e6c210c0ba6'),
('716','10462','Service state','d8e4b86f85e549e4a3641b36c3b8c0b2'),
('717','10462','zabbix.host.available','61071e8ff079488dab143843f124fa99'),
('718','10463','IF-MIB::ifOperStatus','554abaed99124d0eb787506c0cb1b56a'),
('719','10463','IF-MIB::ifType','b59e05d6e52a4e3fb7546d7435c0dddd'),
('720','10463','Service state','59c270831db949389b6c8ae00b0ff394'),
('721','10463','zabbix.host.available','c6ee3b849b6942238cf691ecdb90be26'),
('722','10464','IF-MIB::ifOperStatus','844451a575b14c3abccb52db6637c57c'),
('723','10464','IF-MIB::ifType','f258811d525d47d7a491ffca5cf36211'),
('724','10464','Service state','cadc9c4a3e0549a9bd4092539a6e788b'),
('725','10464','zabbix.host.available','85b1c3feb18c4cbeb187dff5c4dd723b'),
('726','10465','IF-MIB::ifOperStatus','88ab84cb938a40a3918f884efd188d15'),
('727','10465','IF-MIB::ifType','6b690add355342aea58455d2e54f9202'),
('728','10465','Service state','b217d2a84c9844a08e6fef80c9dc6297'),
('729','10465','zabbix.host.available','be9bb4ec29c7453aaef08944117fa319'),
('730','10466','IF-MIB::ifOperStatus','9a2a53f5b1ee4cfd8128d6fd3ee94f19'),
('731','10466','IF-MIB::ifType','6efc0b7ffc2e4205b2cbcca15ceba64c'),
('732','10466','Service state','d6a4ac3dba1d494e8a61150fbdd8cacc'),
('733','10466','zabbix.host.available','4fa91d64132a4c2089cba197f734c0e3'),
('734','10467','IF-MIB::ifOperStatus','741d15ef55334ec9b017e355a1ed958b'),
('735','10467','IF-MIB::ifType','9b1f0649653b46c7be262934f376926e'),
('736','10467','Service state','9493572ff58f4e4c86208bb8ac839aa3'),
('737','10467','zabbix.host.available','bb18fe8a5404430e95b6bb00d571e6ed'),
('738','10468','IF-MIB::ifOperStatus','eb2dc24843604c1b8ef9169ce65e570c'),
('739','10468','IF-MIB::ifType','ea9e3359b57840c8b1fa1b1c0cbf55c5'),
('740','10468','Service state','e392411ac64845efaedeec750731caa8'),
('741','10468','zabbix.host.available','9200cc616f934bc5b0df6136c53e0650'),
('742','10469','IF-MIB::ifOperStatus','09f1738eab3c4fc381b22b1d82a8d192'),
('743','10469','IF-MIB::ifType','e56e7aefbc244b1f9a93fb787d7043db'),
('744','10469','Service state','8ca1d63f5ca1449fb4f2dbb94b54835a'),
('745','10469','zabbix.host.available','c5f9837a1d6d42bb9ffae512dd63f0d6'),
('746','10470','IF-MIB::ifOperStatus','898bfaed08a44954897385e63d854c0f'),
('747','10470','IF-MIB::ifType','d441d05e0e24462b817c5b3eae8d9b9d'),
('748','10470','Service state','04f7843b43454cc487e70cd3639b4024'),
('749','10470','zabbix.host.available','84bf465ed8e3421e817ba4648e7707e9'),
('750','10471','IF-MIB::ifOperStatus','a47c7db9e85a42f6807209393d5be773'),
('751','10471','IF-MIB::ifType','79a3153cc7f74b8ab41acec0f722476c'),
('752','10471','Service state','f430b2fa108a4c2c964d4e39c794cfaf'),
('753','10471','zabbix.host.available','5bc4289f35bd41b9a5034da380f78eba'),
('754','10472','IF-MIB::ifOperStatus','8c73c67d22c343c5a37d23afe2fbe98b'),
('755','10472','IF-MIB::ifType','7d7a0f21f1aa40ceb5acd6f1d9815875'),
('756','10472','Service state','c9ed7ee77afb436e8c85baba81aa3971'),
('757','10472','zabbix.host.available','ef6e97ca311d411c8b1d3dc7d87a1fce'),
('758','10473','IF-MIB::ifOperStatus','d9450045bbb64855ae135a53308f3a22'),
('759','10473','IF-MIB::ifType','6a6b6e7caa4d41b4b08781b665219425'),
('760','10473','Service state','03feaa2653754a39a49be179e127cfef'),
('761','10473','zabbix.host.available','26e5c5020edb4553a70bf0647d5e99a7'),
('762','10474','IF-MIB::ifOperStatus','d081693e5965461ab47d1e39712d0730'),
('763','10474','IF-MIB::ifType','4028b1d91dd34224af78d961a8139422'),
('764','10474','Service state','1b36de603f4a489ab58b3a2007664b97'),
('765','10474','zabbix.host.available','827c5e25ce6c499690912ce2f51f2d23'),
('766','10475','IF-MIB::ifOperStatus','42f75b8ccc1642699bc4c681379cdf9a'),
('767','10475','IF-MIB::ifType','eaf1d4babd704133811b0a0bc912d319'),
('768','10475','Service state','057602363ab44b638e1c116e1e4edafd'),
('769','10475','zabbix.host.available','14fa9bc957f644c19e88352fcd00a196'),
('770','10476','IF-MIB::ifOperStatus','328bdd06aa634535895f099b1ae489a2'),
('771','10476','IF-MIB::ifType','1404a90ce0c24bdfb85712fa4ada16f7'),
('772','10476','Service state','92b5d1e8e71948fba8a01231ff5661ae'),
('773','10476','zabbix.host.available','6c09aa1071a04b4381d625bfa862651c'),
('774','10477','IF-MIB::ifOperStatus','a020e149d8cd44b4bc01757e860fea9b'),
('775','10477','IF-MIB::ifType','eb92bcec20754ffda075157e919ff103'),
('776','10477','Service state','ff7e81f30cbc4a8e9bdd4ab9f1b67332'),
('777','10477','zabbix.host.available','51f609663817483cb44991b1057b6fd1'),
('778','10478','IF-MIB::ifOperStatus','03170ad661d94227a3ed44be919bb70b'),
('779','10478','IF-MIB::ifType','154285efa1184f648f415c16c80ed959'),
('780','10478','Service state','e99c8b74b91047ce94ccf9d257da7952'),
('781','10478','zabbix.host.available','4e98aec63e9a447085e18b0c00878c72'),
('782','10479','IF-MIB::ifOperStatus','373f90696d5446dfb8b96ac601ea46bf'),
('783','10479','IF-MIB::ifType','ec31f6a5de23428babb52891633c1cbf'),
('784','10479','Service state','46a72cb8e18e4f6287a01663b70d65b8'),
('785','10479','zabbix.host.available','3ecff0e7f545452eaf0a4ea5c259099d'),
('786','10480','IF-MIB::ifOperStatus','405ab38009ec49348abe0b0c40cf8400'),
('787','10480','IF-MIB::ifType','f8b354a36e1b483a9b62e151e9979e44'),
('788','10480','Service state','d6794baa748e42ecbbb7ff798a7b6dfe'),
('789','10480','zabbix.host.available','80459903b71047d1979a2043fa4a77a9'),
('790','10481','IF-MIB::ifOperStatus','f3c5ab8576b34585a21cc5c12ea2f030'),
('791','10481','IF-MIB::ifType','6f4886e0f3014d9796ba3014a2cf4190'),
('792','10481','Service state','15c511178ebd4ea1b08cf75048915a8d'),
('793','10481','zabbix.host.available','5b9f23af5c684b2f8360032126ac323e'),
('794','10482','IF-MIB::ifOperStatus','1688633d1275445f846db4e63be4ec87'),
('795','10482','IF-MIB::ifType','54cc6fac26fa4e038de096b4e4a27ca9'),
('796','10482','Service state','7b5f3cb781fd49e1bc0a1811fc6bdb3c'),
('797','10482','zabbix.host.available','07adb358b3dc45dd848501bb129c184f'),
('798','10483','IF-MIB::ifOperStatus','6baa15161f3645ec9f7c55454fb5b575'),
('799','10483','IF-MIB::ifType','9fa04834870c42d18cff898de904b7d1'),
('800','10483','Service state','cb3fc2c6a23845979765dc351158e134'),
('801','10483','zabbix.host.available','239cc24f3e7046059da55c621f7f7741'),
('802','10484','IF-MIB::ifOperStatus','7c2123a387904176a8285e3e1405622f'),
('803','10484','IF-MIB::ifType','618992ab84bd450c95e42ce469bbd45f'),
('804','10484','Service state','0cd4de70a85e44d28b6cad58f76dd298'),
('805','10484','zabbix.host.available','ecb1dff8b48f4537ab39a61186db0dd7'),
('806','10485','IF-MIB::ifOperStatus','2cc282d274444241a03ee557db156c73'),
('807','10485','IF-MIB::ifType','4c9d084f51dd4c649b645c71a812220d'),
('808','10485','Service state','3136d5ca9dd543d1a63a6df52bb60249'),
('809','10485','zabbix.host.available','8f791785fd354a10b5c5a005e023d6c8'),
('810','10486','IF-MIB::ifOperStatus','270aa43aec684b4691a231c73aeb3f0f'),
('811','10486','IF-MIB::ifType','4e3a9e65c5734c34b6a73f9f68513e3e'),
('812','10486','Service state','f90f3e32b5b54f0c93aa0e5722810917'),
('813','10486','zabbix.host.available','c3ffbe98192e4639843ab4a3584965ac'),
('814','10487','IF-MIB::ifOperStatus','5ad8c335be4242fab3fe494707553a44'),
('815','10487','IF-MIB::ifType','ab80a859fba74ce085fdfdddbadeda8e'),
('816','10487','Service state','4c5a4ebb20fd4111b444af3db223a21a'),
('817','10487','zabbix.host.available','46e81d323d9745f4af7af06ff9f85d3a'),
('818','10488','IF-MIB::ifOperStatus','77234a3478a44316b69d7cb39b018b47'),
('819','10488','IF-MIB::ifType','42a4cc6793864b5fa8fcfbb158b993cc'),
('820','10488','Service state','09896efced0143bc9f4c9f33db6051a4'),
('821','10488','zabbix.host.available','097987211d8a41c5bb87be4f8b9e4598'),
('822','10489','IF-MIB::ifOperStatus','8ab38f3183414268a97886537f26bb62'),
('823','10489','IF-MIB::ifType','94cc38c8cfd3498ca3e08b2f3a215d7b'),
('824','10489','Service state','ffb74f2e72274c3eadcee61d34faf885'),
('825','10489','zabbix.host.available','680e9b81d3094abc8a37ae0645076fe0'),
('826','10490','IF-MIB::ifOperStatus','e730f38a15e34cb4b52d27710056a28a'),
('827','10490','IF-MIB::ifType','486c1f40eae844d28eb8acfdebf52bb3'),
('828','10490','Service state','cdebb7ffdc0c4191a2b84569e3d8d40c'),
('829','10490','zabbix.host.available','9b957d38b829475a8cbe06991ff90659'),
('830','10491','IF-MIB::ifOperStatus','bba96f7bcedf4277b5411562b17b0216'),
('831','10491','IF-MIB::ifType','e1c29894283b4837b9fb6b1929b2af2e'),
('832','10491','Service state','9c3206fa143949e1a3d6423bc410a2dd'),
('833','10491','zabbix.host.available','85e730aa40d141f488e0d0e5cc51f4cf'),
('834','10492','IF-MIB::ifOperStatus','e6d270e997dc40dcb0b2d69f0eeaad69'),
('835','10492','IF-MIB::ifType','3435384894224f579ceb1d9529532d49'),
('836','10492','Service state','470819e8e6e04c988f1ddaf4ae78362c'),
('837','10492','zabbix.host.available','a57b96fc823f4634901a4da9df6d8f25'),
('838','10493','IF-MIB::ifOperStatus','1a0d7378fe7340b68845b69fb4f93483'),
('839','10493','IF-MIB::ifType','11d4940866204548bc22f75188bcbc23'),
('840','10493','Service state','c9b07b4e497c4723a45effe620dae0e8'),
('841','10493','zabbix.host.available','2a3d5a84618f48d2a98f1ce43b1541f9'),
('842','10494','IF-MIB::ifOperStatus','209d3691ddba4079971e42b4c66bbf7b'),
('843','10494','IF-MIB::ifType','537470b0ce914388bae1f5c9d0b7e650'),
('844','10494','Service state','f4e3f00eee7942b4a923008204a5efae'),
('845','10494','zabbix.host.available','7e6ac491ba67468ca65aaadd506b0653'),
('846','10495','IF-MIB::ifOperStatus','c212726bbd1047f2aa72c2f88b1bd4d8'),
('847','10495','IF-MIB::ifType','1d00e802a2c44775a84e2cff4e9f3e65'),
('848','10495','Service state','47444d3fbb2f414dbb1c6ad7cb77ee13'),
('849','10495','zabbix.host.available','451f6505bd2e43e08ab5f86e0e7ff816'),
('850','10496','IF-MIB::ifOperStatus','15171bce73d64d4db72399fefc7c55f1'),
('851','10496','IF-MIB::ifType','bcd9de0d817246688f7682a1b66ed046'),
('852','10496','Service state','c0bded469f6a4378a7fdcadd7c858b24'),
('853','10496','zabbix.host.available','427da1e5397442f3a00e445928f054ed'),
('854','10497','IF-MIB::ifOperStatus','6ea0ca9342014c71be6d5c38203bcf55'),
('855','10497','IF-MIB::ifType','97906247683e4a488e191c5aba0b1bb3'),
('856','10497','Service state','7a87ed0256064913ac714fe514f3a87b'),
('857','10497','zabbix.host.available','18e987751fe7494bba178a5412592b90'),
('858','10498','IF-MIB::ifOperStatus','76ca35629e874d2f90546a74a4b36ffb'),
('859','10498','IF-MIB::ifType','a6383fcd4ce349eeac45dea55c502ded'),
('860','10498','Service state','7cc0bd53766f455fa18674f6c6d08b47'),
('861','10498','zabbix.host.available','8882c6eab8a7460e81bed27d01992b08'),
('862','10499','IF-MIB::ifOperStatus','e440d3590aee41198de71b1b8d03b4b9'),
('863','10499','IF-MIB::ifType','9f7f414526dd464f813b6c193317729c'),
('864','10499','Service state','b31538483a81433a9136af0e3f210b2c'),
('865','10499','zabbix.host.available','61a780952af848389136a09bbebbec46'),
('866','10500','IF-MIB::ifOperStatus','839bc47f8c5a4c08a124d98a67d1d008'),
('867','10500','IF-MIB::ifType','e5ff01ab289d41c3b0400ddddd560252'),
('868','10500','Service state','60d08c7e151244b6818a208dc71be165'),
('869','10500','zabbix.host.available','4afed47df39742559534158284d405a4'),
('870','10501','IF-MIB::ifOperStatus','f67e80e8803c4aa7bf64347a6ab40336'),
('871','10501','IF-MIB::ifType','bb70b4c197574b659fec20c066393945'),
('872','10501','Service state','828e978dbe3d445d8059c31f8902e403'),
('873','10501','zabbix.host.available','47facf2a4a234c31851d1ec80a803cbe'),
('874','10502','IF-MIB::ifOperStatus','c3ca1fe6814948818bde09a430c55d56'),
('875','10502','IF-MIB::ifType','526dda4a360a4b81b3875c105087b417'),
('876','10502','Service state','325bbbb044504b29957d9a759d7947d0'),
('877','10502','zabbix.host.available','77b701dfe7914b54ad7f361e0ff55f3f'),
('878','10233','IF-MIB::ifOperStatus','b020eb645cff47c0b91891a36652c087'),
('879','10233','IF-MIB::ifType','0ab024c489794d1299d2992ad5b3e1e8'),
('880','10233','Service state','4197110252654153a2eee46de014a4c0'),
('881','10233','zabbix.host.available','f63bc9f2c0d0427b9d1eccae7a1d612d'),
('882','10234','IF-MIB::ifOperStatus','fecd5d9485284373bf7a2675c2b29698'),
('883','10234','IF-MIB::ifType','fc2630e4b471489e86b27cad74869009'),
('884','10234','Service state','5f4a459df3414f51a6304e95e33719cb'),
('885','10234','zabbix.host.available','8f0e780896f9432486996071a231fba3'),
('886','10235','EtherLike-MIB::dot3StatsDuplexStatus','867a4b73b9c74b8991bd9e7fada4266f'),
('887','10235','IF-MIB::ifOperStatus','8be611d8f2c84397b7ded25165d6c63c'),
('888','10235','IF-MIB::ifType','041993f5fd2c4dec97fe4a1ede37cad5'),
('889','10235','Service state','56ec9ee320f545d7a9f0941258f298ac'),
('890','10235','zabbix.host.available','1bc8b4e625ae4328b3919b6379680ddd'),
('891','10236','IF-MIB::ifOperStatus','ca6bcc5f345b46ffaa445d38a90ddcae'),
('892','10236','IF-MIB::ifType','7eaf5db3b1f047bd9a8f5acdfdaf59ad'),
('893','10236','Service state','0d9190336b1d47569f423067889d7a4d'),
('894','10236','zabbix.host.available','090a2707e81e42829504663cf37b8223'),
('895','10237','IF-MIB::ifOperStatus','2fc5bef495074d0e86641cc136e3dcde'),
('896','10237','IF-MIB::ifType','5161926438084643a3e2b08dac97cb4f'),
('897','10237','Service state','d72bcf64fddb4f4faf3bfb039a36e0e4'),
('898','10237','zabbix.host.available','4ceae86ef7e84797a911fd3d257eaa46'),
('899','10076','zabbix.host.available','4a25a6b3d6e4482ab2a748c79cb55524'),
('900','10076','Zabbix agent ping status','f2885fb5e52946f8bce8eb96a60f433a'),
('901','10075','zabbix.host.available','9c02af203e354ac6ac87a742e85f683b'),
('902','10075','Zabbix agent ping status','b82f35541efe4fc1a432c049eba5d082'),
('903','10077','zabbix.host.available','663bea44626447b5a72a71238dfda919'),
('904','10077','Zabbix agent ping status','3f4bc88020d444e1b951aebfa8f3dfb8'),
('905','10001','ifOperStatus','8c048c6cca8248f2860c208e8db0f59e'),
('906','10001','Linux::Interface protocol types','044df261808442a8af9e5cda0acaa6a5'),
('907','10001','zabbix.host.available','5488e5d78d704b78aee60c60414ce0c3'),
('908','10001','Zabbix agent ping status','64faba3a883241a88da8833970ac3ab0'),
('909','10343','ifOperStatus','276914b5aee2435da609d3112ecd359d'),
('910','10343','Linux::Interface protocol types','79afe98a54a648bb981c29e70ba6652c'),
('912','10343','Zabbix agent ping status','e815d397c5e44f1791622fd598bc1131'),
('913','10248','EtherLike-MIB::dot3StatsDuplexStatus','1fe48656fa5e4a23903921a5b0f2aac4'),
('914','10248','IF-MIB::ifOperStatus','1578e9a6c5f24dd1915d981c245b68fa'),
('915','10248','IF-MIB::ifType','4a342bf160284052bc94e123d13f7992'),
('916','10248','Service state','1ccba0a6ed744226ba878957e7d1aa47'),
('917','10248','zabbix.host.available','72e9f56c06b546319580d856fc112dc1'),
('918','10079','zabbix.host.available','0355844b2bee4fb59bddda6175ef4810'),
('919','10079','Zabbix agent ping status','a72caf871acf4776a891a612932fbf2e'),
('920','10074','zabbix.host.available','693c226692c548869e77d3313934ca28'),
('921','10074','Zabbix agent ping status','8dad41742edf49178119c70abea0a0dc'),
('922','10078','zabbix.host.available','2a704279b6e946a99b88bdebd4f99653'),
('923','10078','Zabbix agent ping status','5db838501e354313888d84800658ed6a'),
('924','10081','Win32_NetworkAdapter::AdapterTypeId','9b087b9bfa09434ea0d0b5c32577abcc'),
('925','10081','Win32_NetworkAdapter::NetConnectionStatus','7e549195e83446228db8bf1101bea83d'),
('926','10081','Windows service state','3f685167f97c492598ad445fc938560f'),
('927','10081','zabbix.host.available','c80233756c9d43769f334d632da07b8c'),
('928','10081','Zabbix agent ping status','5d3e53f3090448c7aaf081eb32b28ced'),
('929','10351','Win32_NetworkAdapter::AdapterTypeId','224ca38281f04c83844763251505cdce'),
('930','10351','Win32_NetworkAdapter::NetConnectionStatus','850e339a24de4ef6a0a881dc57bfa3a6'),
('931','10351','Windows service state','e29ffb786c21406aa2338e3d35b484ef'),
('933','10351','Zabbix agent ping status','0b50ea7e6695421da023ece0a23bed10'),
('934','10249','IF-MIB::ifOperStatus','2357d81186e34d5b91db98c2350e0bdf'),
('935','10249','IF-MIB::ifType','b3f64ce647bc4647a692f2e3bafa3760'),
('936','10249','Service state','43b61695bdf347cb8ec9bd23e7cdbc88'),
('937','10249','zabbix.host.available','a979f49c325344e0b6c064b829a21f62'),
('938','10385','Service state','0aa29a4ffa224d56a107a1cfbd6c416a'),
('939','10385','zabbix.host.available','d107957d44424014a251dff95751a41f'),
('940','10378','zabbix.host.available','7ad319d1815e45a1a28a8cd2516fd8eb'),
('941','10304','Service state','b98830da69f9463f949ed2df7ee5dcb3'),
('942','10304','zabbix.host.available','a67fce1a203742eea56849fc38b8af39'),
('944','10255','zabbix.host.available','a8b28aa27f374f58a1ebc85fd3a84887'),
('945','10256','Service state','98d8b8c35272455281f6ae0775691117'),
('946','10256','zabbix.host.available','1d84ec840bfb4ca0a8e98d11008e8423'),
('947','10258','Service state','2fa79738fa194e04bfaeee91a2e4396f'),
('948','10258','zabbix.host.available','c446435a96c24db2845ba0651eb44c94'),
('949','10259','Service state','e6794dc7602149a3b4fdbfeef45f6e8e'),
('950','10259','zabbix.host.available','1fbe26c5dcb3457f98f84a240aa790cd'),
('951','10510','Boolean format','a435f7e23050406ca40cf6f5f872b5a7'),
('952','10516','Wind direction','9a8fdac997914722acfea90f1f9d45e9'),
('953','10517','Cluster quorate','d4bbd08f3a324a57af97a17f819cb3f3'),
('954','10517','HTTP response status code','87034fae192c44dba6c8bb568cd90bbd'),
('955','10517','Node online','99c0bc65efb34d298586320bdcf14209'),
('956','10518','FREENAS-MIB::ZPoolHealthType','1ce70fc8edf2449ea6a0c687f359441a'),
('957','10518','IF-MIB::ifOperStatus','8206c1b8a10840c0908b34c95f8ba4b3'),
('958','10518','IF-MIB::ifType','f5115f963d0043f6b76ebbd27aaba600'),
('959','10518','Service state','8673d9a283674ca2bcd973f5fdff7258'),
('960','10518','zabbix.host.available','0fe93c05f4c94ce8943950210218f6d9'),
('961','10519','Node health','2e7ddaadebce4b1089dcf01a91d01293'),
('962','10519','Node readiness','705e364c9e1b44dbb3fb50a1b27a8cdb'),
('963','10519','Service state','cc5f50f62d4a4895aa64d167f56cb99c'),
('964','10520','Envoy listener manager','2152e7a114f3489eb6ea80b948c0db5c'),
('965','10520','Envoy server live','c05c038099d74d11b6fef057518a1fc9'),
('966','10520','Envoy server state','f467d440b03e4dab8cc4b15f87185eb5'),
('967','10361','zabbix.host.active_agent.available','0407f8e83ce94d9b88db8dab241e44c0'),
('968','10326','zabbix.host.active_agent.available','c63064c6717e4604805491ce54166356'),
('969','10343','zabbix.host.active_agent.available','d4a5821461a243c9bf320ea58be1af23'),
('970','10351','zabbix.host.active_agent.available','131de6a1016e43019d7cac2ce76901d4'),
('971','10521','Consul Autopilot healthy','92638a6d5a9347edb011a8c999a9895e'),
('972','10521','Consul health state','1f966e7c41134551870c82f013f0b2cd'),
('973','10521','Consul Node role','8d8f7d7e37a44fe8ac590147f621cb4c'),
('974','10522','Consul health state','9c120a74ede844e6a410b7e2c2d712bb'),
('976','10524','Controller status','3bb065172c93464c9f5e2e569f523a05'),
('977','10524','Disk group status','78f22a3d82a64372abb3e3eeb08cf03e'),
('978','10524','Disk temperature status','eb92d7812b8e4d2dbe4908fc3d42ade8'),
('979','10524','Disk type','e6478ee0a41b49778f2a3dc130649838'),
('980','10524','Enclosure status','243d29502c1c416c85eb2ccc961a159c'),
('981','10524','Fan status','40916613dcf24dc2beb8634ec67c04bf'),
('982','10524','FRU status','f656acc354ab4593a1c1718668c02001'),
('983','10524','Health','448c57be77694badb75dbdabe9b233df'),
('984','10524','Port type','66a23d01db744677a1878143ccf102c7'),
('985','10524','RAID type','996bbe1c4e2841d6ac35efd9b5236fef'),
('986','10524','Status','6c5d6649be2347ca83258f0ab1a63137'),
('987','10525','Controller status','f7af1259f3c54a5faa040c743d386d1d'),
('988','10525','Disk group status','6bb0dfe12f4249ef9f4b804885c70c60'),
('989','10525','Disk temperature status','de0e7d801a9b42cf80fe4c71c0eed982'),
('990','10525','Disk type','10547e62c7bb4581b347bc523ef03582'),
('991','10525','Enclosure status','37317f19f7d74b8fa61dd1b28e6f4d42'),
('992','10525','Fan status','1acc14c82fba4c3daa207d0ce9b702f2'),
('993','10525','FRU status','284ed898fb7c46ecb8d719646445264c'),
('994','10525','Health','cb8c3d00dfd4456181765b8b350ea4d2'),
('995','10525','Port type','ec101e7d212747779ed56ef9dbf72e2b'),
('996','10525','RAID type','171c9abf20514b0fb78d532bd987881b'),
('997','10525','Status','402b0dacf14a4436b0d3cfe237bf1e86'),
('998','10526','Boolean','79ba0611293541f29f8b43b34e64465d'),
('999','10526','diskState enum','fd9a3483b02f45c6836b9a126b669402'),
('1000','10526','hardwareType enum','7513c4c923884ed4b8e35ee9cdf4f627'),
('1001','10526','portConnType enum','5d243add5b534ebfac8ef95d55c4c8c9'),
('1002','10526','portFailOverState enum','5762248dd10143a3945c989f0fb73b47'),
('1003','10526','portLinkState enum','5a6cdc765c254f17b136c4267fc71349'),
('1004','10526','rcopyStatus enum','eb36574d642d4f9ea51688b4ff971c91'),
('1005','10526','Service state','aaa5a863e8524a7088e64a51f5976c98'),
('1006','10526','State enum','86e4337cbc86423fb9f605a9fb3b25b1'),
('1007','10526','taskStatus enum','5cfd4442b6244399b7aa8b57e9816a4e'),
('1008','10526','taskType enum','9a8e1dbbb8f7497c9492fc941fde7177'),
('1009','10526','Volume compressionState enum','f529111642364bb3a23637adc554e592'),
('1010','10526','Volume deduplicationState enum','716912c7b7d94f8e97fbf911edc9578e'),
('1011','10526','Volume detailed state enum','6a2355e32bf54483b252f1aaf170aa45'),
('1012','10527','Alarm state','50b7fdfdf6de41f4b4b210a07c10cd77'),
('1013','10527','Status check','d59e4f0c6aaa40bcb5f504f6743d9201'),
('1014','10527','Volume attachment state','cf0267337f284182a43db45d823824b7'),
('1015','10527','Volume status','4f31d29791b94e37b065f790609c50b5'),
('1016','10528','IF-MIB::ifOperStatus','b556be6037b449139eab7830cdab494a'),
('1017','10528','IF-MIB::ifType','c9a24f17cf8243feb44825d707132180'),
('1018','10528','Services status','0cb987b54d4243009aeae0454d0c059e'),
('1019','10528','SNMPv2-TC::TruthValue','1e5ba7a78b5843f0a97edc51eaa96778'),
('1020','10528','zabbix.host.available','187ea1eb9cdb4f52bf5a6651820024a9'),
('1021','10529','Alarm state','4ff4cda021a4464ebbebb42b7ee02673'),
('1022','10529','Read replica state','69bbb2cfded14be6ac596408bdd4de37'),
('1023','10530','Alarm state','5f232f40f02246ab843c9aacdcf8d5c5'),
('1024','10532','Azure resource health state','38c8ce1516704ec2a6f1ea9686db56b9'),
('1025','10534','Boolean','20d3a73c6cc84329a5dfafff29de32cc'),
('1026','10534','Device presence','d3641b3e94ad495f8e0c5c49984a5aa1'),
('1027','10534','Enclosure state','082018b109e24116bbd92f0657113165'),
('1028','10534','Health status','05742432aca048ca96684ba52bd058ae'),
('1029','10534','Hypervisor manager state','6cd4b888faa442c19392b959f1605179'),
('1030','10534','Link port state','930add5553ea42668e590c9824d9e8d3'),
('1031','10534','Logical enclosure state','556391b7f9c045c89d28ac52a1082635'),
('1032','10534','Maintenance state','e26c553cffab4766866bf25639fb89da'),
('1033','10534','MGMT port state','c66615691cba4abc9c7adecc29bb346b'),
('1034','10534','Migration state','6feb2826df9244a8b6b7732c98090b63'),
('1035','10534','Partition health','b878a1503ac14781a142f69a587264ed'),
('1036','10534','Partition status','2c6d8b81e7ee4407b17ca06739ac71f1'),
('1037','10534','Physical server power state','7daddccc109d41f8abf1e04ba1fbd358'),
('1038','10534','Power state','fe093138fdd14f7f80fa4498d91d7fa0'),
('1039','10534','Rack state','5a4901bdd6024256afbfebee6827e103'),
('1040','10534','Resource state','ba5903d60953477aafd313d3688c8dd8'),
('1041','10534','Server hardware state','a545b93c790741a29b726f04f03cbc8f'),
('1042','10534','Service state','2d6f2f67dc114502ae699e873130ba23'),
('1043','10534','State reason','647f5a6d2ce54e78af163f8676f3f1e0'),
('1044','10534','Storage volume state','e20d58a33c3b4a8891dda5da8b86cd5a'),
('1045','10047','Compatibility','b985f0f026be4889923f5d16393e5383'),
('1046','10047','Last seen','3b60aa68965f47baba665e354e0e79de'),
('1047','10047','Proxy mode','7c52b5e2d2434edeba089e136a7eb845'),
('1048','10047','Service state','0d2da53a4e404248b9d156b5a7342002'),
('1049','10261','Compatibility','2498ad0b91d742888acccd435ba52962'),
('1050','10261','Last seen','53d1560f612540d98a2983516b4b9f8c'),
('1051','10261','Proxy mode','cdbd6c1bc69b4dcf925a1048a970139b'),
('1052','10261','Service state','7a5e7def958c4f16b9380d4b81f609c9'),
('1053','10539','Azure resource health state','4eec167b4d69441398b96b8e375d6825'),
('1054','10540','Azure resource health state','323a5259fb854724891515767f341540'),
('1055','10543','Azure resource health state','f208cf6141c44659a2c6904ec4cd7ac3'),
('1056','10544','Azure resource health state','61fc206aaae04abda4012e031f0e27ac'),
('1057','10547','Device status','24967dff65a048578eae18b2485907cb'),
('1058','10548','License status','af92df09c58c4c9287fe294b7b90e193'),
('1059','10548','Uplink status','e16992443a614d81a7f4186622709971'),
('1060','10551','CISCO-ENTITY-FRU-CONTROL-MIB::cefcFanTrayOperStatus','aadba98c69b14fbab88e7c37cab158c6'),
('1061','10551','CISCO-ENTITY-FRU-CONTROL-MIB::cefcFRUPowerOperStatus','166e0ff278184ab7b574833bb0dbaec1'),
('1062','10551','CISCO-ENTITY-SENSOR-MIB::entSensorStatus','2c29188a8b70409eb9735be0caab0393'),
('1063','10551','EtherLike-MIB::dot3StatsDuplexStatus','feee58fb80214a779f809b5b5ea098d4'),
('1064','10551','IF-MIB::ifOperStatus','29398bbb22bd4743944d117f17973bcb'),
('1065','10551','IF-MIB::ifType','dc2b653516504e14a19afc2d2d9f6ef1'),
('1066','10551','Service state','e523e2589daf46be96abf630047538cd'),
('1067','10551','zabbix.host.available','7b2dabb391bf41d1ab5084248e77efed'),
('1068','10552','Control-M service status','54213ae65be64878988c9145d8ae86e4'),
('1069','10553','Control-M agent status','55b997715e1e4a4cb5272874b975b43a'),
('1070','10553','Control-M job status','14b119c7f4a940ea91a8df8c4b114eca'),
('1071','10553','Control-M job type','d6b4e3c8d5934bf08aeb19c8a2f52de4'),
('1072','10553','Control-M server status','f0e3072f0cc44236802ea58f13ebb3ae'),
('1073','10553','Control-M true-false','37a4770c51184c5e9a8d1306625babf3'),
('1074','10557','Azure resource health state','6f9c01899d9e45c9a1316ee081718e9e'),
('1075','10558','Azure resource health state','c87b2eaeb88c4932ad63c73fcafa5331'),
('1076','10561','zabbix.host.available','0d5e922550954e6bad89b22f1d9d0c65'),
('1077','10561','Zabbix agent ping status','e5a39fd666b04b70b6eea53e2373b564'),
('1078','10562','zabbix.host.active_agent.available','9f93aabb08794395b1c62cf784fc58c3'),
('1079','10562','Zabbix agent ping status','9bf3eef7e8d8402ca6f826b377ea2db6'),
('1080','10563','Service state','1817725a41454fd3b9ad22feaf889fc5'),
('1081','10563','zabbix.host.available','ced60845a741400390ba002e69e26b0f'),
('1082','10564','Service state','bdb5d65d925542eaa61c302dc40fbfe8'),
('1083','10318','Docker container health state','bec7f850ca6a477fbaa6c409d971259f'),
('1084','10318','Docker date format','2465e37ba23f4a7cb895835d8cf94737'),
('1085','10510','PV and PVC status phases','f5aa4a786972420b859029116aac8a2f'),
('1086','10571','Database availability','d2aa57a09cbb43e8b53b11316193f013'),
('1087','10571','Instance state','1c26d58d111b4689a2e7acd23a38f1ca'),
('1088','10573','Database availability','8aa36f0f6a0b42a3b5e0eabfb700e8db'),
('1089','10573','Instance state','9adad9dad34646d79bcc6c414ddf8afe'),
('1090','10574','Replication state','ea83090a16d94eb3bb643009c784d820'),
('1091','10574','Thread state','b1acfa66a401499cae56777db6c7750b'),
('1092','10575','Database availability','c783556dfa214e73b676ca187648c5df'),
('1093','10575','Instance state','bc3b08ca201d438689678a29e3575823'),
('1094','10576','Replication state','af111e6b9e5a47cd9c3933b8ce35076c'),
('1095','10577','Instance state','d5f19327f8b74b44a40950d9d4f9410f'),
('1096','10577','Integrity validation status','1e17bce361f9486dae764fc195561703'),
('1097','10329','PostgreSQL checksum failure status','cd2d975b0d7e4f8e89afb1033fce4ce2'),
('1098','10583','Alarm state','6b0f40b56f1c49f0beb66ffb85009c15'),
('1099','10583','CPU Reserved','bb1024c6e5a14c05a8a91ea36aff6d99'),
('1100','10584','Alarm state','2de56a6f2b004624976a39e7b58ea193'),
('1101','10584','CPU Reserved','e49859d7e9b1494181dec88a386b4bb2'),
('1102','10587','Availability zone state','b5d0c4e859eb4b2d854f551e3d8aeff5'),
('1103','10587','Compute service disabling reason','1073ca0bea3f46ebbfbcaba628484be8'),
('1104','10587','General state','a497438c723f4be88f452af2e8627613'),
('1105','10587','General status','c8109a75cda24fe1afec8ea68686cdb0'),
('1106','10587','Server status','375a709551d84ba3b0d4f24b6e0bd291'),
('1107','10329','Service state','6619a58602a44e83950d3d4b5180c0e9'),
('1108','10589','PostgreSQL recovery role','6e5062ae5345454f95cb8608b35eddf4'),
('1109','10589','PostgreSQL replication status','75393338fb514612a5f0ba57cec318b3'),
('1110','10589','Service state','f2af00a32d1e471a98b9e4e6148f68f3'),
('1111','10591','Admin status','ac1ad6688715425b8d6d0ac3c7e72b14'),
('1112','10591','Device state','7de6a0190832425a9b05d9740a6495c6'),
('1113','10591','Not used','a8fdd703646d4f3bb5c3ac7b39fd65da'),
('1114','10591','Operational status','a563ee950d954a3086170c5de9cabf71'),
('1115','10591','Reachability status','93bca94da129493ebfd4e7a9f833bdf8'),
('1116','10591','Unknown','fe4450cc25624972b754d834f369e7fc'),
('1117','10591','Validity status','7ab3966394504fb6a55c3247f4754729'),
('1118','10595','Detection state','766a3c43981147bf85e9e157eb69c510'),
('1119','10595','Driver state','c202a63acca7407bb6d61bf631696691'),
('1120','10595','Service state','40e17de6519d44bb80b4566e0569c31b'),
('1121','10596','Autopilot state','9898b464447240919cf8e25016be687f'),
('1122','10596','Cluster role','fe32599dc75c48f6ab0887652ceb728c'),
('1123','10596','Service state','b90612059a164f3fa0c7ab871afa0c59'),
('1124','10600','Alert severity','0c425866d0ce4412a54b66f215df4cde'),
('1125','10600','CyberFit score','4a5652b3706a45faa2b86ae652425692'),
('1126','10600','True false','df45c606a7ef4f49a3101ad135eef1bc'),
('1127','10602','Last activity','19c5ab8f192d42f4bd35a969bef3c9d6'),
('1128','10602','Quota type','18f5c94273b24b88a96bdf9d01b8d63b'),
('1129','10602','User status','3265bb49d935495abbcf8b24fbe8ed91'),
('1130','10603','Firewall policy action','8b0c51b152b04ba690cd13e43a2c90d9'),
('1131','10603','Firewall policy status','2285b34278df448ab2ba2276913c0b77'),
('1132','10603','Interface status','7aa1df8cbdda4d3aa5bad0af95733a06'),
('1133','10603','Interface type','6d6a2211c6e64ecfb00838886750912b'),
('1134','10603','License status','0e225b17b2e543f18fea31366d9b6286'),
('1135','10603','Link state','76ac7f91b2184689b19dc838cde49ade'),
('1136','10603','Service state','176db78d3aa34c92893300d56eda5737'),
('1137','10603','Service status','3b62f79c5a664465897a372e833af713'),
('1138','10604','Interface status','3ba88094988045799337ddb456936f15'),
('1139','10604','Interface type','61e451f29c9943cf81ed2647166d664f'),
('1140','10604','Service state','398df996f3474f2abdd26d52d5c83dd5'),
('1141','10604','Host availability status','01c410206d2c4754bcaa0dbcbeacade1'),
('1142','10548','Boolean format','ec79f04ded684421b644b38500fe8b26'),
('1143','10548','License statuses','ba834580763b481a8800a0323fa61327'),
('1144','10510','Build status phases','a315a447059e49f9bc0c3e2e9964696f'),
('1145','10048','Proxy buffer mode','10388a0c06864ac483377f4ad3a91854'),
('1146','10262','Proxy buffer mode','70f06f62852c428b94f1f2447d58a6c8'),
('1147','10605','Computer system type','724ed4e07ca34bf594719298055a0837'),
('1148','10605','Drive status','dacd46f1412e4ce2adfa0d938ebbc952'),
('1149','10605','Manager type','30627d058a064666b08c0bbdacd75fe3'),
('1150','10605','Media type','aecddd070d53474eaca622da04842d53'),
('1151','10605','RAID level','0aab2ac5ea59435280e84683bc852d32'),
('1152','10605','Redfish health state','267eae89956048769dcf6eb015b921ba'),
('1153','10327','MSSQL Quorum members state','1454643e9cad46f8953f4c054509151c'),
('1154','10327','MSSQL Quorum members type','caa789916da048c691f8eef5a71a856e'),
('1155','10327','MSSQL Quorum state','23c9fede4c9a4a21854b3fc83de459a7'),
('1156','10327','MSSQL Quorum type','fbf296f404ad45d5b02e3c20104b9b9e'),
('1157','10327','MSSQL Recovery model','f59af5b534994dccaebb4afc3266520b'),
('1158','10607','Alarm state','4bb749152d5d452ead36c5a98c3cac16'),
('1159','10609','MSSQL - Yes / No','0d7dbd62613540cc8dd70d2f0ec76db6'),
('1160','10609','MSSQL AG Connected state','1f962ea838d640d5905ae14d66826239'),
('1161','10609','MSSQL AG Join state','034a175b7fba4e4d8e85806c8f801f18'),
('1162','10609','MSSQL AG Operational state','fbbaea2f75f94b7ba0bb2ed2756e2593'),
('1163','10609','MSSQL AG Recovery health','c90a7f77957a40c8bb6c9370ff1f63d1'),
('1164','10609','MSSQL AG Role','b07e0cd2c7fd4411b16305141058c9d7'),
('1165','10609','MSSQL AG Synchronization health','dd1d46bfb14946769dc929ae1947a328'),
('1166','10609','MSSQL DB state','eeca1ed2c3cb4624b045b9ba0007f1a6'),
('1167','10609','MSSQL Job Run Status','bc4b734c0c3e4f508323a8880a9b27db'),
('1168','10609','MSSQL Mirroring Role','09480e835f474f22ba463b7c6b486de1'),
('1169','10609','MSSQL Mirroring State','6fd710f80063456483f47dab9fdab3c3'),
('1170','10609','MSSQL Quorum members state','300744b8bf494bc09cae58f1366e8043'),
('1171','10609','MSSQL Quorum members type','38b1c1c9183f450cb3256fefaa8ae24a'),
('1172','10609','MSSQL Quorum state','047cb848051f4e85a1f45664fd51255b'),
('1173','10609','MSSQL Quorum type','2697dc5e3d5e462aac7951844a9fa76c'),
('1174','10609','MSSQL Recovery model','1002338ba75c49f89ce5c27872818ff3'),
('1175','10609','MSSQL Safety level','8800c652dc154231b40e996b39c7c2dd'),
('1176','10609','MSSQL Witness state','0be116423b4949959053d581cafa096c'),
('1177','10609','Service state','faafc4168c5a4eb09d20ab4168fbbc9e'),
('1178','10611','YugabyteDB Bool status','8bac0bddc0f144aa901cd15d9cfd0825'),
('1179','10611','YugabyteDB Cluster state','7d6fa95c4346489fae2cdefa436bc9b6'),
('1180','10611','YugabyteDB Cluster type','10b748dae0334399a004e0e412682ccb'),
('1181','10611','YugabyteDB Health state','73aa9e520a2d491c883f7e65b6187fd2'),
('1182','10611','YugabyteDB Keyspace type','8d5264a7981d4e39bab56d4241dda9f3'),
('1183','10611','YugabyteDB Node status','63244be33897496d8f9599aca76e34e1'),
('1184','10613','FanSensor Status','6a115abb186b4f9fa22477c858d60c9e'),
('1185','10613','Firewall SIC Trust State','77983c82abc44f418cacaf98c57be31a'),
('1186','10613','Interface Status','863e809ef63b47168e97c3ea34095503'),
('1187','10613','Interface Type','e2ed7260bd594394b85cb5f803c9d47a'),
('1188','10613','PSU Status','24c77b8db1e44ffd8dbb3547c9140326'),
('1189','10613','Service state','9bef9869d1b94f78b4a5388d34f84a47'),
('1190','10613','VPN Link Priority','4e09769502b84240aff18a24b17f57e0'),
('1191','10613','VPN Peer Type','60597b4621df494fa8e69b7eb2806f4a'),
('1192','10613','VPN Probing State','02a3a896c3a14a23bc882657a8e72c0a'),
('1193','10613','VPN Status','673a59778998478e8752726f1d7cf5c2'),
('1194','10613','VPN Tunnel Type','6109e694ded24bb5a6042805e0e5bda5'),
('1195','10613','Zabbix host available','acb530d7d3ef431f98748e928a088ecb'),
('1196','10614','Autonomous database state','e336c0d4e22f4f9f9c42d6de65fed068'),
('1197','10614','Database availability','3b30e8a71ef342e78f9f29243aafd992'),
('1198','10615','Block volume state','780a56fd95474839943cbd2f8be2fc18'),
('1199','10616','Boot volume state','d881a2a2bedc4556a36f3d676ece0456'),
('1200','10618','Compute instance availability','9e238671edca4ed7b58eefacc861a77d'),
('1201','10618','Compute instance state','c336821eced54261afb0d10a0de6601d'),
('1202','10618','Generic Bool','dce0b4413ede4dbca55f89cbc86736b3'),
('1203','10618','VNIC attachment state','8fdcb86d1dde4d2489239dd61fbd8b08'),
('1204','10619','Lifecycle state','abf7b45647ee4a339df92bf06b12f0df'),
('1205','10604','HA load-balancing schedule','a7e08ed8bf9d4372b60dd44157ed8dc3'),
('1206','10604','HA option status','e90736cde03046dd87f6532af522bd03'),
('1207','10604','HA sync status','1ff2500e234e46fdb532de670a5f2aea'),
('1208','10604','HA system mode','65bdbcdc23994f2a8944f5c69a9b061a'),
('1209','10604','Health check state','7099e2e064d34d32b4a6f96a10798124'),
('1210','10604','IP Address type','8aa46ac9d6c44ffe8213c8f09a42eb50'),
('1211','10604','Option state','ba3b57b54fb44466aca78692ba3dda97'),
('1212','10604','Sensor alert status','c41154255ef34d65bc0636bef7fe0bfa'),
('1213','10604','VDOM HA state','a0ba5fd924d8458d9be8e70db252277d'),
('1214','10604','VDOM operation mode','b0decb11dd494681b813bc4bd03a6b1a'),
('1215','10604','VPN status','44e1f0b6062c414a8252fe34bad1987c'),
('1216','10604','Wireless admin status','08690a78109441c78c8f5bafae3cd3a4'),
('1217','10604','Wireless band type','a5a52ea3f94242eba7220554244ce63a'),
('1218','10604','Wireless connection status','40c5ac1ba5034b5490faa930ee7ed331'),
('1220','10627','Alarm state','e0e5308401bd4abfa79ba604c0481d2a'),
('1221','10629','Boolean','21844e435a364b2f92d675f0967e115a'),
('1222','10629','Workflow run conclusion','9175771d066042c49ac1583c0e8689c6'),
('1223','10629','Workflow run status','9b86b16774094f5e9c06286b27f6f440'),
('1224','10630','Connection availability','6d06a74d603f4ffd8540c8b87f910c7e'),
('1225','10630','Limit mapping','ae5cd12f5e3f4da7aab84db686771cb1'),
('1226','10630','Mail sender','c5e16a1b701e429e8eff56c598530d60'),
('1227','10631','Services health status','cb431f0185884aabae7d46890926e724'),
('1228','10173','VMware Overall Health VC State','7e24ccef9d754cb4805df5b1f27f4ef4'),
('1229','10174','VMware Consolidation','be14ef9303f040859e6edbb13d9b64c5'),
('1230','10174','VMware Hypervisor maintenance mode','815e082c2a804884bb25da4aaee18934'),
('1231','10174','VMware Tools status','64586743ecc74b5a8b7b849cd4521f48'),
('1232','10174','VMware Virtual Machine state','68d712e1c43c4e2d84619c9fcb965919'),
('1233','10175','VMware Connection state','66bedf62dffd4402a037a6ef0f93f228'),
('1234','10366','VMware Overall Health VC State','30aec8e3198e4b91b1182514be8a8f6b'),
('1235','10047','Proxy group invalid value','8c23fc3b231b439a8eec4d0d60859c90'),
('1236','10047','Proxy group state','acd6475b06334535be452cd984a11f6b'),
('1237','10632','Alarm state','a61fdde5c78748339a903f1224524deb'),
('1238','10634','Azure resource health state','fc7ca60876144ac8b240db81537920a6'),
('1239','10636','Huawei storage: Controller role','98ea0c82a56a434ea9cd02ddb31eef6a'),
('1240','10636','Huawei storage: Health status','7ef6825cca084ab9a3250448596fac32'),
('1241','10636','Huawei storage: LUN status','654d5d768ff041c6abc0a438be5698f4'),
('1242','10636','Huawei storage: Running status','e03d03289e84401b8c7e2ba1ddc67ba7'),
('1243','10636','Service state','f8cf9fe95cc54dcba96d4bfe8d8ec34b'),
('1244','10636','zabbix.host.available','da38017b841a4c17adff896fe2cbc9fe'),
('1245','10637','Service state','872ac3dadab34de9a69acd71d68cd7ea'),
('1246','10639','Service state','664f36475a624b6bbf6a23c430baaa9b'),
('1247','10640','Nutanix: Alert severity','86e15b9ab1e04285a8db065fbdf6eedf'),
('1248','10640','Nutanix: Alert state','079d797917c64626af20ce86249c2969'),
('1249','10640','Nutanix: Boolean','10ec1428fba54eeaabc6503361090761'),
('1250','10640','Nutanix: Cluster operation mode','537aaf6158724960a2535913030f0138'),
('1251','10641','Nutanix: Alert severity','c2fbc73721564974adb6251fdb372f70'),
('1252','10641','Nutanix: Alert state','7972e3d351f04d1b9cd4b7a542d8a81f'),
('1253','10641','Nutanix: Boolean','20773014179d419cae5306b0370d405c'),
('1254','10641','Nutanix: Degraded state','6e081d8e0e4e43f7914b311ce2925f82'),
('1255','10641','Nutanix: Disk status','1381c5ba61eb4cb89303b6256f81e036'),
('1256','10641','Nutanix: Host state','513019c2559c48cfbc6c801179c4a7ce'),
('1257','10641','Nutanix: Host type','d934bf8ae17c4ed78a439b92cf2f7bef'),
('1258','10641','Nutanix: Maintenance mode','1ee8073575c842269be02dd94211c22c'),
('1259','10645','Service state','a4bc71640e694328a20fe200c7c5fece'),
('1260','10646','Service state','3592fb0098304d86ab35a6a86aa95ec5'),
('1261','10647','Service state','53bef1cc5ae849e4845ffdd0dd6bcc6a'),
('1262','10648','PostgreSQL checksum failure status','9b9961c136c4426bb6d11c749cbb4cfa'),
('1263','10648','PostgreSQL recovery role','bf1b2c09ce844d9c8b2735901fe77a03'),
('1264','10648','PostgreSQL replication status','ee126cb6f7e14a93ae1e21106ee8732f'),
('1265','10648','Service state','e11dca50f6e4481fa1fda75aeb71cf8c'),
('1266','10649','PostgreSQL recovery role','6337031a50574f65aec828b7dd48beaf'),
('1267','10649','PostgreSQL replication status','0e115837e8c54923ad10a9b7adcda3dd'),
('1268','10649','Service state','5bc68afd88094e0fb14572246050181f'),
('1269','10650','Performance state','6893a941192a4513ab24b20b0885b27e'),
('1270','10651','Performance state','9c9e6145dc87474ba03f16ea73c355d4'),
('1271','10652','Azure resource health state','9bb00a69069d4c22a0b75b745da0de73'),
('1272','10652','Azure SQL instance provisioning state','aae2eec109b649d38e80684cdeb9458c'),
('1273','10654','BGP4-V2-MIB-JUNIPER::jnxBgpM2PeerState','3b94e9f3175c4822b93682636e5cf64d'),
('1274','10654','BGP4-V2-MIB-JUNIPER::jnxBgpM2PeerStatus','6a57534ae79048229a3ed10f9f0a52e4'),
('1275','10654','EtherLike-MIB::dot3StatsDuplexStatus','aba24883ea0f4a569748153eb554443a'),
('1276','10654','IF-MIB::ifOperStatus','93ba7232ec5d47db9478d91b6bdfd01b'),
('1277','10654','IF-MIB::ifType','ecb1a90bea804c79aa074876a95397ae'),
('1278','10654','JUNIPER-MIB::jnxOperatingState','71aa874db0c647f2ab6b6f6ed741efa3'),
('1279','10654','JUNIPER-MIB::jnxRedundancyState','0432e6064cae4a22bdd512d0c8900f35'),
('1280','10654','JUNIPER-MIB::jnxRedundancySwitchoverReason','742e0675e0b84ba685b1b06172334215'),
('1281','10654','OSPF-MIB::ospfNbrHelloSuppressed','5d007beac7eb4743ab241d6a1c80847a'),
('1282','10654','OSPF-MIB::ospfNbrState','ed5b11312aaf44e0b888c58743e89f81'),
('1283','10654','Service state','1373262e914a430abe52ec79d2fc138b'),
('1284','10654','zabbix.host.available','bcba269d955b452d87a6f49f7a35ed2a'),
('1285','10655','BGP peer status','8f6bef0b83a440ec9e54676840809c47'),
('1286','10655','Boolean','75f5d630b1b74c7c8233b44422bba5eb'),
('1287','10655','HA mode','1ce2f4a43b274e719e9e44d24cb826bd'),
('1288','10655','HA state','3148f488405c4c3a8ca055891550bda1'),
('1289','10656','Network interface status','122afb9826d4493aa319b67025bd5e74'),
('1290','10656','Redfish API availability','2cfad557b52d49f7a56f84323c7b098a'),
('1291','10656','Redfish status health','0b3b101349fa4b4d94983d7fdae83679'),
('1292','10656','Redfish status state','e9e6e46c13fe4bd0a29b65cad929c6bc'),
('1293','10656','Virtual disk RAID status','29051e06a48b444a8ee285cd185ae04f'),
('1294','10656','Virtual disk read policy','ac7f30cf50cb459aaa41103c8fa6df1c'),
('1295','10656','Virtual disk write policy','39e0e7ddc8fd459e90fdb247caee7512'),
('1296','10657','IDRAC-MIB-SMIv2::batteryState','ffad2b2a57364726ba31cfc89f363e2b'),
('1297','10657','IDRAC-MIB-SMIv2::BooleanType','053a4a529ddf4bc7b1971958e4dce5c9'),
('1298','10657','IDRAC-MIB-SMIv2::NetworkDeviceConnectionStatusEnum','2216bf2485f548be90060048eec6547d'),
('1299','10657','IDRAC-MIB-SMIv2::ObjectStatusEnum','58480240826e49b09bf73f682f252148'),
('1300','10657','IDRAC-MIB-SMIv2::physicalDiskComponentStatus','e44bc856e8d449f9a288b614b7d6a143'),
('1301','10657','IDRAC-MIB-SMIv2::physicalDiskMediaType','e17dbbe344994170afa47b3d76b393f8'),
('1302','10657','IDRAC-MIB-SMIv2::ProcessorDeviceStatusReadingFlags','c9543b611d434fba99d4be3614813419'),
('1303','10657','IDRAC-MIB-SMIv2::StatusProbeEnum','d2f5ad57814e4c3ab8f1e7b1fa076557'),
('1304','10657','IDRAC-MIB-SMIv2::virtualDiskLayout','70851c009b4d4f0484f3bb955558c1db'),
('1305','10657','IDRAC-MIB-SMIv2::virtualDiskOperationalState','160204c8609542038d31357ce58424df'),
('1306','10657','IDRAC-MIB-SMIv2::virtualDiskReadPolicy','c1686f5a938f4dac977d55517687358e'),
('1307','10657','IDRAC-MIB-SMIv2::virtualDiskState','1c3e3bcf7ff14f59ac24f9d62f6671af'),
('1308','10657','IDRAC-MIB-SMIv2::virtualDiskWritePolicy','0a940bdd7900425b941e11e486e70c8a'),
('1309','10657','zabbix.host.available','20182c95fb0e494a826a7ae3f932127b'),
('1310','10435','Network interface status','623bbf13357f4b22a4030c813437db18'),
('1311','10435','Redfish API availability','8be2ad02ae4c4836bc21816e89a906ac'),
('1312','10435','Redfish status health','32fa026175444306b08fe3cf6618a98a'),
('1313','10435','Redfish status state','b30ec1c62a124a48ac129e6065d3180d'),
('1314','10435','Virtual disk RAID status','a63d06ed53ac4f3fb07a7e584301f34a'),
('1315','10435','Virtual disk read policy','3e1d1bf56dd841c7bdc9679ff8e24748'),
('1316','10435','Virtual disk write policy','c11a3e902ef248a5a1a77af824b43252'),
('1317','10436','IDRAC-MIB-SMIv2::NetworkDeviceConnectionStatusEnum','d731845914484868bbcb3c3e5b9d7707'),
('1318','10436','IDRAC-MIB-SMIv2::ProcessorDeviceStatusReadingFlags','4b8e905e42a94f8ebb9a9a4b2648ed84'),
('1319','10437','Network interface status','14d13bad8ac34a8987c178a3ab12bcd1'),
('1320','10437','Redfish API availability','c38ce461129d4d338847d86a5e051d09'),
('1321','10437','Redfish status health','8074a7bb6e304adc8945bbeffab84ca6'),
('1322','10437','Redfish status state','417f088da9f34fd9b0f75769a44cc126'),
('1323','10437','Virtual disk RAID status','78b955ca37dd4d3da9230b7263694206'),
('1324','10437','Virtual disk read policy','90bf833092b8409a818439b6a2eb9fbe'),
('1325','10437','Virtual disk write policy','a261537c3f7e4dd3a14ba4bad0c930dd'),
('1326','10438','IDRAC-MIB-SMIv2::NetworkDeviceConnectionStatusEnum','9dbe9b652e7746229cf5ef744a67c566'),
('1327','10438','IDRAC-MIB-SMIv2::ProcessorDeviceStatusReadingFlags','1c683fea74b645ed9f42d8fcd6edf442'),
('1328','10658','Network interface status','56fb82a2303e451b9a585687a0902794'),
('1329','10658','Redfish API availability','c1074235685c4d2096c30a3ab686634e'),
('1330','10658','Redfish status health','a5e2bf8ce89a482aa87ccccbf01cb1cd'),
('1331','10658','Redfish status state','c295caa412b74acb918176f8d4543010'),
('1332','10658','Virtual disk RAID status','d88a53d7143a49dfb37057f9d80ed48a'),
('1333','10658','Virtual disk read policy','46520ef5e9e544c4a4393bd6a2ed4548'),
('1334','10658','Virtual disk write policy','6c17f062dc8e4f7cb2362adcffbe11c5'),
('1335','10659','IDRAC-MIB-SMIv2::batteryState','44ae746465504433b126a6ad47867539'),
('1336','10659','IDRAC-MIB-SMIv2::BooleanType','540df39092da4d0ba419d9225b6855e5'),
('1337','10659','IDRAC-MIB-SMIv2::NetworkDeviceConnectionStatusEnum','bcd3842a7f14414786e7e893bf18033f'),
('1338','10659','IDRAC-MIB-SMIv2::ObjectStatusEnum','0e8b14fc00af4ec1b098b1dad64bbf12'),
('1339','10659','IDRAC-MIB-SMIv2::physicalDiskComponentStatus','7c02091fa34847cb8571066c5f1ccfd3'),
('1340','10659','IDRAC-MIB-SMIv2::physicalDiskMediaType','a0c2ee107bc24efba036b01f8aa16c03'),
('1341','10659','IDRAC-MIB-SMIv2::ProcessorDeviceStatusReadingFlags','b7f4bdede53e44ada2841fb5d39793db'),
('1342','10659','IDRAC-MIB-SMIv2::StatusProbeEnum','1b7e62b02f6d4b9aad5e81de0792037e'),
('1343','10659','IDRAC-MIB-SMIv2::virtualDiskLayout','f3ed0698bf4448ad9927f193aa804365'),
('1344','10659','IDRAC-MIB-SMIv2::virtualDiskOperationalState','5e0085d3c952446a8fb9603b074d720f'),
('1345','10659','IDRAC-MIB-SMIv2::virtualDiskReadPolicy','65fbf402163e494aa59a7dc814a038f9'),
('1346','10659','IDRAC-MIB-SMIv2::virtualDiskState','ce091236ac5c461da03712a39e97676b'),
('1347','10659','IDRAC-MIB-SMIv2::virtualDiskWritePolicy','d30e0073fbab42ecbb1c4ab74ad1f991'),
('1348','10659','zabbix.host.available','f5c3e47da21c4fd8ac4fd2c079ebd28b'),
('1349','10439','Network interface status','a9fd1db9128d4efca329941ff4f4d41b'),
('1350','10439','Redfish API availability','45c31886b41f4592bb87ffe940ce9fd8'),
('1351','10439','Redfish status health','e8d3f0814cad4a2bba79231c1c8c0230'),
('1352','10439','Redfish status state','d18e6f1b160f4ee3851b21cff3309d40'),
('1353','10439','Virtual disk RAID status','82e0dc0cd4714fb1b3894adff630b0d8'),
('1354','10439','Virtual disk read policy','3c9e776333294c79a975b715fab7a35d'),
('1355','10439','Virtual disk write policy','916622b4d50b4304b95888c9fc49149e'),
('1356','10440','IDRAC-MIB-SMIv2::NetworkDeviceConnectionStatusEnum','8a60520959be4ec5aa525f637beb8472'),
('1357','10440','IDRAC-MIB-SMIv2::ProcessorDeviceStatusReadingFlags','7ad96a534bc84f32afd6ae59011db2a0'),
('1358','10441','Network interface status','4cb6f9b8048a4109849a7f12bf0aba1c'),
('1359','10441','Redfish API availability','dfee913787ba42e49a11dae28d1a603f'),
('1360','10441','Redfish status health','5b5774ab04ec4f3eaf1e528ad02e0978'),
('1361','10441','Redfish status state','f73f21dc4f964efeb4f54f8565d4cd58'),
('1362','10441','Virtual disk RAID status','865251146a524335be8ec054d8df15aa'),
('1363','10441','Virtual disk read policy','b37b8981282944348ab2748fb09d55f4'),
('1364','10441','Virtual disk write policy','ccdd0a176df640e09b95837aba7580f1'),
('1365','10442','IDRAC-MIB-SMIv2::NetworkDeviceConnectionStatusEnum','a866da3a7c4e43d086efafb07178f8ec'),
('1366','10442','IDRAC-MIB-SMIv2::ProcessorDeviceStatusReadingFlags','092b816c537e4fe79c7f5826037c5872'),
('1367','10255','IDRAC-MIB-SMIv2::NetworkDeviceConnectionStatusEnum','0f2ef2e7ca5540fbbbdaa3e51acff0e1'),
('1368','10255','IDRAC-MIB-SMIv2::ProcessorDeviceStatusReadingFlags','c2a88e35b99c4c9d8b369a6edce17b3c'),
('1369','10255','IDRAC-MIB-SMIv2::virtualDiskReadPolicy','25c91adad83c46d48a8308b2e6273666'),
('1370','10262','Zabbix proxy check','d9fa93ed96d1497c9049f8f30267e9ed'),
('1371','10048','Zabbix proxy check','f9f6987645b341b68ba5449c9b741459'),
('1372','10660','Proxy buffer mode','22c73bf5429d4e9baf358fe6c177a033'),
('1373','10660','Zabbix proxy check','942633fa91474837afc5ce050cb86cb4'),
('1374','10661','Proxy buffer mode','550df0eb013b4103ad00dc3cc478189d'),
('1375','10661','Zabbix proxy check','c5cae9ab19384c9f85fe31f7e22ab8c7'),
('1376','10261','Zabbix server check','4eaa5f12801d43d9a5cfa2bca736ccc3'),
('1377','10047','Zabbix server check','9b8fe61b528547f49598075e79fb6623'),
('1378','10662','Cluster node status','c9ec732079f64b5d9e8d4b7c628580e3'),
('1379','10662','Compatibility','ee5e7ff1e0e041eca7483ea45213d3a5'),
('1380','10662','Last seen','edc03d2774094cfcb20afbe8476c85fb'),
('1381','10662','Proxy mode','7247343b21ed4fd4823f9148a3245805'),
('1382','10662','Service state','253052f6133b498eb7248bc3d66fa18e'),
('1383','10662','Value cache operating mode','cfe65eb3384047dfaf31a8d4b09c4de1'),
('1384','10662','Zabbix server check','bf89fa6047464f668db6b324abf0cc3e'),
('1385','10663','Cluster node status','f1f6de972fbc4675bee0426bcb15838c'),
('1386','10663','Compatibility','2e74275424ff4939a9f1a02424fcb42e'),
('1387','10663','Last seen','2e9f0571bae14b6485ae5cb79f2cb3b3'),
('1388','10663','Proxy mode','ae285f32e1884d75bd485ad08106ee9c'),
('1389','10663','Service state','2fa179c8f5f2482ca216270b91896e50'),
('1390','10663','Value cache operating mode','a73ec20cb9e9412296b6d604505376da'),
('1391','10663','Zabbix server check','c2fbdc79f9614caf99aa266087a7317d'),
('1392','10664','Azure resource health state','34874b4cf9cb4ce2863a5698ff308126'),
('1393','10665','Certificate Type','df8766d094be4b5aa569a20e9fc1e552'),
('1394','10665','Connection Status','0e3d616a7682487997fcf4e756bd875a'),
('1395','10665','Controller Mode','2f9f5ae3a2f14408b5fa8c0f82d3d5a6'),
('1396','10665','Controller Status','05c72722f9f9460291f50d3663161716'),
('1397','10665','Drive Status','00a977f4cb4d4962aeae7124e63f460e'),
('1398','10665','Hardware Status','788e2982fbd5478da2a4f94e46031439'),
('1399','10665','Pod Status','950c9c6b81e042938ca464a84a57b662'),
('1400','10665','Service Status','fe5ac2914b2f46fbbd0516e3ee0959bc'),
('1401','10666','Boolean','d2c0016639b2413c85a000746ee56109'),
('1402','10666','Certificate Type','a6f5e4bef3114c4cb08eb4c9e449dfa8'),
('1403','10666','Controller Mode','b6aed58a52b742c680173452935c2bca'),
('1404','10666','Controller Status','f315c5769cbd4eb4ac4721751070d247'),
('1405','10666','Drive Status','ed60650d00594c5c9778501ee06fb648'),
('1406','10666','Hardware Status','92c4cbd25c9f45408aa335aac5bec52a'),
('1407','10666','Pod Status','0142212de71f42bc9f7521447d89ff0c'),
('1408','10666','Service Status','59047ec19a5c4229bce4450f134ac5cc'),
('1409','10667','Alarm severity','33d53176ef7543eaa868381569532b2e'),
('1410','10667','BGP peer state','306f5cccb3d54f27bc1c5afc987fab4f'),
('1411','10667','FAN status','5e2aa39070af44e1b4ebe151570e1d51'),
('1412','10667','FPC slot state','49872af732044c66890066e5f34ae60b'),
('1413','10667','Operational status','fba99ee500df44d3b08f75d90f763834'),
('1414','10667','OSPF neighbor state','e80f0208b55940c4bc79332026d987e9'),
('1415','10667','PEM state','4a9f2fcadddb4209aff2b37669301409'),
('1416','10667','Service status','c08a38a20c054fa4b6a99916ca884921'),
('1417','10690','Azure backup job status','f79314c2d4bb458caf510b85f65cae81'),
('1418','10690','Azure resource health state','7bca76cc48c3468ca67b924f59003e4a'),
('1419','10763','Cisco FTD interface status','b141de8aea904aef8eeb955fe7d09bd6'),
('1420','10763','Cisco FTD process status','2a34dceeb32d44e39be2037a85b9dcb7'),
('1421','10565','Smart self-test','82b0797d499544a4832cda04b163109a'),
('1422','10566','Smart self-test','404d3c19ceef4e8e9c14d5e34bbd2a7b'),
('1423','10764','AWS Backup job state','0296c0c525304ea2ad91070346669b42'),
('1424','10764','AWS Backup vault lock status','b5821fcd5f3444198570b8dfb925ce0a'),
('1425','10764','AWS Backup vault state','d591fd3704ff4fc3a7e5ee6b206190ad');
INSERT INTO `items` (`itemid`,`type`,`snmp_oid`,`hostid`,`name`,`key_`,`delay`,`history`,`trends`,`status`,`value_type`,`trapper_hosts`,`units`,`formula`,`logtimefmt`,`templateid`,`valuemapid`,`params`,`ipmi_sensor`,`authtype`,`username`,`password`,`publickey`,`privatekey`,`flags`,`interfaceid`,`description`,`inventory_link`,`lifetime`,`evaltype`,`jmx_endpoint`,`master_itemid`,`timeout`,`url`,`query_fields`,`posts`,`status_codes`,`follow_redirects`,`post_type`,`http_proxy`,`headers`,`retrieve_mode`,`request_method`,`output_format`,`verify_peer`,`verify_host`,`allow_traps`,`discover`,`uuid`,`lifetime_type`,`enabled_lifetime_type`,`enabled_lifetime`) VALUES ('10061','5','','10047','Number of processed numeric (float) values per second','zabbix[wcache,values,float]','1m','31d','365d','0','0','','!vps','','',NULL,NULL,'','','0','','','','','0',NULL,'The statistics and availability of Zabbix write cache.\r\nThe number of processed numeric (float) values.','0','0','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','de63f78f36e74361b6c9993d12d8b7c8','0','2','0'),
('10062','5','','10047','Number of processed character values per second','zabbix[wcache,values,str]','1m','31d','365d','0','0','','!vps','','',NULL,NULL,'','','0','','','','','0',NULL,'The statistics and availability of Zabbix write cache.\r\nThe number of processed character values.','0','0','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b58fdd85cd6a48489d0b983ee8ebe97b','0','2','0'),
('10063','5','','10047','Number of processed log values per second','zabbix[wcache,values,log]','1m','31d','365d','0','0','','!vps','','',NULL,NULL,'','','0','','','','','0',NULL,'The statistics and availability of Zabbix write cache.\r\nThe number of processed log values.','0','0','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','dae76dc6c4ce4707be7cf9534efc0233','0','2','0'),
('10064','5','','10047','Number of processed numeric (unsigned) values per second','zabbix[wcache,values,uint]','1m','31d','365d','0','0','','!vps','','',NULL,NULL,'','','0','','','','','0',NULL,'The statistics and availability of Zabbix write cache.\r\nThe number of processed numeric (unsigned) values.','0','0','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','47132a8565c943c0abbd4918d6af9339','0','2','0'),
('10065','5','','10047','Number of processed text values per second','zabbix[wcache,values,text]','1m','31d','365d','0','0','','!vps','','',NULL,NULL,'','','0','','','','','0',NULL,'The statistics and availability of Zabbix write cache.\r\nThe number of processed text values.','0','0','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5397d6d4dedc44c29ff25b8fd5611003','0','2','0'),
('10066','5','','10047','Number of processed not supported values per second','zabbix[wcache,values,not supported]','1m','31d','365d','0','0','','!vps','','',NULL,NULL,'','','0','','','','','0',NULL,'The statistics and availability of Zabbix write cache.\r\nThe number of times the item processing resulted in an item becoming unsupported or remaining in that state.','0','0','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c99a99cf7e1e44918736ab860694d3a4','0','2','0'),
('10067','5','','10048','Number of processed numeric (float) values per second','zabbix[wcache,values,float]','1m','31d','365d','0','0','','!vps','','',NULL,NULL,'','','0','','','','','0',NULL,'The statistics and availability of Zabbix write cache.\r\nThe number of processed numeric (float) values.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ba5efd0ed21d4ac39e1375788b7198de','0','2','0'),
('10068','5','','10048','Number of processed character values per second','zabbix[wcache,values,str]','1m','31d','365d','0','0','','!vps','','',NULL,NULL,'','','0','','','','','0',NULL,'The statistics and availability of Zabbix write cache.\r\nThe number of processed character values.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5f0c3ed0998e499aaa1e4a30726928fc','0','2','0'),
('10069','5','','10048','Number of processed log values per second','zabbix[wcache,values,log]','1m','31d','365d','0','0','','!vps','','',NULL,NULL,'','','0','','','','','0',NULL,'The statistics and availability of Zabbix write cache.\r\nThe number of processed log values.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','47cdd6ef01734ec1ab15b0ab43d147ca','0','2','0'),
('10070','5','','10048','Number of processed numeric (unsigned) values per second','zabbix[wcache,values,uint]','1m','31d','365d','0','0','','!vps','','',NULL,NULL,'','','0','','','','','0',NULL,'The statistics and availability of Zabbix write cache.\r\nThe number of processed numeric (unsigned) values.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8e4b9641b173415c8608ee4863bcd547','0','2','0'),
('10071','5','','10048','Number of processed text values per second','zabbix[wcache,values,text]','1m','31d','365d','0','0','','!vps','','',NULL,NULL,'','','0','','','','','0',NULL,'The statistics and availability of Zabbix write cache.\r\nThe number of processed text values.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1c259b08b3ff445f9b2f24a02c07c5db','0','2','0'),
('10072','5','','10048','Number of processed not supported values per second','zabbix[wcache,values,not supported]','1m','31d','365d','0','0','','!vps','','',NULL,NULL,'','','0','','','','','0',NULL,'The statistics and availability of Zabbix write cache.\r\nThe number of times the item processing resulted in an item becoming unsupported or remaining in that state.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','46574db1d70545f6af89e8607d22f5bb','0','2','0'),
('22183','5','','10047','History write cache, % used','zabbix[wcache,history,pused]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The statistics and availability of Zabbix write cache. The percentage of used history buffer.\r\nThe history cache is used to store item values. A high number indicates database performance problems.','0','0','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1ae8253bb4da434da3ea6bcb0352115d','0','2','0'),
('22185','5','','10047','Trend write cache, % used','zabbix[wcache,trend,pused]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The statistics and availability of Zabbix write cache. The percentage of used trend buffer.\r\nThe trend cache stores the aggregate of all items that have received data for the current hour.','0','0','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5cca0fc9878d4e068467d5a3b8558ed5','0','2','0'),
('22187','5','','10047','Number of processed values per second','zabbix[wcache,values]','1m','31d','365d','0','0','','!vps','','',NULL,NULL,'','','0','','','','','0',NULL,'The statistics and availability of Zabbix write cache.\r\nThe total number of values processed by Zabbix server or Zabbix proxy, except unsupported items.','0','0','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','db364af6bcb24881850f3979933fccb0','0','2','0'),
('22189','5','','10047','Configuration cache, % used','zabbix[rcache,buffer,pused]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The availability statistics of Zabbix configuration cache. The percentage of used data buffer.','0','0','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ac2aebc15b084d049538b12e9513c08d','0','2','0'),
('22191','5','','10047','Value cache, % used','zabbix[vcache,buffer,pused]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The availability statistics of Zabbix value cache. The percentage of used data buffer.','0','0','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','559ca5966e404c948f99cabf7a9077e8','0','2','0'),
('22196','5','','10047','Value cache hits','zabbix[vcache,cache,hits]','1m','31d','365d','0','0','','!vps','','',NULL,NULL,'','','0','','','','','0',NULL,'The effectiveness statistics of Zabbix value cache. The number of cache hits (history values taken from the cache).','0','0','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','69b14487a9744dbb866f2e6ee131d0e5','0','2','0'),
('22199','5','','10047','Value cache misses','zabbix[vcache,cache,misses]','1m','31d','365d','0','0','','!vps','','',NULL,NULL,'','','0','','','','','0',NULL,'The effectiveness statistics of Zabbix value cache. The number of cache misses (history values taken from the database).','0','0','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c78439859fd248cdb15e1eee37be2220','0','2','0'),
('22219','5','','10047','Queue over 10 minutes','zabbix[queue,10m]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The number of monitored items in the queue that are delayed by at least 10 minutes.','0','0','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2b2f695ed1ef4a7a871c80df9c911e90','0','2','0'),
('22396','5','','10047','History index cache, % used','zabbix[wcache,index,pused]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The statistics and availability of Zabbix write cache. The percentage of used history index buffer.\r\nThe history index cache is used to index values stored in the history cache.','0','0','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9fc7faf5455e4e78bdb1406f947bfa08','0','2','0'),
('22399','5','','10047','Utilization of poller data collector processes, in %','zabbix[process,poller,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the poller processes have been busy for the last minute.','0','0','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cbec202e15be49de93dc0c5f58824ae3','0','2','0'),
('22400','5','','10047','Utilization of unreachable poller data collector processes, in %','zabbix[process,unreachable poller,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the unreachable poller processes have been busy for the last minute.','0','0','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4fd24bdb8935435e8617c9607b9c6ca1','0','2','0'),
('22401','5','','10047','Utilization of vmware collector data collector processes, in %','zabbix[process,vmware collector,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the vmware collector processes have been busy for the last minute.','0','0','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bad00e43cd064a0fb3a4b65b71bea926','0','2','0'),
('22402','5','','10047','Utilization of http poller data collector processes, in %','zabbix[process,http poller,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the http poller processes have been busy for the last minute.','0','0','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','419e937c4a1d4fa09c4b50ca88cbe3e2','0','2','0'),
('22404','5','','10047','Utilization of trapper data collector processes, in %','zabbix[process,trapper,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the trapper processes have been busy for the last minute.','0','0','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0dd727eddfaf45a9a819a9d64c5b72c7','0','2','0'),
('22406','5','','10047','Utilization of history syncer internal processes, in %','zabbix[process,history syncer,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the history syncer processes have been busy for the last minute.','0','0','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4d92eb7b411345cfbd6e2ea2ff5c1788','0','2','0'),
('22408','5','','10047','Utilization of housekeeper internal processes, in %','zabbix[process,housekeeper,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the housekeeper processes have been busy for the last minute.','0','0','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','23f448b5acba472881857647ca1bb614','0','2','0'),
('22412','5','','10047','Utilization of configuration syncer internal processes, in %','zabbix[process,configuration syncer,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the configuration syncer processes have been busy for the last minute.','0','0','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','301e7fe93a024444b19766e665e9d156','0','2','0'),
('22414','5','','10047','Utilization of self-monitoring internal processes, in %','zabbix[process,self-monitoring,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the self-monitoring processes have been busy for the last minute.','0','0','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6fc9c055d4894c19b3b1075db106d995','0','2','0'),
('22416','5','','10047','Utilization of ipmi poller data collector processes, in %','zabbix[process,ipmi poller,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the ipmi poller processes have been busy for the last minute.','0','0','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c11d415de9c64fd6911f82d49db140d3','0','2','0'),
('22418','5','','10047','Utilization of icmp pinger data collector processes, in %','zabbix[process,icmp pinger,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the icmp pinger processes have been busy for the last minute.','0','0','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d5d469d5eb2e4e0ca0afc89b603d4065','0','2','0'),
('22420','5','','10047','Utilization of proxy poller data collector processes, in %','zabbix[process,proxy poller,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the proxy poller processes have been busy for the last minute.','0','0','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','baf22e095078435d978a6c4374500db4','0','2','0'),
('22422','5','','10047','Utilization of escalator internal processes, in %','zabbix[process,escalator,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the escalator processes have been busy for the last minute.','0','0','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d12ce718fad34644b92d98cf2096e7df','0','2','0'),
('22424','5','','10047','Utilization of alerter internal processes, in %','zabbix[process,alerter,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the alerter processes have been busy for the last minute.','0','0','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cac7bb12993945fe848df86f7c4502ed','0','2','0'),
('22426','5','','10047','Utilization of timer internal processes, in %','zabbix[process,timer,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the timer processes have been busy for the last minute.','0','0','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3af0ec03af6542e18aaff505e3806089','0','2','0'),
('22689','5','','10047','Utilization of java poller data collector processes, in %','zabbix[process,java poller,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the java poller processes have been busy for the last minute.','0','0','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a8168691df3d43f1a1e106062f18ee06','0','2','0'),
('22835','0','','10074','Maximum number of opened files','kernel.maxfiles','1h','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'May be increased by using the `sysctl` utility or modifying the file `/etc/sysctl.conf`.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','56a83dc0e14e47339e13a451adcefef7','0','2','0'),
('22836','0','','10074','Maximum number of processes','kernel.maxproc','1h','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'May be increased by using the `sysctl` utility or modifying the file `/etc/sysctl.conf`.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e55f8256dd2d48fd9e7fd786f872b4bc','0','2','0'),
('22837','0','','10074','Number of running processes','proc.num[,,run]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The number of processes in a running state.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7f8fdbc74cf14fa2afda3b57c548c751','0','2','0'),
('22838','0','','10074','Number of processes','proc.num[]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The total number of processes in any state.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','966acafb928b43f8a63ee673b1716d28','0','2','0'),
('22839','0','','10074','Host boot time','system.boottime','10m','31d','365d','0','3','','unixtime','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4e06c5b504c04c169ea1a0d6a7951eeb','0','2','0'),
('22840','0','','10074','Interrupts per second','system.cpu.intr','1m','31d','365d','0','3','','ips','','',NULL,NULL,'','','0','','','','','0',NULL,'Number of interrupts processed.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f6ed0de8cbb545298b174b19938a527e','0','2','0'),
('22841','0','','10074','Processor load (15 min average per core)','system.cpu.load[percpu,avg15]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Calculated as the system CPU load divided by the number of CPU cores.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0403d3b318a649d4aa0da97e18546bcb','0','2','0'),
('22842','0','','10074','Processor load (1 min average per core)','system.cpu.load[percpu,avg1]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Calculated as the system CPU load divided by the number of CPU cores.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7e4eab397cfd43d2a4aef7e2aa8c3a37','0','2','0'),
('22843','0','','10074','Processor load (5 min average per core)','system.cpu.load[percpu,avg5]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Calculated as the system CPU load divided by the number of CPU cores.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','55ad1da5b20c465f8db86701dcf3e974','0','2','0'),
('22844','0','','10074','Context switches per second','system.cpu.switches','1m','31d','365d','0','3','','sps','','',NULL,NULL,'','','0','','','','','0',NULL,'The combined rate at which all processors on the computer are switched from one thread to another.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2226fac821fe4928a9d727770e0af4d0','0','2','0'),
('22845','0','','10074','CPU idle time','system.cpu.util[,idle]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Time the CPU has spent doing nothing.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4689c51946c845e5b31cb7ca5b58fbe3','0','2','0'),
('22846','0','','10074','CPU interrupt time','system.cpu.util[,interrupt]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Time the CPU has spent servicing hardware interrupts.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ad032417f6de4e03a4f956bea65d8ce0','0','2','0'),
('22848','0','','10074','CPU nice time','system.cpu.util[,nice]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Time the CPU has spent running users\' processes that have been niced.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','84030949a4d545b59db4aa3b38402174','0','2','0'),
('22851','0','','10074','CPU system time','system.cpu.util[,system]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Time the CPU has spent running the kernel and its processes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','63121eb34bc94eeabd7352992b67befb','0','2','0'),
('22852','0','','10074','CPU user time','system.cpu.util[,user]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Time the CPU has spent running users\' processes that are not niced.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c9adb1a7c2fd4db9b176f9008483f2d7','0','2','0'),
('22853','0','','10074','Host name','system.hostname','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The host name of the system.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a80cd7ca70954cd1b6b89a686f642b9d','0','2','0'),
('22854','0','','10074','Host local time','system.localtime','1m','31d','365d','0','3','','unixtime','','',NULL,NULL,'','','0','','','','','0',NULL,'The local system time of the host.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cfff34f2374c410492b89cce1c6b5198','0','2','0'),
('22855','0','','10074','Free swap space','system.swap.size[,free]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'The free space of the swap volume/file expressed in bytes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e758448d5ec242e6a7a17f67c8f62874','0','2','0'),
('22856','0','','10074','Free swap space in %','system.swap.size[,pfree]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The free space of the swap volume/file expressed in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','43648a7f2c79443781a0ad500e7a9e6c','0','2','0'),
('22857','0','','10074','Total swap space','system.swap.size[,total]','1h','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'Total space of the swap volume/file expressed in bytes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','61f33f0c3e35499b999626058048ec66','0','2','0'),
('22858','0','','10074','System information','system.uname','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Information as normally returned by `uname -a`.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b19974c64b4141c2aca0e997b03c2f0a','0','2','0'),
('22859','0','','10074','System uptime','system.uptime','10m','31d','365d','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d14bcdc15cc24f90baea06a13077a54f','0','2','0'),
('22860','0','','10074','Number of logged in users','system.users.num','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The number of users who are currently logged in.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','165a44bf3b9d49378e500acb90aa7957','0','2','0'),
('22861','0','','10074','Checksum of /etc/passwd','vfs.file.cksum[/etc/passwd,sha256]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f11f6e3539a244409f1c72dbd6f16b76','0','2','0'),
('22862','0','','10074','Available memory','vm.memory.size[available]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'Defined as free + cached + buffers.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5b6c92c92e434dff8ce19e28b3ba785e','0','2','0'),
('22863','0','','10074','Total memory','vm.memory.size[total]','1h','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'Total memory expressed in bytes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b32320608732421fac18437006bc1874','0','2','0'),
('22875','0','','10075','Maximum number of opened files','kernel.maxfiles','1h','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'May be increased by using the `sysctl` utility or modifying the file `/etc/sysctl.conf`.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d1b2d3cc2b7e44af8f9bfee11e04bf21','0','2','0'),
('22876','0','','10075','Maximum number of processes','kernel.maxproc','1h','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'May be increased by using the `sysctl` utility or modifying the file `/etc/sysctl.conf`.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','58244a8e72694ffcbba5a78a910ae818','0','2','0'),
('22877','0','','10075','Number of running processes','proc.num[,,run]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Number of processes in a running state.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','448c6de07b244281a4b1defe2e811773','0','2','0'),
('22878','0','','10075','Number of processes','proc.num[]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Total number of processes in any state.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5fd5b351d8214eac8f4f4649594c27eb','0','2','0'),
('22879','0','','10075','Host boot time','system.boottime','10m','31d','365d','0','3','','unixtime','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4a533b30c43e42fb8c9eabada0817186','0','2','0'),
('22880','0','','10075','Interrupts per second','system.cpu.intr','1m','31d','365d','0','3','','ips','','',NULL,NULL,'','','0','','','','','0',NULL,'Number of interrupts processed.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','db555e8318cf4e7aa7beb85aa0250697','0','2','0'),
('22881','0','','10075','Processor load (15 min average per core)','system.cpu.load[percpu,avg15]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Calculated as the system CPU load divided by the number of CPU cores.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ad9ebf859f7346ca885c1edcb7333d78','0','2','0'),
('22882','0','','10075','Processor load (1 min average per core)','system.cpu.load[percpu,avg1]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Calculated as the system CPU load divided by the number of CPU cores.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2336b2ec03a846f3bed1e64384b2532e','0','2','0'),
('22883','0','','10075','Processor load (5 min average per core)','system.cpu.load[percpu,avg5]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Calculated as the system CPU load divided by the number of CPU cores.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','de68f40fc96648c0925c1f6a4ca6776e','0','2','0'),
('22884','0','','10075','Context switches per second','system.cpu.switches','1m','31d','365d','0','3','','sps','','',NULL,NULL,'','','0','','','','','0',NULL,'The combined rate at which all processors on the computer are switched from one thread to another.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0a140185a5114dd29451bfac68abdde5','0','2','0'),
('22885','0','','10075','CPU idle time','system.cpu.util[,idle]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Time the CPU has spent doing nothing.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7612803821c845889bda84b7f1ac9ae5','0','2','0'),
('22886','0','','10075','CPU interrupt time','system.cpu.util[,interrupt]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Time the CPU has spent servicing hardware interrupts.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f2acc3cd432546e5a223095a0ea2f096','0','2','0'),
('22888','0','','10075','CPU nice time','system.cpu.util[,nice]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Time the CPU has spent running users\' processes that have been niced.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','efa92492bec0437ba74f47d694500cab','0','2','0'),
('22891','0','','10075','CPU system time','system.cpu.util[,system]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Time the CPU has spent running the kernel and its processes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c9479b02b04141128b1ce7c8f3726c09','0','2','0'),
('22892','0','','10075','CPU user time','system.cpu.util[,user]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Time the CPU has spent running users\' processes that are not niced.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1f3bc82009e04b59845a0e15004637ad','0','2','0'),
('22893','0','','10075','Host name','system.hostname','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The host name of the system.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c17d001bd20a4732b8ef487366c6aa42','0','2','0'),
('22894','0','','10075','Host local time','system.localtime','1m','31d','365d','0','3','','unixtime','','',NULL,NULL,'','','0','','','','','0',NULL,'The local system time of the host.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4095ed7d606a47439294097a98af2c4f','0','2','0'),
('22895','0','','10075','Free swap space','system.swap.size[,free]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'The free space of the swap volume/file expressed in bytes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','63fc1259011f4250901889979cdf472c','0','2','0'),
('22896','0','','10075','Free swap space in %','system.swap.size[,pfree]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The free space of the swap volume/file expressed in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','187d11e610b94b468d18b88ca38f2c32','0','2','0'),
('22897','0','','10075','Total swap space','system.swap.size[,total]','1h','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'Total space of the swap volume/file expressed in bytes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9647b0b857074c4b9c14f15bb04af096','0','2','0'),
('22898','0','','10075','System information','system.uname','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Information as normally returned by `uname -a`.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4523ae069e0b4e16bcb5182c6dbf63f2','0','2','0'),
('22899','0','','10075','System uptime','system.uptime','10m','31d','365d','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a49b956d592c4e2ba41caac3671e009f','0','2','0'),
('22900','0','','10075','Number of logged in users','system.users.num','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The number of users who are currently logged in.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fec3e877764e4bfd98e77da9d8c73606','0','2','0'),
('22901','0','','10075','Checksum of /etc/passwd','vfs.file.cksum[/etc/passwd,sha256]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2bb327cd5f8c49d9b680142825b9c030','0','2','0'),
('22902','0','','10075','Available memory','vm.memory.size[available]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'Defined as free + cached + buffers.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','561c7a383b944bca9ec5f7c44e322fed','0','2','0'),
('22903','0','','10075','Total memory','vm.memory.size[total]','1h','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'Total memory expressed in bytes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ffa54e82b7914672a3f7134134ac2638','0','2','0'),
('22917','0','','10076','Number of running processes','proc.num[,,run]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Number of processes in a running state.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2c2d08ab5833493ba45ebfe5154f04c1','0','2','0'),
('22918','0','','10076','Number of processes','proc.num[]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Total number of processes in any state.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7c64480f840a4778bde5278e1c0a083f','0','2','0'),
('22920','0','','10076','Interrupts per second','system.cpu.intr','1m','31d','365d','0','3','','ips','','',NULL,NULL,'','','0','','','','','0',NULL,'Number of interrupts processed.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4a15778222a24f129b8ae7c240a32ded','0','2','0'),
('22921','0','','10076','Processor load (15 min average per core)','system.cpu.load[percpu,avg15]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Calculated as the system CPU load divided by the number of CPU cores.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','02210ac2faaa4f7bb74e995726706abc','0','2','0'),
('22922','0','','10076','Processor load (1 min average per core)','system.cpu.load[percpu,avg1]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Calculated as the system CPU load divided by the number of CPU cores.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4f8665f48aff4fa39e85639fed7b71c5','0','2','0'),
('22923','0','','10076','Processor load (5 min average per core)','system.cpu.load[percpu,avg5]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Calculated as the system CPU load divided by the number of CPU cores.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6fa2275f1f83456abfe786c8565c7a2d','0','2','0'),
('22924','0','','10076','Context switches per second','system.cpu.switches','1m','31d','365d','0','3','','sps','','',NULL,NULL,'','','0','','','','','0',NULL,'The combined rate at which all processors on the computer are switched from one thread to another.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1ad486947da9428abdebcecb83ca3d8b','0','2','0'),
('22933','0','','10076','Host name','system.hostname','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The host name of the system.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f4d10d49fa3c4dababf03d2cb80f044c','0','2','0'),
('22934','0','','10076','Host local time','system.localtime','1m','31d','365d','0','3','','unixtime','','',NULL,NULL,'','','0','','','','','0',NULL,'The local system time of the host.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','aebc5bb0264a4f55985c96445964dfc4','0','2','0'),
('22938','0','','10076','System information','system.uname','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Information as normally returned by `uname -a`.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d0ef675d313849269890d06c7e003c9e','0','2','0'),
('22939','0','','10076','System uptime','system.uptime','10m','31d','365d','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2e0ff86c992c4a098af8cb1bee0f0001','0','2','0'),
('22940','0','','10076','Number of logged in users','system.users.num','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The number of users who are currently logged in.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','980a59760ef9481298ed35322841f939','0','2','0'),
('22941','0','','10076','Checksum of /etc/passwd','vfs.file.cksum[/etc/passwd,sha256]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4771d6d33c2247d6843198152a7065a8','0','2','0'),
('22942','0','','10076','Available memory','vm.memory.size[available]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'Defined as free + cached + buffers.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6d4d9deab17b42f4a953c5210acac6f1','0','2','0'),
('22943','0','','10076','Total memory','vm.memory.size[total]','1h','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'Total memory expressed in bytes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','57d30ccd5db64dc8b9498a36efe768e9','0','2','0'),
('22961','0','','10077','Processor load (15 min average per core)','system.cpu.load[percpu,avg15]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Calculated as the system CPU load divided by the number of CPU cores.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','296dbd5148184004b26ac50ae5e6893b','0','2','0'),
('22962','0','','10077','Processor load (1 min average per core)','system.cpu.load[percpu,avg1]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Calculated as the system CPU load divided by the number of CPU cores.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bcba4702a58d48339c6e7e49dea574c4','0','2','0'),
('22963','0','','10077','Processor load (5 min average per core)','system.cpu.load[percpu,avg5]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Calculated as the system CPU load divided by the number of CPU cores.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','60057d54b81342f4aaa0103a278bf7b6','0','2','0'),
('22965','0','','10077','CPU idle time','system.cpu.util[,idle]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Time the CPU has spent doing nothing.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2b82ccaf9eb1424593e2738a5512e182','0','2','0'),
('22968','0','','10077','CPU nice time','system.cpu.util[,nice]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Time the CPU has spent running users\' processes that have been niced.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8665bd2dc84e46daa081a379548b0603','0','2','0'),
('22971','0','','10077','CPU system time','system.cpu.util[,system]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Time the CPU has spent running the kernel and its processes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8419321f4744476ea27b7d1acddcd365','0','2','0'),
('22972','0','','10077','CPU user time','system.cpu.util[,user]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Time the CPU has spent running users\' processes that are not niced.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','611c9a3c70aa4455b6ec7bebe64b5316','0','2','0'),
('22973','0','','10077','Host name','system.hostname','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The host name of the system.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6e3b32f3f92543759ef2f30834899ba0','0','2','0'),
('22974','0','','10077','Host local time','system.localtime','1m','31d','365d','0','3','','unixtime','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','16c6c420c710498083355361b104f7a2','0','2','0'),
('22978','0','','10077','System information','system.uname','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Information as normally returned by `uname -a`.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b66598337e0e4990a2776d2a42020e72','0','2','0'),
('22980','0','','10077','Number of logged in users','system.users.num','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The number of users who are currently logged in.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bb698e97aa1b45ebadcb48da729b8e64','0','2','0'),
('22981','0','','10077','Checksum of /etc/passwd','vfs.file.cksum[/etc/passwd,sha256]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4e11e7c5d43a4566989b39dbc0c23266','0','2','0'),
('22982','0','','10077','Available memory','vm.memory.size[available]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'Defined as free + cached + buffers.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','767abadfa8be4bccb2c4c5a1d532ba87','0','2','0'),
('22983','0','','10077','Total memory','vm.memory.size[total]','1h','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'Total memory expressed in bytes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6da082e7f822465592f66e2bd0a46947','0','2','0'),
('22996','0','','10078','Maximum number of processes','kernel.maxproc','1h','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'May be increased by using the `sysctl` utility or modifying the file `/etc/sysctl.conf`.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2fa6d58a5c7d48da90b1caf521e867cd','0','2','0'),
('22997','0','','10078','Number of running processes','proc.num[,,run]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The number of processes in a running state.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7c8c8421fb514e67bc9f14cefe4018f3','0','2','0'),
('22998','0','','10078','Number of processes','proc.num[]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The total number of processes in any state.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','74c805e8bfd947348b206a0d33bfc461','0','2','0'),
('22999','0','','10078','Host boot time','system.boottime','10m','31d','365d','0','3','','unixtime','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1812e26de9ad4a36abb5498154e6ea3c','0','2','0'),
('23000','0','','10078','Interrupts per second','system.cpu.intr','1m','31d','365d','0','3','','ips','','',NULL,NULL,'','','0','','','','','0',NULL,'Number of interrupts processed.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8186ed95ed8c4d6eb52ea2e718984170','0','2','0'),
('23001','0','','10078','Processor load (15 min average per core)','system.cpu.load[percpu,avg15]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Calculated as the system CPU load divided by the number of CPU cores.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c13c2ff556594c5d985420dc974659cf','0','2','0'),
('23002','0','','10078','Processor load (1 min average per core)','system.cpu.load[percpu,avg1]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Calculated as the system CPU load divided by the number of CPU cores.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1a7cc53a5497427da28f882b1b185fad','0','2','0'),
('23003','0','','10078','Processor load (5 min average per core)','system.cpu.load[percpu,avg5]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Calculated as the system CPU load divided by the number of CPU cores.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5b053b6c00464f8b8f5fc49fffda1394','0','2','0'),
('23004','0','','10078','Context switches per second','system.cpu.switches','1m','31d','365d','0','3','','sps','','',NULL,NULL,'','','0','','','','','0',NULL,'The combined rate at which all processors on the computer are switched from one thread to another.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','320f8803624f4ad2b9e66f1a08f5a145','0','2','0'),
('23005','0','','10078','CPU idle time','system.cpu.util[,idle]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Time the CPU has spent doing nothing.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a653205d5ce4462089da4ed4d6f97f3a','0','2','0'),
('23007','0','','10078','CPU iowait time','system.cpu.util[,iowait]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Time the CPU has been waiting for the I/O to complete.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9bee92be803c48489509e41c19718abc','0','2','0'),
('23011','0','','10078','CPU system time','system.cpu.util[,system]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Time the CPU has spent running the kernel and its processes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bb32808bf73f489399ecb3e02bc18194','0','2','0'),
('23012','0','','10078','CPU user time','system.cpu.util[,user]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Time the CPU has spent running users\' processes that are not niced.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d30ad6a457df4e39819b76fc1be7a562','0','2','0'),
('23013','0','','10078','Host name','system.hostname','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The host name of the system.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1945e624e1864f2ba543f9438b1733f1','0','2','0'),
('23014','0','','10078','Host local time','system.localtime','1m','31d','365d','0','3','','unixtime','','',NULL,NULL,'','','0','','','','','0',NULL,'The local system time of the host.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0a0a8ab7047b400aaffe99917349291e','0','2','0'),
('23015','0','','10078','Free swap space','system.swap.size[,free]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'The free space of the swap volume/file expressed in bytes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','71597a2dfdeb4c63acf7505ffb7f4f08','0','2','0'),
('23016','0','','10078','Free swap space in %','system.swap.size[,pfree]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The free space of the swap volume/file expressed in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b2ee2b52a64841e282915d6de3c7f739','0','2','0'),
('23017','0','','10078','Total swap space','system.swap.size[,total]','1h','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'Total space of the swap volume/file expressed in bytes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0e7ea1fd204c44f3b0a7880eac21a0df','0','2','0'),
('23018','0','','10078','System information','system.uname','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Information as normally returned by `uname -a`.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','034f7934cdb54cc6b99194fac9197bfb','0','2','0'),
('23019','0','','10078','System uptime','system.uptime','10m','31d','365d','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c15a8b1b6cbd446bad669ead64a172a1','0','2','0'),
('23020','0','','10078','Number of logged in users','system.users.num','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The number of users who are currently logged in.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a2c0d69124424e49aa4fc1f2416ffc37','0','2','0'),
('23021','0','','10078','Checksum of /etc/passwd','vfs.file.cksum[/etc/passwd,sha256]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5dd55b892d1b4828bfc570d6bf48251d','0','2','0'),
('23022','0','','10078','Available memory','vm.memory.size[available]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'Defined as free + cached + buffers.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6888f0dd6b2e418f8c28a0ee59648fa3','0','2','0'),
('23023','0','','10078','Total memory','vm.memory.size[total]','1h','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'Total memory expressed in bytes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d96d5ebfa074428e957335b5fa58189b','0','2','0'),
('23035','0','','10079','Maximum number of opened files','kernel.maxfiles','1h','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'May be increased by using the `sysctl` utility or modifying the file `/etc/sysctl.conf`.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d25aa1f2eae445ceb18b7e4ee5383585','0','2','0'),
('23036','0','','10079','Maximum number of processes','kernel.maxproc','1h','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'May be increased by using the `sysctl` utility or modifying the file `/etc/sysctl.conf`.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5c376cae54854613a1533eb804bcee56','0','2','0'),
('23039','0','','10079','Host boot time','system.boottime','10m','31d','365d','0','3','','unixtime','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','928f973c004447d099a79e09a8b98cee','0','2','0'),
('23041','0','','10079','Processor load (15 min average per core)','system.cpu.load[percpu,avg15]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Calculated as the system CPU load divided by the number of CPU cores.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1ddc219f824541ca9c9ef30afda56df2','0','2','0'),
('23042','0','','10079','Processor load (1 min average per core)','system.cpu.load[percpu,avg1]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Calculated as the system CPU load divided by the number of CPU cores.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5abd63bb64114794ae6d253dcc12afb4','0','2','0'),
('23043','0','','10079','Processor load (5 min average per core)','system.cpu.load[percpu,avg5]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Calculated as the system CPU load divided by the number of CPU cores.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7e569411a7b4415098d21aaa44068dee','0','2','0'),
('23053','0','','10079','Host name','system.hostname','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The host name of the system.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9c0230c0bb944523bd781c37304bb87b','0','2','0'),
('23054','0','','10079','Host local time','system.localtime','1m','31d','365d','0','3','','unixtime','','',NULL,NULL,'','','0','','','','','0',NULL,'The local system time of the host.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5a7ce2c61d3a4696ac76e0406308e61b','0','2','0'),
('23058','0','','10079','System information','system.uname','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Information as normally returned by `uname -a`.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5c73ff0f28d24d92955c667e5245cfa0','0','2','0'),
('23059','0','','10079','System uptime','system.uptime','10m','31d','365d','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'The system uptime expressed in the following format: "N days, hh:mm:ss".','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','34c001a77a904224aa90338590375870','0','2','0'),
('23060','0','','10079','Number of logged in users','system.users.num','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The number of users who are currently logged in.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','31ea6bafabbe440ea1b8d1b6cea74444','0','2','0'),
('23061','0','','10079','Checksum of /etc/passwd','vfs.file.cksum[/etc/passwd,sha256]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6df0d9e8694d45dfa11e433d8de7be41','0','2','0'),
('23062','0','','10079','Available memory','vm.memory.size[available]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'Defined as free + cached + buffers.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','daf35c33bb84443f893bb06bfe10f870','0','2','0'),
('23063','0','','10079','Total memory','vm.memory.size[total]','1h','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'Total memory expressed in bytes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','83c0218324a548c4a01054801a4d8b0b','0','2','0'),
('23077','0','','10079','Incoming network traffic on en0','net.if.in[en0]','1m','31d','365d','0','3','','bps','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','951d874e6b644f9787c7a0d267bafcf8','0','2','0'),
('23078','0','','10079','Outgoing network traffic on en0','net.if.out[en0]','1m','31d','365d','0','3','','bps','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ac875bd25d484d38b16cb02c30be6b67','0','2','0'),
('23108','0','','10076','CPU available physical processors in the shared pool','system.stat[cpu,app]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','081f8986446d43e7a3b72f7084576600','0','2','0'),
('23109','0','','10076','CPU entitled capacity consumed','system.stat[cpu,ec]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6a97d56a6c2e45e1b10b97e2395ff30d','0','2','0'),
('23110','0','','10076','CPU idle time','system.stat[cpu,id]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','142f33d7b2c3469c9664fedf4f053616','0','2','0'),
('23111','0','','10076','CPU logical processor utilization','system.stat[cpu,lbusy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','752c952fb18e4a0e8e5e3415b107b9f1','0','2','0'),
('23112','0','','10076','CPU number of physical processors consumed','system.stat[cpu,pc]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','748f1316a33b48658b11dca8f45cfcce','0','2','0'),
('23113','0','','10076','CPU system time','system.stat[cpu,sy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2647132edb6647ca9ef43a00ca09ecbd','0','2','0'),
('23114','0','','10076','CPU user time','system.stat[cpu,us]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e990898ddbb74c7b9a8c1c67cb9544cf','0','2','0'),
('23115','0','','10076','CPU iowait time','system.stat[cpu,wa]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2cd7a00570ad487d9cdf39fd198b2c0b','0','2','0'),
('23116','0','','10076','Amount of data transferred','system.stat[disk,bps]','1m','31d','365d','0','0','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6748e4c87589472ca1474f3c7b729e0c','0','2','0'),
('23117','0','','10076','Number of transfers','system.stat[disk,tps]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bf0180d8f109451db616749990a113a6','0','2','0'),
('23118','0','','10076','Processor units is entitled to receive','system.stat[ent]','1h','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3e1af0261f6a421d8ca554f8eb222716','0','2','0'),
('23119','0','','10076','Kernel thread context switches','system.stat[faults,cs]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0fe71698a3c74c93a8cb3a937dc7226c','0','2','0'),
('23120','0','','10076','Device interrupts','system.stat[faults,in]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a1e13d2dbd8b4086974ea32a2cd743b1','0','2','0'),
('23121','0','','10076','System calls','system.stat[faults,sy]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','883c7a12b1d54f4d8189ca0d9cc43102','0','2','0'),
('23122','0','','10076','Length of the swap queue','system.stat[kthr,b]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f027ed1c43464d4ab9a13d4b9f647e7e','0','2','0'),
('23123','0','','10076','Length of the run queue','system.stat[kthr,r]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6795c2b6914d4303bf30c71c7405ff7d','0','2','0'),
('23124','0','','10076','Active virtual pages','system.stat[memory,avm]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','12142f133863448c9c937c671e183bbb','0','2','0'),
('23125','0','','10076','Free real memory','system.stat[memory,fre]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3b4a5ff768654ff5a87b955684a0d7b5','0','2','0'),
('23126','0','','10076','File page-ins per second','system.stat[page,fi]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bf890bf5cd1748a5af9528a111ba43c4','0','2','0'),
('23127','0','','10076','File page-outs per second','system.stat[page,fo]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','19c4f7132b6c46aa9522bd46da3e8f03','0','2','0'),
('23128','0','','10076','Pages freed (page replacement)','system.stat[page,fr]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9ff3f7faa76c414aae7c5babb91fe065','0','2','0'),
('23129','0','','10076','Pages paged in from paging space','system.stat[page,pi]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6009d8a0fc2f486db979b226eb975e78','0','2','0'),
('23130','0','','10076','Pages paged out to paging space','system.stat[page,po]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','26fb1471e08c4c46800e4887d8bccd80','0','2','0'),
('23131','0','','10076','Pages scanned by page-replacement algorithm','system.stat[page,sr]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','83b1456726d448d6a756e03c0ec02342','0','2','0'),
('23171','5','','10047','Utilization of snmp trapper data collector processes, in %','zabbix[process,snmp trapper,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the snmp trapper processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cb9a7c4f3373496da97f3e0b8c978366','0','2','0'),
('23251','5','','10047','Queue','zabbix[queue]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The number of monitored items in the queue that are delayed by at least 6 seconds.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','aaf58555c0774e848f51a351b6ae8462','0','2','0'),
('23340','5','','10048','Number of processed values per second','zabbix[wcache,values]','1m','31d','365d','0','0','','!vps','','',NULL,NULL,'','','0','','','','','0',NULL,'The statistics and availability of Zabbix write cache.\r\nThe total number of values processed by Zabbix server or Zabbix proxy, except unsupported items.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5229b786efc84f01bb31f2819c47d9f4','0','2','0'),
('23341','5','','10048','History index cache, % used','zabbix[wcache,index,pused]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The statistics and availability of Zabbix write cache. The percentage of used history index buffer.\r\nThe history index cache is used to index values stored in the history cache.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8c4c7802497d4de4988278edc29f8eb1','0','2','0'),
('23342','5','','10048','History write cache, % used','zabbix[wcache,history,pused]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The statistics and availability of Zabbix write cache. The percentage of used history buffer.\r\nThe history cache is used to store item values. A high number indicates database performance problems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','aec73d2a7e444702b352c75998bf636e','0','2','0'),
('23343','5','','10048','Utilization of self-monitoring internal processes, in %','zabbix[process,self-monitoring,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the self-monitoring processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1fd488bbb4af450cb2b5e8c81b739f29','0','2','0'),
('23344','5','','10048','Utilization of snmp trapper data collector processes, in %','zabbix[process,snmp trapper,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the snmp trapper processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','77ab21500d734deea86938a1a90035e0','0','2','0'),
('23345','5','','10048','Utilization of trapper data collector processes, in %','zabbix[process,trapper,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the trapper processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8d99635291d14ae8a5ba7d794540bde2','0','2','0'),
('23346','5','','10048','Utilization of unreachable poller data collector processes, in %','zabbix[process,unreachable poller,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the unreachable poller processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7b0f5b75d4854b84a7e1f51975732e25','0','2','0'),
('23347','5','','10048','Utilization of configuration syncer internal processes, in %','zabbix[process,configuration syncer,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the configuration syncer processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3d1bfa64a447427da0b463c3617b212e','0','2','0'),
('23348','5','','10048','Utilization of poller data collector processes, in %','zabbix[process,poller,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the poller processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','334398ad893e4146bc1b9370eef9df59','0','2','0'),
('23349','5','','10048','Utilization of java poller data collector processes, in %','zabbix[process,java poller,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the java poller processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','02214c0c38394bef8d648369584ae30b','0','2','0'),
('23350','5','','10048','Utilization of history syncer internal processes, in %','zabbix[process,history syncer,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the history syncer processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7dde8cd03e5043a2bd484f7213a5f112','0','2','0'),
('23353','5','','10048','Utilization of housekeeper internal processes, in %','zabbix[process,housekeeper,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the housekeeper processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','31f0355f4d7c4de6b0d6f206d1ca9fa3','0','2','0'),
('23354','5','','10048','Utilization of http poller data collector processes, in %','zabbix[process,http poller,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the http poller processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','782b11dbe3ce47e3b9098c43d83057ad','0','2','0'),
('23355','5','','10048','Utilization of ipmi poller data collector processes, in %','zabbix[process,ipmi poller,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the ipmi poller processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7cfb2f1504dd4b0aaac804b132d49bc5','0','2','0'),
('23356','5','','10048','Utilization of icmp pinger data collector processes, in %','zabbix[process,icmp pinger,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the icmp pinger processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9b899ab317b447d1a82d1136e0a2ff6f','0','2','0'),
('23357','5','','10048','Configuration cache, % used','zabbix[rcache,buffer,pused]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The availability statistics of Zabbix configuration cache. The percentage of used data buffer.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','606d1d43812341db8260a233295a4a4e','0','2','0'),
('23358','5','','10048','Queue','zabbix[queue]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The number of monitored items in the queue that are delayed by at least 6 seconds.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cfbb623cca754fd49d4f606ab52f658d','0','2','0'),
('23359','5','','10048','Queue over 10 minutes','zabbix[queue,10m]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The number of monitored items in the queue that are delayed by at least 10 minutes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2fa1c8d8fcb94d4c83cf4e291420a690','0','2','0'),
('23360','5','','10048','Utilization of data sender internal processes, in %','zabbix[process,data sender,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the data sender processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','69eefd6aba164d71b0a2b8d2df06e9a3','0','2','0'),
('23634','5','','10047','VMware cache, % used','zabbix[vmware,buffer,pused]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The availability statistics of Zabbix vmware cache. The percentage of used data buffer.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d273413004094604ad247c0ff9695879','0','2','0'),
('23661','5','','10047','Value cache operating mode','zabbix[vcache,cache,mode]','1m','31d','365d','0','3','','!vps','','',NULL,'55','','','0','','','','','0',NULL,'The operating mode of the value cache.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','07379df0114445b7b06818736f011ca6','0','2','0'),
('23663','5','','10047','Utilization of task manager internal processes, in %','zabbix[process,task manager,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the task manager processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','caeb7ecc88cc4c14bb80f901284be9a5','0','2','0'),
('25366','5','','10047','Utilization of ipmi manager internal processes, in %','zabbix[process,ipmi manager,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the ipmi manager processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','24b6b466929347f0a8164c89ba5624fe','0','2','0'),
('25368','5','','10048','Utilization of ipmi manager internal processes, in %','zabbix[process,ipmi manager,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the ipmi manager processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','52b3123dfef94d8bba1b1a13314a9d4f','0','2','0'),
('25369','5','','10048','Utilization of task manager internal processes, in %','zabbix[process,task manager,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the task manager processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','94d1aa1bff2d499f9e29dd9cafd04b9e','0','2','0'),
('25370','5','','10047','Utilization of alert manager internal processes, in %','zabbix[process,alert manager,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the alert manager processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d098ea71dd22428a8a8a42cf299699b7','0','2','0'),
('25665','5','','10047','Utilization of preprocessing manager internal processes, in %','zabbix[process,preprocessing manager,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the preprocessing manager processes have been busy for the last minute.','0','0','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fc7999dd8d2d41a5a80eeb4b6c4c9b13','0','2','0'),
('25666','5','','10047','Utilization of preprocessing worker internal processes, in %','zabbix[process,preprocessing worker,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the preprocessing worker processes have been busy for the last minute.','0','0','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6af695693d41434a96c0c6a020580828','0','2','0'),
('26925','12','','10171','Power','power','1m','31d','365d','0','3','','','','',NULL,NULL,'','power','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1821294a921d401f822678ce1d246163','0','2','0'),
('26926','12','','10171','Processor Vcc','processor_vcc','1m','31d','365d','0','0','','V','','',NULL,NULL,'','Processor Vcc','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','efc577d6deba4f46b1fe79e6a1a26fdd','0','2','0'),
('26927','12','','10171','System Fan 3','system_fan_3','1m','31d','365d','0','0','','RPM','','',NULL,NULL,'','System Fan 3','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','89e5edc9cd6d4984a7a76320f7800ae9','0','2','0'),
('26928','12','','10171','BB Ambient Temp','bb_ambient_temp','1m','31d','365d','0','0','','C','','',NULL,NULL,'','BB Ambient Temp','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2e6d7059cbb349889c639e9fba09bd8c','0','2','0'),
('26929','12','','10171','BB +5.0V','bb_5.0v','1m','31d','365d','0','0','','V','','',NULL,NULL,'','BB +5.0V','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7931e499e1894942a4763432a6a446fd','0','2','0'),
('26930','12','','10171','BB +3.3V','bb_3.3v','1m','31d','365d','0','0','','V','','',NULL,NULL,'','BB +3.3V','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','21820c76180446ff9965f8937e6d1ba0','0','2','0'),
('26931','12','','10171','BB +3.3V STBY','bb_3.3v_stby','1m','31d','365d','0','0','','V','','',NULL,NULL,'','BB +3.3V STBY','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7bd5269be38c417aba374c9e8af28f8c','0','2','0'),
('26932','12','','10171','BB +1.8V SM','bb_1.8v_sm','1m','31d','365d','0','0','','V','','',NULL,NULL,'','BB +1.8V SM','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f1d7b90d87c6411e9d887d223b4f9022','0','2','0'),
('26933','12','','10172','Front Panel Temp','front_panel_temp','1m','31d','365d','0','0','','C','','',NULL,NULL,'','Front Panel Temp','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d59236617a234098b0cd62ac30cba975','0','2','0'),
('26934','12','','10172','Power','power','1m','31d','365d','0','3','','','','',NULL,NULL,'','power','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e4f51e8a51fb4f23afe9d505ede91891','0','2','0'),
('26935','12','','10172','System Fan 2','system_fan_2','1m','31d','365d','0','0','','RPM','','',NULL,NULL,'','System Fan 2','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ede3efc70c794c3390531b41a28411ef','0','2','0'),
('26936','12','','10172','System Fan 3','system_fan_3','1m','31d','365d','0','0','','RPM','','',NULL,NULL,'','System Fan 3','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b51ab327c547413fb94dae69e93458d2','0','2','0'),
('26937','12','','10172','BB +5.0V','bb_5.0v','1m','31d','365d','0','0','','V','','',NULL,NULL,'','BB +5.0V','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5a60f33969e54742989571dc2f93be57','0','2','0'),
('26938','12','','10172','BB +3.3V STBY','bb_3.3v_stby','1m','31d','365d','0','0','','V','','',NULL,NULL,'','BB +3.3V STBY','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','aef2b61786354719a6d99f60cff59f14','0','2','0'),
('26939','12','','10172','BB +1.05V PCH','bb_1.05v_pch','1m','31d','365d','0','0','','V','','',NULL,NULL,'','BB +1.05V PCH','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d2827f4cc6c4470daf4fd20868ed94c8','0','2','0'),
('26940','12','','10172','BB +1.1V P1 Vccp','bb_1.1v_p1_vccp','1m','31d','365d','0','0','','V','','',NULL,NULL,'','BB +1.1V P1 Vccp','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3bbcfcb625fa4805806601284c3eda20','0','2','0'),
('26941','12','','10172','BB +1.5V P1 DDR3','bb_1.5v_p1_ddr3','1m','31d','365d','0','0','','V','','',NULL,NULL,'','BB +1.5V P1 DDR3','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','350b21b2a569489a9c4c7376bf788a0e','0','2','0'),
('26942','12','','10172','BB +3.3V','bb_3.3v','1m','31d','365d','0','0','','V','','',NULL,NULL,'','BB +3.3V','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6bc6b9c60ce24189b8b0f8a928fab701','0','2','0'),
('26943','12','','10172','Baseboard Temp','baseboard_temp','1m','31d','365d','0','0','','C','','',NULL,NULL,'','Baseboard Temp','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8271dc34162d4657be1a67b5d8a4473b','0','2','0'),
('27203','20','get[1.3.6.1.2.1.1.1.0]','10207','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2183a57a2c904632bf813c15610765f7','0','2','0'),
('27207','20','get[1.3.6.1.4.1.6527.3.1.2.1.1.9.0]','10207','Used memory','vm.memory.used[sgiKbMemoryUsed.0]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TIMETRA-SYSTEM-MIB\r\nThe value of sgiKbMemoryUsed indicates the total pre-allocated pool memory, in kilobytes, currently in use on the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f5cd1ed0f61f464f86a97485f833d832','0','2','0'),
('27208','20','get[1.3.6.1.4.1.6527.3.1.2.1.1.1.0]','10207','CPU utilization','system.cpu.util[sgiCpuUsage.0]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TIMETRA-SYSTEM-MIB\r\nThe value of sgiCpuUsage indicates the current CPU utilization for the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e28cb751b37e42d29be9f0295bd030b6','0','2','0'),
('27236','20','get[1.3.6.1.4.1.1588.2.1.1.1.1.6.0]','10208','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SW-MIB','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c6e2d4c076b14ed19fbcb08caa32e5be','0','2','0'),
('27237','20','get[1.3.6.1.4.1.1588.2.1.1.1.1.10.0]','10208','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SW-MIB','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3c68a1be050d4c1287e63eb7b3b81f8f','0','2','0'),
('27238','20','get[1.3.6.1.4.1.1588.2.1.1.1.1.7.0]','10208','Overall system health status','system.status[swOperStatus.0]','30s','31d','0','0','3','','','','',NULL,'73','','','0','','','','','0',NULL,'MIB: SW-MIB\r\nThe current operational status of the switch.The states are as follow:\r\nonline(1) means the switch is accessible by an external Fibre Channel port\r\noffline(2) means the switch is not accessible\r\ntesting(3) means the switch is in a built-in test mode and is not accessible by an external Fibre Channel port\r\nfaulty(4) means the switch is not operational.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','29f1dda8042d4fd18d7da9eb95fea76c','0','2','0'),
('27240','20','get[1.3.6.1.4.1.1588.2.1.1.1.26.1.0]','10208','CPU utilization','system.cpu.util[swCpuUsage.0]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SW-MIB\r\nSystem\'s CPU usage.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b17a06635cb2400f9c6d0f848fd38868','0','2','0'),
('27295','20','get[1.3.6.1.4.1.1991.1.1.2.1.11.0]','10210','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: FOUNDRY-SN-AGENT-MIB\r\nThe version of the running software in the form\'major.minor.maintenance[letters]\'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4f58884d810a416ea321dd622c876d06','0','2','0'),
('27296','20','get[1.3.6.1.4.1.1991.1.1.1.1.2.0]','10210','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: FOUNDRY-SN-AGENT-MIB','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7d8b9dc153c4408c99a707a9b4d57647','0','2','0'),
('27297','20','get[1.3.6.1.4.1.1991.1.1.2.1.11.0]','10211','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: FOUNDRY-SN-AGENT-MIB\r\nThe version of the running software in the form \'major.minor.maintenance[letters]\'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5c17e0d80c354391b339142f2a973886','0','2','0'),
('27508','20','get[1.3.6.1.2.1.47.1.1.1.1.8.1]','10222','Hardware version(revision)','system.hw.version','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fd86860f9ebc42b1970a845b7940daed','0','2','0'),
('27509','20','get[1.3.6.1.2.1.47.1.1.1.1.9.1]','10222','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIBdescription has changed','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c48928c7392d472d950804ee30936f0f','0','2','0'),
('27510','20','get[1.3.6.1.2.1.1.1.0]','10222','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9461071bb9fa44909aa181779c894a7b','0','2','0'),
('27511','20','get[1.3.6.1.4.1.171.10.97.2.36.1.1.3.0]','10222','CPU utilization','system.cpu.util[myCPUUtilization5Min.0]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MY-PROCESS-MIB\r\nThe CPU utilization expressed in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ec0e7cc71b39447087f580569559a6d6','0','2','0'),
('27543','20','get[1.3.6.1.2.1.47.1.1.1.1.8.1]','10223','Hardware version(revision)','system.hw.version','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','06e2bd7f602140f49685ae8dbfa44660','0','2','0'),
('27544','20','get[1.3.6.1.2.1.47.1.1.1.1.9.1]','10223','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8e6d4c6568c54aeeb745c5ba43945174','0','2','0'),
('27545','20','get[1.3.6.1.4.1.171.12.1.1.12.0]','10223','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: DLINK-AGENT-MIB\r\nA text string containing the serial number of this device.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3dd0e86421b5410f9c34680650a0d9a5','0','2','0'),
('27546','20','get[1.3.6.1.2.1.1.1.0]','10223','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cc6cdf26ee0f4c5682c956c0ac741898','0','2','0'),
('27547','20','get[1.3.6.1.4.1.171.12.1.1.6.2.0]','10223','CPU utilization','system.cpu.util[agentCPUutilizationIn1min.0]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: DLINK-AGENT-MIB\r\nThe unit of time is 1 minute. The value will be between 0% (idle) and 100%(very busy).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9d265ce34e9344c6875497e7ed0ebc89','0','2','0'),
('27579','20','get[1.3.6.1.2.1.47.1.1.1.1.9.1]','10224','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7f6260a568644e89ba87ccca63102357','0','2','0'),
('27580','20','get[1.3.6.1.2.1.47.1.1.1.1.9.1]','10224','Hardware version(revision)','system.hw.version','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8ec263e1593e48d18b3e50f215e94196','0','2','0'),
('27582','20','get[1.3.6.1.2.1.47.1.1.1.1.11.1]','10224','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','93882ec52eed40778858e52dc7153093','0','2','0'),
('27583','20','get[1.3.6.1.2.1.47.1.1.1.1.2.1]','10224','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','42ec93c3013d428c9f72fe721ea46db5','0','2','0'),
('27584','20','get[1.3.6.1.4.1.1916.1.1.1.8.0]','10224','Temperature','sensor.temp.value[extremeCurrentTemperature.0]','3m','31d','365d','0','0','','°C','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: EXTREME-SYSTEM-MIB\r\nTemperature readings of testpoint: Device\r\nReference: https://gtacknowledge.extremenetworks.com/articles/Q_A/Does-EXOS-support-temperature-polling-via-SNMP-on-all-nodes-in-a-stack','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2e8384090e304767bc6bba60d822e223','0','2','0'),
('27585','20','get[1.3.6.1.4.1.1916.1.1.1.7.0]','10224','Temperature status','sensor.temp.status[extremeOverTemperatureAlarm.0]','3m','31d','0','0','3','','','','',NULL,'85','','','0','','','','','0',NULL,'MIB: EXTREME-SYSTEM-MIB\r\nTemperature status of testpoint: Device','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b17bfccc91f1489fb9f85d719ca19d70','0','2','0'),
('27586','20','get[1.3.6.1.4.1.1916.1.32.1.2.0]','10224','CPU utilization','system.cpu.util[extremeCpuMonitorTotalUtilization.0]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: EXTREME-SOFTWARE-MONITOR-MIB\r\nTotal CPU utilization (percentage) as of last sampling.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fd93c5fb3e054f84b052d7f682a87655','0','2','0'),
('27777','20','get[1.3.6.1.4.1.10222.2.1.1.1.0]','10230','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ICS-CHASSIS-MIB','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9cfafe1389af4e569886c5acd8d95de9','0','2','0'),
('27778','20','get[1.3.6.1.4.1.10222.2.1.1.1.0]','10230','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ICS-CHASSIS-MIB','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','656086e221e84a9a90cc16855f564571','0','2','0'),
('27812','20','get[1.3.6.1.4.1.2636.3.1.2.0]','10231','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: JUNIPER-MIB\r\nThe name, model, or detailed description of the box,indicating which product the box is about, for example \'M40\'.','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7a472141ebcf4816bffe9bb49f003db6','0','2','0'),
('27813','20','get[1.3.6.1.4.1.2636.3.1.3.0]','10231','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: JUNIPER-MIB\r\nThe serial number of this subject, blank if unknown or unavailable.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b836efdbd3ac4becac319030250c1beb','0','2','0'),
('27814','20','get[1.3.6.1.4.1.2636.3.4.2.3.1.0]','10231','Overall system health status','system.status[jnxRedAlarmState.0]','30s','31d','0','0','3','','','','',NULL,'93','','','0','','','','','0',NULL,'MIB: JUNIPER-ALARM-MIB\r\nThe red alarm indication on the craft interface panel.\r\nThe red alarm is on when there is some system\r\nfailure or power supply failure or the system\r\nis experiencing a hardware malfunction or some\r\nthreshold is being exceeded.\r\n\r\nThis red alarm state could be turned off by the\r\nACO/LT (Alarm Cut Off / Lamp Test) button on the\r\nfront panel module.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','414a29c595b2439dacb15b4fa0734ab4','0','2','0'),
('27893','20','get[1.3.6.1.2.1.1.1.0]','10233','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8d2c5a405ffa42fc81a2c9b914e20874','0','2','0'),
('27894','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10233','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2c5a89f75a8d4e38ad021b3539ce8273','0','2','0'),
('27895','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10233','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','260eff3ec4034e33aea9c25962a782be','0','2','0'),
('27898','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10233','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0636e173288d42e68faf62c381a65087','0','2','0'),
('27900','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10233','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7d4a1591887848028ea8bae81b7d01a7','0','2','0'),
('27930','20','get[1.3.6.1.4.1.4526.10.1.1.1.3.0]','10234','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: FASTPATH-SWITCHING-MIB','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2470e113b1174c70a1265bf4c4252b5f','0','2','0'),
('27931','20','get[1.3.6.1.4.1.4526.10.1.1.1.4.0]','10234','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: FASTPATH-SWITCHING-MIB\r\nSerial number of the switch','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','697f863cf86544d4a366e8827976ed50','0','2','0'),
('27935','20','get[1.3.6.1.4.1.4526.10.1.1.5.2.0]','10234','Total memory','vm.memory.total[agentSwitchCpuProcessMemAvailable.0]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: FASTPATH-SWITCHING-MIB\r\nThe total Memory allocated for the tasks','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','98037eeab349478c8c393b163ec5193e','0','2','0'),
('27936','20','get[1.3.6.1.4.1.4526.10.1.1.4.9.0]','10234','CPU utilization','system.cpu.util[agentSwitchCpuProcessTotalUtilization.0]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: FASTPATH-SWITCHING-MIB\r\nThe CPU utilization expressed in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e8ffc912f0ee47cca513861fcecfddb0','0','2','0'),
('27967','20','get[1.3.6.1.2.1.47.1.1.1.1.9.1]','10235','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e7dda2d7f577404dbe8e5beba7609617','0','2','0'),
('27968','20','get[1.3.6.1.2.1.47.1.1.1.1.8.1]','10235','Hardware version(revision)','system.hw.version','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a842a44da43a4d2c906d0c642eb11411','0','2','0'),
('27970','20','get[1.3.6.1.2.1.47.1.1.1.1.11.1]','10235','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','684868048c1645aea9d8ad94514bd4c6','0','2','0'),
('27971','20','get[1.3.6.1.2.1.47.1.1.1.1.13.1]','10235','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5ff90f06a84a43ac937d3798b360bbd9','0','2','0'),
('27972','20','get[1.3.6.1.4.1.27514.100.1.11.7.0]','10235','Used memory','vm.memory.used[switchMemoryBusy.0]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: QTECH-MIB\r\nUsed memory in bytes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8821718704db4ab4a8af8fbeb61dde93','0','2','0'),
('27973','20','get[1.3.6.1.4.1.27514.100.1.11.6.0]','10235','Total memory','vm.memory.total[switchMemorySize.0]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: QTECH-MIB\r\nThe total memory expressed in bytes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','609971d1876444659f779ef28ed81ce7','0','2','0'),
('27975','20','get[1.3.6.1.4.1.27514.100.1.11.10.0]','10235','CPU utilization','system.cpu.util[switchCpuUsage.0]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: QTECH-MIB\r\nThe CPU utilization expressed in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','daab52a7d91b431b8ec579200e53a0c4','0','2','0'),
('27997','20','get[1.3.6.1.4.1.11863.6.1.1.5.0]','10236','Hardware version(revision)','system.hw.version','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TPLINK-SYSINFO-MIB\r\nThe hardware version of the product.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','20690cbfeb924ec79f67200da3e0577c','0','2','0'),
('27998','20','get[1.3.6.1.4.1.11863.6.1.1.6.0]','10236','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TPLINK-SYSINFO-MIB\r\nThe software version of the product.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1d20905fda0442b8b7b0eefcf473afd9','0','2','0'),
('27999','20','get[1.3.6.1.4.1.11863.6.1.1.8.0]','10236','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TPLINK-SYSINFO-MIB\r\nThe Serial number of the product.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d2cc080e7e7f49a19bb27737c749ba36','0','2','0'),
('28000','20','get[1.3.6.1.4.1.11863.6.1.1.5.0]','10236','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TPLINK-SYSINFO-MIB\r\nThe hardware version of the product.','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a571370a974c43deb9b5bb531d4dc4ce','0','2','0'),
('28026','20','get[1.2.840.10036.3.1.2.1.3.5]','10237','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: IEEE802dot11-MIB\r\nA printable string used to identify the manufacturer\'s product name of the resource. Maximum string length is 128 octets.','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e770de183b1e4ffc9348750520719b41','0','2','0'),
('28027','20','get[1.2.840.10036.3.1.2.1.4.5]','10237','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: IEEE802dot11-MIB\r\nPrintable string used to identify the manufacturer\'s product version of the resource. Maximum string length is 128 octets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9e8ab4b180f24b64bcddfc1606d616d0','0','2','0'),
('28031','20','get[1.3.6.1.4.1.10002.1.1.1.4.2.1.3.2]','10237','Load average (5m avg)','system.cpu.load.avg5[loadValue.2]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: FROGFOOT-RESOURCES-MIB\r\n5 minute load average of processor load.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1aaf7d729983431cb28351e7ba0c8235','0','2','0'),
('28141','20','get[1.3.6.1.4.1.11.2.14.11.5.1.1.3.0]','10250','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: NETSWITCH-MIB\r\nContains the operating code version number (also known as software or firmware).\r\nFor example, a software version such as A.08.01 is described as follows:\r\nA the function set available in your router\r\n08 the common release number\r\n01 updates to the current common release','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','dadf12eb4c0a42bf9504e15bc4fe6d7c','0','2','0'),
('28142','20','get[1.3.6.1.4.1.11.2.36.1.1.2.9.0]','10250','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SEMI-MIB','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','12d7d4a915714166b2c0a48733235ac1','0','2','0'),
('28143','20','get[1.3.6.1.4.1.11.2.14.11.5.1.9.6.1.0]','10250','CPU utilization','system.cpu.util[hpSwitchCpuStat.0]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: STATISTICS-MIB\r\nThe CPU utilization in percent(%).\r\nReference: http://h20564.www2.hpe.com/hpsc/doc/public/display?docId=emr_na-c02597344&sp4ts.oid=51079','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','083172af308e401a99a662f615a5b450','0','2','0'),
('28250','5','','10048','Utilization of vmware collector data collector processes, in %','zabbix[process,vmware collector,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the vmware collector processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a5a7076a175c400f866a4d873d12e1e4','0','2','0'),
('28251','5','','10048','VMware cache, % used','zabbix[vmware,buffer,pused]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The availability statistics of Zabbix vmware cache. The percentage of used data buffer.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fc7412c1a02240b7931d3511743a2662','0','2','0'),
('28388','20','get[1.3.6.1.4.1.232.6.2.6.1.0]','10256','System temperature status','sensor.temp.status[cpqHeThermalCondition.0]','1m','31d','0','0','3','','','','',NULL,'102','','','0','','','','','0',NULL,'MIB: CPQHLTH-MIB\r\nThis value specifies the overall condition of the system\'s thermal environment.\r\nThis value will be one of the following:\r\nother(1) Temperature could not be determined.\r\nok(2) The temperature sensor is within normal operating range.\r\ndegraded(3) The temperature sensor is outside of normal operating range.\r\nfailed(4) The temperature sensor detects a condition that could permanently damage the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','399110973c134983bd5020b9e5b509f4','0','2','0'),
('28390','20','get[1.3.6.1.4.1.232.2.2.4.2.0]','10256','Hardware model name','system.hw.model','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: CPQSINFO-MIB\r\nThe machine product name.The name of the machine used in this system.','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2708e6cb2ba240a791685ebdcab3407f','0','2','0'),
('28391','20','get[1.3.6.1.4.1.232.2.2.2.1.0]','10256','Hardware serial number','system.hw.serialnumber','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: CPQSINFO-MIB\r\nThe serial number of the physical system unit. The string will be empty if the system does not report the serial number function.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','96e27ad668944845a7f598f35b577d18','0','2','0'),
('28465','20','get[1.3.6.1.4.1.2.3.51.3.1.4.1.0]','10258','Overall system health status','system.status[systemHealthStat.0]','30s','31d','0','0','3','','','','',NULL,'106','','','0','','','','','0',NULL,'MIB: IMM-MIB\r\nIndicates 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 an 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.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','33572e0e11214d8b8454e6947e0d282d','0','2','0'),
('28466','20','get[1.3.6.1.4.1.2.3.51.3.1.5.2.1.5.0]','10258','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: IMM-MIB','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7075609a2d2545828a93f701d7b02c17','0','2','0'),
('28467','20','get[1.3.6.1.4.1.2.3.51.3.1.5.2.1.3.0]','10258','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: IMM-MIB\r\nMachine serial number VPD information','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','db393421a28b44148b0a1e1273186900','0','2','0'),
('28511','16','','10260','Version','jmx["Catalina:type=Server",serverInfo]','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','{$TOMCAT.USER}','{$TOMCAT.PASSWORD}','','','0',NULL,'The version of the Tomcat.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7f6ec0e48d41456896799f487cd8243e','0','2','0'),
('28533','5','','10047','LLD queue','zabbix[lld_queue]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The number of values enqueued in the low-level discovery processing queue.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d596a84dece14aa59ca53e9f53b21edb','0','2','0'),
('28535','5','','10047','Utilization of LLD manager internal processes, in %','zabbix[process,lld manager,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the LLD manager processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5e0ffccdaa51459c90d4868e61b1c6a8','0','2','0'),
('28537','5','','10047','Utilization of LLD worker internal processes, in %','zabbix[process,lld worker,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the LLD worker processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0b7b36eea80448ac8d11f7f30fb355da','0','2','0'),
('28539','5','','10261','Zabbix stats','zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The master item of Zabbix server statistics.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b9a588fee45047b6b991015e7e83f3f2','0','2','0'),
('28540','5','','10261','Queue','zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT},queue]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The number of monitored items in the queue that are delayed by at least 6 seconds.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c140ebe6c0404ee6b17b5ada2de09f28','0','2','0'),
('28541','5','','10261','Queue over 10 minutes','zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT},queue,10m]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The number of monitored items in the queue that are delayed by at least 10 minutes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','95c8bab7640a4227b8ce6cac06e1a08b','0','2','0'),
('28585','5','','10262','Zabbix stats','zabbix[stats,{$ZABBIX.PROXY.ADDRESS},{$ZABBIX.PROXY.PORT}]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Zabbix server statistics master item.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c3d4e015efe7459f8207096a04b296f0','0','2','0'),
('28586','5','','10262','Queue','zabbix[stats,{$ZABBIX.PROXY.ADDRESS},{$ZABBIX.PROXY.PORT},queue]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The number of monitored items in the queue that are delayed by at least 6 seconds.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','128bcd3c019946b593f3256858cf8397','0','2','0'),
('28587','5','','10262','Queue over 10 minutes','zabbix[stats,{$ZABBIX.PROXY.ADDRESS},{$ZABBIX.PROXY.PORT},queue,10m]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The number of monitored items in the queue that are delayed by at least 10 minutes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c9b9ee0faefd4cefbac32f548539266e','0','2','0'),
('28617','5','','10048','Preprocessing queue','zabbix[preprocessing_queue]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The number of values enqueued in the preprocessing queue.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0230306272c24858b49243ef1c61e2ec','0','2','0'),
('28618','5','','10048','Utilization of preprocessing manager internal processes, in %','zabbix[process,preprocessing manager,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the preprocessing manager processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','20705fe12d4c40a4a27306b66ec9a69d','0','2','0'),
('28619','5','','10048','Utilization of preprocessing worker internal processes, in %','zabbix[process,preprocessing worker,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the preprocessing worker processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9c7916375cf841fb8edaf383b93a0522','0','2','0'),
('28743','0','','10264','Service ping','net.tcp.service[http,"{$APACHE.STATUS.HOST}","{$APACHE.STATUS.PORT}"]','1m','31d','365d','0','3','','','','',NULL,'13','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','369f00e2970048c786ce3bd609e65566','0','2','0'),
('28748','0','','10264','Service response time','net.tcp.service.perf[http,"{$APACHE.STATUS.HOST}","{$APACHE.STATUS.PORT}"]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','267ca6fe038346e5be1113f3bf9b4023','0','2','0'),
('28775','19','','10265','Get status','apache.get_status','1m','1h','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Getting data from a machine-readable version of the Apache status page.\r\nFor more information see Apache Module [mod_status](https://httpd.apache.org/docs/current/mod/mod_status.html).','0','30d','0','',NULL,'','{$APACHE.STATUS.SCHEME}://{$APACHE.STATUS.HOST}:{$APACHE.STATUS.PORT}/{$APACHE.STATUS.PATH}','','','200','1','0','','','2','0','0','0','0','0','0','e61be8ad92004100aca55fcedd2a3807','0','2','0'),
('28776','3','','10265','Service ping','net.tcp.service[http,"{$APACHE.STATUS.HOST}","{$APACHE.STATUS.PORT}"]','1m','31d','365d','0','3','','','','',NULL,'14','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fb65918695094026838e2b9e4ca00402','0','2','0'),
('28777','3','','10265','Service response time','net.tcp.service.perf[http,"{$APACHE.STATUS.HOST}","{$APACHE.STATUS.PORT}"]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5039d11bc3964d6e9928a0a46dd0b402','0','2','0'),
('28804','0','','10266','Get stub status page','web.page.get["{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PATH}","{$NGINX.STUB_STATUS.PORT}"]','1m','1h','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The following status information is provided:\r\n`Active connections` - the current number of active client connections including waiting connections.\r\n`Accepted` - the total number of accepted client connections.\r\n`Handled` - the total number of handled connections. Generally, the parameter value is the same as for the accepted connections, unless some resource limits have been reached (for example, the `worker_connections` limit).\r\n`Requests` - the total number of client requests.\r\n`Reading` - the current number of connections where Nginx is reading the request header.\r\n`Writing` - the current number of connections where Nginx is writing a response back to the client.\r\n`Waiting` - the current number of idle client connections waiting for a request.\r\n\r\nSee also [Module ngx_http_stub_status_module](https://nginx.org/en/docs/http/ngx_http_stub_status_module.html).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','52a23a9f6d60490c8f5565b938154f61','0','2','0'),
('28805','0','','10266','Service response time','net.tcp.service.perf[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','75a7795df3034835bcfd143f7c3e9b94','0','2','0'),
('28810','0','','10266','Service status','net.tcp.service[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"]','1m','31d','365d','0','3','','','','',NULL,'15','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f06e76888f464e13b7cc4c3db33e8131','0','2','0'),
('28821','19','','10267','Get stub status page','nginx.get_stub_status','1m','1h','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The following status information is provided:\r\n`Active connections` - the current number of active client connections including waiting connections.\r\n`Accepted` - the total number of accepted client connections.\r\n`Handled` - the total number of handled connections. Generally, the parameter value is the same as for the accepted connections, unless some resource limits have been reached (for example, the `worker_connections` limit).\r\n`Requests` - the total number of client requests.\r\n`Reading` - the current number of connections where Nginx is reading the request header.\r\n`Writing` - the current number of connections where Nginx is writing a response back to the client.\r\n`Waiting` - the current number of idle client connections waiting for a request.\r\n\r\nSee also [Module ngx_http_stub_status_module](https://nginx.org/en/docs/http/ngx_http_stub_status_module.html).','0','30d','0','',NULL,'','{$NGINX.STUB_STATUS.SCHEME}://{$NGINX.STUB_STATUS.HOST}:{$NGINX.STUB_STATUS.PORT}/{$NGINX.STUB_STATUS.PATH}','','','200','1','0','','','2','0','0','0','0','0','0','86f93d1941d147fe94d754eddd3e8ff2','0','2','0'),
('28822','3','','10267','Service status','net.tcp.service[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"]','1m','31d','365d','0','3','','','','',NULL,'16','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e4a09193bc8f42f2888ece83f89f84af','0','2','0'),
('28823','3','','10267','Service response time','net.tcp.service.perf[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','18c6209295b347e2a96ef11b147139d8','0','2','0'),
('29395','19','','10285','Get node_exporter metrics','node_exporter.get','1m','1h','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','http://{$NODE_EXPORTER_HOST}:{$NODE_EXPORTER_PORT}/metrics','','','200','1','0','','','0','0','0','0','0','0','0','8b2fffcba0b24ca8a687361645ffaa1d','0','2','0'),
('29396','15','','10285','Memory utilization','vm.memory.util[node_exporter]','1m','31d','365d','0','0','','%','','',NULL,NULL,'(last(//vm.memory.total[node_exporter])-last(//vm.memory.available[node_exporter]))/last(//vm.memory.total[node_exporter])*100','','0','','','','','0',NULL,'Percentage calculated as (total-available)/total*100.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','60c716c692fb482f9abffb0fc9ce4324','0','2','0'),
('29397','15','','10285','Free swap space in %','system.swap.pfree[node_exporter]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//system.swap.free[node_exporter])/last(//system.swap.total[node_exporter])*100','','0','','','','','0',NULL,'The free space of the swap volume/file expressed in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','99feb76b7da04b00a0d191b92bf979a1','0','2','0'),
('29653','0','','10301','Get node overview','web.page.get["{$RABBITMQ.API.SCHEME}://{$RABBITMQ.API.USER}:{$RABBITMQ.API.PASSWORD}@{$RABBITMQ.API.HOST}:{$RABBITMQ.API.PORT}/api/overview"]','1m','1h','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The HTTP API endpoint that returns cluster-wide metrics.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1af326f40cdb407a96b34025062b4743','0','2','0'),
('29654','0','','10301','Get nodes','web.page.get["{$RABBITMQ.API.SCHEME}://{$RABBITMQ.API.USER}:{$RABBITMQ.API.PASSWORD}@{$RABBITMQ.API.HOST}:{$RABBITMQ.API.PORT}/api/nodes/{$RABBITMQ.CLUSTER.NAME}@{HOST.NAME}?memory=true"]','1m','1h','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The HTTP API endpoint that returns metrics of the nodes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','61730555a0ae4f798ea740effb82764c','0','2','0'),
('29655','0','','10301','Service ping','net.tcp.service["{$RABBITMQ.API.SCHEME}","{$RABBITMQ.API.HOST}","{$RABBITMQ.API.PORT}"]','1m','31d','365d','0','3','','','','',NULL,'17','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6229b623f5ff40f9a65e9573b3b86e3f','0','2','0'),
('29660','0','','10301','Service response time','net.tcp.service.perf["{$RABBITMQ.API.SCHEME}","{$RABBITMQ.API.HOST}","{$RABBITMQ.API.PORT}"]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b1f191f9077f4382b5b87e0085ae2622','0','2','0'),
('29661','0','','10301','Get queues','web.page.get["{$RABBITMQ.API.SCHEME}://{$RABBITMQ.API.USER}:{$RABBITMQ.API.PASSWORD}@{$RABBITMQ.API.HOST}:{$RABBITMQ.API.PORT}/api/queues"]','1m','1h','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The HTTP API endpoint that returns metrics of the queues metrics.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7fb61ad564db42d5a373912491f5c9d3','0','2','0'),
('29738','19','','10302','Get overview','rabbitmq.get_overview','1m','1h','0','0','4','','','','',NULL,NULL,'','','1','{$RABBITMQ.API.USER}','{$RABBITMQ.API.PASSWORD}','','','0',NULL,'The HTTP API endpoint that returns cluster-wide metrics.','0','30d','0','',NULL,'','{$RABBITMQ.API.SCHEME}://{$RABBITMQ.API.CLUSTER_HOST}:{$RABBITMQ.API.PORT}/api/overview','','','200','1','0','','','0','0','0','0','0','0','0','c0d7c1940dea4cd4a01a94b9629db3ce','0','2','0'),
('29739','19','','10302','Get exchanges','rabbitmq.get_exchanges','1m','1h','0','0','4','','','','',NULL,NULL,'','','1','{$RABBITMQ.API.USER}','{$RABBITMQ.API.PASSWORD}','','','0',NULL,'The HTTP API endpoint that returns exchanges metrics.','0','30d','0','',NULL,'','{$RABBITMQ.API.SCHEME}://{$RABBITMQ.API.CLUSTER_HOST}:{$RABBITMQ.API.PORT}/api/exchanges','','','200','1','0','','','0','0','0','0','0','0','0','dd74265fcc2d48e2b160e749706c9a6c','0','2','0'),
('29741','19','','10303','Get nodes','rabbitmq.get_nodes','1m','1h','0','0','4','','','','',NULL,NULL,'','','1','{$RABBITMQ.API.USER}','{$RABBITMQ.API.PASSWORD}','','','0',NULL,'The HTTP API endpoint that returns metrics of the nodes.','0','30d','0','',NULL,'','{$RABBITMQ.API.SCHEME}://{$RABBITMQ.API.HOST}:{$RABBITMQ.API.PORT}/api/nodes/{$RABBITMQ.CLUSTER.NAME}@{HOST.NAME}?memory=true','','','200','1','0','','','0','0','0','0','0','0','0','14468c29d16440cfb40429f58a0399f4','0','2','0'),
('29742','3','','10303','Service ping','net.tcp.service["{$RABBITMQ.API.SCHEME}","{$RABBITMQ.API.HOST}","{$RABBITMQ.API.PORT}"]','1m','31d','365d','0','3','','','','',NULL,'18','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f53379f858f74714b15ee12fe6fc2d08','0','2','0'),
('29743','3','','10303','Service response time','net.tcp.service.perf["{$RABBITMQ.API.SCHEME}","{$RABBITMQ.API.HOST}","{$RABBITMQ.API.PORT}"]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','542f36f0b4e24d99a402a98b6f6fe4c4','0','2','0'),
('29745','19','','10303','Get queues','rabbitmq.get_queues','1m','1h','0','0','4','','','','',NULL,NULL,'','','1','{$RABBITMQ.API.USER}','{$RABBITMQ.API.PASSWORD}','','','0',NULL,'The HTTP API endpoint that returns metrics of the queues metrics.','0','30d','0','',NULL,'','{$RABBITMQ.API.SCHEME}://{$RABBITMQ.API.HOST}:{$RABBITMQ.API.PORT}/api/queues','','','200','1','0','','','0','0','0','0','0','0','0','3d0770d550b24f5ca80289cb723c8386','0','2','0'),
('29822','5','','10047','Utilization of alert syncer internal processes, in %','zabbix[process,alert syncer,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the alert syncer processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','eea69b4541844ebbbbf634594c14a8f2','0','2','0'),
('29994','20','get[1.3.6.1.4.1.232.6.1.3.0]','10256','Overall system health status','system.status[cpqHeMibCondition.0]','1m','31d','0','0','3','','','','',NULL,'102','','','0','','','','','0',NULL,'MIB: CPQHLTH-MIB\r\nThe overall condition. This object represents the overall status of the server information represented by this MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5f30715570c449ecb4e07858256a3e05','0','2','0'),
('29998','0','','10300','Get overview','web.page.get["{$RABBITMQ.API.SCHEME}://{$RABBITMQ.API.USER}:{$RABBITMQ.API.PASSWORD}@{$RABBITMQ.API.CLUSTER_HOST}:{$RABBITMQ.API.PORT}/api/overview"]','1m','1h','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The HTTP API endpoint that returns cluster-wide metrics.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','943eabfb44164908b9135aa4d6478bea','0','2','0'),
('29999','0','','10300','Get exchanges','web.page.get["{$RABBITMQ.API.SCHEME}://{$RABBITMQ.API.USER}:{$RABBITMQ.API.PASSWORD}@{$RABBITMQ.API.CLUSTER_HOST}:{$RABBITMQ.API.PORT}/api/exchanges"]','1m','1h','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The HTTP API endpoint that returns exchanges metrics.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f015f991bcea4c4dbf83dfb013300010','0','2','0'),
('30043','19','','10303','Get node overview','rabbitmq.get_node_overview','1m','1h','0','0','4','','','','',NULL,NULL,'','','1','{$RABBITMQ.API.USER}','{$RABBITMQ.API.PASSWORD}','','','0',NULL,'The HTTP API endpoint that returns cluster-wide metrics.','0','30d','0','',NULL,'','{$RABBITMQ.API.SCHEME}://{$RABBITMQ.API.HOST}:{$RABBITMQ.API.PORT}/api/overview','','','200','1','0','','','0','0','0','0','0','0','0','ff7ec5f6e2354c90bffdbd25f9360555','0','2','0'),
('30086','20','get[1.3.6.1.2.1.1.1.0]','10207','Operating system','system.sw.os[sysDescr.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9f1c8827a9ef4948808bac9d76add9a8','0','2','0'),
('30087','20','get[1.3.6.1.4.1.6527.3.1.2.1.1.10.0]','10207','Available memory','vm.memory.available[sgiKbMemoryAvailable.0]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TIMETRA-SYSTEM-MIB\r\nThe value of sgiKbMemoryAvailable indicates the amount of free memory, in kilobytes, in the overall system that is not allocated to memory pools, but is available in case a memory pool needs to grow.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3f2769066a184d29afd26047039b633c','0','2','0'),
('30088','15','','10207','Total memory','vm.memory.total[snmp]','1m','31d','365d','0','3','','B','','',NULL,NULL,'last(//vm.memory.available[sgiKbMemoryAvailable.0])+last(//vm.memory.used[sgiKbMemoryUsed.0])','','0','','','','','0',NULL,'The total memory expressed in bytes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9005685cea194d7c9702f19040df7b80','0','2','0'),
('30089','15','','10207','Memory utilization','vm.memory.util[vm.memory.util.0]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[sgiKbMemoryUsed.0])/(last(//vm.memory.available[sgiKbMemoryAvailable.0])+last(//vm.memory.used[sgiKbMemoryUsed.0]))*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f223ac289a99469e8861219f4254dea6','0','2','0'),
('30093','20','get[1.3.6.1.4.1.1588.2.1.1.1.26.6.0]','10208','Memory utilization','vm.memory.util[swMemUsage.0]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SW-MIB\r\nMemory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9a8441cae4fb4c698502a20d5ce23ddf','0','2','0'),
('30106','20','get[1.3.6.1.4.1.171.10.97.2.1.1.2.0]','10222','Operating system','system.sw.os[mySystemSwVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MY-SYSTEM-MIB','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8d31f35a9d8842f086a123014bfd27ad','0','2','0'),
('30109','20','get[1.3.6.1.4.1.1916.1.1.1.13.0]','10224','Operating system','system.sw.os[extremePrimarySoftwareRev.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: EXTREME-SYSTEM-MIB\r\nThe software revision of the primary image stored in this device.\r\nThis string will have a zero length if the revision is unknown, invalid or not present.\r\nThis will also be reported in RMON2 probeSoftwareRev if this is the software image currently running in the device.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0ba6360ecf4c4487a249e3efabca2e0c','0','2','0'),
('30117','20','get[1.3.6.1.2.1.1.1.0]','10231','Operating system','system.sw.os[sysDescr.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','24cd5862c2de4cbaad0b3bbce7f26a65','0','2','0'),
('30119','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10233','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7e3b3e78086742a7b9cda953367a2d83','0','2','0'),
('30120','15','','10233','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','56017f610bf74f0aaaa92e9183e68ea5','0','2','0'),
('30121','20','get[1.3.6.1.4.1.4526.10.1.1.1.10.0]','10234','Operating system','system.sw.os[agentInventoryOperatingSystem.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: FASTPATH-SWITCHING-MIB\r\nOperating System running on this unit','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5bd8c956163d4201a7e896abde28044b','0','2','0'),
('30122','20','get[1.3.6.1.4.1.4526.10.1.1.5.1.0]','10234','Available memory','vm.memory.available[agentSwitchCpuProcessMemFree.0]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: FASTPATH-SWITCHING-MIB\r\nThe total memory freed for utilization.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f94ffd4d6eb84ae88cdf5033df65f249','0','2','0'),
('30123','15','','10234','Memory utilization','vm.memory.util[memoryUsedPercentage.0]','1m','31d','365d','0','0','','%','','',NULL,NULL,'(last(//vm.memory.total[agentSwitchCpuProcessMemAvailable.0])-last(//vm.memory.available[agentSwitchCpuProcessMemFree.0]))/last(//vm.memory.total[agentSwitchCpuProcessMemAvailable.0])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','86ef153d78b5466cac76a32f81d8b958','0','2','0'),
('30124','20','get[1.3.6.1.4.1.27514.100.1.11.9.0]','10235','Temperature','sensor.temp.value[switchTemperature.0]','3m','31d','365d','0','0','','°C','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: QTECH-MIB\r\nTemperature readings of testpoint.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ddb9ac31893d4b1d882b0e500d2d6ad7','0','2','0'),
('30125','20','get[1.3.6.1.4.1.27514.100.1.3.0]','10235','Operating system','system.sw.os[sysSoftwareVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: QTECH-MIB','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ea6000232033495babf9157a67b89bcc','0','2','0'),
('30126','15','','10235','Memory utilization','vm.memory.util[vm.memory.util.0]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[switchMemoryBusy.0])/last(//vm.memory.total[switchMemorySize.0])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f2271ace8bd040618f10ec651a634cbc','0','2','0'),
('30132','20','get[1.3.6.1.4.1.10002.1.1.1.1.3.0]','10237','Memory (buffers)','vm.memory.buffers[memBuffer.0]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: FROGFOOT-RESOURCES-MIB\r\nMemory used by kernel buffers (Buffers in /proc/meminfo).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6393f8a84fd4417abdccd8bd867aac7e','0','2','0'),
('30133','20','get[1.3.6.1.4.1.10002.1.1.1.1.4.0]','10237','Memory (cached)','vm.memory.cached[memCache.0]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: FROGFOOT-RESOURCES-MIB\r\nMemory used by the page cache and slabs (Cached and Slab in /proc/meminfo).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','224c8d32f0d649b3b94b77e960934f15','0','2','0'),
('30134','20','get[1.3.6.1.4.1.10002.1.1.1.1.2.0]','10237','Free memory','vm.memory.free[memFree.0]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: FROGFOOT-RESOURCES-MIB','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','401b95eff89743cba6942606ac051b01','0','2','0'),
('30135','20','get[1.3.6.1.4.1.10002.1.1.1.1.1.0]','10237','Total memory','vm.memory.total[memTotal.0]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: FROGFOOT-RESOURCES-MIB\r\nThe total memory expressed in bytes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','eefa6d2e8560407f82bbb8783bb399ad','0','2','0'),
('30136','15','','10237','Memory utilization','vm.memory.util[memoryUsedPercentage]','1m','31d','365d','0','0','','%','','',NULL,NULL,'(last(//vm.memory.total[memTotal.0])-(last(//vm.memory.free[memFree.0])+last(//vm.memory.buffers[memBuffer.0])+last(//vm.memory.cached[memCache.0])))/last(//vm.memory.total[memTotal.0])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','29df9ffb192d4434a88ac6a413b9569d','0','2','0'),
('30187','0','','10308','Service response time','net.tcp.service.perf["{$HAPROXY.STATS.SCHEME}","{$HAPROXY.STATS.HOST}","{$HAPROXY.STATS.PORT}"]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c224cfe9b7474f9e80618dde78cfcb11','0','2','0'),
('30188','0','','10308','Service status','net.tcp.service["{$HAPROXY.STATS.SCHEME}","{$HAPROXY.STATS.HOST}","{$HAPROXY.STATS.PORT}"]','1m','31d','365d','0','3','','','','',NULL,'19','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','97e45c508f5a4df78fc783382088e233','0','2','0'),
('30189','0','','10308','Get stats','web.page.get["{$HAPROXY.STATS.SCHEME}://{$HAPROXY.STATS.HOST}:{$HAPROXY.STATS.PORT}/{$HAPROXY.STATS.PATH};csv"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'HAProxy Statistics Report in CSV format','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','aabdb5706b6744379561f269e0709141','0','2','0'),
('30190','0','','10308','Get stats page','web.page.get["{$HAPROXY.STATS.SCHEME}://{$HAPROXY.STATS.HOST}:{$HAPROXY.STATS.PORT}/{$HAPROXY.STATS.PATH}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'HAProxy Statistics Report HTML','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e70009bd4e3041a3952738673ebb5c29','0','2','0'),
('30230','19','','10309','Get stats','haproxy.get','1m','0','0','0','4','','','','',NULL,NULL,'','','1','{$HAPROXY.USERNAME}','{$HAPROXY.PASSWORD}','','','0',NULL,'HAProxy Statistics Report in CSV format','0','30d','0','',NULL,'','{$HAPROXY.STATS.SCHEME}://{$HAPROXY.STATS.HOST}:{$HAPROXY.STATS.PORT}/{$HAPROXY.STATS.PATH};csv','','','200','1','0','','','0','0','0','0','0','0','0','93a0ea1e5b0145b5bd2dcdb698d367c2','0','2','0'),
('30231','19','','10309','Get stats page','haproxy.get_html','1m','0','0','0','4','','','','',NULL,NULL,'','','1','{$HAPROXY.USERNAME}','{$HAPROXY.PASSWORD}','','','0',NULL,'HAProxy Statistics Report HTML','0','30d','0','',NULL,'','{$HAPROXY.STATS.SCHEME}://{$HAPROXY.STATS.HOST}:{$HAPROXY.STATS.PORT}/{$HAPROXY.STATS.PATH}','','','200','1','0','','','0','0','0','0','0','0','0','123c03c715494faea6b1d4f8b8fa564d','0','2','0'),
('30273','0','','10310','Ping','redis.ping["{$REDIS.CONN.URI}"]','1m','31d','365d','0','3','','','','',NULL,'21','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5949fadcbe2b405baff0668e81627278','0','2','0'),
('30274','0','','10310','Slowlog entries per second','redis.slowlog.count["{$REDIS.CONN.URI}"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','51a65fa1d27e4fcd915c5019687e7bc9','0','2','0'),
('30275','0','','10310','Get config','redis.config["{$REDIS.CONN.URI}"]','1m','1h','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bf68f3ecc3544ef0af00889139caf313','0','2','0'),
('30276','0','','10310','Get info','redis.info["{$REDIS.CONN.URI}"]','1m','1h','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','720f146ffe7e481482e11db4b99634c8','0','2','0'),
('30431','0','','10316','Version','mysql.version["{$MYSQL.HOST}","{$MYSQL.PORT}"]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MySQL server version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a5d0f152c3ef4e069c3d5a6a5a9470fe','0','2','0'),
('30432','0','','10316','Status','mysql.ping["{$MYSQL.HOST}","{$MYSQL.PORT}"]','1m','31d','365d','0','3','','','','',NULL,'22','','','0','','','','','0',NULL,'MySQL server status.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','41cd6c8c535948f3bde6324e0912f1a8','0','2','0'),
('30433','0','','10316','Get status variables','mysql.get_status_variables["{$MYSQL.HOST}","{$MYSQL.PORT}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Gets server global status information.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2ba81b425bde4ba5b3f7d00a6c922ed9','0','2','0'),
('30434','15','','10316','Buffer pool utilization','mysql.buffer_pool_utilization','1m','31d','365d','0','0','','%','','',NULL,NULL,'( last(//mysql.innodb_buffer_pool_pages_total) - \r\nlast(//mysql.innodb_buffer_pool_pages_free) ) / \r\n( last(//mysql.innodb_buffer_pool_pages_total) + \r\n( last(//mysql.innodb_buffer_pool_pages_total) = 0 ) ) * 100 * \r\n( last(//mysql.innodb_buffer_pool_pages_total) > 0 )','','0','','','','','0',NULL,'Ratio of used to total pages in the buffer pool.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9aca02e86e744f43ab48e8ca9453cf77','0','2','0'),
('30435','15','','10316','Buffer pool efficiency','mysql.buffer_pool_efficiency','1m','31d','365d','0','0','','%','','',NULL,NULL,'100 - (last(//mysql.innodb_buffer_pool_reads) / \r\n( last(//mysql.innodb_buffer_pool_read_requests) + \r\n( last(//mysql.innodb_buffer_pool_read_requests) = 0 ) ) * 100 * \r\n( last(//mysql.innodb_buffer_pool_read_requests) > 0 ))','','0','','','','','0',NULL,'The item shows how effectively the buffer pool is serving reads.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9a447424aca84124abdfa389865126d4','0','2','0'),
('30479','11','','10317','Get status variables','db.odbc.get[get_status_variables,"{$MYSQL.DSN}"]','1m','0','0','0','4','','','','',NULL,NULL,'show global status','','0','{$MYSQL.USER}','{$MYSQL.PASSWORD}','','','0',NULL,'Gets server global status information.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','72e0f88741d746bf88e8951ef69681f9','0','2','0'),
('30480','11','','10317','Version','db.odbc.select[version,"{$MYSQL.DSN}"]','15m','31d','0','0','1','','','','',NULL,NULL,'select version()','','0','{$MYSQL.USER}','{$MYSQL.PASSWORD}','','','0',NULL,'MySQL server version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b9fb80ca366e4d33801472bcd013f881','0','2','0'),
('30481','11','','10317','Status','db.odbc.select[ping,"{$MYSQL.DSN}"]','1m','31d','365d','0','3','','','','',NULL,'23','select "1"','','0','{$MYSQL.USER}','{$MYSQL.PASSWORD}','','','0',NULL,'MySQL server status.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5b7c14e38799427cb6520f47bf8afe6c','0','2','0'),
('30482','15','','10317','Buffer pool efficiency','mysql.buffer_pool_efficiency','1m','31d','365d','0','0','','%','','',NULL,NULL,'100 - (last(//mysql.innodb_buffer_pool_reads) / \r\n( last(//mysql.innodb_buffer_pool_read_requests) + \r\n( last(//mysql.innodb_buffer_pool_read_requests) = 0 ) ) * 100 * \r\n( last(//mysql.innodb_buffer_pool_read_requests) > 0 ))','','0','','','','','0',NULL,'The item shows how effectively the buffer pool is serving reads.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','05e7e91206bb4138a945ea0de2d8c01d','0','2','0'),
('30483','15','','10317','Buffer pool utilization','mysql.buffer_pool_utilization','1m','31d','365d','0','0','','%','','',NULL,NULL,'( last(//mysql.innodb_buffer_pool_pages_total) - \r\nlast(//mysql.innodb_buffer_pool_pages_free) ) / \r\n( last(//mysql.innodb_buffer_pool_pages_total) + \r\n( last(//mysql.innodb_buffer_pool_pages_total) = 0 ) ) * 100 * \r\n( last(//mysql.innodb_buffer_pool_pages_total) > 0 )','','0','','','','','0',NULL,'Ratio of used to total pages in the buffer pool.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ad5520e067ea405eb939d319fa9690e9','0','2','0'),
('30527','0','','10318','Get data_usage','docker.data_usage','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4f7221691d494c60b40abb6dd5c14719','0','2','0'),
('30528','0','','10318','Get containers','docker.containers','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6edcd2fbe7c446738d323ce7f1c11810','0','2','0'),
('30529','0','','10318','Get info','docker.info','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3d8265e0495d4cbe97535f281a957b3e','0','2','0'),
('30530','0','','10318','Ping','docker.ping','1m','31d','365d','0','3','','','','',NULL,'24','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3c8f26e4b80f4356bde061ccddb95f2c','0','2','0'),
('30531','0','','10318','Get images','docker.images','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8b2be6316b8d4d019443062f0809b579','0','2','0'),
('30611','0','','10319','Ping','memcached.ping["{$MEMCACHED.CONN.URI}"]','1m','31d','365d','0','3','','','','',NULL,'25','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','57a4c2e763c3430daacd4495b91c3e74','0','2','0'),
('30612','0','','10319','Get status','memcached.stats["{$MEMCACHED.CONN.URI}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3a096b6d7d9945fe9a25d1fb5c835f1a','0','2','0'),
('30637','0','','10320','Version','mysql.version["{$MYSQL.DSN}","{$MYSQL.USER}","{$MYSQL.PASSWORD}"]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MySQL server version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8058b068b90748fea464443058103fc8','0','2','0'),
('30638','0','','10320','Status','mysql.ping["{$MYSQL.DSN}","{$MYSQL.USER}","{$MYSQL.PASSWORD}"]','1m','31d','365d','0','3','','','','',NULL,'26','','','0','','','','','0',NULL,'MySQL server status.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8ca25701d88a4d33899a515d8e25dd5b','0','2','0'),
('30639','0','','10320','Get status variables','mysql.get_status_variables["{$MYSQL.DSN}","{$MYSQL.USER}","{$MYSQL.PASSWORD}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Gets server global status information.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a18b1092c42a4560abac7af42b14f007','0','2','0'),
('30640','15','','10320','Buffer pool utilization','mysql.buffer_pool_utilization','1m','31d','365d','0','0','','%','','',NULL,NULL,'( last(//mysql.innodb_buffer_pool_pages_total) - \r\nlast(//mysql.innodb_buffer_pool_pages_free) ) / \r\n( last(//mysql.innodb_buffer_pool_pages_total) + \r\n( last(//mysql.innodb_buffer_pool_pages_total) = 0 ) ) * 100 * \r\n( last(//mysql.innodb_buffer_pool_pages_total) > 0 )','','0','','','','','0',NULL,'Ratio of used to total pages in the buffer pool.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','70a1642e80114fd3a129c5774acc4f50','0','2','0'),
('30641','15','','10320','Buffer pool efficiency','mysql.buffer_pool_efficiency','1m','31d','365d','0','0','','%','','',NULL,NULL,'100 - (last(//mysql.innodb_buffer_pool_reads) / \r\n( last(//mysql.innodb_buffer_pool_read_requests) + \r\n( last(//mysql.innodb_buffer_pool_read_requests) = 0 ) ) * 100 * \r\n( last(//mysql.innodb_buffer_pool_read_requests) > 0 ))','','0','','','','','0',NULL,'The item shows how effectively the buffer pool is serving reads.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e222b97642d04128af8c1ec20e463152','0','2','0'),
('30685','12','','10321','Get IPMI sensors','ipmi.get','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The master item that receives all sensors with values for LLD and dependent elements from BMC.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','dbcf45cb09284fc19a17e7369c8fda43','0','2','0'),
('30690','3','','10322','Service status','net.tcp.service["{$ELASTICSEARCH.SCHEME}","{$ELASTICSEARCH.HOST}","{$ELASTICSEARCH.PORT}"]','1m','31d','365d','0','3','','','','',NULL,'27','','','0','','','','','0',NULL,'Checks if the service is running and accepting TCP connections.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d0d38ce55f844a51a0f2131c86bec1ae','0','2','0'),
('30691','19','','10322','Get cluster stats','es.cluster.get_stats','1m','0','0','0','4','','','','',NULL,NULL,'','','1','{$ELASTICSEARCH.USERNAME}','{$ELASTICSEARCH.PASSWORD}','','','0',NULL,'Returns cluster statistics.','0','30d','0','',NULL,'15s','{$ELASTICSEARCH.SCHEME}://{$ELASTICSEARCH.HOST}:{$ELASTICSEARCH.PORT}/_cluster/stats','','','200','1','0','','','0','0','0','0','0','0','0','7066a66f352e4d79ba4aec11c0c5c611','0','2','0'),
('30692','3','','10322','Service response time','net.tcp.service.perf["{$ELASTICSEARCH.SCHEME}","{$ELASTICSEARCH.HOST}","{$ELASTICSEARCH.PORT}"]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'Checks performance of the TCP service.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','671888d47c724e54aca78fbe1b3ecaed','0','2','0'),
('30693','19','','10322','Get nodes stats','es.nodes.get_stats','1m','0','0','0','4','','','','',NULL,NULL,'','','1','{$ELASTICSEARCH.USERNAME}','{$ELASTICSEARCH.PASSWORD}','','','0',NULL,'Returns cluster nodes statistics.','0','30d','0','',NULL,'30s','{$ELASTICSEARCH.SCHEME}://{$ELASTICSEARCH.HOST}:{$ELASTICSEARCH.PORT}/_nodes/stats','','','200','1','0','','','0','0','0','0','0','0','0','66c22b8b2b8b40fda7ac6f0ae472befd','0','2','0'),
('30694','19','','10322','Get cluster health','es.cluster.get_health','1m','0','0','0','4','','','','',NULL,NULL,'','','1','{$ELASTICSEARCH.USERNAME}','{$ELASTICSEARCH.PASSWORD}','','','0',NULL,'Returns the health status of a cluster.','0','30d','0','',NULL,'15s','{$ELASTICSEARCH.SCHEME}://{$ELASTICSEARCH.HOST}:{$ELASTICSEARCH.PORT}/_cluster/health?timeout=5s','','','200','1','0','','','0','0','0','0','0','0','0','7f587fd270be4eb68d81ae1de2a3ca1f','0','2','0'),
('30789','3','','10309','Service response time','net.tcp.service.perf["{$HAPROXY.STATS.SCHEME}","{$HAPROXY.STATS.HOST}","{$HAPROXY.STATS.PORT}"]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6f9c22a840764181be9cf98609e7f691','0','2','0'),
('30790','3','','10309','Service status','net.tcp.service["{$HAPROXY.STATS.SCHEME}","{$HAPROXY.STATS.HOST}","{$HAPROXY.STATS.PORT}"]','1m','31d','365d','0','3','','','','',NULL,'20','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','68cb52357d7443d79373df3890ed175f','0','2','0'),
('30821','19','','10323','Ping','clickhouse.ping','1m','31d','365d','0','3','','','','',NULL,'28','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','{$CLICKHOUSE.SCHEME}://{$CLICKHOUSE.HOST}:{$CLICKHOUSE.PORT}/ping','','','','1','0','','','0','0','0','0','0','0','0','cb40b0cf1296436d9a4e41062d1b3fa9','0','2','0'),
('30822','19','','10323','Version','clickhouse.version','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Version of the server','0','30d','0','',NULL,'','{$CLICKHOUSE.SCHEME}://{$CLICKHOUSE.HOST}:{$CLICKHOUSE.PORT}/','[{"query":"SELECT version()"}]','','200','1','0','','X-ClickHouse-User: {$CLICKHOUSE.USER}\r\nX-ClickHouse-Key: {$CLICKHOUSE.PASSWORD}','0','0','0','0','0','0','0','d09b77c25dfd45249df05fc3f6d45b7b','0','2','0'),
('30823','19','','10323','Get replicas info','clickhouse.replicas','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Get information about replicas.','0','30d','0','',NULL,'','{$CLICKHOUSE.SCHEME}://{$CLICKHOUSE.HOST}:{$CLICKHOUSE.PORT}/','[{"query":"SELECT database, table, is_readonly, is_session_expired, future_parts, parts_to_check, queue_size, inserts_in_queue, merges_in_queue, log_max_index, log_pointer, total_replicas, active_replicas, log_max_index - log_pointer as replica_lag FROM system.replicas format JSON"}]','','200','1','0','','X-ClickHouse-User: {$CLICKHOUSE.USER}\r\nX-ClickHouse-Key: {$CLICKHOUSE.PASSWORD}','0','0','0','0','0','0','0','3793962be3494772832796c932947e1d','0','2','0'),
('30824','19','','10323','Get system.asynchronous_metrics','clickhouse.system.asynchronous_metrics','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Get metrics that are calculated periodically in the background','0','30d','0','',NULL,'','{$CLICKHOUSE.SCHEME}://{$CLICKHOUSE.HOST}:{$CLICKHOUSE.PORT}/','[{"query":"select metric, value from system.asynchronous_metrics format JSON"}]','','200','1','0','','X-ClickHouse-User: {$CLICKHOUSE.USER}\r\nX-ClickHouse-Key: {$CLICKHOUSE.PASSWORD}','0','0','0','0','0','0','0','6c84e0abd186467882d2d3842749f937','0','2','0'),
('30825','19','','10323','Get system.events','clickhouse.system.events','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Get information about the number of events that have occurred in the system.','0','30d','0','',NULL,'','{$CLICKHOUSE.SCHEME}://{$CLICKHOUSE.HOST}:{$CLICKHOUSE.PORT}/','[{"query":"select event, value from system.events format JSON"}]','','200','1','0','','X-ClickHouse-User: {$CLICKHOUSE.USER}\r\nX-ClickHouse-Key: {$CLICKHOUSE.PASSWORD}','0','0','0','0','0','0','0','8aa612d27547446e9457aeaf6e94e320','0','2','0'),
('30826','19','','10323','Get system.metrics','clickhouse.system.metrics','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Get metrics which can be calculated instantly, or have a current value format JSONEachRow','0','30d','0','',NULL,'','{$CLICKHOUSE.SCHEME}://{$CLICKHOUSE.HOST}:{$CLICKHOUSE.PORT}/','[{"query":"select metric, value from system.metrics format JSON"}]','','200','1','0','','X-ClickHouse-User: {$CLICKHOUSE.USER}\r\nX-ClickHouse-Key: {$CLICKHOUSE.PASSWORD}','0','0','0','0','0','0','0','2193464b67724392905deef21f2f7c20','0','2','0'),
('30827','19','','10323','Longest currently running query time','clickhouse.process.elapsed','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'Get longest running query.','0','30d','0','',NULL,'','{$CLICKHOUSE.SCHEME}://{$CLICKHOUSE.HOST}:{$CLICKHOUSE.PORT}/','[{"query":"SELECT max(elapsed) FROM system.processes"}]','','200','1','0','','X-ClickHouse-User: {$CLICKHOUSE.USER}\r\nX-ClickHouse-Key: {$CLICKHOUSE.PASSWORD}','0','0','0','0','0','0','0','4fb14efc757542c1b50605bdfb2e23cb','0','2','0'),
('30828','19','','10323','Get tables info','clickhouse.tables','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Get information about tables.','0','30d','0','',NULL,'','{$CLICKHOUSE.SCHEME}://{$CLICKHOUSE.HOST}:{$CLICKHOUSE.PORT}/','[{"query":"select database, table, sum(bytes) as bytes, count() as parts, sum(rows) as rows from system.parts where active = 1 group by database, table format JSON"}]','','200','1','0','','X-ClickHouse-User: {$CLICKHOUSE.USER}\r\nX-ClickHouse-Key: {$CLICKHOUSE.PASSWORD}','0','0','0','0','0','0','0','042f4b688cfe488fbd0e80f40f51ce78','0','2','0'),
('30829','19','','10323','Get system.settings','clickhouse.system.settings','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Get information about settings that are currently in use.','0','30d','0','',NULL,'','{$CLICKHOUSE.SCHEME}://{$CLICKHOUSE.HOST}:{$CLICKHOUSE.PORT}/','[{"query":"select name, value from system.settings format JSON"}]','','200','1','0','','X-ClickHouse-User: {$CLICKHOUSE.USER}\r\nX-ClickHouse-Key: {$CLICKHOUSE.PASSWORD}','0','0','0','0','0','0','0','88c843c6d4fd43c794d1447109146312','0','2','0'),
('30830','19','','10323','Get dictionaries info','clickhouse.dictionaries','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Get information about dictionaries.','0','30d','0','',NULL,'','{$CLICKHOUSE.SCHEME}://{$CLICKHOUSE.HOST}:{$CLICKHOUSE.PORT}/','[{"query":"SELECT * FROM system.dictionaries format JSON"}]','','200','1','0','','X-ClickHouse-User: {$CLICKHOUSE.USER}\r\nX-ClickHouse-Key: {$CLICKHOUSE.PASSWORD}','0','0','0','0','0','0','0','46d8ed7374274d71a06119f50463f26c','0','2','0'),
('30896','0','','10264','Get status','web.page.get["{$APACHE.STATUS.SCHEME}://{$APACHE.STATUS.HOST}:{$APACHE.STATUS.PORT}/{$APACHE.STATUS.PATH}"]','1m','1h','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Getting data from a machine-readable version of the Apache status page.\r\nFor more information see Apache Module [mod_status](https://httpd.apache.org/docs/current/mod/mod_status.html).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','115413a0f5ab4caba418ab841ad81eba','0','2','0'),
('30923','3','','10324','Service\'s TCP port state','net.tcp.service["{$ETCD.SCHEME}","{$ETCD.HOST}","{$ETCD.PORT}"]','1m','31d','365d','0','3','','','','',NULL,'29','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a0f94f429b99432e86d15ffa74d6eada','0','2','0'),
('30924','19','','10324','Node health','etcd.health','1m','31d','365d','0','3','','','','',NULL,'150','','','1','{$ETCD.USER}','{$ETCD.PASSWORD}','','','0',NULL,'','0','30d','0','',NULL,'','{$ETCD.SCHEME}://{$ETCD.HOST}:{$ETCD.PORT}/health','','','200','1','0','','','0','0','0','0','0','0','0','3fde4db8b9684ba4b56ba915e48957b5','0','2','0'),
('30925','19','','10324','Get node metrics','etcd.get_metrics','1m','0','0','0','4','','','','',NULL,NULL,'','','1','{$ETCD.USER}','{$ETCD.PASSWORD}','','','0',NULL,'','0','30d','0','',NULL,'','{$ETCD.SCHEME}://{$ETCD.HOST}:{$ETCD.PORT}/metrics','','','200','1','0','','','0','0','0','0','0','0','0','34ffab33275a400ab88e5217dee5ef96','0','2','0'),
('30926','19','','10324','Get version','etcd.get_version','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','{$ETCD.SCHEME}://{$ETCD.HOST}:{$ETCD.PORT}/version','','','200','1','0','','','0','0','0','0','0','0','0','fdf7593420ab42b2a5af8f8b8030b517','0','2','0'),
('30968','3','','10325','{$IIS.PORT} port ping','net.tcp.service[{$IIS.SERVICE},,{$IIS.PORT}]','1m','31d','365d','0','3','','','','',NULL,'30','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','96f2dd86997d4e259875b2fa9b1a3169','0','2','0'),
('30969','0','','10325','Total connection attempts','perf_counter_en["\\Web Service(_Total)\\Total Connection Attempts (all instances)"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The total number of connections to the Web or FTP service that have been attempted since service startup. The count is the total for all Web sites or FTP sites combined.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','805f7dca2ac74f5bbfb81c5e7bfa6e09','0','2','0'),
('30970','0','','10325','Method POST requests per second','perf_counter_en["\\Web Service(_Total)\\Post Requests/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Rate of HTTP requests using POST method. Generally used for forms or gateway requests. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5f1210173665453e84f8f330a8c15eea','0','2','0'),
('30971','0','','10325','Method PROPFIND requests per second','perf_counter_en["\\Web Service(_Total)\\Propfind Requests/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The rate of HTTP requests using the PROPFIND method made. Propfind requests retrieve property values on files and directories. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f197e93e03d04025bc855d4d77c35010','0','2','0'),
('30972','0','','10325','Method PROPPATCH requests per second','perf_counter_en["\\Web Service(_Total)\\Proppatch Requests/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The rate of HTTP requests using the PROPPATCH method made. Proppatch requests set property values on files and directories. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','55c71bab45b04a2ca2afb526bf7c3e7f','0','2','0'),
('30973','0','','10325','Method PUT requests per second','perf_counter_en["\\Web Service(_Total)\\Put Requests/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The rate of HTTP requests using the PUT method made. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d1d19cf6c920465184aa2b2a8b4439c9','0','2','0'),
('30974','0','','10325','Method MS-SEARCH requests per second','perf_counter_en["\\Web Service(_Total)\\Search Requests/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The rate of HTTP requests using the MS-SEARCH method made. Search requests are used to query the server to find resources that match a set of conditions provided by the client. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','20ae8a67912045dc9b69c83d68e5e8ea','0','2','0'),
('30975','0','','10325','Uptime','perf_counter_en["\\Web Service(_Total)\\Service Uptime"]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The service uptime expressed in seconds.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4aa9419482eb484a8fc1773bee8b2993','0','2','0'),
('30976','0','','10325','Method Total requests per second','perf_counter_en["\\Web Service(_Total)\\Total Method Requests/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The rate of all HTTP requests received. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','90eb19d7d37f439da2c78c44d85784ef','0','2','0'),
('30977','0','','10325','Method OPTIONS requests per second','perf_counter_en["\\Web Service(_Total)\\Options Requests/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The rate of HTTP requests using the OPTIONS method made. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','22ececa2db2d488587b1194883723ea6','0','2','0'),
('30978','0','','10325','Method TRACE requests per second','perf_counter_en["\\Web Service(_Total)\\Trace Requests/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The rate of HTTP requests using the TRACE method made. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c2ddd72243ba4a499a7a1e9ba6e4046c','0','2','0'),
('30979','0','','10325','Method TRACE requests per second','perf_counter_en["\\Web Service(_Total)\\Unlock Requests/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The rate of HTTP requests using the UNLOCK method made. Unlock requests are used to remove locks from files. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','05a19416695b436daf701d9750b015a8','0','2','0'),
('30980','0','','10325','Files cache hits percentage','perf_counter_en["\\Web Service Cache\\File Cache Hits %"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The ratio of user-mode file cache hits to total cache requests (since service startup). Note: This value might be low if the Kernel URI cache hits percentage is high.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1e4b39ec2cca49fb9fb5a306c2724568','0','2','0'),
('30981','0','','10325','File cache misses','perf_counter_en["\\Web Service Cache\\File Cache Misses"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The total number of unsuccessful lookups in the user-mode file cache since service startup.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d9c46d370afc496ba0a0ad0c141b4490','0','2','0'),
('30982','0','','10325','URIs cache hits percentage','perf_counter_en["\\Web Service Cache\\URI Cache Hits %"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The ratio of user-mode URI Cache Hits to total cache requests (since service startup)','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','566f0bea097e4b0bb7042e4f0302ff26','0','2','0'),
('30983','0','','10325','URI cache misses','perf_counter_en["\\Web Service Cache\\URI Cache Misses"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The total number of unsuccessful lookups in the user-mode URI cache since service startup.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ab1884be28b54ea7bb187bbe843bb6a7','0','2','0'),
('30984','0','','10325','World Wide Web Publishing Service (W3SVC) state','service.info[W3SVC]','1m','31d','365d','0','3','','','','',NULL,'46','','','0','','','','','0',NULL,'The World Wide Web Publishing Service (W3SVC) provides web connectivity and administration of websites through the IIS snap-in. If the World Wide Web Publishing Service stops, the operating system cannot serve any form of web request. This service was dependent on "Windows Process Activation Service".','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7d76ec3d35f6446c842595c4831fabf4','0','2','0'),
('30985','0','','10325','Method Total Other requests per second','perf_counter_en["\\Web Service(_Total)\\Other Request Methods/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Total Other Request Methods is the number of HTTP requests that are not OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, MOVE, COPY, MKCOL, PROPFIND, PROPPATCH, SEARCH, LOCK or UNLOCK methods (since service startup). Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1653ca4c0c6743f39d9b1e764022da7c','0','2','0'),
('30986','0','','10325','Not Found errors per second','perf_counter_en["\\Web Service(_Total)\\Not Found Errors/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The rate of errors due to requests that couldn\'t be satisfied by the server because the requested document could not be found. These are generally reported to the client with HTTP error code 404. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','11d9995d25114e4fad666a1b75734c01','0','2','0'),
('30987','0','','10325','Anonymous users per second','perf_counter_en["\\Web Service(_Total)\\Anonymous Users/sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The number of requests from users over an anonymous connection per second. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','50d8f5a08bbc494b8525f26eedbee781','0','2','0'),
('30988','0','','10325','Current connections','perf_counter_en["\\Web Service(_Total)\\Current Connections"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The number of active connections.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1baed2823f1a4d2ca618cac5ab8bbcbb','0','2','0'),
('30989','0','','10325','Bytes Received per second','perf_counter_en["\\Web Service(_Total)\\Bytes Received/sec", 60]','1m','31d','365d','0','0','','Bps','','',NULL,NULL,'','','0','','','','','0',NULL,'The average rate per minute at which data bytes are received by the service at the Application Layer. Does not include protocol headers or control bytes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ac80660edbb74c1fb4739368806900d5','0','2','0'),
('30990','0','','10325','Bytes Sent per second','perf_counter_en["\\Web Service(_Total)\\Bytes Sent/sec", 60]','1m','31d','365d','0','0','','Bps','','',NULL,NULL,'','','0','','','','','0',NULL,'The average rate per minute at which data bytes are sent by the service.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5a0648316a164446bbf605930469d4c4','0','2','0'),
('30991','0','','10325','Bytes Total per second','perf_counter_en["\\Web Service(_Total)\\Bytes Total/Sec", 60]','1m','31d','365d','0','0','','Bps','','',NULL,NULL,'','','0','','','','','0',NULL,'The average rate per minute of total bytes/sec transferred by the Web service (sum of bytes sent/sec and bytes received/sec).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f086d17b51254e16bd43b57b39dc000e','0','2','0'),
('30992','0','','10325','Method CGI requests per second','perf_counter_en["\\Web Service(_Total)\\CGI Requests/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The rate of CGI requests that are simultaneously being processed by the Web service. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b94dc0df81234c7d97197fe30875d5e9','0','2','0'),
('30993','0','','10325','Connection attempts per second','perf_counter_en["\\Web Service(_Total)\\Connection Attempts/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The average rate per minute that connections using the Web service are being attempted. The count is the average for all Web sites combined.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1e8244ebb5524c72af1d506df7bb2982','0','2','0'),
('30994','0','','10325','Method COPY requests per second','perf_counter_en["\\Web Service(_Total)\\Copy Requests/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The rate of HTTP requests made using the COPY method. Copy requests are used for copying files and directories. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2b4cb17b486643eda9a560b43af70d74','0','2','0'),
('30995','0','','10325','Method DELETE requests per second','perf_counter_en["\\Web Service(_Total)\\Delete Requests/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The rate of HTTP requests using the DELETE method made. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','350a6c7fac354570bbba04aa2fd6c98a','0','2','0'),
('30996','0','','10325','NonAnonymous users per second','perf_counter_en["\\Web Service(_Total)\\NonAnonymous Users/sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The number of requests from users over a non-anonymous connection per second. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d67523ef47464f8c9735d0a0359b5c77','0','2','0'),
('30997','0','','10325','Method GET requests per second','perf_counter_en["\\Web Service(_Total)\\Get Requests/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The rate of HTTP requests made using the GET method. GET requests are generally used for basic file retrievals or image maps, though they can be used with forms. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6ae641f632ae4422a6f71898078dc2ee','0','2','0'),
('30998','0','','10325','Method HEAD requests per second','perf_counter_en["\\Web Service(_Total)\\Head Requests/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The rate of HTTP requests using the HEAD method made. HEAD requests generally indicate a client is querying the state of a document they already have to see if it needs to be refreshed. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5e37ff2d4d1b4bf6bad855a3d09ec6c7','0','2','0'),
('30999','0','','10325','Method ISAPI requests per second','perf_counter_en["\\Web Service(_Total)\\ISAPI Extension Requests/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The rate of ISAPI Extension requests that are simultaneously being processed by the Web service. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','18217a40ddbc421fb2db1b19d1fb7d59','0','2','0'),
('31000','0','','10325','Locked errors per second','perf_counter_en["\\Web Service(_Total)\\Locked Errors/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The rate of errors due to requests that couldn\'t be satisfied by the server because the requested document was locked. These are generally reported as an HTTP 423 error code to the client. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b7634ae2a9d5454bbac631b55e896277','0','2','0'),
('31001','0','','10325','Method LOCK requests per second','perf_counter_en["\\Web Service(_Total)\\Lock Requests/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The rate of HTTP requests made using the LOCK method. Lock requests are used to lock a file for one user so that only that user can modify the file. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','069548a7c9e840bb8975f9b02b582c51','0','2','0'),
('31002','0','','10325','Method MKCOL requests per second','perf_counter_en["\\Web Service(_Total)\\Mkcol Requests/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The rate of HTTP requests using the MKCOL method made. Mkcol requests are used to create directories on the server. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','02c1fe0d15d94744959e4b53b21309fe','0','2','0'),
('31003','0','','10325','Method MOVE requests per second','perf_counter_en["\\Web Service(_Total)\\Move Requests/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The rate of HTTP requests using the MOVE method made. Move requests are used for moving files and directories. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6395e8edb1394396bd7602f621cf4b00','0','2','0'),
('31004','0','','10325','Windows Process Activation Service (WAS) state','service.info[WAS]','1m','31d','365d','0','3','','','','',NULL,'46','','','0','','','','','0',NULL,'Windows Process Activation Service (WAS) is a tool for managing worker processes that contain applications that host Windows Communication Foundation (WCF) services. Worker processes handle requests that are sent to a Web Server for specific application pools. Each application pool sets boundaries for the applications it contains.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','38858eb3cc2f4580a0a3c56c11fdeba5','0','2','0'),
('31010','3','','10326','{$IIS.PORT} port ping','net.tcp.service[{$IIS.SERVICE},,{$IIS.PORT}]','1m','31d','365d','0','3','','','','',NULL,'31','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8fa6b28b8226408db07a2317a99581a5','0','2','0'),
('31011','7','','10326','Total connection attempts','perf_counter_en["\\Web Service(_Total)\\Total Connection Attempts (all instances)"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The total number of connections to the Web or FTP service that have been attempted since service startup. The count is the total for all Web sites or FTP sites combined.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f181123b522946018d9ac90599693cfe','0','2','0'),
('31012','7','','10326','Method POST requests per second','perf_counter_en["\\Web Service(_Total)\\Post Requests/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Rate of HTTP requests using POST method. Generally used for forms or gateway requests. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','222bb49332214781bc48a0eb610035c2','0','2','0'),
('31013','7','','10326','Method PROPFIND requests per second','perf_counter_en["\\Web Service(_Total)\\Propfind Requests/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The rate of HTTP requests using the PROPFIND method made. Propfind requests retrieve property values on files and directories. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','011fff85fb0440b78ca7857454577c08','0','2','0'),
('31014','7','','10326','Method PROPPATCH requests per second','perf_counter_en["\\Web Service(_Total)\\Proppatch Requests/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The rate of HTTP requests using the PROPPATCH method made. Proppatch requests set property values on files and directories. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3b8a1eea86034a268ac37031c08d3740','0','2','0'),
('31015','7','','10326','Method PUT requests per second','perf_counter_en["\\Web Service(_Total)\\Put Requests/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The rate of HTTP requests using the PUT method made. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c4615d7155d14f98b76705df1a5778e4','0','2','0'),
('31016','7','','10326','Method MS-SEARCH requests per second','perf_counter_en["\\Web Service(_Total)\\Search Requests/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The rate of HTTP requests using the MS-SEARCH method made. Search requests are used to query the server to find resources that match a set of conditions provided by the client. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a1cfef3952c346ccb39e85038e49ae63','0','2','0'),
('31017','7','','10326','Uptime','perf_counter_en["\\Web Service(_Total)\\Service Uptime"]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The service uptime expressed in seconds.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d53040c921324b2195045dacb3738d6f','0','2','0'),
('31018','7','','10326','Method Total requests per second','perf_counter_en["\\Web Service(_Total)\\Total Method Requests/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The rate of all HTTP requests received. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ff70ce9edf1c45ba8263d33847992baf','0','2','0'),
('31019','7','','10326','Method OPTIONS requests per second','perf_counter_en["\\Web Service(_Total)\\Options Requests/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The rate of HTTP requests using the OPTIONS method made. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','dcb0338dc59d4c95b9f712fed84a3aa2','0','2','0'),
('31020','7','','10326','Method TRACE requests per second','perf_counter_en["\\Web Service(_Total)\\Trace Requests/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The rate of HTTP requests using the TRACE method made. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fff9e968d5474adfbfd4ae9e19d836d9','0','2','0'),
('31021','7','','10326','Method TRACE requests per second','perf_counter_en["\\Web Service(_Total)\\Unlock Requests/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The rate of HTTP requests using the UNLOCK method made. Unlock requests are used to remove locks from files. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0b6b770a6b014b8c857277e1d9cf6ffe','0','2','0'),
('31022','7','','10326','Files cache hits percentage','perf_counter_en["\\Web Service Cache\\File Cache Hits %"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The ratio of user-mode file cache hits to total cache requests (since service startup). Note: This value might be low if the Kernel URI cache hits percentage is high.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5ef9aec68d5b4fe79b17453ab8988b59','0','2','0'),
('31023','7','','10326','File cache misses','perf_counter_en["\\Web Service Cache\\File Cache Misses"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The total number of unsuccessful lookups in the user-mode file cache since service startup.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a041713a95e746f5b4797a7aecaed9a5','0','2','0'),
('31024','7','','10326','URIs cache hits percentage','perf_counter_en["\\Web Service Cache\\URI Cache Hits %"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The ratio of user-mode URI Cache Hits to total cache requests (since service startup)','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5488881cba254b6b8f49ebacae2bc4c4','0','2','0'),
('31025','7','','10326','URI cache misses','perf_counter_en["\\Web Service Cache\\URI Cache Misses"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The total number of unsuccessful lookups in the user-mode URI cache since service startup.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ffd18aef119f4c7c845c6a3e76fb747d','0','2','0'),
('31026','7','','10326','World Wide Web Publishing Service (W3SVC) state','service.info[W3SVC]','1m','31d','365d','0','3','','','','',NULL,'47','','','0','','','','','0',NULL,'The World Wide Web Publishing Service (W3SVC) provides web connectivity and administration of websites through the IIS snap-in. If the World Wide Web Publishing Service stops, the operating system cannot serve any form of web request. This service was dependent on "Windows Process Activation Service".','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','31d4f21ce4c6412b912ca65fe9aee83c','0','2','0'),
('31027','7','','10326','Method Total Other requests per second','perf_counter_en["\\Web Service(_Total)\\Other Request Methods/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Total Other Request Methods is the number of HTTP requests that are not OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, MOVE, COPY, MKCOL, PROPFIND, PROPPATCH, SEARCH, LOCK or UNLOCK methods (since service startup). Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','eb6a098fef824b2e9abe80b4331190f4','0','2','0'),
('31028','7','','10326','Not Found errors per second','perf_counter_en["\\Web Service(_Total)\\Not Found Errors/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The rate of errors due to requests that couldn\'t be satisfied by the server because the requested document could not be found. These are generally reported to the client with HTTP error code 404. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','13e65fdff0704e6f87133b8efe34704f','0','2','0'),
('31029','7','','10326','Anonymous users per second','perf_counter_en["\\Web Service(_Total)\\Anonymous Users/sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The number of requests from users over an anonymous connection per second. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e70f872ed9184757b8a62c732658faa5','0','2','0'),
('31030','7','','10326','Current connections','perf_counter_en["\\Web Service(_Total)\\Current Connections"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The number of active connections.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8b316e2896f041dca9b4adc601093b5c','0','2','0'),
('31031','7','','10326','Bytes Received per second','perf_counter_en["\\Web Service(_Total)\\Bytes Received/sec", 60]','1m','31d','365d','0','0','','Bps','','',NULL,NULL,'','','0','','','','','0',NULL,'The average rate per minute at which data bytes are received by the service at the Application Layer. Does not include protocol headers or control bytes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','64816de795864c8fae879e670dfe9e93','0','2','0'),
('31032','7','','10326','Bytes Sent per second','perf_counter_en["\\Web Service(_Total)\\Bytes Sent/sec", 60]','1m','31d','365d','0','0','','Bps','','',NULL,NULL,'','','0','','','','','0',NULL,'The average rate per minute at which data bytes are sent by the service.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1b0b636e0bbd4948b3047071a4b964fc','0','2','0'),
('31033','7','','10326','Bytes Total per second','perf_counter_en["\\Web Service(_Total)\\Bytes Total/Sec", 60]','1m','31d','365d','0','0','','Bps','','',NULL,NULL,'','','0','','','','','0',NULL,'The average rate per minute of total bytes/sec transferred by the Web service (sum of bytes sent/sec and bytes received/sec).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5abf01f6e7a7419d9a1de9803ccf1060','0','2','0'),
('31034','7','','10326','Method CGI requests per second','perf_counter_en["\\Web Service(_Total)\\CGI Requests/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The rate of CGI requests that are simultaneously being processed by the Web service. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','37b23949ca94466eb552c6fd8239b650','0','2','0'),
('31035','7','','10326','Connection attempts per second','perf_counter_en["\\Web Service(_Total)\\Connection Attempts/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The average rate per minute that connections using the Web service are being attempted. The count is the average for all Web sites combined.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d32eb1398fa7454eb91329aa39d1e90e','0','2','0'),
('31036','7','','10326','Method COPY requests per second','perf_counter_en["\\Web Service(_Total)\\Copy Requests/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The rate of HTTP requests made using the COPY method. Copy requests are used for copying files and directories. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','182bceaa31194bdd8c906cf226039b0b','0','2','0'),
('31037','7','','10326','Method DELETE requests per second','perf_counter_en["\\Web Service(_Total)\\Delete Requests/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The rate of HTTP requests using the DELETE method made. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7da6cf8a65b94b6f8d89dc53c7de38eb','0','2','0'),
('31038','7','','10326','NonAnonymous users per second','perf_counter_en["\\Web Service(_Total)\\NonAnonymous Users/sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The number of requests from users over a non-anonymous connection per second. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6dfe3dbde2544c5080c3845d54c83219','0','2','0'),
('31039','7','','10326','Method GET requests per second','perf_counter_en["\\Web Service(_Total)\\Get Requests/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The rate of HTTP requests made using the GET method. GET requests are generally used for basic file retrievals or image maps, though they can be used with forms. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5381bfc071524f32bb5290379d2e978d','0','2','0'),
('31040','7','','10326','Method HEAD requests per second','perf_counter_en["\\Web Service(_Total)\\Head Requests/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The rate of HTTP requests using the HEAD method made. HEAD requests generally indicate a client is querying the state of a document they already have to see if it needs to be refreshed. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','414b17c9eb11460cb55d35aeb7b8c071','0','2','0'),
('31041','7','','10326','Method ISAPI requests per second','perf_counter_en["\\Web Service(_Total)\\ISAPI Extension Requests/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The rate of ISAPI Extension requests that are simultaneously being processed by the Web service. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d5b38b5472214d629e832d2709c64b3c','0','2','0'),
('31042','7','','10326','Locked errors per second','perf_counter_en["\\Web Service(_Total)\\Locked Errors/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The rate of errors due to requests that couldn\'t be satisfied by the server because the requested document was locked. These are generally reported as an HTTP 423 error code to the client. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','74fed9efa0ae4301aab2f73d76fd8357','0','2','0'),
('31043','7','','10326','Method LOCK requests per second','perf_counter_en["\\Web Service(_Total)\\Lock Requests/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The rate of HTTP requests made using the LOCK method. Lock requests are used to lock a file for one user so that only that user can modify the file. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cdf63d485cd1419385caabc050eb533c','0','2','0'),
('31044','7','','10326','Method MKCOL requests per second','perf_counter_en["\\Web Service(_Total)\\Mkcol Requests/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The rate of HTTP requests using the MKCOL method made. Mkcol requests are used to create directories on the server. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','edbe50383897434cb33378b973628061','0','2','0'),
('31045','7','','10326','Method MOVE requests per second','perf_counter_en["\\Web Service(_Total)\\Move Requests/Sec", 60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The rate of HTTP requests using the MOVE method made. Move requests are used for moving files and directories. Average per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','51a74530b894484a9ba101eb1176a982','0','2','0'),
('31046','7','','10326','Windows Process Activation Service (WAS) state','service.info[WAS]','1m','31d','365d','0','3','','','','',NULL,'47','','','0','','','','','0',NULL,'Windows Process Activation Service (WAS) is a tool for managing worker processes that contain applications that host Windows Communication Foundation (WCF) services. Worker processes handle requests that are sent to a Web Server for specific application pools. Each application pool sets boundaries for the applications it contains.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7f016ce3ab3941b78741dfb72c6d7693','0','2','0'),
('31054','3','','10323','Check port availability','net.tcp.service[{$CLICKHOUSE.SCHEME},"{$CLICKHOUSE.HOST}","{$CLICKHOUSE.PORT}"]','1m','31d','365d','0','3','','','','',NULL,'28','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','68d1e19a6ec2401ba0dd509de7df2812','0','2','0'),
('31055','11','','10327','Get performance counters','db.odbc.get[get_status_variables,"{$MSSQL.DSN}"]','0;m0-59','0','0','0','4','','','','',NULL,NULL,'DECLARE @SQLNAME NVARCHAR(22)\r\nSET @SQLNAME = CASE WHEN @@SERVICENAME = \'MSSQLSERVER\' THEN \'SQLServer\' ELSE \'MSSQL$\' + @@SERVICENAME END\r\nSELECT object_name,\r\n counter_name,\r\n instance_name,\r\n cntr_value\r\nFROM sys.dm_os_performance_counters\r\nUNION SELECT @SQLNAME AS object_name,\r\n \'Version\' AS counter_name,\r\n @@version AS instance_name,\r\n 0 AS cntr_value\r\nUNION SELECT @SQLNAME AS object_name,\r\n \'Uptime\' AS counter_name,\r\n \'\' AS instance_name,\r\n DATEDIFF(second, sqlserver_start_time, GETDATE()) AS cntr_value\r\nFROM sys.dm_os_sys_info\r\nUNION SELECT @SQLNAME + \':Databases\' AS object_name,\r\n \'State\' AS counter_name,\r\n name AS instance_name,\r\n state AS cntr_value\r\nFROM sys.databases\r\nUNION SELECT a.object_name,\r\n \'BufferCacheHitRatio\' AS counter_name,\r\n \'\' AS instance_name,\r\n cast(a.cntr_value * ISNULL((100.0 / NULLIF(b.cntr_value,0)),0) AS dec(3, 0)) AS cntr_value\r\nFROM sys.dm_os_performance_counters a\r\nJOIN (\r\n SELECT cntr_value,\r\n OBJECT_NAME\r\n FROM sys.dm_os_performance_counters\r\n WHERE counter_name = \'Buffer cache hit ratio base\'\r\n AND OBJECT_NAME = @SQLNAME + \':Buffer Manager\'\r\n) b\r\n ON a.OBJECT_NAME = b.OBJECT_NAME\r\nWHERE a.counter_name = \'Buffer cache hit ratio\'\r\n AND a.OBJECT_NAME = @SQLNAME + \':Buffer Manager\'\r\nUNION SELECT a.object_name,\r\n \'WorktablesFromCacheRatio\' AS counter_name,\r\n \'\' AS instance_name,\r\n cast(a.cntr_value * ISNULL((100.0 / NULLIF(b.cntr_value,0)),0) AS dec(3, 0)) AS cntr_value\r\nFROM sys.dm_os_performance_counters a\r\nJOIN (\r\n SELECT cntr_value,\r\n OBJECT_NAME\r\n FROM sys.dm_os_performance_counters\r\n WHERE counter_name = \'Worktables From Cache Base\'\r\n AND OBJECT_NAME = @SQLNAME + \':Access Methods\'\r\n) b\r\n ON a.OBJECT_NAME = b.OBJECT_NAME\r\nWHERE a.counter_name = \'Worktables From Cache Ratio\'\r\n AND a.OBJECT_NAME = @SQLNAME + \':Access Methods\'\r\nUNION SELECT a.object_name,\r\n \'CacheHitRatio\' AS counter_name,\r\n \'_Total\' AS instance_name,\r\n cast(a.cntr_value * ISNULL((100.0 / NULLIF(b.cntr_value,0)),0) AS dec(3, 0)) AS cntr_value\r\nFROM sys.dm_os_performance_counters a\r\nJOIN (\r\n SELECT cntr_value,\r\n OBJECT_NAME\r\n FROM sys.dm_os_performance_counters\r\n WHERE counter_name = \'Cache Hit Ratio base\'\r\n AND OBJECT_NAME = @SQLNAME + \':Plan Cache\'\r\n AND instance_name = \'_Total\'\r\n) b\r\n ON a.OBJECT_NAME = b.OBJECT_NAME\r\nWHERE a.counter_name = \'Cache Hit Ratio\'\r\n AND a.OBJECT_NAME = @SQLNAME + \':Plan Cache\'\r\n AND instance_name = \'_Total\'','','0','{$MSSQL.USER}','{$MSSQL.PASSWORD}','','','0',NULL,'The item gets server global status information.','0','30d','0','',NULL,'30s','','','','200','1','0','','','0','0','0','0','0','0','0','ff07b83d161c4e0fbddf8c2e2c282258','0','2','0'),
('31056','15','','10327','Total average wait time','mssql.average_wait_time','0;m0-59s3','31d','365d','0','0','','ms','','',NULL,NULL,'(last(//mssql.average_wait_time_raw) - last(//mssql.average_wait_time_raw,#2)) /\r\n(last(//mssql.average_wait_time_base) - last(//mssql.average_wait_time_base,#2) +\r\n(last(//mssql.average_wait_time_base) - last(//mssql.average_wait_time_base,#2)=0))','','0','','','','','0',NULL,'The average wait time, in milliseconds, for each lock request that had to wait.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2915866b5891480aafd73463aca88a21','0','2','0'),
('31057','3','','10327','Service\'s TCP port state','net.tcp.service[tcp,{$MSSQL.HOST},{$MSSQL.PORT}]','30s','31d','365d','0','3','','','','',NULL,'32','','','0','','','','','0',NULL,'Test the availability of MSSQL Server on a TCP port.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c0302965c2574b43955a1d37a8fce9eb','0','2','0'),
('31058','15','','10327','Average latch wait time','mssql.average_latch_wait_time','0;m0-59s3','31d','365d','0','0','','ms','','',NULL,NULL,'(last(//mssql.average_latch_wait_time_raw) - last(//mssql.average_latch_wait_time_raw,#2)) /\r\n(last(//mssql.average_latch_wait_time_base) - last(//mssql.average_latch_wait_time_base,#2) +\r\n(last(//mssql.average_latch_wait_time_base) - last(//mssql.average_latch_wait_time_base,#2)=0))','','0','','','','','0',NULL,'Average latch wait time (in milliseconds) for latch requests that had to wait.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1d49af2907d541719e4482439de3ef40','0','2','0'),
('31183','0','','10328','Service\'s TCP port state','net.tcp.service[tcp,{$ORACLE.HOST},{$ORACLE.PORT}]','30s','31d','365d','0','3','','','','',NULL,'33','','','0','','','','','0',NULL,'Checks the availability of Oracle on the TCP port.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7ee99dfbd8dd4048bc2867aaa2fc335e','0','2','0'),
('31184','0','','10328','Number of LISTENER processes','proc.num[,,,"tnslsnr LISTENER"]','30s','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The number of running listener processes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bf89a6ced768432a9cc3c27e1e3159d0','0','2','0'),
('31185','11','','10328','Get system metrics','db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]','0;m0-59','0','0','0','4','','','','',NULL,NULL,'SELECT \'SYS::\' || METRIC_NAME AS METRIC, ROUND(VALUE,3) as VALUE\r\n FROM V$SYSMETRIC WHERE GROUP_ID = 2\r\nUNION\r\n SELECT \'SYSPARAM::\' || INITCAP(NAME) AS METRIC, to_number(VALUE)\r\n FROM V$SYSTEM_PARAMETER WHERE NAME IN (\'sessions\', \'processes\', \'db_files\')\r\nUNION\r\n SELECT \'SESSION::Long time locked\' ,count(*) FROM V$SESSION s WHERE s.BLOCKING_SESSION IS NOT NULL AND s.BLOCKING_SESSION_STATUS=\'VALID\' AND s.SECONDS_IN_WAIT > {$ORACLE.SESSION.LOCK.MAX.TIME}\r\nUNION\r\nSELECT \'SESSION::Lock rate\' ,(cnt_block / cnt_all)* 100 pct\r\nFROM ( SELECT COUNT(*) cnt_block FROM v$session WHERE blocking_session IS NOT NULL), ( SELECT COUNT(*) cnt_all FROM v$session)\r\nUNION\r\n SELECT \'SESSION::Long time locked\' ,count(*) FROM V$SESSION s WHERE s.BLOCKING_SESSION IS NOT NULL AND s.BLOCKING_SESSION_STATUS=\'VALID\' AND s.SECONDS_IN_WAIT > {$ORACLE.SESSION.LOCK.MAX.TIME}\r\nUNION\r\n SELECT \'SESSION::Total\', COUNT(*) AS VALUE FROM V$SESSION\r\nUNION\r\nSELECT \'SESSION::Concurrency rate\', NVL(ROUND(SUM(duty_act.cnt*100 / num_cores.val)), 0)\r\nFROM\r\n( SELECT DECODE(session_state, \'ON CPU\', \'CPU\', wait_class) wait_class, ROUND(COUNT(*)/(60 * 15), 1) cnt\r\nFROM v$active_session_history sh\r\nWHERE sh.sample_time >= SYSDATE - 15 / 1440 AND DECODE(session_state, \'ON CPU\', \'CPU\', wait_class) IN(\'Concurrency\')\r\nGROUP BY DECODE(session_state, \'ON CPU\', \'CPU\', wait_class)) duty_act,\r\n( SELECT SUM(value) val FROM v$osstat WHERE stat_name = \'NUM_CPU_CORES\') num_cores\r\nUNION\r\n SELECT \'PGA::\' || INITCAP(NAME), VALUE FROM V$PGASTAT\r\nUNION\r\n SELECT \'FRA::Space Limit\' AS METRIC, space_limit AS VALUE FROM V$RECOVERY_FILE_DEST\r\nUNION\r\n SELECT \'FRA::Space Used\', space_used AS VALUE FROM V$RECOVERY_FILE_DEST\r\nUNION\r\n SELECT \'FRA::Space Reclaimable\', space_reclaimable AS VALUE FROM V$RECOVERY_FILE_DEST\r\nUNION\r\n SELECT \'FRA::Number Of Files\', number_of_files AS VALUE FROM V$RECOVERY_FILE_DEST\r\nUNION\r\n SELECT \'FRA::Usable Pct\', DECODE(space_limit, 0, 0,(100-(100 *(space_used-space_reclaimable)/ space_limit))) AS VALUE FROM V$RECOVERY_FILE_DEST\r\nUNION\r\n SELECT \'FRA::Restore Point\', COUNT(*) AS VALUE FROM V$RESTORE_POINT\r\nUNION\r\n SELECT \'PROC::Procnum\', COUNT(*) FROM v$process\r\nUNION\r\n SELECT \'DATAFILE::Count\', COUNT(*) FROM v$datafile\r\nUNION\r\n SELECT \'SGA::\' || INITCAP(pool), SUM(bytes) FROM V$SGASTAT\r\n WHERE pool IN ( \'java pool\', \'large pool\' ) GROUP BY pool\r\nUNION\r\n SELECT \'SGA::Shared Pool\', SUM(bytes) FROM V$SGASTAT\r\n WHERE pool = \'shared pool\' AND name NOT IN (\'library cache\', \'dictionary cache\', \'free memory\', \'sql area\')\r\nUNION\r\n SELECT \'SGA::\' || INITCAP(name), bytes FROM V$SGASTAT\r\n WHERE pool IS NULL AND name IN (\'log_buffer\', \'fixed_sga\')\r\nUNION\r\n SELECT \'SGA::Buffer_Cache\', SUM(bytes) FROM V$SGASTAT\r\n WHERE pool IS NULL AND name IN (\'buffer_cache\', \'db_block_buffers\')\r\nUNION\r\n SELECT \'REDO::Available\', count(*) from v$log t where t.status in (\'INACTIVE\', \'UNUSED\')\r\nUNION\r\n SELECT \'USER::Expire password\', ROUND(DECODE(SIGN(NVL(u.expiry_date, SYSDATE + 999) - SYSDATE),-1, 0, NVL(u.expiry_date, SYSDATE + 999) - SYSDATE)) exp_passwd_days_before\r\nFROM dba_users u WHERE username = UPPER(\'{$ORACLE.USER}\');','','0','{$ORACLE.USER}','{$ORACLE.PASSWORD}','','','0',NULL,'Gets the values of the system metrics.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3839683749974cdeafd9178bdccb38d6','0','2','0'),
('31188','11','','10328','Get instance state','db.odbc.get[get_instance_state,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]','1m','0','0','0','4','','','','',NULL,NULL,'SELECT\r\nINSTANCE_NAME,\r\nHOST_NAME,\r\nVERSION || \'-\' || EDITION AS VERSION,\r\nfloor((SYSDATE - startup_time)*60*60*24) AS UPTIME,\r\ndecode(status,\'STARTED\',1,\'MOUNTED\',2,\'OPEN\',3,\'OPEN MIGRATE\',4, 0) AS STATUS,\r\ndecode(archiver,\'STOPPED\',1,\'STARTED\',2,\'FAILED\',3, 0) AS ARCHIVER,\r\ndecode(instance_role,\'PRIMARY_INSTANCE\',1,\'SECONDARY_INSTANCE\',2, 0) AS INSTANCE_ROLE\r\nFROM v$instance;','','0','{$ORACLE.USER}','{$ORACLE.PASSWORD}','','','0',NULL,'Gets the state of the current instance.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','dde19b79507648bd80a82a0575bf8671','0','2','0'),
('31274','0','','10329','Get bgwriter','pgsql.bgwriter["{$PG.CONNSTRING.AGENT2}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Collect all metrics from pg_stat_bgwriter:\r\nhttps://www.postgresql.org/docs/current/monitoring-stats.html#PG-STAT-BGWRITER-VIEW','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6020e17c25104cbfba182e9cddfe6336','0','2','0'),
('31275','0','','10329','Replication: Lag in bytes','pgsql.replication.lag.b["{$PG.CONNSTRING.AGENT2}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'Replication lag with master, in bytes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','da9ce769f9444a3f9600ce64c4ab2857','0','2','0'),
('31276','0','','10329','Get connections sum','pgsql.connections["{$PG.CONNSTRING.AGENT2}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Collect all metrics from pg_stat_activity:\r\nhttps://www.postgresql.org/docs/current/monitoring-stats.html#PG-STAT-ACTIVITY-VIEW','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e926ecd967f342bf90e9923825147d64','0','2','0'),
('31277','0','','10329','Get dbstat sum','pgsql.dbstat.sum["{$PG.CONNSTRING.AGENT2}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Collect all metrics from pg_stat_database as sums for all databases:\r\nhttps://www.postgresql.org/docs/current/monitoring-stats.html#PG-STAT-DATABASE-VIEW','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ddddde3084d54f55838b970f44290523','0','2','0'),
('31279','0','','10329','Get dbstat','pgsql.dbstat["{$PG.CONNSTRING.AGENT2}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Collect all metrics from pg_stat_database per database:\r\nhttps://www.postgresql.org/docs/current/monitoring-stats.html#PG-STAT-DATABASE-VIEW','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3be06ec14cba44d0892f3271a599c473','0','2','0'),
('31280','0','','10329','Get locks','pgsql.locks["{$PG.CONNSTRING.AGENT2}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Collect all metrics from pg_locks per database:\r\nhttps://www.postgresql.org/docs/current/explicit-locking.html#LOCKING-TABLES','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7112eeb300c14d959c79715462bf9563','0','2','0'),
('31282','0','','10329','Ping','pgsql.ping["{$PG.CONNSTRING.AGENT2}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','31d','365d','0','3','','','','',NULL,'1107','','','0','','','','','0',NULL,'Used to test a connection to see if it is alive. It is set to 0 if the query is unsuccessful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','56323e572fa443228987c62039153825','0','2','0'),
('31283','0','','10329','Replication: Standby count','pgsql.replication.count["{$PG.CONNSTRING.AGENT2}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Number of standby servers.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a171db459d6144e4ad294579fb8dc56d','0','2','0'),
('31284','0','','10329','Replication: Lag in seconds','pgsql.replication.lag.sec["{$PG.CONNSTRING.AGENT2}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','31d','365d','0','3','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'Replication lag with master, in seconds.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5a9eb8ee4a484911903688e620eb618b','0','2','0'),
('31285','0','','10329','Replication: Recovery role','pgsql.replication.recovery_role["{$PG.CONNSTRING.AGENT2}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','31d','365d','0','3','','','','',NULL,'123','','','0','','','','','0',NULL,'Replication role: 1 — recovery is still in progress (standby mode), 0 — master mode.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4085b836bf614f3d910818074c386845','0','2','0'),
('31286','0','','10329','Replication: Status','pgsql.replication.status["{$PG.CONNSTRING.AGENT2}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','31d','365d','0','3','','','','',NULL,'125','','','0','','','','','0',NULL,'Replication status: 0 — streaming is down, 1 — streaming is up, 2 — master mode.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3c83904cbad74ff7a0d10136a233e6c6','0','2','0'),
('31287','0','','10329','Uptime','pgsql.uptime["{$PG.CONNSTRING.AGENT2}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','31d','365d','0','0','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'Time since the server started.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','efa946a67e5844ecb905c68a2a6b85bb','0','2','0'),
('31288','0','','10329','Count of autovacuum workers','pgsql.autovacuum.count["{$PG.CONNSTRING.AGENT2}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Number of autovacuum workers.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d9169b4b31554063b9d01d0d27b4beee','0','2','0'),
('31289','0','','10329','Get archive','pgsql.archive["{$PG.CONNSTRING.AGENT2}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Collect archive status metrics.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e9f4284fd3a1459e9c519dbdd8ee3425','0','2','0'),
('31290','0','','10329','Get WAL','pgsql.wal.stat["{$PG.CONNSTRING.AGENT2}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','5m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Collect write-ahead log (WAL) metrics.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c3d96741af454f6b9a3a49b6117c31be','0','2','0'),
('31499','16','','10169','ClassLoading: Loaded class count','jmx["java.lang:type=ClassLoading","LoadedClassCount"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'Displays number of classes that are currently loaded in the Java virtual machine.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d16a651b35234011876b4f0c98126988','0','2','0'),
('31516','16','','10169','OperatingSystem: File descriptors maximum count','jmx["java.lang:type=OperatingSystem","MaxFileDescriptorCount"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'This is the number of file descriptors we can have opened in the same process, as determined by the operating system. You can never have more file descriptors than this number.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4c847c1239654be7b4f4d03fbb45ea4f','0','2','0'),
('31517','16','','10169','OperatingSystem: File descriptors opened','jmx["java.lang:type=OperatingSystem","OpenFileDescriptorCount"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'This is the number of opened file descriptors at the moment, if this reaches the MaxFileDescriptorCount, the application will throw an IOException: Too many open files. This could mean you are opening file descriptors and never closing them.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f72ee698db964f3c9ce84bbb4a1274d7','0','2','0'),
('31518','16','','10169','OperatingSystem: Process CPU Load','jmx["java.lang:type=OperatingSystem","ProcessCpuLoad"]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'ProcessCpuLoad represents the CPU load in this process.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3c252493c9304aabbb2930b9a82a1cbf','0','2','0'),
('31519','16','','10169','Runtime: JVM uptime','jmx["java.lang:type=Runtime","Uptime"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','00007954da00442b9631e15995ef6cab','0','2','0'),
('31520','16','','10169','Runtime: JVM name','jmx["java.lang:type=Runtime","VmName"]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e824c36de524425eaac253bcf3a1f3ec','0','2','0'),
('31521','16','','10169','Runtime: JVM version','jmx["java.lang:type=Runtime","VmVersion"]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a8675d659349414fa10cc11a1cd4ddd7','0','2','0'),
('31522','16','','10169','Threading: Daemon thread count','jmx["java.lang:type=Threading","DaemonThreadCount"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'Number of daemon threads running.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f2f0836103ea4358a740abc0010336ca','0','2','0'),
('31523','16','','10169','Threading: Peak thread count','jmx["java.lang:type=Threading","PeakThreadCount"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'Maximum number of threads being executed at the same time since the JVM was started or the peak was reset.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1793243b7ed147f1a182876fda905ebc','0','2','0'),
('31524','16','','10169','Threading: Thread count','jmx["java.lang:type=Threading","ThreadCount"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'The number of threads running at the current moment.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ca198e0473384025aecbc16913800c0c','0','2','0'),
('31527','16','','10169','ClassLoading: Total loaded class count','jmx["java.lang:type=ClassLoading","TotalLoadedClassCount"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'Displays the total number of classes that have been loaded since the Java virtual machine has started execution.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fc79c5ac074f4266a88d5c239fa0fb70','0','2','0'),
('31529','16','','10169','ClassLoading: Unloaded class count','jmx["java.lang:type=ClassLoading","UnloadedClassCount"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'Displays the total number of classes that have been loaded since the Java virtual machine has started execution.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b7620bdebd044fb1b1d2cb293ea8912c','0','2','0'),
('31530','16','','10169','Compilation: Name of the current JIT compiler','jmx["java.lang:type=Compilation","Name"]','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'Displays the total number of classes unloaded since the Java virtual machine has started execution.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0d6880c07fcd42bebddc41f5f2eb7bdd','0','2','0'),
('31531','16','','10169','Compilation: Accumulated time spent','jmx["java.lang:type=Compilation","TotalCompilationTime"]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'Displays the approximate accumulated elapsed time spent in compilation, in seconds.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c097ea2de6034d1d94f528533562b896','0','2','0'),
('31544','16','','10169','Memory: Heap memory committed','jmx["java.lang:type=Memory","HeapMemoryUsage.committed"]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'Current heap memory allocated. This amount of memory is guaranteed for the Java virtual machine to use.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d98a8d00639742f4b62a29e0c7394d61','0','2','0'),
('31545','16','','10169','Memory: Heap memory maximum size','jmx["java.lang:type=Memory","HeapMemoryUsage.max"]','1m','31d','365d','0','0','','B','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'Maximum amount of heap that can be used for memory management. This amount of memory is not guaranteed to be available if it is greater than the amount of committed memory. The Java virtual machine may fail to allocate memory even if the amount of used memory does not exceed this maximum size.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e757e0d3d72548df97066632448dd18c','0','2','0'),
('31546','16','','10169','Memory: Heap memory used','jmx["java.lang:type=Memory","HeapMemoryUsage.used"]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'Current memory usage outside the heap.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0c24cd559cd74ddb9ff0b167a3d37c23','0','2','0'),
('31547','16','','10169','Memory: Non-Heap memory committed','jmx["java.lang:type=Memory","NonHeapMemoryUsage.committed"]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'Current memory allocated outside the heap. This amount of memory is guaranteed for the Java virtual machine to use.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','50bb1ecb0a2141bbba128dfc842a1e34','0','2','0'),
('31548','16','','10169','Memory: Non-Heap memory maximum size','jmx["java.lang:type=Memory","NonHeapMemoryUsage.max"]','1m','31d','365d','0','0','','B','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'Maximum amount of non-heap memory that can be used for memory management. This amount of memory is not guaranteed to be available if it is greater than the amount of committed memory. The Java virtual machine may fail to allocate memory even if the amount of used memory does not exceed this maximum size.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0c6301dfec1c4e6c8ab26091e9372e91','0','2','0'),
('31549','16','','10169','Memory: Non-Heap memory used','jmx["java.lang:type=Memory","NonHeapMemoryUsage.used"]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'Current memory usage outside the heap','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','58d2bb1791994cbcacb75d029ed8a21b','0','2','0'),
('31550','16','','10169','Memory: Object pending finalization count','jmx["java.lang:type=Memory","ObjectPendingFinalizationCount"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'The approximate number of objects for which finalization is pending.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e309472afb794a2c9cd581275931db79','0','2','0'),
('31553','16','','10169','Threading: Total started thread count','jmx["java.lang:type=Threading","TotalStartedThreadCount"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'The number of threads started since the JVM was launched.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9db83653dfa6449c95ffec2b0e6c8b5d','0','2','0'),
('31554','15','','10327','Percent of ad hoc queries running','mssql.percent_of_adhoc_queries','0;m0-59s3','31d','365d','0','0','','%','','',NULL,NULL,'last(//mssql.sql_compilations_sec.rate) * 100 /\r\n(last(//mssql.batch_requests_sec.rate) + (last(//mssql.batch_requests_sec.rate)=0))','','0','','','','','0',NULL,'The ratio of SQL compilations per second to batch requests per second, in percent.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','76918163a16e4ad786bed2040acc8061','0','2','0'),
('31555','15','','10327','Full scans to Index searches ratio','mssql.scan_to_search','0;m0-59s3','31d','365d','0','0','','','','',NULL,NULL,'last(//mssql.full_scans_sec.rate) / (last(//mssql.index_searches_sec.rate) + (last(//mssql.index_searches_sec.rate)=0))','','0','','','','','0',NULL,'The ratio of full scans per second to index searches per second. The threshold recommendation is strictly for OLTP workloads.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9ce27df57ebc4ecca1a4741e66c9fba0','0','2','0'),
('31556','15','','10327','Percent of Recompiled Transact-SQL Objects','mssql.percent_recompilations_to_compilations','0;m0-59s3','31d','365d','0','0','','%','','',NULL,NULL,'last(//mssql.sql_recompilations_sec.rate) * 100 /\r\n(last(//mssql.sql_compilations_sec.rate) + (last(//mssql.sql_compilations_sec.rate)=0))','','0','','','','','0',NULL,'The ratio of SQL re-compilations per second to SQL compilations per second, in percent.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ceab0472883f47b0a18b04fc6f7438ab','0','2','0'),
('31570','0','','10330','Get status page','web.page.get["{$PHP_FPM.HOST}","{$PHP_FPM.STATUS.PAGE}?json","{$PHP_FPM.PORT}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','09ec73291f21417ab8f19f56fda3331f','0','2','0'),
('31571','0','','10330','php-fpm_ping','web.page.get["{$PHP_FPM.HOST}","{$PHP_FPM.PING.PAGE}","{$PHP_FPM.PORT}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c0c438492c63453496e83938745ffffc','0','2','0'),
('31573','15','','10330','Queue usage','php-fpm.listen_queue_usage','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//php-fpm.listen_queue)/(last(//php-fpm.listen_queue_len)+(last(//php-fpm.listen_queue_len)=0))*100','','0','','','','','0',NULL,'The utilization of the queue.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','dfabcd55c13449c29a48b70fdce77674','0','2','0'),
('31593','15','','10331','Queue usage','php-fpm.listen_queue_usage','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//php-fpm.listen_queue)/(last(//php-fpm.listen_queue_len)+(last(//php-fpm.listen_queue_len)=0))*100','','0','','','','','0',NULL,'The utilization of the queue.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','314c3f19311f47acb93b046ab2625c75','0','2','0'),
('31594','19','','10331','Get status page','php-fpm.get_status','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','{$PHP_FPM.SCHEME}://{$PHP_FPM.HOST}:{$PHP_FPM.PORT}/{$PHP_FPM.STATUS.PAGE}?json','','','200','1','0','','','0','0','0','0','0','0','0','b91063d42d4b454089b58e29ee3bdb38','0','2','0'),
('31595','19','','10331','Get ping page','php-fpm.get_ping','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','{$PHP_FPM.SCHEME}://{$PHP_FPM.HOST}:{$PHP_FPM.PORT}/{$PHP_FPM.PING.PAGE}','','','200','1','0','','','2','0','0','0','0','0','0','a9ae24915703483ea95a346c625ed70e','0','2','0'),
('31612','3','','10173','Event log','vmware.eventlog[{$VMWARE.URL},skip]','1m','31d','0','0','2','','','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'Collect VMware event log. See also: https://www.zabbix.com/documentation/7.4/manual/config/items/preprocessing/examples#filtering_vmware_event_log_records','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5ce209f4d94f460488a74a92a52d92b1','0','2','0'),
('31613','3','','10173','Full name','vmware.fullname[{$VMWARE.URL}]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'VMware service full name.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ee2edadb8ce943ef81d25dbbba8667a4','0','2','0'),
('31614','3','','10173','Version','vmware.version[{$VMWARE.URL}]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'VMware service version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a0ec9145f2234fbea79a28c57ebdb44d','0','2','0'),
('31684','0','','10335','Ping','oracle.ping["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"]','30s','31d','365d','0','3','','','','',NULL,'36','','','0','','','','','0',NULL,'Test the connection to Oracle Database state.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7f4d8ea4912944ec8bf32edff9e3b5ae','0','2','0'),
('31685','0','','10335','Datafiles count','oracle.datafiles.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The current number of datafiles.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','12efa23a53eb468ea7b0713b8f610542','0','2','0'),
('31686','0','','10335','Get FRA stats','oracle.fra.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Get FRA statistics.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1aa391bbd2484793a31dc9f0dce51b46','0','2','0'),
('31687','0','','10335','Number of processes','oracle.proc.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The current number of user processes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ce9dabcce58d408d8188fe7caa71e666','0','2','0'),
('31688','0','','10335','Get SGA stats','oracle.sga.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Get SGA statistics.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1bafc80a94fb454785362593b8a73be3','0','2','0'),
('31691','0','','10335','Get system metrics','oracle.sys.metrics["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"]','0;m0-59','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Gets the values of the system metrics.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','eccce1efc85d46199b3147ec586e1cd5','0','2','0'),
('31692','0','','10335','Get instance state','oracle.instance.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Gets the state of the current instance.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2c7dd0c162b742d08a2432c8bdde4ce2','0','2','0'),
('31693','0','','10335','Get system parameters','oracle.sys.params["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Get a set of system parameter values.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d59cca864e8044d89f9b4689ec712511','0','2','0'),
('31694','0','','10335','Get PGA stats','oracle.pga.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Get PGA statistics.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4926809f2c244b33b1a0650510a30fa4','0','2','0'),
('31695','0','','10335','Redo logs available to switch','oracle.redolog.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The number of inactive/unused redo logs available for log switching.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','898a5325c2a2469dabb6a2356107dd66','0','2','0'),
('31696','0','','10335','User\'s expire password','oracle.user.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"]','1m','31d','365d','0','0','','days','','',NULL,NULL,'','','0','','','','','0',NULL,'The number of days before the Zabbix account password expires.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','73ff311f3d5c4e93b5919f5633fc09f9','0','2','0'),
('31698','0','','10335','Get sessions stats','oracle.sessions.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{$ORACLE.SESSION.LOCK.MAX.TIME}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Get sessions statistics. {$ORACLE.SESSION.LOCK.MAX.TIME} -- maximum seconds in the current wait condition for counting long time locked sessions. Default: 600 seconds.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','41d61d167bf044fe9f0d9815b4fd27e6','0','2','0'),
('31760','0','','10335','Version','oracle.version["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The Oracle Server version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','04c0b90a0a7c4d6a95f51d006a65a530','0','2','0'),
('31782','3','','10336','Service status','net.tcp.service["tcp","{$AMI.HOST}","{$AMI.PORT}"]','1m','31d','365d','0','3','','','','',NULL,'37','','','0','','','','','0',NULL,'Asterisk Manager API port availability.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','58e18df6a5534395bf74d3babdb73170','0','2','0'),
('31783','3','','10336','Service response time','net.tcp.service.perf["tcp","{$AMI.HOST}","{$AMI.PORT}"]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'Asterisk Manager API performance.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','09102393dc6a4ac598f02d95801c6ca0','0','2','0'),
('31784','19','','10336','Get stats','asterisk.get_stats','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Asterisk system information in JSON format.','0','30d','0','',NULL,'','{$AMI.URL}','[{"action":"login"},{"username":"{$AMI.USERNAME}"},{"secret":"{$AMI.SECRET}"}]','','200','1','0','','','1','0','0','0','0','0','0','7db3e9cdae3d4bffa7429617e351fce1','0','2','0'),
('32117','0','','10353','Get df','ceph.df.details["{$CEPH.CONNSTRING}","{$CEPH.USER}","{$CEPH.API.KEY}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','af3e6faf835f41ef93cbbc44aa57f97e','0','2','0'),
('32118','0','','10353','Get OSD dump','ceph.osd.dump["{$CEPH.CONNSTRING}","{$CEPH.USER}","{$CEPH.API.KEY}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e7eb1f67d81c4e2ba7c57cfbc81d1a00','0','2','0'),
('32119','0','','10353','Get overall cluster status','ceph.status["{$CEPH.CONNSTRING}","{$CEPH.USER}","{$CEPH.API.KEY}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8b43d105f9d64a3a94196f3f3bc7eac3','0','2','0'),
('32120','0','','10353','Ping','ceph.ping["{$CEPH.CONNSTRING}","{$CEPH.USER}","{$CEPH.API.KEY}"]','1m','31d','365d','0','3','','','','',NULL,'38','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','911e8a654ca44e7ca56b8010ac7381c8','0','2','0'),
('32121','0','','10353','Get OSD stats','ceph.osd.stats["{$CEPH.CONNSTRING}","{$CEPH.USER}","{$CEPH.API.KEY}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','35b63ca6519e4137bb7655e37ed08e51','0','2','0'),
('32239','3','','10355','Service ping','net.tcp.service[tcp,,{$SQUID.HTTP.PORT}]','1m','31d','365d','0','3','','','','',NULL,'39','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','86cc718ce21b4ff9b0a09479ae3fc130','0','2','0'),
('32240','20','get[1.3.6.1.4.1.3495.1.3.1.7.0]','10355','Objects count','squid[cacheNumObjCount]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Number of objects stored by the cache','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','387bbd61d3bd469baa6c560afe8a18ae','0','2','0'),
('32241','20','get[1.3.6.1.4.1.3495.1.3.2.2.1.6.5]','10355','ICP query service time per 5 minutes','squid[cacheIcpQuerySvcTime.5]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'ICP query service time per 5 minutes','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cb9d0c300beb47568e99ff7966e1b10e','0','2','0'),
('32242','20','get[1.3.6.1.4.1.3495.1.3.2.2.1.6.60]','10355','ICP query service time per hour','squid[cacheIcpQuerySvcTime.60]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'ICP query service time per hour','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9130a0bc53144fe992b701aa9159ff70','0','2','0'),
('32243','20','get[1.3.6.1.4.1.3495.1.3.2.2.1.7.5]','10355','ICP reply service time per 5 minutes','squid[cacheIcpReplySvcTime.5]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'ICP reply service time per 5 minutes','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','35a7585432b3467585ff98b23e610d82','0','2','0'),
('32244','20','get[1.3.6.1.4.1.3495.1.3.2.2.1.7.60]','10355','ICP reply service time per hour','squid[cacheIcpReplySvcTime.60]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'ICP reply service time per hour','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','94eab55af41a465196588d08acbacb56','0','2','0'),
('32245','20','get[1.3.6.1.4.1.3495.1.4.1.3.0]','10355','IP cache hits per second','squid[cacheIpHits]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Number of IP Cache hits','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c5409583483e4024aabaab500bcb637a','0','2','0'),
('32246','20','get[1.3.6.1.4.1.3495.1.4.1.6.0]','10355','IP cache misses per second','squid[cacheIpMisses]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Number of IP Cache misses','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8e474d2fd410472bb03024d2a2361b5d','0','2','0'),
('32247','20','get[1.3.6.1.4.1.3495.1.4.1.2.0]','10355','IP cache requests per second','squid[cacheIpRequests]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Number of IP Cache requests','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','dc837a887c3c463a9011d923dbbfbc0f','0','2','0'),
('32248','20','get[1.3.6.1.4.1.3495.1.3.1.6.0]','10355','Memory maximum resident size','squid[cacheMaxResSize]','1m','31d','365d','0','0','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'Maximum Resident Size','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','70786920f94f41eeb0fc525c2e6431cf','0','2','0'),
('32249','20','get[1.3.6.1.4.1.3495.1.2.5.1.0]','10355','Memory maximum cache size','squid[cacheMemMaxSize]','1m','31d','365d','0','0','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'The value of the cache_mem parameter','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d84c3a3633784f77bf9375bf59da490b','0','2','0'),
('32250','20','get[1.3.6.1.4.1.3495.1.3.1.3.0]','10355','Memory cache usage','squid[cacheMemUsage]','1m','31d','365d','0','0','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'Total accounted memory','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c14fe87f87ca48f39bbe765db60e0a41','0','2','0'),
('32251','20','get[1.3.6.1.4.1.3495.1.3.2.1.1.0]','10355','HTTP requests received per second','squid[cacheProtoClientHttpRequests]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Number of HTTP requests received','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1e648a20db904e92ae4ec0c3f9037a99','0','2','0'),
('32252','20','get[1.3.6.1.4.1.3495.1.3.2.1.7.0]','10355','ICP messages received per second','squid[cacheIcpPktsRecv]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Number of ICP messages received','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9ee83c13fa6d41dfb8bfea91c02341b9','0','2','0'),
('32253','20','get[1.3.6.1.4.1.3495.1.3.2.2.1.10.1]','10355','Byte hit ratio per 1 minute','squid[cacheRequestByteRatio.1]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Byte Hit Ratios','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','31f3e3bb57d645ff8df6b9b8d1b70a49','0','2','0'),
('32254','20','get[1.3.6.1.4.1.3495.1.3.2.2.1.10.5]','10355','Byte hit ratio per 5 minutes','squid[cacheRequestByteRatio.5]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Byte Hit Ratios','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e19775b9c83648d58655a1130c5771e4','0','2','0'),
('32255','20','get[1.3.6.1.4.1.3495.1.3.2.2.1.10.60]','10355','Byte hit ratio per 1 hour','squid[cacheRequestByteRatio.60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Byte Hit Ratios','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ffb3fc17631f4cd6b55ed6eefd2e6cea','0','2','0'),
('32256','20','get[1.3.6.1.4.1.3495.1.3.2.2.1.9.1]','10355','Request hit ratio per 1 minute','squid[cacheRequestHitRatio.1]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Byte Hit Ratios','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a4ba5af69dd64fd8acf707ee1eaaeb32','0','2','0'),
('32257','20','get[1.3.6.1.4.1.3495.1.3.2.2.1.9.5]','10355','Request hit ratio per 5 minutes','squid[cacheRequestHitRatio.5]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Byte Hit Ratios','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b5ae7935e9be40e18c3020820a7865c7','0','2','0'),
('32258','20','get[1.3.6.1.4.1.3495.1.3.2.2.1.9.60]','10355','Request hit ratio per 1 hour','squid[cacheRequestHitRatio.60]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Byte Hit Ratios','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b09f7a1d9dc340b88106016586099dba','0','2','0'),
('32259','20','get[1.3.6.1.4.1.3495.1.2.5.3.0]','10355','Cache swap high water mark','squid[cacheSwapHighWM]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Cache Swap High Water Mark','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','69e4fb088c6949ac94eabcb892df46ab','0','2','0'),
('32260','20','get[1.3.6.1.4.1.3495.1.2.5.4.0]','10355','Cache swap low water mark','squid[cacheSwapLowWM]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Cache Swap Low Water Mark','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','221e583d7cf2455b9d848462de4b1e9a','0','2','0'),
('32261','20','get[1.3.6.1.4.1.3495.1.2.5.2.0]','10355','Cache swap directory size','squid[cacheSwapMaxSize]','1m','31d','365d','0','0','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'The total of the cache_dir space allocated','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','215aefddd30e41aea54e30678f290215','0','2','0'),
('32262','20','get[1.3.6.1.4.1.3495.1.3.1.1.0]','10355','Sys page faults per second','squid[cacheSysPageFaults]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Page faults with physical I/O','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','38ad99f9b30c4d729030ceab6575f4f5','0','2','0'),
('32263','20','get[1.3.6.1.4.1.3495.1.1.3.0]','10355','Uptime','squid[cacheUptime]','5m','31d','365d','0','3','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The Uptime of the cache in timeticks (in hundredths of a second) with preprocessing','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','67460731d9c94166870874239c9a60da','0','2','0'),
('32264','20','get[1.3.6.1.4.1.3495.1.3.2.1.6.0]','10355','ICP messages sent per second','squid[cacheIcpPktsSent]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Number of ICP messages sent','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','dee7d8cf211b4ad0a645a8d6d4f24c31','0','2','0'),
('32265','20','get[1.3.6.1.4.1.3495.1.3.2.1.8.0]','10355','ICP traffic transmitted per second','squid[cacheIcpKbSent]','1m','31d','365d','0','0','','Bps','','',NULL,NULL,'','','0','','','','','0',NULL,'Number of ICP traffic transmitted','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7234b612b50a45e0a1bb69654e2e784d','0','2','0'),
('32266','20','get[1.3.6.1.4.1.3495.1.3.1.5.0]','10355','CPU usage','squid[cacheCpuUsage]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage use of the CPU','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6d7f0f6b0f89462e96e86940b779eb69','0','2','0'),
('32267','20','get[1.3.6.1.4.1.3495.1.4.2.3.0]','10355','FQDN cache hits per second','squid[cacheFqdnHits]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Number of FQDN Cache hits','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0aea1fe702004d65919fc010c971c3b5','0','2','0'),
('32268','20','get[1.3.6.1.4.1.3495.1.3.1.12.0]','10355','File descriptor count - current used','squid[cacheCurrentFileDescrCnt]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Number of file descriptors in use','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','960b137ab773492ab3073e108575e4fc','0','2','0'),
('32269','20','get[1.3.6.1.4.1.3495.1.3.1.13.0]','10355','File descriptor count - current maximum','squid[cacheCurrentFileDescrMax]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Highest number of file descriptors in use','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','37b45201f8444583b01e0df5af2bc14e','0','2','0'),
('32270','20','get[1.3.6.1.4.1.3495.1.3.1.8.0]','10355','Objects LRU expiration age','squid[cacheCurrentLRUExpiration]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'Storage LRU Expiration Age','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','910afdc20767408f90d1bc5b7a9fd6a4','0','2','0'),
('32271','20','get[1.3.6.1.4.1.3495.1.3.1.11.0]','10355','File descriptor count - current reserved','squid[cacheCurrentResFileDescrCnt]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Reserved number of file descriptors','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','26b8b1a25dc74099b61813905477b414','0','2','0'),
('32272','20','get[1.3.6.1.4.1.3495.1.3.2.1.14.0]','10355','Cache swap current size','squid[cacheCurrentSwapSize]','1m','31d','365d','0','0','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'Storage Swap Size','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','35f3009401b6449d95988d9ee7a621a7','0','2','0'),
('32273','20','get[1.3.6.1.4.1.3495.1.3.1.9.0]','10355','Objects unlinkd requests','squid[cacheCurrentUnlinkRequests]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Requests given to unlinkd','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0789a0fa3e3b42a08a5e5bf8d0307970','0','2','0'),
('32274','20','get[1.3.6.1.4.1.3495.1.3.1.10.0]','10355','File descriptor count - current available','squid[cacheCurrentUnusedFDescrCnt]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Available number of file descriptors','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6bc024be663b466ca677941130e11f50','0','2','0'),
('32275','20','get[1.3.6.1.4.1.3495.1.4.3.2.0]','10355','DNS server replies per second','squid[cacheDnsReplies]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Number of external dns server replies','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1aecf10756f949999c8f3fe5ce9c2a32','0','2','0'),
('32276','20','get[1.3.6.1.4.1.3495.1.4.3.1.0]','10355','DNS server requests per second','squid[cacheDnsRequests]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Number of external dns server requests','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e5f647c77bdb498e9cc286795bc4077c','0','2','0'),
('32277','20','get[1.3.6.1.4.1.3495.1.3.2.2.1.8.5]','10355','DNS service time per 5 minutes','squid[cacheDnsSvcTime.5]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'DNS service time per 5 minutes','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3f4366896dd84b8ab78d6e3dc8a6ab63','0','2','0'),
('32278','20','get[1.3.6.1.4.1.3495.1.3.2.2.1.8.60]','10355','DNS service time per hour','squid[cacheDnsSvcTime.60]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'DNS service time per hour','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','99448052f1a34e15a5c042124db7b651','0','2','0'),
('32279','20','get[1.3.6.1.4.1.3495.1.4.2.6.0]','10355','FQDN cache misses per second','squid[cacheFqdnMisses]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Number of FQDN Cache misses','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2dea9b707b844d32b65a2d479ddb7d72','0','2','0'),
('32280','20','get[1.3.6.1.4.1.3495.1.3.2.1.9.0]','10355','ICP traffic received per second','squid[cacheIcpKbRecv]','1m','31d','365d','0','0','','Bps','','',NULL,NULL,'','','0','','','','','0',NULL,'Number of ICP traffic received','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bde307ead15d48859a97e35e52327d50','0','2','0'),
('32281','20','get[1.3.6.1.4.1.3495.1.4.2.2.0]','10355','FQDN cache requests per second','squid[cacheFqdnRequests]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Number of FQDN Cache requests','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1dad3f381c174b869c73f55cd831b40a','0','2','0'),
('32282','20','get[1.3.6.1.4.1.3495.1.3.2.2.1.2.5]','10355','HTTP all service time per 5 minutes','squid[cacheHttpAllSvcTime.5]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'HTTP all service time per 5 minutes','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','633a70cd41c44f2c895148a7ae394acd','0','2','0'),
('32283','20','get[1.3.6.1.4.1.3495.1.3.2.2.1.2.60]','10355','HTTP all service time per hour','squid[cacheHttpAllSvcTime.60]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'HTTP all service time per hour','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d3aa021743134d97af9dd8840b0ef692','0','2','0'),
('32284','20','get[1.3.6.1.4.1.3495.1.3.2.1.3.0]','10355','HTTP Errors sent per second','squid[cacheHttpErrors]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Number of HTTP Errors sent to clients','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7f5bd8f89ea0495ea87c294fb8c606dd','0','2','0'),
('32285','20','get[1.3.6.1.4.1.3495.1.3.2.1.2.0]','10355','HTTP Hits sent from cache per second','squid[cacheHttpHits]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Number of HTTP Hits sent to clients from cache','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','adfe3e2fc775400991d2ea2f06218daf','0','2','0'),
('32286','20','get[1.3.6.1.4.1.3495.1.3.2.2.1.5.5]','10355','HTTP hit service time per 5 minutes','squid[cacheHttpHitSvcTime.5]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'HTTP hit service time per 5 minutes','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0c4fd7c154a44442a3cec82ba4026b7d','0','2','0'),
('32287','20','get[1.3.6.1.4.1.3495.1.3.2.2.1.5.60]','10355','HTTP hit service time per hour','squid[cacheHttpHitSvcTime.60]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'HTTP hit service time per hour','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a642c99d6c3f4f5e8ec218459fd76f04','0','2','0'),
('32288','20','get[1.3.6.1.4.1.3495.1.3.2.1.4.0]','10355','HTTP traffic received per second','squid[cacheHttpInKb]','1m','31d','365d','0','0','','Bps','','',NULL,NULL,'','','0','','','','','0',NULL,'Number of HTTP traffic received from clients','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f2366a6008cb4dc7856904ea5c6631dd','0','2','0'),
('32289','20','get[1.3.6.1.4.1.3495.1.3.2.2.1.3.5]','10355','HTTP miss service time per 5 minutes','squid[cacheHttpMissSvcTime.5]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'HTTP miss service time per 5 minutes','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f8fa271a272442369b6cbc4fb1a2decc','0','2','0'),
('32290','20','get[1.3.6.1.4.1.3495.1.3.2.2.1.3.60]','10355','HTTP miss service time per hour','squid[cacheHttpMissSvcTime.60]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'HTTP miss service time per hour','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','23e5a3bd6e9a4c50a7d54336a6afc1e1','0','2','0'),
('32291','20','get[1.3.6.1.4.1.3495.1.3.2.1.5.0]','10355','HTTP traffic sent per second','squid[cacheHttpOutKb]','1m','31d','365d','0','0','','Bps','','',NULL,NULL,'','','0','','','','','0',NULL,'Number of HTTP traffic sent to clients','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ff6b7946363d44bba5721c82c8f84df7','0','2','0'),
('32292','20','get[1.3.6.1.4.1.3495.1.2.3.0]','10355','Version','squid[cacheVersionId]','1m','31d','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Cache Software Version','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d7c7f0faa1f64745be774e30e6f0b68f','0','2','0'),
('32364','0','','10357','Get connections sum','pgsql.connections.sum["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Collect all metrics from pg_stat_activity:\r\nhttps://www.postgresql.org/docs/current/monitoring-stats.html#PG-STAT-ACTIVITY-VIEW','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b0da0c4856a645ca8ef03405d2d8d4a5','0','2','0'),
('32365','0','','10357','Get locks','pgsql.locks["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Collect all metrics from pg_locks per database:\r\nhttps://www.postgresql.org/docs/current/explicit-locking.html#LOCKING-TABLES','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7cee21f6225340ef80e9cdef7ce20b10','0','2','0'),
('32366','0','','10357','Ping time','pgsql.ping.time["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'Used to get the `SELECT 1` query execution time.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f42bd73b3af6451b8a3a6113dcc1b675','0','2','0'),
('32367','0','','10357','Ping','pgsql.ping["{$PG.HOST}","{$PG.PORT}"]','1m','31d','365d','0','3','','','','',NULL,'40','','','0','','','','','0',NULL,'Used to test a connection to see if it is alive. It is set to 0 if the instance doesn\'t accept the connections.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f5bd615243b344cb88dac1e83436cc85','0','2','0'),
('32368','0','','10357','Get queries','pgsql.queries["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}","{$PG.QUERY_ETIME.MAX.WARN}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Collect all metrics by query execution time.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','47bf580e1e4e48cf9c0e94fcf90288ac','0','2','0'),
('32369','0','','10357','Replication: Standby count','pgsql.replication.count["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Number of standby servers.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d8a509bd011a4ecda5d439295e257e9d','0','2','0'),
('32370','0','','10357','Replication: Lag in seconds','pgsql.replication.lag.sec["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','31d','365d','0','3','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'Replication lag with master, in seconds.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','21f8bea1141249c7a4dfafad5bc3ef41','0','2','0'),
('32371','0','','10357','Replication: Recovery role','pgsql.replication.recovery_role["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','31d','365d','0','3','','','','',NULL,'124','','','0','','','','','0',NULL,'Replication role: 1 — recovery is still in progress (standby mode), 0 — master mode.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','09f696124fca4c5b844bf66c9c912b87','0','2','0'),
('32372','0','','10357','Replication: Status','pgsql.replication.status["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','31d','365d','0','3','','','','',NULL,'126','','','0','','','','','0',NULL,'Replication status: 0 — streaming is down, 1 — streaming is up, 2 — master mode.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d449017462704508a4aad51a6b45fb30','0','2','0'),
('32373','0','','10357','Config hash','pgsql.config.hash["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','15m','31d','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'PostgreSQL configuration hash.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','248cbe5067324b9ca435f2aced5e2a5f','0','2','0'),
('32374','0','','10357','Cache hit ratio, %','pgsql.cache.hit["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Cache hit ratio.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','70a7581fabd14e05bda762b79811187c','0','2','0'),
('32375','0','','10357','Get bgwriter','pgsql.bgwriter["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','1h','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Collect all metrics from pg_stat_bgwriter:\r\nhttps://www.postgresql.org/docs/current/monitoring-stats.html#PG-STAT-BGWRITER-VIEW','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1fc5ba48a0974bd7bf965b5f130deded','0','2','0'),
('32376','0','','10357','Get transactions','pgsql.transactions["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Collect metrics by transaction execution time.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ff26a1c256bd40978f49a7a025538aa1','0','2','0'),
('32377','0','','10357','Uptime','pgsql.uptime["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','31d','365d','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'Time since the server started.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6418a2f286e64ecabf2295fca063f8af','0','2','0'),
('32378','0','','10357','Version','pgsql.version["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'PostgreSQL version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','321525ebcea44396922e96deec2e8ad1','0','2','0'),
('32379','0','','10357','Get WAL','pgsql.wal.stat["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','5m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Collect write-ahead log (WAL) metrics.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7cd6c524ecab41f9a22489866d503361','0','2','0'),
('32380','0','','10357','Get dbstat','pgsql.dbstat["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Collect all metrics from pg_stat_database per database:\r\nhttps://www.postgresql.org/docs/current/monitoring-stats.html#PG-STAT-DATABASE-VIEW','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b44f263fb33e461e8c3d700fb7688c7b','0','2','0'),
('32463','21','','10359','Get data','aranet.get_data','1m','0','0','0','4','','','','',NULL,NULL,'var Aranet = {\r\n params: {},\r\n auth_token: null,\r\n refresh_token: null,\r\n space_id: null,\r\n\r\n setParams: function (params) {\r\n [\'api_endpoint\', \'username\', \'password\', \'space_name\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\'\r\n || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n });\r\n\r\n Aranet.params = params;\r\n if (typeof Aranet.params.api_endpoint === \'string\') {\r\n if (!Aranet.params.api_endpoint.endsWith(\'/\')) {\r\n Aranet.params.api_endpoint += \'/\';\r\n }\r\n }\r\n },\r\n\r\n request: function (method, query, data) {\r\n var response,\r\n request = new HttpRequest(),\r\n url = Aranet.params.api_endpoint + query;\r\n\r\n request.addHeader(\'Content-Type: application/json\');\r\n\r\n if (Aranet.auth_token !== null) {\r\n request.addHeader(\'Authorization: Bearer \' + Aranet.auth_token);\r\n }\r\n\r\n if (typeof data !== \'undefined\') {\r\n data = JSON.stringify(data);\r\n }\r\n\r\n switch (method) {\r\n case \'get\':\r\n response = request.get(url, data);\r\n break;\r\n\r\n case \'post\':\r\n response = request.post(url, data);\r\n break;\r\n\r\n default:\r\n throw \'Unsupported HTTP request method: \' + method;\r\n }\r\n\r\n Zabbix.log(4, \'[ Aranet scraper ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n var message = \'Request failed with status code \' + request.getStatus();\r\n\r\n message += \': \' + response;\r\n throw message;\r\n }\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from Aranet Cloud. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n return {\r\n status: request.getStatus(),\r\n response: response\r\n };\r\n },\r\n\r\n login: function () {\r\n var result,\r\n data = {\r\n login: Aranet.params.username,\r\n passw: Aranet.params.password\r\n };\r\n\r\n result = Aranet.request(\'post\', \'user/login\', data);\r\n if (typeof result.response !== \'object\'\r\n || typeof result.response.auth === \'undefined\'\r\n || result.status != 200) {\r\n throw \'Cannot login to Aranet Cloud. Check debug log for more information.\';\r\n }\r\n\r\n Aranet.auth_token = result.response.auth;\r\n Aranet.refresh_token = result.response.refresh;\r\n\r\n var spaces = result.response.spaces;\r\n for (var key in spaces) {\r\n if (spaces[key] == Aranet.params.space_name) {\r\n Aranet.space_id = key;\r\n break;\r\n }\r\n }\r\n\r\n return result.response;\r\n },\r\n\r\n logout: function () {\r\n var result,\r\n data = {\r\n refresh: Aranet.refresh_token\r\n };\r\n\r\n try {\r\n result = Aranet.request(\'post\', \'user/logout\', data);\r\n if (result.status != 204) {\r\n throw \'Cannot logout from Aranet Cloud \' + request.getStatus() + \': \' + result.response;\r\n }\r\n }\r\n catch (error) {\r\n Zabbix.log(4, \'[ Aranet scraper ] \' + error)\r\n }\r\n },\r\n\r\n getMetrics: function () {\r\n var result = Aranet.request(\'get\', \'metrics/\' + Aranet.space_id);\r\n\r\n if (typeof result.response !== \'object\'\r\n || typeof result.response.data === \'undefined\'\r\n || result.status != 200) {\r\n throw \'Cannot get metrics data from Aranet Cloud. Check debug log for more information.\';\r\n };\r\n\r\n return result.response;\r\n },\r\n\r\n getSensors: function () {\r\n var result = Aranet.request(\'get\', \'sensors/\' + Aranet.space_id + \'?fields=devices,metrics,telemetry,name\');\r\n\r\n if (typeof result.response !== \'object\'\r\n || typeof result.response.data === \'undefined\'\r\n || result.status != 200) {\r\n throw \'Cannot get sensors data from Aranet Cloud. Check debug log for more information.\';\r\n };\r\n\r\n return result.response;\r\n },\r\n\r\n getGateways: function () {\r\n var result = Aranet.request(\'get\', \'gateways/\' + Aranet.space_id);\r\n\r\n if (typeof result.response !== \'object\'\r\n || typeof result.response.devices === \'undefined\'\r\n || result.status != 200) {\r\n throw \'Cannot get gateways data from Aranet Cloud. Check debug log for more information.\';\r\n };\r\n\r\n return result.response;\r\n }\r\n}\r\n\r\nvar processed_metrics = {},\r\n processed_sensors = [];\r\n\r\ntry {\r\n Aranet.setParams(JSON.parse(value));\r\n\r\n Aranet.login();\r\n\r\n var raw_metrics = Aranet.getMetrics(),\r\n raw_sensors = Aranet.getSensors(),\r\n raw_gateways = Aranet.getGateways();\r\n\r\n Aranet.logout();\r\n\r\n var items = raw_metrics.data.items;\r\n for (item_idx in items) {\r\n var unit_name,\r\n units = items[item_idx].units;\r\n\r\n units.some(function (unit) {\r\n unit_name = unit.name;\r\n if (unit.selected) {\r\n return true;\r\n }\r\n });\r\n\r\n processed_metrics[items[item_idx].id] = {\r\n name: items[item_idx].name,\r\n unit: unit_name\r\n }\r\n\r\n delete items[item_idx];\r\n }\r\n\r\n var items = raw_sensors.data.items;\r\n for (item_idx in items) {\r\n var upd_ts = 0,\r\n gateway = {},\r\n sensor_metrics = [],\r\n metrics = items[item_idx].metrics,\r\n telemetry = items[item_idx].telemetry;\r\n\r\n for (m_idx in metrics) {\r\n var unit = processed_metrics[metrics[m_idx].id];\r\n\r\n if (upd_ts < metrics[m_idx].t) {\r\n upd_ts = metrics[m_idx].t;\r\n }\r\n\r\n sensor_metrics.push({\r\n name: unit.name,\r\n unit: unit.unit,\r\n value: metrics[m_idx].v\r\n });\r\n }\r\n\r\n for (var t_idx in telemetry) {\r\n var unit = processed_metrics[telemetry[t_idx].id];\r\n\r\n if (upd_ts < telemetry[t_idx].t) {\r\n upd_ts = telemetry[t_idx].t;\r\n }\r\n\r\n sensor_metrics.push({\r\n name: unit.name,\r\n unit: unit.unit,\r\n value: telemetry[t_idx].v\r\n });\r\n }\r\n\r\n raw_gateways.devices.some(function (dev) {\r\n if (items[item_idx].devices[0].id === dev.id) {\r\n gateway = {\r\n id: dev.id,\r\n name: dev.device\r\n }\r\n return true;\r\n }\r\n })\r\n\r\n if (upd_ts) {\r\n sensor_metrics.push({\r\n name: \'Last update\',\r\n unit: \'s\',\r\n value: upd_ts\r\n });\r\n }\r\n\r\n var sensor_id = parseInt(items[item_idx].id).toString(16).slice(-5);\r\n\r\n processed_sensors.push({\r\n id: sensor_id,\r\n name: items[item_idx].name.trim() === \'\' ? sensor_id : items[item_idx].name,\r\n gateway: gateway,\r\n metrics: sensor_metrics\r\n });\r\n\r\n delete items[item_idx];\r\n }\r\n\r\n return JSON.stringify(processed_sensors);\r\n}\r\ncatch (error) {\r\n Zabbix.log(3, \'[ Aranet scraper ] ERROR: \' + error);\r\n throw \'Scraping failed: \' + error;\r\n}','','0','','','','','0',NULL,'','0','30d','0','',NULL,'10s','','','','200','1','0','','','0','0','0','0','0','0','0','56f89fce2b1541b7898ad56362d4b28a','0','2','0'),
('32516','0','','10360','Databases total mounted','perf_counter_en["\\MSExchange Active Manager(_total)\\Database Mounted"]','{$MS.EXCHANGE.PERF.INTERVAL}','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Shows the number of active database copies on the server.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b4978a9a4cff4ce88fbc82683b61eec4','0','2','0'),
('32517','0','','10360','ActiveSync: ping command pending','perf_counter_en["\\MSExchange ActiveSync\\Ping Commands Pending", {$MS.EXCHANGE.PERF.INTERVAL}]','{$MS.EXCHANGE.PERF.INTERVAL}','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Shows the number of ping commands currently pending in the queue.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9b59700d8db8472fbde41c85c7a06ffc','0','2','0'),
('32518','0','','10360','ActiveSync: requests per second','perf_counter_en["\\MSExchange ActiveSync\\Requests/sec", {$MS.EXCHANGE.PERF.INTERVAL}]','{$MS.EXCHANGE.PERF.INTERVAL}','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Shows the number of HTTP requests received from the client via ASP.NET per second. Determines the current Exchange ActiveSync request rate. Used only to determine current user load.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fa70b4e2d17c44c6945dd2d1c971c34c','0','2','0'),
('32519','0','','10360','ActiveSync: sync commands per second','perf_counter_en["\\MSExchange ActiveSync\\Sync Commands/sec", {$MS.EXCHANGE.PERF.INTERVAL}]','{$MS.EXCHANGE.PERF.INTERVAL}','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Shows the number of sync commands processed per second. Clients use this command to synchronize items within a folder.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8528015c73134a239d7ac235464788dd','0','2','0'),
('32520','0','','10360','Autodiscover: requests per second','perf_counter_en["\\MSExchangeAutodiscover\\Requests/sec", {$MS.EXCHANGE.PERF.INTERVAL}]','{$MS.EXCHANGE.PERF.INTERVAL}','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Shows the number of Autodiscover service requests processed each second. Determines current user load.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','456cb7af0b224a59afabae36d24d2cbc','0','2','0'),
('32521','0','','10360','Availability Service: availability requests per second','perf_counter_en["\\MSExchange Availability Service\\Availability Requests (sec)", {$MS.EXCHANGE.PERF.INTERVAL}]','{$MS.EXCHANGE.PERF.INTERVAL}','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Shows the number of requests serviced per second. The request can be only for free/ busy information or include suggestions. One request may contain multiple mailboxes. Determines the rate at which Availability service requests are occurring.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b9a539175cbb4259b064a787a25e9dbe','0','2','0'),
('32522','0','','10360','Outlook Web App: current unique users','perf_counter_en["\\MSExchange OWA\\Current Unique Users", {$MS.EXCHANGE.PERF.INTERVAL}]','{$MS.EXCHANGE.PERF.INTERVAL}','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Shows the number of unique users currently logged on to Outlook Web App. This value monitors the number of unique active user sessions, so that users are only removed from this counter after they log off or their session times out. Determines current user load.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3c2a83dfef35497baf8c38b801854882','0','2','0'),
('32523','0','','10360','Outlook Web App: requests per second','perf_counter_en["\\MSExchange OWA\\Requests/sec", {$MS.EXCHANGE.PERF.INTERVAL}]','{$MS.EXCHANGE.PERF.INTERVAL}','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Shows the number of requests handled by Outlook Web App per second. Determines current user load.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2c7fd331673e4d84aa09551222469b08','0','2','0'),
('32524','0','','10360','MSExchangeWS: requests per second','perf_counter_en["\\MSExchangeWS\\Requests/sec", {$MS.EXCHANGE.PERF.INTERVAL}]','{$MS.EXCHANGE.PERF.INTERVAL}','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Shows the number of requests processed each second. Determines current user load.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9808449df53148a9a988a69d66944371','0','2','0'),
('32546','7','','10361','Databases total mounted','perf_counter_en["\\MSExchange Active Manager(_total)\\Database Mounted"]','{$MS.EXCHANGE.PERF.INTERVAL}','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Shows the number of active database copies on the server.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5af1c3257c264abda20023eae10b3b86','0','2','0'),
('32547','7','','10361','ActiveSync: ping command pending','perf_counter_en["\\MSExchange ActiveSync\\Ping Commands Pending", {$MS.EXCHANGE.PERF.INTERVAL}]','{$MS.EXCHANGE.PERF.INTERVAL}','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Shows the number of ping commands currently pending in the queue.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bb9de29f56124a77a6ac1d3f8cbd72e9','0','2','0'),
('32548','7','','10361','ActiveSync: requests per second','perf_counter_en["\\MSExchange ActiveSync\\Requests/sec", {$MS.EXCHANGE.PERF.INTERVAL}]','{$MS.EXCHANGE.PERF.INTERVAL}','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Shows the number of HTTP requests received from the client via ASP.NET per second. Determines the current Exchange ActiveSync request rate. Used only to determine current user load.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','038e740be37c40339520b4c4b1b0d18b','0','2','0'),
('32549','7','','10361','ActiveSync: sync commands per second','perf_counter_en["\\MSExchange ActiveSync\\Sync Commands/sec", {$MS.EXCHANGE.PERF.INTERVAL}]','{$MS.EXCHANGE.PERF.INTERVAL}','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Shows the number of sync commands processed per second. Clients use this command to synchronize items within a folder.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','953665dbe8f948ff821333a4d50eada6','0','2','0'),
('32550','7','','10361','Autodiscover: requests per second','perf_counter_en["\\MSExchangeAutodiscover\\Requests/sec", {$MS.EXCHANGE.PERF.INTERVAL}]','{$MS.EXCHANGE.PERF.INTERVAL}','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Shows the number of Autodiscover service requests processed each second. Determines current user load.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c8ed8a7e36c6453183aee1a778a4749a','0','2','0'),
('32551','7','','10361','Availability Service: availability requests per second','perf_counter_en["\\MSExchange Availability Service\\Availability Requests (sec)", {$MS.EXCHANGE.PERF.INTERVAL}]','{$MS.EXCHANGE.PERF.INTERVAL}','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Shows the number of requests serviced per second. The request can be only for free/ busy information or include suggestions. One request may contain multiple mailboxes. Determines the rate at which Availability service requests are occurring.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2260d98130814d369ac1c90324caaa26','0','2','0'),
('32552','7','','10361','Outlook Web App: current unique users','perf_counter_en["\\MSExchange OWA\\Current Unique Users", {$MS.EXCHANGE.PERF.INTERVAL}]','{$MS.EXCHANGE.PERF.INTERVAL}','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Shows the number of unique users currently logged on to Outlook Web App. This value monitors the number of unique active user sessions, so that users are only removed from this counter after they log off or their session times out. Determines current user load.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b4336fce2d27450b95de4f1bbbf947f3','0','2','0'),
('32553','7','','10361','Outlook Web App: requests per second','perf_counter_en["\\MSExchange OWA\\Requests/sec", {$MS.EXCHANGE.PERF.INTERVAL}]','{$MS.EXCHANGE.PERF.INTERVAL}','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Shows the number of requests handled by Outlook Web App per second. Determines current user load.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','14344546f3a748fbb8f78e503e92255f','0','2','0'),
('32554','7','','10361','MSExchangeWS: requests per second','perf_counter_en["\\MSExchangeWS\\Requests/sec", {$MS.EXCHANGE.PERF.INTERVAL}]','{$MS.EXCHANGE.PERF.INTERVAL}','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Shows the number of requests processed each second. Determines current user load.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e8c8e348c01e48ad92ee02060717e097','0','2','0'),
('32576','19','','10362','Application server status','gitlab.liveness','1m','31d','365d','0','3','','','','',NULL,'189','','','0','','','','','0',NULL,'Checks whether the application server is running. This probe is used to know if Rails Controllers are not deadlocked due to a multi-threading.','0','30d','0','',NULL,'','{$GITLAB.URL}/-/liveness{$GITLAB.HEALTH.TOKEN}','','','200','1','0','','','0','0','0','0','0','0','0','c48920e302ff4b9ab16f45b67775b440','0','2','0'),
('32577','19','','10362','Instance readiness check','gitlab.readiness','1m','31d','365d','0','3','','','','',NULL,'189','','','0','','','','','0',NULL,'The readiness probe checks whether the GitLab instance is ready to accept traffic via Rails Controllers.','0','30d','0','',NULL,'','{$GITLAB.URL}/-/readiness{$GITLAB.HEALTH.TOKEN}','','','200','1','0','','','0','0','0','0','0','0','0','794a8d7f474d490c96e714dac810140d','0','2','0'),
('32578','19','','10362','Get instance metrics','gitlab.get_metrics','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','{$GITLAB.URL}/-/metrics{$GITLAB.HEALTH.TOKEN}','','','200','1','0','','','0','0','0','0','0','0','0','2aa509b84dc14026b8ff8ed473add2d2','0','2','0'),
('32634','19','','10363','Get DataNodes states','hadoop.datanodes.get','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','{$HADOOP.NAMENODE.HOST}:{$HADOOP.NAMENODE.PORT}/jmx?qry=Hadoop:service=NameNode,name=NameNodeInfo','','','200','1','0','','','0','0','0','0','0','0','0','d2d19ac9d1eb434c98a55cbf76c27850','0','2','0'),
('32635','19','','10363','Get NodeManagers states','hadoop.nodemanagers.get','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','{$HADOOP.RESOURCEMANAGER.HOST}:{$HADOOP.RESOURCEMANAGER.PORT}/jmx?qry=Hadoop:service=ResourceManager,name=RMNMInfo','','','200','1','0','','','0','0','0','0','0','0','0','6d7546c5d15d4e478b2e87e35d5306b0','0','2','0'),
('32636','3','','10363','NameNode: Service status','net.tcp.service["tcp","{$HADOOP.NAMENODE.HOST}","{$HADOOP.NAMENODE.PORT}"]','1m','31d','365d','0','3','','','','',NULL,'41','','','0','','','','','0',NULL,'Hadoop NameNode API port availability.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2c52d856e07e4524abf3c2ae4b47c6b6','0','2','0'),
('32637','3','','10363','ResourceManager: Service response time','net.tcp.service.perf["tcp","{$HADOOP.RESOURCEMANAGER.HOST}","{$HADOOP.RESOURCEMANAGER.PORT}"]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'Hadoop ResourceManager API performance.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','98b11f1156dc472fbce27ca053e01d4e','0','2','0'),
('32638','3','','10363','NameNode: Service response time','net.tcp.service.perf["tcp","{$HADOOP.NAMENODE.HOST}","{$HADOOP.NAMENODE.PORT}"]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'Hadoop NameNode API performance.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','66a87b21d32c436bb2d2eb23ec328f91','0','2','0'),
('32639','19','','10363','Get ResourceManager stats','hadoop.resourcemanager.get','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','{$HADOOP.RESOURCEMANAGER.HOST}:{$HADOOP.RESOURCEMANAGER.PORT}/jmx','','','200','1','0','','','0','0','0','0','0','0','0','e693cff98ec74cc198ec6b5e973f116c','0','2','0'),
('32640','3','','10363','ResourceManager: Service status','net.tcp.service["tcp","{$HADOOP.RESOURCEMANAGER.HOST}","{$HADOOP.RESOURCEMANAGER.PORT}"]','1m','31d','365d','0','3','','','','',NULL,'41','','','0','','','','','0',NULL,'Hadoop ResourceManager API port availability.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','615b75c42ebe471da798a0613667d499','0','2','0'),
('32641','19','','10363','Get NameNode stats','hadoop.namenode.get','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','{$HADOOP.NAMENODE.HOST}:{$HADOOP.NAMENODE.PORT}/jmx','','','200','1','0','','','0','0','0','0','0','0','0','687406d06ce94a8291b2e72bb2f8bec4','0','2','0'),
('32693','16','','10364','Leader election per second','jmx["kafka.controller:type=ControllerStats,name=LeaderElectionRateAndTimeMs","Count"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'Number of leader elections per second.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cf096fad8b83431a968095ce8f5d3029','0','2','0'),
('32694','16','','10364','Request handler average idle percent','jmx["kafka.server:type=KafkaRequestHandlerPool,name=RequestHandlerAvgIdlePercent","OneMinuteRate"]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'Indicates the percentage of time that the request handler (IO) threads are not in use.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2e7433fbf07d415ea40251a29364264c','0','2','0'),
('32695','16','','10364','Fetch-Consumer request total time, mean','jmx["kafka.network:type=RequestMetrics,name=TotalTimeMs,request=UpdateMetadata","Mean"]','1m','31d','365d','0','0','','ms','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'Average time for a request to update metadata.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c66e750dccd0461e82f8a3b5bd432333','0','2','0'),
('32696','16','','10364','Network processor average idle percent','jmx["kafka.network:type=SocketServer,name=NetworkProcessorAvgIdlePercent","Value"]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'The average percentage of time that the network processors are idle.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','46a7230e12f8404c813e60fae1eaf91d','0','2','0'),
('32697','16','','10364','Uptime','jmx["kafka.server:type=app-info","start-time-ms"]','1m','31d','365d','0','3','','s','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'The service uptime expressed in seconds.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','deca38d699f44dea90961be921d096e4','0','2','0'),
('32698','16','','10364','Version','jmx["kafka.server:type=app-info","version"]','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'Current version of broker.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','75bf053e436e4bb8bb2a94e86a0b194c','0','2','0'),
('32699','16','','10364','Bytes in per second','jmx["kafka.server:type=BrokerTopicMetrics,name=BytesInPerSec","Count"]','1m','31d','365d','0','0','','Bps','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'The rate at which data sent from producers is consumed by the broker.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','47dcd92e0ca64833af8d8112b7c66731','0','2','0'),
('32700','16','','10364','Bytes out per second','jmx["kafka.server:type=BrokerTopicMetrics,name=BytesOutPerSec","Count"]','1m','31d','365d','0','0','','Bps','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'The rate at which data is fetched and read from the broker by consumers.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d71ed49d3a1f4599b239105ab7435724','0','2','0'),
('32701','16','','10364','Bytes rejected per second','jmx["kafka.server:type=BrokerTopicMetrics,name=BytesRejectedPerSec","Count"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'The rate at which bytes rejected per second by the broker.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','15d9fe23872541f0bb3dd1ce33598a61','0','2','0'),
('32702','16','','10364','Client fetch request failed per second','jmx["kafka.server:type=BrokerTopicMetrics,name=FailedFetchRequestsPerSec","Count"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'Number of client fetch request failures per second.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2ce7bb5db0674cb1a9504c4d8af72a00','0','2','0'),
('32703','16','','10364','Produce requests failed per second','jmx["kafka.server:type=BrokerTopicMetrics,name=FailedProduceRequestsPerSec","Count"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'Number of failed produce requests per second.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a26150db6e464090910b837b69e6df8f','0','2','0'),
('32704','16','','10364','Messages in per second','jmx["kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec","Count"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'The rate at which individual messages are consumed by the broker.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','28e488bbe6544d688e741b2ab0397275','0','2','0'),
('32705','16','','10364','Requests in producer purgatory','jmx["kafka.server:type=DelayedOperationPurgatory,name=PurgatorySize,delayedOperation=Fetch","Value"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'Number of requests waiting in producer purgatory.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a3d88b98436040e494911b94ce72de8b','0','2','0'),
('32706','16','','10364','Requests in fetch purgatory','jmx["kafka.server:type=DelayedOperationPurgatory,name=PurgatorySize,delayedOperation=Produce","Value"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'Number of requests waiting in fetch purgatory.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d68c2995725745a5b1f3f4507a5fe49c','0','2','0'),
('32707','16','','10364','Replication maximum lag','jmx["kafka.server:type=ReplicaFetcherManager,name=MaxLag,clientId=Replica","Value"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'The maximum lag between the time that messages are received by the leader replica and by the follower replicas.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fb83a988422c40b792e23b10a0f2ba64','0','2','0'),
('32708','16','','10364','UpdateMetadata request total time, p95','jmx["kafka.network:type=RequestMetrics,name=TotalTimeMs,request=UpdateMetadata","95thPercentile"]','1m','31d','365d','0','0','','ms','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'Time for update metadata requests for 95th percentile.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','230f713f85c748bd9d29d8d086fcc80a','0','2','0'),
('32709','16','','10364','ISR expands per second','jmx["kafka.server:type=ReplicaManager,name=IsrExpandsPerSec","Count"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'The rate at which the number of ISRs in the broker increases.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6125c4144c42452ea20c53c5365ad970','0','2','0'),
('32710','16','','10364','ISR shrink per second','jmx["kafka.server:type=ReplicaManager,name=IsrShrinksPerSec","Count"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'Rate of replicas leaving the ISR pool.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','81eb0364269b40988404bd902ba409f4','0','2','0'),
('32711','16','','10364','Leader count','jmx["kafka.server:type=ReplicaManager,name=LeaderCount","Value"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'The number of replicas for which this broker is the leader.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9489608614ac4d96810362fc52901c55','0','2','0'),
('32712','16','','10364','Partition count','jmx["kafka.server:type=ReplicaManager,name=PartitionCount","Value"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'The number of partitions in the broker.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1a737ce50a274c3696beade89187afd1','0','2','0'),
('32713','16','','10364','Number of reassigning partitions','jmx["kafka.server:type=ReplicaManager,name=ReassigningPartitions","Value"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'The number of reassigning leader partitions on a broker.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','05fb33b225264059a2eef04a91963dbb','0','2','0'),
('32714','16','','10364','Under minimum ISR partition count','jmx["kafka.server:type=ReplicaManager,name=UnderMinIsrPartitionCount","Value"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'The number of partitions under the minimum In-Sync Replica (ISR) count.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b22cee3e3aa849a1b5098e18f42b3b3d','0','2','0'),
('32715','16','','10364','Under replicated partitions','jmx["kafka.server:type=ReplicaManager,name=UnderReplicatedPartitions","Value"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'The number of partitions that have not been fully replicated in the follower replicas (the number of non-reassigning replicas - the number of ISR > 0).','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f55e42503d7d4091bd4487a30bb144b9','0','2','0'),
('32716','16','','10364','Request queue size','jmx["kafka.server:type=Request","queue-size"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'The size of the delay queue.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c2086b19fcf84c1f948ec80726054dcd','0','2','0'),
('32717','16','','10364','ZooKeeper connection status','jmx["kafka.server:type=SessionExpireListener,name=SessionState","Value"]','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'Connection status of broker\'s ZooKeeper session.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e96464452c844cb7bdeaab62f7c7e5ed','0','2','0'),
('32718','16','','10364','ZooKeeper disconnect rate','jmx["kafka.server:type=SessionExpireListener,name=ZooKeeperDisconnectsPerSec","Count"]','1m','31d','365d','0','0','','rps','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'ZooKeeper client disconnect per second.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9852aa0bf3074a319b83f695a9d0deca','0','2','0'),
('32719','16','','10364','ZooKeeper session expiration rate','jmx["kafka.server:type=SessionExpireListener,name=ZooKeeperExpiresPerSec","Count"]','1m','31d','365d','0','0','','rps','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'ZooKeeper client session expiration per second.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3e612950b2c5476e9634ce11f93dfd61','0','2','0'),
('32720','16','','10364','ZooKeeper readonly rate','jmx["kafka.server:type=SessionExpireListener,name=ZooKeeperReadOnlyConnectsPerSec","Count"]','1m','31d','365d','0','0','','rps','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'ZooKeeper client readonly per second.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e9f647cf41214ef7aab480d349f48c21','0','2','0'),
('32721','16','','10364','ZooKeeper sync rate','jmx["kafka.server:type=SessionExpireListener,name=ZooKeeperSyncConnectsPerSec","Count"]','1m','31d','365d','0','0','','rps','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'ZooKeeper client sync per second.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b156305285bf4d508afd1d9c91ae34c0','0','2','0'),
('32722','16','','10364','UpdateMetadata request total time, p99','jmx["kafka.network:type=RequestMetrics,name=TotalTimeMs,request=UpdateMetadata","99thPercentile"]','1m','31d','365d','0','0','','ms','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'Time for update metadata requests for 99th percentile.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8e654055b20748a085178882d7b5bed9','0','2','0'),
('32723','16','','10364','Produce request total time, mean','jmx["kafka.network:type=RequestMetrics,name=TotalTimeMs,request=Produce","Mean"]','1m','31d','365d','0','0','','ms','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'Average time in ms to serve the Produce request.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5bcb9ecd5d77460fb25d2afa5173832b','0','2','0'),
('32724','16','','10364','Unclean leader election per second','jmx["kafka.controller:type=ControllerStats,name=UncleanLeaderElectionsPerSec","Count"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'Number of “unclean” elections per second.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','57efca0b4b1e4d1298d7cf77d8d04c98','0','2','0'),
('32725','16','','10364','Produce response send time, p95','jmx["kafka.network:type=RequestMetrics,name=ResponseSendTimeMs,request=Produce","95thPercentile"]','1m','31d','365d','0','0','','ms','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'The time taken, in milliseconds, to send the response for 95th percentile.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','410c2ecf84fa4f67a9d0b0ca69d77338','0','2','0'),
('32726','16','','10364','Controller state on broker','jmx["kafka.controller:type=KafkaController,name=ActiveControllerCount","Value"]','1m','31d','365d','0','3','','','','',NULL,'190','','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'One indicates that the broker is the controller for the cluster.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9b3ae38007db4fd5a4e0d3baf026b732','0','2','0'),
('32727','16','','10364','Offline partitions count','jmx["kafka.controller:type=KafkaController,name=OfflinePartitionsCount","Value"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'Number of partitions that don\'t have an active leader.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','765a10af1fa6444bbeaa7b1669e3c8b2','0','2','0'),
('32728','16','','10364','Ineligible pending replica deletes','jmx["kafka.controller:type=KafkaController,name=ReplicasIneligibleToDeleteCount","Value"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'The number of ineligible pending replica deletes.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6f4b742f64a04254b607fd49fd7fbfa3','0','2','0'),
('32729','16','','10364','Pending replica deletes','jmx["kafka.controller:type=KafkaController,name=ReplicasToDeleteCount","Value"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'The number of pending replica deletes.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','77069f977a4b4277a13ef329c4cc810f','0','2','0'),
('32730','16','','10364','Ineligible pending topic deletes','jmx["kafka.controller:type=KafkaController,name=TopicsIneligibleToDeleteCount","Value"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'The number of ineligible pending topic deletes.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ddfd3ce0b846434fb4dddf391b956d6f','0','2','0'),
('32731','16','','10364','Pending topic deletes','jmx["kafka.controller:type=KafkaController,name=TopicsToDeleteCount","Value"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'The number of pending topic deletes.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','96c5cb8b0647481e90e0878c8bbc4d4b','0','2','0'),
('32732','16','','10364','Offline log directory count','jmx["kafka.log:type=LogManager,name=OfflineLogDirectoryCount","Value"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'The number of offline log directories (for example, after a hardware failure).','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c11c8666c0ba4f03b8ba15573b7a6ffd','0','2','0'),
('32733','16','','10364','Fetch-Consumer response send time, p95','jmx["kafka.network:type=RequestMetrics,name=ResponseSendTimeMs,request=FetchConsumer","95thPercentile"]','1m','31d','365d','0','0','','ms','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'The time taken, in milliseconds, to send the response for 95th percentile.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4fd9235510964af99e3c174c6a18773b','0','2','0'),
('32734','16','','10364','Fetch-Consumer response send time, p99','jmx["kafka.network:type=RequestMetrics,name=ResponseSendTimeMs,request=FetchConsumer","99thPercentile"]','1m','31d','365d','0','0','','ms','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'The time taken, in milliseconds, to send the response for 99th percentile.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3674bdbc6d7742399478a960c1a24647','0','2','0'),
('32735','16','','10364','Fetch-Consumer response send time, mean','jmx["kafka.network:type=RequestMetrics,name=ResponseSendTimeMs,request=FetchConsumer","Mean"]','1m','31d','365d','0','0','','ms','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'Average time taken, in milliseconds, to send the response.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','04dea48528bb4f56bfcbf93576ba328f','0','2','0'),
('32736','16','','10364','Fetch-Follower response send time, p95','jmx["kafka.network:type=RequestMetrics,name=ResponseSendTimeMs,request=FetchFollower","95thPercentile"]','1m','31d','365d','0','0','','ms','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'The time taken, in milliseconds, to send the response for 95th percentile.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','57af4d4b76f548e897d9e66459928b40','0','2','0'),
('32737','16','','10364','Fetch-Follower response send time, p99','jmx["kafka.network:type=RequestMetrics,name=ResponseSendTimeMs,request=FetchFollower","99thPercentile"]','1m','31d','365d','0','0','','ms','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'The time taken, in milliseconds, to send the response for 99th percentile.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5222217c516a4ab9926afd9ddbe6bfdb','0','2','0'),
('32738','16','','10364','Fetch-Follower response send time, mean','jmx["kafka.network:type=RequestMetrics,name=ResponseSendTimeMs,request=FetchFollower","Mean"]','1m','31d','365d','0','0','','ms','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'Average time taken, in milliseconds, to send the response.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b11586ce79e846b495ed15a112959685','0','2','0'),
('32739','16','','10364','Produce response send time, p99','jmx["kafka.network:type=RequestMetrics,name=ResponseSendTimeMs,request=Produce","99thPercentile"]','1m','31d','365d','0','0','','ms','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'The time taken, in milliseconds, to send the response for 99th percentile.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e5d7139fbd5a4688bba04d5837a21d3b','0','2','0'),
('32740','16','','10364','Produce request total time, p99','jmx["kafka.network:type=RequestMetrics,name=TotalTimeMs,request=Produce","99thPercentile"]','1m','31d','365d','0','0','','ms','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'Time in ms to serve the Produce requests for 99th percentile.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b59938aa9192429890367ca1dc2e74b7','0','2','0'),
('32741','16','','10364','Produce response send time, mean','jmx["kafka.network:type=RequestMetrics,name=ResponseSendTimeMs,request=Produce","Mean"]','1m','31d','365d','0','0','','ms','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'Average time taken, in milliseconds, to send the response.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6e51118940ed4bd192774b8fa44aeb26','0','2','0'),
('32742','16','','10364','Temporary memory size in bytes (Fetch), max','jmx["kafka.network:type=RequestMetrics,name=TemporaryMemoryBytes,request=Fetch","Max"]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'The maximum of temporary memory used for converting message formats and decompressing messages.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','10cd80d9dd0e4b918138aa99dcd28b2a','0','2','0'),
('32743','16','','10364','Temporary memory size in bytes (Fetch), min','jmx["kafka.network:type=RequestMetrics,name=TemporaryMemoryBytes,request=Fetch","Mean"]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'The minimum of temporary memory used for converting message formats and decompressing messages.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9034049c16424d81a22b0f0063657ed6','0','2','0'),
('32744','16','','10364','Temporary memory size in bytes (Produce), max','jmx["kafka.network:type=RequestMetrics,name=TemporaryMemoryBytes,request=Produce","Max"]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'The maximum of temporary memory used for converting message formats and decompressing messages.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','57a5c2d51b4f424baf34ab963eed45a4','0','2','0'),
('32745','16','','10364','Temporary memory size in bytes (Produce), avg','jmx["kafka.network:type=RequestMetrics,name=TemporaryMemoryBytes,request=Produce","Mean"]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'The amount of temporary memory used for converting message formats and decompressing messages.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f28dcdf12db44b30a82b7a1bead52521','0','2','0'),
('32746','16','','10364','Temporary memory size in bytes (Produce), min','jmx["kafka.network:type=RequestMetrics,name=TemporaryMemoryBytes,request=Produce","Min"]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'The minimum of temporary memory used for converting message formats and decompressing messages.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','eddaa3dce4be472ba2133674c845a53f','0','2','0'),
('32747','16','','10364','Fetch-Consumer request total time, p95','jmx["kafka.network:type=RequestMetrics,name=TotalTimeMs,request=FetchConsumer","95thPercentile"]','1m','31d','365d','0','0','','ms','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'Time in ms to serve the Fetch-Consumer request for 95th percentile.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','36b32cc516ce48859fda10b348564446','0','2','0'),
('32748','16','','10364','Fetch-Consumer request total time, p99','jmx["kafka.network:type=RequestMetrics,name=TotalTimeMs,request=FetchConsumer","99thPercentile"]','1m','31d','365d','0','0','','ms','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'Time in ms to serve the specified Fetch-Consumer for 99th percentile.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e08291248e4e42858303c27de441aa1b','0','2','0'),
('32749','16','','10364','Fetch-Consumer request total time, mean','jmx["kafka.network:type=RequestMetrics,name=TotalTimeMs,request=FetchConsumer","Mean"]','1m','31d','365d','0','0','','ms','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'Average time in ms to serve the Fetch-Consumer request.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','16c3eb799dca4ed7b167e1127406766e','0','2','0'),
('32750','16','','10364','Fetch-Follower request total time, p95','jmx["kafka.network:type=RequestMetrics,name=TotalTimeMs,request=FetchFollower","95thPercentile"]','1m','31d','365d','0','0','','ms','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'Time in ms to serve the Fetch-Follower request for 95th percentile.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','01704212d78343c597f92fa151f3372a','0','2','0'),
('32751','16','','10364','Fetch-Follower request total time, p99','jmx["kafka.network:type=RequestMetrics,name=TotalTimeMs,request=FetchFollower","99thPercentile"]','1m','31d','365d','0','0','','ms','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'Time in ms to serve the Fetch-Follower request for 99th percentile.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c7d9215ee14a4d86b5ad38dbad26c247','0','2','0'),
('32752','16','','10364','Fetch-Follower request total time, mean','jmx["kafka.network:type=RequestMetrics,name=TotalTimeMs,request=FetchFollower","Mean"]','1m','31d','365d','0','0','','ms','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'Average time in ms to serve the Fetch-Follower request.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','487274528ec646afb5e04f6edd6619b5','0','2','0'),
('32753','16','','10364','Produce request total time, p95','jmx["kafka.network:type=RequestMetrics,name=TotalTimeMs,request=Produce","95thPercentile"]','1m','31d','365d','0','0','','ms','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'Time in ms to serve the Produce requests for 95th percentile.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3680508a52524de08819abc3d81056be','0','2','0'),
('32754','16','','10364','ZooKeeper client request latency','jmx["kafka.server:type=ZooKeeperClientMetrics,name=ZooKeeperRequestLatencyMs","Count"]','1m','31d','365d','0','3','','ms','','',NULL,NULL,'','','0','{$KAFKA.USER}','{$KAFKA.PASSWORD}','','','0',NULL,'Latency in milliseconds for ZooKeeper requests from broker.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3b6de5f72ed94b928684083fbb65b6cb','0','2','0'),
('32780','19','','10365','Get leader','vault.get_leader','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','{$VAULT.API.SCHEME}://{$VAULT.HOST}:{$VAULT.API.PORT}/v1/sys/leader','','','200','1','0','','X-Vault-Token: {$VAULT.TOKEN}','0','0','0','0','0','0','0','f92c90b99edc42d9b170d775c714fa0a','0','2','0'),
('32781','19','','10365','Get health','vault.get_health','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','{$VAULT.API.SCHEME}://{$VAULT.HOST}:{$VAULT.API.PORT}/v1/sys/health','','','200,429,472,473,503,501','1','0','','X-Vault-Token: {$VAULT.TOKEN}','0','0','0','0','0','0','0','a78063c1186540fb88d3b958b14250bf','0','2','0'),
('32782','19','','10365','Get metrics','vault.get_metrics','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','{$VAULT.API.SCHEME}://{$VAULT.HOST}:{$VAULT.API.PORT}/v1/sys/metrics?format=prometheus','','','200,503,403','1','0','','X-Vault-Token: {$VAULT.TOKEN}','0','0','0','0','0','0','0','4ccc4256252f4345a264db340f4ddbf5','0','2','0'),
('32783','21','','10365','Get tokens','vault.get_tokens','15m','0','0','0','4','','','','',NULL,NULL,'var params = JSON.parse(value);\r\n\r\nparams[\'url\'] = params.scheme + \'://\'\r\n + params.host + \':\'\r\n + params.port + \'/v1/auth/token/lookup-accessor\';\r\n\r\nvar request = new HttpRequest(),\r\n output = [];\r\n\r\nrequest.addHeader(\'X-Vault-Token: \' + params.token);\r\n\r\nparams.accessors.trim().split(/\\x20+/).forEach(function (accessor) {\r\n if (!accessor) {\r\n return;\r\n }\r\n\r\n var response,\r\n data = {},\r\n error_msg = \'\';\r\n\r\n try {\r\n response = request.post(params.url, JSON.stringify({ accessor: accessor }));\r\n Zabbix.log(4, \'[ Vault API ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from Vault API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n if (request.getStatus() !== 200) {\r\n throw response.errors && response.errors[0] || JSON.stringify(response);\r\n }\r\n\r\n if (typeof response !== \'object\' || typeof response.data === \'undefined\') {\r\n throw \'Cannot lookup token from Vault API. Check debug log for more information.\';\r\n }\r\n\r\n data = response.data;\r\n }\r\n catch (error) {\r\n error_msg = error;\r\n }\r\n\r\n output.push({\r\n \'accessor\': accessor,\r\n \'token_name\': data.display_name || \'null\',\r\n \'ttl\': data.ttl || 0,\r\n \'has_ttl\': !!data.expire_time,\r\n \'error\': error_msg.toString()\r\n });\r\n});\r\n\r\nreturn JSON.stringify(output);','','0','','','','','0',NULL,'Get information about tokens via their accessors. Accessors are defined in the macro "{$VAULT.TOKEN.ACCESSORS}".','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e8cb015d45ad4e3b9f87d3cbbae3a980','0','2','0'),
('32890','3','','10174','Cluster name','vmware.vm.cluster.name[{$VMWARE.URL},{$VMWARE.VM.UUID}]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'Cluster name of the guest VM.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','061eed2d40d5427092b50172ea0a9c41','0','2','0'),
('32891','3','','10174','Swapped memory','vmware.vm.memory.size.swapped[{$VMWARE.URL},{$VMWARE.VM.UUID}]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'The amount of guest physical memory swapped out to the VM\'s swap device by ESX.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b064f0e0a53f4f6588827100becb4335','0','2','0'),
('32892','3','','10174','Unshared storage space','vmware.vm.storage.unshared[{$VMWARE.URL},{$VMWARE.VM.UUID}]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'Total storage space, in bytes, occupied by the VM across all datastores that is not shared with any other VM.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','35aa9ee1743e4c1787c426da20f48097','0','2','0'),
('32893','3','','10174','Uncommitted storage space','vmware.vm.storage.uncommitted[{$VMWARE.URL},{$VMWARE.VM.UUID}]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'Additional storage space, in bytes, potentially used by this VM on all datastores.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8183cf2c54774d7eb544f645d5c26b8c','0','2','0'),
('32894','3','','10174','Committed storage space','vmware.vm.storage.committed[{$VMWARE.URL},{$VMWARE.VM.UUID}]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'Total storage space, in bytes, committed to this VM across all datastores.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','13173517c99e4a87aa6750392d14b255','0','2','0'),
('32895','3','','10174','Power state','vmware.vm.powerstate[{$VMWARE.URL},{$VMWARE.VM.UUID}]','1m','31d','365d','0','3','','','','',NULL,'51','','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'The current power state of the VM. One of the following:\r\n- Powered off;\r\n- Powered on;\r\n- Suspended.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0943ff346c9d4cc69fc773843066c473','0','2','0'),
('32896','3','','10174','Memory size','vmware.vm.memory.size[{$VMWARE.URL},{$VMWARE.VM.UUID}]','1h','31d','365d','0','3','','B','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'Total size of configured memory.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9533bc39366443fe8a3808190801441a','0','2','0'),
('32897','3','','10174','Host memory usage','vmware.vm.memory.size.usage.host[{$VMWARE.URL},{$VMWARE.VM.UUID}]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'The amount of host physical memory allocated to the VM, accounting for the amount saved from memory sharing with other VMs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6fcbe4e95fce445aa417b9738004391f','0','2','0'),
('32898','3','','10174','Guest memory usage','vmware.vm.memory.size.usage.guest[{$VMWARE.URL},{$VMWARE.VM.UUID}]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'The amount of guest physical memory that is being used by the VM.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e960399726a240de9ecc12eff65415ae','0','2','0'),
('32899','3','','10174','Shared memory','vmware.vm.memory.size.shared[{$VMWARE.URL},{$VMWARE.VM.UUID}]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'The amount of guest physical memory shared through transparent page sharing.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c6a539ee57bf48f78342358c391c65ea','0','2','0'),
('32900','3','','10174','Number of virtual CPUs','vmware.vm.cpu.num[{$VMWARE.URL},{$VMWARE.VM.UUID}]','1h','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'Number of virtual CPUs assigned to the guest.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bbfb146e74144160b2e47c0f2cdc6c20','0','2','0'),
('32901','3','','10174','Private memory','vmware.vm.memory.size.private[{$VMWARE.URL},{$VMWARE.VM.UUID}]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'Amount of memory backed by host memory and not being shared.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6563409185804ed89b49dfde92edfa10','0','2','0'),
('32902','3','','10174','Compressed memory','vmware.vm.memory.size.compressed[{$VMWARE.URL},{$VMWARE.VM.UUID}]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'The amount of memory currently in the compression cache for this VM.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9e7b9360e4d84e9397b5f0a7ab074726','0','2','0'),
('32903','3','','10174','Ballooned memory','vmware.vm.memory.size.ballooned[{$VMWARE.URL},{$VMWARE.VM.UUID}]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'The amount of guest physical memory that is currently reclaimed through the balloon driver.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fbe7477fd85a4ee39a9226b2c6995446','0','2','0'),
('32904','3','','10174','Hypervisor name','vmware.vm.hv.name[{$VMWARE.URL},{$VMWARE.VM.UUID}]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'Hypervisor name of the guest VM.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fedec469a1d040ae971e0013102e1e7c','0','2','0'),
('32905','3','','10174','Datacenter name','vmware.vm.datacenter.name[{$VMWARE.URL},{$VMWARE.VM.UUID}]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'Datacenter name of the guest VM.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3e70b5d443b942db974b5f92a7acce19','0','2','0'),
('32906','3','','10174','CPU usage','vmware.vm.cpu.usage[{$VMWARE.URL},{$VMWARE.VM.UUID}]','1m','31d','365d','0','3','','Hz','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'Current upper-bound on CPU usage. The upper-bound is based on the host the VM is current running on, as well as limits configured on the VM itself or any parent resource pool. Valid while the VM is running.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ea416ff054cc4031ac6b5cf446156540','0','2','0'),
('32907','3','','10174','CPU ready','vmware.vm.cpu.ready[{$VMWARE.URL},{$VMWARE.VM.UUID}]','1m','31d','365d','0','3','','ms','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'Time that the VM was ready, but unable to get scheduled to run on the physical CPU during the last measurement interval (VMware vCenter/ESXi Server performance counter sampling interval - 20 seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ff0a31df94784cfbbf10deca55f76145','0','2','0'),
('32908','3','','10174','Uptime','vmware.vm.uptime[{$VMWARE.URL},{$VMWARE.VM.UUID}]','1m','31d','365d','0','3','','uptime','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'System uptime.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4c3b010d7ea74da6b0dc1dd4e625bbb0','0','2','0'),
('32909','3','','10175','Hypervisor ping','icmpping[]','1m','31d','365d','0','3','','','','',NULL,'43','','','0','','','','','0',NULL,'Checks if the hypervisor is running and accepting ICMP pings. One of the following:\r\n- Down;\r\n- Up.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3010cb082f23478b858912f944347530','0','2','0'),
('32910','3','','10175','Vendor','vmware.hv.hw.vendor[{$VMWARE.URL},{$VMWARE.HV.UUID}]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'The hardware vendor identification.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','aec06090d16d4bdd8ed3494b448f19d8','0','2','0'),
('32911','3','','10175','Version','vmware.hv.version[{$VMWARE.URL},{$VMWARE.HV.UUID}]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'Dot-separated version string.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','222ad20887cf479b8e81a4c338078d17','0','2','0'),
('32912','3','','10175','Uptime','vmware.hv.uptime[{$VMWARE.URL},{$VMWARE.HV.UUID}]','1m','31d','365d','0','3','','uptime','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'System uptime.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ecad96137494476293b57a0440de3f65','0','2','0'),
('32913','3','','10175','Overall status','vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}]','1m','31d','365d','0','3','','','','',NULL,'53','','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'The overall alarm status of the host. One of the following:\r\n- Gray: Unknown;\r\n- Green: OK;\r\n- Yellow: It might have a problem;\r\n- Red: It has a problem.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0cec294521314c5482233b5b96e90c8d','0','2','0'),
('32915','3','','10175','Number of bytes transmitted','vmware.hv.network.out[{$VMWARE.URL},{$VMWARE.HV.UUID},bps]','1m','31d','365d','0','3','','Bps','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'VMware hypervisor network output statistics (bytes per second).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b013afcba08b47f4a5b590a59f464a58','0','2','0'),
('32916','3','','10175','Number of bytes received','vmware.hv.network.in[{$VMWARE.URL},{$VMWARE.HV.UUID},bps]','1m','31d','365d','0','3','','Bps','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'VMware hypervisor network input statistics (bytes per second).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','33f78ab6ee6c4e7585a83a60cdecab6f','0','2','0'),
('32917','3','','10175','Used memory','vmware.hv.memory.used[{$VMWARE.URL},{$VMWARE.HV.UUID}]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'Physical memory usage on the host.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','93d680d6886d446badbbe995ddd9ba9c','0','2','0'),
('32918','3','','10175','Ballooned memory','vmware.hv.memory.size.ballooned[{$VMWARE.URL},{$VMWARE.HV.UUID}]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'The amount of guest physical memory that is currently reclaimed through the balloon driver. Sum of all guest VMs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','21020a79436a49c38caf8941f6b68da3','0','2','0'),
('32919','3','','10175','Bios UUID','vmware.hv.hw.uuid[{$VMWARE.URL},{$VMWARE.HV.UUID}]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'The hardware BIOS identification.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6c4aab55b3e640779a25ac90b9ca2a43','0','2','0'),
('32920','3','','10175','Cluster name','vmware.hv.cluster.name[{$VMWARE.URL},{$VMWARE.HV.UUID}]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'Cluster name of the guest VM.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','af4d0877fda84753816c817ad76162f1','0','2','0'),
('32921','3','','10175','Model','vmware.hv.hw.model[{$VMWARE.URL},{$VMWARE.HV.UUID}]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'The system model identification.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7ed7ac26da384bcda976badf24ebbec1','0','2','0'),
('32922','3','','10175','Total memory','vmware.hv.hw.memory[{$VMWARE.URL},{$VMWARE.HV.UUID}]','1h','31d','365d','0','3','','B','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'The physical memory size.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ce89c38e6e5d4338a30ee150be1b2b67','0','2','0'),
('32923','3','','10175','CPU threads','vmware.hv.hw.cpu.threads[{$VMWARE.URL},{$VMWARE.HV.UUID}]','1h','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'Number of physical CPU threads on the host.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','89cb0a4809e7454a862f398a0e9d6bed','0','2','0'),
('32924','3','','10175','CPU cores','vmware.hv.hw.cpu.num[{$VMWARE.URL},{$VMWARE.HV.UUID}]','1h','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'Number of physical CPU cores on the host. Physical CPU cores are the processors contained by a CPU package.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c99a5bf2e3904f97b3d361ca20af7883','0','2','0'),
('32925','3','','10175','CPU model','vmware.hv.hw.cpu.model[{$VMWARE.URL},{$VMWARE.HV.UUID}]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'The CPU model.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3f0c35fcef9e4699ac5a1c51d80f8da4','0','2','0'),
('32926','3','','10175','CPU frequency','vmware.hv.hw.cpu.freq[{$VMWARE.URL},{$VMWARE.HV.UUID}]','1h','31d','365d','0','3','','Hz','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'The speed of the CPU cores. This is an average value if there are multiple speeds. The product of CPU frequency and the number of cores is approximately equal to the sum of the MHz for all the individual cores on the host.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ad0053d57b834e6a9776c08e1c455d55','0','2','0'),
('32927','3','','10175','Full name','vmware.hv.fullname[{$VMWARE.URL},{$VMWARE.HV.UUID}]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'The complete product name, including the version information.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5c29837f75f04d7f9a5786691b3dd991','0','2','0'),
('32928','3','','10175','Datacenter name','vmware.hv.datacenter.name[{$VMWARE.URL},{$VMWARE.HV.UUID}]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'Datacenter name of the hypervisor.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e4d27d7f9b9048d4ae6c60cbdd6c0091','0','2','0'),
('32929','3','','10175','CPU usage','vmware.hv.cpu.usage[{$VMWARE.URL},{$VMWARE.HV.UUID}]','1m','31d','365d','0','3','','Hz','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'Aggregated CPU usage across all cores on the host in Hz. This is only available if the host is connected.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1bff6fbd300d4455a787a273d957bba3','0','2','0'),
('32930','3','','10175','Number of guest VMs','vmware.hv.vm.num[{$VMWARE.URL},{$VMWARE.HV.UUID}]','1h','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'Number of guest virtual machines.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2045df572e864834bd4bd97046353f4e','0','2','0'),
('32951','3','','10366','Event log','vmware.eventlog[{$VMWARE.URL},skip]','1m','31d','0','0','2','','','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'Collect VMware event log. See also: https://www.zabbix.com/documentation/7.4/manual/config/items/preprocessing/examples#filtering_vmware_event_log_records','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','64b8a28c1a904540930ebfec5af04872','0','2','0'),
('32952','3','','10366','Full name','vmware.fullname[{$VMWARE.URL}]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'VMware service full name.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ebb8417eceb541b1b51909c745642f05','0','2','0'),
('32953','3','','10366','Version','vmware.version[{$VMWARE.URL}]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'VMware service version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','edfdedd78e9c4c299a1555bd13b2f677','0','2','0'),
('32963','19','','10369','Get server metrics','zookeeper.get_metrics','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','{$ZOOKEEPER.SCHEME}://{$ZOOKEEPER.HOST}:{$ZOOKEEPER.PORT}/{$ZOOKEEPER.COMMAND_URL}/monitor','','','200','1','0','','','0','0','0','0','0','0','0','cf7e83297d6343fb87dcd7848f62ce41','0','2','0'),
('32964','19','','10369','Get connections stats','zookeeper.get_connections_stats','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Get information on client connections to server. Note, depending on the number of client connections this operation may be expensive (i.e. impact server performance).','0','30d','0','',NULL,'','{$ZOOKEEPER.SCHEME}://{$ZOOKEEPER.HOST}:{$ZOOKEEPER.PORT}/{$ZOOKEEPER.COMMAND_URL}/connections','','','200','1','0','','','0','0','0','0','0','0','0','f682f5d6e1664f919872f309371e4079','0','2','0'),
('33018','5','','10048','Utilization of availability manager internal processes, in %','zabbix[process,availability manager,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the availability manager processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5131f979c17a4346a95f8ba77e7133a4','0','2','0'),
('33020','5','','10047','Trend function cache, % of unique requests','zabbix[tcache,cache,pitems]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The effectiveness statistics of the Zabbix trend function cache. The percentage of cached items calculated from the sum of the cached items plus requests.\r\nA low percentage most likely means that the cache size can be reduced.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b14a5ba6c93f4d6c9dfd820640d34e9b','0','2','0'),
('33021','5','','10047','Trend function cache, % of misses','zabbix[tcache,cache,pmisses]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The effectiveness statistics of the Zabbix trend function cache. The percentage of cache misses.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6db1280cb0134e81af8e070ae2356e7b','0','2','0'),
('33022','5','','10047','Utilization of availability manager internal processes, in %','zabbix[process,availability manager,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the availability manager processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8677812221994919a46f6cbba16ad447','0','2','0'),
('33023','5','','10047','Utilization of history poller internal processes, in %','zabbix[process,history poller,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the history poller processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8de74bea977141469cf2d594bc907968','0','2','0'),
('33028','16','','10370','Cluster - Name','jmx["org.apache.cassandra.db:type=StorageService","ClusterName"]','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','147ba5946b994324b1f6d88a8d3b6541','0','2','0'),
('33029','16','','10370','Thread pool SecondaryIndexManagement - Currently blocked task','jmx["org.apache.cassandra.metrics:type=ThreadPools,path=internal,scope=SecondaryIndexManagement,name=CurrentlyBlockedTasks","Count"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Number of tasks that are currently blocked due to queue saturation but on retry will become unblocked.\r\nSecondaryIndexManagement: Performs updates to secondary indexes.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','18b83c6b48164e1f9b8f9ae6058da276','0','2','0'),
('33030','16','','10370','Thread pool HintsDispatcher - Pending tasks','jmx["org.apache.cassandra.metrics:type=ThreadPools,path=internal,scope=HintsDispatcher,name=PendingTasks","Value"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Number of queued tasks queued up on this pool.\r\nHintsDispatcher: Performs hinted handoff.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0efbb0ab0e3244428f5e5917fa73437c','0','2','0'),
('33031','16','','10370','Thread pool HintsDispatcher - Total blocked tasks','jmx["org.apache.cassandra.metrics:type=ThreadPools,path=internal,scope=HintsDispatcher,name=TotalBlockedTasks","Count"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Number of tasks that were blocked due to queue saturation.\r\nHintsDispatcher: Performs hinted handoff.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4eb4e405cc564c9c8a694f085b1905dd','0','2','0'),
('33032','16','','10370','Thread pool MemtableFlushWriter - Currently blocked task','jmx["org.apache.cassandra.metrics:type=ThreadPools,path=internal,scope=MemtableFlushWriter,name=CurrentlyBlockedTasks","Count"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Number of tasks that are currently blocked due to queue saturation but on retry will become unblocked.\r\nMemtableFlushWriter: Writes memtables to disk.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7fd397d3d09a494fb0032d97c93dc462','0','2','0'),
('33033','16','','10370','Thread pool MemtableFlushWriter - Pending tasks','jmx["org.apache.cassandra.metrics:type=ThreadPools,path=internal,scope=MemtableFlushWriter,name=PendingTasks","Value"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Number of queued tasks queued up on this pool.\r\nMemtableFlushWriter: Writes memtables to disk.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c0eaf8af68114b0eb1f16e7cb456a442','0','2','0'),
('33034','16','','10370','Thread pool MemtableFlushWriter - Total blocked tasks','jmx["org.apache.cassandra.metrics:type=ThreadPools,path=internal,scope=MemtableFlushWriter,name=TotalBlockedTasks","Count"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Number of tasks that were blocked due to queue saturation.\r\nMemtableFlushWriter: Writes memtables to disk.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3e402261b410467cb177b3c02dd237f3','0','2','0'),
('33035','16','','10370','Thread pool MemtablePostFlush - Currently blocked task','jmx["org.apache.cassandra.metrics:type=ThreadPools,path=internal,scope=MemtablePostFlush,name=CurrentlyBlockedTasks","Count"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Number of tasks that are currently blocked due to queue saturation but on retry will become unblocked.\r\nMemtablePostFlush: Cleans up commit log after memtable is written to disk.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','868e8d31c8424607a7f0aafd4eff46cf','0','2','0'),
('33036','16','','10370','Thread pool MemtablePostFlush - Pending tasks','jmx["org.apache.cassandra.metrics:type=ThreadPools,path=internal,scope=MemtablePostFlush,name=PendingTasks","Value"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Number of queued tasks queued up on this pool.\r\nMemtablePostFlush: Cleans up commit log after memtable is written to disk.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9ddfd1f388ed4c3a9e81558e626f9525','0','2','0'),
('33037','16','','10370','Thread pool MemtablePostFlush - Total blocked tasks','jmx["org.apache.cassandra.metrics:type=ThreadPools,path=internal,scope=MemtablePostFlush,name=TotalBlockedTasks","Count"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Number of tasks that were blocked due to queue saturation.\r\nMemtablePostFlush: Cleans up commit log after memtable is written to disk.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e00f5f7ac9904ea4981c44a506005d62','0','2','0'),
('33038','16','','10370','Thread pool MigrationStage - Currently blocked task','jmx["org.apache.cassandra.metrics:type=ThreadPools,path=internal,scope=MigrationStage,name=CurrentlyBlockedTasks","Count"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Number of tasks that are currently blocked due to queue saturation but on retry will become unblocked.\r\nMigrationStage: Runs schema migrations.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','480f3d158c764cd3877e0b04189eb60c','0','2','0'),
('33039','16','','10370','Thread pool MigrationStage - Pending tasks','jmx["org.apache.cassandra.metrics:type=ThreadPools,path=internal,scope=MigrationStage,name=PendingTasks","Value"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Number of queued tasks queued up on this pool.\r\nMigrationStage: Runs schema migrations.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f9b504b8b9f34f70a15691a16ee69e39','0','2','0'),
('33040','16','','10370','Thread pool MigrationStage - Total blocked tasks','jmx["org.apache.cassandra.metrics:type=ThreadPools,path=internal,scope=MigrationStage,name=TotalBlockedTasks","Count"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Number of tasks that were blocked due to queue saturation.\r\nMigrationStage: Runs schema migrations.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','79bc07acfef846768a036243efd3d954','0','2','0'),
('33041','16','','10370','Thread pool MiscStage - Currently blocked task','jmx["org.apache.cassandra.metrics:type=ThreadPools,path=internal,scope=MiscStage,name=CurrentlyBlockedTasks","Count"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Number of tasks that are currently blocked due to queue saturation but on retry will become unblocked.\r\nMiscStage: Miscellaneous tasks run here.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','94360cbf59cc4978ab64872f9d0a9100','0','2','0'),
('33042','16','','10370','Thread pool MiscStage - Pending tasks','jmx["org.apache.cassandra.metrics:type=ThreadPools,path=internal,scope=MiscStage,name=PendingTasks","Value"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Number of queued tasks queued up on this pool.\r\nMiscStage: Miscellaneous tasks run here.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0a0ee6e0a2de4da5acfa715959dbae9f','0','2','0'),
('33043','16','','10370','Thread pool MiscStage - Total blocked tasks','jmx["org.apache.cassandra.metrics:type=ThreadPools,path=internal,scope=MiscStage,name=TotalBlockedTasks","Count"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Number of tasks that were blocked due to queue saturation.\r\nMiscStage: Miscellaneous tasks run here.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','807494ed64b54f9a95961fa7031e7d7f','0','2','0'),
('33044','16','','10370','Thread pool SecondaryIndexManagement - Pending tasks','jmx["org.apache.cassandra.metrics:type=ThreadPools,path=internal,scope=SecondaryIndexManagement,name=PendingTasks","Value"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Number of queued tasks queued up on this pool.\r\nSecondaryIndexManagement: Performs updates to secondary indexes.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','622728098a35433bb00b7ab1614665bc','0','2','0'),
('33045','16','','10370','Storage - Hints','jmx["org.apache.cassandra.metrics:type=Storage,name=TotalHints","Count"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Number of hint messages written to this node since [re]start. Includes one entry for each host to be hinted per hint.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3e0332f3770046b5b3ba4216111f3b3f','0','2','0'),
('33046','16','','10370','Thread pool SecondaryIndexManagement - Total blocked tasks','jmx["org.apache.cassandra.metrics:type=ThreadPools,path=internal,scope=SecondaryIndexManagement,name=TotalBlockedTasks","Count"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Number of tasks that were blocked due to queue saturation.\r\nSecondaryIndexManagement: Performs updates to secondary indexes.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0dbd7303e9a64bc581ef8c6619876d2b','0','2','0'),
('33047','16','','10370','Thread pool CounterMutationStage - Currently blocked task','jmx["org.apache.cassandra.metrics:type=ThreadPools,path=request,scope=CounterMutationStage,name=CurrentlyBlockedTasks","Count"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Number of tasks that are currently blocked due to queue saturation but on retry will become unblocked.\r\nCounterMutationStage: Responsible for counter writes.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1ff2b0f1c6a04cfca0d40a68c5a39476','0','2','0'),
('33048','16','','10370','Thread pool CounterMutationStage - Pending tasks','jmx["org.apache.cassandra.metrics:type=ThreadPools,path=request,scope=CounterMutationStage,name=PendingTasks","Value"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Number of queued tasks queued up on this pool.\r\nCounterMutationStage: Responsible for counter writes.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b0cc87b96d0e4f3c8ff2023665d90379','0','2','0'),
('33049','16','','10370','Thread pool CounterMutationStage - Total blocked tasks','jmx["org.apache.cassandra.metrics:type=ThreadPools,path=request,scope=CounterMutationStage,name=TotalBlockedTasks","Count"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Number of tasks that were blocked due to queue saturation.\r\nCounterMutationStage: Responsible for counter writes.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ab2b8d88ecf54b028b88cd757581a419','0','2','0'),
('33050','16','','10370','Thread pool MutationStage - Currently blocked task','jmx["org.apache.cassandra.metrics:type=ThreadPools,path=request,scope=MutationStage,name=CurrentlyBlockedTasks","Count"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Number of tasks that are currently blocked due to queue saturation but on retry will become unblocked.\r\nMutationStage: Responsible for writes (exclude materialized and counter writes).','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ef7d71b026ec4e948acf8d7469b21ee2','0','2','0'),
('33051','16','','10370','Thread pool.MutationStage - Pending tasks','jmx["org.apache.cassandra.metrics:type=ThreadPools,path=request,scope=MutationStage,name=PendingTasks","Value"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Number of queued tasks queued up on this pool.\r\nMutationStage: Responsible for writes (exclude materialized and counter writes).','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b2eb10fe498847c88b395013e4fb516c','0','2','0'),
('33052','16','','10370','Thread pool MutationStage - Total blocked tasks','jmx["org.apache.cassandra.metrics:type=ThreadPools,path=request,scope=MutationStage,name=TotalBlockedTasks","Count"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Number of tasks that were blocked due to queue saturation.\r\nMutationStage: Responsible for writes (exclude materialized and counter writes).','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c6e48ac0ece74e31803dd72310306330','0','2','0'),
('33053','16','','10370','Thread pool ReadStage - Currently blocked task','jmx["org.apache.cassandra.metrics:type=ThreadPools,path=request,scope=ReadStage,name=CurrentlyBlockedTasks","Count"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Number of tasks that are currently blocked due to queue saturation but on retry will become unblocked.\r\nReadStage: Local reads run on this thread pool.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e588e58881b74123bfa6f2d5d948da93','0','2','0'),
('33054','16','','10370','Thread pool ReadStage - Pending tasks','jmx["org.apache.cassandra.metrics:type=ThreadPools,path=request,scope=ReadStage,name=PendingTasks","Value"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Number of queued tasks queued up on this pool.\r\nReadStage: Local reads run on this thread pool.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2770bde0ee834ddebcd773e265fa0aef','0','2','0'),
('33055','16','','10370','Thread pool ReadStage - Total blocked tasks','jmx["org.apache.cassandra.metrics:type=ThreadPools,path=request,scope=ReadStage,name=TotalBlockedTasks","Count"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Number of tasks that were blocked due to queue saturation.\r\nReadStage: Local reads run on this thread pool.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9d9b20c6994c40849048cb5d0fe407ad','0','2','0'),
('33056','16','','10370','Thread pool ViewMutationStage - Currently blocked task','jmx["org.apache.cassandra.metrics:type=ThreadPools,path=request,scope=ViewMutationStage,name=CurrentlyBlockedTasks","Count"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Number of tasks that are currently blocked due to queue saturation but on retry will become unblocked.\r\nViewMutationStage: Responsible for materialized view writes.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','49df0b39c6a944d5ab96a946b233c380','0','2','0'),
('33057','16','','10370','Thread pool ViewMutationStage - Pending tasks','jmx["org.apache.cassandra.metrics:type=ThreadPools,path=request,scope=ViewMutationStage,name=PendingTasks","Value"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Number of queued tasks queued up on this pool.\r\nViewMutationStage: Responsible for materialized view writes.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','967065e24d2c44be96687cd829ea928c','0','2','0'),
('33058','16','','10370','Thread pool ViewMutationStage - Total blocked tasks','jmx["org.apache.cassandra.metrics:type=ThreadPools,path=request,scope=ViewMutationStage,name=TotalBlockedTasks","Count"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Number of tasks that were blocked due to queue saturation.\r\nViewMutationStage: Responsible for materialized view writes.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5e6719076bbd46f78d3fb9b625a0cdda','0','2','0'),
('33059','16','','10370','Cluster - Nodes down','jmx["org.apache.cassandra.net:type=FailureDetector","DownEndpointCount"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f131a5faad964307aa860e3932ba781d','0','2','0'),
('33060','16','','10370','Thread pool HintsDispatcher - Currently blocked task','jmx["org.apache.cassandra.metrics:type=ThreadPools,path=internal,scope=HintsDispatcher,name=CurrentlyBlockedTasks","Count"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Number of tasks that are currently blocked due to queue saturation but on retry will become unblocked.\r\nHintsDispatcher: Performs hinted handoff.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6c9721f341904c5abb4d4a4637f6c80c','0','2','0'),
('33061','16','','10370','Storage - Used (bytes)','jmx["org.apache.cassandra.metrics:type=Storage,name=Load","Count"]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Size, in bytes, of the on disk data size this node manages.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','31fabd5575074957946328b0257568c6','0','2','0'),
('33062','16','','10370','Version','jmx["org.apache.cassandra.db:type=StorageService","ReleaseVersion"]','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1bd80c1ce70045cbadf60ee06a09a989','0','2','0'),
('33063','16','','10370','KeyCache - requests per second','jmx["org.apache.cassandra.metrics:type=Cache,scope=KeyCache,name=Requests","Count"]','1m','31d','365d','0','0','','rps','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Rate of cache requests.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6f6980f9267b4bef93e3a37153ef2184','0','2','0'),
('33064','16','','10370','Compaction - Number of completed tasks','jmx["org.apache.cassandra.metrics:name=CompletedTasks,type=Compaction","Value"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Number of completed compactions since server [re]start.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b202aa02d0b74e8da321a2a19fe33880','0','2','0'),
('33065','16','','10370','Commitlog - Pending tasks','jmx["org.apache.cassandra.metrics:name=PendingTasks,type=CommitLog","Value"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Number of commit log messages written but yet to be fsync\'d.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7176e7e8241648d1b7e81a0b4d2d329c','0','2','0'),
('33066','16','','10370','Latency - Read median','jmx["org.apache.cassandra.metrics:name=ReadLatency,type=Table","50thPercentile"]','1m','31d','365d','0','0','','ms','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Latency read from disk in milliseconds - median.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6e4ad2b5249c465894b87006a38b9542','0','2','0'),
('33067','16','','10370','Latency - Read 75 percentile','jmx["org.apache.cassandra.metrics:name=ReadLatency,type=Table","75thPercentile"]','1m','31d','365d','0','0','','ms','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Latency read from disk in milliseconds - p75.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a8b0499f15a74102b6ca486dee07e99b','0','2','0'),
('33068','16','','10370','Latency - Read 95 percentile','jmx["org.apache.cassandra.metrics:name=ReadLatency,type=Table","95thPercentile"]','1m','31d','365d','0','0','','ms','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Latency read from disk in milliseconds - p95.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5e3a95a9119149889365691d932b8407','0','2','0'),
('33069','16','','10370','Commitlog - Total size','jmx["org.apache.cassandra.metrics:name=TotalCommitLogSize,type=CommitLog","Value"]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Current size, in bytes, used by all the commit log segments.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','70eebcf7274942eeae0a80911b7c9095','0','2','0'),
('33070','16','','10370','Compaction - Total compactions completed','jmx["org.apache.cassandra.metrics:name=TotalCompactionsCompleted,type=Compaction","Count"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Throughput of completed compactions since server [re]start.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','24e44d0bf8254131a032406ffad86732','0','2','0'),
('33071','16','','10370','Latency - Write median','jmx["org.apache.cassandra.metrics:name=WriteLatency,type=Table","50thPercentile"]','1m','31d','365d','0','0','','ms','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Latency write to disk in milliseconds - median.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','31ccd8b50bcb412893e91accb853d755','0','2','0'),
('33072','16','','10370','Latency - Write 75 percentile','jmx["org.apache.cassandra.metrics:name=WriteLatency,type=Table","75thPercentile"]','1m','31d','365d','0','0','','ms','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Latency write to disk in milliseconds - p75.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8f0aa624a54d45f5b6c8ead24694fc58','0','2','0'),
('33073','16','','10370','Latency - Write 95 percentile','jmx["org.apache.cassandra.metrics:name=WriteLatency,type=Table","95thPercentile"]','1m','31d','365d','0','0','','ms','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Latency write to disk in milliseconds - p95.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cc084d0142a94262b585d6b4a7b06468','0','2','0'),
('33074','16','','10370','KeyCache - Capacity','jmx["org.apache.cassandra.metrics:type=Cache,scope=KeyCache,name=Capacity","Value"]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Cache capacity in bytes.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','934eb483047649449bfa221e3cc610d3','0','2','0'),
('33075','16','','10370','KeyCache - Entries','jmx["org.apache.cassandra.metrics:type=Cache,scope=KeyCache,name=Entries","Value"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Total number of cache entries.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c4f8435dfef0426682781711addbf075','0','2','0'),
('33076','16','','10370','KeyCache - HitRate','jmx["org.apache.cassandra.metrics:type=Cache,scope=KeyCache,name=HitRate","Value"]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'All time cache hit rate.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b3351f07502d4cb8a16d4fa730a72a6a','0','2','0'),
('33077','16','','10370','KeyCache - Hits per second','jmx["org.apache.cassandra.metrics:type=Cache,scope=KeyCache,name=Hits","Count"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Rate of cache hits.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3980ae66ea1b415baa24078d26ebeaee','0','2','0'),
('33078','16','','10370','KeyCache - Size','jmx["org.apache.cassandra.metrics:type=Cache,scope=KeyCache,name=Size","Value"]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Total size of occupied cache, in bytes.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f8fed6058d4b45a7afcaf5a057622c19','0','2','0'),
('33079','16','','10370','Storage - Errors','jmx["org.apache.cassandra.metrics:type=Storage,name=Exceptions","Count"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Number of internal exceptions caught. Under normal exceptions this should be zero.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b15aa6f290d14fd1bee094325c444e8b','0','2','0'),
('33080','16','','10370','Client connections - Native','jmx["org.apache.cassandra.metrics:type=Client,name=connectedNativeClients","Value"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Number of clients connected to this nodes native protocol server.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','574ff464fe6b43cfb1d07e4ad1383c33','0','2','0'),
('33081','16','','10370','Client connections - Trifts','jmx["org.apache.cassandra.metrics:type=Client,name=connectedThriftClients","Value"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Number of connected to this nodes thrift clients.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','15d5bd0e534246a7922f8dbcc2a96a21','0','2','0'),
('33082','16','','10370','Latency - Client request read median','jmx["org.apache.cassandra.metrics:type=ClientRequest,scope=Read,name=Latency","50thPercentile"]','1m','31d','365d','0','0','','ms','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Total latency serving data to clients in milliseconds - median.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6c1cf4b7835d4c66ac1e42840199594c','0','2','0'),
('33083','16','','10370','Latency - Client request read 75 percentile','jmx["org.apache.cassandra.metrics:type=ClientRequest,scope=Read,name=Latency","75thPercentile"]','1m','31d','365d','0','0','','ms','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Total latency serving data to clients in milliseconds - p75.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c0606810baad4e438f6d69508cf11581','0','2','0'),
('33084','16','','10370','Latency - Client request read 95 percentile','jmx["org.apache.cassandra.metrics:type=ClientRequest,scope=Read,name=Latency","95thPercentile"]','1m','31d','365d','0','0','','ms','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Total latency serving data to clients in milliseconds - p95.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4ed583b0546c4897b9ff423e36097046','0','2','0'),
('33085','16','','10370','Client request - Read per second','jmx["org.apache.cassandra.metrics:type=ClientRequest,scope=Read,name=Latency","Count"]','1m','31d','365d','0','0','','rps','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'The number of client requests per second.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4f68953ebaca4d089a11c78e04c9170f','0','2','0'),
('33086','16','','10370','Latency - Client request write median','jmx["org.apache.cassandra.metrics:type=ClientRequest,scope=Write,name=Latency","50thPercentile"]','1m','31d','365d','0','0','','ms','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Total latency serving write requests from clients in milliseconds - median.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','72cdc0188682483d8c1d837f2c9c475b','0','2','0'),
('33087','16','','10370','Latency - Client request write 75 percentile','jmx["org.apache.cassandra.metrics:type=ClientRequest,scope=Write,name=Latency","75thPercentile"]','1m','31d','365d','0','0','','ms','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Total latency serving write requests from clients in milliseconds - p75.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a63545e0bf8d4c87818fe719c299b508','0','2','0'),
('33088','16','','10370','Latency - Client request write 95 percentile','jmx["org.apache.cassandra.metrics:type=ClientRequest,scope=Write,name=Latency","95thPercentile"]','1m','31d','365d','0','0','','ms','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Total latency serving write requests from clients in milliseconds - p95.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','955f1f2615a14694bb20eedd07963ada','0','2','0'),
('33089','16','','10370','Client request - Write per second','jmx["org.apache.cassandra.metrics:type=ClientRequest,scope=Write,name=Latency","Count"]','1m','31d','365d','0','0','','rps','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'The number of local write requests per second.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d914d6cd66ad48d09197a30819a386f9','0','2','0'),
('33090','16','','10370','Client request - Write Timeouts','jmx["org.apache.cassandra.metrics:type=ClientRequest,scope=Write,name=Timeouts","Count"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Number of write requests timeouts encountered.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','30b3ba5b576045dabda9b3a0914a1dc6','0','2','0'),
('33091','16','','10370','Compaction - Pending tasks','jmx["org.apache.cassandra.metrics:type=Compaction,name=PendingTasks","Value"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Estimated number of compactions remaining to perform.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e55942a9ef3c41e8993e8c8d849ff026','0','2','0'),
('33092','16','','10370','Dropped messages - Write (Mutation)','jmx["org.apache.cassandra.metrics:type=DroppedMessage,scope=MUTATION,name=Dropped","Count"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Number of dropped regular writes messages.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f4686c81fe1b42c2bbe049ec421b4533','0','2','0'),
('33093','16','','10370','Dropped messages - Read','jmx["org.apache.cassandra.metrics:type=DroppedMessage,scope=READ,name=Dropped","Count"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'Number of dropped regular reads messages.','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2001c9fa67bc4ec4b693d289edc38cfa','0','2','0'),
('33094','16','','10370','Cluster - Nodes up','jmx["org.apache.cassandra.net:type=FailureDetector","UpEndpointCount"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$CASSANDRA.USER}','{$CASSANDRA.PASSWORD}','','','0',NULL,'','0','30d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fb35aef03e254d98a3d29e8180a1a5a5','0','2','0'),
('33126','15','','10316','Calculated value of innodb_log_file_size','mysql.innodb_log_file_size','1m','31d','365d','0','0','','','','',NULL,NULL,'(last(//mysql.innodb_os_log_written) - last(//mysql.innodb_os_log_written,#1:now-1h)) / {$MYSQL.INNODB_LOG_FILES}','','0','','','','','0',NULL,'`Innodb_log_file_size` is calculated as: (`innodb_os_log_written`-`innodb_os_log_written`(time shift -1h))/`{$MYSQL.INNODB_LOG_FILES}`. `Innodb_log_file_size` is the size in bytes of the each InnoDB redo log file in the log group. The combined size can be no more than 512 GB. Larger values mean less disk I/O due to less flushing checkpoint activity, but also slower recovery from a crash.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e5413d85449e4baea683c6365808cc17','0','2','0'),
('33140','15','','10320','Calculated value of innodb_log_file_size','mysql.innodb_log_file_size','1m','31d','365d','0','0','','','','',NULL,NULL,'(last(//mysql.innodb_os_log_written) - last(//mysql.innodb_os_log_written,#1:now-1h)) / {$MYSQL.INNODB_LOG_FILES}','','0','','','','','0',NULL,'`Innodb_log_file_size` is calculated as: (`innodb_os_log_written`-`innodb_os_log_written`(time shift -1h))/`{$MYSQL.INNODB_LOG_FILES}`. `Innodb_log_file_size` is the size in bytes of the each InnoDB redo log file in the log group. The combined size can be no more than 512 GB. Larger values mean less disk I/O due to less flushing checkpoint activity, but also slower recovery from a crash.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e35cf67b6d2f44ffae908296faccfa50','0','2','0'),
('33154','15','','10317','Calculated value of innodb_log_file_size','mysql.innodb_log_file_size','1m','31d','365d','0','0','','','','',NULL,NULL,'(last(//mysql.innodb_os_log_written) - last(//mysql.innodb_os_log_written,#1:now-1h)) / {$MYSQL.INNODB_LOG_FILES}','','0','','','','','0',NULL,'`Innodb_log_file_size` is calculated as: (`innodb_os_log_written`-`innodb_os_log_written`(time shift -1h))/`{$MYSQL.INNODB_LOG_FILES}`. `Innodb_log_file_size` is the size in bytes of the each InnoDB redo log file in the log group. The combined size can be no more than 512 GB. Larger values mean less disk I/O due to less flushing checkpoint activity, but also slower recovery from a crash.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4680fd31a2514e3f827b0060a6d5bfc4','0','2','0'),
('33172','0','','10329','Custom queries','pgsql.custom.query["{$PG.CONNSTRING.AGENT2}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}",""]','1m','1h','0','1','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Execute custom queries from file *.sql (check for option Plugins.Postgres.CustomQueriesPath at agent configuration).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1cab825fac8a49ba96dfbf7a696be729','0','2','0'),
('33173','15','','10329','Cache hit ratio, %','pgsql.cache.hit','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//pgsql.dbstat.sum.blks_hit.rate) * 100 / (last(//pgsql.dbstat.sum.blks_hit.rate) + last(//pgsql.dbstat.sum.blks_read.rate))','','0','','','','','0',NULL,'Cache hit ratio.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b98d2328694f44598f2177b3f93d4b90','0','2','0'),
('33174','0','','10329','Age of oldest xid','pgsql.oldest.xid["{$PG.CONNSTRING.AGENT2}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Age of oldest xid.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0377fe6f2f8d4539b649c636ab012415','0','2','0'),
('33175','0','','10329','Get replication','pgsql.replication.process["{$PG.CONNSTRING.AGENT2}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Collect metrics from the pg_stat_replication, which contains information about the WAL sender process, showing statistics about replication to that sender\'s connected standby server.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4120befb754d47e9a931f868c28badb9','0','2','0'),
('33181','20','discovery[{#SENSOR_TYPE},1.3.6.1.2.1.99.1.1.1.1,{#SENSOR_INFO},1.3.6.1.2.1.47.1.1.1.1.2,{#SENSOR_PRECISION},1.3.6.1.2.1.99.1.1.1.3,{#THRESHOLD_LO_WARN},1.3.6.1.4.1.30065.3.12.1.1.1.1,{#THRESHOLD_LO_CRIT},1.3.6.1.4.1.30065.3.12.1.1.1.2,{#THRESHOLD_HI_WARN},1.3.6.1.4.1.30065.3.12.1.1.1.3,{#THRESHOLD_HI_CRIT},1.3.6.1.4.1.30065.3.12.1.1.1.4]','10254','Get sensors','sensors.get','1h','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Gets sensors with type, description, and thresholds.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8954dfa9dc4445ad987f764e35c7db6e','0','2','0'),
('33184','20','get[1.3.6.1.4.1.33333.5.64.0]','10371','Array: Sweep Pmax','array.sweep_pmax[arrayMaxPowerSweep.0]','1m','31d','365d','0','0','','W','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PROSTAR-MPPT\r\nArray Max. Power (sweep)\r\n Description:Array Max. Power (last sweep)\r\n Scaling Factor:1.0\r\n Units:W\r\n Range:[0.0, 500]\r\n Modbus address:0x003E','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a517a7aafbab426eb6ced8d5f57c1fa4','0','2','0'),
('33185','20','get[1.3.6.1.4.1.33333.5.53.0]','10371','Load: State','load.state[loadState.0]','1m','31d','365d','0','0','','','','',NULL,'193','','','0','','','','','0',NULL,'MIB: PROSTAR-MPPT\r\nLoad State\r\n Description:Load State\r\n Modbus address:0x002E\r\n\r\n 0: Start\r\n1: Normal\r\n2: LvdWarning\r\n3: Lvd\r\n4: Fault\r\n5: Disconnect\r\n6: NormalOff\r\n7: Override\r\n8: NotUsed','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ae927b5cba5b43f5a2136fd3ee71b63d','0','2','0'),
('33186','20','get[1.3.6.1.4.1.33333.5.39.0]','10371','Temperature: Battery','temp.battery[batteryTemperature.0]','1m','31d','365d','0','0','','C','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PROSTAR-MPPT\r\nBattery Temperature\r\n Description:Battery Temperature\r\n Scaling Factor:1.0\r\n Units:deg C\r\n Range:[-128, 127]\r\n Modbus address:0x001B','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1a8e79f49e86429abc80dd29598299ee','0','2','0'),
('33187','20','get[1.3.6.1.4.1.33333.5.40.0]','10371','Temperature: Ambient','temp.ambient[ambientTemperature.0]','1m','31d','365d','0','0','','C','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PROSTAR-MPPT\r\nAmbient Temperature\r\n Description:Ambient Temperature\r\n Scaling Factor:1.0\r\n Units:deg C\r\n Range:[-128, 127]\r\n Modbus address:0x001C','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9a87cdcf65184059be334e986bcf801d','0','2','0'),
('33188','20','get[1.3.6.1.4.1.33333.5.48.0]','10371','Battery: Target Voltage','target.voltage[targetVoltage.0]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PROSTAR-MPPT\r\nTarget Voltage\r\n Description:Target Regulation Voltage\r\n Scaling Factor:1.0\r\n Units:V\r\n Range:[0.0, 80.0]\r\n Modbus address:0x0024','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','20ce95acdff6486684461f10579a73b4','0','2','0'),
('33189','20','get[1.3.6.1.2.1.1.3.0]','10371','Status: Uptime (network)','status.net.uptime','1m','31d','365d','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'The time (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','526ee94df484462a9264e57d92954e64','0','2','0'),
('33190','20','get[1.3.6.1.4.1.33333.5.54.0]','10371','Status: Load Faults','status.load_faults[loadFaults.0]','1m','1h','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PROSTAR-MPPT\r\nDescription:Array Faults\r\nModbus address:0x0022','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fb4d2147a8224b599ad908eca1b019e4','0','2','0'),
('33191','20','get[1.3.6.1.4.1.33333.5.46.0]','10371','Status: Array Faults','status.array_faults[arrayFaults.0]','1m','1h','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PROSTAR-MPPT\r\nDescription:Array Faults\r\nModbus address:0x0022','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8fbb5c650fa040c892a1d10a17fbbf14','0','2','0'),
('33192','20','get[1.3.6.1.4.1.33333.5.59.0]','10371','Status: Alarms','status.alarms[alarms.0]','1m','1h','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PROSTAR-MPPT\r\nDescription:Alarms\r\nModbus addresses:H=0x0038 L=0x0039','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d44cb5d7db31402dae79275a9148817d','0','2','0'),
('33193','20','get[1.3.6.1.4.1.33333.5.32.0]','10371','Load: Voltage','load.voltage[loadVoltage.0]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PROSTAR-MPPT\r\nLoad Voltage\r\n Description:Load Voltage\r\n Scaling Factor:1.0\r\n Units:V\r\n Range:[0, 80]\r\n Modbus address:0x0014','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','47894752dd1d41f1aa882387acf6dc3a','0','2','0'),
('33194','20','get[1.3.6.1.4.1.33333.5.34.0]','10371','Load: Current','load.current[loadCurrent.0]','1m','31d','365d','0','0','','A','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PROSTAR-MPPT\r\nLoad Current\r\n Description:Load Current\r\n Scaling Factor:1.0\r\n Units:A\r\n Range:[0, 60]\r\n Modbus address:0x0016','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','29a7d76472fb4025bc78fbeab273e955','0','2','0'),
('33195','20','get[1.3.6.1.4.1.33333.5.63.0]','10371','Array: Sweep Vmp','array.sweep_vmp[arrayVmp.0]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PROSTAR-MPPT\r\nArray Vmp\r\n Description:Array Max. Power Point Voltage\r\n Scaling Factor:1.0\r\n Units:V\r\n Range:[0.0, 5000.0]\r\n Modbus address:0x003D','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7714c76013e341f8b6753cc5a50a960f','0','2','0'),
('33196','20','get[1.3.6.1.4.1.33333.5.56.0]','10371','Counter: Load Amp-hours','counter.load_amp_hours[ahLoadResettable.0]','1m','31d','365d','0','0','','Ah','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PROSTAR-MPPT\r\nDescription:Ah Load (Resettable)\r\nScaling Factor:0.1\r\nUnits:Ah\r\nRange:[0.0, 4294967294]\r\nModbus addresses:H=0x0032 L=0x0033','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c72ef851c2d240c9835c1703cec49fd6','0','2','0'),
('33197','20','get[1.3.6.1.4.1.33333.5.51.0]','10371','Counter: Charge KW-hours','counter.charge_kw_hours[kwhChargeResettable.0]','1m','31d','365d','0','0','','!kWh','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PROSTAR-MPPT\r\nkWh Charge (Resettable)\r\nDescription:Kilowatt Hours Charge (Resettable)\r\nScaling Factor:1.0\r\nUnits:kWh\r\nRange:[0.0, 65535]\r\nModbus address:0x002A','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4a53a2211a1249d59369ad65762ffe47','0','2','0'),
('33198','20','get[1.3.6.1.4.1.33333.5.49.0]','10371','Counter: Charge Amp-hours','counter.charge_amp_hours[ahChargeResettable.0]','1m','31d','365d','0','0','','Ah','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PROSTAR-MPPT\r\nAh Charge (Resettable)\r\n Description:Ah Charge (Resettable)\r\n Scaling Factor:0.1\r\n Units:Ah\r\n Range:[0.0, 4294967294]\r\n Modbus addresses:H=0x0026 L=0x0027','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','009eb72ff6674da49d1dd85a6f9459cf','0','2','0'),
('33199','20','get[1.3.6.1.4.1.33333.5.45.0]','10371','Battery: Charge State','charge.state[chargeState.0]','1m','31d','365d','0','0','','','','',NULL,'192','','','0','','','','','0',NULL,'MIB: PROSTAR-MPPT\r\nCharge State\r\n Description:Control State\r\n Modbus address:0x0021\r\n\r\n 0: Start\r\n 1: NightCheck\r\n 2: Disconnect\r\n 3: Night\r\n 4: Fault\r\n 5: BulkMppt\r\n 6: Absorption\r\n 7: Float\r\n 8: Equalize\r\n 9: Slave\r\n 10: Fixed','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1b1b61995c0d4d89a7f9ad4e14c3541f','0','2','0'),
('33200','20','get[1.3.6.1.4.1.33333.5.33.0]','10371','Battery: Charge Current','charge.current[chargeCurrent.0]','1m','31d','365d','0','0','','A','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PROSTAR-MPPT\r\nCharge Current\r\n Description:Charge Current\r\n Scaling Factor:1.0\r\n Units:A\r\n Range:[0, 40]\r\n Modbus address:0x0010','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ed1d54fce0904b7c9d0895a094f55108','0','2','0'),
('33201','20','get[1.3.6.1.4.1.33333.5.30.0]','10371','Battery: Battery Voltage discovery','battery.voltage.discovery[batteryTerminalVoltage.0]','15m','0','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PROSTAR-MPPT','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fe5c3b724e894573acdaf522a2213adb','0','2','0'),
('33202','20','get[1.3.6.1.4.1.33333.5.31.0]','10371','Array: Voltage','array.voltage[arrayVoltage.0]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PROSTAR-MPPT\r\nArray Voltage\r\n Description:Array Voltage\r\n Scaling Factor:1.0\r\n Units:V\r\n Range:[0, 80]\r\n Modbus address:0x0013','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','41a1118e1be3417daa79faace733d861','0','2','0'),
('33203','20','get[1.3.6.1.4.1.33333.5.65.0]','10371','Array: Sweep Voc','array.sweep_voc[arrayVoc.0]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PROSTAR-MPPT\r\nArray Voc\r\n Description:Array Open Circuit Voltage\r\n Scaling Factor:1.0\r\n Units:V\r\n Range:[0.0, 80.0]\r\n Modbus address:0x003F','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','379ab969ad784968a1090ff98f5801ff','0','2','0'),
('33204','20','get[1.3.6.1.4.1.33333.5.38.0]','10371','Temperature: Heatsink','temp.heatsink[heatsinkTemperature.0]','1m','31d','365d','0','0','','C','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PROSTAR-MPPT\r\nHeatsink Temperature\r\n Description:Heatsink Temperature\r\n Scaling Factor:1.0\r\n Units:deg C\r\n Range:[-128, 127]\r\n Modbus address:0x001A','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7d0cf28c0d334154971738df11775d1f','0','2','0'),
('33207','20','get[1.3.6.1.4.1.33333.6.31.0]','10372','Array: Voltage','array.voltage[arrayVoltage.0]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PROSTAR-PWM\r\nDescription:Array Voltage\r\nScaling Factor:1.0\r\nUnits:V\r\nRange:[0, 80]\r\nModbus address:0x0013','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','953fb8b3c23f420bb6132874ce3e33e2','0','2','0'),
('33208','20','get[1.3.6.1.4.1.33333.6.59.0]','10372','Status: Alarms','status.alarms[alarms.0]','1m','1h','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PROSTAR-PWM\r\nDescription:Alarms\r\nModbus addresses:H=0x0038 L=0x0039','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7c1c1e03425c4b4bb176cf45458b916a','0','2','0'),
('33209','20','get[1.3.6.1.4.1.33333.6.39.0]','10372','Temperature: Battery','temp.battery[batteryTemperature.0]','1m','31d','365d','0','0','','C','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PROSTAR-PWM\r\nDescription:Battery Temperature\r\nScaling Factor:1.0\r\nUnits:deg C\r\nRange:[-128, 127]\r\nModbus address:0x001B','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','39763f7fccd94aefb720a34871c0962b','0','2','0'),
('33210','20','get[1.3.6.1.4.1.33333.6.40.0]','10372','Temperature: Ambient','temp.ambient[ambientTemperature.0]','1m','31d','365d','0','0','','C','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PROSTAR-PWM\r\nDescription:Ambient Temperature\r\nScaling Factor:1.0\r\nUnits:deg C\r\nRange:[-128, 127]\r\nModbus address:0x001C','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','13d3479a7b5940b5a53d5f13bea9e2d1','0','2','0'),
('33211','20','get[1.3.6.1.4.1.33333.6.48.0]','10372','Battery: Target Voltage','target.voltage[targetVoltage.0]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PROSTAR-PWM\r\nDescription:Target Regulation Voltage\r\nScaling Factor:1.0\r\nUnits:V\r\nRange:[0.0, 80.0]\r\nModbus address:0x0024','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f4b7bfb000754a17b4719863d3755519','0','2','0'),
('33212','20','get[1.3.6.1.2.1.1.3.0]','10372','Status: Uptime (network)','status.net.uptime','1m','31d','365d','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'The time (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','42f6a75d923d4262b37d85c4f7d1d322','0','2','0'),
('33213','20','get[1.3.6.1.4.1.33333.6.54.0]','10372','Status: Load Faults','status.load_faults[loadFaults.0]','1m','1h','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PROSTAR-PWM\r\nDescription:Load Faults\r\nModbus address:0x002F','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1cd47d04af104cb9ab1cd7dc745a6aea','0','2','0'),
('33214','20','get[1.3.6.1.4.1.33333.6.46.0]','10372','Status: Array Faults','status.array_faults[arrayFaults.0]','1m','1h','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PROSTAR-PWM\r\nDescription:Array Faults\r\nModbus address:0x0022','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2517d96e51c14372a0336c9a6ed5d078','0','2','0'),
('33215','20','get[1.3.6.1.4.1.33333.6.32.0]','10372','Load: Voltage','load.voltage[loadVoltage.0]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PROSTAR-PWM\r\nDescription:Load Voltage\r\nScaling Factor:1.0\r\nUnits:V\r\nRange:[0, 80]\r\nModbus address:0x0014','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cccc0976a62b47b1a558d521704c125d','0','2','0'),
('33216','20','get[1.3.6.1.4.1.33333.6.30.0]','10372','Battery: Battery Voltage discovery','battery.voltage.discovery[batteryTerminalVoltage.0]','15m','0','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PROSTAR-PWM','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a80ad3ace9b14446bc5fd5d6aaa5af87','0','2','0'),
('33217','20','get[1.3.6.1.4.1.33333.6.53.0]','10372','Load: State','load.state[loadState.0]','1m','31d','365d','0','0','','','','',NULL,'195','','','0','','','','','0',NULL,'MIB: PROSTAR-PWM\r\nDescription:Load State\r\nModbus address:0x002E\r\n\r\n0: Start\r\n1: Normal\r\n2: LvdWarning\r\n3: Lvd\r\n4: Fault\r\n5: Disconnect\r\n6: NormalOff\r\n7: Override\r\n8: NotUsed','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','14b3ca3869374f54a467e5e9017f918a','0','2','0'),
('33218','20','get[1.3.6.1.4.1.33333.6.34.0]','10372','Load: Current','load.current[loadCurrent.0]','1m','31d','365d','0','0','','A','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PROSTAR-PWM\r\nDescription:Load Current\r\nScaling Factor:1.0\r\nUnits:A\r\nRange:[0, 60]\r\nModbus address:0x0016','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','dcade8607cf142a2b88333f9880448fc','0','2','0'),
('33219','20','get[1.3.6.1.4.1.33333.6.56.0]','10372','Counter: Load Amp-hours','counter.load_amp_hours[ahLoadResettable.0]','1m','31d','365d','0','0','','Ah','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PROSTAR-PWM\r\nDescription:Ah Load (Resettable)\r\nScaling Factor:0.1\r\nUnits:Ah\r\nRange:[0.0, 4294967294]\r\nModbus addresses:H=0x0032 L=0x0033','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','104a7db1c27d40b3bbee506f7f922393','0','2','0'),
('33220','20','get[1.3.6.1.4.1.33333.6.51.0]','10372','Counter: Charge KW-hours','counter.charge_kw_hours[kwhChargeResettable.0]','1m','31d','365d','0','0','','!kWh','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PROSTAR-PWM\r\nDescription:Kilowatt Hours Charge (Resettable)\r\nScaling Factor:1.0\r\nUnits:kWh\r\nRange:[0.0, 65535]\r\nModbus address:0x002A','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0e7124df3f2b4298b1a13576d0b2d5e7','0','2','0'),
('33221','20','get[1.3.6.1.4.1.33333.6.49.0]','10372','Counter: Charge Amp-hours','counter.charge_amp_hours[ahChargeResettable.0]','1m','31d','365d','0','0','','Ah','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PROSTAR-PWM\r\nDescription:Ah Charge (Resettable)\r\nScaling Factor:0.1\r\nUnits:Ah\r\nRange:[0.0, 4294967294]\r\nModbus addresses:H=0x0026 L=0x0027','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8acd2e7944694a828cf9b739b75513d9','0','2','0'),
('33222','20','get[1.3.6.1.4.1.33333.6.45.0]','10372','Battery: Charge State','charge.state[chargeState.0]','1m','31d','365d','0','0','','','','',NULL,'194','','','0','','','','','0',NULL,'MIB: PROSTAR-PWM\r\nDescription:Control State\r\nModbus address:0x0021\r\n\r\n0: Start\r\n1: NightCheck\r\n2: Disconnect\r\n3: Night\r\n4: Fault\r\n5: Bulk\r\n6: Pwm\r\n7: Float\r\n8: Equalize','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a7ae2d3b911e4bb5a7eeb770470245a5','0','2','0'),
('33223','20','get[1.3.6.1.4.1.33333.6.33.0]','10372','Battery: Charge Current','charge.current[chargeCurrent.0]','1m','31d','365d','0','0','','A','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PROSTAR-PWM\r\nDescription:Charge Current\r\nScaling Factor:1.0\r\nUnits:A\r\nRange:[0, 40]\r\nModbus address:0x0011','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','148008b117c94155ba81600e3050ab25','0','2','0'),
('33224','20','get[1.3.6.1.4.1.33333.6.38.0]','10372','Temperature: Heatsink','temp.heatsink[heatsinkTemperature.0]','1m','31d','365d','0','0','','C','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PROSTAR-PWM\r\nDescription:Heatsink Temperature\r\nScaling Factor:1.0\r\nUnits:deg C\r\nRange:[-128, 127]\r\nModbus address:0x001A','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1d13bd3ea24a4fcab3cd5b7586e6033a','0','2','0'),
('33227','20','get[1.3.6.1.4.1.33333.3.57.0]','10373','Array: Sweep Pmax','array.sweep_pmax[arrayMaxPowerSweep.0]','1m','31d','365d','0','0','','W','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SUNSAVER-MPPT\r\nDescription:Array Open Circuit Voltage\r\nScaling Factor:0.0030517578125\r\nUnits:V\r\nRange:[0.0, 80.0]\r\nModbus address:0x002A','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9836b1fc81b84a44b2a708291bd5bf1a','0','2','0'),
('33228','20','get[1.3.6.1.4.1.33333.3.46.0]','10373','Load: State','load.state[loadState.0]','1m','31d','365d','0','0','','','','',NULL,'197','','','0','','','','','0',NULL,'MIB: SUNSAVER-MPPT\r\nDescription:Load State\r\nModbus address:0x001A\r\n\r\n0: Start\r\n1: Normal\r\n2: LvdWarning\r\n3: Lvd\r\n4: Fault\r\n5: Disconnect\r\n6: NormalOff\r\n7: Override\r\n8: NotUsed','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c5dfef2deee445ec88e2d63dbfbbaf68','0','2','0'),
('33229','20','get[1.3.6.1.4.1.33333.3.36.0]','10373','Temperature: Battery','temp.battery[batteryTemperature.0]','1m','31d','365d','0','0','','C','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SUNSAVER-MPPT\r\nDescription:Heatsink Temperature\r\nScaling Factor:1.0\r\nUnits:deg C\r\nRange:[-128, 127]\r\nModbus address:0x000D','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','157faa85ae244950b4a114b95bad6d50','0','2','0'),
('33230','20','get[1.3.6.1.4.1.33333.3.37.0]','10373','Temperature: Ambient','temp.ambient[ambientTemperature.0]','1m','31d','365d','0','0','','C','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SUNSAVER-MPPT\r\nDescription:Ambient Temperature\r\nScaling Factor:1.0\r\nUnits:deg C\r\nRange:[-128, 127]\r\nModbus address:0x000F','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','430cf6fcb9b74943a8ca7f1d9d06fa56','0','2','0'),
('33231','20','get[1.3.6.1.4.1.33333.3.42.0]','10373','Battery: Target Voltage','target.voltage[targetVoltage.0]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SUNSAVER-MPPT\r\nDescription:Target Regulation Voltage\r\nScaling Factor:0.0030517578125\r\nUnits:V\r\nRange:[0.0, 80.0]\r\nModbus address:0x0014','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','52afa576b83b49e69ec8d379fbc42965','0','2','0'),
('33232','20','get[1.3.6.1.2.1.1.3.0]','10373','Status: Uptime (network)','status.net.uptime','1m','31d','365d','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'The time (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','63512390f2a04885bf8d0e19653a72b1','0','2','0'),
('33233','20','get[1.3.6.1.4.1.33333.3.47.0]','10373','Status: Load Faults','status.load_faults[loadFaults.0]','1m','1h','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SUNSAVER-MPPT\r\nDescription:Array Faults\r\nModbus address:0x0012','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','24762b0c264745548150a4bd5913156f','0','2','0'),
('33234','20','get[1.3.6.1.4.1.33333.3.40.0]','10373','Status: Array Faults','status.array_faults[arrayFaults.0]','1m','1h','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SUNSAVER-MPPT\r\nDescription:Array Faults\r\nModbus address:0x0012','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f44756455697466cb905aa6ae4d0220d','0','2','0'),
('33235','20','get[1.3.6.1.4.1.33333.3.52.0]','10373','Status: Alarms','status.alarms[alarms.0]','1m','1h','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SUNSAVER-MPPT\r\nDescription:Alarms\r\nModbus addresses:H=0x0023 L=0x0024','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','91f2c1893b594e808032eb0140247d7a','0','2','0'),
('33236','20','get[1.3.6.1.4.1.33333.3.32.0]','10373','Load: Voltage','load.voltage[loadVoltage.0]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SUNSAVER-MPPT\r\nDescription:Load Voltage\r\nScaling Factor:0.0030517578125\r\nUnits:V\r\nRange:[0, 80]\r\nModbus address:0x000A','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a9ca69fcedbb4524a8eb4b92b975008e','0','2','0'),
('33237','20','get[1.3.6.1.4.1.33333.3.34.0]','10373','Load: Current','load.current[loadCurrent.0]','1m','31d','365d','0','0','','A','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SUNSAVER-MPPT\r\nDescription:Load Current\r\nScaling Factor:0.002415771484375\r\nUnits:A\r\nRange:[0, 60]\r\nModbus address:0x000C','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6491ee507d9a4c099852d33e57df48a9','0','2','0'),
('33238','20','get[1.3.6.1.4.1.33333.3.56.0]','10373','Array: Sweep Vmp','array.sweep_vmp[arrayVmp.0]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SUNSAVER-MPPT\r\nDescription:Array Max. Power Point Voltage\r\nScaling Factor:0.0030517578125\r\nUnits:V\r\nRange:[0.0, 5000.0]\r\nModbus address:0x0028','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0842746ca41c44128a575113307259e2','0','2','0'),
('33239','20','get[1.3.6.1.4.1.33333.3.49.0]','10373','Counter: Load Amp-hours','counter.load_amp_hours[ahLoadResettable.0]','1m','31d','365d','0','0','','Ah','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SUNSAVER-MPPT\r\nDescription:Ah Load(Resettable)\r\nScaling Factor:0.1\r\nUnits:Ah\r\nRange:[0.0, 4294967294]\r\nModbus addresses:H=0x001D L=0x001E','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','28e679eace174d289ca5ccf90f3b9150','0','2','0'),
('33240','20','get[1.3.6.1.4.1.33333.3.45.0]','10373','Counter: Charge KW-hours','counter.charge_kw_hours[kwhCharge.0]','1m','31d','365d','0','3','','!kWh','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SUNSAVER-MPPT','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f6d0f89c747b4418ad34c32b5ac9a5b9','0','2','0'),
('33241','20','get[1.3.6.1.4.1.33333.3.43.0]','10373','Counter: Charge Amp-hours','counter.charge_amp_hours[ahChargeResettable.0]','1m','31d','365d','0','0','','Ah','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SUNSAVER-MPPT\r\nDescription:Ah Charge(Resettable)\r\nScaling Factor:0.1\r\nUnits:Ah\r\nRange:[0.0, 4294967294]\r\nModbus addresses:H=0x0015 L=0x0016','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','149545b9154044e3af27b4e9ad809c0e','0','2','0'),
('33242','20','get[1.3.6.1.4.1.33333.3.39.0]','10373','Battery: Charge State','charge.state[chargeState.0]','1m','31d','365d','0','0','','','','',NULL,'196','','','0','','','','','0',NULL,'MIB: SUNSAVER-MPPT\r\nDescription:Control State\r\nModbus address:0x0011\r\n\r\n0: Start\r\n1: NightCheck\r\n2: Disconnect\r\n3: Night\r\n4: Fault\r\n5: BulkMppt\r\n6: Pwm\r\n7: Float\r\n8: Equalize','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4da765c8e26540c190ea07be08b87abc','0','2','0'),
('33243','20','get[1.3.6.1.4.1.33333.3.33.0]','10373','Battery: Charge Current','charge.current[chargeCurrent.0]','1m','31d','365d','0','0','','A','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SUNSAVER-MPPT\r\nDescription:Target Regulation Voltage\r\nScaling Factor:0.0030517578125\r\nUnits:V\r\nRange:[0.0, 80.0]\r\nModbus address:0x0014','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a36313ef0933403788a42de8a62b4838','0','2','0'),
('33244','20','get[1.3.6.1.4.1.33333.3.30.0]','10373','Battery: Battery Voltage discovery','battery.voltage.discovery[batteryVoltage.0]','15m','0','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SUNSAVER-MPPT','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f8803a1390b745f08673d4ea998548a9','0','2','0'),
('33245','20','get[1.3.6.1.4.1.33333.3.31.0]','10373','Array: Voltage','array.voltage[arrayVoltage.0]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SUNSAVER-MPPT\r\nDescription:Array Voltage\r\nScaling Factor:0.0030517578125\r\nUnits:V\r\nRange:[0, 80]\r\nModbus address:0x0009','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','da1f347b28dd4fbeb123f228adefb0ed','0','2','0'),
('33246','20','get[1.3.6.1.4.1.33333.3.58.0]','10373','Array: Sweep Voc','array.sweep_voc[arrayVoc.0]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SUNSAVER-MPPT\r\nDescription:Array Open Circuit Voltage\r\nScaling Factor:0.0030517578125\r\nUnits:V\r\nRange:[0.0, 80.0]\r\nModbus address:0x002A','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0e3371208513416ab1b9afdf2c3b2c08','0','2','0'),
('33247','20','get[1.3.6.1.4.1.33333.3.35.0]','10373','Temperature: Heatsink','temp.heatsink[heatsinkTemperature.0]','1m','31d','365d','0','0','','C','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SUNSAVER-MPPT\r\nDescription:Battery Temperature\r\nScaling Factor:1.0\r\nUnits:deg C\r\nRange:[-128, 127]\r\nModbus address:0x000E','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5f238fe557a7412cad5f3864e407284e','0','2','0'),
('33250','20','get[1.3.6.1.4.1.33333.9.30.0]','10374','Battery: Battery Voltage discovery','battery.voltage.discovery[batteryVoltageSlow.0]','15m','0','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SURESINE','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c577d82138d04ca689155f01fe32dd74','0','2','0'),
('33251','20','get[1.3.6.1.4.1.33333.9.31.0]','10374','Load: A/C Current','load.ac_current[acCurrent.0]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SURESINE\r\nDescription:AC Output Current\r\nScaling Factor:0.0001953125\r\nUnits:A\r\nRange:[0.0, 17]\r\nModbus address:0x0005','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0cbf90bdfbc44bc9939167625c20aaed','0','2','0'),
('33252','20','get[1.3.6.1.4.1.33333.9.33.0]','10374','Load: State','load.state[loadState.0]','1m','31d','365d','0','0','','','','',NULL,'198','','','0','','','','','0',NULL,'MIB: SURESINE\r\nDescription:Load State\r\nModbus address:0x000B\r\n\r\n 0: Start\r\n1: LoadOn\r\n2: LvdWarning\r\n3: LowVoltageDisconnect\r\n4: Fault\r\n5: Disconnect\r\n6: NormalOff\r\n7: UnknownState\r\n8: Standby','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','193eeecf87c24527b5ba4b0df2b66cfc','0','2','0'),
('33253','20','get[1.3.6.1.4.1.33333.9.34.0]','10374','Status: Alarms','status.alarms[alarms.0]','1m','1h','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SURESINE\r\nDescription:Faults\r\nModbus address:0x0007','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d15815c3d6024a83ac03425e23d798cd','0','2','0'),
('33254','20','get[1.3.6.1.4.1.33333.9.35.0]','10374','Status: Faults','status.faults[faults.0]','1m','1h','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SURESINE\r\nDescription:Faults\r\nModbus address:0x0007','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d92ff915ccda482db946118238ea2ef3','0','2','0'),
('33255','20','get[1.3.6.1.2.1.1.3.0]','10374','Status: Uptime (network)','status.net.uptime','1m','31d','365d','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'The time (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cb4a5c3033f84baa8260a8199265e5a9','0','2','0'),
('33256','20','get[1.3.6.1.4.1.33333.9.32.0]','10374','Temperature: Heatsink','temp.heatsink[heatsinkTemperature.0]','1m','31d','365d','0','0','','C','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SURESINE\r\nDescription:Heatsink Temperature\r\nScaling Factor:1\r\nUnits:C\r\nRange:[-128, 127]\r\nModbus address:0x0006','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c6119c74beeb4ab69854d52f2eaa969d','0','2','0'),
('33259','20','get[1.3.6.1.4.1.33333.7.31.0]','10375','Array: Array Current','array.current[arrayCurrent.0]','1m','31d','365d','0','0','','A','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TRISTAR-MPPT\r\nDescription:Array Current\r\nScaling Factor:1.0\r\nUnits:A\r\nRange:[-10, 80]\r\nModbus address:0x001d','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2e83c42d78e8486f936733e3cb6dee6b','0','2','0'),
('33260','20','get[1.3.6.1.4.1.33333.7.50.0]','10375','Counter: Charge Amp-hours','counter.charge_amp_hours[ahChargeResetable.0]','1m','31d','365d','0','0','','Ah','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TRISTAR-MPPT\r\nDescription:Ah Charge Resettable\r\nScaling Factor:1.0\r\nUnits:Ah\r\nRange:[0.0, 5000]\r\nModbus addresses:H=0x0034 L=0x0035','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3d67ceefb2c443d38051e2d22aca45ce','0','2','0'),
('33261','20','get[1.3.6.1.4.1.33333.7.48.0]','10375','Temperature: Battery','temp.battery[batteryTemperature.0]','1m','31d','365d','0','0','','C','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TRISTAR-MPPT\r\nDescription:Batt. Temp\r\nScaling Factor:1.0\r\nUnits:C\r\nRange:[-40, 80]\r\nModbus address:0x0025','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4f3fdc6382704fb584fbe11264a0e5c2','0','2','0'),
('33262','20','get[1.3.6.1.4.1.33333.7.45.0]','10375','Battery: Target Voltage','target.voltage[targetRegulationVoltage.0]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TRISTAR-MPPT\r\nDescription:Target Voltage\r\nScaling Factor:1.0\r\nUnits:V\r\nRange:[-10, 650.0]\r\nModbus address:0x0033','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','738f2e6d143a4e6db3ecf2736ca843cb','0','2','0'),
('33263','20','get[1.3.6.1.2.1.1.3.0]','10375','Status: Uptime (network)','status.net.uptime','1m','31d','365d','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'The time (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e6a4dd0a61c8479985a1179842d22766','0','2','0'),
('33264','20','get[1.3.6.1.4.1.33333.7.55.0]','10375','Status: Faults','status.faults[faults.0]','1m','1h','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TRISTAR-MPPT\r\nDescription:Faults\r\nModbus addresses:H=0x002c L=0x002d','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','81efe20cce1b4b26a6eda83e86fbd49c','0','2','0'),
('33265','20','get[1.3.6.1.4.1.33333.7.57.0]','10375','Status: Alarms','status.alarms[alarms.0]','1m','1h','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TRISTAR-MPPT\r\nDescription:Alarms\r\nModbus addresses:H=0x002e L=0x002f','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a2b5a78fe649480ea0cc580b5fa30bde','0','2','0'),
('33266','20','get[1.3.6.1.4.1.33333.7.52.0]','10375','Counter: Charge KW-hours','counter.charge_kw_hours[kwhChargeResetable.0]','1m','31d','365d','0','0','','!kWh','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TRISTAR-MPPT\r\nDescription:kWh Charge Resettable\r\nScaling Factor:1.0\r\nUnits:kWh\r\nRange:[0.0, 65535.0]\r\nModbus address:0x0038','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1a7ff2c884784eb4817956e0ecd5b718','0','2','0'),
('33267','20','get[1.3.6.1.4.1.33333.7.46.0]','10375','Battery: Charge State','charge.state[chargeState.0]','1m','31d','365d','0','0','','','','',NULL,'199','','','0','','','','','0',NULL,'MIB: TRISTAR-MPPT\r\nDescription:Charge State\r\nModbus address:0x0032\r\n\r\n0: Start\r\n1: NightCheck\r\n2: Disconnect\r\n3: Night\r\n4: Fault\r\n5: Mppt\r\n6: Absorption\r\n7: Float\r\n8: Equalize\r\n9: Slave\r\n10: Fixed','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','aa20a89288c444a492910cb1a7f19499','0','2','0'),
('33268','20','get[1.3.6.1.4.1.33333.7.33.0]','10375','Array: Sweep Pmax','array.sweep_pmax[arrayPmaxLastSweep.0]','1m','31d','365d','0','0','','W','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TRISTAR-MPPT\r\nDescription:Pmax (last sweep)\r\nScaling Factor:1.0\r\nUnits:W\r\nRange:[-10, 5000]\r\nModbus address:0x003c','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9750ce4073d9467fa18f0e35f990c081','0','2','0'),
('33269','20','get[1.3.6.1.4.1.33333.7.44.0]','10375','Battery: Output Power','charge.output_power[ outputPower.0]','1m','31d','365d','0','0','','W','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TRISTAR-MPPT\r\nDescription:Output Power\r\nScaling Factor:1.0\r\nUnits:W\r\nRange:[-10, 4000]\r\nModbus address:0x003a','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6e168ff947324068aad1fc16d577369d','0','2','0'),
('33270','20','get[1.3.6.1.4.1.33333.7.42.0]','10375','Battery: Charge Current','charge.current[batteryCurrent.0]','1m','31d','365d','0','0','','A','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TRISTAR-MPPT\r\nDescription:Battery Current\r\nScaling Factor:1.0\r\nUnits:A\r\nRange:[-10, 80]\r\nModbus address:0x001c','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5e42ba3c9a764b9690feb04d4bf7df45','0','2','0'),
('33271','20','get[1.3.6.1.4.1.33333.7.36.0]','10375','Battery: Battery Voltage discovery','battery.voltage.discovery[batteryVoltage.0]','15m','0','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TRISTAR-MPPT\r\nDescription:Battery voltage\r\nScaling Factor:1.0\r\nUnits:V\r\nRange:[-10, 80]\r\nModbus address:0x0018','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','058dc403d9b541978aebcb2944ecf75f','0','2','0'),
('33272','20','get[1.3.6.1.4.1.33333.7.30.0]','10375','Array: Voltage','array.voltage[arrayVoltage.0]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TRISTAR-MPPT\r\nDescription:Array Voltage\r\nScaling Factor:1.0\r\nUnits:V\r\nRange:[-10, 650]\r\nModbus address:0x001b','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e13c3135ce8649ea9c88d4f9eb56219e','0','2','0'),
('33273','20','get[1.3.6.1.4.1.33333.7.35.0]','10375','Array: Sweep Voc','array.sweep_voc[arrayVocLastSweep.0]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TRISTAR-MPPT\r\nDescription:Voc (last sweep)\r\nScaling Factor:1.0\r\nUnits:V\r\nRange:[-10, 650.0]\r\nModbus address:0x003e','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a8f4819131fe4247aef9b1cd819b47d9','0','2','0'),
('33274','20','get[1.3.6.1.4.1.33333.7.34.0]','10375','Array: Sweep Vmp','array.sweep_vmp[arrayVmpLastSweep.0]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TRISTAR-MPPT\r\nDescription:Vmp (last sweep)\r\nScaling Factor:1.0\r\nUnits:V\r\nRange:[-10, 650.0]\r\nModbus address:0x003d','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','de36a1087b2d4ade8369c620c794c881','0','2','0'),
('33275','20','get[1.3.6.1.4.1.33333.7.49.0]','10375','Temperature: Heatsink','temp.heatsink[heatsinkTemperature.0]','1m','31d','365d','0','0','','C','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TRISTAR-MPPT\r\nDescription:HS Temp\r\nScaling Factor:1.0\r\nUnits:C\r\nRange:[-40, 80]\r\nModbus address:0x0023','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d3abc18d718540039adcfcb4a74bea43','0','2','0'),
('33278','20','get[1.3.6.1.4.1.33333.2.31.0]','10376','Array: Array Current','array.current[arrayCurrent.0]','1m','31d','365d','0','0','','A','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TRISTAR-MPPT\r\nDescription:Array Current\r\nScaling Factor:0.00244140625\r\nUnits:A\r\nRange:[-10, 80]\r\nModbus address:0x001d','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2c3dcfd83bf946fb9da84f648c1efbac','0','2','0'),
('33279','20','get[1.3.6.1.4.1.33333.2.50.0]','10376','Counter: Charge Amp-hours','counter.charge_amp_hours[ahChargeResetable.0]','1m','31d','365d','0','0','','Ah','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TRISTAR-MPPT\r\nDescription:Ah Charge Resettable\r\nScaling Factor:0.1\r\nUnits:Ah\r\nRange:[0.0, 5000]\r\nModbus addresses:H=0x0034 L=0x0035','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','48db3379939b4698b8f30ff7118a9a95','0','2','0'),
('33280','20','get[1.3.6.1.4.1.33333.2.48.0]','10376','Temperature: Battery','temp.battery[batteryTemperature.0]','1m','31d','365d','0','0','','C','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TRISTAR-MPPT\r\nDescription:Batt. Temp\r\nScaling Factor:1.0\r\nUnits:C\r\nRange:[-40, 80]\r\nModbus address:0x0025','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9aee4500f32a4016be4f137c948b3d67','0','2','0'),
('33281','20','get[1.3.6.1.4.1.33333.2.45.0]','10376','Battery: Target Voltage','target.voltage[targetRegulationVoltage.0]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TRISTAR-MPPT\r\nDescription:Target Voltage\r\nScaling Factor:0.0054931640625\r\nUnits:V\r\nRange:[-10, 180.0]\r\nModbus address:0x0033','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c46896a6169142b59fc7f534f1981993','0','2','0'),
('33282','20','get[1.3.6.1.2.1.1.3.0]','10376','Status: Uptime (network)','status.net.uptime','1m','31d','365d','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'The time (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5f1e79c9987648c8abb325a507209a07','0','2','0'),
('33283','20','get[1.3.6.1.4.1.33333.2.55.0]','10376','Status: Faults','status.faults[faults.0]','1m','1h','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TRISTAR-MPPT\r\nDescription:Faults\r\nModbus address:0x002c','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','64a01cde330e437499a719237f68fda2','0','2','0'),
('33284','20','get[1.3.6.1.4.1.33333.2.57.0]','10376','Status: Alarms','status.alarms[alarms.0]','1m','1h','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TRISTAR-MPPT\r\nDescription:Faults\r\nModbus address:0x002c','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5c96236f9623495289b94bd4d63e6faf','0','2','0'),
('33285','20','get[1.3.6.1.4.1.33333.2.52.0]','10376','Counter: Charge KW-hours','counter.charge_kw_hours[kwhChargeResetable.0]','1m','31d','365d','0','3','','!kWh','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TRISTAR-MPPT\r\nDescription:kWh Charge Resettable\r\nScaling Factor:0.1\r\nUnits:kWh\r\nRange:[0.0, 65535.0]\r\nModbus address:0x0038','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f14eb25c426141d1875d5828b5c62c30','0','2','0'),
('33286','20','get[1.3.6.1.4.1.33333.2.46.0]','10376','Battery: Charge State','charge.state[chargeState.0]','1m','31d','365d','0','0','','','','',NULL,'200','','','0','','','','','0',NULL,'MIB: TRISTAR-MPPT\r\nDescription:Charge State\r\nModbus address:0x0032\r\n\r\n0: Start\r\n1: NightCheck\r\n2: Disconnect\r\n3: Night\r\n4: Fault\r\n5: Mppt\r\n6: Absorption\r\n7: Float\r\n8: Equalize\r\n9: Slave','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7ad0e0153d6342a5bdd1576b2ad815e3','0','2','0'),
('33287','20','get[1.3.6.1.4.1.33333.2.33.0]','10376','Array: Sweep Pmax','array.sweep_pmax[arrayPmaxLastSweep.0]','1m','31d','365d','0','0','','W','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TRISTAR-MPPT\r\nDescription:Pmax (last sweep)\r\nScaling Factor:0.10986328125\r\nUnits:W\r\nRange:[-10, 5000]\r\nModbus address:0x003c','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','53c1cccd0262422eb18bb6745adb2369','0','2','0'),
('33288','20','get[1.3.6.1.4.1.33333.2.44.0]','10376','Battery: Output Power','charge.output_power[ outputPower.0]','1m','31d','365d','0','0','','W','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TRISTAR-MPPT\r\nDescription:Output Power\r\nScaling Factor:0.10986328125\r\nUnits:W\r\nRange:[-10, 5000]\r\nModbus address:0x003a','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e70284aa07924a61add98dc516f0429e','0','2','0'),
('33289','20','get[1.3.6.1.4.1.33333.2.42.0]','10376','Battery: Charge Current','charge.current[batteryCurrent.0]','1m','31d','365d','0','0','','A','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TRISTAR-MPPT\r\nDescription:Battery Current\r\nScaling Factor:0.00244140625\r\nUnits:A\r\nRange:[-10, 80]\r\nModbus address:0x001c','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e1646c9847064d53913d9c57d1b59de7','0','2','0'),
('33290','20','get[1.3.6.1.4.1.33333.2.36.0]','10376','Battery: Battery Voltage discovery','battery.voltage.discovery[batteryVoltage.0]','15m','0','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TRISTAR-MPPT','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f40795d2c28b4f53ac50399ca6e6f8d6','0','2','0'),
('33291','20','get[1.3.6.1.4.1.33333.2.30.0]','10376','Array: Voltage','array.voltage[arrayVoltage.0]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TRISTAR-MPPT\r\nDescription:Array Voltage\r\nScaling Factor:0.0054931640625\r\nUnits:V\r\nRange:[-10, 180]\r\nModbus address:0x001b','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','419b9faf88284121a8806c60c8a4550d','0','2','0'),
('33292','20','get[1.3.6.1.4.1.33333.2.35.0]','10376','Array: Sweep Voc','array.sweep_voc[arrayVocLastSweep.0]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TRISTAR-MPPT\r\nDescription:Voc (last sweep)\r\nScaling Factor:0.0054931640625\r\nUnits:V\r\nRange:[-10, 180.0]\r\nModbus address:0x003e','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ced0f7c4abb6409399a9e05797841497','0','2','0'),
('33293','20','get[1.3.6.1.4.1.33333.2.34.0]','10376','Array: Sweep Vmp','array.sweep_vmp[arrayVmpLastSweep.0]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TRISTAR-MPPT\r\nDescription:Vmp (last sweep)\r\nScaling Factor:0.0054931640625\r\nUnits:V\r\nRange:[-10, 180.0]\r\nModbus address:0x003d','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2f0bbf8b6d53457283069aaf8e0386ae','0','2','0'),
('33294','20','get[1.3.6.1.4.1.33333.2.49.0]','10376','Temperature: Heatsink','temp.heatsink[heatsinkTemperature.0]','1m','31d','365d','0','0','','C','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TRISTAR-MPPT\r\nDescription:HS Temp\r\nScaling Factor:1.0\r\nUnits:C\r\nRange:[-40, 80]\r\nModbus address:0x0023','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ffed57b626254db6bcc0df6de51d39fa','0','2','0'),
('33297','20','get[1.3.6.1.4.1.33333.8.30.0]','10377','Battery: Battery Voltage discovery','battery.voltage.discovery[batteryVoltage.0]','15m','0','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TRISTAR\r\nDescription:Battery voltage\r\nScaling Factor:0.002950042724609375\r\nUnits:V\r\nRange:[0.0, 80.0]\r\nModbus address:0x0008','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b76ef47ada0c43cfb50c6a80c8ca55e5','0','2','0'),
('33298','20','get[1.3.6.1.4.1.33333.8.45.0]','10377','Status: Control Mode','control.mode[controlMode.0]','1m','31d','365d','0','0','','','','',NULL,'202','','','0','','','','','0',NULL,'MIB: TRISTAR\r\nDescription:Control Mode\r\nModbus address:0x001A\r\n\r\n0: charge\r\n1: loadControl\r\n2: diversion\r\n3: lighting','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0c57da022cf8497e88f788cee1b3a0a6','0','2','0'),
('33299','20','get[1.3.6.1.4.1.33333.8.39.0]','10377','Counter: Amp-hours','counter.charge_amp_hours[ahResettable.0]','1m','31d','365d','0','0','','Ah','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TRISTAR\r\nDescription:Ah (Resettable)\r\nScaling Factor:0.1\r\nUnits:Ah\r\nRange:[0.0, 50000.0]\r\nModbus addresses:H=0x0011 L=0x0012','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','25a576060f6948e59a855462b04c7276','0','2','0'),
('33300','20','get[1.3.6.1.4.1.33333.8.49.0]','10377','Counter: KW-hours','counter.charge_kw_hours[kilowattHours.0]','1m','31d','365d','0','0','','!kWh','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TRISTAR\r\nDescription:Kilowatt Hours\r\nScaling Factor:1.0\r\nUnits:kWh\r\nRange:[0.0, 5000.0]\r\nModbus address:0x001E','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d2351af0b6244044949eba67a7f7b39c','0','2','0'),
('33301','20','get[1.3.6.1.4.1.33333.8.42.0]','10377','Status: Alarms','status.alarms[alarms.0]','1m','1h','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TRISTAR\r\nDescription:Alarms\r\nModbus addresses:H=0x001D L=0x0017','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','03c3397ac32b47499002b13e0735ec9b','0','2','0'),
('33302','20','get[1.3.6.1.4.1.33333.8.43.0]','10377','Status: Faults','status.faults[faults.0]','1m','1h','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TRISTAR\r\nDescription:Battery voltage\r\nScaling Factor:0.002950042724609375\r\nUnits:V\r\nRange:[0.0, 80.0]\r\nModbus address:0x0008','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9d0f4444f98c4ec082d35559e8fe9ac5','0','2','0'),
('33303','20','get[1.3.6.1.2.1.1.3.0]','10377','Status: Uptime (network)','status.net.uptime','1m','31d','365d','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'The time (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','642eec19ba5d450186590e9f5bba36db','0','2','0'),
('33304','20','get[1.3.6.1.4.1.33333.8.37.0]','10377','Temperature: Battery','temp.battery[batteryTemperature.0]','1m','31d','365d','0','0','','C','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TRISTAR\r\nDescription:Battery Temperature\r\nScaling Factor:1.0\r\nUnits:deg C\r\nRange:[-40, 120]\r\nModbus address:0x000F','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bc729e23973b4d9d97d694d884431e0b','0','2','0'),
('33305','20','get[1.3.6.1.4.1.33333.8.36.0]','10377','Temperature: Heatsink','temp.heatsink[heatsinkTemperature.0]','1m','31d','365d','0','0','','C','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: TRISTAR\r\nDescription:Heatsink Temperature\r\nScaling Factor:1.0\r\nUnits:deg C\r\nRange:[-40, 120]\r\nModbus address:0x000E','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a9a009058e99419dbb6cbef5b7797388','0','2','0'),
('33348','20','get[1.3.6.1.4.1.789.1.6.4.7.0]','10378','Failed disks count','fas3220.disk[diskFailedCount]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The number of disks that are currently broken.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4239eba959f14e0ebc44a0fa7d124042','0','2','0'),
('33349','20','get[1.3.6.1.4.1.789.1.6.4.10.0]','10378','Failed disks message','fas3220.disk[diskFailedMessage]','1m','31d','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'If diskFailedCount is non-zero, this is a string describing the failed disk or disks. Each failed disk is described.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','980e2c347d254c4d88d918b2171679bb','0','2','0'),
('33350','20','get[1.3.6.1.4.1.789.1.1.6.0]','10378','Product firmware version','fas3220.inventory[productFirmwareVersion]','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Version string for the firmware running on this platform.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7b6d8c8272714343bd420a32c6763c9e','0','2','0'),
('33351','20','get[1.3.6.1.4.1.789.1.1.2.0]','10378','Product version','fas3220.inventory[productVersion]','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: NETAPP-MIB\r\nVersion string for the software running on this platform.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3f0418935b9d40e98d129f280ba5ba6b','0','2','0'),
('33391','19','','10379','Get computer info','jenkins.computer_info','1m','0','0','0','4','','','','',NULL,NULL,'','','1','{$JENKINS.USER}','{$JENKINS.API.TOKEN}','','','0',NULL,'','0','30d','0','',NULL,'','{$JENKINS.URL}/computer/api/json','','','200','1','0','','','0','0','0','0','0','0','0','7ae6f7fae8d4485fb850c84ac00b7ff1','0','2','0'),
('33392','19','','10379','Service ping','jenkins.ping','1m','31d','365d','0','3','','','','',NULL,'215','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','{$JENKINS.URL}/metrics/{$JENKINS.API.KEY}/ping','','','200','1','0','','','0','0','0','0','0','0','0','21cad39b9c914516827b09d04716a71f','0','2','0'),
('33393','19','','10379','Get jobs info','jenkins.job_info','5m','0','0','0','4','','','','',NULL,NULL,'','','1','{$JENKINS.USER}','{$JENKINS.API.TOKEN}','','','0',NULL,'','0','30d','0','',NULL,'','{$JENKINS.URL}/api/json','[{"tree":"jobs[name,description,url,healthReport[score],lastBuild[number,result,duration,timestamp],lastSuccessfulBuild[number,result,duration,timestamp],lastFailedBuild[number,result,duration,timestamp]]"}]','','200','1','0','','','0','0','0','0','0','0','0','dc47555812a0485e9d77da3e5a1c1227','0','2','0'),
('33394','19','','10379','Get service metrics','jenkins.get_metrics','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','{$JENKINS.URL}/metrics/{$JENKINS.API.KEY}/metrics','','','200','1','0','','','0','0','0','0','0','0','0','db4c0de52dca4c8a853edf918b35bbe4','0','2','0'),
('33395','19','','10379','Get healthcheck','jenkins.healthcheck','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','{$JENKINS.URL}/metrics/{$JENKINS.API.KEY}/healthcheck','','','200','1','0','','','0','0','0','0','0','0','0','4be0216b409d46a2a12e2929a9a03295','0','2','0'),
('33491','19','','10380','Get streaming channels','hikvision_cam.get_streaming','1m','0','0','0','4','','','','',NULL,NULL,'','','4','{$USER}','{$PASSWORD}','','','0',NULL,'Used to get the properties of streaming channels for the device','0','30d','0','',NULL,'','http://{$HIKVISION_ISAPI_HOST}:{$HIKVISION_ISAPI_PORT}/ISAPI/Streaming/channels','','','200,401','1','0','','','0','0','0','0','0','0','0','65f89830d9f041f9a1558936dfcffc5f','0','2','0'),
('33492','19','','10380','Get system status','hikvision_cam.get_status','1m','0','0','0','4','','','','',NULL,NULL,'','','4','{$USER}','{$PASSWORD}','','','0',NULL,'It is used to get the status information of the device','0','30d','0','',NULL,'','http://{$HIKVISION_ISAPI_HOST}:{$HIKVISION_ISAPI_PORT}/ISAPI/System/status','','','200,401','1','0','','','0','0','0','0','0','0','0','1ad3e3c9f60043a58f63addc8768c887','0','2','0'),
('33493','19','','10380','Get device info','hikvision_cam.get_info','1m','0','0','0','4','','','','',NULL,NULL,'','','4','{$USER}','{$PASSWORD}','','','0',NULL,'Used to get the device information','0','30d','0','',NULL,'','http://{$HIKVISION_ISAPI_HOST}:{$HIKVISION_ISAPI_PORT}/ISAPI/System/deviceInfo','','','200,401','1','0','','','0','0','0','0','0','0','0','0ddd3af82fb64b75821dc1fab96c16ab','0','2','0'),
('33630','21','','10382','Get directory structure','sharepoint.get_dir','{$SHAREPOINT.GET_INTERVAL}','0','0','0','4','','','','',NULL,NULL,'try {\r\n\r\n const js_start = new Date().getTime();\r\n\r\n var params = JSON.parse(value);\r\n var result = {\r\n status: 0,\r\n data: {}\r\n };\r\n\r\n var req = new HttpRequest();\r\n\r\n var out = {};\r\n var queue = [];\r\n\r\n var node;\r\n var obj_iter_by_name;\r\n var cpath;\r\n\r\n var current_folder;\r\n var child_folders;\r\n var child_files;\r\n var obj_iter_file;\r\n\r\n req.addHeader(\'Accept: application/json; odata=verbose\');\r\n req.setHttpAuth(HTTPAUTH_NTLM, params.user, params.password);\r\n queue.push({\r\n patch: params.root,\r\n json: []\r\n });\r\n\r\n while (queue.length) {\r\n node = queue.pop();\r\n obj_iter_by_name = out;\r\n cpath = node.json.slice()\r\n\r\n current_folder = JSON.parse(req.get(encodeURI(params.url + "/_api/web/GetFolderByServerRelativeUrl(\'" + node.patch.replace("\'", "\'\'") + "\')")));\r\n\r\n result.status = req.getStatus();\r\n if (result.status != 200) {\r\n throw result.status;\r\n }\r\n\r\n cpath.forEach(function (nd) {\r\n obj_iter_by_name = obj_iter_by_name[nd]\r\n });\r\n\r\n obj_iter_by_name[current_folder.d.Name] = {\r\n meta: {\r\n size: 0,\r\n created: Math.round(new Date(current_folder.d.TimeCreated).getTime() / 1000),\r\n modified: Math.round(new Date(current_folder.d.TimeLastModified).getTime() / 1000)\r\n },\r\n data: {}\r\n }\r\n\r\n child_folders = JSON.parse(req.get(encodeURI(params.url + "/_api/web/GetFolderByServerRelativeUrl(\'" + node.patch.replace("\'", "\'\'") + "\')/Folders")));\r\n\r\n cpath.push(current_folder.d.Name, "data");\r\n child_folders.d.results.forEach(function (dir) {\r\n queue.push({\r\n patch: dir.ServerRelativeUrl,\r\n json: cpath\r\n });\r\n });\r\n\r\n child_files = JSON.parse(req.get(encodeURI(params.url + "/_api/web/GetFolderByServerRelativeUrl(\'" + node.patch.replace("\'", "\'\'") + "\')/Files")));\r\n child_files.d.results.forEach(function (file) {\r\n obj_iter_by_name[current_folder.d.Name].data[file.Name] = {\r\n meta: {\r\n size: file.Length,\r\n created: Math.round(new Date(file.TimeCreated).getTime() / 1000),\r\n modified: Math.round(new Date(file.TimeLastModified).getTime() / 1000)\r\n }\r\n };\r\n\r\n obj_iter_file = out;\r\n cpath.forEach(function (nd) {\r\n obj_iter_file = obj_iter_file[nd];\r\n if (nd != "data") {\r\n obj_iter_file.meta.size += +file.Length;\r\n }\r\n });\r\n });\r\n\r\n }\r\n\r\n result.data = out;\r\n\r\n} catch (error) {\r\n Zabbix.log(3, "Sharepoint fs scan failed: " + params.url + " Error: " + error);\r\n if (!Number.isInteger(error))\r\n result.status = 520;\r\n}\r\n\r\nresult.time = new Date().getTime() - js_start;\r\nreturn JSON.stringify(result);','','0','','','','','0',NULL,'Used to get directory structure information','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','71e23c666b84414490589a509b60c488','0','2','0'),
('33631','19','','10382','Health score','sharepoint.health_score','1m','31d','365d','0','3','','','','',NULL,NULL,'','','2','{$SHAREPOINT.USER}','{$SHAREPOINT.PASSWORD}','','','0',NULL,'This item specifies a value between 0 and 10, where 0 represents a low load and a high ability to process requests and 10 represents a high load and that the server is throttling requests to maintain adequate throughput.','0','30d','0','',NULL,'','{$SHAREPOINT.URL}','','','200','1','0','','','1','3','0','0','0','0','0','7b59d767712f49b3bbc17947999ca944','0','2','0'),
('33638','3','','10174','Host memory consumed','vmware.vm.memory.size.consumed[{$VMWARE.URL},{$VMWARE.VM.UUID}]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'Amount of host physical memory consumed for backing up guest physical memory pages.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','04a40f805fed4ddfa1590274a996a019','0','2','0'),
('33639','3','','10174','Host memory usage in percent','vmware.vm.memory.usage[{$VMWARE.URL},{$VMWARE.VM.UUID}]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'Percentage of host physical memory that has been consumed.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e82daa73e03e43b9838d9e414d710e38','0','2','0'),
('33640','3','','10174','CPU latency in percent','vmware.vm.cpu.latency[{$VMWARE.URL},{$VMWARE.VM.UUID}]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'Percentage of time the VM is unable to run because it is contending for access to the physical CPU(s).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','31389342688f4b0696a49431923a528f','0','2','0'),
('33641','3','','10174','Uptime of guest OS','vmware.vm.guest.osuptime[{$VMWARE.URL},{$VMWARE.VM.UUID}]','1m','31d','365d','0','3','','uptime','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'Total time elapsed since the last operating system boot-up (in seconds). Data is collected if Guest OS Add-ons (VMware Tools) are installed.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','521a0396514845e3bc5d3dc54ec3d940','0','2','0'),
('33642','3','','10174','Guest memory swapped','vmware.vm.guest.memory.size.swapped[{$VMWARE.URL},{$VMWARE.VM.UUID}]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'Amount of guest physical memory that is swapped out to the swap space.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e645130999db470fbbf14a8055c95b23','0','2','0'),
('33643','3','','10174','CPU usage in percent','vmware.vm.cpu.usage.perf[{$VMWARE.URL},{$VMWARE.VM.UUID}]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'CPU usage as a percentage during the interval.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','50606be978814b51b4bae54340965cdc','0','2','0'),
('33644','3','','10174','CPU swap-in latency in percent','vmware.vm.cpu.swapwait[{$VMWARE.URL},{$VMWARE.VM.UUID}]','1m','31d','365d','0','3','','%','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'Percentage of CPU time spent waiting for a swap-in.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','50de05f27f33425cb207a3fdece7ecb1','0','2','0'),
('33645','3','','10174','CPU readiness latency in percent','vmware.vm.cpu.readiness[{$VMWARE.URL},{$VMWARE.VM.UUID}]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'Percentage of time that the virtual machine was ready, but was unable to get scheduled to run on the physical CPU.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f4d72109b7ee4e0bb65aab1de85b6b05','0','2','0'),
('33646','3','','10175','Power usage','vmware.hv.power[{$VMWARE.URL},{$VMWARE.HV.UUID}]','1m','31d','365d','0','3','','!W','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'Current power usage.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','179a981cf30f4f77869e3b50dc2bc333','0','2','0'),
('33647','3','','10175','Power usage maximum allowed','vmware.hv.power[{$VMWARE.URL},{$VMWARE.HV.UUID},max]','1m','31d','365d','0','3','','!W','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'Maximum allowed power usage.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e4116d7c7e234c5ebd5784f42ade1f2e','0','2','0'),
('33648','3','','10175','CPU utilization','vmware.hv.cpu.utilization[{$VMWARE.URL},{$VMWARE.HV.UUID}]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'CPU utilization as a percentage during the interval depends on power management or hyper-threading.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','aad168c33cd14f76aa14ab5ca26498ec','0','2','0'),
('33649','3','','10175','CPU usage in percent','vmware.hv.cpu.usage.perf[{$VMWARE.URL},{$VMWARE.HV.UUID}]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'CPU usage as a percentage during the interval.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c4ebd62118464e7a8d1945f80d70f8ae','0','2','0'),
('33691','20','get[1.3.6.1.4.1.34774.4.1.1.3.0]','10385','Status','huawei.5300.v5[status]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'System running status.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','86d978c810024643829d3192156e9e6c','0','2','0'),
('33692','20','get[1.3.6.1.4.1.34774.4.1.1.5.0]','10385','Capacity total','huawei.5300.v5[totalCapacity]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'Total capacity of a device.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','04c8d7f53668449ea32c4ed611b71237','0','2','0'),
('33693','20','get[1.3.6.1.4.1.34774.4.1.1.4.0]','10385','Capacity used','huawei.5300.v5[usedCapacity]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'Used capacity of a device.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ef77f126052b4f9e9cddafdab20577d1','0','2','0'),
('33694','20','get[1.3.6.1.4.1.34774.4.1.1.6.0]','10385','Version','huawei.5300.v5[version]','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The device version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0a2e129d84d14e88bf953f3a9ca76b46','0','2','0'),
('33764','0','','10386','Get server status','mongodb.server.status["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Returns a database\'s state.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fb0cc7d44559406cada9d90a51bc999c','0','2','0'),
('33765','0','','10386','Get Replica Set status','mongodb.rs.status["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Returns the replica set status from the point of view of the member where the method is run.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3b448eff509240faba344f7b325f3e28','0','2','0'),
('33766','0','','10386','Ping','mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"]','30s','31d','365d','0','3','','','','',NULL,'227','','','0','','','','','0',NULL,'Test if a connection is alive or not.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','350da28ce7ab42f9b96728ec730d4bd6','0','2','0'),
('33767','0','','10386','Get oplog stats','mongodb.oplog.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Returns status of the replica set, using data polled from the oplog.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8e7406e64edd4fe5ba87d4018011c958','0','2','0'),
('33768','0','','10386','Get collections usage stats','mongodb.collections.usage["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Returns usage statistics for each collection.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','46f0a53612de4448ab8e98098375656b','0','2','0'),
('33807','0','','10386','MongoDB version','mongodb.version["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Version of the MongoDB server.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c5679875dc254ddd833ee40ef4a2b3cf','0','2','0'),
('33886','0','','10387','Jumbo chunks','mongodb.jumbo_chunks.count["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Total number of \'jumbo\' chunks in the mongo cluster.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','110685e463e141ca800b2638e3532d51','0','2','0'),
('33887','0','','10387','Get server status','mongodb.server.status["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The mongos statistic','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b8c6dadff060447e9718b49fdc796d8d','0','2','0'),
('33888','0','','10387','Ping','mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"]','30s','31d','365d','0','3','','','','',NULL,'229','','','0','','','','','0',NULL,'Test if a connection is alive or not.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ff979eb9ba4a4420a753913df5431219','0','2','0'),
('33889','0','','10387','Get mongodb.connpool.stats','mongodb.connpool.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Returns current info about connpool.stats.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f34fcc3866b446748b7a8d11311edd82','0','2','0'),
('33944','3','','10390','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'234','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1a1244d5dcbc4cbcb5edb70b7cd2b3aa','0','2','0'),
('33945','3','','10390','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5804e615ec714a85ab3bf8128f92d0fc','0','2','0'),
('33946','3','','10390','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','02403547a7714c94ba442d09ba91a1be','0','2','0'),
('33947','17','','10390','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'Item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','80fe62cf4b2b4b96a077f23ff40d9baf','0','2','0'),
('33948','20','get[1.3.6.1.2.1.1.4.0]','10390','System contact details','system.contact','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0bcb970099c0429a9254c88d94d3f27d','0','2','0'),
('33949','20','get[1.3.6.1.2.1.1.1.0]','10390','System description','system.descr','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6a1b8a292e9448329b538c0c6c47317b','0','2','0'),
('33950','20','get[1.3.6.1.2.1.47.1.1.1.1.13.1]','10390','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e7b500dbdd044fd2a6213496422d4540','0','2','0'),
('33951','20','get[1.3.6.1.2.1.47.1.1.1.1.11.1]','10390','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7f1f5522eab7406ea8dfce09cb84d39d','0','2','0'),
('33952','20','get[1.3.6.1.2.1.1.6.0]','10390','System location','system.location','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe physical location of this node (e.g., `telephone closet, 3rd floor\'). If the location is unknown, the value is the zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cb5e9fc216ca46f885562169ed67a612','0','2','0'),
('33953','20','get[1.3.6.1.2.1.1.5.0]','10390','System name','system.name','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c79c23799ba248e0b35a086a7503646b','0','2','0'),
('33954','20','get[1.3.6.1.2.1.1.2.0]','10390','System object ID','system.objectid','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f4d399a9cb884067a8303799b6ddfca4','0','2','0'),
('33955','20','get[1.3.6.1.2.1.1.1.0]','10390','Operating system','system.sw.os','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bf04928736ed4d3c855d8e0718cdfa1f','0','2','0'),
('33956','20','get[1.3.6.1.2.1.1.3.0]','10390','Uptime (network)','system.net.uptime','1m','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe time (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3001dec3d8564a4e83e25e557c6d1336','0','2','0'),
('33957','5','','10390','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'235','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1fe8d0559b794a47a78fccde9156b694','0','2','0'),
('33985','3','','10391','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'240','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','84ef605d7c914f62b4497ed6fdaccd8a','0','2','0'),
('33986','3','','10391','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c40980a878c94c3db61f80e206b890ec','0','2','0'),
('33987','3','','10391','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d1c2bc9cee7046c2a17f876dce1f063f','0','2','0'),
('33988','17','','10391','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'Item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','612f59e4d582463bb386046a1d4342da','0','2','0'),
('33989','20','get[1.3.6.1.2.1.1.4.0]','10391','System contact details','system.contact','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','582260ed2f2d4f419651bc526e41b733','0','2','0'),
('33990','20','get[1.3.6.1.2.1.1.1.0]','10391','System description','system.descr','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','956ce9527d604b4493d52815799590ca','0','2','0'),
('33991','20','get[1.3.6.1.2.1.47.1.1.1.1.13.1]','10391','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fb4df28cb44941e5b39348afe421a2ad','0','2','0'),
('33992','20','get[1.3.6.1.2.1.47.1.1.1.1.11.1]','10391','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','664548f83e924a8aaa125579f230d0e9','0','2','0'),
('33993','20','get[1.3.6.1.2.1.1.6.0]','10391','System location','system.location','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe physical location of this node (e.g., `telephone closet, 3rd floor\'). If the location is unknown, the value is the zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b6d1ee7b8b3e42e380f6aa44bf39c008','0','2','0'),
('33994','20','get[1.3.6.1.2.1.1.5.0]','10391','System name','system.name','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2f5f5b376c034f439ae19ed24e4d8bc5','0','2','0'),
('33995','20','get[1.3.6.1.2.1.1.2.0]','10391','System object ID','system.objectid','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d791eebac4884924b7f40c08174aef00','0','2','0'),
('33996','20','get[1.3.6.1.2.1.1.1.0]','10391','Operating system','system.sw.os','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2c7c4907dfdd46d18321f80b00152771','0','2','0'),
('33997','20','get[1.3.6.1.2.1.1.3.0]','10391','Uptime (network)','system.net.uptime','1m','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe time (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a9070d15765c4acaa856dde8ece57340','0','2','0'),
('33998','5','','10391','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'241','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','92d5d0c598674f20a0228cc66a433e84','0','2','0'),
('34026','3','','10392','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'246','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','872058629f19424995e696d1354fbe01','0','2','0'),
('34027','3','','10392','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','56b5f81de3c34f2aa9acd399dd212d62','0','2','0'),
('34028','3','','10392','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d34fc050448e4c48b303bf8c75c50060','0','2','0'),
('34029','17','','10392','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'Item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c7a43b6281384161b6e1f28840d55aa1','0','2','0'),
('34030','20','get[1.3.6.1.2.1.1.4.0]','10392','System contact details','system.contact','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7f563d184760420080849d161bf373f6','0','2','0'),
('34031','20','get[1.3.6.1.2.1.1.1.0]','10392','System description','system.descr','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','74af4fbc07284c9eb9d4a913fd5e7b2b','0','2','0'),
('34032','20','get[1.3.6.1.2.1.47.1.1.1.1.13.1]','10392','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a7cf2f68a1c842e081deec4a16410071','0','2','0'),
('34033','20','get[1.3.6.1.2.1.47.1.1.1.1.11.1]','10392','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6d9b2e70dd61424f8f0ffebf89d20853','0','2','0'),
('34034','20','get[1.3.6.1.2.1.1.6.0]','10392','System location','system.location','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe physical location of this node (e.g., `telephone closet, 3rd floor\'). If the location is unknown, the value is the zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cc4aa80bbd2d49f9bca23b305399f0fa','0','2','0'),
('34035','20','get[1.3.6.1.2.1.1.5.0]','10392','System name','system.name','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','726fa93646ad429789dcec2fbfabc6ff','0','2','0'),
('34036','20','get[1.3.6.1.2.1.1.2.0]','10392','System object ID','system.objectid','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5e7cd491cf664de0b5046cd011186a0e','0','2','0'),
('34037','20','get[1.3.6.1.2.1.1.1.0]','10392','Operating system','system.sw.os','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','89971d6753ce4d98b68a70bf26f4b99e','0','2','0'),
('34038','20','get[1.3.6.1.2.1.1.3.0]','10392','Uptime (network)','system.net.uptime','1m','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe time (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ecc18617c57a44bb96a565f450d569ac','0','2','0'),
('34039','5','','10392','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'247','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0951ddc53a2847b8ba816a5e4de9da2f','0','2','0'),
('34067','3','','10393','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'252','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d729b3a06df94b6890fe4c62f8d26f60','0','2','0'),
('34068','3','','10393','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3a6fdbfbbf7c4944a24e22e93aabf0e3','0','2','0'),
('34069','3','','10393','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','80efc7d77e314e97953cc75b5ae43e92','0','2','0'),
('34070','17','','10393','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'Item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2c44173959284d7db1d2a745c68fa0a3','0','2','0'),
('34071','20','get[1.3.6.1.2.1.1.4.0]','10393','System contact details','system.contact','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b3ac05facd4349fc8e573525f3fdb239','0','2','0'),
('34072','20','get[1.3.6.1.2.1.1.1.0]','10393','System description','system.descr','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f21c4e4de69342a68ca060a52fe071d6','0','2','0'),
('34073','20','get[1.3.6.1.2.1.47.1.1.1.1.13.1]','10393','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2a0f9c29094f4a72ab66813c931d35ee','0','2','0'),
('34074','20','get[1.3.6.1.2.1.47.1.1.1.1.11.1]','10393','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','487fc626eb5e4629a0585210153ebbd1','0','2','0'),
('34075','20','get[1.3.6.1.2.1.1.6.0]','10393','System location','system.location','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe physical location of this node (e.g., `telephone closet, 3rd floor\'). If the location is unknown, the value is the zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','679e63af2b3548c48b278da7356ae8ed','0','2','0'),
('34076','20','get[1.3.6.1.2.1.1.5.0]','10393','System name','system.name','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5d51ca0ffadf4e4599390aa9a4644426','0','2','0'),
('34077','20','get[1.3.6.1.2.1.1.2.0]','10393','System object ID','system.objectid','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2d49036582724a19b5cd5006360be8d2','0','2','0'),
('34078','20','get[1.3.6.1.2.1.1.1.0]','10393','Operating system','system.sw.os','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5852aecfbfbe429097c660d8a1ce47ee','0','2','0'),
('34079','20','get[1.3.6.1.2.1.1.3.0]','10393','Uptime (network)','system.net.uptime','1m','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe time (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','54ff117dbac14916aee823e247bff23f','0','2','0'),
('34080','5','','10393','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'253','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','642cee0c23134982adc4dfc486a63843','0','2','0'),
('34108','3','','10394','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'258','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5d096334d7e2455797c9a5a46fecfaec','0','2','0'),
('34109','3','','10394','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a88b7bcaa2174a76b09031993ee48fb4','0','2','0'),
('34110','3','','10394','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','906ca6fa0cf64000bac2efbc0f5dc7f9','0','2','0'),
('34111','17','','10394','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'Item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bc9c48b56cc6405c8256566d4768903a','0','2','0'),
('34112','20','get[1.3.6.1.2.1.1.4.0]','10394','System contact details','system.contact','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','19896943dda74f798241c176b1f4fc4f','0','2','0'),
('34113','20','get[1.3.6.1.2.1.1.1.0]','10394','System description','system.descr','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c4bd78d5e1f442128eddcdf4ea22d4b3','0','2','0'),
('34114','20','get[1.3.6.1.2.1.47.1.1.1.1.13.1]','10394','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','58642d7727964ba48f41bc33cfb6ef37','0','2','0'),
('34115','20','get[1.3.6.1.2.1.47.1.1.1.1.11.1]','10394','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7fa7b4e4803e4eed932c176afed56cd5','0','2','0'),
('34116','20','get[1.3.6.1.2.1.1.6.0]','10394','System location','system.location','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe physical location of this node (e.g., `telephone closet, 3rd floor\'). If the location is unknown, the value is the zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','213f54a3c23c40aa8693169efd8c0d82','0','2','0'),
('34117','20','get[1.3.6.1.2.1.1.5.0]','10394','System name','system.name','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7e325f94720f4b29ad83a741a3735fa1','0','2','0'),
('34118','20','get[1.3.6.1.2.1.1.2.0]','10394','System object ID','system.objectid','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2fce50826a7d498abe4ca628021fb9ac','0','2','0'),
('34119','20','get[1.3.6.1.2.1.1.1.0]','10394','Operating system','system.sw.os','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0d55299054304e658dc036f234727c73','0','2','0'),
('34120','20','get[1.3.6.1.2.1.1.3.0]','10394','Uptime (network)','system.net.uptime','1m','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe time (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d33f3f14dfff49d88269706ab464e2b9','0','2','0'),
('34121','5','','10394','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'259','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','82c87e2ade594f68abc4861e4d328a16','0','2','0'),
('34149','3','','10251','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'262','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','87480ce035a94f299c4cf4103eaaf066','0','2','0'),
('34150','3','','10251','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','50e85be3969447c58fcfeca5d9a1a9bb','0','2','0'),
('34151','3','','10251','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7567e999d75442379066babdc9b50894','0','2','0'),
('34152','17','','10251','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0cb8aadeb5554583a65c3496cfed2c1b','0','2','0'),
('34153','20','get[1.3.6.1.2.1.1.4.0]','10251','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f62a8b653c3d44d09864a4a4c910aeb1','0','2','0'),
('34154','20','discovery[{#CPU.UTIL},1.3.6.1.2.1.25.3.3.1.2]','10251','CPU utilization','system.cpu.util','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe average, over the last minute, of the percentage of time that processors was not idle.\r\nImplementations may approximate this one minute smoothing period if necessary.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c33470549bda45e88ecb8ded7d0b5e87','0','2','0'),
('34155','20','get[1.3.6.1.2.1.1.1.0]','10251','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','64c4f3e890ec4c29be07ba2d06345534','0','2','0'),
('34156','20','get[1.3.6.1.2.1.1.6.0]','10251','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe physical location of this node (e.g., `telephone closet, 3rd floor\'). If the location is unknown, the value is the zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e0d2149e1a114f3a971c324673beae2f','0','2','0'),
('34157','20','get[1.3.6.1.2.1.1.5.0]','10251','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f63d1f71a97e45b0ab5716299ef298ea','0','2','0'),
('34158','20','get[1.3.6.1.2.1.1.2.0]','10251','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f1535f45138b472c945e231a9beb9cc5','0','2','0'),
('34159','20','get[1.3.6.1.2.1.1.3.0]','10251','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe time (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d7f06d23f6b14677b5183f2cc94fc10d','0','2','0'),
('34160','5','','10251','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'263','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','aba117057e824b6789fca847cae9e0fc','0','2','0'),
('34180','20','get[1.3.6.1.4.1.318.1.1.1.4.3.3.0]','10395','Output load','output.load[upsHighPrecOutputLoad]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current UPS load expressed as percentage\r\nof rated capacity.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c17c7fd7e6504592869dc14c4a002254','0','2','0'),
('34181','20','get[1.3.6.1.2.1.1.3.0]','10395','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe time (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','701fa778bc03444aad94343d0dbe048e','0','2','0'),
('34182','20','get[1.3.6.1.4.1.318.1.1.1.1.2.3.0]','10395','Serial number','system.sn[upsAdvIdentSerialNumber]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nAn 8-character string identifying the serial number of\r\n the UPS internal microprocessor. This number is set at\r\n the factory. NOTE: This number does NOT correspond to\r\n the serial number on the rear of the UPS.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1df309508ac9433397f88120b2895451','0','2','0'),
('34183','20','get[1.3.6.1.2.1.1.2.0]','10395','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe vendor\'s authoritative identification of the network management\r\nsubsystem contained in the entity. This value is allocated within the SMI enterprises\r\nsubtree (1.3.6.1.4.1) and provides an easy and unambiguous means for determining`what\r\nkind of box\' is being managed. For example, if vendor`Flintstones, Inc.\' was\r\nassigned the subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1\r\nto its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6780faad9fc9492f9f92915db5161e43','0','2','0'),
('34185','20','get[1.3.6.1.4.1.318.1.1.1.1.1.1.0]','10395','Model','system.model[upsBasicIdentModel]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe UPS model name (e.g. \'APC Smart-UPS 600\').','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6030dbee3cc24dbeb15e4b802e89cbc8','0','2','0'),
('34186','20','get[1.3.6.1.2.1.1.6.0]','10395','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe physical location of this node (e.g., `telephone closet, 3rd floor\'). If the location is unknown, the value is the zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','445d7a843340424ab7c09ab001d5865c','0','2','0'),
('34187','20','get[1.3.6.1.2.1.1.1.0]','10395','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ed42f6f2d8c24176b53f38e0a857a129','0','2','0'),
('34188','20','get[1.3.6.1.2.1.1.4.0]','10395','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe textual identification of the contact person for this managed\r\nnode, together with information on how to contact this person. If no contact\r\ninformation is known, the value is the zero-length string.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','299e4e11e0374888877e1dc386409726','0','2','0'),
('34189','17','','10395','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2c52ba1a964a40e1b4a75582ee6ad43b','0','2','0'),
('34190','20','get[1.3.6.1.4.1.318.1.1.1.4.3.1.0]','10395','Output voltage','output.voltage[upsHighPrecOutputVoltage]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe output voltage of the UPS system in VAC.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','37d7eda5664c4ae2b4a126c60a8eb40b','0','2','0'),
('34191','20','get[1.3.6.1.4.1.318.1.1.1.4.1.1.0]','10395','Output status','output.status[upsBasicOutputStatus]','1m','31d','365d','0','3','','','','',NULL,'315','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current state of the UPS. If the UPS is unable to\r\n determine the state of the UPS this variable is set\r\n to unknown(1).\r\nDuring self-test most UPSes report onBattery(3) but\r\n some that support it will report onBatteryTest(15).\r\n To determine self-test status across all UPSes, refer\r\n to the upsBasicStateOutputState OID.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0ae99a18a5c24fb0b812353d25459e1f','0','2','0'),
('34192','20','get[1.3.6.1.4.1.318.1.1.1.4.3.4.0]','10395','Output current','output.current[upsHighPrecOutputCurrent]','1m','31d','365d','0','0','','A','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current in amperes drawn by the load on the UPS.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a332c87a948045beae13f74984245b86','0','2','0'),
('34193','20','get[1.3.6.1.4.1.318.1.1.1.2.2.5.0]','10395','External battery packs count','battery.external_packs_count[upsAdvBatteryNumOfBattPacks]','1h','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe number of external battery packs connected to the UPS. If\r\n the UPS does not use smart cells then the agent reports\r\n ERROR_NO_SUCH_NAME.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','390e33a7623d41d2a8a67752c6d5c733','0','2','0'),
('34194','20','get[1.3.6.1.4.1.318.1.1.1.3.3.1.0]','10395','Input voltage','input.voltage[upsHighPrecInputLineVoltage]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current utility line voltage in VAC.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','de84a2fbbb464023a7b73e01895a9e9d','0','2','0'),
('34195','20','get[1.3.6.1.4.1.318.1.1.1.3.3.4.0]','10395','Input frequency','input.frequency[upsHighPrecInputFrequency]','1m','31d','365d','0','0','','Hz','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current input frequency to the UPS system in Hz.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2c0b565f2b6a44a2a91cc61fd220f056','0','2','0'),
('34196','20','get[1.3.6.1.4.1.318.1.1.1.3.2.5.0]','10395','Input fail cause','input.fail[upsAdvInputLineFailCause]','1m','31d','365d','0','3','','','','',NULL,'266','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe reason for the occurrence of the last transfer to UPS\r\nbattery power. The variable is set to:\r\n- noTransfer(1) -- if there is no transfer yet.\r\n- highLineVoltage(2) -- if the transfer to battery is caused\r\nby an over voltage greater than the high transfer voltage.\r\n- brownout(3) -- if the duration of the outage is greater than\r\nfive seconds and the line voltage is between 40% of the\r\nrated output voltage and the low transfer voltage.\r\n- blackout(4) -- if the duration of the outage is greater than five\r\nseconds and the line voltage is between 40% of the rated\r\noutput voltage and ground.\r\n- smallMomentarySag(5) -- if the duration of the outage is less\r\nthan five seconds and the line voltage is between 40% of the\r\nrated output voltage and the low transfer voltage.\r\n- deepMomentarySag(6) -- if the duration of the outage is less\r\nthan five seconds and the line voltage is between 40% of the\r\nrated output voltage and ground. The variable is set to\r\n- smallMomentarySpike(7) -- if the line failure is caused by a\r\nrate of change of input voltage less than ten volts per cycle.\r\n- largeMomentarySpike(8) -- if the line failure is caused by\r\na rate of change of input voltage greater than ten volts per cycle.\r\n- selfTest(9) -- if the UPS was commanded to do a self test.\r\n- rateOfVoltageChange(10) -- if the failure is due to the rate of change of\r\nthe line voltage.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6ce40beab0b44248868652b0ed543afc','0','2','0'),
('34200','20','get[1.3.6.1.4.1.318.1.1.1.2.3.4.0]','10395','Battery voltage','battery.voltage[upsHighPrecBatteryActualVoltage]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe actual battery bus voltage in Volts.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b78d2e9160c74f328b8123ba2031d7bf','0','2','0'),
('34201','20','get[1.3.6.1.4.1.318.1.1.1.2.3.2.0]','10395','Battery temperature','battery.temperature[upsHighPrecBatteryTemperature]','1m','31d','365d','0','0','','℃','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current internal UPS temperature in Celsius.\r\nTemperatures below zero read as 0.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7c35a9646eed4e4581edc51d42a9604c','0','2','0'),
('34202','20','get[1.3.6.1.4.1.318.1.1.1.2.1.1.0]','10395','Battery status','battery.status[upsBasicBatteryStatus]','1m','31d','365d','0','3','','','','',NULL,'267','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe status of the UPS batteries. A batteryLow(3) value\r\n indicates the UPS will be unable to sustain the current\r\n load, and its services will be lost if power is not restored.\r\n The amount of run time in reserve at the time of low battery\r\n can be configured by the upsAdvConfigLowBatteryRunTime.\r\n A batteryInFaultCondition(4)value indicates that a battery\r\n installed has an internal error condition.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f4106603e47e40548592d60a7b8b3148','0','2','0'),
('34203','20','get[1.3.6.1.4.1.318.1.1.1.2.2.3.0]','10395','Battery runtime remaining','battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe UPS battery run time remaining before battery\r\n exhaustion.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f52a3e2ae08c4b2996249c5601b4098d','0','2','0'),
('34204','20','get[1.3.6.1.4.1.318.1.1.1.2.2.4.0]','10395','Battery replace indicator','battery.replace_indicator[upsAdvBatteryReplaceIndicator]','1m','31d','365d','0','3','','','','',NULL,'265','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nIndicates whether the UPS batteries need replacement.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','eb74b3671b4d4335ad92bd3b027547b0','0','2','0'),
('34205','20','get[1.3.6.1.4.1.318.1.1.1.2.1.3.0]','10395','Battery last replace date','battery.last_replace_date[upsBasicBatteryLastReplaceDate]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe date when the UPS system\'s batteries were last replaced\r\n in mm/dd/yy (or yyyy) format. For Smart-UPS models, this value\r\n is originally set at the factory. When the UPS batteries\r\n are replaced, this value should be reset by the administrator.\r\n For Symmetra PX 250/500 this OID is read-only and is configurable in the local display only.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3d69adaa88e64b8084d38c1482815bf2','0','2','0'),
('34206','5','','10395','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'269','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ca3275f69f3c4e7c9c71108451c0b64f','0','2','0'),
('34226','19','','10396','Get chassis','netapp.chassis.get','1m','0','0','0','4','','','','',NULL,NULL,'','','1','{$USERNAME}','{$PASSWORD}','','','0',NULL,'','0','30d','0','',NULL,'{$HTTP.AGENT.TIMEOUT}','{$URL}/api/cluster/chassis?fields=id,state','','','200','1','0','','','0','0','0','0','0','0','0','95d822159f2a4c4084ad36b18cd11a1d','0','2','0'),
('34227','15','','10396','Cluster latency, read','netapp.cluster.statistics.latency.read','1m','31d','365d','0','0','','!ms','','',NULL,NULL,'(last(//netapp.cluster.statistics.latency_raw.read) - last(//netapp.cluster.statistics.latency_raw.read,#2)) /\r\n(last(//netapp.cluster.statistics.iops_raw.read) - last(//netapp.cluster.statistics.iops_raw.read,#2) +\r\n(last(//netapp.cluster.statistics.iops_raw.read) - last(//netapp.cluster.statistics.iops_raw.read,#2) = 0) ) * 0.001','','0','','','','','0',NULL,'The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for read I/O operations.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4b89e603f9cf4b92a85293b1ad15c005','0','2','0'),
('34228','19','','10396','Get SVMs','netapp.svms.get','1m','0','0','0','4','','','','',NULL,NULL,'','','1','{$USERNAME}','{$PASSWORD}','','','0',NULL,'','0','30d','0','',NULL,'{$HTTP.AGENT.TIMEOUT}','{$URL}/api/svm/svms?fields=name,state,comment','','','200','1','0','','','0','0','0','0','0','0','0','7a813b7cb05d497fbf77bf11b01757dd','0','2','0'),
('34229','19','','10396','Get FC ports','netapp.ports.fc.get','1m','0','0','0','4','','','','',NULL,NULL,'','','1','{$USERNAME}','{$PASSWORD}','','','0',NULL,'','0','30d','0','',NULL,'{$HTTP.AGENT.TIMEOUT}','{$URL}/api/network/fc/ports?fields=name,node.name,description,enabled,fabric.switch_port,state','','','200','1','0','','','0','0','0','0','0','0','0','2a6abfe87cc548bb81fcb217cde4f805','0','2','0'),
('34230','19','','10396','Get ethernet ports','netapp.ports.eth.get','1m','0','0','0','4','','','','',NULL,NULL,'','','1','{$USERNAME}','{$PASSWORD}','','','0',NULL,'','0','30d','0','',NULL,'{$HTTP.AGENT.TIMEOUT}','{$URL}/api/network/ethernet/ports?fields=name,type,node.name,broadcast_domain.name,enabled,state,mtu,speed','','','200','1','0','','','0','0','0','0','0','0','0','c677a3caf7a04710bc67b165b4152808','0','2','0'),
('34231','19','','10396','Get nodes','netapp.nodes.get','1m','0','0','0','4','','','','',NULL,NULL,'','','1','{$USERNAME}','{$PASSWORD}','','','0',NULL,'','0','30d','0','',NULL,'{$HTTP.AGENT.TIMEOUT}','{$URL}/api/cluster/nodes?fields=*','','','200','1','0','','','0','0','0','0','0','0','0','5c36efc545ba4dcbb0be84da5e8088cc','0','2','0'),
('34232','19','','10396','Get LUNs','netapp.luns.get','1m','0','0','0','4','','','','',NULL,NULL,'','','1','{$USERNAME}','{$PASSWORD}','','','0',NULL,'','0','30d','0','',NULL,'{$HTTP.AGENT.TIMEOUT}','{$URL}/api/storage/luns?fields=name,svm.name,space.size,space.used,status.state,status.container_state','','','200','1','0','','','0','0','0','0','0','0','0','c9b6ac2405af48c0899d1536662f752b','0','2','0'),
('34233','19','','10396','Get FRUs','netapp.frus.get','1m','0','0','0','4','','','','',NULL,NULL,'','','1','{$USERNAME}','{$PASSWORD}','','','0',NULL,'','0','30d','0','',NULL,'{$HTTP.AGENT.TIMEOUT}','{$URL}/api/cluster/chassis?fields=id,frus.id,frus.state','','','200','1','0','','','0','0','0','0','0','0','0','54163ca73a8c40188048ef5d89ec4927','0','2','0'),
('34234','19','','10396','Get disks','netapp.disks.get','1m','0','0','0','4','','','','',NULL,NULL,'','','1','{$USERNAME}','{$PASSWORD}','','','0',NULL,'','0','30d','0','',NULL,'{$HTTP.AGENT.TIMEOUT}','{$URL}/api/storage/disks?fields=state,node.name','','','200','1','0','','','0','0','0','0','0','0','0','c9bf91e0f23c4961aed8ee5b32ff7767','0','2','0'),
('34235','19','','10396','Get cluster','netapp.cluster.get','1m','0','0','0','4','','','','',NULL,NULL,'','','1','{$USERNAME}','{$PASSWORD}','','','0',NULL,'','0','30d','0','',NULL,'{$HTTP.AGENT.TIMEOUT}','{$URL}/api/cluster','','','200','1','0','','','0','0','0','0','0','0','0','49490a886b5f4e5c9e8cc121a6ffd713','0','2','0'),
('34236','15','','10396','Cluster latency, write','netapp.cluster.statistics.latency.write','1m','31d','365d','0','0','','!ms','','',NULL,NULL,'(last(//netapp.cluster.statistics.latency_raw.write) - last(//netapp.cluster.statistics.latency_raw.write,#2)) /\r\n(last(//netapp.cluster.statistics.iops_raw.write) - last(//netapp.cluster.statistics.iops_raw.write,#2) +\r\n(last(//netapp.cluster.statistics.iops_raw.write) - last(//netapp.cluster.statistics.iops_raw.write,#2) = 0) ) * 0.001','','0','','','','','0',NULL,'The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for write I/O operations.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','543ba306d85e41c98d34dab39463dd87','0','2','0'),
('34237','15','','10396','Cluster latency, total','netapp.cluster.statistics.latency.total','1m','31d','365d','0','0','','!ms','','',NULL,NULL,'(last(//netapp.cluster.statistics.latency_raw.total) - last(//netapp.cluster.statistics.latency_raw.total,#2)) /\r\n(last(//netapp.cluster.statistics.iops_raw.total) - last(//netapp.cluster.statistics.iops_raw.total,#2) +\r\n(last(//netapp.cluster.statistics.iops_raw.total) - last(//netapp.cluster.statistics.iops_raw.total,#2) = 0) ) * 0.001','','0','','','','','0',NULL,'The average latency per I/O operation in milliseconds observed at the storage object. Performance metric aggregated over all types of I/O operations.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2c953f67a7484e389d11ac5ef6b06c44','0','2','0'),
('34238','19','','10396','Get volumes','netapp.volumes.get','1m','0','0','0','4','','','','',NULL,NULL,'','','1','{$USERNAME}','{$PASSWORD}','','','0',NULL,'','0','30d','0','',NULL,'{$HTTP.AGENT.TIMEOUT}','{$URL}/api/storage/volumes?fields=name,comment,state,type,svm.name,space.size,space.available,space.used,statistics','','','200','1','0','','','0','0','0','0','0','0','0','fa7fa8daaaa640d494af38614ba12c2e','0','2','0'),
('34239','15','','10396','Cluster latency, other','netapp.cluster.statistics.latency.other','1m','31d','365d','0','0','','!ms','','',NULL,NULL,'(last(//netapp.cluster.statistics.latency_raw.other) - last(//netapp.cluster.statistics.latency_raw.other,#2)) /\r\n(last(//netapp.cluster.statistics.iops_raw.other) - last(//netapp.cluster.statistics.iops_raw.other,#2) +\r\n(last(//netapp.cluster.statistics.iops_raw.other) - last(//netapp.cluster.statistics.iops_raw.other,#2) = 0) ) * 0.001','','0','','','','','0',NULL,'The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4bd4fe94e9a54fa2b8ab9bdf0475edff','0','2','0'),
('34316','5','','10047','Utilization of report writer internal processes, in %','zabbix[process,report writer,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the report writer processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9c74858428cb4578b8a9095140b64d52','0','2','0'),
('34317','5','','10047','Utilization of report manager internal processes, in %','zabbix[process,report manager,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the report manager processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3db38f5d250741fd833aec23e09bc52e','0','2','0'),
('34322','11','','10327','Get job status','db.odbc.get[get_job_status,"{$MSSQL.DSN}"]','10m','0','0','0','4','','','','',NULL,NULL,'SELECT sj.name AS job_name,\r\n sj.enabled AS enabled,\r\n sjs.last_run_outcome AS run_status,\r\n sjs.last_outcome_message AS last_run_status_message,\r\n sjs.last_run_duration/10000*3600 + sjs.last_run_duration/100%100*60 + sjs.last_run_duration%100 AS run_duration,\r\n CASE sjs.last_run_date\r\n WHEN 0 THEN NULL\r\n ELSE CONVERT(\r\n VARCHAR(25),\r\n TODATETIMEOFFSET(msdb.dbo.agent_datetime(sjs.last_run_date,sjs.last_run_time), DATEPART(TZoffset, SYSDATETIMEOFFSET())),\r\n 126)\r\n END AS last_run_date_time,\r\n sja.next_scheduled_run_date AS next_run_date_time\r\nFROM msdb..sysjobs AS sj\r\nLEFT JOIN msdb..sysjobservers AS sjs\r\n ON sj.job_id = sjs.job_id\r\nLEFT JOIN (\r\n SELECT job.job_id,\r\n max(act.session_id) AS s_id,\r\n CONVERT(\r\n VARCHAR(25),\r\n TODATETIMEOFFSET(max(act.next_scheduled_run_date), DATEPART(TZoffset, SYSDATETIMEOFFSET())),\r\n 126) AS next_scheduled_run_date\r\n FROM msdb..sysjobs AS job\r\n LEFT JOIN msdb..sysjobactivity AS act\r\n ON act.job_id = job.job_id\r\n GROUP BY job.job_id ) AS sja\r\n ON sja.job_id = sj.job_id\r\nWHERE Enabled = 1','','0','{$MSSQL.USER}','{$MSSQL.PASSWORD}','','','0',NULL,'The item gets the SQL agent job status.','0','30d','0','',NULL,'30s','','','','200','1','0','','','0','0','0','0','0','0','0','cae1f9b034b04357b038212b04cac794','0','2','0'),
('34323','11','','10327','Get last backup','db.odbc.get[get_last_backup,"{$MSSQL.DSN}"]','10m','0','0','0','4','','','','',NULL,NULL,'SELECT bs.database_name as dbname,\r\n [type], \r\n DATEDIFF(SECOND, bs.backup_finish_date, getdate()) as time_since_last_backup, \r\n (DATEDIFF(SECOND, bs.backup_start_date, bs.backup_finish_date)) as duration,\r\n db.recovery_model as db_recovery_model\r\nFROM msdb.dbo.backupset as bs\r\nLEFT JOIN sys.databases as db ON bs.database_name = db.name\r\nWHERE bs.database_name not in (\r\n SELECT AGDatabases.database_name AS Databasename\r\n FROM sys.dm_hadr_availability_group_states States\r\n INNER JOIN master.sys.availability_groups Groups \r\n ON States.group_id = Groups.group_id\r\n INNER JOIN sys.availability_databases_cluster AGDatabases \r\n ON Groups.group_id = AGDatabases.group_id\r\n WHERE primary_replica != @@Servername OR primary_replica is NULL\r\n) and db.name is not NULL\r\nGROUP BY bs.database_name, \r\n backup_finish_date, \r\n [type], \r\n backup_start_date,\r\n db.recovery_model\r\nHAVING backup_finish_date = (\r\n SELECT MAX(backup_finish_date)\r\n FROM msdb.dbo.backupset \r\n WHERE database_name = bs.database_name \r\n AND bs.type = [type]\r\n)\r\nORDER BY bs.database_name','','0','{$MSSQL.USER}','{$MSSQL.PASSWORD}','','','0',NULL,'The item gets information about backup processes.','0','30d','0','',NULL,'30s','','','','200','1','0','','','0','0','0','0','0','0','0','9b106ca122fb4b75a761e80f4239f906','0','2','0'),
('34336','19','','10397','Get instance metrics','pd.get_metrics','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Get TiDB PD instance metrics.','0','30d','0','',NULL,'','{$PD.URL}:{$PD.PORT}/metrics','','','200','1','0','','','0','0','0','0','0','0','0','3a1fd879a08a445cbf438f3d68078111','0','2','0'),
('34337','19','','10397','Get instance status','pd.get_status','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Get TiDB PD instance status info.','0','30d','0','',NULL,'','{$PD.URL}:{$PD.PORT}/pd/api/v1/status','','','200','1','0','','','0','0','0','0','0','0','0','7eb740eed4eb43a0a449e1c1436e582b','0','2','0'),
('34367','19','','10398','Get instance status','tidb.get_status','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Get TiDB instance status info.','0','30d','0','',NULL,'','{$TIDB.URL}:{$TIDB.PORT}/status','','','200','1','0','','','0','0','0','0','0','0','0','e95ebe1050b8404f8274e243203fdecc','0','2','0'),
('34368','19','','10398','Get instance metrics','tidb.get_metrics','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Get TiDB instance metrics.','0','30d','0','',NULL,'','{$TIDB.URL}:{$TIDB.PORT}/metrics','','','200','1','0','','','0','0','0','0','0','0','0','954f5e433a7c44128d7772b87d493270','0','2','0'),
('34412','19','','10399','Get instance metrics','tikv.get_metrics','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Get TiKV instance metrics.','0','30d','0','',NULL,'','{$TIKV.URL}:{$TIKV.PORT}/metrics','','','200','1','0','','','0','0','0','0','0','0','0','418bcc8c0bc440468efe833bef02929d','0','2','0'),
('34451','20','get[1.3.6.1.4.1.318.1.1.1.2.3.1.0]','10400','Battery capacity','battery.capacity[upsHighPrecBatteryCapacity]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe remaining battery capacity expressed as\r\n percentage of full capacity.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','70ebcb1dee674a60a1410895d60e8245','0','2','0'),
('34452','20','get[1.3.6.1.4.1.318.1.1.1.4.1.1.0]','10400','Output status','output.status[upsBasicOutputStatus]','1m','31d','365d','0','3','','','','',NULL,'277','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current state of the UPS. If the UPS is unable to\r\n determine the state of the UPS this variable is set\r\n to unknown(1).\r\nDuring self-test most UPSes report onBattery(3) but\r\n some that support it will report onBatteryTest(15).\r\n To determine self-test status across all UPSes, refer\r\n to the upsBasicStateOutputState OID.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8a6c9b134ebc4fd19876cf5d50dfc17b','0','2','0'),
('34453','20','get[1.3.6.1.2.1.1.3.0]','10400','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe time (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fc207a1df4324fcf99ba1da262527fe3','0','2','0'),
('34454','20','get[1.3.6.1.4.1.318.1.1.1.1.2.3.0]','10400','Serial number','system.sn[upsAdvIdentSerialNumber]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nAn 8-character string identifying the serial number of\r\n the UPS internal microprocessor. This number is set at\r\n the factory. NOTE: This number does NOT correspond to\r\n the serial number on the rear of the UPS.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ef25b1e818534420920ff6260fa2932e','0','2','0'),
('34455','20','get[1.3.6.1.2.1.1.2.0]','10400','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5497f3649b9348dca290c55e94f48597','0','2','0'),
('34456','20','get[1.3.6.1.2.1.1.5.0]','10400','System name','system.name[sysName.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d6f2c9770c28487d9fa6af2b63917958','0','2','0'),
('34457','20','get[1.3.6.1.4.1.318.1.1.1.1.1.1.0]','10400','Model','system.model[upsBasicIdentModel]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe UPS model name (e.g. \'APC Smart-UPS 600\').','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','93b6e128e95a4a96bde38ef15d74d510','0','2','0'),
('34458','20','get[1.3.6.1.2.1.1.6.0]','10400','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe physical location of this node (e.g., `telephone closet, 3rd floor\'). If the location is unknown, the value is the zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b109475e72e74e76846aa478e9937101','0','2','0'),
('34459','20','get[1.3.6.1.2.1.1.1.0]','10400','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f1df592a2b114677a1beabec33ce01f9','0','2','0'),
('34460','20','get[1.3.6.1.2.1.1.4.0]','10400','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe textual identification of the contact person for this managed\r\nnode, together with information on how to contact this person. If no contact\r\ninformation is known, the value is the zero-length string.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','aa5e85ef78504fc080b97342baf6cb35','0','2','0'),
('34461','17','','10400','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7d20aa252c5143c98de837dbd2f0cd53','0','2','0'),
('34462','20','get[1.3.6.1.4.1.318.1.1.1.4.3.1.0]','10400','Output voltage','output.voltage[upsHighPrecOutputVoltage]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe output voltage of the UPS system in VAC.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4ec893da7b8540548d60a91ee7e2df83','0','2','0'),
('34463','20','get[1.3.6.1.4.1.318.1.1.1.4.3.3.0]','10400','Output load','output.load[upsHighPrecOutputLoad]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current UPS load expressed as percentage\r\nof rated capacity.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5774ead79e8b4d63a4a31bc091d1c52a','0','2','0'),
('34464','20','get[1.3.6.1.4.1.318.1.1.1.2.2.5.0]','10400','External battery packs count','battery.external_packs_count[upsAdvBatteryNumOfBattPacks]','1h','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe number of external battery packs connected to the UPS. If\r\n the UPS does not use smart cells then the agent reports\r\n ERROR_NO_SUCH_NAME.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2b417eadc988460a89db04efdaca4ffc','0','2','0'),
('34465','20','get[1.3.6.1.4.1.318.1.1.1.4.3.4.0]','10400','Output current','output.current[upsHighPrecOutputCurrent]','1m','31d','365d','0','0','','A','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current in amperes drawn by the load on the UPS.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a6737781029b422ca7a8bbfa0ed80b56','0','2','0'),
('34466','20','get[1.3.6.1.4.1.318.1.1.1.3.3.1.0]','10400','Input voltage','input.voltage[upsHighPrecInputLineVoltage]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current utility line voltage in VAC.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','89bb663e356c4420bcbe2a9470ae3195','0','2','0'),
('34467','20','get[1.3.6.1.4.1.318.1.1.1.3.3.4.0]','10400','Input frequency','input.frequency[upsHighPrecInputFrequency]','1m','31d','365d','0','0','','Hz','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current input frequency to the UPS system in Hz.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3a64740655ca455ab0280592b5f0055f','0','2','0'),
('34468','20','get[1.3.6.1.4.1.318.1.1.1.3.2.5.0]','10400','Input fail cause','input.fail[upsAdvInputLineFailCause]','1m','31d','365d','0','3','','','','',NULL,'275','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe reason for the occurrence of the last transfer to UPS\r\nbattery power. The variable is set to:\r\n- noTransfer(1) -- if there is no transfer yet.\r\n- highLineVoltage(2) -- if the transfer to battery is caused\r\nby an over voltage greater than the high transfer voltage.\r\n- brownout(3) -- if the duration of the outage is greater than\r\nfive seconds and the line voltage is between 40% of the\r\nrated output voltage and the low transfer voltage.\r\n- blackout(4) -- if the duration of the outage is greater than five\r\nseconds and the line voltage is between 40% of the rated\r\noutput voltage and ground.\r\n- smallMomentarySag(5) -- if the duration of the outage is less\r\nthan five seconds and the line voltage is between 40% of the\r\nrated output voltage and the low transfer voltage.\r\n- deepMomentarySag(6) -- if the duration of the outage is less\r\nthan five seconds and the line voltage is between 40% of the\r\nrated output voltage and ground. The variable is set to\r\n- smallMomentarySpike(7) -- if the line failure is caused by a\r\nrate of change of input voltage less than ten volts per cycle.\r\n- largeMomentarySpike(8) -- if the line failure is caused by\r\na rate of change of input voltage greater than ten volts per cycle.\r\n- selfTest(9) -- if the UPS was commanded to do a self test.\r\n- rateOfVoltageChange(10) -- if the failure is due to the rate of change of\r\nthe line voltage.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9069a1c0d9304e7fa5f2df133dbb46cd','0','2','0'),
('34469','20','get[1.3.6.1.4.1.318.1.1.1.2.3.4.0]','10400','Battery voltage','battery.voltage[upsHighPrecBatteryActualVoltage]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe actual battery bus voltage in Volts.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','756f727fe8374aeba9d1afd7bbe77f02','0','2','0'),
('34470','20','get[1.3.6.1.4.1.318.1.1.1.2.3.2.0]','10400','Battery temperature','battery.temperature[upsHighPrecBatteryTemperature]','1m','31d','365d','0','0','','℃','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current internal UPS temperature in Celsius.\r\nTemperatures below zero read as 0.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7a0a2b5e702f473fa1144eaf499367b2','0','2','0'),
('34471','20','get[1.3.6.1.4.1.318.1.1.1.2.1.1.0]','10400','Battery status','battery.status[upsBasicBatteryStatus]','1m','31d','365d','0','3','','','','',NULL,'276','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe status of the UPS batteries. A batteryLow(3) value\r\n indicates the UPS will be unable to sustain the current\r\n load, and its services will be lost if power is not restored.\r\n The amount of run time in reserve at the time of low battery\r\n can be configured by the upsAdvConfigLowBatteryRunTime.\r\n A batteryInFaultCondition(4)value indicates that a battery\r\n installed has an internal error condition.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','22a95e447ad74d43a191f368346fde59','0','2','0'),
('34472','20','get[1.3.6.1.4.1.318.1.1.1.2.2.3.0]','10400','Battery runtime remaining','battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe UPS battery run time remaining before battery\r\n exhaustion.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','89cca909c60745fe824d02aa0d4bc3d7','0','2','0'),
('34473','20','get[1.3.6.1.4.1.318.1.1.1.2.2.4.0]','10400','Battery replace indicator','battery.replace_indicator[upsAdvBatteryReplaceIndicator]','1m','31d','365d','0','3','','','','',NULL,'274','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nIndicates whether the UPS batteries need replacement.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b7614652ff6f4e0890f366b8e0831b80','0','2','0'),
('34474','20','get[1.3.6.1.4.1.318.1.1.1.2.1.3.0]','10400','Battery last replace date','battery.last_replace_date[upsBasicBatteryLastReplaceDate]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe date when the UPS system\'s batteries were last replaced\r\n in mm/dd/yy (or yyyy) format. For Smart-UPS models, this value\r\n is originally set at the factory. When the UPS batteries\r\n are replaced, this value should be reset by the administrator.\r\n For Symmetra PX 250/500 this OID is read-only and is configurable in the local display only.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','98af792142464656b925a452e5ebf1cc','0','2','0'),
('34475','5','','10400','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'278','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','efad5c028c0d4c11b57a19dc04830ea7','0','2','0'),
('34499','20','get[1.3.6.1.4.1.318.1.1.1.2.3.1.0]','10401','Battery capacity','battery.capacity[upsHighPrecBatteryCapacity]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe remaining battery capacity expressed as\r\n percentage of full capacity.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6933bd19628f4699974d5dc4b1637c53','0','2','0'),
('34500','20','get[1.3.6.1.4.1.318.1.1.1.4.1.1.0]','10401','Output status','output.status[upsBasicOutputStatus]','1m','31d','365d','0','3','','','','',NULL,'283','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current state of the UPS. If the UPS is unable to\r\n determine the state of the UPS this variable is set\r\n to unknown(1).\r\nDuring self-test most UPSes report onBattery(3) but\r\n some that support it will report onBatteryTest(15).\r\n To determine self-test status across all UPSes, refer\r\n to the upsBasicStateOutputState OID.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','54d22d1cc362492ebe8695257afc20ec','0','2','0'),
('34501','20','get[1.3.6.1.2.1.1.3.0]','10401','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe time (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f077c3558d24471ca807ea24b3f0c5ea','0','2','0'),
('34502','20','get[1.3.6.1.4.1.318.1.1.1.1.2.3.0]','10401','Serial number','system.sn[upsAdvIdentSerialNumber]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nAn 8-character string identifying the serial number of\r\n the UPS internal microprocessor. This number is set at\r\n the factory. NOTE: This number does NOT correspond to\r\n the serial number on the rear of the UPS.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4e87619ed81346d497c3c3f548c342b5','0','2','0'),
('34503','20','get[1.3.6.1.2.1.1.2.0]','10401','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5a393860311b4b64ae5a4ce7cd7000dc','0','2','0'),
('34504','20','get[1.3.6.1.2.1.1.5.0]','10401','System name','system.name[sysName.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d9452c921e4946719726b292d8c0cbd6','0','2','0'),
('34505','20','get[1.3.6.1.4.1.318.1.1.1.1.1.1.0]','10401','Model','system.model[upsBasicIdentModel]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe UPS model name (e.g. \'APC Smart-UPS 600\').','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1ba45d867e3d4bb99eeb8c0c320ef127','0','2','0'),
('34506','20','get[1.3.6.1.2.1.1.6.0]','10401','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe physical location of this node (e.g., `telephone closet, 3rd floor\'). If the location is unknown, the value is the zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ac995904f95240d9b1f44c27adea5731','0','2','0'),
('34507','20','get[1.3.6.1.2.1.1.1.0]','10401','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e5d72eba4dfb41f8ae73904c936dd64b','0','2','0'),
('34508','20','get[1.3.6.1.2.1.1.4.0]','10401','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe textual identification of the contact person for this managed\r\nnode, together with information on how to contact this person. If no contact\r\ninformation is known, the value is the zero-length string.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','943b146891ac461c92d286704a0864b2','0','2','0'),
('34509','17','','10401','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','94d838cc8cf2438296477c0139a3c152','0','2','0'),
('34510','20','get[1.3.6.1.4.1.318.1.1.1.4.3.1.0]','10401','Output voltage','output.voltage[upsHighPrecOutputVoltage]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe output voltage of the UPS system in VAC.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4e43a6966bf642e19567dcd3763125e7','0','2','0'),
('34511','20','get[1.3.6.1.4.1.318.1.1.1.4.3.3.0]','10401','Output load','output.load[upsHighPrecOutputLoad]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current UPS load expressed as percentage\r\nof rated capacity.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','df799c65dbe5437aa941de3e6d386b26','0','2','0'),
('34512','20','get[1.3.6.1.4.1.318.1.1.1.2.2.5.0]','10401','External battery packs count','battery.external_packs_count[upsAdvBatteryNumOfBattPacks]','1h','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe number of external battery packs connected to the UPS. If\r\n the UPS does not use smart cells then the agent reports\r\n ERROR_NO_SUCH_NAME.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8ba1d824fdc548b4bca770f4145f7169','0','2','0'),
('34513','20','get[1.3.6.1.4.1.318.1.1.1.4.3.4.0]','10401','Output current','output.current[upsHighPrecOutputCurrent]','1m','31d','365d','0','0','','A','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current in amperes drawn by the load on the UPS.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','744d345cd3964baf85f8fefed19f9001','0','2','0'),
('34514','20','get[1.3.6.1.4.1.318.1.1.1.3.3.1.0]','10401','Input voltage','input.voltage[upsHighPrecInputLineVoltage]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current utility line voltage in VAC.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','91a6bc765a954f9e97b855d9dfebd3f7','0','2','0'),
('34515','20','get[1.3.6.1.4.1.318.1.1.1.3.3.4.0]','10401','Input frequency','input.frequency[upsHighPrecInputFrequency]','1m','31d','365d','0','0','','Hz','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current input frequency to the UPS system in Hz.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cfd390d57dbc4046a3a6af384420b697','0','2','0'),
('34516','20','get[1.3.6.1.4.1.318.1.1.1.3.2.5.0]','10401','Input fail cause','input.fail[upsAdvInputLineFailCause]','1m','31d','365d','0','3','','','','',NULL,'281','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe reason for the occurrence of the last transfer to UPS\r\nbattery power. The variable is set to:\r\n- noTransfer(1) -- if there is no transfer yet.\r\n- highLineVoltage(2) -- if the transfer to battery is caused\r\nby an over voltage greater than the high transfer voltage.\r\n- brownout(3) -- if the duration of the outage is greater than\r\nfive seconds and the line voltage is between 40% of the\r\nrated output voltage and the low transfer voltage.\r\n- blackout(4) -- if the duration of the outage is greater than five\r\nseconds and the line voltage is between 40% of the rated\r\noutput voltage and ground.\r\n- smallMomentarySag(5) -- if the duration of the outage is less\r\nthan five seconds and the line voltage is between 40% of the\r\nrated output voltage and the low transfer voltage.\r\n- deepMomentarySag(6) -- if the duration of the outage is less\r\nthan five seconds and the line voltage is between 40% of the\r\nrated output voltage and ground. The variable is set to\r\n- smallMomentarySpike(7) -- if the line failure is caused by a\r\nrate of change of input voltage less than ten volts per cycle.\r\n- largeMomentarySpike(8) -- if the line failure is caused by\r\na rate of change of input voltage greater than ten volts per cycle.\r\n- selfTest(9) -- if the UPS was commanded to do a self test.\r\n- rateOfVoltageChange(10) -- if the failure is due to the rate of change of\r\nthe line voltage.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b83275fc1176451dacaa28606edf045a','0','2','0'),
('34517','20','get[1.3.6.1.4.1.318.1.1.1.2.3.4.0]','10401','Battery voltage','battery.voltage[upsHighPrecBatteryActualVoltage]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe actual battery bus voltage in Volts.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','805d95a6f256410ca083f31cc480b88b','0','2','0'),
('34518','20','get[1.3.6.1.4.1.318.1.1.1.2.3.2.0]','10401','Battery temperature','battery.temperature[upsHighPrecBatteryTemperature]','1m','31d','365d','0','0','','℃','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current internal UPS temperature in Celsius.\r\nTemperatures below zero read as 0.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bda8df2bbd2a40dc937b2cd5b8017a68','0','2','0'),
('34519','20','get[1.3.6.1.4.1.318.1.1.1.2.1.1.0]','10401','Battery status','battery.status[upsBasicBatteryStatus]','1m','31d','365d','0','3','','','','',NULL,'282','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe status of the UPS batteries. A batteryLow(3) value\r\n indicates the UPS will be unable to sustain the current\r\n load, and its services will be lost if power is not restored.\r\n The amount of run time in reserve at the time of low battery\r\n can be configured by the upsAdvConfigLowBatteryRunTime.\r\n A batteryInFaultCondition(4)value indicates that a battery\r\n installed has an internal error condition.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','078719d0396247bca76d85e1e4c650de','0','2','0'),
('34520','20','get[1.3.6.1.4.1.318.1.1.1.2.2.3.0]','10401','Battery runtime remaining','battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe UPS battery run time remaining before battery\r\n exhaustion.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','05be71fcb7c1484f876229f48649039e','0','2','0'),
('34521','20','get[1.3.6.1.4.1.318.1.1.1.2.2.4.0]','10401','Battery replace indicator','battery.replace_indicator[upsAdvBatteryReplaceIndicator]','1m','31d','365d','0','3','','','','',NULL,'280','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nIndicates whether the UPS batteries need replacement.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4c1107eb93114d9096518dc134e08bdc','0','2','0'),
('34522','20','get[1.3.6.1.4.1.318.1.1.1.2.1.3.0]','10401','Battery last replace date','battery.last_replace_date[upsBasicBatteryLastReplaceDate]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe date when the UPS system\'s batteries were last replaced\r\n in mm/dd/yy (or yyyy) format. For Smart-UPS models, this value\r\n is originally set at the factory. When the UPS batteries\r\n are replaced, this value should be reset by the administrator.\r\n For Symmetra PX 250/500 this OID is read-only and is configurable in the local display only.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','147e0b7b466e402ba59d73d66801ef1a','0','2','0'),
('34523','5','','10401','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'284','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d679688992124f6c91c3f70bcc341d2d','0','2','0'),
('34547','20','get[1.3.6.1.4.1.318.1.1.1.2.3.1.0]','10402','Battery capacity','battery.capacity[upsHighPrecBatteryCapacity]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe remaining battery capacity expressed as\r\n percentage of full capacity.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6e8ed2c349d744a1a07928b32cf574c3','0','2','0'),
('34548','20','get[1.3.6.1.4.1.318.1.1.1.4.1.1.0]','10402','Output status','output.status[upsBasicOutputStatus]','1m','31d','365d','0','3','','','','',NULL,'289','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current state of the UPS. If the UPS is unable to\r\n determine the state of the UPS this variable is set\r\n to unknown(1).\r\nDuring self-test most UPSes report onBattery(3) but\r\n some that support it will report onBatteryTest(15).\r\n To determine self-test status across all UPSes, refer\r\n to the upsBasicStateOutputState OID.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','107461ac37984a708acf7f55ae248d67','0','2','0'),
('34549','20','get[1.3.6.1.2.1.1.3.0]','10402','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe time (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','39dd6b9b815a4a838a43d2ebf3fcc8f9','0','2','0'),
('34550','20','get[1.3.6.1.4.1.318.1.1.1.1.2.3.0]','10402','Serial number','system.sn[upsAdvIdentSerialNumber]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nAn 8-character string identifying the serial number of\r\n the UPS internal microprocessor. This number is set at\r\n the factory. NOTE: This number does NOT correspond to\r\n the serial number on the rear of the UPS.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0c36d0bb59a44db2b80ae4a4ff2d7c1b','0','2','0'),
('34551','20','get[1.3.6.1.2.1.1.2.0]','10402','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f6922cd0f93a4a4288a978ff8336226b','0','2','0'),
('34552','20','get[1.3.6.1.2.1.1.5.0]','10402','System name','system.name[sysName.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1f591627fea54a9ebdd8f10cbf39b9ed','0','2','0'),
('34553','20','get[1.3.6.1.4.1.318.1.1.1.1.1.1.0]','10402','Model','system.model[upsBasicIdentModel]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe UPS model name (e.g. \'APC Smart-UPS 600\').','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','272883d0a1cd4bb585a6ede50336c873','0','2','0'),
('34554','20','get[1.3.6.1.2.1.1.6.0]','10402','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe physical location of this node (e.g., `telephone closet, 3rd floor\'). If the location is unknown, the value is the zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a5c6c4c44132439abd0e5fd88e3c90cf','0','2','0'),
('34555','20','get[1.3.6.1.2.1.1.1.0]','10402','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a312df9175ca45528375398f56fa3b3b','0','2','0'),
('34556','20','get[1.3.6.1.2.1.1.4.0]','10402','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe textual identification of the contact person for this managed\r\nnode, together with information on how to contact this person. If no contact\r\ninformation is known, the value is the zero-length string.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fbcbe2cffc8c4bb6b11276cdd03376c3','0','2','0'),
('34557','17','','10402','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','92c2ef138bf148199cdb6d9684b6fa23','0','2','0'),
('34558','20','get[1.3.6.1.4.1.318.1.1.1.4.3.1.0]','10402','Output voltage','output.voltage[upsHighPrecOutputVoltage]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe output voltage of the UPS system in VAC.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ebf71f0afed5460ba4c7f66bb162de9f','0','2','0'),
('34559','20','get[1.3.6.1.4.1.318.1.1.1.4.3.3.0]','10402','Output load','output.load[upsHighPrecOutputLoad]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current UPS load expressed as percentage\r\nof rated capacity.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a2613c8d71864594a0c94064d99e059e','0','2','0'),
('34560','20','get[1.3.6.1.4.1.318.1.1.1.2.2.5.0]','10402','External battery packs count','battery.external_packs_count[upsAdvBatteryNumOfBattPacks]','1h','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe number of external battery packs connected to the UPS. If\r\n the UPS does not use smart cells then the agent reports\r\n ERROR_NO_SUCH_NAME.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','86780568c0594469bc7324c68440cbec','0','2','0'),
('34561','20','get[1.3.6.1.4.1.318.1.1.1.4.3.4.0]','10402','Output current','output.current[upsHighPrecOutputCurrent]','1m','31d','365d','0','0','','A','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current in amperes drawn by the load on the UPS.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a8d017e0fa5d4eca838ad068f0dffcd9','0','2','0'),
('34562','20','get[1.3.6.1.4.1.318.1.1.1.3.3.1.0]','10402','Input voltage','input.voltage[upsHighPrecInputLineVoltage]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current utility line voltage in VAC.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e90dbc034cc447afb4ac1c8ced484882','0','2','0'),
('34563','20','get[1.3.6.1.4.1.318.1.1.1.3.3.4.0]','10402','Input frequency','input.frequency[upsHighPrecInputFrequency]','1m','31d','365d','0','0','','Hz','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current input frequency to the UPS system in Hz.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ab28b72c192e48b5819079bd386ba8ea','0','2','0'),
('34564','20','get[1.3.6.1.4.1.318.1.1.1.3.2.5.0]','10402','Input fail cause','input.fail[upsAdvInputLineFailCause]','1m','31d','365d','0','3','','','','',NULL,'287','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe reason for the occurrence of the last transfer to UPS\r\nbattery power. The variable is set to:\r\n- noTransfer(1) -- if there is no transfer yet.\r\n- highLineVoltage(2) -- if the transfer to battery is caused\r\nby an over voltage greater than the high transfer voltage.\r\n- brownout(3) -- if the duration of the outage is greater than\r\nfive seconds and the line voltage is between 40% of the\r\nrated output voltage and the low transfer voltage.\r\n- blackout(4) -- if the duration of the outage is greater than five\r\nseconds and the line voltage is between 40% of the rated\r\noutput voltage and ground.\r\n- smallMomentarySag(5) -- if the duration of the outage is less\r\nthan five seconds and the line voltage is between 40% of the\r\nrated output voltage and the low transfer voltage.\r\n- deepMomentarySag(6) -- if the duration of the outage is less\r\nthan five seconds and the line voltage is between 40% of the\r\nrated output voltage and ground. The variable is set to\r\n- smallMomentarySpike(7) -- if the line failure is caused by a\r\nrate of change of input voltage less than ten volts per cycle.\r\n- largeMomentarySpike(8) -- if the line failure is caused by\r\na rate of change of input voltage greater than ten volts per cycle.\r\n- selfTest(9) -- if the UPS was commanded to do a self test.\r\n- rateOfVoltageChange(10) -- if the failure is due to the rate of change of\r\nthe line voltage.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7b7d6fdeea2e49c9bb74eb301ecca93a','0','2','0'),
('34565','20','get[1.3.6.1.4.1.318.1.1.1.2.3.4.0]','10402','Battery voltage','battery.voltage[upsHighPrecBatteryActualVoltage]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe actual battery bus voltage in Volts.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e478bdaa89674f6792e39ff1a2d9a413','0','2','0'),
('34566','20','get[1.3.6.1.4.1.318.1.1.1.2.3.2.0]','10402','Battery temperature','battery.temperature[upsHighPrecBatteryTemperature]','1m','31d','365d','0','0','','℃','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current internal UPS temperature in Celsius.\r\nTemperatures below zero read as 0.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bded43c8a4eb4d1b9cf5403d3f3027cd','0','2','0'),
('34567','20','get[1.3.6.1.4.1.318.1.1.1.2.1.1.0]','10402','Battery status','battery.status[upsBasicBatteryStatus]','1m','31d','365d','0','3','','','','',NULL,'288','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe status of the UPS batteries. A batteryLow(3) value\r\n indicates the UPS will be unable to sustain the current\r\n load, and its services will be lost if power is not restored.\r\n The amount of run time in reserve at the time of low battery\r\n can be configured by the upsAdvConfigLowBatteryRunTime.\r\n A batteryInFaultCondition(4)value indicates that a battery\r\n installed has an internal error condition.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9fa77fdcbd7343ca904c6282efcb7c72','0','2','0'),
('34568','20','get[1.3.6.1.4.1.318.1.1.1.2.2.3.0]','10402','Battery runtime remaining','battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe UPS battery run time remaining before battery\r\n exhaustion.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d15c36fb66754791b1014f52171efe1c','0','2','0'),
('34569','20','get[1.3.6.1.4.1.318.1.1.1.2.2.4.0]','10402','Battery replace indicator','battery.replace_indicator[upsAdvBatteryReplaceIndicator]','1m','31d','365d','0','3','','','','',NULL,'286','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nIndicates whether the UPS batteries need replacement.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b50a17ab043c404990dd088ac9f74078','0','2','0'),
('34570','20','get[1.3.6.1.4.1.318.1.1.1.2.1.3.0]','10402','Battery last replace date','battery.last_replace_date[upsBasicBatteryLastReplaceDate]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe date when the UPS system\'s batteries were last replaced\r\n in mm/dd/yy (or yyyy) format. For Smart-UPS models, this value\r\n is originally set at the factory. When the UPS batteries\r\n are replaced, this value should be reset by the administrator.\r\n For Symmetra PX 250/500 this OID is read-only and is configurable in the local display only.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1928e58e65a34b188916086bad5b8725','0','2','0'),
('34571','5','','10402','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'290','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','edb39f7236d74c6783e0d4b832e0b94b','0','2','0'),
('34595','20','get[1.3.6.1.4.1.318.1.1.1.2.3.1.0]','10403','Battery capacity','battery.capacity[upsHighPrecBatteryCapacity]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe remaining battery capacity expressed as\r\n percentage of full capacity.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','94c5c76b7e09402bb221827ee1fea5bc','0','2','0'),
('34596','20','get[1.3.6.1.4.1.318.1.1.1.4.1.1.0]','10403','Output status','output.status[upsBasicOutputStatus]','1m','31d','365d','0','3','','','','',NULL,'295','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current state of the UPS. If the UPS is unable to\r\n determine the state of the UPS this variable is set\r\n to unknown(1).\r\nDuring self-test most UPSes report onBattery(3) but\r\n some that support it will report onBatteryTest(15).\r\n To determine self-test status across all UPSes, refer\r\n to the upsBasicStateOutputState OID.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3170d441ede24494b9570b6d318cc05f','0','2','0'),
('34597','20','get[1.3.6.1.2.1.1.3.0]','10403','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe time (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','336ef2166914449fafa13ab08fe7c7a1','0','2','0'),
('34598','20','get[1.3.6.1.4.1.318.1.1.1.1.2.3.0]','10403','Serial number','system.sn[upsAdvIdentSerialNumber]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nAn 8-character string identifying the serial number of\r\n the UPS internal microprocessor. This number is set at\r\n the factory. NOTE: This number does NOT correspond to\r\n the serial number on the rear of the UPS.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','269ce166bb904fa8b11fc2fdf1f67d76','0','2','0'),
('34599','20','get[1.3.6.1.2.1.1.2.0]','10403','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1c00c980ff284fb2bafb8358cc477d13','0','2','0'),
('34600','20','get[1.3.6.1.2.1.1.5.0]','10403','System name','system.name[sysName.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','482bec6573f249abbb721f2ec90def3b','0','2','0'),
('34601','20','get[1.3.6.1.4.1.318.1.1.1.1.1.1.0]','10403','Model','system.model[upsBasicIdentModel]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe UPS model name (e.g. \'APC Smart-UPS 600\').','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','866889bb71e949c18520bf8fefd3e7ea','0','2','0'),
('34602','20','get[1.3.6.1.2.1.1.6.0]','10403','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe physical location of this node (e.g., `telephone closet, 3rd floor\'). If the location is unknown, the value is the zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d0351d1bc1dc4f1b853fe64d456b3570','0','2','0'),
('34603','20','get[1.3.6.1.2.1.1.1.0]','10403','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','01302a36cafd421c90d746f785c83f3f','0','2','0'),
('34604','20','get[1.3.6.1.2.1.1.4.0]','10403','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe textual identification of the contact person for this managed\r\nnode, together with information on how to contact this person. If no contact\r\ninformation is known, the value is the zero-length string.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','da60acc731a64257a90512b5c70d1e92','0','2','0'),
('34605','17','','10403','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d08fb7e3fae84d2cbae64ab9771ffcdc','0','2','0'),
('34606','20','get[1.3.6.1.4.1.318.1.1.1.4.3.1.0]','10403','Output voltage','output.voltage[upsHighPrecOutputVoltage]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe output voltage of the UPS system in VAC.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6c7d7d803647478c8f2a79875457110c','0','2','0'),
('34607','20','get[1.3.6.1.4.1.318.1.1.1.4.3.3.0]','10403','Output load','output.load[upsHighPrecOutputLoad]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current UPS load expressed as percentage\r\nof rated capacity.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cd7b2c1b12df4fd19f37485aa380b295','0','2','0'),
('34608','20','get[1.3.6.1.4.1.318.1.1.1.2.2.5.0]','10403','External battery packs count','battery.external_packs_count[upsAdvBatteryNumOfBattPacks]','1h','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe number of external battery packs connected to the UPS. If\r\n the UPS does not use smart cells then the agent reports\r\n ERROR_NO_SUCH_NAME.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1a52452353b443d6b965293fda3b16b9','0','2','0'),
('34609','20','get[1.3.6.1.4.1.318.1.1.1.4.3.4.0]','10403','Output current','output.current[upsHighPrecOutputCurrent]','1m','31d','365d','0','0','','A','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current in amperes drawn by the load on the UPS.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','145d3bf81b00427aad5563a4feb7aea1','0','2','0'),
('34610','20','get[1.3.6.1.4.1.318.1.1.1.3.3.1.0]','10403','Input voltage','input.voltage[upsHighPrecInputLineVoltage]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current utility line voltage in VAC.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d7281586af02462a9a2f511c0a5741eb','0','2','0'),
('34611','20','get[1.3.6.1.4.1.318.1.1.1.3.3.4.0]','10403','Input frequency','input.frequency[upsHighPrecInputFrequency]','1m','31d','365d','0','0','','Hz','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current input frequency to the UPS system in Hz.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0ceb5a6d71f440fcbd2da06b0cc1bbb3','0','2','0'),
('34612','20','get[1.3.6.1.4.1.318.1.1.1.3.2.5.0]','10403','Input fail cause','input.fail[upsAdvInputLineFailCause]','1m','31d','365d','0','3','','','','',NULL,'293','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe reason for the occurrence of the last transfer to UPS\r\nbattery power. The variable is set to:\r\n- noTransfer(1) -- if there is no transfer yet.\r\n- highLineVoltage(2) -- if the transfer to battery is caused\r\nby an over voltage greater than the high transfer voltage.\r\n- brownout(3) -- if the duration of the outage is greater than\r\nfive seconds and the line voltage is between 40% of the\r\nrated output voltage and the low transfer voltage.\r\n- blackout(4) -- if the duration of the outage is greater than five\r\nseconds and the line voltage is between 40% of the rated\r\noutput voltage and ground.\r\n- smallMomentarySag(5) -- if the duration of the outage is less\r\nthan five seconds and the line voltage is between 40% of the\r\nrated output voltage and the low transfer voltage.\r\n- deepMomentarySag(6) -- if the duration of the outage is less\r\nthan five seconds and the line voltage is between 40% of the\r\nrated output voltage and ground. The variable is set to\r\n- smallMomentarySpike(7) -- if the line failure is caused by a\r\nrate of change of input voltage less than ten volts per cycle.\r\n- largeMomentarySpike(8) -- if the line failure is caused by\r\na rate of change of input voltage greater than ten volts per cycle.\r\n- selfTest(9) -- if the UPS was commanded to do a self test.\r\n- rateOfVoltageChange(10) -- if the failure is due to the rate of change of\r\nthe line voltage.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0a12f157ae844129a35084b5ab0a8eab','0','2','0'),
('34613','20','get[1.3.6.1.4.1.318.1.1.1.2.3.4.0]','10403','Battery voltage','battery.voltage[upsHighPrecBatteryActualVoltage]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe actual battery bus voltage in Volts.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4b456cb5c0224b31a2f8b4bb40d8203b','0','2','0'),
('34614','20','get[1.3.6.1.4.1.318.1.1.1.2.3.2.0]','10403','Battery temperature','battery.temperature[upsHighPrecBatteryTemperature]','1m','31d','365d','0','0','','℃','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current internal UPS temperature in Celsius.\r\nTemperatures below zero read as 0.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c03e15aaf58f4056b88677c44c5d7d87','0','2','0'),
('34615','20','get[1.3.6.1.4.1.318.1.1.1.2.1.1.0]','10403','Battery status','battery.status[upsBasicBatteryStatus]','1m','31d','365d','0','3','','','','',NULL,'294','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe status of the UPS batteries. A batteryLow(3) value\r\n indicates the UPS will be unable to sustain the current\r\n load, and its services will be lost if power is not restored.\r\n The amount of run time in reserve at the time of low battery\r\n can be configured by the upsAdvConfigLowBatteryRunTime.\r\n A batteryInFaultCondition(4)value indicates that a battery\r\n installed has an internal error condition.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a631704123c2498aa8ce973e36c13698','0','2','0'),
('34616','20','get[1.3.6.1.4.1.318.1.1.1.2.2.3.0]','10403','Battery runtime remaining','battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe UPS battery run time remaining before battery\r\n exhaustion.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f151210b9cd749b2b3e5af2145733c82','0','2','0'),
('34617','20','get[1.3.6.1.4.1.318.1.1.1.2.2.4.0]','10403','Battery replace indicator','battery.replace_indicator[upsAdvBatteryReplaceIndicator]','1m','31d','365d','0','3','','','','',NULL,'292','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nIndicates whether the UPS batteries need replacement.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8f4351d23be04a3abee1e6edb746a9ec','0','2','0'),
('34618','20','get[1.3.6.1.4.1.318.1.1.1.2.1.3.0]','10403','Battery last replace date','battery.last_replace_date[upsBasicBatteryLastReplaceDate]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe date when the UPS system\'s batteries were last replaced\r\n in mm/dd/yy (or yyyy) format. For Smart-UPS models, this value\r\n is originally set at the factory. When the UPS batteries\r\n are replaced, this value should be reset by the administrator.\r\n For Symmetra PX 250/500 this OID is read-only and is configurable in the local display only.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7a887ae254b04b19bac605bb36141767','0','2','0'),
('34619','5','','10403','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'296','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f4f9ebb1e55b41a5a6e470a541e136bc','0','2','0'),
('34643','20','get[1.3.6.1.4.1.318.1.1.1.2.3.1.0]','10404','Battery capacity','battery.capacity[upsHighPrecBatteryCapacity]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe remaining battery capacity expressed as\r\n percentage of full capacity.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6ac68411ef214cc7aa49d39d58ce3c6a','0','2','0'),
('34644','20','get[1.3.6.1.4.1.318.1.1.1.4.1.1.0]','10404','Output status','output.status[upsBasicOutputStatus]','1m','31d','365d','0','3','','','','',NULL,'301','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current state of the UPS. If the UPS is unable to\r\n determine the state of the UPS this variable is set\r\n to unknown(1).\r\nDuring self-test most UPSes report onBattery(3) but\r\n some that support it will report onBatteryTest(15).\r\n To determine self-test status across all UPSes, refer\r\n to the upsBasicStateOutputState OID.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3edf5e7776ae4cc6aebcedcbf4ab8d78','0','2','0'),
('34645','20','get[1.3.6.1.2.1.1.3.0]','10404','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe time (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bbcb555846df4169bc7aead77403e8eb','0','2','0'),
('34646','20','get[1.3.6.1.4.1.318.1.1.1.1.2.3.0]','10404','Serial number','system.sn[upsAdvIdentSerialNumber]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nAn 8-character string identifying the serial number of\r\n the UPS internal microprocessor. This number is set at\r\n the factory. NOTE: This number does NOT correspond to\r\n the serial number on the rear of the UPS.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9ebb979a5e4a45fd9acf956df034f9be','0','2','0'),
('34647','20','get[1.3.6.1.2.1.1.2.0]','10404','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4e7a9b6aa8dd4371b83bf47f8246cebf','0','2','0'),
('34648','20','get[1.3.6.1.2.1.1.5.0]','10404','System name','system.name[sysName.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e4d9441075954c068b6fd92bbff49cef','0','2','0'),
('34649','20','get[1.3.6.1.4.1.318.1.1.1.1.1.1.0]','10404','Model','system.model[upsBasicIdentModel]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe UPS model name (e.g. \'APC Smart-UPS 600\').','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','320221ba30744ca78b8dce03dccd549b','0','2','0'),
('34650','20','get[1.3.6.1.2.1.1.6.0]','10404','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe physical location of this node (e.g., `telephone closet, 3rd floor\'). If the location is unknown, the value is the zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','031b9d385cae4641b9ecfb76c4174262','0','2','0'),
('34651','20','get[1.3.6.1.2.1.1.1.0]','10404','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e0d638ab398f40e8a9555925cd8ba907','0','2','0'),
('34652','20','get[1.3.6.1.2.1.1.4.0]','10404','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe textual identification of the contact person for this managed\r\nnode, together with information on how to contact this person. If no contact\r\ninformation is known, the value is the zero-length string.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','50cc8e7cea0c40948c006623dfa94dae','0','2','0'),
('34653','17','','10404','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d633cd3273e74209a1b0c6b761028e0a','0','2','0'),
('34654','20','get[1.3.6.1.4.1.318.1.1.1.4.3.1.0]','10404','Output voltage','output.voltage[upsHighPrecOutputVoltage]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe output voltage of the UPS system in VAC.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bcb28618699448ea8d9d056bad203a0e','0','2','0'),
('34655','20','get[1.3.6.1.4.1.318.1.1.1.4.3.3.0]','10404','Output load','output.load[upsHighPrecOutputLoad]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current UPS load expressed as percentage\r\nof rated capacity.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1d9d7ef724ff41eda4fd536df6af93cb','0','2','0'),
('34656','20','get[1.3.6.1.4.1.318.1.1.1.2.2.5.0]','10404','External battery packs count','battery.external_packs_count[upsAdvBatteryNumOfBattPacks]','1h','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe number of external battery packs connected to the UPS. If\r\n the UPS does not use smart cells then the agent reports\r\n ERROR_NO_SUCH_NAME.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7f3b05afa58142d5b8670c40c196baf8','0','2','0'),
('34657','20','get[1.3.6.1.4.1.318.1.1.1.4.3.4.0]','10404','Output current','output.current[upsHighPrecOutputCurrent]','1m','31d','365d','0','0','','A','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current in amperes drawn by the load on the UPS.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','861757e4bb1a4dc6ac1c8ef94d973328','0','2','0'),
('34658','20','get[1.3.6.1.4.1.318.1.1.1.3.3.1.0]','10404','Input voltage','input.voltage[upsHighPrecInputLineVoltage]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current utility line voltage in VAC.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e2b5b824c4704293ad68185971e9fb03','0','2','0'),
('34659','20','get[1.3.6.1.4.1.318.1.1.1.3.3.4.0]','10404','Input frequency','input.frequency[upsHighPrecInputFrequency]','1m','31d','365d','0','0','','Hz','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current input frequency to the UPS system in Hz.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','700a78a4ab3c441496ecafc5ddde6a9d','0','2','0'),
('34660','20','get[1.3.6.1.4.1.318.1.1.1.3.2.5.0]','10404','Input fail cause','input.fail[upsAdvInputLineFailCause]','1m','31d','365d','0','3','','','','',NULL,'299','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe reason for the occurrence of the last transfer to UPS\r\nbattery power. The variable is set to:\r\n- noTransfer(1) -- if there is no transfer yet.\r\n- highLineVoltage(2) -- if the transfer to battery is caused\r\nby an over voltage greater than the high transfer voltage.\r\n- brownout(3) -- if the duration of the outage is greater than\r\nfive seconds and the line voltage is between 40% of the\r\nrated output voltage and the low transfer voltage.\r\n- blackout(4) -- if the duration of the outage is greater than five\r\nseconds and the line voltage is between 40% of the rated\r\noutput voltage and ground.\r\n- smallMomentarySag(5) -- if the duration of the outage is less\r\nthan five seconds and the line voltage is between 40% of the\r\nrated output voltage and the low transfer voltage.\r\n- deepMomentarySag(6) -- if the duration of the outage is less\r\nthan five seconds and the line voltage is between 40% of the\r\nrated output voltage and ground. The variable is set to\r\n- smallMomentarySpike(7) -- if the line failure is caused by a\r\nrate of change of input voltage less than ten volts per cycle.\r\n- largeMomentarySpike(8) -- if the line failure is caused by\r\na rate of change of input voltage greater than ten volts per cycle.\r\n- selfTest(9) -- if the UPS was commanded to do a self test.\r\n- rateOfVoltageChange(10) -- if the failure is due to the rate of change of\r\nthe line voltage.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4cb80c94f3d14674bc7a3933c7571eac','0','2','0'),
('34661','20','get[1.3.6.1.4.1.318.1.1.1.2.3.4.0]','10404','Battery voltage','battery.voltage[upsHighPrecBatteryActualVoltage]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe actual battery bus voltage in Volts.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8ee98deaf4bf46afb06f694d19757237','0','2','0'),
('34662','20','get[1.3.6.1.4.1.318.1.1.1.2.3.2.0]','10404','Battery temperature','battery.temperature[upsHighPrecBatteryTemperature]','1m','31d','365d','0','0','','℃','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current internal UPS temperature in Celsius.\r\nTemperatures below zero read as 0.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','04cd5e06823846b58ad57e2c358f346e','0','2','0'),
('34663','20','get[1.3.6.1.4.1.318.1.1.1.2.1.1.0]','10404','Battery status','battery.status[upsBasicBatteryStatus]','1m','31d','365d','0','3','','','','',NULL,'300','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe status of the UPS batteries. A batteryLow(3) value\r\n indicates the UPS will be unable to sustain the current\r\n load, and its services will be lost if power is not restored.\r\n The amount of run time in reserve at the time of low battery\r\n can be configured by the upsAdvConfigLowBatteryRunTime.\r\n A batteryInFaultCondition(4)value indicates that a battery\r\n installed has an internal error condition.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','047a5a3a957949d288588eb11f36f25e','0','2','0'),
('34664','20','get[1.3.6.1.4.1.318.1.1.1.2.2.3.0]','10404','Battery runtime remaining','battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe UPS battery run time remaining before battery\r\n exhaustion.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','95749270e6234d6cbd1edb0c5e1118e0','0','2','0'),
('34665','20','get[1.3.6.1.4.1.318.1.1.1.2.2.4.0]','10404','Battery replace indicator','battery.replace_indicator[upsAdvBatteryReplaceIndicator]','1m','31d','365d','0','3','','','','',NULL,'298','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nIndicates whether the UPS batteries need replacement.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','44a33eba233e4bd7ac51ca2dcabf2939','0','2','0'),
('34666','20','get[1.3.6.1.4.1.318.1.1.1.2.1.3.0]','10404','Battery last replace date','battery.last_replace_date[upsBasicBatteryLastReplaceDate]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe date when the UPS system\'s batteries were last replaced\r\n in mm/dd/yy (or yyyy) format. For Smart-UPS models, this value\r\n is originally set at the factory. When the UPS batteries\r\n are replaced, this value should be reset by the administrator.\r\n For Symmetra PX 250/500 this OID is read-only and is configurable in the local display only.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','87b91005f5ff4ba5b0086e25eaa799bd','0','2','0'),
('34667','5','','10404','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'302','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f24fc7ed9ffa4884891a01a0f1565fc4','0','2','0'),
('34739','20','get[1.3.6.1.4.1.318.1.1.1.2.3.1.0]','10406','Battery capacity','battery.capacity[upsHighPrecBatteryCapacity]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe remaining battery capacity expressed as\r\n percentage of full capacity.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c4f4a85105f24292a3b566d0d1bcc090','0','2','0'),
('34740','20','get[1.3.6.1.4.1.318.1.1.1.4.1.1.0]','10406','Output status','output.status[upsBasicOutputStatus]','1m','31d','365d','0','3','','','','',NULL,'313','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current state of the UPS. If the UPS is unable to\r\n determine the state of the UPS this variable is set\r\n to unknown(1).\r\nDuring self-test most UPSes report onBattery(3) but\r\n some that support it will report onBatteryTest(15).\r\n To determine self-test status across all UPSes, refer\r\n to the upsBasicStateOutputState OID.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','11c1742beed041999375e5a1ede42546','0','2','0'),
('34741','20','get[1.3.6.1.2.1.1.3.0]','10406','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe time (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','320bdbfd8076411bb1dd63fccddec126','0','2','0'),
('34742','20','get[1.3.6.1.4.1.318.1.1.1.1.2.3.0]','10406','Serial number','system.sn[upsAdvIdentSerialNumber]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nAn 8-character string identifying the serial number of\r\n the UPS internal microprocessor. This number is set at\r\n the factory. NOTE: This number does NOT correspond to\r\n the serial number on the rear of the UPS.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','63852531159c44f1beca7facd8f93fa2','0','2','0'),
('34743','20','get[1.3.6.1.2.1.1.2.0]','10406','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b59b3801f5584321a1fca9bdb466f191','0','2','0'),
('34744','20','get[1.3.6.1.2.1.1.5.0]','10406','System name','system.name[sysName.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','13c26820947442f581c2234c38c052cc','0','2','0'),
('34745','20','get[1.3.6.1.4.1.318.1.1.1.1.1.1.0]','10406','Model','system.model[upsBasicIdentModel]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe UPS model name (e.g. \'APC Smart-UPS 600\').','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','57f3c4c2aff04eef83b7a7a53fa9f95c','0','2','0'),
('34746','20','get[1.3.6.1.2.1.1.6.0]','10406','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe physical location of this node (e.g., `telephone closet, 3rd floor\'). If the location is unknown, the value is the zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','25aa469a757347089191eb8e364d4df9','0','2','0'),
('34747','20','get[1.3.6.1.2.1.1.1.0]','10406','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','13d3c18413a249d492272a7373ebd772','0','2','0'),
('34748','20','get[1.3.6.1.2.1.1.4.0]','10406','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe textual identification of the contact person for this managed\r\nnode, together with information on how to contact this person. If no contact\r\ninformation is known, the value is the zero-length string.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e4995e72f6b442bd9b8c90f09eb54f16','0','2','0'),
('34749','17','','10406','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ae4579b14c424c0492acbfcb5aa5dd67','0','2','0'),
('34750','20','get[1.3.6.1.4.1.318.1.1.1.4.3.1.0]','10406','Output voltage','output.voltage[upsHighPrecOutputVoltage]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe output voltage of the UPS system in VAC.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','07059c625de94e618925249492982fb7','0','2','0'),
('34751','20','get[1.3.6.1.4.1.318.1.1.1.4.3.3.0]','10406','Output load','output.load[upsHighPrecOutputLoad]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current UPS load expressed as percentage\r\nof rated capacity.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0413f6ef89894dc6ba51e42f6a963f94','0','2','0'),
('34752','20','get[1.3.6.1.4.1.318.1.1.1.2.2.5.0]','10406','External battery packs count','battery.external_packs_count[upsAdvBatteryNumOfBattPacks]','1h','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe number of external battery packs connected to the UPS. If\r\n the UPS does not use smart cells then the agent reports\r\n ERROR_NO_SUCH_NAME.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7d7c2b962e9843b8a6cf72c04ff1e479','0','2','0'),
('34753','20','get[1.3.6.1.4.1.318.1.1.1.4.3.4.0]','10406','Output current','output.current[upsHighPrecOutputCurrent]','1m','31d','365d','0','0','','A','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current in amperes drawn by the load on the UPS.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e4d76d857c4e46fd9b0e97405b17988a','0','2','0'),
('34754','20','get[1.3.6.1.4.1.318.1.1.1.3.3.1.0]','10406','Input voltage','input.voltage[upsHighPrecInputLineVoltage]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current utility line voltage in VAC.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c69418651f75413e95645c62fa3fee7f','0','2','0'),
('34755','20','get[1.3.6.1.4.1.318.1.1.1.3.3.4.0]','10406','Input frequency','input.frequency[upsHighPrecInputFrequency]','1m','31d','365d','0','0','','Hz','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current input frequency to the UPS system in Hz.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7574344f67544554804c4c68e39d3d72','0','2','0'),
('34756','20','get[1.3.6.1.4.1.318.1.1.1.3.2.5.0]','10406','Input fail cause','input.fail[upsAdvInputLineFailCause]','1m','31d','365d','0','3','','','','',NULL,'311','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe reason for the occurrence of the last transfer to UPS\r\nbattery power. The variable is set to:\r\n- noTransfer(1) -- if there is no transfer yet.\r\n- highLineVoltage(2) -- if the transfer to battery is caused\r\nby an over voltage greater than the high transfer voltage.\r\n- brownout(3) -- if the duration of the outage is greater than\r\nfive seconds and the line voltage is between 40% of the\r\nrated output voltage and the low transfer voltage.\r\n- blackout(4) -- if the duration of the outage is greater than five\r\nseconds and the line voltage is between 40% of the rated\r\noutput voltage and ground.\r\n- smallMomentarySag(5) -- if the duration of the outage is less\r\nthan five seconds and the line voltage is between 40% of the\r\nrated output voltage and the low transfer voltage.\r\n- deepMomentarySag(6) -- if the duration of the outage is less\r\nthan five seconds and the line voltage is between 40% of the\r\nrated output voltage and ground. The variable is set to\r\n- smallMomentarySpike(7) -- if the line failure is caused by a\r\nrate of change of input voltage less than ten volts per cycle.\r\n- largeMomentarySpike(8) -- if the line failure is caused by\r\na rate of change of input voltage greater than ten volts per cycle.\r\n- selfTest(9) -- if the UPS was commanded to do a self test.\r\n- rateOfVoltageChange(10) -- if the failure is due to the rate of change of\r\nthe line voltage.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','07754bb421d0435995abbc49d4597908','0','2','0'),
('34757','20','get[1.3.6.1.4.1.318.1.1.1.2.3.4.0]','10406','Battery voltage','battery.voltage[upsHighPrecBatteryActualVoltage]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe actual battery bus voltage in Volts.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fa8256c826954defa82083ddc742624e','0','2','0'),
('34758','20','get[1.3.6.1.4.1.318.1.1.1.2.3.2.0]','10406','Battery temperature','battery.temperature[upsHighPrecBatteryTemperature]','1m','31d','365d','0','0','','℃','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current internal UPS temperature in Celsius.\r\nTemperatures below zero read as 0.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','533041b6831c451cb72991d3fdeca535','0','2','0'),
('34759','20','get[1.3.6.1.4.1.318.1.1.1.2.1.1.0]','10406','Battery status','battery.status[upsBasicBatteryStatus]','1m','31d','365d','0','3','','','','',NULL,'312','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe status of the UPS batteries. A batteryLow(3) value\r\n indicates the UPS will be unable to sustain the current\r\n load, and its services will be lost if power is not restored.\r\n The amount of run time in reserve at the time of low battery\r\n can be configured by the upsAdvConfigLowBatteryRunTime.\r\n A batteryInFaultCondition(4)value indicates that a battery\r\n installed has an internal error condition.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ceed5ddfc9964aabaebb0b97875b1bd9','0','2','0'),
('34760','20','get[1.3.6.1.4.1.318.1.1.1.2.2.3.0]','10406','Battery runtime remaining','battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe UPS battery run time remaining before battery\r\n exhaustion.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ae8a19896d21405ca99a5bfbd5de1f95','0','2','0'),
('34761','20','get[1.3.6.1.4.1.318.1.1.1.2.2.4.0]','10406','Battery replace indicator','battery.replace_indicator[upsAdvBatteryReplaceIndicator]','1m','31d','365d','0','3','','','','',NULL,'310','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nIndicates whether the UPS batteries need replacement.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4cdd4bbff845477194a6d96a31431d23','0','2','0'),
('34762','20','get[1.3.6.1.4.1.318.1.1.1.2.1.3.0]','10406','Battery last replace date','battery.last_replace_date[upsBasicBatteryLastReplaceDate]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe date when the UPS system\'s batteries were last replaced\r\n in mm/dd/yy (or yyyy) format. For Smart-UPS models, this value\r\n is originally set at the factory. When the UPS batteries\r\n are replaced, this value should be reset by the administrator.\r\n For Symmetra PX 250/500 this OID is read-only and is configurable in the local display only.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','552e030c272d43a0998bc2648f15ae44','0','2','0'),
('34763','5','','10406','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'314','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','567996748402435d80aae37818d4125e','0','2','0'),
('34787','20','get[1.3.6.1.4.1.318.1.1.1.2.3.1.0]','10395','Battery capacity','battery.capacity[upsHighPrecBatteryCapacity]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe remaining battery capacity expressed as\r\n percentage of full capacity.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','96898d48b27946bfa9a623d7d0b028be','0','2','0'),
('34788','20','get[1.3.6.1.2.1.1.5.0]','10395','System name','system.name[sysName.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn administratively-assigned name for this managed node.By\r\nconvention, this is the node\'s fully-qualified domain name. If the name is unknown,\r\nthe value is the zero-length string.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','45a80892f41b411e8457f99b069b59ee','0','2','0'),
('34793','20','get[1.3.6.1.4.1.318.1.1.1.2.3.1.0]','10407','Battery capacity','battery.capacity[upsHighPrecBatteryCapacity]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe remaining battery capacity expressed as\r\n percentage of full capacity.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','560d838206844447b8f79fd4500557b2','0','2','0'),
('34794','20','get[1.3.6.1.4.1.318.1.1.1.4.1.1.0]','10407','Output status','output.status[upsBasicOutputStatus]','1m','31d','365d','0','3','','','','',NULL,'320','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current state of the UPS. If the UPS is unable to\r\n determine the state of the UPS this variable is set\r\n to unknown(1).\r\nDuring self-test most UPSes report onBattery(3) but\r\n some that support it will report onBatteryTest(15).\r\n To determine self-test status across all UPSes, refer\r\n to the upsBasicStateOutputState OID.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','978a7ee6923c40cd8097afb60c81244f','0','2','0'),
('34795','20','get[1.3.6.1.2.1.1.3.0]','10407','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe time (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0810681a8ae74ad8b28ea38119a93f59','0','2','0'),
('34796','20','get[1.3.6.1.4.1.318.1.1.1.1.2.3.0]','10407','Serial number','system.sn[upsAdvIdentSerialNumber]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nAn 8-character string identifying the serial number of\r\n the UPS internal microprocessor. This number is set at\r\n the factory. NOTE: This number does NOT correspond to\r\n the serial number on the rear of the UPS.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3f61bd561e7d42fbb55b71df9ea3b5b1','0','2','0'),
('34797','20','get[1.3.6.1.2.1.1.2.0]','10407','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9f858f7eaed545b8a35ac24e858b0826','0','2','0'),
('34798','20','get[1.3.6.1.2.1.1.5.0]','10407','System name','system.name[sysName.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b15628c68d4c4e8ca761ad9fa7e40a1c','0','2','0'),
('34799','20','get[1.3.6.1.4.1.318.1.1.1.1.1.1.0]','10407','Model','system.model[upsBasicIdentModel]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe UPS model name (e.g. \'APC Smart-UPS 600\').','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','64d56d199021432886452fff5a4c6d22','0','2','0'),
('34800','20','get[1.3.6.1.2.1.1.6.0]','10407','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe physical location of this node (e.g., `telephone closet, 3rd floor\'). If the location is unknown, the value is the zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6a06715ef4c44534a0ebc45f4e5adb5b','0','2','0'),
('34801','20','get[1.3.6.1.2.1.1.1.0]','10407','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e8c576f27f4c49ef9acd1ba7198ffbb6','0','2','0'),
('34802','20','get[1.3.6.1.2.1.1.4.0]','10407','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe textual identification of the contact person for this managed\r\nnode, together with information on how to contact this person. If no contact\r\ninformation is known, the value is the zero-length string.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8dd800fbbcde431aa421eeb5a33eb798','0','2','0'),
('34803','17','','10407','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','102179b315b548e289df3459bc5860c1','0','2','0'),
('34804','20','get[1.3.6.1.4.1.318.1.1.1.4.3.1.0]','10407','Output voltage','output.voltage[upsHighPrecOutputVoltage]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe output voltage of the UPS system in VAC.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9cf495d14fdf4059b6c35e7857d7a18c','0','2','0'),
('34805','20','get[1.3.6.1.4.1.318.1.1.1.4.3.3.0]','10407','Output load','output.load[upsHighPrecOutputLoad]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current UPS load expressed as percentage\r\nof rated capacity.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d27e991fc0f64b4f9704fb8183567e8d','0','2','0'),
('34806','20','get[1.3.6.1.4.1.318.1.1.1.2.2.5.0]','10407','External battery packs count','battery.external_packs_count[upsAdvBatteryNumOfBattPacks]','1h','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe number of external battery packs connected to the UPS. If\r\n the UPS does not use smart cells then the agent reports\r\n ERROR_NO_SUCH_NAME.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3fea9d328d5342b5bae6b643a0b45495','0','2','0'),
('34807','20','get[1.3.6.1.4.1.318.1.1.1.4.3.4.0]','10407','Output current','output.current[upsHighPrecOutputCurrent]','1m','31d','365d','0','0','','A','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current in amperes drawn by the load on the UPS.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bbb33508be95488680bcb644a44626ef','0','2','0'),
('34808','20','get[1.3.6.1.4.1.318.1.1.1.3.3.1.0]','10407','Input voltage','input.voltage[upsHighPrecInputLineVoltage]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current utility line voltage in VAC.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5764182c547143b3b044ec1adb54c1ce','0','2','0'),
('34809','20','get[1.3.6.1.4.1.318.1.1.1.3.3.4.0]','10407','Input frequency','input.frequency[upsHighPrecInputFrequency]','1m','31d','365d','0','0','','Hz','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current input frequency to the UPS system in Hz.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','05ccf5bd85414ee9b5860c80f6e8323f','0','2','0'),
('34810','20','get[1.3.6.1.4.1.318.1.1.1.3.2.5.0]','10407','Input fail cause','input.fail[upsAdvInputLineFailCause]','1m','31d','365d','0','3','','','','',NULL,'318','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe reason for the occurrence of the last transfer to UPS\r\nbattery power. The variable is set to:\r\n- noTransfer(1) -- if there is no transfer yet.\r\n- highLineVoltage(2) -- if the transfer to battery is caused\r\nby an over voltage greater than the high transfer voltage.\r\n- brownout(3) -- if the duration of the outage is greater than\r\nfive seconds and the line voltage is between 40% of the\r\nrated output voltage and the low transfer voltage.\r\n- blackout(4) -- if the duration of the outage is greater than five\r\nseconds and the line voltage is between 40% of the rated\r\noutput voltage and ground.\r\n- smallMomentarySag(5) -- if the duration of the outage is less\r\nthan five seconds and the line voltage is between 40% of the\r\nrated output voltage and the low transfer voltage.\r\n- deepMomentarySag(6) -- if the duration of the outage is less\r\nthan five seconds and the line voltage is between 40% of the\r\nrated output voltage and ground. The variable is set to\r\n- smallMomentarySpike(7) -- if the line failure is caused by a\r\nrate of change of input voltage less than ten volts per cycle.\r\n- largeMomentarySpike(8) -- if the line failure is caused by\r\na rate of change of input voltage greater than ten volts per cycle.\r\n- selfTest(9) -- if the UPS was commanded to do a self test.\r\n- rateOfVoltageChange(10) -- if the failure is due to the rate of change of\r\nthe line voltage.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','13c0d202d19f4b64a52141062c4be6bb','0','2','0'),
('34811','20','get[1.3.6.1.4.1.318.1.1.1.2.3.4.0]','10407','Battery voltage','battery.voltage[upsHighPrecBatteryActualVoltage]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe actual battery bus voltage in Volts.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ab0f5d86a40b421ba136506f7854bbbd','0','2','0'),
('34812','20','get[1.3.6.1.4.1.318.1.1.1.2.3.2.0]','10407','Battery temperature','battery.temperature[upsHighPrecBatteryTemperature]','1m','31d','365d','0','0','','℃','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current internal UPS temperature in Celsius.\r\nTemperatures below zero read as 0.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6d581eae836342bb8280eb09d7894533','0','2','0'),
('34813','20','get[1.3.6.1.4.1.318.1.1.1.2.1.1.0]','10407','Battery status','battery.status[upsBasicBatteryStatus]','1m','31d','365d','0','3','','','','',NULL,'319','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe status of the UPS batteries. A batteryLow(3) value\r\n indicates the UPS will be unable to sustain the current\r\n load, and its services will be lost if power is not restored.\r\n The amount of run time in reserve at the time of low battery\r\n can be configured by the upsAdvConfigLowBatteryRunTime.\r\n A batteryInFaultCondition(4)value indicates that a battery\r\n installed has an internal error condition.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c1d818ee115343c8bb41bedb8de7f2bd','0','2','0'),
('34814','20','get[1.3.6.1.4.1.318.1.1.1.2.2.3.0]','10407','Battery runtime remaining','battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe UPS battery run time remaining before battery\r\n exhaustion.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8340b775b76f4e8aad6d3984c63632e9','0','2','0'),
('34815','20','get[1.3.6.1.4.1.318.1.1.1.2.2.4.0]','10407','Battery replace indicator','battery.replace_indicator[upsAdvBatteryReplaceIndicator]','1m','31d','365d','0','3','','','','',NULL,'317','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nIndicates whether the UPS batteries need replacement.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','731d350450f742d880d81ff2be69e67e','0','2','0'),
('34816','20','get[1.3.6.1.4.1.318.1.1.1.2.1.3.0]','10407','Battery last replace date','battery.last_replace_date[upsBasicBatteryLastReplaceDate]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe date when the UPS system\'s batteries were last replaced\r\n in mm/dd/yy (or yyyy) format. For Smart-UPS models, this value\r\n is originally set at the factory. When the UPS batteries\r\n are replaced, this value should be reset by the administrator.\r\n For Symmetra PX 250/500 this OID is read-only and is configurable in the local display only.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f4bd3a4a637640e29f50ebd36fb510e5','0','2','0'),
('34817','5','','10407','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'321','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9562f60b1cbd4fe08614221e69efd811','0','2','0'),
('34841','20','get[1.3.6.1.4.1.318.1.1.1.2.3.1.0]','10408','Battery capacity','battery.capacity[upsHighPrecBatteryCapacity]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe remaining battery capacity expressed as\r\n percentage of full capacity.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e8257d78c2e24e3cb152886d39bca4fe','0','2','0'),
('34842','20','get[1.3.6.1.4.1.318.1.1.1.4.1.1.0]','10408','Output status','output.status[upsBasicOutputStatus]','1m','31d','365d','0','3','','','','',NULL,'326','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current state of the UPS. If the UPS is unable to\r\n determine the state of the UPS this variable is set\r\n to unknown(1).\r\nDuring self-test most UPSes report onBattery(3) but\r\n some that support it will report onBatteryTest(15).\r\n To determine self-test status across all UPSes, refer\r\n to the upsBasicStateOutputState OID.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7655b8ff3d5e41f0a5409fcfd646933a','0','2','0'),
('34843','20','get[1.3.6.1.2.1.1.3.0]','10408','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe time (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b4ca2f993709413b9a00fa1389ec9e3c','0','2','0'),
('34844','20','get[1.3.6.1.4.1.318.1.1.1.1.2.3.0]','10408','Serial number','system.sn[upsAdvIdentSerialNumber]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nAn 8-character string identifying the serial number of\r\n the UPS internal microprocessor. This number is set at\r\n the factory. NOTE: This number does NOT correspond to\r\n the serial number on the rear of the UPS.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','64ab7fd8a79448d580ad24ecf488241c','0','2','0'),
('34845','20','get[1.3.6.1.2.1.1.2.0]','10408','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f6bd69ea5df144c996f050ded122521e','0','2','0'),
('34846','20','get[1.3.6.1.2.1.1.5.0]','10408','System name','system.name[sysName.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','155feccece4a4625b98efa206ad5e0b1','0','2','0'),
('34847','20','get[1.3.6.1.4.1.318.1.1.1.1.1.1.0]','10408','Model','system.model[upsBasicIdentModel]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe UPS model name (e.g. \'APC Smart-UPS 600\').','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bd0dc104ded94e4cbba3a8557e642caf','0','2','0'),
('34848','20','get[1.3.6.1.2.1.1.6.0]','10408','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe physical location of this node (e.g., `telephone closet, 3rd floor\'). If the location is unknown, the value is the zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','49b8ef5ff3a3400d8f412d4440040461','0','2','0'),
('34849','20','get[1.3.6.1.2.1.1.1.0]','10408','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','251cc61592f543e3929aef3cb46f1b34','0','2','0'),
('34850','20','get[1.3.6.1.2.1.1.4.0]','10408','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe textual identification of the contact person for this managed\r\nnode, together with information on how to contact this person. If no contact\r\ninformation is known, the value is the zero-length string.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2d22b58a5c9f4fedbd03862398113546','0','2','0'),
('34851','17','','10408','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','39dd21c0f2194acaa9fddbdfccde05dd','0','2','0'),
('34852','20','get[1.3.6.1.4.1.318.1.1.1.4.3.1.0]','10408','Output voltage','output.voltage[upsHighPrecOutputVoltage]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe output voltage of the UPS system in VAC.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8d93b482d7c549f593c41abb9380ce2f','0','2','0'),
('34853','20','get[1.3.6.1.4.1.318.1.1.1.4.3.3.0]','10408','Output load','output.load[upsHighPrecOutputLoad]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current UPS load expressed as percentage\r\nof rated capacity.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0e5240e578d043609fba4024db8c8df1','0','2','0'),
('34854','20','get[1.3.6.1.4.1.318.1.1.1.2.2.5.0]','10408','External battery packs count','battery.external_packs_count[upsAdvBatteryNumOfBattPacks]','1h','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe number of external battery packs connected to the UPS. If\r\n the UPS does not use smart cells then the agent reports\r\n ERROR_NO_SUCH_NAME.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d26227e3d5754d8493ddaa9c3f5f2b5a','0','2','0'),
('34855','20','get[1.3.6.1.4.1.318.1.1.1.4.3.4.0]','10408','Output current','output.current[upsHighPrecOutputCurrent]','1m','31d','365d','0','0','','A','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current in amperes drawn by the load on the UPS.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9bcae00165414f4aa15a40bc078aa44d','0','2','0'),
('34856','20','get[1.3.6.1.4.1.318.1.1.1.3.3.1.0]','10408','Input voltage','input.voltage[upsHighPrecInputLineVoltage]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current utility line voltage in VAC.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c658b02eea284fcf8e302c20a2256cf0','0','2','0'),
('34857','20','get[1.3.6.1.4.1.318.1.1.1.3.3.4.0]','10408','Input frequency','input.frequency[upsHighPrecInputFrequency]','1m','31d','365d','0','0','','Hz','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current input frequency to the UPS system in Hz.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e16be6095dc24b48bc541325b1675dd0','0','2','0'),
('34858','20','get[1.3.6.1.4.1.318.1.1.1.3.2.5.0]','10408','Input fail cause','input.fail[upsAdvInputLineFailCause]','1m','31d','365d','0','3','','','','',NULL,'324','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe reason for the occurrence of the last transfer to UPS\r\nbattery power. The variable is set to:\r\n- noTransfer(1) -- if there is no transfer yet.\r\n- highLineVoltage(2) -- if the transfer to battery is caused\r\nby an over voltage greater than the high transfer voltage.\r\n- brownout(3) -- if the duration of the outage is greater than\r\nfive seconds and the line voltage is between 40% of the\r\nrated output voltage and the low transfer voltage.\r\n- blackout(4) -- if the duration of the outage is greater than five\r\nseconds and the line voltage is between 40% of the rated\r\noutput voltage and ground.\r\n- smallMomentarySag(5) -- if the duration of the outage is less\r\nthan five seconds and the line voltage is between 40% of the\r\nrated output voltage and the low transfer voltage.\r\n- deepMomentarySag(6) -- if the duration of the outage is less\r\nthan five seconds and the line voltage is between 40% of the\r\nrated output voltage and ground. The variable is set to\r\n- smallMomentarySpike(7) -- if the line failure is caused by a\r\nrate of change of input voltage less than ten volts per cycle.\r\n- largeMomentarySpike(8) -- if the line failure is caused by\r\na rate of change of input voltage greater than ten volts per cycle.\r\n- selfTest(9) -- if the UPS was commanded to do a self test.\r\n- rateOfVoltageChange(10) -- if the failure is due to the rate of change of\r\nthe line voltage.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','439c87539027462c9b8210a056887885','0','2','0'),
('34859','20','get[1.3.6.1.4.1.318.1.1.1.2.3.4.0]','10408','Battery voltage','battery.voltage[upsHighPrecBatteryActualVoltage]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe actual battery bus voltage in Volts.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9ab2309be6cc4eea8697f17e80b015d8','0','2','0'),
('34860','20','get[1.3.6.1.4.1.318.1.1.1.2.3.2.0]','10408','Battery temperature','battery.temperature[upsHighPrecBatteryTemperature]','1m','31d','365d','0','0','','℃','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current internal UPS temperature in Celsius.\r\nTemperatures below zero read as 0.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','17ffb34351da46e59d2288cd291a7912','0','2','0'),
('34861','20','get[1.3.6.1.4.1.318.1.1.1.2.1.1.0]','10408','Battery status','battery.status[upsBasicBatteryStatus]','1m','31d','365d','0','3','','','','',NULL,'325','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe status of the UPS batteries. A batteryLow(3) value\r\n indicates the UPS will be unable to sustain the current\r\n load, and its services will be lost if power is not restored.\r\n The amount of run time in reserve at the time of low battery\r\n can be configured by the upsAdvConfigLowBatteryRunTime.\r\n A batteryInFaultCondition(4)value indicates that a battery\r\n installed has an internal error condition.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','322c3b48bcb74fa5829ef41015308d97','0','2','0'),
('34862','20','get[1.3.6.1.4.1.318.1.1.1.2.2.3.0]','10408','Battery runtime remaining','battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe UPS battery run time remaining before battery\r\n exhaustion.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','80a4e6cf09a147a7b166755aa182fdcd','0','2','0'),
('34863','20','get[1.3.6.1.4.1.318.1.1.1.2.2.4.0]','10408','Battery replace indicator','battery.replace_indicator[upsAdvBatteryReplaceIndicator]','1m','31d','365d','0','3','','','','',NULL,'323','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nIndicates whether the UPS batteries need replacement.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','abb901813d91481baef234496ddece33','0','2','0'),
('34864','20','get[1.3.6.1.4.1.318.1.1.1.2.1.3.0]','10408','Battery last replace date','battery.last_replace_date[upsBasicBatteryLastReplaceDate]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe date when the UPS system\'s batteries were last replaced\r\n in mm/dd/yy (or yyyy) format. For Smart-UPS models, this value\r\n is originally set at the factory. When the UPS batteries\r\n are replaced, this value should be reset by the administrator.\r\n For Symmetra PX 250/500 this OID is read-only and is configurable in the local display only.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','138afef586634623974c1cefd45281e9','0','2','0'),
('34865','5','','10408','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'327','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d69889a19b564ed384fc96e8a70971a5','0','2','0'),
('34889','20','get[1.3.6.1.4.1.318.1.1.1.2.3.1.0]','10409','Battery capacity','battery.capacity[upsHighPrecBatteryCapacity]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe remaining battery capacity expressed as\r\n percentage of full capacity.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0f45eeef24724e3b89760b04bfd037ae','0','2','0'),
('34890','20','get[1.3.6.1.4.1.318.1.1.1.4.1.1.0]','10409','Output status','output.status[upsBasicOutputStatus]','1m','31d','365d','0','3','','','','',NULL,'332','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current state of the UPS. If the UPS is unable to\r\n determine the state of the UPS this variable is set\r\n to unknown(1).\r\nDuring self-test most UPSes report onBattery(3) but\r\n some that support it will report onBatteryTest(15).\r\n To determine self-test status across all UPSes, refer\r\n to the upsBasicStateOutputState OID.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f8e4bcaa71e045e09af82ee739202778','0','2','0'),
('34891','20','get[1.3.6.1.2.1.1.3.0]','10409','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe time (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4aac942cab30432d81c4df32e01af5e2','0','2','0'),
('34892','20','get[1.3.6.1.4.1.318.1.1.1.1.2.3.0]','10409','Serial number','system.sn[upsAdvIdentSerialNumber]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nAn 8-character string identifying the serial number of\r\n the UPS internal microprocessor. This number is set at\r\n the factory. NOTE: This number does NOT correspond to\r\n the serial number on the rear of the UPS.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0e72609b44094aff8acfa58b63ca97ba','0','2','0'),
('34893','20','get[1.3.6.1.2.1.1.2.0]','10409','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0d3fcfce413a4f6aaaa2390183ab0c82','0','2','0'),
('34894','20','get[1.3.6.1.2.1.1.5.0]','10409','System name','system.name[sysName.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3c521e1e94da4dd2bd71719bf20e14b8','0','2','0'),
('34895','20','get[1.3.6.1.4.1.318.1.1.1.1.1.1.0]','10409','Model','system.model[upsBasicIdentModel]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe UPS model name (e.g. \'APC Smart-UPS 600\').','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5c5b88814e4c4dc9b90ed4a5e49a91ca','0','2','0'),
('34896','20','get[1.3.6.1.2.1.1.6.0]','10409','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe physical location of this node (e.g., `telephone closet, 3rd floor\'). If the location is unknown, the value is the zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','be1280a6b2d84393ad001113bf7c80f2','0','2','0'),
('34897','20','get[1.3.6.1.2.1.1.1.0]','10409','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9bca97c1e308421b82f4769151f5177e','0','2','0'),
('34898','20','get[1.3.6.1.2.1.1.4.0]','10409','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe textual identification of the contact person for this managed\r\nnode, together with information on how to contact this person. If no contact\r\ninformation is known, the value is the zero-length string.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1de71b45323b4eb5bc1a38315d56ce58','0','2','0'),
('34899','17','','10409','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c892c7f2ddcd4e15b1d5ab907cd70dcf','0','2','0'),
('34900','20','get[1.3.6.1.4.1.318.1.1.1.4.3.1.0]','10409','Output voltage','output.voltage[upsHighPrecOutputVoltage]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe output voltage of the UPS system in VAC.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e7969358cce84f3eb749b1c43d96c583','0','2','0'),
('34901','20','get[1.3.6.1.4.1.318.1.1.1.4.3.3.0]','10409','Output load','output.load[upsHighPrecOutputLoad]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current UPS load expressed as percentage\r\nof rated capacity.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3ac052b6b4e241d9af470b70212ab8d3','0','2','0'),
('34902','20','get[1.3.6.1.4.1.318.1.1.1.2.2.5.0]','10409','External battery packs count','battery.external_packs_count[upsAdvBatteryNumOfBattPacks]','1h','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe number of external battery packs connected to the UPS. If\r\n the UPS does not use smart cells then the agent reports\r\n ERROR_NO_SUCH_NAME.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a40074f9db134bc8bc4bd9800906137d','0','2','0'),
('34903','20','get[1.3.6.1.4.1.318.1.1.1.4.3.4.0]','10409','Output current','output.current[upsHighPrecOutputCurrent]','1m','31d','365d','0','0','','A','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current in amperes drawn by the load on the UPS.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','71cfc894a29f4bffb1f4199e0010aea0','0','2','0'),
('34904','20','get[1.3.6.1.4.1.318.1.1.1.3.3.1.0]','10409','Input voltage','input.voltage[upsHighPrecInputLineVoltage]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current utility line voltage in VAC.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5478b17ba84c4f12bc1ffa7dfc507ae1','0','2','0'),
('34905','20','get[1.3.6.1.4.1.318.1.1.1.3.3.4.0]','10409','Input frequency','input.frequency[upsHighPrecInputFrequency]','1m','31d','365d','0','0','','Hz','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current input frequency to the UPS system in Hz.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8ab48c798ac94773b37228a8f725efd0','0','2','0'),
('34906','20','get[1.3.6.1.4.1.318.1.1.1.3.2.5.0]','10409','Input fail cause','input.fail[upsAdvInputLineFailCause]','1m','31d','365d','0','3','','','','',NULL,'330','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe reason for the occurrence of the last transfer to UPS\r\nbattery power. The variable is set to:\r\n- noTransfer(1) -- if there is no transfer yet.\r\n- highLineVoltage(2) -- if the transfer to battery is caused\r\nby an over voltage greater than the high transfer voltage.\r\n- brownout(3) -- if the duration of the outage is greater than\r\nfive seconds and the line voltage is between 40% of the\r\nrated output voltage and the low transfer voltage.\r\n- blackout(4) -- if the duration of the outage is greater than five\r\nseconds and the line voltage is between 40% of the rated\r\noutput voltage and ground.\r\n- smallMomentarySag(5) -- if the duration of the outage is less\r\nthan five seconds and the line voltage is between 40% of the\r\nrated output voltage and the low transfer voltage.\r\n- deepMomentarySag(6) -- if the duration of the outage is less\r\nthan five seconds and the line voltage is between 40% of the\r\nrated output voltage and ground. The variable is set to\r\n- smallMomentarySpike(7) -- if the line failure is caused by a\r\nrate of change of input voltage less than ten volts per cycle.\r\n- largeMomentarySpike(8) -- if the line failure is caused by\r\na rate of change of input voltage greater than ten volts per cycle.\r\n- selfTest(9) -- if the UPS was commanded to do a self test.\r\n- rateOfVoltageChange(10) -- if the failure is due to the rate of change of\r\nthe line voltage.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','598c1b4cc957455b84c2edcbe844e169','0','2','0'),
('34907','20','get[1.3.6.1.4.1.318.1.1.1.2.3.4.0]','10409','Battery voltage','battery.voltage[upsHighPrecBatteryActualVoltage]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe actual battery bus voltage in Volts.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ae8516a825b94d90b267371934bc452f','0','2','0'),
('34908','20','get[1.3.6.1.4.1.318.1.1.1.2.3.2.0]','10409','Battery temperature','battery.temperature[upsHighPrecBatteryTemperature]','1m','31d','365d','0','0','','℃','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current internal UPS temperature in Celsius.\r\nTemperatures below zero read as 0.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','59cc2d65eca142adb00ec80e237b134e','0','2','0'),
('34909','20','get[1.3.6.1.4.1.318.1.1.1.2.1.1.0]','10409','Battery status','battery.status[upsBasicBatteryStatus]','1m','31d','365d','0','3','','','','',NULL,'331','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe status of the UPS batteries. A batteryLow(3) value\r\n indicates the UPS will be unable to sustain the current\r\n load, and its services will be lost if power is not restored.\r\n The amount of run time in reserve at the time of low battery\r\n can be configured by the upsAdvConfigLowBatteryRunTime.\r\n A batteryInFaultCondition(4)value indicates that a battery\r\n installed has an internal error condition.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a5ccdee4e5ff49f183adab8a283e88a0','0','2','0'),
('34910','20','get[1.3.6.1.4.1.318.1.1.1.2.2.3.0]','10409','Battery runtime remaining','battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe UPS battery run time remaining before battery\r\n exhaustion.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','849b9ffa0c0b4dd59e7c5a544a135fa3','0','2','0'),
('34911','20','get[1.3.6.1.4.1.318.1.1.1.2.2.4.0]','10409','Battery replace indicator','battery.replace_indicator[upsAdvBatteryReplaceIndicator]','1m','31d','365d','0','3','','','','',NULL,'329','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nIndicates whether the UPS batteries need replacement.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','810c9cd371c14e44b8670ad3f4e003d5','0','2','0'),
('34912','20','get[1.3.6.1.4.1.318.1.1.1.2.1.3.0]','10409','Battery last replace date','battery.last_replace_date[upsBasicBatteryLastReplaceDate]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe date when the UPS system\'s batteries were last replaced\r\n in mm/dd/yy (or yyyy) format. For Smart-UPS models, this value\r\n is originally set at the factory. When the UPS batteries\r\n are replaced, this value should be reset by the administrator.\r\n For Symmetra PX 250/500 this OID is read-only and is configurable in the local display only.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c069bb03f58a47b981448a33a1663463','0','2','0'),
('34913','5','','10409','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'333','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','582ff80b2df049b8acf233ad4dbfe1f1','0','2','0'),
('34937','16','','10410','Uptime','jmx["java.lang:type=Runtime","Uptime"]','1m','31d','365d','0','3','','s','','',NULL,NULL,'','','0','{$WILDFLY.USER}','{$WILDFLY.PASSWORD}','','','0',NULL,'WildFly server uptime.','0','30d','0','service:jmx:{$WILDFLY.JMX.PROTOCOL}://{HOST.CONN}:{HOST.PORT}',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','aa30358b46024aef8fa2e3ba387c4fb9','0','2','0'),
('34938','16','','10410','Launch type','jmx["jboss.as:management-root=server","launchType"]','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','{$WILDFLY.USER}','{$WILDFLY.PASSWORD}','','','0',NULL,'The manner in which the server process was launched. Either "DOMAIN" for a domain mode server launched by a Host Controller, "STANDALONE" for a standalone server launched from the command line, or "EMBEDDED" for a standalone server launched as an embedded part of an application running in the same virtual machine.','0','30d','0','service:jmx:{$WILDFLY.JMX.PROTOCOL}://{HOST.CONN}:{HOST.PORT}',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5c0653e99ddb4f26ae12ce4d6ce9892c','0','2','0'),
('34939','16','','10410','Name','jmx["jboss.as:management-root=server","name"]','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','{$WILDFLY.USER}','{$WILDFLY.PASSWORD}','','','0',NULL,'For standalone mode: The name of this server. If not set, defaults to the runtime value of InetAddress.getLocalHost().getHostName().\r\nFor domain mode: The name given to this domain','0','30d','0','service:jmx:{$WILDFLY.JMX.PROTOCOL}://{HOST.CONN}:{HOST.PORT}',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5412059106e844ae89f6f84b4da42388','0','2','0'),
('34940','16','','10410','Process type','jmx["jboss.as:management-root=server","processType"]','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','{$WILDFLY.USER}','{$WILDFLY.PASSWORD}','','','0',NULL,'The type of process represented by this root resource.','0','30d','0','service:jmx:{$WILDFLY.JMX.PROTOCOL}://{HOST.CONN}:{HOST.PORT}',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d5e2f5e277874567a5d46196fd032298','0','2','0'),
('34941','16','','10410','Version','jmx["jboss.as:management-root=server","productVersion"]','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','{$WILDFLY.USER}','{$WILDFLY.PASSWORD}','','','0',NULL,'The version of the WildFly Core based product release.','0','30d','0','service:jmx:{$WILDFLY.JMX.PROTOCOL}://{HOST.CONN}:{HOST.PORT}',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f1bb15824f384e21bb9ae1224abd18e0','0','2','0'),
('34949','16','','10411','Uptime','jmx["java.lang:type=Runtime","Uptime"]','1m','31d','365d','0','3','','s','','',NULL,NULL,'','','0','{$WILDFLY.USER}','{$WILDFLY.PASSWORD}','','','0',NULL,'WildFly server uptime.','0','30d','0','service:jmx:{$WILDFLY.JMX.PROTOCOL}://{HOST.CONN}:{HOST.PORT}',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9b9fce7f4b4945fea45feaa5b213c186','0','2','0'),
('34950','16','','10411','Transactions: Committed, rate','jmx["jboss.as:subsystem=transactions","numberOfCommittedTransactions"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','{$WILDFLY.USER}','{$WILDFLY.PASSWORD}','','','0',NULL,'The number of committed transactions.','0','30d','0','service:jmx:{$WILDFLY.JMX.PROTOCOL}://{HOST.CONN}:{HOST.PORT}',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2c157932072e416baed45a2350a3bd66','0','2','0'),
('34951','16','','10411','Transactions: Timed out, rate','jmx["jboss.as:subsystem=transactions","numberOfTimedOutTransactions"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','{$WILDFLY.USER}','{$WILDFLY.PASSWORD}','','','0',NULL,'The number of transactions that have rolled back due to timeout.','0','30d','0','service:jmx:{$WILDFLY.JMX.PROTOCOL}://{HOST.CONN}:{HOST.PORT}',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','90f1a21c335b42928455d31635bfd11d','0','2','0'),
('34952','16','','10411','Transactions: System rollbacks, rate','jmx["jboss.as:subsystem=transactions","numberOfSystemRollbacks"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','{$WILDFLY.USER}','{$WILDFLY.PASSWORD}','','','0',NULL,'The number of transactions that have been rolled back due to internal system errors.','0','30d','0','service:jmx:{$WILDFLY.JMX.PROTOCOL}://{HOST.CONN}:{HOST.PORT}',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6ca6b59da5da4d7cb6fbacd2bdd37996','0','2','0'),
('34953','16','','10411','Transactions: ResourceRollbacks, rate','jmx["jboss.as:subsystem=transactions","numberOfResourceRollbacks"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','{$WILDFLY.USER}','{$WILDFLY.PASSWORD}','','','0',NULL,'The number of transactions that rolled back due to resource (participant) failure.','0','30d','0','service:jmx:{$WILDFLY.JMX.PROTOCOL}://{HOST.CONN}:{HOST.PORT}',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b1f782b6d71b4cc698a3f0d3b9d03a8d','0','2','0'),
('34954','16','','10411','Transactions: Nested, rate','jmx["jboss.as:subsystem=transactions","numberOfNestedTransactions"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','{$WILDFLY.USER}','{$WILDFLY.PASSWORD}','','','0',NULL,'The total number of nested (sub) transactions created.','0','30d','0','service:jmx:{$WILDFLY.JMX.PROTOCOL}://{HOST.CONN}:{HOST.PORT}',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6ca1501ec2904b7b875d2f9bfa127e10','0','2','0'),
('34955','16','','10411','Transactions: Current','jmx["jboss.as:subsystem=transactions","numberOfInflightTransactions"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','{$WILDFLY.USER}','{$WILDFLY.PASSWORD}','','','0',NULL,'The number of transactions that have begun but not yet terminated.','0','30d','0','service:jmx:{$WILDFLY.JMX.PROTOCOL}://{HOST.CONN}:{HOST.PORT}',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','50ba79375dbf48c8b86c3d8654576186','0','2','0'),
('34956','16','','10411','Transactions: Heuristics, rate','jmx["jboss.as:subsystem=transactions","numberOfHeuristics"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','{$WILDFLY.USER}','{$WILDFLY.PASSWORD}','','','0',NULL,'The number of transactions which have terminated with heuristic outcomes.','0','30d','0','service:jmx:{$WILDFLY.JMX.PROTOCOL}://{HOST.CONN}:{HOST.PORT}',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','82958fc3169c42d2bb0c9dc29e341b8f','0','2','0'),
('34957','16','','10411','Transactions: Application rollbacks, rate','jmx["jboss.as:subsystem=transactions","numberOfApplicationRollbacks"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','{$WILDFLY.USER}','{$WILDFLY.PASSWORD}','','','0',NULL,'The number of transactions that have been rolled back by application request. This includes those that timeout, since the timeout behavior is considered an attribute of the application configuration.','0','30d','0','service:jmx:{$WILDFLY.JMX.PROTOCOL}://{HOST.CONN}:{HOST.PORT}',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','035752468405481a9e0c4c60e662eadc','0','2','0'),
('34958','16','','10411','Launch type','jmx["jboss.as:management-root=server","launchType"]','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','{$WILDFLY.USER}','{$WILDFLY.PASSWORD}','','','0',NULL,'The manner in which the server process was launched. Either "DOMAIN" for a domain mode server launched by a Host Controller, "STANDALONE" for a standalone server launched from the command line, or "EMBEDDED" for a standalone server launched as an embedded part of an application running in the same virtual machine.','0','30d','0','service:jmx:{$WILDFLY.JMX.PROTOCOL}://{HOST.CONN}:{HOST.PORT}',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','daf104c5cafe4879b79fb30fca99c838','0','2','0'),
('34959','16','','10411','Transactions: Aborted, rate','jmx["jboss.as:subsystem=transactions","numberOfAbortedTransactions"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','{$WILDFLY.USER}','{$WILDFLY.PASSWORD}','','','0',NULL,'The number of aborted (i.e. rolledback) transactions per second.','0','30d','0','service:jmx:{$WILDFLY.JMX.PROTOCOL}://{HOST.CONN}:{HOST.PORT}',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2986d57975334b0bbf6bd687df457c26','0','2','0'),
('34960','16','','10411','Server controller state','jmx["jboss.as:management-root=server","serverState"]','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','{$WILDFLY.USER}','{$WILDFLY.PASSWORD}','','','0',NULL,'The current state of the server controller; either STARTING, RUNNING, RESTART_REQUIRED, RELOAD_REQUIRED or STOPPING.','0','30d','0','service:jmx:{$WILDFLY.JMX.PROTOCOL}://{HOST.CONN}:{HOST.PORT}',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cd57068c6e18440a8e14c0b4fc5c6c78','0','2','0'),
('34961','16','','10411','Runtime configuration state','jmx["jboss.as:management-root=server","runtimeConfigurationState"]','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','{$WILDFLY.USER}','{$WILDFLY.PASSWORD}','','','0',NULL,'The current persistent configuration state, one of starting, ok, reload-required, restart-required, stopping or stopped.','0','30d','0','service:jmx:{$WILDFLY.JMX.PROTOCOL}://{HOST.CONN}:{HOST.PORT}',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','855c96cf1b3d4ef691f7693ba5f8357f','0','2','0'),
('34962','16','','10411','Version','jmx["jboss.as:management-root=server","productVersion"]','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','{$WILDFLY.USER}','{$WILDFLY.PASSWORD}','','','0',NULL,'The version of the WildFly Core based product release.','0','30d','0','service:jmx:{$WILDFLY.JMX.PROTOCOL}://{HOST.CONN}:{HOST.PORT}',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0238c33ca0f045a7b1376cd5b3048bf0','0','2','0'),
('34963','16','','10411','Process type','jmx["jboss.as:management-root=server","processType"]','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','{$WILDFLY.USER}','{$WILDFLY.PASSWORD}','','','0',NULL,'The type of process represented by this root resource.','0','30d','0','service:jmx:{$WILDFLY.JMX.PROTOCOL}://{HOST.CONN}:{HOST.PORT}',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','98dd8a8de5f240998bebaf28c8d1bbe2','0','2','0'),
('34964','16','','10411','Name','jmx["jboss.as:management-root=server","name"]','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','{$WILDFLY.USER}','{$WILDFLY.PASSWORD}','','','0',NULL,'For standalone mode: The name of this server. If not set, defaults to the runtime value of InetAddress.getLocalHost().getHostName().\r\nFor domain mode: The name given to this domain.','0','30d','0','service:jmx:{$WILDFLY.JMX.PROTOCOL}://{HOST.CONN}:{HOST.PORT}',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b3c30ba00ac54677a944cda7ec8536af','0','2','0'),
('34965','16','','10411','Transactions: Total, rate','jmx["jboss.as:subsystem=transactions","numberOfTransactions"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','{$WILDFLY.USER}','{$WILDFLY.PASSWORD}','','','0',NULL,'The total number of transactions (top-level and nested) created per second.','0','30d','0','service:jmx:{$WILDFLY.JMX.PROTOCOL}://{HOST.CONN}:{HOST.PORT}',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a0c40292c62e4d51a96db3e07967b17c','0','2','0'),
('35016','20','get[1.3.6.1.4.1.318.1.1.1.2.3.1.0]','10412','Battery capacity','battery.capacity[upsHighPrecBatteryCapacity]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe remaining battery capacity expressed as\r\n percentage of full capacity.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f5ca8610803e4aca8c6c3c8f6044ca43','0','2','0'),
('35017','20','get[1.3.6.1.4.1.318.1.1.1.4.1.1.0]','10412','Output status','output.status[upsBasicOutputStatus]','1m','31d','365d','0','3','','','','',NULL,'340','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current state of the UPS. If the UPS is unable to\r\n determine the state of the UPS this variable is set\r\n to unknown(1).\r\nDuring self-test most UPSes report onBattery(3) but\r\n some that support it will report onBatteryTest(15).\r\n To determine self-test status across all UPSes, refer\r\n to the upsBasicStateOutputState OID.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c87c096a38284b82bb0fd8c9dfe871ef','0','2','0'),
('35018','20','get[1.3.6.1.2.1.1.3.0]','10412','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe time (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1b9e4b13cfcb4680b25dd8974900fc17','0','2','0'),
('35019','20','get[1.3.6.1.4.1.318.1.1.1.1.2.3.0]','10412','Serial number','system.sn[upsAdvIdentSerialNumber]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nAn 8-character string identifying the serial number of\r\n the UPS internal microprocessor. This number is set at\r\n the factory. NOTE: This number does NOT correspond to\r\n the serial number on the rear of the UPS.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a3069693d6e545978fb877d767dface5','0','2','0'),
('35020','20','get[1.3.6.1.2.1.1.2.0]','10412','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1782e98504114e7c847b6d127b3a3ae1','0','2','0'),
('35021','20','get[1.3.6.1.2.1.1.5.0]','10412','System name','system.name[sysName.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5778610ee61d472d9dc8c8da94f9e301','0','2','0'),
('35022','20','get[1.3.6.1.4.1.318.1.1.1.1.1.1.0]','10412','Model','system.model[upsBasicIdentModel]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe UPS model name (e.g. \'APC Smart-UPS 600\').','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7e81f54bbbdd41ca8f9e010dbddc485f','0','2','0'),
('35023','20','get[1.3.6.1.2.1.1.6.0]','10412','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe physical location of this node (e.g., `telephone closet, 3rd floor\'). If the location is unknown, the value is the zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a57de4a9da144c2aa880253e4e2b46f9','0','2','0'),
('35024','20','get[1.3.6.1.2.1.1.1.0]','10412','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0617c89b47454dbd833fcc2b8d570db8','0','2','0'),
('35025','20','get[1.3.6.1.2.1.1.4.0]','10412','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe textual identification of the contact person for this managed\r\nnode, together with information on how to contact this person. If no contact\r\ninformation is known, the value is the zero-length string.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7485fd42dd2749028a2d67f315888723','0','2','0'),
('35026','17','','10412','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3892c18baef54c598dc78035f5a7540a','0','2','0'),
('35027','20','get[1.3.6.1.4.1.318.1.1.1.4.3.1.0]','10412','Output voltage','output.voltage[upsHighPrecOutputVoltage]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe output voltage of the UPS system in VAC.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','998d1322a2274da19abe10cdcb3c52e0','0','2','0'),
('35028','20','get[1.3.6.1.4.1.318.1.1.1.4.3.3.0]','10412','Output load','output.load[upsHighPrecOutputLoad]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current UPS load expressed as percentage\r\nof rated capacity.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5427a9b46ea54920b3fcc7d8ca413e0e','0','2','0'),
('35029','20','get[1.3.6.1.4.1.318.1.1.1.2.2.5.0]','10412','External battery packs count','battery.external_packs_count[upsAdvBatteryNumOfBattPacks]','1h','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe number of external battery packs connected to the UPS. If\r\n the UPS does not use smart cells then the agent reports\r\n ERROR_NO_SUCH_NAME.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7652aff14f644896be902fe18f3bb46a','0','2','0'),
('35030','20','get[1.3.6.1.4.1.318.1.1.1.4.3.4.0]','10412','Output current','output.current[upsHighPrecOutputCurrent]','1m','31d','365d','0','0','','A','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current in amperes drawn by the load on the UPS.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b0d66c706be8457cbf794171253dd927','0','2','0'),
('35031','20','get[1.3.6.1.4.1.318.1.1.1.3.3.1.0]','10412','Input voltage','input.voltage[upsHighPrecInputLineVoltage]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current utility line voltage in VAC.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','65acc805ec7f4a2883d28f51b32054cc','0','2','0'),
('35032','20','get[1.3.6.1.4.1.318.1.1.1.3.3.4.0]','10412','Input frequency','input.frequency[upsHighPrecInputFrequency]','1m','31d','365d','0','0','','Hz','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current input frequency to the UPS system in Hz.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fb816e1a6ff640d69a5465e78febc03e','0','2','0'),
('35033','20','get[1.3.6.1.4.1.318.1.1.1.3.2.5.0]','10412','Input fail cause','input.fail[upsAdvInputLineFailCause]','1m','31d','365d','0','3','','','','',NULL,'338','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe reason for the occurrence of the last transfer to UPS\r\nbattery power. The variable is set to:\r\n- noTransfer(1) -- if there is no transfer yet.\r\n- highLineVoltage(2) -- if the transfer to battery is caused\r\nby an over voltage greater than the high transfer voltage.\r\n- brownout(3) -- if the duration of the outage is greater than\r\nfive seconds and the line voltage is between 40% of the\r\nrated output voltage and the low transfer voltage.\r\n- blackout(4) -- if the duration of the outage is greater than five\r\nseconds and the line voltage is between 40% of the rated\r\noutput voltage and ground.\r\n- smallMomentarySag(5) -- if the duration of the outage is less\r\nthan five seconds and the line voltage is between 40% of the\r\nrated output voltage and the low transfer voltage.\r\n- deepMomentarySag(6) -- if the duration of the outage is less\r\nthan five seconds and the line voltage is between 40% of the\r\nrated output voltage and ground. The variable is set to\r\n- smallMomentarySpike(7) -- if the line failure is caused by a\r\nrate of change of input voltage less than ten volts per cycle.\r\n- largeMomentarySpike(8) -- if the line failure is caused by\r\na rate of change of input voltage greater than ten volts per cycle.\r\n- selfTest(9) -- if the UPS was commanded to do a self test.\r\n- rateOfVoltageChange(10) -- if the failure is due to the rate of change of\r\nthe line voltage.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','09f34437ff2e422bb62d7ba44b05657c','0','2','0'),
('35034','20','get[1.3.6.1.4.1.318.1.1.1.2.3.4.0]','10412','Battery voltage','battery.voltage[upsHighPrecBatteryActualVoltage]','1m','31d','365d','0','0','','V','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe actual battery bus voltage in Volts.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','560031163d54444cb5ead172e9e238d2','0','2','0'),
('35035','20','get[1.3.6.1.4.1.318.1.1.1.2.3.2.0]','10412','Battery temperature','battery.temperature[upsHighPrecBatteryTemperature]','1m','31d','365d','0','0','','℃','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe current internal UPS temperature in Celsius.\r\nTemperatures below zero read as 0.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','48552e466ee54883ae3cbfd5e549ffc5','0','2','0'),
('35036','20','get[1.3.6.1.4.1.318.1.1.1.2.1.1.0]','10412','Battery status','battery.status[upsBasicBatteryStatus]','1m','31d','365d','0','3','','','','',NULL,'339','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe status of the UPS batteries. A batteryLow(3) value\r\n indicates the UPS will be unable to sustain the current\r\n load, and its services will be lost if power is not restored.\r\n The amount of run time in reserve at the time of low battery\r\n can be configured by the upsAdvConfigLowBatteryRunTime.\r\n A batteryInFaultCondition(4)value indicates that a battery\r\n installed has an internal error condition.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','aebc8b49a97243038b97855c5d20edb7','0','2','0'),
('35037','20','get[1.3.6.1.4.1.318.1.1.1.2.2.3.0]','10412','Battery runtime remaining','battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe UPS battery run time remaining before battery\r\n exhaustion.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6aacf5a02a824b9d8b3c2676b126b186','0','2','0'),
('35038','20','get[1.3.6.1.4.1.318.1.1.1.2.2.4.0]','10412','Battery replace indicator','battery.replace_indicator[upsAdvBatteryReplaceIndicator]','1m','31d','365d','0','3','','','','',NULL,'337','','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nIndicates whether the UPS batteries need replacement.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f4d790f93a1c4e75a7ebd3d89d0d9d90','0','2','0'),
('35039','20','get[1.3.6.1.4.1.318.1.1.1.2.1.3.0]','10412','Battery last replace date','battery.last_replace_date[upsBasicBatteryLastReplaceDate]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: PowerNet-MIB\r\nThe date when the UPS system\'s batteries were last replaced\r\n in mm/dd/yy (or yyyy) format. For Smart-UPS models, this value\r\n is originally set at the factory. When the UPS batteries\r\n are replaced, this value should be reset by the administrator.\r\n For Symmetra PX 250/500 this OID is read-only and is configurable in the local display only.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ee059b1bb6ac486c8c5dd29654899d71','0','2','0'),
('35040','5','','10412','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'341','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','63079124c55f479dad013d0c15077577','0','2','0'),
('35077','21','','10414','Get data','cloudflare.get','0;m01','0','0','0','4','','','','',NULL,NULL,'var Cloudflare = {\r\n params: {},\r\n\r\n setParams: function (params) {\r\n [\'api_endpoint\', \'token\', \'zone\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\'\r\n || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n });\r\n\r\n Cloudflare.params = params;\r\n if (typeof Cloudflare.params.api_endpoint === \'string\') {\r\n if (!Cloudflare.params.api_endpoint.endsWith(\'/\')) {\r\n Cloudflare.params.api_endpoint += \'/\';\r\n }\r\n }\r\n },\r\n\r\n request: function (method, query, data) {\r\n var response,\r\n request = new HttpRequest(),\r\n url = Cloudflare.params.api_endpoint + query;\r\n\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Authorization: Bearer \' + Cloudflare.params.token);\r\n\r\n if (typeof data !== \'undefined\') {\r\n data = JSON.stringify(data);\r\n }\r\n\r\n Zabbix.log(4, \'[ Cloudflare ] Sending request: \' + url + ((typeof data === \'string\') ? (\'\\n\' + data) : \'\'));\r\n\r\n switch (method) {\r\n case \'get\':\r\n response = request.get(url, data);\r\n break;\r\n\r\n case \'post\':\r\n response = request.post(url, data);\r\n break;\r\n\r\n default:\r\n throw \'Unsupported HTTP request method: \' + method;\r\n }\r\n\r\n Zabbix.log(4, \'[ Cloudflare ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from Cloudflare. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n if (query === \'graphql/\' && request.getStatus() == 200 && typeof response.errors !== \'undefined\'\r\n && Array.isArray(response.errors)) {\r\n throw \'Request failed with error "\' + (getField(response, \'errors.0.message\') || \'unknown\') + \'"\';\r\n }\r\n\r\n return {\r\n status: request.getStatus(),\r\n response: response\r\n };\r\n }\r\n}\r\n\r\nfunction getField(object, field, def) {\r\n var names = field.split(\'.\');\r\n var name = names.shift();\r\n\r\n while (typeof name !== \'undefined\') {\r\n if (typeof object === undefined || typeof object[name] === \'undefined\') {\r\n return def;\r\n }\r\n\r\n object = object[name];\r\n name = names.shift();\r\n }\r\n\r\n return object;\r\n}\r\n\r\ntry {\r\n Cloudflare.setParams(JSON.parse(value));\r\n\r\n var datetime_end = new Date(),\r\n datetime_start = new Date();\r\n\r\n datetime_start.setTime(datetime_end.getTime() - 3600000);\r\n datetime_start.setMinutes(0, 0, 0);\r\n datetime_end.setTime(datetime_start.getTime());\r\n datetime_end.setMinutes(59, 59, 0);\r\n\r\n var datetime_start_str = datetime_start.toISOString(),\r\n datetime_end_str = datetime_end.toISOString();\r\n\r\n var data = {\r\n "query": "{viewer {zones(filter: {zoneTag: \\"" + Cloudflare.params.zone + "\\"}) {\\\r\n httpRequests1hGroups(limit: 100 filter: {\\\r\n datetime_geq: \\"" + datetime_start_str + "\\", datetime_leq: \\"" + datetime_end_str + "\\"\\\r\n }) {\\\r\n sum{\\\r\n requests \\\r\n cachedRequests \\\r\n encryptedRequests \\\r\n responseStatusMap{ requests edgeResponseStatus } \\\r\n bytes \\\r\n cachedBytes \\\r\n encryptedBytes \\\r\n threats \\\r\n pageViews \\\r\n }\\\r\n uniq{uniques}\\\r\n }\\\r\n }}}", "variables": {}\r\n }\r\n var result = Cloudflare.request(\'post\', \'graphql/\', data),\r\n cloudflare = {},\r\n res = getField(result.response, \'data.viewer.zones.0.httpRequests1hGroups.0.sum\');\r\n\r\n if (typeof res === \'object\') {\r\n cloudflare = {\r\n requests: {\r\n all: res.requests || 0,\r\n cached: res.cachedRequests || 0,\r\n encrypted: res.encryptedRequests || 0,\r\n cache_hit_ratio: 0,\r\n success_ratio: 0,\r\n others_ratio: 0,\r\n response_100: 0,\r\n response_200: 0,\r\n response_300: 0,\r\n response_400: 0,\r\n response_500: 0\r\n },\r\n bandwidth: {\r\n all: res.bytes || 0,\r\n cached: res.cachedBytes || 0,\r\n cache_hit_ratio: 0,\r\n encrypted: res.encryptedBytes || 0,\r\n },\r\n threats: {\r\n all: res.threats || 0\r\n },\r\n pageviews: {\r\n all: res.pageViews || 0\r\n }\r\n }\r\n\r\n cloudflare.requests.uncached = res.requests - res.cachedRequests;\r\n cloudflare.requests.unencrypted = cloudflare.requests.all - cloudflare.requests.encrypted;\r\n cloudflare.bandwidth.uncached = cloudflare.bandwidth.all - cloudflare.bandwidth.cached;\r\n cloudflare.bandwidth.unencrypted = cloudflare.bandwidth.all - cloudflare.bandwidth.encrypted;\r\n\r\n if (Array.isArray(res.responseStatusMap)) {\r\n res.responseStatusMap.forEach(function (element) {\r\n var group = Math.floor((element.edgeResponseStatus / 100)) * 100;\r\n cloudflare.requests[\'response_\' + group] += element.requests;\r\n });\r\n }\r\n\r\n if (cloudflare.requests.all > 0) {\r\n cloudflare.requests.success_ratio = (cloudflare.requests.response_200\r\n / cloudflare.requests.all * 100).toFixed(2);\r\n cloudflare.requests.others_ratio = ((cloudflare.requests.all - cloudflare.requests.response_200)\r\n / cloudflare.requests.all * 100).toFixed(2);\r\n cloudflare.requests.cache_hit_ratio = (cloudflare.requests.cached\r\n / cloudflare.requests.all * 100).toFixed(2);\r\n }\r\n\r\n if (cloudflare.bandwidth.all > 0) {\r\n cloudflare.bandwidth.cache_hit_ratio = (cloudflare.bandwidth.cached / cloudflare.bandwidth.all * 100).toFixed(2);\r\n }\r\n\r\n res = getField(result.response, \'data.viewer.zones.0.httpRequests1hGroups.0.uniq\');\r\n\r\n if (typeof res === \'object\') {\r\n cloudflare.uniques = {\r\n all: res.uniques || 0\r\n }\r\n }\r\n\r\n result = Cloudflare.request(\'get\', \'zones/\' + encodeURIComponent(Cloudflare.params.zone)\r\n + \'/dns_analytics/report?dimensions=queryName&metrics=queryCount,uncachedCount,staleCount&since=\'\r\n + encodeURIComponent(datetime_start_str) + \'&until=\' + encodeURIComponent(datetime_end_str));\r\n\r\n res = getField(result.response, \'result.totals\');\r\n\r\n if (typeof result.response.result === \'object\') {\r\n cloudflare.dns = {\r\n query: {\r\n all: res.queryCount || 0,\r\n uncached: res.uncachedCount || 0,\r\n stale: res.staleCount || 0\r\n }\r\n }\r\n }\r\n }\r\n\r\n return JSON.stringify(cloudflare);\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ Cloudflare ] ERROR: \' + error);\r\n throw \'Requesting failed: \' + error;\r\n}','','0','','','','','0',NULL,'The JSON with result of Cloudflare API request.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9450a68208fd4cb8bde009296d722064','0','2','0'),
('35153','19','','10415','Get connections','nginx.connections','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Returns the statistics of client connections.','0','30d','0','',NULL,'','{$NGINX.API.ENDPOINT}/6/connections/','','','200,404','1','0','','','0','0','0','0','0','0','0','26c121f9c50a4e90b4502e2bd7f42992','0','2','0'),
('35154','19','','10415','Get info','nginx.info','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Return status of the NGINX running instance.','0','30d','0','',NULL,'','{$NGINX.API.ENDPOINT}/6/nginx/','','','200,404','1','0','','','0','0','0','0','0','0','0','d6c37400f8e64d89a698896afa6589de','0','2','0'),
('35155','19','','10415','Get Stream server zones','nginx.stream.server_zones','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Returns the status information for each server zone configured in the "stream" directive.','0','30d','0','',NULL,'','{$NGINX.API.ENDPOINT}/6/stream/server_zones/','','','200,404','1','0','','','0','0','0','0','0','0','0','148a8612964b445ba37e340c9341f49d','0','2','0'),
('35156','19','','10415','Get SSL','nginx.ssl','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Returns the SSL statistics.','0','30d','0','',NULL,'','{$NGINX.API.ENDPOINT}/6/ssl/','','','200,404','1','0','','','0','0','0','0','0','0','0','e0798bb2d16c418781e19880fd78832c','0','2','0'),
('35157','19','','10415','Get resolvers','nginx.resolvers','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Returns the status information for each Resolver zone.','0','30d','0','',NULL,'','{$NGINX.API.ENDPOINT}/6/resolvers/','','','200,404','1','0','','','0','0','0','0','0','0','0','9ea35f4f2ca24187896b7f44fb410d24','0','2','0'),
('35158','19','','10415','Get requests','nginx.requests','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Returns the status of the client\'s HTTP requests.','0','30d','0','',NULL,'','{$NGINX.API.ENDPOINT}/6/http/requests/','','','200,404','1','0','','','0','0','0','0','0','0','0','65377fc7308340348199c4c63720a7e1','0','2','0'),
('35159','19','','10415','Get Stream upstreams','nginx.stream.upstreams','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Returns status of each stream upstream server group and its servers.','0','30d','0','',NULL,'','{$NGINX.API.ENDPOINT}/6/stream/upstreams/','','','200,404','1','0','','','0','0','0','0','0','0','0','c48ca144a8414b2db1c35d518ca5a24f','0','2','0'),
('35160','19','','10415','Get HTTP upstreams','nginx.http.upstreams','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Returns the status of each HTTP upstream server group and its servers.','0','30d','0','',NULL,'','{$NGINX.API.ENDPOINT}/6/http/upstreams/','','','200,404','1','0','','','0','0','0','0','0','0','0','4ec5e9b1d17141f49db5d9bf29134a49','0','2','0'),
('35161','19','','10415','Get HTTP location zones','nginx.http.location_zones','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Returns the status information for each HTTP location zone.','0','30d','0','',NULL,'','{$NGINX.API.ENDPOINT}/6/http/location_zones/','','','200,404','1','0','','','0','0','0','0','0','0','0','51c50d69acdb451395736902733673fe','0','2','0'),
('35162','19','','10415','Get HTTP zones','nginx.http.server_zones','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Returns the status information for each HTTP server zone.','0','30d','0','',NULL,'','{$NGINX.API.ENDPOINT}/6/http/server_zones/','','','200,404','1','0','','','0','0','0','0','0','0','0','5b337c675bc14d9ab3ac6d2cf5b82dce','0','2','0'),
('35272','5','','10047','Utilization of trigger housekeeper internal processes, in %','zabbix[process,trigger housekeeper,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the trigger housekeeper processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ad2199d0152d4deb8259699ebd1f3da5','0','2','0'),
('35273','5','','10047','Version','zabbix[version]','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The version of Zabbix server.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','140cf84640564a60bcd107bebf9ac2e3','0','2','0'),
('35274','5','','10047','Utilization of service manager internal processes, in %','zabbix[process,service manager,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the service manager processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4f6c2b59437c4345b348d78b5d2242db','0','2','0'),
('35358','20','get[1.3.6.1.2.1.1.4.0]','10418','Contact','cisco.asav.contact','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe textual identification of the contact person\r\nfor this managed node, together with information\r\non how to contact this person.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9371a5b8ca3445eaa6516044e60a2ec6','0','2','0'),
('35359','20','get[1.3.6.1.2.1.1.6.0]','10418','Location','cisco.asav.location','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe physical location of this node (e.g.,\r\n`telephone closet, 3rd floor\').','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2d4a058787a141629a33ab98194055f2','0','2','0'),
('35360','20','get[1.3.6.1.2.1.1.1.0]','10418','System description','cisco.asav.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nA textual description of the entity. This value\r\nshould include the full name and version\r\nidentification of the system\'s hardware type,\r\nsoftware operating-system, and networking\r\nsoftware. It is mandatory that this only contain\r\nprintable ASCII characters.','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c2e63e282bcd4fd09a80f1be95c089d4','0','2','0'),
('35361','20','get[1.3.6.1.2.1.1.5.0]','10418','Host name','cisco.asav.name','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nAn administratively-assigned name for this\r\nmanaged node. By convention, this is the node\'s\r\nfully-qualified domain name.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d20d56dccd494060a4bc130f2951a610','0','2','0'),
('35362','20','get[1.3.6.1.2.1.1.3.0]','10418','Uptime','cisco.asav.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe time (in hundredths of a second) since the\r\nnetwork management portion of the system was last\r\nre-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','526b1a118bab4c948af0935197a659f6','0','2','0'),
('35363','5','','10418','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'354','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','33e87e5fe2774f1fabb93553e782aaa0','0','2','0'),
('35406','20','get[1.3.6.1.2.1.1.4.0]','10419','Contact','bigip.contact','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe textual identification of the contact person\r\nfor this managed node, together with information\r\non how to contact this person.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','907424caaf7c4b11b7a567db84ea1e17','0','2','0'),
('35407','20','get[1.3.6.1.4.1.3375.2.1.1.2.12.3.0]','10419','TCP connections, CLOSE-WAIT/LAST-ACK','bigip.tcp.close_wait','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: F5-BIGIP-SYSTEM-MIB\r\nThe number of current TCP connections in CLOSE-WAIT/LAST-ACK.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','78d6c13d575a41a8b160bd4e2c0bea7b','0','2','0'),
('35408','20','get[1.3.6.1.4.1.3375.2.1.6.6.0]','10419','Uptime','bigip.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: F5-BIGIP-SYSTEM-MIB\r\nThe system up time in 1/100 seconds since boot.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','efb83b0cb4864b249ecf61b2f81ec468','0','2','0'),
('35409','20','get[1.3.6.1.4.1.3375.2.1.1.2.13.2.0]','10419','Open UDP connections','bigip.udp.open','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: F5-BIGIP-SYSTEM-MIB\r\nThe number of current open UDP connections.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','843e855fb10f4cb0be81953dd8dbb87e','0','2','0'),
('35410','20','get[1.3.6.1.4.1.3375.2.1.1.2.12.5.0]','10419','TCP connections, TIME-WAIT','bigip.tcp.time_wait','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: F5-BIGIP-SYSTEM-MIB\r\nThe number of current TCP connections in TIME-WAIT.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bd3982fd369142878ffb9530656556e3','0','2','0'),
('35411','20','get[1.3.6.1.4.1.3375.2.1.1.2.12.2.0]','10419','Open TCP connections','bigip.tcp.open','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: F5-BIGIP-SYSTEM-MIB\r\nThe number of current open TCP connections.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b58bae7e2e4f403ba7bce846ccf5228e','0','2','0'),
('35412','20','get[1.3.6.1.4.1.3375.2.1.1.2.12.20.0]','10419','TCP connections, FIN-WAIT-2','bigip.tcp.fin2_wait','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: F5-BIGIP-SYSTEM-MIB\r\nThe number of current TCP connections in FIN-WAIT-2.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','69576083e02c486998512c58ab2a6371','0','2','0'),
('35413','20','get[1.3.6.1.4.1.3375.2.1.1.2.12.4.0]','10419','TCP connections, FIN-WAIT-1/CLOSING','bigip.tcp.fin1_wait','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: F5-BIGIP-SYSTEM-MIB\r\nThe number of current TCP connections in FIN-WAIT-1/CLOSING.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e28c1bfcd63e4a5c8394680886395669','0','2','0'),
('35414','20','get[1.3.6.1.4.1.3375.2.1.3.3.3.0]','10419','Chassis serial number','bigip.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: F5-BIGIP-SYSTEM-MIB\r\nSerial number','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a80409ff52bf4fe183a68ed257279db5','0','2','0'),
('35415','20','get[1.3.6.1.2.1.1.6.0]','10419','Location','bigip.location','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe physical location of this node (e.g.,\r\n`telephone closet, 3rd floor\').','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8ce387e2d78e42bfa6180b4b22096468','0','2','0'),
('35416','20','get[1.3.6.1.4.1.3375.2.1.4.2.0]','10419','Product version','bigip.product.version','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: F5-BIGIP-SYSTEM-MIB\r\nThe product version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b670cf1b43d84b8784acfeaca1f01320','0','2','0'),
('35417','20','get[1.3.6.1.4.1.3375.2.1.4.1.0]','10419','Product name','bigip.product.name','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: F5-BIGIP-SYSTEM-MIB\r\nThe product name.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','dd91be3044a2465781af744dc45dd06f','0','2','0'),
('35418','20','get[1.3.6.1.4.1.3375.2.1.4.4.0]','10419','Product edition','bigip.product.edition','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: F5-BIGIP-SYSTEM-MIB\r\nThe product edition.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5b3c2a650f474a6da05262dc5b3634a9','0','2','0'),
('35419','20','get[1.3.6.1.4.1.3375.2.1.4.5.0]','10419','Product build date','bigip.product.date','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: F5-BIGIP-SYSTEM-MIB\r\nThe product build date.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','065a6b42397e40c3874cf4176bd0fa6b','0','2','0'),
('35420','20','get[1.3.6.1.4.1.3375.2.1.4.3.0]','10419','Product build','bigip.product.build','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: F5-BIGIP-SYSTEM-MIB\r\nThe product build number.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3d7299dcbfee4b4a8b39bbf8daa4a077','0','2','0'),
('35421','20','get[1.3.6.1.2.1.1.5.0]','10419','Host name','bigip.name','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nAn administratively-assigned name for this\r\nmanaged node. By convention, this is the node\'s\r\nfully-qualified domain name.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','97d896e7b8ed422caf9c4ebf053bb8d9','0','2','0'),
('35422','20','get[1.3.6.1.2.1.1.1.0]','10419','Hardware model name','bigip.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nA textual description of the entity. This value\r\nshould include the full name and version\r\nidentification of the system\'s hardware type,\r\nsoftware operating-system, and networking\r\nsoftware. It is mandatory that this only contain\r\nprintable ASCII characters.','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d9bf23e66ae347eb8f6f58867cdc3ca7','0','2','0'),
('35423','5','','10419','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'358','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c91416602a9c451ca0eb959073f65fb0','0','2','0'),
('35532','5','','10420','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'359','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5b6932995b634a5792d3948ba79312e5','0','2','0'),
('35533','20','get[1.3.6.1.2.1.1.4.0]','10420','Contact','zyxel.aam1212.contact','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe textual identification of the contact person\r\nfor this managed node, together with information\r\non how to contact this person.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9b04315c5e9a41eea5f50623c83f21d0','0','2','0'),
('35534','20','get[1.3.6.1.4.1.890.1.5.13.1.1.3.1.4.0.0]','10420','ZyNOS F/W Version','zyxel.aam1212.fwversion','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ZYXEL-IESCOMMON-MIB','17','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6b29fd2b27fe4788bef1e4072430d5bd','0','2','0'),
('35535','20','get[1.3.6.1.2.1.1.6.0]','10420','Location','zyxel.aam1212.location','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe physical location of this node (e.g.,\r\n`telephone closet, 3rd floor\').','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ea699e392c154a79927a056ff050c59d','0','2','0'),
('35536','20','get[1.3.6.1.2.1.2.2.1.6.1]','10420','MAC address','zyxel.aam1212.mac','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: IF-MIB\r\nThe interface\'s address at the protocol layer\r\nimmediately `below\' the network layer in the\r\nprotocol stack. For interfaces which do not have\r\nsuch an address (e.g., a serial line), this object\r\nshould contain an octet string of zero length.','12','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d2cabaa6e083489b8b11e6a349ba1bc9','0','2','0'),
('35537','20','get[1.3.6.1.2.1.1.1.0]','10420','Hardware model name','zyxel.aam1212.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nA textual description of the entity. This value\r\nshould include the full name and version\r\nidentification of the system\'s hardware type,\r\nsoftware operating-system, and networking\r\nsoftware. It is mandatory that this only contain\r\nprintable ASCII characters.','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','31840a6849f7437bbb77334128c9e90b','0','2','0'),
('35538','20','get[1.3.6.1.2.1.1.5.0]','10420','Host name','zyxel.aam1212.name','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nAn administratively-assigned name for this\r\nmanaged node. By convention, this is the node\'s\r\nfully-qualified domain name.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','59628c9211c444228b6d8d9ddb30af54','0','2','0'),
('35539','20','get[1.3.6.1.4.1.890.1.5.13.1.1.2.1.3.0]','10420','Hardware serial number','zyxel.aam1212.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ZYXEL-IESCOMMON-MIB\r\nSerial number','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','33df8d594d7f4e4aa148927b117f30df','0','2','0'),
('35540','20','get[1.3.6.1.4.1.890.1.5.13.1.1.3.1.8.0.0]','10420','Alarm status','zyxel.aam1212.slot.alarm','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ZYXEL-IESCOMMON-MIB\r\nThis variable indicates the alarm status of the module.\r\nIt is a bit map represented a sum, therefore, it can represent\r\nmultiple defects simultaneously. The moduleNoDefect should be set\r\nif and only if no other flag is set.\r\nThe various bit positions are:\r\n1 moduleNoDefect\r\n2 moduleOverHeat\r\n3 moduleFanRpmLow\r\n4 moduleVoltageLow\r\n5 moduleThermalSensorFailure\r\n6 modulePullOut\r\n7 powerDC48VAFailure\r\n8 powerDC48VBFailure\r\n9 extAlarmInputTrigger\r\n10 moduleDown\r\n11 mscSwitchOverOK\r\n12 networkTopologyChange\r\n13 macSpoof\r\n14 cpuHigh\r\n15 memoryUsageHigh\r\n16 packetBufferUsageHigh\r\n17 loopguardOccurence','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4efb46536e8a43e78cd26ae90bd2ab83','0','2','0'),
('35541','20','get[1.3.6.1.2.1.1.3.0]','10420','Uptime (network)','zyxel.aam1212.net.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe time (in hundredths of a second) since the\r\nnetwork management portion of the system was last\r\nre-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6fe78b9b065243b8bcebf8f6c234f868','0','2','0'),
('35564','5','','10421','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'362','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','294a49fc36e848cc9f9959624c9a5ab3','0','2','0'),
('35565','20','get[1.3.6.1.2.1.1.4.0]','10421','Contact','zyxel.3500_8pd.contact','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe textual identification of the contact person\r\nfor this managed node, together with information\r\non how to contact this person.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6d513a036f8547219b1120fc4fffff1d','0','2','0'),
('35566','20','get[1.3.6.1.4.1.890.1.5.8.72.12.7.0]','10421','CPU utilization','zyxel.3500_8pd.cpuusage','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ZYXEL-ES3500-8PD-MIB\r\nShow device CPU load in %, it\'s the snapshot of CPU load when\r\ngetting the values.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e7fd0f225802477aabbbcbfe5ac4a7f6','0','2','0'),
('35567','20','discovery[{#SNMP.ARRAY},1.3.6.1.4.1.890.1.5.8.72.1]','10421','ZyNOS F/W Version','zyxel.3500_8pd.fwversion','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ZYXEL-ES3500-8PD-MIB','17','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8749f59cbfeb4c43b7753901f3219716','0','2','0'),
('35568','20','get[1.3.6.1.2.1.1.6.0]','10421','Location','zyxel.3500_8pd.location','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe physical location of this node (e.g.,\r\n`telephone closet, 3rd floor\').','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cbccb45e9d1d4b529cce2d43e6c96a24','0','2','0'),
('35569','20','get[1.3.6.1.2.1.2.2.1.6.1]','10421','MAC address','zyxel.3500_8pd.mac','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: IF-MIB\r\nThe interface\'s address at the protocol layer\r\nimmediately `below\' the network layer in the\r\nprotocol stack. For interfaces which do not have\r\nsuch an address (e.g., a serial line), this object\r\nshould contain an octet string of zero length.','12','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1479a543105a4cf2b524bf8d042afd00','0','2','0'),
('35570','20','get[1.3.6.1.2.1.1.1.0]','10421','Hardware model name','zyxel.3500_8pd.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nA textual description of the entity. This value\r\nshould include the full name and version\r\nidentification of the system\'s hardware type,\r\nsoftware operating-system, and networking\r\nsoftware. It is mandatory that this only contain\r\nprintable ASCII characters.','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c753caf7686e49968931df18076a5d4f','0','2','0'),
('35571','20','get[1.3.6.1.2.1.1.5.0]','10421','Host name','zyxel.3500_8pd.name','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nAn administratively-assigned name for this\r\nmanaged node. By convention, this is the node\'s\r\nfully-qualified domain name.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2072ac4b4437425a9ef1496b90c64990','0','2','0'),
('35572','20','get[1.3.6.1.4.1.890.1.5.8.72.1.10.0]','10421','Hardware serial number','zyxel.3500_8pd.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ZYXEL-ES3500-8PD-MIB\r\nSerial number','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','93a3b8ef959e41fe822abb959f090939','0','2','0'),
('35573','20','get[1.3.6.1.2.1.1.3.0]','10421','Uptime (network)','zyxel.3500_8pd.net.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe time (in hundredths of a second) since the\r\nnetwork management portion of the system was last\r\nre-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bbd24719955740e0acc2316a945dac38','0','2','0'),
('35608','5','','10422','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'368','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2839fec9602a4162bb0acfb1be89fd57','0','2','0'),
('35609','20','get[1.3.6.1.2.1.1.4.0]','10422','Contact','zyxel.4012f.contact','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe textual identification of the contact person\r\nfor this managed node, together with information\r\non how to contact this person.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','831444715edf4a12baf6a5727ba9276c','0','2','0'),
('35610','20','get[1.3.6.1.4.1.890.1.5.8.20.12.7.0]','10422','CPU utilization','zyxel.4012f.cpuusage','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ZYXEL-GS4012F-MIB\r\nShow device CPU load in %, it\'s the snapshot of CPU load when\r\ngetting the values.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e2a6ce044f6d40bebb50927cc70bd593','0','2','0'),
('35611','20','discovery[{#SNMP.ARRAY},1.3.6.1.4.1.890.1.5.8.20.1]','10422','ZyNOS F/W Version','zyxel.4012f.fwversion','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ZYXEL-GS4012F-MIB','17','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','adb85140eb8c4b6489078dc79bd61a87','0','2','0'),
('35612','20','get[1.3.6.1.2.1.1.6.0]','10422','Location','zyxel.4012f.location','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe physical location of this node (e.g.,\r\n`telephone closet, 3rd floor\').','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f55214647bab4544adb7d9a63e8be69d','0','2','0'),
('35613','20','get[1.3.6.1.2.1.2.2.1.6.1]','10422','MAC address','zyxel.4012f.mac','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: IF-MIB\r\nThe interface\'s address at the protocol layer\r\nimmediately `below\' the network layer in the\r\nprotocol stack. For interfaces which do not have\r\nsuch an address (e.g., a serial line), this object\r\nshould contain an octet string of zero length.','12','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','770d70d2ebcb4978b6c6fae0692ab77f','0','2','0'),
('35614','20','get[1.3.6.1.2.1.1.1.0]','10422','Hardware model name','zyxel.4012f.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nA textual description of the entity. This value\r\nshould include the full name and version\r\nidentification of the system\'s hardware type,\r\nsoftware operating-system, and networking\r\nsoftware. It is mandatory that this only contain\r\nprintable ASCII characters.','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','25c5e9b3d34f4bb8805e2a6c43934f51','0','2','0'),
('35615','20','get[1.3.6.1.2.1.1.5.0]','10422','Host name','zyxel.4012f.name','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nAn administratively-assigned name for this\r\nmanaged node. By convention, this is the node\'s\r\nfully-qualified domain name.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','38fb81dca1db49bc83343ba197bfe980','0','2','0'),
('35616','20','get[1.3.6.1.4.1.890.1.5.8.20.1.10.0]','10422','Hardware serial number','zyxel.4012f.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ZYXEL-GS4012F-MIB\r\nSerial number','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0080e896f1384245887a191d87496fa9','0','2','0'),
('35617','20','get[1.3.6.1.2.1.1.3.0]','10422','Uptime (network)','zyxel.4012f.net.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe time (in hundredths of a second) since the\r\nnetwork management portion of the system was last\r\nre-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1c14e77679fe4ee6b167036d8888867e','0','2','0'),
('35642','5','','10423','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'373','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','dbaf039727f542a6935223c944fab95d','0','2','0'),
('35643','20','get[1.3.6.1.2.1.1.4.0]','10423','Contact','zyxel.ies500x.contact','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe textual identification of the contact person\r\nfor this managed node, together with information\r\non how to contact this person.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5bc150cfc9b147e68b5d15a750546a3f','0','2','0'),
('35644','20','get[1.3.6.1.2.1.1.6.0]','10423','Location','zyxel.ies500x.location','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe physical location of this node (e.g.,\r\n`telephone closet, 3rd floor\').','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cd669772d4454a359f1c372dce4a01de','0','2','0'),
('35645','20','get[1.3.6.1.2.1.2.2.1.6.1]','10423','MAC address','zyxel.ies500x.mac','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: IF-MIB\r\nThe interface\'s address at the protocol layer\r\nimmediately `below\' the network layer in the\r\nprotocol stack. For interfaces which do not have\r\nsuch an address (e.g., a serial line), this object\r\nshould contain an octet string of zero length.','12','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','591148b198854413aed834874bf8f137','0','2','0'),
('35646','20','get[1.3.6.1.2.1.1.1.0]','10423','Hardware model name','zyxel.ies500x.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nA textual description of the entity. This value\r\nshould include the full name and version\r\nidentification of the system\'s hardware type,\r\nsoftware operating-system, and networking\r\nsoftware. It is mandatory that this only contain\r\nprintable ASCII characters.','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','aa26dcc1d8c54feaaa70d42c6ff4d1c7','0','2','0'),
('35647','20','get[1.3.6.1.2.1.1.5.0]','10423','Host name','zyxel.ies500x.name','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nAn administratively-assigned name for this\r\nmanaged node. By convention, this is the node\'s\r\nfully-qualified domain name.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ee9da829778e4da69fde78f72b5b0783','0','2','0'),
('35648','20','get[1.3.6.1.2.1.1.3.0]','10423','Uptime (network)','zyxel.ies500x.net.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe time (in hundredths of a second) since the\r\nnetwork management portion of the system was last\r\nre-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','28df2d29a94d429d811dd40ceb510fcf','0','2','0'),
('35709','5','','10424','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'378','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ab61e5047280486885692ba89781c9fd','0','2','0'),
('35710','20','get[1.3.6.1.2.1.1.4.0]','10424','Contact','zyxel.ies6000.contact','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe textual identification of the contact person\r\nfor this managed node, together with information\r\non how to contact this person.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c4856aae926047078d33bc760833ec12','0','2','0'),
('35711','20','get[1.3.6.1.2.1.1.6.0]','10424','Location','zyxel.ies6000.location','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe physical location of this node (e.g.,\r\n`telephone closet, 3rd floor\').','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','631f2bc2963c4abb8d01b5cca6179d77','0','2','0'),
('35712','20','get[1.3.6.1.2.1.2.2.1.6.1]','10424','MAC address','zyxel.ies6000.mac','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: IF-MIB\r\nThe interface\'s address at the protocol layer\r\nimmediately `below\' the network layer in the\r\nprotocol stack. For interfaces which do not have\r\nsuch an address (e.g., a serial line), this object\r\nshould contain an octet string of zero length.','12','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','663131027cc84bd188fb4e5bd240777c','0','2','0'),
('35713','20','get[1.3.6.1.2.1.1.1.0]','10424','Hardware model name','zyxel.ies6000.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nA textual description of the entity. This value\r\nshould include the full name and version\r\nidentification of the system\'s hardware type,\r\nsoftware operating-system, and networking\r\nsoftware. It is mandatory that this only contain\r\nprintable ASCII characters.','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a91730326e1c4479bb330110a15ee689','0','2','0'),
('35714','20','get[1.3.6.1.2.1.1.5.0]','10424','Host name','zyxel.ies6000.name','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nAn administratively-assigned name for this\r\nmanaged node. By convention, this is the node\'s\r\nfully-qualified domain name.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2062eb7816e242668936c020e6e1d532','0','2','0'),
('35715','20','get[1.3.6.1.2.1.1.3.0]','10424','Uptime (network)','zyxel.ies6000.net.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe time (in hundredths of a second) since the\r\nnetwork management portion of the system was last\r\nre-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e79a790f3ca54943997f1d0b3e74943d','0','2','0'),
('35776','5','','10425','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'383','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','03cf90df51e0466c8b31744ce820276f','0','2','0'),
('35777','20','get[1.3.6.1.2.1.1.4.0]','10425','Contact','zyxel.ies1248.contact','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe textual identification of the contact person\r\nfor this managed node, together with information\r\non how to contact this person.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a01b8490f3b94ac5ab500d67171cfe1a','0','2','0'),
('35778','20','get[1.3.6.1.4.1.890.1.5.13.1.1.3.1.4.0.0]','10425','ZyNOS F/W Version','zyxel.ies1248.fwversion','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ZYXEL-IESCOMMON-MIB','17','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','56974ccbede04e9eb966951ac3c88250','0','2','0'),
('35779','20','get[1.3.6.1.2.1.1.6.0]','10425','Location','zyxel.ies1248.location','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe physical location of this node (e.g.,\r\n`telephone closet, 3rd floor\').','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','600e6a8b9dd549b69f64f1a536bce7de','0','2','0'),
('35780','20','get[1.3.6.1.2.1.2.2.1.6.1]','10425','MAC address','zyxel.ies1248.mac','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: IF-MIB\r\nThe interface\'s address at the protocol layer\r\nimmediately `below\' the network layer in the\r\nprotocol stack. For interfaces which do not have\r\nsuch an address (e.g., a serial line), this object\r\nshould contain an octet string of zero length.','12','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ad09c90a951a4c41b935a70f58f5c26a','0','2','0'),
('35781','20','get[1.3.6.1.2.1.1.1.0]','10425','Hardware model name','zyxel.ies1248.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nA textual description of the entity. This value\r\nshould include the full name and version\r\nidentification of the system\'s hardware type,\r\nsoftware operating-system, and networking\r\nsoftware. It is mandatory that this only contain\r\nprintable ASCII characters.','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','427ef42e55ca498db16d078ed41e7ad9','0','2','0'),
('35782','20','get[1.3.6.1.2.1.1.5.0]','10425','Host name','zyxel.ies1248.name','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nAn administratively-assigned name for this\r\nmanaged node. By convention, this is the node\'s\r\nfully-qualified domain name.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8c6546b670d4455aa1234c35bb033ac7','0','2','0'),
('35783','20','get[1.3.6.1.4.1.890.1.5.13.1.1.2.1.3.0]','10425','Hardware serial number','zyxel.ies1248.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ZYXEL-IESCOMMON-MIB\r\nSerial number','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0d30380bb9a24bd1939d16287d5d0711','0','2','0'),
('35784','20','get[1.3.6.1.4.1.890.1.5.13.1.1.3.1.8.0.0]','10425','Alarm status','zyxel.ies1248.slot.alarm','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ZYXEL-IESCOMMON-MIB\r\nThis variable indicates the alarm status of the module.\r\nIt is a bit map represented a sum, therefore, it can represent\r\nmultiple defects simultaneously. The moduleNoDefect should be set\r\nif and only if no other flag is set.\r\nThe various bit positions are:\r\n1 moduleNoDefect\r\n2 moduleOverHeat\r\n3 moduleFanRpmLow\r\n4 moduleVoltageLow\r\n5 moduleThermalSensorFailure\r\n6 modulePullOut\r\n7 powerDC48VAFailure\r\n8 powerDC48VBFailure\r\n9 extAlarmInputTrigger\r\n10 moduleDown\r\n11 mscSwitchOverOK\r\n12 networkTopologyChange\r\n13 macSpoof\r\n14 cpuHigh\r\n15 memoryUsageHigh\r\n16 packetBufferUsageHigh\r\n17 loopguardOccurence','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bafdca2040ba44be911fd1e5a09f3298','0','2','0'),
('35785','20','get[1.3.6.1.2.1.1.3.0]','10425','Uptime (network)','zyxel.ies1248.net.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe time (in hundredths of a second) since the\r\nnetwork management portion of the system was last\r\nre-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ba41848140394ac29fe9b77e77627f20','0','2','0'),
('35810','5','','10426','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'386','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','836a8ccc430a4ede87906b9f9eef8471','0','2','0'),
('35811','20','get[1.3.6.1.2.1.1.4.0]','10426','Contact','zyxel.3528.contact','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe textual identification of the contact person\r\nfor this managed node, together with information\r\non how to contact this person.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7f947ff733314b23be2cea634a1fba75','0','2','0'),
('35812','20','get[1.3.6.1.4.1.890.1.5.8.51.12.7.0]','10426','CPU utilization','zyxel.3528.cpuusage','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ZYXEL-MES3528-MIB\r\nShow device CPU load in %, it\'s the snapshot of CPU load when\r\ngetting the values.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c7bd32a8835842d7b469f2323cc8a308','0','2','0'),
('35813','20','discovery[{#SNMP.ARRAY},1.3.6.1.4.1.890.1.5.8.51.1]','10426','ZyNOS F/W Version','zyxel.3528.fwversion','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ZYXEL-MES3528-MIB','17','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c650e217f92c4e2ca1ec94f391dfe706','0','2','0'),
('35814','20','get[1.3.6.1.2.1.1.6.0]','10426','Location','zyxel.3528.location','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe physical location of this node (e.g.,\r\n`telephone closet, 3rd floor\').','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','679445d352f14db4b5401efa5661447d','0','2','0'),
('35815','20','get[1.3.6.1.2.1.2.2.1.6.1]','10426','MAC address','zyxel.3528.mac','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: IF-MIB\r\nThe interface\'s address at the protocol layer\r\nimmediately `below\' the network layer in the\r\nprotocol stack. For interfaces which do not have\r\nsuch an address (e.g., a serial line), this object\r\nshould contain an octet string of zero length.','12','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1b4f56edba2a486a9c48ccafaa10eb09','0','2','0'),
('35816','20','get[1.3.6.1.2.1.1.1.0]','10426','Hardware model name','zyxel.3528.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nA textual description of the entity. This value\r\nshould include the full name and version\r\nidentification of the system\'s hardware type,\r\nsoftware operating-system, and networking\r\nsoftware. It is mandatory that this only contain\r\nprintable ASCII characters.','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','050fbf9b7c544678b79b37572984f698','0','2','0'),
('35817','20','get[1.3.6.1.2.1.1.5.0]','10426','Host name','zyxel.3528.name','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nAn administratively-assigned name for this\r\nmanaged node. By convention, this is the node\'s\r\nfully-qualified domain name.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2411ebd40ee94b6285f4a6abf6127e04','0','2','0'),
('35818','20','get[1.3.6.1.4.1.890.1.5.8.51.1.10.0]','10426','Hardware serial number','zyxel.3528.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ZYXEL-MES3528-MIB\r\nSerial number','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ea25cf79e45f40398580afd48e0bb9c8','0','2','0'),
('35819','20','get[1.3.6.1.2.1.1.3.0]','10426','Uptime (network)','zyxel.3528.net.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe time (in hundredths of a second) since the\r\nnetwork management portion of the system was last\r\nre-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','351295fe155543c18930541c20ccac58','0','2','0'),
('35848','5','','10427','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'392','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1ec18d9656654a9e9114ba2b5ff965b1','0','2','0'),
('35849','20','get[1.3.6.1.2.1.1.4.0]','10427','Contact','zyxel.3500_10.contact','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe textual identification of the contact person\r\nfor this managed node, together with information\r\non how to contact this person.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','84a1eb118ad2453ca5a5ccca6111516b','0','2','0'),
('35850','20','get[1.3.6.1.4.1.890.1.5.8.80.12.7.0]','10427','CPU utilization','zyxel.3500_10.cpuusage','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ZYXEL-MES3500-10-MIB\r\nShow device CPU load in %, it\'s the snapshot of CPU load when\r\ngetting the values.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','dd6585221297476885e900c54a820ae7','0','2','0'),
('35851','20','discovery[{#SNMP.ARRAY},1.3.6.1.4.1.890.1.5.8.80.1]','10427','ZyNOS F/W Version','zyxel.3500_10.fwversion','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ZYXEL-MES3500-10-MIB','17','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','144931a31b2a4a52978679a6a029fc8e','0','2','0'),
('35852','20','get[1.3.6.1.2.1.1.6.0]','10427','Location','zyxel.3500_10.location','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe physical location of this node (e.g.,\r\n`telephone closet, 3rd floor\').','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0005f568cd384734b9f21e846648cd5f','0','2','0'),
('35853','20','get[1.3.6.1.2.1.2.2.1.6.1]','10427','MAC address','zyxel.3500_10.mac','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: IF-MIB\r\nThe interface\'s address at the protocol layer\r\nimmediately `below\' the network layer in the\r\nprotocol stack. For interfaces which do not have\r\nsuch an address (e.g., a serial line), this object\r\nshould contain an octet string of zero length.','12','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3bc8285eebad410996c4697022038345','0','2','0'),
('35854','20','get[1.3.6.1.2.1.1.1.0]','10427','Hardware model name','zyxel.3500_10.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nA textual description of the entity. This value\r\nshould include the full name and version\r\nidentification of the system\'s hardware type,\r\nsoftware operating-system, and networking\r\nsoftware. It is mandatory that this only contain\r\nprintable ASCII characters.','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b270937507f345f88421cf1825c29917','0','2','0'),
('35855','20','get[1.3.6.1.2.1.1.5.0]','10427','Host name','zyxel.3500_10.name','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nAn administratively-assigned name for this\r\nmanaged node. By convention, this is the node\'s\r\nfully-qualified domain name.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','831783fc67ab49b1be0ae5132fb2d8df','0','2','0'),
('35856','20','get[1.3.6.1.4.1.890.1.5.8.80.1.10.0]','10427','Hardware serial number','zyxel.3500_10.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ZYXEL-MES3500-10-MIB\r\nSerial number','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a0d17f11a5624f4e8520ee5e583ad322','0','2','0'),
('35857','20','get[1.3.6.1.2.1.1.3.0]','10427','Uptime (network)','zyxel.3500_10.net.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe time (in hundredths of a second) since the\r\nnetwork management portion of the system was last\r\nre-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d581384242074b07a4c5cd03a562827c','0','2','0'),
('35892','5','','10428','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'398','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7d30d099448e408bb7be13881e4149ed','0','2','0'),
('35893','20','get[1.3.6.1.2.1.1.4.0]','10428','Contact','zyxel.3500_24.contact','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe textual identification of the contact person\r\nfor this managed node, together with information\r\non how to contact this person.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7e1745e5130f4b7cb2b31814fecd6792','0','2','0'),
('35894','20','get[1.3.6.1.4.1.890.1.5.8.68.12.7.0]','10428','CPU utilization','zyxel.3500_24.cpuusage','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ZYXEL-MES3500-24-MIB\r\nShow device CPU load in %, it\'s the snapshot of CPU load when\r\ngetting the values.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','31029f8a8cc541908b8f765b27254ecd','0','2','0'),
('35895','20','discovery[{#SNMP.ARRAY},1.3.6.1.4.1.890.1.5.8.68.1]','10428','ZyNOS F/W Version','zyxel.3500_24.fwversion','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ZYXEL-MES3500-24-MIB','17','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','53e694b360254f2896301e78cf982650','0','2','0'),
('35896','20','get[1.3.6.1.2.1.1.6.0]','10428','Location','zyxel.3500_24.location','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe physical location of this node (e.g.,\r\n`telephone closet, 3rd floor\').','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5aa2128d8530415f855a0d33b7fb9c7f','0','2','0'),
('35897','20','get[1.3.6.1.2.1.2.2.1.6.1]','10428','MAC address','zyxel.3500_24.mac','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: IF-MIB\r\nThe interface\'s address at the protocol layer\r\nimmediately `below\' the network layer in the\r\nprotocol stack. For interfaces which do not have\r\nsuch an address (e.g., a serial line), this object\r\nshould contain an octet string of zero length.','12','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a8209492e29040a3896abf35019e6cdd','0','2','0'),
('35898','20','get[1.3.6.1.2.1.1.1.0]','10428','Hardware model name','zyxel.3500_24.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nA textual description of the entity. This value\r\nshould include the full name and version\r\nidentification of the system\'s hardware type,\r\nsoftware operating-system, and networking\r\nsoftware. It is mandatory that this only contain\r\nprintable ASCII characters.','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1820c7b7d903402dab0d7c8fb251f9bc','0','2','0'),
('35899','20','get[1.3.6.1.2.1.1.5.0]','10428','Host name','zyxel.3500_24.name','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nAn administratively-assigned name for this\r\nmanaged node. By convention, this is the node\'s\r\nfully-qualified domain name.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b5fc886ab5b94f929e866d4a2e9c5648','0','2','0'),
('35900','20','get[1.3.6.1.4.1.890.1.5.8.68.1.10.0]','10428','Hardware serial number','zyxel.3500_24.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ZYXEL-MES3500-24-MIB\r\nSerial number','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b5243eb2c7664203acb4f5e6bc8da296','0','2','0'),
('35901','20','get[1.3.6.1.2.1.1.3.0]','10428','Uptime (network)','zyxel.3500_24.net.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe time (in hundredths of a second) since the\r\nnetwork management portion of the system was last\r\nre-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','00c831c6cc9d415e91319b6bec15423d','0','2','0'),
('35936','5','','10429','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'404','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8777bb95a4b64fd293e96b25febf3915','0','2','0'),
('35937','20','get[1.3.6.1.2.1.1.4.0]','10429','Contact','zyxel.3712.contact','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe textual identification of the contact person\r\nfor this managed node, together with information\r\non how to contact this person.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b93b020818034096a973d8e171a099b2','0','2','0'),
('35938','20','get[1.3.6.1.4.1.890.1.5.8.47.11.7.0]','10429','CPU utilization','zyxel.3712.cpuusage','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ZYXEL-MGS3712F-MIB\r\nShow device CPU load in %, it\'s the snapshot of CPU load when\r\ngetting the values.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4d13bad4f29f41b1890fa9e2709dd461','0','2','0'),
('35939','20','discovery[{#SNMP.ARRAY},1.3.6.1.4.1.890.1.5.8.47.1]','10429','ZyNOS F/W Version','zyxel.3712.fwversion','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ZYXEL-MGS3712F-MIB','17','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','efc31527c7af48729c1d5a229b115c55','0','2','0'),
('35940','20','get[1.3.6.1.2.1.1.6.0]','10429','Location','zyxel.3712.location','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe physical location of this node (e.g.,\r\n`telephone closet, 3rd floor\').','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a52f578cc57448f0a43641c75be89ce9','0','2','0'),
('35941','20','get[1.3.6.1.2.1.2.2.1.6.1]','10429','MAC address','zyxel.3712.mac','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: IF-MIB\r\nThe interface\'s address at the protocol layer\r\nimmediately `below\' the network layer in the\r\nprotocol stack. For interfaces which do not have\r\nsuch an address (e.g., a serial line), this object\r\nshould contain an octet string of zero length.','12','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','26236c6667c9411393fb45af2324e318','0','2','0'),
('35942','20','get[1.3.6.1.2.1.1.1.0]','10429','Hardware model name','zyxel.3712.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nA textual description of the entity. This value\r\nshould include the full name and version\r\nidentification of the system\'s hardware type,\r\nsoftware operating-system, and networking\r\nsoftware. It is mandatory that this only contain\r\nprintable ASCII characters.','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fc5d5cfb35a14ed597623db67433dcac','0','2','0'),
('35943','20','get[1.3.6.1.2.1.1.5.0]','10429','Host name','zyxel.3712.name','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nAn administratively-assigned name for this\r\nmanaged node. By convention, this is the node\'s\r\nfully-qualified domain name.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','409fb8c9b315474db7602fba18702a1d','0','2','0'),
('35944','20','get[1.3.6.1.4.1.890.1.5.8.47.1.10.0]','10429','Hardware serial number','zyxel.3712.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ZYXEL-MGS3712F-MIB\r\nSerial number','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','91afb18daedc403a866302ef943beef7','0','2','0'),
('35945','20','get[1.3.6.1.2.1.1.3.0]','10429','Uptime (network)','zyxel.3712.net.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe time (in hundredths of a second) since the\r\nnetwork management portion of the system was last\r\nre-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','692e0384fcf44ec1ac6df0d8925358e3','0','2','0'),
('35980','5','','10430','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'410','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2bd320c5d71d471e8b68a5f30e1aa5d9','0','2','0'),
('35981','20','get[1.3.6.1.2.1.1.4.0]','10430','Contact','zyxel.3712f.contact','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe textual identification of the contact person\r\nfor this managed node, together with information\r\non how to contact this person.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','71ba1c991114432c9dca4f39b30e7872','0','2','0'),
('35982','20','get[1.3.6.1.4.1.890.1.5.8.48.11.7.0]','10430','CPU utilization','zyxel.3712f.cpuusage','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ZYXEL-MGS3712F-MIB\r\nShow device CPU load in %, it\'s the snapshot of CPU load when\r\ngetting the values.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','69432e1306ae46eab178082cb5ed7bc3','0','2','0'),
('35983','20','discovery[{#SNMP.ARRAY},1.3.6.1.4.1.890.1.5.8.48.1]','10430','ZyNOS F/W Version','zyxel.3712f.fwversion','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ZYXEL-MGS3712F-MIB','17','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4ced5f4185284f32b767036ffe41302c','0','2','0'),
('35984','20','get[1.3.6.1.2.1.1.6.0]','10430','Location','zyxel.3712f.location','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe physical location of this node (e.g.,\r\n`telephone closet, 3rd floor\').','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','98c18ebb978448098922d7930e2ed00b','0','2','0'),
('35985','20','get[1.3.6.1.2.1.2.2.1.6.1]','10430','MAC address','zyxel.3712f.mac','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: IF-MIB\r\nThe interface\'s address at the protocol layer\r\nimmediately `below\' the network layer in the\r\nprotocol stack. For interfaces which do not have\r\nsuch an address (e.g., a serial line), this object\r\nshould contain an octet string of zero length.','12','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bfd1233a36e94dfe93cd02ac95a7218e','0','2','0'),
('35986','20','get[1.3.6.1.2.1.1.1.0]','10430','Hardware model name','zyxel.3712f.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nA textual description of the entity. This value\r\nshould include the full name and version\r\nidentification of the system\'s hardware type,\r\nsoftware operating-system, and networking\r\nsoftware. It is mandatory that this only contain\r\nprintable ASCII characters.','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e734e8fe661043ac84d55a2497a50cf5','0','2','0'),
('35987','20','get[1.3.6.1.2.1.1.5.0]','10430','Host name','zyxel.3712f.name','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nAn administratively-assigned name for this\r\nmanaged node. By convention, this is the node\'s\r\nfully-qualified domain name.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','026c51d2e28943e98056a934355a0161','0','2','0'),
('35988','20','get[1.3.6.1.4.1.890.1.5.8.48.1.10.0]','10430','Hardware serial number','zyxel.3712f.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ZYXEL-MGS3712F-MIB\r\nSerial number','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','97eaf488887c42b89a4e6f6103ceeef6','0','2','0'),
('35989','20','get[1.3.6.1.2.1.1.3.0]','10430','Uptime (network)','zyxel.3712f.net.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe time (in hundredths of a second) since the\r\nnetwork management portion of the system was last\r\nre-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e5e21fdb6dae4dc49038f0801c87a5c6','0','2','0'),
('36024','5','','10431','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'416','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4b5994ccefe5492b8ee81c88f4871efe','0','2','0'),
('36025','20','get[1.3.6.1.2.1.1.4.0]','10431','Contact','zyxel.3500_24s.contact','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe textual identification of the contact person\r\nfor this managed node, together with information\r\non how to contact this person.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','aa2cb34bb8a24ea883d13039175e7955','0','2','0'),
('36026','20','get[1.3.6.1.4.1.890.1.15.3.2.4.0]','10431','CPU utilization','zyxel.3500_24s.cpuusage','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ZYXEL-ES-COMMON\r\nShow device CPU load in %, it\'s the snapshot of CPU load when\r\ngetting the values.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6fccaef6a6f84d97b825d46b62955b76','0','2','0'),
('36027','20','get[1.3.6.1.4.1.890.1.15.3.1.6.0]','10431','ZyNOS F/W Version','zyxel.3500_24s.fwversion','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ZYXEL-ES-COMMON','17','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','37410c60fd224987920640313a0b229b','0','2','0'),
('36028','20','get[1.3.6.1.2.1.1.6.0]','10431','Location','zyxel.3500_24s.location','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe physical location of this node (e.g.,\r\n`telephone closet, 3rd floor\').','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a2ee7e4d0dbc463aa9fc997f14740d0b','0','2','0'),
('36029','20','get[1.3.6.1.2.1.2.2.1.6.1]','10431','MAC address','zyxel.3500_24s.mac','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: IF-MIB\r\nThe interface\'s address at the protocol layer\r\nimmediately `below\' the network layer in the\r\nprotocol stack. For interfaces which do not have\r\nsuch an address (e.g., a serial line), this object\r\nshould contain an octet string of zero length.','12','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','082f2005c90d4edebdddedd1ee946793','0','2','0'),
('36030','20','get[1.3.6.1.4.1.890.1.15.3.2.5.0]','10431','Memory utilization','zyxel.3500_24s.memusage','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ZYXEL-ES-COMMON\r\nShow device memory usage in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1e8654e4f9ba487f971f5dc4c1fd5c9d','0','2','0'),
('36031','20','get[1.3.6.1.2.1.1.1.0]','10431','Hardware model name','zyxel.3500_24s.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nA textual description of the entity. This value\r\nshould include the full name and version\r\nidentification of the system\'s hardware type,\r\nsoftware operating-system, and networking\r\nsoftware. It is mandatory that this only contain\r\nprintable ASCII characters.','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a7d255bd093744ef853335e1b961bef7','0','2','0'),
('36032','20','get[1.3.6.1.2.1.1.5.0]','10431','Host name','zyxel.3500_24s.name','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nAn administratively-assigned name for this\r\nmanaged node. By convention, this is the node\'s\r\nfully-qualified domain name.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9225792a06444aabb120c390c68c2a06','0','2','0'),
('36033','20','get[1.3.6.1.4.1.890.1.15.3.1.12.0]','10431','Hardware serial number','zyxel.3500_24s.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ZYXEL-ES-COMMON\r\nSerial number','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a9e8c7ae033b4f7e95aadd663f3656d9','0','2','0'),
('36034','20','get[1.3.6.1.2.1.1.3.0]','10431','Uptime (network)','zyxel.3500_24s.net.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe time (in hundredths of a second) since the\r\nnetwork management portion of the system was last\r\nre-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b3f7ffa22b174e2c8ed8bf0deeb62b42','0','2','0'),
('36069','5','','10432','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'422','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','dd305c07637b49c985aef490fb237359','0','2','0'),
('36070','20','get[1.3.6.1.2.1.1.4.0]','10432','Contact','zyxel.3520_28.contact','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe textual identification of the contact person\r\nfor this managed node, together with information\r\non how to contact this person.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','be1d951beb564638a6102fe4b35fede0','0','2','0'),
('36071','20','get[1.3.6.1.4.1.890.1.15.3.2.4.0]','10432','CPU utilization','zyxel.3520_28.cpuusage','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ZYXEL-ES-COMMON\r\nShow device CPU load in %, it\'s the snapshot of CPU load when\r\ngetting the values.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','abdb31aeb0034998b91ab8f9b475409f','0','2','0'),
('36072','20','get[1.3.6.1.4.1.890.1.15.3.1.6.0]','10432','ZyNOS F/W Version','zyxel.3520_28.fwversion','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ZYXEL-ES-COMMON','17','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','dd0ab3fa502b43969eec05ffd687450e','0','2','0'),
('36073','20','get[1.3.6.1.2.1.1.6.0]','10432','Location','zyxel.3520_28.location','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe physical location of this node (e.g.,\r\n`telephone closet, 3rd floor\').','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d9923ed59ef14cbebfe2f6d24c0d8414','0','2','0'),
('36074','20','get[1.3.6.1.2.1.2.2.1.6.1]','10432','MAC address','zyxel.3520_28.mac','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: IF-MIB\r\nThe interface\'s address at the protocol layer\r\nimmediately `below\' the network layer in the\r\nprotocol stack. For interfaces which do not have\r\nsuch an address (e.g., a serial line), this object\r\nshould contain an octet string of zero length.','12','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','65116a646d734290926de9444a58ff2d','0','2','0'),
('36075','20','get[1.3.6.1.4.1.890.1.15.3.2.5.0]','10432','Memory utilization','zyxel.3520_28.memusage','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ZYXEL-ES-COMMON\r\nShow device memory usage in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','89d6942524f84e6d80d02a80be25ce57','0','2','0'),
('36076','20','get[1.3.6.1.2.1.1.1.0]','10432','Hardware model name','zyxel.3520_28.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nA textual description of the entity. This value\r\nshould include the full name and version\r\nidentification of the system\'s hardware type,\r\nsoftware operating-system, and networking\r\nsoftware. It is mandatory that this only contain\r\nprintable ASCII characters.','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2dced10921704f8a9ccaabb2f951af15','0','2','0'),
('36077','20','get[1.3.6.1.2.1.1.5.0]','10432','Host name','zyxel.3520_28.name','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nAn administratively-assigned name for this\r\nmanaged node. By convention, this is the node\'s\r\nfully-qualified domain name.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bccc98beb7ea45d6a7463de339e8877e','0','2','0'),
('36078','20','get[1.3.6.1.4.1.890.1.15.3.1.12.0]','10432','Hardware serial number','zyxel.3520_28.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ZYXEL-ES-COMMON\r\nSerial number','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','095d82b3c92340debb324844a6c7f8a8','0','2','0'),
('36079','20','get[1.3.6.1.2.1.1.3.0]','10432','Uptime (network)','zyxel.3520_28.net.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe time (in hundredths of a second) since the\r\nnetwork management portion of the system was last\r\nre-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','78959009721a453c8b8a2c49eb26c90c','0','2','0'),
('36114','5','','10433','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'428','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8b2b855bc92447dda391d251db268dc9','0','2','0'),
('36115','20','get[1.3.6.1.2.1.1.4.0]','10433','Contact','zyxel.4728f.contact','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe textual identification of the contact person\r\nfor this managed node, together with information\r\non how to contact this person.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','23ae05ce4d5c4022a716ed9e8e701ae9','0','2','0'),
('36116','20','get[1.3.6.1.4.1.890.1.5.8.46.12.7.0]','10433','CPU utilization','zyxel.4728f.cpuusage','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ZYXEL-XGS4728F-MIB\r\nShow device CPU load in %, it\'s the snapshot of CPU load when\r\ngetting the values.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1cccb7e7616944aa8747508e96f54968','0','2','0'),
('36117','20','discovery[{#SNMP.ARRAY},1.3.6.1.4.1.890.1.5.8.46.1]','10433','ZyNOS F/W Version','zyxel.4728f.fwversion','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ZYXEL-XGS4728F-MIB','17','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','222a051f0b84433faa6f29237b6d1552','0','2','0'),
('36118','20','get[1.3.6.1.2.1.1.6.0]','10433','Location','zyxel.4728f.location','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe physical location of this node (e.g.,\r\n`telephone closet, 3rd floor\').','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cc5065f635bc486cb90898f842fa8a61','0','2','0'),
('36119','20','get[1.3.6.1.2.1.2.2.1.6.1]','10433','MAC address','zyxel.4728f.mac','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: IF-MIB\r\nThe interface\'s address at the protocol layer\r\nimmediately `below\' the network layer in the\r\nprotocol stack. For interfaces which do not have\r\nsuch an address (e.g., a serial line), this object\r\nshould contain an octet string of zero length.','12','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9a646e8e82c844c08754c7e72e161712','0','2','0'),
('36120','20','get[1.3.6.1.2.1.1.1.0]','10433','Hardware model name','zyxel.4728f.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nA textual description of the entity. This value\r\nshould include the full name and version\r\nidentification of the system\'s hardware type,\r\nsoftware operating-system, and networking\r\nsoftware. It is mandatory that this only contain\r\nprintable ASCII characters.','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a152c262c465441da0f1924bc7614a23','0','2','0'),
('36121','20','get[1.3.6.1.2.1.1.5.0]','10433','Host name','zyxel.4728f.name','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nAn administratively-assigned name for this\r\nmanaged node. By convention, this is the node\'s\r\nfully-qualified domain name.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','49e365a43809409f8d4636f88e4d64a9','0','2','0'),
('36122','20','get[1.3.6.1.4.1.890.1.5.8.46.1.10.0]','10433','Hardware serial number','zyxel.4728f.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ZYXEL-XGS4728F-MIB\r\nSerial number','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','79c80ac11d854edea93a598c4b28ffc0','0','2','0'),
('36123','20','get[1.3.6.1.2.1.1.3.0]','10433','Uptime (network)','zyxel.4728f.net.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: RFC1213-MIB\r\nThe time (in hundredths of a second) since the\r\nnetwork management portion of the system was last\r\nre-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b3302cbfbae64d55a638240ffb368b9c','0','2','0'),
('36160','20','get[1.3.6.1.2.1.1.4.0]','10434','System contact details','cisco.ucs.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe textual identification of the contact person for this managed\r\nnode, together with information on how to contact this person. If no contact\r\ninformation is known, the value is the zero-length string.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ad342e11ce9f4f79bf9b0182c3f83488','0','2','0'),
('36161','20','get[1.3.6.1.2.1.1.1.0]','10434','System description','cisco.ucs.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','286fdb0fa49a4b378a6219a5ed76aac4','0','2','0'),
('36162','20','get[1.3.6.1.2.1.1.6.0]','10434','System location','cisco.ucs.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe physical location of this node (e.g., `telephone closet,\r\n3rd floor\'). If the location is unknown, the value is the zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','88bd32f8520144858a8ddb03dd200638','0','2','0'),
('36163','20','get[1.3.6.1.2.1.1.5.0]','10434','System name','cisco.ucs.name[sysName.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn administratively-assigned name for this managed node.By\r\nconvention, this is the node\'s fully-qualified domain name. If the name is unknown,\r\nthe value is the zero-length string.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8bd3a60e4c70450492432c6abfa7b5f9','0','2','0'),
('36164','20','get[1.3.6.1.2.1.1.2.0]','10434','System object ID','cisco.ucs.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe vendor\'s authoritative identification of the network management\r\nsubsystem contained in the entity. This value is allocated within the SMI enterprises\r\nsubtree (1.3.6.1.4.1) and provides an easy and unambiguous means for determining \'what\r\nkind of box\' is being managed. For example, if vendor \'Flintstones, Inc.\' was\r\nassigned the subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1\r\nto its \'Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','10d22e53318347658b2418ff33c26e0d','0','2','0'),
('36165','20','get[1.3.6.1.2.1.1.3.0]','10434','Uptime (network)','cisco.ucs.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe time in seconds since the network management\r\nportion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b87e425f1bdf404a8e53ff277c0ff0c0','0','2','0'),
('36166','17','','10434','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5d839f68b6534dc8bd1fb5db7a757f02','0','2','0'),
('36167','5','','10434','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'442','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0926417e279a4e52a7f12587e9422e92','0','2','0'),
('36213','21','','10435','Get system','dell.server.system.get','1m','0','0','0','4','','','','',NULL,NULL,'function validateZabbixParams(requiredParams, allParams) {\r\n requiredParams.forEach(function (field) {\r\n if (typeof allParams !== \'object\' || typeof allParams[field] === \'undefined\' || allParams[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n}\r\n\r\nfunction Dell(service, action, params) {\r\n this.zabbixLogPrefix = \'[ DELL ] [ \' + service + \' ] [ \' + action + \' ]\';\r\n this.request = new HttpRequest();\r\n\r\n this.executeRequest = function (apiPath) {\r\n this.request.addHeader(\'Authorization: Basic \' + btoa(params[\'user\'] + \':\' + params[\'password\']));\r\n\r\n if (params[\'http_proxy\']) {\r\n this.request.setProxy(params[\'http_proxy\']);\r\n Zabbix.log(4, this.zabbixLogPrefix + \' Using http proxy: \' + params[\'http_proxy\']);\r\n }\r\n\r\n const response = this.request.get(params[\'url\'] + apiPath);\r\n\r\n this.request.clearHeader();\r\n\r\n if (this.request.getStatus() === parseInt(params[\'http_status_code\'])) {\r\n return response;\r\n } else {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Unexpected HTTP response code: \' + this.request.getStatus());\r\n throw \'Unexpected HTTP response code: \' + this.request.getStatus();\r\n }\r\n };\r\n\r\n this.extractData = function (data, keys, skipParse) {\r\n if (!skipParse) {\r\n try {\r\n data = JSON.parse(data);\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not parse the received JSON object: \' + data);\r\n throw \'Could not parse received JSON object. See logs for more information.\';\r\n } \r\n }\r\n\r\n if (Array.isArray(keys)) {\r\n var returnBuffer = {};\r\n\r\n for (keyIdx = 0, keysLength = keys.length; keyIdx < keysLength; keyIdx++) {\r\n if (keys[keyIdx][\'path\'] === \'@odata.id\') {\r\n returnBuffer[keys[keyIdx][\'name\']] = data[keys[keyIdx][\'path\']];\r\n } else {\r\n returnBuffer[keys[keyIdx][\'name\']] = this.parseJSON(data, keys[keyIdx][\'path\'].split(\'.\'));\r\n }\r\n }\r\n\r\n return returnBuffer;\r\n } else if (typeof keys === \'object\') {\r\n return { [keys[\'name\']]: this.parseJSON(data, keys[\'path\'].split(\'.\')) };\r\n } else if (typeof keys === \'string\') {\r\n return this.parseJSON(data, keys.split(\'.\'));\r\n } else {\r\n throw \'Unexpected key type\';\r\n }\r\n };\r\n\r\n this.parseJSON = function (data, jsonPath) {\r\n for (var i = 0, args = jsonPath.length; i < args; i++) {\r\n data = data[jsonPath[i]];\r\n }\r\n\r\n return data;\r\n }\r\n}\r\n\r\n\r\nconst params = JSON.parse(value);\r\n\r\nvalidateZabbixParams([\'url\', \'user\', \'password\', \'http_status_code\'], params);\r\nvar dell = new Dell(\'System\', \'Get system metrics\', params);\r\n\r\nconst requests = [\r\n {\r\n \'path\': \'/redfish/v1/Systems/System.Embedded.1\',\r\n \'keys\': [\r\n {\r\n \'name\': \'model\',\r\n \'path\': \'Model\'\r\n },\r\n {\r\n \'name\': \'serialnumber\',\r\n \'path\': \'Oem.Dell.DellSystem.ChassisServiceTag\'\r\n },\r\n {\r\n \'name\': \'status\',\r\n \'path\': \'Status.Health\'\r\n }\r\n ]\r\n },\r\n {\r\n \'path\': \'/redfish/v1/Managers/iDRAC.Embedded.1\',\r\n \'keys\': {\r\n \'name\': \'firmware\',\r\n \'path\': \'FirmwareVersion\'\r\n }\r\n }\r\n];\r\n\r\nvar buffer = {};\r\n\r\nfor (var i = 0, requestsCount = requests.length; i < requestsCount; i++) {\r\n Object.assign(buffer, dell.extractData(dell.executeRequest(requests[i].path), requests[i].keys));\r\n}\r\n\r\nreturn JSON.stringify(buffer);','','0','','','','','0',NULL,'Returns system metrics.','0','30d','0','',NULL,'{$DELL.HTTP.REQUEST.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','c400cdf744be43859f36ac249cef03d2','0','2','0'),
('36214','3','','10435','Redfish API status','net.tcp.service[https]','1m','31d','365d','0','3','','','','',NULL,'1311','','','0','','','','','0',NULL,'Availability of Redfish API on the server.\r\nPossible values:\r\n 0 - Unavailable\r\n 1 - Available','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','da21527c1a004c67a5e2cd6770aa8637','0','2','0'),
('36255','20','get[1.3.6.1.2.1.1.4.0]','10436','System contact details','dell.server.contact[sysContact]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nName and contact information of the contact person for the node. If not provided, the value is a zero-length string.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cd86d6203a874b27be4ed91578928dcf','0','2','0'),
('36256','20','get[1.3.6.1.2.1.1.1.0]','10436','System description','dell.server.descr[sysDescr]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA 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.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d5c65ffddfff45319a3f6ba856b73f6b','0','2','0'),
('36257','20','get[1.3.6.1.4.1.674.10892.5.1.1.8.0]','10436','Firmware version','dell.server.hw.firmware[racFirmwareVersion]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: IDRAC-MIB-SMIv2\r\nThis attribute defines the firmware version of a remote access card.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','00928da92ab7499aba169837b2fffc83','0','2','0'),
('36258','20','get[1.3.6.1.4.1.674.10892.5.1.3.12.0]','10436','Hardware model name','dell.server.hw.model[systemModelName]','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: IDRAC-MIB-SMIv2\r\nThis attribute defines the model name of the system.','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','34fd8f0eaae041828cd1743ef55c16f9','0','2','0'),
('36259','20','get[1.3.6.1.4.1.674.10892.5.1.3.2.0]','10436','Hardware serial number','dell.server.hw.serialnumber[systemServiceTag]','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: IDRAC-MIB-SMIv2\r\nThis attribute defines the service tag of the system.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f5753d89e11f43fba46959b60601d45c','0','2','0'),
('36260','20','get[1.3.6.1.2.1.1.6.0]','10436','System location','dell.server.location[sysLocation]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe physical location of this node (e.g., \'telephone closet, 3rd floor\'). If the location is unknown, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ca9019fd89654c52889a12153150151d','0','2','0'),
('36261','20','get[1.3.6.1.2.1.1.5.0]','10436','System name','dell.server.name[sysName]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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 a zero-length string.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8b72816906274e1281929a318c44e8c6','0','2','0'),
('36262','20','get[1.3.6.1.2.1.1.2.0]','10436','System object ID','dell.server.objectid[sysObjectID]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe vendor\'s authoritative identification of the entity as part of the vendor\'s SMI enterprises subtree with the prefix 1.3.6.1.4.1 (e.g., a vendor with the identifier 1.3.6.1.4.1.4242 might assign a system object with the OID 1.3.6.1.4.1.4242.1.1).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','18c324fe6e714549bc337c2711795c40','0','2','0'),
('36263','20','get[1.3.6.1.4.1.674.10892.5.2.1.0]','10436','Overall system health status','dell.server.status[globalSystemStatus]','1m','31d','0','0','3','','','','',NULL,'446','','','0','','','','','0',NULL,'MIB: IDRAC-MIB-SMIv2\r\nThis attribute defines the overall rollup status of all the components in the system monitored by the remote access card. Includes system, storage, IO devices, iDRAC, CPU, memory, etc.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','341699ea98c64951b1d94d89b5c81362','0','2','0'),
('36264','20','get[1.3.6.1.4.1.674.10892.5.1.3.6.0]','10436','Operating system','dell.server.sw.os[systemOSName]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: IDRAC-MIB-SMIv2\r\nThis attribute defines the name of the operating system that the host is running.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c8d519bdde9a4c3b89976f7b0dab0696','0','2','0'),
('36266','17','','10436','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other `snmptrap` items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','65097a06ef764129bcb0cb7fdd1f0ec8','0','2','0'),
('36267','5','','10436','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'455','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','943b9c35a40c4ca7811212b20b27677d','0','2','0'),
('36295','21','','10437','Get system','dell.server.system.get','1m','0','0','0','4','','','','',NULL,NULL,'function validateZabbixParams(requiredParams, allParams) {\r\n requiredParams.forEach(function (field) {\r\n if (typeof allParams !== \'object\' || typeof allParams[field] === \'undefined\' || allParams[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n}\r\n\r\nfunction Dell(service, action, params) {\r\n this.zabbixLogPrefix = \'[ DELL ] [ \' + service + \' ] [ \' + action + \' ]\';\r\n this.request = new HttpRequest();\r\n\r\n this.executeRequest = function (apiPath) {\r\n this.request.addHeader(\'Authorization: Basic \' + btoa(params[\'user\'] + \':\' + params[\'password\']));\r\n\r\n if (params[\'http_proxy\']) {\r\n this.request.setProxy(params[\'http_proxy\']);\r\n Zabbix.log(4, this.zabbixLogPrefix + \' Using http proxy: \' + params[\'http_proxy\']);\r\n }\r\n\r\n const response = this.request.get(params[\'url\'] + apiPath);\r\n\r\n this.request.clearHeader();\r\n\r\n if (this.request.getStatus() === parseInt(params[\'http_status_code\'])) {\r\n return response;\r\n } else {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Unexpected HTTP response code: \' + this.request.getStatus());\r\n throw \'Unexpected HTTP response code: \' + this.request.getStatus();\r\n }\r\n };\r\n\r\n this.extractData = function (data, keys, skipParse) {\r\n if (!skipParse) {\r\n try {\r\n data = JSON.parse(data);\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not parse the received JSON object: \' + data);\r\n throw \'Could not parse received JSON object. See logs for more information.\';\r\n } \r\n }\r\n\r\n if (Array.isArray(keys)) {\r\n var returnBuffer = {};\r\n\r\n for (keyIdx = 0, keysLength = keys.length; keyIdx < keysLength; keyIdx++) {\r\n if (keys[keyIdx][\'path\'] === \'@odata.id\') {\r\n returnBuffer[keys[keyIdx][\'name\']] = data[keys[keyIdx][\'path\']];\r\n } else {\r\n returnBuffer[keys[keyIdx][\'name\']] = this.parseJSON(data, keys[keyIdx][\'path\'].split(\'.\'));\r\n }\r\n }\r\n\r\n return returnBuffer;\r\n } else if (typeof keys === \'object\') {\r\n return { [keys[\'name\']]: this.parseJSON(data, keys[\'path\'].split(\'.\')) };\r\n } else if (typeof keys === \'string\') {\r\n return this.parseJSON(data, keys.split(\'.\'));\r\n } else {\r\n throw \'Unexpected key type\';\r\n }\r\n };\r\n\r\n this.parseJSON = function (data, jsonPath) {\r\n for (var i = 0, args = jsonPath.length; i < args; i++) {\r\n data = data[jsonPath[i]];\r\n }\r\n\r\n return data;\r\n }\r\n}\r\n\r\n\r\nconst params = JSON.parse(value);\r\n\r\nvalidateZabbixParams([\'url\', \'user\', \'password\', \'http_status_code\'], params);\r\nvar dell = new Dell(\'System\', \'Get system metrics\', params);\r\n\r\nconst requests = [\r\n {\r\n \'path\': \'/redfish/v1/Systems/System.Embedded.1\',\r\n \'keys\': [\r\n {\r\n \'name\': \'model\',\r\n \'path\': \'Model\'\r\n },\r\n {\r\n \'name\': \'serialnumber\',\r\n \'path\': \'Oem.Dell.DellSystem.ChassisServiceTag\'\r\n },\r\n {\r\n \'name\': \'status\',\r\n \'path\': \'Status.Health\'\r\n }\r\n ]\r\n },\r\n {\r\n \'path\': \'/redfish/v1/Managers/iDRAC.Embedded.1\',\r\n \'keys\': {\r\n \'name\': \'firmware\',\r\n \'path\': \'FirmwareVersion\'\r\n }\r\n }\r\n];\r\n\r\nvar buffer = {};\r\n\r\nfor (var i = 0, requestsCount = requests.length; i < requestsCount; i++) {\r\n Object.assign(buffer, dell.extractData(dell.executeRequest(requests[i].path), requests[i].keys));\r\n}\r\n\r\nreturn JSON.stringify(buffer);','','0','','','','','0',NULL,'Returns system metrics.','0','30d','0','',NULL,'{$DELL.HTTP.REQUEST.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','0bf660f3d66a4322acaeee585d258ddc','0','2','0'),
('36296','3','','10437','Redfish API status','net.tcp.service[https]','1m','31d','365d','0','3','','','','',NULL,'1320','','','0','','','','','0',NULL,'Availability of Redfish API on the server.\r\nPossible values:\r\n 0 - Unavailable\r\n 1 - Available','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0ce986507b414619bf8cad6dcf1e61b6','0','2','0'),
('36337','20','get[1.3.6.1.2.1.1.4.0]','10438','System contact details','dell.server.contact[sysContact]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nName and contact information of the contact person for the node. If not provided, the value is a zero-length string.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bb8eb9194d964824a3c62f0cdd777520','0','2','0'),
('36338','20','get[1.3.6.1.2.1.1.1.0]','10438','System description','dell.server.descr[sysDescr]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA 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.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d16c384f99a94a22a0a24a01070d95a2','0','2','0'),
('36339','20','get[1.3.6.1.4.1.674.10892.5.1.1.8.0]','10438','Firmware version','dell.server.hw.firmware[racFirmwareVersion]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: IDRAC-MIB-SMIv2\r\nThis attribute defines the firmware version of a remote access card.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ab2437a52da14bd28e54b781d9f1034d','0','2','0'),
('36340','20','get[1.3.6.1.4.1.674.10892.5.1.3.12.0]','10438','Hardware model name','dell.server.hw.model[systemModelName]','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: IDRAC-MIB-SMIv2\r\nThis attribute defines the model name of the system.','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','da32b347cedf4f7a906b6a819e08cf16','0','2','0'),
('36341','20','get[1.3.6.1.4.1.674.10892.5.1.3.2.0]','10438','Hardware serial number','dell.server.hw.serialnumber[systemServiceTag]','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: IDRAC-MIB-SMIv2\r\nThis attribute defines the service tag of the system.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c18ca70147524b0b95dd239c81495637','0','2','0'),
('36342','20','get[1.3.6.1.2.1.1.6.0]','10438','System location','dell.server.location[sysLocation]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe physical location of this node (e.g., \'telephone closet, 3rd floor\'). If the location is unknown, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3a354c53006b44f3993c962c60028c33','0','2','0'),
('36343','20','get[1.3.6.1.2.1.1.5.0]','10438','System name','dell.server.name[sysName]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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 a zero-length string.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d6962f725c4547ebb939503dae9f24dd','0','2','0'),
('36344','20','get[1.3.6.1.2.1.1.2.0]','10438','System object ID','dell.server.objectid[sysObjectID]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe vendor\'s authoritative identification of the entity as part of the vendor\'s SMI enterprises subtree with the prefix 1.3.6.1.4.1 (e.g., a vendor with the identifier 1.3.6.1.4.1.4242 might assign a system object with the OID 1.3.6.1.4.1.4242.1.1).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','af019e901b1948c68888b90a703b9718','0','2','0'),
('36345','20','get[1.3.6.1.4.1.674.10892.5.2.1.0]','10438','Overall system health status','dell.server.status[globalSystemStatus]','1m','31d','0','0','3','','','','',NULL,'459','','','0','','','','','0',NULL,'MIB: IDRAC-MIB-SMIv2\r\nThis attribute defines the overall rollup status of all the components in the system monitored by the remote access card. Includes system, storage, IO devices, iDRAC, CPU, memory, etc.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2e84d73b00bf45c7a143e52bb278c5f1','0','2','0'),
('36346','20','get[1.3.6.1.4.1.674.10892.5.1.3.6.0]','10438','Operating system','dell.server.sw.os[systemOSName]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: IDRAC-MIB-SMIv2\r\nThis attribute defines the name of the operating system that the host is running.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','91ef2785cfa944f286c267ab351d8f33','0','2','0'),
('36348','17','','10438','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other `snmptrap` items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1a90d82b418a416b8aa4575fc6b1e35d','0','2','0'),
('36349','5','','10438','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'468','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f249e299f7c944abbbb8fc824f36b664','0','2','0'),
('36377','21','','10439','Get system','dell.server.system.get','1m','0','0','0','4','','','','',NULL,NULL,'function validateZabbixParams(requiredParams, allParams) {\r\n requiredParams.forEach(function (field) {\r\n if (typeof allParams !== \'object\' || typeof allParams[field] === \'undefined\' || allParams[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n}\r\n\r\nfunction Dell(service, action, params) {\r\n this.zabbixLogPrefix = \'[ DELL ] [ \' + service + \' ] [ \' + action + \' ]\';\r\n this.request = new HttpRequest();\r\n\r\n this.executeRequest = function (apiPath) {\r\n this.request.addHeader(\'Authorization: Basic \' + btoa(params[\'user\'] + \':\' + params[\'password\']));\r\n\r\n if (params[\'http_proxy\']) {\r\n this.request.setProxy(params[\'http_proxy\']);\r\n Zabbix.log(4, this.zabbixLogPrefix + \' Using http proxy: \' + params[\'http_proxy\']);\r\n }\r\n\r\n const response = this.request.get(params[\'url\'] + apiPath);\r\n\r\n this.request.clearHeader();\r\n\r\n if (this.request.getStatus() === parseInt(params[\'http_status_code\'])) {\r\n return response;\r\n } else {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Unexpected HTTP response code: \' + this.request.getStatus());\r\n throw \'Unexpected HTTP response code: \' + this.request.getStatus();\r\n }\r\n };\r\n\r\n this.extractData = function (data, keys, skipParse) {\r\n if (!skipParse) {\r\n try {\r\n data = JSON.parse(data);\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not parse the received JSON object: \' + data);\r\n throw \'Could not parse received JSON object. See logs for more information.\';\r\n } \r\n }\r\n\r\n if (Array.isArray(keys)) {\r\n var returnBuffer = {};\r\n\r\n for (keyIdx = 0, keysLength = keys.length; keyIdx < keysLength; keyIdx++) {\r\n if (keys[keyIdx][\'path\'] === \'@odata.id\') {\r\n returnBuffer[keys[keyIdx][\'name\']] = data[keys[keyIdx][\'path\']];\r\n } else {\r\n returnBuffer[keys[keyIdx][\'name\']] = this.parseJSON(data, keys[keyIdx][\'path\'].split(\'.\'));\r\n }\r\n }\r\n\r\n return returnBuffer;\r\n } else if (typeof keys === \'object\') {\r\n return { [keys[\'name\']]: this.parseJSON(data, keys[\'path\'].split(\'.\')) };\r\n } else if (typeof keys === \'string\') {\r\n return this.parseJSON(data, keys.split(\'.\'));\r\n } else {\r\n throw \'Unexpected key type\';\r\n }\r\n };\r\n\r\n this.parseJSON = function (data, jsonPath) {\r\n for (var i = 0, args = jsonPath.length; i < args; i++) {\r\n data = data[jsonPath[i]];\r\n }\r\n\r\n return data;\r\n }\r\n}\r\n\r\n\r\nconst params = JSON.parse(value);\r\n\r\nvalidateZabbixParams([\'url\', \'user\', \'password\', \'http_status_code\'], params);\r\nvar dell = new Dell(\'System\', \'Get system metrics\', params);\r\n\r\nconst requests = [\r\n {\r\n \'path\': \'/redfish/v1/Systems/System.Embedded.1\',\r\n \'keys\': [\r\n {\r\n \'name\': \'model\',\r\n \'path\': \'Model\'\r\n },\r\n {\r\n \'name\': \'serialnumber\',\r\n \'path\': \'Oem.Dell.DellSystem.ChassisServiceTag\'\r\n },\r\n {\r\n \'name\': \'status\',\r\n \'path\': \'Status.Health\'\r\n }\r\n ]\r\n },\r\n {\r\n \'path\': \'/redfish/v1/Managers/iDRAC.Embedded.1\',\r\n \'keys\': {\r\n \'name\': \'firmware\',\r\n \'path\': \'FirmwareVersion\'\r\n }\r\n }\r\n];\r\n\r\nvar buffer = {};\r\n\r\nfor (var i = 0, requestsCount = requests.length; i < requestsCount; i++) {\r\n Object.assign(buffer, dell.extractData(dell.executeRequest(requests[i].path), requests[i].keys));\r\n}\r\n\r\nreturn JSON.stringify(buffer);','','0','','','','','0',NULL,'Returns system metrics.','0','30d','0','',NULL,'{$DELL.HTTP.REQUEST.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','c25e7040694f4a839b4e32524698c8da','0','2','0'),
('36378','3','','10439','Redfish API status','net.tcp.service[https]','1m','31d','365d','0','3','','','','',NULL,'1350','','','0','','','','','0',NULL,'Availability of Redfish API on the server.\r\nPossible values:\r\n 0 - Unavailable\r\n 1 - Available','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','881a8358b3a049cb9516ec8f2ee20b69','0','2','0'),
('36419','20','get[1.3.6.1.2.1.1.4.0]','10440','System contact details','dell.server.contact[sysContact]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nName and contact information of the contact person for the node. If not provided, the value is a zero-length string.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ca6fac1eee9f41d88df43b4e870e8e84','0','2','0'),
('36420','20','get[1.3.6.1.2.1.1.1.0]','10440','System description','dell.server.descr[sysDescr]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA 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.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b738b9531e5049df8c31f1c37868f34f','0','2','0'),
('36421','20','get[1.3.6.1.4.1.674.10892.5.1.1.8.0]','10440','Firmware version','dell.server.hw.firmware[racFirmwareVersion]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: IDRAC-MIB-SMIv2\r\nThis attribute defines the firmware version of a remote access card.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7a4e5160d533407194d63d90f93352bd','0','2','0'),
('36422','20','get[1.3.6.1.4.1.674.10892.5.1.3.12.0]','10440','Hardware model name','dell.server.hw.model[systemModelName]','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: IDRAC-MIB-SMIv2\r\nThis attribute defines the model name of the system.','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','70068169a3b74328a803fcd2d69954ee','0','2','0'),
('36423','20','get[1.3.6.1.4.1.674.10892.5.1.3.2.0]','10440','Hardware serial number','dell.server.hw.serialnumber[systemServiceTag]','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: IDRAC-MIB-SMIv2\r\nThis attribute defines the service tag of the system.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a3881855713847d286c3acd0de95a416','0','2','0'),
('36424','20','get[1.3.6.1.2.1.1.6.0]','10440','System location','dell.server.location[sysLocation]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe physical location of this node (e.g., \'telephone closet, 3rd floor\'). If the location is unknown, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','286a4143fb464b31bb5cd581e7458959','0','2','0'),
('36425','20','get[1.3.6.1.2.1.1.5.0]','10440','System name','dell.server.name[sysName]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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 a zero-length string.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','eccac199b19143c0b3e275d5dae16729','0','2','0'),
('36426','20','get[1.3.6.1.2.1.1.2.0]','10440','System object ID','dell.server.objectid[sysObjectID]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe vendor\'s authoritative identification of the entity as part of the vendor\'s SMI enterprises subtree with the prefix 1.3.6.1.4.1 (e.g., a vendor with the identifier 1.3.6.1.4.1.4242 might assign a system object with the OID 1.3.6.1.4.1.4242.1.1).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3561ed916061452e8597b8265c7305f3','0','2','0'),
('36427','20','get[1.3.6.1.4.1.674.10892.5.2.1.0]','10440','Overall system health status','dell.server.status[globalSystemStatus]','1m','31d','0','0','3','','','','',NULL,'481','','','0','','','','','0',NULL,'MIB: IDRAC-MIB-SMIv2\r\nThis attribute defines the overall rollup status of all the components in the system monitored by the remote access card. Includes system, storage, IO devices, iDRAC, CPU, memory, etc.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3924d9aae3ac44b1b14d9c19204cbe2c','0','2','0'),
('36428','20','get[1.3.6.1.4.1.674.10892.5.1.3.6.0]','10440','Operating system','dell.server.sw.os[systemOSName]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: IDRAC-MIB-SMIv2\r\nThis attribute defines the name of the operating system that the host is running.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','168398f2c797467fb7830dce8a9510b9','0','2','0'),
('36430','17','','10440','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other `snmptrap` items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2f33eafc892b487dba32aa46823eafd4','0','2','0'),
('36431','5','','10440','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'490','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5dd178b40f28436db3c71a1dd50b8ea8','0','2','0'),
('36459','21','','10441','Get system','dell.server.system.get','1m','0','0','0','4','','','','',NULL,NULL,'function validateZabbixParams(requiredParams, allParams) {\r\n requiredParams.forEach(function (field) {\r\n if (typeof allParams !== \'object\' || typeof allParams[field] === \'undefined\' || allParams[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n}\r\n\r\nfunction Dell(service, action, params) {\r\n this.zabbixLogPrefix = \'[ DELL ] [ \' + service + \' ] [ \' + action + \' ]\';\r\n this.request = new HttpRequest();\r\n\r\n this.executeRequest = function (apiPath) {\r\n this.request.addHeader(\'Authorization: Basic \' + btoa(params[\'user\'] + \':\' + params[\'password\']));\r\n\r\n if (params[\'http_proxy\']) {\r\n this.request.setProxy(params[\'http_proxy\']);\r\n Zabbix.log(4, this.zabbixLogPrefix + \' Using http proxy: \' + params[\'http_proxy\']);\r\n }\r\n\r\n const response = this.request.get(params[\'url\'] + apiPath);\r\n\r\n this.request.clearHeader();\r\n\r\n if (this.request.getStatus() === parseInt(params[\'http_status_code\'])) {\r\n return response;\r\n } else {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Unexpected HTTP response code: \' + this.request.getStatus());\r\n throw \'Unexpected HTTP response code: \' + this.request.getStatus();\r\n }\r\n };\r\n\r\n this.extractData = function (data, keys, skipParse) {\r\n if (!skipParse) {\r\n try {\r\n data = JSON.parse(data);\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not parse the received JSON object: \' + data);\r\n throw \'Could not parse received JSON object. See logs for more information.\';\r\n } \r\n }\r\n\r\n if (Array.isArray(keys)) {\r\n var returnBuffer = {};\r\n\r\n for (keyIdx = 0, keysLength = keys.length; keyIdx < keysLength; keyIdx++) {\r\n if (keys[keyIdx][\'path\'] === \'@odata.id\') {\r\n returnBuffer[keys[keyIdx][\'name\']] = data[keys[keyIdx][\'path\']];\r\n } else {\r\n returnBuffer[keys[keyIdx][\'name\']] = this.parseJSON(data, keys[keyIdx][\'path\'].split(\'.\'));\r\n }\r\n }\r\n\r\n return returnBuffer;\r\n } else if (typeof keys === \'object\') {\r\n return { [keys[\'name\']]: this.parseJSON(data, keys[\'path\'].split(\'.\')) };\r\n } else if (typeof keys === \'string\') {\r\n return this.parseJSON(data, keys.split(\'.\'));\r\n } else {\r\n throw \'Unexpected key type\';\r\n }\r\n };\r\n\r\n this.parseJSON = function (data, jsonPath) {\r\n for (var i = 0, args = jsonPath.length; i < args; i++) {\r\n data = data[jsonPath[i]];\r\n }\r\n\r\n return data;\r\n }\r\n}\r\n\r\n\r\nconst params = JSON.parse(value);\r\n\r\nvalidateZabbixParams([\'url\', \'user\', \'password\', \'http_status_code\'], params);\r\nvar dell = new Dell(\'System\', \'Get system metrics\', params);\r\n\r\nconst requests = [\r\n {\r\n \'path\': \'/redfish/v1/Systems/System.Embedded.1\',\r\n \'keys\': [\r\n {\r\n \'name\': \'model\',\r\n \'path\': \'Model\'\r\n },\r\n {\r\n \'name\': \'serialnumber\',\r\n \'path\': \'Oem.Dell.DellSystem.ChassisServiceTag\'\r\n },\r\n {\r\n \'name\': \'status\',\r\n \'path\': \'Status.Health\'\r\n }\r\n ]\r\n },\r\n {\r\n \'path\': \'/redfish/v1/Managers/iDRAC.Embedded.1\',\r\n \'keys\': {\r\n \'name\': \'firmware\',\r\n \'path\': \'FirmwareVersion\'\r\n }\r\n }\r\n];\r\n\r\nvar buffer = {};\r\n\r\nfor (var i = 0, requestsCount = requests.length; i < requestsCount; i++) {\r\n Object.assign(buffer, dell.extractData(dell.executeRequest(requests[i].path), requests[i].keys));\r\n}\r\n\r\nreturn JSON.stringify(buffer);','','0','','','','','0',NULL,'Returns system metrics.','0','30d','0','',NULL,'{$DELL.HTTP.REQUEST.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','18157734e10d4eed82a0f43168daff65','0','2','0'),
('36460','3','','10441','Redfish API status','net.tcp.service[https]','1m','31d','365d','0','3','','','','',NULL,'1359','','','0','','','','','0',NULL,'Availability of Redfish API on the server.\r\nPossible values:\r\n 0 - Unavailable\r\n 1 - Available','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1fe957b97d914400a1814ff8ac1a9fc4','0','2','0'),
('36501','20','get[1.3.6.1.2.1.1.4.0]','10442','System contact details','dell.server.contact[sysContact]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nName and contact information of the contact person for the node. If not provided, the value is a zero-length string.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','65da5f84a8bb43da8b72ddbe6d757fa8','0','2','0'),
('36502','20','get[1.3.6.1.2.1.1.1.0]','10442','System description','dell.server.descr[sysDescr]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA 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.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','51c9b68b617c498eb612807734076367','0','2','0'),
('36503','20','get[1.3.6.1.4.1.674.10892.5.1.1.8.0]','10442','Firmware version','dell.server.hw.firmware[racFirmwareVersion]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: IDRAC-MIB-SMIv2\r\nThis attribute defines the firmware version of a remote access card.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','09e33063d84e486fb4964af35916cc25','0','2','0'),
('36504','20','get[1.3.6.1.4.1.674.10892.5.1.3.12.0]','10442','Hardware model name','dell.server.hw.model[systemModelName]','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: IDRAC-MIB-SMIv2\r\nThis attribute defines the model name of the system.','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b34415ae1ac84375834612f402d4ea0c','0','2','0'),
('36505','20','get[1.3.6.1.4.1.674.10892.5.1.3.2.0]','10442','Hardware serial number','dell.server.hw.serialnumber[systemServiceTag]','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: IDRAC-MIB-SMIv2\r\nThis attribute defines the service tag of the system.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b46ad39d968141259ace337d70744001','0','2','0'),
('36506','20','get[1.3.6.1.2.1.1.6.0]','10442','System location','dell.server.location[sysLocation]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe physical location of this node (e.g., \'telephone closet, 3rd floor\'). If the location is unknown, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0445a9767ce34fb7b2be072609504011','0','2','0'),
('36507','20','get[1.3.6.1.2.1.1.5.0]','10442','System name','dell.server.name[sysName]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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 a zero-length string.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','58be11401c084b0a81ebadbde199133d','0','2','0'),
('36508','20','get[1.3.6.1.2.1.1.2.0]','10442','System object ID','dell.server.objectid[sysObjectID]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe vendor\'s authoritative identification of the entity as part of the vendor\'s SMI enterprises subtree with the prefix 1.3.6.1.4.1 (e.g., a vendor with the identifier 1.3.6.1.4.1.4242 might assign a system object with the OID 1.3.6.1.4.1.4242.1.1).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','808a099b33c6438e8fd91a4f29c41f35','0','2','0'),
('36509','20','get[1.3.6.1.4.1.674.10892.5.2.1.0]','10442','Overall system health status','dell.server.status[globalSystemStatus]','1m','31d','0','0','3','','','','',NULL,'494','','','0','','','','','0',NULL,'MIB: IDRAC-MIB-SMIv2\r\nThis attribute defines the overall rollup status of all the components in the system monitored by the remote access card. Includes system, storage, IO devices, iDRAC, CPU, memory, etc.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','42be6e0b9fbe46179597650622a2241a','0','2','0'),
('36510','20','get[1.3.6.1.4.1.674.10892.5.1.3.6.0]','10442','Operating system','dell.server.sw.os[systemOSName]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: IDRAC-MIB-SMIv2\r\nThis attribute defines the name of the operating system that the host is running.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8d967ad6ac2b46c28072f713cd11b59f','0','2','0'),
('36512','17','','10442','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other `snmptrap` items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','074f6d9a11814bb7909d99664192421d','0','2','0'),
('36513','5','','10442','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'503','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b690c870c11c40ecbd162a01e82abbfe','0','2','0'),
('36541','20','get[1.3.6.1.2.1.1.4.0]','10443','System contact details','hp.server.contact[sysContact]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0747f8f3cc624f469324c127577aa9f9','0','2','0'),
('36542','20','get[1.3.6.1.2.1.1.1.0]','10443','System description','hp.server.descr[sysDescr]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cc714f5445be431192dbeb553f0aa5c5','0','2','0'),
('36543','20','get[1.3.6.1.4.1.232.2.2.4.2.0]','10443','Hardware model name','hp.server.hw.model[cpqSiProductName]','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: CPQSINFO-MIB\r\nThe machine product name. The name of the machine used in this system.','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bf4baaaa76dc4f39bd39c62742f03e26','0','2','0'),
('36544','20','get[1.3.6.1.4.1.232.2.2.2.1.0]','10443','Hardware serial number','hp.server.hw.serialnumber[cpqSiSysSerialNum]','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: CPQSINFO-MIB\r\nThe serial number of the physical system unit. The string will be empty if the system does not report the serial number function.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6d5e2b9ae30b4c43a91cada24c4cc240','0','2','0'),
('36545','20','get[1.3.6.1.2.1.1.6.0]','10443','System location','hp.server.location[sysLocation]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe physical location of this node (e.g., `telephone closet, 3rd floor\'). If the location is unknown, the value is the zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b85a86fa36bd484cbd36cd25d2a605f9','0','2','0'),
('36546','20','get[1.3.6.1.2.1.1.5.0]','10443','System name','hp.server.name[sysName]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3df8b71c3f14432e8cd43fbc24f12447','0','2','0'),
('36547','20','get[1.3.6.1.2.1.1.2.0]','10443','System object ID','hp.server.objectid[sysObjectID]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8573488eb0114109bc3c94f2edf00792','0','2','0'),
('36548','20','get[1.3.6.1.4.1.232.6.2.6.1.0]','10443','System temperature status','hp.server.sensor.temp.status[cpqHeThermalCondition]','1m','31d','0','0','3','','','','',NULL,'515','','','0','','','','','0',NULL,'MIB: CPQHLTH-MIB\r\nThis value specifies the overall condition of the system\'s thermal environment.\r\nThis value will be one of the following:\r\nother(1) Temperature could not be determined.\r\nok(2) The temperature sensor is within normal operating range.\r\ndegraded(3) The temperature sensor is outside of normal operating range.\r\nfailed(4) The temperature sensor detects a condition that could permanently damage the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3891df22d63d4be5a62c8a27ac9d8965','0','2','0'),
('36549','20','get[1.3.6.1.4.1.232.6.1.3.0]','10443','Overall system health status','hp.server.status[cpqHeMibCondition]','1m','31d','0','0','3','','','','',NULL,'515','','','0','','','','','0',NULL,'MIB: CPQHLTH-MIB\r\nThe overall condition. This object represents the overall status of the server information represented by this MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a8ea3fc6a5914a868be12f21342a9678','0','2','0'),
('36550','20','get[1.3.6.1.2.1.1.3.0]','10443','Uptime (network)','hp.server.net.uptime[sysUpTime]','1m','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe time (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','65ec5672f1de4852b1ee52ce57e4f58f','0','2','0'),
('36551','17','','10443','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','37dc9b6453184fe58435d12d422582d9','0','2','0'),
('36552','5','','10443','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'516','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d2e80ecf16bb49af99eb52a45b8c11cf','0','2','0'),
('36598','20','get[1.3.6.1.2.1.1.4.0]','10444','System contact details','hp.server.contact[sysContact]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1831d0a9399d4e41a0fd1dc392241640','0','2','0'),
('36599','20','get[1.3.6.1.2.1.1.1.0]','10444','System description','hp.server.descr[sysDescr]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','342a1fb4781d4f4fbafa7728f0c54d44','0','2','0'),
('36600','20','get[1.3.6.1.4.1.232.2.2.4.2.0]','10444','Hardware model name','hp.server.hw.model[cpqSiProductName]','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: CPQSINFO-MIB\r\nThe machine product name. The name of the machine used in this system.','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1b4a890c4d244ce7920193f2fcd34cd0','0','2','0'),
('36601','20','get[1.3.6.1.4.1.232.2.2.2.1.0]','10444','Hardware serial number','hp.server.hw.serialnumber[cpqSiSysSerialNum]','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: CPQSINFO-MIB\r\nThe serial number of the physical system unit. The string will be empty if the system does not report the serial number function.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e0da21845f8b49fd8c4471db20cf7a31','0','2','0'),
('36602','20','get[1.3.6.1.2.1.1.6.0]','10444','System location','hp.server.location[sysLocation]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe physical location of this node (e.g., `telephone closet, 3rd floor\'). If the location is unknown, the value is the zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fa3cec21b4a64ba9990bb2adaaba8a00','0','2','0'),
('36603','20','get[1.3.6.1.2.1.1.5.0]','10444','System name','hp.server.name[sysName]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','01bf2613057541b082320fa81b07636f','0','2','0'),
('36604','20','get[1.3.6.1.2.1.1.2.0]','10444','System object ID','hp.server.objectid[sysObjectID]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','abb51a946f5d4ee09895bef2e1df0fa6','0','2','0'),
('36605','20','get[1.3.6.1.4.1.232.6.2.6.1.0]','10444','System temperature status','hp.server.sensor.temp.status[cpqHeThermalCondition]','1m','31d','0','0','3','','','','',NULL,'528','','','0','','','','','0',NULL,'MIB: CPQHLTH-MIB\r\nThis value specifies the overall condition of the system\'s thermal environment.\r\nThis value will be one of the following:\r\nother(1) Temperature could not be determined.\r\nok(2) The temperature sensor is within normal operating range.\r\ndegraded(3) The temperature sensor is outside of normal operating range.\r\nfailed(4) The temperature sensor detects a condition that could permanently damage the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2a1af5ba5ee643c7b63e5eae10703e9c','0','2','0'),
('36606','20','get[1.3.6.1.4.1.232.6.1.3.0]','10444','Overall system health status','hp.server.status[cpqHeMibCondition]','1m','31d','0','0','3','','','','',NULL,'528','','','0','','','','','0',NULL,'MIB: CPQHLTH-MIB\r\nThe overall condition. This object represents the overall status of the server information represented by this MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4b05f7e3700440ee81cb38851c561a09','0','2','0'),
('36607','20','get[1.3.6.1.2.1.1.3.0]','10444','Uptime (network)','hp.server.net.uptime[sysUpTime]','1m','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe time (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','244691064ba54bf186a44219077fc804','0','2','0'),
('36608','17','','10444','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','356100e223784f398701839a2e74b6ff','0','2','0'),
('36609','5','','10444','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'529','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1924b196b0af4b0ba91519187bf22c78','0','2','0'),
('36655','20','get[1.3.6.1.2.1.1.4.0]','10445','System contact details','hp.server.contact[sysContact]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5f90d6150d544b13b659a4023ced96fc','0','2','0'),
('36656','20','get[1.3.6.1.2.1.1.1.0]','10445','System description','hp.server.descr[sysDescr]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2594044e5b6046c3944cc54744f7f133','0','2','0'),
('36657','20','get[1.3.6.1.4.1.232.2.2.4.2.0]','10445','Hardware model name','hp.server.hw.model[cpqSiProductName]','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: CPQSINFO-MIB\r\nThe machine product name. The name of the machine used in this system.','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2a807f6dd73e41418df98e294470ed67','0','2','0'),
('36658','20','get[1.3.6.1.4.1.232.2.2.2.1.0]','10445','Hardware serial number','hp.server.hw.serialnumber[cpqSiSysSerialNum]','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: CPQSINFO-MIB\r\nThe serial number of the physical system unit. The string will be empty if the system does not report the serial number function.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0aab370a165b42208ddc7e0ae693dabf','0','2','0'),
('36659','20','get[1.3.6.1.2.1.1.6.0]','10445','System location','hp.server.location[sysLocation]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe physical location of this node (e.g., `telephone closet, 3rd floor\'). If the location is unknown, the value is the zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','71486d7865174980a004d566e0a9e885','0','2','0'),
('36660','20','get[1.3.6.1.2.1.1.5.0]','10445','System name','hp.server.name[sysName]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2b0f62e1317c4900a7daee824cb360a3','0','2','0'),
('36661','20','get[1.3.6.1.2.1.1.2.0]','10445','System object ID','hp.server.objectid[sysObjectID]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b554640957a04d1fa2fc4bf91a0b81a2','0','2','0'),
('36662','20','get[1.3.6.1.4.1.232.6.2.6.1.0]','10445','System temperature status','hp.server.sensor.temp.status[cpqHeThermalCondition]','1m','31d','0','0','3','','','','',NULL,'541','','','0','','','','','0',NULL,'MIB: CPQHLTH-MIB\r\nThis value specifies the overall condition of the system\'s thermal environment.\r\nThis value will be one of the following:\r\nother(1) Temperature could not be determined.\r\nok(2) The temperature sensor is within normal operating range.\r\ndegraded(3) The temperature sensor is outside of normal operating range.\r\nfailed(4) The temperature sensor detects a condition that could permanently damage the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2c9f9d96d50442bd99d6c46db6970d3d','0','2','0'),
('36663','20','get[1.3.6.1.4.1.232.6.1.3.0]','10445','Overall system health status','hp.server.status[cpqHeMibCondition]','1m','31d','0','0','3','','','','',NULL,'541','','','0','','','','','0',NULL,'MIB: CPQHLTH-MIB\r\nThe overall condition. This object represents the overall status of the server information represented by this MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f61796d773b94de6b5177102cfb72005','0','2','0'),
('36664','20','get[1.3.6.1.2.1.1.3.0]','10445','Uptime (network)','hp.server.net.uptime[sysUpTime]','1m','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe time (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','361fa26e08284bbd822e17efde9a7856','0','2','0'),
('36665','17','','10445','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','730b5262f94c4643bbcc4feb59b614da','0','2','0'),
('36666','5','','10445','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'542','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cb8fe041c0344b8f807a61a0d53344de','0','2','0'),
('36712','20','get[1.3.6.1.2.1.1.4.0]','10446','System contact details','hp.server.contact[sysContact]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','19ed955aeefa493883a151ddb550b8ff','0','2','0'),
('36713','20','get[1.3.6.1.2.1.1.1.0]','10446','System description','hp.server.descr[sysDescr]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7b9fc7a143c74d1b812d14413c1f53b0','0','2','0'),
('36714','20','get[1.3.6.1.4.1.232.2.2.4.2.0]','10446','Hardware model name','hp.server.hw.model[cpqSiProductName]','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: CPQSINFO-MIB\r\nThe machine product name. The name of the machine used in this system.','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d2cad986747643658bee67492d90d106','0','2','0'),
('36715','20','get[1.3.6.1.4.1.232.2.2.2.1.0]','10446','Hardware serial number','hp.server.hw.serialnumber[cpqSiSysSerialNum]','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: CPQSINFO-MIB\r\nThe serial number of the physical system unit. The string will be empty if the system does not report the serial number function.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6cdacf190c584227b822fee9c112b849','0','2','0'),
('36716','20','get[1.3.6.1.2.1.1.6.0]','10446','System location','hp.server.location[sysLocation]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe physical location of this node (e.g., `telephone closet, 3rd floor\'). If the location is unknown, the value is the zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','622dd9bef33b4db7bf5899a6f6ccb7b3','0','2','0'),
('36717','20','get[1.3.6.1.2.1.1.5.0]','10446','System name','hp.server.name[sysName]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2726dcd682d340b681f5dfa8d1e3ef07','0','2','0'),
('36718','20','get[1.3.6.1.2.1.1.2.0]','10446','System object ID','hp.server.objectid[sysObjectID]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1394f5cfccb64c53abd8cff0f095906f','0','2','0'),
('36719','20','get[1.3.6.1.4.1.232.6.2.6.1.0]','10446','System temperature status','hp.server.sensor.temp.status[cpqHeThermalCondition]','1m','31d','0','0','3','','','','',NULL,'554','','','0','','','','','0',NULL,'MIB: CPQHLTH-MIB\r\nThis value specifies the overall condition of the system\'s thermal environment.\r\nThis value will be one of the following:\r\nother(1) Temperature could not be determined.\r\nok(2) The temperature sensor is within normal operating range.\r\ndegraded(3) The temperature sensor is outside of normal operating range.\r\nfailed(4) The temperature sensor detects a condition that could permanently damage the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','09930c5b67d44de49bedfe7465697d40','0','2','0'),
('36720','20','get[1.3.6.1.4.1.232.6.1.3.0]','10446','Overall system health status','hp.server.status[cpqHeMibCondition]','1m','31d','0','0','3','','','','',NULL,'554','','','0','','','','','0',NULL,'MIB: CPQHLTH-MIB\r\nThe overall condition. This object represents the overall status of the server information represented by this MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e980a83b24bd4bdb9d2b7369d41c9aea','0','2','0'),
('36721','20','get[1.3.6.1.2.1.1.3.0]','10446','Uptime (network)','hp.server.net.uptime[sysUpTime]','1m','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe time (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5576766f3a004fd3894ff22da515aedc','0','2','0'),
('36722','17','','10446','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1170728f4f534d19acfa001d1b00dcc4','0','2','0'),
('36723','5','','10446','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'555','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','53bf83d6a797436da2d1d8498410a113','0','2','0'),
('36772','19','','10447','Get builds','travis.get_builds','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Getting builds using Travis API.','0','30d','0','',NULL,'','https://{$TRAVIS.API.URL}/builds','[{"limit":"0"}]','','200','1','0','','Travis-API-Version: 3\r\nAuthorization: token {$TRAVIS.API.TOKEN}','0','0','0','0','0','0','0','08466cd6902441299856cba3ce601510','0','2','0'),
('36773','19','','10447','Get health','travis.get_health','1m','31d','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Getting home JSON using Travis API.','0','30d','0','',NULL,'','https://{$TRAVIS.API.URL}/','','','200','1','0','','Travis-API-Version: 3\r\nAuthorization: token {$TRAVIS.API.TOKEN}','0','0','0','0','0','0','0','997172d503c54798800d01c613aca92a','0','2','0'),
('36774','19','','10447','Get jobs','travis.get_jobs','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Getting jobs using Travis API.','0','30d','0','',NULL,'','https://{$TRAVIS.API.URL}/jobs','','','200','1','0','','Travis-API-Version: 3\r\nAuthorization: token {$TRAVIS.API.TOKEN}','0','0','0','0','0','0','0','5a01061d1f3d48f8ad0beb4d32e2168d','0','2','0'),
('36775','19','','10447','Get repos','travis.get_repos','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Getting repos using Travis API.','0','30d','0','',NULL,'','https://{$TRAVIS.API.URL}/repos','[{"limit":"0"}]','','200','1','0','','Travis-API-Version: 3\r\nAuthorization: token {$TRAVIS.API.TOKEN}','0','0','0','0','0','0','0','5212bfa6de6c4a17b98a80012f617eea','0','2','0'),
('36795','19','','10448','Get instance metrics','influx.get_metrics','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','{$INFLUXDB.URL}/metrics','','','200','1','0','','','0','0','0','0','0','0','0','286bb866060e47948c02408ebc841f1f','0','2','0'),
('36796','19','','10448','Instance status','influx.healthcheck','1m','31d','365d','0','3','','','','',NULL,'556','','','0','','','','','0',NULL,'Get the health of an instance.','0','30d','0','',NULL,'','{$INFLUXDB.URL}/health','','','200','1','0','','','0','0','0','0','0','0','0','f8f514943c9040d7b41f14db92ca6c91','0','2','0'),
('36822','20','get[1.3.6.1.4.1.3375.2.1.14.1.1.0]','10419','Sync Status','bigip.syncstatus','1m','31d','365d','0','3','','','','',NULL,'560','','','0','','','','','0',NULL,'MIB: F5-BIGIP-SYSTEM-MIB\r\nThe sync status ID on the system.\r\nunknown - the device is disconnected from the device group;\r\nsyncing - the device is joining the device group or has requested changes from device group or inconsistent with the group;\r\nneedManualSync - changes have been made on the device not syncd to the device group;\r\ninSync - the device is consistent with the device group;\r\nsyncFailed - the device is inconsistent with the device group, requires user intervention;\r\nsyncDisconnected - the device is not connected to any peers;\r\nstandalone - the device is in a standalone configuration;\r\nawaitingInitialSync - the device is waiting for initial sync;\r\nincompatibleVersion - the device\'s version is incompatible with rest of the devices in the device group;\r\npartialSync - some but not all devices successfully received the last sync.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','46bf5611d32340fdb9129966cca2c5da','0','2','0'),
('36823','20','get[1.3.6.1.4.1.3375.2.1.14.3.1.0]','10419','Failover status','bigip.failover','1m','31d','365d','0','3','','','','',NULL,'559','','','0','','','','','0',NULL,'MIB: F5-BIGIP-SYSTEM-MIB\r\nThe failover status ID on the system.\r\nunknown - the failover status of the device is unknown;\r\noffline - the device is offline;\r\nforcedOffline - the device is forced offline;\r\nstandby - the device is standby;\r\nactive - the device is active.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0f7ecc11f860443582eb6dbe64b2bbb6','0','2','0'),
('36847','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10449','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4367659d4f49400aa0a4674c74ad00b8','0','2','0'),
('36848','20','get[1.3.6.1.2.1.1.1.0]','10449','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3d375341d2a140679973c46fe7281dd5','0','2','0'),
('36849','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10449','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b1233463a69346b68d538f1c43aa467d','0','2','0'),
('36850','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10449','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f9d30c789f16452d89ee417a2aee11f1','0','2','0'),
('36851','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10449','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5546cedfd50648d2a893b6ea59fd7453','0','2','0'),
('36852','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10449','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5a78d97bd5f14a6b97873a3abe41db20','0','2','0'),
('36853','15','','10449','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','dc5f8ec0557c4e9980f2224e150e89e7','0','2','0'),
('36901','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10450','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cdf7d11d3d47482ca5dad14596256025','0','2','0'),
('36902','20','get[1.3.6.1.2.1.1.1.0]','10450','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ad2df2ad5b4d4bac8da4a24e2c082ad1','0','2','0'),
('36903','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10450','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d55015e95d2e4eebb72168b5311f7512','0','2','0'),
('36904','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10450','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6004aeb9600c42b5a74155f06cdf8af0','0','2','0'),
('36905','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10450','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cef294e9c4874526a093935ac3f093b6','0','2','0'),
('36906','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10450','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3b3a0def1cf740f496bbd345de5ed605','0','2','0'),
('36907','15','','10450','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d7dadc80881a4d3c9be8f1b660232c03','0','2','0'),
('36955','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10451','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','701b0e5e1b0d4f6199836c12bbeb23fb','0','2','0'),
('36956','20','get[1.3.6.1.2.1.1.1.0]','10451','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3172eba914574fd894cd4ab3c1295ed7','0','2','0'),
('36957','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10451','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c5ade5b11ba84948ba84c0f975c6cbbe','0','2','0'),
('36958','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10451','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6f1cabbfe9b84535b77ba2d7b32706fc','0','2','0'),
('36959','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10451','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','aef1126fc6354f5083ce2b35d03aaa3c','0','2','0'),
('36960','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10451','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f3f71753cbe14516929027f5f7c39380','0','2','0'),
('36961','15','','10451','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bde1da2443a3415296281c5259bc0b10','0','2','0'),
('37009','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10452','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','929df02b3b7a462f949c948d655d2f77','0','2','0'),
('37010','20','get[1.3.6.1.2.1.1.1.0]','10452','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9e85d395c80b4db8868d5bccf64edfaa','0','2','0'),
('37011','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10452','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','14b7fb61e1e64fbd900fd376ee087a40','0','2','0'),
('37012','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10452','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6cd07fdee09249c092abbee25f526c9a','0','2','0'),
('37013','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10452','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e6db19f9ea46407dac1744adc4caa945','0','2','0'),
('37014','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10452','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d05360006eb148a6a66f157513bfe26f','0','2','0'),
('37015','15','','10452','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1ccd49102df74a0da7bc068ef3e6c81c','0','2','0'),
('37063','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10453','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9bb0cd6e869b4e00800c2893b4cf43bf','0','2','0'),
('37064','20','get[1.3.6.1.2.1.1.1.0]','10453','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6d2bed107e30443ea44f3c3cd61f7cf5','0','2','0'),
('37065','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10453','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','460078d3884e4927818a3015dc36ec17','0','2','0'),
('37066','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10453','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c71d909522214671afd2b636aa54a06d','0','2','0'),
('37067','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10453','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1077bedb2f1b48509ec5a4f299aac7cf','0','2','0'),
('37068','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10453','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b24d15e975cd4423a4ef27008ee5fda1','0','2','0'),
('37069','15','','10453','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3ea0ffecf896435284e268758203272d','0','2','0'),
('37117','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10454','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3b45bf2cd74b496e8882ef8421f3075f','0','2','0'),
('37118','20','get[1.3.6.1.2.1.1.1.0]','10454','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','11cf922dd6534e9faad83972f43021f0','0','2','0'),
('37119','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10454','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','87694d7f0a6742c5922fc3f1d3c4c950','0','2','0'),
('37120','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10454','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4118b55b18df44798e3593e7c4ab1dd7','0','2','0'),
('37121','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10454','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9c918b9f51a14b5aabe9bf662d459a45','0','2','0'),
('37122','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10454','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4664580c7f80415a8813dfac83c3f616','0','2','0'),
('37123','15','','10454','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','635ee2092ff64314910c0612fc33ee6c','0','2','0'),
('37171','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10455','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9316b737e8174862b0ce60ad10dca68b','0','2','0'),
('37172','20','get[1.3.6.1.2.1.1.1.0]','10455','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c758cdb68e854cedbb9fc53d361c878b','0','2','0'),
('37173','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10455','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b04e3b3b91294e3b9a5968e475166473','0','2','0'),
('37174','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10455','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d0d399bd9e7e4aca86de1b4aa23cfa0c','0','2','0'),
('37175','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10455','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8be77fd4f4704108aedd5ab35a212172','0','2','0'),
('37176','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10455','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b8102bbf381c4a6e9d759e3ae3902616','0','2','0'),
('37177','15','','10455','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','383e2e5544ef439199784bcf81cced10','0','2','0'),
('37225','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10456','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a808f02d217e4b338fbd5d8f52474d7d','0','2','0'),
('37226','20','get[1.3.6.1.2.1.1.1.0]','10456','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','721918724f3f47189db3d73a51eed73e','0','2','0'),
('37227','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10456','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','028dcc2c59f34754b646c0a07e6e4709','0','2','0'),
('37228','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10456','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5f186d66075841689596629ffecd1d45','0','2','0'),
('37229','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10456','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','19a2d0e30b0c4123899147a6230863cf','0','2','0'),
('37230','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10456','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8b64d82e4b7b46a28cc88b1fc6c772d8','0','2','0'),
('37231','15','','10456','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a1a1e9109bb24cefb67b397dc94d3ed9','0','2','0'),
('37279','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10457','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e565515e2bfe469db344bd78bdfcba74','0','2','0'),
('37280','20','get[1.3.6.1.2.1.1.1.0]','10457','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2ef71aac4f8b462cb4103327331c359c','0','2','0'),
('37281','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10457','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5d766873d7ee41ddad6d90199c1e8a38','0','2','0'),
('37282','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10457','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','56f7e706b7f84fdf827f5a14fb3bdc7c','0','2','0'),
('37283','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10457','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','818712f7986b40e8a3ce3994f43199ea','0','2','0'),
('37284','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10457','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0b3849a88cf9436284dea73e86f70405','0','2','0'),
('37285','15','','10457','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','deb60e7c19b74431aed7b6c26fb7616b','0','2','0'),
('37333','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10458','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e06462712e7c45f296fa8dc0c53871d0','0','2','0'),
('37334','20','get[1.3.6.1.2.1.1.1.0]','10458','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b1a6e11a8ba64f9e9270db35847b3421','0','2','0'),
('37335','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10458','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0fa99ad0d0744f24ab49ad9be423b3d4','0','2','0'),
('37336','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10458','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','00ed6d0e4cd84395a74a5015e3440877','0','2','0'),
('37337','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10458','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f7c0ee962f1c4fab9262181dd9dee211','0','2','0'),
('37338','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10458','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d3c3ff16e7dd4d2e811e72cb0279a827','0','2','0'),
('37339','15','','10458','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ee81aaa76f1d40a898ba48e0dde79d13','0','2','0'),
('37387','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10459','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b74cbfd6dbc84c0c916402c81fb11fe9','0','2','0'),
('37388','20','get[1.3.6.1.2.1.1.1.0]','10459','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3c8159ac8de24685be689387f69e0e20','0','2','0'),
('37389','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10459','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cc917e510e004211be5fc624b071fc95','0','2','0'),
('37390','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10459','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4776598588384d30ac472ec39df3ef25','0','2','0'),
('37391','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10459','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0260f825e71e419da953e2f6285318bc','0','2','0'),
('37392','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10459','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','49b860cd17af4bed904651fbe620d533','0','2','0'),
('37393','15','','10459','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4a339ee32bc047a790562e1d17c4f733','0','2','0'),
('37441','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10460','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9f94a0e5d26b401d84ca8a58b8121f2e','0','2','0'),
('37442','20','get[1.3.6.1.2.1.1.1.0]','10460','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','be05eb6603df4b2b974319c0b90dd543','0','2','0'),
('37443','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10460','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c147284d49cb43b3950a28de281cf4a0','0','2','0'),
('37444','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10460','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1da1f71f2dfd4c9ca450217a07068872','0','2','0'),
('37445','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10460','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4b1df0f8bebc443398bdb240a7a30db5','0','2','0'),
('37446','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10460','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','370e2a4ed66f4cc8ba31abdcff08598f','0','2','0'),
('37447','15','','10460','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8fef22e8a7e0484b8e4ca48b66b322a1','0','2','0'),
('37495','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10461','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1a2326a0d3884a679d05e4430f24f9cd','0','2','0'),
('37496','20','get[1.3.6.1.2.1.1.1.0]','10461','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2c11a09561a447949a86bbb75b9b7b08','0','2','0'),
('37497','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10461','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8d750b95502a462dbca47ff6aacd24da','0','2','0'),
('37498','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10461','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4f4d1445451a41758afc06ba2a287805','0','2','0'),
('37499','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10461','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','af7785e1221c4c458a333189d70208a2','0','2','0'),
('37500','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10461','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ecb4ad0744b04ad9a9e650012e394e6b','0','2','0'),
('37501','15','','10461','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2a8f4c7d1c52496093779c4a70e01668','0','2','0'),
('37549','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10462','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','af43dfeeeb7c4f2ea7636e3409e70f1f','0','2','0'),
('37550','20','get[1.3.6.1.2.1.1.1.0]','10462','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','74bfb7d4834a499a8946c8275012ee76','0','2','0'),
('37551','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10462','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','13fa6f235afa4f968f9de61b0727dced','0','2','0'),
('37552','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10462','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b6e1b6013d3b41c68b4a0cc85bb539d6','0','2','0'),
('37553','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10462','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','53c2b19776d14395832025f398d613eb','0','2','0'),
('37554','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10462','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','644de67163d14fe384128d7a89780d09','0','2','0'),
('37555','15','','10462','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9b69a0a71c2a410783d8275a732b800a','0','2','0'),
('37603','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10463','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5c3719bbbd424403b78d73824fdb45aa','0','2','0'),
('37604','20','get[1.3.6.1.2.1.1.1.0]','10463','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','35142b0597a348838f0f77cf7c11266f','0','2','0'),
('37605','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10463','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0a2b5f7921d74498bb1761e5bb773dec','0','2','0'),
('37606','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10463','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c98293d0ebe844d390474d48a937d0fc','0','2','0'),
('37607','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10463','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','545eb326fcd94bbcafd561824f1759db','0','2','0'),
('37608','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10463','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8a6c7605ff3d45c092dff46fdc9fa1f8','0','2','0'),
('37609','15','','10463','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8b8c952075db4ac6884cb0b352a75496','0','2','0'),
('37657','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10464','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','23de7a030b324ae2bee4fa96d6a724da','0','2','0'),
('37658','20','get[1.3.6.1.2.1.1.1.0]','10464','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c41bb4d7171b44aca3656092aa2b12b8','0','2','0'),
('37659','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10464','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','de134343b324455c9e17396c75aac869','0','2','0'),
('37660','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10464','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','709a68530d314d448fbf9f9339af594f','0','2','0'),
('37661','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10464','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d80810c2936846d9b037f5e9d00eb6f6','0','2','0'),
('37662','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10464','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','82807a05026644379df67c28026b9696','0','2','0'),
('37663','15','','10464','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7bfd8141f2d34548a16f73ff7bb665eb','0','2','0'),
('37711','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10465','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2fc0c608418046d0bbfc371f5f8d8c22','0','2','0'),
('37712','20','get[1.3.6.1.2.1.1.1.0]','10465','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6a3ca4bce4da4e8eb6a15a2dcf51bce1','0','2','0'),
('37713','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10465','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','589cacbe509547bf944f7c8e3a518c7d','0','2','0'),
('37714','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10465','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','31fb56c30de1477bbe69306c2b9e3d69','0','2','0'),
('37715','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10465','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cb66968d87fe41a2ad4c5cb769849be4','0','2','0'),
('37716','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10465','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','62b4597135824686b5de3cd51fcd46f4','0','2','0'),
('37717','15','','10465','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','414bec3767eb49c39bd67a135f60ba02','0','2','0'),
('37765','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10466','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','86226852333f4573b461e7283ae93c8a','0','2','0'),
('37766','20','get[1.3.6.1.2.1.1.1.0]','10466','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cf0cd44044154f0097685ac4da1e0f6b','0','2','0'),
('37767','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10466','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3ec9f238ffa643c28011036ece349c2e','0','2','0'),
('37768','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10466','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8ebce52c1fe045ef9e774aefb3359667','0','2','0'),
('37769','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10466','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1ca1d02815cb46dba0b2b27de86cd1d4','0','2','0'),
('37770','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10466','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','891105963e744b8283682a5e4520347b','0','2','0'),
('37771','15','','10466','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b78b6b52884148f6b925e99b418f1838','0','2','0'),
('37819','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10467','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a90c400056634a4b8e1befa2b5868e1c','0','2','0'),
('37820','20','get[1.3.6.1.2.1.1.1.0]','10467','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d1a55ccf0dd640439c149672d9f86c11','0','2','0'),
('37821','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10467','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4ab55ba9cf82449a8b683ded8c691a11','0','2','0'),
('37822','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10467','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','dcb3f5f1561543959e170e62e61f1457','0','2','0'),
('37823','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10467','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4cf79d752ffe4eeeb80db78bd1f39813','0','2','0'),
('37824','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10467','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4682ebaf961d4782b7447de52646dfd4','0','2','0'),
('37825','15','','10467','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','805237bf56894386acfc37c7f38ad907','0','2','0'),
('37873','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10468','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a66560b690d544ef8fc657812a602157','0','2','0'),
('37874','20','get[1.3.6.1.2.1.1.1.0]','10468','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c8239bb961ee453da2885a8abef9be34','0','2','0'),
('37875','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10468','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','df405f764813407eb03d6f7a6308c5cc','0','2','0'),
('37876','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10468','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','55775fa17c604dddb86c7644556830e6','0','2','0'),
('37877','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10468','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','14aff8f369f9440aac2110a4a52e7eb5','0','2','0'),
('37878','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10468','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cbe45fbc0f9e4b1a94966ccb859463ae','0','2','0'),
('37879','15','','10468','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','03626c0f7cf24394b47f24a1af36dcd0','0','2','0'),
('37927','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10469','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7befae11c37c415c821465a2b923d901','0','2','0'),
('37928','20','get[1.3.6.1.2.1.1.1.0]','10469','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f533de2af2824b30a43995499f5ec467','0','2','0'),
('37929','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10469','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4cb71c3fa0aa4ca8aa4c2c03a017a28a','0','2','0'),
('37930','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10469','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1e0024446d5f4696919f3a246dda3868','0','2','0'),
('37931','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10469','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','06bdef85cb3849819a6fa43dfcdf7ba1','0','2','0'),
('37932','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10469','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','05b7592dca7744e39bbea87e73b6062c','0','2','0'),
('37933','15','','10469','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f39b87bfab3347b1bc016a35aa58f1be','0','2','0'),
('37981','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10470','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d2ae97a860254ce8935a939ad715d583','0','2','0'),
('37982','20','get[1.3.6.1.2.1.1.1.0]','10470','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bad88a688384478b841c24f935d5c3a1','0','2','0'),
('37983','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10470','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','dd694bbf5faf4c7a8a30d5ffd817b678','0','2','0'),
('37984','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10470','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2906c09ebcc34c908a6ab8530804b67f','0','2','0'),
('37985','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10470','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6417f5bc08084fa29f2dab421c5093fd','0','2','0'),
('37986','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10470','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','01618781ca974f5e8b1bf58b65092038','0','2','0'),
('37987','15','','10470','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ffee597574084c638b668fb11a735962','0','2','0'),
('38035','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10471','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8da4bc75729549f8ba60c5edd47f1419','0','2','0'),
('38036','20','get[1.3.6.1.2.1.1.1.0]','10471','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','05352d9bfb6d48b682c4d5e23ff28daf','0','2','0'),
('38037','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10471','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','19bfda7a644b462880226d790eebd154','0','2','0'),
('38038','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10471','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','aca36fae2c2f4856a8cacf7348a31b54','0','2','0'),
('38039','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10471','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2ee29a6f60eb45fdb1193283ed54e7bc','0','2','0'),
('38040','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10471','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','aef42cabe6cb4c8dbb0c6cea532c6a3f','0','2','0'),
('38041','15','','10471','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0012d55c993c43f4b620e282a9799cd8','0','2','0'),
('38089','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10472','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b6b5e17543b54d32a6efac05a346717b','0','2','0'),
('38090','20','get[1.3.6.1.2.1.1.1.0]','10472','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','da7d1bace5b84ec59f2a669c090c3b1f','0','2','0'),
('38091','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10472','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','903370300c154ba09796eaca48f5e54f','0','2','0'),
('38092','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10472','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','823e2b2060f64bed86d2a99d5e1487c5','0','2','0'),
('38093','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10472','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ef5f00c33dea46b59b756eda8bb62f26','0','2','0'),
('38094','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10472','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','da09619f39da49d59cf0125b45d567a6','0','2','0'),
('38095','15','','10472','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ec6c40e7c02c49efbb7116bc6917b42b','0','2','0'),
('38143','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10473','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8ac79dd0cff146c9ae018a8ba626f9e7','0','2','0'),
('38144','20','get[1.3.6.1.2.1.1.1.0]','10473','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8b6f433b2de14edcb0efb036c562b090','0','2','0'),
('38145','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10473','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','484e12b0d4a24d19b9edfd300cfef958','0','2','0'),
('38146','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10473','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9c810b41d48243668158812fdfdea4f7','0','2','0'),
('38147','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10473','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b34dda68e02640f88df173b7eeab267f','0','2','0'),
('38148','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10473','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','561afbad2b3d4d20a3fbe9753abd8623','0','2','0'),
('38149','15','','10473','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f605ea1480d947b3bad4d1592c215643','0','2','0'),
('38197','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10474','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a4b55762b7ad446fa5c213883b8eebd2','0','2','0'),
('38198','20','get[1.3.6.1.2.1.1.1.0]','10474','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f5c605a329274039883a04e6993d1e22','0','2','0'),
('38199','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10474','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1d0da69b54a24b938cc1e9b37163dca3','0','2','0'),
('38200','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10474','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8fe83ecd500341999fc23e74d61dcf6b','0','2','0'),
('38201','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10474','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f79fd8f841404f88aa130513c8264e27','0','2','0'),
('38202','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10474','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','05cfdd5f009843a3a2b80939fb6f773d','0','2','0'),
('38203','15','','10474','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','26765cfd258e46d18c3d085c170c1004','0','2','0'),
('38251','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10475','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1b876d8c8ea3422a82e4b571853bee64','0','2','0'),
('38252','20','get[1.3.6.1.2.1.1.1.0]','10475','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ecb890a4585f47989973617ca4fcce42','0','2','0'),
('38253','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10475','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c283b3b41d074d9596145d97f33d132b','0','2','0'),
('38254','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10475','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f2e20d27ca50462c88220e91f24b11c8','0','2','0'),
('38255','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10475','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9c917c649b6e4a849283c5cd8c9f3c93','0','2','0'),
('38256','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10475','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','357a2467154c4dd283f76b9cdbdff62e','0','2','0'),
('38257','15','','10475','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e5e85e7c2e0440cb90dcff96deffd559','0','2','0'),
('38305','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10476','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e24fe19f052f4901aeb9feab8199e461','0','2','0'),
('38306','20','get[1.3.6.1.2.1.1.1.0]','10476','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f054bfb710c14307ade4081fb441e840','0','2','0'),
('38307','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10476','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','941a740a1dcc40cf88dd56039f26cf92','0','2','0'),
('38308','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10476','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','73fd8a7f00b2442c8d5bfab913d8eff9','0','2','0'),
('38309','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10476','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','011ea07e21a24cd1a4b42149ffe128db','0','2','0'),
('38310','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10476','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','902a71cc5c094a62a2a7f735d07643cf','0','2','0'),
('38311','15','','10476','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4ae4d4e6fe0d4bf290f96e1d430f2655','0','2','0'),
('38359','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10477','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','397dce267b79414fb563dc2f184d2930','0','2','0'),
('38360','20','get[1.3.6.1.2.1.1.1.0]','10477','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cc3d781f3ba64faa9914d34a4d450fd6','0','2','0'),
('38361','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10477','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d611ea9fbcff489e9175dcb6f0ffe2d1','0','2','0'),
('38362','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10477','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4257226c6b90413baaa7a2b8beeb3c01','0','2','0'),
('38363','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10477','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b319b01c532f453aa0b39c6cac9c06e8','0','2','0'),
('38364','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10477','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7522d72e76254a60b59fc2c67590701a','0','2','0'),
('38365','15','','10477','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4b9d180956ca4f17abc9c232856f1a78','0','2','0'),
('38413','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10478','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ac47dac361224d288e4455e9a689d690','0','2','0'),
('38414','20','get[1.3.6.1.2.1.1.1.0]','10478','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','01ef36b50b394e4bb9670abd48a05369','0','2','0'),
('38415','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10478','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2321d2d106f6432a9de5b5a633315e5e','0','2','0'),
('38416','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10478','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ae9626b78f3e4e89842fb82592e2f520','0','2','0'),
('38417','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10478','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4972cad8ac8f44d8a3d01278d602b21d','0','2','0'),
('38418','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10478','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a66e0f5458094b13bbdb7c9193b334e5','0','2','0'),
('38419','15','','10478','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5c095d3737054b68a32f491e34f4ab32','0','2','0'),
('38467','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10479','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c7582351ce394433b50aef17cc01b5b2','0','2','0'),
('38468','20','get[1.3.6.1.2.1.1.1.0]','10479','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9e5fac593cf94a9d973ba8b604e1dfd2','0','2','0'),
('38469','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10479','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f5531013912c4ed68e6b0b4d89165803','0','2','0'),
('38470','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10479','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','86323c3d935642f980f158e5868f35e0','0','2','0'),
('38471','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10479','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3ab4fc5c9fba4e098977500051a8ac98','0','2','0'),
('38472','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10479','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','df10ebd3cfa44fe6838889ff81e8cab0','0','2','0'),
('38473','15','','10479','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','132ff52c4648491c9743bcf11b680236','0','2','0'),
('38521','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10480','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','079bddb94e6d427b9b4232ba4da15b53','0','2','0'),
('38522','20','get[1.3.6.1.2.1.1.1.0]','10480','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c787c308e66348c2a2041c612ef70513','0','2','0'),
('38523','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10480','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','87b44381d4154c34bb1de1d8e56bc0f9','0','2','0'),
('38524','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10480','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3a8bf0dd575f4718a87c007408f98a80','0','2','0'),
('38525','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10480','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f5291559b3da497ba0cb9d7d36f531aa','0','2','0'),
('38526','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10480','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','40578c7f19bd4d2b9045abb2ccdd247f','0','2','0'),
('38527','15','','10480','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f076a1ed65f340579771f6f9c6f5d724','0','2','0'),
('38575','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10481','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0647d4e175d8467ca7f7579f92c56b82','0','2','0'),
('38576','20','get[1.3.6.1.2.1.1.1.0]','10481','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1237d193c49a4110bce86971e3c142f1','0','2','0'),
('38577','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10481','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2e56609d113d4e7ab304ac20c4debb97','0','2','0'),
('38578','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10481','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3013805399d449c9ac4469b1310504db','0','2','0'),
('38579','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10481','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2d7199ec103340b280154f08de8699f6','0','2','0'),
('38580','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10481','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','54c72d743ada42dcaa0c39e9493517f8','0','2','0'),
('38581','15','','10481','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9aa6bb105738415e8971772cdb9273cc','0','2','0'),
('38629','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10482','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f44c0f3952034baab2a7051ef835ad6a','0','2','0'),
('38630','20','get[1.3.6.1.2.1.1.1.0]','10482','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d1826b39b0004104bb5e81b3c6a5e944','0','2','0'),
('38631','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10482','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ddd2fc89869f4feca6141ed16d6cfe1c','0','2','0'),
('38632','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10482','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2e106a43efd24438adb62bec628e2176','0','2','0'),
('38633','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10482','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3067b57e3dd841959b11a972903b8f35','0','2','0'),
('38634','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10482','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','981a289b960f4df19cc0e2728618bb3e','0','2','0'),
('38635','15','','10482','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','477247613d5546bc95b4d2b7e1695743','0','2','0'),
('38683','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10483','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fea2d45d484c40d5bbd0a63bbcf32f38','0','2','0'),
('38684','20','get[1.3.6.1.2.1.1.1.0]','10483','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','21aa5025c29a45d4ac5961d07f03f5ca','0','2','0'),
('38685','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10483','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e2160944535143e5a9768b9dc1041bb9','0','2','0'),
('38686','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10483','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c1b8a435332a4608a833703409c3844e','0','2','0'),
('38687','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10483','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0f96c2050b2d407d9355406ff3ba57da','0','2','0'),
('38688','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10483','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a4ba4c5b3c2e48b08231bd8f1ca9acf1','0','2','0'),
('38689','15','','10483','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0b6a0a9ba8c5454594c7b6dff8b32963','0','2','0'),
('38737','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10484','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3442b390250b480f887e1311b369c54e','0','2','0'),
('38738','20','get[1.3.6.1.2.1.1.1.0]','10484','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3f580252fdf44bd4a1172a73ea1b681f','0','2','0'),
('38739','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10484','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','737a739207f142e292cbce0d6f7208d5','0','2','0'),
('38740','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10484','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b9fc7b36a3394404be56c55176b20e39','0','2','0'),
('38741','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10484','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','73ce1c102e3a4d4885438c16eff34ddf','0','2','0'),
('38742','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10484','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9e2ee7cca26b49d3990b832eda44ee2a','0','2','0'),
('38743','15','','10484','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7b1572625e04447eb308be35061921f2','0','2','0'),
('38791','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10485','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1dfd38ddc91a4e70980734a4cfcc38e0','0','2','0'),
('38792','20','get[1.3.6.1.2.1.1.1.0]','10485','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e85420056601495aa0b7da67042a941a','0','2','0'),
('38793','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10485','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4b177e4109404eebaa6674b8fc36953b','0','2','0'),
('38794','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10485','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','54cf84706fad45a2af8d42f928108c4d','0','2','0'),
('38795','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10485','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','21c6ba2b92674bec82e2d438bcfc9bc0','0','2','0'),
('38796','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10485','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','23d7f8ca24e44c41a92fefa63b41e176','0','2','0'),
('38797','15','','10485','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3008075b5b134c3db792e591ae7ca316','0','2','0'),
('38845','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10486','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','df95ed3cd37c4460bf643d9c1ec30cae','0','2','0'),
('38846','20','get[1.3.6.1.2.1.1.1.0]','10486','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5e688e8e57d84ec79f78cad69914ea96','0','2','0'),
('38847','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10486','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a4028eb828784fef80489e16e3d78659','0','2','0'),
('38848','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10486','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7c089e6fa1464c92ae25265351e46c61','0','2','0'),
('38849','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10486','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','796e3dc988dd43ff8a7ea11a8eeac257','0','2','0'),
('38850','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10486','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','456b72f5cd6d4a64871345d150068244','0','2','0'),
('38851','15','','10486','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5e68cf8cdbed4517a7b6828be1cc4aab','0','2','0'),
('38899','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10487','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fce13abb920940cdb20cdf70f2e94d90','0','2','0'),
('38900','20','get[1.3.6.1.2.1.1.1.0]','10487','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','45bdf887a0a3433cbb77a9ce792f2fec','0','2','0'),
('38901','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10487','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2f862ca4d6854c9bb56c46303cb5fd0a','0','2','0'),
('38902','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10487','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','71a6d0a5cfd94c14b97af236ce4fc1c9','0','2','0'),
('38903','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10487','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','54b4475f0bfb4c02b1f4fc68d4288bb7','0','2','0'),
('38904','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10487','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2e60d597dcc94824bea105b5e51e5d06','0','2','0'),
('38905','15','','10487','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','700227d0426b44ee87a5f33ef5b5b29e','0','2','0'),
('38953','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10488','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cb60ed419a0e4d43bd63fda86f86c12a','0','2','0'),
('38954','20','get[1.3.6.1.2.1.1.1.0]','10488','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ba01d10fe2254462b4c2eabaa6cf9d6c','0','2','0'),
('38955','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10488','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fc5c04dc408f47708d69d04e51f25d7c','0','2','0'),
('38956','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10488','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6bc59bf95f73427eaea0c59598d0deb3','0','2','0'),
('38957','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10488','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4b0e4a132da94cd4b20e1f4ab4428405','0','2','0'),
('38958','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10488','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','501e0023828440498faed0e1214efe1c','0','2','0'),
('38959','15','','10488','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3ddbf0f659724782a930dd42154eb64a','0','2','0'),
('39007','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10489','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ed51e55b8fa64c5599399fc93d81d329','0','2','0'),
('39008','20','get[1.3.6.1.2.1.1.1.0]','10489','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','692ccc1f29fe4f15ae7ca0bee54bf6b6','0','2','0'),
('39009','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10489','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0645ecb1a28040d9b89af280ca3093ea','0','2','0'),
('39010','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10489','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','551f25631a13497b924c1b285b93ee5f','0','2','0'),
('39011','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10489','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c077abb2ecc84c88b2173bff8e9ab9aa','0','2','0'),
('39012','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10489','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4029907022564beeb405c065ae4febff','0','2','0'),
('39013','15','','10489','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5521e149584846118dcb280496b3aca4','0','2','0'),
('39061','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10490','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','df5bf48843cd4981bf719769b3194a3d','0','2','0'),
('39062','20','get[1.3.6.1.2.1.1.1.0]','10490','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','50100a89b236431d9ba7e4f2352fa2b9','0','2','0'),
('39063','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10490','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','65a753ce87934f75aa719e3e59f76dbd','0','2','0'),
('39064','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10490','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b5a74fe98a7948a9b189953b457b2975','0','2','0'),
('39065','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10490','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','806938d083e848b4b84b2c222c4f4d2e','0','2','0'),
('39066','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10490','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0d4cc61a9f8c44f385606bc8394eaeb4','0','2','0'),
('39067','15','','10490','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','836ba120a51d4c659c034e3a94003c0f','0','2','0'),
('39115','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10491','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1f05547dfa4146bd837288c6cfb0b0e4','0','2','0'),
('39116','20','get[1.3.6.1.2.1.1.1.0]','10491','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','286376d7fb9e4fa9a608d7494b500f4f','0','2','0'),
('39117','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10491','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ad481c4efe304683ac539107a121b10a','0','2','0'),
('39118','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10491','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','111bd5c32550427682bb0e683754fda9','0','2','0'),
('39119','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10491','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1b352f84778349c78422b9d4c648d05b','0','2','0'),
('39120','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10491','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f3f37d9595244448ab98704c49678800','0','2','0'),
('39121','15','','10491','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','10858c87568841f688e9b0b7e43811dd','0','2','0'),
('39169','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10492','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','354b56e7cce646c8b143434af11ebd1a','0','2','0'),
('39170','20','get[1.3.6.1.2.1.1.1.0]','10492','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3da25a0046ac4f2c9ec35d3ac9db9ae7','0','2','0'),
('39171','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10492','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a935a058a7644773b40d0cfbaae218e2','0','2','0'),
('39172','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10492','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','14e1297549d74f48be28bdfe70746600','0','2','0'),
('39173','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10492','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b0a11ac957ff4b91b2d032ca2e97fd86','0','2','0'),
('39174','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10492','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3702de756584423b93730807b797a1db','0','2','0'),
('39175','15','','10492','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5e58d0e859a94279b4e52aa4b16d3702','0','2','0'),
('39223','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10493','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e98ee47f44a24acab59bf6d10a1f6612','0','2','0'),
('39224','20','get[1.3.6.1.2.1.1.1.0]','10493','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','176f7b3c6e4848c79f0f0f99021c644f','0','2','0'),
('39225','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10493','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fffcae15a44d4165af9f293a4dfc3134','0','2','0'),
('39226','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10493','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a46b0c33e93840e182208a099e6206df','0','2','0'),
('39227','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10493','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4255253ed78749d597385af02b95c8fe','0','2','0'),
('39228','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10493','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fb1cd4666b1d4ee48141c77a7b9f07db','0','2','0'),
('39229','15','','10493','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','430682c60e8644baa65bcfa66dcd1b37','0','2','0'),
('39277','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10494','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2031dfc697c244c59e036a0b166772e2','0','2','0'),
('39278','20','get[1.3.6.1.2.1.1.1.0]','10494','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6b8b9d12f8d449a5be35d89d8c68719d','0','2','0'),
('39279','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10494','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','20e6d99fff5943ff85c2beedb0b292f3','0','2','0'),
('39280','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10494','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2b704d1b595b4fe5aec1f855ff6574ea','0','2','0'),
('39281','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10494','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','aa54b9f3cf6746b897c07e7f3eac3c1f','0','2','0'),
('39282','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10494','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b5a826e18b2941aeb1f3e091928225e0','0','2','0'),
('39283','15','','10494','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','767414861593473896fb39004ea488d4','0','2','0'),
('39331','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10495','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f9085ebffffa4e2abca0aa7c0e50599f','0','2','0'),
('39332','20','get[1.3.6.1.2.1.1.1.0]','10495','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3d8a9da605f74a9089b49def0f6a4bff','0','2','0'),
('39333','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10495','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e35a6c46c241466a9d96f1017bf3b467','0','2','0'),
('39334','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10495','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c25789ed5a2e40b090016c759c5a96cc','0','2','0'),
('39335','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10495','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c45124bc11da4ebebf0dc1a9cd7c261e','0','2','0'),
('39336','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10495','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','45ec9416e047428b8c535f95985bb61d','0','2','0'),
('39337','15','','10495','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d7aa64e64e534b1e9dbd65dd2bdda819','0','2','0'),
('39385','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10496','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3521c975bbb443b1b66ec32ea561745f','0','2','0'),
('39386','20','get[1.3.6.1.2.1.1.1.0]','10496','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6178d9f5c5e947fe8e3fb774cc5a373a','0','2','0'),
('39387','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10496','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c449cc37420643ee8493419bde54aac6','0','2','0'),
('39388','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10496','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','65da6e280942476e842effb8a08e2c6f','0','2','0'),
('39389','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10496','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b4ce328c64a2471e98a1f608028797d5','0','2','0'),
('39390','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10496','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9a7746065ea84c8da33740d3552c7073','0','2','0'),
('39391','15','','10496','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d294f3fa005b4c90a82fbc3fd5037fb7','0','2','0'),
('39439','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10497','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','dd3b07cbd6d74fec88e1d371846b48a4','0','2','0'),
('39440','20','get[1.3.6.1.2.1.1.1.0]','10497','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ea51e70e43e24056b25309ce0fa8f9d8','0','2','0'),
('39441','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10497','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a577dbe3cfde4294ab93e0ab114c24c7','0','2','0'),
('39442','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10497','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','34a57dc1a4f54f7ea156fa5c7b5f61de','0','2','0'),
('39443','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10497','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4d8039dcceb344dcb4de5c4895a4e199','0','2','0'),
('39444','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10497','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','664555ffcf5e48039bdcf98bf79247ef','0','2','0'),
('39445','15','','10497','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8aa0e7e65d12468e9fdf4e2faebd3450','0','2','0'),
('39493','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10498','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c15fe701615f41809cdb9440e308339c','0','2','0'),
('39494','20','get[1.3.6.1.2.1.1.1.0]','10498','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','10cecca7315d4732badc194787d6e58f','0','2','0'),
('39495','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10498','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ab2590092f894a1c97787d5edb470b65','0','2','0'),
('39496','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10498','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0c40e8e1ccca4418b9bfc22a84c08b4e','0','2','0'),
('39497','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10498','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','93743e909ba5414294005084cb83fc93','0','2','0'),
('39498','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10498','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','039d0c2fe2224a57b77def7dd4dd2cfd','0','2','0'),
('39499','15','','10498','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bdb11b0d08184bd188276b7559286e65','0','2','0'),
('39547','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10499','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7154ef6b0f0b4d4a99fdf1d7ec8b2262','0','2','0'),
('39548','20','get[1.3.6.1.2.1.1.1.0]','10499','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0e326a00dadf46928949a2270a4e7619','0','2','0'),
('39549','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10499','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','17dd769754ca4559b53b191baa8ac571','0','2','0'),
('39550','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10499','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7df965b410944b07a5effd80fc3e5514','0','2','0'),
('39551','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10499','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3698fb3739a8435da6e40f4c2245b78e','0','2','0'),
('39552','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10499','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b15a14a08a06417a9ca3586754a3c968','0','2','0'),
('39553','15','','10499','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ac044f3cfc33483db97ef1daecaafd6e','0','2','0'),
('39601','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10500','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c3a06a34c55c42c89d9158ac8e735564','0','2','0'),
('39602','20','get[1.3.6.1.2.1.1.1.0]','10500','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','350020213bbd4ca59fad42e8347abd67','0','2','0'),
('39603','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10500','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3540413716f141329c4ffadb402a051d','0','2','0'),
('39604','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10500','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d8413ee1e46846fabbc3f7239d74df02','0','2','0'),
('39605','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10500','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d80ed64a5916414091a72caf33d650ee','0','2','0'),
('39606','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10500','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bd680110f05848aaa2754da8d00f60e4','0','2','0'),
('39607','15','','10500','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1a8c279dc19c4944804d27e0e6f7b5b3','0','2','0'),
('39655','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10501','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','166760a906dd4377a9b548a4809da3fd','0','2','0'),
('39656','20','get[1.3.6.1.2.1.1.1.0]','10501','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fd26be143fce4e5bb10c61899b518eb2','0','2','0'),
('39657','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10501','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','17f7aa01b647470382387fa9698bb80d','0','2','0'),
('39658','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10501','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6f2ceb1729884e39a364207defb39b96','0','2','0'),
('39659','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10501','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','efdb24ce66d8410cae4a932160c12bf2','0','2','0'),
('39660','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10501','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3d359d909fef46ec96fd6f66a7be6d3b','0','2','0'),
('39661','15','','10501','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ca6584d0bc71410bb93a7c295e6993b3','0','2','0'),
('39709','20','get[1.3.6.1.4.1.14988.1.1.7.4.0]','10502','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nCurrent firmware version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bece431938dc48d79221aae1c14bb118','0','2','0'),
('39710','20','get[1.3.6.1.2.1.1.1.0]','10502','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d25a80f7bc97479690fcb07d44462606','0','2','0'),
('39711','20','get[1.3.6.1.4.1.14988.1.1.7.3.0]','10502','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nRouterBOARD serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e9b1a9ee39334a7e986ca5fa85baea41','0','2','0'),
('39712','20','get[1.3.6.1.4.1.14988.1.1.4.4.0]','10502','Operating system','system.sw.os[mtxrLicVersion.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nSoftware version.','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8a2568f84b394419b6f8ede2872dc3f1','0','2','0'),
('39713','20','get[1.3.6.1.2.1.25.2.3.1.5.65536]','10502','Total memory','vm.memory.total[hrStorageSize.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe size of the storage represented by this entry, in\r\nunits of hrStorageAllocationUnits. This object is\r\nwritable to allow remote configuration of the size of\r\nthe storage area in those cases where such an\r\noperation makes sense and is possible on the\r\nunderlying system. For example, the amount of main\r\nmemory allocated to a buffer pool might be modified or\r\nthe amount of disk space allocated to virtual memory\r\nmight be modified.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2a897066661b413fb7d0f6ae795a8b78','0','2','0'),
('39714','20','get[1.3.6.1.2.1.25.2.3.1.6.65536]','10502','Used memory','vm.memory.used[hrStorageUsed.Memory]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','194e39cf188e40ba88b4c1f41b01b0c9','0','2','0'),
('39715','15','','10502','Memory utilization','vm.memory.util[memoryUsedPercentage.Memory]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0d8527333e0a4f509b9fe0699577b081','0','2','0'),
('39742','19','','10503','System properties','velocloud.system.properties','6h','31d','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'System properties of VMware SD-WAN.','0','30d','0','',NULL,'','https://{$VELOCLOUD.URL}/portal/rest/systemProperty/getSystemProperties','','{ "normalize": true }','200','1','0','','Content-Type: application/json\r\nAuthorization: Token {$VELOCLOUD.TOKEN}','0','1','0','0','0','0','0','1206789df5b44af7ba1c5416662344dd','0','2','0'),
('39743','21','','10503','Get data','velocloud.get','1m','0','0','0','4','','','','',NULL,NULL,'var params = JSON.parse(value);\r\n\r\nvar request = new HttpRequest();\r\n\r\nrequest.addHeader(\'Content-Type: application/json\');\r\nrequest.addHeader(\'Authorization: Token \' + params.token);\r\n\r\nvar response,\r\n error_msg = \'\',\r\n enterprises = [],\r\n edges = [],\r\n links = [],\r\n gateways = [],\r\n version = [];\r\n\r\nfunction getHttpData(url, body) {\r\n response = request.post(url, body);\r\n Zabbix.log(4, \'[ SD-WAN API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from SD-WAN API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n if (request.getStatus() !== 200) {\r\n if (response.error && response.error.message) {\r\n throw response.error.message;\r\n } else {\r\n throw \'Failed to receive data: invalid response status code.\';\r\n }\r\n }\r\n\r\n if (typeof (response) !== \'object\' || response === null) {\r\n throw \'Cannot process response data: received data is not an object.\';\r\n }\r\n\r\n return response;\r\n};\r\n\r\ntry {\r\n\r\n if (params.token === \'{\' + \'$VELOCLOUD.TOKEN}\') {\r\n throw \'Please change {\' + \'$VELOCLOUD.TOKEN} macro with the proper value.\';\r\n }\r\n\r\n if (params.url.indexOf(\'http://\') === -1 && params.url.indexOf(\'https://\') === -1) {\r\n params.url = \'https://\' + params.url;\r\n }\r\n\r\n if (!params.url.endsWith(\'/\')) {\r\n params.url += \'/\';\r\n }\r\n\r\n enterprises = getHttpData(params.url + \'portal/rest/monitoring/getAggregates\', \'{}\').enterprises;\r\n\r\n if (!Array.isArray(enterprises)) {\r\n throw \'Cannot process edges: enterprises is not an array.\';\r\n }\r\n\r\n links = getHttpData(params.url + \'portal/rest/monitoring/getAggregateEdgeLinkMetrics\', \'{}\');\r\n gateways = getHttpData(params.url + \'portal/rest/network/getNetworkGateways\', JSON.stringify({ with: [\'site\'] }));\r\n version = getHttpData(params.url + \'portal/rest/system/getVersionInfo\', \'{}\');\r\n\r\n for (var i in enterprises) {\r\n responseEdges = getHttpData(params.url + \'portal/rest/enterprise/getEnterpriseEdges\', JSON.stringify({ enterpriseId: enterprises[i].id, with: [\'site\'] }));\r\n edges = edges.concat(responseEdges);\r\n }\r\n\r\n} catch (error) {\r\n error_msg = error;\r\n};\r\n\r\nreturn JSON.stringify({\r\n \'enterprises\': enterprises,\r\n \'edges\': edges,\r\n \'links\': links,\r\n \'gateways\': gateways,\r\n \'info\': version,\r\n \'error\': error_msg.toString()\r\n});','','0','','','','','0',NULL,'The JSON with result of Velocloud API requests.','0','30d','0','',NULL,'10s','','','','200','1','0','','','0','0','0','0','0','0','0','3d96f6e755934bc8a4ee7300a165adae','0','2','0'),
('39804','5','','10047','Zabbix stats cluster','zabbix[cluster,discovery,nodes]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The master item of Zabbix cluster statistics.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f9d60d6dcbe14cd4aaec08aec6ca1856','0','2','0'),
('39822','5','','10047','Utilization of ODBC poller data collector processes, in %','zabbix[process,odbc poller,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the ODBC poller processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f8d593ff5690419f8679a5b8303f3a66','0','2','0'),
('39826','5','','10048','Utilization of ODBC poller data collector processes, in %','zabbix[process,odbc poller,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the ODBC poller processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','06bdbdcfdbc04c24ad387b256e430801','0','2','0'),
('39827','19','','10504','Get API instance metrics','kubernetes.api.get_metrics','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Get raw metrics from API instance /metrics endpoint.','0','30d','0','',NULL,'15s','{$KUBE.API.SERVER.URL}','','','200','1','0','','Authorization: Bearer {$KUBE.API.TOKEN}','0','0','0','0','0','0','0','e4e3c570a55a48689c145c4a2310c597','0','2','0'),
('39876','19','','10505','Kubernetes Controller: Get Controller metrics','kubernetes.controller.get_metrics','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Get raw metrics from Controller instance /metrics endpoint.','0','30d','0','',NULL,'15s','{$KUBE.CONTROLLER.SERVER.URL}','','','200','1','0','','Authorization: Bearer {$KUBE.API.TOKEN}','0','0','0','0','0','0','0','c684929ea8444a6aa24f1fb80812a6eb','0','2','0'),
('39905','19','','10506','Get cadvisor metrics','kube.cadvisor.metrics','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Collecting raw Kubelet metrics from /metrics/cadvisor endpoint.','0','30d','0','',NULL,'10s','{$KUBE.KUBELET.URL}{$KUBE.KUBELET.CADVISOR.ENDPOINT}','','','200, 403','1','0','','Authorization: Bearer {$KUBE.API.TOKEN}','0','0','0','0','0','0','0','1f94bbb521cb41dfa093e1408efbb15a','0','2','0'),
('39906','19','','10506','Get kubelet metrics','kube.kubelet.metrics','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Collecting raw Kubelet metrics from /metrics endpoint.','0','30d','0','',NULL,'10s','{$KUBE.KUBELET.URL}{$KUBE.KUBELET.METRIC.ENDPOINT}','','','200, 403','1','0','','Authorization: Bearer {$KUBE.API.TOKEN}','0','0','0','0','0','0','0','c71fc79a77104ef4a0d6b89d5f7b7bad','0','2','0'),
('39907','19','','10506','Get pods','kube.pods','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Collecting raw Kubelet metrics from /pods endpoint.','0','30d','0','',NULL,'10s','{$KUBE.KUBELET.URL}{$KUBE.KUBELET.PODS.ENDPOINT}','','','200, 403','1','0','','Authorization: Bearer {$KUBE.API.TOKEN}','0','0','0','0','0','0','0','7c8cc6c3ed8e412eb69e7ab8e2fe7e12','0','2','0'),
('39937','21','','10507','Get nodes','kube.nodes','0;s00','0','0','0','4','','','','',NULL,NULL,'var Kube = {\r\n params: {},\r\n pods_limit: 1000,\r\n\r\n setParams: function (params) {\r\n [\'api_token\', \'api_url\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\'\r\n || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n });\r\n [\'endpoint_name\', \'pod_filter_labels\', \'pod_filter_annotations\', \'node_filter_labels\', \'node_filter_annotations\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\') {\r\n throw \'Parameter can be empty but not removed: "\' + field + \'".\';\r\n }\r\n });\r\n\r\n Kube.params = params;\r\n if (typeof Kube.params.api_url === \'string\' && !Kube.params.api_url.endsWith(\'/\')) {\r\n Kube.params.api_url += \'/\';\r\n }\r\n },\r\n\r\n apiRequest: function (query) {\r\n var request = new HttpRequest(),\r\n response,\r\n url = encodeURI(Kube.params.api_url + query);\r\n if (typeof Kube.params.http_proxy !== \'undefined\' && Kube.params.http_proxy !== \'\') {\r\n request.setProxy(Kube.params.http_proxy);\r\n }\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Authorization: Bearer \' + Kube.params.api_token);\r\n\r\n if (Kube.params.http_proxy) {\r\n Zabbix.log(4, \'[ Kubernetes ] Using http proxy: \' + Kube.params.http_proxy);\r\n }\r\n response = request.get(url);\r\n\r\n Zabbix.log(4, \'[ Kubernetes ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from Kubernetes API. Check debug log for more information.\';\r\n }\r\n return response;\r\n },\r\n\r\n parseFilters: function (csv) {\r\n if (!csv)\r\n return [];\r\n\r\n var filters = [];\r\n const filterCapture = /([!\\w\\-\\.\\/]+)\\s*:\\s*(.*)/;\r\n const onComma = /\\s*,\\s*/;\r\n\r\n csv.split(onComma).forEach(function (kv) {\r\n var match = kv.match(filterCapture);\r\n if (!match) {\r\n Zabbix.log(3, \'Cannot parse filter from: "\' + kv + \'"\');\r\n return;\r\n }\r\n\r\n filters.push({ key: match[1], expression: match[2] });\r\n });\r\n\r\n return filters;\r\n },\r\n\r\n filter: function (name, data, filters) {\r\n if (typeof data !== \'object\') {\r\n return true;\r\n }\r\n\r\n return filters.every(function (filter) {\r\n const filter_key = filter.key.startsWith(\'!\') ? filter.key.substring(1) : filter.key;\r\n\r\n if (!(filter_key in data)) {\r\n return true;\r\n }\r\n\r\n const isExcludingFilter = filter.key.startsWith(\'!\');\r\n const isMatchForFilter = new RegExp(filter.expression).test(data[filter_key]);\r\n\r\n if ((isExcludingFilter && isMatchForFilter) ||\r\n (!isExcludingFilter && !isMatchForFilter)) {\r\n Zabbix.log(4, \'[ Kubernetes ] Discarded "\' + name + \'" by filter "\' + filter.key + \': \' + filter.expression + \'"\');\r\n return false;\r\n }\r\n\r\n return true;\r\n });\r\n },\r\n\r\n getField: function (data, path) {\r\n var steps = path.split(\'.\');\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n\r\n data = data[step];\r\n }\r\n\r\n return data;\r\n },\r\n\r\n getNodes: function () {\r\n var result = Kube.apiRequest(\'api/v1/nodes\'),\r\n output = [],\r\n filterNodeLabels = Kube.parseFilters(Kube.params.node_filter_labels),\r\n filterNodeAnnotations = Kube.parseFilters(Kube.params.node_filter_annotations);\r\n if (typeof result !== \'object\'\r\n || typeof result.items === \'undefined\') {\r\n throw \'Cannot get nodes from Kubernetes API. Check debug log for more information.\';\r\n }\r\n\r\n result.items.forEach(function (filternode) {\r\n if (Kube.filter(Kube.getField(filternode, \'metadata.name\'), Kube.getField(filternode, \'metadata.labels\'), filterNodeLabels)\r\n && Kube.filter(Kube.getField(filternode, \'metadata.name\'), Kube.getField(filternode, \'metadata.annotations\'), filterNodeAnnotations)) {\r\n Zabbix.log(4, \'[ Kubernetes ] Filtered node "\' + filternode.metadata.name + \'"\');\r\n\r\n output.push({\r\n filternode\r\n });\r\n }\r\n });\r\n\r\n return output;\r\n },\r\n\r\n getPods: function () {\r\n var result = [],\r\n continue_token,\r\n Pods = [];\r\n\r\n while (continue_token !== \'\') {\r\n var data = Kube.apiRequest(\'api/v1/pods?limit=\' + Kube.pods_limit\r\n + ((typeof continue_token !== \'undefined\') ? \'&continue=\' + continue_token : \'\'));\r\n\r\n if (typeof data !== \'object\'\r\n || typeof data.items === \'undefined\') {\r\n throw \'Cannot get pods from Kubernetes API. Check debug log for more information.\';\r\n };\r\n\r\n result.push.apply(result, data.items);\r\n continue_token = data.metadata.continue || \'\';\r\n }\r\n result.forEach(function (pod) {\r\n\r\n var containers = {\r\n limits: { cpu: 0, memory: 0 },\r\n requests: { cpu: 0, memory: 0 },\r\n restartCount: 0\r\n },\r\n containerStatuses = [{ restartCount: 0 }];\r\n\r\n if (typeof pod.status.hostIP === \'object\'\r\n || typeof pod.status.hostIP === \'undefined\') {\r\n pod.status.hostIP = \'none\';\r\n };\r\n\r\n Kube.getField(pod, \'spec.containers\').forEach(function (container) {\r\n var limits = container.resources.limits,\r\n requests = container.resources.requests;\r\n\r\n if (typeof limits !== \'undefined\') {\r\n containers.limits.cpu += Fmt.cpuFormat(limits.cpu);\r\n containers.limits.memory += Fmt.memoryFormat(limits.memory);\r\n }\r\n\r\n if (typeof requests !== \'undefined\') {\r\n containers.requests.cpu += Fmt.cpuFormat(requests.cpu);\r\n containers.requests.memory += Fmt.memoryFormat(requests.memory);\r\n }\r\n });\r\n\r\n if (typeof pod.status.containerStatuses !== \'object\'\r\n || typeof pod.status.containerStatuses === \'undefined\') {\r\n pod.status.containerStatuses = containerStatuses;\r\n };\r\n pod.status.containerStatuses.forEach(function (container) {\r\n containers.restartCount += container.restartCount;\r\n\r\n });\r\n\r\n Pods.push({\r\n \'name\': pod.metadata.name,\r\n \'nodeIP\': pod.status.hostIP,\r\n \'namespace\': pod.metadata.namespace,\r\n \'labels\': pod.metadata.labels,\r\n \'annotations\': pod.metadata.annotations,\r\n \'phase\': pod.status.phase,\r\n \'conditions\': pod.status.conditions,\r\n \'startTime\': pod.status.startTime,\r\n \'containers\': containers,\r\n \'hostname\': \'none\'\r\n })\r\n });\r\n return Pods;\r\n },\r\n\r\n getEndpointIPs: function () {\r\n var endpoints = Kube.apiRequest(\'api/v1/endpoints\'),\r\n endpointIPs = [];\r\n if (typeof endpoints !== \'object\'\r\n || typeof endpoints.items === \'undefined\') {\r\n throw \'Cannot get endpoints from Kubernetes API. Check debug log for more information.\';\r\n };\r\n\r\n endpoints.items.forEach(function (ep) {\r\n if (Kube.getField(ep, \'metadata.name\') !== Kube.params.endpoint_name) {\r\n return;\r\n }\r\n if (!Array.isArray(ep.subsets)) {\r\n return;\r\n }\r\n endpointIPs = ep.subsets;\r\n\r\n });\r\n return endpointIPs;\r\n }\r\n},\r\n\r\n Fmt = {\r\n factors: {\r\n Ki: 1024, K: 1000,\r\n Mi: 1024 ** 2, M: 1000 ** 2,\r\n Gi: 1024 ** 3, G: 1000 ** 3,\r\n Ti: 1024 ** 4, T: 1000 ** 4,\r\n },\r\n\r\n cpuFormat: function (cpu) {\r\n if (typeof cpu === \'undefined\') {\r\n return 0;\r\n }\r\n\r\n if (cpu.indexOf(\'m\') > -1) {\r\n return parseInt(cpu) / 1000;\r\n }\r\n\r\n return parseInt(cpu);\r\n },\r\n\r\n memoryFormat: function (mem) {\r\n if (typeof mem === \'undefined\') {\r\n return 0;\r\n }\r\n\r\n var pair,\r\n factor;\r\n\r\n if (pair = mem.match(/(\\d+)(\\w*)/)) {\r\n if (factor = Fmt.factors[pair[2]]) {\r\n return parseInt(pair[1]) * factor;\r\n }\r\n\r\n return mem;\r\n }\r\n\r\n return parseInt(mem);\r\n }\r\n\r\n }\r\n\r\ntry {\r\n Kube.setParams(JSON.parse(value));\r\n\r\n var nodes = Kube.getNodes(),\r\n pods = Kube.getPods(),\r\n Pods = [],\r\n hostname = Kube.params.api_url.match(/https?:\\/\\/([\\w.-]+|\\[[a-f0-9:]+\\]|[^a-zA-Z:]+)(?::\\d+)?/),\r\n filterPodLabels = Kube.parseFilters(Kube.params.pod_filter_labels),\r\n filterPodAnnotations = Kube.parseFilters(Kube.params.pod_filter_annotations),\r\n endpointIPs = Kube.getEndpointIPs();\r\n if (typeof hostname[1] === \'undefined\') {\r\n Zabbix.log(4, \'[ Kubernetes ] Received incorrect Kubernetes API url: \' + api_url + \'. Expected format: ://:\');\r\n throw \'Cannot get hostname from Kubernetes API url. Check debug log for more information.\';\r\n };\r\n for (idx in nodes) {\r\n var nodePodsCount = 0,\r\n endpointpod = [],\r\n roles = [];\r\n Object.keys(nodes[idx].filternode.metadata.labels).forEach(function (label) {\r\n var splitLabel = label.match(/^node-role.kubernetes.io\\/([\\w\\.-]+)/);\r\n\r\n if (splitLabel) {\r\n roles.push(splitLabel[1]);\r\n }\r\n });\r\n var internalIPs = Kube.getField(nodes[idx].filternode, \'status.addresses\').filter(function (addr) {\r\n return addr.type === \'InternalIP\';\r\n });\r\n var internalIP = internalIPs.length && internalIPs[0].address;\r\n\r\n var Hostname = Kube.getField(nodes[idx].filternode, \'status.addresses\').filter(function (addr) {\r\n return addr.type === \'Hostname\';\r\n });\r\n var Hostname = Hostname.length && Hostname[0].address;\r\n\r\n pods.forEach(function (pod) {\r\n if (pod.nodeIP !== internalIP) {\r\n return;\r\n }\r\n nodePodsCount++;\r\n pod.hostname = Hostname;\r\n Pods = pods.filter(function (f) {\r\n return (f.hostname !== \'none\' || f.phase === \'Pending\') && (\r\n Kube.filter(f.name, f.labels, filterPodLabels)\r\n && Kube.filter(f.name, f.annotations, filterPodAnnotations)\r\n );\r\n }\r\n )\r\n });\r\n\r\n endpointIPs.forEach(function (agent) {\r\n for (k in Kube.getField(agent, \'addresses\')) {\r\n if (Kube.getField(agent.addresses[k], \'ip\') === internalIP) {\r\n endpointpod = Kube.getField(agent.addresses[k], \'targetRef.name\')\r\n }\r\n for (k in agent.notReadyAddresses) {\r\n if (agent.notReadyAddresses[k].ip === internalIP) {\r\n endpointpod = \'notReadyAddresses\'\r\n }\r\n }\r\n\r\n }\r\n });\r\n\r\n delete nodes[idx].filternode.metadata.managedFields;\r\n delete nodes[idx].filternode.status.images;\r\n nodes[idx].filternode.status.capacity.cpu = Fmt.cpuFormat(nodes[idx].filternode.status.capacity.cpu);\r\n nodes[idx].filternode.status.capacity.memory = Fmt.memoryFormat(nodes[idx].filternode.status.capacity.memory);\r\n nodes[idx].filternode.status.allocatable.cpu = Fmt.cpuFormat(nodes[idx].filternode.status.allocatable.cpu);\r\n nodes[idx].filternode.status.allocatable.memory = Fmt.memoryFormat(nodes[idx].filternode.status.allocatable.memory);\r\n nodes[idx].filternode.status.podsCount = nodePodsCount;\r\n nodes[idx].filternode.status.roles = roles.join(\', \');\r\n nodes[idx].filternode.status.agent = endpointpod;\r\n nodes[idx].filternode.internalIP = internalIP;\r\n nodes[idx].filternode.clusterhostname = hostname[1];\r\n\r\n }\r\n\r\n return JSON.stringify({ nodes, Pods });\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ Kubernetes ] ERROR: \' + error);\r\n return JSON.stringify({ error: error });\r\n}','','0','','','','','0',NULL,'Collecting and processing cluster nodes data via Kubernetes API.','0','30d','0','',NULL,'10s','','','','200','1','0','','','0','0','0','0','0','0','0','70dab03a327a4dc0ab9fe8031052584d','0','2','0'),
('39978','19','','10509','Get Scheduler metrics','kubernetes.scheduler.get_metrics','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Get raw metrics from Scheduler instance /metrics endpoint.','0','30d','0','',NULL,'15s','{$KUBE.SCHEDULER.SERVER.URL}','','','200','1','0','','Authorization: Bearer {$KUBE.API.TOKEN}','0','0','0','0','0','0','0','2534eacdaf9b44d68388b366da40af59','0','2','0'),
('40010','19','','10510','Get component statuses','kube.componentstatuses','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'10s','{$KUBE.API.URL}{$KUBE.API.COMPONENTSTATUSES.ENDPOINT}','','','200, 403','1','0','','Authorization: Bearer {$KUBE.API.TOKEN}','0','0','0','0','0','0','0','41c79d9286734cc3b0e3aa5ef729e5fe','0','2','0'),
('40011','21','','10510','Control plane LLD','kube.control_plane.lld','1m','0','0','0','4','','','','',NULL,NULL,'var Kube = {\r\n params: {},\r\n\r\n setParams: function (params) {\r\n [\'api_token\', \'api_url\', \'api_server_scheme\', \'api_server_port\', \'controller_scheme\', \'controller_port\',\r\n \'scheduler_scheme\', \'scheduler_port\', \'control_plane_taint\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\'\r\n || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n });\r\n\r\n Kube.params = params;\r\n if (typeof Kube.params.api_url === \'string\' && !Kube.params.api_url.endsWith(\'/\')) {\r\n Kube.params.api_url += \'/\';\r\n }\r\n },\r\n\r\n apiRequest: function (query) {\r\n var request = new HttpRequest(),\r\n response,\r\n url = encodeURI(Kube.params.api_url + query);\r\n if (typeof Kube.params.http_proxy !== \'undefined\' && Kube.params.http_proxy !== \'\') {\r\n request.setProxy(Kube.params.http_proxy);\r\n }\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Authorization: Bearer \' + Kube.params.api_token);\r\n\r\n Zabbix.log(4, \'[ Kubernetes ] Sending request: \' + url);\r\n\r\n if (Kube.params.http_proxy) {\r\n Zabbix.log(4, \'[ Kubernetes ] Using http proxy: \' + Kube.params.http_proxy);\r\n }\r\n\r\n response = request.get(url);\r\n\r\n Zabbix.log(4, \'[ Kubernetes ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from Kubernetes API. Check debug log for more information.\';\r\n }\r\n return response;\r\n },\r\n\r\n getField: function (data, path) {\r\n var steps = path.split(\'.\');\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n\r\n data = data[step];\r\n }\r\n\r\n return data;\r\n },\r\n\r\n getNodes: function () {\r\n var result = Kube.apiRequest(\'api/v1/nodes?labelSelector=\' + Kube.params.control_plane_taint);\r\n\r\n if (typeof result !== \'object\'\r\n || typeof result.items === \'undefined\') {\r\n throw \'Cannot get control plane nodes from Kubernetes API. Check debug log for more information.\';\r\n };\r\n\r\n var nodes = result.items,\r\n IPv4 = /(?:\\d{1,3}\\.){3}\\d{1,3}/,\r\n controlPlaneNodes = [],\r\n hostname = Kube.params.api_url.match(/https?:\\/\\/([\\w.-]+|\\[[a-f0-9:]+\\]|[^a-zA-Z:]+)(?::\\d+)?/);\r\n\r\n if (typeof hostname[1] === \'undefined\') {\r\n Zabbix.log(4, \'[ Kubernetes ] Received incorrect Kubernetes API url: \' + api_url + \'. Expected format: ://:\');\r\n throw \'Cannot get hostname from Kubernetes API url. Check debug log for more information.\';\r\n };\r\n\r\n controlPlaneNodes = nodes.map(function (node) {\r\n var internalIPs = Kube.getField(node, \'status.addresses\').filter(function (addr) {\r\n return addr.type === \'InternalIP\';\r\n });\r\n var internalIP = internalIPs.length && internalIPs[0].address;\r\n\r\n return {\r\n \'{#NAME}\': Kube.getField(node, \'metadata.name\'),\r\n \'{#IP}\': internalIP,\r\n \'{#KUBE.API.SERVER.URL}\': Kube.params.api_server_scheme + \'://\' + (IPv4.test(internalIP) ? internalIP : \'[\' + internalIP + \']\') + \':\' + Kube.params.api_server_port + \'/metrics\',\r\n \'{#KUBE.CONTROLLER.SERVER.URL}\': Kube.params.controller_scheme + \'://\' + (IPv4.test(internalIP) ? internalIP : \'[\' + internalIP + \']\') + \':\' + Kube.params.controller_port + \'/metrics\',\r\n \'{#KUBE.SCHEDULER.SERVER.URL}\': Kube.params.scheduler_scheme + \'://\' + (IPv4.test(internalIP) ? internalIP : \'[\' + internalIP + \']\') + \':\' + Kube.params.scheduler_port + \'/metrics\',\r\n \'{#COMPONENT.API}\': \'API\',\r\n \'{#COMPONENT.CONTROLLER}\': \'Controller manager\',\r\n \'{#COMPONENT.SCHEDULER}\': \'Scheduler\',\r\n \'{#CLUSTER_HOSTNAME}\': hostname[1]\r\n };\r\n });\r\n\r\n return JSON.stringify(controlPlaneNodes);\r\n }\r\n};\r\n\r\ntry {\r\n Kube.setParams(JSON.parse(value));\r\n return Kube.getNodes();\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ Kubernetes ] ERROR: \' + error);\r\n return JSON.stringify({ error: error });\r\n}','','0','','','','','0',NULL,'Generation of data for Control plane discovery rules.','0','30d','0','',NULL,'10s','','','','200','1','0','','','0','0','0','0','0','0','0','e40b126a0cf64ce6bfed3b3de1d4dfa8','0','2','0'),
('40012','19','','10510','Get livez','kube.livez','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'10s','{$KUBE.API.URL}{$KUBE.API.LIVEZ.ENDPOINT}?verbose','','','200, 403','1','0','','Authorization: Bearer {$KUBE.API.TOKEN}','0','0','0','0','0','0','0','d731fb05f0284921ab3548ba631f019c','0','2','0'),
('40013','19','','10510','Get readyz','kube.readyz','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'10s','{$KUBE.API.URL}{$KUBE.API.READYZ.ENDPOINT}?verbose','','','200, 403','1','0','','Authorization: Bearer {$KUBE.API.TOKEN}','0','0','0','0','0','0','0','3a5eaef4e8134dfb9f2935f98a8b88f7','0','2','0'),
('40014','21','','10510','Get state metrics','kube.state.metrics','1m','0','0','0','4','','','','',NULL,NULL,'var Kube = {\r\n params: {},\r\n\r\n setParams: function (params) {\r\n [\'api_url\', \'api_token\', \'state_endpoint_name\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\'\r\n || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n });\r\n\r\n Kube.params = params;\r\n if (typeof Kube.params.api_url === \'string\' && !Kube.params.api_url.endsWith(\'/\')) {\r\n Kube.params.api_url += \'/\';\r\n }\r\n },\r\n\r\n apiRequest: function (query) {\r\n var request = new HttpRequest(),\r\n response,\r\n url = encodeURI(Kube.params.api_url + query);\r\n\r\n if (typeof Kube.params.http_proxy !== \'undefined\' && Kube.params.http_proxy !== \'\') {\r\n request.setProxy(Kube.params.http_proxy);\r\n }\r\n\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Authorization: Bearer \' + Kube.params.api_token);\r\n\r\n Zabbix.log(4, \'[ Kubernetes ] Sending request: \' + url);\r\n\r\n if (Kube.params.http_proxy) {\r\n Zabbix.log(4, \'[ Kubernetes ] Using http proxy: \' + Kube.params.http_proxy);\r\n }\r\n\r\n response = request.get(url);\r\n\r\n Zabbix.log(4, \'[ Kubernetes ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from Kubernetes API. Check debug log for more information.\';\r\n }\r\n return response;\r\n },\r\n\r\n getEndpoint: function (ep) {\r\n if (typeof ep.subsets[0].addresses !== \'undefined\') {\r\n var scheme,\r\n addr,\r\n port;\r\n ep.subsets.forEach(function (subset) {\r\n var lp = subset.ports.filter(function (port) {\r\n if (port.name !== \'http\' &&\r\n port.name !== \'https\' &&\r\n port.name !== \'https-main\') {\r\n return false;\r\n }\r\n scheme = port.name.match(/https?/);\r\n return true;\r\n })\r\n if (lp.length) {\r\n port = lp[0].port\r\n addr = subset.addresses[0].ip\r\n }\r\n })\r\n return {\r\n scheme: scheme || \'http\',\r\n address: addr || ep.subsets[0].addresses[0].ip,\r\n port: port || 8080\r\n }\r\n }\r\n },\r\n\r\n getMetricsEndpoint: function () {\r\n var result = Kube.apiRequest(\'api/v1/endpoints\'),\r\n endpoint = [];\r\n\r\n if (typeof result !== \'object\'\r\n || typeof result.items === \'undefined\') {\r\n throw \'Cannot get endpoints from Kubernetes API. Check debug log for more information.\';\r\n };\r\n\r\n result.items.forEach(function (ep) {\r\n if (ep.metadata.name === Kube.params.state_endpoint_name && Array.isArray(ep.subsets)) {\r\n endpoint.push(Kube.getEndpoint(ep));\r\n }\r\n if (typeof Kube.params.openshift_endpoint_name !== \'undefined\' && Kube.params.openshift_endpoint_name !== \'\'\r\n && ep.metadata.name === Kube.params.openshift_endpoint_name && Array.isArray(ep.subsets)) {\r\n endpoint.push(Kube.getEndpoint(ep));\r\n }\r\n });\r\n if (endpoint.length === 0) {\r\n throw \'Cannot get state metrics endpoints from Kubernetes API. Check debug log for more information.\';\r\n }\r\n return endpoint;\r\n },\r\n\r\n getStateMetrics: function () {\r\n var metrics_endpoint = Kube.getMetricsEndpoint(),\r\n IPv4 = /(?:\\d{1,3}\\.){3}\\d{1,3}/,\r\n result = \'\',\r\n request = new HttpRequest();\r\n\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Authorization: Bearer \' + Kube.params.api_token);\r\n\r\n if (typeof Kube.params.http_proxy !== \'undefined\' && Kube.params.http_proxy !== \'\') {\r\n request.setProxy(Kube.params.http_proxy);\r\n Zabbix.log(4, \'[ Kubernetes ] Using http proxy: \' + Kube.params.http_proxy);\r\n }\r\n\r\n metrics_endpoint.forEach(function (endpoint) {\r\n var url = endpoint.scheme + \'://\' + (IPv4.test(endpoint.address) ? endpoint.address : \'[\' + endpoint.address + \']\') + \':\' + endpoint.port + \'/metrics\';\r\n\r\n Zabbix.log(4, \'[ Kubernetes ] Sending request: \' + url);\r\n response = request.get(url);\r\n Zabbix.log(4, \'[ Kubernetes ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n if (response === null) {\r\n throw \'Failed to get state metrics. Check debug log for more information.\';\r\n }\r\n result += response + \'\\n\';\r\n }\r\n );\r\n\r\n return result;\r\n\r\n }\r\n};\r\n\r\ntry {\r\n Kube.setParams(JSON.parse(value));\r\n\r\n var stateMetrics = Kube.getStateMetrics();\r\n\r\n return stateMetrics;\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ Kubernetes ] ERROR: \' + error);\r\n return JSON.stringify({ error: error });\r\n}','','0','','','','','0',NULL,'Collecting Kubernetes metrics from kube-state-metrics.','0','30d','0','',NULL,'10s','','','','200','1','0','','','0','0','0','0','0','0','0','66e69f9970ce478f8f0ff13f26b248e3','0','2','0'),
('40015','21','','10510','Node LLD','kube.node.lld','1m','0','0','0','4','','','','',NULL,NULL,'var Kube = {\r\n params: {},\r\n\r\n setParams: function (params) {\r\n [\'api_url\', \'api_token\', \'kubelet_scheme\', \'kubelet_port\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\'\r\n || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n });\r\n [\'node_filter_labels\', \'node_filter_annotations\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\') {\r\n throw \'Parameter can be empty but not removed: "\' + field + \'".\';\r\n }\r\n });\r\n\r\n Kube.params = params;\r\n if (typeof Kube.params.api_url === \'string\' && !Kube.params.api_url.endsWith(\'/\')) {\r\n Kube.params.api_url += \'/\';\r\n }\r\n\r\n },\r\n\r\n apiRequest: function (query) {\r\n var request = new HttpRequest(),\r\n response,\r\n url = encodeURI(Kube.params.api_url + query);\r\n\r\n if (typeof Kube.params.http_proxy !== \'undefined\' && Kube.params.http_proxy !== \'\') {\r\n request.setProxy(Kube.params.http_proxy);\r\n }\r\n\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Authorization: Bearer \' + Kube.params.api_token);\r\n\r\n Zabbix.log(4, \'[ Kubernetes ] Sending request: \' + url);\r\n\r\n if (Kube.params.http_proxy) {\r\n Zabbix.log(4, \'[ Kubernetes ] Using http proxy: \' + Kube.params.http_proxy);\r\n }\r\n\r\n response = request.get(url);\r\n\r\n Zabbix.log(4, \'[ Kubernetes ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n\r\n }\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from Kubernetes API. Check debug log for more information.\';\r\n }\r\n return response;\r\n\r\n },\r\n\r\n parseFilters: function (csv) {\r\n if (!csv)\r\n return [];\r\n\r\n var filters = [];\r\n const filterCapture = /([!\\w\\-\\.\\/]+)\\s*:\\s*(.*)/;\r\n const onComma = /\\s*,\\s*/;\r\n\r\n csv.split(onComma).forEach(function (kv) {\r\n var match = kv.match(filterCapture);\r\n if (!match) {\r\n Zabbix.log(3, \'Cannot parse filter from: "\' + kv + \'"\');\r\n return;\r\n }\r\n\r\n filters.push({ key: match[1], expression: match[2] });\r\n });\r\n\r\n return filters;\r\n },\r\n\r\n filter: function (name, data, filters) {\r\n if (typeof data !== \'object\') {\r\n return true;\r\n }\r\n\r\n return filters.every(function (filter) {\r\n const filter_key = filter.key.startsWith(\'!\') ? filter.key.substring(1) : filter.key;\r\n\r\n if (!(filter_key in data)) {\r\n return true;\r\n }\r\n\r\n const isExcludingFilter = filter.key.startsWith(\'!\');\r\n const isMatchForFilter = new RegExp(filter.expression).test(data[filter_key]);\r\n\r\n if ((isExcludingFilter && isMatchForFilter) ||\r\n (!isExcludingFilter && !isMatchForFilter)) {\r\n Zabbix.log(4, \'[ Kubernetes ] Discarded "\' + name + \'" by filter "\' + filter.key + \': \' + filter.expression + \'"\');\r\n return false;\r\n }\r\n\r\n return true;\r\n });\r\n },\r\n\r\n getField: function (data, path) {\r\n var steps = path.split(\'.\');\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n\r\n data = data[step];\r\n }\r\n\r\n return data;\r\n },\r\n\r\n getNodes: function () {\r\n var result = Kube.apiRequest(\'api/v1/nodes\');\r\n if (typeof result !== \'object\'\r\n || typeof result.items === \'undefined\') {\r\n throw \'Cannot get nodes from Kubernetes API. Check debug log for more information.\';\r\n };\r\n var nodes = result.items,\r\n IPv4 = /(?:\\d{1,3}\\.){3}\\d{1,3}/,\r\n kubeNodes = [],\r\n hostname = Kube.params.api_url.match(/https?:\\/\\/([\\w.-]+|\\[[a-f0-9:]+\\]|[^a-zA-Z:]+)(?::\\d+)?/),\r\n filterNodeLabels = Kube.parseFilters(Kube.params.node_filter_labels),\r\n filterNodeAnnotations = Kube.parseFilters(Kube.params.node_filter_annotations);\r\n\r\n if (typeof hostname[1] === \'undefined\') {\r\n Zabbix.log(4, \'[ Kubernetes ] Received incorrect Kubernetes API url: \' + api_url + \'. Expected format: ://:\');\r\n throw \'Cannot get hostname from Kubernetes API url. Check debug log for more information.\';\r\n };\r\n\r\n kubeNodes = nodes.map(function (node) {\r\n if (Kube.filter(Kube.getField(node, \'metadata.name\'), Kube.getField(node, \'metadata.labels\'), filterNodeLabels)\r\n && Kube.filter(Kube.getField(node, \'metadata.name\'), Kube.getField(node, \'metadata.annotations\'), filterNodeAnnotations)) {\r\n Zabbix.log(4, \'[ Kubernetes ] Filtered node "\' + node.metadata.name + \'"\');\r\n\r\n var internalIPs = Kube.getField(node, \'status.addresses\').filter(function (addr) {\r\n return addr.type === \'InternalIP\';\r\n });\r\n\r\n var internalIP = internalIPs.length && internalIPs[0].address;\r\n\r\n return {\r\n \'{#NAME}\': node.metadata.name,\r\n \'{#IP}\': internalIP,\r\n \'{#KUBE.KUBELET.URL}\': Kube.params.kubelet_scheme + \'://\' + (IPv4.test(internalIP) ? internalIP : \'[\' + internalIP + \']\') + \':\' + Kube.params.kubelet_port,\r\n \'{#COMPONENT}\': \'Kubelet\',\r\n \'{#CLUSTER_HOSTNAME}\': hostname[1]\r\n };\r\n }\r\n });\r\n\r\n return JSON.stringify(kubeNodes);\r\n\r\n },\r\n};\r\n\r\ntry {\r\n Kube.setParams(JSON.parse(value));\r\n return Kube.getNodes();\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ Kubernetes ] ERROR: \' + error);\r\n return JSON.stringify({ error: error });\r\n}','','0','','','','','0',NULL,'Generation of data for Kubelet discovery rules.','0','30d','0','',NULL,'10s','','','','200','1','0','','','0','0','0','0','0','0','0','aae78585c668466da5d0ab8d8b899828','0','2','0'),
('40128','20','get[1.3.6.1.4.1.12325.1.200.1.1.1.0]','10515','Packet filter running status','pfsense.pf.status','1m','31d','365d','0','3','','','','',NULL,'575','','','0','','','','','0',NULL,'MIB: BEGEMOT-PF-MIB\r\nTrue if packet filter is currently enabled.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','600896282920468baf2e47ab75ee9b31','0','2','0'),
('40129','20','get[1.3.6.1.4.1.12325.1.200.1.11.1.0]','10515','Firewall rules count','pfsense.rules.count','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: BEGEMOT-PF-MIB\r\nThe number of labeled filter rules on this system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6d0cf4a1a284453991e12daf921fed9a','0','2','0'),
('40130','20','get[1.3.6.1.4.1.12325.1.200.1.4.1.0]','10515','Source tracking table current','pfsense.source.tracking.table.count','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: BEGEMOT-PF-MIB\r\nNumber of entries in the source tracking table.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c13b50c508e04851baf09c1c865241fc','0','2','0'),
('40131','20','get[1.3.6.1.4.1.12325.1.200.1.5.2.0]','10515','Source tracking table limit','pfsense.source.tracking.table.limit','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: BEGEMOT-PF-MIB\r\nMaximum number of \'sticky-address\' or \'source-track\' rules in the ruleset.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','58e12f73fd4243a89d62bbdc7e307cf9','0','2','0'),
('40132','15','','10515','Source tracking table utilization in %','pfsense.source.tracking.table.pused','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//pfsense.source.tracking.table.count) * 100 / last(//pfsense.source.tracking.table.limit)','','0','','','','','0',NULL,'Utilization of source tracking table in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8fb3a344b39241bbb3bf78092fa17ec8','0','2','0'),
('40133','20','get[1.3.6.1.4.1.12325.1.200.1.3.1.0]','10515','States table current','pfsense.state.table.count','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: BEGEMOT-PF-MIB\r\nNumber of entries in the state table.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f0eab94d244b46c29363b630850ed709','0','2','0'),
('40134','20','get[1.3.6.1.4.1.12325.1.200.1.5.1.0]','10515','States table limit','pfsense.state.table.limit','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: BEGEMOT-PF-MIB\r\nMaximum number of \'keep state\' rules in the ruleset.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8500a1db240b48d7bca514371a89c641','0','2','0'),
('40135','15','','10515','States table utilization in %','pfsense.state.table.pused','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//pfsense.state.table.count) * 100 / last(//pfsense.state.table.limit)','','0','','','','','0',NULL,'Utilization of state table in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5e96cadaafca4e51ad62dba4fec5220a','0','2','0'),
('40136','5','','10515','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'576','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','585c88310a704e119aa5fc7f7f9c3804','0','2','0'),
('40181','5','','10048','Version','zabbix[version]','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The version of Zabbix proxy.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4d38d6d107714c96ae2ed2af44fddb60','0','2','0'),
('40182','5','','10048','Values waiting to be sent','zabbix[proxy_history]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The number of values in the proxy history table waiting to be sent to the server.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3b66d42ec1fa4dc7a41750aacf6e68f3','0','2','0'),
('40183','5','','10048','Required VPS','zabbix[requiredperformance]','1m','31d','365d','0','0','','!vps','','',NULL,NULL,'','','0','','','','','0',NULL,'The required performance of a proxy (the number of values that need to be collected per second).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ef820395239d4a108980fe53017a89fc','0','2','0'),
('40184','5','','10048','Uptime','zabbix[uptime]','1m','31d','365d','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'Uptime of the Zabbix proxy process in seconds.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ef920914bc00432ea4d4007d09e081df','0','2','0'),
('40478','3','','10207','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'581','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','832b1a2e21904591bc42d5cda9f3df14','0','2','0'),
('40479','20','get[1.3.6.1.2.1.1.2.0]','10207','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f0df5a577f5c46689578302df065a3d6','0','2','0'),
('40480','20','get[1.3.6.1.2.1.1.3.0]','10207','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e80e3dfbf1a447be87f1b6853c66555b','0','2','0'),
('40481','20','get[1.3.6.1.2.1.1.5.0]','10207','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0b1d37d4950d40c79433f47dea9677d4','0','2','0'),
('40482','3','','10207','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','959946f1885c4e7fbde7ab7200c60858','0','2','0'),
('40483','20','get[1.3.6.1.2.1.1.6.0]','10207','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','597b68e7ddb8482280122de489424041','0','2','0'),
('40484','20','get[1.3.6.1.2.1.1.1.0]','10207','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','757c85110dc34eb88265832aba8e7fbf','0','2','0'),
('40485','20','get[1.3.6.1.2.1.1.4.0]','10207','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0471357a58ff437e835e02175d6e6ca1','0','2','0'),
('40486','17','','10207','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8f5bdb3fde9142a9892db396c040f8dd','0','2','0'),
('40487','3','','10207','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7f858a8bc36746be89b2e36608cbb643','0','2','0'),
('40488','5','','10207','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'582','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cbcc156906774a109dd3d0cf09c512e9','0','2','0'),
('40501','3','','10254','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'586','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ace97814969841e9a3e2d8ac6b83aae7','0','2','0'),
('40502','3','','10254','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','643a2c6f8d724bd392dd97bada7d24c2','0','2','0'),
('40503','3','','10254','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e731e59672be40fa8ae7aced60ed3efc','0','2','0'),
('40504','17','','10254','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e2d2516fb77f4e4faf13a69705d6af77','0','2','0'),
('40505','20','get[1.3.6.1.2.1.1.4.0]','10254','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','48446cefda57477eb19dfc6db23a5ee1','0','2','0'),
('40506','20','discovery[{#CPU.UTIL},1.3.6.1.2.1.25.3.3.1.2]','10254','CPU utilization','system.cpu.util','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe average, over the last minute, of the percentage of time that processors was not idle.\r\nImplementations may approximate this one minute smoothing period if necessary.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fde390cc8671441194fb274209a8c190','0','2','0'),
('40507','20','get[1.3.6.1.2.1.1.1.0]','10254','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','861f3aef96e64cf0a68e0fc81693f118','0','2','0'),
('40508','20','get[1.3.6.1.2.1.1.6.0]','10254','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','55418095abea4f109476530af23e2829','0','2','0'),
('40509','20','get[1.3.6.1.2.1.1.5.0]','10254','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d4538fc49f554fb6a1514cd9487a7291','0','2','0'),
('40510','20','get[1.3.6.1.2.1.1.2.0]','10254','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8f2e8b5fa0464e4d964253f361d1e033','0','2','0'),
('40511','20','get[1.3.6.1.2.1.1.3.0]','10254','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ed9ad1ae7fba4073bb80307dbd6849cd','0','2','0'),
('40512','5','','10254','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'587','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f57ed8cec3144effa6ffb2a4f604ab0b','0','2','0'),
('40533','3','','10208','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'590','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','79adbe7d5d8f4dd6a172bfc3e2d8b23d','0','2','0'),
('40534','3','','10208','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4ae37446cb1e4a2d95f55a41dd295bdf','0','2','0'),
('40535','3','','10208','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4c8f61f10759487087d5942756f478b2','0','2','0'),
('40536','17','','10208','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c7e6790a311c4b4582093cd28341306a','0','2','0'),
('40537','20','get[1.3.6.1.2.1.1.4.0]','10208','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','62ae879ca6ab46aebc8655534acbba06','0','2','0'),
('40538','20','get[1.3.6.1.2.1.1.1.0]','10208','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8340ccd92ba940b497375aba810394a4','0','2','0'),
('40539','20','get[1.3.6.1.2.1.1.6.0]','10208','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','88c5304ddeca47779b76d9806b1edc68','0','2','0'),
('40540','20','get[1.3.6.1.2.1.1.5.0]','10208','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d8d912cb5c924f6587c83f08aa0c8ae1','0','2','0'),
('40541','20','get[1.3.6.1.2.1.1.2.0]','10208','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','939c63320b8e4199b87cc4759011da3c','0','2','0'),
('40542','20','get[1.3.6.1.2.1.1.3.0]','10208','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','237a5614cb634773853f6d5f42096773','0','2','0'),
('40543','5','','10208','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'591','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','00b66dbea9464b55bbab004e0eb57c7b','0','2','0'),
('40554','3','','10210','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'594','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b77f1a0ffd4c4b6d870eda4b573b4d13','0','2','0'),
('40555','3','','10210','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6e20f516917f40bca4a53ed015e065d2','0','2','0'),
('40556','3','','10210','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c2888004f9e84640a088f891f8b0703d','0','2','0'),
('40557','17','','10210','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2d0b064b0fd74361ac1c32cdea2c1123','0','2','0'),
('40558','20','get[1.3.6.1.2.1.1.4.0]','10210','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d0561cc5be67434088c1e591a577d7e3','0','2','0'),
('40559','20','get[1.3.6.1.4.1.1991.1.1.2.1.52.0]','10210','CPU utilization','system.cpu.util[snAgGblCpuUtil1MinAvg.0]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: FOUNDRY-SN-AGENT-MIB\r\nThe statistics collection of 1 minute CPU utilization.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2083ecbada4344b4b26dba0145694d7e','0','2','0'),
('40560','20','get[1.3.6.1.2.1.1.1.0]','10210','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9f49220f80c04e2e98ecf3ec5fa53c2e','0','2','0'),
('40561','20','get[1.3.6.1.2.1.1.6.0]','10210','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3accd01dca984406990051338ce3f269','0','2','0'),
('40562','20','get[1.3.6.1.2.1.1.5.0]','10210','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0d27ffcf928949188fbe1994b6b4dcbb','0','2','0'),
('40563','20','get[1.3.6.1.2.1.1.2.0]','10210','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','702517f6c1024b3c8860a63c9cd57367','0','2','0'),
('40564','20','get[1.3.6.1.2.1.1.3.0]','10210','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3a534079085747b0916da05afdfafba0','0','2','0'),
('40565','20','get[1.3.6.1.4.1.1991.1.1.2.1.53.0]','10210','Memory utilization','vm.memory.util[snAgGblDynMemUtil.0]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: FOUNDRY-SN-AGENT-MIB\r\nThe system dynamic memory utilization, in unit of percentage.\r\nDeprecated: Refer to snAgSystemDRAMUtil.\r\nFor NI platforms, refer to snAgentBrdMemoryUtil100thPercent.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1e1b82a4271d4e159315e74547bea34e','0','2','0'),
('40566','5','','10210','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'595','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b782df60263e4302b83f66e920ac217f','0','2','0'),
('40567','3','','10211','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'598','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','df3428a8cf5a449e9ffec28d846a3062','0','2','0'),
('40568','3','','10211','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3e97bfa40e1547b5be3f72f9675dfc62','0','2','0'),
('40569','3','','10211','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','79ca1e3ac22742d28e08c722dad1e254','0','2','0'),
('40570','17','','10211','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','584f0625be1c40e69294dce25fc9ead6','0','2','0'),
('40571','20','get[1.3.6.1.2.1.1.4.0]','10211','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b973c42ae6da4707893b21f20d09ecd3','0','2','0'),
('40572','20','get[1.3.6.1.4.1.1991.1.1.2.1.52.0]','10211','CPU utilization','system.cpu.util[snAgGblCpuUtil1MinAvg.0]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: FOUNDRY-SN-AGENT-MIB\r\nThe statistics collection of 1 minute CPU utilization.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bfb60806299f4388bb5bfafd2c0329be','0','2','0'),
('40573','20','get[1.3.6.1.2.1.1.1.0]','10211','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','11f6230e5f2945aab338c958f38ce9d3','0','2','0'),
('40574','20','get[1.3.6.1.2.1.1.6.0]','10211','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','99be144849104b3cad296b2f21355e93','0','2','0'),
('40575','20','get[1.3.6.1.2.1.1.5.0]','10211','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7af427adf5ad451894ae1e6af72c1890','0','2','0'),
('40576','20','get[1.3.6.1.2.1.1.2.0]','10211','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','886dd0ed732c49118f012a402b4a5f45','0','2','0'),
('40577','20','get[1.3.6.1.2.1.1.3.0]','10211','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c32cf75496ce40e5b3d06a049fa3205d','0','2','0'),
('40578','20','get[1.3.6.1.4.1.1991.1.1.2.1.53.0]','10211','Memory utilization','vm.memory.util[snAgGblDynMemUtil.0]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: FOUNDRY-SN-AGENT-MIB\r\nThe system dynamic memory utilization, in unit of percentage.\r\nDeprecated: Refer to snAgSystemDRAMUtil.\r\nFor NI platforms, refer to snAgentBrdMemoryUtil100thPercent.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','631268898edf40908c9d1dd75ed4eef8','0','2','0'),
('40579','5','','10211','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'599','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a25878004da548e9824321fe0f55955e','0','2','0'),
('40600','3','','10220','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'601','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bf6d81068770410a929c127d8e7d76c1','0','2','0'),
('40601','3','','10220','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2af7b5f79fc44d7d992b0bf6277c12bb','0','2','0'),
('40602','3','','10220','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1afa1e8ca21c430598845806bbf0e7a2','0','2','0'),
('40603','17','','10220','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','53eb0288c9e54490942cedd4ce5f376e','0','2','0'),
('40604','20','get[1.3.6.1.2.1.1.4.0]','10220','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bba5be8b3fa54bfbb354b7a2c20fd353','0','2','0'),
('40605','20','get[1.3.6.1.4.1.9.2.1.58]','10220','CPU utilization','system.cpu.util[avgBusy5]','5m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: OLD-CISCO-CPU-MIB\r\n5 minute exponentially-decayed moving average of the CPU busy percentage.\r\nReference: http://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-protocol-snmp/15215-collect-cpu-util-snmp.html','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','693b0c779f574d869f47b44c4b3ecd58','0','2','0'),
('40606','20','get[1.3.6.1.2.1.1.1.0]','10220','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','495b26e876a04819a02cf22eaba04e0b','0','2','0'),
('40607','20','get[1.3.6.1.2.1.47.1.1.1.1.13.1]','10220','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b5121a382d0245f0906bba4530a82ac4','0','2','0'),
('40608','20','get[1.3.6.1.2.1.47.1.1.1.1.11.1]','10220','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5934a35b54464f66ab19152ca393b882','0','2','0'),
('40609','20','get[1.3.6.1.2.1.1.6.0]','10220','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','30df666e80bd4875ac761306781061da','0','2','0'),
('40610','20','get[1.3.6.1.2.1.1.5.0]','10220','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2e55e75a7baa4195b012e750bac90dcb','0','2','0'),
('40611','20','get[1.3.6.1.2.1.1.2.0]','10220','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cc6e5a6e4f604b639815d9397264c6af','0','2','0'),
('40612','20','get[1.3.6.1.2.1.1.1.0]','10220','Operating system','system.sw.os[sysDescr.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','70ef7ce7561640b7bc6b5d30235c0ecc','0','2','0'),
('40613','20','get[1.3.6.1.2.1.1.3.0]','10220','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7ecd28b73c0f43a98c3a58467b1cbdc7','0','2','0'),
('40614','5','','10220','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'602','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5a156e9ca10c49bbb87cf3de1b686cff','0','2','0'),
('40615','3','','10218','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'607','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f0a3f0b82e32488aa22929fe035825cb','0','2','0'),
('40616','3','','10218','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0c081f94e6094ad29e1fbc2a3424bedb','0','2','0'),
('40617','3','','10218','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','dab9ef1df04d403faa4910bf51559035','0','2','0'),
('40618','17','','10218','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8684622dc8d446f0b17ba7687d47b09d','0','2','0'),
('40619','20','get[1.3.6.1.2.1.1.4.0]','10218','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','622767f4dbab49039c63990e4fc58eaa','0','2','0'),
('40620','20','get[1.3.6.1.2.1.1.1.0]','10218','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ae8e0ecf937c4a9492fe67cc5cd07d6f','0','2','0'),
('40621','20','get[1.3.6.1.2.1.47.1.1.1.1.13.1]','10218','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a8062a554b8d447f81f7b9ef3229c7e9','0','2','0'),
('40622','20','get[1.3.6.1.2.1.47.1.1.1.1.11.1]','10218','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','223fd2fe9699419c824ae310f1c8a631','0','2','0'),
('40623','20','get[1.3.6.1.2.1.1.6.0]','10218','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','361ca9979352405a9dfb9bc13e542a2f','0','2','0'),
('40624','20','get[1.3.6.1.2.1.1.5.0]','10218','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2ddace242ffe487a8641e035cf04dcdd','0','2','0'),
('40625','20','get[1.3.6.1.2.1.1.2.0]','10218','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','290d095f8fbc4cd1aa5ed3d304434f4b','0','2','0'),
('40626','20','get[1.3.6.1.2.1.1.1.0]','10218','Operating system','system.sw.os[sysDescr.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5fe7bc2d46a748d3ace7d1dd0de8127b','0','2','0'),
('40627','20','get[1.3.6.1.2.1.1.3.0]','10218','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fe1dbb23a8794ce9ae3f6c37e63082f8','0','2','0'),
('40628','5','','10218','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'608','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cf9bd75166704b2f93446ece0c2d0fab','0','2','0'),
('40629','3','','10253','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'612','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a94e2b40f0e14bdfb70e66127f8d946b','0','2','0'),
('40630','3','','10253','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','39baf182f6724813a951b25f6ff5aab4','0','2','0'),
('40631','3','','10253','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','85748657f67e45189256e7704c6e7a9c','0','2','0'),
('40632','17','','10253','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0f50837172ad475d9d5a27c95be19ab2','0','2','0'),
('40633','20','get[1.3.6.1.2.1.1.4.0]','10253','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','22406c415a0a4f6bbd9d44707631f42c','0','2','0'),
('40634','20','get[1.3.6.1.2.1.1.1.0]','10253','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5a37d2e4f308475c932a6bb856d0ffb4','0','2','0'),
('40635','20','get[1.3.6.1.2.1.47.1.1.1.1.13.1]','10253','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','12b69d0a3b844906a950bcedcbb8b9b8','0','2','0'),
('40636','20','get[1.3.6.1.2.1.47.1.1.1.1.11.1]','10253','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','991021da67c84f96a76154078c45f3be','0','2','0'),
('40637','20','get[1.3.6.1.2.1.1.6.0]','10253','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d8ed796e88f3478ea72d95ddcc68f9ed','0','2','0'),
('40638','20','get[1.3.6.1.2.1.1.5.0]','10253','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a26d3babf5674a5e9d9afff94518e6c6','0','2','0'),
('40639','20','get[1.3.6.1.2.1.1.2.0]','10253','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','da41d408448d4b1aa323e0046ff97598','0','2','0'),
('40640','20','get[1.3.6.1.2.1.1.1.0]','10253','Operating system','system.sw.os[sysDescr.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cf4af497970a415aa45aa66b2ba48115','0','2','0'),
('40641','20','get[1.3.6.1.2.1.1.3.0]','10253','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','182fd7bfd7b74331b9f3cf8f4a7646cb','0','2','0'),
('40642','5','','10253','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'613','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','92fa54c5c28b4244b0d22c9041064d15','0','2','0'),
('40708','3','','10221','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'617','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3853e6ef8cbf4e59a64422659f66bbb7','0','2','0'),
('40709','3','','10221','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ef0432ffcf0546bf82177193866861cf','0','2','0'),
('40710','3','','10221','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9b56a2a725bf4632bc28c6a5d0c3d64b','0','2','0'),
('40711','17','','10221','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ba8178338b0e41ac97b0265f98b90770','0','2','0'),
('40712','20','get[1.3.6.1.2.1.1.4.0]','10221','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d4df70f2c5f04ad2b7f1b4e8ab9a9993','0','2','0'),
('40713','20','get[1.3.6.1.2.1.1.1.0]','10221','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','804476e771374e22b8767f90f271654a','0','2','0'),
('40714','20','get[1.3.6.1.2.1.1.6.0]','10221','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f3d1970fc4404b4fa50a855433681105','0','2','0'),
('40715','20','get[1.3.6.1.2.1.1.5.0]','10221','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a36cccdaf24c4e82801ebb44eaa5e25a','0','2','0'),
('40716','20','get[1.3.6.1.2.1.1.2.0]','10221','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','651059497914431f827ad82a982e139b','0','2','0'),
('40717','20','get[1.3.6.1.2.1.1.3.0]','10221','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','26a0a117545f4b17986f0b48996fec47','0','2','0'),
('40718','5','','10221','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'618','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7ce4f98cdc6741bbb03f6e2ea03432c4','0','2','0'),
('40731','3','','10222','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'621','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','caa6811dace14784abd7136ddfbcec8b','0','2','0'),
('40732','3','','10222','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d18c1a0dbab64f238e82025d2c27b392','0','2','0'),
('40733','3','','10222','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','117fec4f68ad4782a0b0407bc465a31b','0','2','0'),
('40734','17','','10222','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2a3acf94555d457d8837c6e75abbbf34','0','2','0'),
('40735','20','get[1.3.6.1.2.1.1.4.0]','10222','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','aba1f89a56504dde9d0d6a60bafa9552','0','2','0'),
('40736','20','get[1.3.6.1.2.1.1.1.0]','10222','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','26752257ad0f4bc58f678c247524c4cc','0','2','0'),
('40737','20','get[1.3.6.1.2.1.1.6.0]','10222','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','64e931125c274e788b2f68dcb21725d8','0','2','0'),
('40738','20','get[1.3.6.1.2.1.1.5.0]','10222','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fcf0be13144245568817543cfc47c006','0','2','0'),
('40739','20','get[1.3.6.1.2.1.1.2.0]','10222','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f50184058d4549a1be9bae19c0743a84','0','2','0'),
('40740','20','get[1.3.6.1.2.1.1.3.0]','10222','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fb250daeb7e643f4b2f78ede9e26b8ec','0','2','0'),
('40741','5','','10222','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'622','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4ca2130529464dc9ba9355a915c7e539','0','2','0'),
('40752','3','','10223','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'626','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','09fada9334444d18b149b2fa0e39ac76','0','2','0'),
('40753','3','','10223','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1c2d54095100404c8e03b179f5df1761','0','2','0'),
('40754','3','','10223','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3f66e84f94254655add99a1152225df7','0','2','0'),
('40755','17','','10223','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c7c836a53c134dcda931ef9dba401f35','0','2','0'),
('40756','20','get[1.3.6.1.2.1.1.4.0]','10223','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','29ee9181892b49a081299688f8c47798','0','2','0'),
('40757','20','get[1.3.6.1.2.1.1.1.0]','10223','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','188e1d65459f40a48c3bc0f444024a00','0','2','0'),
('40758','20','get[1.3.6.1.2.1.1.6.0]','10223','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','22473cfba211477ab8fbbb52c814de0d','0','2','0'),
('40759','20','get[1.3.6.1.2.1.1.5.0]','10223','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','38d68b0f6cd4445b966ead7e7301ae86','0','2','0'),
('40760','20','get[1.3.6.1.2.1.1.2.0]','10223','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5697ce18530b44f5a7e342344ecfe89a','0','2','0'),
('40761','20','get[1.3.6.1.2.1.1.3.0]','10223','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5ca0653d792d42d1aebba51b36d5cf31','0','2','0'),
('40762','5','','10223','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'627','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','459f95874d194c7da40752f0336034be','0','2','0'),
('40775','3','','10224','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'631','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ba27dc4ef9bf4c639b224b4e4881073e','0','2','0'),
('40776','20','get[1.3.6.1.2.1.1.3.0]','10224','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','92f8e91c4d2c423984cb14440bc83328','0','2','0'),
('40777','20','get[1.3.6.1.2.1.1.2.0]','10224','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','041115a5c3f44c8c9a9e1e0c7bc7203e','0','2','0'),
('40778','20','get[1.3.6.1.2.1.1.5.0]','10224','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7345ee5a5db545a9a5bb90ab5626a2aa','0','2','0'),
('40779','20','get[1.3.6.1.2.1.1.6.0]','10224','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d8c7f5611f544299a95eedc0c80cedb5','0','2','0'),
('40780','3','','10224','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bd39116401f249008d21e4109a34c6c7','0','2','0'),
('40781','20','get[1.3.6.1.2.1.1.1.0]','10224','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e23764de0cda451d959e73ca0ea211ae','0','2','0'),
('40782','20','get[1.3.6.1.2.1.1.4.0]','10224','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','aa2eb0947ea34b2bbb739d6025d914ea','0','2','0'),
('40783','17','','10224','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','da2bc25bb40642feaaff04b1cd5f85a0','0','2','0'),
('40784','3','','10224','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c59f57d99c7045b6920e26c8c1b58e52','0','2','0'),
('40785','5','','10224','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'632','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','62a022d402c24da29c1aa7cb0eb64244','0','2','0'),
('40798','3','','10226','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'636','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8818ba559e364390a8f5881a9b3ab5c7','0','2','0'),
('40799','3','','10226','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','06c6f4c60f9b4db0afa2886ad70507af','0','2','0'),
('40800','3','','10226','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','29f84e5b82b748a5b08475dd45ade97a','0','2','0'),
('40801','17','','10226','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4dad4c7dc007426ebb4b36439b64a55b','0','2','0'),
('40802','20','get[1.3.6.1.2.1.1.4.0]','10226','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','300812c78b9d4aeb82940d97ccee1d9e','0','2','0'),
('40803','20','get[1.3.6.1.2.1.1.1.0]','10226','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c4996515da9e41728fb94c5134489e7b','0','2','0'),
('40804','20','get[1.3.6.1.2.1.1.6.0]','10226','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9bf103c35b284fc7ba9f7b4968006cd9','0','2','0'),
('40805','20','get[1.3.6.1.2.1.1.5.0]','10226','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','adb55c04903d4c37a9ccecc78ac877d5','0','2','0'),
('40806','20','get[1.3.6.1.2.1.1.2.0]','10226','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9d2e3e58dc4543d3b5df8ded3c2a4d90','0','2','0'),
('40807','20','get[1.3.6.1.2.1.1.3.0]','10226','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9b2549a4c09a4b0d9112aed011b03583','0','2','0'),
('40808','5','','10226','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'637','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','28e7a457abdf42c3a647642b3c4964e0','0','2','0'),
('40821','3','','10227','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'641','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fbefc108101b48e298a01037d5b3db50','0','2','0'),
('40822','3','','10227','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','49b86b6d17394b859b02ea79c6d28b30','0','2','0'),
('40823','3','','10227','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1560f8f1509040a783e4149845ce38a3','0','2','0'),
('40824','17','','10227','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fa164b01a218494dab454126b4f561a9','0','2','0'),
('40825','20','get[1.3.6.1.2.1.1.4.0]','10227','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6f340c49d4364b8096a49c3fa52e2745','0','2','0'),
('40826','20','get[1.3.6.1.2.1.1.1.0]','10227','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','85e404c0181143f28b1187acb08cfa04','0','2','0'),
('40827','20','get[1.3.6.1.2.1.1.6.0]','10227','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3e4feed03de941c98e88e17b3e81b5e4','0','2','0'),
('40828','20','get[1.3.6.1.2.1.1.5.0]','10227','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b57179ad3e5f41f5805e93ff9e68d631','0','2','0'),
('40829','20','get[1.3.6.1.2.1.1.2.0]','10227','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','72139a34e0cf4357b86a52cf8430ee8c','0','2','0'),
('40830','20','get[1.3.6.1.2.1.1.3.0]','10227','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ac039d3041cc439eb1c3184ed78554d0','0','2','0'),
('40831','5','','10227','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'642','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c407deea6e0f41b18d84ccbe7fcbca63','0','2','0'),
('40844','3','','10250','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'646','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','eb35864dcdc142d1a136e47fabe5f017','0','2','0'),
('40845','3','','10250','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','722e38d7a1bd433192616664cc2824f8','0','2','0'),
('40846','3','','10250','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','93f693245d3848afb6c89881cede42c1','0','2','0'),
('40847','17','','10250','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b7530ee6104342319b0cad986a3a4daf','0','2','0'),
('40848','20','get[1.3.6.1.2.1.1.4.0]','10250','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1397f0fc832e47daa39308585f260152','0','2','0'),
('40849','20','get[1.3.6.1.2.1.1.1.0]','10250','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','31211351783648bc9c727205c0273a4b','0','2','0'),
('40850','20','get[1.3.6.1.2.1.1.6.0]','10250','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ad2dc1149eb546309657928b944c49fb','0','2','0'),
('40851','20','get[1.3.6.1.2.1.1.5.0]','10250','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ba7fd7afad3f4b76bdfedc8c6c3a24ac','0','2','0'),
('40852','20','get[1.3.6.1.2.1.1.2.0]','10250','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','74fd9c1bd546497aa20b9af09b951e98','0','2','0'),
('40853','20','get[1.3.6.1.2.1.1.3.0]','10250','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','02e67b092ccf478ba13537ba6471f3fd','0','2','0'),
('40854','5','','10250','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'647','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','af855c1e75304c26b11a86c2a86f08f2','0','2','0'),
('40867','3','','10229','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'651','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1cd98c8030f14fbca6abee35eb87e45b','0','2','0'),
('40868','3','','10229','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ee1ee4ce3b3a4545bd407ecc3e428049','0','2','0'),
('40869','3','','10229','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4f3bda2c7ab84a418bde7602cf0d608d','0','2','0'),
('40870','17','','10229','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','023b4403df464029a1493c53a0122d6f','0','2','0'),
('40871','20','get[1.3.6.1.2.1.1.4.0]','10229','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9aba5f7df03b4904869e0043dc73b9ae','0','2','0'),
('40872','20','get[1.3.6.1.2.1.1.1.0]','10229','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','034cdbc177c346e0b49791250b8bf66d','0','2','0'),
('40873','20','get[1.3.6.1.2.1.1.6.0]','10229','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','78041d1a10ed4cb6b89a77bc1478b009','0','2','0'),
('40874','20','get[1.3.6.1.2.1.1.5.0]','10229','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3fad2aa468c2492a89b28bdbffd00c6c','0','2','0'),
('40875','20','get[1.3.6.1.2.1.1.2.0]','10229','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a5e66466550f44a4b1d2137c751e9009','0','2','0'),
('40876','20','get[1.3.6.1.2.1.1.3.0]','10229','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e9dd0d849aaa499da9e2ef9e21ccd50e','0','2','0'),
('40877','5','','10229','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'652','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','291fbe54d7c845bb9ec5b080be084612','0','2','0'),
('40890','3','','10230','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'655','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','45c9681958504f3b8b161a2c7c728dbb','0','2','0'),
('40891','3','','10230','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','81af3843a1e44469affca02640f22b77','0','2','0'),
('40892','3','','10230','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','771d21b9c40b426d97eff54c6ac5227e','0','2','0'),
('40893','17','','10230','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5bb2ef0f72244294bcc469710a0a1225','0','2','0'),
('40894','20','get[1.3.6.1.2.1.1.4.0]','10230','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8570bf70c217434cb40b9efa74d7e070','0','2','0'),
('40895','20','get[1.3.6.1.2.1.1.1.0]','10230','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1c17fbf4b11b45f087668eefa9438341','0','2','0'),
('40896','20','get[1.3.6.1.2.1.1.6.0]','10230','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d1ee46aa709d43919ae3727e4d55af42','0','2','0'),
('40897','20','get[1.3.6.1.2.1.1.5.0]','10230','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7f06f097558d4ef3801207031e660756','0','2','0'),
('40898','20','get[1.3.6.1.2.1.1.2.0]','10230','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c4c4e044967a432a829ca88d8dcd8c2e','0','2','0'),
('40899','20','get[1.3.6.1.2.1.1.3.0]','10230','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','db4c4bc058b147a293b12f8737e42a53','0','2','0'),
('40900','5','','10230','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'656','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a182c41cf58b465895ff677ca96e5b65','0','2','0'),
('40911','3','','10231','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'660','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e5cf73357ca349818155522325a7c6bc','0','2','0'),
('40912','3','','10231','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3a1c4412bb9340169827209df2554a50','0','2','0'),
('40913','3','','10231','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ad350f912d2f4ead90aacdefa245cdf3','0','2','0'),
('40914','17','','10231','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e5470bc511a5499e9b8dc8bf4de8f054','0','2','0'),
('40915','20','get[1.3.6.1.2.1.1.4.0]','10231','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b8583eaf0353493ba18e751c9355dfa7','0','2','0'),
('40916','20','get[1.3.6.1.2.1.1.1.0]','10231','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ca8d30d561184ff4bf1b4ef07feb7302','0','2','0'),
('40917','20','get[1.3.6.1.2.1.1.6.0]','10231','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7a0062fa788c4abdbeb83df30276a0fd','0','2','0'),
('40918','20','get[1.3.6.1.2.1.1.5.0]','10231','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','87d8d5844b044be1a2a3261f98116fb0','0','2','0'),
('40919','20','get[1.3.6.1.2.1.1.2.0]','10231','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ebfd8c6f87d3401197bb8d9835206878','0','2','0'),
('40920','20','get[1.3.6.1.2.1.1.3.0]','10231','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bd29b0df96ac4b93bbd0746257d3601d','0','2','0'),
('40921','5','','10231','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'661','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','80ff69518e07493aac6059e1009d9a9f','0','2','0'),
('40934','3','','10449','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'664','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3614c3929ad5439f9829fd07e83d2d04','0','2','0'),
('40935','20','get[1.3.6.1.2.1.1.5.0]','10449','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a72a6424b8a24277a952d0d2e3974ad3','0','2','0'),
('40936','20','get[1.3.6.1.2.1.1.3.0]','10449','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','04b76355c37041569f60b8d36d279f31','0','2','0'),
('40937','20','get[1.3.6.1.2.1.1.2.0]','10449','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','79d95aec65934350b59a52e4af4b0fd7','0','2','0'),
('40938','20','get[1.3.6.1.2.1.1.6.0]','10449','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8d35083324f245fda442d6c2183a2007','0','2','0'),
('40939','3','','10449','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7d018eef194b4734a67537b410d083d1','0','2','0'),
('40940','20','get[1.3.6.1.2.1.1.1.0]','10449','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','42f88903cca745a8a54fed6355d72a86','0','2','0'),
('40941','20','get[1.3.6.1.2.1.1.4.0]','10449','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','45de6d3b762042f1beba38b42a5ce271','0','2','0'),
('40942','17','','10449','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f5aa15bcdd8a41449014241122f42ed5','0','2','0'),
('40943','3','','10449','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','55b40d51d6694cf5b2da626587afe20e','0','2','0'),
('40944','5','','10449','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'665','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7bbae2f760b2437a92e27abc5f0c4c7a','0','2','0'),
('40955','3','','10450','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'668','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','41881ff47c664642a6e9e9776eb17295','0','2','0'),
('40956','20','get[1.3.6.1.2.1.1.5.0]','10450','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8a59a79c33ce484888308a171b5dd507','0','2','0'),
('40957','20','get[1.3.6.1.2.1.1.3.0]','10450','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bd0d3629dc4445968d42642640cee4ef','0','2','0'),
('40958','20','get[1.3.6.1.2.1.1.2.0]','10450','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','66afc3c4f48e4e008c323c46afd38b21','0','2','0'),
('40959','20','get[1.3.6.1.2.1.1.6.0]','10450','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0fc01029ea6c491690c76be5b4a1a10f','0','2','0'),
('40960','3','','10450','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','17ef5c841e254cf399f05b4a1ebfbddd','0','2','0'),
('40961','20','get[1.3.6.1.2.1.1.1.0]','10450','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0bba1b52c87d47119974e30e373423c6','0','2','0'),
('40962','20','get[1.3.6.1.2.1.1.4.0]','10450','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2c510a601eb34626bdcc105dc6e88083','0','2','0'),
('40963','17','','10450','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ad29673a93724660bbf7f34cc8b9b103','0','2','0'),
('40964','3','','10450','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b85868ac7f9646f9b8a672ca0a047dd9','0','2','0'),
('40965','5','','10450','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'669','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d2a7924b19e14fb5a0adea4664cddb52','0','2','0'),
('40976','3','','10451','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'672','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','70022c25c1ed4af49c878af7f2c5b73c','0','2','0'),
('40977','20','get[1.3.6.1.2.1.1.5.0]','10451','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','651753ff590d41a7b7478ca98ec9b0d9','0','2','0'),
('40978','20','get[1.3.6.1.2.1.1.3.0]','10451','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8fd10918d51640619279d5874e06e20b','0','2','0'),
('40979','20','get[1.3.6.1.2.1.1.2.0]','10451','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','744a4d413ff74ffea13e0d6a0813eeee','0','2','0'),
('40980','20','get[1.3.6.1.2.1.1.6.0]','10451','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bb4e80a9dfaf4165abac4fa360e77bf3','0','2','0'),
('40981','3','','10451','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f22e586a94424cb18483170ffa9f8b33','0','2','0'),
('40982','20','get[1.3.6.1.2.1.1.1.0]','10451','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4d011e0751664b31b216329a1963afc2','0','2','0'),
('40983','20','get[1.3.6.1.2.1.1.4.0]','10451','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4f5b003c74924567972b75b3c240c16c','0','2','0'),
('40984','17','','10451','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7b02fde229c24c99a5ce8f9073717855','0','2','0'),
('40985','3','','10451','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cf38efbab9c84551bb15f0544fb57838','0','2','0'),
('40986','5','','10451','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'673','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','22fd5ba91f1d4297b07e4be7f420735a','0','2','0'),
('40997','3','','10452','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'676','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fa447fdbf6e7440381f73a55e244405c','0','2','0'),
('40998','20','get[1.3.6.1.2.1.1.5.0]','10452','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8891f56528a34481838f9a8303412b0d','0','2','0'),
('40999','20','get[1.3.6.1.2.1.1.3.0]','10452','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4d42c5c9972445889de6e09abfdbc847','0','2','0'),
('41000','20','get[1.3.6.1.2.1.1.2.0]','10452','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f91f4184edee42bbbd45dc23668946f2','0','2','0'),
('41001','20','get[1.3.6.1.2.1.1.6.0]','10452','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','252fc6ffddbf403a91e0bf1f558526d6','0','2','0'),
('41002','3','','10452','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7d502a4b55224f3b8b4323c568d34535','0','2','0'),
('41003','20','get[1.3.6.1.2.1.1.1.0]','10452','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','dfc51b19b72544d998a5c5ef6ca1c21e','0','2','0'),
('41004','20','get[1.3.6.1.2.1.1.4.0]','10452','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4f4699712b2547c68ce6f5cc0523c0d5','0','2','0'),
('41005','17','','10452','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3b3bc4be23664c91b61f835f5eb601ac','0','2','0'),
('41006','3','','10452','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5631c72ae88f4755822b993d42dd2c02','0','2','0'),
('41007','5','','10452','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'677','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7ddd377d90e34afe92e33df8be63b759','0','2','0'),
('41018','3','','10453','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'680','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','452c7c9d9aa64d71a41f74949ab0a233','0','2','0'),
('41019','20','get[1.3.6.1.2.1.1.5.0]','10453','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','05d02e7166c74b87ab67e2c76e9fa6dc','0','2','0'),
('41020','20','get[1.3.6.1.2.1.1.3.0]','10453','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ab98bfc1746743feb6ab0d4a21c1a3bf','0','2','0'),
('41021','20','get[1.3.6.1.2.1.1.2.0]','10453','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7fb0ffa57e5446e5912350700638e7a5','0','2','0'),
('41022','20','get[1.3.6.1.2.1.1.6.0]','10453','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','87a5ef8c320c46f2a8936e64e53b2c2e','0','2','0'),
('41023','3','','10453','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','84123d3f0fac4b178b3bb1cb878553e8','0','2','0'),
('41024','20','get[1.3.6.1.2.1.1.1.0]','10453','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','03977b99f6fd4723bc29ce6790deca0b','0','2','0'),
('41025','20','get[1.3.6.1.2.1.1.4.0]','10453','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','601f9df762134a84aa5e2509a58f0309','0','2','0'),
('41026','17','','10453','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','dcace506d88d437893b1b9fce0eaee89','0','2','0'),
('41027','3','','10453','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','be0dd1d97e0b4f14b0283899821795a3','0','2','0'),
('41028','5','','10453','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'681','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3fe54510eaa1418aba59a833bf93b5dd','0','2','0'),
('41039','3','','10454','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'684','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','42a75eedbb7e41209bdf0b77b410981e','0','2','0'),
('41040','20','get[1.3.6.1.2.1.1.5.0]','10454','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0f635b37975e45a88116436b46f76486','0','2','0'),
('41041','20','get[1.3.6.1.2.1.1.3.0]','10454','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c9d27f7a8a2a40699e0b013c5badcbc0','0','2','0'),
('41042','20','get[1.3.6.1.2.1.1.2.0]','10454','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a55661d0520a4a3686938402b9a39ecf','0','2','0'),
('41043','20','get[1.3.6.1.2.1.1.6.0]','10454','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','34303c8ce03c4b59bca308055c7d3506','0','2','0'),
('41044','3','','10454','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','29036393918345269f36aa4daba59823','0','2','0'),
('41045','20','get[1.3.6.1.2.1.1.1.0]','10454','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','267ee9321d50436f8c5a3ab6c1bbbfec','0','2','0'),
('41046','20','get[1.3.6.1.2.1.1.4.0]','10454','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b6a9d9049fef46c69ae2508892060a43','0','2','0'),
('41047','17','','10454','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7e58aff2b1704d99a73ecc607fbf286d','0','2','0'),
('41048','3','','10454','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ac362f04138e40b0b2611a66101cb6d7','0','2','0'),
('41049','5','','10454','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'685','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','048e394bc01149b4976b0bde0e5cfa62','0','2','0'),
('41060','3','','10455','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'688','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','32e1e322b3b34c7d9dc1cf7cac89f223','0','2','0'),
('41061','20','get[1.3.6.1.2.1.1.5.0]','10455','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9e21e99f85ec464cba6473f4c0d15e96','0','2','0'),
('41062','20','get[1.3.6.1.2.1.1.3.0]','10455','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cbb288d0de7c4732b74ff812698cccbc','0','2','0'),
('41063','20','get[1.3.6.1.2.1.1.2.0]','10455','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f48f704473374e1991267a007809ec00','0','2','0'),
('41064','20','get[1.3.6.1.2.1.1.6.0]','10455','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b5fbca72e7724e689c5563877e3beef1','0','2','0'),
('41065','3','','10455','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c0abc057afc84b459e0b5cfe43abbd03','0','2','0'),
('41066','20','get[1.3.6.1.2.1.1.1.0]','10455','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b9348f8739fc4296a19a92de49f261fc','0','2','0'),
('41067','20','get[1.3.6.1.2.1.1.4.0]','10455','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ffb768eca167467b910da993f38f3ca7','0','2','0'),
('41068','17','','10455','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9a30d3659344407ab31a3997e75e2c8a','0','2','0'),
('41069','3','','10455','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5302099600ae4973810fe71d21ab4533','0','2','0'),
('41070','5','','10455','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'689','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4c0d4bc7872847248c4659bf7f29dee1','0','2','0'),
('41081','3','','10456','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'692','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ee528734341c4cf8815442ca2762ad56','0','2','0'),
('41082','20','get[1.3.6.1.2.1.1.5.0]','10456','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','18bbaa17cf224712944aa4ccfd3c56f8','0','2','0'),
('41083','20','get[1.3.6.1.2.1.1.3.0]','10456','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','34d40f56c17541ddb276e773d0e39737','0','2','0'),
('41084','20','get[1.3.6.1.2.1.1.2.0]','10456','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a21804a0cb5549ea8f8b447802600aaa','0','2','0'),
('41085','20','get[1.3.6.1.2.1.1.6.0]','10456','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','966c104811674f4cbae586a8b5356247','0','2','0'),
('41086','3','','10456','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','20177d9560fd41518274117a8573fcbf','0','2','0'),
('41087','20','get[1.3.6.1.2.1.1.1.0]','10456','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1e0feae3c04e4736bf7a4485e36be60e','0','2','0'),
('41088','20','get[1.3.6.1.2.1.1.4.0]','10456','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1e20df1ba4f740768c5d167928b52a91','0','2','0'),
('41089','17','','10456','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5fc1581406334366ba038c350335c7af','0','2','0'),
('41090','3','','10456','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','47ded308c77c4cbba98051665f09a378','0','2','0'),
('41091','5','','10456','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'693','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f77c57fb2dca4391ba2d741ef636b0cd','0','2','0'),
('41102','3','','10457','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'696','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d7b2d9c7f8dc4b7a8ff57b129af585b2','0','2','0'),
('41103','20','get[1.3.6.1.2.1.1.5.0]','10457','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','74e4c3fb1719453faa539e5c4c03e725','0','2','0'),
('41104','20','get[1.3.6.1.2.1.1.3.0]','10457','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','95869b7593644ccebab3fc2bb81f493c','0','2','0'),
('41105','20','get[1.3.6.1.2.1.1.2.0]','10457','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9a33a5e56bcf422fa357fdb664a93d03','0','2','0'),
('41106','20','get[1.3.6.1.2.1.1.6.0]','10457','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b4c93df60aca48ffa7b7f67b58918b5f','0','2','0'),
('41107','3','','10457','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d6a55e92ef1f49669df5641093aefbdd','0','2','0'),
('41108','20','get[1.3.6.1.2.1.1.1.0]','10457','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9264b3ce82d648fbb209fd11a0d7069c','0','2','0'),
('41109','20','get[1.3.6.1.2.1.1.4.0]','10457','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','451ed0953b82410797051f377fda6e5b','0','2','0'),
('41110','17','','10457','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','972afbe794124caa8fd35b44856c4b73','0','2','0'),
('41111','3','','10457','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b784087e681644f68b96f4d7a041e57e','0','2','0'),
('41112','5','','10457','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'697','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6fe6e7afa7bd42269e6b7e49661d1c3f','0','2','0'),
('41123','3','','10458','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'700','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','244e7111eefb48c98b1410eb53690989','0','2','0'),
('41124','20','get[1.3.6.1.2.1.1.5.0]','10458','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','09fdf7b507614abe811670bb36c20aec','0','2','0'),
('41125','20','get[1.3.6.1.2.1.1.3.0]','10458','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f57e6a6b360b4844be4c125c44f4b799','0','2','0'),
('41126','20','get[1.3.6.1.2.1.1.2.0]','10458','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','241278e60289451ba100834fcb41b04b','0','2','0'),
('41127','20','get[1.3.6.1.2.1.1.6.0]','10458','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4d85307924e84fe8ab5cecb8ee8afead','0','2','0'),
('41128','3','','10458','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','30907fe670ce46ad957b199bc58534bf','0','2','0'),
('41129','20','get[1.3.6.1.2.1.1.1.0]','10458','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b022eea34d6d4e46b403e3e6eb1df42e','0','2','0'),
('41130','20','get[1.3.6.1.2.1.1.4.0]','10458','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8bd0bba343264b6fa43c1c99d39f4bdc','0','2','0'),
('41131','17','','10458','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7215e2ee187f45439e367c0ee9b78fd8','0','2','0'),
('41132','3','','10458','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','20d51d89f4604f6f8f56f1de7dcbb5cf','0','2','0'),
('41133','5','','10458','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'701','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7a54976f73f14c0cacff759a406806a9','0','2','0'),
('41144','3','','10459','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'704','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fe29736edd494d61ac4339ed5234bbdf','0','2','0'),
('41145','20','get[1.3.6.1.2.1.1.5.0]','10459','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','234bbf0b94ae4efe9e0708ef7748a592','0','2','0'),
('41146','20','get[1.3.6.1.2.1.1.3.0]','10459','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','15665fae5ef043d2b39863ae3148f5da','0','2','0'),
('41147','20','get[1.3.6.1.2.1.1.2.0]','10459','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a947ad3c3e634a4185ed7e4d80ac2b11','0','2','0'),
('41148','20','get[1.3.6.1.2.1.1.6.0]','10459','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cfbb37cb51c94191a8812b4fc18846c9','0','2','0'),
('41149','3','','10459','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','dcda1847f1324215ace997f21e2c9136','0','2','0'),
('41150','20','get[1.3.6.1.2.1.1.1.0]','10459','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e2610c67fd0546d0a4f6d44515c38bfa','0','2','0'),
('41151','20','get[1.3.6.1.2.1.1.4.0]','10459','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','77a875ad0d3348618ad166e13df8859c','0','2','0'),
('41152','17','','10459','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bd102e739e6d4ec183d94d8965f9c0da','0','2','0'),
('41153','3','','10459','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5505dcdce64f4d4bafc65250fdc44d55','0','2','0'),
('41154','5','','10459','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'705','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b7d3a7a170bc417190109ee6316f14e2','0','2','0'),
('41165','3','','10460','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'708','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9d1eadf8cb614f7db24af010754ecea5','0','2','0'),
('41166','20','get[1.3.6.1.2.1.1.5.0]','10460','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a1cfc4a89a29405790c8004648397c16','0','2','0'),
('41167','20','get[1.3.6.1.2.1.1.3.0]','10460','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','acec0fba9acb475298c23815478e1232','0','2','0'),
('41168','20','get[1.3.6.1.2.1.1.2.0]','10460','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','68aaafe3efc449c1b718af4da8675d76','0','2','0'),
('41169','20','get[1.3.6.1.2.1.1.6.0]','10460','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fc1ac08bab0c482f85f7666c9f932863','0','2','0'),
('41170','3','','10460','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','747a11088cdb4336acde1a3db6b6fb0a','0','2','0'),
('41171','20','get[1.3.6.1.2.1.1.1.0]','10460','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','14a7067e6be141af97af075439c741a0','0','2','0'),
('41172','20','get[1.3.6.1.2.1.1.4.0]','10460','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','07ed423ecd90404da796326fdf88d59f','0','2','0'),
('41173','17','','10460','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','03477df2c6a54edbb33043e0ad372aca','0','2','0'),
('41174','3','','10460','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5511b24404044a999a4e63b5742fba69','0','2','0'),
('41175','5','','10460','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'709','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','37dad400826443b9a70df99c46cadb7b','0','2','0'),
('41186','3','','10461','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'712','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','805fba01bb75425d98471a62dfe2aec2','0','2','0'),
('41187','20','get[1.3.6.1.2.1.1.5.0]','10461','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b8600abc5e0a47ab821b656b2b781654','0','2','0'),
('41188','20','get[1.3.6.1.2.1.1.3.0]','10461','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6d23ba015bfa40a180851bd0a8e4ead7','0','2','0'),
('41189','20','get[1.3.6.1.2.1.1.2.0]','10461','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','eb2be7f070704027a3bc190da2937f5a','0','2','0'),
('41190','20','get[1.3.6.1.2.1.1.6.0]','10461','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4578904cc2cd43af9f537ceef6307403','0','2','0'),
('41191','3','','10461','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0855d5a498274c078e8d2725b613f491','0','2','0'),
('41192','20','get[1.3.6.1.2.1.1.1.0]','10461','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a4366a2506b64e07984fe3a3e1f1ecb6','0','2','0'),
('41193','20','get[1.3.6.1.2.1.1.4.0]','10461','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','47b25b5beacc4890b8e3218ec26482a9','0','2','0'),
('41194','17','','10461','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ceb8ab85069b4c7ca7c6517cf0c5b9d5','0','2','0'),
('41195','3','','10461','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','58c2d3109593425ca65b1da7b93de738','0','2','0'),
('41196','5','','10461','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'713','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','506984ef2c14483cbfa7ab7e126cd258','0','2','0'),
('41207','3','','10462','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'716','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9cb91d0e91ad4ea0980915a55042a92c','0','2','0'),
('41208','20','get[1.3.6.1.2.1.1.5.0]','10462','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c549da27ab6741619d96c0473b6e5e81','0','2','0'),
('41209','20','get[1.3.6.1.2.1.1.3.0]','10462','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','dd1816fc79704e6687bb841d729695c7','0','2','0'),
('41210','20','get[1.3.6.1.2.1.1.2.0]','10462','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8204bf9e17794dc1994d657baaafa62d','0','2','0'),
('41211','20','get[1.3.6.1.2.1.1.6.0]','10462','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8d7d12e82d0141e7919135d93e955d02','0','2','0'),
('41212','3','','10462','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7871185930284f9eb03c359baf2cd703','0','2','0'),
('41213','20','get[1.3.6.1.2.1.1.1.0]','10462','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d2c1cba3782e48e8a416e6bf5126de26','0','2','0'),
('41214','20','get[1.3.6.1.2.1.1.4.0]','10462','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','787629e255a043ec89a9235792af48e8','0','2','0'),
('41215','17','','10462','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3d716d3580c24e49834f8b7927a62f18','0','2','0'),
('41216','3','','10462','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','701c51a923e940b288bc486df8bcb896','0','2','0'),
('41217','5','','10462','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'717','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','62a7b8240f65452db1b62ebd3e608328','0','2','0'),
('41228','3','','10463','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'720','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','850f48b6cbe44d419363a581abb968f8','0','2','0'),
('41229','20','get[1.3.6.1.2.1.1.5.0]','10463','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bd417ca6edeb4e7bbf446b8a3d003e7a','0','2','0'),
('41230','20','get[1.3.6.1.2.1.1.3.0]','10463','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','479d3825a16b4060a06b3bba21515a9c','0','2','0'),
('41231','20','get[1.3.6.1.2.1.1.2.0]','10463','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3fadb391f77d44d099b0f1f7b51f8062','0','2','0'),
('41232','20','get[1.3.6.1.2.1.1.6.0]','10463','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','dee2119103e640eab76243f6ff769c77','0','2','0'),
('41233','3','','10463','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6ab02f2204e94d9fa90e905c70312544','0','2','0'),
('41234','20','get[1.3.6.1.2.1.1.1.0]','10463','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7f69a36c9c86495bb84eb1e4768520bb','0','2','0'),
('41235','20','get[1.3.6.1.2.1.1.4.0]','10463','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a0396c448a24457583dcb11a7847731c','0','2','0'),
('41236','17','','10463','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9bad59edc7f9432988cf286b5497a7e4','0','2','0'),
('41237','3','','10463','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fb7fad1847eb4df9a2c26f60f61afa5c','0','2','0'),
('41238','5','','10463','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'721','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','769ce4d237c043a2a86af0a66ff06a1a','0','2','0'),
('41249','3','','10464','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'724','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8a3ff0b65daf4c47999b0f9877339b47','0','2','0'),
('41250','20','get[1.3.6.1.2.1.1.5.0]','10464','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c1bebf0a8a444b84a94f2edf0a631a4f','0','2','0'),
('41251','20','get[1.3.6.1.2.1.1.3.0]','10464','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','66bffe7a0b8041b1aca4609cfebaa924','0','2','0'),
('41252','20','get[1.3.6.1.2.1.1.2.0]','10464','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4ccdb09d16244ab990eb187ed7c06248','0','2','0'),
('41253','20','get[1.3.6.1.2.1.1.6.0]','10464','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c911a3f7ceb740719933b255aa78a86e','0','2','0'),
('41254','3','','10464','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','710be8da30564d90816b724c4aa409f4','0','2','0'),
('41255','20','get[1.3.6.1.2.1.1.1.0]','10464','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','419bf63514994b58abba6586d4241c72','0','2','0'),
('41256','20','get[1.3.6.1.2.1.1.4.0]','10464','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','52453d3272f04c1b90334407a44ed110','0','2','0'),
('41257','17','','10464','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fd5785cc745a4c23b36e7b88920cb677','0','2','0'),
('41258','3','','10464','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9a37178d9a534fbca0c71e7f6387b718','0','2','0'),
('41259','5','','10464','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'725','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3d39d94dbe8b42f9a2dd6d726f04e6fb','0','2','0'),
('41270','3','','10465','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'728','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','743501d05f1540d681f8112a805f1a0d','0','2','0'),
('41271','20','get[1.3.6.1.2.1.1.5.0]','10465','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6edc651f2acd4a718b1802aec08cad0f','0','2','0'),
('41272','20','get[1.3.6.1.2.1.1.3.0]','10465','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3afb18b2452e45778ce5cdaa20bf58b8','0','2','0'),
('41273','20','get[1.3.6.1.2.1.1.2.0]','10465','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','590c0449f2fe40999ac2d758bfa60058','0','2','0'),
('41274','20','get[1.3.6.1.2.1.1.6.0]','10465','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e0e2d52ad8cd41dd92a97669e89c5fc6','0','2','0'),
('41275','3','','10465','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','21ee91bb65fc4b6bbb83c1e35558b7d1','0','2','0'),
('41276','20','get[1.3.6.1.2.1.1.1.0]','10465','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c6403a32598e400db8084d77083d1621','0','2','0'),
('41277','20','get[1.3.6.1.2.1.1.4.0]','10465','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','adabeec14fdb405495907ef6771a11a1','0','2','0'),
('41278','17','','10465','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2dff60db5ff640839ebfddbc68c72243','0','2','0'),
('41279','3','','10465','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f13323a6a0e84d2c865f4bf2d5e59f79','0','2','0'),
('41280','5','','10465','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'729','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','752fd8bdeaed449484add53bf1cfbcd7','0','2','0'),
('41291','3','','10466','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'732','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f32e2f3c5177420098c4d49d41efff73','0','2','0'),
('41292','20','get[1.3.6.1.2.1.1.5.0]','10466','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1a852e5ecb4745e4aaf6d819c8614c0c','0','2','0'),
('41293','20','get[1.3.6.1.2.1.1.3.0]','10466','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a8f78c05de534873a8cb2250c528387b','0','2','0'),
('41294','20','get[1.3.6.1.2.1.1.2.0]','10466','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1f4839491fae42fd96d63f960486dc02','0','2','0'),
('41295','20','get[1.3.6.1.2.1.1.6.0]','10466','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c8656758df544bccae950414c2adb969','0','2','0'),
('41296','3','','10466','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e23f070baecf4e85bfd4b919a313363f','0','2','0'),
('41297','20','get[1.3.6.1.2.1.1.1.0]','10466','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','87adae25334a4965a6d03f5c611d8359','0','2','0'),
('41298','20','get[1.3.6.1.2.1.1.4.0]','10466','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2fed3da1b4d646cfab6e0249e2cb9c6c','0','2','0'),
('41299','17','','10466','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ddc1215a46464ed6b5e379d243816bc4','0','2','0'),
('41300','3','','10466','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','19cb2bfb6b5a4aa48f38a6346ad1832f','0','2','0'),
('41301','5','','10466','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'733','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6ff75377e11348e7be6e65301ba29aaa','0','2','0'),
('41312','3','','10467','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'736','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','84648b17d61b4faebfd5861a0fd1afe6','0','2','0'),
('41313','20','get[1.3.6.1.2.1.1.5.0]','10467','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','83cb30ef232d46f79f01c47ae7477270','0','2','0'),
('41314','20','get[1.3.6.1.2.1.1.3.0]','10467','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2b284f4d96704b71920bc8b3beac050c','0','2','0'),
('41315','20','get[1.3.6.1.2.1.1.2.0]','10467','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1c220049b4b94d08b35e03fde9111ded','0','2','0'),
('41316','20','get[1.3.6.1.2.1.1.6.0]','10467','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1e385c4c4f7145d1a7973fe1f7dcc1ed','0','2','0'),
('41317','3','','10467','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','896f08cd051e41a8bbb0f63fd1a23bb8','0','2','0'),
('41318','20','get[1.3.6.1.2.1.1.1.0]','10467','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','14055a3a922f43c083ec97dcb8899085','0','2','0'),
('41319','20','get[1.3.6.1.2.1.1.4.0]','10467','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','44e64e9c36ce40d7b2a2138dab8030ee','0','2','0'),
('41320','17','','10467','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','035cd00faa4b48d69b8ba9d93d5adb1a','0','2','0'),
('41321','3','','10467','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','209d4503520a4a61a183f7f1c303a801','0','2','0'),
('41322','5','','10467','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'737','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3616f93a2ed449e38d95722f4e318497','0','2','0'),
('41333','3','','10468','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'740','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1b8d0df3c9a2401488a12c5d051de0a4','0','2','0'),
('41334','20','get[1.3.6.1.2.1.1.5.0]','10468','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0a4d7bb40fbb49c48d210e763b3f2426','0','2','0'),
('41335','20','get[1.3.6.1.2.1.1.3.0]','10468','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0c36805ca5cd40d099060ee447cb85db','0','2','0'),
('41336','20','get[1.3.6.1.2.1.1.2.0]','10468','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a307185251ec4bb7a2fafc41fabf7eee','0','2','0'),
('41337','20','get[1.3.6.1.2.1.1.6.0]','10468','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0f0dfeaaac954d2fbc3a6b20dc756c59','0','2','0'),
('41338','3','','10468','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3b909ebca73b4baa9364db355d5e59d7','0','2','0'),
('41339','20','get[1.3.6.1.2.1.1.1.0]','10468','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6b823352365a4b4da3437839445f7373','0','2','0'),
('41340','20','get[1.3.6.1.2.1.1.4.0]','10468','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','46ec5face2a247c68467116594f4ed53','0','2','0'),
('41341','17','','10468','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2c3c5ede40d241669525c556c59faa95','0','2','0'),
('41342','3','','10468','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','29d7a47ae93d4911991c092032c1ee9b','0','2','0'),
('41343','5','','10468','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'741','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1620fd9982ed4e27a2e4bfcff915765e','0','2','0'),
('41354','3','','10469','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'744','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ba6ae11c71a94ea6858663030b8ce445','0','2','0'),
('41355','20','get[1.3.6.1.2.1.1.5.0]','10469','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4c1fbb2ffa0246f7be58fd4d82f6009e','0','2','0'),
('41356','20','get[1.3.6.1.2.1.1.3.0]','10469','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7bd86e80b5154212bc883dc5bd15cad7','0','2','0'),
('41357','20','get[1.3.6.1.2.1.1.2.0]','10469','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2d1e9c027c0e40faa7ba792de117eafb','0','2','0'),
('41358','20','get[1.3.6.1.2.1.1.6.0]','10469','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','50d138e88427408a858322b2a3d31d78','0','2','0'),
('41359','3','','10469','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cf937bb3e6524714a037c79e3fd09982','0','2','0'),
('41360','20','get[1.3.6.1.2.1.1.1.0]','10469','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c0f09ce0c4d7454dab1474a606de48a0','0','2','0'),
('41361','20','get[1.3.6.1.2.1.1.4.0]','10469','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','03af1591f3af444781a6a3e058de7dd6','0','2','0'),
('41362','17','','10469','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a018cf2626764f17853a526f5b6d574e','0','2','0'),
('41363','3','','10469','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f5b621e08b5e41949dde460f61ef5458','0','2','0'),
('41364','5','','10469','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'745','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3687b61660ab43ba9abd8be56f5de6aa','0','2','0'),
('41375','3','','10470','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'748','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','41e58aa91bc74509aad190e0c07a7afe','0','2','0'),
('41376','20','get[1.3.6.1.2.1.1.5.0]','10470','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','50e9e01258084593a5c0e55d5c3ea50b','0','2','0'),
('41377','20','get[1.3.6.1.2.1.1.3.0]','10470','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','61ada578e2654f2b9773e86ac7f9f5a7','0','2','0'),
('41378','20','get[1.3.6.1.2.1.1.2.0]','10470','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5a20282446cc4ec797860f33e6767712','0','2','0'),
('41379','20','get[1.3.6.1.2.1.1.6.0]','10470','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','10d7ca748c1c4363a7d0ea997de8bbb7','0','2','0'),
('41380','3','','10470','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','97c6159702a5412c87ee2d42602a4ead','0','2','0'),
('41381','20','get[1.3.6.1.2.1.1.1.0]','10470','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','23d51bb62dd24ddbb8d8332ddd62aac7','0','2','0'),
('41382','20','get[1.3.6.1.2.1.1.4.0]','10470','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8e0533aa1f3e48ce8b5a6a2ad388cf32','0','2','0'),
('41383','17','','10470','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','18144ae33c344636a8c8f496f9d31769','0','2','0'),
('41384','3','','10470','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fd7a6cdbb0b94c7d9d9584873427027d','0','2','0'),
('41385','5','','10470','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'749','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2dc35ca9c25146eb9d5955bdb338fbf4','0','2','0'),
('41396','3','','10471','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'752','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7e700116048d4392a71946764268fce8','0','2','0'),
('41397','20','get[1.3.6.1.2.1.1.5.0]','10471','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','72e38e1011654a3eb413f133169b3811','0','2','0'),
('41398','20','get[1.3.6.1.2.1.1.3.0]','10471','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','edbcea616a6d459898cae926963e9ee4','0','2','0'),
('41399','20','get[1.3.6.1.2.1.1.2.0]','10471','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b5c8153787384711ae6fde2c1d9cd45c','0','2','0'),
('41400','20','get[1.3.6.1.2.1.1.6.0]','10471','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0e41c468f5db44bcab6f8e1a078e5309','0','2','0'),
('41401','3','','10471','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5408eda422114912937f6810b5746f71','0','2','0'),
('41402','20','get[1.3.6.1.2.1.1.1.0]','10471','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','aff391166f0d4e13b3d047143446c9ff','0','2','0'),
('41403','20','get[1.3.6.1.2.1.1.4.0]','10471','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','417db3f4da664196a5cd40b3f7d65caa','0','2','0'),
('41404','17','','10471','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','75bbba08fdf14ff190d0ea4f9e23d3bd','0','2','0'),
('41405','3','','10471','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5ec629ad1b1a44ceb3b138d84eb2d99d','0','2','0'),
('41406','5','','10471','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'753','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ea1305a4dbf94c848271814a5c3d08c4','0','2','0'),
('41417','3','','10472','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'756','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cb5c19012cfd413fb280ccf6f2754f65','0','2','0'),
('41418','20','get[1.3.6.1.2.1.1.5.0]','10472','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1db5d107bd1f4395b1e746ee9a345f21','0','2','0'),
('41419','20','get[1.3.6.1.2.1.1.3.0]','10472','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','83a1109159ca4513ba278a3c290d10b9','0','2','0'),
('41420','20','get[1.3.6.1.2.1.1.2.0]','10472','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b1b6c41064924674b43851832fbb7b10','0','2','0'),
('41421','20','get[1.3.6.1.2.1.1.6.0]','10472','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a8e5af6ef52d457098ff5a9cd10a30da','0','2','0'),
('41422','3','','10472','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','877d543f8a0040a7bf6b48c734f9622f','0','2','0'),
('41423','20','get[1.3.6.1.2.1.1.1.0]','10472','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','743f06984d5549d2832c55914d3cbc5e','0','2','0'),
('41424','20','get[1.3.6.1.2.1.1.4.0]','10472','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ee5e1ba0c8d94747a0da617ba01fd998','0','2','0'),
('41425','17','','10472','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','237fc861aa3b4a33ac6b1b4aee3f05b0','0','2','0'),
('41426','3','','10472','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','689a05d4bdec404abea16439908b9b22','0','2','0'),
('41427','5','','10472','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'757','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8161db2e10c84693961e742fda8a7fa2','0','2','0'),
('41438','3','','10473','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'760','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','794bf23a9839416bae6c2d04489eeaf3','0','2','0'),
('41439','20','get[1.3.6.1.2.1.1.5.0]','10473','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','37b571d2c80e484d826ab688768d2036','0','2','0'),
('41440','20','get[1.3.6.1.2.1.1.3.0]','10473','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d2fbbaae58704270b5fc8d04bca76209','0','2','0'),
('41441','20','get[1.3.6.1.2.1.1.2.0]','10473','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b2c67ce1f337481e9ffe6a1f3c467c8c','0','2','0'),
('41442','20','get[1.3.6.1.2.1.1.6.0]','10473','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8a856d5811924020a98ce56910cb52af','0','2','0'),
('41443','3','','10473','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e563c3cb4a254b70a6f034fc81c2f672','0','2','0'),
('41444','20','get[1.3.6.1.2.1.1.1.0]','10473','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d668a2c3ee2b49629f4520b3627e5cc1','0','2','0'),
('41445','20','get[1.3.6.1.2.1.1.4.0]','10473','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e170bed368914833917c81d70fea7e1c','0','2','0'),
('41446','17','','10473','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','88f1d48a273f4400930efd1086b61b64','0','2','0'),
('41447','3','','10473','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a3a45a21356644f7bccced62a2d8ce3b','0','2','0'),
('41448','5','','10473','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'761','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','641ccd0e5ec8454bb0bc62d3e8362cc2','0','2','0'),
('41459','3','','10474','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'764','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9afb4d3954164976aad193e27dcc08b7','0','2','0'),
('41460','20','get[1.3.6.1.2.1.1.5.0]','10474','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','53e45ee656db47afabc6ad18d3f61c37','0','2','0'),
('41461','20','get[1.3.6.1.2.1.1.3.0]','10474','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','54d630b4d80e4ac0a9942630a80b14d8','0','2','0'),
('41462','20','get[1.3.6.1.2.1.1.2.0]','10474','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b6aacb1fd6b8413f837f2cb3b1977a22','0','2','0'),
('41463','20','get[1.3.6.1.2.1.1.6.0]','10474','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4445d982dc354baf8c7649ab9250b3f9','0','2','0'),
('41464','3','','10474','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ead664e6adfc4911854075c0c173ea88','0','2','0'),
('41465','20','get[1.3.6.1.2.1.1.1.0]','10474','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1a35e1108dbd47b4bd818668e5523aec','0','2','0'),
('41466','20','get[1.3.6.1.2.1.1.4.0]','10474','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','714588b12797482192a786a131dab9f6','0','2','0'),
('41467','17','','10474','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a3e60d1ff0444f0485f3b41100f21c15','0','2','0'),
('41468','3','','10474','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','95ca4a96e93d4d8cb4d1d9d97b711231','0','2','0'),
('41469','5','','10474','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'765','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bd170bcf34104168884e123da7ed93da','0','2','0'),
('41480','3','','10475','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'768','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1d202d0a1c0d45d09a995ef741176869','0','2','0'),
('41481','20','get[1.3.6.1.2.1.1.5.0]','10475','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7731343e3a584e4cba4241f6114f1b12','0','2','0'),
('41482','20','get[1.3.6.1.2.1.1.3.0]','10475','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','38d674115439443a848b43c72e71a345','0','2','0'),
('41483','20','get[1.3.6.1.2.1.1.2.0]','10475','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fa9788e34ffe4107bf7b1d72008af5e6','0','2','0'),
('41484','20','get[1.3.6.1.2.1.1.6.0]','10475','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8539d2a032e741b1845d6423772600ec','0','2','0'),
('41485','3','','10475','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ec3285050dd44b47b648f9c61ab8c9e4','0','2','0'),
('41486','20','get[1.3.6.1.2.1.1.1.0]','10475','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1caa3bcecbf441d4bdea4e1adcfd399d','0','2','0'),
('41487','20','get[1.3.6.1.2.1.1.4.0]','10475','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bb4b0528c6c946b49f5b7a8da8cbabe0','0','2','0'),
('41488','17','','10475','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6460447c65a6427cafd53e618d5d7bc1','0','2','0'),
('41489','3','','10475','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b71903a18c4246238d7e9a8e99904794','0','2','0'),
('41490','5','','10475','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'769','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4087946c74884ef085a79fe174495646','0','2','0'),
('41501','3','','10476','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'772','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','24ab31dd7fd44ed5a5fd22e02fca0a11','0','2','0'),
('41502','20','get[1.3.6.1.2.1.1.5.0]','10476','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','139496c157af4e12b28ca337ca60c7fa','0','2','0'),
('41503','20','get[1.3.6.1.2.1.1.3.0]','10476','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3137916543634345a5688f631657fa30','0','2','0'),
('41504','20','get[1.3.6.1.2.1.1.2.0]','10476','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','78f353c258764fa69637afe7f8ab440b','0','2','0'),
('41505','20','get[1.3.6.1.2.1.1.6.0]','10476','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cd48a08f2b4a4dd3961488a00424fcce','0','2','0'),
('41506','3','','10476','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','80ab3090289a481da72c0d93764eb18a','0','2','0'),
('41507','20','get[1.3.6.1.2.1.1.1.0]','10476','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d0db3ce8a567414a96bbe5b02b1967dd','0','2','0'),
('41508','20','get[1.3.6.1.2.1.1.4.0]','10476','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9ad920cf294a4fcbaa78ea4f01385588','0','2','0'),
('41509','17','','10476','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','197098286a9b4b6bac5bd79a4f0eb522','0','2','0'),
('41510','3','','10476','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','15552636da9a40b6b2bec461798f3c0d','0','2','0'),
('41511','5','','10476','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'773','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e01e3b3a9db44d2db55ae6d289d963c4','0','2','0'),
('41522','3','','10477','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'776','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','394f2cd81cc747009c16e0fa7c7febc1','0','2','0'),
('41523','20','get[1.3.6.1.2.1.1.5.0]','10477','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2f54cf3f5bfd41d29b46887c8de02df3','0','2','0'),
('41524','20','get[1.3.6.1.2.1.1.3.0]','10477','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bce151f2eece481ab9ff10bd492ec514','0','2','0'),
('41525','20','get[1.3.6.1.2.1.1.2.0]','10477','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','45d0902fc8764108983d75f51a7c13ca','0','2','0'),
('41526','20','get[1.3.6.1.2.1.1.6.0]','10477','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','49a731f14f3b4bae8f16eb6a7a5d3b7a','0','2','0'),
('41527','3','','10477','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','513874d2dce848fca9d5be0f8a698a27','0','2','0'),
('41528','20','get[1.3.6.1.2.1.1.1.0]','10477','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','38a1523e8ce54611842e76fd4f614c15','0','2','0'),
('41529','20','get[1.3.6.1.2.1.1.4.0]','10477','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d83e355ae790441594a2ca6d5ec37de0','0','2','0'),
('41530','17','','10477','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','93d399db31b64d36bfe87a1f99195663','0','2','0'),
('41531','3','','10477','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5261e46912184a41a32c3d309cd8554c','0','2','0'),
('41532','5','','10477','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'777','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7c119d5bedb542f288fe4a04dc629b94','0','2','0'),
('41543','3','','10478','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'780','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8075b9b02fb14be1888ed2a64775f7eb','0','2','0'),
('41544','20','get[1.3.6.1.2.1.1.5.0]','10478','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','52a05ea08b8640f784861b5b2b75dfa8','0','2','0'),
('41545','20','get[1.3.6.1.2.1.1.3.0]','10478','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','848026e8f903413d8faecf0233d69a8e','0','2','0'),
('41546','20','get[1.3.6.1.2.1.1.2.0]','10478','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','06a2d329ae384c8fb773719c34593d0f','0','2','0'),
('41547','20','get[1.3.6.1.2.1.1.6.0]','10478','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','dd009a8b6f2d409c89cd5f5c60bea1b8','0','2','0'),
('41548','3','','10478','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','581804928209426ab53c232419f0d201','0','2','0'),
('41549','20','get[1.3.6.1.2.1.1.1.0]','10478','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4d3eab41a8c845a7bfbe5dbb3b6fd45b','0','2','0'),
('41550','20','get[1.3.6.1.2.1.1.4.0]','10478','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a79df3796e4b4f5183a8ee38d554843f','0','2','0'),
('41551','17','','10478','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0f21accc1a4247e9951b6c0d8b9a49af','0','2','0'),
('41552','3','','10478','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','919171c77ef34d96b071d04c279d467f','0','2','0'),
('41553','5','','10478','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'781','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e77993cb5e6f4b71a7fb71cd85ea548a','0','2','0'),
('41564','3','','10479','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'784','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b919a35c522a4e578e4141f3c418d516','0','2','0'),
('41565','20','get[1.3.6.1.2.1.1.5.0]','10479','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','05efe5444887488cad6e765f29c8872a','0','2','0'),
('41566','20','get[1.3.6.1.2.1.1.3.0]','10479','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bc75baec3ea248e5a287b00906e18775','0','2','0'),
('41567','20','get[1.3.6.1.2.1.1.2.0]','10479','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2cdbeb7f0c09494996884bcfd5d97df0','0','2','0'),
('41568','20','get[1.3.6.1.2.1.1.6.0]','10479','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6ee460010096474e9a574efba9f5a321','0','2','0'),
('41569','3','','10479','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8173ce900a384eb6be5941be7ab89b15','0','2','0'),
('41570','20','get[1.3.6.1.2.1.1.1.0]','10479','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b8f058b9f1cb493798fb971c1d06f0d8','0','2','0'),
('41571','20','get[1.3.6.1.2.1.1.4.0]','10479','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','44ae86def1564418a90f4c4a4c0b9e85','0','2','0'),
('41572','17','','10479','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b5d724ef958b4716b09dcbda5ae0ced7','0','2','0'),
('41573','3','','10479','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ad7aa85d14834683b63b43cf48222259','0','2','0'),
('41574','5','','10479','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'785','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5534d6b602624c7a99c70c3b75e4478b','0','2','0'),
('41585','3','','10480','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'788','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c5cc6ac52ea14002b65acbddf9f48045','0','2','0'),
('41586','20','get[1.3.6.1.2.1.1.5.0]','10480','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','59b1e8b64a30407b9e503f94c4b13b8a','0','2','0'),
('41587','20','get[1.3.6.1.2.1.1.3.0]','10480','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c952f3c5768d4bdfa671ffb047968fd6','0','2','0'),
('41588','20','get[1.3.6.1.2.1.1.2.0]','10480','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6f192955e5c64c958f6c7a0564a51d0a','0','2','0'),
('41589','20','get[1.3.6.1.2.1.1.6.0]','10480','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2e0fbbb7dc1d42a199b04261af201a07','0','2','0'),
('41590','3','','10480','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','99b96d870f9e473f82d753e73e5a0662','0','2','0'),
('41591','20','get[1.3.6.1.2.1.1.1.0]','10480','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','98e095b208874cadb7de6380a0b28166','0','2','0'),
('41592','20','get[1.3.6.1.2.1.1.4.0]','10480','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6e1f3e5e1fd2426eb057cd3e6d857826','0','2','0'),
('41593','17','','10480','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d933122252654a9f9f9c6eb8a62f2de0','0','2','0'),
('41594','3','','10480','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','02d39b670ab94ee2a915c2b33aae5b47','0','2','0'),
('41595','5','','10480','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'789','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ac42b3af7d964b16a44b8553e09b5e4e','0','2','0'),
('41606','3','','10481','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'792','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bbdbcca7ead1408f93dda57b8dfab21e','0','2','0'),
('41607','20','get[1.3.6.1.2.1.1.5.0]','10481','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','967b9b8b943d4fb79ff7075d6bb1e31a','0','2','0'),
('41608','20','get[1.3.6.1.2.1.1.3.0]','10481','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','35e0a5603e7c43609c0405135dbaa957','0','2','0'),
('41609','20','get[1.3.6.1.2.1.1.2.0]','10481','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','277a7aa61ce241c089dc5367e9a5e0c3','0','2','0'),
('41610','20','get[1.3.6.1.2.1.1.6.0]','10481','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','72ed8c2083474e38823957e17ca41971','0','2','0'),
('41611','3','','10481','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4d2850a0021b47f581630fdfbba20ea2','0','2','0'),
('41612','20','get[1.3.6.1.2.1.1.1.0]','10481','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bc3fea02652d4c5d82c2179313cc8987','0','2','0'),
('41613','20','get[1.3.6.1.2.1.1.4.0]','10481','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6c3eb8d3da7d437eb04be7c3782c9322','0','2','0'),
('41614','17','','10481','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c9683aa4310744b7889c2e5f8ca7d967','0','2','0'),
('41615','3','','10481','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8c4bc8d2cbcc4433bb59db4137f9ae9d','0','2','0'),
('41616','5','','10481','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'793','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0604fe933a364f40bf3f964f2ba7f6d7','0','2','0'),
('41627','3','','10482','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'796','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3034f0f82fb140fa944491b4627e8187','0','2','0'),
('41628','20','get[1.3.6.1.2.1.1.5.0]','10482','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','84a2ef84a1614afba525253263fcdea4','0','2','0'),
('41629','20','get[1.3.6.1.2.1.1.3.0]','10482','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fea0f7388a314d939626739b0ddf5186','0','2','0'),
('41630','20','get[1.3.6.1.2.1.1.2.0]','10482','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','58d2b5fae1fa41149eed29d761d7e3f7','0','2','0'),
('41631','20','get[1.3.6.1.2.1.1.6.0]','10482','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','85358d92f1ce45c6adb0eb8fa269f8c6','0','2','0'),
('41632','3','','10482','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7b58dc12021b466a9d4d66eb12cfa15d','0','2','0'),
('41633','20','get[1.3.6.1.2.1.1.1.0]','10482','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9dcc1a8373424d52be6e79ec2e1d2ce5','0','2','0'),
('41634','20','get[1.3.6.1.2.1.1.4.0]','10482','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','369c73ea224941c7acc8519bb4a561f1','0','2','0'),
('41635','17','','10482','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d2a55d810c9e484fa230d90b7a5d78a2','0','2','0'),
('41636','3','','10482','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e6054de71dfe487f81f652af7105b63c','0','2','0'),
('41637','5','','10482','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'797','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','642ca5d699a248cb9a354c1a4b0aaed7','0','2','0'),
('41648','3','','10483','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'800','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a370113cc46d4415bea51cefdeb21891','0','2','0'),
('41649','20','get[1.3.6.1.2.1.1.5.0]','10483','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','85d210e692744fbb94d8a794bbc2034a','0','2','0'),
('41650','20','get[1.3.6.1.2.1.1.3.0]','10483','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7e01891bd9194635931778fba9b45fd0','0','2','0'),
('41651','20','get[1.3.6.1.2.1.1.2.0]','10483','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b95e62bdc53a40a9b4bfc4b023a34067','0','2','0'),
('41652','20','get[1.3.6.1.2.1.1.6.0]','10483','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a7ceef9763e24dd890f5d4bc0a4074d3','0','2','0'),
('41653','3','','10483','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6573dd2d23f4490f85d5fffe19e388da','0','2','0'),
('41654','20','get[1.3.6.1.2.1.1.1.0]','10483','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0bee0b14582d47b091304be4fb9b8ba1','0','2','0'),
('41655','20','get[1.3.6.1.2.1.1.4.0]','10483','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','45e9507c2cf1476784a4797dd380e048','0','2','0'),
('41656','17','','10483','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9578f10764514cd68325646e82d44697','0','2','0'),
('41657','3','','10483','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','09e3d93e5dd542ab8436b5b712f77e48','0','2','0'),
('41658','5','','10483','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'801','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7e0d82664c024f0fbeefb38cd4f91bec','0','2','0'),
('41669','3','','10484','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'804','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5300868a14bb4d54a2699577337da83a','0','2','0'),
('41670','20','get[1.3.6.1.2.1.1.5.0]','10484','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fb2143870ae849f38d6349bf97678506','0','2','0'),
('41671','20','get[1.3.6.1.2.1.1.3.0]','10484','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f16dcd469ae44e0bb1a3bf5cd7745172','0','2','0'),
('41672','20','get[1.3.6.1.2.1.1.2.0]','10484','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6521da361f8c4d1383256b2297cbf637','0','2','0'),
('41673','20','get[1.3.6.1.2.1.1.6.0]','10484','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','245703e1e1ec43fd9a4cd2aa687e8062','0','2','0'),
('41674','3','','10484','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e2e270cb27ab438da77094dbeed276c5','0','2','0'),
('41675','20','get[1.3.6.1.2.1.1.1.0]','10484','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','915a3a0b5beb4b04b9cf2cf452625e4b','0','2','0'),
('41676','20','get[1.3.6.1.2.1.1.4.0]','10484','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','628cf911c63948b3acc96071099ee33a','0','2','0'),
('41677','17','','10484','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','82a936c79d154070a261078bff07cd50','0','2','0'),
('41678','3','','10484','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e0d6d460bcd34360a627851069e354ef','0','2','0'),
('41679','5','','10484','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'805','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d8be2555490b4eb68a8b8c7ea20eacb8','0','2','0'),
('41690','3','','10485','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'808','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','62d449bc199943da94effce92d24e522','0','2','0'),
('41691','20','get[1.3.6.1.2.1.1.5.0]','10485','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','02354807e4ca4a049866fe8f793007ff','0','2','0'),
('41692','20','get[1.3.6.1.2.1.1.3.0]','10485','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','72507c577f1748078be97e4e9080b6c9','0','2','0'),
('41693','20','get[1.3.6.1.2.1.1.2.0]','10485','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7eb0b2b9722f4f2c8d0ce0adc189b2f9','0','2','0'),
('41694','20','get[1.3.6.1.2.1.1.6.0]','10485','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','50bcd5f286db4540a6070fb7815b47f5','0','2','0'),
('41695','3','','10485','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','71dc309a3c174cac8d4e5d97fb385252','0','2','0'),
('41696','20','get[1.3.6.1.2.1.1.1.0]','10485','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cd5897cf9ef2423fbcc9ef483e556677','0','2','0'),
('41697','20','get[1.3.6.1.2.1.1.4.0]','10485','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d843cbacd73648d79c3f002ad7d2510b','0','2','0'),
('41698','17','','10485','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fa9062eeb9eb4ea5878c8da04bf728fe','0','2','0'),
('41699','3','','10485','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8084778076a444728f47b436237aa265','0','2','0'),
('41700','5','','10485','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'809','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7a7f3e558ca84e6ebd3279ec7ddaf6ab','0','2','0'),
('41711','3','','10486','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'812','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','213f42d5e99e42a8a75dffbc4116e152','0','2','0'),
('41712','20','get[1.3.6.1.2.1.1.5.0]','10486','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','788f52304f4c480c9e32b7f089279f66','0','2','0'),
('41713','20','get[1.3.6.1.2.1.1.3.0]','10486','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b7517cd5156c4693865edc871df8f7c5','0','2','0'),
('41714','20','get[1.3.6.1.2.1.1.2.0]','10486','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','61c2671ecc0b4fbcb40866ebc30f5ffe','0','2','0'),
('41715','20','get[1.3.6.1.2.1.1.6.0]','10486','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1f119c891ad74776b71c6858adcb67e3','0','2','0'),
('41716','3','','10486','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bc20ba68642a441c90bac530b8847386','0','2','0'),
('41717','20','get[1.3.6.1.2.1.1.1.0]','10486','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9ae03f4d4bcf424e936430198f0762f3','0','2','0'),
('41718','20','get[1.3.6.1.2.1.1.4.0]','10486','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','38753c1261dd42fd8500e843985fdea3','0','2','0'),
('41719','17','','10486','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','92854c9aff57441b9754ba9aabb4ade7','0','2','0'),
('41720','3','','10486','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5c929e46faef4f0c8ee90fe5a34e9092','0','2','0'),
('41721','5','','10486','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'813','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e4f4e0c0df9343a483a186f54d59caaf','0','2','0'),
('41732','3','','10487','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'816','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d232978e9c9649e89d9a18bfac551b9b','0','2','0'),
('41733','20','get[1.3.6.1.2.1.1.5.0]','10487','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','96a7343422ae4c16a0dc8636965209b7','0','2','0'),
('41734','20','get[1.3.6.1.2.1.1.3.0]','10487','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a86251203418473f805f71c7661bcd5b','0','2','0'),
('41735','20','get[1.3.6.1.2.1.1.2.0]','10487','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c806691d31554b558ce6b940725269ba','0','2','0'),
('41736','20','get[1.3.6.1.2.1.1.6.0]','10487','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cb46cc279c9d4622931cc4dd4536d076','0','2','0'),
('41737','3','','10487','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','74855f44b9ab4d008bcef0c81a1bf9b2','0','2','0'),
('41738','20','get[1.3.6.1.2.1.1.1.0]','10487','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bcda47c141cc4b71a80ba54ad8e195df','0','2','0'),
('41739','20','get[1.3.6.1.2.1.1.4.0]','10487','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','70ead6c2139a4ac1a9a52d127920bfda','0','2','0'),
('41740','17','','10487','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ca7ea780520d42788007c25b181ecf6e','0','2','0'),
('41741','3','','10487','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8ff37956cfc544029ac3cbe2c2076156','0','2','0'),
('41742','5','','10487','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'817','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','011c6ec5f5df442890da5b669efbe5dc','0','2','0'),
('41753','3','','10488','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'820','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2bdbc3203fcb4db1a5473c4afedaa619','0','2','0'),
('41754','20','get[1.3.6.1.2.1.1.5.0]','10488','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f5f63d603edf48febfbde03d7d223f1e','0','2','0'),
('41755','20','get[1.3.6.1.2.1.1.3.0]','10488','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f97078f111d54ab7b091f59870baa4a5','0','2','0'),
('41756','20','get[1.3.6.1.2.1.1.2.0]','10488','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ff6a6d61e4f24bc5a0832562ea3b13e0','0','2','0'),
('41757','20','get[1.3.6.1.2.1.1.6.0]','10488','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cdca0920185f4aaf95ee88b13982ba50','0','2','0'),
('41758','3','','10488','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7a77bc7a86684b7e965c0ec344435336','0','2','0'),
('41759','20','get[1.3.6.1.2.1.1.1.0]','10488','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','23382e5a72fa4769832c7fa5ee357153','0','2','0'),
('41760','20','get[1.3.6.1.2.1.1.4.0]','10488','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','de67cf0e735944ba9380730d88b86d06','0','2','0'),
('41761','17','','10488','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c5f15688308f44528a7ed495fce07a94','0','2','0'),
('41762','3','','10488','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','17bd0b5a70754d7eba3c4428ac9b58db','0','2','0'),
('41763','5','','10488','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'821','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2c0f53dbcfa447aea2e9550d502cb111','0','2','0'),
('41774','3','','10489','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'824','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a7fc5ad5ffb14a6185e288617294aa98','0','2','0'),
('41775','20','get[1.3.6.1.2.1.1.5.0]','10489','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e68119b9b48e4a49a4ff3ce41b8bf613','0','2','0'),
('41776','20','get[1.3.6.1.2.1.1.3.0]','10489','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','56f939dcf88843fda2fe4b062cca2d6a','0','2','0'),
('41777','20','get[1.3.6.1.2.1.1.2.0]','10489','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','08476c93ef374c8baba1e6f80c5544cf','0','2','0'),
('41778','20','get[1.3.6.1.2.1.1.6.0]','10489','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','59b84e78871849fd8e2da3608c4fd45f','0','2','0'),
('41779','3','','10489','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','783ce77b38434492a9944dc5b3531a35','0','2','0'),
('41780','20','get[1.3.6.1.2.1.1.1.0]','10489','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','042947145fd142f3a1f6ae86826480eb','0','2','0'),
('41781','20','get[1.3.6.1.2.1.1.4.0]','10489','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','30bc4fcfe70a45ceb6b3a8b945779e31','0','2','0'),
('41782','17','','10489','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','397dd775fe6d4046aa91dfca36d3be96','0','2','0'),
('41783','3','','10489','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bc7299499e2847eeb8d4e9ebcbc2519a','0','2','0'),
('41784','5','','10489','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'825','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','33e8ea0575174bc69002753a5e5d90bd','0','2','0'),
('41795','3','','10490','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'828','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','deea3cfb1f7442edbc4e715ca73395e8','0','2','0'),
('41796','20','get[1.3.6.1.2.1.1.5.0]','10490','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d3e819d5e0dc403fb4b9dafd1ddc59d5','0','2','0'),
('41797','20','get[1.3.6.1.2.1.1.3.0]','10490','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f0b0b111aac440189f71bb1b2830ded3','0','2','0'),
('41798','20','get[1.3.6.1.2.1.1.2.0]','10490','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','530490cf5862413b8e7896aa8c0cb627','0','2','0'),
('41799','20','get[1.3.6.1.2.1.1.6.0]','10490','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d5c52de296b04ceab2cfd1a87ccffc6b','0','2','0'),
('41800','3','','10490','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','468b063753fd4bca861646312909abf7','0','2','0'),
('41801','20','get[1.3.6.1.2.1.1.1.0]','10490','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e35b5c62cfa241fdad672ee8b7303044','0','2','0'),
('41802','20','get[1.3.6.1.2.1.1.4.0]','10490','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e8656127772b4835b2b102d972b29de8','0','2','0'),
('41803','17','','10490','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cc100edb014b4ff8b119ffe683403396','0','2','0'),
('41804','3','','10490','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fe030b0a6cb447a1b1c2fe5f96b2bffa','0','2','0'),
('41805','5','','10490','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'829','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9a70b1387ea14502aadcf05f636e7a5c','0','2','0'),
('41816','3','','10491','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'832','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7915232f946d4a9ea2c441899d063f8d','0','2','0'),
('41817','20','get[1.3.6.1.2.1.1.5.0]','10491','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','73459a4cdf8a45a1a480102cfe5119c1','0','2','0'),
('41818','20','get[1.3.6.1.2.1.1.3.0]','10491','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d379b98f901444368311a7c22c51cbcd','0','2','0'),
('41819','20','get[1.3.6.1.2.1.1.2.0]','10491','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c2a7d5ecda21446bbd55cec32ab3f50e','0','2','0'),
('41820','20','get[1.3.6.1.2.1.1.6.0]','10491','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','37b6610ae0bf4989b1431182dcd239c1','0','2','0'),
('41821','3','','10491','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e2ad26afb3674a63a5ffb68ccfa84ccc','0','2','0'),
('41822','20','get[1.3.6.1.2.1.1.1.0]','10491','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6b3f14b033914ef58797c15a751fe086','0','2','0'),
('41823','20','get[1.3.6.1.2.1.1.4.0]','10491','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9b93b930cf354451b2613f410db63b55','0','2','0'),
('41824','17','','10491','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4b22a7465109474db7a86274de0b519e','0','2','0'),
('41825','3','','10491','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0338080fdaee47d09df04fd70a56889b','0','2','0'),
('41826','5','','10491','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'833','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6814429f90bb417a9af42b7be081b777','0','2','0'),
('41837','3','','10492','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'836','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8b3077a1ea304d48acee2089f8dab717','0','2','0'),
('41838','20','get[1.3.6.1.2.1.1.5.0]','10492','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cd0923c4fed2454f9ba10ae12a237c4a','0','2','0'),
('41839','20','get[1.3.6.1.2.1.1.3.0]','10492','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','473bcbf0aece42b5bf03ac5d9655060f','0','2','0'),
('41840','20','get[1.3.6.1.2.1.1.2.0]','10492','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9dbc5959f5c94484ad27fff82ff1e4a2','0','2','0'),
('41841','20','get[1.3.6.1.2.1.1.6.0]','10492','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8ad2b0e46d544272a2a2a79251830ecd','0','2','0'),
('41842','3','','10492','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cd14c56b398f4e51bc250dbb266d8792','0','2','0'),
('41843','20','get[1.3.6.1.2.1.1.1.0]','10492','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6323e16160534164a046730cb95f8dd4','0','2','0'),
('41844','20','get[1.3.6.1.2.1.1.4.0]','10492','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','69517cfdea8e4602bc7b56f5975e8d64','0','2','0'),
('41845','17','','10492','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b820cdaeb0724fb3b5eb635e7705ee5c','0','2','0'),
('41846','3','','10492','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','183a44fa82d74603a4673f8a213e221f','0','2','0'),
('41847','5','','10492','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'837','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','471ac0649f454c6ab2d386ef593486a9','0','2','0'),
('41858','3','','10493','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'840','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','27bc040d774a492f9ea7661b11931756','0','2','0'),
('41859','20','get[1.3.6.1.2.1.1.5.0]','10493','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5ee60303a3f44dccb8e2636c61ea882b','0','2','0'),
('41860','20','get[1.3.6.1.2.1.1.3.0]','10493','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','349e048d1dc04ae49c6e616a4f4499c7','0','2','0'),
('41861','20','get[1.3.6.1.2.1.1.2.0]','10493','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9757a0d30651457a97860d475e1ce892','0','2','0'),
('41862','20','get[1.3.6.1.2.1.1.6.0]','10493','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7045e4f4ab0244969d7ab6ada0f2d3cc','0','2','0'),
('41863','3','','10493','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a77a1ed1ff254715bc2b3aa4774add63','0','2','0'),
('41864','20','get[1.3.6.1.2.1.1.1.0]','10493','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1aa8ba6aacfd4c358600c68c5b22455e','0','2','0'),
('41865','20','get[1.3.6.1.2.1.1.4.0]','10493','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','db3e28ce72d5488c9d81b4daeaabe9f9','0','2','0'),
('41866','17','','10493','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ad62b571c1c4444881787a040cf03b2b','0','2','0'),
('41867','3','','10493','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','02eacfbcc4c14ac48aba36c142974c46','0','2','0'),
('41868','5','','10493','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'841','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6fc9f1fc908241ff9484e15802f1e4ae','0','2','0'),
('41879','3','','10494','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'844','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ef5bb0f6f7794a899e9158375a100eac','0','2','0'),
('41880','20','get[1.3.6.1.2.1.1.5.0]','10494','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f592e2f6cdde465a85c89944de669418','0','2','0'),
('41881','20','get[1.3.6.1.2.1.1.3.0]','10494','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fadb61328389434c888cb8bfd6e964ed','0','2','0'),
('41882','20','get[1.3.6.1.2.1.1.2.0]','10494','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9977da08f1374d1c82e92332bbcc199e','0','2','0'),
('41883','20','get[1.3.6.1.2.1.1.6.0]','10494','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ba4d97d2010f4d3498fc71e4b10a0941','0','2','0'),
('41884','3','','10494','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3341d9f675074db882fac927d722eaa1','0','2','0'),
('41885','20','get[1.3.6.1.2.1.1.1.0]','10494','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','27c30b2dbe0048ecbd5b1236ac04b542','0','2','0'),
('41886','20','get[1.3.6.1.2.1.1.4.0]','10494','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3d3a73fd1c05477ab6a8bc5bd4a451d9','0','2','0'),
('41887','17','','10494','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','01d49dbd697343eb95913424eb783ca2','0','2','0'),
('41888','3','','10494','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','dfaf20182fa7415d84a70157ef7d3a63','0','2','0'),
('41889','5','','10494','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'845','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f6a6763b5b344669ab6b605d3d4707f7','0','2','0'),
('41900','3','','10495','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'848','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ab72f64db4304a2db7c6c2d1ec8eebb4','0','2','0'),
('41901','20','get[1.3.6.1.2.1.1.5.0]','10495','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5577c25fe0ab4decb44fdf31ffd6b345','0','2','0'),
('41902','20','get[1.3.6.1.2.1.1.3.0]','10495','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','44cb15bcd76e4bdba7a5c8f91211226c','0','2','0'),
('41903','20','get[1.3.6.1.2.1.1.2.0]','10495','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','645d1046c0f64a079e97f57f5bb03aad','0','2','0'),
('41904','20','get[1.3.6.1.2.1.1.6.0]','10495','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ece69e2a6d174678a770c6cc05d20b45','0','2','0'),
('41905','3','','10495','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','dc2b92f5ee3148828d66f17679873755','0','2','0'),
('41906','20','get[1.3.6.1.2.1.1.1.0]','10495','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','eba52f0801c74394afce9b85132f4a0a','0','2','0'),
('41907','20','get[1.3.6.1.2.1.1.4.0]','10495','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','02174f3b849a4fe490d79273ad9b4d1d','0','2','0'),
('41908','17','','10495','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d661c8c6e6b847d49d722ce1938efee8','0','2','0'),
('41909','3','','10495','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b0933870b3424664ab150192ca5e790f','0','2','0'),
('41910','5','','10495','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'849','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','58e51b1aac7f4433b8f7160d044bc8c4','0','2','0'),
('41921','3','','10496','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'852','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','517295fd0fa14eac945a1f999e25d306','0','2','0'),
('41922','20','get[1.3.6.1.2.1.1.5.0]','10496','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','47326c2cd58242e18397d522df49ad76','0','2','0'),
('41923','20','get[1.3.6.1.2.1.1.3.0]','10496','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','88c412ccc0944b96be165b4de91e5ee9','0','2','0'),
('41924','20','get[1.3.6.1.2.1.1.2.0]','10496','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e4807c61ed6841eb8b96a0e058343b42','0','2','0'),
('41925','20','get[1.3.6.1.2.1.1.6.0]','10496','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','433dfca6d6fd4b4b903c48a3cf862052','0','2','0'),
('41926','3','','10496','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','71383adcc92c44d3866c0c8592c3e99c','0','2','0'),
('41927','20','get[1.3.6.1.2.1.1.1.0]','10496','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','27f4de9554c44842a118ed22da40897f','0','2','0'),
('41928','20','get[1.3.6.1.2.1.1.4.0]','10496','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a1f09e41ce824318be6b2852c82d5ea2','0','2','0'),
('41929','17','','10496','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','977608b526c843f2aca7dcd9a18d9334','0','2','0'),
('41930','3','','10496','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ed501823d99341b88d17ecd8b0b83fc4','0','2','0'),
('41931','5','','10496','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'853','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','18941d2b2b45432f9114b7ff69844ec1','0','2','0'),
('41942','3','','10497','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'856','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','085e72fc9fde405faaeaf097b29e12a8','0','2','0'),
('41943','20','get[1.3.6.1.2.1.1.5.0]','10497','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','819e7be322cb41728e01c9c91ae925f5','0','2','0'),
('41944','20','get[1.3.6.1.2.1.1.3.0]','10497','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','25aaf430db3d4a19a9b0f7c082e904bc','0','2','0'),
('41945','20','get[1.3.6.1.2.1.1.2.0]','10497','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1bde09547e21422ab7e17cdc0503aa53','0','2','0'),
('41946','20','get[1.3.6.1.2.1.1.6.0]','10497','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','db89a699f89f45648f7e10476fbb1ba7','0','2','0'),
('41947','3','','10497','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c0bffcb2d515415db279b20fcdf3c2ad','0','2','0'),
('41948','20','get[1.3.6.1.2.1.1.1.0]','10497','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3f9b8a4a60074fd7b08f15db63e95447','0','2','0'),
('41949','20','get[1.3.6.1.2.1.1.4.0]','10497','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6185cb0ed5824d55ab7a3115e34fcd3e','0','2','0'),
('41950','17','','10497','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7c5a4f5306ae4fa6bb4f428c68eccc5c','0','2','0'),
('41951','3','','10497','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9b58686f36c6431f8c5d7f990403a823','0','2','0'),
('41952','5','','10497','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'857','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','57f802d3cb784200bb047ccd947d34b0','0','2','0'),
('41963','3','','10498','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'860','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8a48b3331df141bda0f3d9cca2b678f2','0','2','0'),
('41964','20','get[1.3.6.1.2.1.1.5.0]','10498','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e6f61d8243514cdebac021b5124fce8c','0','2','0'),
('41965','20','get[1.3.6.1.2.1.1.3.0]','10498','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f7bd0ce4612c46c8a07239b5fe19231a','0','2','0'),
('41966','20','get[1.3.6.1.2.1.1.2.0]','10498','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2736a10a1fc446eb8b9f448e894b14fe','0','2','0'),
('41967','20','get[1.3.6.1.2.1.1.6.0]','10498','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3812d629520d45c58ec3603a4eeca72e','0','2','0'),
('41968','3','','10498','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b781c132adc34334b27b9e7762c4b7d6','0','2','0'),
('41969','20','get[1.3.6.1.2.1.1.1.0]','10498','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8cb003746f8a47a09a21eadb327de4f9','0','2','0'),
('41970','20','get[1.3.6.1.2.1.1.4.0]','10498','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','81a3cea5e62e41ecbecbfa1c3bd821e2','0','2','0'),
('41971','17','','10498','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','324dbec2e7bf49f999411dfb25372701','0','2','0'),
('41972','3','','10498','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f1fb3fc2def948559f1db70e4581bbdd','0','2','0'),
('41973','5','','10498','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'861','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1d892561e2ca48a3a6d8e2aec6ff7505','0','2','0'),
('41984','3','','10499','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'864','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c481552e81c040cc902c5a02e8971ba5','0','2','0'),
('41985','20','get[1.3.6.1.2.1.1.5.0]','10499','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','860ffeeac47c434c8890fef9c13f5105','0','2','0'),
('41986','20','get[1.3.6.1.2.1.1.3.0]','10499','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2d1af72cb5174acfaaf50992b2aeb25e','0','2','0'),
('41987','20','get[1.3.6.1.2.1.1.2.0]','10499','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6d82211969d74fb7b33f1e9d90c83902','0','2','0'),
('41988','20','get[1.3.6.1.2.1.1.6.0]','10499','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a6d38cac0dcc4bb085e6d7dc9536407d','0','2','0'),
('41989','3','','10499','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0b2a45e80039439ca76648ff3eff0515','0','2','0'),
('41990','20','get[1.3.6.1.2.1.1.1.0]','10499','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cd8bd2a11d164a9eafc6771bb80eb449','0','2','0'),
('41991','20','get[1.3.6.1.2.1.1.4.0]','10499','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','65095df07cf849789fe6d78cbc9e2712','0','2','0'),
('41992','17','','10499','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d44db2b3812246e09860a63d42512382','0','2','0'),
('41993','3','','10499','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bee8dc9f001443c38134e692b933aa89','0','2','0'),
('41994','5','','10499','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'865','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c814df3020694764834105ce89cb5232','0','2','0'),
('42005','3','','10500','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'868','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cd22f3bc12c642e1b8bcd708b7ae68a2','0','2','0'),
('42006','20','get[1.3.6.1.2.1.1.5.0]','10500','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8fa41471e9b44d138848ab7ecfb7d354','0','2','0'),
('42007','20','get[1.3.6.1.2.1.1.3.0]','10500','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3ad913927c424bc9b2ab09365921f41a','0','2','0'),
('42008','20','get[1.3.6.1.2.1.1.2.0]','10500','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6320b2b82e3c42f993a053be2ed60a5d','0','2','0'),
('42009','20','get[1.3.6.1.2.1.1.6.0]','10500','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','225a0364e38845b489a9dc94055790ac','0','2','0'),
('42010','3','','10500','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4f918b392de8452b943c71ef69f17fad','0','2','0'),
('42011','20','get[1.3.6.1.2.1.1.1.0]','10500','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2d7c4a734e3b4980b02166caa994d939','0','2','0'),
('42012','20','get[1.3.6.1.2.1.1.4.0]','10500','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','84a4224286024f56a09301195b6efa72','0','2','0'),
('42013','17','','10500','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ba5410ba09354d87a3f3941d3b45b013','0','2','0'),
('42014','3','','10500','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7deb2be6b623485fb0e6bbf88a02dbf7','0','2','0'),
('42015','5','','10500','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'869','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6ee24adf573947e29e23436f45a47e08','0','2','0'),
('42026','3','','10501','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'872','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1456a122964042f48b033f5c31dd8376','0','2','0'),
('42027','20','get[1.3.6.1.2.1.1.5.0]','10501','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3b9de782051549bea9f39dd6ceb6b946','0','2','0'),
('42028','20','get[1.3.6.1.2.1.1.3.0]','10501','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ddbd6f5ee0094e5ca2f62aa07fe71fd5','0','2','0'),
('42029','20','get[1.3.6.1.2.1.1.2.0]','10501','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6455af8d14904fcf892a03989a0b8a37','0','2','0'),
('42030','20','get[1.3.6.1.2.1.1.6.0]','10501','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c92d6baa96784a30a17e785e6214e3e3','0','2','0'),
('42031','3','','10501','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5571d787631e48e782de334341fabb8f','0','2','0'),
('42032','20','get[1.3.6.1.2.1.1.1.0]','10501','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4d6158d361f943af9dd63ef425e5cf28','0','2','0'),
('42033','20','get[1.3.6.1.2.1.1.4.0]','10501','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','64eb10d744834f2697951abf073d5149','0','2','0'),
('42034','17','','10501','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c18df4381e984a599904b4fcf19d2f70','0','2','0'),
('42035','3','','10501','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d39e275bb89745caa0a6b27ac88c58fe','0','2','0'),
('42036','5','','10501','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'873','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','84fc11c2d18449cb8b903b6a8ac05959','0','2','0'),
('42047','3','','10502','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'876','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9a6ed6ec60a74ffd9142d21489ac8470','0','2','0'),
('42048','20','get[1.3.6.1.2.1.1.5.0]','10502','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2258348183a64037bdad1af1a0af29b3','0','2','0'),
('42049','20','get[1.3.6.1.2.1.1.3.0]','10502','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4116de1f7bcb4902adcc14a449d58b80','0','2','0'),
('42050','20','get[1.3.6.1.2.1.1.2.0]','10502','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','90919bb372954e0eb87fae49ed98ca70','0','2','0'),
('42051','20','get[1.3.6.1.2.1.1.6.0]','10502','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f3af39a93b684b99880bfbd50b146ec5','0','2','0'),
('42052','3','','10502','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9ad8e2e7b1ee488f9470836f8cd8f4b6','0','2','0'),
('42053','20','get[1.3.6.1.2.1.1.1.0]','10502','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','449b88f9f0bb423d89def3227b1d9e38','0','2','0'),
('42054','20','get[1.3.6.1.2.1.1.4.0]','10502','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e9f5b25afb7e44918e19df044c71d238','0','2','0'),
('42055','17','','10502','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','886163a11a0d4dd4922fc4fda700ddcf','0','2','0'),
('42056','3','','10502','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9a3155664a4d4f5797733f66939bc506','0','2','0'),
('42057','5','','10502','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'877','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8aa3e5e4cb8440998922015c32994cd2','0','2','0'),
('42068','3','','10233','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'880','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cba2e98b8ea14ff0a03dee515337ac7d','0','2','0'),
('42069','20','get[1.3.6.1.2.1.1.5.0]','10233','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2d99a01f7c0d4ca38f3bc9a5f8db3ab7','0','2','0'),
('42070','20','get[1.3.6.1.2.1.1.3.0]','10233','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ff6fea946fb143e3b8b151eafb403952','0','2','0'),
('42071','20','get[1.3.6.1.2.1.1.2.0]','10233','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9d8a27d216f146ae88479e8e6bcbd301','0','2','0'),
('42072','20','get[1.3.6.1.2.1.1.6.0]','10233','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9766fcd2e7b64865a6ef60f3ab27002f','0','2','0'),
('42073','3','','10233','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','81b47dcd39864dd6812344bd0dc34963','0','2','0'),
('42074','20','get[1.3.6.1.2.1.1.1.0]','10233','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','763d10f3cf344cd488db9c156c893d18','0','2','0'),
('42075','20','get[1.3.6.1.2.1.1.4.0]','10233','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9d2b98385edb49979abcde5481560253','0','2','0'),
('42076','17','','10233','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','540698a8c58d4a659e2c2ecdd5cb76e0','0','2','0'),
('42077','3','','10233','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3bb0c6c8aad64f21a11dc58c6be2eeaf','0','2','0'),
('42078','5','','10233','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'881','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','754f890d63c042f6976a1ad25c317574','0','2','0'),
('42089','3','','10234','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'884','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a3d05c4b2b2e40ba8cd29255012f5582','0','2','0'),
('42090','20','get[1.3.6.1.2.1.1.5.0]','10234','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','53b0dbb74854494eb834804a1f0afbe7','0','2','0'),
('42091','20','get[1.3.6.1.2.1.1.3.0]','10234','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6538a853fd47460585dbc2b4853ea65b','0','2','0'),
('42092','20','get[1.3.6.1.2.1.1.2.0]','10234','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8d5bfc785de5459c967659306d66b7e5','0','2','0'),
('42093','20','get[1.3.6.1.2.1.1.6.0]','10234','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','eeeceba5d9dd43de856ada8b5460f3d5','0','2','0'),
('42094','3','','10234','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4c2b7fe079ba45f6b150d9aeda4b8ab1','0','2','0'),
('42095','20','get[1.3.6.1.2.1.1.1.0]','10234','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','59c81fd37e334a0ba60b1256d3730624','0','2','0'),
('42096','20','get[1.3.6.1.2.1.1.4.0]','10234','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','44a19d5435e8476dafa2e52b481b9c75','0','2','0'),
('42097','17','','10234','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6f2e3553d7874f81b184b1b25a3d9ac6','0','2','0'),
('42098','3','','10234','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f6d11b8498e04df9bcf392aee2aacde3','0','2','0'),
('42099','5','','10234','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'885','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','755ae00add264d2ba735b45f7dc5ca23','0','2','0'),
('42110','3','','10235','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'889','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','89d60f525bd04be28cc4267d0224cdb6','0','2','0'),
('42111','20','get[1.3.6.1.2.1.1.3.0]','10235','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0123f7f4eab541a786130af4fbb2a534','0','2','0'),
('42112','20','get[1.3.6.1.2.1.1.2.0]','10235','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','237a5f0537a549b3a63ed7f81d0b6122','0','2','0'),
('42113','20','get[1.3.6.1.2.1.1.5.0]','10235','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','aa2a90f772154d0e9354d496afae9939','0','2','0'),
('42114','20','get[1.3.6.1.2.1.1.6.0]','10235','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','de9a507ae83247398a4708fff2889862','0','2','0'),
('42115','3','','10235','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8f355d66881c47b5be8097dbd1f950d1','0','2','0'),
('42116','20','get[1.3.6.1.2.1.1.1.0]','10235','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3701b10845d449a3b1a5d67a7d743ca4','0','2','0'),
('42117','20','get[1.3.6.1.2.1.1.4.0]','10235','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b821576134ff4185a3e11b35763b7d1d','0','2','0'),
('42118','17','','10235','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','568c2b550b944dd084ec4e4486e7ec72','0','2','0'),
('42119','3','','10235','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6138402da32a40259bb26f217be2df59','0','2','0'),
('42120','5','','10235','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'890','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3e44eea15b2a4b2c994fb3372c538466','0','2','0'),
('42133','3','','10236','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'893','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e9f5ba061b7e41e7bac26aeec105f4da','0','2','0'),
('42134','3','','10236','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','71567de591174a64aafd48aebae0b4f4','0','2','0'),
('42135','3','','10236','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','dde3ad74c18847f4a91bee29b20a6364','0','2','0'),
('42136','17','','10236','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','707bcd801726449d9a7d3de0fa650c0a','0','2','0'),
('42137','20','get[1.3.6.1.2.1.1.4.0]','10236','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2b293fd8a3e346f9be437ae539dca3c3','0','2','0'),
('42138','20','get[1.3.6.1.2.1.1.1.0]','10236','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4727c07daa0c413aa4bbc293198f9cde','0','2','0'),
('42139','20','get[1.3.6.1.2.1.1.6.0]','10236','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3cfe39b7d7f9401190de46aa86a04686','0','2','0'),
('42140','20','get[1.3.6.1.2.1.1.5.0]','10236','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','72bc86c14222404cad76bc04836d11eb','0','2','0'),
('42141','20','get[1.3.6.1.2.1.1.2.0]','10236','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','78034b7a1d964b199f6a12c43821c27e','0','2','0'),
('42142','20','get[1.3.6.1.2.1.1.3.0]','10236','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cb63d68e6d0143049534225d1d69da12','0','2','0'),
('42143','5','','10236','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'894','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b6cd5b22d8014aa18fdb7735d77cc84c','0','2','0'),
('42154','3','','10237','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'897','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','473f39f191164f578539e842f18bfe65','0','2','0'),
('42155','20','get[1.3.6.1.2.1.1.5.0]','10237','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5994fe565b1d437f8e9f1d0d8ec83104','0','2','0'),
('42156','20','get[1.3.6.1.2.1.1.3.0]','10237','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','de270e3ac6874ca59a236a040d82c099','0','2','0'),
('42157','20','get[1.3.6.1.2.1.1.2.0]','10237','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2fbfe02459724f089b5bcd31ff6245d9','0','2','0'),
('42158','20','get[1.3.6.1.2.1.1.6.0]','10237','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','eabbdf5343fb42bfa3e5f13bc51ad66d','0','2','0'),
('42159','3','','10237','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','11297d0102734139aa4fa81eefad9839','0','2','0'),
('42160','20','get[1.3.6.1.2.1.1.1.0]','10237','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a05d416bcdde44929f091c4cde2e6537','0','2','0'),
('42161','20','get[1.3.6.1.2.1.1.4.0]','10237','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','362b533375e544d9804eba534e5f4935','0','2','0'),
('42162','17','','10237','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','11edabc72e4a4d69a0dc9c36458fbfbc','0','2','0'),
('42163','3','','10237','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d8416e68bab94a568b8fbc67927ae739','0','2','0'),
('42164','5','','10237','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'898','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0aad82f9addd45efa20253da000ec699','0','2','0'),
('42175','0','','10076','Host name of Zabbix agent running','agent.hostname','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4c80c15f5741464882aa238f27bec1bd','0','2','0'),
('42176','0','','10076','Zabbix agent ping','agent.ping','1m','31d','365d','0','3','','','','',NULL,'900','','','0','','','','','0',NULL,'The agent always returns "1" for this item. May be used in combination with `nodata()` for the availability check.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','05849e0fb6504d339f2aebe159427bec','0','2','0'),
('42177','0','','10076','Version of Zabbix agent running','agent.version','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fe4731720ba64eebbf125929e499209b','0','2','0'),
('42178','5','','10076','Zabbix agent availability','zabbix[host,agent,available]','1m','31d','365d','0','3','','','','',NULL,'899','','','0','','','','','0',NULL,'Used for monitoring the availability status of the agent.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','304a3e9bb7594c83b027a32c34aeab28','0','2','0'),
('42179','0','','10075','Host name of Zabbix agent running','agent.hostname','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','74bc1a15ef314d5f9b26332531885c0d','0','2','0'),
('42180','0','','10075','Zabbix agent ping','agent.ping','1m','31d','365d','0','3','','','','',NULL,'902','','','0','','','','','0',NULL,'The agent always returns "1" for this item. May be used in combination with `nodata()` for the availability check.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','da59d099f7614653b37b8eaaa518ebd2','0','2','0'),
('42181','0','','10075','Version of Zabbix agent running','agent.version','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e2b84269401e41acb973bc29666b9e7a','0','2','0'),
('42182','5','','10075','Zabbix agent availability','zabbix[host,agent,available]','1m','31d','365d','0','3','','','','',NULL,'901','','','0','','','','','0',NULL,'Used for monitoring the availability status of the agent.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cbfaa94dc7bc4606a792aaf357054075','0','2','0'),
('42183','0','','10077','Host name of Zabbix agent running','agent.hostname','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','27949a6910304d39b3d2a68c90525581','0','2','0'),
('42184','0','','10077','Zabbix agent ping','agent.ping','1m','31d','365d','0','3','','','','',NULL,'904','','','0','','','','','0',NULL,'The agent always returns "1" for this item. May be used in combination with `nodata()` for the availability check.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','98507eac4f70420698dc234c2a6e3198','0','2','0'),
('42185','0','','10077','Version of Zabbix agent running','agent.version','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3f456ce86b284b089f545d8c72c64405','0','2','0'),
('42186','5','','10077','Zabbix agent availability','zabbix[host,agent,available]','1m','31d','365d','0','3','','','','',NULL,'903','','','0','','','','','0',NULL,'Used for monitoring the availability status of the agent.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5b0a1ce4ca4a441484eea38724eaf24d','0','2','0'),
('42187','0','','10001','Host name of Zabbix agent running','agent.hostname','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','df561a0cece94760a78704edf7da7326','0','2','0'),
('42188','0','','10001','Free swap space','system.swap.size[,free]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'The free space of the swap volume/file expressed in bytes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','160b82c121b147cbbf18c34dbb01d3ce','0','2','0'),
('42189','0','','10001','CPU system time','system.cpu.util[,system]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Time the CPU has spent running the kernel and its processes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d93097ed5ce74d35b6041ef2b5ba18e8','0','2','0'),
('42190','0','','10001','CPU user time','system.cpu.util[,user]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Time the CPU has spent running users\' processes that are not niced.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','57f9e2e34fab41e18e2bc93e786c92c6','0','2','0'),
('42191','0','','10001','System name','system.hostname','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The host name of the system.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','207341f390134e37ad431e2823666eb9','0','2','0'),
('42192','0','','10001','System local time','system.localtime','1m','31d','365d','0','3','','unixtime','','',NULL,NULL,'','','0','','','','','0',NULL,'The local system time of the host.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6072902361404672a444841c786875e6','0','2','0'),
('42193','0','','10001','Operating system architecture','system.sw.arch','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The architecture of the operating system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fd21580a151246b0a340bf924c326aa8','0','2','0'),
('42194','0','','10001','Operating system','system.sw.os','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5e4c3d14634843e9b7b182e8fc08efbe','0','2','0'),
('42195','0','','10001','Number of installed packages','system.sw.packages.get','1h','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','58818005e76d46dda14d6592f601ab00','0','2','0'),
('42196','0','','10001','Free swap space in %','system.swap.size[,pfree]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The free space of the swap volume/file expressed in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ca423242172f4b20ba47c26f4a61aee7','0','2','0'),
('42197','0','','10001','Zabbix agent ping','agent.ping','1m','31d','365d','0','3','','','','',NULL,'908','','','0','','','','','0',NULL,'The agent always returns "1" for this item. May be used in combination with `nodata()` for the availability check.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f94f9f4699e94c369e6c98b2a2f485ce','0','2','0'),
('42198','0','','10001','Total swap space','system.swap.size[,total]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'The total space of the swap volume/file expressed in bytes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','102c81b5523c4be0b4beae3cb88ebde1','0','2','0'),
('42199','0','','10001','System description','system.uname','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The information as normally returned by `uname -a`.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fc6898682f904c57ba28bcb3748b237f','0','2','0'),
('42200','0','','10001','System uptime','system.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'The system uptime expressed in the following format: "N days, hh:mm:ss".','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8537f6c6ac6b438c80caf227946df891','0','2','0'),
('42201','0','','10001','Number of logged in users','system.users.num','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The number of users who are currently logged in.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','88056b3d2e424d5aba7cabcd4b043c9e','0','2','0'),
('42202','0','','10001','Checksum of /etc/passwd','vfs.file.cksum[/etc/passwd,sha256]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3b93d3590df24a46b29f6eb06f5e2446','0','2','0'),
('42203','0','','10001','Available memory','vm.memory.size[available]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'The available memory:\r\n- in Linux = free + buffers + cache;\r\n- on other platforms calculation may vary.\r\n\r\nSee also Appendixes in Zabbix Documentation about parameters of the `vm.memory.size` item.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e811e6e2ae84461294e121f12e767b40','0','2','0'),
('42204','0','','10001','Available memory in %','vm.memory.size[pavailable]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The available memory as percentage of the total. See also Appendixes in Zabbix Documentation about parameters of the `vm.memory.size` item.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','20779a4c43374e5f9bea2584e93b85ef','0','2','0'),
('42205','0','','10001','Total memory','vm.memory.size[total]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'Total memory expressed in bytes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d5c3541a7c0949ce812df1beb0732941','0','2','0'),
('42206','0','','10001','CPU steal time','system.cpu.util[,steal]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The amount of "stolen" CPU from this virtual machine by the hypervisor for other tasks, such as running another virtual machine.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3161dbd18e874e69b729c8e903cf7390','0','2','0'),
('42207','0','','10001','CPU softirq time','system.cpu.util[,softirq]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Time the CPU has been servicing software interrupts.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a949a36004a449c58bef0cdc9d3fafd6','0','2','0'),
('42208','0','','10001','CPU nice time','system.cpu.util[,nice]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Time the CPU has spent running users\' processes that have been niced.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8ee6e54c86ba44ab88bb9e83c632c1ed','0','2','0'),
('42209','0','','10001','Load average (1m avg)','system.cpu.load[all,avg1]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Calculated as the system CPU load divided by the number of CPU cores.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','48528aa936a04c8189375a6eae4033da','0','2','0'),
('42210','0','','10001','Version of Zabbix agent running','agent.version','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','27c42cf180b44632b5d9b8b5788165b3','0','2','0'),
('42211','0','','10001','Maximum number of open file descriptors','kernel.maxfiles','1h','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'May be increased by using the `sysctl` utility or modifying the file `/etc/sysctl.conf`.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ef386d03ff2c42ffa236acd5215ad547','0','2','0'),
('42212','0','','10001','Maximum number of processes','kernel.maxproc','1h','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'May be increased by using the `sysctl` utility or modifying the file `/etc/sysctl.conf`.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','678d70c041954ac8982fb5118b49f6e7','0','2','0'),
('42213','0','','10001','Number of processes','proc.num','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ab7d0471092544a6a950184d1bac906d','0','2','0'),
('42214','0','','10001','Number of running processes','proc.num[,,run]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b2637293884d40108f41b11767dd5be0','0','2','0'),
('42215','0','','10001','System boot time','system.boottime','15m','31d','365d','0','3','','unixtime','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','27cb0f66bb624146acfdd81b58f108a3','0','2','0'),
('42216','0','','10001','Interrupts per second','system.cpu.intr','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Number of interrupts processed.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5d186a46867b4eaaafd6396d3239dd3b','0','2','0'),
('42217','0','','10001','Load average (5m avg)','system.cpu.load[all,avg5]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Calculated as the system CPU load divided by the number of CPU cores.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','953beb580df8418cb88b667b9dd37259','0','2','0'),
('42218','0','','10001','CPU iowait time','system.cpu.util[,iowait]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Time the CPU has been waiting for I/O to complete.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5df67d9162cc437585990cc8708be894','0','2','0'),
('42219','0','','10001','Load average (15m avg)','system.cpu.load[all,avg15]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Calculated as the system CPU load divided by the number of CPU cores.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5716000e38e24dae8ead4ed98ede024b','0','2','0'),
('42220','0','','10001','Number of CPUs','system.cpu.num','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f72e115544eb4079b09fec8c3539241c','0','2','0'),
('42221','0','','10001','Context switches per second','system.cpu.switches','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The combined rate at which all processors on the computer are switched from one thread to another.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','73e85aa10a704fc7950d2d077f0c54ee','0','2','0'),
('42222','0','','10001','CPU guest time','system.cpu.util[,guest]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Time spent on running a virtual CPU for a guest operating system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','69b187838fb74f319e47c2ff4f99ef54','0','2','0'),
('42223','0','','10001','CPU guest nice time','system.cpu.util[,guest_nice]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Time spent on running a niced guest (a virtual CPU for guest operating systems under the control of the Linux kernel).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a2b07497f2f343a99d26ad77e65bb54f','0','2','0'),
('42224','0','','10001','CPU idle time','system.cpu.util[,idle]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Time the CPU has spent doing nothing.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7aad6d159baa4a24901847144f0d231b','0','2','0'),
('42225','0','','10001','CPU interrupt time','system.cpu.util[,interrupt]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Time the CPU has spent servicing hardware interrupts.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cc4bc7693ae84f9bb18cee38d0814195','0','2','0'),
('42226','5','','10001','Zabbix agent availability','zabbix[host,agent,available]','1m','31d','365d','0','3','','','','',NULL,'907','','','0','','','','','0',NULL,'Used for monitoring the availability status of the agent.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ca48c53be1bf46ae9dd2707158a55139','0','2','0'),
('42319','7','','10343','Host name of Zabbix agent running','agent.hostname','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a31cfdf92de04535adb957e0c72f54bd','0','2','0'),
('42320','7','','10343','Free swap space','system.swap.size[,free]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'The free space of the swap volume/file expressed in bytes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f08e1de57cbd4b08b9fd3294d0d95906','0','2','0'),
('42321','7','','10343','CPU system time','system.cpu.util[,system]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Time the CPU has spent running the kernel and its processes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','75622323ae4447e8a21a04ef191fdc2d','0','2','0'),
('42322','7','','10343','CPU user time','system.cpu.util[,user]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Time the CPU has spent running users\' processes that are not niced.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c74b64926aae4a8e8c2299d8bfe2e188','0','2','0'),
('42323','7','','10343','System name','system.hostname','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The host name of the system.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fdf4eb1b98d04b229a1c9a3c0b5837ba','0','2','0'),
('42324','7','','10343','System local time','system.localtime','1m','31d','365d','0','3','','unixtime','','',NULL,NULL,'','','0','','','','','0',NULL,'The local system time of the host.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c8fa467600ab48ce8cec353bab6c3a54','0','2','0'),
('42325','7','','10343','Operating system architecture','system.sw.arch','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The architecture of the operating system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','627cbcb2432a4aeda6e90363d9b0c1db','0','2','0'),
('42326','7','','10343','Operating system','system.sw.os','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d8c633f2fd1947028079a5939835dcd8','0','2','0'),
('42327','7','','10343','Number of installed packages','system.sw.packages.get','1h','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','16b1e5ab950040ef8c29139e0649d622','0','2','0'),
('42328','7','','10343','Free swap space in %','system.swap.size[,pfree]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The free space of the swap volume/file expressed in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','56b8f84d22264b92b70a6ab0c3c70f19','0','2','0'),
('42329','7','','10343','CPU softirq time','system.cpu.util[,softirq]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Time the CPU has been servicing software interrupts.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2ff77e25f0fe45238c64a6532735cdd5','0','2','0'),
('42330','7','','10343','Total swap space','system.swap.size[,total]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'The total space of the swap volume/file expressed in bytes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3a9fb924ab1d47168ffcab9d237d808a','0','2','0'),
('42331','7','','10343','System description','system.uname','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The information as normally returned by `uname -a`.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d3d73dcc92b34511971eddf956dc4c0f','0','2','0'),
('42332','7','','10343','System uptime','system.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'The system uptime expressed in the following format: "N days, hh:mm:ss".','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','51bdea745e0547ad92a74fefaea54e39','0','2','0'),
('42333','7','','10343','Number of logged in users','system.users.num','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The number of users who are currently logged in.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4ea1cfb5813a422b98caebcd870959ef','0','2','0'),
('42334','7','','10343','Checksum of /etc/passwd','vfs.file.cksum[/etc/passwd,sha256]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','87f35de24ba74a8d8f70430c8da85261','0','2','0'),
('42335','7','','10343','Available memory','vm.memory.size[available]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'The available memory:\r\n- in Linux = free + buffers + cache;\r\n- on other platforms calculation may vary.\r\n\r\nSee also Appendixes in Zabbix Documentation about parameters of the `vm.memory.size` item.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5bf94ec3debc459fa3e13449199052ee','0','2','0'),
('42336','7','','10343','Available memory in %','vm.memory.size[pavailable]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The available memory as percentage of the total. See also Appendixes in Zabbix Documentation about parameters of the `vm.memory.size` item.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','99efd95a41b34457a2ec0d8c96324e7c','0','2','0'),
('42337','7','','10343','Total memory','vm.memory.size[total]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'Total memory expressed in bytes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','013fe8b15c86442eadc10763706ec594','0','2','0'),
('42338','7','','10343','CPU steal time','system.cpu.util[,steal]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The amount of "stolen" CPU from this virtual machine by the hypervisor for other tasks, such as running another virtual machine.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','434c154ba392476f9ad8a94968840e19','0','2','0'),
('42339','7','','10343','CPU nice time','system.cpu.util[,nice]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Time the CPU has spent running users\' processes that have been niced.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d965fa68eea3454e83179116c5483322','0','2','0'),
('42340','7','','10343','Zabbix agent ping','agent.ping','1m','31d','365d','0','3','','','','',NULL,'912','','','0','','','','','0',NULL,'The agent always returns "1" for this item. May be used in combination with `nodata()` for the availability check.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7c266646bfa843dabfe4ba5a3fd9026e','0','2','0'),
('42341','7','','10343','Load average (1m avg)','system.cpu.load[all,avg1]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Calculated as the system CPU load divided by the number of CPU cores.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c692df07acc44b4ea1f4f88cd4ee64eb','0','2','0'),
('42342','7','','10343','Version of Zabbix agent running','agent.version','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','91dbe302bd8e4954b91e9ce3a795b4eb','0','2','0'),
('42343','7','','10343','Maximum number of open file descriptors','kernel.maxfiles','1h','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'May be increased by using the `sysctl` utility or modifying the file `/etc/sysctl.conf`.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','66ed2ffc888c40c6b80dcc259c087d08','0','2','0'),
('42344','7','','10343','Maximum number of processes','kernel.maxproc','1h','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'May be increased by using the `sysctl` utility or modifying the file `/etc/sysctl.conf`.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d60cc4367893424d9671b1f05ba83599','0','2','0'),
('42345','7','','10343','Number of processes','proc.num','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ccb6fdbe1267475780e978c0c5de986c','0','2','0'),
('42346','7','','10343','Number of running processes','proc.num[,,run]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','436bf5615731425a97fdcdbaac5f4000','0','2','0'),
('42347','7','','10343','System boot time','system.boottime','15m','31d','365d','0','3','','unixtime','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','42bb6cbed08a4884a99328b38e4c1654','0','2','0'),
('42348','7','','10343','Interrupts per second','system.cpu.intr','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Number of interrupts processed.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0a2218b9d9124c7284962f84bdefaab8','0','2','0'),
('42349','7','','10343','Load average (5m avg)','system.cpu.load[all,avg5]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Calculated as the system CPU load divided by the number of CPU cores.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','18862acd219e4259a9b9665c32550fa5','0','2','0'),
('42350','7','','10343','CPU iowait time','system.cpu.util[,iowait]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Time the CPU has been waiting for I/O to complete.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4859bb1b6e21469a917aa56fbfbe1698','0','2','0'),
('42351','7','','10343','Load average (15m avg)','system.cpu.load[all,avg15]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Calculated as the system CPU load divided by the number of CPU cores.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','61040b6d85df4a2087e562f0216e723d','0','2','0'),
('42352','7','','10343','Number of CPUs','system.cpu.num','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6e98a6a53c1a44c09b5e3c19971b834c','0','2','0'),
('42353','7','','10343','Context switches per second','system.cpu.switches','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The combined rate at which all processors on the computer are switched from one thread to another.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','47e3a1d3955d4bccb07a0e32f768273d','0','2','0'),
('42354','7','','10343','CPU guest time','system.cpu.util[,guest]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Time spent on running a virtual CPU for a guest operating system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4ef463cc12da45e6b5a97cee93fd5ba0','0','2','0'),
('42355','7','','10343','CPU guest nice time','system.cpu.util[,guest_nice]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Time spent on running a niced guest (a virtual CPU for guest operating systems under the control of the Linux kernel).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0cb7f1c9774241968208724ab56f4d86','0','2','0'),
('42356','7','','10343','CPU idle time','system.cpu.util[,idle]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Time the CPU has spent doing nothing.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8a20c7edef6d449e8771ff57cebb87d8','0','2','0'),
('42357','7','','10343','CPU interrupt time','system.cpu.util[,interrupt]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Time the CPU has spent servicing hardware interrupts.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9329b55874bb4de7a52f941f382ba9ce','0','2','0'),
('42384','3','','10248','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'916','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','28f98683b9af4558813287cfa151719b','0','2','0'),
('42385','20','get[1.3.6.1.2.1.1.2.0]','10248','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5b17833c4646423d8fd4115fa19d2ffe','0','2','0'),
('42386','15','','10248','Memory utilization','vm.memory.util[snmp]','1m','31d','365d','0','0','','%','','',NULL,NULL,'(last(//vm.memory.total[memTotalReal.0])-(last(//vm.memory.free[memAvailReal.0])+last(//vm.memory.buffers[memBuffer.0])+last(//vm.memory.cached[memCached.0])))/last(//vm.memory.total[memTotalReal.0])*100','','0','','','','','0',NULL,'Please note that memory utilization is a rough estimate, since memory available is calculated as free+buffers+cached, which is not 100% accurate, but the best we can get using SNMP.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','640d893d48d44f2ebe2c9e9bb0158f76','0','2','0'),
('42387','20','get[1.3.6.1.4.1.2021.4.5.0]','10248','Total memory','vm.memory.total[memTotalReal.0]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: UCD-SNMP-MIB\r\nTotal memory expressed in bytes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','de35484e53b24894aa050f15e1941106','0','2','0'),
('42388','20','get[1.3.6.1.4.1.2021.4.6.0]','10248','Free memory','vm.memory.free[memAvailReal.0]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: UCD-SNMP-MIB','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fc3fb5310e8f4af7a093b9df9eede403','0','2','0'),
('42389','20','get[1.3.6.1.4.1.2021.4.15.0]','10248','Memory (cached)','vm.memory.cached[memCached.0]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: UCD-SNMP-MIB\r\nMemory used by the page cache and slabs (Cached and Slab in /proc/meminfo).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d5e0a99bfd9844108c3d26d53d1a3d0c','0','2','0'),
('42390','20','get[1.3.6.1.4.1.2021.4.14.0]','10248','Memory (buffers)','vm.memory.buffers[memBuffer.0]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: UCD-SNMP-MIB\r\nMemory used by kernel buffers (Buffers in /proc/meminfo).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c071dae605b64cce886df7d2865e77e0','0','2','0'),
('42391','15','','10248','Available memory','vm.memory.available[snmp]','1m','31d','365d','0','3','','B','','',NULL,NULL,'last(//vm.memory.free[memAvailReal.0])+last(//vm.memory.buffers[memBuffer.0])+last(//vm.memory.cached[memCached.0])','','0','','','','','0',NULL,'Please note that memory utilization is a rough estimate, since memory available is calculated as free+buffers+cached, which is not 100% accurate, but the best we can get using SNMP.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ad8a3857e8b04dffbc0c052a0d36fe08','0','2','0'),
('42392','20','get[1.3.6.1.2.1.1.3.0]','10248','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d3fba18851db4be08df04ab85536bb14','0','2','0'),
('42393','20','get[1.3.6.1.4.1.2021.4.3.0]','10248','Total swap space','system.swap.total[memTotalSwap.0]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: UCD-SNMP-MIB\r\nThe total amount of swap space configured for this host.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7db5193027794961840c228c6280fe5b','0','2','0'),
('42394','15','','10248','Free swap space in %','system.swap.pfree[snmp]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//system.swap.free[memAvailSwap.0])/last(//system.swap.total[memTotalSwap.0])*100','','0','','','','','0',NULL,'The free space of the swap volume/file expressed in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','52ae3f1d7b3d4b669b40f0fddbb0e326','0','2','0'),
('42395','20','get[1.3.6.1.4.1.2021.4.4.0]','10248','Free swap space','system.swap.free[memAvailSwap.0]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: UCD-SNMP-MIB\r\nThe amount of swap space currently unused or available.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a8ad10709a6e457187f58695de20b027','0','2','0'),
('42396','20','get[1.3.6.1.2.1.1.5.0]','10248','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3ee68ecd1edc4f5d9cddefa78f8d502e','0','2','0'),
('42397','3','','10248','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bc5a3fbab2834f8bb012325071c5b2e0','0','2','0'),
('42398','20','get[1.3.6.1.2.1.1.6.0]','10248','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9f2b3de3245e4ffea5aefc636e0f3da1','0','2','0'),
('42399','20','get[1.3.6.1.2.1.1.1.0]','10248','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','abd4d4b7097644478329b578dfa7bf09','0','2','0'),
('42400','20','get[1.3.6.1.4.1.2021.11.60.0]','10248','Context switches per second','system.cpu.switches[ssRawContexts.0]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The combined rate at which all processors on the computer are switched from one thread to another.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e10a890dc6724cbda96f7c40c49cd730','0','2','0'),
('42405','20','get[1.3.6.1.4.1.2021.11.59.0]','10248','Interrupts per second','system.cpu.intr[ssRawInterrupts.0]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Number of interrupts processed.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fdb0807c4a9a452f8a3cbab01a4ddb2e','0','2','0'),
('42406','20','get[1.3.6.1.2.1.1.4.0]','10248','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e45c4b2df4a640a1a36154cb2b717e9d','0','2','0'),
('42407','17','','10248','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','85a597b741bb4e6e8fa9806e8737caf4','0','2','0'),
('42408','3','','10248','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b1e02fd733c14d71935e24fbe8786d40','0','2','0'),
('42409','5','','10248','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'917','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','03491bb9b98f4267bf1ff56cc226d819','0','2','0'),
('42443','0','','10079','Host name of Zabbix agent running','agent.hostname','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','96c93b959e884934808b4d3c3b2f93d6','0','2','0'),
('42444','0','','10079','Zabbix agent ping','agent.ping','1m','31d','365d','0','3','','','','',NULL,'919','','','0','','','','','0',NULL,'The agent always returns "1" for this item. May be used in combination with `nodata()` for the availability check.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3e70e8cc76bb4099a3a6b96f5669f059','0','2','0'),
('42445','0','','10079','Version of Zabbix agent running','agent.version','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','32e67f37a30c4fb28db9119d9e26a996','0','2','0'),
('42446','5','','10079','Zabbix agent availability','zabbix[host,agent,available]','1m','31d','365d','0','3','','','','',NULL,'918','','','0','','','','','0',NULL,'Used for monitoring the availability status of the agent.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d00cf9691f6c446fa35dab03b2201aa4','0','2','0'),
('42447','0','','10074','Host name of Zabbix agent running','agent.hostname','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','390a1b2080e842f3985b0076509cc550','0','2','0'),
('42448','0','','10074','Zabbix agent ping','agent.ping','1m','31d','365d','0','3','','','','',NULL,'921','','','0','','','','','0',NULL,'The agent always returns "1" for this item. May be used in combination with `nodata()` for the availability check.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','99dbf8825c0d4e1f9ae433bcb786d7c7','0','2','0'),
('42449','0','','10074','Version of Zabbix agent running','agent.version','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c65db5a2b42c46dc90cf4891ad1ecc83','0','2','0'),
('42450','5','','10074','Zabbix agent availability','zabbix[host,agent,available]','1m','31d','365d','0','3','','','','',NULL,'920','','','0','','','','','0',NULL,'Used for monitoring the availability status of the agent.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7ab36f1fcf0244229effa26f16889a36','0','2','0'),
('42451','0','','10078','Host name of Zabbix agent running','agent.hostname','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0a64ce48b94b4886af4bd97beab5f93d','0','2','0'),
('42452','0','','10078','Zabbix agent ping','agent.ping','1m','31d','365d','0','3','','','','',NULL,'923','','','0','','','','','0',NULL,'The agent always returns "1" for this item. May be used in combination with `nodata()` for the availability check.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d708ce58ad214d19a740824512e8be6a','0','2','0'),
('42453','0','','10078','Version of Zabbix agent running','agent.version','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','633a1d74569f4f61892dabf7e0acf6c1','0','2','0'),
('42454','5','','10078','Zabbix agent availability','zabbix[host,agent,available]','1m','31d','365d','0','3','','','','',NULL,'922','','','0','','','','','0',NULL,'Used for monitoring agent availability status','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','46dc8d0138314f41962dc357d1e4af20','0','2','0'),
('42455','0','','10081','Host name of Zabbix agent running','agent.hostname','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','af550a1bfe74428eb24492d8af3b405e','0','2','0'),
('42456','0','','10081','Zabbix agent ping','agent.ping','1m','31d','365d','0','3','','','','',NULL,'928','','','0','','','','','0',NULL,'The agent always returns "1" for this item. May be used in combination with `nodata()` for the availability check.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f81e2ce0d1104f9aaf1fc49284ed0ed4','0','2','0'),
('42457','0','','10081','Number of cores','wmi.get[root/cimv2,"Select NumberOfLogicalProcessors from Win32_ComputerSystem"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The number of logical processors available on the computer.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','83c8c6f15b524a2fb04fc90d04d3e8a2','0','2','0'),
('42458','0','','10081','Windows: Network interfaces WMI get','wmi.getall[root\\cimv2,"select Name,Description,NetConnectionID,Speed,AdapterTypeId,NetConnectionStatus,GUID from win32_networkadapter where PhysicalAdapter=True and NetConnectionStatus>0"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Raw data of `win32_networkadapter.`','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','08b70a5b80fd435ba393e3deb3ca5adb','0','2','0'),
('42459','15','','10081','Memory utilization','vm.memory.util','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.size[used]) / last(//vm.memory.size[total]) * 100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3b1e4ecaa04a46e9b0aee956918f0713','0','2','0'),
('42460','0','','10081','Used memory','vm.memory.size[used]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'Used memory in bytes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1cbf45e11dab453797fe291639aa0c01','0','2','0'),
('42461','0','','10081','Total memory','vm.memory.size[total]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'Total memory expressed in bytes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','09e9a345a0f445b1a65685911f5eb9b0','0','2','0'),
('42462','0','','10081','Uptime','system.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'The system uptime expressed in the following format: "N days, hh:mm:ss".','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','12503fbf4400488e9b5ff0488f164cb6','0','2','0'),
('42463','0','','10081','System description','system.uname','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'System description of the host.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b103a2c22fe344f886e9dc9f4e4a65ec','0','2','0'),
('42464','0','','10081','Total swap space','system.swap.size[,total]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'The total space of the swap volume/file expressed in bytes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f981835baf04494eaff2f33f159e0ab5','0','2','0'),
('42465','15','','10081','Free swap space','system.swap.free','1m','31d','365d','0','3','','B','','',NULL,NULL,'last(//system.swap.size[,total]) - last(//system.swap.size[,total]) / 100 * last(//perf_counter_en["\\Paging file(_Total)\\% Usage"])','','0','','','','','0',NULL,'The free space of the swap volume/file expressed in bytes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','11cac38334544e5cbb028cfd473cb39e','0','2','0'),
('42466','0','','10081','Operating system architecture','system.sw.arch','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The architecture of the operating system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7e8b3476db6d4322a10cd1a28cbdb7ea','0','2','0'),
('42467','0','','10081','System local time','system.localtime','1m','31d','365d','0','3','','unixtime','','',NULL,NULL,'','','0','','','','','0',NULL,'The local system time of the host.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','94c4dfe23e2e4c6e995a3a715941a8eb','0','2','0'),
('42468','0','','10081','System name','system.hostname','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The host name of the system.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cb056886ce72426e833a0445f9263906','0','2','0'),
('42469','0','','10081','CPU utilization','system.cpu.util','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'CPU utilization expressed in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c2ed8e2efab04564b6c70ee8ad14730f','0','2','0'),
('42470','0','','10081','Number of processes','proc.num[]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The number of processes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b305029532f84daf93c8da2d181ac3a1','0','2','0'),
('42471','0','','10081','Number of threads','perf_counter_en["\\System\\Threads"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The number of threads used by all running processes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','630b7b2af6274936ab80b1dd774113e5','0','2','0'),
('42472','0','','10081','CPU queue length','perf_counter_en["\\System\\Processor Queue Length"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The Processor Queue Length shows the number of threads that are observed as delayed in the processor Ready Queue and are waiting to be executed.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','002af28df72f4a788c88bc022d88c6dd','0','2','0'),
('42473','0','','10081','Context switches per second','perf_counter_en["\\System\\Context Switches/sec"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Context Switches/sec is the combined rate at which all processors on the computer are switched from one thread to another.\r\nContext switches occur when a running thread voluntarily relinquishes the processor, is preempted by a higher priority ready thread, or switches between user-mode and privileged (kernel) mode to use an Executive or subsystem service.\r\nIt is the sum of Thread\\\\Context Switches/sec for all threads running on all processors in the computer and is measured in numbers of switches.\r\nThere are context switch counters on the System and Thread objects. This counter displays the difference between the values observed in the last two samples, divided by the duration of the sample interval.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2322a85bfc1049a3b5c892d83b5d5054','0','2','0'),
('42474','0','','10081','CPU user time','perf_counter_en["\\Processor Information(_total)\\% User Time"]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The processor information `% User Time` counter shows the percent of time that the processor(s) is spent executing in User mode.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','575912d512624143b564ca0fbfd0bb8f','0','2','0'),
('42475','0','','10081','CPU privileged time','perf_counter_en["\\Processor Information(_total)\\% Privileged Time"]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The processor information `% Privileged Time` counter shows the percent of time that the processor is spent executing in Kernel (or Privileged) mode. Privileged mode includes services interrupts inside Interrupt Service Routines (ISRs), executing Deferred Procedure Calls (DPCs), Device Driver calls and other kernel-mode functions of the Windows Operating System.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','37448f05afe340a3891d05528c9d1adc','0','2','0'),
('42476','0','','10081','CPU interrupt time','perf_counter_en["\\Processor Information(_total)\\% Interrupt Time"]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The processor information `% Interrupt Time` counter indicates how much time the processor spends handling hardware interrupts during sample intervals. It reflects the activity of devices like the system clock, mouse, disk drivers, and network cards. A value above 20% suggests possible hardware issues.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e403552481b04ebdba2e8a019f114f20','0','2','0'),
('42477','0','','10081','CPU DPC time','perf_counter_en["\\Processor Information(_total)\\% DPC Time"]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Processor DPC time is the time that a single processor spent receiving and servicing deferred procedure calls (DPCs). DPCs are interrupts that run at a lower priority than standard interrupts. `% DPC Time` is a component of `% Privileged Time` because DPCs are executed in privileged mode. If a high `% DPC Time` is sustained, there may be a processor bottleneck or an application or hardware related issue that can significantly diminish overall system performance.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ee1f116fdab34969a6e6f5e1c25fc3d2','0','2','0'),
('42478','0','','10081','Used swap space in %','perf_counter_en["\\Paging file(_Total)\\% Usage"]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The used space of swap volume/file in percent.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b99a722d267d455fad3c07c53302b20f','0','2','0'),
('42479','0','','10081','Memory pool non-paged','perf_counter_en["\\Memory\\Pool Nonpaged Bytes"]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'This measures the size, in bytes, of the non-paged pool. This is an area of system memory for objects that cannot be written to disk but instead must remain in physical memory as long as they are allocated.\r\nThere is a possible memory leak if the value is greater than 175MB (or 100MB with the /3GB switch). Consequently, Event ID 2019 is recorded in the system event log.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fb822cb2a17948208a61bd6661c496df','0','2','0'),
('42480','0','','10081','Memory pages per second','perf_counter_en["\\Memory\\Pages/sec"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'This measures the rate at which pages are read from or written to disk to resolve hard page faults.\r\nIf the value is greater than 1,000, as a result of excessive paging, there may be a memory leak.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','287163bc5b0441c4bf51489432a278eb','0','2','0'),
('42481','0','','10081','Memory page faults per second','perf_counter_en["\\Memory\\Page Faults/sec"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Page Faults/sec is the average number of pages faulted per second. It is measured in number of pages faulted per second because only one page is faulted in each fault operation, hence this is also equal to the number of page fault operations. This counter includes both hard faults (those that require disk access) and soft faults (where the faulted page is found elsewhere in physical memory.) Most processors can handle large numbers of soft faults without significant consequence. However, hard faults, which require disk access, can cause significant delays.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6c41d254585a4d7b81a0c5766a8913c1','0','2','0'),
('42482','0','','10081','Free system page table entries','perf_counter_en["\\Memory\\Free System Page Table Entries"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'This indicates the number of page table entries not currently in use by the system. If the number is less than 5,000, there may be a memory leak or you running out of memory.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2ea74fafb9334de095adcb47cced578d','0','2','0'),
('42483','0','','10081','Cache bytes','perf_counter_en["\\Memory\\Cache Bytes"]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'Cache Bytes is the sum of the Memory\\\\System Cache Resident Bytes, Memory\\\\System Driver Resident Bytes, Memory\\\\System Code Resident Bytes, and Memory\\\\Pool Paged Resident Bytes counters. This counter displays the last observed value only; it is not an average.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5219a246de0641a89685a961cdd08c0b','0','2','0'),
('42484','0','','10081','Version of Zabbix agent running','agent.version','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5707443d739d4689bde192e75ff4bd0f','0','2','0'),
('42485','5','','10081','Zabbix agent availability','zabbix[host,agent,available]','1m','31d','365d','0','3','','','','',NULL,'927','','','0','','','','','0',NULL,'Used for monitoring the availability status of the agent.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3dcb0f79342b4ded97cdec0794472266','0','2','0'),
('42512','7','','10351','Host name of Zabbix agent running','agent.hostname','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','042ce35b908748c8bdd322f818c52c85','0','2','0'),
('42513','7','','10351','Number of processes','proc.num[]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The number of processes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5229689338ae4a559d3c94a98032131e','0','2','0'),
('42514','7','','10351','Windows: Network interfaces WMI get','wmi.getall[root\\cimv2,"select Name,Description,NetConnectionID,Speed,AdapterTypeId,NetConnectionStatus,GUID from win32_networkadapter where PhysicalAdapter=True and NetConnectionStatus>0"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Raw data of `win32_networkadapter.`','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c35940d1a12e4b96b7114ac8dbbfcec4','0','2','0'),
('42515','15','','10351','Memory utilization','vm.memory.util','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.size[used]) / last(//vm.memory.size[total]) * 100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9b62965a4670472b8c672dc1021bb8fd','0','2','0'),
('42516','7','','10351','Used memory','vm.memory.size[used]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'Used memory in bytes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f85ec8917f084c7d9b6bc36e186d74d6','0','2','0'),
('42517','7','','10351','Total memory','vm.memory.size[total]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'Total memory expressed in bytes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','83185781999742268a7742695c5d3ee3','0','2','0'),
('42518','7','','10351','Uptime','system.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'The system uptime expressed in the following format: "N days, hh:mm:ss".','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','695053710ea14cc48692b5cb260d0dfb','0','2','0'),
('42519','7','','10351','System description','system.uname','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'System description of the host.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8fa1259420ad486ab6e2520c9b047073','0','2','0'),
('42520','7','','10351','Total swap space','system.swap.size[,total]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'The total space of the swap volume/file expressed in bytes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b5af29f7b8ee451895b49c0444e929f4','0','2','0'),
('42521','15','','10351','Free swap space','system.swap.free','1m','31d','365d','0','3','','B','','',NULL,NULL,'last(//system.swap.size[,total]) - last(//system.swap.size[,total]) / 100 * last(//perf_counter_en["\\Paging file(_Total)\\% Usage"])','','0','','','','','0',NULL,'The free space of the swap volume/file expressed in bytes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9d6f14cc540846ab98052bf741a4247b','0','2','0'),
('42522','7','','10351','Operating system architecture','system.sw.arch','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The architecture of the operating system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','16a7ae509f0c4f9d8631efae88fe6324','0','2','0'),
('42523','7','','10351','System local time','system.localtime','1m','31d','365d','0','3','','unixtime','','',NULL,NULL,'','','0','','','','','0',NULL,'The local system time of the host.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','89f928affba54c4a8dc7abead09cac68','0','2','0'),
('42524','7','','10351','System name','system.hostname','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The host name of the system.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5d99b356e30444a0b99e597506f35a69','0','2','0'),
('42525','7','','10351','CPU utilization','system.cpu.util','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'CPU utilization expressed in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0f3ffe45092d461a91a1296cd6cfb19f','0','2','0'),
('42526','7','','10351','Number of threads','perf_counter_en["\\System\\Threads"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The number of threads used by all running processes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c738b97ec0dc49f380ed0e4a27ae9bb6','0','2','0'),
('42527','7','','10351','Zabbix agent ping','agent.ping','1m','31d','365d','0','3','','','','',NULL,'933','','','0','','','','','0',NULL,'The agent always returns "1" for this item. May be used in combination with `nodata()` for the availability check.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bd8864ac5450401b9ad479c1ee455805','0','2','0'),
('42528','7','','10351','CPU queue length','perf_counter_en["\\System\\Processor Queue Length"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The Processor Queue Length shows the number of threads that are observed as delayed in the processor Ready Queue and are waiting to be executed.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c1da358e5c8f40279c703d93896aa571','0','2','0'),
('42529','7','','10351','Context switches per second','perf_counter_en["\\System\\Context Switches/sec"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Context Switches/sec is the combined rate at which all processors on the computer are switched from one thread to another.\r\nContext switches occur when a running thread voluntarily relinquishes the processor, is preempted by a higher priority ready thread, or switches between user-mode and privileged (kernel) mode to use an Executive or subsystem service.\r\nIt is the sum of Thread\\\\Context Switches/sec for all threads running on all processors in the computer and is measured in numbers of switches.\r\nThere are context switch counters on the System and Thread objects. This counter displays the difference between the values observed in the last two samples, divided by the duration of the sample interval.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f23957a6fb9a44a3a7010b19b16e77b5','0','2','0'),
('42530','7','','10351','CPU user time','perf_counter_en["\\Processor Information(_total)\\% User Time"]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The processor information `% User Time` counter shows the percent of time that the processor(s) is spent executing in User mode.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','954a81efad4c4791bee052194b900268','0','2','0'),
('42531','7','','10351','CPU privileged time','perf_counter_en["\\Processor Information(_total)\\% Privileged Time"]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The processor information `% Privileged Time` counter shows the percent of time that the processor is spent executing in Kernel (or Privileged) mode. Privileged mode includes services interrupts inside Interrupt Service Routines (ISRs), executing Deferred Procedure Calls (DPCs), Device Driver calls and other kernel-mode functions of the Windows Operating System.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0747e92e52cc4a6a9b83c6f94889bff1','0','2','0'),
('42532','7','','10351','CPU interrupt time','perf_counter_en["\\Processor Information(_total)\\% Interrupt Time"]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The processor information `% Interrupt Time` counter indicates how much time the processor spends handling hardware interrupts during sample intervals. It reflects the activity of devices like the system clock, mouse, disk drivers, and network cards. A value above 20% suggests possible hardware issues.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','32a32b9fea5d49989668a96bc52db87b','0','2','0'),
('42533','7','','10351','CPU DPC time','perf_counter_en["\\Processor Information(_total)\\% DPC Time"]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Processor DPC time is the time that a single processor spent receiving and servicing deferred procedure calls (DPCs). DPCs are interrupts that run at a lower priority than standard interrupts. `% DPC Time` is a component of `% Privileged Time` because DPCs are executed in privileged mode. If a high `% DPC Time` is sustained, there may be a processor bottleneck or an application or hardware related issue that can significantly diminish overall system performance.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','553249b52ca7492c87386d051ec53db9','0','2','0'),
('42534','7','','10351','Used swap space in %','perf_counter_en["\\Paging file(_Total)\\% Usage"]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The used space of swap volume/file in percent.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4f7b86eff6c84193a2f9187fff578416','0','2','0'),
('42535','7','','10351','Memory pool non-paged','perf_counter_en["\\Memory\\Pool Nonpaged Bytes"]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'This measures the size, in bytes, of the non-paged pool. This is an area of system memory for objects that cannot be written to disk but instead must remain in physical memory as long as they are allocated.\r\nThere is a possible memory leak if the value is greater than 175MB (or 100MB with the /3GB switch). Consequently, Event ID 2019 is recorded in the system event log.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3af0a0717da747849c2b5a2ebfa61a2c','0','2','0'),
('42536','7','','10351','Memory pages per second','perf_counter_en["\\Memory\\Pages/sec"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'This measures the rate at which pages are read from or written to disk to resolve hard page faults.\r\nIf the value is greater than 1,000, as a result of excessive paging, there may be a memory leak.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','920faa3a434d46d48f99395e16ef04ec','0','2','0'),
('42537','7','','10351','Memory page faults per second','perf_counter_en["\\Memory\\Page Faults/sec"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Page Faults/sec is the average number of pages faulted per second. It is measured in number of pages faulted per second because only one page is faulted in each fault operation, hence this is also equal to the number of page fault operations. This counter includes both hard faults (those that require disk access) and soft faults (where the faulted page is found elsewhere in physical memory.) Most processors can handle large numbers of soft faults without significant consequence. However, hard faults, which require disk access, can cause significant delays.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','19ec57305ba34ed890e2e4c8a500a214','0','2','0'),
('42538','7','','10351','Free system page table entries','perf_counter_en["\\Memory\\Free System Page Table Entries"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'This indicates the number of page table entries not currently in use by the system. If the number is less than 5,000, there may be a memory leak or you running out of memory.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','71bb18af403248c7818d16444a2eec06','0','2','0'),
('42539','7','','10351','Cache bytes','perf_counter_en["\\Memory\\Cache Bytes"]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'Cache Bytes is the sum of the Memory\\\\System Cache Resident Bytes, Memory\\\\System Driver Resident Bytes, Memory\\\\System Code Resident Bytes, and Memory\\\\Pool Paged Resident Bytes counters. This counter displays the last observed value only; it is not an average.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','20dceb831b1a4d63af7635656239c495','0','2','0'),
('42540','7','','10351','Version of Zabbix agent running','agent.version','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','41cec8b443a94efc9ebca6f66c46ad8a','0','2','0'),
('42541','7','','10351','Number of cores','wmi.get[root/cimv2,"Select NumberOfLogicalProcessors from Win32_ComputerSystem"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The number of logical processors available on the computer.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3dcf69f6637f496ca0406e0ed403f03c','0','2','0'),
('42568','3','','10249','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'936','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d751b3ead8cd4509a3f87c9bb4c89f00','0','2','0'),
('42569','3','','10249','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9e311b1e5e8841da85c5ec6145d9c75f','0','2','0'),
('42570','3','','10249','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fba6328e6e6240f28c1b901a9c2fc376','0','2','0'),
('42571','17','','10249','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b75c480b7ec648a5b2762b20fc5c2ed8','0','2','0'),
('42572','20','get[1.3.6.1.2.1.1.4.0]','10249','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','dd26c7a0a46240279bb907b8a1253029','0','2','0'),
('42573','20','discovery[{#CPU.UTIL},1.3.6.1.2.1.25.3.3.1.2]','10249','CPU utilization','system.cpu.util','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe average, over the last minute, of the percentage of time that processors was not idle.\r\nImplementations may approximate this one minute smoothing period if necessary.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','16a592f6b9f64403999f92d677f1cd2e','0','2','0'),
('42574','20','get[1.3.6.1.2.1.1.1.0]','10249','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e95e030765e84abfa5a51194e81ac719','0','2','0'),
('42575','20','get[1.3.6.1.2.1.1.6.0]','10249','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d19b9bfdfe7344a28eaf69a1b7961adb','0','2','0'),
('42576','20','get[1.3.6.1.2.1.1.5.0]','10249','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9feb2f561b3d4356bc6ef2cac955a495','0','2','0'),
('42577','20','get[1.3.6.1.2.1.1.2.0]','10249','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c9e67b57c15747e8ab4f67e24837ce49','0','2','0'),
('42578','20','get[1.3.6.1.2.1.1.3.0]','10249','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','af7f47f4cf884282bbd9d296ba61b1c2','0','2','0'),
('42579','5','','10249','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'937','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4863042ade2143a0b34e1fc9403742b0','0','2','0'),
('42598','3','','10385','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'938','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','030530f5193246f4b983ec802030e49b','0','2','0'),
('42599','3','','10385','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c82fa3f20c7443e4849ea8e8aec1e49d','0','2','0'),
('42600','3','','10385','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0a95c43c70e54ad49f073fee69a2452d','0','2','0'),
('42601','17','','10385','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2ec396a7adf64637ae453d7f26cd5b20','0','2','0'),
('42602','20','get[1.3.6.1.2.1.1.4.0]','10385','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e98719af84414ef5ab3dd788c7d2d72f','0','2','0'),
('42603','20','get[1.3.6.1.2.1.1.1.0]','10385','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cf59fb53834d4b14bdb0251e66c5143f','0','2','0'),
('42604','20','get[1.3.6.1.2.1.1.6.0]','10385','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fed7a954ea614cb086b901b2e6957621','0','2','0'),
('42605','20','get[1.3.6.1.2.1.1.5.0]','10385','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','354fe7cd2632425b9f937e8714d79798','0','2','0'),
('42606','20','get[1.3.6.1.2.1.1.2.0]','10385','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bf571c06cc264eca89d68f0b0b7559f7','0','2','0'),
('42607','20','get[1.3.6.1.2.1.1.3.0]','10385','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f14eaa207ac9480995d2a2a10bea1467','0','2','0'),
('42608','5','','10385','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'939','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','197767da1b3c4c4f8f3c59ab3c3fc5b8','0','2','0'),
('42609','3','','10378','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'44','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','62c6bb1b70ee4ece865b562e298cafb0','0','2','0'),
('42610','3','','10378','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f7c934ef77d04c00bdec19f8e3950d85','0','2','0'),
('42611','3','','10378','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','72f8c27991b7440ba186f6eb037605cf','0','2','0'),
('42612','17','','10378','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4380826947fc4df6a341fe074f42da6a','0','2','0'),
('42613','20','get[1.3.6.1.2.1.1.4.0]','10378','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','045800cfeaf6448ab9a9e97f8b5172c1','0','2','0'),
('42614','20','get[1.3.6.1.2.1.1.1.0]','10378','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c12c6668d9564855b227dee42a9d86f8','0','2','0'),
('42615','20','get[1.3.6.1.2.1.1.6.0]','10378','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f46b736cdb7f44fcacf33d272d905db8','0','2','0'),
('42616','20','get[1.3.6.1.2.1.1.5.0]','10378','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','65c5b2a3742c4c6d8a04c63bb96b46c6','0','2','0'),
('42617','20','get[1.3.6.1.2.1.1.2.0]','10378','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2d9d7b390c774a188a07dbb5bb4a583e','0','2','0'),
('42618','20','get[1.3.6.1.2.1.1.3.0]','10378','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','564b458cee7a4a2bb2b4f4777bead32d','0','2','0'),
('42619','5','','10378','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'940','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fff713712c44477aa081445d9962c002','0','2','0'),
('42620','3','','10304','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'941','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','250be2514e9246e08058a403bf674cf6','0','2','0'),
('42621','3','','10304','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c7eaba8c2b7d4b4aa14081957252e33e','0','2','0'),
('42622','3','','10304','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','88b4a6cc507748e19f08d0ffc9a15368','0','2','0'),
('42623','17','','10304','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','00b0172971e34784836d03e76b3480bd','0','2','0'),
('42624','20','get[1.3.6.1.2.1.1.4.0]','10304','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','50df0ad347d94cffb871256c6340af11','0','2','0'),
('42625','20','get[1.3.6.1.2.1.1.1.0]','10304','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','235302070dc54f148b92027967a6ff2f','0','2','0'),
('42626','20','get[1.3.6.1.2.1.1.6.0]','10304','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7ba9b86064ad432a9e6d1922ca29edda','0','2','0'),
('42627','20','get[1.3.6.1.2.1.1.5.0]','10304','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4674d8adc39343f7b46d21cae2ec1310','0','2','0'),
('42628','20','get[1.3.6.1.2.1.1.2.0]','10304','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','05fe3cb6d2004e7ea2d37742fc2549d3','0','2','0'),
('42629','20','get[1.3.6.1.2.1.1.3.0]','10304','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1b0551aa2d184c8d923788b5d159ed7c','0','2','0'),
('42630','5','','10304','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'942','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b80f6a30ad124a1ea863f2fdb868ba6f','0','2','0'),
('42634','17','','10255','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other `snmptrap` items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7e7e65916304419a8b5c43c9c08a20fc','0','2','0'),
('42641','5','','10255','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'944','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2e3b11fcdd2146018676621143fd297b','0','2','0'),
('42642','3','','10256','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'945','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5abff4175d1640b9b633c4d9184bd243','0','2','0'),
('42643','3','','10256','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1db2fcdd357e4d15a989c0511bbed8bd','0','2','0'),
('42644','3','','10256','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8be612f43d1d40ce9efd3c36d18e6a20','0','2','0'),
('42645','17','','10256','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0107bcd0d6b840c4a64061ee83e69f11','0','2','0'),
('42646','20','get[1.3.6.1.2.1.1.4.0]','10256','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2203e586148a418f9e2f06b38c340b53','0','2','0'),
('42647','20','get[1.3.6.1.2.1.1.1.0]','10256','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','03ff0b6d9c7a483eaae565d90473d291','0','2','0'),
('42648','20','get[1.3.6.1.2.1.1.6.0]','10256','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','84ed489ba1be43738be79f8a71b60381','0','2','0'),
('42649','20','get[1.3.6.1.2.1.1.5.0]','10256','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','88baf9f1da184fc78a49b064f0b4de85','0','2','0'),
('42650','20','get[1.3.6.1.2.1.1.2.0]','10256','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d02b8e2d5c7a4afabc2fbadc8674288c','0','2','0'),
('42651','20','get[1.3.6.1.2.1.1.3.0]','10256','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','05166eb015534cae9798f9266d3d0a6b','0','2','0'),
('42652','5','','10256','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'946','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e5ebd75f34f24502b3cdc2a707fb24c5','0','2','0'),
('42653','3','','10258','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'947','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','303807b2799f4f7cace3d781e9ed1715','0','2','0'),
('42654','3','','10258','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4af423253e1b4960825b49041d9c8feb','0','2','0'),
('42655','3','','10258','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b1659e3298fb447f8ee93e8bab98a22d','0','2','0'),
('42656','17','','10258','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e0a1cdb1df4d408087a8ed3d473ce1fe','0','2','0'),
('42657','20','get[1.3.6.1.2.1.1.4.0]','10258','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6686560b390540b593a2d3bb3289ea41','0','2','0'),
('42658','20','get[1.3.6.1.2.1.1.1.0]','10258','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','905c91ce799849dfb56b800c93849826','0','2','0'),
('42659','20','get[1.3.6.1.2.1.1.6.0]','10258','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','589def06a1b74a7f8ada7cc4576aa9eb','0','2','0'),
('42660','20','get[1.3.6.1.2.1.1.5.0]','10258','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','596ce9f7e6b848e4869cd195996c7114','0','2','0'),
('42661','20','get[1.3.6.1.2.1.1.2.0]','10258','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ad8eada79b464821a14759f32f6d7f2a','0','2','0'),
('42662','20','get[1.3.6.1.2.1.1.3.0]','10258','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','97cd7cf6a9a545788a2f709bacb925ed','0','2','0'),
('42663','5','','10258','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'948','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','59d2bec423a84ca186d5785ddea5270b','0','2','0'),
('42664','3','','10259','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'949','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7c60cd8613094b95bfd0ad45d04bc0e8','0','2','0'),
('42665','3','','10259','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4a8bd0d13bab4666aaf4c53b7722ec74','0','2','0'),
('42666','3','','10259','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','feb1b9189b904b42b17ac4e1db49806e','0','2','0'),
('42667','17','','10259','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cadc501d69624baa8ad292c2c8f6fd52','0','2','0'),
('42668','20','get[1.3.6.1.2.1.1.4.0]','10259','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ccba865de57a41718b53ff1f82b2ca87','0','2','0'),
('42669','20','get[1.3.6.1.2.1.1.1.0]','10259','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','70f51b4370c64c2bab2c811359ef690b','0','2','0'),
('42670','20','get[1.3.6.1.2.1.1.6.0]','10259','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','52169be1d3924c638476a290590066f3','0','2','0'),
('42671','20','get[1.3.6.1.2.1.1.5.0]','10259','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','afa2acff36034dccb96a1946e7039f39','0','2','0'),
('42672','20','get[1.3.6.1.2.1.1.2.0]','10259','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a0c0d3ee729b4a159719271232024b45','0','2','0'),
('42673','20','get[1.3.6.1.2.1.1.3.0]','10259','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cc33c0e22893432280d642c75020a222','0','2','0'),
('42674','5','','10259','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'950','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e205f1aa96a448a2955e988fa8528600','0','2','0'),
('42724','21','','10516','Get data','openweathermap.get.data','10m','0','0','0','4','','','','',NULL,NULL,'var params = JSON.parse(value),\r\n request = new HttpRequest(),\r\n data = [],\r\n error_msg = [],\r\n measurement,\r\n temp_unit,\r\n wind_unit,\r\n errors_only = [],\r\n error_locations = [],\r\n unique_errors,\r\n new_error_msg;\r\n\r\nfunction getHttpData(query) {\r\n url = params.api_endpoint + query + \'&appid=\' + params.apikey + \'&units=\' + params.units + \'&lang=\' + params.lang;\r\n response = request.get(url);\r\n Zabbix.log(4, \'[ Openweathermap ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response.\';\r\n }\r\n }\r\n\r\n if (request.getStatus() !== 200) {\r\n if (response.error && response.error.message) {\r\n throw response.error.message;\r\n }\r\n else {\r\n throw \'Failed to receive data. Invalid response status code: \' + request.getStatus();\r\n }\r\n }\r\n return response;\r\n}\r\n\r\nswitch (params.units) {\r\n case \'metric\':\r\n measurement = \'metric\';\r\n temp_unit = \'C\';\r\n wind_unit = \'meter/sec\';\r\n break;\r\n case \'imperial\':\r\n measurement = \'imperial\';\r\n temp_unit = \'F\';\r\n wind_unit = \'miles/hour\';\r\n break;\r\n default:\r\n measurement = \'standard\';\r\n temp_unit = \'K\';\r\n wind_unit = \'meter/sec\';\r\n}\r\n\r\nlocations = params.location.split(\'|\');\r\nfor (var i in locations) {\r\n try {\r\n if (/^[0-9]+$/g.test(locations[i])) {\r\n result = getHttpData(\'id=\' + locations[i]);\r\n }\r\n else if (/^.*,[\\w]+$/g.test(locations[i])) {\r\n result = getHttpData(\'zip=\' + locations[i]);\r\n }\r\n else if (/^(\\-)?[0-9]{1,2}(\\.[0-9]+)?,(\\-)?[0-9]{1,2}(\\.[0-9]+)?/g.test(locations[i])) {\r\n coordinates = locations[i].split(\',\');\r\n result = getHttpData(\'lat=\' + coordinates[0] + \'&lon=\' + coordinates[1]);\r\n }\r\n else {\r\n result = getHttpData(\'q=\' + encodeURIComponent(locations[i]));\r\n }\r\n if (!data.filter(function (location) { return location.id === result.id; }).length) {\r\n result.measurement = measurement;\r\n result.temp_unit = temp_unit;\r\n result.wind_unit = wind_unit;\r\n data.push(result);\r\n }\r\n } catch (error) {\r\n errors = {};\r\n errors.location = locations[i];\r\n errors.error = error.toString();\r\n error_msg.push(errors);\r\n errors_only.push(error.toString());\r\n }\r\n}\r\n\r\nif (error_msg.length === 0) {\r\n return JSON.stringify({\r\n \'data\': data,\r\n \'errors\': error_msg.toString()\r\n });\r\n} else {\r\n unique_errors = errors_only.filter(function (value, index, self) {\r\n return self.indexOf(value) == index;\r\n });\r\n\r\n if (unique_errors.length === 1) {\r\n for (var j in error_msg) {\r\n error_locations.push(error_msg[j].location);\r\n }\r\n new_error_msg = \'Failed to retrieve data for the following locations: \' + error_locations + \'. \' + unique_errors[0];\r\n return JSON.stringify({\r\n \'data\': data,\r\n \'errors\': new_error_msg\r\n });\r\n } else {\r\n return JSON.stringify({\r\n \'data\': data,\r\n \'errors\': error_msg\r\n });\r\n }\r\n}','','0','','','','','0',NULL,'JSON array with result of OpenWeatherMap API requests.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7db240f752294b2eb86537d6c06cac5e','0','2','0'),
('42738','21','','10517','API service status','proxmox.api.available','5m','31d','365d','0','3','','','','',NULL,'954','try {\r\n var params = JSON.parse(value);\r\n var req = new HttpRequest();\r\n req.addHeader(\'Authorization: PVEAPIToken=\' + params.token + \'=\' + params.secret);\r\n req.get(encodeURI(\'https://\' + params.url + \':\' + params.port + \'/api2/json/version\'));\r\n} catch (error) {\r\n Zabbix.log(3, "Proxmox API failed: " + params.url + " Error: " + error);\r\n if (!Number.isInteger(error))\r\n return 520;\r\n}\r\nreturn req.getStatus();','','0','','','','','0',NULL,'Get API service status.','0','30d','0','',NULL,'10s','','','','200','1','0','','','0','0','0','0','0','0','0','75f8f8c507774f529ade4bc4255f5fd2','0','2','0'),
('42739','19','','10517','Get cluster resources','proxmox.cluster.resources','5m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Resources index.','0','30d','0','',NULL,'','https://{$PVE.URL.HOST}:{$PVE.URL.PORT}/api2/json/cluster/resources','','','200','1','0','','Authorization: PVEAPIToken={$PVE.TOKEN.ID}={$PVE.TOKEN.SECRET}','0','0','0','0','0','0','0','4fe4fa1323cd481f8aff3bfb716eeae2','0','2','0'),
('42740','19','','10517','Get cluster status','proxmox.cluster.status','5m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Get cluster status information.','0','30d','0','',NULL,'','https://{$PVE.URL.HOST}:{$PVE.URL.PORT}/api2/json/cluster/status','','','200','1','0','','Authorization: PVEAPIToken={$PVE.TOKEN.ID}={$PVE.TOKEN.SECRET}','0','0','0','0','0','0','0','6e6a5046b8154bafad375813ca210e1f','0','2','0'),
('42792','3','','10518','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'959','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bbebf1aafe8149a7825ffb976d20fd5c','0','2','0'),
('42805','15','','10518','Available memory','vm.memory.available','1m','31d','365d','0','3','','B','','',NULL,NULL,'last(//vm.memory.free)+last(//vm.memory.buffers)+last(//vm.memory.cached)','','0','','','','','0',NULL,'Please note that memory utilization is a rough estimate, since memory available is calculated as free+buffers+cached, which is not 100% accurate, but the best we can get using SNMP.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','43901b6beb7f4f559464775863d19976','0','2','0'),
('42806','20','get[1.3.6.1.4.1.2021.4.14.0]','10518','Memory (buffers)','vm.memory.buffers','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: UCD-SNMP-MIB\r\nThe total amount of real or virtual memory currently allocated for use as memory buffers.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3b6007f808e04eefafe236737773ce7f','0','2','0'),
('42807','20','get[1.3.6.1.4.1.2021.4.15.0]','10518','Memory (cached)','vm.memory.cached','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: UCD-SNMP-MIB\r\nThe total amount of real or virtual memory currently allocated for use as cached memory.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ab4c02a4c1fc4ef69a31e9b83a1a9263','0','2','0'),
('42808','20','get[1.3.6.1.4.1.2021.4.6.0]','10518','Free memory','vm.memory.free','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: UCD-SNMP-MIB\r\nThe amount of real/physical memory currently unused or available.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d55491912c814481b0931e836838e9b0','0','2','0'),
('42809','20','get[1.3.6.1.4.1.2021.4.5.0]','10518','Total memory','vm.memory.total','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: UCD-SNMP-MIB\r\nThe total memory expressed in bytes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e3802f02a4364e6bb37fb7fe780c4137','0','2','0'),
('42810','15','','10518','Memory utilization','vm.memory.util','1m','31d','365d','0','0','','%','','',NULL,NULL,'(last(//vm.memory.total)-(last(//vm.memory.free)+last(//vm.memory.buffers)+last(//vm.memory.cached)))/last(//vm.memory.total)*100','','0','','','','','0',NULL,'Please note that memory utilization is a rough estimate, since memory available is calculated as free+buffers+cached, which is not 100% accurate, but the best we can get using SNMP.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c70fad7e758e480fbae726a677a29ead','0','2','0'),
('42813','3','','10518','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','43b3e4ddfeb34a1abba953cd7503ce2c','0','2','0'),
('42815','3','','10518','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','006c38011abf42f69ef5d9238a356faf','0','2','0'),
('42817','20','get[1.3.6.1.4.1.2021.11.59.0]','10518','Interrupts per second','system.cpu.intr','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: UCD-SNMP-MIB\r\nNumber of interrupts processed.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b41b8db2212848db83a6a0d9369fecdd','0','2','0'),
('42822','20','get[1.3.6.1.4.1.2021.11.60.0]','10518','Context switches per second','system.cpu.switches','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: UCD-SNMP-MIB\r\nNumber of context switches.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c8740f4489c04eedb072869e27f68a60','0','2','0'),
('42825','20','get[1.3.6.1.2.1.1.5.0]','10518','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','46b98d1ef62d49a0bb22687dc119acf0','0','2','0'),
('42827','20','get[1.3.6.1.4.1.2021.4.4.0]','10518','Free swap space','system.swap.free','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: UCD-SNMP-MIB\r\nThe amount of swap space currently unused or available.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e61f086a8a3942569e6c7f67b24e8f86','0','2','0'),
('42828','15','','10518','Free swap space in %','system.swap.pfree','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//system.swap.free)/last(//system.swap.total)*100','','0','','','','','0',NULL,'The free space of the swap volume/file expressed in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2a075af85eed44c8adba2cb7bc657b40','0','2','0'),
('42829','20','get[1.3.6.1.4.1.2021.4.3.0]','10518','Total swap space','system.swap.total','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: UCD-SNMP-MIB\r\nThe total amount of swap space configured for this host.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b0fc3cd77ed348bb955fc98d8636ab76','0','2','0'),
('42833','5','','10518','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'960','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fcbcc100655d478bbf868ffc2a0302d8','0','2','0'),
('42877','3','','10175','Get sensors','vmware.hv.sensors.get[{$VMWARE.URL},{$VMWARE.HV.UUID}]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'Master item for sensor data.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3c9d6ffb53624758ad888bf70f69218c','0','2','0'),
('42880','0','','10329','Get queries','pgsql.queries["{$PG.CONNSTRING.AGENT2}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}","{$PG.QUERY_ETIME.MAX.WARN}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Collect all metrics by query execution time.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','01123126fcd54adc84c3bbfa227d9c0c','0','2','0'),
('42930','3','','10519','Service ping','net.tcp.service["{$COCKROACHDB.API.SCHEME}","{$COCKROACHDB.API.HOST}","{$COCKROACHDB.API.PORT}"]','1m','31d','365d','0','3','','','','',NULL,'963','','','0','','','','','0',NULL,'Check if HTTP/HTTPS service accepts TCP connections.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','00afa7b32af9499c89e939c96e0e29d1','0','2','0'),
('42931','19','','10519','Get health','cockroachdb.get_health','1m','31d','365d','0','3','','','','',NULL,'961','','','0','','','','','0',NULL,'Get node /health endpoint','0','30d','0','',NULL,'15s','{$COCKROACHDB.API.SCHEME}://{$COCKROACHDB.API.HOST}:{$COCKROACHDB.API.PORT}/health','','','200,500','1','0','','','1','0','0','0','0','0','0','a8cd030e869b4d788126ee5fa35d3403','0','2','0'),
('42932','19','','10519','Get readiness','cockroachdb.get_readiness','1m','31d','365d','0','3','','','','',NULL,'962','','','0','','','','','0',NULL,'Get node /health?ready=1 endpoint','0','30d','0','',NULL,'15s','{$COCKROACHDB.API.SCHEME}://{$COCKROACHDB.API.HOST}:{$COCKROACHDB.API.PORT}/health?ready=1','','','200,503','1','0','','','1','0','0','0','0','0','0','3e5e18e02b1b4f8d8f17c2e7d993169c','0','2','0'),
('42933','19','','10519','Get metrics','cockroachdb.get_metrics','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Get raw metrics from the Prometheus endpoint.','0','30d','0','',NULL,'15s','{$COCKROACHDB.API.SCHEME}://{$COCKROACHDB.API.HOST}:{$COCKROACHDB.API.PORT}/_status/vars','','','200','1','0','','','0','0','0','0','0','0','0','926415babea74e2f951a0420bbdf1d8d','0','2','0'),
('43018','19','','10520','Get node metrics','envoy.get_metrics','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Get server metrics.','0','30d','0','',NULL,'','{$ENVOY.URL}{$ENVOY.METRICS.PATH}','','','200','1','0','','','0','0','0','0','0','0','0','c6baf4c4e99f4516a23f87c089252a82','0','2','0'),
('43077','5','','10361','Active agent availability','zabbix[host,active_agent,available]','1m','31d','365d','0','3','','','','',NULL,'967','','','0','','','','','0',NULL,'Availability of active checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - unknown\r\n1 - available\r\n2 - not available','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b20b5df8198e4cdc8b584061f6815d5d','0','2','0'),
('43078','5','','10326','Active agent availability','zabbix[host,active_agent,available]','1m','31d','365d','0','3','','','','',NULL,'968','','','0','','','','','0',NULL,'Availability of active checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - unknown\r\n1 - available\r\n2 - not available','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bfe53ca77e2046d6bb9ece5250e227f1','0','2','0'),
('43079','5','','10343','Active agent availability','zabbix[host,active_agent,available]','1m','31d','365d','0','3','','','','',NULL,'969','','','0','','','','','0',NULL,'Availability of active checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - unknown\r\n1 - available\r\n2 - not available','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','090fb1a5698e4e7080abf379b377b6f5','0','2','0'),
('43080','5','','10351','Active agent availability','zabbix[host,active_agent,available]','1m','31d','365d','0','3','','','','',NULL,'970','','','0','','','','','0',NULL,'Availability of active checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - unknown\r\n1 - available\r\n2 - not available','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1ac6ebdb5c98415b94cb44da5feeac7f','0','2','0'),
('43081','21','','10521','Get local services','consul.get_local_services','1m','0','0','0','4','','','','',NULL,NULL,'var Consul = {\r\n setParams: function (params) {\r\n [\'api_endpoint\', \'token\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n });\r\n\r\n Consul.params = params;\r\n if (typeof Consul.params.api_endpoint === \'string\' && !Consul.params.api_endpoint.endsWith(\'/\')) {\r\n Consul.params.api_endpoint += \'/\';\r\n }\r\n },\r\n\r\n request: function (query) {\r\n var response,\r\n request = new HttpRequest(),\r\n url = Consul.params.api_endpoint + query;\r\n\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'X-Consul-Token: \' + Consul.params.token);\r\n\r\n Zabbix.log(4, \'[ Consul ] Sending request: \' + url);\r\n response = request.get(url);\r\n\r\n Zabbix.log(4, \'[ Consul ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from Consul Agent API.\';\r\n }\r\n }\r\n\r\n return {\r\n status: request.getStatus(),\r\n response: response\r\n };\r\n },\r\n\r\n getServices: function () {\r\n var result = Consul.request(\'v1/agent/services\'),\r\n services = [];\r\n\r\n if (typeof result.response !== \'object\' || result.status != 200) {\r\n throw \'Cannot get service list from Consul Agent API.\';\r\n }\r\n\r\n Object.keys(result.response).forEach(function (service) {\r\n services.push(result.response[service][\'ID\']);\r\n });\r\n\r\n return services;\r\n },\r\n\r\n getServiceStats: function (service_id) {\r\n var result = Consul.request(\'v1/agent/health/service/id/\' + service_id);\r\n\r\n if (typeof result.response !== \'object\' || [200, 429, 503].indexOf(result.status) === -1) {\r\n throw \'Cannot get service info from Consul Agent API.\';\r\n }\r\n\r\n return result.response;\r\n }\r\n}\r\n\r\ntry {\r\n Consul.setParams(JSON.parse(value));\r\n\r\n var services = Consul.getServices(),\r\n result = [];\r\n\r\n services.forEach(function (service) {\r\n var service_stats = Consul.getServiceStats(service);\r\n\r\n result.push({\r\n \'id\': service,\r\n \'name\': service_stats[\'Service\'][\'Service\'],\r\n \'status\': service_stats[\'AggregatedStatus\'],\r\n \'checks\': service_stats[\'Checks\'],\r\n \'namespace\': typeof service_stats[\'Service\'][\'Namespace\'] === \'undefined\' ? \'None\' : service_stats[\'Service\'][\'Namespace\']\r\n });\r\n });\r\n\r\n return JSON.stringify(result);\r\n}\r\ncatch (error) {\r\n error += ((String(error).endsWith(\'.\')) ? \'\' : \'.\');\r\n Zabbix.log(3, \'[ Consul ] ERROR: \' + error);\r\n\r\n return JSON.stringify({error: error + \' Check debug log for more information.\'});\r\n}','','0','','','','','0',NULL,'Get all the services that are registered with the local agent and their status.','0','30d','0','',NULL,'15s','','','','200','1','0','','','0','0','0','0','0','0','0','2b3cbe778f1c4d858e43320b8c25960d','0','2','0'),
('43082','19','','10521','Get node info','consul.get_node_info','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Get configuration and member information of the local agent.','0','30d','0','',NULL,'15s','{$CONSUL.NODE.API.URL}/v1/agent/self','','','200','1','0','','X-Consul-Token: {$CONSUL.TOKEN}','0','0','0','0','0','0','0','7e2689de8d78499fb52d718989b7ec8b','0','2','0'),
('43083','19','','10521','Get instance metrics','consul.get_metrics','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Get raw metrics from Consul instance /metrics endpoint.','0','30d','0','',NULL,'15s','{$CONSUL.NODE.API.URL}/v1/agent/metrics?format=prometheus','','','200','1','0','','X-Consul-Token: {$CONSUL.TOKEN}','0','0','0','0','0','0','0','c0e199969c19444fb68fd8497fcab047','0','2','0'),
('43156','19','','10522','Get services','consul.get_catalog_services','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Catalog of services registered in a given datacenter.','0','30d','0','',NULL,'15s','{$CONSUL.CLUSTER.URL}/v1/catalog/services','','','200','1','0','','X-Consul-Token: {$CONSUL.TOKEN}\r\nX-Consul-Namespace: {$CONSUL.NAMESPACE}','0','0','0','0','0','0','0','fd087c72bb7842c6b84b0b70788506b0','0','2','0'),
('43157','19','','10522','Get nodes Serf health status','consul.get_cluster_serf','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Get Serf Health Status for all agents in cluster.','0','30d','0','',NULL,'15s','{$CONSUL.CLUSTER.URL}/v1/health/state/any?filter=CheckID==serfHealth','','','200','1','0','','X-Consul-Token: {$CONSUL.TOKEN}\r\nX-Consul-Namespace: {$CONSUL.NAMESPACE}','0','0','0','0','0','0','0','cad23435cc454f01b47034bd8427931d','0','2','0'),
('43158','19','','10522','Cluster leader','consul.get_leader','1m','31d','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Current leader address.','0','30d','0','',NULL,'15s','{$CONSUL.CLUSTER.URL}/v1/status/leader','','','200','1','0','','X-Consul-Token: {$CONSUL.TOKEN}','0','0','0','0','0','0','0','e52fcc1af52e4df5b18118355260a8d6','0','2','0'),
('43159','19','','10522','Get nodes','consul.get_nodes','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Catalog of nodes registered in a given datacenter.','0','30d','0','',NULL,'15s','{$CONSUL.CLUSTER.URL}/v1/catalog/nodes','','','200','1','0','','X-Consul-Token: {$CONSUL.TOKEN}','0','0','0','0','0','0','0','859451004516499e9636d96cde023d21','0','2','0'),
('43160','19','','10522','Nodes: peers','consul.get_peers','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The number of Raft peers for the datacenter in which the agent is running.','0','30d','0','',NULL,'15s','{$CONSUL.CLUSTER.URL}/v1/status/peers','','','200','1','0','','X-Consul-Token: {$CONSUL.TOKEN}','0','0','0','0','0','0','0','2400f78a5ada4a59b63fc049b6e3b3bf','0','2','0'),
('43174','21','','10524','Get data','hpe.msa.get.data','1m','0','0','0','4','','','','',NULL,NULL,'var params = JSON.parse(value),\r\n fields = [\'username\', \'password\', \'base_url\'],\r\n methods = [\r\n \'system\',\r\n \'controllers\',\r\n \'controller-statistics\',\r\n \'frus\',\r\n \'disk-groups\',\r\n \'disk-group-statistics\',\r\n \'disks\',\r\n \'enclosures\',\r\n \'fans\',\r\n \'pools\',\r\n \'ports\',\r\n \'power-supplies\',\r\n \'volumes\',\r\n \'volume-statistics\'\r\n ],\r\n data_tmp = {},\r\n result_tmp = {},\r\n session_key,\r\n data = {};\r\n\r\nfields.forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n});\r\n\r\nif (!params.base_url.endsWith(\'/\')) {\r\n params.base_url += \'/\';\r\n}\r\n\r\nvar response, request = new HttpRequest();\r\nrequest.addHeader(\'datatype: xml\');\r\n\r\nauth_string = md5(params.username + \'_\' + params.password);\r\nresponse = request.get(params.base_url + \'api/login/\' + auth_string);\r\n\r\nif (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n throw \'Authentication request has failed with status code \' + request.getStatus() + \': \' + response;\r\n}\r\n\r\nif (response !== null) {\r\n try {\r\n session_key = XML.query(response, \'/RESPONSE/OBJECT/PROPERTY[@name="response"]/text()\');\r\n return_code = XML.query(response, \'/RESPONSE/OBJECT/PROPERTY[@name="return-code"]/text()\');\r\n }\r\n catch (error) {\r\n throw \'Failed to parse authentication response received from device API.\';\r\n }\r\n}\r\n\r\nif (return_code != \'1\') {\r\n throw \'Authentication failed.\';\r\n}\r\nelse if (session_key === \'\') {\r\n throw \'Failed to retrieve session key from authentication response.\';\r\n}\r\n\r\nrequest.clearHeader();\r\nrequest.addHeader(\'sessionKey: \' + session_key);\r\nrequest.addHeader(\'datatype: api-embed\');\r\n\r\ndata.errors = [];\r\n\r\nmethods.forEach(function (method) {\r\n response = request.get(params.base_url + \'api/show/\' + method);\r\n method_error = \'\';\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n method_error = \'Method: \' + method + \'. Request has failed with status code \' + request.getStatus() + \': \' + response;\r\n data.errors.push(method_error);\r\n return;\r\n }\r\n\r\n if (response !== null) {\r\n try {\r\n result_tmp = JSON.parse(XML.toJson(response));\r\n data[method] = [];\r\n\r\n result_tmp.RESPONSE.OBJECT.forEach(function (object) {\r\n var data_tmp = {};\r\n\r\n if (object[\'@basetype\'] !== \'status\' && object[\'@basetype\'] !== \'enclosure-sku\') {\r\n object.PROPERTY.forEach(function (property) {\r\n name = property[\'@name\'];\r\n value = property[\'#text\'] || \'\';\r\n data_tmp[name] = value;\r\n });\r\n\r\n if (method == \'controller-statistics\') {\r\n data_tmp[\'durable-id\'] = data_tmp[\'durable-id\'].toLowerCase();\r\n }\r\n\r\n data[method].push(data_tmp);\r\n }\r\n });\r\n }\r\n catch (error) {\r\n method_error = \'Method: \' + method + \'. Failed to parse response received from device API.\';\r\n }\r\n }\r\n else {\r\n method_error = \'Method: \' + method + \'. No data received by request.\';\r\n }\r\n\r\n if (method_error.length > 0) {\r\n data.errors.push(method_error);\r\n }\r\n});\r\n\r\nif (data.errors.length == 0) {\r\n data.errors = \'\';\r\n}\r\n\r\nresponse = request.get(params.base_url + \'api/exit\');\r\n\r\nif (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n throw \'Logout request failed with status code \' + request.getStatus() + \': \' + response;\r\n}\r\n\r\nreturn JSON.stringify(data);','','0','','','','','0',NULL,'The JSON with result of API requests.','0','30d','0','',NULL,'{$HPE.MSA.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','e07e09dbcdd44f509a06343c9a53a455','0','2','0'),
('43175','3','','10524','Service ping','net.tcp.service["{$HPE.MSA.API.SCHEME}","{$HPE.MSA.API.HOST}","{$HPE.MSA.API.PORT}"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Check if HTTP/HTTPS service accepts TCP connections.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d1242f5aede14008ae6896123bb944a5','0','2','0'),
('43281','21','','10525','Get data','hpe.msa.get.data','1m','0','0','0','4','','','','',NULL,NULL,'var params = JSON.parse(value),\r\n fields = [\'username\', \'password\', \'base_url\'],\r\n methods = [\r\n \'system\',\r\n \'controllers\',\r\n \'controller-statistics\',\r\n \'frus\',\r\n \'disk-groups\',\r\n \'disk-group-statistics\',\r\n \'disks\',\r\n \'enclosures\',\r\n \'fans\',\r\n \'pools\',\r\n \'ports\',\r\n \'power-supplies\',\r\n \'volumes\',\r\n \'volume-statistics\'\r\n ],\r\n result = {},\r\n data = {};\r\n\r\nfields.forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n});\r\n\r\nif (!params.base_url.endsWith(\'/\')) {\r\n params.base_url += \'/\';\r\n}\r\n\r\nvar response, request = new HttpRequest();\r\nrequest.addHeader(\'datatype: json\');\r\n\r\nauth_string = sha256(params.username + \'_\' + params.password);\r\n\r\nresponse = request.get(params.base_url + \'api/login/\' + auth_string);\r\n\r\nif (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n throw \'Authentication request has failed with status code \' + request.getStatus() + \': \' + response;\r\n}\r\n\r\nif (response !== null) {\r\n try {\r\n auth_data = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse authentication response received from device API.\';\r\n }\r\n}\r\n\r\nsession_key = auth_data[\'status\'][0][\'response\'];\r\n\r\nrequest.addHeader(\'sessionKey: \' + session_key);\r\n\r\ndata.errors = [];\r\n\r\nmethods.forEach(function (method) {\r\n response = request.get(params.base_url + \'api/show/\' + method);\r\n method_error = \'\';\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n method_error = \'Method: \' + method + \'. Request has failed with status code \' + request.getStatus() + \': \' + response;\r\n data.errors.push(method_error);\r\n return;\r\n }\r\n\r\n if (response !== null) {\r\n try {\r\n result = JSON.parse(response);\r\n switch (method) {\r\n case \'controller-statistics\':\r\n var stats_array = result[\'controller-statistics\'] || [];\r\n for (var i = 0; i < stats_array.length; i++) {\r\n result[\'controller-statistics\'][i][\'durable-id\'] = result[\'controller-statistics\'][i][\'durable-id\'].toLowerCase();\r\n }\r\n data[method] = result[method];\r\n break;\r\n case \'frus\':\r\n data[method] = result[\'enclosure-fru\'];\r\n break;\r\n case \'disks\':\r\n data[method] = result[\'drives\'];\r\n break;\r\n case \'fans\':\r\n data[method] = result[\'fan\'];\r\n break;\r\n case \'ports\':\r\n data[method] = result[\'port\'];\r\n break;\r\n default:\r\n data[method] = result[method];\r\n }\r\n }\r\n catch (error) {\r\n method_error = \'Method: \' + method + \'. Failed to parse response received from device API.\';\r\n }\r\n }\r\n else {\r\n method_error = \'Method: \' + method + \'. No data received by request.\';\r\n }\r\n\r\n if (method_error.length > 0) {\r\n data.errors.push(method_error);\r\n }\r\n});\r\n\r\nif (data.errors.length == 0) {\r\n data.errors = \'\';\r\n}\r\n\r\nreturn JSON.stringify(data);','','0','','','','','0',NULL,'The JSON with result of API requests.','0','30d','0','',NULL,'{$HPE.MSA.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','bafec666b170480f941fe25cb3cf903d','0','2','0'),
('43282','3','','10525','Service ping','net.tcp.service["{$HPE.MSA.API.SCHEME}","{$HPE.MSA.API.HOST}","{$HPE.MSA.API.PORT}"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Check if HTTP/HTTPS service accepts TCP connections.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3831060089ff497993088472e922df38','0','2','0'),
('43398','3','','10526','Service ping','net.tcp.service["{$HPE.PRIMERA.API.SCHEME}","{$HPE.PRIMERA.API.HOST}","{$HPE.PRIMERA.API.PORT}"]','1m','31d','365d','0','3','','','','',NULL,'1005','','','0','','','','','0',NULL,'Checks if the service is running and accepting TCP connections.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a0b4fdee38a64c5f82fd051ea74a7b2d','0','2','0'),
('43399','21','','10526','Get data','hpe.primera.get.data','1m','0','0','0','4','','','','',NULL,NULL,'var Primera = {\r\n params: {},\r\n session_key: null,\r\n\r\n setParams: function (params) {\r\n [\'username\', \'password\', \'base_url\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n\r\n Primera.params = params;\r\n if (typeof Primera.params.base_url === \'string\' && !Primera.params.base_url.endsWith(\'/\')) {\r\n Primera.params.base_url += \'/\';\r\n }\r\n },\r\n\r\n login: function () {\r\n if (Primera.session_key !== null) {\r\n return;\r\n }\r\n\r\n var response, request = new HttpRequest();\r\n request.addHeader(\'Content-Type: application/json\');\r\n\r\n response = request.post(Primera.params.base_url + \'api/v1/credentials\', JSON.stringify({\r\n \'user\': Primera.params.username,\r\n \'password\': Primera.params.password\r\n }));\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n throw \'Auth request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n if (response !== null) {\r\n try {\r\n auth_data = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse auth response received from device API.\';\r\n }\r\n }\r\n else {\r\n throw \'No data received by auth request.\'\r\n }\r\n\r\n if (\'key\' in auth_data) {\r\n Primera.session_key = auth_data[\'key\'];\r\n } else {\r\n throw \'Auth response does not contain session key.\'\r\n }\r\n },\r\n\r\n logout: function () {\r\n if (Primera.session_key !== null) {\r\n (new HttpRequest()).delete(Primera.params.base_url + \'api/v1/credentials/\' + Primera.session_key);\r\n }\r\n },\r\n\r\n requestData: function (method) {\r\n if (Primera.session_key === null) {\r\n return;\r\n }\r\n\r\n request = new HttpRequest();\r\n request.addHeader(\'X-HP3PAR-WSAPI-SessionKey: \' + Primera.session_key);\r\n\r\n raw_data = request.get(Primera.params.base_url + \'api/v1/\' + method);\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n if (raw_data !== null) {\r\n try {\r\n return JSON.parse(raw_data);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from device API.\';\r\n }\r\n }\r\n else {\r\n throw \'No data received by \' + method + \' request.\';\r\n }\r\n }\r\n};\r\n\r\nvar methods = [\'disks\', \'cpgs\', \'hosts\', \'ports\', \'system\', \'tasks\', \'volumes\'],\r\n data = {};\r\n\r\ndata[\'errors\'] = {};\r\n\r\ntry {\r\n Primera.setParams(JSON.parse(value));\r\n\r\n try {\r\n Primera.login();\r\n }\r\n catch (error) {\r\n data.errors.auth = error.toString();\r\n }\r\n\r\n if (!(\'auth\' in data.errors)) {\r\n for (var i in methods) {\r\n try {\r\n if (methods[i] === \'tasks\') {\r\n var result = [],\r\n tmp_tasks = {};\r\n\r\n tasks = Primera.requestData(methods[i]);\r\n\r\n tasks.members.forEach(function (task) {\r\n tmp_tasks[task.name] = task;\r\n });\r\n\r\n for (var task in tmp_tasks) {\r\n result.push(tmp_tasks[task]);\r\n }\r\n\r\n data[methods[i]] = result;\r\n }\r\n else {\r\n data[methods[i]] = Primera.requestData(methods[i]);\r\n }\r\n }\r\n catch (error) {\r\n data.errors[methods[i]] = error.toString();\r\n }\r\n }\r\n }\r\n}\r\ncatch (error) {\r\n data.errors.params = error.toString();\r\n}\r\n\r\ntry {\r\n Primera.logout();\r\n}\r\ncatch (error) {\r\n}\r\n\r\nif (Object.keys(data.errors).length !== 0) {\r\n errors = \'Failed to receive data:\';\r\n for (var error in data.errors) {\r\n errors += \'\\n\' + error + \' : \' + data.errors[error];\r\n }\r\n data.errors = errors;\r\n}\r\nelse {\r\n data.errors = \'\';\r\n}\r\n\r\nreturn JSON.stringify(data);','','0','','','','','0',NULL,'The JSON with result of WSAPI requests.','0','30d','0','',NULL,'{$HPE.PRIMERA.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','530e20083da8423e9d30c8342f1b7da3','0','2','0'),
('43497','21','','10527','Get metrics data','aws.ec2.get_metrics','0s;m/5','0','0','0','4','','','','',NULL,NULL,'var AWS = {\r\n params: {},\r\n request_period: 600,\r\n metadata: \'http://169.254.169.254/latest/\',\r\n\r\n getField: function (data, path) {\r\n var steps = path.split(\'.\');\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n\r\n data = data[step];\r\n }\r\n\r\n return data;\r\n },\r\n\r\n getRoleBaseCredentials: function () {\r\n AWS.params[\'auth_type\'] = \'role_base\';\r\n var request = new HttpRequest();\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token-ttl-seconds: 21600\');\r\n var token = request.put(AWS.metadata + \'api/token\');\r\n\r\n if (request.getStatus() !== 200 || token === null || token === \'\') {\r\n throw \'Error getting IMDSv2 session token.\';\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token: \' + token);\r\n var IamRoleName = request.get(AWS.metadata + \'meta-data/iam/security-credentials\');\r\n\r\n if (request.getStatus() !== 200 || IamRoleName === null || IamRoleName === \'\') {\r\n throw \'Error getting security credentials from instance metadata. Role not found.\';\r\n }\r\n\r\n credentials = request.get(AWS.metadata + \'meta-data/iam/security-credentials/\' + encodeURI(IamRoleName));\r\n\r\n if (request.getStatus() !== 200 || credentials === null || credentials === \'\') {\r\n throw \'Error getting security credentials from instance metadata.\';\r\n }\r\n\r\n try {\r\n credentials = JSON.parse(credentials);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from instance metadata. Check debug log for more information.\';\r\n }\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'Token\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n },\r\n\r\n setParams: function (params) {\r\n AWS.params[\'proxy\'] = params.proxy;\r\n switch (AWS.getField(params, \'auth_type\')) {\r\n case \'role_base\':\r\n AWS.getRoleBaseCredentials();\r\n break;\r\n case \'assume_role\':\r\n if (typeof params.metadata_auth === \'undefined\' || params.metadata_auth === \'\' || (params.metadata_auth !== \'true\' && params.metadata_auth !== \'false\')) {\r\n throw \'Required param metadata_auth for assume_role is not set or has invalid value: "\' + params.metadata_auth + \'". Expected "true" or "false".\';\r\n }\r\n if (params.metadata_auth === \'true\') {\r\n AWS.getRoleBaseCredentials();\r\n AWS.params[\'SessionToken\'] = AWS.params[\'Token\'];\r\n AWS.params[\'auth_type\'] = \'assume_role_metadata\';\r\n\r\n [\'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n if (params.metadata_auth === \'false\') {\r\n AWS.params[\'auth_type\'] = \'assume_role\';\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n const role_arn_regex = /role\\/(.+)$/;\r\n const match = AWS.params.role_arn.match(role_arn_regex);\r\n if (!match) {\r\n throw \'Invalid role ARN format.\';\r\n }\r\n\r\n const payload = {\r\n \'Action\': \'AssumeRole\',\r\n \'Version\': \'2011-06-15\',\r\n \'RoleArn\': AWS.params.role_arn,\r\n \'RoleSessionName\': match[1] + \'Session\',\r\n };\r\n\r\n credentials = AWS.getField(AWS.request(\'GET\', AWS.params.sts_region, \'sts\', AWS.prepareParams(payload), \'\'), \'AssumeRoleResponse.AssumeRoleResult.Credentials\');\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'SessionToken\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n break;\r\n default:\r\n AWS.params[\'auth_type\'] = \'access_key\';\r\n [\'AccessKeyId\', \'SecretAccessKey\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n [\'region\', \'instance_id\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n },\r\n\r\n sign: function (key, message) {\r\n var hex = hmac(\'sha256\', key, message);\r\n\r\n if ((hex.length % 2) === 1) {\r\n throw \'Invalid length of a hex string!\';\r\n }\r\n\r\n var result = new Int8Array(hex.length / 2);\r\n for (var i = 0, b = 0; i < hex.length; i += 2, b++) {\r\n result[b] = parseInt(hex.substring(i, i + 2), 16);\r\n }\r\n\r\n return result;\r\n },\r\n\r\n prepareRecursive: function (prefix, param) {\r\n var result = {};\r\n\r\n if (typeof param === \'object\') {\r\n if (Array.isArray(param)) {\r\n param.forEach(function (value, index) {\r\n var nested = AWS.prepareRecursive(prefix + \'.member.\' + (index + 1), value);\r\n Object.keys(nested).forEach(function (key) {\r\n result[key] = nested[key];\r\n });\r\n });\r\n }\r\n else {\r\n Object.keys(param).forEach(function (k) {\r\n var nested = AWS.prepareRecursive(prefix + \'.\' + k, param[k]);\r\n Object.keys(nested).forEach(function (key) {\r\n result[key] = nested[key];\r\n });\r\n });\r\n }\r\n }\r\n else {\r\n result[prefix] = param;\r\n }\r\n\r\n return result;\r\n },\r\n\r\n renderPayload: function (period, instance_id) {\r\n var metrics_list = [\r\n \'StatusCheckFailed:Count\',\r\n \'StatusCheckFailed_Instance:Count\',\r\n \'StatusCheckFailed_System:Count\',\r\n \'CPUUtilization:Percent\',\r\n \'NetworkIn:Bytes\',\r\n \'NetworkOut:Bytes\',\r\n \'NetworkPacketsIn:Count\',\r\n \'NetworkPacketsOut:Count\',\r\n \'DiskReadOps:Count\',\r\n \'DiskWriteOps:Count\',\r\n \'DiskReadBytes:Bytes\',\r\n \'DiskWriteBytes:Bytes\',\r\n \'MetadataNoToken:Count\',\r\n \'CPUCreditUsage:Count\',\r\n \'CPUCreditBalance:Count\',\r\n \'CPUSurplusCreditBalance:Count\',\r\n \'CPUSurplusCreditsCharged:Count\',\r\n \'EBSReadOps:Count\',\r\n \'EBSWriteOps:Count\',\r\n \'EBSReadBytes:Bytes\',\r\n \'EBSWriteBytes:Bytes\',\r\n \'EBSIOBalance %:Percent\',\r\n \'EBSByteBalance %:Percent\'\r\n ];\r\n\r\n var metric_payload = [];\r\n metrics_list.forEach(function (metric) {\r\n var parts = metric.split(\':\', 2);\r\n var name = parts[0].replace(/[^a-zA-Z0-9]/g, \'\');\r\n metric_payload.push({\r\n \'Id\': name.charAt(0).toLowerCase() + name.slice(1),\r\n \'MetricStat\': {\r\n \'Metric\': {\r\n \'MetricName\': parts[0],\r\n \'Namespace\': \'AWS/EC2\',\r\n \'Dimensions\': [\r\n {\r\n \'Name\': \'InstanceId\',\r\n \'Value\': instance_id\r\n }\r\n ]\r\n },\r\n \'Period\': period,\r\n \'Stat\': \'Average\',\r\n \'Unit\': parts[1]\r\n }\r\n });\r\n });\r\n\r\n return metric_payload;\r\n },\r\n\r\n prepareParams: function (params) {\r\n var result = [];\r\n\r\n Object.keys(params).sort().forEach(function (key) {\r\n if (typeof params[key] !== \'object\') {\r\n result.push(key + \'=\' + encodeURIComponent(params[key]));\r\n }\r\n else {\r\n result.push(prepareObject(key, params[key]));\r\n }\r\n });\r\n\r\n return result.join(\'&\');\r\n },\r\n\r\n request: function (method, region, service, params, data) {\r\n if (typeof data === \'undefined\' || data === null) {\r\n data = \'\';\r\n }\r\n\r\n var amzdate = (new Date()).toISOString().replace(/\\.\\d+Z/, \'Z\').replace(/[-:]/g, \'\'),\r\n date = amzdate.replace(/T\\d+Z/, \'\'),\r\n host = service + \'.\' + region + \'.amazonaws.com\',\r\n canonical_uri = \'/\',\r\n canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\',\r\n signed_headers = \'content-encoding;host;x-amz-date\',\r\n canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data),\r\n credential_scope = date + \'/\' + region + \'/\' + service + \'/\' + \'aws4_request\',\r\n request_string = \'AWS4-HMAC-SHA256\' + \'\\n\' + amzdate + \'\\n\' + credential_scope + \'\\n\' + sha256(canonical_request),\r\n key = AWS.sign(\'AWS4\' + AWS.params.SecretAccessKey, date),\r\n key = AWS.sign(key, region),\r\n key = AWS.sign(key, service),\r\n key = AWS.sign(key, \'aws4_request\'),\r\n request = new HttpRequest(),\r\n url = \'https://\' + host + canonical_uri + \'?\' + params;\r\n\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'x-amz-date: \' + amzdate);\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Content-Encoding: amz-1.0\');\r\n request.addHeader(\'Authorization: \' + \'AWS4-HMAC-SHA256 Credential=\' + AWS.params.AccessKeyId + \'/\' + credential_scope + \', \' + \'SignedHeaders=\' + signed_headers + \', \' + \'Signature=\' + hmac(\'sha256\', key, request_string));\r\n if (AWS.params.auth_type === \'role_base\' || AWS.params.auth_type === \'assume_role_metadata\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n request.addHeader(\'X-Amz-Security-Token: \' + (AWS.params.auth_type === \'role_base\' ? AWS.params.Token : AWS.params.SessionToken));\r\n }\r\n\r\n Zabbix.log(4, \'[ AWS EC2 ] Sending request: \' + url);\r\n response = request.get(url);\r\n Zabbix.log(4, \'[ AWS EC2 ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n try {\r\n response = JSON.parse(XML.toJson(response));\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from AWS CloudWatch API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n return response;\r\n },\r\n\r\n getMetricsData: function () {\r\n var timestamp = new Date().getTime(),\r\n end_time = new Date(timestamp).toISOString().replace(/\\.\\d+Z/, \'Z\'),\r\n start_time = new Date(timestamp - AWS.request_period * 1000).toISOString().replace(/\\.\\d+Z/, \'Z\'),\r\n payload = AWS.prepareRecursive(\'MetricDataQueries\', AWS.renderPayload(AWS.request_period, AWS.params.instance_id));\r\n\r\n payload[\'Action\'] = \'GetMetricData\';\r\n payload[\'Version\'] = \'2010-08-01\';\r\n payload[\'StartTime\'] = start_time;\r\n payload[\'EndTime\'] = end_time;\r\n payload[\'ScanBy\'] = \'TimestampDescending\';\r\n\r\n result = AWS.request(\'GET\', AWS.params.region, \'monitoring\', AWS.prepareParams(payload));\r\n\r\n if (typeof result !== \'object\'\r\n || typeof result.GetMetricDataResponse !== \'object\'\r\n || typeof result.GetMetricDataResponse.GetMetricDataResult !== \'object\'\r\n || typeof result.GetMetricDataResponse.GetMetricDataResult.MetricDataResults !== \'object\') {\r\n throw \'Cannot get metrics data from AWS CloudWatch API. Check debug log for more information.\';\r\n }\r\n\r\n return result.GetMetricDataResponse.GetMetricDataResult.MetricDataResults;\r\n }\r\n};\r\n\r\ntry {\r\n AWS.setParams(JSON.parse(value));\r\n\r\n return JSON.stringify(AWS.getMetricsData());\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ AWS EC2 ] ERROR: \' + error);\r\n\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Get instance metrics.\r\nFull metrics list related to EC2: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html','0','30d','0','',NULL,'15s','','','','200','1','0','','','0','0','0','0','0','0','0','63ab011505f24885b843a9ac48b36a84','0','2','0'),
('43498','21','','10527','Get volumes data','aws.ec2.get_volumes','5m','0','0','0','4','','','','',NULL,NULL,'var AWS = {\r\n params: {},\r\n request_period: 600,\r\n metadata: \'http://169.254.169.254/latest/\',\r\n\r\n getField: function (data, path, val) {\r\n var steps = path.split(\'.\');\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || data === null || typeof data[step] === \'undefined\') {\r\n if (typeof val === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n return val\r\n }\r\n data = data[step];\r\n }\r\n\r\n return data;\r\n },\r\n\r\n getRoleBaseCredentials: function () {\r\n AWS.params[\'auth_type\'] = \'role_base\';\r\n var request = new HttpRequest();\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token-ttl-seconds: 21600\');\r\n var token = request.put(AWS.metadata + \'api/token\');\r\n\r\n if (request.getStatus() !== 200 || token === null || token === \'\') {\r\n throw \'Error getting IMDSv2 session token.\';\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token: \' + token);\r\n var IamRoleName = request.get(AWS.metadata + \'meta-data/iam/security-credentials\');\r\n\r\n if (request.getStatus() !== 200 || IamRoleName === null || IamRoleName === \'\') {\r\n throw \'Error getting security credentials from instance metadata. Role not found.\';\r\n }\r\n\r\n credentials = request.get(AWS.metadata + \'meta-data/iam/security-credentials/\' + encodeURI(IamRoleName));\r\n\r\n if (request.getStatus() !== 200 || credentials === null || credentials === \'\') {\r\n throw \'Error getting security credentials from instance metadata.\';\r\n }\r\n\r\n try {\r\n credentials = JSON.parse(credentials);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from instance metadata. Check debug log for more information.\';\r\n }\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'Token\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n },\r\n\r\n setParams: function (params) {\r\n AWS.params[\'proxy\'] = params.proxy;\r\n switch (AWS.getField(params, \'auth_type\')) {\r\n case \'role_base\':\r\n AWS.getRoleBaseCredentials();\r\n break;\r\n case \'assume_role\':\r\n if (typeof params.metadata_auth === \'undefined\' || params.metadata_auth === \'\' || (params.metadata_auth !== \'true\' && params.metadata_auth !== \'false\')) {\r\n throw \'Required param metadata_auth for assume_role is not set or has invalid value: "\' + params.metadata_auth + \'". Expected "true" or "false".\';\r\n }\r\n if (params.metadata_auth === \'true\') {\r\n AWS.getRoleBaseCredentials();\r\n AWS.params[\'SessionToken\'] = AWS.params[\'Token\'];\r\n AWS.params[\'auth_type\'] = \'assume_role_metadata\';\r\n\r\n [\'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n if (params.metadata_auth === \'false\') {\r\n AWS.params[\'auth_type\'] = \'assume_role\';\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n const role_arn_regex = /role\\/(.+)$/;\r\n const match = AWS.params.role_arn.match(role_arn_regex);\r\n if (!match) {\r\n throw \'Invalid role ARN format.\';\r\n }\r\n\r\n const payload = {\r\n \'Action\': \'AssumeRole\',\r\n \'Version\': \'2011-06-15\',\r\n \'RoleArn\': AWS.params.role_arn,\r\n \'RoleSessionName\': match[1] + \'Session\',\r\n };\r\n\r\n credentials = AWS.getField(AWS.request(\'GET\', AWS.params.sts_region, \'sts\', AWS.prepareParams(payload), \'\'), \'AssumeRoleResponse.AssumeRoleResult.Credentials\');\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'SessionToken\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n break;\r\n default:\r\n AWS.params[\'auth_type\'] = \'access_key\';\r\n [\'AccessKeyId\', \'SecretAccessKey\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n [\'region\', \'instance_id\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n },\r\n\r\n sign: function (key, message) {\r\n var hex = hmac(\'sha256\', key, message);\r\n\r\n if ((hex.length % 2) === 1) {\r\n throw \'Invalid length of a hex string!\';\r\n }\r\n\r\n var result = new Int8Array(hex.length / 2);\r\n for (var i = 0, b = 0; i < hex.length; i += 2, b++) {\r\n result[b] = parseInt(hex.substring(i, i + 2), 16);\r\n }\r\n\r\n return result;\r\n },\r\n\r\n prepareParams: function (params) {\r\n var result = [];\r\n\r\n Object.keys(params).sort().forEach(function (key) {\r\n if (typeof params[key] !== \'object\') {\r\n result.push(key + \'=\' + encodeURIComponent(params[key]));\r\n }\r\n else {\r\n result.push(prepareObject(key, params[key]));\r\n }\r\n });\r\n\r\n return result.join(\'&\');\r\n },\r\n\r\n request: function (method, region, service, params, data) {\r\n if (typeof data === \'undefined\' || data === null) {\r\n data = \'\';\r\n }\r\n\r\n var amzdate = (new Date()).toISOString().replace(/\\.\\d+Z/, \'Z\').replace(/[-:]/g, \'\'),\r\n date = amzdate.replace(/T\\d+Z/, \'\'),\r\n host = service + \'.\' + region + \'.amazonaws.com\',\r\n canonical_uri = \'/\',\r\n canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\',\r\n signed_headers = \'content-encoding;host;x-amz-date\',\r\n canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data),\r\n credential_scope = date + \'/\' + region + \'/\' + service + \'/\' + \'aws4_request\',\r\n request_string = \'AWS4-HMAC-SHA256\' + \'\\n\' + amzdate + \'\\n\' + credential_scope + \'\\n\' + sha256(canonical_request),\r\n key = AWS.sign(\'AWS4\' + AWS.params.SecretAccessKey, date),\r\n key = AWS.sign(key, region),\r\n key = AWS.sign(key, service),\r\n key = AWS.sign(key, \'aws4_request\'),\r\n request = new HttpRequest(),\r\n url = \'https://\' + host + canonical_uri + \'?\' + params;\r\n\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'x-amz-date: \' + amzdate);\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Content-Encoding: amz-1.0\');\r\n request.addHeader(\'Authorization: \' + \'AWS4-HMAC-SHA256 Credential=\' + AWS.params.AccessKeyId + \'/\' + credential_scope + \', \' + \'SignedHeaders=\' + signed_headers + \', \' + \'Signature=\' + hmac(\'sha256\', key, request_string));\r\n if (AWS.params.auth_type === \'role_base\' || AWS.params.auth_type === \'assume_role_metadata\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n request.addHeader(\'X-Amz-Security-Token: \' + (AWS.params.auth_type === \'role_base\' ? AWS.params.Token : AWS.params.SessionToken));\r\n }\r\n\r\n Zabbix.log(4, \'[ AWS EBS ] Sending request: \' + url);\r\n response = request.get(url);\r\n Zabbix.log(4, \'[ AWS EBS ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n try {\r\n response = JSON.parse(XML.toJson(response));\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from AWS CloudWatch API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n return response;\r\n },\r\n\r\n getVolumesData: function () {\r\n var payload = {\r\n \'Action\': \'DescribeVolumes\',\r\n \'Version\': \'2016-11-15\',\r\n \'Filter.1.Name\': \'attachment.instance-id\',\r\n \'Filter.1.Value\': AWS.params.instance_id,\r\n \'MaxResults\': 100\r\n },\r\n value = [],\r\n volumes_list = [];\r\n\r\n while (payload.NextToken !== \'\') {\r\n var result = AWS.getField(AWS.request(\'GET\', AWS.params.region, \'ec2\', AWS.prepareParams(payload)), \'DescribeVolumesResponse\'),\r\n volumes_set = AWS.getField(result, \'volumeSet\'),\r\n volumes = AWS.getField(volumes_set, \'item\', value);\r\n volumes_list.push(Array.isArray(volumes) ? volumes : [volumes]);\r\n payload.NextToken = result.nextToken || \'\';\r\n }\r\n var flattenedData = volumes_list.reduce(function (acc, val) {\r\n return acc.concat(val);\r\n }, []);\r\n return flattenedData;\r\n }\r\n};\r\n\r\ntry {\r\n AWS.setParams(JSON.parse(value));\r\n\r\n return JSON.stringify(AWS.getVolumesData());\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ AWS EBS ] ERROR: \' + error);\r\n\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Get volumes attached to instance.\r\nDescribeVolumes API method: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVolumes.html','0','30d','0','',NULL,'15s','','','','200','1','0','','','0','0','0','0','0','0','0','9ec4650b564c41bca9893eca279a8cc7','0','2','0'),
('43499','21','','10527','Get instance alarms data','aws.ec2.get_alarms','0s;m/1','0','0','0','4','','','','',NULL,NULL,'var AWS = {\r\n params: {},\r\n metadata: \'http://169.254.169.254/latest/\',\r\n\r\n getField: function (data, path, val) {\r\n var steps = path.split(\'.\');\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || data === null || typeof data[step] === \'undefined\') {\r\n if (typeof val === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n return val\r\n }\r\n\r\n data = data[step];\r\n }\r\n\r\n return data;\r\n },\r\n\r\n getRoleBaseCredentials: function () {\r\n AWS.params[\'auth_type\'] = \'role_base\';\r\n var request = new HttpRequest();\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token-ttl-seconds: 21600\');\r\n var token = request.put(AWS.metadata + \'api/token\');\r\n\r\n if (request.getStatus() !== 200 || token === null || token === \'\') {\r\n throw \'Error getting IMDSv2 session token.\';\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token: \' + token);\r\n var IamRoleName = request.get(AWS.metadata + \'meta-data/iam/security-credentials\');\r\n\r\n if (request.getStatus() !== 200 || IamRoleName === null || IamRoleName === \'\') {\r\n throw \'Error getting security credentials from instance metadata. Role not found.\';\r\n }\r\n\r\n credentials = request.get(AWS.metadata + \'meta-data/iam/security-credentials/\' + encodeURI(IamRoleName));\r\n\r\n if (request.getStatus() !== 200 || credentials === null || credentials === \'\') {\r\n throw \'Error getting security credentials from instance metadata.\';\r\n }\r\n\r\n try {\r\n credentials = JSON.parse(credentials);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from instance metadata. Check debug log for more information.\';\r\n }\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'Token\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n },\r\n setParams: function (params) {\r\n AWS.params[\'proxy\'] = params.proxy;\r\n switch (AWS.getField(params, \'auth_type\')) {\r\n case \'role_base\':\r\n AWS.getRoleBaseCredentials();\r\n break;\r\n case \'assume_role\':\r\n if (typeof params.metadata_auth === \'undefined\' || params.metadata_auth === \'\' || (params.metadata_auth !== \'true\' && params.metadata_auth !== \'false\')) {\r\n throw \'Required param metadata_auth for assume_role is not set or has invalid value: "\' + params.metadata_auth + \'". Expected "true" or "false".\';\r\n }\r\n if (params.metadata_auth === \'true\') {\r\n AWS.getRoleBaseCredentials();\r\n AWS.params[\'SessionToken\'] = AWS.params[\'Token\'];\r\n AWS.params[\'auth_type\'] = \'assume_role_metadata\';\r\n\r\n [\'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n if (params.metadata_auth === \'false\') {\r\n AWS.params[\'auth_type\'] = \'assume_role\';\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n const role_arn_regex = /role\\/(.+)$/;\r\n const match = AWS.params.role_arn.match(role_arn_regex);\r\n if (!match) {\r\n throw \'Invalid role ARN format.\';\r\n }\r\n\r\n const payload = {\r\n \'Action\': \'AssumeRole\',\r\n \'Version\': \'2011-06-15\',\r\n \'RoleArn\': AWS.params.role_arn,\r\n \'RoleSessionName\': match[1] + \'Session\',\r\n };\r\n\r\n credentials = AWS.getField(AWS.request(\'GET\', AWS.params.sts_region, \'sts\', AWS.prepareParams(payload), \'\'), \'AssumeRoleResponse.AssumeRoleResult.Credentials\');\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'SessionToken\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n break;\r\n default:\r\n AWS.params[\'auth_type\'] = \'access_key\';\r\n [\'AccessKeyId\', \'SecretAccessKey\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n [\'region\', \'instance_id\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n },\r\n\r\n sign: function (key, message) {\r\n var hex = hmac(\'sha256\', key, message);\r\n\r\n if ((hex.length % 2) === 1) {\r\n throw \'Invalid length of a hex string!\';\r\n }\r\n\r\n var result = new Int8Array(hex.length / 2);\r\n for (var i = 0, b = 0; i < hex.length; i += 2, b++) {\r\n result[b] = parseInt(hex.substring(i, i + 2), 16);\r\n }\r\n\r\n return result;\r\n },\r\n\r\n prepareParams: function (params) {\r\n var result = [];\r\n\r\n Object.keys(params).sort().forEach(function (key) {\r\n if (typeof params[key] !== \'object\') {\r\n result.push(key + \'=\' + encodeURIComponent(params[key]));\r\n }\r\n else {\r\n result.push(prepareObject(key, params[key]));\r\n }\r\n });\r\n\r\n return result.join(\'&\');\r\n },\r\n\r\n request: function (method, region, service, params, data) {\r\n if (typeof data === \'undefined\' || data === null) {\r\n data = \'\';\r\n }\r\n\r\n var amzdate = (new Date()).toISOString().replace(/\\.\\d+Z/, \'Z\').replace(/[-:]/g, \'\'),\r\n date = amzdate.replace(/T\\d+Z/, \'\'),\r\n host = service + \'.\' + region + \'.amazonaws.com\',\r\n canonical_uri = \'/\',\r\n canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\',\r\n signed_headers = \'content-encoding;host;x-amz-date\',\r\n canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data),\r\n credential_scope = date + \'/\' + region + \'/\' + service + \'/\' + \'aws4_request\',\r\n request_string = \'AWS4-HMAC-SHA256\' + \'\\n\' + amzdate + \'\\n\' + credential_scope + \'\\n\' + sha256(canonical_request),\r\n key = AWS.sign(\'AWS4\' + AWS.params.SecretAccessKey, date),\r\n key = AWS.sign(key, region),\r\n key = AWS.sign(key, service),\r\n key = AWS.sign(key, \'aws4_request\'),\r\n request = new HttpRequest(),\r\n url = \'https://\' + host + canonical_uri + \'?\' + params;\r\n\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'x-amz-date: \' + amzdate);\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Content-Encoding: amz-1.0\');\r\n request.addHeader(\'Authorization: \' + \'AWS4-HMAC-SHA256 Credential=\' + AWS.params.AccessKeyId + \'/\' + credential_scope + \', \' + \'SignedHeaders=\' + signed_headers + \', \' + \'Signature=\' + hmac(\'sha256\', key, request_string));\r\n if (AWS.params.auth_type === \'role_base\' || AWS.params.auth_type === \'assume_role_metadata\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n request.addHeader(\'X-Amz-Security-Token: \' + (AWS.params.auth_type === \'role_base\' ? AWS.params.Token : AWS.params.SessionToken));\r\n }\r\n\r\n Zabbix.log(4, \'[ AWS EC2 ] Sending request: \' + url);\r\n response = request.get(url);\r\n Zabbix.log(4, \'[ AWS EC2 ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n try {\r\n response = JSON.parse(XML.toJson(response));\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from AWS CloudWatch API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n return response;\r\n },\r\n\r\n getVolumes: function () {\r\n var payload = {\r\n \'Action\': \'DescribeVolumes\',\r\n \'Version\': \'2016-11-15\',\r\n \'MaxResults\': 100,\r\n \'Filter.1.Name\': \'attachment.instance-id\',\r\n \'Filter.1.Value\': AWS.params.instance_id\r\n },\r\n value = [],\r\n volumes = [],\r\n volumes_list = [];\r\n\r\n while (payload.NextToken !== \'\') {\r\n var result = AWS.getField(AWS.request(\'GET\', AWS.params.region, \'ec2\', AWS.prepareParams(payload)), \'DescribeVolumesResponse\');\r\n payload.NextToken = result.nextToken || \'\';\r\n volumes = AWS.getField(result, \'volumeSet.item\', value);\r\n volumes_list.push(Array.isArray(volumes) ? volumes : [volumes])\r\n\r\n }\r\n var flattenedData = volumes_list.reduce(function (acc, val) {\r\n return acc.concat(val);\r\n }, []);\r\n return flattenedData;\r\n },\r\n\r\n getAlarms: function () {\r\n var payload = {\r\n \'Action\': \'DescribeAlarms\',\r\n \'Version\': \'2010-08-01\',\r\n \'MaxRecords\': 100\r\n },\r\n result = [],\r\n volumes = AWS.getVolumes()\r\n\r\n while (payload.NextToken !== \'\') {\r\n var alarms = AWS.getField(AWS.request(\'GET\', AWS.params.region, \'monitoring\', AWS.prepareParams(payload)), \'DescribeAlarmsResponse.DescribeAlarmsResult\');\r\n payload.NextToken = alarms.NextToken || \'\';\r\n alarms_list = AWS.getField(alarms, \'MetricAlarms\');\r\n\r\n if (!Array.isArray(alarms_list))\r\n alarms_list = [alarms_list];\r\n alarms_list.forEach(function (alarm) {\r\n var dimensions = alarm.Dimensions;\r\n\r\n if (Array.isArray(alarm.Metrics)) {\r\n alarm.Metrics.forEach(function (metric) {\r\n if (typeof metric.MetricStat === \'object\' && metric.MetricStat !== null\r\n && typeof metric.MetricStat.Metric === \'object\' && metric.MetricStat.Metric !== null\r\n && Array.isArray(metric.MetricStat.Metric.Dimensions)) {\r\n dimensions = dimensions.concat(metric.MetricStat.Metric.Dimensions);\r\n }\r\n });\r\n }\r\n for (var i in dimensions) {\r\n if (dimensions[i].Name === \'InstanceId\' && dimensions[i].Value === AWS.params.instance_id) {\r\n result.push(alarm);\r\n break;\r\n }\r\n if (dimensions[i].Name === \'VolumeId\' && volumes.indexOf(dimensions[i].Value)) {\r\n result.push(alarm);\r\n break;\r\n }\r\n }\r\n });\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n\r\ntry {\r\n AWS.setParams(JSON.parse(value));\r\n\r\n return JSON.stringify(AWS.getAlarms());\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ AWS EC2 ] ERROR: \' + error);\r\n\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'DescribeAlarms API method: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarms.html','0','30d','0','',NULL,'15s','','','','200','1','0','','','0','0','0','0','0','0','0','4e0b2ed29500487092148b14245839d4','0','2','0'),
('43548','20','get[1.3.6.1.4.1.12325.1.200.1.11.1.0]','10528','Firewall rules count','opnsense.rules.count','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: BEGEMOT-PF-MIB\r\nThe number of labeled filter rules on this system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','289cece23b5d4f17ba50d0373db4ed33','0','2','0'),
('43549','15','','10528','States table utilization in %','opnsense.state.table.pused','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//opnsense.state.table.count) * 100 / last(//opnsense.state.table.limit)','','0','','','','','0',NULL,'Utilization of state table in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','17a0f633e2a14e63b0282b785a66c62a','0','2','0'),
('43550','20','get[1.3.6.1.4.1.12325.1.200.1.5.1.0]','10528','States table limit','opnsense.state.table.limit','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: BEGEMOT-PF-MIB\r\nMaximum number of \'keep state\' rules in the ruleset.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3bd8ea1e2cb44b4cb0f7d16a9339b9e4','0','2','0'),
('43551','20','get[1.3.6.1.4.1.12325.1.200.1.3.1.0]','10528','States table current','opnsense.state.table.count','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: BEGEMOT-PF-MIB\r\nNumber of entries in the state table.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1c399a2204bc44d4a9b1a4017840fd75','0','2','0'),
('43552','15','','10528','Source tracking table utilization in %','opnsense.source.tracking.table.pused','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//opnsense.source.tracking.table.count) * 100 / last(//opnsense.source.tracking.table.limit)','','0','','','','','0',NULL,'Utilization of source tracking table in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1452fc4e67564233b12dc892fde1959a','0','2','0'),
('43553','20','get[1.3.6.1.4.1.12325.1.200.1.5.2.0]','10528','Source tracking table limit','opnsense.source.tracking.table.limit','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: BEGEMOT-PF-MIB\r\nMaximum number of \'sticky-address\' or \'source-track\' rules in the ruleset.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a9b848d5c2254efdaf74ff48ce4003c4','0','2','0'),
('43554','20','get[1.3.6.1.4.1.12325.1.200.1.4.1.0]','10528','Source tracking table current','opnsense.source.tracking.table.count','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: BEGEMOT-PF-MIB\r\nNumber of entries in the source tracking table.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6e40ddbf15a54b0e8ae2d1c52d5c2eba','0','2','0'),
('43555','20','get[1.3.6.1.4.1.12325.1.200.1.1.1.0]','10528','Packet filter running status','opnsense.pf.status','1m','31d','365d','0','3','','','','',NULL,'1019','','','0','','','','','0',NULL,'MIB: BEGEMOT-PF-MIB\r\nTrue if packet filter is currently enabled.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f2b82b136ea943909a7b6317bf8b7785','0','2','0'),
('43564','5','','10528','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'1020','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','00f2e8aa55754a7b9063afc1d7749d85','0','2','0'),
('43592','21','','10529','Get metrics data','aws.rds.get_metrics','0s;m/5','0','0','0','4','','','','',NULL,NULL,'var AWS = {\r\n params: {},\r\n request_period: 600,\r\n metadata: \'http://169.254.169.254/latest/\',\r\n\r\n getField: function (data, path) {\r\n var steps = path.split(\'.\');\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n\r\n data = data[step];\r\n }\r\n\r\n return data;\r\n },\r\n\r\n getRoleBaseCredentials: function () {\r\n AWS.params[\'auth_type\'] = \'role_base\';\r\n var request = new HttpRequest();\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token-ttl-seconds: 21600\');\r\n var token = request.put(AWS.metadata + \'api/token\');\r\n\r\n if (request.getStatus() !== 200 || token === null || token === \'\') {\r\n throw \'Error getting IMDSv2 session token.\';\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token: \' + token);\r\n var IamRoleName = request.get(AWS.metadata + \'meta-data/iam/security-credentials\');\r\n\r\n if (request.getStatus() !== 200 || IamRoleName === null || IamRoleName === \'\') {\r\n throw \'Error getting security credentials from instance metadata. Role not found.\';\r\n }\r\n\r\n credentials = request.get(AWS.metadata + \'meta-data/iam/security-credentials/\' + encodeURI(IamRoleName));\r\n\r\n if (request.getStatus() !== 200 || credentials === null || credentials === \'\') {\r\n throw \'Error getting security credentials from instance metadata.\';\r\n }\r\n\r\n try {\r\n credentials = JSON.parse(credentials);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from instance metadata. Check debug log for more information.\';\r\n }\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'Token\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n },\r\n\r\n setParams: function (params) {\r\n AWS.params[\'proxy\'] = params.proxy;\r\n switch (AWS.getField(params, \'auth_type\')) {\r\n case \'role_base\':\r\n AWS.getRoleBaseCredentials();\r\n break;\r\n case \'assume_role\':\r\n if (typeof params.metadata_auth === \'undefined\' || params.metadata_auth === \'\' || (params.metadata_auth !== \'true\' && params.metadata_auth !== \'false\')) {\r\n throw \'Required param metadata_auth for assume_role is not set or has invalid value: "\' + params.metadata_auth + \'". Expected "true" or "false".\';\r\n }\r\n if (params.metadata_auth === \'true\') {\r\n AWS.getRoleBaseCredentials();\r\n AWS.params[\'SessionToken\'] = AWS.params[\'Token\'];\r\n AWS.params[\'auth_type\'] = \'assume_role_metadata\';\r\n\r\n [\'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n if (params.metadata_auth === \'false\') {\r\n AWS.params[\'auth_type\'] = \'assume_role\';\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n const role_arn_regex = /role\\/(.+)$/;\r\n const match = AWS.params.role_arn.match(role_arn_regex);\r\n if (!match) {\r\n throw \'Invalid role ARN format.\';\r\n }\r\n\r\n const payload = {\r\n \'Action\': \'AssumeRole\',\r\n \'Version\': \'2011-06-15\',\r\n \'RoleArn\': AWS.params.role_arn,\r\n \'RoleSessionName\': match[1] + \'Session\',\r\n };\r\n\r\n credentials = AWS.getField(AWS.request(\'POST\', AWS.params.sts_region, \'sts\', AWS.prepareParams(payload), \'\'), \'AssumeRoleResponse.AssumeRoleResult.Credentials\');\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'SessionToken\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n break;\r\n default:\r\n AWS.params[\'auth_type\'] = \'access_key\';\r\n [\'AccessKeyId\', \'SecretAccessKey\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n [\'region\', \'db_instance_id\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n },\r\n\r\n sign: function (key, message) {\r\n var hex = hmac(\'sha256\', key, message);\r\n\r\n if ((hex.length % 2) === 1) {\r\n throw \'Invalid length of a hex string!\';\r\n }\r\n\r\n var result = new Int8Array(hex.length / 2);\r\n for (var i = 0, b = 0; i < hex.length; i += 2, b++) {\r\n result[b] = parseInt(hex.substring(i, i + 2), 16);\r\n }\r\n\r\n return result;\r\n },\r\n\r\n prepareParams: function (params) {\r\n var result = [];\r\n\r\n Object.keys(params).sort().forEach(function (key) {\r\n if (typeof params[key] !== \'object\') {\r\n result.push(key + \'=\' + encodeURIComponent(params[key]));\r\n }\r\n else {\r\n result.push(prepareObject(key, params[key]));\r\n }\r\n });\r\n\r\n return result.join(\'&\');\r\n },\r\n\r\n renderMetricQuery: function (period, db_instance_id) {\r\n var metrics_list = [\r\n \'AbortedClients:Count\',\r\n \'ActiveTransactions:Count/Second\',\r\n \'AuroraBinlogReplicaLag:Seconds\',\r\n \'AuroraReplicaLag:Milliseconds\',\r\n \'AuroraReplicaLagMaximum:Milliseconds\',\r\n \'AuroraReplicaLagMinimum:Milliseconds\',\r\n \'BacktrackWindowActual:Count\',\r\n \'BacktrackWindowAlert:Count\',\r\n \'BinLogDiskUsage:Bytes\',\r\n \'BlockedTransactions:Count/Second\',\r\n \'BufferCacheHitRatio:Percent\',\r\n \'CheckpointLag:Seconds\',\r\n \'CommitLatency:Milliseconds\',\r\n \'CommitThroughput:Count/Second\',\r\n \'CPUCreditBalance:Count\',\r\n \'CPUCreditUsage:Count\',\r\n \'CPUUtilization:Percent\',\r\n \'DatabaseConnections:Count\',\r\n \'DDLLatency:Milliseconds\',\r\n \'DDLThroughput:Count/Second\',\r\n \'Deadlocks:Count/Second\',\r\n \'DeleteLatency:Milliseconds\',\r\n \'DeleteThroughput:Count/Second\',\r\n \'DiskQueueDepth:Count\',\r\n \'DMLLatency:Milliseconds\',\r\n \'DMLThroughput:Count/Second\',\r\n \'EBSByteBalance%:Percent\',\r\n \'EBSIOBalance%:Percent\',\r\n \'EngineUptime:Seconds\',\r\n \'FailedSQLServerAgentJobsCount:Count/Second\',\r\n \'FreeableMemory:Bytes\',\r\n \'FreeLocalStorage:Bytes\',\r\n \'InsertLatency:Milliseconds\',\r\n \'InsertThroughput:Count/Second\',\r\n \'LoginFailures:Count/Second\',\r\n \'MaximumUsedTransactionIDs:Count\',\r\n \'NetworkReceiveThroughput:Bytes/Second\',\r\n \'NetworkThroughput:Bytes/Second\',\r\n \'NetworkTransmitThroughput:Bytes/Second\',\r\n \'NumBinaryLogFiles:Count\',\r\n \'Queries:Count/Second\',\r\n \'RDSToAuroraPostgreSQLReplicaLag:Seconds\',\r\n \'ReadIOPS:Count/Second\',\r\n \'ReadLatency:Seconds\',\r\n \'ReadLatencyLocalStorage:Seconds\',\r\n \'ReadThroughput:Bytes/Second\',\r\n \'ReadThroughputLocalStorage:Bytes/Second\',\r\n \'ReplicationSlotDiskUsage:Bytes\',\r\n \'ResultSetCacheHitRatio:Percent\',\r\n \'RollbackSegmentHistoryListLength:Count\',\r\n \'RowLockTime:Milliseconds\',\r\n \'SelectLatency:Milliseconds\',\r\n \'SelectThroughput:Count/Second\',\r\n \'StorageNetworkReceiveThroughput:Bytes/Second\',\r\n \'StorageNetworkThroughput:Bytes/Second\',\r\n \'StorageNetworkTransmitThroughput:Bytes/Second\',\r\n \'SumBinaryLogSize:Bytes\',\r\n \'SwapUsage:Bytes\',\r\n \'TransactionLogsDiskUsage:Bytes\',\r\n \'UpdateLatency:Milliseconds\',\r\n \'UpdateThroughput:Count/Second\',\r\n \'WriteIOPS:Count/Second\',\r\n \'WriteLatency:Seconds\',\r\n \'WriteThroughput:Bytes/Second\',\r\n \'BurstBalance:Percent\',\r\n \'FreeStorageSpace:Bytes\',\r\n \'OldestReplicationSlotLag:Bytes\',\r\n \'ReplicaLag:Seconds\',\r\n \'TransactionLogsGeneration:Bytes/Second\'\r\n ];\r\n\r\n var metric_payload = [];\r\n metrics_list.forEach(function (metric) {\r\n var parts = metric.split(\':\', 2);\r\n var name = parts[0].replace(/[^a-zA-Z0-9]/g, \'\');\r\n metric_payload.push({\r\n \'Id\': name.charAt(0).toLowerCase() + name.slice(1),\r\n \'MetricStat\': {\r\n \'Metric\': {\r\n \'MetricName\': parts[0],\r\n \'Namespace\': \'AWS/RDS\',\r\n \'Dimensions\': [\r\n {\r\n \'Name\': \'DBInstanceIdentifier\',\r\n \'Value\': db_instance_id\r\n }\r\n ]\r\n },\r\n \'Period\': period,\r\n \'Stat\': \'Average\',\r\n \'Unit\': parts[1]\r\n }\r\n });\r\n });\r\n\r\n return metric_payload;\r\n\r\n },\r\n\r\n request: function (method, region, service, params, data) {\r\n if (typeof data === \'undefined\' || data === null) {\r\n data = \'\';\r\n }\r\n else {\r\n data = JSON.stringify(data);\r\n }\r\n\r\n var amzdate = (new Date()).toISOString().replace(/\\.\\d+Z/, \'Z\').replace(/[-:]/g, \'\'),\r\n date = amzdate.replace(/T\\d+Z/, \'\'),\r\n host = service + \'.\' + region + \'.amazonaws.com\',\r\n canonical_uri = \'/\',\r\n canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\',\r\n signed_headers = \'content-encoding;host;x-amz-date\',\r\n canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data),\r\n credential_scope = date + \'/\' + region + \'/\' + service + \'/\' + \'aws4_request\',\r\n request_string = \'AWS4-HMAC-SHA256\' + \'\\n\' + amzdate + \'\\n\' + credential_scope + \'\\n\' + sha256(canonical_request),\r\n key = AWS.sign(\'AWS4\' + AWS.params.SecretAccessKey, date),\r\n key = AWS.sign(key, region),\r\n key = AWS.sign(key, service),\r\n key = AWS.sign(key, \'aws4_request\'),\r\n request = new HttpRequest(),\r\n url = \'https://\' + host + canonical_uri + \'?\' + params;\r\n\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'x-amz-date: \' + amzdate);\r\n request.addHeader(\'X-Amz-Target: GraniteServiceVersion20100801.GetMetricData\');\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Content-Encoding: amz-1.0\');\r\n request.addHeader(\'Authorization: \' + \'AWS4-HMAC-SHA256 Credential=\' + AWS.params.AccessKeyId + \'/\' + credential_scope + \', \' + \'SignedHeaders=\' + signed_headers + \', \' + \'Signature=\' + hmac(\'sha256\', key, request_string));\r\n if (AWS.params.auth_type === \'role_base\' || AWS.params.auth_type === \'assume_role_metadata\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n request.addHeader(\'X-Amz-Security-Token: \' + (AWS.params.auth_type === \'role_base\' ? AWS.params.Token : AWS.params.SessionToken));\r\n }\r\n\r\n Zabbix.log(4, \'[ AWS RDS ] Sending request: \' + url);\r\n response = request.post(url, data);\r\n Zabbix.log(4, \'[ AWS RDS ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n try {\r\n response = JSON.parse(XML.toJson(response));\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from AWS CloudWatch API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n return response;\r\n },\r\n\r\n getMetricsData: function () {\r\n var payload = {},\r\n end_time = Math.floor((new Date().getTime()) / 1000),\r\n start_time = end_time - AWS.request_period;\r\n\r\n payload[\'StartTime\'] = start_time;\r\n payload[\'EndTime\'] = end_time;\r\n payload[\'ScanBy\'] = \'TimestampDescending\';\r\n payload[\'MetricDataQueries\'] = AWS.renderMetricQuery(AWS.request_period, AWS.params.db_instance_id);\r\n result = AWS.request(\'POST\', AWS.params.region, \'monitoring\', \'\', payload);\r\n if (typeof result !== \'object\' || typeof result.MetricDataResults !== \'object\') {\r\n throw \'Cannot get metrics data from AWS CloudWatch API. Check debug log for more information.\';\r\n }\r\n\r\n return result.MetricDataResults;\r\n }\r\n};\r\n\r\ntry {\r\n AWS.setParams(JSON.parse(value));\r\n\r\n return JSON.stringify(AWS.getMetricsData());\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ AWS RDS ] ERROR: \' + error);\r\n\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Get instance metrics.\r\nFull metrics list related to RDS: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-metrics.html\r\nFull metrics list related to Amazon Aurora: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMySQL.Monitoring.Metrics.html#Aurora.AuroraMySQL.Monitoring.Metrics.instances','0','30d','0','',NULL,'15s','','','','200','1','0','','','0','0','0','0','0','0','0','b22171fe7de44ac3952468ceb0c1a9b0','0','2','0'),
('43593','21','','10529','Get instance info','aws.rds.get_instance_info','5m','0','0','0','4','','','','',NULL,NULL,'var AWS = {\r\n params: {},\r\n request_period: 600,\r\n metadata: \'http://169.254.169.254/latest/\',\r\n\r\n getField: function (data, path) {\r\n var steps = path.split(\'.\');\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n\r\n data = data[step];\r\n }\r\n\r\n return data;\r\n },\r\n\r\n getRoleBaseCredentials: function () {\r\n AWS.params[\'auth_type\'] = \'role_base\';\r\n var request = new HttpRequest();\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token-ttl-seconds: 21600\');\r\n var token = request.put(AWS.metadata + \'api/token\');\r\n\r\n if (request.getStatus() !== 200 || token === null || token === \'\') {\r\n throw \'Error getting IMDSv2 session token.\';\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token: \' + token);\r\n var IamRoleName = request.get(AWS.metadata + \'meta-data/iam/security-credentials\');\r\n\r\n if (request.getStatus() !== 200 || IamRoleName === null || IamRoleName === \'\') {\r\n throw \'Error getting security credentials from instance metadata. Role not found.\';\r\n }\r\n\r\n credentials = request.get(AWS.metadata + \'meta-data/iam/security-credentials/\' + encodeURI(IamRoleName));\r\n\r\n if (request.getStatus() !== 200 || credentials === null || credentials === \'\') {\r\n throw \'Error getting security credentials from instance metadata.\';\r\n }\r\n\r\n try {\r\n credentials = JSON.parse(credentials);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from instance metadata. Check debug log for more information.\';\r\n }\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'Token\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n },\r\n\r\n setParams: function (params) {\r\n AWS.params[\'proxy\'] = params.proxy;\r\n switch (AWS.getField(params, \'auth_type\')) {\r\n case \'role_base\':\r\n AWS.getRoleBaseCredentials();\r\n break;\r\n case \'assume_role\':\r\n if (typeof params.metadata_auth === \'undefined\' || params.metadata_auth === \'\' || (params.metadata_auth !== \'true\' && params.metadata_auth !== \'false\')) {\r\n throw \'Required param metadata_auth for assume_role is not set or has invalid value: "\' + params.metadata_auth + \'". Expected "true" or "false".\';\r\n }\r\n if (params.metadata_auth === \'true\') {\r\n AWS.getRoleBaseCredentials();\r\n AWS.params[\'SessionToken\'] = AWS.params[\'Token\'];\r\n AWS.params[\'auth_type\'] = \'assume_role_metadata\';\r\n\r\n [\'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n if (params.metadata_auth === \'false\') {\r\n AWS.params[\'auth_type\'] = \'assume_role\';\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n const role_arn_regex = /role\\/(.+)$/;\r\n const match = AWS.params.role_arn.match(role_arn_regex);\r\n if (!match) {\r\n throw \'Invalid role ARN format.\';\r\n }\r\n\r\n const payload = {\r\n \'Action\': \'AssumeRole\',\r\n \'Version\': \'2011-06-15\',\r\n \'RoleArn\': AWS.params.role_arn,\r\n \'RoleSessionName\': match[1] + \'Session\',\r\n };\r\n\r\n credentials = AWS.getField(AWS.request(\'GET\', AWS.params.sts_region, \'sts\', AWS.prepareParams(payload), \'\'), \'AssumeRoleResponse.AssumeRoleResult.Credentials\');\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'SessionToken\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n break;\r\n default:\r\n AWS.params[\'auth_type\'] = \'access_key\';\r\n [\'AccessKeyId\', \'SecretAccessKey\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n [\'region\', \'db_instance_id\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n },\r\n\r\n sign: function (key, message) {\r\n var hex = hmac(\'sha256\', key, message);\r\n\r\n if ((hex.length % 2) === 1) {\r\n throw \'Invalid length of a hex string!\';\r\n }\r\n\r\n var result = new Int8Array(hex.length / 2);\r\n for (var i = 0, b = 0; i < hex.length; i += 2, b++) {\r\n result[b] = parseInt(hex.substring(i, i + 2), 16);\r\n }\r\n\r\n return result;\r\n },\r\n\r\n prepareParams: function (params) {\r\n var result = [];\r\n\r\n Object.keys(params).sort().forEach(function (key) {\r\n if (typeof params[key] !== \'object\') {\r\n result.push(key + \'=\' + encodeURIComponent(params[key]));\r\n }\r\n else {\r\n result.push(prepareObject(key, params[key]));\r\n }\r\n });\r\n\r\n return result.join(\'&\');\r\n },\r\n\r\n request: function (method, region, service, params, data) {\r\n if (typeof data === \'undefined\' || data === null) {\r\n data = \'\';\r\n }\r\n\r\n var amzdate = (new Date()).toISOString().replace(/\\.\\d+Z/, \'Z\').replace(/[-:]/g, \'\'),\r\n date = amzdate.replace(/T\\d+Z/, \'\'),\r\n host = service + \'.\' + region + \'.amazonaws.com\',\r\n canonical_uri = \'/\',\r\n canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\',\r\n signed_headers = \'content-encoding;host;x-amz-date\',\r\n canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data),\r\n credential_scope = date + \'/\' + region + \'/\' + service + \'/\' + \'aws4_request\',\r\n request_string = \'AWS4-HMAC-SHA256\' + \'\\n\' + amzdate + \'\\n\' + credential_scope + \'\\n\' + sha256(canonical_request),\r\n key = AWS.sign(\'AWS4\' + AWS.params.SecretAccessKey, date),\r\n key = AWS.sign(key, region),\r\n key = AWS.sign(key, service),\r\n key = AWS.sign(key, \'aws4_request\'),\r\n request = new HttpRequest(),\r\n url = \'https://\' + host + canonical_uri + \'?\' + params;\r\n\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'x-amz-date: \' + amzdate);\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Content-Encoding: amz-1.0\');\r\n request.addHeader(\'Authorization: \' + \'AWS4-HMAC-SHA256 Credential=\' + AWS.params.AccessKeyId + \'/\' + credential_scope + \', \' + \'SignedHeaders=\' + signed_headers + \', \' + \'Signature=\' + hmac(\'sha256\', key, request_string));\r\n if (AWS.params.auth_type === \'role_base\' || AWS.params.auth_type === \'assume_role_metadata\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n request.addHeader(\'X-Amz-Security-Token: \' + (AWS.params.auth_type === \'role_base\' ? AWS.params.Token : AWS.params.SessionToken));\r\n }\r\n\r\n Zabbix.log(4, \'[ AWS RDS ] Sending request: \' + url);\r\n response = request.get(url);\r\n Zabbix.log(4, \'[ AWS RDS ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n try {\r\n response = JSON.parse(XML.toJson(response));\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from AWS RDS API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n return response;\r\n },\r\n\r\n getInstanceData: function () {\r\n var payload = {};\r\n\r\n payload[\'Action\'] = \'DescribeDBInstances\',\r\n payload[\'Version\'] = \'2014-10-31\',\r\n payload[\'DBInstanceIdentifier\'] = AWS.params.db_instance_id;\r\n\r\n result = AWS.request(\'GET\', AWS.params.region, \'rds\', AWS.prepareParams(payload));\r\n if (typeof result !== \'object\'\r\n || typeof result.DescribeDBInstancesResponse !== \'object\'\r\n || typeof result.DescribeDBInstancesResponse.DescribeDBInstancesResult !== \'object\'\r\n || typeof result.DescribeDBInstancesResponse.DescribeDBInstancesResult.DBInstances !== \'object\') {\r\n throw \'Cannot get metrics data from AWS RDS API. Check debug log for more information.\';\r\n }\r\n\r\n return result.DescribeDBInstancesResponse.DescribeDBInstancesResult.DBInstances;\r\n }\r\n};\r\n\r\ntry {\r\n AWS.setParams(JSON.parse(value));\r\n\r\n return JSON.stringify(AWS.getInstanceData());\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ AWS RDS ] ERROR: \' + error);\r\n\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Get instance info.\r\nDescribeDBInstances API method: https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBInstances.html','0','30d','0','',NULL,'15s','','','','200','1','0','','','0','0','0','0','0','0','0','85ac4a5313994e0f94fe6480d3c85193','0','2','0'),
('43594','21','','10529','Get instance events data','aws.rds.get_events','0s;m/10','0','0','0','4','','','','',NULL,NULL,'var AWS = {\r\n params: {},\r\n metadata: \'http://169.254.169.254/latest/\',\r\n\r\n getField: function (data, path) {\r\n var steps = path.split(\'.\');\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n\r\n data = data[step];\r\n }\r\n\r\n return data;\r\n },\r\n\r\n getRoleBaseCredentials: function () {\r\n AWS.params[\'auth_type\'] = \'role_base\';\r\n var request = new HttpRequest();\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token-ttl-seconds: 21600\');\r\n var token = request.put(AWS.metadata + \'api/token\');\r\n\r\n if (request.getStatus() !== 200 || token === null || token === \'\') {\r\n throw \'Error getting IMDSv2 session token.\';\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token: \' + token);\r\n var IamRoleName = request.get(AWS.metadata + \'meta-data/iam/security-credentials\');\r\n\r\n if (request.getStatus() !== 200 || IamRoleName === null || IamRoleName === \'\') {\r\n throw \'Error getting security credentials from instance metadata. Role not found.\';\r\n }\r\n\r\n credentials = request.get(AWS.metadata + \'meta-data/iam/security-credentials/\' + encodeURI(IamRoleName));\r\n\r\n if (request.getStatus() !== 200 || credentials === null || credentials === \'\') {\r\n throw \'Error getting security credentials from instance metadata.\';\r\n }\r\n\r\n try {\r\n credentials = JSON.parse(credentials);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from instance metadata. Check debug log for more information.\';\r\n }\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'Token\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n },\r\n\r\n setParams: function (params) {\r\n AWS.params[\'proxy\'] = params.proxy;\r\n switch (AWS.getField(params, \'auth_type\')) {\r\n case \'role_base\':\r\n AWS.getRoleBaseCredentials();\r\n break;\r\n case \'assume_role\':\r\n if (typeof params.metadata_auth === \'undefined\' || params.metadata_auth === \'\' || (params.metadata_auth !== \'true\' && params.metadata_auth !== \'false\')) {\r\n throw \'Required param metadata_auth for assume_role is not set or has invalid value: "\' + params.metadata_auth + \'". Expected "true" or "false".\';\r\n }\r\n if (params.metadata_auth === \'true\') {\r\n AWS.getRoleBaseCredentials();\r\n AWS.params[\'SessionToken\'] = AWS.params[\'Token\'];\r\n AWS.params[\'auth_type\'] = \'assume_role_metadata\';\r\n\r\n [\'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n if (params.metadata_auth === \'false\') {\r\n AWS.params[\'auth_type\'] = \'assume_role\';\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n const role_arn_regex = /role\\/(.+)$/;\r\n const match = AWS.params.role_arn.match(role_arn_regex);\r\n if (!match) {\r\n throw \'Invalid role ARN format.\';\r\n }\r\n\r\n const payload = {\r\n \'Action\': \'AssumeRole\',\r\n \'Version\': \'2011-06-15\',\r\n \'RoleArn\': AWS.params.role_arn,\r\n \'RoleSessionName\': match[1] + \'Session\',\r\n };\r\n\r\n credentials = AWS.getField(AWS.request(\'GET\', AWS.params.sts_region, \'sts\', AWS.prepareParams(payload), \'\'), \'AssumeRoleResponse.AssumeRoleResult.Credentials\');\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'SessionToken\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n break;\r\n default:\r\n AWS.params[\'auth_type\'] = \'access_key\';\r\n [\'AccessKeyId\', \'SecretAccessKey\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n [\'region\', \'db_instance_id\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n },\r\n\r\n sign: function (key, message) {\r\n var hex = hmac(\'sha256\', key, message);\r\n\r\n if ((hex.length % 2) === 1) {\r\n throw \'Invalid length of a hex string!\';\r\n }\r\n\r\n var result = new Int8Array(hex.length / 2);\r\n for (var i = 0, b = 0; i < hex.length; i += 2, b++) {\r\n result[b] = parseInt(hex.substring(i, i + 2), 16);\r\n }\r\n\r\n return result;\r\n },\r\n\r\n prepareParams: function (params) {\r\n var result = [];\r\n\r\n Object.keys(params).sort().forEach(function (key) {\r\n if (typeof params[key] !== \'object\') {\r\n result.push(key + \'=\' + encodeURIComponent(params[key]));\r\n }\r\n else {\r\n result.push(prepareObject(key, params[key]));\r\n }\r\n });\r\n\r\n return result.join(\'&\');\r\n },\r\n\r\n request: function (method, region, service, params, data) {\r\n if (typeof data === \'undefined\' || data === null) {\r\n data = \'\';\r\n }\r\n\r\n var amzdate = (new Date()).toISOString().replace(/\\.\\d+Z/, \'Z\').replace(/[-:]/g, \'\'),\r\n date = amzdate.replace(/T\\d+Z/, \'\'),\r\n host = service + \'.\' + region + \'.amazonaws.com\',\r\n canonical_uri = \'/\',\r\n canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\',\r\n signed_headers = \'content-encoding;host;x-amz-date\',\r\n canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data),\r\n credential_scope = date + \'/\' + region + \'/\' + service + \'/\' + \'aws4_request\',\r\n request_string = \'AWS4-HMAC-SHA256\' + \'\\n\' + amzdate + \'\\n\' + credential_scope + \'\\n\' + sha256(canonical_request),\r\n key = AWS.sign(\'AWS4\' + AWS.params.SecretAccessKey, date),\r\n key = AWS.sign(key, region),\r\n key = AWS.sign(key, service),\r\n key = AWS.sign(key, \'aws4_request\'),\r\n request = new HttpRequest(),\r\n url = \'https://\' + host + canonical_uri + \'?\' + params;\r\n\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'x-amz-date: \' + amzdate);\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Content-Encoding: amz-1.0\');\r\n request.addHeader(\'Authorization: \' + \'AWS4-HMAC-SHA256 Credential=\' + AWS.params.AccessKeyId + \'/\' + credential_scope + \', \' + \'SignedHeaders=\' + signed_headers + \', \' + \'Signature=\' + hmac(\'sha256\', key, request_string));\r\n if (AWS.params.auth_type === \'role_base\' || AWS.params.auth_type === \'assume_role_metadata\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n request.addHeader(\'X-Amz-Security-Token: \' + (AWS.params.auth_type === \'role_base\' ? AWS.params.Token : AWS.params.SessionToken));\r\n }\r\n\r\n Zabbix.log(4, \'[ AWS RDS ] Sending request: \' + url);\r\n response = request.get(url);\r\n Zabbix.log(4, \'[ AWS RDS ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n try {\r\n response = JSON.parse(XML.toJson(response));\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from AWS RDS API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n return response;\r\n },\r\n\r\n getEvents: function () {\r\n var payload = {\r\n \'Action\': \'DescribeEvents\',\r\n \'Version\': \'2014-09-01\',\r\n \'MaxRecords\': 100,\r\n \'Duration\': 30,\r\n \'SourceType\': \'db-instance\',\r\n \'SourceIdentifier\': AWS.params.db_instance_id\r\n },\r\n result = [];\r\n\r\n while (payload.nextToken !== \'\') {\r\n var events = AWS.getField(AWS.request(\'GET\', AWS.params.region, \'rds\', AWS.prepareParams(payload)), \'DescribeEventsResponse.DescribeEventsResult\');\r\n events_list = AWS.getField(events, \'Events\');\r\n\r\n if (!Array.isArray(events_list))\r\n events_list = [events_list];\r\n events_list.forEach(function (event) {\r\n event.EventCategories = event.EventCategories.toString();\r\n result.push(event);\r\n });\r\n payload.nextToken = events.nextToken || \'\';\r\n\r\n\r\n };\r\n\r\n return result;\r\n }\r\n};\r\n\r\ntry {\r\n AWS.setParams(JSON.parse(value));\r\n\r\n return JSON.stringify(AWS.getEvents());\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ AWS RDS ] ERROR: \' + error);\r\n\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'DescribeEvents API method: https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeEvents.html','0','30d','0','',NULL,'15s','','','','200','1','0','','','0','0','0','0','0','0','0','f0d1041fa09d4ba38c9d0b39c4b76b0b','0','2','0'),
('43595','21','','10529','Get instance alarms data','aws.rds.get_alarms','0s;m/1','0','0','0','4','','','','',NULL,NULL,'var AWS = {\r\n params: {},\r\n metadata: \'http://169.254.169.254/latest/\',\r\n\r\n getField: function (data, path) {\r\n var steps = path.split(\'.\');\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n\r\n data = data[step];\r\n }\r\n\r\n return data;\r\n },\r\n\r\n getRoleBaseCredentials: function () {\r\n AWS.params[\'auth_type\'] = \'role_base\';\r\n var request = new HttpRequest();\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token-ttl-seconds: 21600\');\r\n var token = request.put(AWS.metadata + \'api/token\');\r\n\r\n if (request.getStatus() !== 200 || token === null || token === \'\') {\r\n throw \'Error getting IMDSv2 session token.\';\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token: \' + token);\r\n var IamRoleName = request.get(AWS.metadata + \'meta-data/iam/security-credentials\');\r\n\r\n if (request.getStatus() !== 200 || IamRoleName === null || IamRoleName === \'\') {\r\n throw \'Error getting security credentials from instance metadata. Role not found.\';\r\n }\r\n\r\n credentials = request.get(AWS.metadata + \'meta-data/iam/security-credentials/\' + encodeURI(IamRoleName));\r\n\r\n if (request.getStatus() !== 200 || credentials === null || credentials === \'\') {\r\n throw \'Error getting security credentials from instance metadata.\';\r\n }\r\n\r\n try {\r\n credentials = JSON.parse(credentials);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from instance metadata. Check debug log for more information.\';\r\n }\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'Token\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n },\r\n\r\n setParams: function (params) {\r\n AWS.params[\'proxy\'] = params.proxy;\r\n switch (AWS.getField(params, \'auth_type\')) {\r\n case \'role_base\':\r\n AWS.getRoleBaseCredentials();\r\n break;\r\n case \'assume_role\':\r\n if (typeof params.metadata_auth === \'undefined\' || params.metadata_auth === \'\' || (params.metadata_auth !== \'true\' && params.metadata_auth !== \'false\')) {\r\n throw \'Required param metadata_auth for assume_role is not set or has invalid value: "\' + params.metadata_auth + \'". Expected "true" or "false".\';\r\n }\r\n if (params.metadata_auth === \'true\') {\r\n AWS.getRoleBaseCredentials();\r\n AWS.params[\'SessionToken\'] = AWS.params[\'Token\'];\r\n AWS.params[\'auth_type\'] = \'assume_role_metadata\';\r\n\r\n [\'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n if (params.metadata_auth === \'false\') {\r\n AWS.params[\'auth_type\'] = \'assume_role\';\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n const role_arn_regex = /role\\/(.+)$/;\r\n const match = AWS.params.role_arn.match(role_arn_regex);\r\n if (!match) {\r\n throw \'Invalid role ARN format.\';\r\n }\r\n\r\n const payload = {\r\n \'Action\': \'AssumeRole\',\r\n \'Version\': \'2011-06-15\',\r\n \'RoleArn\': AWS.params.role_arn,\r\n \'RoleSessionName\': match[1] + \'Session\',\r\n };\r\n\r\n credentials = AWS.getField(AWS.request(\'GET\', AWS.params.sts_region, \'sts\', AWS.prepareParams(payload), \'\'), \'AssumeRoleResponse.AssumeRoleResult.Credentials\');\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'SessionToken\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n break;\r\n default:\r\n AWS.params[\'auth_type\'] = \'access_key\';\r\n [\'AccessKeyId\', \'SecretAccessKey\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n [\'region\', \'db_instance_id\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n },\r\n\r\n sign: function (key, message) {\r\n var hex = hmac(\'sha256\', key, message);\r\n\r\n if ((hex.length % 2) === 1) {\r\n throw \'Invalid length of a hex string!\';\r\n }\r\n\r\n var result = new Int8Array(hex.length / 2);\r\n for (var i = 0, b = 0; i < hex.length; i += 2, b++) {\r\n result[b] = parseInt(hex.substring(i, i + 2), 16);\r\n }\r\n\r\n return result;\r\n },\r\n\r\n prepareParams: function (params) {\r\n var result = [];\r\n\r\n Object.keys(params).sort().forEach(function (key) {\r\n if (typeof params[key] !== \'object\') {\r\n result.push(key + \'=\' + encodeURIComponent(params[key]));\r\n }\r\n else {\r\n result.push(prepareObject(key, params[key]));\r\n }\r\n });\r\n\r\n return result.join(\'&\');\r\n },\r\n\r\n request: function (method, region, service, params, data) {\r\n if (typeof data === \'undefined\' || data === null) {\r\n data = \'\';\r\n }\r\n\r\n var amzdate = (new Date()).toISOString().replace(/\\.\\d+Z/, \'Z\').replace(/[-:]/g, \'\'),\r\n date = amzdate.replace(/T\\d+Z/, \'\'),\r\n host = service + \'.\' + region + \'.amazonaws.com\',\r\n canonical_uri = \'/\',\r\n canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\',\r\n signed_headers = \'content-encoding;host;x-amz-date\',\r\n canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data),\r\n credential_scope = date + \'/\' + region + \'/\' + service + \'/\' + \'aws4_request\',\r\n request_string = \'AWS4-HMAC-SHA256\' + \'\\n\' + amzdate + \'\\n\' + credential_scope + \'\\n\' + sha256(canonical_request),\r\n key = AWS.sign(\'AWS4\' + AWS.params.SecretAccessKey, date),\r\n key = AWS.sign(key, region),\r\n key = AWS.sign(key, service),\r\n key = AWS.sign(key, \'aws4_request\'),\r\n request = new HttpRequest(),\r\n url = \'https://\' + host + canonical_uri + \'?\' + params;\r\n\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'x-amz-date: \' + amzdate);\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Content-Encoding: amz-1.0\');\r\n request.addHeader(\'Authorization: \' + \'AWS4-HMAC-SHA256 Credential=\' + AWS.params.AccessKeyId + \'/\' + credential_scope + \', \' + \'SignedHeaders=\' + signed_headers + \', \' + \'Signature=\' + hmac(\'sha256\', key, request_string));\r\n if (AWS.params.auth_type === \'role_base\' || AWS.params.auth_type === \'assume_role_metadata\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n request.addHeader(\'X-Amz-Security-Token: \' + (AWS.params.auth_type === \'role_base\' ? AWS.params.Token : AWS.params.SessionToken));\r\n }\r\n\r\n Zabbix.log(4, \'[ AWS RDS ] Sending request: \' + url);\r\n response = request.get(url);\r\n Zabbix.log(4, \'[ AWS RDS ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n try {\r\n response = JSON.parse(XML.toJson(response));\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from AWS CloudWatch API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n return response;\r\n },\r\n\r\n getAlarms: function () {\r\n var payload = {\r\n \'Action\': \'DescribeAlarms\',\r\n \'Version\': \'2010-08-01\',\r\n \'MaxRecords\': 100\r\n },\r\n result = [];\r\n\r\n while (payload.NextToken !== \'\') {\r\n var alarms = AWS.getField(AWS.request(\'GET\', AWS.params.region, \'monitoring\', AWS.prepareParams(payload)), \'DescribeAlarmsResponse.DescribeAlarmsResult\');\r\n payload.NextToken = alarms.NextToken || \'\';\r\n alarms_list = AWS.getField(alarms, \'MetricAlarms\');\r\n\r\n if (!Array.isArray(alarms_list))\r\n alarms_list = [alarms_list];\r\n alarms_list.forEach(function (alarm) {\r\n var dimensions = alarm.Dimensions;\r\n\r\n if (Array.isArray(alarm.Metrics)) {\r\n alarm.Metrics.forEach(function (metric) {\r\n if (typeof metric.MetricStat === \'object\' && metric.MetricStat !== null\r\n && typeof metric.MetricStat.Metric === \'object\' && metric.MetricStat.Metric !== null\r\n && Array.isArray(metric.MetricStat.Metric.Dimensions)) {\r\n dimensions = dimensions.concat(metric.MetricStat.Metric.Dimensions);\r\n }\r\n });\r\n }\r\n for (var i in dimensions) {\r\n if (dimensions[i].Name === \'DBInstanceIdentifier\' && dimensions[i].Value === AWS.params.db_instance_id) {\r\n result.push(alarm);\r\n break;\r\n }\r\n }\r\n });\r\n }\r\n\r\n return result;\r\n }\r\n};\r\n\r\ntry {\r\n AWS.setParams(JSON.parse(value));\r\n\r\n return JSON.stringify(AWS.getAlarms());\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ AWS RDS ] ERROR: \' + error);\r\n\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'DescribeAlarms API method: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarms.html','0','30d','0','',NULL,'15s','','','','200','1','0','','','0','0','0','0','0','0','0','a2f85e777eae4fe789446de21136c510','0','2','0'),
('43684','21','','10530','Get metrics data','aws.s3.get_metrics','0s;h/8','0','0','0','4','','','','',NULL,NULL,'var AWS = {\r\n params: {},\r\n request_period: 2 * 86400,\r\n metadata: \'http://169.254.169.254/latest/\',\r\n\r\n getField: function (data, path) {\r\n var steps = path.split(\'.\');\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n\r\n data = data[step];\r\n }\r\n\r\n return data;\r\n },\r\n\r\n\r\n getRoleBaseCredentials: function () {\r\n AWS.params[\'auth_type\'] = \'role_base\';\r\n var request = new HttpRequest();\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token-ttl-seconds: 21600\');\r\n var token = request.put(AWS.metadata + \'api/token\');\r\n\r\n if (request.getStatus() !== 200 || token === null || token === \'\') {\r\n throw \'Error getting IMDSv2 session token.\';\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token: \' + token);\r\n var IamRoleName = request.get(AWS.metadata + \'meta-data/iam/security-credentials\');\r\n\r\n if (request.getStatus() !== 200 || IamRoleName === null || IamRoleName === \'\') {\r\n throw \'Error getting security credentials from instance metadata. Role not found.\';\r\n }\r\n\r\n credentials = request.get(AWS.metadata + \'meta-data/iam/security-credentials/\' + encodeURI(IamRoleName));\r\n\r\n if (request.getStatus() !== 200 || credentials === null || credentials === \'\') {\r\n throw \'Error getting security credentials from instance metadata.\';\r\n }\r\n\r\n try {\r\n credentials = JSON.parse(credentials);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from instance metadata. Check debug log for more information.\';\r\n }\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'Token\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n },\r\n\r\n setParams: function (params) {\r\n AWS.params[\'proxy\'] = params.proxy;\r\n switch (AWS.getField(params, \'auth_type\')) {\r\n case \'role_base\':\r\n AWS.getRoleBaseCredentials();\r\n break;\r\n case \'assume_role\':\r\n if (typeof params.metadata_auth === \'undefined\' || params.metadata_auth === \'\' || (params.metadata_auth !== \'true\' && params.metadata_auth !== \'false\')) {\r\n throw \'Required param metadata_auth for assume_role is not set or has invalid value: "\' + params.metadata_auth + \'". Expected "true" or "false".\';\r\n }\r\n if (params.metadata_auth === \'true\') {\r\n AWS.getRoleBaseCredentials();\r\n AWS.params[\'SessionToken\'] = AWS.params[\'Token\'];\r\n AWS.params[\'auth_type\'] = \'assume_role_metadata\';\r\n\r\n [\'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n if (params.metadata_auth === \'false\') {\r\n AWS.params[\'auth_type\'] = \'assume_role\';\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n const role_arn_regex = /role\\/(.+)$/;\r\n const match = AWS.params.role_arn.match(role_arn_regex);\r\n if (!match) {\r\n throw \'Invalid role ARN format.\';\r\n }\r\n\r\n const payload = {\r\n \'Action\': \'AssumeRole\',\r\n \'Version\': \'2011-06-15\',\r\n \'RoleArn\': AWS.params.role_arn,\r\n \'RoleSessionName\': match[1] + \'Session\',\r\n };\r\n\r\n credentials = AWS.getField(AWS.request(\'credentials\', \'GET\', AWS.params.sts_region, \'sts\', AWS.prepareParams(payload)), \'AssumeRoleResponse.AssumeRoleResult.Credentials\');\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'SessionToken\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n break;\r\n default:\r\n AWS.params[\'auth_type\'] = \'access_key\';\r\n [\'AccessKeyId\', \'SecretAccessKey\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n [\'bucket_name\', \'request_region\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n\r\n AWS.params[field] = params[field];\r\n });\r\n },\r\n\r\n sign: function (key, message) {\r\n var hex = hmac(\'sha256\', key, message);\r\n\r\n if ((hex.length % 2) === 1) {\r\n throw \'Invalid length of a hex string!\';\r\n }\r\n\r\n var result = new Int8Array(hex.length / 2);\r\n for (var i = 0, b = 0; i < hex.length; i += 2, b++) {\r\n result[b] = parseInt(hex.substring(i, i + 2), 16);\r\n }\r\n\r\n return result;\r\n },\r\n\r\n renderMetricQuery: function (period, bucket_name) {\r\n var metrics_list = [\r\n \'BucketSizeBytes:Bytes:Average:StandardStorage\',\r\n \'NumberOfObjects:Count:Average:AllStorageTypes\',\r\n ];\r\n\r\n var metric_payload = [];\r\n metrics_list.forEach(function (metric, index) {\r\n var parts = metric.split(\':\', 4);\r\n metric_payload.push({\r\n \'Id\': \'m\' + index,\r\n \'MetricStat\': {\r\n \'Metric\': {\r\n \'MetricName\': parts[0],\r\n \'Namespace\': \'AWS/S3\',\r\n \'Dimensions\': [\r\n {\r\n \'Name\': \'BucketName\',\r\n \'Value\': bucket_name\r\n },\r\n {\r\n \'Name\': \'StorageType\',\r\n \'Value\': parts[3]\r\n }\r\n ]\r\n },\r\n \'Period\': period,\r\n \'Stat\': parts[2],\r\n \'Unit\': parts[1]\r\n }\r\n });\r\n });\r\n\r\n return metric_payload;\r\n\r\n },\r\n\r\n prepareParams: function (params) {\r\n var result = [];\r\n\r\n Object.keys(params).sort().forEach(function (key) {\r\n if (typeof params[key] !== \'object\') {\r\n result.push(key + \'=\' + encodeURIComponent(params[key]));\r\n }\r\n else {\r\n result.push(prepareObject(key, params[key]));\r\n }\r\n });\r\n\r\n return result.join(\'&\');\r\n },\r\n\r\n request: function (get, method, region, service, params, data) {\r\n if (typeof data === \'undefined\' || data === null) {\r\n data = \'\';\r\n }\r\n else {\r\n data = JSON.stringify(data)\r\n }\r\n var amzdate = (new Date()).toISOString().replace(/\\.\\d+Z/, \'Z\').replace(/[-:]/g, \'\'),\r\n date = amzdate.replace(/T\\d+Z/, \'\');\r\n\r\n if (get === \'metrics\' || get === \'credentials\') {\r\n host = service + \'.\' + region + \'.amazonaws.com\';\r\n } else {\r\n host = AWS.params.bucket_name + \'.\' + service + \'.\' + region + \'.amazonaws.com\';\r\n }\r\n if (AWS.params.auth_type === \'role_base\' || AWS.params.auth_type === \'assume_role_metadata\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n token = AWS.params.auth_type === \'role_base\' ? AWS.params.Token : AWS.params.SessionToken;\r\n var canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\' + \'x-amz-security-token:\' + token + \'\\n\',\r\n signed_headers = \'content-encoding;host;x-amz-date;x-amz-security-token\';\r\n }\r\n else {\r\n var canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\',\r\n signed_headers = \'content-encoding;host;x-amz-date\';\r\n }\r\n\r\n var canonical_uri = \'/\';\r\n\r\n switch (get) {\r\n case \'location\':\r\n canonical_uri = \'/\' + AWS.params.bucket_name;\r\n canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data);\r\n break;\r\n case \'metrics\':\r\n canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data);\r\n break;\r\n case \'filter_id\':\r\n case \'credentials\':\r\n canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data);\r\n break;\r\n default:\r\n throw \'Error: Invalid option "get" for request function\';\r\n }\r\n\r\n var credential_scope = date + \'/\' + region + \'/\' + service + \'/\' + \'aws4_request\',\r\n request_string = \'AWS4-HMAC-SHA256\' + \'\\n\' + amzdate + \'\\n\' + credential_scope + \'\\n\' + sha256(canonical_request),\r\n key = AWS.sign(\'AWS4\' + AWS.params.SecretAccessKey, date),\r\n key = AWS.sign(key, region),\r\n key = AWS.sign(key, service),\r\n key = AWS.sign(key, \'aws4_request\'),\r\n request = new HttpRequest();\r\n\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'x-amz-date: \' + amzdate);\r\n request.addHeader(\'x-amz-content-sha256:\' + sha256(data));\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Content-Encoding: amz-1.0\');\r\n request.addHeader(\'Authorization: \' + \'AWS4-HMAC-SHA256 Credential=\' + AWS.params.AccessKeyId + \'/\' + credential_scope + \', \' + \'SignedHeaders=\' + signed_headers + \', \' + \'Signature=\' + hmac(\'sha256\', key, request_string));\r\n if (AWS.params.auth_type === \'role_base\' || AWS.params.auth_type === \'assume_role_metadata\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n request.addHeader(\'X-Amz-Security-Token: \' + token);\r\n }\r\n\r\n switch (get) {\r\n case \'location\':\r\n case \'filter_id\':\r\n case \'credentials\':\r\n url = \'https://\' + host + canonical_uri + \'?\' + params;\r\n Zabbix.log(4, \'[ AWS S3 ] Sending request: \' + url);\r\n response = request.get(url);\r\n Zabbix.log(4, \'[ AWS S3 ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n if (request.getStatus() !== 200) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n break;\r\n\r\n case \'metrics\':\r\n url = \'https://\' + host + \'/\';\r\n Zabbix.log(4, \'[ AWS S3 ] Sending request: \' + url);\r\n request.addHeader(\'X-Amz-Target: GraniteServiceVersion20100801.GetMetricData\');\r\n response = request.post(url, data);\r\n Zabbix.log(4, \'[ AWS S3 ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n if (request.getStatus() !== 200) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n break;\r\n\r\n default:\r\n throw \'Error: Invalid option "get" for request function\';\r\n }\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n try {\r\n response = JSON.parse(XML.toJson(response));\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from AWS CloudWatch API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n return response;\r\n },\r\n\r\n getBucketLocation: function (bucket_name) {\r\n var payload = {};\r\n payload[\'location\'] = \'\';\r\n\r\n result = AWS.request(\'location\', \'GET\', AWS.params.request_region, \'s3\', AWS.prepareParams(payload), \'\', bucket_name);\r\n\r\n if (typeof result !== \'object\'\r\n || result.hasOwnProperty(\'LocationConstraint\') === false\r\n ) {\r\n throw \'Cannot get buckets region location data from AWS S3 API. Check debug log for more information.\';\r\n }\r\n\r\n return result.LocationConstraint !== null ? result.LocationConstraint : \'us-east-1\';\r\n },\r\n\r\n getBucketFilterId: function (region) {\r\n var payload = {};\r\n payload[\'metrics\'] = \'\';\r\n\r\n data = AWS.getField(AWS.request(\'filter_id\', \'GET\', region, \'s3\', AWS.prepareParams(payload), \'\'), \'ListMetricsConfigurationsResult\');\r\n\r\n if (typeof data === \'object\' && data.hasOwnProperty(\'MetricsConfiguration\') === true) {\r\n if (!Array.isArray(data.MetricsConfiguration))\r\n data.MetricsConfiguration = [data.MetricsConfiguration]\r\n data.MetricsConfiguration.forEach(function (item) {\r\n item.region = region;\r\n });\r\n } else { data.MetricsConfiguration = [\'To view request metrics, create a filter\'] }\r\n return data.MetricsConfiguration;\r\n\r\n },\r\n\r\n getMetricsData: function (region) {\r\n var payload = {},\r\n end_time = Math.floor((new Date().getTime()) / 1000),\r\n start_time = end_time - AWS.request_period;\r\n payload[\'StartTime\'] = start_time;\r\n payload[\'EndTime\'] = end_time;\r\n payload[\'ScanBy\'] = \'TimestampDescending\';\r\n payload[\'MetricDataQueries\'] = AWS.renderMetricQuery(43200, AWS.params.bucket_name);\r\n\r\n return AWS.getField(AWS.request(\'metrics\', \'POST\', region, \'monitoring\', \'\', payload), \'MetricDataResults\');\r\n }\r\n\r\n};\r\n\r\ntry {\r\n AWS.setParams(JSON.parse(value));\r\n var region = AWS.getBucketLocation(AWS.params.bucket_name),\r\n metrics = AWS.getMetricsData(region),\r\n filter_id = AWS.getBucketFilterId(region);\r\n return JSON.stringify({ metrics, filter_id });\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ AWS S3 ] ERROR: \' + error);\r\n\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Get bucket metrics.\r\nFull metrics list related to S3: https://docs.aws.amazon.com/AmazonS3/latest/userguide/metrics-dimensions.html','0','30d','0','',NULL,'15s','','','','200','1','0','','','0','0','0','0','0','0','0','598e9dc563334ad6b1d72245a6f8679f','0','2','0'),
('43685','21','','10530','Get alarms data','aws.s3.get_alarms','0s;m/1','0','0','0','4','','','','',NULL,NULL,'var AWS = {\r\n params: {},\r\n metadata: \'http://169.254.169.254/latest/\',\r\n\r\n getField: function (data, path) {\r\n var steps = path.split(\'.\');\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n\r\n data = data[step];\r\n }\r\n\r\n return data;\r\n },\r\n\r\n getRoleBaseCredentials: function () {\r\n AWS.params[\'auth_type\'] = \'role_base\';\r\n var request = new HttpRequest();\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token-ttl-seconds: 21600\');\r\n var token = request.put(AWS.metadata + \'api/token\');\r\n\r\n if (request.getStatus() !== 200 || token === null || token === \'\') {\r\n throw \'Error getting IMDSv2 session token.\';\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token: \' + token);\r\n var IamRoleName = request.get(AWS.metadata + \'meta-data/iam/security-credentials\');\r\n\r\n if (request.getStatus() !== 200 || IamRoleName === null || IamRoleName === \'\') {\r\n throw \'Error getting security credentials from instance metadata. Role not found.\';\r\n }\r\n\r\n credentials = request.get(AWS.metadata + \'meta-data/iam/security-credentials/\' + encodeURI(IamRoleName));\r\n\r\n if (request.getStatus() !== 200 || credentials === null || credentials === \'\') {\r\n throw \'Error getting security credentials from instance metadata.\';\r\n }\r\n\r\n try {\r\n credentials = JSON.parse(credentials);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from instance metadata. Check debug log for more information.\';\r\n }\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'Token\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n },\r\n\r\n setParams: function (params) {\r\n AWS.params[\'proxy\'] = params.proxy;\r\n switch (AWS.getField(params, \'auth_type\')) {\r\n case \'role_base\':\r\n AWS.getRoleBaseCredentials();\r\n break;\r\n case \'assume_role\':\r\n if (typeof params.metadata_auth === \'undefined\' || params.metadata_auth === \'\' || (params.metadata_auth !== \'true\' && params.metadata_auth !== \'false\')) {\r\n throw \'Required param metadata_auth for assume_role is not set or has invalid value: "\' + params.metadata_auth + \'". Expected "true" or "false".\';\r\n }\r\n if (params.metadata_auth === \'true\') {\r\n AWS.getRoleBaseCredentials();\r\n AWS.params[\'SessionToken\'] = AWS.params[\'Token\'];\r\n AWS.params[\'auth_type\'] = \'assume_role_metadata\';\r\n\r\n [\'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n if (params.metadata_auth === \'false\') {\r\n AWS.params[\'auth_type\'] = \'assume_role\';\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n const role_arn_regex = /role\\/(.+)$/;\r\n const match = AWS.params.role_arn.match(role_arn_regex);\r\n if (!match) {\r\n throw \'Invalid role ARN format.\';\r\n }\r\n\r\n const payload = {\r\n \'Action\': \'AssumeRole\',\r\n \'Version\': \'2011-06-15\',\r\n \'RoleArn\': AWS.params.role_arn,\r\n \'RoleSessionName\': match[1] + \'Session\',\r\n };\r\n\r\n credentials = AWS.getField(AWS.request(\'alarms\', \'GET\', AWS.params.sts_region, \'sts\', AWS.prepareParams(payload)), \'AssumeRoleResponse.AssumeRoleResult.Credentials\');\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'SessionToken\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n break;\r\n default:\r\n AWS.params[\'auth_type\'] = \'access_key\';\r\n [\'AccessKeyId\', \'SecretAccessKey\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n [\'bucket_name\', \'request_region\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n },\r\n\r\n sign: function (key, message) {\r\n var hex = hmac(\'sha256\', key, message);\r\n\r\n if ((hex.length % 2) === 1) {\r\n throw \'Invalid length of a hex string!\';\r\n }\r\n\r\n var result = new Int8Array(hex.length / 2);\r\n for (var i = 0, b = 0; i < hex.length; i += 2, b++) {\r\n result[b] = parseInt(hex.substring(i, i + 2), 16);\r\n }\r\n\r\n return result;\r\n },\r\n\r\n prepareParams: function (params) {\r\n var result = [];\r\n\r\n Object.keys(params).sort().forEach(function (key) {\r\n if (typeof params[key] !== \'object\') {\r\n result.push(key + \'=\' + encodeURIComponent(params[key]));\r\n }\r\n else {\r\n result.push(prepareObject(key, params[key]));\r\n }\r\n });\r\n\r\n return result.join(\'&\');\r\n },\r\n\r\n request: function (get, method, region, service, params, data) {\r\n if (typeof data === \'undefined\' || data === null) {\r\n data = \'\';\r\n }\r\n\r\n var amzdate = (new Date()).toISOString().replace(/\\.\\d+Z/, \'Z\').replace(/[-:]/g, \'\'),\r\n date = amzdate.replace(/T\\d+Z/, \'\');\r\n if (get === \'alarms\') {\r\n host = service + \'.\' + region + \'.amazonaws.com\';\r\n } else {\r\n host = AWS.params.bucket_name + \'.\' + service + \'.\' + region + \'.amazonaws.com\';\r\n }\r\n if (AWS.params.auth_type === \'role_base\' || AWS.params.auth_type === \'assume_role_metadata\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n token = AWS.params.auth_type === \'role_base\' ? AWS.params.Token : AWS.params.SessionToken;\r\n var canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\' + \'x-amz-security-token:\' + token + \'\\n\',\r\n signed_headers = \'content-encoding;host;x-amz-date;x-amz-security-token\';\r\n }\r\n else {\r\n var canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\',\r\n signed_headers = \'content-encoding;host;x-amz-date\';\r\n }\r\n if (get === \'location\') {\r\n canonical_uri = \'/\' + AWS.params.bucket_name;\r\n } else {\r\n canonical_uri = \'/\';\r\n }\r\n var canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data),\r\n credential_scope = date + \'/\' + region + \'/\' + service + \'/\' + \'aws4_request\',\r\n request_string = \'AWS4-HMAC-SHA256\' + \'\\n\' + amzdate + \'\\n\' + credential_scope + \'\\n\' + sha256(canonical_request),\r\n key = AWS.sign(\'AWS4\' + AWS.params.SecretAccessKey, date),\r\n key = AWS.sign(key, region),\r\n key = AWS.sign(key, service),\r\n key = AWS.sign(key, \'aws4_request\'),\r\n request = new HttpRequest(),\r\n url = \'https://\' + host + canonical_uri + \'?\' + params;\r\n\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'x-amz-date: \' + amzdate);\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Content-Encoding: amz-1.0\');\r\n request.addHeader(\'x-amz-content-sha256:\' + sha256(data));\r\n request.addHeader(\'Authorization: \' + \'AWS4-HMAC-SHA256 Credential=\' + AWS.params.AccessKeyId + \'/\' + credential_scope + \', \' + \'SignedHeaders=\' + signed_headers + \', \' + \'Signature=\' + hmac(\'sha256\', key, request_string));\r\n if (AWS.params.auth_type === \'role_base\' || AWS.params.auth_type === \'assume_role_metadata\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n request.addHeader(\'X-Amz-Security-Token: \' + token);\r\n }\r\n\r\n Zabbix.log(4, \'[ AWS S3 ] Sending request: \' + url);\r\n response = request.get(url);\r\n Zabbix.log(4, \'[ AWS S3 ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n try {\r\n response = JSON.parse(XML.toJson(response));\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from AWS CloudWatch API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n return response;\r\n },\r\n\r\n getBucketLocation: function () {\r\n var payload = {};\r\n payload[\'location\'] = \'\';\r\n\r\n result = AWS.request(\'location\', \'GET\', AWS.params.request_region, \'s3\', AWS.prepareParams(payload));\r\n\r\n if (typeof result !== \'object\'\r\n || result.hasOwnProperty(\'LocationConstraint\') === false\r\n ) {\r\n throw \'Cannot get buckets region location data from AWS S3 API. Check debug log for more information.\';\r\n }\r\n\r\n return result.LocationConstraint !== null ? result.LocationConstraint : \'us-east-1\';\r\n },\r\n\r\n getAlarms: function (region) {\r\n var payload = {\r\n \'Action\': \'DescribeAlarms\',\r\n \'Version\': \'2010-08-01\',\r\n \'MaxRecords\': 100\r\n },\r\n result = [];\r\n\r\n while (payload.NextToken !== \'\') {\r\n var alarms = AWS.getField(AWS.request(\'alarms\', \'GET\', region, \'monitoring\', AWS.prepareParams(payload)), \'DescribeAlarmsResponse.DescribeAlarmsResult\');\r\n payload.NextToken = alarms.NextToken || \'\';\r\n alarms_list = AWS.getField(alarms, \'MetricAlarms\');\r\n\r\n if (!Array.isArray(alarms_list))\r\n alarms_list = [alarms_list];\r\n alarms_list.forEach(function (alarm) {\r\n var dimensions = alarm.Dimensions;\r\n\r\n if (Array.isArray(alarm.Metrics)) {\r\n alarm.Metrics.forEach(function (metric) {\r\n if (typeof metric.MetricStat === \'object\' && metric.MetricStat !== null\r\n && typeof metric.MetricStat.Metric === \'object\' && metric.MetricStat.Metric !== null\r\n && Array.isArray(metric.MetricStat.Metric.Dimensions)) {\r\n dimensions = dimensions.concat(metric.MetricStat.Metric.Dimensions);\r\n }\r\n });\r\n }\r\n for (var i in dimensions) {\r\n if (dimensions[i].Name === \'BucketName\' && dimensions[i].Value === AWS.params.bucket_name) {\r\n result.push(alarm);\r\n break;\r\n }\r\n }\r\n });\r\n }\r\n\r\n return result;\r\n }\r\n};\r\n\r\ntry {\r\n AWS.setParams(JSON.parse(value));\r\n var region = AWS.getBucketLocation();\r\n return JSON.stringify(AWS.getAlarms(region));\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ AWS S3 ] ERROR: \' + error);\r\n\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Get alarms data.\r\nDescribeAlarms API method: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarms.html','0','30d','0','',NULL,'15s','','','','200','1','0','','','0','0','0','0','0','0','0','6da0ea7130e64a7fb8ae32ee02290cbf','0','2','0'),
('43714','21','','10531','Get resources','azure.get.resources','10m','0','0','0','4','','','','',NULL,NULL,'var Azure = {\r\n params: {},\r\n token: null,\r\n\r\n setParams: function (params) {\r\n [\'app_id\', \'password\', \'tenant_id\', \'subscription_id\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n\r\n Azure.params = params;\r\n },\r\n\r\n request: function (url, data) {\r\n if (typeof data === \'undefined\' || data === null) {\r\n data = \'\';\r\n }\r\n var response, request = new HttpRequest();\r\n if (typeof Azure.params.proxy !== \'undefined\' && Azure.params.proxy !== \'\') {\r\n request.setProxy(Azure.params.proxy);\r\n }\r\n if (Azure.token) {\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Authorization: Bearer \' + Azure.token);\r\n }\r\n\r\n Zabbix.log(4, \'[ Azure ] Sending request: \' + url);\r\n\r\n if (data !== \'\') {\r\n request.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n response = request.post(url, data);\r\n }\r\n else {\r\n response = request.get(url);\r\n }\r\n\r\n Zabbix.log(4, \'[ Azure ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200 || response === null) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n return JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from API.\';\r\n }\r\n },\r\n\r\n nextlink: function (data) {\r\n next_data = data;\r\n while (\'nextLink\' in next_data) {\r\n next_data = Azure.request(next_data.nextLink);\r\n next_data.value.forEach(function (value) {\r\n data.value.push(value);\r\n });\r\n }\r\n\r\n return data;\r\n }\r\n};\r\n\r\nvar result,\r\n data = {},\r\n types = [\r\n {"method": "Microsoft.Compute/virtualMachines", "version": "2022-03-01"},\r\n {"method": "Microsoft.DBforMySQL/flexibleServers", "version": "2021-05-01"},\r\n {"method": "Microsoft.DBforMySQL/servers", "version": "2017-12-01"},\r\n {"method": "Microsoft.DBforPostgreSQL/flexibleServers", "version": "2021-06-01"},\r\n {"method": "Microsoft.DBforPostgreSQL/servers", "version": "2017-12-01"},\r\n {"method": "Microsoft.Sql/servers", "version": "2022-05-01-preview"},\r\n {"method": "Microsoft.DocumentDB/databaseAccounts", "version": "2022-11-15-preview"},\r\n {"method": "Microsoft.Compute/virtualMachineScaleSets", "version": "2024-03-01"},\r\n {"method": "Microsoft.Sql/managedInstances", "version": "2024-05-01-preview"},\r\n {"method": "Microsoft.DataProtection/backupVaults", "version": "2025-01-01"},\r\n {"method": "Microsoft.RecoveryServices/vaults", "version": "2025-02-28-preview"}\r\n ];\r\n data[\'errors\'] = {},\r\n data[\'resources\'] = {};\r\n data.resources.value = [];\r\n\r\ntry {\r\n Azure.setParams(JSON.parse(value));\r\n\r\n try {\r\n result = Azure.request(\r\n \'https://login.microsoftonline.com/\' + encodeURIComponent(Azure.params.tenant_id) + \'/oauth2/token\',\r\n \'grant_type=client_credentials&resource=\' + encodeURIComponent(\'https://management.azure.com/\') + \'&client_id=\' + encodeURIComponent(Azure.params.app_id) + \'&client_secret=\' + encodeURIComponent(Azure.params.password)\r\n );\r\n\r\n if (\'access_token\' in result) {\r\n Azure.token = result[\'access_token\'];\r\n } else {\r\n throw \'Auth response does not contain access token.\';\r\n }\r\n }\r\n catch (error) {\r\n data.errors.auth = error.toString();\r\n }\r\n\r\n if (!(\'auth\' in data.errors)) {\r\n try {\r\n for (var i in types) {\r\n if (types[i].method === "Microsoft.Sql/servers") {\r\n mssql_servers = Azure.request(\'https://management.azure.com/subscriptions/\' + encodeURIComponent(Azure.params.subscription_id) + \'/providers/\' + types[i].method + \'?api-version=\' + types[i].version);\r\n\r\n if (\'nextLink\' in mssql_servers) {\r\n mssql_servers = Azure.nextlink(mssql_servers);\r\n }\r\n\r\n if (\'value\' in mssql_servers && mssql_servers.value.length > 0) {\r\n for (j in mssql_servers.value) {\r\n mssql_dbs = Azure.request(\'https://management.azure.com\' + mssql_servers.value[j].id + \'/databases?api-version=\' + types[i].version);\r\n\r\n if (\'nextLink\' in mssql_dbs) {\r\n mssql_dbs = Azure.nextlink(mssql_dbs);\r\n }\r\n\r\n mssql_dbs.value.forEach(function (value) {\r\n raw_data.value.push(value);\r\n });\r\n }\r\n }\r\n }\r\n else {\r\n raw_data = Azure.request(\'https://management.azure.com/subscriptions/\' + encodeURIComponent(Azure.params.subscription_id) + \'/providers/\' + types[i].method + \'?api-version=\' + types[i].version);\r\n\r\n if (\'nextLink\' in raw_data) {\r\n raw_data = Azure.nextlink(raw_data);\r\n }\r\n }\r\n\r\n raw_data.value.forEach(function (value) {\r\n value.resourceGroup = value.id.split("/")[4];\r\n data.resources.value.push(value);\r\n });\r\n }\r\n }\r\n catch (error) {\r\n data.errors.resources = error.toString();\r\n }\r\n }\r\n}\r\ncatch (error) {\r\n data.errors.params = error.toString();\r\n}\r\n\r\nif (Object.keys(data.errors).length !== 0) {\r\n errors = \'Failed to receive data:\';\r\n for (var error in data.errors) {\r\n errors += \'\\n\' + error + \' : \' + data.errors[error];\r\n }\r\n data.errors = errors;\r\n}\r\nelse {\r\n data.errors = \'\';\r\n}\r\n\r\nreturn JSON.stringify(data);','','0','','','','','0',NULL,'The result of API requests is expressed in the JSON.','0','30d','0','',NULL,'{$AZURE.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','fb6abf3631b240b08357ea9ce9ba89a4','0','2','0'),
('43715','21','','10532','Get data','azure.vm.data.get','1m','0','0','0','4','','','','',NULL,NULL,'var Azure = {\r\n params: {},\r\n token: null,\r\n\r\n setParams: function (params) {\r\n [\'app_id\', \'password\', \'tenant_id\', \'subscription_id\', \'resource_id\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n\r\n Azure.params = params;\r\n },\r\n\r\n login: function () {\r\n var response, login = new HttpRequest();\r\n\r\n if (typeof Azure.params.proxy !== \'undefined\' && Azure.params.proxy !== \'\') {\r\n login.setProxy(Azure.params.proxy);\r\n }\r\n\r\n login.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n response = login.post(\r\n \'https://login.microsoftonline.com/\' + encodeURIComponent(Azure.params.tenant_id) + \'/oauth2/token\',\r\n \'grant_type=client_credentials&resource=\' + encodeURIComponent(\'https://management.azure.com/\') + \'&client_id=\' + encodeURIComponent(Azure.params.app_id) + \'&client_secret=\' + encodeURIComponent(Azure.params.password)\r\n );\r\n\r\n if (login.getStatus() !== 200) {\r\n throw \'Login failed with status code \' + login.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse login session response.\';\r\n }\r\n\r\n if (!response.hasOwnProperty(\'access_token\')) {\r\n throw \'Authentication response does not contain access token.\';\r\n }\r\n\r\n Azure.token = response[\'access_token\'];\r\n },\r\n\r\n request: function (url) {\r\n var response, request = new HttpRequest();\r\n\r\n if (typeof Azure.params.proxy !== \'undefined\' && Azure.params.proxy !== \'\') {\r\n request.setProxy(Azure.params.proxy);\r\n }\r\n\r\n if (!Azure.token) {\r\n throw \'Request does not contain access token.\';\r\n }\r\n\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Authorization: Bearer \' + Azure.token);\r\n Zabbix.log(4, \'[ AzureVM ] request url: \' + url);\r\n\r\n response = request.get(url);\r\n\r\n if (request.getStatus() !== 200) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n return JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from API.\';\r\n }\r\n },\r\n\r\n getField: function (data, path) {\r\n var steps = path.split(\'.\');\r\n\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n data = data[step];\r\n }\r\n\r\n return data;\r\n },\r\n\r\n getMetricsData: function () {\r\n var data = {},\r\n metric_endpoints = {\r\n \'main_and_premium_metrics\': \'/providers/Microsoft.Insights/metrics?metricnames=\' + encodeURIComponent(\'Percentage CPU,CPU Credits Remaining,CPU Credits Consumed,VmAvailabilityMetric,Available Memory Bytes,Network In Total,Network Out Total,Inbound Flows,Outbound Flows,Inbound Flows Maximum Creation Rate,Outbound Flows Maximum Creation Rate,Premium Data Disk Cache Read Hit,Premium Data Disk Cache Read Miss,Premium OS Disk Cache Read Hit,Premium OS Disk Cache Read Miss,VM Cached Bandwidth Consumed Percentage,VM Cached IOPS Consumed Percentage,VM Uncached Bandwidth Consumed Percentage,VM Uncached IOPS Consumed Percentage\') + \'&api-version=2024-02-01×pan=PT1M\',\r\n \'disks_metrics\': \'/providers/Microsoft.Insights/metrics?metricnames=\' + encodeURIComponent(\'Disk Read Bytes,Disk Write Bytes,Disk Read Operations/Sec,Disk Write Operations/Sec,Data Disk Latency,Data Disk Read Bytes/sec,Data Disk Write Bytes/sec,Data Disk Read Operations/Sec,Data Disk Write Operations/Sec,Data Disk Queue Depth,Data Disk Bandwidth Consumed Percentage,Data Disk IOPS Consumed Percentage,Data Disk Target Bandwidth,Data Disk Target IOPS,Data Disk Max Burst Bandwidth,Data Disk Max Burst IOPS,Data Disk Used Burst BPS Credits Percentage,Data Disk Used Burst IO Credits Percentage\') + \'&api-version=2024-02-01×pan=PT1M\',\r\n \'os_disk_metrics\': \'/providers/Microsoft.Insights/metrics?metricnames=\' + encodeURIComponent(\'OS Disk Latency,OS Disk Read Bytes/sec,OS Disk Write Bytes/sec,OS Disk Read Operations/Sec,OS Disk Write Operations/Sec,OS Disk Queue Depth,OS Disk Bandwidth Consumed Percentage,OS Disk IOPS Consumed Percentage,OS Disk Target Bandwidth,OS Disk Target IOPS,OS Disk Max Burst Bandwidth,OS Disk Max Burst IOPS,OS Disk Used Burst BPS Credits Percentage,OS Disk Used Burst IO Credits Percentage,Temp Disk Latency,Temp Disk Read Bytes/sec,Temp Disk Write Bytes/sec,Temp Disk Read Operations/Sec,Temp Disk Write Operations/Sec,Temp Disk Queue Depth\') + \'&api-version=2024-02-01×pan=PT1M\'\r\n };\r\n data.metrics = {};\r\n\r\n Object.keys(metric_endpoints).forEach(function (field) {\r\n metrics = Azure.getField(Azure.request(\'https://management.azure.com\' + Azure.params.resource_id + metric_endpoints[field]), \'value\');\r\n for (k in metrics) {\r\n key = Azure.getField(metrics[k], \'name.value\').replace(/(\\s|\\/)+/g, \'\');\r\n if (metrics[k].timeseries.length === 0) {\r\n metrics[k].timeseries.push({ \'data\': [\'nodata\'] })\r\n }\r\n data.metrics[key] = Azure.getField(metrics[k], \'timeseries.0.data.0\');\r\n }\r\n });\r\n\r\n data.health = Azure.getField(Azure.request(\'https://management.azure.com\' + Azure.params.resource_id + \'/providers/Microsoft.ResourceHealth/availabilityStatuses?api-version=2020-05-01\'), \'value.0.properties\');\r\n\r\n return data\r\n }\r\n};\r\n\r\ntry {\r\n Azure.setParams(JSON.parse(value));\r\n Azure.login();\r\n return JSON.stringify(Azure.getMetricsData());\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ AzureVM ] ERROR: \' + error);\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'The result of API requests is expressed in the JSON.','0','30d','0','',NULL,'{$AZURE.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','cff54514d795495da8bc1152e02631aa','0','2','0'),
('43770','20','get[1.3.6.1.2.1.25.1.1.0]','10207','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3ea3106277c64428950b4a5b6c4aedd0','0','2','0'),
('43771','20','get[1.3.6.1.2.1.25.1.1.0]','10254','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5bf4c90019ae41688336f83bcbb481bb','0','2','0'),
('43772','20','get[1.3.6.1.2.1.25.1.1.0]','10208','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a988240abba8442da83fdbcb789d0138','0','2','0'),
('43773','20','get[1.3.6.1.2.1.25.1.1.0]','10210','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','78b57ca2787948cb8b92604f2a0fdccc','0','2','0'),
('43774','20','get[1.3.6.1.2.1.25.1.1.0]','10211','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','09265047c03b4c7397d0b526d47e5a8e','0','2','0'),
('43775','20','get[1.3.6.1.2.1.25.1.1.0]','10390','Uptime (hardware)','system.hw.uptime','1m','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','64e59aaf9a4c4dd28e591c96075c183b','0','2','0'),
('43776','20','get[1.3.6.1.2.1.25.1.1.0]','10391','Uptime (hardware)','system.hw.uptime','1m','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','24df0110b0d541118d6609c3f3922fe5','0','2','0'),
('43777','20','get[1.3.6.1.2.1.25.1.1.0]','10392','Uptime (hardware)','system.hw.uptime','1m','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6fd05b29760a4b10bf9b1125e8747cd1','0','2','0'),
('43778','20','get[1.3.6.1.2.1.25.1.1.0]','10393','Uptime (hardware)','system.hw.uptime','1m','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b81c8fccadb94cd4bd7c798906d881ef','0','2','0'),
('43779','20','get[1.3.6.1.2.1.25.1.1.0]','10394','Uptime (hardware)','system.hw.uptime','1m','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f00b81685e5d41f49561b62d710e247f','0','2','0'),
('43780','20','get[1.3.6.1.2.1.25.1.1.0]','10220','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','732ccfd809b44d7fa923c54e6577851d','0','2','0'),
('43781','20','get[1.3.6.1.2.1.25.1.1.0]','10218','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f2173cd0262d4a60b5e134e00fed78e6','0','2','0'),
('43782','20','get[1.3.6.1.2.1.25.1.1.0]','10253','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','927d85dbb82f4b9a9edf4fb6194e7427','0','2','0'),
('43783','20','get[1.3.6.1.2.1.25.1.1.0]','10221','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5297253edb09463e8fdb6f1905e4f494','0','2','0'),
('43784','20','get[1.3.6.1.2.1.25.1.1.0]','10222','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','68631d04f4a94b83901bad116fe68198','0','2','0'),
('43785','20','get[1.3.6.1.2.1.25.1.1.0]','10223','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e4706d07b0824ccb8f4ee7ccec10a388','0','2','0'),
('43786','20','get[1.3.6.1.2.1.25.1.1.0]','10224','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9e9db5d7fe5f4f4e8fc6581813699c1e','0','2','0'),
('43787','20','get[1.3.6.1.2.1.25.1.1.0]','10226','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','76f954f8d7fd41109919ccbbb6151164','0','2','0'),
('43788','20','get[1.3.6.1.2.1.25.1.1.0]','10227','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b476c099f8f64aa89cd5f61fc8b47dfa','0','2','0'),
('43789','20','get[1.3.6.1.2.1.25.1.1.0]','10250','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a0659dadbef14fb1ac9be45d47388aa2','0','2','0'),
('43790','20','get[1.3.6.1.2.1.25.1.1.0]','10229','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','202c91a61d644285a0d74d88ae1b1a79','0','2','0'),
('43791','20','get[1.3.6.1.2.1.25.1.1.0]','10230','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f0fece305afd4ef9b7e9e6e9dd297e21','0','2','0'),
('43792','20','get[1.3.6.1.2.1.25.1.1.0]','10231','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','833dd7b3b4e94dc89b4e7098cec3fce2','0','2','0'),
('43793','20','get[1.3.6.1.2.1.25.1.1.0]','10251','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f867fb976e0b49a895129865e95096c2','0','2','0'),
('43794','20','get[1.3.6.1.2.1.25.1.1.0]','10449','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','da2967c30d774681af4b7007bfbd01c5','0','2','0'),
('43795','20','get[1.3.6.1.2.1.25.1.1.0]','10450','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','87ed039a5c7d4d5f8e6459ad8f5bfa0f','0','2','0'),
('43796','20','get[1.3.6.1.2.1.25.1.1.0]','10451','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','466b42bafcaf4a9a891a1d554cfd688c','0','2','0'),
('43797','20','get[1.3.6.1.2.1.25.1.1.0]','10452','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6625f426dcc949559a35ddfb3aed43d3','0','2','0'),
('43798','20','get[1.3.6.1.2.1.25.1.1.0]','10453','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','094dba661554421087ef6454e6e899f6','0','2','0'),
('43799','20','get[1.3.6.1.2.1.25.1.1.0]','10454','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7f1bc41c42fc410881b45972129ccf15','0','2','0'),
('43800','20','get[1.3.6.1.2.1.25.1.1.0]','10455','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e8aeeb3ddfe6405ba5c02cbcf50681f4','0','2','0'),
('43801','20','get[1.3.6.1.2.1.25.1.1.0]','10456','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6ba9b468dd2143a4a816c4bec1cee079','0','2','0'),
('43802','20','get[1.3.6.1.2.1.25.1.1.0]','10457','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','af308a3e3ff14620a683f09d935887a7','0','2','0'),
('43803','20','get[1.3.6.1.2.1.25.1.1.0]','10458','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c86226f9db8e4eda9216c0e5f96bf826','0','2','0'),
('43804','20','get[1.3.6.1.2.1.25.1.1.0]','10459','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7b849a56812d4ceda43c4c3c96c09911','0','2','0'),
('43805','20','get[1.3.6.1.2.1.25.1.1.0]','10460','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b4d7b0ae4b874f41afc1d2bb18444f59','0','2','0'),
('43806','20','get[1.3.6.1.2.1.25.1.1.0]','10461','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cb05d9fcd5f04045b38b2653aa3f054f','0','2','0'),
('43807','20','get[1.3.6.1.2.1.25.1.1.0]','10462','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d2825ec79526468bae315bcf4271c3bf','0','2','0'),
('43808','20','get[1.3.6.1.2.1.25.1.1.0]','10463','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','730caedb1aba4e2bb914a9ac5e45bee0','0','2','0'),
('43809','20','get[1.3.6.1.2.1.25.1.1.0]','10464','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','41c7402ad2354e5e8e5395b3e86d291c','0','2','0'),
('43810','20','get[1.3.6.1.2.1.25.1.1.0]','10465','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d226673194c84ee7968632b06060d905','0','2','0'),
('43811','20','get[1.3.6.1.2.1.25.1.1.0]','10466','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','76f9415c139b4c78bb5e77e094ced5e4','0','2','0'),
('43812','20','get[1.3.6.1.2.1.25.1.1.0]','10467','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','43da9de2e9b949ea9844ac7e8991aa51','0','2','0'),
('43813','20','get[1.3.6.1.2.1.25.1.1.0]','10468','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6e5f3a092d7f44f98f9f72ec7b65a412','0','2','0'),
('43814','20','get[1.3.6.1.2.1.25.1.1.0]','10469','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','59bd59afea7c430ab9b87036d6f68d80','0','2','0'),
('43815','20','get[1.3.6.1.2.1.25.1.1.0]','10470','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c36c9dba589944d4bc4253019663831e','0','2','0'),
('43816','20','get[1.3.6.1.2.1.25.1.1.0]','10471','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9a3c0d8062f9470faeb350b3f025dc93','0','2','0'),
('43817','20','get[1.3.6.1.2.1.25.1.1.0]','10472','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bccedf8a6d434ee19ef03ae4b15db6e6','0','2','0'),
('43818','20','get[1.3.6.1.2.1.25.1.1.0]','10473','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7052c7bbeffe4dbbbbc08f70c8d2679f','0','2','0'),
('43819','20','get[1.3.6.1.2.1.25.1.1.0]','10474','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','093f8cdde4514b3cb81233a59eec8277','0','2','0'),
('43820','20','get[1.3.6.1.2.1.25.1.1.0]','10475','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2521a17fcdb048c3ac5b3e425eb48ad6','0','2','0'),
('43821','20','get[1.3.6.1.2.1.25.1.1.0]','10476','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b2fa99d8602342358690da734fc553a5','0','2','0'),
('43822','20','get[1.3.6.1.2.1.25.1.1.0]','10477','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7b93e987a3e442e39e2f822a0c271678','0','2','0'),
('43823','20','get[1.3.6.1.2.1.25.1.1.0]','10478','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','90e82de3b7b043269947a13acaf0eae3','0','2','0'),
('43824','20','get[1.3.6.1.2.1.25.1.1.0]','10479','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','96f11f9c23434a68b82d075f85af3c31','0','2','0'),
('43825','20','get[1.3.6.1.2.1.25.1.1.0]','10480','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1634bc47137b4de9942b33ca99eb4541','0','2','0'),
('43826','20','get[1.3.6.1.2.1.25.1.1.0]','10481','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e589fb99827e4e8197f6ecb8872b4f10','0','2','0'),
('43827','20','get[1.3.6.1.2.1.25.1.1.0]','10482','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','218903c6b9c04999ab58583dfc22d42d','0','2','0'),
('43828','20','get[1.3.6.1.2.1.25.1.1.0]','10483','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','424081b2ac3f453f84c7c0cf0d6270e5','0','2','0'),
('43829','20','get[1.3.6.1.2.1.25.1.1.0]','10484','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','31874dc23f0046f98c978300e74ced72','0','2','0'),
('43830','20','get[1.3.6.1.2.1.25.1.1.0]','10485','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d88eae8b609e42d68219e2b6d68422d1','0','2','0'),
('43831','20','get[1.3.6.1.2.1.25.1.1.0]','10486','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c8f1e09b30a84047ac6a98bcc70b15a7','0','2','0'),
('43832','20','get[1.3.6.1.2.1.25.1.1.0]','10487','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','96372468281d4b0e866a3aa4db1839be','0','2','0'),
('43833','20','get[1.3.6.1.2.1.25.1.1.0]','10488','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','68f23663d1da4e12b259bc6f2689de9b','0','2','0'),
('43834','20','get[1.3.6.1.2.1.25.1.1.0]','10489','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','806003915aa24c368a822a424f123d45','0','2','0'),
('43835','20','get[1.3.6.1.2.1.25.1.1.0]','10490','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4cb64b20e3c84697b744db08b605c5b0','0','2','0'),
('43836','20','get[1.3.6.1.2.1.25.1.1.0]','10491','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','012230315f3548d9948d1ad7ddc8d005','0','2','0'),
('43837','20','get[1.3.6.1.2.1.25.1.1.0]','10492','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','074b83202e714d7d9bf63bf331f4f284','0','2','0'),
('43838','20','get[1.3.6.1.2.1.25.1.1.0]','10493','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','437fe5b12b2d478fb69c1047b6421d96','0','2','0'),
('43839','20','get[1.3.6.1.2.1.25.1.1.0]','10494','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f5f8ed93998a4b5799d1f6b2e1984006','0','2','0'),
('43840','20','get[1.3.6.1.2.1.25.1.1.0]','10495','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b2fb7a55ee1b4030b4f621e73a730749','0','2','0'),
('43841','20','get[1.3.6.1.2.1.25.1.1.0]','10496','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','971d14b46bad442499d7aea95c067dc7','0','2','0'),
('43842','20','get[1.3.6.1.2.1.25.1.1.0]','10497','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','42eee310a68844deb422d5ff3a715efa','0','2','0'),
('43843','20','get[1.3.6.1.2.1.25.1.1.0]','10498','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','691b2eadbe314570841aafbe2ad2afb1','0','2','0'),
('43844','20','get[1.3.6.1.2.1.25.1.1.0]','10499','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','32d6b1147607490287da049b08140f0b','0','2','0'),
('43845','20','get[1.3.6.1.2.1.25.1.1.0]','10500','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c30a010e7f134bc88fc47708d02a0a31','0','2','0'),
('43846','20','get[1.3.6.1.2.1.25.1.1.0]','10501','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f0ff722acc544222bac0a51456515570','0','2','0'),
('43847','20','get[1.3.6.1.2.1.25.1.1.0]','10502','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','850f16c89c1a44c585852784dc32bb1b','0','2','0'),
('43848','20','get[1.3.6.1.2.1.25.1.1.0]','10233','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','94f4af679dba4d3e9047ebcf8c1bc419','0','2','0'),
('43849','20','get[1.3.6.1.2.1.25.1.1.0]','10371','Status: Uptime (hardware)','status.hw.uptime','1m','31d','365d','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'The amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','712a9b442bec4e89acf4ee5d5bf26fb8','0','2','0'),
('43850','20','get[1.3.6.1.2.1.25.1.1.0]','10372','Status: Uptime (hardware)','status.hw.uptime','1m','31d','365d','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'The amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2c9f864ac33b4c2d992459c6519d045a','0','2','0'),
('43851','20','get[1.3.6.1.2.1.25.1.1.0]','10373','Status: Uptime (hardware)','status.hw.uptime','1m','31d','365d','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'The amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','76a660b88bb74e90971bdaec703d3c17','0','2','0'),
('43852','20','get[1.3.6.1.2.1.25.1.1.0]','10374','Status: Uptime (hardware)','status.hw.uptime','1m','31d','365d','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'The amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d1e50f16fab54a8e97372b52cebae18d','0','2','0'),
('43853','20','get[1.3.6.1.2.1.25.1.1.0]','10375','Status: Uptime (hardware)','status.hw.uptime','1m','31d','365d','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'The amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d61bd2d5717740518867bfbf734914c9','0','2','0'),
('43854','20','get[1.3.6.1.2.1.25.1.1.0]','10376','Status: Uptime (hardware)','status.hw.uptime','1m','31d','365d','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'The amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5e2aebe0ce2044588636be62cde6b6a3','0','2','0'),
('43855','20','get[1.3.6.1.2.1.25.1.1.0]','10377','Status: Uptime (hardware)','status.hw.uptime','1m','31d','365d','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'The amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6903297e21e14aa8b5eed4eb0f7e1e01','0','2','0'),
('43856','20','get[1.3.6.1.2.1.25.1.1.0]','10234','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d0e66c64c0b2449a9c5ffbbdaf176963','0','2','0'),
('43857','20','get[1.3.6.1.2.1.25.1.1.0]','10235','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','94671639676f476f8b7c37a884d32ed0','0','2','0'),
('43858','20','get[1.3.6.1.2.1.25.1.1.0]','10236','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','964e73aa4e534b50bd1d93e137ca41f1','0','2','0'),
('43859','20','get[1.3.6.1.2.1.25.1.1.0]','10237','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0d47c914219e4da0a7d67631d8171244','0','2','0'),
('43860','20','get[1.3.6.1.2.1.25.1.1.0]','10420','Uptime (hardware)','zyxel.aam1212.hw.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized.\r\nNote that this is different from sysUpTime in the SNMPv2-MIB\r\n[RFC1907] because sysUpTime is the uptime of the\r\nnetwork management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5197238bef51468c80e6a4180babee5b','0','2','0'),
('43861','20','get[1.3.6.1.2.1.25.1.1.0]','10421','Uptime (hardware)','zyxel.3500_8pd.hw.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized.\r\nNote that this is different from sysUpTime in the SNMPv2-MIB\r\n[RFC1907] because sysUpTime is the uptime of the\r\nnetwork management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ef45d91672ea43c3aa24cbc21f37d391','0','2','0'),
('43862','20','get[1.3.6.1.2.1.25.1.1.0]','10422','Uptime (hardware)','zyxel.4012f.hw.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized.\r\nNote that this is different from sysUpTime in the SNMPv2-MIB\r\n[RFC1907] because sysUpTime is the uptime of the\r\nnetwork management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1f979fc1f31c4766949cfc343d3c231a','0','2','0'),
('43863','20','get[1.3.6.1.2.1.25.1.1.0]','10423','Uptime (hardware)','zyxel.ies500x.hw.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized.\r\nNote that this is different from sysUpTime in the SNMPv2-MIB\r\n[RFC1907] because sysUpTime is the uptime of the\r\nnetwork management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5fa56229a8854d62bb6c516da873d63b','0','2','0'),
('43864','20','get[1.3.6.1.2.1.25.1.1.0]','10424','Uptime (hardware)','zyxel.ies6000.hw.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized.\r\nNote that this is different from sysUpTime in the SNMPv2-MIB\r\n[RFC1907] because sysUpTime is the uptime of the\r\nnetwork management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','006a65489cfc4231acad12cdb501a55c','0','2','0'),
('43865','20','get[1.3.6.1.2.1.25.1.1.0]','10425','Uptime (hardware)','zyxel.ies1248.hw.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized.\r\nNote that this is different from sysUpTime in the SNMPv2-MIB\r\n[RFC1907] because sysUpTime is the uptime of the\r\nnetwork management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4b55d1aaee3b441bab6edaaf738065e4','0','2','0'),
('43866','20','get[1.3.6.1.2.1.25.1.1.0]','10426','Uptime (hardware)','zyxel.3528.hw.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized.\r\nNote that this is different from sysUpTime in the SNMPv2-MIB\r\n[RFC1907] because sysUpTime is the uptime of the\r\nnetwork management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9293989c2bd14bc4a12cdd40a9c7f229','0','2','0'),
('43867','20','get[1.3.6.1.2.1.25.1.1.0]','10427','Uptime (hardware)','zyxel.3500_10.hw.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized.\r\nNote that this is different from sysUpTime in the SNMPv2-MIB\r\n[RFC1907] because sysUpTime is the uptime of the\r\nnetwork management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d0d33209ea1249e588f2e81807ae6403','0','2','0'),
('43868','20','get[1.3.6.1.2.1.25.1.1.0]','10428','Uptime (hardware)','zyxel.3500_24.hw.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized.\r\nNote that this is different from sysUpTime in the SNMPv2-MIB\r\n[RFC1907] because sysUpTime is the uptime of the\r\nnetwork management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fb480642cad3440a8637d871add07b8f','0','2','0'),
('43869','20','get[1.3.6.1.2.1.25.1.1.0]','10429','Uptime (hardware)','zyxel.3712.hw.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized.\r\nNote that this is different from sysUpTime in the SNMPv2-MIB\r\n[RFC1907] because sysUpTime is the uptime of the\r\nnetwork management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','801ba0a2d20f440d822eb042146b8d16','0','2','0'),
('43870','20','get[1.3.6.1.2.1.25.1.1.0]','10430','Uptime (hardware)','zyxel.3712f.hw.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized.\r\nNote that this is different from sysUpTime in the SNMPv2-MIB\r\n[RFC1907] because sysUpTime is the uptime of the\r\nnetwork management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','29bc66a7a2c949549fc2e4c6fa841ab0','0','2','0'),
('43871','20','get[1.3.6.1.2.1.25.1.1.0]','10431','Uptime (hardware)','zyxel.3500_24s.hw.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized.\r\nNote that this is different from sysUpTime in the SNMPv2-MIB\r\n[RFC1907] because sysUpTime is the uptime of the\r\nnetwork management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','feff31efc5b04b14bf19ec256a6660fb','0','2','0'),
('43872','20','get[1.3.6.1.2.1.25.1.1.0]','10432','Uptime (hardware)','zyxel.3520_28.hw.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized.\r\nNote that this is different from sysUpTime in the SNMPv2-MIB\r\n[RFC1907] because sysUpTime is the uptime of the\r\nnetwork management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8f050b29d1eb43e4a150383c9edd2467','0','2','0'),
('43873','20','get[1.3.6.1.2.1.25.1.1.0]','10433','Uptime (hardware)','zyxel.4728f.hw.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized.\r\nNote that this is different from sysUpTime in the SNMPv2-MIB\r\n[RFC1907] because sysUpTime is the uptime of the\r\nnetwork management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','17bdc70663744ede94d7b94602eb881c','0','2','0'),
('43874','20','get[1.3.6.1.2.1.25.1.1.0]','10248','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d1a9af129dbb4fed8e67efcca383aeae','0','2','0'),
('43875','20','get[1.3.6.1.2.1.25.1.1.0]','10249','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','422d9e4a985347959d5ef07278a6a12c','0','2','0'),
('43876','20','get[1.3.6.1.2.1.25.1.1.0]','10400','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b73fb48b4da84a53b7a4b7e81d6037aa','0','2','0'),
('43877','20','get[1.3.6.1.2.1.25.1.1.0]','10401','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4dbad4f0de7f47fd996fd4b8de048d46','0','2','0'),
('43878','20','get[1.3.6.1.2.1.25.1.1.0]','10402','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ed6ad4e7036548c09b9a61d875aca9e1','0','2','0'),
('43879','20','get[1.3.6.1.2.1.25.1.1.0]','10403','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','60bef30ff568425eb5e4c5e6dc861e79','0','2','0'),
('43880','20','get[1.3.6.1.2.1.25.1.1.0]','10404','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4def354a520e42d78d67b2e8b1cd8eb4','0','2','0'),
('43881','20','get[1.3.6.1.2.1.25.1.1.0]','10412','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9d1f4a038ee447639a07f3549ad68840','0','2','0'),
('43882','20','get[1.3.6.1.2.1.25.1.1.0]','10406','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4e8b6d6a5aa24159b048d1cf28e9418a','0','2','0'),
('43883','20','get[1.3.6.1.2.1.25.1.1.0]','10395','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b3d5eea37f934efdac4885bcadc73b9b','0','2','0'),
('43884','20','get[1.3.6.1.2.1.25.1.1.0]','10407','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e5a92d45430b4bd6bdef42870141d141','0','2','0'),
('43885','20','get[1.3.6.1.2.1.25.1.1.0]','10408','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b3021bc8a0324d4d9683f676131bf136','0','2','0'),
('43886','20','get[1.3.6.1.2.1.25.1.1.0]','10409','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c7522be948bd4f97a47d59cf1e281c56','0','2','0'),
('43887','20','get[1.3.6.1.2.1.25.1.1.0]','10385','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f54aca2b926e4d4d980f980acb0aefac','0','2','0'),
('43888','20','get[1.3.6.1.2.1.25.1.1.0]','10378','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','76483f37faf8485b922640a6ef8bb672','0','2','0'),
('43889','20','get[1.3.6.1.2.1.25.1.1.0]','10434','Uptime (hardware)','cisco.ucs.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized.\r\nNote that this is different from sysUpTime in the SNMPv2-MIB\r\n[RFC1907] because sysUpTime is the uptime of the\r\nnetwork management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5af56ed99d09489aafc2d08d4bd4903a','0','2','0'),
('43890','20','get[1.3.6.1.2.1.25.1.1.0]','10304','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a6d61b21f9f044a6912759e02787cb3f','0','2','0'),
('43896','20','get[1.3.6.1.2.1.25.1.1.0]','10443','Uptime (hardware)','hp.server.hw.uptime[hrSystemUptime]','1m','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','22f0b65d03d44ae0be7133eb19ecc920','0','2','0'),
('43897','20','get[1.3.6.1.2.1.25.1.1.0]','10444','Uptime (hardware)','hp.server.hw.uptime[hrSystemUptime]','1m','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5cd1e01b10f3482e9ec5907bd2e55c26','0','2','0'),
('43898','20','get[1.3.6.1.2.1.25.1.1.0]','10445','Uptime (hardware)','hp.server.hw.uptime[hrSystemUptime]','1m','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8026a919077f4373adf774a18beb95eb','0','2','0'),
('43899','20','get[1.3.6.1.2.1.25.1.1.0]','10446','Uptime (hardware)','hp.server.hw.uptime[hrSystemUptime]','1m','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','437a251079a44869ba9b11b2184d85e7','0','2','0'),
('43900','20','get[1.3.6.1.2.1.25.1.1.0]','10256','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','02e21fa19e814d529ae24f89e3bbf947','0','2','0'),
('43901','21','','10534','Get data','hpe.synergy.get.data','1m','0','0','0','4','','','','',NULL,NULL,'var Synergy = {\r\n params: {},\r\n session_id: null,\r\n api_version: null,\r\n\r\n setParams: function (params) {\r\n [\'username\', \'password\', \'base_url\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n\r\n Synergy.params = params;\r\n if (typeof Synergy.params.base_url === \'string\' && !Synergy.params.base_url.endsWith(\'/\')) {\r\n Synergy.params.base_url += \'/\';\r\n }\r\n },\r\n\r\n checkVersion: function () {\r\n if (Synergy.api_version !== null) {\r\n return;\r\n }\r\n\r\n var response, request = new HttpRequest();\r\n request.addHeader(\'Content-Type: application/json\');\r\n\r\n response = request.post(Synergy.params.base_url + \'rest/version\');\r\n\r\n if (request.getStatus() !== 200) {\r\n throw \'Get version request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n if (response !== null) {\r\n try {\r\n version_data = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse get version response received from device API.\';\r\n }\r\n }\r\n else {\r\n throw \'No data received by get version request.\';\r\n }\r\n\r\n if (\'currentVersion\' in version_data && \'minimumVersion\' in version_data) {\r\n if (version_data[\'minimumVersion\'] <= 1200 && version_data[\'currentVersion\'] >= 1200) {\r\n Synergy.api_version = 1200;\r\n } else {\r\n throw \'API version is not supported.\';\r\n }\r\n } else {\r\n throw \'Get version response does not contain version.\';\r\n }\r\n },\r\n\r\n login: function () {\r\n if (Synergy.session_id !== null || Synergy.api_version === null) {\r\n return;\r\n }\r\n\r\n var response, request = new HttpRequest();\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'X-API-Version: \' + Synergy.api_version);\r\n\r\n response = request.post(Synergy.params.base_url + \'rest/login-sessions\', JSON.stringify({\r\n \'userName\': Synergy.params.username,\r\n \'password\': Synergy.params.password\r\n }));\r\n\r\n if (request.getStatus() !== 200) {\r\n throw \'Auth request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n if (response !== null) {\r\n try {\r\n auth_data = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse auth response received from device API.\';\r\n }\r\n }\r\n else {\r\n throw \'No data received by auth request.\';\r\n }\r\n\r\n if (\'sessionID\' in auth_data) {\r\n Synergy.session_id = auth_data[\'sessionID\'];\r\n } else {\r\n throw \'Auth response does not contain session ID.\';\r\n }\r\n },\r\n\r\n logout: function () {\r\n if (Synergy.session_id !== null && Synergy.api_version !== null) {\r\n var response, request = new HttpRequest();\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'X-API-Version: \' + Synergy.api_version);\r\n response = request.delete(Synergy.params.base_url + \'rest/login-sessions\');\r\n }\r\n },\r\n\r\n requestData: function (method) {\r\n if (Synergy.session_id === null || Synergy.api_version === null) {\r\n return;\r\n }\r\n\r\n request = new HttpRequest();\r\n request.addHeader(\'Auth: \' + Synergy.session_id);\r\n request.addHeader(\'X-API-Version: \' + Synergy.api_version);\r\n\r\n raw_data = request.get(Synergy.params.base_url + \'rest/\' + method);\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + raw_data;\r\n }\r\n\r\n if (raw_data !== null) {\r\n try {\r\n return JSON.parse(raw_data);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from device API.\';\r\n }\r\n }\r\n else {\r\n throw \'No data received by \' + method + \' request.\';\r\n }\r\n }\r\n};\r\n\r\nvar methods = [\'datacenters\', \'enclosures\', \'ethernet-networks\', \'fabrics\', \'fc-networks\', \'hypervisor-managers\', \'interconnects\', \'logical-enclosures\', \'racks\', \'server-hardware\', \'storage-pools\', \'storage-systems\', \'storage-volumes\', \'uplink-sets\'],\r\n data = {};\r\n\r\ndata[\'errors\'] = {};\r\n\r\ntry {\r\n Synergy.setParams(JSON.parse(value));\r\n\r\n try {\r\n Synergy.checkVersion();\r\n }\r\n catch (error) {\r\n data.errors.version = error.toString();\r\n }\r\n\r\n try {\r\n Synergy.login();\r\n }\r\n catch (error) {\r\n data.errors.auth = error.toString();\r\n }\r\n\r\n if (!(\'auth\' in data.errors) && !(\'version\' in data.errors)) {\r\n for (var i in methods) {\r\n try {\r\n if (methods[i] === \'enclosures\') {\r\n var bays = [\'applianceBays\', \'crossBars\', \'deviceBays\', \'fanBays\', \'partitions\', \'powerSupplyBays\', \'managerBays\'];\r\n\r\n enclosures = Synergy.requestData(methods[i]);\r\n\r\n enclosures.members.forEach(function (enclosure) {\r\n enclosure_name = enclosure.name;\r\n\r\n for (var j in bays) {\r\n bay = enclosure[bays[j]];\r\n\r\n bay.forEach(function (b) {\r\n b.enclosureName = enclosure_name;\r\n enclosures.members[bays[j[b]]] = b;\r\n });\r\n }\r\n });\r\n\r\n data[methods[i]] = enclosures;\r\n }\r\n else {\r\n data[methods[i]] = Synergy.requestData(methods[i]);\r\n }\r\n }\r\n catch (error) {\r\n data.errors[methods[i]] = error.toString();\r\n }\r\n }\r\n }\r\n}\r\ncatch (error) {\r\n data.errors.params = error.toString();\r\n}\r\n\r\ntry {\r\n Synergy.logout();\r\n}\r\ncatch (error) {\r\n}\r\n\r\nif (Object.keys(data.errors).length !== 0) {\r\n errors = \'Failed to receive data:\';\r\n for (var error in data.errors) {\r\n errors += \'\\n\' + error + \' : \' + data.errors[error];\r\n }\r\n data.errors = errors;\r\n}\r\nelse {\r\n data.errors = \'\';\r\n}\r\n\r\nreturn JSON.stringify(data);','','0','','','','','0',NULL,'The JSON with the result from requests to API.','0','30d','0','',NULL,'{$HPE.SYNERGY.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','2f9816e8a60149f4aafdf7ffb0632224','0','2','0'),
('43902','3','','10534','Service ping','net.tcp.service["{$HPE.SYNERGY.API.SCHEME}","{$HPE.SYNERGY.API.HOST}","{$HPE.SYNERGY.API.PORT}"]','1m','31d','365d','0','3','','','','',NULL,'1042','','','0','','','','','0',NULL,'Checks if the service is running and accepting the TCP connections.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','86da94cecaa1424e9a22479d556d7b12','0','2','0'),
('44050','20','get[1.3.6.1.2.1.25.1.1.0]','10258','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','81e5ed7d945d40f780eb9bd872ea1832','0','2','0'),
('44051','20','get[1.3.6.1.2.1.25.1.1.0]','10259','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8b0320157a0144a0b2f1d7df7cbbe08a','0','2','0'),
('44055','5','','10047','Zabbix proxies stats','zabbix[proxy,discovery]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The master item of Zabbix proxies\' statistics.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6fb9d6a8d3f84c679e7af4b9ef437239','0','2','0'),
('44161','21','','10539','Get data','azure.db.mysql.data.get','1m','0','0','0','4','','','','',NULL,NULL,'var AzureDB = {\r\n params: {},\r\n token: null,\r\n\r\n setParams: function (params) {\r\n [\'app_id\', \'password\', \'tenant_id\', \'subscription_id\', \'resource_id\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n\r\n AzureDB.params = params;\r\n },\r\n\r\n\r\n request: function (url, data) {\r\n if (typeof data === \'undefined\' || data === null) {\r\n data = \'\';\r\n }\r\n\r\n var response, request = new HttpRequest();\r\n if (typeof AzureDB.params.proxy !== \'undefined\' && AzureDB.params.proxy !== \'\') {\r\n request.setProxy(AzureDB.params.proxy);\r\n }\r\n if (AzureDB.token) {\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Authorization: Bearer \' + AzureDB.token);\r\n }\r\n\r\n Zabbix.log(4, \'[ Azure ] Sending request: \' + url);\r\n\r\n if (data !== \'\') {\r\n request.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n response = request.post(url, data);\r\n }\r\n else {\r\n response = request.get(url);\r\n }\r\n\r\n Zabbix.log(4, \'[ Azure ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200 || response === null) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n return JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from API.\';\r\n }\r\n }\r\n\r\n};\r\n\r\nvar metrics = [\r\n \'cpu_percent\',\r\n \'memory_percent\',\r\n \'network_bytes_egress\',\r\n \'network_bytes_ingress\',\r\n \'active_connections\',\r\n \'total_connections\',\r\n \'aborted_connections\',\r\n \'Queries\',\r\n \'io_consumption_percent\',\r\n \'storage_percent\',\r\n \'storage_used\',\r\n \'storage_limit\',\r\n \'backup_storage_used\',\r\n \'replication_lag\',\r\n \'cpu_credits_remaining\',\r\n \'cpu_credits_consumed\'\r\n],\r\n prepared_metrics = [],\r\n data = {};\r\n data[\'errors\'] = {};\r\n data[\'metrics\'] = {};\r\n\r\ntry {\r\n AzureDB.setParams(JSON.parse(value));\r\n\r\n try {\r\n result = AzureDB.request(\r\n \'https://login.microsoftonline.com/\' + encodeURIComponent(AzureDB.params.tenant_id) + \'/oauth2/token\',\r\n \'grant_type=client_credentials&resource=\' + encodeURIComponent(\'https://management.azure.com/\') + \'&client_id=\' + encodeURIComponent(AzureDB.params.app_id) + \'&client_secret=\' + encodeURIComponent(AzureDB.params.password)\r\n );\r\n\r\n if (\'access_token\' in result) {\r\n AzureDB.token = result[\'access_token\'];\r\n } else {\r\n throw \'Auth response does not contain access token.\';\r\n }\r\n }\r\n catch (error) {\r\n data.errors.auth = error.toString();\r\n }\r\n\r\n if (!(\'auth\' in data.errors)) {\r\n try {\r\n health = AzureDB.request(\'https://management.azure.com\' + AzureDB.params.resource_id + \'/providers/Microsoft.ResourceHealth/availabilityStatuses?api-version=2020-05-01\');\r\n if (\'value\' in health && Array.isArray(health.value) && health.value.length > 0 && \'properties\' in health.value[0] && typeof health.value[0].properties === \'object\') {\r\n data.health = health.value[0].properties;\r\n }\r\n }\r\n catch (error) {\r\n data.errors.health = error.toString();\r\n }\r\n\r\n for (var i = 0; i < metrics.length; i += 20) {\r\n var chunk = metrics.slice(i, i + 20);\r\n\r\n prepared_metrics.push(\r\n chunk.map(function (element) {\r\n return encodeURIComponent(element);\r\n }).join(\',\')\r\n );\r\n }\r\n\r\n start_date = new Date((new Date().getTime()) - 300000).toISOString().replace(/\\.\\d+/, \'\');\r\n end_date = new Date().toISOString().replace(/\\.\\d+/, \'\');\r\n\r\n for (var j in prepared_metrics) {\r\n try {\r\n metrics_data = AzureDB.request(\'https://management.azure.com\' + AzureDB.params.resource_id + \'/providers/Microsoft.Insights/metrics?metricnames=\' + prepared_metrics[j] + \'×pan=\' + encodeURIComponent(start_date) + \'/\' + encodeURIComponent(end_date) + \'&api-version=2021-05-01\');\r\n if (\'value\' in metrics_data && Array.isArray(metrics_data.value) && metrics_data.value.length > 0) {\r\n for (k in metrics_data.value) {\r\n if (\'name\' in metrics_data.value[k] && typeof metrics_data.value[k].name === \'object\' && \'value\' in metrics_data.value[k].name && typeof metrics_data.value[k].name.value === \'string\' && \'timeseries\' in metrics_data.value[k] && Array.isArray(metrics_data.value[k].timeseries) && metrics_data.value[k].timeseries.length > 0 && \'data\' in metrics_data.value[k].timeseries[0] && Array.isArray(metrics_data.value[k].timeseries[0].data) && metrics_data.value[k].timeseries[0].data.length > 0) {\r\n data.metrics[metrics_data.value[k].name.value.replace(/(\\s|\\/)+/g, \'\')] = metrics_data.value[k].timeseries[0].data[metrics_data.value[k].timeseries[0].data.length - 1];\r\n }\r\n }\r\n }\r\n }\r\n catch (error) {\r\n data.errors[prepared_metrics[j]] = error.toString();\r\n }\r\n }\r\n }\r\n}\r\ncatch (error) {\r\n data.errors.params = error.toString();\r\n}\r\n\r\nif (Object.keys(data.errors).length !== 0) {\r\n errors = \'Failed to receive data:\';\r\n for (var error in data.errors) {\r\n errors += \'\\n\' + error + \' : \' + data.errors[error];\r\n }\r\n data.errors = errors;\r\n}\r\nelse {\r\n data.errors = \'\';\r\n}\r\n\r\nreturn JSON.stringify(data);','','0','','','','','0',NULL,'The result of API requests is expressed in the JSON.','0','30d','0','',NULL,'{$AZURE.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','de712334db1440309fa68f9252d4f9bc','0','2','0'),
('44162','21','','10540','Get data','azure.db.mysql.data.get','1m','0','0','0','4','','','','',NULL,NULL,'var AzureDB = {\r\n params: {},\r\n token: null,\r\n\r\n setParams: function (params) {\r\n [\'app_id\', \'password\', \'tenant_id\', \'subscription_id\', \'resource_id\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n\r\n AzureDB.params = params;\r\n },\r\n\r\n\r\n request: function (url, data) {\r\n if (typeof data === \'undefined\' || data === null) {\r\n data = \'\';\r\n }\r\n\r\n var response, request = new HttpRequest();\r\n if (typeof AzureDB.params.proxy !== \'undefined\' && AzureDB.params.proxy !== \'\') {\r\n request.setProxy(AzureDB.params.proxy);\r\n }\r\n if (AzureDB.token) {\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Authorization: Bearer \' + AzureDB.token);\r\n }\r\n\r\n Zabbix.log(4, \'[ Azure ] Sending request: \' + url);\r\n\r\n if (data !== \'\') {\r\n request.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n response = request.post(url, data);\r\n }\r\n else {\r\n response = request.get(url);\r\n }\r\n\r\n Zabbix.log(4, \'[ Azure ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200 || response === null) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n return JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from API.\';\r\n }\r\n }\r\n\r\n};\r\n\r\nvar metrics = [\r\n \'cpu_percent\',\r\n \'memory_percent\',\r\n \'io_consumption_percent\',\r\n \'storage_percent\',\r\n \'storage_used\',\r\n \'storage_limit\',\r\n \'serverlog_storage_percent\',\r\n \'serverlog_storage_usage\',\r\n \'serverlog_storage_limit\',\r\n \'active_connections\',\r\n \'connections_failed\',\r\n \'seconds_behind_master\',\r\n \'backup_storage_used\',\r\n \'network_bytes_egress\',\r\n \'network_bytes_ingress\'\r\n],\r\n prepared_metrics = [],\r\n data = {};\r\ndata[\'errors\'] = {};\r\ndata[\'metrics\'] = {};\r\n\r\ntry {\r\n AzureDB.setParams(JSON.parse(value));\r\n\r\n try {\r\n result = AzureDB.request(\r\n \'https://login.microsoftonline.com/\' + encodeURIComponent(AzureDB.params.tenant_id) + \'/oauth2/token\',\r\n \'grant_type=client_credentials&resource=\' + encodeURIComponent(\'https://management.azure.com/\') + \'&client_id=\' + encodeURIComponent(AzureDB.params.app_id) + \'&client_secret=\' + encodeURIComponent(AzureDB.params.password)\r\n );\r\n\r\n if (\'access_token\' in result) {\r\n AzureDB.token = result[\'access_token\'];\r\n } else {\r\n throw \'Auth response does not contain access token.\';\r\n }\r\n }\r\n catch (error) {\r\n data.errors.auth = error.toString();\r\n }\r\n\r\n if (!(\'auth\' in data.errors)) {\r\n try {\r\n health = AzureDB.request(\'https://management.azure.com\' + AzureDB.params.resource_id + \'/providers/Microsoft.ResourceHealth/availabilityStatuses?api-version=2020-05-01\');\r\n if (\'value\' in health && Array.isArray(health.value) && health.value.length > 0 && \'properties\' in health.value[0] && typeof health.value[0].properties === \'object\') {\r\n data.health = health.value[0].properties;\r\n }\r\n }\r\n catch (error) {\r\n data.errors.health = error.toString();\r\n }\r\n\r\n for (var i = 0; i < metrics.length; i += 20) {\r\n var chunk = metrics.slice(i, i + 20);\r\n\r\n prepared_metrics.push(\r\n chunk.map(function (element) {\r\n return encodeURIComponent(element);\r\n }).join(\',\')\r\n );\r\n }\r\n\r\n start_date = new Date((new Date().getTime()) - 300000).toISOString().replace(/\\.\\d+/, \'\');\r\n end_date = new Date().toISOString().replace(/\\.\\d+/, \'\');\r\n\r\n for (var j in prepared_metrics) {\r\n try {\r\n metrics_data = AzureDB.request(\'https://management.azure.com\' + AzureDB.params.resource_id + \'/providers/Microsoft.Insights/metrics?metricnames=\' + prepared_metrics[j] + \'×pan=\' + encodeURIComponent(start_date) + \'/\' + encodeURIComponent(end_date) + \'&api-version=2021-05-01\');\r\n if (\'value\' in metrics_data && Array.isArray(metrics_data.value) && metrics_data.value.length > 0) {\r\n for (k in metrics_data.value) {\r\n if (\'name\' in metrics_data.value[k] && typeof metrics_data.value[k].name === \'object\' && \'value\' in metrics_data.value[k].name && typeof metrics_data.value[k].name.value === \'string\' && \'timeseries\' in metrics_data.value[k] && Array.isArray(metrics_data.value[k].timeseries) && metrics_data.value[k].timeseries.length > 0 && \'data\' in metrics_data.value[k].timeseries[0] && Array.isArray(metrics_data.value[k].timeseries[0].data) && metrics_data.value[k].timeseries[0].data.length > 0) {\r\n data.metrics[metrics_data.value[k].name.value.replace(/(\\s|\\/)+/g, \'\')] = metrics_data.value[k].timeseries[0].data[metrics_data.value[k].timeseries[0].data.length - 1];\r\n }\r\n }\r\n }\r\n }\r\n catch (error) {\r\n data.errors[prepared_metrics[j]] = error.toString();\r\n }\r\n }\r\n }\r\n}\r\ncatch (error) {\r\n data.errors.params = error.toString();\r\n}\r\n\r\nif (Object.keys(data.errors).length !== 0) {\r\n errors = \'Failed to receive data:\';\r\n for (var error in data.errors) {\r\n errors += \'\\n\' + error + \' : \' + data.errors[error];\r\n }\r\n data.errors = errors;\r\n}\r\nelse {\r\n data.errors = \'\';\r\n}\r\n\r\nreturn JSON.stringify(data);','','0','','','','','0',NULL,'The result of API requests is expressed in the JSON.','0','30d','0','',NULL,'{$AZURE.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','cd62d92ef0384ea9acf0cae71c88ebc6','0','2','0'),
('44248','21','','10543','Get data','azure.db.pgsql.data.get','1m','0','0','0','4','','','','',NULL,NULL,'var AzureDB = {\r\n params: {},\r\n token: null,\r\n\r\n setParams: function (params) {\r\n [\'app_id\', \'password\', \'tenant_id\', \'subscription_id\', \'resource_id\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n\r\n AzureDB.params = params;\r\n },\r\n\r\n\r\n request: function (url, data) {\r\n if (typeof data === \'undefined\' || data === null) {\r\n data = \'\';\r\n }\r\n\r\n var response, request = new HttpRequest();\r\n if (typeof AzureDB.params.proxy !== \'undefined\' && AzureDB.params.proxy !== \'\') {\r\n request.setProxy(AzureDB.params.proxy);\r\n }\r\n if (AzureDB.token) {\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Authorization: Bearer \' + AzureDB.token);\r\n }\r\n\r\n Zabbix.log(4, \'[ Azure ] Sending request: \' + url);\r\n\r\n if (data !== \'\') {\r\n request.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n response = request.post(url, data);\r\n }\r\n else {\r\n response = request.get(url);\r\n }\r\n\r\n Zabbix.log(4, \'[ Azure ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200 || response === null) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n return JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from API.\';\r\n }\r\n }\r\n\r\n};\r\n\r\nvar metrics = [\r\n \'cpu_percent\',\r\n \'memory_percent\',\r\n \'iops\',\r\n \'disk_queue_depth\',\r\n \'read_throughput\',\r\n \'write_throughput\',\r\n \'read_iops\',\r\n \'write_iops\',\r\n \'network_bytes_egress\',\r\n \'network_bytes_ingress\',\r\n \'active_connections\',\r\n \'connections_failed\',\r\n \'connections_succeeded\',\r\n \'storage_percent\',\r\n \'storage_used\',\r\n \'storage_free\',\r\n \'txlogs_storage_used\',\r\n \'backup_storage_used\',\r\n \'maximum_used_transactionIDs\',\r\n \'cpu_credits_remaining\',\r\n \'cpu_credits_consumed\'\r\n],\r\n prepared_metrics = [],\r\n data = {};\r\n data[\'errors\'] = {};\r\n data[\'metrics\'] = {};\r\n\r\ntry {\r\n AzureDB.setParams(JSON.parse(value));\r\n\r\n try {\r\n result = AzureDB.request(\r\n \'https://login.microsoftonline.com/\' + encodeURIComponent(AzureDB.params.tenant_id) + \'/oauth2/token\',\r\n \'grant_type=client_credentials&resource=\' + encodeURIComponent(\'https://management.azure.com/\') + \'&client_id=\' + encodeURIComponent(AzureDB.params.app_id) + \'&client_secret=\' + encodeURIComponent(AzureDB.params.password)\r\n );\r\n\r\n if (\'access_token\' in result) {\r\n AzureDB.token = result[\'access_token\'];\r\n } else {\r\n throw \'Auth response does not contain access token.\';\r\n }\r\n }\r\n catch (error) {\r\n data.errors.auth = error.toString();\r\n }\r\n\r\n if (!(\'auth\' in data.errors)) {\r\n try {\r\n health = AzureDB.request(\'https://management.azure.com\' + AzureDB.params.resource_id + \'/providers/Microsoft.ResourceHealth/availabilityStatuses?api-version=2020-05-01\');\r\n if (\'value\' in health && Array.isArray(health.value) && health.value.length > 0 && \'properties\' in health.value[0] && typeof health.value[0].properties === \'object\') {\r\n data.health = health.value[0].properties;\r\n }\r\n }\r\n catch (error) {\r\n data.errors.health = error.toString();\r\n }\r\n\r\n for (var i = 0; i < metrics.length; i += 20) {\r\n var chunk = metrics.slice(i, i + 20);\r\n\r\n prepared_metrics.push(\r\n chunk.map(function (element) {\r\n return encodeURIComponent(element);\r\n }).join(\',\')\r\n );\r\n }\r\n\r\n start_date = new Date((new Date().getTime()) - 600000).toISOString().replace(/\\.\\d+/, \'\');\r\n end_date = new Date().toISOString().replace(/\\.\\d+/, \'\');\r\n\r\n for (var j in prepared_metrics) {\r\n try {\r\n metrics_data = AzureDB.request(\'https://management.azure.com\' + AzureDB.params.resource_id + \'/providers/Microsoft.Insights/metrics?metricnames=\' + prepared_metrics[j] + \'×pan=\' + encodeURIComponent(start_date) + \'/\' + encodeURIComponent(end_date) + \'&api-version=2021-05-01\');\r\n if (\'value\' in metrics_data && Array.isArray(metrics_data.value) && metrics_data.value.length > 0) {\r\n for (k in metrics_data.value) {\r\n if (\'name\' in metrics_data.value[k] && typeof metrics_data.value[k].name === \'object\' && \'value\' in metrics_data.value[k].name && typeof metrics_data.value[k].name.value === \'string\' && \'timeseries\' in metrics_data.value[k] && Array.isArray(metrics_data.value[k].timeseries) && metrics_data.value[k].timeseries.length > 0 && \'data\' in metrics_data.value[k].timeseries[0] && Array.isArray(metrics_data.value[k].timeseries[0].data) && metrics_data.value[k].timeseries[0].data.length > 0) {\r\n if (metrics_data.value[k].name.value === \'disk_queue_depth\' ||\r\n metrics_data.value[k].name.value === \'read_throughput\' ||\r\n metrics_data.value[k].name.value === \'write_throughput\' ||\r\n metrics_data.value[k].name.value === \'read_iops\' ||\r\n metrics_data.value[k].name.value === \'write_iops\') {\r\n data.metrics[metrics_data.value[k].name.value.replace(/(\\s|\\/)+/g, \'\')] = metrics_data.value[k].timeseries[0].data[metrics_data.value[k].timeseries[0].data.length - 6];\r\n } else {\r\n data.metrics[metrics_data.value[k].name.value.replace(/(\\s|\\/)+/g, \'\')] = metrics_data.value[k].timeseries[0].data[metrics_data.value[k].timeseries[0].data.length - 1];\r\n }\r\n }\r\n }\r\n }\r\n }\r\n catch (error) {\r\n data.errors[prepared_metrics[j]] = error.toString();\r\n }\r\n }\r\n }\r\n}\r\ncatch (error) {\r\n data.errors.params = error.toString();\r\n}\r\n\r\nif (Object.keys(data.errors).length !== 0) {\r\n errors = \'Failed to receive data:\';\r\n for (var error in data.errors) {\r\n errors += \'\\n\' + error + \' : \' + data.errors[error];\r\n }\r\n data.errors = errors;\r\n}\r\nelse {\r\n data.errors = \'\';\r\n}\r\n\r\nreturn JSON.stringify(data);','','0','','','','','0',NULL,'The result of API requests is expressed in the JSON.','0','30d','0','',NULL,'{$AZURE.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','1792c0566e8a438dad5e299d8f5b9094','0','2','0'),
('44249','21','','10544','Get data','azure.db.pgsql.data.get','1m','0','0','0','4','','','','',NULL,NULL,'var AzureDB = {\r\n params: {},\r\n token: null,\r\n\r\n setParams: function (params) {\r\n [\'app_id\', \'password\', \'tenant_id\', \'subscription_id\', \'resource_id\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n\r\n AzureDB.params = params;\r\n },\r\n\r\n\r\n request: function (url, data) {\r\n if (typeof data === \'undefined\' || data === null) {\r\n data = \'\';\r\n }\r\n\r\n var response, request = new HttpRequest();\r\n if (typeof AzureDB.params.proxy !== \'undefined\' && AzureDB.params.proxy !== \'\') {\r\n request.setProxy(AzureDB.params.proxy);\r\n }\r\n if (AzureDB.token) {\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Authorization: Bearer \' + AzureDB.token);\r\n }\r\n\r\n Zabbix.log(4, \'[ Azure ] Sending request: \' + url);\r\n\r\n if (data !== \'\') {\r\n request.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n response = request.post(url, data);\r\n }\r\n else {\r\n response = request.get(url);\r\n }\r\n\r\n Zabbix.log(4, \'[ Azure ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200 || response === null) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n return JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from API.\';\r\n }\r\n }\r\n\r\n};\r\n\r\nvar metrics = [\r\n \'cpu_percent\',\r\n \'memory_percent\',\r\n \'io_consumption_percent\',\r\n \'storage_percent\',\r\n \'storage_used\',\r\n \'storage_limit\',\r\n \'serverlog_storage_percent\',\r\n \'serverlog_storage_usage\',\r\n \'serverlog_storage_limit\',\r\n \'active_connections\',\r\n \'connections_failed\',\r\n \'backup_storage_used\',\r\n \'network_bytes_egress\',\r\n \'network_bytes_ingress\',\r\n \'pg_replica_log_delay_in_seconds\',\r\n \'pg_replica_log_delay_in_bytes\'\r\n],\r\n prepared_metrics = [],\r\n data = {};\r\n data[\'errors\'] = {};\r\n data[\'metrics\'] = {};\r\n\r\ntry {\r\n AzureDB.setParams(JSON.parse(value));\r\n\r\n try {\r\n result = AzureDB.request(\r\n \'https://login.microsoftonline.com/\' + encodeURIComponent(AzureDB.params.tenant_id) + \'/oauth2/token\',\r\n \'grant_type=client_credentials&resource=\' + encodeURIComponent(\'https://management.azure.com/\') + \'&client_id=\' + encodeURIComponent(AzureDB.params.app_id) + \'&client_secret=\' + encodeURIComponent(AzureDB.params.password)\r\n );\r\n\r\n if (\'access_token\' in result) {\r\n AzureDB.token = result[\'access_token\'];\r\n } else {\r\n throw \'Auth response does not contain access token.\';\r\n }\r\n }\r\n catch (error) {\r\n data.errors.auth = error.toString();\r\n }\r\n\r\n if (!(\'auth\' in data.errors)) {\r\n try {\r\n health = AzureDB.request(\'https://management.azure.com\' + AzureDB.params.resource_id + \'/providers/Microsoft.ResourceHealth/availabilityStatuses?api-version=2020-05-01\');\r\n if (\'value\' in health && Array.isArray(health.value) && health.value.length > 0 && \'properties\' in health.value[0] && typeof health.value[0].properties === \'object\') {\r\n data.health = health.value[0].properties;\r\n }\r\n }\r\n catch (error) {\r\n data.errors.health = error.toString();\r\n }\r\n\r\n for (var i = 0; i < metrics.length; i += 20) {\r\n var chunk = metrics.slice(i, i + 20);\r\n\r\n prepared_metrics.push(\r\n chunk.map(function (element) {\r\n return encodeURIComponent(element);\r\n }).join(\',\')\r\n );\r\n }\r\n\r\n start_date = new Date((new Date().getTime()) - 300000).toISOString().replace(/\\.\\d+/, \'\');\r\n end_date = new Date().toISOString().replace(/\\.\\d+/, \'\');\r\n\r\n for (var j in prepared_metrics) {\r\n try {\r\n metrics_data = AzureDB.request(\'https://management.azure.com\' + AzureDB.params.resource_id + \'/providers/Microsoft.Insights/metrics?metricnames=\' + prepared_metrics[j] + \'×pan=\' + encodeURIComponent(start_date) + \'/\' + encodeURIComponent(end_date) + \'&api-version=2021-05-01\');\r\n if (\'value\' in metrics_data && Array.isArray(metrics_data.value) && metrics_data.value.length > 0) {\r\n for (k in metrics_data.value) {\r\n if (\'name\' in metrics_data.value[k] && typeof metrics_data.value[k].name === \'object\' && \'value\' in metrics_data.value[k].name && typeof metrics_data.value[k].name.value === \'string\' && \'timeseries\' in metrics_data.value[k] && Array.isArray(metrics_data.value[k].timeseries) && metrics_data.value[k].timeseries.length > 0 && \'data\' in metrics_data.value[k].timeseries[0] && Array.isArray(metrics_data.value[k].timeseries[0].data) && metrics_data.value[k].timeseries[0].data.length > 0) {\r\n data.metrics[metrics_data.value[k].name.value.replace(/(\\s|\\/)+/g, \'\')] = metrics_data.value[k].timeseries[0].data[metrics_data.value[k].timeseries[0].data.length - 1];\r\n }\r\n }\r\n }\r\n }\r\n catch (error) {\r\n data.errors[prepared_metrics[j]] = error.toString();\r\n }\r\n }\r\n }\r\n}\r\ncatch (error) {\r\n data.errors.params = error.toString();\r\n}\r\n\r\nif (Object.keys(data.errors).length !== 0) {\r\n errors = \'Failed to receive data:\';\r\n for (var error in data.errors) {\r\n errors += \'\\n\' + error + \' : \' + data.errors[error];\r\n }\r\n data.errors = errors;\r\n}\r\nelse {\r\n data.errors = \'\';\r\n}\r\n\r\nreturn JSON.stringify(data);','','0','','','','','0',NULL,'The result of API requests is expressed in the JSON.','0','30d','0','',NULL,'{$AZURE.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','e47d863822e64e6292bfa3e684bc2839','0','2','0'),
('44294','21','','10546','Get data','meraki.get.data','1h','0','0','0','4','','','','',NULL,NULL,'var params = JSON.parse(value);\r\n\r\nvar r_match = \'{$MERAKI.ORGANIZATION.NAME.MATCHES}\';\r\nvar r_not_match = \'{$MERAKI.ORGANIZATION.NAME.NOT_MATCHES}\';\r\n\r\nvar request = new HttpRequest();\r\n\r\nrequest.addHeader(\'X-Cisco-Meraki-API-Key:\' + params.token);\r\nrequest.addHeader(\'User-Agent: ZabbixServer/1.1 Zabbix\');\r\n\r\nvar response,\r\n error_msg = \'\',\r\n organizations = [],\r\n devices = [];\r\n\r\nfunction getHttpData(url) {\r\n response = request.get(url);\r\n Zabbix.log(4, \'[ Meraki API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n } catch (error) {\r\n throw \'Failed to parse response received from Meraki API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n if (request.getStatus() !== 200) {\r\n if (response.errors) {\r\n throw response.errors.join(\', \');\r\n } else {\r\n throw \'Failed to receive data: invalid response status code.\';\r\n }\r\n }\r\n\r\n if (typeof response !== \'object\' || response === null) {\r\n throw \'Cannot process response data: received data is not an object.\';\r\n }\r\n\r\n return response;\r\n}\r\n\r\ntry {\r\n if (params.token === \'{\' + \'$MERAKI.TOKEN}\') {\r\n throw \'Please change {\' + \'$MERAKI.TOKEN} macro to the proper value.\';\r\n }\r\n\r\n if (params.url.indexOf(\'http://\') === -1 && params.url.indexOf(\'https://\') === -1) {\r\n params.url = \'https://\' + params.url;\r\n }\r\n\r\n if (!params.url.endsWith(\'/\')) {\r\n params.url += \'/\';\r\n }\r\n\r\n if (typeof params.httpproxy !== \'undefined\' && params.httpproxy !== \'\') {\r\n request.setProxy(params.httpproxy);\r\n }\r\n\r\n organizations = getHttpData(params.url + \'organizations\');\r\n\r\n organizations = organizations.filter(function (x) {\r\n return new RegExp(r_match).test(x.name) & !new RegExp(r_not_match).test(x.name);\r\n });\r\n\r\n if (Array.isArray(organizations) && organizations.length > 0) {\r\n for (i in organizations) {\r\n if (\'id\' in organizations[i] && \'name\' in organizations[i]) {\r\n try {\r\n organization_devices = getHttpData(params.url + \'organizations/\' + encodeURIComponent(organizations[i].id) + \'/devices/statuses\');\r\n\r\n if (Array.isArray(organization_devices) && organization_devices.length > 0) {\r\n for (j in organization_devices) {\r\n organization_devices[j].organizationId = organizations[i].id;\r\n organization_devices[j].organizationName = organizations[i].name;\r\n if (!organization_devices[j].name) {\r\n organization_devices[j].name = organization_devices[j].serial;\r\n }\r\n devices.push(organization_devices[j]);\r\n }\r\n }\r\n } catch (error) {\r\n error_msg += organizations[i].name + " organization\'s devices retrieval error: " + error + \'\\n\';\r\n }\r\n } else {\r\n error_msg += \'There is no ID or organization name in the API response.\';\r\n }\r\n }\r\n }\r\n} catch (error) {\r\n error_msg += \'Organizations data retrieval error: \' + error;\r\n}\r\n\r\nreturn JSON.stringify({\r\n organizations: organizations,\r\n devices: devices,\r\n error: error_msg.toString()\r\n});','','0','','','','','0',NULL,'Item for gathering all the organizations and devices from Meraki API.','0','30d','0','',NULL,'{$MERAKI.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','d1a5f3c79a604bae98c314d2aed64ff4','0','2','0'),
('44295','21','','10547','Get device data','meraki.get.device','{$MERAKI.UPLINK.LL.TIMESPAN}','0','0','0','4','','','','',NULL,NULL,'var params = JSON.parse(value);\r\n\r\nvar request = new HttpRequest();\r\n\r\nrequest.addHeader(\'X-Cisco-Meraki-API-Key:\' + params.token);\r\nrequest.addHeader(\'User-Agent: ZabbixServer/1.1 Zabbix\');\r\n\r\nvar response,\r\n error_msg = \'\',\r\n device = [],\r\n uplinksLL = [];\r\n\r\nfunction isFloat(n) {\r\n n = parseFloat(n);\r\n return Number(n) === n && n % 1 !== 0;\r\n};\r\n\r\nfunction checkNumber(string) {\r\n if (typeof string !== "string" || isNaN(string) || isFloat(string)) {\r\n throw \'Incorrect "timespan" parameter given: \' + string + \' Must be an unsigned number\';\r\n }\r\n return string;\r\n};\r\n\r\nfunction getHttpData(url) {\r\n response = request.get(url);\r\n Zabbix.log(4, \'[ Meraki API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from Meraki API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n if (request.getStatus() !== 200) {\r\n if (response.errors) {\r\n throw response.errors.join(\', \');\r\n } else {\r\n throw \'Failed to receive data: invalid response status code.\';\r\n }\r\n }\r\n\r\n if (typeof (response) !== \'object\' || response === null) {\r\n throw \'Cannot process response data: received data is not an object.\';\r\n }\r\n\r\n return response;\r\n};\r\n\r\ntry {\r\n\r\n if (params.token === \'{\' + \'$MERAKI.TOKEN}\') {\r\n throw \'Please change {\' + \'$MERAKI.TOKEN} macro to the proper value.\';\r\n }\r\n\r\n if (params.url.indexOf(\'http://\') === -1 && params.url.indexOf(\'https://\') === -1) {\r\n params.url = \'https://\' + params.url;\r\n }\r\n\r\n if (!params.url.endsWith(\'/\')) {\r\n params.url += \'/\';\r\n }\r\n\r\n if (typeof params.httpproxy !== \'undefined\' && params.httpproxy !== \'\') {\r\n request.setProxy(params.httpproxy);\r\n }\r\n\r\n timespan = checkNumber(\'{$MERAKI.UPLINK.LL.TIMESPAN}\');\r\n\r\n if (timespan > 86400 || timespan < 1) {\r\n throw \'Incorrect "timespan" parameter given: \' + timespan + \' Must be between 1 and 86400 seconds.\';\r\n }\r\n\r\n uplinksLL = getHttpData(params.url + \'organizations/\' + encodeURIComponent(params.organizationId) + \'/devices/uplinksLossAndLatency?timespan=\' + timespan);\r\n\r\n if (uplinksLL.length > 0) {\r\n uplinksLL = uplinksLL.filter(function (device) {\r\n return device.serial == params.serial;\r\n });\r\n }\r\n\r\n} catch (error) {\r\n error_msg = error;\r\n};\r\n\r\nreturn JSON.stringify({\r\n \'uplinksLL\': uplinksLL,\r\n \'error\': error_msg.toString()\r\n});','','0','','','','','0',NULL,'Item for gathering device data from Meraki API.','0','30d','0','',NULL,'{$MERAKI.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','e4963b68cdde453f91767ff9e3a31d16','0','2','0'),
('44296','19','','10548','Get list of adaptive policy aggregate statistics','meraki.get.adaptive.policy','20m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Item for adaptive policy aggregate statistics for the organization.','0','30d','0','',NULL,'{$MERAKI.DATA.TIMEOUT}','https://{$MERAKI.API.URL}/organizations/{$ID}/adaptivePolicy/overview','','','200','1','0','{$MERAKI.HTTP_PROXY}','X-Cisco-Meraki-API-Key: {$MERAKI.TOKEN}\r\nUser-Agent: ZabbixServer/1.1 Zabbix','0','0','0','0','0','0','0','25f8f61ddf964f39b39cc38b23b017b9','0','2','0'),
('44297','19','','10548','Get list of configuration changes','meraki.get.configuration.changes','{$MERAKI.CONFIG.CHANGE.TIMESPAN}','31d','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Item for viewing the change log for your organization. Gathering once per 20m by default.','0','30d','0','',NULL,'{$MERAKI.DATA.TIMEOUT}','https://{$MERAKI.API.URL}/organizations/{$ID}/configurationChanges?timespan={$MERAKI.CONFIG.CHANGE.TIMESPAN}','','','200','1','0','{$MERAKI.HTTP_PROXY}','X-Cisco-Meraki-API-Key: {$MERAKI.TOKEN}\r\nUser-Agent: ZabbixServer/1.1 Zabbix','0','0','0','0','0','0','0','f2a65bce3adf4511a3f37ed4caa66b3d','0','2','0'),
('44298','19','','10548','Get licenses overview','meraki.get.licenses','12h','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Return overview of the license state for the organization.','0','30d','0','',NULL,'{$MERAKI.DATA.TIMEOUT}','https://{$MERAKI.API.URL}/organizations/{$ID}/licenses/overview','','','200','1','0','{$MERAKI.HTTP_PROXY}','X-Cisco-Meraki-API-Key: {$MERAKI.TOKEN}\r\nUser-Agent: ZabbixServer/1.1 Zabbix','0','0','0','0','0','0','0','3306da0ec0d749829db2f5f42e4e7876','0','2','0'),
('44299','21','','10548','Get list of the networks','meraki.get.networks','3m','0','0','0','4','','','','',NULL,NULL,'var params = JSON.parse(value);\r\n\r\nvar request = new HttpRequest();\r\n\r\nrequest.addHeader(\'X-Cisco-Meraki-API-Key:\' + params.token);\r\nrequest.addHeader(\'User-Agent: ZabbixServer/1.1 Zabbix\');\r\n\r\nvar response,\r\n error_msg = \'\',\r\n networks = [],\r\n uplinks = [];\r\n\r\nfunction getHttpData(url) {\r\n response = request.get(url);\r\n Zabbix.log(4, \'[ Meraki API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from Meraki API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n if (request.getStatus() !== 200) {\r\n if (response.errors) {\r\n throw response.errors.join(\', \');\r\n } else {\r\n throw \'Failed to receive data: invalid response status code.\';\r\n }\r\n }\r\n\r\n if (typeof (response) !== \'object\' || response === null) {\r\n throw \'Cannot process response data: received data is not an object.\';\r\n }\r\n\r\n return response;\r\n};\r\n\r\ntry {\r\n\r\n if (params.token === \'{\' + \'$MERAKI.TOKEN}\') {\r\n throw \'Please change {\' + \'$MERAKI.TOKEN} macro to the proper value.\';\r\n }\r\n\r\n if (params.url.indexOf(\'http://\') === -1 && params.url.indexOf(\'https://\') === -1) {\r\n params.url = \'https://\' + params.url;\r\n }\r\n\r\n if (!params.url.endsWith(\'/\')) {\r\n params.url += \'/\';\r\n }\r\n\r\n if (typeof params.httpproxy !== \'undefined\' && params.httpproxy !== \'\') {\r\n request.setProxy(params.httpproxy);\r\n }\r\n\r\n networks = getHttpData(params.url + \'organizations/\' + encodeURIComponent(params.organizationId) + \'/networks\');\r\n\r\n responseUplinks = getHttpData(params.url + \'organizations/\' + encodeURIComponent(params.organizationId) + \'/appliance/uplink/statuses\');\r\n\r\n if (typeof responseUplinks !== \'undefined\' && Array.isArray(responseUplinks)) {\r\n for (var i in responseUplinks) {\r\n if (\'networkId\' in responseUplinks[i] && typeof networks !== \'undefined\' && Array.isArray(networks)) {\r\n network = networks.filter(function (x) { return x.id == responseUplinks[i].networkId; });\r\n }\r\n\r\n if (typeof responseUplinks[i].uplinks !== \'undefined\' && Array.isArray(responseUplinks[i].uplinks)) {\r\n for (var p in responseUplinks[i].uplinks) {\r\n if (typeof network[0].name !== \'undefined\') {\r\n responseUplinks[i].uplinks[p].networkName = network[0].name;\r\n }\r\n if (typeof network[0].timeZone !== \'undefined\') {\r\n responseUplinks[i].uplinks[p].timeZone = network[0].timeZone;\r\n }\r\n if (\'highAvailability\' in responseUplinks[i] && \'role\' in responseUplinks[i].highAvailability) {\r\n responseUplinks[i].uplinks[p].role = responseUplinks[i].highAvailability.role;\r\n }\r\n if (\'serial\' in responseUplinks[i]) {\r\n responseUplinks[i].uplinks[p].serial = responseUplinks[i].serial;\r\n }\r\n\r\n uplinks.push(responseUplinks[i].uplinks[p]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n} catch (error) {\r\n error_msg = error;\r\n};\r\n\r\nreturn JSON.stringify({\r\n \'uplinks\': uplinks,\r\n \'networks\': networks,\r\n \'error\': error_msg.toString()\r\n});','','0','','','','','0',NULL,'Item for gathering all the networks of organization from Meraki API.','0','30d','0','',NULL,'{$MERAKI.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','efe8853443d44eed8daeecee5ab9e481','0','2','0'),
('44300','21','','10548','Get list of the VPN stats','meraki.get.vpn.stats','{$MERAKI.VPN.STATS.TIMESPAN}','0','0','0','4','','','','',NULL,NULL,'var params = JSON.parse(value);\r\n\r\nvar request = new HttpRequest();\r\n\r\nrequest.addHeader(\'X-Cisco-Meraki-API-Key:\' + params.token);\r\nrequest.addHeader(\'User-Agent: ZabbixServer/1.1 Zabbix\');\r\n\r\nvar response,\r\n error_msg = \'\',\r\n vpnStats = [],\r\n vpnStatuses = [],\r\n result = [];\r\n\r\nfunction isFloat(n) {\r\n n = parseFloat(n);\r\n return Number(n) === n && n % 1 !== 0;\r\n};\r\n\r\nfunction checkNumber(string) {\r\n if (typeof string !== "string" || isNaN(string) || isFloat(string)) {\r\n throw \'Incorrect "timespan" parameter given: \' + string + \' Must be an unsigned number\';\r\n }\r\n return string;\r\n};\r\n\r\nfunction getHttpData(url) {\r\n response = request.get(url);\r\n Zabbix.log(4, \'[ Meraki API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from Meraki API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n if (request.getStatus() !== 200) {\r\n if (response.errors) {\r\n throw response.errors.join(\', \');\r\n } else {\r\n throw \'Failed to receive data: invalid response status code.\';\r\n }\r\n }\r\n\r\n if (typeof (response) !== \'object\' || response === null) {\r\n throw \'Cannot process response data: received data is not an object.\';\r\n }\r\n\r\n return response;\r\n};\r\n\r\ntry {\r\n\r\n if (params.token === \'{\' + \'$MERAKI.TOKEN}\') {\r\n throw \'Please change {\' + \'$MERAKI.TOKEN} macro to the proper value.\';\r\n }\r\n\r\n if (params.url.indexOf(\'http://\') === -1 && params.url.indexOf(\'https://\') === -1) {\r\n params.url = \'https://\' + params.url;\r\n }\r\n\r\n if (!params.url.endsWith(\'/\')) {\r\n params.url += \'/\';\r\n }\r\n\r\n if (typeof params.httpproxy !== \'undefined\' && params.httpproxy !== \'\') {\r\n request.setProxy(params.httpproxy);\r\n }\r\n\r\n timespan = checkNumber(\'{$MERAKI.VPN.STATS.TIMESPAN}\');\r\n\r\n if (timespan > 86400 || timespan < 1) {\r\n throw \'Incorrect "timespan" parameter given: \' + timespan + \' Must be between 1 and 86400 seconds.\';\r\n }\r\n\r\n vpnStats = getHttpData(params.url + \'organizations/\' + encodeURIComponent(params.organizationId) + \'/appliance/vpn/stats?timespan=\' + timespan);\r\n\r\n for (i in vpnStats) {\r\n if (typeof vpnStats[i].merakiVpnPeers !== \'undefined\' && Array.isArray(vpnStats[i].merakiVpnPeers)) {\r\n for (u in vpnStats[i].merakiVpnPeers) {\r\n if (typeof vpnStats[i].merakiVpnPeers[u].latencySummaries !== \'undefined\' && Array.isArray(vpnStats[i].merakiVpnPeers[u].latencySummaries)) {\r\n vpn_stats = vpnStats[i].merakiVpnPeers[u].latencySummaries.map(function (x) {\r\n\r\n lps = vpnStats[i].merakiVpnPeers[u].lossPercentageSummaries.filter(function (y) { return y.senderUplink == x.senderUplink && y.receiverUplink == x.receiverUplink; });\r\n js = vpnStats[i].merakiVpnPeers[u].jitterSummaries.filter(function (y) { return y.senderUplink == x.senderUplink && y.receiverUplink == x.receiverUplink; });\r\n ms = vpnStats[i].merakiVpnPeers[u].mosSummaries.filter(function (y) { return y.senderUplink == x.senderUplink && y.receiverUplink == x.receiverUplink; });\r\n Object.assign(x, lps[0], js[0], ms[0]);\r\n\r\n if (\'networkId\' in vpnStats[i]) {\r\n x.networkId = vpnStats[i].networkId;\r\n }\r\n if (\'networkName\' in vpnStats[i]) {\r\n x.networkName = vpnStats[i].networkName;\r\n }\r\n\r\n if (\'networkId\' in vpnStats[i].merakiVpnPeers[u]) {\r\n x.peerNetworkId = vpnStats[i].merakiVpnPeers[u].networkId;\r\n }\r\n if (\'networkName\' in vpnStats[i].merakiVpnPeers[u]) {\r\n x.peerNetworkName = vpnStats[i].merakiVpnPeers[u].networkName;\r\n }\r\n\r\n return x;\r\n });\r\n result = result.concat(vpn_stats);\r\n }\r\n }\r\n }\r\n }\r\n\r\n vpnStatuses = getHttpData(params.url + \'organizations/\' + encodeURIComponent(params.organizationId) + \'/appliance/vpn/statuses\');\r\n\r\n} catch (error) {\r\n error_msg = error;\r\n};\r\n\r\nreturn JSON.stringify({\r\n \'vpnStats\': result,\r\n \'vpnStatuses\': vpnStatuses,\r\n \'error\': error_msg.toString()\r\n});','','0','','','','','0',NULL,'Item for gathering all the VPN stats of the organization.','0','30d','0','',NULL,'{$MERAKI.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','bb653e6dba3f489494a7143b74fe8f4f','0','2','0'),
('44335','0','','10264','Get processes summary','proc.get[{$APACHE.PROCESS.NAME.PARAMETER},,,summary]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The aggregated data of summary metrics for all processes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','99b1a38ed45b4212974b0bea72b076d2','0','2','0'),
('44343','0','','10266','Get processes summary','proc.get[{$NGINX.PROCESS.NAME.PARAMETER},,,summary]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The aggregated data of summary metrics for all processes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d43b4b99b6084076a4feb1fde51ecc40','0','2','0'),
('44351','0','','10330','Get processes summary','proc.get[{$PHP_FPM.PROCESS.NAME.PARAMETER},,,summary]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The aggregated data of summary metrics for all processes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','71ea0957d99a4d48b18e73a21494c849','0','2','0'),
('44359','0','','10301','Get processes summary','proc.get[{$RABBITMQ.PROCESS.NAME.PARAMETER},,,summary]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The aggregated data of summary metrics for all processes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8201cc537b124d9292fcf692922ee0ad','0','2','0'),
('44381','3','','10551','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'1066','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8eff7e6fc12c45f6b98a4fb89c44f03d','0','2','0'),
('44382','3','','10551','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cb04f67d7ea04894a9f143a7d27db09a','0','2','0'),
('44383','3','','10551','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','be862a0f8625484ebccb8a4e5255b683','0','2','0'),
('44384','17','','10551','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all the SNMP traps unmatched by the other snmptrap items.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','027bb218006e46238392afbb12d96ec6','0','2','0'),
('44385','20','get[1.3.6.1.2.1.1.4.0]','10551','System contact details','system.contact','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB.\r\nThe textual identification of the contact person for the managed node (or: this node), together with the contact information of this person. If no contact information is known, the value is a zero-length string.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','566c78f548bc4d1c9157b4a3f41f083b','0','2','0'),
('44386','20','get[1.3.6.1.2.1.1.1.0]','10551','System description','system.descr','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB.\r\nThe textual description of the entity. This value should include the full name and version identification number of the system\'s hardware type, software operating-system, and the networking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bc245084de0047aaa7bc62234970e827','0','2','0'),
('44387','20','get[1.3.6.1.2.1.47.1.1.1.1.13.149]','10551','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB.','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','34022f907faa4a3e8a02c5e5f5c8c43a','0','2','0'),
('44388','20','get[1.3.6.1.2.1.47.1.1.1.1.11.149]','10551','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9d42a842c591489bb984faad26cd7e63','0','2','0'),
('44389','20','get[1.3.6.1.2.1.1.6.0]','10551','System location','system.location','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB.\r\nThe physical location of this node (e.g., telephone closet, the third floor).\r\nIf the location is unknown, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5f109dce62c942f794fecaf7038d691e','0','2','0'),
('44390','20','get[1.3.6.1.2.1.1.5.0]','10551','System name','system.name','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB.\r\nThe administratively-assigned name for this node. By convention, this is the node\'s fully-qualified domain name. If the name is unknown, the value is a zero-length string.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','31ff1ef55d69461bbc5b4416c7a040be','0','2','0'),
('44391','20','get[1.3.6.1.2.1.1.2.0]','10551','System object ID','system.objectid','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB.\r\nThe vendor\'s authoritative identification of the network management subsystem contained in the entity. This value is allocated within the SMI enterprise\'s subtree (1.3.6.1.4.1) and provides an easy and unambiguous means for determining "what kind of box" is being managed.\r\nFor example, if the 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".','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a60cce9cf0464d6292d6b7934e9cfcd6','0','2','0'),
('44392','20','get[1.3.6.1.4.1.9.9.25.1.1.1.2.5]','10551','Operating system','system.sw.os','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: CISCO-IMAGE-MIB','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e02a0a8de70547e4895b395b616919dd','0','2','0'),
('44393','20','get[1.3.6.1.6.3.10.2.1.3.0]','10551','Uptime (snmp)','system.uptime','1m','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMP-FRAMEWORK-MIB::snmpEngineTime.\r\nThe number of seconds since the value of the `snmpEngineBoots` object has had a last change.\r\nWhen incrementing this object\'s value would cause it to exceed its maximum, the `snmpEngineBoots` is incremented as if a re-initialization had occurred,\r\nand this object\'s value consequently reverts to zero.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','83405503b84d4af292e6846ccbd8a877','0','2','0'),
('44394','5','','10551','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'1067','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','edb1d93d5fda47928dcb62223ada8b16','0','2','0'),
('44427','0','','10076','Get filesystems','vfs.fs.get','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The `vfs.fs.get` key acquires raw information set about the filesystems. Later to be extracted by preprocessing in dependent items.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','95e14453e9ee4b6ea036fab09bf2b194','0','2','0'),
('44430','0','','10075','Get filesystems','vfs.fs.get','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The `vfs.fs.get` key acquires raw information set about the filesystems. Later to be extracted by preprocessing in dependent items.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9695b40b38f74bb3bb5d127af1ba13ce','0','2','0'),
('44433','0','','10077','Get filesystems','vfs.fs.get','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The `vfs.fs.get` key acquires raw information set about the filesystems. Later to be extracted by preprocessing in dependent items.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','05adecd1fb3e4c85b826dfdd601fa444','0','2','0'),
('44436','0','','10001','Get filesystems','vfs.fs.get','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The `vfs.fs.get` key acquires raw information set about the filesystems. Later to be extracted by preprocessing in dependent items.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','868440292732425c8f9df52882822c82','0','2','0'),
('44442','7','','10343','Get filesystems','vfs.fs.get','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The `vfs.fs.get` key acquires raw information set about the filesystems. Later to be extracted by preprocessing in dependent items.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6c1de983421846c9acef8f465ff2f196','0','2','0'),
('44445','0','','10079','Get filesystems','vfs.fs.get','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The `vfs.fs.get` key acquires raw information set about the filesystems. Later to be extracted by preprocessing in dependent items.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bf99f88e47a64ecab98de4f3cfe6592f','0','2','0'),
('44447','0','','10074','Get filesystems','vfs.fs.get','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The `vfs.fs.get` key acquires raw information set about the filesystems. Later to be extracted by preprocessing in dependent items.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b5de01cf628b48cb899a8ad2a02a3b62','0','2','0'),
('44450','0','','10078','Get filesystems','vfs.fs.get','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The `vfs.fs.get` key acquires raw information set about the filesystems. Later to be extracted by preprocessing in dependent items.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','897f991e6f8f433bbd52a958f4f54c08','0','2','0'),
('44453','0','','10081','Get filesystems','vfs.fs.get','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The `vfs.fs.get` key acquires raw information set about the filesystems. Later to be extracted by preprocessing in dependent items.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f59d6794a6b94e93aced78a688507677','0','2','0'),
('44455','7','','10351','Get filesystems','vfs.fs.get','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The `vfs.fs.get` key acquires raw information set about the filesystems. Later to be extracted by preprocessing in dependent items.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','60a17a94a9ad4e4192547d0a6a1e1d25','0','2','0'),
('44457','19','','10552','Get Control-M servers','controlm.servers','10m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Gets a list of servers.','0','30d','0','',NULL,'','{$API.URI.ENDPOINT}/config/servers','','','200','1','0','','x-api-key: {$API.TOKEN}','0','0','0','0','0','0','0','7d9ed576aeb045798b78414c89f3e597','0','2','0'),
('44458','19','','10552','Get SLA services','controlm.services','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Gets all the SLA active services.','0','30d','0','',NULL,'','{$API.URI.ENDPOINT}/run/services/sla','','','200','1','0','','x-api-key: {$API.TOKEN}','0','0','0','0','0','0','0','2bd2c27b8dc74656a00f6d2006399388','0','2','0'),
('44459','19','','10553','Get agents','controlm.agents','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Gets agents for the server.','0','30d','0','',NULL,'','{$API.URI.ENDPOINT}/config/server/{$SERVER.NAME}/agents','','','200','1','0','','x-api-key: {$API.TOKEN}','0','0','0','0','0','0','0','94e45567531543119d6e36b4463684c7','0','2','0'),
('44460','19','','10553','Get jobs','controlm.jobs','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Gets the status of jobs.','0','30d','0','',NULL,'','{$API.URI.ENDPOINT}/run/jobs/status','[{"ctm":"{$SERVER.NAME}"}]','','200','1','0','','x-api-key: {$API.TOKEN}','0','0','0','0','0','0','0','1f60be3e3fe543d697047ffcad7b0a7f','0','2','0'),
('44461','19','','10553','Get Control-M server stats','controlm.server.stats','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Gets the statistics of the server.','0','30d','0','',NULL,'','{$API.URI.ENDPOINT}/config/servers','','','200','1','0','','x-api-key: {$API.TOKEN}','0','0','0','0','0','0','0','67ca527f452b43aab2e3171e49f96194','0','2','0'),
('44494','21','','10555','Get metrics','veeam.get.metrics','5m','0','0','0','4','','','','',NULL,NULL,'var Veeam = {\r\n params: {},\r\n token: \'\',\r\n\r\n setParams: function (params) {\r\n [\'api_endpoint\', \'user\', \'password\', \'created_after\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n\r\n Veeam.params = params;\r\n if (typeof Veeam.params.api_endpoint === \'string\' && !Veeam.params.api_endpoint.endsWith(\'/\')) {\r\n Veeam.params.api_endpoint += \'/\';\r\n }\r\n if (Veeam.params.created_after >= 365 || Veeam.params.created_after <= 1) {\r\n throw \'Incorrect "created_after" parameter given: \' + Veeam.params.created_after + \'\\nMust be between 1 and 365 days.\';\r\n }\r\n },\r\n\r\n login: function () {\r\n\r\n var resp, login = new HttpRequest();\r\n if (typeof Veeam.params.http_proxy !== \'undefined\' && Veeam.params.http_proxy !== \'\') {\r\n login.setProxy(Veeam.params.http_proxy);\r\n }\r\n login.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n login.addHeader(\'x-api-version: 1.0-rev2\');\r\n resp = login.post(Veeam.params.api_endpoint + \'api/oauth2/token\',\r\n \'grant_type=password&username=\' + encodeURIComponent(Veeam.params.user) + \'&password=\' + encodeURIComponent(Veeam.params.password));\r\n\r\n if (login.getStatus() !== 200 || resp === null) {\r\n throw \'Login failed with status code \' + login.getStatus() + \': \' + resp;\r\n }\r\n\r\n try {\r\n resp = JSON.parse(resp);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse authentication token for the logon session.\';\r\n }\r\n if (!resp.hasOwnProperty(\'access_token\')) {\r\n throw \'Auth response does not contain access token.\';\r\n }\r\n Veeam.token = resp[\'access_token\'];\r\n\r\n },\r\n\r\n request: function (url) {\r\n\r\n var response, request = new HttpRequest();\r\n if (typeof Veeam.params.http_proxy !== \'undefined\' && Veeam.params.http_proxy !== \'\') {\r\n request.setProxy(Veeam.params.http_proxy);\r\n }\r\n if (Veeam.token) {\r\n request.addHeader(\'Authorization: Bearer \' + Veeam.token);\r\n request.addHeader(\'x-api-version: 1.0-rev2\');\r\n response = request.get(url);\r\n }\r\n if (request.getStatus() !== 200 || response === null) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n try {\r\n return JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from API.\';\r\n }\r\n },\r\n\r\n getMetricsData: function () {\r\n var data = {};\r\n ms = 86400000;\r\n start_date = new Date((new Date().getTime()) - ms * Veeam.params.created_after).toISOString().replace(/\\.\\d+/, \'\');\r\n endpoints = {\r\n \'proxies\': \'api/v1/backupInfrastructure/proxies\',\r\n \'managedServers\': \'api/v1/backupInfrastructure/managedServers\',\r\n \'repositories_states\': \'api/v1/backupInfrastructure/repositories/states\',\r\n \'jobs_states\': \'api/v1/jobs/states\',\r\n \'sessions\': \'api/v1/sessions?createdAfterFilter=\' + encodeURIComponent(start_date)\r\n };\r\n\r\n Object.keys(endpoints).forEach(function (key) {\r\n data[key] = Veeam.request(Veeam.params.api_endpoint + endpoints[key]);\r\n });\r\n\r\n return data;\r\n }\r\n};\r\n\r\ntry {\r\n Veeam.setParams(JSON.parse(value));\r\n Veeam.login();\r\n return JSON.stringify(Veeam.getMetricsData());\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ VEEAM ] ERROR: \' + error);\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'The result of API requests is expressed in the JSON.','0','30d','0','',NULL,'{$VEEAM.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','f8ef587e6d204e7da6e27e56b1131ca4','0','2','0'),
('44516','21','','10556','Get metrics','veeam.manager.get.metrics','5m','0','0','0','4','','','','',NULL,NULL,'var Veeam = {\r\n params: {},\r\n\r\n setParams: function (params) {\r\n [\'api_endpoint\', \'user\', \'password\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n\r\n Veeam.params = params;\r\n if (typeof Veeam.params.api_endpoint === \'string\' && !Veeam.params.api_endpoint.endsWith(\'/\')) {\r\n Veeam.params.api_endpoint += \'/\';\r\n }\r\n },\r\n\r\n request: function (url) {\r\n var response, request = new HttpRequest();\r\n if (typeof Veeam.params.http_proxy !== \'undefined\' && Veeam.params.http_proxy !== \'\') {\r\n request.setProxy(Veeam.params.http_proxy);\r\n }\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Authorization: Basic \' + btoa(Veeam.params.user + \':\' + Veeam.params.password));\r\n request.post(Veeam.params.api_endpoint + \'api/sessionMngr\');\r\n response = request.get(url);\r\n if (request.getStatus() !== 200 || response === null) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n try {\r\n return JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from API.\';\r\n }\r\n },\r\n\r\n getMetricsData: function() {\r\n var data = {};\r\n endpoints = {\r\n \'backupFiles\': \'api/backupFiles\',\r\n };\r\n reports_summary = Veeam.request(Veeam.params.api_endpoint + \'api/reports/summary\')\r\n if (typeof reports_summary !== \'object\' || reports_summary.hasOwnProperty(\'Links\') === false)\r\n throw \'Failed response parse. Check debug log for more information.\';\r\n reports_summary.Links.forEach(function (field) {\r\n data[field.Name] = Veeam.request(field.Href)\r\n })\r\n Object.keys(endpoints).forEach(function (key) {\r\n data[key] = Veeam.request(Veeam.params.api_endpoint + endpoints[key]);\r\n if (typeof data[key] !== \'object\' || data[key].hasOwnProperty(\'Refs\') === false)\r\n throw \'Failed response parse. Check debug log for more information.\';\r\n data[key].Refs.forEach(function (field) {\r\n data[field.Name] = Veeam.request(field.Href)\r\n }) \r\n })\r\n return data;\r\n }\r\n\r\n};\r\ntry {\r\n Veeam.setParams(JSON.parse(value));\r\n return JSON.stringify(Veeam.getMetricsData());\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ VEEAM MANAGER ] ERROR: \' + error);\r\n return JSON.stringify({\'error\': error});\r\n}','','0','','','','','0',NULL,'The result of API requests is expressed in the JSON.','0','30d','0','',NULL,'{$VEEAM.MANAGER.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','525a61ff4fb747efab6ac58d1ac8b7c4','0','2','0'),
('44530','21','','10557','Get data','azure.db.mssql.data.get','1m','0','0','0','4','','','','',NULL,NULL,'var AzureDB = {\r\n params: {},\r\n token: null,\r\n\r\n setParams: function (params) {\r\n [\'app_id\', \'password\', \'tenant_id\', \'subscription_id\', \'resource_id\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n\r\n AzureDB.params = params;\r\n },\r\n\r\n\r\n request: function (url, data) {\r\n if (typeof data === \'undefined\' || data === null) {\r\n data = \'\';\r\n }\r\n\r\n var response, request = new HttpRequest();\r\n if (typeof AzureDB.params.proxy !== \'undefined\' && AzureDB.params.proxy !== \'\') {\r\n request.setProxy(AzureDB.params.proxy);\r\n }\r\n if (AzureDB.token) {\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Authorization: Bearer \' + AzureDB.token);\r\n }\r\n\r\n Zabbix.log(4, \'[ Azure ] Sending request: \' + url);\r\n\r\n if (data !== \'\') {\r\n request.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n response = request.post(url, data);\r\n }\r\n else {\r\n response = request.get(url);\r\n }\r\n\r\n Zabbix.log(4, \'[ Azure ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200 || response === null) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n return JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from API.\';\r\n }\r\n }\r\n\r\n};\r\n\r\nvar metrics = [\r\n \'cpu_percent\',\r\n \'physical_data_read_percent\',\r\n \'log_write_percent\',\r\n \'storage\',\r\n \'connection_successful\',\r\n \'connection_failed\',\r\n \'blocked_by_firewall\',\r\n \'deadlock\',\r\n \'storage_percent\',\r\n \'xtp_storage_percent\',\r\n \'workers_percent\',\r\n \'sessions_percent\',\r\n \'sessions_count\',\r\n \'cpu_limit\',\r\n \'cpu_used\',\r\n \'sqlserver_process_core_percent\',\r\n \'sqlserver_process_memory_percent\',\r\n \'tempdb_data_size\',\r\n \'tempdb_log_size\',\r\n \'tempdb_log_used_percent\',\r\n \'allocated_data_storage\'\r\n],\r\n day_metrics = \'full_backup_size_bytes,diff_backup_size_bytes,log_backup_size_bytes\',\r\n prepared_metrics = [],\r\n data = {};\r\n data[\'errors\'] = {};\r\n data[\'metrics\'] = {};\r\n\r\ntry {\r\n AzureDB.setParams(JSON.parse(value));\r\n\r\n try {\r\n result = AzureDB.request(\r\n \'https://login.microsoftonline.com/\' + encodeURIComponent(AzureDB.params.tenant_id) + \'/oauth2/token\',\r\n \'grant_type=client_credentials&resource=\' + encodeURIComponent(\'https://management.azure.com/\') + \'&client_id=\' + encodeURIComponent(AzureDB.params.app_id) + \'&client_secret=\' + encodeURIComponent(AzureDB.params.password)\r\n );\r\n\r\n if (\'access_token\' in result) {\r\n AzureDB.token = result[\'access_token\'];\r\n } else {\r\n throw \'Auth response does not contain access token.\';\r\n }\r\n }\r\n catch (error) {\r\n data.errors.auth = error.toString();\r\n }\r\n\r\n if (!(\'auth\' in data.errors)) {\r\n try {\r\n health = AzureDB.request(\'https://management.azure.com\' + AzureDB.params.resource_id + \'/providers/Microsoft.ResourceHealth/availabilityStatuses?api-version=2020-05-01\');\r\n if (\'value\' in health && Array.isArray(health.value) && health.value.length > 0 && \'properties\' in health.value[0] && typeof health.value[0].properties === \'object\') {\r\n data.health = health.value[0].properties;\r\n }\r\n }\r\n catch (error) {\r\n data.errors.health = error.toString();\r\n }\r\n\r\n for (var i = 0; i < metrics.length; i += 20) {\r\n var chunk = metrics.slice(i, i + 20);\r\n\r\n prepared_metrics.push(\r\n chunk.map(function (element) {\r\n return encodeURIComponent(element);\r\n }).join(\',\')\r\n );\r\n }\r\n\r\n start_date = new Date((new Date().getTime()) - 300000).toISOString().replace(/\\.\\d+/, \'\');\r\n end_date = new Date().toISOString().replace(/\\.\\d+/, \'\');\r\n\r\n for (var j in prepared_metrics) {\r\n try {\r\n metrics_data = AzureDB.request(\'https://management.azure.com\' + AzureDB.params.resource_id + \'/providers/Microsoft.Insights/metrics?metricnames=\' + prepared_metrics[j] + \'×pan=\' + encodeURIComponent(start_date) + \'/\' + encodeURIComponent(end_date) + \'&api-version=2021-05-01\');\r\n if (\'value\' in metrics_data && Array.isArray(metrics_data.value) && metrics_data.value.length > 0) {\r\n for (k in metrics_data.value) {\r\n if (\'name\' in metrics_data.value[k] && typeof metrics_data.value[k].name === \'object\' && \'value\' in metrics_data.value[k].name && typeof metrics_data.value[k].name.value === \'string\' && \'timeseries\' in metrics_data.value[k] && Array.isArray(metrics_data.value[k].timeseries) && metrics_data.value[k].timeseries.length > 0 && \'data\' in metrics_data.value[k].timeseries[0] && Array.isArray(metrics_data.value[k].timeseries[0].data) && metrics_data.value[k].timeseries[0].data.length > 0) {\r\n data.metrics[metrics_data.value[k].name.value.replace(/(\\s|\\/)+/g, \'\')] = metrics_data.value[k].timeseries[0].data[metrics_data.value[k].timeseries[0].data.length - 1];\r\n }\r\n }\r\n }\r\n }\r\n catch (error) {\r\n data.errors[prepared_metrics[j]] = error.toString();\r\n }\r\n }\r\n start_date = new Date((new Date().getTime()) - 86400000).toISOString().replace(/\\.\\d+/, \'\');\r\n end_date = new Date().toISOString().replace(/\\.\\d+/, \'\');\r\n try {\r\n metrics_data = AzureDB.request(\'https://management.azure.com\' + AzureDB.params.resource_id + \'/providers/Microsoft.Insights/metrics?metricnames=\' + day_metrics + \'×pan=\' + encodeURIComponent(start_date) + \'/\' + encodeURIComponent(end_date) + \'&api-version=2021-05-01\');\r\n if (\'value\' in metrics_data && Array.isArray(metrics_data.value) && metrics_data.value.length > 0) {\r\n for (l in metrics_data.value) {\r\n if (\'name\' in metrics_data.value[l] && typeof metrics_data.value[l].name === \'object\' && \'value\' in metrics_data.value[l].name && typeof metrics_data.value[l].name.value === \'string\' && \'timeseries\' in metrics_data.value[l] && Array.isArray(metrics_data.value[l].timeseries) && metrics_data.value[l].timeseries.length > 0 && \'data\' in metrics_data.value[l].timeseries[0] && Array.isArray(metrics_data.value[l].timeseries[0].data) && metrics_data.value[l].timeseries[0].data.length > 0) {\r\n data.metrics[metrics_data.value[l].name.value.replace(/(\\s|\\/)+/g, \'\')] = metrics_data.value[l].timeseries[0].data[metrics_data.value[l].timeseries[0].data.length - 1];\r\n }\r\n }\r\n }\r\n }\r\n catch (error) {\r\n data.errors[day_metrics] = error.toString();\r\n }\r\n }\r\n}\r\ncatch (error) {\r\n data.errors.params = error.toString();\r\n}\r\n\r\nif (Object.keys(data.errors).length !== 0) {\r\n errors = \'Failed to receive data:\';\r\n for (var error in data.errors) {\r\n errors += \'\\n\' + error + \' : \' + data.errors[error];\r\n }\r\n data.errors = errors;\r\n}\r\nelse {\r\n data.errors = \'\';\r\n}\r\n\r\nreturn JSON.stringify(data);','','0','','','','','0',NULL,'The result of API requests is expressed in the JSON.','0','30d','0','',NULL,'{$AZURE.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','741cc1ec6a824e429f06b3d12a8a7082','0','2','0'),
('44531','21','','10558','Get data','azure.db.mssql.data.get','1m','0','0','0','4','','','','',NULL,NULL,'var AzureDB = {\r\n params: {},\r\n token: null,\r\n\r\n setParams: function (params) {\r\n [\'app_id\', \'password\', \'tenant_id\', \'subscription_id\', \'resource_id\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n\r\n AzureDB.params = params;\r\n },\r\n\r\n\r\n request: function (url, data) {\r\n if (typeof data === \'undefined\' || data === null) {\r\n data = \'\';\r\n }\r\n var response, request = new HttpRequest();\r\n if (typeof AzureDB.params.proxy !== \'undefined\' && AzureDB.params.proxy !== \'\') {\r\n request.setProxy(AzureDB.params.proxy);\r\n }\r\n if (AzureDB.token) {\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Authorization: Bearer \' + AzureDB.token);\r\n }\r\n\r\n Zabbix.log(4, \'[ Azure ] Sending request: \' + url);\r\n\r\n if (data !== \'\') {\r\n request.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n response = request.post(url, data);\r\n }\r\n else {\r\n response = request.get(url);\r\n }\r\n\r\n Zabbix.log(4, \'[ Azure ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200 || response === null) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n return JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from API.\';\r\n }\r\n }\r\n\r\n};\r\n\r\nvar metrics = [\r\n \'cpu_percent\',\r\n \'physical_data_read_percent\',\r\n \'log_write_percent\',\r\n \'storage\',\r\n \'connection_successful\',\r\n \'connection_failed\',\r\n \'blocked_by_firewall\',\r\n \'deadlock\',\r\n \'storage_percent\',\r\n \'xtp_storage_percent\',\r\n \'workers_percent\',\r\n \'sessions_percent\',\r\n \'cpu_limit\',\r\n \'cpu_used\',\r\n \'sqlserver_process_core_percent\',\r\n \'sqlserver_process_memory_percent\',\r\n \'tempdb_data_size\',\r\n \'tempdb_log_size\',\r\n \'tempdb_log_used_percent\',\r\n \'app_cpu_billed\',\r\n \'app_cpu_percent\',\r\n \'app_memory_percent\',\r\n \'allocated_data_storage\'\r\n],\r\n prepared_metrics = [],\r\n data = {};\r\n data[\'errors\'] = {};\r\n data[\'metrics\'] = {};\r\n\r\ntry {\r\n AzureDB.setParams(JSON.parse(value));\r\n\r\n try {\r\n result = AzureDB.request(\r\n \'https://login.microsoftonline.com/\' + encodeURIComponent(AzureDB.params.tenant_id) + \'/oauth2/token\',\r\n \'grant_type=client_credentials&resource=\' + encodeURIComponent(\'https://management.azure.com/\') + \'&client_id=\' + encodeURIComponent(AzureDB.params.app_id) + \'&client_secret=\' + encodeURIComponent(AzureDB.params.password)\r\n );\r\n\r\n if (\'access_token\' in result) {\r\n AzureDB.token = result[\'access_token\'];\r\n } else {\r\n throw \'Auth response does not contain access token.\';\r\n }\r\n }\r\n catch (error) {\r\n data.errors.auth = error.toString();\r\n }\r\n\r\n if (!(\'auth\' in data.errors)) {\r\n try {\r\n health = AzureDB.request(\'https://management.azure.com\' + AzureDB.params.resource_id + \'/providers/Microsoft.ResourceHealth/availabilityStatuses?api-version=2020-05-01\');\r\n if (\'value\' in health && Array.isArray(health.value) && health.value.length > 0 && \'properties\' in health.value[0] && typeof health.value[0].properties === \'object\') {\r\n data.health = health.value[0].properties;\r\n }\r\n }\r\n catch (error) {\r\n data.errors.health = error.toString();\r\n }\r\n\r\n for (var i = 0; i < metrics.length; i += 20) {\r\n var chunk = metrics.slice(i, i + 20);\r\n\r\n prepared_metrics.push(\r\n chunk.map(function (element) {\r\n return encodeURIComponent(element);\r\n }).join(\',\')\r\n );\r\n }\r\n\r\n start_date = new Date((new Date().getTime()) - 300000).toISOString().replace(/\\.\\d+/, \'\');\r\n end_date = new Date().toISOString().replace(/\\.\\d+/, \'\');\r\n\r\n for (var j in prepared_metrics) {\r\n try {\r\n metrics_data = AzureDB.request(\'https://management.azure.com\' + AzureDB.params.resource_id + \'/providers/Microsoft.Insights/metrics?metricnames=\' + prepared_metrics[j] + \'×pan=\' + encodeURIComponent(start_date) + \'/\' + encodeURIComponent(end_date) + \'&api-version=2021-05-01\');\r\n if (\'value\' in metrics_data && Array.isArray(metrics_data.value) && metrics_data.value.length > 0) {\r\n for (k in metrics_data.value) {\r\n if (\'name\' in metrics_data.value[k] && typeof metrics_data.value[k].name === \'object\' && \'value\' in metrics_data.value[k].name && typeof metrics_data.value[k].name.value === \'string\' && \'timeseries\' in metrics_data.value[k] && Array.isArray(metrics_data.value[k].timeseries) && metrics_data.value[k].timeseries.length > 0 && \'data\' in metrics_data.value[k].timeseries[0] && Array.isArray(metrics_data.value[k].timeseries[0].data) && metrics_data.value[k].timeseries[0].data.length > 0) {\r\n data.metrics[metrics_data.value[k].name.value.replace(/(\\s|\\/)+/g, \'\')] = metrics_data.value[k].timeseries[0].data[metrics_data.value[k].timeseries[0].data.length - 1];\r\n }\r\n }\r\n }\r\n }\r\n catch (error) {\r\n data.errors[prepared_metrics[j]] = error.toString();\r\n }\r\n }\r\n }\r\n}\r\ncatch (error) {\r\n data.errors.params = error.toString();\r\n}\r\n\r\nif (Object.keys(data.errors).length !== 0) {\r\n errors = \'Failed to receive data:\';\r\n for (var error in data.errors) {\r\n errors += \'\\n\' + error + \' : \' + data.errors[error];\r\n }\r\n data.errors = errors;\r\n}\r\nelse {\r\n data.errors = \'\';\r\n}\r\n\r\nreturn JSON.stringify(data);','','0','','','','','0',NULL,'The result of API requests is expressed in the JSON.','0','30d','0','',NULL,'{$AZURE.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','e1c668773b974deeaf64c0d51d1cb02d','0','2','0'),
('44634','0','','10081','Operating system','system.sw.os','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c86dd0a8dbba468696cc09a9f9575769','0','2','0'),
('44635','7','','10351','Operating system','system.sw.os','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5159e7263d7a42e499380b70e9d6490a','0','2','0'),
('44642','0','','10560','Get process summary','proc.get[,,,summary]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The summary of data metrics for all processes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','803390429cf949d3b8439dd5dd71c706','0','2','0'),
('44653','0','','10561','Host name of Zabbix agent running','agent.hostname','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f46c6142cf434df1b6abe9334bf6c84c','0','2','0'),
('44654','0','','10561','Zabbix agent ping','agent.ping','1m','31d','365d','0','3','','','','',NULL,'1077','','','0','','','','','0',NULL,'The agent always returns "1" for this item. May be used in combination with `nodata()` for the availability check.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','37a952edc12f47d6ac6f3ca04eb41326','0','2','0'),
('44655','0','','10561','Version of Zabbix agent running','agent.version','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3a6af03a083b4366bd1d4c6ccf06ca88','0','2','0'),
('44656','5','','10561','Zabbix agent availability','zabbix[host,agent,available]','1m','31d','365d','0','3','','','','',NULL,'1076','','','0','','','','','0',NULL,'Used for monitoring the availability status of the agent.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','49708b126e3844b898d2625f77c0030c','0','2','0'),
('44657','7','','10562','Host name of Zabbix agent running','agent.hostname','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ca27c17d8ca34643a7db8b99d2cc3025','0','2','0'),
('44658','7','','10562','Zabbix agent ping','agent.ping','1m','31d','365d','0','3','','','','',NULL,'1079','','','0','','','','','0',NULL,'The agent always returns "1" for this item. May be used in combination with `nodata()` for the availability check.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0f86ec6cde2249f7946c678f9fd2665a','0','2','0'),
('44659','7','','10562','Version of Zabbix agent running','agent.version','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','41fb0f76fa1d464f8ab67f744fc29e8b','0','2','0'),
('44660','5','','10562','Active agent availability','zabbix[host,active_agent,available]','1m','31d','365d','0','3','','','','',NULL,'1078','','','0','','','','','0',NULL,'Availability of active checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - unknown\r\n1 - available\r\n2 - not available','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0fd83c56dce244738607cd6585a6acb3','0','2','0'),
('44661','3','','10563','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'1080','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0db3c804c6174c018071e15cbc8c56ae','0','2','0'),
('44662','3','','10563','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5d306c51188e496ba19b75b99e28cc7b','0','2','0'),
('44663','3','','10563','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9ad39c8c6ede46e6953aa6f9466eaf69','0','2','0'),
('44664','17','','10563','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2cda26906f254e13985cecdbb7901d1a','0','2','0'),
('44665','20','get[1.3.6.1.2.1.1.4.0]','10563','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','62da59c7aae54df7976f327119fe7cc2','0','2','0'),
('44666','20','get[1.3.6.1.2.1.1.1.0]','10563','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','29a3e5277de94386a5985fcf38a09364','0','2','0'),
('44667','20','get[1.3.6.1.2.1.25.1.1.0]','10563','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b12afb0277494024b1638ce620c4f2d4','0','2','0'),
('44668','20','get[1.3.6.1.2.1.1.6.0]','10563','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','02b453f44c014f2bb1054e801058b381','0','2','0'),
('44669','20','get[1.3.6.1.2.1.1.5.0]','10563','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3996a3a8d927473aa07c47e63a09b865','0','2','0'),
('44670','20','get[1.3.6.1.2.1.1.3.0]','10563','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','000b97abddcd44bfb57e0eeb1b77f69e','0','2','0'),
('44671','20','get[1.3.6.1.2.1.1.2.0]','10563','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9dbcc5a1cd7240c896e2ea718f9ccb35','0','2','0'),
('44672','5','','10563','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'1081','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3e8c2d440441416b9ccec7dd90e21503','0','2','0'),
('44673','3','','10564','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'1082','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','db5a94f6cea14deba957202b2f014469','0','2','0'),
('44674','3','','10564','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','04b21adaf422473a88df2c52786474ed','0','2','0'),
('44675','3','','10564','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a79e33e5fd264725b934f603fa071555','0','2','0'),
('44785','5','','10047','Connector queue','zabbix[connector_queue]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The count of values enqueued in the connector queue.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1a185ce77d4e4dd49be5b9ded51c1460','0','2','0'),
('44786','5','','10047','Utilization of connector manager internal processes, in %','zabbix[process,connector manager,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the connector manager processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2fcfd911ae8647149bad91c883abf41d','0','2','0'),
('44787','5','','10047','Utilization of connector worker internal processes, in %','zabbix[process,connector worker,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the connector worker processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1c8c3b3045384a39af8baa9e40f2b487','0','2','0'),
('44795','21','','10531','Get storage accounts','azure.get.storage.acc','10m','0','0','0','4','','','','',NULL,NULL,'var Azure = {\r\n params: {},\r\n token: \'\',\r\n\r\n setParams: function (params) {\r\n [\'app_id\', \'password\', \'tenant_id\', \'subscription_id\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n\r\n Azure.params = params;\r\n },\r\n\r\n login: function () {\r\n var response, login = new HttpRequest();\r\n if (typeof Azure.params.proxy !== \'undefined\' && Azure.params.proxy !== \'\') {\r\n login.setProxy(Azure.params.proxy);\r\n }\r\n login.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n response = login.post(\r\n \'https://login.microsoftonline.com/\' + encodeURIComponent(Azure.params.tenant_id) + \'/oauth2/token\',\r\n \'grant_type=client_credentials&resource=\' + encodeURIComponent(\'https://management.azure.com/\') + \'&client_id=\' + encodeURIComponent(Azure.params.app_id) + \'&client_secret=\' + encodeURIComponent(Azure.params.password)\r\n );\r\n\r\n if (login.getStatus() !== 200) {\r\n throw \'Login failed with status code \' + login.getStatus() + \': \' + response;\r\n }\r\n try {\r\n response = JSON.parse(response);\r\n if (!response.hasOwnProperty(\'access_token\')) {\r\n throw null;\r\n }\r\n }\r\n catch (error) {\r\n throw \'Authentication response does not contain access token.\';\r\n }\r\n\r\n Azure.token = response[\'access_token\'];\r\n },\r\n\r\n request: function (url) {\r\n var response, request = new HttpRequest();\r\n if (typeof Azure.params.proxy !== \'undefined\' && Azure.params.proxy !== \'\') {\r\n request.setProxy(Azure.params.proxy);\r\n }\r\n if (!Azure.token) {\r\n throw \'Request does not contain access token.\';\r\n }\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Authorization: Bearer \' + Azure.token);\r\n response = request.get(url);\r\n\r\n if (request.getStatus() !== 200) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n try {\r\n return JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from API.\';\r\n }\r\n },\r\n\r\n getField: function (data, path) {\r\n var steps = path.split(\'.\');\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n\r\n data = data[step];\r\n }\r\n\r\n return data;\r\n },\r\n\r\n getMetricsData: function () {\r\n var metric = Azure.request(\'https://management.azure.com/subscriptions/\' + encodeURIComponent(Azure.params.subscription_id) + \'/providers/Microsoft.Storage/storageAccounts?api-version=2021-05-01\'),\r\n data = [];\r\n\r\n if (!metric.hasOwnProperty(\'value\')) {\r\n throw \'Failed getting required field. Check debug log for more information.\';\r\n }\r\n for (k in metric.value) {\r\n id = Azure.getField(metric.value[k], \'id\');\r\n json = {};\r\n input = id.split(\'/\');\r\n for (var i = 1; i < input.length; i += 2) {\r\n json[input[i]] = input[i + 1];\r\n }\r\n data.push({\r\n \'name\': Azure.getField(metric.value[k], \'name\'),\r\n \'id\': id,\r\n \'resourceGroup\': Azure.getField(json, \'resourceGroups\'),\r\n \'location\': Azure.getField(metric.value[k], \'location\'),\r\n \'token\': Azure.token\r\n });\r\n }\r\n\r\n return data;\r\n }\r\n};\r\n\r\ntry {\r\n Azure.setParams(JSON.parse(value));\r\n Azure.login();\r\n return JSON.stringify(Azure.getMetricsData());\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ Azure ] ERROR: \' + error);\r\n return JSON.stringify({\'error\': error});\r\n}','','0','','','','','0',NULL,'The result of API requests is expressed in the JSON.','0','30d','0','',NULL,'{$AZURE.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','91b2290d65b949ad9ea801763c35cf40','0','2','0'),
('44796','21','','10568','Get data','azure.cosmosdb.data.get','1m','0','0','0','4','','','','',NULL,NULL,'var AzureCosmosDB = {\r\n params: {},\r\n token: null,\r\n\r\n setParams: function (params) {\r\n [\'app_id\', \'password\', \'tenant_id\', \'subscription_id\', \'resource_id\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n\r\n AzureCosmosDB.params = params;\r\n },\r\n\r\n login: function () {\r\n var response, login = new HttpRequest();\r\n if (typeof AzureCosmosDB.params.proxy !== \'undefined\' && AzureCosmosDB.params.proxy !== \'\') {\r\n login.setProxy(AzureCosmosDB.params.proxy);\r\n }\r\n login.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n response = login.post(\r\n \'https://login.microsoftonline.com/\' + encodeURIComponent(AzureCosmosDB.params.tenant_id) + \'/oauth2/token\',\r\n \'grant_type=client_credentials&resource=\' + encodeURIComponent(\'https://management.azure.com/\') + \'&client_id=\' + encodeURIComponent(AzureCosmosDB.params.app_id) + \'&client_secret=\' + encodeURIComponent(AzureCosmosDB.params.password)\r\n );\r\n\r\n if (login.getStatus() !== 200) {\r\n throw \'Login failed with status code \' + login.getStatus() + \': \' + response;\r\n }\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse login session response.\';\r\n }\r\n if (!response.hasOwnProperty(\'access_token\')) {\r\n throw \'Authentication response does not contain access token.\';\r\n }\r\n AzureCosmosDB.token = response[\'access_token\'];\r\n },\r\n\r\n request: function (url) {\r\n var response, request = new HttpRequest();\r\n if (typeof AzureCosmosDB.params.proxy !== \'undefined\' && AzureCosmosDB.params.proxy !== \'\') {\r\n request.setProxy(AzureCosmosDB.params.proxy);\r\n }\r\n if (!AzureCosmosDB.token) {\r\n throw \'Request does not contain access token.\';\r\n }\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Authorization: Bearer \' + AzureCosmosDB.token);\r\n Zabbix.log(4, \'[ AzureCosmosDB ] request url: \' + url);\r\n response = request.get(url);\r\n\r\n if (request.getStatus() !== 200) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n try {\r\n return JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from API.\';\r\n }\r\n },\r\n\r\n getField: function (data, path) {\r\n var steps = path.split(\'.\');\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n\r\n data = data[step];\r\n }\r\n\r\n return data;\r\n },\r\n\r\n getMetricsData: function () {\r\n var data = {};\r\n start_date = new Date((new Date().getTime()) - 600000).toISOString().replace(/\\.\\d+/, \'\');\r\n end_date = new Date(new Date().getTime()).toISOString().replace(/\\.\\d+/, \'\');\r\n endpoints = {\r\n \'availability\': \'/providers/Microsoft.Insights/metrics?metricnames=ServiceAvailability&api-version=2021-05-01&interval=PT1H×pan=\' + encodeURIComponent(start_date) + \'/\' + encodeURIComponent(end_date),\r\n \'requests\': \'/providers/Microsoft.Insights/metrics?metricnames=DataUsage,IndexUsage,DocumentQuota,AvailableStorage,DocumentCount,NormalizedRUConsumption,PhysicalPartitionThroughputInfo,PhysicalPartitionSizeInfo,AutoscaleMaxThroughput,ProvisionedThroughput,TotalRequests,TotalRequestUnits,MetadataRequests,MongoRequests,MongoRequestCharge,ServerSideLatency,ServerSideLatencyGateway,ServerSideLatencyDirect,ReplicationLatency&api-version=2021-05-01×pan=\' + encodeURIComponent(start_date) + \'/\' + encodeURIComponent(end_date),\r\n };\r\n\r\n Object.keys(endpoints).forEach(function (field) {\r\n data[field] = {};\r\n try {\r\n metrics = AzureCosmosDB.request(\'https://management.azure.com\' + AzureCosmosDB.params.resource_id + endpoints[field]);\r\n if (!metrics.hasOwnProperty(\'value\')) {\r\n throw \'Failed getting required field. Check debug log for more information.\';\r\n }\r\n\r\n for (k in metrics.value) {\r\n key = AzureCosmosDB.getField(metrics.value[k], \'name.value\')\r\n if (metrics.value[k].timeseries.length === 0) {\r\n metrics.value[k].timeseries.push({ \'data\': [\'nodata\'] })\r\n }\r\n data[field][key] = AzureCosmosDB.getField(metrics.value[k], \'timeseries.0.data.0\');\r\n }\r\n }\r\n catch (error) {\r\n data.error = error.toString();\r\n }\r\n });\r\n return data\r\n }\r\n\r\n};\r\n\r\ntry {\r\n AzureCosmosDB.setParams(JSON.parse(value));\r\n AzureCosmosDB.login();\r\n return JSON.stringify(AzureCosmosDB.getMetricsData());\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ AzureCosmosDB ] ERROR: \' + error);\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'The result of API requests is expressed in the JSON.','0','30d','0','',NULL,'{$AZURE.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','647faea1597c4da6a3cd78694be8e77e','0','2','0'),
('44866','21','','10570','Authorization','gcp.authorization','{$GCP.AUTH.FREQUENCY}','0','0','0','4','','','','',NULL,NULL,'var auth_url = \'https://oauth2.googleapis.com/token\',\r\n issued = Math.floor(new Date().getTime() / 1000),\r\n expires = issued + 3600,\r\n endpoint = \'https://www.googleapis.com/auth/\',\r\n scopes = [\'cloud-platform.read-only\', \'monitoring\', \'compute.readonly\', \'sqlservice.admin\'],\r\n scope = scopes.map(function (path) { return endpoint + path; }).join(\' \');\r\n\r\nfunction base64url(source) {\r\n encodedSource = btoa(source);\r\n encodedSource = encodedSource.replace(/=+$/, \'\');\r\n encodedSource = encodedSource.replace(/\\+/g, \'-\');\r\n encodedSource = encodedSource.replace(/\\//g, \'_\');\r\n\r\n return encodedSource;\r\n}\r\n\r\nfunction fromHex(hex) {\r\n var utf8array = [];\r\n\r\n if (hex.length % 2)\r\n throw \'Invalid length of a hex string!\';\r\n for (var i = 0; i < hex.length; i += 2) {\r\n utf8array.push(parseInt(hex.substr(i, 2), 16));\r\n }\r\n return new Uint8Array(utf8array);\r\n}\r\n\r\nfunction encodeJWT(headers, payload, secret) {\r\n unsignedToken = base64url(JSON.stringify(headers)) + \'.\' + base64url(JSON.stringify(payload));\r\n jwt = unsignedToken + \'.\' + base64url(fromHex(sign(\'sha256\', secret, unsignedToken)));\r\n return jwt;\r\n}\r\n\r\nfunction exchangeJwtForAccessToken(signed_jwt) {\r\n\r\n var request = new HttpRequest(),\r\n params = {\r\n grant_type: \'urn:ietf:params:oauth:grant-type:jwt-bearer\',\r\n assertion: signed_jwt\r\n }\r\n if (typeof script_params.proxy !== \'undefined\' && script_params.proxy !== \'\') {\r\n request.setProxy(script_params.proxy);\r\n };\r\n var response = request.post(auth_url, JSON.stringify(params));\r\n\r\n Zabbix.log(4, \'[ GCP API ] [ \' + auth_url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from GCP API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n if (typeof response !== \'object\' || response === null) {\r\n throw \'Cannot process response data: received data is not an object. Check debug log for more information.\';\r\n }\r\n\r\n if (request.getStatus() !== 200) {\r\n if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n throw response.error.message;\r\n }\r\n else {\r\n throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n\r\n if (typeof response.access_token !== \'undefined\') {\r\n return response.access_token;\r\n }\r\n else {\r\n throw \'No access token in the JWT exchange request.\';\r\n }\r\n}\r\n\r\nfunction checkParams(params) {\r\n [\'pkey_id\', \'private_key\', \'email\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n return params;\r\n}\r\n\r\nvar script_params = checkParams(JSON.parse(value)),\r\n headers = {\r\n alg: \'RS256\',\r\n kid: script_params.pkey_id,\r\n typ: \'JWT\'\r\n },\r\n payload = {\r\n iss: script_params.email,\r\n sub: script_params.email,\r\n aud: auth_url,\r\n iat: issued,\r\n exp: expires,\r\n scope: scope\r\n };\r\n\r\ntry {\r\n jwt = encodeJWT(headers, payload, script_params.private_key);\r\n token = exchangeJwtForAccessToken(jwt);\r\n return token;\r\n}\r\ncatch (err) {\r\n return JSON.stringify({ error: err });\r\n}','','0','','','','','0',NULL,'Google Cloud Platform REST authorization with service account authentication parameters and temporary-generated RSA-based JWT-token usage.\r\nThe necessary scopes are pre-defined.\r\nReturns a signed authorization token with 1 hour lifetime; it is required only once, and is used for all the dependent script items.\r\nCheck the template documentation for the details.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','5cc3faa82f404b38b513958f323f3d7d','0','2','0'),
('44867','19','','10571','Instance state','gcp.cloudsql.mssql.inst.state','1m','31d','365d','0','3','','','','',NULL,'1087','','','0','','','','','0',NULL,'GCP Cloud SQL MSSQL Current instance state.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','https://monitoring.googleapis.com/v3/projects/{$GCP.PROJECT.ID}/timeSeries:query','','{"query":"cloudsql.googleapis.com/database/state | within 5m | filter database_id = \'{$GCP.PROJECT.ID}:{HOST.NAME}\'"}','','1','0','','Content-Type: application/json\r\nAuthorization: Bearer {$GCP.AUTH.TOKEN}','0','1','0','0','0','0','0','556c96cf1bf342f99c69dc47813f221e','0','2','0'),
('44868','21','','10571','Resources get','gcp.cloudsql.mssql.resources.get','{$GCP.TIME.WINDOW}','0','0','0','4','','','','',NULL,NULL,'var base_path = \'cloudsql.googleapis.com/database/sqlserver/transactions/\',\r\n arr = [],\r\n base_paths = [\r\n \'deadlock_count\',\r\n \'lock_wait_count\',\r\n \'lock_wait_time\'\r\n ];\r\n\r\nfunction getField(data, path) {\r\n var steps = path.split(\'.\');\r\n\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field "\' + path + \'" is not present in data received.\';\r\n }\r\n data = data[step];\r\n }\r\n return data;\r\n}\r\n\r\nfunction checkParams(params) {\r\n [\'project_id\', \'time_window\', \'database_id\', \'token\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n if (!params.time_window.match(/^[0-9]+(m|h)$/)) {\r\n throw \'Incorrect update interval for parameter time_window. Valid ranges 1m-23h.\';\r\n }\r\n return params;\r\n}\r\n\r\nfunction getHttpData(url, token, body) {\r\n var request = new HttpRequest();\r\n if (typeof params.proxy !== \'undefined\' && params.proxy !== \'\') {\r\n request.setProxy(params.proxy);\r\n };\r\n request.addHeader(\'Authorization: Bearer \' + token);\r\n request.addHeader(\'Content-Type: application/json\');\r\n\r\n var response = request.post(url, JSON.stringify(body));\r\n\r\n Zabbix.log(4, \'[ GCP API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from GCP API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n if (typeof response !== \'object\' || response === null) {\r\n throw \'Cannot process response data: received data is not an object. Check debug log for more information.\';\r\n }\r\n\r\n if (request.getStatus() !== 200) {\r\n if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n throw response.error.message;\r\n }\r\n else {\r\n throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n }\r\n }\r\n return response;\r\n};\r\n\r\nvar params = checkParams(JSON.parse(value)),\r\n j_filter = \' | within \' + params.time_window + " | filter database_id = \'" + params.database_id + "\'" + \' | join\',\r\n url = \'https://monitoring.googleapis.com/v3/projects/\' + params.project_id + \'/timeSeries:query\',\r\n raw = getHttpData(url, params.token, { query: \'{\' + base_paths.map(function (path) { return base_path + path; }).join(\';\') + \'}\' + j_filter }),\r\n metrics = getField(raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n time_series = getField(raw, \'timeSeriesData\');\r\n\r\nfor (t in time_series) {\r\n data = {\r\n resource: getField(time_series[t], \'labelValues.3.stringValue\'),\r\n metrics: {}\r\n };\r\n\r\n for (i in metrics) {\r\n re = /(^t_\\d+\\.value(_|\\.))/g;\r\n data[\'metrics\'][getField(metrics[i], \'key\').replace(re, \'\')] = getField(time_series[t], \'pointData.0.values.\' + i + \'.int64Value\');\r\n }\r\n arr.push(data);\r\n}\r\nreturn JSON.stringify(arr);','','0','','','','','0',NULL,'MSSQL resources data in raw format.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','7ee117702e1f40faadd901faa9d333ff','0','2','0'),
('44869','21','','10571','Metrics get','gcp.cloudsql.mssql.metrics.get','{$GCP.TIME.WINDOW}','0','0','0','4','','','','',NULL,NULL,'var base_path = \'cloudsql.googleapis.com/database/\',\r\n mssql_path = \'cloudsql.googleapis.com/database/sqlserver/\',\r\n obj = {},\r\n base_paths = [\r\n \'cpu/reserved_cores\',\r\n \'cpu/usage_time\',\r\n \'cpu/utilization\',\r\n \'disk/read_ops_count\',\r\n \'disk/write_ops_count\',\r\n \'memory/quota\',\r\n \'memory/total_usage\',\r\n \'memory/usage\',\r\n \'network/connections\',\r\n \'network/received_bytes_count\',\r\n \'network/sent_bytes_count | map ignore [destination]\'\r\n ].map(function (path) { return base_path + path; }),\r\n mssql_paths = [\r\n \'connections/connection_reset_count\',\r\n \'connections/login_attempt_count\',\r\n \'connections/logout_count\',\r\n \'connections/processes_blocked\',\r\n \'memory/buffer_cache_hit_ratio\',\r\n \'memory/checkpoint_page_count\',\r\n \'memory/lazy_write_count\',\r\n \'memory/memory_grants_pending\',\r\n \'memory/page_life_expectancy\',\r\n \'memory/free_list_stall_count\',\r\n \'transactions/batch_request_count\',\r\n \'transactions/forwarded_record_count\',\r\n \'transactions/full_scan_count\',\r\n \'transactions/page_split_count\',\r\n \'transactions/probe_scan_count\',\r\n \'transactions/sql_compilation_count\',\r\n \'transactions/sql_recompilation_count\'\r\n ].map(function (path) { return mssql_path + path; }).concat(\r\n [\'disk/bytes_used\', \'disk/utilization\', \'disk/quota\'].map(function (path) { return base_path + path; })),\r\n value_types = [\'int64Value\', \'doubleValue\', \'stringValue\', \'boolValue\'];\r\n\r\nfunction getField(data, path) {\r\n var steps = path.split(\'.\');\r\n\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field "\' + path + \'" is not present in data received.\';\r\n }\r\n data = data[step];\r\n }\r\n return data;\r\n}\r\n\r\nfunction getFieldBool(data, path) {\r\n var steps = path.split(\'.\');\r\n\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n return false;\r\n }\r\n data = data[step];\r\n }\r\n return true;\r\n}\r\n\r\nfunction checkParams(params) {\r\n [\'project_id\', \'time_window\', \'database_id\', \'token\', \'audited\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n if (!params.time_window.match(/^[0-9]+(m|h)$/)) {\r\n throw \'Incorrect update interval for parameter time_window. Valid ranges 1m-23h.\';\r\n }\r\n if (params.audited !== \'true\' && params.audited !== \'false\') {\r\n throw \'Incorrect audit definition type. Valid definitions: true/false\';\r\n }\r\n return params;\r\n}\r\n\r\nfunction getHttpData(url, token, body) {\r\n var request = new HttpRequest();\r\n if (typeof params.proxy !== \'undefined\' && params.proxy !== \'\') {\r\n request.setProxy(params.proxy);\r\n };\r\n request.addHeader(\'Authorization: Bearer \' + token);\r\n request.addHeader(\'Content-Type: application/json\');\r\n\r\n var response = request.post(url, JSON.stringify(body));\r\n\r\n Zabbix.log(4, \'[ GCP API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from GCP API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n if (typeof response !== \'object\' || response === null) {\r\n throw \'Cannot process response data: received data is not an object. Check debug log for more information.\';\r\n }\r\n\r\n if (request.getStatus() !== 200) {\r\n if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n throw response.error.message;\r\n }\r\n else {\r\n throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n }\r\n }\r\n return response;\r\n};\r\n\r\nfunction rawMap(raw, prefix) {\r\n var keys = getField(raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n values = getField(raw, \'timeSeriesData.0.pointData.0.values\'),\r\n re = /(^t_\\d+\\.value\\.)/g;\r\n\r\n for (i in keys) {\r\n var key = getField(keys[i], \'key\').replace(re, \'\');\r\n\r\n for (v in value_types) {\r\n if (typeof values[i][value_types[v]] !== \'undefined\') {\r\n if (prefix) {\r\n obj[prefix + key] = values[i][value_types[v]];\r\n }\r\n else {\r\n obj[key] = values[i][value_types[v]];\r\n }\r\n\r\n }\r\n }\r\n }\r\n return obj;\r\n}\r\n\r\nfunction singleMetrics(tsd) {\r\n var result = {};\r\n\r\n for (t in tsd) {\r\n for (v in value_types) {\r\n if (getFieldBool(tsd[t], \'pointData.0.values.0.\' + [value_types[v]])) {\r\n result[\'mssql_\' + getField(tsd[t], \'labelValues.3.stringValue\').toLowerCase()] = tsd[t].pointData[0].values[0][value_types[v]];\r\n break;\r\n }\r\n }\r\n }\r\n return result;\r\n}\r\n\r\nvar params = checkParams(JSON.parse(value));\r\n\r\nif (params.audited === \'true\') {\r\n base_paths.push(mssql_path + \'audits_size\');\r\n};\r\n\r\nvar filter = \' | within \' + params.time_window + " | filter database_id = \'" + params.database_id + "\'",\r\n j_filter = filter + \' | join\',\r\n url = \'https://monitoring.googleapis.com/v3/projects/\' + params.project_id + \'/timeSeries:query\',\r\n queries = [\r\n { name: \'base_\', data: { query: \'{\' + base_paths.join(\';\') + \'}\' + j_filter } },\r\n { name: \'mssql_\', data: { query: \'{\' + mssql_paths.join(\';\') + \'}\' + j_filter } }\r\n ];\r\n\r\nfor (q in queries) {\r\n raw = getHttpData(url, params.token, queries[q].data);\r\n obj = Object.assign(obj, rawMap(raw, queries[q].name));\r\n}\r\n\r\nobj.base_ram_pused = Math.floor(getField(obj, \'base_usage\') / getField(obj, \'base_quota\') * 100);\r\n\r\nvar single_queries = [\r\n { query: mssql_path + \'memory/page_operation_count\' + filter }\r\n];\r\n\r\nif (params.audited === \'true\') {\r\n single_queries.push({ query: mssql_path + \'audits_upload_count\' + filter });\r\n}\r\n\r\nfor (q in single_queries) {\r\n raw = getHttpData(url, params.token, single_queries[q]);\r\n Object.assign(obj, singleMetrics(getField(raw, \'timeSeriesData\')));\r\n}\r\n\r\nreturn JSON.stringify(obj);','','0','','','','','0',NULL,'MSSQL metrics data in raw format.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','6de08b07cecc47a88bde22de5d1b4e5a','0','2','0'),
('44870','21','','10571','Schedulers get','gcp.cloudsql.mssql.schedulers.get','{$GCP.TIME.WINDOW}','0','0','0','4','','','','',NULL,NULL,'var base_path = \'cloudsql.googleapis.com/database/sqlserver/schedulers/\',\r\n arr = [],\r\n base_paths = [\'active_workers\', \'current_tasks\', \'current_workers\', \'pending_disk_io\', \'runnable_tasks\', \'work_queue\'];\r\n\r\nfunction getField(data, path) {\r\n var steps = path.split(\'.\');\r\n\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field "\' + path + \'" is not present in data received.\';\r\n }\r\n data = data[step];\r\n }\r\n return data;\r\n}\r\n\r\nfunction checkParams(params) {\r\n [\'project_id\', \'time_window\', \'database_id\', \'token\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n if (!params.time_window.match(/^[0-9]+(m|h)$/)) {\r\n throw \'Incorrect update interval for parameter time_window. Valid ranges 1m-23h.\';\r\n }\r\n return params;\r\n}\r\n\r\nfunction getHttpData(url, token, body) {\r\n var request = new HttpRequest();\r\n if (typeof params.proxy !== \'undefined\' && params.proxy !== \'\') {\r\n request.setProxy(params.proxy);\r\n };\r\n request.addHeader(\'Authorization: Bearer \' + token);\r\n request.addHeader(\'Content-Type: application/json\');\r\n\r\n var response = request.post(url, JSON.stringify(body));\r\n\r\n Zabbix.log(4, \'[ GCP API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from GCP API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n if (typeof response !== \'object\' || response === null) {\r\n throw \'Cannot process response data: received data is not an object. Check debug log for more information.\';\r\n }\r\n\r\n if (request.getStatus() !== 200) {\r\n if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n throw response.error.message;\r\n }\r\n else {\r\n throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n }\r\n }\r\n return response;\r\n};\r\n\r\nvar params = checkParams(JSON.parse(value)),\r\n j_filter = \' | within \' + params.time_window + " | filter database_id = \'" + params.database_id + "\'" + \' | join\',\r\n url = \'https://monitoring.googleapis.com/v3/projects/\' + params.project_id + \'/timeSeries:query\',\r\n raw = getHttpData(url, params.token, { query: \'{\' + base_paths.map(function (path) { return base_path + path; }).join(\';\') + \'}\' + j_filter }),\r\n metrics = getField(raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n time_series = getField(raw, \'timeSeriesData\');\r\n\r\nfor (t in time_series) {\r\n data = {\r\n scheduler: getField(time_series[t], \'labelValues.3.stringValue\'),\r\n metrics: {}\r\n };\r\n\r\n for (i in metrics) {\r\n re = /(^t_\\d+\\.value(_|\\.))/g;\r\n data[\'metrics\'][getField(metrics[i], \'key\').replace(re, \'\')] = getField(time_series[t], \'pointData.0.values.\' + i + \'.int64Value\');\r\n }\r\n arr.push(data);\r\n}\r\nreturn JSON.stringify(arr);','','0','','','','','0',NULL,'MSSQL schedulers data in raw format.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','3c14882329b94b8e88ca5d85e21bb7c8','0','2','0'),
('44871','21','','10571','Databases get','gcp.cloudsql.mssql.db.get','{$GCP.TIME.WINDOW}','0','0','0','4','','','','',NULL,NULL,'var base_path = \'cloudsql.googleapis.com/database/sqlserver/transactions/\',\r\n arr = [],\r\n base_paths = [\r\n \'log_bytes_flushed_count\',\r\n \'transaction_count\'\r\n ];\r\n\r\nfunction getField(data, path) {\r\n var steps = path.split(\'.\');\r\n\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field "\' + path + \'" is not present in data received.\';\r\n }\r\n data = data[step];\r\n }\r\n return data;\r\n}\r\n\r\nfunction checkParams(params) {\r\n [\'project_id\', \'time_window\', \'database_id\', \'token\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n if (!params.time_window.match(/^[0-9]+(m|h)$/)) {\r\n throw \'Incorrect update interval for parameter time_window. Valid ranges 1m-23h.\';\r\n }\r\n return params;\r\n}\r\n\r\nfunction getHttpData(url, token, body) {\r\n var request = new HttpRequest();\r\n if (typeof params.proxy !== \'undefined\' && params.proxy !== \'\') {\r\n request.setProxy(params.proxy);\r\n };\r\n request.addHeader(\'Authorization: Bearer \' + token);\r\n request.addHeader(\'Content-Type: application/json\');\r\n\r\n var response = request.post(url, JSON.stringify(body));\r\n\r\n Zabbix.log(4, \'[ GCP API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from GCP API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n if (typeof response !== \'object\' || response === null) {\r\n throw \'Cannot process response data: received data is not an object. Check debug log for more information.\';\r\n }\r\n\r\n if (request.getStatus() !== 200) {\r\n if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n throw response.error.message;\r\n }\r\n else {\r\n throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n }\r\n }\r\n return response;\r\n};\r\n\r\nvar params = checkParams(JSON.parse(value)),\r\n j_filter = \' | within \' + params.time_window + " | filter database_id = \'" + params.database_id + "\'" + \' | join\',\r\n url = \'https://monitoring.googleapis.com/v3/projects/\' + params.project_id + \'/timeSeries:query\',\r\n raw = getHttpData(url, params.token, { query: \'{\' + base_paths.map(function (path) { return base_path + path; }).join(\';\') + \'}\' + j_filter }),\r\n metrics = getField(raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n time_series = getField(raw, \'timeSeriesData\');\r\n\r\nfor (t in time_series) {\r\n data = {\r\n database: getField(time_series[t], \'labelValues.3.stringValue\'),\r\n metrics: {}\r\n };\r\n\r\n for (i in metrics) {\r\n re = /(^t_\\d+\\.value(_|\\.))/g;\r\n data[\'metrics\'][getField(metrics[i], \'key\').replace(re, \'\')] = getField(time_series[t], \'pointData.0.values.\' + i + \'.int64Value\');\r\n }\r\n arr.push(data);\r\n}\r\nreturn JSON.stringify(arr);','','0','','','','','0',NULL,'MSSQL databases data in raw format.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','ecdd1774ef744bcb93e8e4094e29772f','0','2','0'),
('44872','19','','10571','DB engine state','gcp.cloudsql.mssql.db.state','1m','31d','365d','0','3','','','','',NULL,'1086','','','0','','','','','0',NULL,'GCP Cloud SQL MSSQL DB Engine State.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','https://monitoring.googleapis.com/v3/projects/{$GCP.PROJECT.ID}/timeSeries:query','','{"query":"cloudsql.googleapis.com/database/up | within 5m | filter database_id = \'{$GCP.PROJECT.ID}:{HOST.NAME}\'"}','','1','0','','Content-Type: application/json\r\nAuthorization: Bearer {$GCP.AUTH.TOKEN}','0','1','0','0','0','0','0','9806c645a10a4e1d8fbb39eb1d3ac993','0','2','0'),
('44873','21','','10572','Replica metrics get','gcp.cloudsql.mssql.repl.metrics.get','{$GCP.TIME.WINDOW}','0','0','0','4','','','','',NULL,NULL,'var base_path = \'cloudsql.googleapis.com/database/sqlserver/replication/\',\r\n obj = {},\r\n base_paths = [\r\n \'bytes_sent_to_replica_count | map ignore [replica_name]\',\r\n \'resent_message_count | map ignore [replica_name]\',\r\n \'log_apply_pending_queue\',\r\n \'log_bytes_received_count\',\r\n \'recovery_queue\',\r\n \'redone_bytes_count\'\r\n ];\r\n\r\nfunction getField(data, path) {\r\n var steps = path.split(\'.\');\r\n\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field "\' + path + \'" is not present in data received.\';\r\n }\r\n data = data[step];\r\n }\r\n return data;\r\n}\r\n\r\nfunction checkParams(params) {\r\n [\'project_id\', \'time_window\', \'database_id\', \'token\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n if (!params.time_window.match(/^[0-9]+(m|h)$/)) {\r\n throw \'Incorrect update interval for parameter time_window. Valid ranges 1m-23h.\';\r\n }\r\n return params;\r\n}\r\n\r\nfunction getHttpData(url, token, body) {\r\n var request = new HttpRequest();\r\n if (typeof params.proxy !== \'undefined\' && params.proxy !== \'\') {\r\n request.setProxy(params.proxy);\r\n };\r\n request.addHeader(\'Authorization: Bearer \' + token);\r\n request.addHeader(\'Content-Type: application/json\');\r\n\r\n var response = request.post(url, JSON.stringify(body));\r\n\r\n Zabbix.log(4, \'[ GCP API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from GCP API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n if (typeof response !== \'object\' || response === null) {\r\n throw \'Cannot process response data: received data is not an object. Check debug log for more information.\';\r\n }\r\n\r\n if (request.getStatus() !== 200) {\r\n if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n throw response.error.message;\r\n }\r\n else {\r\n throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n }\r\n }\r\n return response;\r\n};\r\n\r\nvar params = checkParams(JSON.parse(value)),\r\n filter = \' | within \' + params.time_window + " | filter database_id = \'" + params.database_id + "\'",\r\n j_filter = filter + \' | join\',\r\n url = \'https://monitoring.googleapis.com/v3/projects/\' + params.project_id + \'/timeSeries:query\',\r\n base_raw = getHttpData(url, params.token, { query: \'{\' + base_paths.map(function (path) { return base_path + path; }).join(\';\') + \'}\' + j_filter }),\r\n keys = getField(base_raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n values = getField(base_raw, \'timeSeriesData.0.pointData.0.values\'),\r\n re = /(^t_\\d+\\.value\\.)/g;\r\n\r\nfor (i in keys) {\r\n var value_types = [\'int64Value\', \'doubleValue\', \'stringValue\', \'boolValue\'];\r\n\r\n for (v in value_types) {\r\n if (typeof values[i][value_types[v]] !== \'undefined\') {\r\n obj[getField(keys[i], \'key\').replace(re, \'\')] = values[i][value_types[v]];\r\n }\r\n }\r\n}\r\n\r\nreturn JSON.stringify(obj);','','0','','','','','0',NULL,'MSSQL replica metrics data in raw format.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','f0d4c711863f4ca9ad76b0099a66a86d','0','2','0'),
('44874','19','','10573','Instance state','gcp.cloudsql.mysql.inst.state','1m','31d','365d','0','3','','','','',NULL,'1089','','','0','','','','','0',NULL,'GCP Cloud SQL MySQL Current instance state.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','https://monitoring.googleapis.com/v3/projects/{$GCP.PROJECT.ID}/timeSeries:query','','{"query":"cloudsql.googleapis.com/database/state | within 5m | filter database_id = \'{$GCP.PROJECT.ID}:{HOST.NAME}\'"}','','1','0','','Content-Type: application/json\r\nAuthorization: Bearer {$GCP.AUTH.TOKEN}','0','1','0','0','0','0','0','71559008ad444772b0b1212f715980ed','0','2','0'),
('44875','19','','10573','DB engine state','gcp.cloudsql.mysql.db.state','1m','31d','365d','0','3','','','','',NULL,'1088','','','0','','','','','0',NULL,'GCP Cloud SQL MySQL DB Engine State.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','https://monitoring.googleapis.com/v3/projects/{$GCP.PROJECT.ID}/timeSeries:query','','{"query":"cloudsql.googleapis.com/database/up | within 5m | filter database_id = \'{$GCP.PROJECT.ID}:{HOST.NAME}\'"}','','1','0','','Content-Type: application/json\r\nAuthorization: Bearer {$GCP.AUTH.TOKEN}','0','1','0','0','0','0','0','948dac37023c4efcaf5f830ba5d4fafe','0','2','0'),
('44876','21','','10573','Metrics get','gcp.cloudsql.mysql.metrics.get','{$GCP.TIME.WINDOW}','0','0','0','4','','','','',NULL,NULL,'var base_path = \'cloudsql.googleapis.com/database/\',\r\n mysql_path = \'cloudsql.googleapis.com/database/mysql/\',\r\n obj = {},\r\n base_paths = [\r\n \'cpu/reserved_cores\',\r\n \'cpu/usage_time\',\r\n \'cpu/utilization\',\r\n \'disk/read_ops_count\',\r\n \'disk/write_ops_count\',\r\n \'memory/quota\',\r\n \'memory/total_usage\',\r\n \'memory/usage\',\r\n \'network/connections\',\r\n \'network/received_bytes_count\',\r\n \'network/sent_bytes_count | map ignore [destination]\'\r\n ].map(function (path) { return base_path + path; }),\r\n mysql_paths = [\r\n \'innodb_buffer_pool_pages_dirty\',\r\n \'innodb_buffer_pool_pages_free\',\r\n \'innodb_buffer_pool_pages_total\',\r\n \'innodb_data_fsyncs\',\r\n \'innodb_os_log_fsyncs\',\r\n \'innodb_pages_read\',\r\n \'innodb_pages_written\',\r\n \'queries\',\r\n \'questions\',\r\n \'received_bytes_count\',\r\n \'sent_bytes_count\',\r\n \'open_tables\',\r\n \'open_table_definitions\'\r\n ].map(function (path) { return mysql_path + path; }).concat(\r\n [\'disk/bytes_used\', \'disk/utilization\', \'disk/quota\'].map(function (path) { return base_path + path; }));\r\n\r\nfunction getField(data, path) {\r\n var steps = path.split(\'.\');\r\n\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field "\' + path + \'" is not present in data received.\';\r\n }\r\n data = data[step];\r\n }\r\n return data;\r\n}\r\n\r\nfunction checkParams(params) {\r\n [\'project_id\', \'time_window\', \'database_id\', \'token\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n if (!params.time_window.match(/^[0-9]+(m|h)$/)) {\r\n throw \'Incorrect update interval for parameter time_window. Valid ranges 1m-23h.\';\r\n }\r\n return params;\r\n}\r\n\r\nfunction getHttpData(url, token, body) {\r\n var request = new HttpRequest();\r\n if (typeof params.proxy !== \'undefined\' && params.proxy !== \'\') {\r\n request.setProxy(params.proxy);\r\n };\r\n request.addHeader(\'Authorization: Bearer \' + token);\r\n request.addHeader(\'Content-Type: application/json\');\r\n\r\n var response = request.post(url, JSON.stringify(body));\r\n\r\n Zabbix.log(4, \'[ GCP API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from GCP API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n if (typeof response !== \'object\' || response === null) {\r\n throw \'Cannot process response data: received data is not an object. Check debug log for more information.\';\r\n }\r\n\r\n if (request.getStatus() !== 200) {\r\n if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n throw response.error.message;\r\n }\r\n else {\r\n throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n }\r\n }\r\n return response;\r\n};\r\n\r\nfunction rawMap(raw, prefix) {\r\n var keys = getField(raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n values = getField(raw, \'timeSeriesData.0.pointData.0.values\'),\r\n re = /(^t_\\d+\\.value\\.)/g;\r\n\r\n for (i in keys) {\r\n var key = getField(keys[i], \'key\').replace(re, \'\'),\r\n value_types = [\'int64Value\', \'doubleValue\', \'stringValue\', \'boolValue\'];\r\n\r\n for (v in value_types) {\r\n if (typeof values[i][value_types[v]] !== \'undefined\') {\r\n if (prefix) {\r\n obj[prefix + key] = values[i][value_types[v]];\r\n }\r\n else {\r\n obj[key] = values[i][value_types[v]];\r\n }\r\n\r\n }\r\n }\r\n }\r\n return obj;\r\n}\r\n\r\nvar params = checkParams(JSON.parse(value)),\r\n j_filter = \' | within \' + params.time_window + " | filter database_id = \'" + params.database_id + "\'" + \' | join\',\r\n url = \'https://monitoring.googleapis.com/v3/projects/\' + params.project_id + \'/timeSeries:query\',\r\n queries = [\r\n { name: \'base_\', data: { query: \'{\' + base_paths.join(\';\') + \'}\' + j_filter } },\r\n { name: \'mysql_\', data: { query: \'{\' + mysql_paths.join(\';\') + \'}\' + j_filter } }\r\n ];\r\n\r\nfor (q in queries) {\r\n raw = getHttpData(url, params.token, queries[q].data);\r\n obj = Object.assign(obj, rawMap(raw, queries[q].name));\r\n}\r\n\r\nobj.base_ram_pused = Math.floor(getField(obj, \'base_usage\') / getField(obj, \'base_quota\') * 100);\r\n\r\nreturn JSON.stringify(obj);','','0','','','','','0',NULL,'MySQL metrics in raw format.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','682484eaf1db4a239c69566a5cd492e2','0','2','0'),
('44877','21','','10574','Replica metrics get','gcp.cloudsql.mysql.repl.metrics.get','{$GCP.TIME.WINDOW}','0','0','0','4','','','','',NULL,NULL,'var base_path = \'cloudsql.googleapis.com/database/replication/\',\r\n mysql_path = \'cloudsql.googleapis.com/database/mysql/replication/\',\r\n raw_metrics,\r\n obj = {},\r\n base_paths = [\'network_lag\', \'replica_lag\'].map(function (path) { return base_path + path; }),\r\n mysql_paths = [\r\n \'last_io_errno\',\r\n \'last_sql_errno\',\r\n \'slave_io_running\',\r\n \'slave_sql_running\'].map(function (path) { return mysql_path + path; }).concat(\r\n [\'network_lag\', \'replica_lag\'].map(function (path) { return base_path + path; }));\r\n\r\nfunction getField(data, path) {\r\n var steps = path.split(\'.\');\r\n\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field "\' + path + \'" is not present in data received.\';\r\n }\r\n data = data[step];\r\n }\r\n return data;\r\n}\r\n\r\nfunction checkParams(params) {\r\n [\'project_id\', \'time_window\', \'database_id\', \'token\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n if (!params.time_window.match(/^[0-9]+(m|h)$/)) {\r\n throw \'Incorrect update interval for parameter time_window. Valid ranges 1m-23h.\';\r\n }\r\n return params;\r\n}\r\n\r\nfunction getHttpData(url, token, body) {\r\n var request = new HttpRequest();\r\n if (typeof params.proxy !== \'undefined\' && params.proxy !== \'\') {\r\n request.setProxy(params.proxy);\r\n };\r\n request.addHeader(\'Authorization: Bearer \' + token);\r\n request.addHeader(\'Content-Type: application/json\');\r\n\r\n var response = request.post(url, JSON.stringify(body));\r\n\r\n Zabbix.log(4, \'[ GCP API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from GCP API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n if (typeof response !== \'object\' || response === null) {\r\n throw \'Cannot process response data: received data is not an object. Check debug log for more information.\';\r\n }\r\n\r\n if (request.getStatus() !== 200) {\r\n if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n throw response.error.message;\r\n }\r\n else {\r\n throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n }\r\n }\r\n return response;\r\n};\r\n\r\nvar params = checkParams(JSON.parse(value)),\r\n filter = \' | within \' + params.time_window + " | filter database_id = \'" + params.database_id + "\'",\r\n j_filter = filter + \' | join\',\r\n url = \'https://monitoring.googleapis.com/v3/projects/\' + params.project_id + \'/timeSeries:query\',\r\n metric_raw = getHttpData(url, params.token, { query: \'{\' + mysql_paths.join(\';\') + \'}\' + j_filter }),\r\n metric_keys = getField(metric_raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n metric_values = getField(metric_raw, \'timeSeriesData.0.pointData.0.values\'),\r\n re = /(^t_\\d+\\.value\\.)/g;\r\n\r\nfor (i in metric_keys) {\r\n var value_types = [\'int64Value\', \'doubleValue\', \'stringValue\', \'boolValue\'];\r\n\r\n for (v in value_types) {\r\n if (typeof metric_values[i][value_types[v]] !== \'undefined\') {\r\n obj[getField(metric_keys[i], \'key\').replace(re, "")] = metric_values[i][value_types[v]];\r\n }\r\n }\r\n}\r\n\r\nvar state_raw = getHttpData(url, params.token, { query: base_path + \'state\' + filter }),\r\n state_keys = getField(state_raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n state_tsd = getField(state_raw, \'timeSeriesData\');\r\n\r\nfor (i in state_keys) {\r\n var state_key = getField(state_keys[i], \'key\').replace(/value\\./g, \'\');\r\n\r\n obj[state_key] = \'undefined\';\r\n for (t in state_tsd) {\r\n if (getField(state_tsd[t], \'pointData.0.values.\' + i + \'.boolValue\') == true) {\r\n obj[state_key] = getField(state_tsd[t], \'labelValues.3.stringValue\');\r\n break;\r\n }\r\n }\r\n}\r\n\r\nreturn JSON.stringify(obj);','','0','','','','','0',NULL,'MySQL replication metrics data in raw format.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','470200d2cca348bb8a670a2be3a270e3','0','2','0'),
('44878','21','','10575','Metrics get','gcp.cloudsql.pgsql.metrics.get','{$GCP.TIME.WINDOW}','0','0','0','4','','','','',NULL,NULL,'var base_path = \'cloudsql.googleapis.com/database/\',\r\n pgsql_path = \'cloudsql.googleapis.com/database/postgresql/\',\r\n obj = {},\r\n value_types = [\'int64Value\', \'doubleValue\', \'stringValue\', \'boolValue\'];\r\n\r\nfunction getField(data, path) {\r\n var steps = path.split(\'.\');\r\n\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field "\' + path + \'" is not present in data received.\';\r\n }\r\n data = data[step];\r\n }\r\n return data;\r\n}\r\n\r\nfunction checkParams(params) {\r\n [\'project_id\', \'time_window\', \'database_id\', \'token\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n if (!params.time_window.match(/^[0-9]+(m|h)$/)) {\r\n throw \'Incorrect update interval for parameter time_window. Valid ranges 1m-23h.\';\r\n }\r\n return params;\r\n}\r\n\r\nfunction getHttpData(url, token, body) {\r\n var request = new HttpRequest();\r\n if (typeof params.proxy !== \'undefined\' && params.proxy !== \'\') {\r\n request.setProxy(params.proxy);\r\n };\r\n request.addHeader(\'Authorization: Bearer \' + token);\r\n request.addHeader(\'Content-Type: application/json\');\r\n\r\n var response = request.post(url, JSON.stringify(body));\r\n\r\n Zabbix.log(4, \'[ GCP API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from GCP API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n if (typeof response !== \'object\' || response === null) {\r\n throw \'Cannot process response data: received data is not an object. Check debug log for more information.\';\r\n }\r\n\r\n if (request.getStatus() !== 200) {\r\n if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n throw response.error.message;\r\n }\r\n else {\r\n throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n }\r\n }\r\n return response;\r\n};\r\n\r\nfunction rawMap(raw, prefix) {\r\n var keys = getField(raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n values = getField(raw, \'timeSeriesData.0.pointData.0.values\'),\r\n re = /(^t_\\d+\\.value(_|\\.)|_sum$)/g;\r\n\r\n for (i in keys) {\r\n var key = getField(keys[i], \'key\').replace(re, \'\');\r\n\r\n for (v in value_types) {\r\n if (typeof values[i][value_types[v]] !== \'undefined\') {\r\n if (prefix) {\r\n obj[prefix + key] = values[i][value_types[v]];\r\n } else {\r\n obj[key] = values[i][value_types[v]];\r\n }\r\n\r\n }\r\n }\r\n }\r\n return obj;\r\n}\r\n\r\nfunction singleMetrics(tsd) {\r\n result = {};\r\n for (t in tsd) {\r\n for (v in value_types) {\r\n if (typeof tsd[t].pointData[0].values[0][value_types[v]] !== \'undefined\') {\r\n result[\'pgsql_\' + getField(tsd[t], \'labelValues.3.stringValue\').toLowerCase()] = tsd[t].pointData[0].values[0][value_types[v]];\r\n }\r\n }\r\n }\r\n return result;\r\n}\r\n\r\nvar params = checkParams(JSON.parse(value)),\r\n filter = \' | within \' + params.time_window + " | filter database_id = \'" + params.database_id + "\'",\r\n j_filter = filter + \' | join\',\r\n url = \'https://monitoring.googleapis.com/v3/projects/\' + params.project_id + \'/timeSeries:query\',\r\n base_paths = [\r\n \'cpu/reserved_cores\',\r\n \'cpu/usage_time\',\r\n \'cpu/utilization\',\r\n \'disk/read_ops_count\',\r\n \'disk/write_ops_count\',\r\n \'memory/quota\',\r\n \'memory/total_usage\',\r\n \'memory/usage\',\r\n \'network/received_bytes_count\',\r\n \'network/sent_bytes_count | map ignore [destination]\'\r\n ].map(function (path) { return base_path + path; }),\r\n pgsql_paths = [\r\n \'transaction_id_utilization \' + filter,\r\n \'temp_bytes_written_count\' + filter + \' | sum\',\r\n \'temp_files_written_count\' + filter + \' | sum\',\r\n \'num_backends\' + filter + \' | sum\'\r\n ].map(function (path) { return pgsql_path + path; }).concat(\r\n [\'disk/bytes_used\', \'disk/utilization\', \'disk/quota\'].map(function (path) { return base_path + path; })),\r\n queries = [\r\n { name: \'base_\', data: { query: \'{\' + base_paths.join(\';\') + \'}\' + j_filter } },\r\n { name: \'pgsql_\', data: { query: \'{\' + pgsql_paths.join(\';\') + \'}\' + \'| within \' + params.time_window + \'| join\' } }\r\n ];\r\n\r\nfor (q in queries) {\r\n raw = getHttpData(url, params.token, queries[q].data);\r\n obj = Object.assign(obj, rawMap(raw, queries[q].name));\r\n}\r\n\r\nobj.base_ram_pused = Math.floor((getField(obj, \'base_usage\') / getField(obj, \'base_quota\')) * 100);\r\n\r\nvar single_paths = [\'transaction_id_count\', \'vacuum/oldest_transaction_age\'],\r\n single_queries = single_paths.map(function (path) { return { query: pgsql_path + path + filter }; });\r\n\r\nfor (q in single_queries) {\r\n raw = getHttpData(url, params.token, single_queries[q]);\r\n Object.assign(obj, singleMetrics(getField(raw, \'timeSeriesData\')));\r\n}\r\n\r\nreturn JSON.stringify(obj);','','0','','','','','0',NULL,'PostgreSQL metrics data in raw format.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','9bf09a42ddd64f7eabf6bbc011eda689','0','2','0'),
('44879','19','','10575','DB engine state','gcp.cloudsql.pgsql.db.state','1m','31d','365d','0','3','','','','',NULL,'1092','','','0','','','','','0',NULL,'GCP Cloud SQL PostgreSQL DB Engine State.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','https://monitoring.googleapis.com/v3/projects/{$GCP.PROJECT.ID}/timeSeries:query','','{"query":"cloudsql.googleapis.com/database/up | within 5m | filter database_id = \'{$GCP.PROJECT.ID}:{HOST.NAME}\'"}','','1','0','','Content-Type: application/json\r\nAuthorization: Bearer {$GCP.AUTH.TOKEN}','0','1','0','0','0','0','0','27ad9640bf734dd49548c19241cc4838','0','2','0'),
('44880','19','','10575','Instance state','gcp.cloudsql.pgsql.inst.state','1m','31d','365d','0','3','','','','',NULL,'1093','','','0','','','','','0',NULL,'GCP Cloud SQL PostgreSQL Current instance state.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','https://monitoring.googleapis.com/v3/projects/{$GCP.PROJECT.ID}/timeSeries:query','','{"query":"cloudsql.googleapis.com/database/state | within 5m | filter database_id = \'{$GCP.PROJECT.ID}:{HOST.NAME}\'"}','','1','0','','Content-Type: application/json\r\nAuthorization: Bearer {$GCP.AUTH.TOKEN}','0','1','0','0','0','0','0','88fd41960538460ebfd2ed9194677cd1','0','2','0'),
('44881','21','','10576','Replica metrics get','gcp.cloudsql.pgsql.repl.metrics.get','{$GCP.TIME.WINDOW}','0','0','0','4','','','','',NULL,NULL,'var base_path = \'cloudsql.googleapis.com/database/replication/\',\r\n pgsql_path = \'cloudsql.googleapis.com/database/postgresql/replication/\',\r\n obj = {},\r\n base_paths = [\'network_lag\', \'replica_lag\', \'log_archive_failure_count\', \'log_archive_success_count\'];\r\n\r\nfunction getField(data, path) {\r\n var steps = path.split(\'.\');\r\n\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field "\' + path + \'" is not present in data received.\';\r\n }\r\n data = data[step];\r\n }\r\n return data;\r\n}\r\n\r\nfunction checkParams(params) {\r\n [\'project_id\', \'time_window\', \'database_id\', \'token\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n if (!params.time_window.match(/^[0-9]+(m|h)$/)) {\r\n throw \'Incorrect update interval for parameter time_window. Valid ranges 1m-23h.\';\r\n }\r\n return params;\r\n}\r\n\r\nfunction getHttpData(url, token, body) {\r\n var request = new HttpRequest();\r\n if (typeof params.proxy !== \'undefined\' && params.proxy !== \'\') {\r\n request.setProxy(params.proxy);\r\n };\r\n request.addHeader(\'Authorization: Bearer \' + token);\r\n request.addHeader(\'Content-Type: application/json\');\r\n\r\n var response = request.post(url, JSON.stringify(body));\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from GCP API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n if (typeof response !== \'object\' || response === null) {\r\n throw \'Cannot process response data: received data is not an object. Check debug log for more information.\';\r\n }\r\n\r\n if (request.getStatus() !== 200) {\r\n if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n throw response.error.message;\r\n }\r\n else {\r\n throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n }\r\n }\r\n return response;\r\n};\r\n\r\nvar params = checkParams(JSON.parse(value)),\r\n filter = \' | within \' + params.time_window + " | filter database_id = \'" + params.database_id + "\'",\r\n j_filter = filter + \' | join\',\r\n url = \'https://monitoring.googleapis.com/v3/projects/\' + params.project_id + \'/timeSeries:query\',\r\n metric_raw = getHttpData(url, params.token, { query: \'{\' + base_paths.map(function (path) { return base_path + path; }).join(\';\') + \'}\' + j_filter }),\r\n metric_keys = getField(metric_raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n metric_values = getField(metric_raw, \'timeSeriesData.0.pointData.0.values\'),\r\n re = /(^t_\\d+\\.value\\.)/g;\r\n\r\nfor (i in metric_keys) {\r\n var value_types = [\'int64Value\', \'doubleValue\', \'stringValue\', \'boolValue\'];\r\n\r\n for (v in value_types) {\r\n if (typeof metric_values[i][value_types[v]] !== \'undefined\') {\r\n obj[getField(metric_keys[i], \'key\').replace(re, \'\')] = metric_values[i][value_types[v]];\r\n }\r\n }\r\n}\r\n\r\nvar state_raw = getHttpData(url, params.token, { query: base_path + \'state\' + filter }),\r\n state_keys = getField(state_raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n state_tsd = getField(state_raw, \'timeSeriesData\');\r\n\r\nfor (i in state_keys) {\r\n var state_key = getField(state_keys[i], \'key\').replace(/value\\./g, \'\');\r\n\r\n obj[state_key] = \'undefined\';\r\n for (t in state_tsd) {\r\n if (getField(state_tsd[t], \'pointData.0.values.\' + i + \'.boolValue\') == true) {\r\n obj[state_key] = getField(state_tsd[t], \'labelValues.3.stringValue\');\r\n break;\r\n }\r\n }\r\n}\r\n\r\nvar lag_raw = getHttpData(url, params.token, { query: pgsql_path + \'replica_byte_lag\' + \'| within \' + params.time_window + " | filter replica_name = \'" + params.database_id + "\'" }),\r\n lag_tsd = getField(lag_raw, \'timeSeriesData\');\r\n\r\nfor (t in lag_tsd) {\r\n obj[getField(lag_tsd[t], \'labelValues.3.stringValue\')] = getField(lag_tsd[t], \'pointData.0.values.0.int64Value\');\r\n}\r\n\r\nreturn JSON.stringify(obj);','','0','','','','','0',NULL,'PostgreSQL replica metrics data in raw format.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','cb9c5aff913e4deeb29dfa1a20b5ff04','0','2','0'),
('44882','21','','10577','Metrics get','gcp.gce.metrics.get','{$GCP.TIME.WINDOW}','0','0','0','4','','','','',NULL,NULL,'var base_path = \'compute.googleapis.com/\',\r\n value_types = [\'int64Value\', \'doubleValue\', \'stringValue\', \'boolValue\'],\r\n re = /(^t_\\d+\\.value\\.)/g,\r\n obj = {},\r\n base_paths = [\r\n \'instance/uptime_total\',\r\n \'firewall/dropped_packets_count\',\r\n \'firewall/dropped_bytes_count\',\r\n \'instance/cpu/guest_visible_vcpus\',\r\n \'instance/cpu/reserved_cores\',\r\n \'instance/cpu/usage_time\',\r\n \'instance/cpu/utilization\',\r\n \'mirroring/mirrored_bytes_count\',\r\n \'mirroring/mirrored_packets_count\'\r\n ],\r\n e2_paths = [\r\n \'instance/cpu/scheduler_wait_time\',\r\n \'instance/memory/balloon/ram_size\',\r\n \'instance/memory/balloon/ram_used\',\r\n \'instance/memory/balloon/swap_in_bytes_count\',\r\n \'instance/memory/balloon/swap_out_bytes_count\',\r\n ],\r\n net_paths = [\r\n \'instance/network/received_packets_count\',\r\n \'instance/network/received_bytes_count\',\r\n \'instance/network/sent_bytes_count\',\r\n \'instance/network/sent_packets_count\'\r\n ],\r\n integrity_paths = [\r\n \'instance/integrity/late_boot_validation_status\',\r\n \'instance/integrity/early_boot_validation_status\'\r\n ];\r\n\r\nfunction getField(data, path) {\r\n var steps = path.split(\'.\');\r\n\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field "\' + path + \'" is not present in data received.\';\r\n }\r\n data = data[step];\r\n }\r\n return data;\r\n}\r\n\r\nfunction getFieldBool(data, path) {\r\n var steps = path.split(\'.\');\r\n\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n return false;\r\n }\r\n data = data[step];\r\n }\r\n return true;\r\n}\r\n\r\nfunction queryMap(array, path, filter) {\r\n var query_params = \'{\' + array.map(function (element) { return path + element; }).join(\';\') + \'}\';\r\n return { query: query_params + filter }\r\n}\r\n\r\nfunction checkParams(params) {\r\n [\'project_id\', \'time_window\', \'instance_id\', \'token\', \'machine_type\', \'integrity\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\' || params[field].match(/^\\{\\$.*\\}$/)) {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n if (!params.time_window.match(/^[0-9]+(m|h)$/)) {\r\n throw \'Incorrect update interval for parameter time_window. Valid ranges 1m-23h.\';\r\n }\r\n if (params.integrity !== \'true\' && params.integrity !== \'false\') {\r\n throw \'Incorrect integrity state definition type. Valid definitions: true/false\';\r\n }\r\n return params;\r\n}\r\n\r\nfunction getHttpData(url, token, body) {\r\n var request = new HttpRequest();\r\n if (typeof params.proxy !== \'undefined\' && params.proxy !== \'\') {\r\n request.setProxy(params.proxy);\r\n };\r\n request.addHeader(\'Authorization: Bearer \' + token);\r\n request.addHeader(\'Content-Type: application/json\');\r\n\r\n var response = request.post(url, JSON.stringify(body));\r\n\r\n Zabbix.log(4, \'[ GCP API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from GCP API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n if (typeof response !== \'object\' || response === null) {\r\n throw \'Cannot process response data: received data is not an object. Check debug log for more information.\';\r\n }\r\n\r\n if (request.getStatus() !== 200) {\r\n if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n throw response.error.message;\r\n }\r\n else {\r\n throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n }\r\n }\r\n return response;\r\n};\r\n\r\nfunction nestedMap(raw) {\r\n var ids = getField(raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n ltsd = getField(raw, \'timeSeriesData\'),\r\n result = {};\r\n\r\n for (i in ids) {\r\n var id = getField(ids[i], \'key\').replace(re, \'\');\r\n result[id] = {};\r\n for (t in ltsd) {\r\n for (v in value_types) {\r\n if (getFieldBool(ltsd[t], \'pointData.0.values.\' + [i] + \'.\' + [value_types[v]])) {\r\n [\'stringValue\', \'boolValue\'].forEach(function (type) {\r\n if (getFieldBool(ltsd[t], \'labelValues.4.\' + [type])) {\r\n result[id][ltsd[t].labelValues[4][type]] = ltsd[t].pointData[0].values[i][value_types[v]];\r\n }\r\n });\r\n\r\n }\r\n }\r\n }\r\n }\r\n return result;\r\n}\r\n\r\nvar params = checkParams(JSON.parse(value));\r\n\r\nif (params.machine_type.match(/e2.*/)) {\r\n base_paths = base_paths.concat(e2_paths);\r\n}\r\n\r\nvar filter = \' | within \' + params.time_window + " | filter instance_id = \'" + params.instance_id + "\'",\r\n j_filter = filter + \' | join\',\r\n url = \'https://monitoring.googleapis.com/v3/projects/\' + params.project_id + \'/timeSeries:query\',\r\n raw = getHttpData(url, params.token, queryMap(base_paths, base_path, j_filter)),\r\n keys = getField(raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n values = getField(raw, \'timeSeriesData.0.pointData.0.values\');\r\n\r\nfor (i in keys) {\r\n for (v in value_types) {\r\n if (typeof values[i][value_types[v]] !== \'undefined\') {\r\n obj[getField(keys[i], \'key\').replace(re, \'\')] = values[i][value_types[v]];\r\n }\r\n }\r\n}\r\n\r\nif (params.machine_type.match(/e2.*/)) {\r\n obj.ram_pused = Math.floor((getField(obj, \'ram_used\') / getField(obj, \'ram_size\')) * 100);\r\n}\r\n\r\nvar mirr_raw = getHttpData(url, params.token, { query: base_path + \'mirroring/dropped_packets_count\' + filter }),\r\n tsd = getField(mirr_raw, \'timeSeriesData\');\r\n\r\nfor (t in tsd) {\r\n for (v in value_types) {\r\n if (getFieldBool(tsd[t], \'pointData.0.values.0.\' + [value_types[v]])) {\r\n obj[getField(tsd[t], \'labelValues.3.stringValue\')] = getField(tsd[t], \'pointData.0.values.0.\' + [value_types[v]]);\r\n }\r\n }\r\n}\r\n\r\nvar net_metrics = getHttpData(url, params.token, queryMap(net_paths, base_path, j_filter));\r\n\r\nObject.assign(obj, nestedMap(net_metrics));\r\n\r\nif (params.integrity === \'true\') {\r\n integrity_metrics = getHttpData(url, params.token, queryMap(integrity_paths, base_path, j_filter));\r\n\r\n var keys = getField(integrity_metrics, \'timeSeriesDescriptor.pointDescriptors\'),\r\n tsd = getField(integrity_metrics, \'timeSeriesData\');\r\n\r\n for (i in keys) {\r\n var key = getField(keys[i], \'key\').replace(re, \'\');\r\n\r\n obj[key] = \'undefined\';\r\n for (t in tsd) {\r\n if (getField(tsd[t], \'pointData.0.values.\' + i + \'.int64Value\') == 1) {\r\n obj[key] = getField(tsd[t], \'labelValues.4.stringValue\');\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n\r\nreturn JSON.stringify(obj);','','0','','','','','0',NULL,'GCP Compute Engine metrics get in raw format.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','723fbff060ab41a39322bc0d6d8b1f84','0','2','0'),
('44883','21','','10577','Disks get','gcp.gce.disks.get','{$GCP.TIME.WINDOW}','0','0','0','4','','','','',NULL,NULL,'var base_path = \'compute.googleapis.com/instance/disk/\',\r\n base_paths = [\'read_ops_count\', \'read_bytes_count\', \'write_bytes_count\', \'write_ops_count\'];\r\n\r\nfunction checkParams(params) {\r\n [\'project_id\', \'time_window\', \'instance_id\', \'token\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n if (!params.time_window.match(/^[0-9]+(m|h)$/)) {\r\n throw \'Incorrect update interval for parameter time_window. Valid ranges 1m-23h.\';\r\n }\r\n return params;\r\n}\r\n\r\nfunction getField(data, path) {\r\n var steps = path.split(\'.\');\r\n\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field "\' + path + \'" is not present in data received.\';\r\n }\r\n data = data[step];\r\n }\r\n return data;\r\n}\r\n\r\nfunction getHttpData(url, token, body) {\r\n var request = new HttpRequest();\r\n if (typeof params.proxy !== \'undefined\' && params.proxy !== \'\') {\r\n request.setProxy(params.proxy);\r\n };\r\n request.addHeader(\'Authorization: Bearer \' + token);\r\n request.addHeader(\'Content-Type: application/json\');\r\n\r\n var response = request.post(url, JSON.stringify(body));\r\n\r\n Zabbix.log(4, \'[ GCP API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from GCP API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n if (typeof response !== \'object\' || response === null) {\r\n throw \'Cannot process response data: received data is not an object. Check debug log for more information.\';\r\n }\r\n\r\n if (request.getStatus() !== 200) {\r\n if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n throw response.error.message;\r\n }\r\n else {\r\n throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n }\r\n }\r\n return response;\r\n};\r\n\r\nvar params = checkParams(JSON.parse(value)),\r\n j_filter = \' | within \' + params.time_window + " | filter instance_id = \'" + params.instance_id + "\'" + \' | join\',\r\n url = \'https://monitoring.googleapis.com/v3/projects/\' + params.project_id + \'/timeSeries:query\',\r\n raw = getHttpData(url, params.token, { query: \'{\' + base_paths.map(function (path) { return base_path + path; }).join(\';\') + \'}\' + j_filter }),\r\n metrics = getField(raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n time_series = getField(raw, \'timeSeriesData\'),\r\n arr = [];\r\n\r\nfor (t in time_series) {\r\n data = {\r\n disk_name: getField(time_series[t], \'labelValues.3.stringValue\'),\r\n device_type: getField(time_series[t], \'labelValues.4.stringValue\'),\r\n storage_type: getField(time_series[t], \'labelValues.6.stringValue\'),\r\n metrics: {}\r\n };\r\n\r\n for (i in metrics) {\r\n re = /(^t_\\d+\\.value(_|\\.))/g;\r\n data[\'metrics\'][getField(metrics[i], \'key\').replace(re, \'\')] = getField(time_series[t], \'pointData.0.values.\' + i + \'.int64Value\');\r\n }\r\n arr.push(data);\r\n}\r\nreturn JSON.stringify(arr);','','0','','','','','0',NULL,'Disk entities and metrics related to a particular instance.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','4bdd3662247749a69bb59e6643ba7b9a','0','2','0'),
('44884','19','','10577','Instance state','gcp.gce.instance.state','1m','31d','365d','0','3','','','','',NULL,'1095','','','0','','','','','0',NULL,'GCP Compute Engine instance state.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','https://compute.googleapis.com/compute/v1/projects/{$GCP.PROJECT.ID}/zones/{$GCE.INSTANCE.ZONE}/instances/{HOST.NAME}','','','','1','0','','Content-Type: application/json\r\nAuthorization: Bearer {$GCP.AUTH.TOKEN}','0','0','0','0','0','0','0','3f82955d43694b25b1e96c9b8f4f6ffb','0','2','0'),
('45080','19','','10323','Get databases info','clickhouse.databases','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Get information about databases.','0','30d','0','',NULL,'','{$CLICKHOUSE.SCHEME}://{$CLICKHOUSE.HOST}:{$CLICKHOUSE.PORT}/','[{"query":"select database, sum(bytes) as bytes, count(distinct table) as tables, sum(rows) as rows from system.parts where active = 1 group by database format JSON"}]','','200','1','0','','X-ClickHouse-User: {$CLICKHOUSE.USER}\r\nX-ClickHouse-Key: {$CLICKHOUSE.PASSWORD}','0','0','0','0','0','0','0','b2341064c7624848bfcac198d3b5ffa9','0','2','0'),
('45128','20','walk[1.3.6.1.4.1.9.9.48.1.1.1.2,1.3.6.1.4.1.9.9.48.1.1.1.5,1.3.6.1.4.1.9.9.48.1.1.1.6]','10218','Cisco IOS: SNMP walk memory','vm.memory.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: CISCO-MEMORY-POOL-MIB\r\nDiscovery of ciscoMemoryPoolTable, a table of memory pool monitoring entries.\r\nhttp://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-protocol-snmp/15216-contiguous-memory.html.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ed5f0ebd013644adbad71e8b93d481de','0','2','0'),
('45129','20','walk[1.3.6.1.2.1.47.1.1.1.1.5,1.3.6.1.2.1.47.1.1.1.1.7,1.3.6.1.2.1.47.1.1.1.1.11]','10218','Cisco IOS: SNMP walk entity serial numbers','system.hw.serialnumber.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB\r\nEntity Serial Numbers Discovery.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1c8c82e3502c46d9b7603812d02ce27b','0','2','0'),
('45130','20','walk[1.3.6.1.4.1.9.9.109.1.1.1.1.5,1.3.6.1.4.1.9.9.109.1.1.1.1.8]','10218','Cisco IOS: SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'If your IOS device has several CPUs, you must use CISCO-PROCESS-MIB and its object cpmCPUTotal5minRev from the table called cpmCPUTotalTable,\r\nindexed with cpmCPUTotalIndex.\r\nThis table allows CISCO-PROCESS-MIB to keep CPU statistics for different physical entities in the router,\r\nlike different CPU chips, group of CPUs, or CPUs in different modules/cards.\r\nIn case of a single CPU, cpmCPUTotalTable has only one entry.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3208aa4fb7c14623bc5129018172e3b9','0','2','0'),
('45131','20','walk[1.3.6.1.4.1.9.9.13.1.3.1.2,1.3.6.1.4.1.9.9.13.1.3.1.3,1.3.6.1.4.1.9.9.13.1.3.1.6]','10218','Cisco IOS: SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovery of ciscoEnvMonTemperatureTable (ciscoEnvMonTemperatureDescr), a table of ambient temperature status maintained by the environmental monitor.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e64d32fe956f481eb6a3899f8c1e09d9','0','2','0'),
('45132','20','walk[1.3.6.1.4.1.9.9.13.1.5.1.2,1.3.6.1.4.1.9.9.13.1.5.1.3]','10218','Cisco IOS: SNMP walk PSUs','sensor.psu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The table of power supply status maintained by the environmental monitor card.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0a44183c252e4160837cfd960f755097','0','2','0'),
('45133','20','walk[1.3.6.1.4.1.9.9.13.1.4.1.2,1.3.6.1.4.1.9.9.13.1.4.1.3]','10218','Cisco IOS: SNMP walk fans','sensor.fans.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering system fans.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7eb9bdaf14274e1a99c0ff2ac17f0723','0','2','0'),
('45134','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10218','Cisco IOS: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','58168a9cd5464229a9cbb3fb0c978e85','0','2','0'),
('45135','20','walk[1.3.6.1.2.1.10.7.2.1.19,1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2]','10218','Cisco IOS: SNMP walk EtherLike-MIB interfaces','net.if.duplex.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB and EtherLike-MIB. Interfaces with `up(1)` Operational Status are discovered.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a8734672a10d41c2ba7c1f00171bb93e','0','2','0'),
('45136','20','walk[1.3.6.1.4.1.9.9.48.1.1.1.2,1.3.6.1.4.1.9.9.48.1.1.1.5,1.3.6.1.4.1.9.9.48.1.1.1.6]','10220','Cisco IOS: SNMP walk memory','vm.memory.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: CISCO-MEMORY-POOL-MIB\r\nDiscovery of ciscoMemoryPoolTable, a table of memory pool monitoring entries.\r\nhttp://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-protocol-snmp/15216-contiguous-memory.html.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','011212452fb0421aa913ceee4f59d17b','0','2','0'),
('45137','20','walk[1.3.6.1.2.1.47.1.1.1.1.5,1.3.6.1.2.1.47.1.1.1.1.7,1.3.6.1.2.1.47.1.1.1.1.11]','10220','Cisco IOS: SNMP walk entity serial numbers','system.hw.serialnumber.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB\r\nEntity Serial Numbers Discovery.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3b92777596e2442991618e5feb47567c','0','2','0'),
('45138','20','walk[1.3.6.1.4.1.9.9.13.1.3.1.2,1.3.6.1.4.1.9.9.13.1.3.1.3,1.3.6.1.4.1.9.9.13.1.3.1.6]','10220','Cisco IOS: SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovery of ciscoEnvMonTemperatureTable (ciscoEnvMonTemperatureDescr), a table of ambient temperature status maintained by the environmental monitor.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9620c1de761246e1806fda680ede7bba','0','2','0'),
('45139','20','walk[1.3.6.1.4.1.9.9.13.1.5.1.2,1.3.6.1.4.1.9.9.13.1.5.1.3]','10220','Cisco IOS: SNMP walk PSUs','sensor.psu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The table of power supply status maintained by the environmental monitor card.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cdb1b03725624ea18071a197b7e7f21e','0','2','0'),
('45140','20','walk[1.3.6.1.4.1.9.9.13.1.4.1.2,1.3.6.1.4.1.9.9.13.1.4.1.3]','10220','Cisco IOS: SNMP walk fans','sensor.fans.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering system fans.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c5cabdb91f004235b481de453db637c6','0','2','0'),
('45141','20','walk[1.3.6.1.4.1.9.9.48.1.1.1.2,1.3.6.1.4.1.9.9.48.1.1.1.5,1.3.6.1.4.1.9.9.48.1.1.1.6]','10253','Cisco IOS: SNMP walk memory','vm.memory.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: CISCO-MEMORY-POOL-MIB\r\nDiscovery of ciscoMemoryPoolTable, a table of memory pool monitoring entries.\r\nhttp://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-protocol-snmp/15216-contiguous-memory.html.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fe26641865204720a592be13d4793c99','0','2','0'),
('45142','20','walk[1.3.6.1.2.1.47.1.1.1.1.5,1.3.6.1.2.1.47.1.1.1.1.7,1.3.6.1.2.1.47.1.1.1.1.11]','10253','Cisco IOS: SNMP walk entity serial numbers','system.hw.serialnumber.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB\r\nEntity Serial Numbers Discovery.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','79968a2e878c45c290f79902e9e1cf37','0','2','0'),
('45143','20','walk[1.3.6.1.4.1.9.9.109.1.1.1.1.5]','10253','Cisco IOS: SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'If your IOS device has several CPUs, you must use CISCO-PROCESS-MIB and its object cpmCPUTotal5minRev from the table called cpmCPUTotalTable,\r\nindexed with cpmCPUTotalIndex.\r\nThis table allows CISCO-PROCESS-MIB to keep CPU statistics for different physical entities in the router,\r\nlike different CPU chips, group of CPUs, or CPUs in different modules/cards.\r\nIn case of a single CPU, cpmCPUTotalTable has only one entry.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d188b4d086734f438c3752bb3d9b1971','0','2','0'),
('45144','20','walk[1.3.6.1.4.1.9.9.13.1.3.1.2,1.3.6.1.4.1.9.9.13.1.3.1.3,1.3.6.1.4.1.9.9.13.1.3.1.6]','10253','Cisco IOS: SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovery of ciscoEnvMonTemperatureTable (ciscoEnvMonTemperatureDescr), a table of ambient temperature status maintained by the environmental monitor.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7568839f76854edca01234fb707e1558','0','2','0'),
('45145','20','walk[1.3.6.1.4.1.9.9.13.1.5.1.2,1.3.6.1.4.1.9.9.13.1.5.1.3]','10253','Cisco IOS: SNMP walk PSUs','sensor.psu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The table of power supply status maintained by the environmental monitor card.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2c7987c8fb2748978fd9f3f84b5c96d5','0','2','0'),
('45146','20','walk[1.3.6.1.4.1.9.9.13.1.4.1.2,1.3.6.1.4.1.9.9.13.1.4.1.3]','10253','Cisco IOS: SNMP walk fans','sensor.fans.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering system fans.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fa5166db7ce14744817cf098c4be46f7','0','2','0'),
('45147','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10253','Cisco IOS: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cb44245cd4224bbdaa8c5546ad483848','0','2','0'),
('45148','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10449','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f40d0ccfccd748128775c7bb3f4d9177','0','2','0'),
('45149','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10449','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fe052ca02fe84ec99dfe01443be4ddf0','0','2','0'),
('45152','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10449','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a3790b7f9524491ea12c8fae01ec0121','0','2','0'),
('45153','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10449','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f553b00ae11b448cb29889e1efc171f0','0','2','0'),
('45154','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10450','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8b1edf5ca04f4a409ac64670e9cc47d5','0','2','0'),
('45155','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10450','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9499128c1774463bab250708d911a318','0','2','0'),
('45158','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10450','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0609a92c671e4d23a17cda1c2f61999d','0','2','0'),
('45159','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10450','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','026dd9264a97421f91194ddc2cea5d6c','0','2','0'),
('45160','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10451','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','263db67af47d40bc9d63639383284fff','0','2','0'),
('45161','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10451','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3ea40037cf5048cbbbd791ebf754c473','0','2','0'),
('45164','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10451','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8450323925164aa8a98411b526de8178','0','2','0'),
('45165','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10451','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a5e69b0ccb2a498ba287245bf8914985','0','2','0'),
('45166','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10452','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','89c237c439e146af9ff1e84f70330b6c','0','2','0'),
('45167','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10452','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','00bc8fe0f076428bb92c8c5cbe2de8b1','0','2','0'),
('45170','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10452','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3da4c495d5d0420abeb9612840241097','0','2','0'),
('45171','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10452','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d00e09c5cf7145b59c0c3ee462b5ec10','0','2','0'),
('45172','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10453','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f3db6fc2fa544ee8b7603024016784f3','0','2','0'),
('45173','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10453','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','601c6b5e9f224b8f861bf05a3e2ac0dd','0','2','0'),
('45176','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10453','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ba6810f58e114c5abcb0ff9c1e105d53','0','2','0'),
('45177','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10453','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9c2738cd8cde4634bf406c3fd3da5181','0','2','0'),
('45178','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10454','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ae6075aa924446c8a73be7af098aed96','0','2','0'),
('45179','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10454','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0371d3a8d3ba4977b118a1d2c8a37c71','0','2','0'),
('45182','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10454','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6f7af549a539443eb2ea18383157e818','0','2','0'),
('45183','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10454','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','940603fe2a43458584566823954d7106','0','2','0'),
('45184','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10455','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','757ab436c2aa4500a6800ec367cdd109','0','2','0'),
('45185','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10455','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9dff6be2d3694e84aacf544f3e859790','0','2','0'),
('45188','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10455','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','409c178fb90841ffb1f2825c4eb01140','0','2','0'),
('45189','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10455','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2848d2045f9c4a76ac49bee199f622d7','0','2','0'),
('45190','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10456','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1fcdd40fa482412bbd5045c0b453c662','0','2','0'),
('45191','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10456','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','53bc8450cca74b67bde3405684dd26a9','0','2','0'),
('45194','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10456','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a2e6607f1e83434bb1ae4d14727613f1','0','2','0'),
('45195','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10456','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9838b7f90f4242c9abf16e39b7a7da81','0','2','0'),
('45196','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10457','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','be26aef4d3d54c5289ecbddd5cf65d49','0','2','0'),
('45197','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10457','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1cd91800dd174e29a159df144a897586','0','2','0'),
('45200','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10457','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b3cda334d0ed432781c81d0330f6c449','0','2','0'),
('45201','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10457','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','462a235c5c604d689f2d50bf880d5dee','0','2','0'),
('45202','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10458','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d35b717a39b44521b4cf3c9f66d090cc','0','2','0'),
('45203','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10458','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','84ba58953f8e4ee7ad5c8a3278253136','0','2','0'),
('45206','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10458','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2d2521940a8b421496c046de602748ad','0','2','0'),
('45207','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10458','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e4642df48e6e46ae878f8bbee74bfe1d','0','2','0'),
('45208','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10459','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9d427efe6eda4905a4ea8838807a3aec','0','2','0'),
('45209','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10459','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9a83fbe37f80430f986267edf2a52d4f','0','2','0'),
('45212','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10459','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d11712ab5740403f8ce5172310ce6f46','0','2','0'),
('45213','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10459','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c94d1e5e789f4521bca649ff8106b4ab','0','2','0'),
('45214','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10460','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','040616eaf53849ecbc02a4c7dea5ebd1','0','2','0'),
('45215','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10460','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bfb0d94318e1416ba02a6d691a72e5a9','0','2','0'),
('45218','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10460','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6704e6cb375f4c1fa6ba5dd0d7cc48b7','0','2','0'),
('45219','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10460','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7eea07e69bb74773b4741a220560dc21','0','2','0'),
('45220','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10461','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fa0703e764af4de88dd966d296da4cea','0','2','0'),
('45221','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10461','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f2572809e413471fa91f33189f575dc4','0','2','0'),
('45224','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10461','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','20bfa7ce2793454a9c6215dc31c1c3a2','0','2','0'),
('45225','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10461','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bdb027dba5ee41ad9213b392a20b42f2','0','2','0'),
('45226','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10462','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1ae38813c9984ddd8aae451c727200b3','0','2','0'),
('45227','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10462','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e8edfe1c42b048e69048164c04f24c99','0','2','0'),
('45230','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10462','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6cf5e50c19624d41bf53759f0dc10b4b','0','2','0'),
('45231','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10462','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0d99f44d8cd946c080edf97cdd666c4e','0','2','0'),
('45232','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10463','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3d10f1085341451cba47f63b06a4a06f','0','2','0'),
('45233','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10463','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d012ab84c8d6422cb087607c6d840358','0','2','0'),
('45236','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10463','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b78240b0045d4816a6df23d650063d5e','0','2','0'),
('45237','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10463','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7a119a4a9a8c4da0972b5ce82723d645','0','2','0'),
('45238','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10464','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e70529cb6c5745a688ab44cf3bf4fd79','0','2','0'),
('45239','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10464','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d449d74135b2411bada1c4f861fc471c','0','2','0'),
('45242','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10464','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4776694f7d35412e9269dcda24a9a884','0','2','0'),
('45243','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10464','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6eea8e195ed24eefa9cb2c11df07683b','0','2','0'),
('45244','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10465','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e4aa12d55f344d8e8a2f78ebb2242db8','0','2','0'),
('45245','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10465','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b448f8cfabf640ae9f61470baf2dbab1','0','2','0'),
('45248','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10465','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c0063fa878ba4844b1a81eec31be3a8e','0','2','0'),
('45249','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10465','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5ec4870e9f7c43c3878cf05e1f4dbf09','0','2','0'),
('45250','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10466','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','37778f9029cd486fbeedd2db776d7d8f','0','2','0'),
('45251','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10466','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cd348b7d795641c8ba04fa4eab0f312d','0','2','0'),
('45254','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10466','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','633c28cb77e345edb42366280afe8b03','0','2','0'),
('45255','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10466','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','beda6c376a0e46ee8558a0084690eeb4','0','2','0'),
('45256','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10467','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1ad2255031b94fd8a344a9436f2154af','0','2','0'),
('45257','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10467','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b555f355a97e4a1998ebb08df62c380e','0','2','0'),
('45260','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10467','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8c82a88fd1e84ebc8b364e25cd454b43','0','2','0'),
('45261','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10467','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f5e5336f6421402b8c5b2ea6df651c21','0','2','0'),
('45262','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10468','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bf66ea54f8874cc89bb11a4a3c325d1f','0','2','0'),
('45263','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10468','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','be3ad72bd2164a5cba49bc9423c97595','0','2','0'),
('45266','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10468','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e5776492fa6f4d71a1897a7cfa6b6917','0','2','0'),
('45267','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10468','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','150711267ef340699fe081bb23e7331f','0','2','0'),
('45268','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10469','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4b74f8ee93c742649c4b0b663338befa','0','2','0'),
('45269','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10469','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d3a059306c60489dbf7a7417f3a1e072','0','2','0'),
('45272','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10469','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8f509a71c40348ba9502fd6eeb795589','0','2','0'),
('45273','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10469','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1b6cbc7e31c0454c901e424757751474','0','2','0'),
('45274','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10470','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','27b2bb60cd234327bd82b0016d723e32','0','2','0'),
('45275','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10470','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c56b7dd474b64fb59d5088340e0de6c0','0','2','0'),
('45278','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10470','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f4110ec0e7474808a9d0111fe64a9bc8','0','2','0'),
('45279','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10470','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8b36357da06d4185815f5cd6f62bac4a','0','2','0'),
('45280','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10471','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2529412985f84e19a5516eff963a8498','0','2','0'),
('45281','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10471','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3760283279a4405fa74cd33f352731e6','0','2','0'),
('45284','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10471','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3fb9a05330114b8bacbe7f172a782063','0','2','0'),
('45285','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10471','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fddaf4522c1f4d18af49e3bccbc63ee3','0','2','0'),
('45286','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10472','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7ec72049975a4c9d8597414e898055ab','0','2','0'),
('45287','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10472','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9b4fcab963ff43adb954043ac7e310a0','0','2','0'),
('45290','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10472','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a352e9a765d441a1ab10e6966fb27dfd','0','2','0'),
('45291','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10472','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','124fa909031144c5b26c91c2f5cb71a1','0','2','0'),
('45292','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10473','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','31743a0c3cb14763a68b81cc715f6658','0','2','0'),
('45293','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10473','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d26a15dbe3bf4358adbc8c423c4387fc','0','2','0'),
('45296','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10473','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ac29915d449346a48c951d4b784e3c5f','0','2','0'),
('45297','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10473','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','27e581ee8e544c2598c03060bb77c087','0','2','0'),
('45298','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10474','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','93c10a76cad8418b874104acf355874c','0','2','0'),
('45299','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10474','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5a818c4ca96d4de5ae22a08f05005619','0','2','0'),
('45302','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10474','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0701e676a22f4ef894e4180f4ef3e2e4','0','2','0'),
('45303','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10474','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','352106c95d3f42b39c90b3eb69832ec0','0','2','0'),
('45304','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10475','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d9dad10e76a949bd8447e97f6b566ba8','0','2','0'),
('45305','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10475','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2e69894166ce430f8a7bf30e51948684','0','2','0'),
('45308','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10475','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1e02843c30d241f8bcf0dd63715fda44','0','2','0'),
('45309','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10475','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7c6d299419b845b99644d879daa6b0e1','0','2','0'),
('45310','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10476','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','85468f79d320417ea0f0e28087c75565','0','2','0'),
('45311','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10476','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','778d3453ddb84b53ac3598bf8ae78286','0','2','0'),
('45314','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10476','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0ca8eb8ed89a4e1eb5f4b40050a3fa7a','0','2','0'),
('45315','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10476','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9ef56761ca344a9a8774ad109bc00834','0','2','0'),
('45316','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10477','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e1fc1f83c9754629ba9c77af9edcaabe','0','2','0'),
('45317','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10477','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','eae8e0a3cf144efc8decc672413bf511','0','2','0'),
('45320','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10477','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c5ff7db372af4f2b92dfe19d45ee1b9d','0','2','0'),
('45321','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10477','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9aa7461f98fa4a5db662b35466b0b102','0','2','0'),
('45322','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10478','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0a7e39d9bd554b578f41eb1c03b14523','0','2','0'),
('45323','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10478','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','56d7791a6ba84e47b5042a035cf9a1ee','0','2','0'),
('45326','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10478','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2b5526a8b35c4733bbb79606d7818749','0','2','0'),
('45327','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10478','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','afec8f57e23f42b2837fb036952f649c','0','2','0'),
('45328','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10479','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c1e35414044f415fae94d45754fb5c8f','0','2','0'),
('45329','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10479','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','42b758a3d32b46499e2242fb083896f5','0','2','0'),
('45332','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10479','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d09dfb0d4a7141d797d8f48b97564953','0','2','0'),
('45333','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10479','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','65e7c0f418a94507a124ae74e9ba302b','0','2','0'),
('45334','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10480','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b0efa7e7c390457b860529cd06839d09','0','2','0'),
('45335','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10480','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','eace29d74902498794e0b471d478e42b','0','2','0'),
('45338','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10480','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5c2f6f54f1b7498fa4c038a6cd8e1f26','0','2','0'),
('45339','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10480','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cc31d87a9f76429d9063aa89c1e99229','0','2','0'),
('45340','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10481','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','32ee0bad03f64031b06626fd4ad22991','0','2','0'),
('45341','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10481','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cf0b87d2fca34aa0b99d58251f438c27','0','2','0'),
('45344','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10481','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2f44c6ec36f442b490cac1231bbad884','0','2','0'),
('45345','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10481','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3416ecf2fd304658b724b3c0f5de202e','0','2','0'),
('45346','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10482','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d86496cfc8444af2aabc000e6a80b689','0','2','0'),
('45347','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10482','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1cd88ad46ac74b3cb6da7702f7eade1b','0','2','0'),
('45350','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10482','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b0ae9aa61be043309a13e2675ba8fc3d','0','2','0'),
('45351','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10482','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','315cf9b2115041108a9c509650b4934d','0','2','0'),
('45352','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10483','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c0b8af43957d41bd8b69e6512f6b6a6a','0','2','0'),
('45353','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10483','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2f7865bcd7ec419bbf6598b2e8e41c39','0','2','0'),
('45356','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10483','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0402d2260bea47fba074bd90e441dd88','0','2','0'),
('45357','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10483','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','63022c75670f4965bf5f9ffe2ae5ce98','0','2','0'),
('45358','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10484','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','37a9d23461a8465a848d0adebbb5e5e1','0','2','0'),
('45359','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10484','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','09408704f52d4a8abd39fc674319a385','0','2','0'),
('45362','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10484','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8fabcdd6078443f1b27add9103ac8e73','0','2','0'),
('45363','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10484','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','392f67c076ea43bd8fb2e356e0b11ebb','0','2','0'),
('45364','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10485','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2c92b96aea704a1f9d2140e1a69a6e52','0','2','0'),
('45365','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10485','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ff529ff6cb624b9092ab5d06ddfeb6a9','0','2','0'),
('45368','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10485','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','22988243945244b0a8170aa3e50f904e','0','2','0'),
('45369','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10485','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ee7ed053257048ffa7edae3b2b0a100f','0','2','0'),
('45370','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10486','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6ff6648e94ea41198a454e9fe2c95c83','0','2','0'),
('45371','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10486','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','29d5c318ee4b4a76bed39f0caa1a4ed1','0','2','0'),
('45374','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10486','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','05b58973c1d446fb9093253f30c3478e','0','2','0'),
('45375','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10486','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2e4c6db52cf54c12afcc627a746c56c1','0','2','0'),
('45376','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10487','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d170f05138c34010b66e2bf13a40685d','0','2','0'),
('45377','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10487','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6f7e1d9451304f0788a95297eca8c5a5','0','2','0'),
('45380','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10487','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5f06a59ecc054d609afee34922983993','0','2','0'),
('45381','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10487','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','90beada4eaac4ebe87cceb3b07e4ef54','0','2','0'),
('45382','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10488','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f55f9ec7c2c1456295be98b7e47b3b02','0','2','0'),
('45383','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10488','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','150579efc2dd48c28f7cbc1d2186fa8b','0','2','0'),
('45386','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10488','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','77f78108b48c4d81a922bd23f233466f','0','2','0'),
('45387','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10488','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','77509cb42fce4c169c6057f146a8b79a','0','2','0'),
('45388','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10489','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c654378ae0234392b1526df325125b0a','0','2','0'),
('45389','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10489','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','dd634cc1e804449b90693bf1925dc3d4','0','2','0'),
('45392','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10489','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3d2748be91c24dc69202b9fed8ecd8b8','0','2','0'),
('45393','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10489','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','aec4de5980224cb8b4f7e573866ea86d','0','2','0'),
('45394','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10490','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ad95f1d123f54de3a2b06dfa32e25eed','0','2','0'),
('45395','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10490','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ed241d40ab044cb3ade0c7b4b504cade','0','2','0'),
('45398','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10490','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','44d98891c0a04a8680fe30331f0e44ac','0','2','0'),
('45399','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10490','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2999403c64bb45cfb237d11fa8392562','0','2','0'),
('45400','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10491','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','376db50b5a4e41cc9e6a2d6e0034639c','0','2','0'),
('45401','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10491','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','50b5f8dc5e3042cdac11d97d7cce14bd','0','2','0'),
('45404','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10491','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','debb90a64e164da098f27fe0a44fd18e','0','2','0'),
('45405','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10491','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8f59fcb385c5452f93b3d893522a9917','0','2','0'),
('45406','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10492','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0d3a2f07ab8643668864e90203bdaaa1','0','2','0'),
('45407','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10492','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4ee3bbf180a749d6ab35bed974677b8d','0','2','0'),
('45410','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10492','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3724f2b9d41d4cb7952734a3f96393a8','0','2','0'),
('45411','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10492','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9d86b3b5ece7456fb4baa3b557bed1c1','0','2','0'),
('45412','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10493','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a1747b98b45d40d8beb2be1806180a86','0','2','0'),
('45413','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10493','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d95cb59429ac4d50845abefc5b0d4a6b','0','2','0'),
('45416','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10493','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6ac6276902234fe085ae6fa3afe94c16','0','2','0'),
('45417','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10493','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bcbea364e6264d6a81052e19fb308de9','0','2','0'),
('45418','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10494','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5350a6c911424c839afe59812e0be1e0','0','2','0'),
('45419','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10494','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6b4efaf2db754ab3a228fa8eaae62c82','0','2','0'),
('45422','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10494','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7960fa31620c466b83b333a2045b5763','0','2','0'),
('45423','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10494','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','82e17ef7dc8e4a0eab8cbd22a5debb8b','0','2','0'),
('45424','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10495','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a40f18da3905480aa83619354feb63d3','0','2','0'),
('45425','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10495','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','78849e4286984e72ab462795c2f29b03','0','2','0'),
('45428','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10495','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','02b9eb47a0a646ea88c4d8afaa24afd7','0','2','0'),
('45429','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10495','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','15263d03b5bc40eda79495ba51042d7f','0','2','0'),
('45430','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10496','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8756dffb1a514c7c8395783689c774e7','0','2','0'),
('45431','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10496','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9244bd8596854d6eb586cd7686ec25e6','0','2','0'),
('45434','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10496','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1b22814a8b02449391c1aae1d1f25ceb','0','2','0'),
('45435','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10496','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e5abe1d4af994d86a2aeebf97ebca324','0','2','0'),
('45436','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10497','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','64d260bc3e5240309575d88c93ea8cdf','0','2','0'),
('45437','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10497','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f2d1ab4e84554749ae28567b4031e6fd','0','2','0'),
('45440','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10497','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c08c6737b99140caa73d2a81cc86f9e9','0','2','0'),
('45441','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10497','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','75214946ec7b4b0bbc8e86f9e83b7f7c','0','2','0'),
('45442','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10498','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5d66a2c3f54543908039c46cdd3e4f76','0','2','0'),
('45443','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10498','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e1120e04fc1344bebf89ec883fdd0e00','0','2','0'),
('45446','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10498','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b3383829ce684182b78dabfa908c00c2','0','2','0'),
('45447','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10498','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','934a7b99f99844ea8fac5c4c3b799898','0','2','0'),
('45448','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10499','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f65b50872b6c4ad59943002667e2fadf','0','2','0'),
('45449','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10499','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','92ff237e1b074d35b47e029168cd9f14','0','2','0'),
('45452','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10499','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e470f22a8f114567a98d50b0b440dfcd','0','2','0'),
('45453','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10499','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d3667df2f5684e479c579c48f84c8015','0','2','0'),
('45454','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10500','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cf99345bee674cd3bced77141bb267c3','0','2','0'),
('45455','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10500','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0d8544ddbb6947bbb005cec3304317a1','0','2','0'),
('45458','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10500','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','616f1ecdc8fa4f9fbdb4a967ef3148d5','0','2','0'),
('45459','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10500','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','94e1ebf58d8d43ba95ab7e6264887dfb','0','2','0'),
('45460','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10501','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','731f08c5f7004052a54842a51b04da2f','0','2','0'),
('45461','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10501','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2eb45102f7ef4abc9ee58548ea98c774','0','2','0'),
('45464','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10501','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c300402ec1054fea9d51f561ed0a9540','0','2','0'),
('45465','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10501','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2fbbb3ab2ea24c79b2d17d626eb9d9e4','0','2','0'),
('45466','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10502','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7b4cbeded8984cb881e5502258af4fe4','0','2','0'),
('45467','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10502','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fc274078fc4f4a70b85572e1ebabb681','0','2','0'),
('45470','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10502','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b1acc89ec5a44933aee32f7fce4bef74','0','2','0'),
('45471','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10502','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a7a673b6f0cd4d588828028caba5d8c7','0','2','0'),
('45472','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10233','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2af6a2f85926468ab8242e4f5c6fb096','0','2','0'),
('45473','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10233','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2f9bb0334ae74e22b3ff917dec5fa924','0','2','0'),
('45476','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10233','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a23fdffc346b4adb833924d9975542c2','0','2','0'),
('45477','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10233','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3eaa90d933914ba18663ebf21c4675bb','0','2','0'),
('45478','20','walk[1.3.6.1.4.1.11863.6.4.1.2.1.1.1,1.3.6.1.4.1.11863.6.4.1.2.1.1.2]','10236','SNMP walk memory','vm.memory.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering TPLINK-SYSMONITOR-MIB::tpSysMonitorMemoryTable, displays the memory utilization of all UNITs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4ac2fe58877e4a8ab1dedb38fe41ef3e','0','2','0'),
('45479','20','walk[1.3.6.1.4.1.11863.6.4.1.1.1.1.1,1.3.6.1.4.1.11863.6.4.1.1.1.1.3]','10236','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering TPLINK-SYSMONITOR-MIB::tpSysMonitorCpuTable, displays the CPU utilization of all UNITs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ae66a99ae15d4fe98e513745978c2ce4','0','2','0'),
('45480','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.10,1.3.6.1.2.1.2.2.1.16,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.2.2.1.5]','10236','TP-LINK: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0cf11e0dfd3b47f1a0a5d8f011e6517b','0','2','0'),
('45481','20','walk[1.3.6.1.4.1.2021.9.1.1,1.3.6.1.4.1.2021.9.1.2,1.3.6.1.4.1.2021.9.1.3,1.3.6.1.4.1.2021.9.1.10,1.3.6.1.4.1.2021.9.1.11,1.3.6.1.4.1.2021.9.1.12,1.3.6.1.4.1.2021.9.1.13,1.3.6.1.4.1.2021.9.1.14,1.3.6.1.4.1.2021.9.1.15,1.3.6.1.4.1.2021.9.1.16]','10248','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: UCD-SNMP-MIB\r\nSnmp walk through dskEntry table. Collected data used in filesystem lld and dependent item prototypes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8ad72047f03a452f9698254fe6b4ffd2','0','2','0'),
('45482','20','walk[1.3.6.1.4.1.2021.13.15.1.1.2,1.3.6.1.4.1.2021.13.15.1.1.5,1.3.6.1.4.1.2021.13.15.1.1.6,1.3.6.1.4.1.2021.13.15.1.1.9]','10248','SNMP walk block devices','vfs.dev.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Block devices are discovered from UCD-DISKIO-MIB::diskIOTable (http://net-snmp.sourceforge.net/docs/mibs/ucdDiskIOMIB.html#diskIOTable).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','94c5ede90a50467989a4559e51c0bcef','0','2','0'),
('45483','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.4.1.2021.11.53.0,1.3.6.1.4.1.2021.11.52.0,1.3.6.1.4.1.2021.11.50.0,1.3.6.1.4.1.2021.11.64.0,1.3.6.1.4.1.2021.11.61.0,1.3.6.1.4.1.2021.11.51.0,1.3.6.1.4.1.2021.11.54.0,1.3.6.1.4.1.2021.11.56.0,1.3.6.1.4.1.2021.11.65.0,1.3.6.1.4.1.2021.11.66.0]','10248','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fb2a968ed48f4c6287da2b06bc3b95f3','0','2','0'),
('45484','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10248','Linux: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','661b9bbeb1f146da9c0d9bfa8e5f26d5','0','2','0'),
('45485','20','walk[1.3.6.1.2.1.10.7.2.1.19,1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2]','10248','Linux: SNMP walk EtherLike-MIB interfaces','net.if.duplex.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB and EtherLike-MIB. Interfaces with `up(1)` Operational Status are discovered.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','da392895de1c447eb5d3f1f950360639','0','2','0'),
('45486','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.10,1.3.6.1.2.1.2.2.1.16,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.31.1.1.1.15,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20]','10249','Windows: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','649fb89829c04fe9bec44e942aeb2b42','0','2','0'),
('45487','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10249','Windows: SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'HOST-RESOURCES-MIB::hrStorage discovery.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bab2a178a60c4dddae8f11f8be344339','0','2','0'),
('45488','5','','10048','Discovery queue','zabbix[discovery_queue]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The count of values enqueued in the discovery queue.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ca8a1cafec6e44a4b31f9ec5a6ed00cb','0','2','0'),
('45489','5','','10048','Utilization of discovery manager internal processes, in %','zabbix[process,discovery manager,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the discovery manager processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','930bf9db6c754a17ab5026961d6369ba','0','2','0'),
('45490','5','','10048','Utilization of discovery worker internal processes, in %','zabbix[process,discovery worker,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the discovery worker processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','eeee7e927a854b61b166a13b8eb98f28','0','2','0'),
('45494','5','','10047','Discovery queue','zabbix[discovery_queue]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The count of values enqueued in the discovery queue.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8e02b4a9afbb4ae994f2210aac8aab83','0','2','0'),
('45495','5','','10047','Utilization of discovery manager internal processes, in %','zabbix[process,discovery manager,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the discovery manager processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0a06a1b172c14e068cfc4ecee1511ffc','0','2','0'),
('45496','5','','10047','Utilization of discovery worker internal processes, in %','zabbix[process,discovery worker,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the discovery worker processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a88bad7225d3417da697220615252226','0','2','0'),
('45511','5','','10048','Utilization of agent poller data collector processes, in %','zabbix[process,agent poller,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the agent poller processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','998df832cf58436ea7707331338d5f3b','0','2','0'),
('45512','5','','10048','Utilization of http agent poller data collector processes, in %','zabbix[process,http agent poller,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the http agent poller processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','584c5ee90cff40e2befc38061ce8e7e7','0','2','0'),
('45515','5','','10047','Utilization of agent poller data collector processes, in %','zabbix[process,agent poller,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the agent poller processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','47f983079b064558976fb3cf5d50d742','0','2','0'),
('45516','5','','10047','Utilization of http agent poller data collector processes, in %','zabbix[process,http agent poller,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the http agent poller processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','71934ae835034df5b9ce97eeb859b96b','0','2','0'),
('45521','21','','10582','Get daily costs','aws.get.daily.costs','0s;h/6','0','0','0','4','','','','',NULL,NULL,'var AWS = {\r\n params: {},\r\n metadata: \'http://169.254.169.254/latest/\',\r\n\r\n getRoleBaseCredentials: function () {\r\n AWS.params[\'auth_type\'] = \'role_base\';\r\n var request = new HttpRequest();\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token-ttl-seconds: 21600\');\r\n var token = request.put(AWS.metadata + \'api/token\');\r\n\r\n if (request.getStatus() !== 200 || token === null || token === \'\') {\r\n throw \'Error getting IMDSv2 session token.\';\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token: \' + token);\r\n var IamRoleName = request.get(AWS.metadata + \'meta-data/iam/security-credentials\');\r\n\r\n if (request.getStatus() !== 200 || IamRoleName === null || IamRoleName === \'\') {\r\n throw \'Error getting security credentials from instance metadata. Role not found.\';\r\n }\r\n\r\n credentials = request.get(AWS.metadata + \'meta-data/iam/security-credentials/\' + encodeURI(IamRoleName));\r\n\r\n if (request.getStatus() !== 200 || credentials === null || credentials === \'\') {\r\n throw \'Error getting security credentials from instance metadata.\';\r\n }\r\n\r\n try {\r\n credentials = JSON.parse(credentials);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from instance metadata. Check debug log for more information.\';\r\n }\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'Token\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n },\r\n\r\n setParams: function (params) {\r\n AWS.params[\'proxy\'] = params.proxy;\r\n switch (AWS.getField(params, \'auth_type\')) {\r\n case \'role_base\':\r\n AWS.getRoleBaseCredentials();\r\n break;\r\n case \'assume_role\':\r\n if (typeof params.metadata_auth === \'undefined\' || params.metadata_auth === \'\' || (params.metadata_auth !== \'true\' && params.metadata_auth !== \'false\')) {\r\n throw \'Required param metadata_auth for assume_role is not set or has invalid value: "\' + params.metadata_auth + \'". Expected "true" or "false".\';\r\n }\r\n if (params.metadata_auth === \'true\') {\r\n AWS.getRoleBaseCredentials();\r\n AWS.params[\'SessionToken\'] = AWS.params[\'Token\'];\r\n AWS.params[\'auth_type\'] = \'assume_role_metadata\';\r\n\r\n [\'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n if (params.metadata_auth === \'false\') {\r\n AWS.params[\'auth_type\'] = \'assume_role\';\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n const role_arn_regex = /role\\/(.+)$/;\r\n const match = AWS.params.role_arn.match(role_arn_regex);\r\n if (!match) {\r\n throw \'Invalid role ARN format.\';\r\n }\r\n\r\n const payload = {\r\n \'Action\': \'AssumeRole\',\r\n \'Version\': \'2011-06-15\',\r\n \'RoleArn\': AWS.params.role_arn,\r\n \'RoleSessionName\': match[1] + \'Session\',\r\n };\r\n\r\n credentials = AWS.getField(AWS.request(\'POST\', AWS.params.sts_region, \'sts\', AWS.prepareParams(payload), \'\'), \'AssumeRoleResponse.AssumeRoleResult.Credentials\');\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'SessionToken\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n break;\r\n default:\r\n AWS.params[\'auth_type\'] = \'access_key\';\r\n [\'AccessKeyId\', \'SecretAccessKey\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n [\'region\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n\r\n today = new Date();\r\n AWS.params.end_date = today.toDateString();\r\n today.setDate(today.getDate() - 1);\r\n AWS.params.start_time = today.toDateString();\r\n },\r\n\r\n sign: function (key, message) {\r\n var hex = hmac(\'sha256\', key, message);\r\n\r\n if ((hex.length % 2) === 1) {\r\n throw \'Invalid length of a hex string!\';\r\n }\r\n\r\n var result = new Int8Array(hex.length / 2);\r\n for (var i = 0, b = 0; i < hex.length; i += 2, b++) {\r\n result[b] = parseInt(hex.substring(i, i + 2), 16);\r\n }\r\n\r\n return result;\r\n },\r\n\r\n prepareParams: function (params) {\r\n var result = [];\r\n\r\n Object.keys(params).sort().forEach(function (key) {\r\n if (typeof params[key] !== \'object\') {\r\n result.push(key + \'=\' + encodeURIComponent(params[key]));\r\n }\r\n else {\r\n result.push(prepareObject(key, params[key]));\r\n }\r\n });\r\n\r\n return result.join(\'&\');\r\n },\r\n\r\n getField: function (data, path) {\r\n var steps = path.split(\'.\');\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n data = data[step];\r\n }\r\n\r\n return data;\r\n\r\n },\r\n\r\n request: function (method, region, service, params, data, target) {\r\n if (typeof data === \'undefined\' || data === null) {\r\n data = \'\';\r\n }\r\n else {\r\n data = JSON.stringify(data);\r\n }\r\n\r\n var amzdate = (new Date()).toISOString().replace(/\\.\\d+Z/, \'Z\').replace(/[-:]/g, \'\'),\r\n date = amzdate.replace(/T\\d+Z/, \'\'),\r\n canonical_uri = \'/\',\r\n host = service + \'.\' + region + \'.amazonaws.com\',\r\n canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\',\r\n signed_headers = \'content-encoding;host;x-amz-date\',\r\n canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data),\r\n credential_scope = date + \'/\' + region + \'/\' + service + \'/\' + \'aws4_request\',\r\n request_string = \'AWS4-HMAC-SHA256\' + \'\\n\' + amzdate + \'\\n\' + credential_scope + \'\\n\' + sha256(canonical_request),\r\n key = AWS.sign(\'AWS4\' + AWS.params.SecretAccessKey, date),\r\n key = AWS.sign(key, region),\r\n key = AWS.sign(key, service),\r\n key = AWS.sign(key, \'aws4_request\'),\r\n request = new HttpRequest(),\r\n url = \'https://\' + host + canonical_uri + \'?\' + params;\r\n\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'x-amz-date: \' + amzdate);\r\n request.addHeader(\'x-amz-content-sha256:\' + sha256(data));\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Content-Type: application/x-amz-json-1.1\');\r\n request.addHeader(\'Content-Encoding: amz-1.0\');\r\n request.addHeader(\'X-Amz-Target: \' + target);\r\n request.addHeader(\'Authorization: \' + \'AWS4-HMAC-SHA256 Credential=\' + AWS.params.AccessKeyId + \'/\' + credential_scope + \', \' + \'SignedHeaders=\' + signed_headers + \', \' + \'Signature=\' + hmac(\'sha256\', key, request_string));\r\n if (AWS.params.auth_type === \'role_base\' || AWS.params.auth_type === \'assume_role_metadata\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n request.addHeader(\'X-Amz-Security-Token: \' + (AWS.params.auth_type === \'role_base\' ? AWS.params.Token : AWS.params.SessionToken));\r\n }\r\n\r\n Zabbix.log(4, \'[ AWS Billing ] Sending request: \' + url);\r\n response = request.post(url, data);\r\n Zabbix.log(4, \'[ AWS Billing ] Received response with the status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200) {\r\n throw \'Request failed with the status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse the response received from AWS API. Check debug log for more information.\';\r\n }\r\n\r\n return response;\r\n },\r\n\r\n getCostAndUsage: function () {\r\n var body_raw_cost = {\r\n\r\n \'TimePeriod\': {\r\n \'Start\': AWS.params.start_time,\r\n \'End\': AWS.params.end_date\r\n },\r\n \'Granularity\': \'DAILY\',\r\n \'GroupBy\': [\r\n {\r\n \'Type\': \'DIMENSION\',\r\n \'Key\': \'SERVICE\'\r\n }\r\n ],\r\n \'Metrics\': [\'BlendedCost\']\r\n };\r\n\r\n return AWS.getField(AWS.request(\'POST\', AWS.params.region, \'ce\', \'\', body_raw_cost, \'AWSInsightsIndexService.GetCostAndUsage\'), \'ResultsByTime\');\r\n\r\n }\r\n\r\n};\r\n\r\ntry {\r\n AWS.setParams(JSON.parse(value));\r\n\r\n return JSON.stringify(AWS.getCostAndUsage());\r\n\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ AWS Billing ] ERROR: \' + error);\r\n\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Get raw data on the daily costs by service.','0','30d','0','',NULL,'15s','','','','200','1','0','','','0','0','0','0','0','0','0','5bfda2617dfc43edbe524a5c44b39f18','0','2','0'),
('45522','21','','10582','Get monthly costs','aws.get.monthly.costs','0s;h9','0','0','0','4','','','','',NULL,NULL,'var AWS = {\r\n params: {},\r\n metadata: \'http://169.254.169.254/latest/\',\r\n\r\n getRoleBaseCredentials: function () {\r\n AWS.params[\'auth_type\'] = \'role_base\';\r\n var request = new HttpRequest();\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token-ttl-seconds: 21600\');\r\n var token = request.put(AWS.metadata + \'api/token\');\r\n\r\n if (request.getStatus() !== 200 || token === null || token === \'\') {\r\n throw \'Error getting IMDSv2 session token.\';\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token: \' + token);\r\n var IamRoleName = request.get(AWS.metadata + \'meta-data/iam/security-credentials\');\r\n\r\n if (request.getStatus() !== 200 || IamRoleName === null || IamRoleName === \'\') {\r\n throw \'Error getting security credentials from instance metadata. Role not found.\';\r\n }\r\n\r\n credentials = request.get(AWS.metadata + \'meta-data/iam/security-credentials/\' + encodeURI(IamRoleName));\r\n\r\n if (request.getStatus() !== 200 || credentials === null || credentials === \'\') {\r\n throw \'Error getting security credentials from instance metadata.\';\r\n }\r\n\r\n try {\r\n credentials = JSON.parse(credentials);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from instance metadata. Check debug log for more information.\';\r\n }\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'Token\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n },\r\n\r\n setParams: function (params) {\r\n AWS.params[\'proxy\'] = params.proxy;\r\n switch (AWS.getField(params, \'auth_type\')) {\r\n case \'role_base\':\r\n AWS.getRoleBaseCredentials();\r\n break;\r\n case \'assume_role\':\r\n if (typeof params.metadata_auth === \'undefined\' || params.metadata_auth === \'\' || (params.metadata_auth !== \'true\' && params.metadata_auth !== \'false\')) {\r\n throw \'Required param metadata_auth for assume_role is not set or has invalid value: "\' + params.metadata_auth + \'". Expected "true" or "false".\';\r\n }\r\n if (params.metadata_auth === \'true\') {\r\n AWS.getRoleBaseCredentials();\r\n AWS.params[\'SessionToken\'] = AWS.params[\'Token\'];\r\n AWS.params[\'auth_type\'] = \'assume_role_metadata\';\r\n\r\n [\'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n if (params.metadata_auth === \'false\') {\r\n AWS.params[\'auth_type\'] = \'assume_role\';\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n const role_arn_regex = /role\\/(.+)$/;\r\n const match = AWS.params.role_arn.match(role_arn_regex);\r\n if (!match) {\r\n throw \'Invalid role ARN format.\';\r\n }\r\n\r\n const payload = {\r\n \'Action\': \'AssumeRole\',\r\n \'Version\': \'2011-06-15\',\r\n \'RoleArn\': AWS.params.role_arn,\r\n \'RoleSessionName\': match[1] + \'Session\',\r\n };\r\n\r\n credentials = AWS.getField(AWS.request(\'POST\', AWS.params.sts_region, \'sts\', AWS.prepareParams(payload), \'\'), \'AssumeRoleResponse.AssumeRoleResult.Credentials\');\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'SessionToken\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n break;\r\n default:\r\n AWS.params[\'auth_type\'] = \'access_key\';\r\n [\'AccessKeyId\', \'SecretAccessKey\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n [\'region\', \'month\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n\r\n today = new Date();\r\n AWS.params.end_date = today.toDateString();\r\n month = today.getMonth();\r\n today.setMonth(month - params.month);\r\n AWS.params.start_time = new Date(today.getFullYear(), today.getMonth()).toDateString();\r\n },\r\n\r\n sign: function (key, message) {\r\n var hex = hmac(\'sha256\', key, message);\r\n\r\n if ((hex.length % 2) === 1) {\r\n throw \'Invalid length of a hex string!\';\r\n }\r\n\r\n var result = new Int8Array(hex.length / 2);\r\n for (var i = 0, b = 0; i < hex.length; i += 2, b++) {\r\n result[b] = parseInt(hex.substring(i, i + 2), 16);\r\n }\r\n\r\n return result;\r\n },\r\n\r\n prepareParams: function (params) {\r\n var result = [];\r\n\r\n Object.keys(params).sort().forEach(function (key) {\r\n if (typeof params[key] !== \'object\') {\r\n result.push(key + \'=\' + encodeURIComponent(params[key]));\r\n }\r\n else {\r\n result.push(prepareObject(key, params[key]));\r\n }\r\n });\r\n\r\n return result.join(\'&\');\r\n },\r\n\r\n getField: function (data, path) {\r\n var steps = path.split(\'.\');\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n data = data[step];\r\n }\r\n\r\n return data;\r\n\r\n },\r\n\r\n request: function (method, region, service, params, data, target) {\r\n if (typeof data === \'undefined\' || data === null) {\r\n data = \'\';\r\n }\r\n else {\r\n data = JSON.stringify(data);\r\n }\r\n\r\n var amzdate = (new Date()).toISOString().replace(/\\.\\d+Z/, \'Z\').replace(/[-:]/g, \'\'),\r\n date = amzdate.replace(/T\\d+Z/, \'\'),\r\n canonical_uri = \'/\',\r\n host = service + \'.\' + region + \'.amazonaws.com\',\r\n canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\',\r\n signed_headers = \'content-encoding;host;x-amz-date\',\r\n canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data),\r\n credential_scope = date + \'/\' + region + \'/\' + service + \'/\' + \'aws4_request\',\r\n request_string = \'AWS4-HMAC-SHA256\' + \'\\n\' + amzdate + \'\\n\' + credential_scope + \'\\n\' + sha256(canonical_request),\r\n key = AWS.sign(\'AWS4\' + AWS.params.SecretAccessKey, date),\r\n key = AWS.sign(key, region),\r\n key = AWS.sign(key, service),\r\n key = AWS.sign(key, \'aws4_request\'),\r\n request = new HttpRequest(),\r\n url = \'https://\' + host + canonical_uri + \'?\' + params;\r\n\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'x-amz-date: \' + amzdate);\r\n request.addHeader(\'x-amz-content-sha256:\' + sha256(data));\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Content-Type: application/x-amz-json-1.1\');\r\n request.addHeader(\'Content-Encoding: amz-1.0\');\r\n request.addHeader(\'X-Amz-Target: \' + target);\r\n request.addHeader(\'Authorization: \' + \'AWS4-HMAC-SHA256 Credential=\' + AWS.params.AccessKeyId + \'/\' + credential_scope + \', \' + \'SignedHeaders=\' + signed_headers + \', \' + \'Signature=\' + hmac(\'sha256\', key, request_string));\r\n if (AWS.params.auth_type === \'role_base\' || AWS.params.auth_type === \'assume_role_metadata\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n request.addHeader(\'X-Amz-Security-Token: \' + (AWS.params.auth_type === \'role_base\' ? AWS.params.Token : AWS.params.SessionToken));\r\n }\r\n\r\n Zabbix.log(4, \'[ AWS Billing ] Sending request: \' + url);\r\n response = request.post(url, data);\r\n Zabbix.log(4, \'[ AWS Billing ] Received response with the status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200) {\r\n throw \'Request failed with the status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse the response received from AWS API. Check debug log for more information.\';\r\n }\r\n\r\n return response;\r\n },\r\n\r\n getCostMonth: function () {\r\n var body_raw_cost = {\r\n \'TimePeriod\': {\r\n \'Start\': AWS.params.start_time,\r\n \'End\': AWS.params.end_date\r\n },\r\n \'Granularity\': \'MONTHLY\',\r\n \'Metrics\': [\'BlendedCost\']\r\n };\r\n result = AWS.getField(AWS.request(\'POST\', AWS.params.region, \'ce\', \'\', body_raw_cost, \'AWSInsightsIndexService.GetCostAndUsage\'), \'ResultsByTime\');\r\n\r\n return result.map(function (data) {\r\n return {\r\n \'amount\': AWS.getField(data, \'Total.BlendedCost.Amount\'),\r\n \'unit\': AWS.getField(data, \'Total.BlendedCost.Unit\'),\r\n \'month\': AWS.getField(data, \'TimePeriod.Start\').slice(0, 7)\r\n };\r\n });\r\n },\r\n\r\n getCostMonthService: function () {\r\n var body_raw_cost = {\r\n \'TimePeriod\': {\r\n \'Start\': AWS.params.start_time,\r\n \'End\': AWS.params.end_date\r\n },\r\n \'GroupBy\': [\r\n {\r\n \'Type\': \'DIMENSION\',\r\n \'Key\': \'SERVICE\'\r\n }\r\n ],\r\n \'Granularity\': \'MONTHLY\',\r\n \'Metrics\': [\'BlendedCost\']\r\n };\r\n MetricData = AWS.getField(AWS.request(\'POST\', AWS.params.region, \'ce\', \'\', body_raw_cost, \'AWSInsightsIndexService.GetCostAndUsage\'), \'ResultsByTime\');\r\n var services = [];\r\n MetricData.forEach(function (data) {\r\n month = AWS.getField(data, \'TimePeriod.Start\').slice(0, 7);\r\n groups = AWS.getField(data, \'Groups\');\r\n groups.forEach(function (group) {\r\n group.month = month;\r\n services.push(group);\r\n })\r\n });\r\n\r\n return services;\r\n }\r\n\r\n};\r\n\r\ntry {\r\n AWS.setParams(JSON.parse(value));\r\n\r\n monthly_costs = AWS.getCostMonth();\r\n monthly_service_costs = AWS.getCostMonthService();\r\n\r\n return JSON.stringify({ monthly_costs, monthly_service_costs });\r\n\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ AWS Billing ] ERROR: \' + error);\r\n\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Get raw data on the monthly costs by service.','0','30d','0','',NULL,'15s','','','','200','1','0','','','0','0','0','0','0','0','0','7139ce562d3c439e9686ad5b17ed0f1c','0','2','0'),
('45529','21','','10583','Get alarms data','aws.ecs.get_alarms','0s;m/1','0','0','0','4','','','','',NULL,NULL,'var AWS = {\r\n params: {},\r\n metadata: \'http://169.254.169.254/latest/\',\r\n\r\n getField: function (data, path) {\r\n var steps = path.split(\'.\');\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n\r\n data = data[step];\r\n }\r\n\r\n return data;\r\n },\r\n\r\n getRoleBaseCredentials: function () {\r\n AWS.params[\'auth_type\'] = \'role_base\';\r\n var request = new HttpRequest();\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token-ttl-seconds: 21600\');\r\n var token = request.put(AWS.metadata + \'api/token\');\r\n\r\n if (request.getStatus() !== 200 || token === null || token === \'\') {\r\n throw \'Error getting IMDSv2 session token.\';\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token: \' + token);\r\n var IamRoleName = request.get(AWS.metadata + \'meta-data/iam/security-credentials\');\r\n\r\n if (request.getStatus() !== 200 || IamRoleName === null || IamRoleName === \'\') {\r\n throw \'Error getting security credentials from instance metadata. Role not found.\';\r\n }\r\n\r\n credentials = request.get(AWS.metadata + \'meta-data/iam/security-credentials/\' + encodeURI(IamRoleName));\r\n\r\n if (request.getStatus() !== 200 || credentials === null || credentials === \'\') {\r\n throw \'Error getting security credentials from instance metadata.\';\r\n }\r\n\r\n try {\r\n credentials = JSON.parse(credentials);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from instance metadata. Check debug log for more information.\';\r\n }\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'Token\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n },\r\n setParams: function (params) {\r\n AWS.params[\'proxy\'] = params.proxy;\r\n switch (AWS.getField(params, \'auth_type\')) {\r\n case \'role_base\':\r\n AWS.getRoleBaseCredentials();\r\n break;\r\n case \'assume_role\':\r\n if (typeof params.metadata_auth === \'undefined\' || params.metadata_auth === \'\' || (params.metadata_auth !== \'true\' && params.metadata_auth !== \'false\')) {\r\n throw \'Required param metadata_auth for assume_role is not set or has invalid value: "\' + params.metadata_auth + \'". Expected "true" or "false".\';\r\n }\r\n if (params.metadata_auth === \'true\') {\r\n AWS.getRoleBaseCredentials();\r\n AWS.params[\'SessionToken\'] = AWS.params[\'Token\'];\r\n AWS.params[\'auth_type\'] = \'assume_role_metadata\';\r\n\r\n [\'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n if (params.metadata_auth === \'false\') {\r\n AWS.params[\'auth_type\'] = \'assume_role\';\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n const role_arn_regex = /role\\/(.+)$/;\r\n const match = AWS.params.role_arn.match(role_arn_regex);\r\n if (!match) {\r\n throw \'Invalid role ARN format.\';\r\n }\r\n\r\n const payload = {\r\n \'Action\': \'AssumeRole\',\r\n \'Version\': \'2011-06-15\',\r\n \'RoleArn\': AWS.params.role_arn,\r\n \'RoleSessionName\': match[1] + \'Session\',\r\n };\r\n\r\n credentials = AWS.getField(AWS.request(\'GET\', AWS.params.sts_region, \'sts\', AWS.prepareParams(payload), \'\'), \'AssumeRoleResponse.AssumeRoleResult.Credentials\');\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'SessionToken\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n break;\r\n default:\r\n AWS.params[\'auth_type\'] = \'access_key\';\r\n [\'AccessKeyId\', \'SecretAccessKey\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n [\'region\', \'cluster_name\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n },\r\n sign: function (key, message) {\r\n var hex = hmac(\'sha256\', key, message);\r\n\r\n if ((hex.length % 2) === 1) {\r\n throw \'Invalid length of a hex string!\';\r\n }\r\n\r\n var result = new Int8Array(hex.length / 2);\r\n for (var i = 0, b = 0; i < hex.length; i += 2, b++) {\r\n result[b] = parseInt(hex.substring(i, i + 2), 16);\r\n }\r\n\r\n return result;\r\n },\r\n\r\n prepareParams: function (params) {\r\n var result = [];\r\n\r\n Object.keys(params).sort().forEach(function (key) {\r\n if (typeof params[key] !== \'object\') {\r\n result.push(key + \'=\' + encodeURIComponent(params[key]));\r\n }\r\n else {\r\n result.push(prepareObject(key, params[key]));\r\n }\r\n });\r\n\r\n return result.join(\'&\');\r\n },\r\n\r\n request: function (method, region, service, params, data) {\r\n if (typeof data === \'undefined\' || data === null) {\r\n data = \'\';\r\n }\r\n\r\n var amzdate = (new Date()).toISOString().replace(/\\.\\d+Z/, \'Z\').replace(/[-:]/g, \'\'),\r\n date = amzdate.replace(/T\\d+Z/, \'\'),\r\n host = service + \'.\' + region + \'.amazonaws.com\',\r\n canonical_uri = \'/\',\r\n canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\',\r\n signed_headers = \'content-encoding;host;x-amz-date\',\r\n canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data),\r\n credential_scope = date + \'/\' + region + \'/\' + service + \'/\' + \'aws4_request\',\r\n request_string = \'AWS4-HMAC-SHA256\' + \'\\n\' + amzdate + \'\\n\' + credential_scope + \'\\n\' + sha256(canonical_request),\r\n key = AWS.sign(\'AWS4\' + AWS.params.SecretAccessKey, date),\r\n key = AWS.sign(key, region),\r\n key = AWS.sign(key, service),\r\n key = AWS.sign(key, \'aws4_request\'),\r\n request = new HttpRequest(),\r\n url = \'https://\' + host + canonical_uri + \'?\' + params;\r\n\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'x-amz-date: \' + amzdate);\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Content-Encoding: amz-1.0\');\r\n request.addHeader(\'Authorization: \' + \'AWS4-HMAC-SHA256 Credential=\' + AWS.params.AccessKeyId + \'/\' + credential_scope + \', \' + \'SignedHeaders=\' + signed_headers + \', \' + \'Signature=\' + hmac(\'sha256\', key, request_string));\r\n if (AWS.params.auth_type === \'role_base\' || AWS.params.auth_type === \'assume_role_metadata\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n request.addHeader(\'X-Amz-Security-Token: \' + (AWS.params.auth_type === \'role_base\' ? AWS.params.Token : AWS.params.SessionToken));\r\n }\r\n\r\n Zabbix.log(4, \'[ AWS ECS ] Sending request: \' + url);\r\n response = request.get(url);\r\n Zabbix.log(4, \'[ AWS ECS ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n try {\r\n response = JSON.parse(XML.toJson(response));\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from AWS CloudWatch API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n return response;\r\n },\r\n\r\n getAlarms: function () {\r\n var payload = {\r\n \'Action\': \'DescribeAlarms\',\r\n \'Version\': \'2010-08-01\',\r\n \'MaxRecords\': 100\r\n },\r\n result = [];\r\n\r\n while (payload.NextToken !== \'\') {\r\n var alarms = AWS.getField(AWS.request(\'GET\', AWS.params.region, \'monitoring\', AWS.prepareParams(payload)), \'DescribeAlarmsResponse.DescribeAlarmsResult\');\r\n payload.NextToken = alarms.NextToken || \'\';\r\n alarms_list = AWS.getField(alarms, \'MetricAlarms\');\r\n\r\n if (!Array.isArray(alarms_list))\r\n alarms_list = [alarms_list];\r\n alarms_list.forEach(function (alarm) {\r\n var dimensions = alarm.Dimensions;\r\n\r\n Zabbix.log(4, \'[ AWS ECS ] dimensions: \' + JSON.stringify(dimensions));\r\n if (Array.isArray(alarm.Metrics)) {\r\n alarm.Metrics.forEach(function (metric) {\r\n if (typeof metric.MetricStat === \'object\' && metric.MetricStat !== null\r\n && typeof metric.MetricStat.Metric === \'object\' && metric.MetricStat.Metric !== null\r\n && Array.isArray(metric.MetricStat.Metric.Dimensions)) {\r\n dimensions = dimensions.concat(metric.MetricStat.Metric.Dimensions);\r\n }\r\n });\r\n }\r\n for (var i in dimensions) {\r\n if (dimensions[i].Name === \'ClusterName\' && dimensions[i].Value === AWS.params.cluster_name) {\r\n result.push(alarm);\r\n break;\r\n }\r\n }\r\n });\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n\r\ntry {\r\n AWS.setParams(JSON.parse(value));\r\n\r\n return JSON.stringify(AWS.getAlarms());\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ AWS ECS ] ERROR: \' + error);\r\n\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Get alarms data.\r\nDescribeAlarms API method: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarms.html','0','30d','0','',NULL,'15s','','','','200','1','0','','','0','0','0','0','0','0','0','9aefed8b23ee41a7941e41f33fc95ebe','0','2','0'),
('45530','21','','10583','Get cluster services','aws.ecs.get_cluster_services','5m','0','0','0','4','','','','',NULL,NULL,'var AWS = {\r\n params: {},\r\n metadata: \'http://169.254.169.254/latest/\',\r\n\r\n getRoleBaseCredentials: function () {\r\n AWS.params[\'auth_type\'] = \'role_base\';\r\n var request = new HttpRequest();\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token-ttl-seconds: 21600\');\r\n var token = request.put(AWS.metadata + \'api/token\');\r\n\r\n if (request.getStatus() !== 200 || token === null || token === \'\') {\r\n throw \'Error getting IMDSv2 session token.\';\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token: \' + token);\r\n var IamRoleName = request.get(AWS.metadata + \'meta-data/iam/security-credentials\');\r\n\r\n if (request.getStatus() !== 200 || IamRoleName === null || IamRoleName === \'\') {\r\n throw \'Error getting security credentials from instance metadata. Role not found.\';\r\n }\r\n\r\n credentials = request.get(AWS.metadata + \'meta-data/iam/security-credentials/\' + encodeURI(IamRoleName));\r\n\r\n if (request.getStatus() !== 200 || credentials === null || credentials === \'\') {\r\n throw \'Error getting security credentials from instance metadata.\';\r\n }\r\n\r\n try {\r\n credentials = JSON.parse(credentials);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from instance metadata. Check debug log for more information.\';\r\n }\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'Token\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n },\r\n\r\n setParams: function (params) {\r\n AWS.params[\'proxy\'] = params.proxy;\r\n switch (AWS.getField(params, \'auth_type\')) {\r\n case \'role_base\':\r\n AWS.getRoleBaseCredentials();\r\n break;\r\n case \'assume_role\':\r\n if (typeof params.metadata_auth === \'undefined\' || params.metadata_auth === \'\' || (params.metadata_auth !== \'true\' && params.metadata_auth !== \'false\')) {\r\n throw \'Required param metadata_auth for assume_role is not set or has invalid value: "\' + params.metadata_auth + \'". Expected "true" or "false".\';\r\n }\r\n if (params.metadata_auth === \'true\') {\r\n AWS.getRoleBaseCredentials();\r\n AWS.params[\'SessionToken\'] = AWS.params[\'Token\'];\r\n AWS.params[\'auth_type\'] = \'assume_role_metadata\';\r\n\r\n [\'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n if (params.metadata_auth === \'false\') {\r\n AWS.params[\'auth_type\'] = \'assume_role\';\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n const role_arn_regex = /role\\/(.+)$/;\r\n const match = AWS.params.role_arn.match(role_arn_regex);\r\n if (!match) {\r\n throw \'Invalid role ARN format.\';\r\n }\r\n\r\n const payload = {\r\n \'Action\': \'AssumeRole\',\r\n \'Version\': \'2011-06-15\',\r\n \'RoleArn\': AWS.params.role_arn,\r\n \'RoleSessionName\': match[1] + \'Session\',\r\n };\r\n\r\n credentials = AWS.getField(AWS.request(\'GET\', AWS.params.sts_region, \'sts\', AWS.prepareParams(payload)), \'AssumeRoleResponse.AssumeRoleResult.Credentials\');\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'SessionToken\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n break;\r\n default:\r\n AWS.params[\'auth_type\'] = \'access_key\';\r\n [\'AccessKeyId\', \'SecretAccessKey\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n [\'region\', \'cluster_name\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n },\r\n\r\n getField: function (data, path) {\r\n var steps = path.split(\'.\');\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n\r\n data = data[step];\r\n }\r\n\r\n return data;\r\n },\r\n\r\n sign: function (key, message) {\r\n var hex = hmac(\'sha256\', key, message);\r\n\r\n if ((hex.length % 2) === 1) {\r\n throw \'Invalid length of a hex string!\';\r\n }\r\n\r\n var result = new Int8Array(hex.length / 2);\r\n for (var i = 0, b = 0; i < hex.length; i += 2, b++) {\r\n result[b] = parseInt(hex.substring(i, i + 2), 16);\r\n }\r\n\r\n return result;\r\n },\r\n\r\n prepareParams: function (params) {\r\n var result = [];\r\n\r\n Object.keys(params).sort().forEach(function (key) {\r\n if (typeof params[key] !== \'object\') {\r\n result.push(key + \'=\' + encodeURIComponent(params[key]));\r\n }\r\n else {\r\n result.push(prepareObject(key, params[key]));\r\n }\r\n });\r\n\r\n return result.join(\'&\');\r\n },\r\n\r\n request: function (method, region, service, params, data) {\r\n if (typeof data === \'undefined\' || data === null) {\r\n data = \'\';\r\n }\r\n\r\n var amzdate = (new Date()).toISOString().replace(/\\.\\d+Z/, \'Z\').replace(/[-:]/g, \'\'),\r\n date = amzdate.replace(/T\\d+Z/, \'\'),\r\n canonical_uri = \'/\',\r\n host = service + \'.\' + region + \'.amazonaws.com\',\r\n canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\',\r\n signed_headers = \'content-encoding;host;x-amz-date\',\r\n canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data),\r\n credential_scope = date + \'/\' + region + \'/\' + service + \'/\' + \'aws4_request\',\r\n request_string = \'AWS4-HMAC-SHA256\' + \'\\n\' + amzdate + \'\\n\' + credential_scope + \'\\n\' + sha256(canonical_request),\r\n key = AWS.sign(\'AWS4\' + AWS.params.SecretAccessKey, date),\r\n key = AWS.sign(key, region),\r\n key = AWS.sign(key, service),\r\n key = AWS.sign(key, \'aws4_request\'),\r\n request = new HttpRequest(),\r\n url = \'https://\' + host + canonical_uri + \'?\' + params;\r\n\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'x-amz-date: \' + amzdate);\r\n request.addHeader(\'x-amz-content-sha256:\' + sha256(data));\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n request.addHeader(\'Content-Encoding: amz-1.0\');\r\n request.addHeader(\'Authorization: \' + \'AWS4-HMAC-SHA256 Credential=\' + AWS.params.AccessKeyId + \'/\' + credential_scope + \', \' + \'SignedHeaders=\' + signed_headers + \', \' + \'Signature=\' + hmac(\'sha256\', key, request_string));\r\n if (AWS.params.auth_type === \'role_base\' || AWS.params.auth_type === \'assume_role_metadata\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n request.addHeader(\'X-Amz-Security-Token: \' + (AWS.params.auth_type === \'role_base\' ? AWS.params.Token : AWS.params.SessionToken));\r\n }\r\n\r\n Zabbix.log(4, \'[ AWS ECS ] Sending request: \' + url);\r\n response = request.get(url);\r\n Zabbix.log(4, \'[ AWS ECS ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n try {\r\n response = JSON.parse(XML.toJson(response));\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from AWS CloudWatch API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n return response;\r\n },\r\n\r\n listServices: function () {\r\n var payload = {\r\n \'Action\': \'ListServices\',\r\n \'Version\': \'2014-11-13\',\r\n \'maxResults\': 100,\r\n \'cluster\': AWS.params.cluster_name\r\n },\r\n services = [];\r\n\r\n while (payload.nextToken !== \'\') {\r\n var services_list = AWS.getField(AWS.request(\'GET\', AWS.params.region, \'ecs\', AWS.prepareParams(payload)), \'ListServicesResponse.ListServicesResult\');\r\n payload.nextToken = services_list.nextToken || \'\';\r\n services_arns = AWS.getField(services_list, \'serviceArns\');\r\n\r\n for (k in services_arns) {\r\n id = services_arns[k];\r\n json = {};\r\n input = id.split(AWS.params.cluster_name + \'/\');\r\n for (var i = 1; i < input.length; i += 2) {\r\n json[input[i]] = input[i + 1];\r\n }\r\n services.push({\r\n \'service_name\': input[1],\r\n });\r\n }\r\n };\r\n\r\n if (Array.isArray(services))\r\n return services;\r\n else\r\n return [services];\r\n }\r\n};\r\n\r\ntry {\r\n AWS.setParams(JSON.parse(value));\r\n return JSON.stringify(AWS.listServices());\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ AWS ECS ] ERROR: \' + error);\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Get cluster services.\r\nFull metrics list related to ECS: https://docs.aws.amazon.com/AmazonECS/latest/userguide/metrics-dimensions.html','0','30d','0','',NULL,'15s','','','','200','1','0','','','0','0','0','0','0','0','0','fa8f1dc24615438e98cbad686d40eaf7','0','2','0'),
('45531','21','','10583','Get cluster metrics','aws.ecs.get_metrics','0s;m/1','0','0','0','4','','','','',NULL,NULL,'var AWS = {\r\n params: {},\r\n request_period: 600,\r\n metadata: \'http://169.254.169.254/latest/\',\r\n\r\n getRoleBaseCredentials: function () {\r\n AWS.params[\'auth_type\'] = \'role_base\';\r\n var request = new HttpRequest();\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token-ttl-seconds: 21600\');\r\n var token = request.put(AWS.metadata + \'api/token\');\r\n\r\n if (request.getStatus() !== 200 || token === null || token === \'\') {\r\n throw \'Error getting IMDSv2 session token.\';\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token: \' + token);\r\n var IamRoleName = request.get(AWS.metadata + \'meta-data/iam/security-credentials\');\r\n\r\n if (request.getStatus() !== 200 || IamRoleName === null || IamRoleName === \'\') {\r\n throw \'Error getting security credentials from instance metadata. Role not found.\';\r\n }\r\n\r\n credentials = request.get(AWS.metadata + \'meta-data/iam/security-credentials/\' + encodeURI(IamRoleName));\r\n\r\n if (request.getStatus() !== 200 || credentials === null || credentials === \'\') {\r\n throw \'Error getting security credentials from instance metadata.\';\r\n }\r\n\r\n try {\r\n credentials = JSON.parse(credentials);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from instance metadata. Check debug log for more information.\';\r\n }\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'Token\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n },\r\n\r\n setParams: function (params) {\r\n AWS.params[\'proxy\'] = params.proxy;\r\n switch (AWS.getField(params, \'auth_type\')) {\r\n case \'role_base\':\r\n AWS.getRoleBaseCredentials();\r\n break;\r\n case \'assume_role\':\r\n if (typeof params.metadata_auth === \'undefined\' || params.metadata_auth === \'\' || (params.metadata_auth !== \'true\' && params.metadata_auth !== \'false\')) {\r\n throw \'Required param metadata_auth for assume_role is not set or has invalid value: "\' + params.metadata_auth + \'". Expected "true" or "false".\';\r\n }\r\n if (params.metadata_auth === \'true\') {\r\n AWS.getRoleBaseCredentials();\r\n AWS.params[\'SessionToken\'] = AWS.params[\'Token\'];\r\n AWS.params[\'auth_type\'] = \'assume_role_metadata\';\r\n\r\n [\'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n if (params.metadata_auth === \'false\') {\r\n AWS.params[\'auth_type\'] = \'assume_role\';\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n const role_arn_regex = /role\\/(.+)$/;\r\n const match = AWS.params.role_arn.match(role_arn_regex);\r\n if (!match) {\r\n throw \'Invalid role ARN format.\';\r\n }\r\n\r\n const payload = {\r\n \'Action\': \'AssumeRole\',\r\n \'Version\': \'2011-06-15\',\r\n \'RoleArn\': AWS.params.role_arn,\r\n \'RoleSessionName\': match[1] + \'Session\',\r\n };\r\n\r\n credentials = AWS.getField(AWS.request(\'GET\', AWS.params.sts_region, \'sts\', AWS.prepareParams(payload), \'\'), \'AssumeRoleResponse.AssumeRoleResult.Credentials\');\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'SessionToken\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n break;\r\n default:\r\n AWS.params[\'auth_type\'] = \'access_key\';\r\n [\'AccessKeyId\', \'SecretAccessKey\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n [\'region\', \'cluster_name\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n },\r\n\r\n getField: function (data, path) {\r\n var steps = path.split(\'.\');\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n\r\n data = data[step];\r\n }\r\n\r\n return data;\r\n },\r\n\r\n sign: function (key, message) {\r\n var hex = hmac(\'sha256\', key, message);\r\n\r\n if ((hex.length % 2) === 1) {\r\n throw \'Invalid length of a hex string!\';\r\n }\r\n\r\n var result = new Int8Array(hex.length / 2);\r\n for (var i = 0, b = 0; i < hex.length; i += 2, b++) {\r\n result[b] = parseInt(hex.substring(i, i + 2), 16);\r\n }\r\n\r\n return result;\r\n },\r\n\r\n prepareRecursive: function (prefix, param) {\r\n var result = {};\r\n\r\n if (typeof param === \'object\') {\r\n if (Array.isArray(param)) {\r\n param.forEach(function (value, index) {\r\n var nested = AWS.prepareRecursive(prefix + \'.member.\' + (index + 1), value);\r\n Object.keys(nested).forEach(function (key) {\r\n result[key] = nested[key];\r\n });\r\n });\r\n }\r\n else {\r\n Object.keys(param).forEach(function (k) {\r\n var nested = AWS.prepareRecursive(prefix + \'.\' + k, param[k]);\r\n Object.keys(nested).forEach(function (key) {\r\n result[key] = nested[key];\r\n });\r\n });\r\n }\r\n }\r\n else {\r\n result[prefix] = param;\r\n }\r\n\r\n return result;\r\n },\r\n\r\n renderPayload: function (period, cluster_name) {\r\n var metrics_list = [\r\n \'ContainerInstanceCount:Count\',\r\n \'ServiceCount:Count\',\r\n \'CpuReserved:None\',\r\n \'CpuUtilized:None\',\r\n \'MemoryReserved:Megabytes\',\r\n \'MemoryUtilized:Megabytes\',\r\n \'NetworkRxBytes:Bytes/Second\',\r\n \'NetworkTxBytes:Bytes/Second\',\r\n \'StorageReadBytes:Bytes\',\r\n \'StorageWriteBytes:Bytes\',\r\n \'TaskCount:Count\'\r\n ];\r\n\r\n var metric_payload = [];\r\n metrics_list.forEach(function (metric) {\r\n var parts = metric.split(\':\', 2);\r\n var name = parts[0].replace(/[^a-zA-Z0-9]/g, \'\');\r\n metric_payload.push({\r\n \'Id\': name.charAt(0).toLowerCase() + name.slice(1),\r\n \'MetricStat\': {\r\n \'Metric\': {\r\n \'MetricName\': parts[0],\r\n \'Namespace\': \'ECS/ContainerInsights\',\r\n \'Dimensions\': [\r\n {\r\n \'Name\': \'ClusterName\',\r\n \'Value\': cluster_name\r\n }\r\n ]\r\n },\r\n \'Period\': period,\r\n \'Stat\': \'Average\',\r\n \'Unit\': parts[1]\r\n }\r\n });\r\n });\r\n\r\n return metric_payload;\r\n },\r\n\r\n prepareParams: function (params) {\r\n var result = [];\r\n\r\n Object.keys(params).sort().forEach(function (key) {\r\n if (typeof params[key] !== \'object\') {\r\n result.push(key + \'=\' + encodeURIComponent(params[key]));\r\n }\r\n else {\r\n result.push(prepareObject(key, params[key]));\r\n }\r\n });\r\n\r\n return result.join(\'&\');\r\n },\r\n\r\n request: function (method, region, service, params, data) {\r\n if (typeof data === \'undefined\' || data === null) {\r\n data = \'\';\r\n }\r\n\r\n var amzdate = (new Date()).toISOString().replace(/\\.\\d+Z/, \'Z\').replace(/[-:]/g, \'\'),\r\n date = amzdate.replace(/T\\d+Z/, \'\'),\r\n host = service + \'.\' + region + \'.amazonaws.com\',\r\n canonical_uri = \'/\',\r\n canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\',\r\n signed_headers = \'content-encoding;host;x-amz-date\',\r\n canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data),\r\n credential_scope = date + \'/\' + region + \'/\' + service + \'/\' + \'aws4_request\',\r\n request_string = \'AWS4-HMAC-SHA256\' + \'\\n\' + amzdate + \'\\n\' + credential_scope + \'\\n\' + sha256(canonical_request),\r\n key = AWS.sign(\'AWS4\' + AWS.params.SecretAccessKey, date),\r\n key = AWS.sign(key, region),\r\n key = AWS.sign(key, service),\r\n key = AWS.sign(key, \'aws4_request\'),\r\n request = new HttpRequest(),\r\n url = \'https://\' + host + canonical_uri + \'?\' + params;\r\n\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'x-amz-date: \' + amzdate);\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Content-Encoding: amz-1.0\');\r\n request.addHeader(\'Authorization: \' + \'AWS4-HMAC-SHA256 Credential=\' + AWS.params.AccessKeyId + \'/\' + credential_scope + \', \' + \'SignedHeaders=\' + signed_headers + \', \' + \'Signature=\' + hmac(\'sha256\', key, request_string));\r\n if (AWS.params.auth_type === \'role_base\' || AWS.params.auth_type === \'assume_role_metadata\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n request.addHeader(\'X-Amz-Security-Token: \' + (AWS.params.auth_type === \'role_base\' ? AWS.params.Token : AWS.params.SessionToken));\r\n }\r\n\r\n Zabbix.log(4, \'[ AWS ECS ] Sending request: \' + url);\r\n response = request.get(url);\r\n Zabbix.log(4, \'[ AWS ECS ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n try {\r\n response = JSON.parse(XML.toJson(response));\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from AWS CloudWatch API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n return response;\r\n },\r\n\r\n getMetricsData: function () {\r\n var timestamp = new Date().getTime(),\r\n MetricData = [],\r\n CPUUtilization,\r\n MemoryUtilization,\r\n DiskUtilization,\r\n obj = {},\r\n metrics = [\'CpuReserved\', \'CpuUtilized\', \'MemoryReserved\', \'MemoryUtilized\'],\r\n end_time = new Date(timestamp).toISOString().replace(/\\.\\d+Z/, \'Z\'),\r\n start_time = new Date(timestamp - AWS.request_period * 1000).toISOString().replace(/\\.\\d+Z/, \'Z\'),\r\n payload = AWS.prepareRecursive(\'MetricDataQueries\', AWS.renderPayload(AWS.request_period, AWS.params.cluster_name));\r\n\r\n payload[\'Action\'] = \'GetMetricData\';\r\n payload[\'Version\'] = \'2010-08-01\';\r\n payload[\'StartTime\'] = start_time;\r\n payload[\'EndTime\'] = end_time;\r\n payload[\'ScanBy\'] = \'TimestampDescending\';\r\n\r\n result = AWS.request(\'GET\', AWS.params.region, \'monitoring\', AWS.prepareParams(payload));\r\n MetricData = AWS.getField(result, \'GetMetricDataResponse.GetMetricDataResult.MetricDataResults\')\r\n\r\n MetricData.forEach(function (id) {\r\n for (i in metrics) {\r\n if (AWS.getField(id, \'Label\') === metrics[i]) {\r\n obj[metrics[i]] = AWS.getField(id, \'Values\');\r\n }\r\n }\r\n });\r\n CPUUtilization = Math.abs(obj.CpuUtilized * 100 / obj.CpuReserved);\r\n MemoryUtilization = Math.abs(obj.MemoryUtilized * 100 / obj.MemoryReserved);\r\n return ({ MetricData, MemoryUtilization, CPUUtilization, DiskUtilization });\r\n }\r\n};\r\n\r\ntry {\r\n AWS.setParams(JSON.parse(value));\r\n\r\n return JSON.stringify(AWS.getMetricsData());\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ AWS ECS ] ERROR: \' + error);\r\n\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Get cluster metrics.\r\nFull metrics list related to ECS: https://docs.aws.amazon.com/AmazonECS/latest/userguide/metrics-dimensions.html','0','30d','0','',NULL,'15s','','','','200','1','0','','','0','0','0','0','0','0','0','f45389a638c645f8905dc69d6cafb8b3','0','2','0'),
('45559','21','','10584','Get alarms data','aws.ecs.get_alarms','0s;m/1','0','0','0','4','','','','',NULL,NULL,'var AWS = {\r\n params: {},\r\n metadata: \'http://169.254.169.254/latest/\',\r\n\r\n getField: function (data, path) {\r\n var steps = path.split(\'.\');\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n\r\n data = data[step];\r\n }\r\n\r\n return data;\r\n },\r\n\r\n getRoleBaseCredentials: function () {\r\n AWS.params[\'auth_type\'] = \'role_base\';\r\n var request = new HttpRequest();\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token-ttl-seconds: 21600\');\r\n var token = request.put(AWS.metadata + \'api/token\');\r\n\r\n if (request.getStatus() !== 200 || token === null || token === \'\') {\r\n throw \'Error getting IMDSv2 session token.\';\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token: \' + token);\r\n var IamRoleName = request.get(AWS.metadata + \'meta-data/iam/security-credentials\');\r\n\r\n if (request.getStatus() !== 200 || IamRoleName === null || IamRoleName === \'\') {\r\n throw \'Error getting security credentials from instance metadata. Role not found.\';\r\n }\r\n\r\n credentials = request.get(AWS.metadata + \'meta-data/iam/security-credentials/\' + encodeURI(IamRoleName));\r\n\r\n if (request.getStatus() !== 200 || credentials === null || credentials === \'\') {\r\n throw \'Error getting security credentials from instance metadata.\';\r\n }\r\n\r\n try {\r\n credentials = JSON.parse(credentials);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from instance metadata. Check debug log for more information.\';\r\n }\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'Token\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n },\r\n setParams: function (params) {\r\n AWS.params[\'proxy\'] = params.proxy;\r\n switch (AWS.getField(params, \'auth_type\')) {\r\n case \'role_base\':\r\n AWS.getRoleBaseCredentials();\r\n break;\r\n case \'assume_role\':\r\n if (typeof params.metadata_auth === \'undefined\' || params.metadata_auth === \'\' || (params.metadata_auth !== \'true\' && params.metadata_auth !== \'false\')) {\r\n throw \'Required param metadata_auth for assume_role is not set or has invalid value: "\' + params.metadata_auth + \'". Expected "true" or "false".\';\r\n }\r\n if (params.metadata_auth === \'true\') {\r\n AWS.getRoleBaseCredentials();\r\n AWS.params[\'SessionToken\'] = AWS.params[\'Token\'];\r\n AWS.params[\'auth_type\'] = \'assume_role_metadata\';\r\n\r\n [\'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n if (params.metadata_auth === \'false\') {\r\n AWS.params[\'auth_type\'] = \'assume_role\';\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n const role_arn_regex = /role\\/(.+)$/;\r\n const match = AWS.params.role_arn.match(role_arn_regex);\r\n if (!match) {\r\n throw \'Invalid role ARN format.\';\r\n }\r\n\r\n const payload = {\r\n \'Action\': \'AssumeRole\',\r\n \'Version\': \'2011-06-15\',\r\n \'RoleArn\': AWS.params.role_arn,\r\n \'RoleSessionName\': match[1] + \'Session\',\r\n };\r\n\r\n credentials = AWS.getField(AWS.request(\'GET\', AWS.params.sts_region, \'sts\', AWS.prepareParams(payload), \'\'), \'AssumeRoleResponse.AssumeRoleResult.Credentials\');\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'SessionToken\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n break;\r\n default:\r\n AWS.params[\'auth_type\'] = \'access_key\';\r\n [\'AccessKeyId\', \'SecretAccessKey\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n [\'region\', \'cluster_name\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n },\r\n sign: function (key, message) {\r\n var hex = hmac(\'sha256\', key, message);\r\n\r\n if ((hex.length % 2) === 1) {\r\n throw \'Invalid length of a hex string!\';\r\n }\r\n\r\n var result = new Int8Array(hex.length / 2);\r\n for (var i = 0, b = 0; i < hex.length; i += 2, b++) {\r\n result[b] = parseInt(hex.substring(i, i + 2), 16);\r\n }\r\n\r\n return result;\r\n },\r\n\r\n prepareParams: function (params) {\r\n var result = [];\r\n\r\n Object.keys(params).sort().forEach(function (key) {\r\n if (typeof params[key] !== \'object\') {\r\n result.push(key + \'=\' + encodeURIComponent(params[key]));\r\n }\r\n else {\r\n result.push(prepareObject(key, params[key]));\r\n }\r\n });\r\n\r\n return result.join(\'&\');\r\n },\r\n\r\n request: function (method, region, service, params, data) {\r\n if (typeof data === \'undefined\' || data === null) {\r\n data = \'\';\r\n }\r\n\r\n var amzdate = (new Date()).toISOString().replace(/\\.\\d+Z/, \'Z\').replace(/[-:]/g, \'\'),\r\n date = amzdate.replace(/T\\d+Z/, \'\'),\r\n host = service + \'.\' + region + \'.amazonaws.com\',\r\n canonical_uri = \'/\',\r\n canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\',\r\n signed_headers = \'content-encoding;host;x-amz-date\',\r\n canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data),\r\n credential_scope = date + \'/\' + region + \'/\' + service + \'/\' + \'aws4_request\',\r\n request_string = \'AWS4-HMAC-SHA256\' + \'\\n\' + amzdate + \'\\n\' + credential_scope + \'\\n\' + sha256(canonical_request),\r\n key = AWS.sign(\'AWS4\' + AWS.params.SecretAccessKey, date),\r\n key = AWS.sign(key, region),\r\n key = AWS.sign(key, service),\r\n key = AWS.sign(key, \'aws4_request\'),\r\n request = new HttpRequest(),\r\n url = \'https://\' + host + canonical_uri + \'?\' + params;\r\n\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'x-amz-date: \' + amzdate);\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Content-Encoding: amz-1.0\');\r\n request.addHeader(\'Authorization: \' + \'AWS4-HMAC-SHA256 Credential=\' + AWS.params.AccessKeyId + \'/\' + credential_scope + \', \' + \'SignedHeaders=\' + signed_headers + \', \' + \'Signature=\' + hmac(\'sha256\', key, request_string));\r\n if (AWS.params.auth_type === \'role_base\' || AWS.params.auth_type === \'assume_role_metadata\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n request.addHeader(\'X-Amz-Security-Token: \' + (AWS.params.auth_type === \'role_base\' ? AWS.params.Token : AWS.params.SessionToken));\r\n }\r\n\r\n Zabbix.log(4, \'[ AWS ECS ] Sending request: \' + url);\r\n response = request.get(url);\r\n Zabbix.log(4, \'[ AWS ECS ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n try {\r\n response = JSON.parse(XML.toJson(response));\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from AWS CloudWatch API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n return response;\r\n },\r\n\r\n getAlarms: function () {\r\n var payload = {\r\n \'Action\': \'DescribeAlarms\',\r\n \'Version\': \'2010-08-01\',\r\n \'MaxRecords\': 100\r\n },\r\n result = [];\r\n\r\n while (payload.NextToken !== \'\') {\r\n var alarms = AWS.getField(AWS.request(\'GET\', AWS.params.region, \'monitoring\', AWS.prepareParams(payload)), \'DescribeAlarmsResponse.DescribeAlarmsResult\');\r\n payload.NextToken = alarms.NextToken || \'\';\r\n alarms_list = AWS.getField(alarms, \'MetricAlarms\');\r\n\r\n if (!Array.isArray(alarms_list))\r\n alarms_list = [alarms_list];\r\n alarms_list.forEach(function (alarm) {\r\n var dimensions = alarm.Dimensions;\r\n\r\n Zabbix.log(4, \'[ AWS ECS ] dimensions: \' + JSON.stringify(dimensions));\r\n if (Array.isArray(alarm.Metrics)) {\r\n alarm.Metrics.forEach(function (metric) {\r\n if (typeof metric.MetricStat === \'object\' && metric.MetricStat !== null\r\n && typeof metric.MetricStat.Metric === \'object\' && metric.MetricStat.Metric !== null\r\n && Array.isArray(metric.MetricStat.Metric.Dimensions)) {\r\n dimensions = dimensions.concat(metric.MetricStat.Metric.Dimensions);\r\n }\r\n });\r\n }\r\n for (var i in dimensions) {\r\n if (dimensions[i].Name === \'ClusterName\' && dimensions[i].Value === AWS.params.cluster_name) {\r\n result.push(alarm);\r\n break;\r\n }\r\n }\r\n });\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n\r\ntry {\r\n AWS.setParams(JSON.parse(value));\r\n\r\n return JSON.stringify(AWS.getAlarms());\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ AWS ECS ] ERROR: \' + error);\r\n\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Get alarms data.\r\nDescribeAlarms API method: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarms.html','0','30d','0','',NULL,'15s','','','','200','1','0','','','0','0','0','0','0','0','0','ee28426c92874a99b998198a5539599d','0','2','0'),
('45560','21','','10584','Get cluster services','aws.ecs.get_cluster_services','5m','0','0','0','4','','','','',NULL,NULL,'var AWS = {\r\n params: {},\r\n metadata: \'http://169.254.169.254/latest/\',\r\n\r\n getRoleBaseCredentials: function () {\r\n AWS.params[\'auth_type\'] = \'role_base\';\r\n var request = new HttpRequest();\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token-ttl-seconds: 21600\');\r\n var token = request.put(AWS.metadata + \'api/token\');\r\n\r\n if (request.getStatus() !== 200 || token === null || token === \'\') {\r\n throw \'Error getting IMDSv2 session token.\';\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token: \' + token);\r\n var IamRoleName = request.get(AWS.metadata + \'meta-data/iam/security-credentials\');\r\n\r\n if (request.getStatus() !== 200 || IamRoleName === null || IamRoleName === \'\') {\r\n throw \'Error getting security credentials from instance metadata. Role not found.\';\r\n }\r\n\r\n credentials = request.get(AWS.metadata + \'meta-data/iam/security-credentials/\' + encodeURI(IamRoleName));\r\n\r\n if (request.getStatus() !== 200 || credentials === null || credentials === \'\') {\r\n throw \'Error getting security credentials from instance metadata.\';\r\n }\r\n\r\n try {\r\n credentials = JSON.parse(credentials);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from instance metadata. Check debug log for more information.\';\r\n }\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'Token\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n },\r\n\r\n setParams: function (params) {\r\n AWS.params[\'proxy\'] = params.proxy;\r\n switch (AWS.getField(params, \'auth_type\')) {\r\n case \'role_base\':\r\n AWS.getRoleBaseCredentials();\r\n break;\r\n case \'assume_role\':\r\n if (typeof params.metadata_auth === \'undefined\' || params.metadata_auth === \'\' || (params.metadata_auth !== \'true\' && params.metadata_auth !== \'false\')) {\r\n throw \'Required param metadata_auth for assume_role is not set or has invalid value: "\' + params.metadata_auth + \'". Expected "true" or "false".\';\r\n }\r\n if (params.metadata_auth === \'true\') {\r\n AWS.getRoleBaseCredentials();\r\n AWS.params[\'SessionToken\'] = AWS.params[\'Token\'];\r\n AWS.params[\'auth_type\'] = \'assume_role_metadata\';\r\n\r\n [\'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n if (params.metadata_auth === \'false\') {\r\n AWS.params[\'auth_type\'] = \'assume_role\';\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n const role_arn_regex = /role\\/(.+)$/;\r\n const match = AWS.params.role_arn.match(role_arn_regex);\r\n if (!match) {\r\n throw \'Invalid role ARN format.\';\r\n }\r\n\r\n const payload = {\r\n \'Action\': \'AssumeRole\',\r\n \'Version\': \'2011-06-15\',\r\n \'RoleArn\': AWS.params.role_arn,\r\n \'RoleSessionName\': match[1] + \'Session\',\r\n };\r\n\r\n credentials = AWS.getField(AWS.request(\'GET\', AWS.params.sts_region, \'sts\', AWS.prepareParams(payload)), \'AssumeRoleResponse.AssumeRoleResult.Credentials\');\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'SessionToken\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n break;\r\n default:\r\n AWS.params[\'auth_type\'] = \'access_key\';\r\n [\'AccessKeyId\', \'SecretAccessKey\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n [\'region\', \'cluster_name\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n },\r\n\r\n getField: function (data, path) {\r\n var steps = path.split(\'.\');\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n\r\n data = data[step];\r\n }\r\n\r\n return data;\r\n },\r\n\r\n sign: function (key, message) {\r\n var hex = hmac(\'sha256\', key, message);\r\n\r\n if ((hex.length % 2) === 1) {\r\n throw \'Invalid length of a hex string!\';\r\n }\r\n\r\n var result = new Int8Array(hex.length / 2);\r\n for (var i = 0, b = 0; i < hex.length; i += 2, b++) {\r\n result[b] = parseInt(hex.substring(i, i + 2), 16);\r\n }\r\n\r\n return result;\r\n },\r\n\r\n prepareParams: function (params) {\r\n var result = [];\r\n\r\n Object.keys(params).sort().forEach(function (key) {\r\n if (typeof params[key] !== \'object\') {\r\n result.push(key + \'=\' + encodeURIComponent(params[key]));\r\n }\r\n else {\r\n result.push(prepareObject(key, params[key]));\r\n }\r\n });\r\n\r\n return result.join(\'&\');\r\n },\r\n\r\n request: function (method, region, service, params, data) {\r\n if (typeof data === \'undefined\' || data === null) {\r\n data = \'\';\r\n }\r\n\r\n var amzdate = (new Date()).toISOString().replace(/\\.\\d+Z/, \'Z\').replace(/[-:]/g, \'\'),\r\n date = amzdate.replace(/T\\d+Z/, \'\'),\r\n canonical_uri = \'/\',\r\n host = service + \'.\' + region + \'.amazonaws.com\',\r\n canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\',\r\n signed_headers = \'content-encoding;host;x-amz-date\',\r\n canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data),\r\n credential_scope = date + \'/\' + region + \'/\' + service + \'/\' + \'aws4_request\',\r\n request_string = \'AWS4-HMAC-SHA256\' + \'\\n\' + amzdate + \'\\n\' + credential_scope + \'\\n\' + sha256(canonical_request),\r\n key = AWS.sign(\'AWS4\' + AWS.params.SecretAccessKey, date),\r\n key = AWS.sign(key, region),\r\n key = AWS.sign(key, service),\r\n key = AWS.sign(key, \'aws4_request\'),\r\n request = new HttpRequest(),\r\n url = \'https://\' + host + canonical_uri + \'?\' + params;\r\n\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'x-amz-date: \' + amzdate);\r\n request.addHeader(\'x-amz-content-sha256:\' + sha256(data));\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n request.addHeader(\'Content-Encoding: amz-1.0\');\r\n request.addHeader(\'Authorization: \' + \'AWS4-HMAC-SHA256 Credential=\' + AWS.params.AccessKeyId + \'/\' + credential_scope + \', \' + \'SignedHeaders=\' + signed_headers + \', \' + \'Signature=\' + hmac(\'sha256\', key, request_string));\r\n if (AWS.params.auth_type === \'role_base\' || AWS.params.auth_type === \'assume_role_metadata\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n request.addHeader(\'X-Amz-Security-Token: \' + (AWS.params.auth_type === \'role_base\' ? AWS.params.Token : AWS.params.SessionToken));\r\n }\r\n\r\n Zabbix.log(4, \'[ AWS ECS ] Sending request: \' + url);\r\n response = request.get(url);\r\n Zabbix.log(4, \'[ AWS ECS ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n try {\r\n response = JSON.parse(XML.toJson(response));\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from AWS CloudWatch API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n return response;\r\n },\r\n\r\n listServices: function () {\r\n var payload = {\r\n \'Action\': \'ListServices\',\r\n \'Version\': \'2014-11-13\',\r\n \'maxResults\': 100,\r\n \'cluster\': AWS.params.cluster_name\r\n },\r\n services = [];\r\n\r\n while (payload.nextToken !== \'\') {\r\n var services_list = AWS.getField(AWS.request(\'GET\', AWS.params.region, \'ecs\', AWS.prepareParams(payload)), \'ListServicesResponse.ListServicesResult\');\r\n payload.nextToken = services_list.nextToken || \'\';\r\n services_arns = AWS.getField(services_list, \'serviceArns\');\r\n\r\n for (k in services_arns) {\r\n id = services_arns[k];\r\n json = {};\r\n input = id.split(AWS.params.cluster_name + \'/\');\r\n for (var i = 1; i < input.length; i += 2) {\r\n json[input[i]] = input[i + 1];\r\n }\r\n services.push({\r\n \'service_name\': input[1],\r\n });\r\n }\r\n };\r\n\r\n if (Array.isArray(services))\r\n return services;\r\n else\r\n return [services];\r\n }\r\n};\r\n\r\ntry {\r\n AWS.setParams(JSON.parse(value));\r\n return JSON.stringify(AWS.listServices());\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ AWS ECS ] ERROR: \' + error);\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Get cluster services.\r\nFull metrics list related to ECS: https://docs.aws.amazon.com/AmazonECS/latest/userguide/metrics-dimensions.html','0','30d','0','',NULL,'15s','','','','200','1','0','','','0','0','0','0','0','0','0','9818272bc51e4848bba7b2863dda9424','0','2','0'),
('45561','21','','10584','Get cluster metrics','aws.ecs.get_metrics','0s;m/1','0','0','0','4','','','','',NULL,NULL,'var AWS = {\r\n params: {},\r\n request_period: 600,\r\n metadata: \'http://169.254.169.254/latest/\',\r\n\r\n getRoleBaseCredentials: function () {\r\n AWS.params[\'auth_type\'] = \'role_base\';\r\n var request = new HttpRequest();\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token-ttl-seconds: 21600\');\r\n var token = request.put(AWS.metadata + \'api/token\');\r\n\r\n if (request.getStatus() !== 200 || token === null || token === \'\') {\r\n throw \'Error getting IMDSv2 session token.\';\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token: \' + token);\r\n var IamRoleName = request.get(AWS.metadata + \'meta-data/iam/security-credentials\');\r\n\r\n if (request.getStatus() !== 200 || IamRoleName === null || IamRoleName === \'\') {\r\n throw \'Error getting security credentials from instance metadata. Role not found.\';\r\n }\r\n\r\n credentials = request.get(AWS.metadata + \'meta-data/iam/security-credentials/\' + encodeURI(IamRoleName));\r\n\r\n if (request.getStatus() !== 200 || credentials === null || credentials === \'\') {\r\n throw \'Error getting security credentials from instance metadata.\';\r\n }\r\n\r\n try {\r\n credentials = JSON.parse(credentials);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from instance metadata. Check debug log for more information.\';\r\n }\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'Token\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n },\r\n\r\n setParams: function (params) {\r\n AWS.params[\'proxy\'] = params.proxy;\r\n switch (AWS.getField(params, \'auth_type\')) {\r\n case \'role_base\':\r\n AWS.getRoleBaseCredentials();\r\n break;\r\n case \'assume_role\':\r\n if (typeof params.metadata_auth === \'undefined\' || params.metadata_auth === \'\' || (params.metadata_auth !== \'true\' && params.metadata_auth !== \'false\')) {\r\n throw \'Required param metadata_auth for assume_role is not set or has invalid value: "\' + params.metadata_auth + \'". Expected "true" or "false".\';\r\n }\r\n if (params.metadata_auth === \'true\') {\r\n AWS.getRoleBaseCredentials();\r\n AWS.params[\'SessionToken\'] = AWS.params[\'Token\'];\r\n AWS.params[\'auth_type\'] = \'assume_role_metadata\';\r\n\r\n [\'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n if (params.metadata_auth === \'false\') {\r\n AWS.params[\'auth_type\'] = \'assume_role\';\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n const role_arn_regex = /role\\/(.+)$/;\r\n const match = AWS.params.role_arn.match(role_arn_regex);\r\n if (!match) {\r\n throw \'Invalid role ARN format.\';\r\n }\r\n\r\n const payload = {\r\n \'Action\': \'AssumeRole\',\r\n \'Version\': \'2011-06-15\',\r\n \'RoleArn\': AWS.params.role_arn,\r\n \'RoleSessionName\': match[1] + \'Session\',\r\n };\r\n\r\n credentials = AWS.getField(AWS.request(\'GET\', AWS.params.sts_region, \'sts\', AWS.prepareParams(payload), \'\'), \'AssumeRoleResponse.AssumeRoleResult.Credentials\');\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'SessionToken\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n break;\r\n default:\r\n AWS.params[\'auth_type\'] = \'access_key\';\r\n [\'AccessKeyId\', \'SecretAccessKey\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n [\'region\', \'cluster_name\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n },\r\n\r\n getField: function (data, path) {\r\n var steps = path.split(\'.\');\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n\r\n data = data[step];\r\n }\r\n\r\n return data;\r\n },\r\n\r\n sign: function (key, message) {\r\n var hex = hmac(\'sha256\', key, message);\r\n\r\n if ((hex.length % 2) === 1) {\r\n throw \'Invalid length of a hex string!\';\r\n }\r\n\r\n var result = new Int8Array(hex.length / 2);\r\n for (var i = 0, b = 0; i < hex.length; i += 2, b++) {\r\n result[b] = parseInt(hex.substring(i, i + 2), 16);\r\n }\r\n\r\n return result;\r\n },\r\n\r\n prepareRecursive: function (prefix, param) {\r\n var result = {};\r\n\r\n if (typeof param === \'object\') {\r\n if (Array.isArray(param)) {\r\n param.forEach(function (value, index) {\r\n var nested = AWS.prepareRecursive(prefix + \'.member.\' + (index + 1), value);\r\n Object.keys(nested).forEach(function (key) {\r\n result[key] = nested[key];\r\n });\r\n });\r\n }\r\n else {\r\n Object.keys(param).forEach(function (k) {\r\n var nested = AWS.prepareRecursive(prefix + \'.\' + k, param[k]);\r\n Object.keys(nested).forEach(function (key) {\r\n result[key] = nested[key];\r\n });\r\n });\r\n }\r\n }\r\n else {\r\n result[prefix] = param;\r\n }\r\n\r\n return result;\r\n },\r\n\r\n renderPayload: function (period, cluster_name) {\r\n var metrics_list = [\r\n \'ContainerInstanceCount:Count\',\r\n \'ServiceCount:Count\',\r\n \'CpuReserved:None\',\r\n \'CpuUtilized:None\',\r\n \'MemoryReserved:Megabytes\',\r\n \'MemoryUtilized:Megabytes\',\r\n \'NetworkRxBytes:Bytes/Second\',\r\n \'NetworkTxBytes:Bytes/Second\',\r\n \'StorageReadBytes:Bytes\',\r\n \'StorageWriteBytes:Bytes\',\r\n \'TaskCount:Count\',\r\n \'EphemeralStorageReserved:Gigabytes\',\r\n \'EphemeralStorageUtilized:Gigabytes\'\r\n ];\r\n\r\n var metric_payload = [];\r\n metrics_list.forEach(function (metric) {\r\n var parts = metric.split(\':\', 2);\r\n var name = parts[0].replace(/[^a-zA-Z0-9]/g, \'\');\r\n metric_payload.push({\r\n \'Id\': name.charAt(0).toLowerCase() + name.slice(1),\r\n \'MetricStat\': {\r\n \'Metric\': {\r\n \'MetricName\': parts[0],\r\n \'Namespace\': \'ECS/ContainerInsights\',\r\n \'Dimensions\': [\r\n {\r\n \'Name\': \'ClusterName\',\r\n \'Value\': cluster_name\r\n }\r\n ]\r\n },\r\n \'Period\': period,\r\n \'Stat\': \'Average\',\r\n \'Unit\': parts[1]\r\n }\r\n });\r\n });\r\n\r\n return metric_payload;\r\n },\r\n\r\n prepareParams: function (params) {\r\n var result = [];\r\n\r\n Object.keys(params).sort().forEach(function (key) {\r\n if (typeof params[key] !== \'object\') {\r\n result.push(key + \'=\' + encodeURIComponent(params[key]));\r\n }\r\n else {\r\n result.push(prepareObject(key, params[key]));\r\n }\r\n });\r\n\r\n return result.join(\'&\');\r\n },\r\n\r\n request: function (method, region, service, params, data) {\r\n if (typeof data === \'undefined\' || data === null) {\r\n data = \'\';\r\n }\r\n\r\n var amzdate = (new Date()).toISOString().replace(/\\.\\d+Z/, \'Z\').replace(/[-:]/g, \'\'),\r\n date = amzdate.replace(/T\\d+Z/, \'\'),\r\n host = service + \'.\' + region + \'.amazonaws.com\',\r\n canonical_uri = \'/\',\r\n canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\',\r\n signed_headers = \'content-encoding;host;x-amz-date\',\r\n canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data),\r\n credential_scope = date + \'/\' + region + \'/\' + service + \'/\' + \'aws4_request\',\r\n request_string = \'AWS4-HMAC-SHA256\' + \'\\n\' + amzdate + \'\\n\' + credential_scope + \'\\n\' + sha256(canonical_request),\r\n key = AWS.sign(\'AWS4\' + AWS.params.SecretAccessKey, date),\r\n key = AWS.sign(key, region),\r\n key = AWS.sign(key, service),\r\n key = AWS.sign(key, \'aws4_request\'),\r\n request = new HttpRequest(),\r\n url = \'https://\' + host + canonical_uri + \'?\' + params;\r\n\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'x-amz-date: \' + amzdate);\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Content-Encoding: amz-1.0\');\r\n request.addHeader(\'Authorization: \' + \'AWS4-HMAC-SHA256 Credential=\' + AWS.params.AccessKeyId + \'/\' + credential_scope + \', \' + \'SignedHeaders=\' + signed_headers + \', \' + \'Signature=\' + hmac(\'sha256\', key, request_string));\r\n if (AWS.params.auth_type === \'role_base\' || AWS.params.auth_type === \'assume_role_metadata\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n request.addHeader(\'X-Amz-Security-Token: \' + (AWS.params.auth_type === \'role_base\' ? AWS.params.Token : AWS.params.SessionToken));\r\n }\r\n\r\n Zabbix.log(4, \'[ AWS ECS ] Sending request: \' + url);\r\n response = request.get(url);\r\n Zabbix.log(4, \'[ AWS ECS ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n try {\r\n response = JSON.parse(XML.toJson(response));\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from AWS CloudWatch API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n return response;\r\n },\r\n\r\n getMetricsData: function () {\r\n var timestamp = new Date().getTime(),\r\n MetricData = [],\r\n CPUUtilization,\r\n MemoryUtilization,\r\n DiskUtilization,\r\n obj = {},\r\n metrics = [\'CpuReserved\', \'CpuUtilized\', \'MemoryReserved\', \'MemoryUtilized\', \'EphemeralStorageReserved\', \'EphemeralStorageUtilized\'],\r\n end_time = new Date(timestamp).toISOString().replace(/\\.\\d+Z/, \'Z\'),\r\n start_time = new Date(timestamp - AWS.request_period * 1000).toISOString().replace(/\\.\\d+Z/, \'Z\'),\r\n payload = AWS.prepareRecursive(\'MetricDataQueries\', AWS.renderPayload(AWS.request_period, AWS.params.cluster_name));\r\n\r\n payload[\'Action\'] = \'GetMetricData\';\r\n payload[\'Version\'] = \'2010-08-01\';\r\n payload[\'StartTime\'] = start_time;\r\n payload[\'EndTime\'] = end_time;\r\n payload[\'ScanBy\'] = \'TimestampDescending\';\r\n\r\n result = AWS.request(\'GET\', AWS.params.region, \'monitoring\', AWS.prepareParams(payload));\r\n MetricData = AWS.getField(result, \'GetMetricDataResponse.GetMetricDataResult.MetricDataResults\')\r\n\r\n MetricData.forEach(function (id) {\r\n for (i in metrics) {\r\n if (AWS.getField(id, \'Label\') === metrics[i]) {\r\n obj[metrics[i]] = AWS.getField(id, \'Values\');\r\n }\r\n }\r\n });\r\n CPUUtilization = Math.abs(obj.CpuUtilized * 100 / obj.CpuReserved);\r\n MemoryUtilization = Math.abs(obj.MemoryUtilized * 100 / obj.MemoryReserved);\r\n DiskUtilization = Math.abs(obj.EphemeralStorageUtilized * 100 / obj.EphemeralStorageReserved);\r\n return ({ MetricData, MemoryUtilization, CPUUtilization, DiskUtilization });\r\n }\r\n};\r\n\r\ntry {\r\n AWS.setParams(JSON.parse(value));\r\n\r\n return JSON.stringify(AWS.getMetricsData());\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ AWS ECS ] ERROR: \' + error);\r\n\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Get cluster metrics.\r\nFull metrics list related to ECS: https://docs.aws.amazon.com/AmazonECS/latest/userguide/metrics-dimensions.html','0','30d','0','',NULL,'15s','','','','200','1','0','','','0','0','0','0','0','0','0','01f1a371b56e4945b604cd8b396c85f5','0','2','0'),
('45596','21','','10586','Get access token and service catalog','openstack.identity.auth','{$OPENSTACK.AUTH.INTERVAL}','0','0','0','4','','','','',NULL,NULL,'\r\nconst request_path = \'/v3/auth/tokens\';\r\n\r\nfunction checkParams(params) {\r\n [\'api_url\', \'app_cred_id\', \'app_cred_secret\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n return params;\r\n}\r\n\r\nfunction getHttpData(url, params, app_cred_id, app_cred_secret) {\r\n const request = new HttpRequest();\r\n\r\n request.addHeader(\'Content-Type: application/json\');\r\n\r\n const request_body = {\r\n "auth": {\r\n "identity": {\r\n "methods": [\r\n "application_credential"\r\n ],\r\n "application_credential": {\r\n "id": app_cred_id,\r\n "secret": app_cred_secret\r\n }\r\n }\r\n }\r\n };\r\n\r\n if (params[\'http_proxy\']) {\r\n request.setProxy(params[\'http_proxy\'])\r\n Zabbix.log(4, \'[ Openstack Nova API ] Using http proxy: \' + params[\'http_proxy\']);\r\n }\r\n\r\n const response = request.post(url, JSON.stringify(request_body));\r\n Zabbix.log(4, \'[ Openstack Identity API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 201) {\r\n if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n throw response.error.message;\r\n } else {\r\n throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n return {\'request\': request, \'response\': response};\r\n}\r\n\r\nfunction parseHttpData(http_data) {\r\n var token;\r\n const headers = http_data[\'request\'].getHeaders(true);\r\n if (typeof headers === "object") {\r\n if (headers !== null) {\r\n try {\r\n token = headers["X-Subject-Token"][0];\r\n } catch (error) {\r\n throw \'Failed to parse response received from OpenStack Identity API. Check debug log for more information.\';\r\n }\r\n } else {\r\n throw \'Response object is empty. Check debug log for more information.\';\r\n }\r\n } else {\r\n throw \'Cannot process response data: received data is not an object. Check debug log for more information.\';\r\n }\r\n\r\n const supported_services = [\'nova\'];\r\n\r\n var ret = [];\r\n const data = JSON.parse(http_data[\'response\']);\r\n if (data[\'token\'][\'catalog\']) {\r\n const service_catalog = data[\'token\'][\'catalog\'];\r\n } else {\r\n throw \'Cannot find service catalog in HTTP response.\'\r\n }\r\n\r\n service_catalog.forEach(function (service) {\r\n if (supported_services.indexOf(service.name) > -1) {\r\n service.endpoints.forEach(function (endpoint) {\r\n if (endpoint.interface === \'public\') {\r\n ret.push({\r\n \'service_name\': service.name[0].toUpperCase() + service.name.slice(1),\r\n \'service_url\': endpoint.url,\r\n \'token\': token\r\n });\r\n }\r\n })\r\n }\r\n });\r\n\r\n return JSON.stringify(ret);\r\n}\r\n\r\nconst params = checkParams(JSON.parse(value)),\r\n url = params.api_url,\r\n auth_cred_id = params.app_cred_id,\r\n auth_cred_secret = params.app_cred_secret;\r\n\r\nconst httpData = getHttpData(url + request_path, params, auth_cred_id, auth_cred_secret);\r\nreturn parseHttpData(httpData);','','0','','','','','0',NULL,'Authorizes user on the OpenStack Identity service and gets the service catalog.','0','30d','0','',NULL,'10s','','','','200','1','0','','','0','0','0','0','0','0','0','0518d08edbf2480abf15f4ef0e7a251a','0','2','0'),
('45597','19','','10587','Get availability zones','openstack.nova.availability_zone.get','{$OPENSTACK.NOVA.INTERVAL.AVAILABILITY_ZONE}','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Gets a list of availability zones and its data.','0','30d','0','',NULL,'10s','{$OPENSTACK.NOVA.SERVICE.URL}/os-availability-zone/detail','','','200','1','0','{$OPENSTACK.HTTP.PROXY}','X-Auth-Token: {$OPENSTACK.TOKEN}','0','0','0','0','0','0','0','87d263a6f797439c8c7699d96f4305fb','0','2','0'),
('45598','19','','10587','Get hypervisors','openstack.nova.hypervisors.get','{$OPENSTACK.NOVA.INTERVAL.HYPERVISOR}','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Gets a list of hypervisors and its data.','0','30d','0','',NULL,'10s','{$OPENSTACK.NOVA.SERVICE.URL}/os-hypervisors/detail','','','200','1','0','{$OPENSTACK.HTTP.PROXY}','X-Auth-Token: {$OPENSTACK.TOKEN}','0','0','0','0','0','0','0','c4297b412ad54bae85a1219e2d988bcb','0','2','0'),
('45599','19','','10587','Get absolute limits','openstack.nova.limits.get','{$OPENSTACK.NOVA.INTERVAL.LIMITS}','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Gets absolute limits for the project.','0','30d','0','',NULL,'10s','{$OPENSTACK.NOVA.SERVICE.URL}/limits','','','200','1','0','{$OPENSTACK.HTTP.PROXY}','X-Auth-Token: {$OPENSTACK.TOKEN}','0','0','0','0','0','0','0','02698d2fcd2949868013dedb311b8db3','0','2','0'),
('45600','15','','10587','Instances count, free','openstack.nova.limits.instances.free','{$OPENSTACK.NOVA.INTERVAL.LIMITS}','31d','365d','0','3','','','','',NULL,NULL,'last(//openstack.nova.limits.instances.max)-last(//openstack.nova.limits.instances.current)','','0','','','','','0',NULL,'Number of available servers for each tenant.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','29898c0cb13d4ccebc3da95c082da29b','0','2','0'),
('45601','15','','10587','RAM usage, free','openstack.nova.limits.ram.free','{$OPENSTACK.NOVA.INTERVAL.LIMITS}','31d','365d','0','3','','b','','',NULL,NULL,'last(//openstack.nova.limits.ram.max)-last(//openstack.nova.limits.ram.current)','','0','','','','','0',NULL,'Amount of available server RAM.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bdc1492bbb5c4bcd844eaa6f6e76c1ff','0','2','0'),
('45602','15','','10587','vCPUs usage, free','openstack.nova.limits.vcpu.free','{$OPENSTACK.NOVA.INTERVAL.LIMITS}','31d','365d','0','3','','','','',NULL,NULL,'last(//openstack.nova.limits.vcpu.max)-last(//openstack.nova.limits.vcpu.current)','','0','','','','','0',NULL,'Number of available server cores for each tenant.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','97d3b897722d4910aea8e4c3c5f6c9a9','0','2','0'),
('45603','19','','10587','Get servers','openstack.nova.servers.get','{$OPENSTACK.NOVA.INTERVAL.SERVERS}','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Gets a list of servers.','0','30d','0','',NULL,'10s','{$OPENSTACK.NOVA.SERVICE.URL}/servers','','','200','1','0','{$OPENSTACK.HTTP.PROXY}','X-Auth-Token: {$OPENSTACK.TOKEN}','0','0','0','0','0','0','0','85d746d8b6cf404f95eeb7903c2e66e0','0','2','0'),
('45604','19','','10587','Get compute services','openstack.nova.services.get','{$OPENSTACK.NOVA.INTERVAL.SERVICES}','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Gets a list of compute services and its data.','0','30d','0','',NULL,'10s','{$OPENSTACK.NOVA.SERVICE.URL}/os-services','','','200','1','0','{$OPENSTACK.HTTP.PROXY}','X-Auth-Token: {$OPENSTACK.TOKEN}','0','0','0','0','0','0','0','3db93b6116ad416eb10da851cce385a1','0','2','0'),
('45605','21','','10587','Get tenants','openstack.nova.tenant.get','{$OPENSTACK.NOVA.INTERVAL.TENANTS}','0','0','0','4','','','','',NULL,NULL,'\r\nconst request_path = \'/os-simple-tenant-usage\';\r\n\r\nfunction checkParams(params) {\r\n [\'api_url\', \'api_token\', \'period\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n if (field === \'period\') {\r\n const supported_values = [\'y\', \'m\', \'w\', \'d\']\r\n if (supported_values.indexOf(params[field]) === -1) {\r\n throw \'Tenant period not correctly set. Expected one of "y", "m", "w", "d"; received: \' + field + \'.\';\r\n }\r\n }\r\n });\r\n return params;\r\n}\r\n\r\nfunction buildUrl(url, period) {\r\n const current_date = new Date();\r\n var datetime_formatted = \'\'\r\n switch (period) {\r\n case \'y\':\r\n datetime_formatted =\r\n current_date.getFullYear() + \'-\' +\r\n \'1-\' +\r\n \'1T\' +\r\n \'00:00:00\'\r\n break;\r\n case \'m\':\r\n datetime_formatted =\r\n current_date.getFullYear() + \'-\' +\r\n (current_date.getMonth() + 1) + \'-\' +\r\n \'1T\' +\r\n \'00:00:00\'\r\n break;\r\n case \'w\':\r\n const first_date_of_week = current_date.getDate() - current_date.getDay() + 1\r\n datetime_formatted =\r\n current_date.getFullYear() + \'-\' +\r\n (current_date.getMonth() + 1) + \'-\' +\r\n first_date_of_week + \'T\' +\r\n \'00:00:00\'\r\n break;\r\n case \'d\':\r\n datetime_formatted =\r\n current_date.getFullYear() + \'-\' +\r\n (current_date.getMonth() + 1) + \'-\' +\r\n current_date.getDate() + \'T\' +\r\n \'00:00:00\'\r\n break;\r\n }\r\n\r\n return url + request_path + \'?\' +\r\n \'start=\' + encodeURIComponent(datetime_formatted)\r\n}\r\n\r\nfunction getHttpData(url, params, api_token) {\r\n const request = new HttpRequest();\r\n\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'X-Auth-Token: \' + api_token);\r\n if (params[\'http_proxy\']) {\r\n request.setProxy(params[\'http_proxy\'])\r\n Zabbix.log(4, \'[ Openstack Nova API ] Using http proxy: \' + params[\'http_proxy\']);\r\n }\r\n\r\n const response = request.get(url, JSON.stringify(params));\r\n Zabbix.log(4, \'[ Openstack Nova API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200) {\r\n if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n throw response.error.message;\r\n } else {\r\n throw \'Failed to receive data: invalid response status code ( \' + request.getStatus() + \' ). Check debug log for more information.\';\r\n }\r\n }\r\n\r\n return response;\r\n}\r\n\r\nconst params = checkParams(JSON.parse(value)),\r\n url = params.api_url,\r\n token = params.api_token,\r\n period = params.period;\r\n\r\nreturn getHttpData(buildUrl(url, period), params, token);','','0','','','','','0',NULL,'Gets a list of tenants and its data.','0','30d','0','',NULL,'10s','','','','200','1','0','','','0','0','0','0','0','0','0','c258e567922c4f71a4dee9c0d6b88b1e','0','2','0'),
('45635','11','','10589','Get archive','db.odbc.select[pgsql.archive,,"Database={$PG.DATABASE};{$PG.CONNSTRING.ODBC}"]','1m','0','0','0','4','','','','',NULL,NULL,'WITH values AS (\r\n SELECT\r\n 4096/(ceil(pg_settings.setting::numeric/1024/1024))::int AS segment_parts_count,\r\n setting::bigint AS segment_size,\r\n (\'x\' || substring(pg_stat_archiver.last_archived_wal from 9 for 8))::bit(32)::int AS last_wal_div,\r\n (\'x\' || substring(pg_stat_archiver.last_archived_wal from 17 for 8))::bit(32)::int AS last_wal_mod,\r\n CASE WHEN pg_is_in_recovery() THEN NULL \r\n ELSE (\'x\' || substring(pg_walfile_name(pg_current_wal_lsn()) from 9 for 8))::bit(32)::int END AS current_wal_div,\r\n CASE WHEN pg_is_in_recovery() THEN NULL \r\n ELSE (\'x\' || substring(pg_walfile_name(pg_current_wal_lsn()) from 17 for 8))::bit(32)::int END AS current_wal_mod\r\n FROM pg_settings, pg_stat_archiver\r\n WHERE pg_settings.name = \'wal_segment_size\')\r\nSELECT json_build_object(\r\n \'archived_count\', (SELECT archived_count FROM pg_stat_archiver),\r\n \'failed_count\', (SELECT failed_count FROM pg_stat_archiver),\r\n \'count_files\', (SELECT greatest(coalesce((segment_parts_count - last_wal_mod) + ((current_wal_div - last_wal_div - 1) * segment_parts_count) + current_wal_mod - 1, 0), 0) FROM values),\r\n \'size_files\', (SELECT greatest(coalesce(((segment_parts_count - last_wal_mod) + ((current_wal_div - last_wal_div - 1) * segment_parts_count) + current_wal_mod - 1) * segment_size, 0), 0) FROM values)\r\n) AS result','','0','{$PG.USER}','{$PG.PASSWORD}','','','0',NULL,'Collect archive status metrics.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9440208c49134347809eff39109c644f','0','2','0'),
('45636','11','','10589','Replication: Lag in bytes','db.odbc.select[pgsql.replication.lag.b,,"Database={$PG.DATABASE};{$PG.CONNSTRING.ODBC}"]','1m','31d','365d','0','3','','B','','',NULL,NULL,'SELECT\r\n CASE\r\n WHEN NOT pg_is_in_recovery() OR pg_last_wal_receive_lsn() = pg_last_wal_replay_lsn() THEN 0\r\n ELSE COALESCE(EXTRACT(EPOCH FROM now() - pg_last_xact_replay_timestamp())::integer, 0)\r\n END AS lag','','0','{$PG.USER}','{$PG.PASSWORD}','','','0',NULL,'Replication lag with master, in bytes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','669d87ebf9324d6eaa26c3cb44efc850','0','2','0'),
('45637','11','','10589','Count of autovacuum workers','db.odbc.select[pgsql.autovacuum.count,,"Database={$PG.DATABASE};{$PG.CONNSTRING.ODBC}"]','1m','31d','365d','0','0','','','','',NULL,NULL,'SELECT count(*)\r\n FROM pg_catalog.pg_stat_activity\r\n WHERE backend_type = \'autovacuum worker\'\r\n AND state <> \'idle\'\r\n AND pid <> pg_catalog.pg_backend_pid()','','0','{$PG.USER}','{$PG.PASSWORD}','','','0',NULL,'Number of autovacuum workers.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','dd79edeb2d65420fb58d587e411c440f','0','2','0'),
('45638','15','','10589','Cache hit ratio, %','pgsql.cache.hit','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//pgsql.dbstat.sum.blks_hit.rate) * 100 / (last(//pgsql.dbstat.sum.blks_hit.rate) + last(//pgsql.dbstat.sum.blks_read.rate))','','0','','','','','0',NULL,'Cache hit ratio.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6444043a810b4b2f89740c1c794a47c0','0','2','0'),
('45639','11','','10589','Get WAL','db.odbc.select[pgsql.wal.stat,,"Database={$PG.DATABASE};{$PG.CONNSTRING.ODBC}"]','5m','0','0','0','4','','','','',NULL,NULL,'SELECT row_to_json(T)\r\n FROM (\r\n SELECT\r\n CASE\r\n WHEN pg_is_in_recovery() THEN 0\r\n ELSE pg_wal_lsn_diff(pg_current_wal_lsn(),\'0/00000000\')\r\n END AS WRITE,\r\n CASE \r\n WHEN NOT pg_is_in_recovery() THEN 0\r\n ELSE pg_wal_lsn_diff(pg_last_wal_receive_lsn(),\'0/00000000\')\r\n END AS RECEIVE,\r\n count(*)\r\n FROM pg_ls_waldir() AS COUNT\r\n ) T','','0','{$PG.USER}','{$PG.PASSWORD}','','','0',NULL,'Collect write-ahead log (WAL) metrics.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8af13c6154744e9596a0f96dfbf09d8b','0','2','0'),
('45640','11','','10589','Uptime','db.odbc.select[pgsql.uptime,,"Database={$PG.DATABASE};{$PG.CONNSTRING.ODBC}"]','1m','31d','365d','0','0','','uptime','','',NULL,NULL,'SELECT date_part(\'epoch\', now() - pg_postmaster_start_time())','','0','{$PG.USER}','{$PG.PASSWORD}','','','0',NULL,'Time since the server started.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','817c494132044fff88ea4c9fcaacb60a','0','2','0'),
('45641','11','','10589','Replication: Status','db.odbc.select[pgsql.replication.status,,"Database={$PG.DATABASE};{$PG.CONNSTRING.ODBC}"]','1m','31d','365d','0','3','','','','',NULL,'1109','SELECT\r\n CASE\r\n WHEN NOT pg_is_in_recovery() THEN 2\r\n ELSE (SELECT count(*) FROM pg_stat_wal_receiver)\r\n END AS repl_status','','0','{$PG.USER}','{$PG.PASSWORD}','','','0',NULL,'Replication status: 0 — streaming is down, 1 — streaming is up, 2 — master mode.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6cc8c748f6174d3dba9aa9b39570b006','0','2','0'),
('45642','11','','10589','Replication: Recovery role','db.odbc.select[pgsql.replication.recovery_role,,"Database={$PG.DATABASE};{$PG.CONNSTRING.ODBC}"]','1m','31d','365d','0','3','','','','',NULL,'1108','SELECT pg_is_in_recovery()::int','','0','{$PG.USER}','{$PG.PASSWORD}','','','0',NULL,'Replication role: 1 — recovery is still in progress (standby mode), 0 — master mode.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f8205cdd902a4a688b5bcb7f65d8e41d','0','2','0'),
('45643','11','','10589','Replication: Lag in seconds','db.odbc.select[pgsql.replication.lag.sec,,"Database={$PG.DATABASE};{$PG.CONNSTRING.ODBC}"]','1m','31d','365d','0','3','','s','','',NULL,NULL,'SELECT\r\n CASE\r\n WHEN NOT pg_is_in_recovery() OR pg_last_wal_receive_lsn() = pg_last_wal_replay_lsn() THEN 0\r\n ELSE COALESCE(EXTRACT(EPOCH FROM now() - pg_last_xact_replay_timestamp())::integer, 0)\r\n END AS lag','','0','{$PG.USER}','{$PG.PASSWORD}','','','0',NULL,'Replication lag with master, in seconds.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bb87b83d35784d3ea5be2263fa3722b0','0','2','0'),
('45644','11','','10589','Get replication','db.odbc.select[pgsql.replication.process,,"Database={$PG.DATABASE};{$PG.CONNSTRING.ODBC}"]','1m','0','0','0','4','','','','',NULL,NULL,'SELECT json_object_agg(application_name, row_to_json(T))\r\n FROM (\r\n SELECT\r\n application_name,\r\n EXTRACT(epoch FROM COALESCE(flush_lag,\'0\'::interval)) AS flush_lag,\r\n EXTRACT(epoch FROM COALESCE(replay_lag,\'0\'::interval)) AS replay_lag,\r\n EXTRACT(epoch FROM COALESCE(write_lag, \'0\'::interval)) AS write_lag\r\n FROM pg_stat_replication\r\n ) T','','0','{$PG.USER}','{$PG.PASSWORD}','','','0',NULL,'Collect metrics from the pg_stat_replication, which contains information about the WAL sender process, showing statistics about replication to that sender\'s connected standby server.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3f2b5c02a6be40d4837205f68aaacabb','0','2','0'),
('45645','11','','10589','Replication: Standby count','db.odbc.select[pgsql.replication.count,,"Database={$PG.DATABASE};{$PG.CONNSTRING.ODBC}"]','1m','31d','365d','0','3','','','','',NULL,NULL,'SELECT count(*) FROM pg_stat_replication','','0','{$PG.USER}','{$PG.PASSWORD}','','','0',NULL,'Number of standby servers.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d156db3cb35049a88179060583961156','0','2','0'),
('45646','11','','10589','Ping','db.odbc.select[pgsql.ping,,"Database={$PG.DATABASE};{$PG.CONNSTRING.ODBC}"]','1m','31d','365d','0','3','','','','',NULL,'1110','SELECT 1','','0','{$PG.USER}','{$PG.PASSWORD}','','','0',NULL,'Used to test a connection to see if it is alive. It is set to 0 if the query is unsuccessful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3c16a3c2db7641c2b6958649d7b4809e','0','2','0'),
('45647','11','','10589','Age of oldest xid','db.odbc.select[pgsql.oldest.xid,,"Database={$PG.DATABASE};{$PG.CONNSTRING.ODBC}"]','1m','31d','365d','0','0','','','','',NULL,NULL,'SELECT greatest(max(age(backend_xmin)), max(age(backend_xid)))\r\n FROM pg_catalog.pg_stat_activity','','0','{$PG.USER}','{$PG.PASSWORD}','','','0',NULL,'Age of oldest xid.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','266a9b5c1e604d97ac5a74ccdb598c97','0','2','0'),
('45648','11','','10589','Get locks','db.odbc.select[pgsql.locks,,"Database={$PG.DATABASE};{$PG.CONNSTRING.ODBC}"]','1m','0','0','0','4','','','','',NULL,NULL,'WITH T AS\r\n (SELECT db.datname dbname,\r\n lower(replace(Q.mode, \'Lock\', \'\')) AS MODE,\r\n coalesce(T.qty, 0) val\r\n FROM pg_database db\r\n JOIN (\r\n VALUES (\'AccessShareLock\') ,(\'RowShareLock\') ,(\'RowExclusiveLock\') ,(\'ShareUpdateExclusiveLock\') ,(\'ShareLock\') ,(\'ShareRowExclusiveLock\') ,(\'ExclusiveLock\') ,(\'AccessExclusiveLock\')) Q(MODE) ON TRUE NATURAL\r\n LEFT JOIN\r\n (SELECT datname,\r\n MODE,\r\n count(MODE) qty\r\n FROM pg_locks lc\r\n RIGHT JOIN pg_database db ON db.oid = lc.database\r\n GROUP BY 1, 2) T\r\n WHERE NOT db.datistemplate\r\n ORDER BY 1, 2)\r\nSELECT json_object_agg(dbname, row_to_json(T2))\r\nFROM\r\n (SELECT dbname,\r\n sum(val) AS total,\r\n sum(CASE\r\n WHEN MODE = \'accessexclusive\' THEN val\r\n END) AS accessexclusive,\r\n sum(CASE\r\n WHEN MODE = \'accessshare\' THEN val\r\n END) AS accessshare,\r\n sum(CASE\r\n WHEN MODE = \'exclusive\' THEN val\r\n END) AS EXCLUSIVE,\r\n sum(CASE\r\n WHEN MODE = \'rowexclusive\' THEN val\r\n END) AS rowexclusive,\r\n sum(CASE\r\n WHEN MODE = \'rowshare\' THEN val\r\n END) AS rowshare,\r\n sum(CASE\r\n WHEN MODE = \'share\' THEN val\r\n END) AS SHARE,\r\n sum(CASE\r\n WHEN MODE = \'sharerowexclusive\' THEN val\r\n END) AS sharerowexclusive,\r\n sum(CASE\r\n WHEN MODE = \'shareupdateexclusive\' THEN val\r\n END) AS shareupdateexclusive\r\n FROM T\r\n GROUP BY dbname) T2','','0','{$PG.USER}','{$PG.PASSWORD}','','','0',NULL,'Collect all metrics from pg_locks per database:\r\nhttps://www.postgresql.org/docs/current/explicit-locking.html#LOCKING-TABLES','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','efa015e294684fdeb711a0fde1256cf9','0','2','0'),
('45649','11','','10589','Get dbstat sum','db.odbc.select[pgsql.dbstat.sum,,"Database={$PG.DATABASE};{$PG.CONNSTRING.ODBC}"]','1m','0','0','0','4','','','','',NULL,NULL,'SELECT row_to_json(T) FROM (\r\n SELECT sum(numbackends) AS numbackends,\r\n sum(xact_commit) AS xact_commit,\r\n sum(xact_rollback) AS xact_rollback,\r\n sum(blks_read) AS blks_read,\r\n sum(blks_hit) AS blks_hit,\r\n sum(tup_returned) AS tup_returned,\r\n sum(tup_fetched) AS tup_fetched,\r\n sum(tup_inserted) AS tup_inserted,\r\n sum(tup_updated) AS tup_updated,\r\n sum(tup_deleted) AS tup_deleted,\r\n sum(conflicts) AS conflicts,\r\n sum(temp_files) AS temp_files,\r\n sum(temp_bytes) AS temp_bytes,\r\n sum(deadlocks) AS deadlocks,\r\n sum(blk_read_time) AS blk_read_time,\r\n sum(blk_write_time) AS blk_write_time\r\n FROM pg_stat_database) T','','0','{$PG.USER}','{$PG.PASSWORD}','','','0',NULL,'Collect all metrics from pg_stat_database as sums for all databases:\r\nhttps://www.postgresql.org/docs/current/monitoring-stats.html#PG-STAT-DATABASE-VIEW','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6ea1a17fad8b4ef3aba8b49a0922a77d','0','2','0'),
('45650','11','','10589','Get dbstat','db.odbc.select[pgsql.dbstat,,"Database={$PG.DATABASE};{$PG.CONNSTRING.ODBC}"]','1m','0','0','0','4','','','','',NULL,NULL,'SELECT json_object_agg(coalesce (datname,\'null\'), row_to_json(T)) FROM (\r\n SELECT datname,\r\n numbackends AS numbackends,\r\n xact_commit AS xact_commit,\r\n xact_rollback AS xact_rollback,\r\n blks_read AS blks_read,\r\n blks_hit AS blks_hit,\r\n tup_returned AS tup_returned,\r\n tup_fetched AS tup_fetched,\r\n tup_inserted AS tup_inserted,\r\n tup_updated AS tup_updated,\r\n tup_deleted AS tup_deleted,\r\n conflicts AS conflicts,\r\n temp_files AS temp_files,\r\n temp_bytes AS temp_bytes,\r\n deadlocks AS deadlocks,\r\n blk_read_time AS blk_read_time,\r\n blk_write_time AS blk_write_time\r\n FROM pg_catalog.pg_stat_database WHERE datname IS NOT NULL) T;','','0','{$PG.USER}','{$PG.PASSWORD}','','','0',NULL,'Collect all metrics from pg_stat_database per database:\r\nhttps://www.postgresql.org/docs/current/monitoring-stats.html#PG-STAT-DATABASE-VIEW','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0f93764d56574a288467ad16dce11a17','0','2','0'),
('45651','11','','10589','Get queries','db.odbc.select[pgsql.queries,,"Database={$PG.DATABASE};{$PG.CONNSTRING.ODBC}"]','1m','0','0','0','4','','','','',NULL,NULL,'WITH T AS\r\n (SELECT db.datname,\r\n coalesce(T.query_time_max, 0) query_time_max,\r\n coalesce(T.tx_time_max, 0) tx_time_max,\r\n coalesce(T.mro_time_max, 0) mro_time_max,\r\n coalesce(T.query_time_sum, 0) query_time_sum,\r\n coalesce(T.tx_time_sum, 0) tx_time_sum,\r\n coalesce(T.mro_time_sum, 0) mro_time_sum,\r\n coalesce(T.query_slow_count, 0) query_slow_count,\r\n coalesce(T.tx_slow_count, 0) tx_slow_count,\r\n coalesce(T.mro_slow_count, 0) mro_slow_count\r\n FROM pg_database db NATURAL\r\n LEFT JOIN (\r\n SELECT datname,\r\n extract(epoch FROM now())::integer ts,\r\n coalesce(max(extract(\'epoch\' FROM (clock_timestamp() - query_start))::integer * (state NOT IN (\'idle\', \'idle in transaction\', \'idle in transaction (aborted)\') AND query !~* E\'^(\\\\s*(--[^\\\\n]*\\\\n|/\\\\*.*\\\\*/|\\\\n))*(autovacuum|VACUUM|ANALYZE|REINDEX|CLUSTER|CREATE|ALTER|TRUNCATE|DROP)\')::integer), 0) query_time_max,\r\n coalesce(max(extract(\'epoch\' FROM (clock_timestamp() - query_start))::integer * (state NOT IN (\'idle\') AND query !~* E\'^(\\\\s*(--[^\\\\n]*\\\\n|/\\\\*.*\\\\*/|\\\\n))*(autovacuum|VACUUM|ANALYZE|REINDEX|CLUSTER|CREATE|ALTER|TRUNCATE|DROP)\')::integer), 0) tx_time_max,\r\n coalesce(max(extract(\'epoch\' FROM (clock_timestamp() - query_start))::integer * (state NOT IN (\'idle\') AND query ~* E\'^(\\\\s*(--[^\\\\n]*\\\\n|/\\\\*.*\\\\*/|\\\\n))*(autovacuum|VACUUM|ANALYZE|REINDEX|CLUSTER|CREATE|ALTER|TRUNCATE|DROP)\')::integer), 0) mro_time_max,\r\n coalesce(sum(extract(\'epoch\' FROM (clock_timestamp() - query_start))::integer * (state NOT IN (\'idle\', \'idle in transaction\', \'idle in transaction (aborted)\') AND query !~* E\'^(\\\\s*(--[^\\\\n]*\\\\n|/\\\\*.*\\\\*/|\\\\n))*(autovacuum|VACUUM|ANALYZE|REINDEX|CLUSTER|CREATE|ALTER|TRUNCATE|DROP)\')::integer), 0) query_time_sum,\r\n coalesce(sum(extract(\'epoch\' FROM (clock_timestamp() - query_start))::integer * (state NOT IN (\'idle\') AND query !~* E\'^(\\\\s*(--[^\\\\n]*\\\\n|/\\\\*.*\\\\*/|\\\\n))*(autovacuum|VACUUM|ANALYZE|REINDEX|CLUSTER|CREATE|ALTER|TRUNCATE|DROP)\')::integer), 0) tx_time_sum,\r\n coalesce(sum(extract(\'epoch\' FROM (clock_timestamp() - query_start))::integer * (state NOT IN (\'idle\') AND query ~* E\'^(\\\\s*(--[^\\\\n]*\\\\n|/\\\\*.*\\\\*/|\\\\n))*(autovacuum|VACUUM|ANALYZE|REINDEX|CLUSTER|CREATE|ALTER|TRUNCATE|DROP)\')::integer), 0) mro_time_sum,\r\n\r\n coalesce(sum((extract(\'epoch\' FROM (clock_timestamp() - query_start)) > {$PG.QUERY_ETIME.MAX.WARN})::integer * (state NOT IN (\'idle\', \'idle in transaction\', \'idle in transaction (aborted)\') AND query !~* E\'^(\\\\s*(--[^\\\\n]*\\\\n|/\\\\*.*\\\\*/|\\\\n))*(autovacuum|VACUUM|ANALYZE|REINDEX|CLUSTER|CREATE|ALTER|TRUNCATE|DROP)\')::integer), 0) query_slow_count,\r\n coalesce(sum((extract(\'epoch\' FROM (clock_timestamp() - query_start)) > {$PG.QUERY_ETIME.MAX.WARN})::integer * (state NOT IN (\'idle\') AND query !~* E\'^(\\\\s*(--[^\\\\n]*\\\\n|/\\\\*.*\\\\*/|\\\\n))*(autovacuum|VACUUM|ANALYZE|REINDEX|CLUSTER|CREATE|ALTER|TRUNCATE|DROP)\')::integer), 0) tx_slow_count,\r\n coalesce(sum((extract(\'epoch\' FROM (clock_timestamp() - query_start)) > {$PG.QUERY_ETIME.MAX.WARN})::integer * (state NOT IN (\'idle\') AND query ~* E\'^(\\\\s*(--[^\\\\n]*\\\\n|/\\\\*.*\\\\*/|\\\\n))*(autovacuum|VACUUM|ANALYZE|REINDEX|CLUSTER|CREATE|ALTER|TRUNCATE|DROP)\')::integer), 0) mro_slow_count\r\n FROM pg_stat_activity\r\n WHERE pid <> pg_backend_pid()\r\n GROUP BY 1) T\r\n WHERE NOT db.datistemplate )\r\nSELECT json_object_agg(datname, row_to_json(T))\r\nFROM T','','0','{$PG.USER}','{$PG.PASSWORD}','','','0',NULL,'Collect all metrics by query execution time.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ee6b3f64e07d4acd875dbd83dccd51d0','0','2','0'),
('45653','11','','10589','Get connections sum','db.odbc.select[pgsql.connections.sum,,"Database={$PG.DATABASE};{$PG.CONNSTRING.ODBC}"]','1m','0','0','0','4','','','','',NULL,NULL,'SELECT row_to_json(T)\r\n FROM (\r\n SELECT\r\n sum(CASE WHEN state = \'active\' THEN 1 ELSE 0 END) AS active,\r\n sum(CASE WHEN state = \'idle\' THEN 1 ELSE 0 END) AS idle,\r\n sum(CASE WHEN state = \'idle in transaction\' THEN 1 ELSE 0 END) AS idle_in_transaction,\r\n sum(CASE WHEN state = \'idle in transaction (aborted)\' THEN 1 ELSE 0 END) AS idle_in_transaction_aborted,\r\n sum(CASE WHEN state = \'fastpath function call\' THEN 1 ELSE 0 END) AS fastpath_function_call,\r\n sum(CASE WHEN state = \'disabled\' THEN 1 ELSE 0 END) AS disabled,\r\n count(*) AS total,\r\n count(*)*100/(SELECT current_setting(\'max_connections\')::int) AS total_pct,\r\n sum(CASE WHEN wait_event IS NOT NULL THEN 1 ELSE 0 END) AS waiting,\r\n (SELECT count(*) FROM pg_prepared_xacts) AS prepared\r\n FROM pg_stat_activity WHERE datid IS NOT NULL AND state IS NOT NULL) T','','0','{$PG.USER}','{$PG.PASSWORD}','','','0',NULL,'Collect all metrics from pg_stat_activity:\r\nhttps://www.postgresql.org/docs/current/monitoring-stats.html#PG-STAT-ACTIVITY-VIEW','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1d267b6aed064d03b4f464b27c1e897e','0','2','0'),
('45743','21','','10590','Authentication','sd_wan.authentication','{$SDWAN.AUTH.FREQUENCY}','0','0','0','4','','','','',NULL,NULL,'var params = JSON.parse(value),\r\n request = new HttpRequest(),\r\n cookies = [],\r\n token = "",\r\n error_msg = "";\r\n\r\nfunction authenticate(url) {\r\n var payload = \'j_username=\' + encodeURIComponent(params.username)\r\n + \'&j_password=\' + encodeURIComponent(params.password);\r\n request.addHeader(\'Content-Type\', \'application/x-www-form-urlencoded\');\r\n response = request.post(url, payload);\r\n Zabbix.log(4, \'[ SD-WAN API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200) {\r\n throw \'Failed to receive data: invalid response status code.\';\r\n }\r\n\r\n if (response !== null && response != "") {\r\n throw \'Authentication failed.\';\r\n }\r\n\r\n var headers = request.getHeaders();\r\n for (key in headers) {\r\n if (key.toLowerCase() == \'set-cookie\') {\r\n var entries = headers[key].split(\',\');\r\n for (idx in entries) {\r\n var value = entries[idx].split(\';\')[0];\r\n cookies.push(value);\r\n }\r\n }\r\n }\r\n};\r\n\r\nfunction getToken(url) {\r\n response = request.get(url);\r\n Zabbix.log(4, \'[ SD-WAN API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200) {\r\n throw \'Failed to receive data: invalid response status code.\';\r\n }\r\n\r\n var headers = request.getHeaders();\r\n for (key in headers) {\r\n if (key.toLowerCase() == \'content-type\' && headers[key] != \'application/json\') {\r\n throw \'Something went wrong while getting the authentication token. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n return response;\r\n};\r\n\r\ntry {\r\n\r\n [\'username\', \'password\', \'url\'].forEach(function (field) {\r\n var macro = \'{$SDWAN.API.\' + field.toUpperCase() + \'}\';\r\n if (params[field] === macro || params[field] === \'\') {\r\n throw \'Please change \' + macro + \' macro to the proper value.\';\r\n }\r\n if (typeof params[field] === \'undefined\') {\r\n throw \'Please set \\\'\' + field + \'\\\' script input parameter to \' + macro + \' macro value.\';\r\n }\r\n });\r\n\r\n if (params.url.indexOf(\'http://\') === -1 && params.url.indexOf(\'https://\') === -1) {\r\n params.url = \'https://\' + params.url;\r\n }\r\n\r\n if (!params.url.endsWith(\'/\')) {\r\n params.url += \'/\';\r\n }\r\n\r\n if (typeof params.http_proxy !== \'undefined\' && params.http_proxy !== \'{\' + \'$SDWAN.HTTP_PROXY}\' && params.http_proxy !== \'\') {\r\n request.setProxy(params.http_proxy);\r\n }\r\n\r\n authenticate(params.url + \'j_security_check\');\r\n token = getToken(params.url + \'dataservice/client/token\');\r\n\r\n} catch (err) {\r\n error_msg = err;\r\n};\r\n\r\nreturn JSON.stringify({\r\n \'cookie\': cookies.join(\'; \'),\r\n \'token\': token,\r\n \'error\': error_msg.toString()\r\n});','','0','','','','','0',NULL,'Cisco SD-WAN authentication with service account parameters and temporary-generated token usage.\r\nReturns an authentication token and session id; it is required only once and is used for all dependent script items.\r\nA session will expire after 30 minutes of inactivity or after 24 hours, which is the total lifespan of a session.\r\nCheck the template documentation for the details.','0','30d','0','',NULL,'{$SDWAN.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','5aa5a643a3cf42148454507da22aeb17','0','2','0'),
('45744','15','','10591','Memory utilization','sd_wan.device.memory.util','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//sd_wan.device.memory.used)/last(//sd_wan.device.memory.total)*100','','0','','','','','0',NULL,'Calculated percentage of the memory used, in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8b8551ab8a8c4586b2a1bc02bcc7ca60','0','2','0'),
('45745','21','','10591','Get routes data','sd_wan.get.routes','{$SDWAN.ROUTES.FREQUENCY}','0','0','0','4','','','','',NULL,NULL,'var params = JSON.parse(value),\r\n request = new HttpRequest(),\r\n result = { "data": [], "error": "" },\r\n error_msg = "";\r\n\r\nfunction getHttpData(url, data, token, cookie) {\r\n request.addHeader(\'Cookie: \' + cookie);\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'X-XSRF-TOKEN: \' + token);\r\n\r\n if (typeof data !== \'undefined\') {\r\n data = JSON.stringify(data);\r\n }\r\n\r\n response = request.post(url, data);\r\n Zabbix.log(4, \'[ Cisco SD-WAN ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200) {\r\n throw \'Failed to receive data: invalid response status code.\';\r\n }\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from Cisco SD-WAN API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n if (typeof (response) !== \'object\' || response === null) {\r\n throw \'Cannot process response data: received data is not an object.\';\r\n }\r\n\r\n return response;\r\n};\r\n\r\ntry {\r\n [\'auth.token\', \'auth.cookie\', \'api.url\', \'device_id\'].forEach(function (field) {\r\n var macro = \'{$SDWAN.\' + field.toUpperCase() + \'}\';\r\n var key = field.split(\'.\').slice(-1);\r\n if (params[key] === macro || params[key] === \'\') {\r\n throw \'Please change \' + macro + \' macro to the proper value.\';\r\n }\r\n if (typeof params[key] === \'undefined\') {\r\n throw \'Please set \\\'\' + key + \'\\\' script input parameter to \' + macro + \' macro value.\';\r\n }\r\n });\r\n\r\n if (params.url.indexOf(\'http://\') === -1 && params.url.indexOf(\'https://\') === -1) {\r\n params.url = \'https://\' + params.url;\r\n }\r\n\r\n if (!params.url.endsWith(\'/\')) {\r\n params.url += \'/\';\r\n }\r\n\r\n if (typeof params.http_proxy !== \'undefined\' && params.http_proxy !== \'{\' + \'$SDWAN.HTTP_PROXY}\' && params.http_proxy !== \'\') {\r\n request.setProxy(params.http_proxy);\r\n }\r\n\r\n if (!params.interval.endsWith(\'h\')) {\r\n throw \'The value of {\' + \'$SDWAN.ROUTES.INTERVAL} must be expressed in hours.\';\r\n }\r\n else {\r\n try {\r\n params.interval = Number(params.interval.replace(\'h\', \'\'));\r\n }\r\n catch (error) {\r\n throw \'Please change {\' + \'$SDWAN.ROUTES.INTERVAL} macro to the proper value.\';\r\n }\r\n }\r\n\r\n var req_data = {\r\n "query": {\r\n "condition": "AND",\r\n "rules": [\r\n {\r\n "value": [\r\n String(params.interval)\r\n ],\r\n "field": "entry_time",\r\n "type": "date",\r\n "operator": "last_n_hours"\r\n },\r\n {\r\n "value": [\r\n params.device_id\r\n ],\r\n "field": "vdevice_name",\r\n "type": "string",\r\n "operator": "in"\r\n }\r\n ]\r\n },\r\n "aggregation": {\r\n "field": [\r\n {\r\n "property": "local_color",\r\n "order": "asc",\r\n "sequence": 1\r\n },\r\n {\r\n "property": "remote_color",\r\n "order": "asc",\r\n "sequence": 1\r\n }\r\n ],\r\n "metrics": [\r\n {\r\n "property": "loss_percentage",\r\n "type": "avg"\r\n },\r\n {\r\n "property": "latency",\r\n "type": "avg"\r\n },\r\n {\r\n "property": "jitter",\r\n "type": "avg"\r\n }\r\n ]\r\n }\r\n };\r\n\r\n var routes = getHttpData(\r\n params.url + \'dataservice/statistics/approute/aggregation\',\r\n req_data,\r\n params.token,\r\n params.cookie\r\n );\r\n\r\n if (Array.isArray(routes.data)) {\r\n result["data"] = routes.data;\r\n }\r\n else {\r\n throw \'Failed to parse response received from Cisco SD-WAN API. Check debug log for more information.\';\r\n }\r\n} catch (error) {\r\n error_msg = error.toString();\r\n error_msg += (error_msg.endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ Cisco SD-WAN ] ERROR: \' + error_msg);\r\n};\r\n\r\nresult.error = error_msg;\r\n\r\nreturn JSON.stringify(result);','','0','','','','','0',NULL,'Item for gathering device routes from Cisco SD-WAN API.','0','30d','0','',NULL,'{$SDWAN.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','d9ae4a103ae74932a57ad495f2829b62','0','2','0'),
('45746','21','','10591','Get interfaces data','sd_wan.get.interfaces','1m','0','0','0','4','','','','',NULL,NULL,'var params = JSON.parse(value),\r\n request = new HttpRequest(),\r\n result = { "data": [], "error": "" },\r\n error_msg = "";\r\n\r\nfunction getHttpData(url, token, cookie) {\r\n request.addHeader(\'Cookie: \' + cookie);\r\n request.addHeader(\'X-XSRF-TOKEN: \' + token);\r\n response = request.get(url);\r\n Zabbix.log(4, \'[ Cisco SD-WAN ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200) {\r\n throw \'Failed to receive data: invalid response status code.\';\r\n }\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from Cisco SD-WAN API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n if (typeof (response) !== \'object\' || response === null) {\r\n throw \'Cannot process response data: received data is not an object.\';\r\n }\r\n\r\n return response;\r\n};\r\n\r\ntry {\r\n [\'auth.token\', \'auth.cookie\', \'api.url\', \'device_id\'].forEach(function (field) {\r\n var macro = \'{$SDWAN.\' + field.toUpperCase() + \'}\';\r\n var key = field.split(\'.\').slice(-1);\r\n if (params[key] === macro || params[key] === \'\') {\r\n throw \'Please change \' + macro + \' macro to the proper value.\';\r\n }\r\n if (typeof params[key] === \'undefined\') {\r\n throw \'Please set \\\'\' + key + \'\\\' script input parameter to \' + macro + \' macro value.\';\r\n }\r\n });\r\n\r\n if (params.url.indexOf(\'http://\') === -1 && params.url.indexOf(\'https://\') === -1) {\r\n params.url = \'https://\' + params.url;\r\n }\r\n\r\n if (!params.url.endsWith(\'/\')) {\r\n params.url += \'/\';\r\n }\r\n\r\n if (typeof params.http_proxy !== \'undefined\' && params.http_proxy !== \'{\' + \'$SDWAN.HTTP_PROXY}\' && params.http_proxy !== \'\') {\r\n request.setProxy(params.http_proxy);\r\n }\r\n\r\n var interface_list = getHttpData(\r\n params.url + \'dataservice/device/interface?deviceId=\' + encodeURIComponent(params.device_id),\r\n params.token,\r\n params.cookie\r\n );\r\n\r\n if (Array.isArray(interface_list.data) && interface_list.data.length > 0) {\r\n var interfaces = {};\r\n interface_list.data.forEach(function (if_item) {\r\n var if_key = if_item[\'vdevice-name\'] + \'_\' + if_item.ifname + \'_\' + if_item.ifindex;\r\n interfaces[if_key] = (typeof interfaces[if_key] !== \'undefined\') ? interfaces[if_key] : {};\r\n if (typeof if_item[\'af-type\'] !== \'undefined\') {\r\n if (if_item[\'af-type\'].includes(\'ipv6\')) {\r\n Object.keys(if_item).sort().forEach(function (key) {\r\n if (key.match(/([tr]x-)/g)) {\r\n interfaces[if_key][\'ipv6-\' + key] = if_item[key];\r\n }\r\n });\r\n }\r\n else {\r\n interfaces[if_key] = if_item;\r\n }\r\n }\r\n else {\r\n interfaces[if_key] = if_item;\r\n }\r\n });\r\n Object.keys(interfaces).forEach(function (key) {\r\n result.data.push(interfaces[key]);\r\n });\r\n }\r\n else {\r\n throw \'Failed to parse response received from Cisco SD-WAN API. Check debug log for more information.\';\r\n }\r\n} catch (error) {\r\n error_msg = error.toString();\r\n error_msg += (error_msg.endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ Cisco SD-WAN ] ERROR: \' + error_msg);\r\n};\r\n\r\nresult.error = error_msg;\r\n\r\nreturn JSON.stringify(result);','','0','','','','','0',NULL,'Item for gathering device interfaces from Cisco SD-WAN API.','0','30d','0','',NULL,'{$SDWAN.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','694fb02640314fcab6cb2352fe4378ea','0','2','0'),
('45747','21','','10591','Get device data','sd_wan.get.device','1m','0','0','0','4','','','','',NULL,NULL,'var params = JSON.parse(value),\r\n request = new HttpRequest(),\r\n device_info = {},\r\n error_msg = "";\r\n\r\nfunction getHttpData(url, token, cookie) {\r\n request.addHeader(\'Cookie: \' + cookie);\r\n request.addHeader(\'X-XSRF-TOKEN: \' + token);\r\n response = request.get(url);\r\n Zabbix.log(4, \'[ Cisco SD-WAN ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200) {\r\n throw \'Failed to receive data: invalid response status code.\';\r\n }\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from Cisco SD-WAN API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n if (typeof (response) !== \'object\' || response === null) {\r\n throw \'Cannot process response data: received data is not an object.\';\r\n }\r\n\r\n return response;\r\n};\r\n\r\ntry {\r\n [\'auth.token\', \'auth.cookie\', \'api.url\', \'device_id\'].forEach(function (field) {\r\n var macro = \'{$SDWAN.\' + field.toUpperCase() + \'}\';\r\n var key = field.split(\'.\').slice(-1);\r\n if (params[key] === macro || params[key] === \'\') {\r\n throw \'Please change \' + macro + \' macro to the proper value.\';\r\n }\r\n if (typeof params[key] === \'undefined\') {\r\n throw \'Please set \\\'\' + key + \'\\\' script input parameter to \' + macro + \' macro value.\';\r\n }\r\n });\r\n\r\n if (params.url.indexOf(\'http://\') === -1 && params.url.indexOf(\'https://\') === -1) {\r\n params.url = \'https://\' + params.url;\r\n }\r\n\r\n if (!params.url.endsWith(\'/\')) {\r\n params.url += \'/\';\r\n }\r\n\r\n if (typeof params.http_proxy !== \'undefined\' && params.http_proxy !== \'{\' + \'$SDWAN.HTTP_PROXY}\' && params.http_proxy !== \'\') {\r\n request.setProxy(params.http_proxy);\r\n }\r\n\r\n device_info = getHttpData(\r\n params.url + \'dataservice/device?deviceId=\' + encodeURIComponent(params.device_id),\r\n params.token,\r\n params.cookie\r\n );\r\n\r\n if (Array.isArray(device_info.data) && device_info.data.length > 0) {\r\n device_info = device_info.data[0];\r\n }\r\n else {\r\n throw \'Failed to parse response received from Cisco SD-WAN API. Check debug log for more information.\';\r\n }\r\n\r\n var system_info = getHttpData(\r\n params.url + \'dataservice/device/system/status?deviceId=\' + params.device_id,\r\n params.token,\r\n params.cookie\r\n );\r\n\r\n if (Array.isArray(system_info.data) && system_info.data.length > 0) {\r\n device_info = Object.assign(device_info, system_info.data[0]);\r\n }\r\n else {\r\n throw \'Failed to parse response received from Cisco SD-WAN API. Check debug log for more information.\';\r\n }\r\n} catch (error) {\r\n error_msg = error.toString();\r\n error_msg += (error_msg.endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ Cisco SD-WAN ] ERROR: \' + error_msg);\r\n};\r\n\r\ndevice_info.error = error_msg;\r\n\r\nreturn JSON.stringify(device_info);','','0','','','','','0',NULL,'Item for gathering device data from Cisco SD-WAN API.','0','30d','0','',NULL,'{$SDWAN.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','7a4cc11f131e4f7f9511ac19dbfb82f4','0','2','0'),
('45818','19','','10593','Get projects','mantisbt.get.projects','1h','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Get projects from Mantis BT.','0','30d','0','',NULL,'30s','{$MANTIS.URL}/api/rest/projects/','','','200','1','0','{$MANTIS.HTTP.PROXY}','Authorization: {$MANTIS.TOKEN}','0','0','0','0','0','0','0','bf1b74b98d5b4311afeb721059c01da9','0','2','0'),
('45852','19','','10594','Nomad clients get','nomad.client.nodes.get','1h','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Nomad clients data in raw format.','0','30d','0','',NULL,'{$NOMAD.DATA.TIMEOUT}','{$NOMAD.ENDPOINT.API.URL}/v1/nodes','[{"os":"true"}]','','','1','0','{$NOMAD.HTTP.PROXY}','X-Nomad-Token: {$NOMAD.TOKEN}','2','0','1','0','0','0','0','99d8cd0768094bef93995e4baa475186','0','2','0'),
('45853','21','','10594','Nomad servers get','nomad.server.nodes.get','1h','0','0','0','4','','','','',NULL,NULL,'var Nomad = {\r\n setParams: function (params) {\r\n [\'api_endpoint\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n });\r\n\r\n Nomad.params = params;\r\n if (typeof Nomad.params.api_endpoint === \'string\' && !Nomad.params.api_endpoint.endsWith(\'/\')) {\r\n Nomad.params.api_endpoint += \'/\';\r\n }\r\n },\r\n\r\n request: function (query) {\r\n var response,\r\n request = new HttpRequest(),\r\n url = Nomad.params.api_endpoint + query;\r\n\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'X-Nomad-Token: \' + Nomad.params.token);\r\n if (Nomad.params.http_proxy) {\r\n request.setProxy(Nomad.params.http_proxy)\r\n Zabbix.log(4, \'[ Nomad ] Using http proxy: \' + Nomad.params.http_proxy);\r\n }\r\n\r\n Zabbix.log(4, \'[ Nomad ] Sending request: \' + url);\r\n response = request.get(url);\r\n\r\n Zabbix.log(4, \'[ Nomad ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from Nomad agent API.\';\r\n }\r\n }\r\n\r\n return {\r\n status: request.getStatus(),\r\n response: response\r\n };\r\n },\r\n\r\n getField: function (data, path) {\r\n var steps = path.split(\'.\');\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n\r\n data = data[step];\r\n }\r\n\r\n return data;\r\n },\r\n\r\n getIds: function () {\r\n var result = this.request(\'v1/operator/raft/configuration\');\r\n\r\n if (typeof result.response !== \'object\' || result.status != 200) {\r\n throw \'Cannot get servers list from Nomad agent API.\';\r\n }\r\n\r\n return this.getField(result, \'response.Servers\')\r\n .map(function (srv) {\r\n return srv[\'ID\'];\r\n });\r\n },\r\n\r\n getServers: function () {\r\n var ids = this.getIds();\r\n result = Nomad.request(\'v1/agent/members\');\r\n\r\n if (typeof result.response !== \'object\' || result.status != 200) {\r\n throw \'Cannot get servers list from Nomad agent API.\';\r\n }\r\n\r\n return this.getField(result,\'response.Members\').filter(function (s) {\r\n return ids.indexOf(s.Tags.id) >= 0;\r\n });\r\n\r\n },\r\n};\r\n\r\ntry {\r\n Nomad.setParams(JSON.parse(value));\r\n\r\n var servers = Nomad.getServers();\r\n\r\n return JSON.stringify(servers);\r\n\r\n}\r\ncatch (error) {\r\n error += ((String(error).endsWith(\'.\')) ? \'\' : \'.\');\r\n Zabbix.log(3, \'[ Nomad ] ERROR: \' + error);\r\n\r\n return JSON.stringify({ error: error + \' Check debug log for more information.\' });\r\n}','','0','','','','','0',NULL,'Nomad servers data in raw format.','0','30d','0','',NULL,'{$NOMAD.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','254354aa21764751bf7e1961e37de7ae','0','2','0'),
('45854','3','','10595','Service [rpc] state','net.tcp.service[tcp,,{$NOMAD.CLIENT.RPC.PORT}]','1m','31d','365d','0','3','','','','',NULL,'1120','','','0','','','','','0',NULL,'Current [rpc] service state.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f98bd789c9f7409aac2e1902776ddc21','0','2','0'),
('45855','3','','10595','Service [serf] state','net.tcp.service[tcp,,{$NOMAD.CLIENT.SERF.PORT}]','1m','31d','365d','0','3','','','','',NULL,'1120','','','0','','','','','0',NULL,'Current [serf] service state.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','00b39edd70cc42daa565879494f15f38','0','2','0'),
('45856','19','','10595','Node info get','nomad.client.node.info.get','1h','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Node info data in raw format.','0','30d','0','',NULL,'{$NOMAD.DATA.TIMEOUT}','{$NOMAD.CLIENT.API.SCHEME}://{HOST.IP}:{$NOMAD.CLIENT.API.PORT}/v1/nodes','[{"filter":"ID == \\"{HOST.HOST}\\""}]','','','1','0','{$NOMAD.HTTP.PROXY}','X-Nomad-Token: {$NOMAD.TOKEN}','2','0','1','0','0','0','0','36eb68c80b194a4591208cf210fb6d6e','0','2','0'),
('45857','19','','10595','Allocated jobs get','nomad.client.job.allocs.get','1h','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Allocated jobs data in raw format.','0','30d','0','',NULL,'{$NOMAD.DATA.TIMEOUT}','{$NOMAD.CLIENT.API.SCHEME}://{HOST.IP}:{$NOMAD.CLIENT.API.PORT}/v1/allocations','[{"reverse":"true"},{"task_states":"false"},{"filter":"NodeID == \\"{HOST.HOST}\\" and DesiredStatus == \\"run\\" and ClientStatus == \\"running\\""}]','','','1','0','{$NOMAD.HTTP.PROXY}','X-Nomad-Token: {$NOMAD.TOKEN}','2','0','1','0','0','0','0','9948608c5b3a4dad9d1b433483296427','0','2','0'),
('45858','19','','10595','Telemetry get','nomad.client.data.get','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Telemetry data in raw format.','0','30d','0','',NULL,'{$NOMAD.DATA.TIMEOUT}','{$NOMAD.CLIENT.API.SCHEME}://{HOST.IP}:{$NOMAD.CLIENT.API.PORT}/v1/metrics','[{"format":"prometheus"}]','','','1','0','{$NOMAD.HTTP.PROXY}','X-Nomad-Token: {$NOMAD.TOKEN}','2','0','1','0','0','0','0','fe07fd88f3e14273b3f0b135aab26236','0','2','0'),
('45859','3','','10596','Service [rpc] state','net.tcp.service[tcp,,{$NOMAD.SERVER.RPC.PORT}]','1m','31d','365d','0','3','','','','',NULL,'1123','','','0','','','','','0',NULL,'Current [rpc] service state.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c5903e91262b4877be8c7e8f304b2862','0','2','0'),
('45860','19','','10596','Telemetry get','nomad.server.data.get','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Telemetry data in raw format.','0','30d','0','',NULL,'{$NOMAD.DATA.TIMEOUT}','{$NOMAD.SERVER.API.SCHEME}://{HOST.IP}:{$NOMAD.SERVER.API.PORT}/v1/metrics','[{"format":"prometheus"}]','','','1','0','{$NOMAD.HTTP.PROXY}','X-Nomad-Token: {$NOMAD.TOKEN}','2','0','1','0','0','0','0','b7ba2f4a56b04de298fde77cbf5afb6a','0','2','0'),
('45861','3','','10596','Service [serf] state','net.tcp.service[tcp,,{$NOMAD.SERVER.SERF.PORT}]','1m','31d','365d','0','3','','','','',NULL,'1123','','','0','','','','','0',NULL,'Current [serf] service state.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9eecc3ee79f04448991c83ac93459597','0','2','0'),
('45862','19','','10596','Internal stats get','nomad.server.stats.get','1h','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Internal stats data in raw format.','0','30d','0','',NULL,'{$NOMAD.DATA.TIMEOUT}','{$NOMAD.SERVER.API.SCHEME}://{HOST.IP}:{$NOMAD.SERVER.API.PORT}/v1/agent/self','[{"filter":"ID == \\"{HOST.HOST}\\""}]','','','1','0','{$NOMAD.HTTP.PROXY}','X-Nomad-Token: {$NOMAD.TOKEN}','2','0','1','0','0','0','0','f8d3a680e6f94250ab0a1ef8169889e3','0','2','0'),
('46045','5','','10048','Utilization of snmp poller data collector processes, in %','zabbix[process,snmp poller,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the snmp poller processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','96b04e9605e04b26a280bc62da92879b','0','2','0'),
('46047','5','','10047','Utilization of snmp poller data collector processes, in %','zabbix[process,snmp poller,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the snmp poller processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','aa5db45e74834355a80566316017d6d4','0','2','0'),
('46050','19','','10599','Get access token','acronis.cpc.account_manager.get_token','{$ACRONIS.CPC.AUTH.INTERVAL}','0','0','0','4','','','','',NULL,NULL,'','','1','{$ACRONIS.CPC.AUTH.CLIENT.ID}','{$ACRONIS.CPC.AUTH.SECRET}','','','0',NULL,'Authorizes API user and receives access token.','0','30d','0','',NULL,'15s','{$ACRONIS.CPC.DATACENTER.URL}{$ACRONIS.CPC.PATH.ACCOUNT.MANAGEMENT}/idp/token','','grant_type=client_credentials','','1','0','{$ACRONIS.CPC.HTTP.PROXY}','Content-Type: application/x-www-form-urlencoded\r\nX-Application-Secret: 5619386d-de56-49ec-8508-f5c399d3b9bd','0','1','0','0','0','0','0','bce642c2c6e743ccb618c96f6ca533da','0','2','0'),
('46051','19','','10600','Get customers','acronis.cpc.customers.get','5m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Fetches all customers.','0','30d','0','',NULL,'15s','{$ACRONIS.CPC.DATACENTER.URL}{$ACRONIS.CPC.PATH.ACCOUNT.MANAGEMENT}/tenants','[{"subtree_root_id":"{$ACRONIS.CPC.MSP.TENANT.UUID}"}]','','','1','0','{$ACRONIS.CPC.HTTP.PROXY}','Accept: application/json\r\nAuthorization: Bearer {$ACRONIS.CPC.ACCESS_TOKEN}\r\nX-Application-Secret: 5619386d-de56-49ec-8508-f5c399d3b9bd','0','0','0','0','0','0','0','77f25dbbd477458a88f1850701dccc69','0','2','0'),
('46052','19','','10600','Get alerts','acronis.cpc.alerts.get','5m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Fetches all alerts.','0','30d','0','',NULL,'15s','{$ACRONIS.CPC.DATACENTER.URL}{$ACRONIS.CPC.PATH.ALERTS}/alerts','','','','1','0','{$ACRONIS.CPC.HTTP.PROXY}','Accept: application/json\r\nAuthorization: Bearer {$ACRONIS.CPC.ACCESS_TOKEN}\r\nX-Application-Secret: 5619386d-de56-49ec-8508-f5c399d3b9bd','0','0','0','0','0','0','0','dba9a02767be47819f7012f316723fff','0','2','0'),
('46053','19','','10600','Get devices','acronis.cpc.devices.get','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Fetches all devices.','0','30d','0','',NULL,'15s','{$ACRONIS.CPC.DATACENTER.URL}{$ACRONIS.CPC.PATH.RESOURCE.MANAGEMENT}/resources','[{"type":"{$ACRONIS.CPC.DEVICE.RESOURCE.TYPE}"}]','','','1','0','{$ACRONIS.CPC.HTTP.PROXY}','Accept: application/json\r\nAuthorization: Bearer {$ACRONIS.CPC.ACCESS_TOKEN}\r\nX-Application-Secret: 5619386d-de56-49ec-8508-f5c399d3b9bd','0','0','0','0','0','0','0','81b3d23d30964b88aeb3a0911ba0e487','0','2','0'),
('46054','21','','10600','Register integration','acronis.cpc.register.integration','24h','0','0','0','3','','','','',NULL,NULL,'\r\nconst request_path = \'/api/integration_management/v2/status\';\r\nconst app_id = \'5619386d-de56-49ec-8508-f5c399d3b9bd\';\r\n\r\nfunction checkParams(params) {\r\n [\'api_url\', \'api_token\', \'tenant_uuid\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n return params;\r\n}\r\n\r\nfunction getHttpData(url, register, params, api_token, tenant_uuid) {\r\n const request = new HttpRequest();\r\n\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Authorization: Bearer \' + api_token);\r\n request.addHeader(\'X-Application-Secret: \' + app_id);\r\n\r\n if (params[\'http_proxy\']) {\r\n request.setProxy(params[\'http_proxy\']);\r\n Zabbix.log(4, \'[ ACRONIS CYBER PROTECT CLOUD API ] Using http proxy: \' + params[\'http_proxy\']);\r\n }\r\n\r\n if (!register) {\r\n const response = request.get(url + \'?tenantID=\' + encodeURIComponent(tenant_uuid));\r\n Zabbix.log(4, \'[ ACRONIS CYBER PROTECT CLOUD API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200) {\r\n if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n throw response.error.message;\r\n } else {\r\n throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n return response;\r\n\r\n } else {\r\n\r\n const request_body = {\r\n "application_id": app_id,\r\n "module": {\r\n "name": "Zabbix integration with Acronis Cyber Protect Cloud",\r\n "version": "1.0.0"\r\n },\r\n "vendor_system": {\r\n "name": "Product integrated with Acronis",\r\n "version": "23.07"\r\n },\r\n "events": [\r\n {\r\n "category": "activation",\r\n "action": "activated integration",\r\n "activation_event": true\r\n }\r\n ]\r\n };\r\n\r\n const response = request.post(url + \'?tenantID=\' + encodeURIComponent(tenant_uuid), JSON.stringify(request_body));\r\n Zabbix.log(4, \'[ ACRONIS CYBER PROTECT CLOUD API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 204) {\r\n if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n throw response.error.message;\r\n } else {\r\n throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n return 1;\r\n }\r\n}\r\n\r\nfunction parseGetStatusData(http_response) {\r\n const data = JSON.parse(http_response);\r\n if (data[\'items\']) {\r\n data[\'items\'].forEach(function (app) {\r\n if (app[\'application_id\'] && app[\'application_id\'] === app_id) {\r\n return app[\'active\'];\r\n }\r\n });\r\n return false;\r\n } else {\r\n throw \'Unexpected data structure in HTTP response.\';\r\n }\r\n}\r\n\r\nconst params = checkParams(JSON.parse(value)),\r\n url = params.api_url,\r\n api_token = params.api_token,\r\n tenant_uuid = params.tenant_uuid;\r\n\r\nconst current_activation_status = parseGetStatusData(getHttpData(url + request_path, false, params, api_token, tenant_uuid));\r\n\r\nif (!current_activation_status) {\r\n return getHttpData(url + request_path, true, params, api_token, tenant_uuid);\r\n} else {\r\n return 0;\r\n}','','0','','','','','0',NULL,'Registers integration on Acronis services.','0','30d','0','',NULL,'30s','','','','200','1','0','','','0','0','0','0','0','0','0','3697d34ebbb74b90aa7318321ecc27e5','0','2','0'),
('46085','19','','10602','Get server information','nextcloud.serverinfo.get_data','1m','0','0','0','4','','','','',NULL,NULL,'','','1','{$NEXTCLOUD.USER.NAME}','{$NEXTCLOUD.USER.PASSWORD}','','','0',NULL,'This item provides useful server information, such as CPU load, RAM usage, disk usage, number of users, etc.\r\nhttps://github.com/nextcloud/serverinfo','0','30d','0','',NULL,'10s','{$NEXTCLOUD.SCHEMA}://{$NEXTCLOUD.ADDRESS}/ocs/v2.php/apps/serverinfo/api/v1/info','','','200,401','1','0','{$NEXTCLOUD.PROXY}','OCS-APIRequest: true','0','0','0','0','0','0','0','8a7fb4062f484de4a8579ebb83b297a2','0','2','0'),
('46129','17','','10518','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','12720ac373444e33961d97f9903eac0e','0','2','0'),
('46130','0','','10329','Version','pgsql.version["{$PG.CONNSTRING.AGENT2}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'PostgreSQL version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','523528aad175455fbd1daba161365651','0','2','0'),
('46131','11','','10589','Version','db.odbc.select[pgsql.version,,"Database={$PG.DATABASE};{$PG.CONNSTRING.ODBC}"]','15m','31d','0','0','1','','','','',NULL,NULL,'SELECT version()','','0','{$PG.USER}','{$PG.PASSWORD}','','','0',NULL,'PostgreSQL version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4bfb0c1697f043d9acf640b84cc8d945','0','2','0'),
('46132','3','','10603','Check port availability','net.tcp.service["{$FGATE.SCHEME}","{$FGATE.API.FQDN}","{$FGATE.API.PORT}"]','1m','31d','365d','0','3','','','','',NULL,'1136','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','27d30f93ff7c49d89537c43bad5f9453','0','2','0'),
('46133','19','','10603','Get firmware info','fgate.firmware.get_data','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Item for gathering device firmware info from FortiGate API.','0','30d','0','',NULL,'{$FGATE.DATA.TIMEOUT}','{$FGATE.SCHEME}://{$FGATE.API.FQDN}:{$FGATE.API.PORT}/api/v2/monitor/system/firmware','[{"access_token":"{$FGATE.API.TOKEN}"}]','','200','1','0','{$FGATE.HTTP.PROXY}','','0','0','0','0','0','0','0','bc2ac899ea284703a6a8753ac5abc7c6','0','2','0'),
('46134','19','','10603','Get system info','fgate.system.get_data','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Item for gathering device system info from FortiGate API.','0','30d','0','',NULL,'{$FGATE.DATA.TIMEOUT}','{$FGATE.SCHEME}://{$FGATE.API.FQDN}:{$FGATE.API.PORT}/api/v2/monitor/web-ui/state','[{"access_token":"{$FGATE.API.TOKEN}"}]','','200','1','0','{$FGATE.HTTP.PROXY}','','0','0','0','0','0','0','0','a6b831300e7048fbad4502973d0318e7','0','2','0'),
('46135','21','','10603','Get service licenses','fgate.service.get_data','1m','0','0','0','4','','','','',NULL,NULL,'var params = JSON.parse(value),\r\n request = new HttpRequest(),\r\n result = {"data": {}, "lld": [], "error": ""},\r\n api_url = "",\r\n error_msg = "";\r\n\r\nfunction getHttpData(url) {\r\n response = request.get(url);\r\n Zabbix.log(4, \'[ FortiGate ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200) {\r\n throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n }\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from FortiGate API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n if (typeof response !== \'object\' || response === null) {\r\n throw \'Cannot process response data: received data is not an object.\';\r\n }\r\n\r\n if ((typeof response.status !== \'undefined\' && response.status != \'success\') || typeof response.results === \'undefined\') {\r\n var uri = \'/\' + response.path + \'/\' + response.name + ((typeof response.action !== \'undefined\') ? \'?action=\' + response.action : "");\r\n throw \'Failed to parse response received from \' + uri + \'. Check debug log for more information.\';\r\n }\r\n\r\n return response;\r\n};\r\n\r\nfunction capitalize(word, idx) {\r\n return upAcronymCase(word.charAt(idx).toUpperCase() + word.slice(idx+1));\r\n}\r\n\r\nfunction upAcronymCase(word) {\r\n if (word.length < 4) {\r\n return word.toUpperCase()\r\n }\r\n return word;\r\n}\r\n\r\nfunction prepareServiceName(key) {\r\n var result = [];\r\n key.split(\'_\').forEach(function (w) {\r\n var forti_idx = w.indexOf(\'forti\');\r\n w = upAcronymCase(w);\r\n if (forti_idx !== -1)\r\n w = \'Forti\' + capitalize(w, forti_idx + 5);\r\n else\r\n w = capitalize(w, 0)\r\n result.push(w);\r\n });\r\n\r\n return result.join(\' \');\r\n};\r\n\r\ntry {\r\n [\'scheme\', \'api.token\', \'api.fqdn\', \'api.port\'].forEach(function (field) {\r\n var macro = \'{$FGATE.\' + field.toUpperCase() + \'}\';\r\n var key = field.split(\'.\').pop();\r\n if (params[key] === macro || params[key] === \'\') {\r\n throw \'Please change \' + macro + \' macro to the proper value.\';\r\n }\r\n if (typeof params[key] === \'undefined\') {\r\n throw \'Please set "\' + key + \'" script input parameter to \' + macro + \' macro value.\';\r\n }\r\n });\r\n\r\n api_url = params.scheme + \'://\' + params.fqdn + \':\' + params.port;\r\n\r\n if (typeof params.http_proxy !== \'undefined\' && params.http_proxy !== \'{\' + \'$FGATE.HTTP.PROXY}\' && params.http_proxy !== \'\') {\r\n request.setProxy(params.http_proxy);\r\n }\r\n\r\n var licence_list = getHttpData(\r\n api_url + \'/api/v2/monitor/license/status?access_token=\' + encodeURIComponent(params.token)\r\n );\r\n\r\n result.data = licence_list.results;\r\n Object.keys(licence_list.results).forEach(function (key) {\r\n var resource = licence_list.results[key];\r\n if (typeof resource.status !== \'undefined\' && typeof resource.type !== \'undefined\') {\r\n result.lld.push({\r\n "key": key,\r\n "name": prepareServiceName(key),\r\n "status": resource.status,\r\n "type": resource.type,\r\n });\r\n }\r\n });\r\n} catch (error) {\r\n error_msg = error.toString();\r\n error_msg += error_msg.endsWith(\'.\') ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ FortiGate ] ERROR: \' + error_msg);\r\n};\r\n\r\nresult.error = error_msg;\r\n\r\nreturn JSON.stringify(result);','','0','','','','','0',NULL,'Item for gathering information about service licenses from FortiGate API.','0','30d','0','',NULL,'{$FGATE.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','90a78cff28d54a1b9b955e9dc94d48c7','0','2','0'),
('46136','21','','10603','Get SD-WAN data','fgate.sdwan.get_data','1m','0','0','0','4','','','','',NULL,NULL,'var params = JSON.parse(value),\r\n request = new HttpRequest(),\r\n result = {"data": {}, "error": ""},\r\n api_url = "",\r\n health_members = [],\r\n health_checks = [],\r\n members = {},\r\n error_msg = "";\r\n\r\nfunction getHttpData(url) {\r\n response = request.get(url);\r\n Zabbix.log(4, \'[ FortiGate ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200) {\r\n throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n }\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from FortiGate API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n if (typeof response !== \'object\' || response === null) {\r\n throw \'Cannot process response data: received data is not an object.\';\r\n }\r\n\r\n if ((typeof response.status !== \'undefined\' && response.status != \'success\') || typeof response.results === \'undefined\') {\r\n var uri = \'/\' + response.path + \'/\' + response.name + ((typeof response.action !== \'undefined\') ? \'?action=\' + response.action : "");\r\n throw \'Failed to parse response received from \' + uri + \'. Check debug log for more information.\';\r\n }\r\n\r\n return response;\r\n};\r\n\r\ntry {\r\n [\'scheme\', \'api.token\', \'api.fqdn\', \'api.port\'].forEach(function (field) {\r\n var macro = \'{$FGATE.\' + field.toUpperCase() + \'}\';\r\n var key = field.split(\'.\').pop();\r\n if (params[key] === macro || params[key] === \'\') {\r\n throw \'Please change \' + macro + \' macro to the proper value.\';\r\n }\r\n if (typeof params[key] === \'undefined\') {\r\n throw \'Please set "\' + key + \'" script input parameter to \' + macro + \' macro value.\';\r\n }\r\n });\r\n\r\n if (typeof params.http_proxy !== \'undefined\' && params.http_proxy !== \'{\' + \'$FGATE.HTTP.PROXY}\' && params.http_proxy !== \'\') {\r\n request.setProxy(params.http_proxy);\r\n }\r\n\r\n api_url = params.scheme + \'://\' + params.fqdn + \':\' + params.port;\r\n\r\n var sdwan_member_data = getHttpData(\r\n api_url + \'/api/v2/monitor/virtual-wan/members?access_token=\' + encodeURIComponent(params.token)\r\n );\r\n\r\n var sdwan_health_data = getHttpData(\r\n api_url + \'/api/v2/monitor/virtual-wan/health-check?access_token=\' + encodeURIComponent(params.token)\r\n );\r\n\r\n var sdwan_list = getHttpData(\r\n api_url + \'/api/v2/cmdb/system/sdwan?access_token=\' + encodeURIComponent(params.token)\r\n );\r\n\r\n sdwan_list.results[\'health-check\'].forEach(function (item) {\r\n health_checks[item.q_origin_key] = item.members.length;\r\n item.members.forEach(function (m) {\r\n health_members.push({\r\n \'member_id\': m.q_origin_key,\r\n \'health_id\': item.q_origin_key,\r\n \'health_name\': item.name,\r\n });\r\n });\r\n });\r\n\r\n sdwan_list.results.members.forEach(function (item) {\r\n members[item.q_origin_key] = item;\r\n });\r\n\r\n result.data = {\r\n \'member_lld\': sdwan_list.results.members.filter(function (v) {\r\n if (v.interface.length > 0) {\r\n return v;\r\n }\r\n }).map(function (v) {\r\n if (typeof v.interface !== \'undefined\' && typeof sdwan_member_data.results[v.interface] !== \'undefined\') {\r\n Object.assign(v, sdwan_member_data.results[v.interface]);\r\n }\r\n return v;\r\n }),\r\n \'health_lld\': health_members.map(function (m) {\r\n var item = {};\r\n if (typeof members[String(m.member_id)] !== \'undefined\') {\r\n [\'interface\', \'status\'].forEach(function (k) {\r\n item[k] = members[String(m.member_id)][k];\r\n });\r\n Object.assign(item, m);\r\n };\r\n return item;\r\n }).filter(function (v) {\r\n if (v.interface.length > 0) {\r\n return v;\r\n }\r\n }),\r\n \'health_data\': sdwan_list.results[\'health-check\'].filter(function (v) {\r\n if (typeof health_checks[String(v.q_origin_key)] !== \'undefined\' && health_checks[String(v.q_origin_key)] > 0) {\r\n return v;\r\n }\r\n }).map(function (v) {\r\n delete v.members;\r\n if (typeof v.name !== \'undefined\' && typeof sdwan_health_data.results[v.name] !== \'undefined\') {\r\n Object.assign(v, sdwan_health_data.results[v.name]);\r\n }\r\n return v;\r\n })\r\n }\r\n} catch (error) {\r\n error_msg = error.toString();\r\n error_msg += error_msg.endsWith(\'.\') ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ FortiGate ] ERROR: \' + error_msg);\r\n};\r\n\r\nresult.error = error_msg;\r\n\r\nreturn JSON.stringify(result);','','0','','','','','0',NULL,'Item for gathering SD-WAN information from FortiGate API.','0','30d','0','',NULL,'{$FGATE.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','01814568a3bc4774a37957ff3d8c5e09','0','2','0'),
('46137','21','','10603','Get resources data','fgate.resources.get_data','1m','0','0','0','4','','','','',NULL,NULL,'var params = JSON.parse(value),\r\n request = new HttpRequest(),\r\n result = {"data": {}, "error": ""},\r\n api_url = "",\r\n error_msg = "";\r\n\r\nfunction getHttpData(url) {\r\n response = request.get(url);\r\n Zabbix.log(4, \'[ FortiGate ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200) {\r\n throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n }\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from FortiGate API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n if (typeof response !== \'object\' || response === null) {\r\n throw \'Cannot process response data: received data is not an object.\';\r\n }\r\n\r\n if ((typeof response.status !== \'undefined\' && response.status != \'success\') || typeof response.results === \'undefined\') {\r\n var uri = \'/\' + response.path + \'/\' + response.name + ((typeof response.action !== \'undefined\') ? \'?action=\' + response.action : "");\r\n throw \'Failed to parse response received from \' + uri + \'. Check debug log for more information.\';\r\n }\r\n\r\n return response;\r\n};\r\n\r\ntry {\r\n [\'scheme\', \'api.token\', \'api.fqdn\', \'api.port\'].forEach(function (field) {\r\n var macro = \'{$FGATE.\' + field.toUpperCase() + \'}\';\r\n var key = field.split(\'.\').pop();\r\n if (params[key] === macro || params[key] === \'\') {\r\n throw \'Please change \' + macro + \' macro to the proper value.\';\r\n }\r\n if (typeof params[key] === \'undefined\') {\r\n throw \'Please set "\' + key + \'" script input parameter to \' + macro + \' macro value.\';\r\n }\r\n });\r\n\r\n if (typeof params.http_proxy !== \'undefined\' && params.http_proxy !== \'{\' + \'$FGATE.HTTP.PROXY}\' && params.http_proxy !== \'\') {\r\n request.setProxy(params.http_proxy);\r\n }\r\n\r\n api_url = params.scheme + \'://\' + params.fqdn + \':\' + params.port;\r\n\r\n var resource_list = getHttpData(\r\n api_url + \'/api/v2/monitor/system/resource/usage?access_token=\' + encodeURIComponent(params.token) + \'&interval=1-min\'\r\n );\r\n\r\n var disk_info = getHttpData(\r\n api_url + \'/api/v2/monitor/log/current-disk-usage?access_token=\' + encodeURIComponent(params.token)\r\n );\r\n\r\n if (typeof resource_list.results !== \'undefined\' && typeof resource_list.results === \'object\') {\r\n Object.keys(resource_list.results).forEach(function (key) {\r\n var resource = resource_list.results[key];\r\n if (resource.length > 0) {\r\n result.data[key] = resource[0].current;\r\n }\r\n });\r\n }\r\n else {\r\n throw \'Failed to parse response received from FortiGate API. Check debug log for more information.\';\r\n }\r\n\r\n Object.keys(disk_info.results).forEach(function (key) {\r\n result.data[\'disk_\' + key.split(\'_\')[0]] = disk_info.results[key];\r\n });\r\n} catch (error) {\r\n error_msg = error.toString();\r\n error_msg += error_msg.endsWith(\'.\') ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ FortiGate ] ERROR: \' + error_msg);\r\n};\r\n\r\nresult.error = error_msg;\r\n\r\nreturn JSON.stringify(result);','','0','','','','','0',NULL,'Item for gathering device resource data from FortiGate API.','0','30d','0','',NULL,'{$FGATE.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','06199d6a96f2414b976d357cd2c95cb6','0','2','0'),
('46138','21','','10603','Get interfaces data','fgate.netif.get_data','1m','0','0','0','4','','','','',NULL,NULL,'var params = JSON.parse(value),\r\n request = new HttpRequest(),\r\n result = {"data": {}, "error": ""},\r\n api_url = "",\r\n interfaces = {},\r\n error_msg = "";\r\n\r\nfunction getHttpData(url) {\r\n response = request.get(url);\r\n Zabbix.log(4, \'[ FortiGate ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200) {\r\n throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n }\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from FortiGate API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n if (typeof response !== \'object\' || response === null) {\r\n throw \'Cannot process response data: received data is not an object.\';\r\n }\r\n\r\n if ((typeof response.status !== \'undefined\' && response.status != \'success\') || typeof response.results === \'undefined\') {\r\n var uri = \'/\' + response.path + \'/\' + response.name + ((typeof response.action !== \'undefined\') ? \'?action=\' + response.action : "");\r\n throw \'Failed to parse response received from \' + uri + \'. Check debug log for more information.\';\r\n }\r\n\r\n return response;\r\n};\r\n\r\ntry {\r\n [\'scheme\', \'api.token\', \'api.fqdn\', \'api.port\'].forEach(function (field) {\r\n var macro = \'{$FGATE.\' + field.toUpperCase() + \'}\';\r\n var key = field.split(\'.\').pop();\r\n if (params[key] === macro || params[key] === \'\') {\r\n throw \'Please change \' + macro + \' macro to the proper value.\';\r\n }\r\n if (typeof params[key] === \'undefined\') {\r\n throw \'Please set "\' + key + \'" script input parameter to \' + macro + \' macro value.\';\r\n }\r\n });\r\n\r\n if (typeof params.http_proxy !== \'undefined\' && params.http_proxy !== \'{\' + \'$FGATE.HTTP.PROXY}\' && params.http_proxy !== \'\') {\r\n request.setProxy(params.http_proxy);\r\n }\r\n\r\n api_url = params.scheme + \'://\' + params.fqdn + \':\' + params.port;\r\n\r\n var netif_data = getHttpData(\r\n api_url + \'/api/v2/monitor/system/interface?access_token=\' + encodeURIComponent(params.token)\r\n );\r\n\r\n var netif_list = getHttpData(\r\n api_url + \'/api/v2/cmdb/system/interface?access_token=\' + encodeURIComponent(params.token)\r\n );\r\n\r\n result.data = netif_list.results.map(function (v) {\r\n var item = {};\r\n [\'q_origin_key\', \'name\', \'mode\', \'type\', \'description\'].forEach(function (k) {\r\n item[k] = v[k];\r\n });\r\n if (typeof item.q_origin_key !== \'undefined\' && typeof netif_data.results[String(item.q_origin_key)] !== \'undefined\') {\r\n Object.assign(item, netif_data.results[String(item.q_origin_key)]);\r\n }\r\n if (typeof item.alias !== \'undefined\') {\r\n item.alias = item.alias.slice(1,-1);\r\n }\r\n else {\r\n item.alias = \'\';\r\n }\r\n if (typeof item.link === \'undefined\') {\r\n item.link = false;\r\n }\r\n if (typeof item.id === \'undefined\') {\r\n item.id = item.q_origin_key;\r\n }\r\n return item;\r\n });\r\n} catch (error) {\r\n error_msg = error.toString();\r\n error_msg += error_msg.endsWith(\'.\') ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ FortiGate ] ERROR: \' + error_msg);\r\n};\r\n\r\nresult.error = error_msg;\r\n\r\nreturn JSON.stringify(result);','','0','','','','','0',NULL,'Item for gathering network interfaces info from FortiGate API.','0','30d','0','',NULL,'{$FGATE.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','3bf84b70672d4fbca282ce1bf970581d','0','2','0'),
('46139','21','','10603','Get firewall data','fgate.fwp.get_data','1m','0','0','0','4','','','','',NULL,NULL,'var params = JSON.parse(value),\r\n request = new HttpRequest(),\r\n result = {"data": {}, "error": ""},\r\n api_url = "",\r\n policies = {},\r\n error_msg = "";\r\n\r\nfunction getHttpData(url) {\r\n response = request.get(url);\r\n Zabbix.log(4, \'[ FortiGate ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200) {\r\n throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n }\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from FortiGate API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n if (typeof response !== \'object\' || response === null) {\r\n throw \'Cannot process response data: received data is not an object.\';\r\n }\r\n\r\n if ((typeof response.status !== \'undefined\' && response.status != \'success\') || typeof response.results === \'undefined\') {\r\n var uri = \'/\' + response.path + \'/\' + response.name + ((typeof response.action !== \'undefined\') ? \'?action=\' + response.action : "");\r\n throw \'Failed to parse response received from \' + uri + \'. Check debug log for more information.\';\r\n }\r\n\r\n return response;\r\n};\r\n\r\ntry {\r\n [\'scheme\', \'api.token\', \'api.fqdn\', \'api.port\'].forEach(function (field) {\r\n var macro = \'{$FGATE.\' + field.toUpperCase() + \'}\';\r\n var key = field.split(\'.\').pop();\r\n if (params[key] === macro || params[key] === \'\') {\r\n throw \'Please change \' + macro + \' macro to the proper value.\';\r\n }\r\n if (typeof params[key] === \'undefined\') {\r\n throw \'Please set "\' + key + \'" script input parameter to \' + macro + \' macro value.\';\r\n }\r\n });\r\n\r\n if (typeof params.http_proxy !== \'undefined\' && params.http_proxy !== \'{\' + \'$FGATE.HTTP.PROXY}\' && params.http_proxy !== \'\') {\r\n request.setProxy(params.http_proxy);\r\n }\r\n\r\n api_url = params.scheme + \'://\' + params.fqdn + \':\' + params.port;\r\n\r\n var firewall_data = getHttpData(\r\n api_url + \'/api/v2/monitor/firewall/policy?access_token=\' + encodeURIComponent(params.token)\r\n );\r\n\r\n var firewall_list = getHttpData(\r\n api_url + \'/api/v2/cmdb/firewall/policy?access_token=\' + encodeURIComponent(params.token)\r\n );\r\n\r\n firewall_list.results.forEach(function (v) {\r\n var item = {};\r\n [\'q_origin_key\', \'status\', \'name\', \'uuid\', \'action\', \'ip-version-type\', \'label\'].forEach(function (k) {\r\n item[k] = v[k];\r\n });\r\n policies[v.policyid] = item;\r\n });\r\n\r\n result.data = firewall_data.results.map(function (v) {\r\n if (typeof v.policyid !== \'undefined\' && typeof policies[String(v.policyid)] !== \'undefined\') {\r\n Object.assign(v, policies[String(v.policyid)]);\r\n }\r\n return v;\r\n }).filter(function (v) {\r\n if (typeof v.name !== \'undefined\') {\r\n return v;\r\n }\r\n });\r\n} catch (error) {\r\n error_msg = error.toString();\r\n error_msg += error_msg.endsWith(\'.\') ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ FortiGate ] ERROR: \' + error_msg);\r\n};\r\n\r\nresult.error = error_msg;\r\n\r\nreturn JSON.stringify(result);','','0','','','','','0',NULL,'Item for gathering firewall policies info from FortiGate API.','0','30d','0','',NULL,'{$FGATE.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','a7f8a7da176040ab8a43618e14944e42','0','2','0'),
('46212','3','','10604','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'1140','','','0','','','','','0',NULL,'Host accessibility by ICMP.\r\n0 - ICMP ping failed.\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5686859d4317437c9c23160b987a3468','0','2','0'),
('46213','20','get[1.3.6.1.2.1.1.5.0]','10604','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn administratively-assigned name for the node (the node\'s fully-qualified domain name). If not provided, the value is a zero-length string.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','07256dfb73794eaea91c9c622e617200','0','2','0'),
('46214','20','get[1.3.6.1.4.1.12356.101.4.1.4.0]','10604','Memory utilization','vm.memory.util[memoryUsedPercentage.0]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Current memory utilization (percentage).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','29a7ec8007ef44b0b473f1c16be11059','0','2','0'),
('46215','15','','10604','Used memory','vm.memory.used[fgSysMemUsage.0]','1m','31d','365d','0','0','','B','','',NULL,NULL,'(last(//vm.memory.total[fgSysMemCapacity.0])*last(//vm.memory.util[memoryUsedPercentage.0]))/100','','0','','','','','0',NULL,'MIB: FORTINET-FORTIGATE-MIB\r\nPhysical memory (RAM) used calculated based on memory utilization percentage.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','15fb0d4185f04b4fb8e2efc6d0ef514c','0','2','0'),
('46216','20','get[1.3.6.1.4.1.12356.101.4.1.5.0]','10604','Total memory','vm.memory.total[fgSysMemCapacity.0]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: FORTINET-FORTIGATE-MIB\r\nTotal physical memory (RAM) installed.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5ccef71de6944c91bf7d1e330782b542','0','2','0'),
('46217','15','','10604','Available memory','vm.memory.available[fgSysMemFree.0]','1m','31d','365d','0','3','','B','','',NULL,NULL,'last(//vm.memory.total[fgSysMemCapacity.0])-last(//vm.memory.used[fgSysMemUsage.0])','','0','','','','','0',NULL,'Total memory available for utilization.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bbc42709b2d2467e8fd7963309c6090a','0','2','0'),
('46218','20','get[1.3.6.1.4.1.12356.101.4.1.6.0]','10604','Used disk space','vfs.fs.used[fgSysDiskUsage.0]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'Current hard disk usage.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3a96f25d233e49039eb03b78fc8fd509','0','2','0'),
('46219','20','get[1.3.6.1.4.1.12356.101.4.1.7.0]','10604','Total disk space','vfs.fs.total[fgSysDiskCapacity.0]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'Total hard disk capacity.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','84318818c417403bbfadff759f87e4f4','0','2','0'),
('46220','15','','10604','Free disk percentage','vfs.fs.pfree','1m','31d','365d','0','0','','%','','',NULL,NULL,'100-(last(//vfs.fs.used[fgSysDiskUsage.0])/last(//vfs.fs.total[fgSysDiskCapacity.0])*100)','','0','','','','','0',NULL,'Free disk space, expressed in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b7001a7fd88040fe8a11512df1d9ec07','0','2','0'),
('46221','15','','10604','Free disk space','vfs.fs.free','1m','31d','365d','0','3','','B','','',NULL,NULL,'last(//vfs.fs.total[fgSysDiskCapacity.0])-last(//vfs.fs.used[fgSysDiskUsage.0])','','0','','','','','0',NULL,'Free hard disk capacity.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c702bedf91d74cd8b2346ea0abca37c5','0','2','0'),
('46222','20','get[1.3.6.1.4.1.12356.101.4.1.20.0]','10604','System uptime','system.uptime[fgSysUpTime.0]','1m','31d','365d','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: FORTINET-FORTIGATE-MIB\r\nTime since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6b85f5f1738b46acb17157d8fbf60ecf','0','2','0'),
('46223','20','get[1.3.6.1.2.1.1.2.0]','10604','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe vendor\'s authoritative identification of the entity as part of the vendor\'s SMI enterprises subtree with the prefix 1.3.6.1.4.1 (e.g., a vendor with the identifier 1.3.6.1.4.1.4242 might assign a system object with the OID 1.3.6.1.4.1.4242.1.1).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','53aee5ecb43b4fe29a2e172f48577fa5','0','2','0'),
('46224','20','get[1.3.6.1.2.1.1.6.0]','10604','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8adf6927a2ba4c26b31a1a527cfd33f7','0','2','0'),
('46225','3','','10604','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','60ba9ecc198840a3a92ef3221e21a97e','0','2','0'),
('46226','20','get[1.3.6.1.2.1.47.1.1.1.1.11.1]','10604','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB\r\nSerial number of the device.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4ad23a8963e64a7da8b064463631a2f9','0','2','0'),
('46227','20','get[1.3.6.1.2.1.47.1.2.1.1.2.1]','10604','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB\r\nModel of the device.','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d1cde0e8780a455db0f7aec7b6b3bc7a','0','2','0'),
('46228','20','get[1.3.6.1.4.1.12356.101.4.1.1.0]','10604','Firmware version','system.hw.firmware','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: FORTINET-FORTIGATE-MIB\r\nFirmware version of the device.','16','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','277fdc82a6d04e53a0da7bb29d087de7','0','2','0'),
('46229','20','get[1.3.6.1.2.1.1.1.0]','10604','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA 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.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c2a2247eaddf4908b731ef0c42627d47','0','2','0'),
('46230','20','get[1.3.6.1.4.1.12356.101.4.1.3.0]','10604','CPU utilization','system.cpu.util[fgSysCpuUsage.0]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: FORTINET-FORTIGATE-MIB\r\nCPU utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e6c36e1b4fac4242a3c3ddd4a5483dde','0','2','0'),
('46231','20','get[1.3.6.1.4.1.12356.101.4.4.1.0]','10604','Number of CPUs','system.cpu.num','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: FORTINET-FORTIGATE-MIB\r\nNumber of processors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c728a8f64cff450ebc445d9abc03486d','0','2','0'),
('46232','20','get[1.3.6.1.2.1.1.4.0]','10604','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nName and contact information of the contact person for the node. If not provided, the value is a zero-length string.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cc57314e0cd143c79654e53d16f341ca','0','2','0'),
('46233','17','','10604','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'Used for collecting all SNMP traps unmatched by other `snmptrap` items.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b00ecb6f04a04f579ce0a8e6a1c0984e','0','2','0'),
('46234','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10604','SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Used for discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','abd3f407b66946dab2b05f7ec8a2daf2','0','2','0'),
('46235','3','','10604','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c5c3cde736544304a76c5fe1774c1fc7','0','2','0'),
('46236','5','','10604','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'1141','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3e37679441344327bf86ae38cd62f580','0','2','0'),
('46247','19','','10548','Get SAML SSO','meraki.get.saml','12h','31d','365d','0','3','','','','',NULL,'1142','','','0','','','','','0',NULL,'Return the enabled SAML SSO settings for the organization.','0','30d','0','',NULL,'{$MERAKI.DATA.TIMEOUT}','https://{$MERAKI.API.URL}/organizations/{$ID}/saml','','','200','1','0','{$MERAKI.HTTP_PROXY}','X-Cisco-Meraki-API-Key: {$MERAKI.TOKEN}\r\nUser-Agent: ZabbixServer/1.1 Zabbix','0','0','0','0','0','0','0','b33608b4c24d4c7bbf1f76f639890715','0','2','0'),
('46248','19','','10548','Get admin\'s account','meraki.get.admins','12h','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Get list of the dashboard administrators in this organization.','0','30d','0','',NULL,'{$MERAKI.DATA.TIMEOUT}','https://{$MERAKI.API.URL}/organizations/{$ID}/admins','','','200','1','0','{$MERAKI.HTTP_PROXY}','X-Cisco-Meraki-API-Key: {$MERAKI.TOKEN}\r\nUser-Agent: ZabbixServer/1.1 Zabbix','0','0','0','0','0','0','0','75c09cebedc7436cb4304acc3652955c','0','2','0'),
('46249','21','','10548','Get list licenses','meraki.get.list.licenses','12h','0','0','0','4','','','','',NULL,NULL,'var params = JSON.parse(value);\r\n\r\nvar request = new HttpRequest();\r\n\r\nrequest.addHeader(\'X-Cisco-Meraki-API-Key:\' + params.token);\r\nrequest.addHeader(\'User-Agent: ZabbixServer/1.1 Zabbix\');\r\n\r\nvar response,\r\n error_msg = \'\',\r\n organization_devices = [],\r\n licenses = [];\r\n\r\nfunction getField(data, path) {\r\n var steps = path.split(\'.\');\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n data = data[step];\r\n }\r\n\r\n return data;\r\n\r\n};\r\n\r\nfunction getHttpData(url) {\r\n response = request.get(url);\r\n Zabbix.log(4, \'[ Meraki API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (response !== null) {\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from Meraki API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n if (request.getStatus() !== 200) {\r\n if (response.errors) {\r\n throw response.errors.join(\', \');\r\n } else {\r\n throw \'Failed to receive data: invalid response status code.\';\r\n }\r\n }\r\n\r\n if (typeof (response) !== \'object\' || response === null) {\r\n throw \'Cannot process response data: received data is not an object.\';\r\n }\r\n\r\n return response;\r\n};\r\n\r\ntry {\r\n\r\n if (params.token === \'{\' + \'$MERAKI.TOKEN}\') {\r\n throw \'Please change {\' + \'$MERAKI.TOKEN} macro to the proper value.\';\r\n }\r\n\r\n if (params.url.indexOf(\'http://\') === -1 && params.url.indexOf(\'https://\') === -1) {\r\n params.url = \'https://\' + params.url;\r\n }\r\n\r\n if (!params.url.endsWith(\'/\')) {\r\n params.url += \'/\';\r\n }\r\n\r\n if (typeof params.httpproxy !== \'undefined\' && params.httpproxy !== \'\') {\r\n request.setProxy(params.httpproxy);\r\n }\r\n\r\n licenses = getHttpData(params.url + \'organizations/\' + encodeURIComponent(params.organizationId) + \'/licenses\');\r\n\r\n organization_devices = getHttpData(params.url + \'organizations/\' + encodeURIComponent(params.organizationId) + \'/devices/statuses\');\r\n\r\n licenses.forEach(function (license) {\r\n\r\n license.deviceName = getField(license, \'deviceSerial\');\r\n\r\n for (i in organization_devices) {\r\n\r\n if (getField(license, \'deviceSerial\') === getField(organization_devices[i], \'serial\')) {\r\n\r\n device_name = getField(organization_devices[i], \'name\');\r\n\r\n if (!device_name) {\r\n device_name = getField(organization_devices[i], \'serial\');\r\n }\r\n license.deviceName = device_name;\r\n }\r\n }\r\n });\r\n\r\n\r\n} catch (error) {\r\n error_msg = error;\r\n};\r\n\r\nreturn JSON.stringify({\r\n \'licenses\': licenses,\r\n \'error\': error_msg.toString()\r\n});','','0','','','','','0',NULL,'Return list of the licenses for the organization.','0','30d','0','',NULL,'{$MERAKI.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','8ea56a7338f040fcbb9016da892dec90','0','2','0'),
('46250','19','','10548','Get login security','meraki.get.login.security','12h','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Return the login security settings for the organization.','0','30d','0','',NULL,'{$MERAKI.DATA.TIMEOUT}','https://{$MERAKI.API.URL}/organizations/{$ID}/loginSecurity','','','200','1','0','{$MERAKI.HTTP_PROXY}','X-Cisco-Meraki-API-Key: {$MERAKI.TOKEN}\r\nUser-Agent: ZabbixServer/1.1 Zabbix','0','0','0','0','0','0','0','ac5da80c1e9b46a2ac31809e16fe1bfc','0','2','0'),
('46251','19','','10548','Get SAML roles','meraki.get.saml.roles','12h','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Get list of the SAML roles for this organization.','0','30d','0','',NULL,'{$MERAKI.DATA.TIMEOUT}','https://{$MERAKI.API.URL}/organizations/{$ID}/samlRoles','','','200','1','0','{$MERAKI.HTTP_PROXY}','X-Cisco-Meraki-API-Key: {$MERAKI.TOKEN}\r\nUser-Agent: ZabbixServer/1.1 Zabbix','0','0','0','0','0','0','0','055cc5b5b49b4f398e06832091f66544','0','2','0'),
('46308','5','','10048','Proxy memory buffer, % used','zabbix[proxy_buffer,buffer,pused]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Statistics and availability of Zabbix proxy memory buffer usage statistics. Percentage of used proxy memory buffer.\r\nProxy memory buffer is used to store the new historical data and upload from it without accessing database.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e60cdba498a94c19955696f40d5e1b32','0','2','0'),
('46309','5','','10048','Proxy buffer, state changes','zabbix[proxy_buffer,state,changes]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The number of state changes between disk/memory buffer modes since proxy start.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1f5fbc277a574ce7a418439695f124ca','0','2','0'),
('46310','5','','10048','Proxy buffer, state','zabbix[proxy_buffer,state,current]','1m','31d','365d','0','3','','','','',NULL,'1145','','','0','','','','','0',NULL,'The current working state of proxy buffer where the new data is being stored. Possible values:\r\n\r\n 0 - disk (also returned when memory buffer is disabled);\r\n 1 - memory.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c970e56eda504a4d89b051439dda9787','0','2','0'),
('46314','5','','10047','Number of values synchronized with the database per second','zabbix[vps,written]','1m','31d','365d','0','0','','!vps','','',NULL,NULL,'','','0','','','','','0',NULL,'Average quantity of values written to the database, recalculated once per minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0f61de4dcc1b469a94dd024e1b932936','0','2','0'),
('46319','21','','10605','Get data','hpe.ilo.get_data','{$ILO.INTERVAL}','0','0','0','4','','','','',NULL,NULL,'var ilo = {\r\n params: {},\r\n session_token: "",\r\n session_url: "",\r\n\r\n setParams: function (params) {\r\n [\'ilo_url\', \'user\', \'password\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\'\r\n || params[field] === \'\') {\r\n throw \'Required parameter is not set: "\' + field + \'".\';\r\n }\r\n });\r\n\r\n ilo.params = params;\r\n\r\n if (typeof ilo.params.ilo_url === \'string\' && !ilo.params.ilo_url.endsWith(\'/\')) {\r\n ilo.params.ilo_url += \'/\';\r\n }\r\n },\r\n\r\n apiAuth: function () {\r\n var request = new HttpRequest(),\r\n response,\r\n headers,\r\n url = encodeURI(ilo.params.ilo_url + \'redfish/v1/SessionService/Sessions/\'),\r\n auth_data = {\r\n UserName: ilo.params.user,\r\n Password: ilo.params.password\r\n };\r\n\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Authorization: Basic \' + btoa(ilo.params.user + \':\' + ilo.params.password));\r\n\r\n if (typeof ilo.params.http_proxy !== \'undefined\' && ilo.params.http_proxy !== \'\') {\r\n request.setProxy(ilo.params.http_proxy);\r\n Zabbix.log(4, \'[ HPE iLO ] Using HTTP proxy: \' + ilo.params.http_proxy);\r\n }\r\n\r\n Zabbix.log(4, \'[ HPE iLO ] Sending request: \' + url);\r\n\r\n response = request.post(url, JSON.stringify(auth_data));\r\n\r\n Zabbix.log(4, \'[ HPE iLO ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() != 201) {\r\n throw \'Authentication failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse auth response received from API. Check debug log for more information.\';\r\n }\r\n\r\n try {\r\n headers = request.getHeaders();\r\n }\r\n catch (error) {\r\n throw \'Failed to parse auth headers received from API. Check debug log for more information.\';\r\n }\r\n\r\n try {\r\n ilo.session_token = headers[\'X-Auth-Token\'];\r\n ilo.session_url = headers[\'Location\'];\r\n }\r\n catch (error) {\r\n throw \'Failed to retrieve auth token or session URL from API. Check debug log for more information.\';\r\n }\r\n\r\n delete request;\r\n },\r\n\r\n apiLogout: function () {\r\n var request = new HttpRequest(),\r\n response,\r\n url = encodeURI(ilo.session_url);\r\n\r\n request.addHeader(\'X-Auth-Token: \' + ilo.session_token);\r\n\r\n if (typeof ilo.params.http_proxy !== \'undefined\' && ilo.params.http_proxy !== \'\') {\r\n request.setProxy(ilo.params.http_proxy);\r\n Zabbix.log(4, \'[ HPE iLO ] Using HTTP proxy: \' + ilo.params.http_proxy);\r\n }\r\n\r\n Zabbix.log(4, \'[ HPE iLO ] Sending request: \' + url);\r\n\r\n response = request.delete(url);\r\n\r\n Zabbix.log(4, \'[ HPE iLO ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() != 200) {\r\n throw \'Deleting of session failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n delete request;\r\n },\r\n\r\n apiRequest: function (query) {\r\n var request = new HttpRequest(),\r\n response,\r\n url = encodeURI(ilo.params.ilo_url + query);\r\n\r\n if (typeof ilo.params.http_proxy !== \'undefined\' && ilo.params.http_proxy !== \'\') {\r\n request.setProxy(ilo.params.http_proxy);\r\n Zabbix.log(4, \'[ HPE iLO ] Using HTTP proxy: \' + ilo.params.http_proxy);\r\n }\r\n\r\n request.addHeader(\'X-Auth-Token: \' + ilo.session_token);\r\n\r\n Zabbix.log(4, \'[ HPE iLO ] Sending request: \' + url);\r\n\r\n response = request.get(url);\r\n\r\n Zabbix.log(4, \'[ HPE iLO ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from API. Check debug log for more information.\';\r\n }\r\n\r\n delete request;\r\n\r\n return response;\r\n },\r\n\r\n checkArray: function (array) {\r\n return typeof array !== \'undefined\' && Array.isArray(array) && array.length > 0 ? true : false;\r\n }\r\n};\r\n\r\ntry {\r\n ilo.setParams(JSON.parse(value));\r\n ilo.apiAuth();\r\n var systems = [],\r\n storages = [],\r\n controllers = [],\r\n drives = [],\r\n volumes = [],\r\n chassis = [],\r\n fans = [],\r\n sensors = [],\r\n psu = [],\r\n managers = [];\r\n\r\n var get_systems = ilo.apiRequest(\'redfish/v1/Systems?$expand=.\');\r\n\r\n if (ilo.checkArray(get_systems.Members)) {\r\n for (i in get_systems.Members) {\r\n if (\'Id\' in get_systems.Members[i]) {\r\n if (get_systems.Members[i].HostName === null) {\r\n get_systems.Members[i].HostName = get_systems.Members[i].Id;\r\n }\r\n\r\n systems.push(get_systems.Members[i]);\r\n\r\n var system_storages = ilo.apiRequest(\'redfish/v1/Systems/\' + get_systems.Members[i].Id + \'/Storage?$expand=.\');\r\n\r\n if (ilo.checkArray(system_storages.Members)) {\r\n for (j in system_storages.Members) {\r\n system_storages.Members[j].systemHostname = get_systems.Members[i].HostName;\r\n system_storages.Members[j].systemType = get_systems.Members[i].SystemType;\r\n system_storages.Members[j].systemId = get_systems.Members[i].Id;\r\n\r\n storages.push(system_storages.Members[j]);\r\n\r\n if (\'Id\' in system_storages.Members[j]) {\r\n var storage_controllers = ilo.apiRequest(\'redfish/v1/Systems/\' + get_systems.Members[i].Id + \'/Storage/\' + system_storages.Members[j].Id + \'/Controllers?$expand=.\');\r\n\r\n if (ilo.checkArray(storage_controllers.Members)) {\r\n for (k in storage_controllers.Members) {\r\n storage_controllers.Members[k].systemHostname = get_systems.Members[i].HostName;\r\n storage_controllers.Members[k].systemType = get_systems.Members[i].SystemType;\r\n storage_controllers.Members[k].systemId = get_systems.Members[i].Id;\r\n storage_controllers.Members[k].storageId = system_storages.Members[j].Id;\r\n\r\n controllers.push(storage_controllers.Members[k]);\r\n }\r\n }\r\n\r\n var storage_drives = ilo.apiRequest(\'redfish/v1/Systems/\' + get_systems.Members[i].Id + \'/Storage/\' + system_storages.Members[j].Id + \'?$expand=.\');\r\n\r\n if (ilo.checkArray(storage_drives.Drives)) {\r\n for (k in storage_drives.Drives) {\r\n storage_drives.Drives[k].systemHostname = get_systems.Members[i].HostName;\r\n storage_drives.Drives[k].systemType = get_systems.Members[i].SystemType;\r\n storage_drives.Drives[k].systemId = get_systems.Members[i].Id;\r\n storage_drives.Drives[k].storageId = system_storages.Members[j].Id;\r\n\r\n drives.push(storage_drives.Drives[k]);\r\n }\r\n }\r\n\r\n if (\'Volumes\' in system_storages.Members[j]) {\r\n var storage_volumes = ilo.apiRequest(\'redfish/v1/Systems/\' + get_systems.Members[i].Id + \'/Storage/\' + system_storages.Members[j].Id + \'/Volumes?$expand=.\');\r\n\r\n if (ilo.checkArray(storage_volumes.Members)) {\r\n for (k in storage_volumes.Members) {\r\n storage_volumes.Members[k].systemHostname = get_systems.Members[i].HostName;\r\n storage_volumes.Members[k].systemType = get_systems.Members[i].SystemType;\r\n storage_volumes.Members[k].systemId = get_systems.Members[i].Id;\r\n storage_volumes.Members[k].storageId = system_storages.Members[j].Id;\r\n\r\n volumes.push(storage_volumes.Members[k]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n var get_chassis = ilo.apiRequest(\'redfish/v1/Chassis?$expand=.\');\r\n\r\n if (ilo.checkArray(get_chassis.Members)) {\r\n for (i in get_chassis.Members) {\r\n if (\'Id\' in get_chassis.Members[i]) {\r\n chassis.push(get_chassis.Members[i]);\r\n\r\n chassis_thermal = ilo.apiRequest(\'redfish/v1/Chassis/\' + get_chassis.Members[i].Id + \'/Thermal/\');\r\n\r\n if (ilo.checkArray(chassis_thermal.Fans)) {\r\n for (j in chassis_thermal.Fans) {\r\n chassis_thermal.Fans[j].chassisId = get_chassis.Members[i].Id;\r\n\r\n fans.push(chassis_thermal.Fans[j]);\r\n }\r\n }\r\n\r\n if (ilo.checkArray(chassis_thermal.Temperatures)) {\r\n for (j in chassis_thermal.Temperatures) {\r\n chassis_thermal.Temperatures[j].chassisId = get_chassis.Members[i].Id;\r\n\r\n sensors.push(chassis_thermal.Temperatures[j]);\r\n }\r\n }\r\n\r\n chassis_power = ilo.apiRequest(\'redfish/v1/Chassis/\' + get_chassis.Members[i].Id + \'/Power/\');\r\n\r\n if (ilo.checkArray(chassis_power.PowerSupplies)) {\r\n for (j in chassis_power.PowerSupplies) {\r\n chassis_power.PowerSupplies[j].chassisId = get_chassis.Members[i].Id;\r\n\r\n psu.push(chassis_power.PowerSupplies[j]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n var get_managers = ilo.apiRequest(\'redfish/v1/Managers?$expand=.\');\r\n\r\n if (ilo.checkArray(get_managers.Members)) {\r\n for (i in get_managers.Members) {\r\n if (\'Id\' in get_managers.Members[i]) {\r\n managers.push(get_managers.Members[i]);\r\n }\r\n }\r\n }\r\n\r\n ilo.apiLogout();\r\n\r\n return JSON.stringify({\r\n \'systems\': systems,\r\n \'storages\': storages,\r\n \'controllers\': controllers,\r\n \'drives\': drives,\r\n \'volumes\': volumes,\r\n \'chassis\': chassis,\r\n \'fans\': fans,\r\n \'sensors\': sensors,\r\n \'psu\': psu,\r\n \'managers\': managers\r\n });\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ HPE iLO ] ERROR: \' + error);\r\n return JSON.stringify({ error: error });\r\n}','','0','','','','','0',NULL,'The JSON with the result of API requests.','0','30d','0','',NULL,'{$ILO.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','3c2d368291294faa98c01a27f36ad805','0','2','0'),
('46396','21','','10606','Get daily costs','azure.get.daily.costs','0s;h/5m/30','0','0','0','4','','','','',NULL,NULL,'var AzureCost = {\r\n params: {},\r\n token: null,\r\n\r\n setParams: function (params) {\r\n [\'app_id\', \'password\', \'tenant_id\', \'subscription_id\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n AzureCost.params = params;\r\n },\r\n\r\n login: function () {\r\n var response,\r\n login = new HttpRequest();\r\n\r\n if (typeof AzureCost.params.proxy !== \'undefined\' && AzureCost.params.proxy !== \'\') {\r\n login.setProxy(AzureCost.params.proxy);\r\n }\r\n\r\n login.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n response = login.post(\r\n \'https://login.microsoftonline.com/\' + encodeURIComponent(AzureCost.params.tenant_id) + \'/oauth2/token\',\r\n \'grant_type=client_credentials&resource=\' + encodeURIComponent(\'https://management.azure.com/\') + \'&client_id=\' + encodeURIComponent(AzureCost.params.app_id) + \'&client_secret=\' + encodeURIComponent(AzureCost.params.password)\r\n );\r\n\r\n if (login.getStatus() !== 200) {\r\n throw \'Login failed with status code \' + login.getStatus() + \': \' + response;\r\n }\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse login session response.\';\r\n }\r\n if (!response.hasOwnProperty(\'access_token\')) {\r\n throw \'Authentication response does not contain access token.\';\r\n }\r\n\r\n AzureCost.token = response[\'access_token\'];\r\n },\r\n\r\n request: function (url, body) {\r\n if (typeof body === \'undefined\' || body === null) {\r\n body = \'\';\r\n }\r\n var response,\r\n headers,\r\n regex = /-retry-after":"(\\d+)"/,\r\n ratelimit,\r\n request = new HttpRequest();\r\n\r\n if (typeof AzureCost.params.proxy !== \'undefined\' && AzureCost.params.proxy !== \'\') {\r\n request.setProxy(AzureCost.params.proxy);\r\n }\r\n if (!AzureCost.token) {\r\n throw \'Request does not contain access token.\';\r\n }\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Authorization: Bearer \' + AzureCost.token);\r\n\r\n Zabbix.log(4, \'[ AzureCost ] request url: \' + url);\r\n\r\n response = request.post(url, body);\r\n headers = JSON.stringify(request.getHeaders());\r\n\r\n if (headers.match(regex) !== null && request.getStatus() === 429) {\r\n ratelimit = headers.match(regex)[1];\r\n Zabbix.log(4, \'[ AzureCost ] Microsoft Cost Management have rate limit requests per 1 minute, retrying after \' + ratelimit + \' seconds\');\r\n Zabbix.sleep(ratelimit * 1010);\r\n response = request.post(url, body);\r\n }\r\n if (request.getStatus() !== 200) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n return JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from API.\';\r\n }\r\n },\r\n\r\n getField: function (data, path) {\r\n var steps = path.split(\'.\');\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n data = data[step];\r\n }\r\n\r\n return data;\r\n },\r\n\r\n getCost: function () {\r\n var metricData = {},\r\n today = new Date(),\r\n start_date = new Date(today);\r\n start_date.setDate(today.getDate() - 1);\r\n\r\n bodyRawCost = {\r\n type: \'Usage\',\r\n \'timeframe\': \'Custom\',\r\n \'timePeriod\': {\r\n \'from\': start_date,\r\n \'to\': start_date\r\n },\r\n dataset: {\r\n granularity: \'Daily\',\r\n aggregation: {\r\n totalCost: {\r\n name: \'PreTaxCost\',\r\n function: \'Sum\'\r\n }\r\n },\r\n grouping: [\r\n {\r\n type: \'Dimension\',\r\n name: \'Meter\',\r\n },\r\n {\r\n type: \'Dimension\',\r\n name: \'MeterSubcategory\',\r\n },\r\n {\r\n type: \'Dimension\',\r\n name: \'ResourceGroup\',\r\n },\r\n {\r\n type: \'Dimension\',\r\n name: \'ServiceName\',\r\n },\r\n {\r\n type: \'Dimension\',\r\n name: \'ResourceLocation\',\r\n }\r\n ]\r\n }\r\n };\r\n metricData = AzureCost.request(\'https://management.azure.com/subscriptions/\' + AzureCost.params.subscription_id + \'/providers/Microsoft.CostManagement/query?api-version=2023-11-01\', JSON.stringify(bodyRawCost));\r\n\r\n var columns = AzureCost.getField(metricData, \'properties.columns\');\r\n\r\n return transformedData = {\r\n data: AzureCost.getField(metricData, \'properties.rows\').map(function (row) {\r\n rowData = {};\r\n columns.forEach(function (column, i) {\r\n columnName = columns[i].name;\r\n columnType = columns[i].type;\r\n cellValue = row[i];\r\n rowData[columnName] = column.type === "Number" ? cellValue.toString() : cellValue;\r\n });\r\n rowData.UsageDate = rowData.UsageDate.replace(/(\\d{4})(\\d{2})(\\d{2})/, "$1-$2-$3");\r\n\r\n return rowData;\r\n })\r\n };\r\n }\r\n};\r\n\r\ntry {\r\n AzureCost.setParams(JSON.parse(value));\r\n AzureCost.login();\r\n\r\n return JSON.stringify(AzureCost.getCost());\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ AzureCost ] ERROR: \' + error);\r\n\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'The result of API requests is expressed in the JSON.','0','30d','0','',NULL,'{$AZURE.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','f50c96da86654a25b937756cc7f7010e','0','2','0'),
('46397','21','','10606','Get monthly costs','azure.get.monthly.costs','0s;h/12','0','0','0','4','','','','',NULL,NULL,'var AzureCost = {\r\n params: {},\r\n token: null,\r\n\r\n setParams: function (params) {\r\n [\'app_id\', \'password\', \'tenant_id\', \'subscription_id\', \'month\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n AzureCost.params = params;\r\n\r\n today = new Date();\r\n AzureCost.params.end_date = today.toISOString();\r\n month = today.getMonth();\r\n today.setMonth(month - params.month);\r\n AzureCost.params.start_time = new Date(today.getFullYear(), today.getMonth()).toISOString();\r\n },\r\n\r\n login: function () {\r\n var response,\r\n login = new HttpRequest();\r\n\r\n if (typeof AzureCost.params.proxy !== \'undefined\' && AzureCost.params.proxy !== \'\') {\r\n login.setProxy(AzureCost.params.proxy);\r\n }\r\n\r\n login.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n response = login.post(\r\n \'https://login.microsoftonline.com/\' + encodeURIComponent(AzureCost.params.tenant_id) + \'/oauth2/token\',\r\n \'grant_type=client_credentials&resource=\' + encodeURIComponent(\'https://management.azure.com/\') + \'&client_id=\' + encodeURIComponent(AzureCost.params.app_id) + \'&client_secret=\' + encodeURIComponent(AzureCost.params.password)\r\n );\r\n\r\n if (login.getStatus() !== 200) {\r\n throw \'Login failed with status code \' + login.getStatus() + \': \' + response;\r\n }\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse login session response.\';\r\n }\r\n if (!response.hasOwnProperty(\'access_token\')) {\r\n throw \'Authentication response does not contain access token.\';\r\n }\r\n\r\n AzureCost.token = response[\'access_token\'];\r\n },\r\n\r\n request: function (url, body) {\r\n if (typeof body === \'undefined\' || body === null) {\r\n body = \'\';\r\n }\r\n var response,\r\n headers,\r\n regex = /-retry-after":"(\\d+)"/,\r\n ratelimit,\r\n request = new HttpRequest();\r\n\r\n if (typeof AzureCost.params.proxy !== \'undefined\' && AzureCost.params.proxy !== \'\') {\r\n request.setProxy(AzureCost.params.proxy);\r\n }\r\n if (!AzureCost.token) {\r\n throw \'Request does not contain access token.\';\r\n }\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Authorization: Bearer \' + AzureCost.token);\r\n\r\n Zabbix.log(4, \'[ AzureCost ] request url: \' + url);\r\n\r\n response = request.post(url, body);\r\n headers = JSON.stringify(request.getHeaders());\r\n\r\n if (headers.match(regex) !== null && request.getStatus() === 429) {\r\n ratelimit = headers.match(regex)[1];\r\n Zabbix.log(4, \'[ AzureCost ] Microsoft Cost Management have rate limit requests per 1 minute, retrying after \' + ratelimit + \' seconds\');\r\n Zabbix.sleep(ratelimit * 1010);\r\n response = request.post(url, body);\r\n }\r\n if (request.getStatus() !== 200) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n return JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from API.\';\r\n }\r\n },\r\n\r\n getField: function (data, path) {\r\n var steps = path.split(\'.\');\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n data = data[step];\r\n }\r\n\r\n return data;\r\n },\r\n\r\n getCost: function (grouping) {\r\n var metricData = {},\r\n bodyRawCost = {\r\n type: \'Usage\',\r\n timeframe: \'Custom\',\r\n timePeriod: {\r\n from: AzureCost.params.start_time,\r\n to: AzureCost.params.end_date\r\n },\r\n dataset: {\r\n aggregation: {\r\n totalCost: {\r\n name: \'PreTaxCost\',\r\n function: \'Sum\'\r\n }\r\n },\r\n grouping: [\r\n {\r\n type: \'Dimension\',\r\n name: \'BillingMonth\'\r\n },\r\n {\r\n type: \'Dimension\',\r\n name: grouping\r\n },\r\n ]\r\n }\r\n };\r\n\r\n metricData = AzureCost.request(\'https://management.azure.com/subscriptions/\' + AzureCost.params.subscription_id + \'/providers/Microsoft.CostManagement/query?api-version=2023-11-01\', JSON.stringify(bodyRawCost));\r\n\r\n var columns = AzureCost.getField(metricData, \'properties.columns\');\r\n\r\n return transformedData = {\r\n data: AzureCost.getField(metricData, \'properties.rows\').map(function (row) {\r\n rowData = {};\r\n columns.forEach(function (column, i) {\r\n columnName = columns[i].name;\r\n cellValue = row[i];\r\n rowData[columnName] = column.type === "Number" ? cellValue.toString() : cellValue;\r\n });\r\n rowData.BillingMonth = rowData.BillingMonth.slice(0, 7);\r\n\r\n return rowData;\r\n })\r\n };\r\n }\r\n};\r\n\r\ntry {\r\n AzureCost.setParams(JSON.parse(value));\r\n AzureCost.login();\r\n\r\n serviceCost = AzureCost.getCost(\'ServiceName\');\r\n resourceGroupCost = AzureCost.getCost(\'ResourceGroup\');\r\n resourceLocationCost = AzureCost.getCost(\'ResourceLocation\');\r\n monthCost = AzureCost.getCost(\'SubscriptionId\');\r\n\r\n return JSON.stringify({ resourceGroupCost, resourceLocationCost, serviceCost, monthCost });\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ AzureCost ] ERROR: \' + error);\r\n\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'The result of API requests is expressed in the JSON.','0','30d','0','',NULL,'{$AZURE.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','bbf6a0b136464d76a535ca016dcb8ae1','0','2','0'),
('46408','11','','10327','Get availability groups','db.odbc.get[get_availability_group,"{$MSSQL.DSN}"]','1m','0','0','0','4','','','','',NULL,NULL,'SELECT\r\n ag.name as group_name,\r\n ISNULL(ags.primary_recovery_health, 2) as primary_recovery_health,\r\n ISNULL(ags.primary_replica, \'Unknown\') as primary_replica,\r\n ISNULL(\r\n ags.secondary_recovery_health, 2\r\n ) as secondary_recovery_health,\r\n ags.synchronization_health as synchronization_health\r\nFROM\r\n sys.dm_hadr_availability_group_states ags\r\nJOIN sys.availability_groups ag ON ag.group_id = ags.group_id','','0','{$MSSQL.USER}','{$MSSQL.PASSWORD}','','','0',NULL,'The item gets availability group states - name, primary and secondary health, synchronization health.','0','30d','0','',NULL,'30s','','','','200','1','0','','','0','0','0','0','0','0','0','f495898e37c94bfda4ce387f7129b996','0','2','0'),
('46409','11','','10327','Get database','db.odbc.get[get_database,"{$MSSQL.DSN}"]','1h','0','0','0','4','','','','',NULL,NULL,'SELECT name as dbname, recovery_model\r\nFROM sys.databases','','0','{$MSSQL.USER}','{$MSSQL.PASSWORD}','','','0',NULL,'Getting databases - database name and recovery model.','0','30d','0','',NULL,'30s','','','','200','1','0','','','0','0','0','0','0','0','0','9c902b33ed254e1892e44218a67876d3','0','2','0'),
('46410','11','','10327','Get DB mirroring','db.odbc.get[get_db_mirroring,"{$MSSQL.DSN}"]','1m','0','0','0','4','','','','',NULL,NULL,'SELECT\r\n ISNULL(m.mirroring_role, 0) as mirroring_role,\r\n ISNULL(m.mirroring_role_sequence, 0) as mirroring_role_sequence,\r\n ISNULL(m.mirroring_state, 7) as mirroring_state,\r\n ISNULL(m.mirroring_witness_state, 3) as mirroring_witness_state,\r\n ISNULL(m.mirroring_safety_level, 3) as mirroring_safety_level,\r\n db_name(m.database_id) as dbname\r\nFROM\r\n sys.database_mirroring as m\r\nWHERE\r\n m.mirroring_state_desc IS NOT NULL','','0','{$MSSQL.USER}','{$MSSQL.PASSWORD}','','','0',NULL,'Getting DB mirroring.','0','30d','0','',NULL,'30s','','','','200','1','0','','','0','0','0','0','0','0','0','9948ac27a2f84ba5a74ee0860d934f4e','0','2','0'),
('46411','11','','10327','Get local DB','db.odbc.get[get_local_db,"{$MSSQL.DSN}"]','1m','0','0','0','4','','','','',NULL,NULL,'SELECT ag.name AS group_name, \r\n drs.database_state as database_state, \r\n drs.is_suspended as is_suspended, \r\n drs.synchronization_health as synchronization_health, \r\n arcs.replica_server_name AS replica_name,\r\n db_name(drs.database_id) AS dbname, \r\n drs.is_local\r\nFROM sys.dm_hadr_database_replica_states drs \r\nJOIN sys.dm_hadr_availability_replica_cluster_states arcs\r\n ON arcs.replica_id = drs.replica_id\r\nJOIN sys.availability_groups ag \r\n ON ag.group_id = arcs.group_id\r\nJOIN sys.dm_hadr_availability_replica_states ars \r\n ON ars.replica_id = arcs.replica_id\r\nWHERE drs.is_local = 1','','0','{$MSSQL.USER}','{$MSSQL.PASSWORD}','','','0',NULL,'Getting the states of the local availability database.','0','30d','0','',NULL,'30s','','','','200','1','0','','','0','0','0','0','0','0','0','3960ea4dc0054ee099d5bca005535e6b','0','2','0'),
('46412','11','','10327','Get non-local DB','db.odbc.get[get_non_local_db,"{$MSSQL.DSN}"]','1m','0','0','0','4','','','','',NULL,NULL,'SELECT ag.name AS group_name, \r\n ISNULL(drs.log_send_queue_size, 0) as log_send_queue_size, \r\n ISNULL(drs.redo_queue_size, 0) as redo_queue_size, \r\n arcs.replica_server_name AS replica_name,\r\n db_name(drs.database_id) AS dbname, \r\n drs.is_local\r\nFROM sys.dm_hadr_database_replica_states drs \r\nJOIN sys.dm_hadr_availability_replica_cluster_states arcs\r\n ON arcs.replica_id = drs.replica_id\r\nJOIN sys.availability_groups ag \r\n ON ag.group_id = arcs.group_id\r\nJOIN sys.dm_hadr_availability_replica_states ars \r\n ON ars.replica_id = arcs.replica_id\r\nWHERE drs.is_local = 0','','0','{$MSSQL.USER}','{$MSSQL.PASSWORD}','','','0',NULL,'Getting the non-local availability database.','0','30d','0','',NULL,'30s','','','','200','1','0','','','0','0','0','0','0','0','0','e4480bba876d472294920020734eadf5','0','2','0'),
('46413','11','','10327','Get quorum','db.odbc.get[get_quorum,"{$MSSQL.DSN}"]','1m','0','0','0','4','','','','',NULL,NULL,'SELECT quorum_type, quorum_state, cluster_name\r\nFROM sys.dm_hadr_cluster','','0','{$MSSQL.USER}','{$MSSQL.PASSWORD}','','','0',NULL,'Getting quorum - cluster name, type, and state.','0','30d','0','',NULL,'10s','','','','200','1','0','','','0','0','0','0','0','0','0','3fcb3b84bdee42428bedc39fcc582c9e','0','2','0'),
('46414','11','','10327','Get quorum member','db.odbc.get[get_quorum_member,"{$MSSQL.DSN}"]','1m','0','0','0','4','','','','',NULL,NULL,'SELECT a.member_name, a.member_type, a.member_state, a.number_of_quorum_votes, b.cluster_name\r\nFROM sys.dm_hadr_cluster_members a\r\nCROSS JOIN sys.dm_hadr_cluster b','','0','{$MSSQL.USER}','{$MSSQL.PASSWORD}','','','0',NULL,'Getting quorum members - member name, type, state, and number of quorum votes.','0','30d','0','',NULL,'10s','','','','200','1','0','','','0','0','0','0','0','0','0','69a31cdfbf9b4099bf89adb26e8b9f06','0','2','0'),
('46415','11','','10327','Get replica','db.odbc.get[get_replica,"{$MSSQL.DSN}"]','1m','0','0','0','4','','','','',NULL,NULL,'SELECT \r\n ars.connected_state as connected_state, \r\n ars.is_local as is_local, \r\n arcs.join_state as join_state, \r\n ISNULL(ars.operational_state, 6) as operational_state, \r\n ISNULL(ars.recovery_health, 2) as recovery_health, \r\n ars.role as role, \r\n ars.synchronization_health as synchronization_health, \r\n ag.name as group_name, \r\n arcs.replica_server_name as replica_name \r\nFROM \r\n sys.dm_hadr_availability_replica_cluster_states as arcs \r\nJOIN sys.availability_groups ag ON ag.group_id = arcs.group_id \r\nJOIN sys.dm_hadr_availability_replica_states ars ON ars.replica_id = arcs.replica_id','','0','{$MSSQL.USER}','{$MSSQL.PASSWORD}','','','0',NULL,'Getting the database replica.','0','30d','0','',NULL,'30s','','','','200','1','0','','','0','0','0','0','0','0','0','7a82483c605d4e8eb67c2576069cf8a9','0','2','0'),
('46450','19','','10547','Get status','meraki.device.get.status','{$MERAKI.GET.STATUS.INTERVAL}','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Item for gathering device status from Meraki API.','0','30d','0','',NULL,'{$MERAKI.DATA.TIMEOUT}','https://{$MERAKI.API.URL}/organizations/{$ORGANIZATION_ID}/devices/statuses?serials[]={$SERIAL}','','','200','1','0','{$MERAKI.HTTP_PROXY}','X-Cisco-Meraki-API-Key: {$MERAKI.TOKEN}\r\nUser-Agent: ZabbixServer/1.1 Zabbix','0','0','0','0','0','0','0','0c97a8fcad764133b4e7c35d0134665c','0','2','0'),
('46451','21','','10607','Get ELB ALB alarms data','aws.elb.alb.get_alarms','0s;m/1','0','0','0','4','','','','',NULL,NULL,'var AWS = {\r\n params: {},\r\n metadata: \'http://169.254.169.254/latest/\',\r\n\r\n getField: function (data, path) {\r\n var steps = path.split(\'.\');\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n\r\n data = data[step];\r\n }\r\n\r\n return data;\r\n },\r\n\r\n getRoleBaseCredentials: function () {\r\n AWS.params[\'auth_type\'] = \'role_base\';\r\n var request = new HttpRequest();\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token-ttl-seconds: 21600\');\r\n var token = request.put(AWS.metadata + \'api/token\');\r\n\r\n if (request.getStatus() !== 200 || token === null || token === \'\') {\r\n throw \'Error getting IMDSv2 session token.\';\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token: \' + token);\r\n var IamRoleName = request.get(AWS.metadata + \'meta-data/iam/security-credentials\');\r\n\r\n if (request.getStatus() !== 200 || IamRoleName === null || IamRoleName === \'\') {\r\n throw \'Error getting security credentials from instance metadata. Role not found.\';\r\n }\r\n\r\n credentials = request.get(AWS.metadata + \'meta-data/iam/security-credentials/\' + encodeURI(IamRoleName));\r\n\r\n if (request.getStatus() !== 200 || credentials === null || credentials === \'\') {\r\n throw \'Error getting security credentials from instance metadata.\';\r\n }\r\n\r\n try {\r\n credentials = JSON.parse(credentials);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from instance metadata. Check debug log for more information.\';\r\n }\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'Token\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n },\r\n\r\n setParams: function (params) {\r\n AWS.params[\'proxy\'] = params.proxy;\r\n switch (AWS.getField(params, \'auth_type\')) {\r\n case \'role_base\':\r\n AWS.getRoleBaseCredentials();\r\n break;\r\n case \'assume_role\':\r\n if (typeof params.metadata_auth === \'undefined\' || params.metadata_auth === \'\' || (params.metadata_auth !== \'true\' && params.metadata_auth !== \'false\')) {\r\n throw \'Required param metadata_auth for assume_role is not set or has invalid value: "\' + params.metadata_auth + \'". Expected "true" or "false".\';\r\n }\r\n if (params.metadata_auth === \'true\') {\r\n AWS.getRoleBaseCredentials();\r\n AWS.params[\'SessionToken\'] = AWS.params[\'Token\'];\r\n AWS.params[\'auth_type\'] = \'assume_role_metadata\';\r\n\r\n [\'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n if (params.metadata_auth === \'false\') {\r\n AWS.params[\'auth_type\'] = \'assume_role\';\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n const role_arn_regex = /role\\/(.+)$/;\r\n const match = AWS.params.role_arn.match(role_arn_regex);\r\n if (!match) {\r\n throw \'Invalid role ARN format.\';\r\n }\r\n\r\n const payload = {\r\n \'Action\': \'AssumeRole\',\r\n \'Version\': \'2011-06-15\',\r\n \'RoleArn\': AWS.params.role_arn,\r\n \'RoleSessionName\': match[1] + \'Session\',\r\n };\r\n\r\n credentials = AWS.getField(AWS.request(\'GET\', AWS.params.sts_region, \'sts\', AWS.prepareParams(payload), \'\'), \'AssumeRoleResponse.AssumeRoleResult.Credentials\');\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'SessionToken\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n break;\r\n default:\r\n AWS.params[\'auth_type\'] = \'access_key\';\r\n [\'AccessKeyId\', \'SecretAccessKey\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n [\'region\', \'arn\', \'loadbalancer_name\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n },\r\n\r\n sign: function (key, message) {\r\n var hex = hmac(\'sha256\', key, message);\r\n\r\n if ((hex.length % 2) === 1) {\r\n throw \'Invalid length of a hex string!\';\r\n }\r\n\r\n var result = new Int8Array(hex.length / 2);\r\n for (var i = 0, b = 0; i < hex.length; i += 2, b++) {\r\n result[b] = parseInt(hex.substring(i, i + 2), 16);\r\n }\r\n\r\n return result;\r\n },\r\n\r\n prepareParams: function (params) {\r\n var result = [];\r\n\r\n Object.keys(params).sort().forEach(function (key) {\r\n if (typeof params[key] !== \'object\') {\r\n result.push(key + \'=\' + encodeURIComponent(params[key]));\r\n }\r\n else {\r\n result.push(prepareObject(key, params[key]));\r\n }\r\n });\r\n\r\n return result.join(\'&\');\r\n },\r\n\r\n request: function (method, region, service, params, data) {\r\n if (typeof data === \'undefined\' || data === null) {\r\n data = \'\';\r\n }\r\n\r\n var amzdate = (new Date()).toISOString().replace(/\\.\\d+Z/, \'Z\').replace(/[-:]/g, \'\'),\r\n date = amzdate.replace(/T\\d+Z/, \'\'),\r\n host = service + \'.\' + region + \'.amazonaws.com\',\r\n canonical_uri = \'/\',\r\n canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\',\r\n signed_headers = \'content-encoding;host;x-amz-date\',\r\n canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data),\r\n credential_scope = date + \'/\' + region + \'/\' + service + \'/\' + \'aws4_request\',\r\n request_string = \'AWS4-HMAC-SHA256\' + \'\\n\' + amzdate + \'\\n\' + credential_scope + \'\\n\' + sha256(canonical_request),\r\n key = AWS.sign(\'AWS4\' + AWS.params.SecretAccessKey, date),\r\n key = AWS.sign(key, region),\r\n key = AWS.sign(key, service),\r\n key = AWS.sign(key, \'aws4_request\'),\r\n request = new HttpRequest(),\r\n url = \'https://\' + host + canonical_uri + \'?\' + params;\r\n\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'x-amz-date: \' + amzdate);\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Content-Encoding: amz-1.0\');\r\n request.addHeader(\'Authorization: \' + \'AWS4-HMAC-SHA256 Credential=\' + AWS.params.AccessKeyId + \'/\' + credential_scope + \', \' + \'SignedHeaders=\' + signed_headers + \', \' + \'Signature=\' + hmac(\'sha256\', key, request_string));\r\n if (AWS.params.auth_type === \'role_base\' || AWS.params.auth_type === \'assume_role_metadata\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n request.addHeader(\'X-Amz-Security-Token: \' + (AWS.params.auth_type === \'role_base\' ? AWS.params.Token : AWS.params.SessionToken));\r\n }\r\n\r\n Zabbix.log(4, \'[ AWS ELB ] Sending request: \' + url);\r\n response = request.get(url);\r\n Zabbix.log(4, \'[ AWS ELB ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n try {\r\n response = JSON.parse(XML.toJson(response));\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from AWS CloudWatch API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n return response;\r\n },\r\n\r\n getAlarms: function () {\r\n var payload = {\r\n \'Action\': \'DescribeAlarms\',\r\n \'Version\': \'2010-08-01\',\r\n \'MaxRecords\': 100\r\n },\r\n result = [];\r\n\r\n while (payload.NextToken !== \'\') {\r\n var alarms = AWS.getField(AWS.request(\'GET\', AWS.params.region, \'monitoring\', AWS.prepareParams(payload)), \'DescribeAlarmsResponse.DescribeAlarmsResult\');\r\n payload.NextToken = alarms.NextToken || \'\';\r\n alarms_list = AWS.getField(alarms, \'MetricAlarms\');\r\n regex = /loadbalancer\\/(.+)$/;\r\n\r\n if (!Array.isArray(alarms_list))\r\n alarms_list = [alarms_list];\r\n alarms_list.forEach(function (alarm) {\r\n var dimensions = alarm.Dimensions;\r\n\r\n if (Array.isArray(alarm.Metrics)) {\r\n alarm.Metrics.forEach(function (metric) {\r\n if (typeof metric.MetricStat === \'object\' && metric.MetricStat !== null\r\n && typeof metric.MetricStat.Metric === \'object\' && metric.MetricStat.Metric !== null\r\n && Array.isArray(metric.MetricStat.Metric.Dimensions)) {\r\n dimensions = dimensions.concat(metric.MetricStat.Metric.Dimensions);\r\n }\r\n });\r\n }\r\n for (var i in dimensions) {\r\n if ((dimensions[i].Name === \'LoadBalancer\' && dimensions[i].Value === AWS.params.arn.match(regex)[1])\r\n || (dimensions[i].Name === \'LoadBalancerName\' && dimensions[i].Value === AWS.params.loadbalancer_name)) {\r\n result.push(alarm);\r\n break;\r\n }\r\n }\r\n });\r\n }\r\n\r\n return result;\r\n }\r\n};\r\n\r\ntry {\r\n AWS.setParams(JSON.parse(value));\r\n\r\n return JSON.stringify(AWS.getAlarms());\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ AWS ELB Alarms ] ERROR: \' + error);\r\n\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'`DescribeAlarms` API method: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarms.html','0','30d','0','',NULL,'{$AWS.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','059b7697baba46b2a7f138a1011a0e0c','0','2','0'),
('46452','21','','10607','Get metrics data','aws.elb.alb.get_metrics','0s;m/1','0','0','0','4','','','','',NULL,NULL,'var AWS = {\r\n params: {},\r\n metadata: \'http://169.254.169.254/latest/\',\r\n request_period: 60,\r\n\r\n getField: function (data, path) {\r\n var steps = path.split(\'.\');\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n\r\n data = data[step];\r\n }\r\n\r\n return data;\r\n },\r\n\r\n getRoleBaseCredentials: function () {\r\n AWS.params[\'auth_type\'] = \'role_base\';\r\n var request = new HttpRequest();\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token-ttl-seconds: 21600\');\r\n var token = request.put(AWS.metadata + \'api/token\');\r\n\r\n if (request.getStatus() !== 200 || token === null || token === \'\') {\r\n throw \'Error getting IMDSv2 session token.\';\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token: \' + token);\r\n var IamRoleName = request.get(AWS.metadata + \'meta-data/iam/security-credentials\');\r\n\r\n if (request.getStatus() !== 200 || IamRoleName === null || IamRoleName === \'\') {\r\n throw \'Error getting security credentials from instance metadata. Role not found.\';\r\n }\r\n\r\n credentials = request.get(AWS.metadata + \'meta-data/iam/security-credentials/\' + encodeURI(IamRoleName));\r\n\r\n if (request.getStatus() !== 200 || credentials === null || credentials === \'\') {\r\n throw \'Error getting security credentials from instance metadata.\';\r\n }\r\n\r\n try {\r\n credentials = JSON.parse(credentials);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from instance metadata. Check debug log for more information.\';\r\n }\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'Token\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n },\r\n\r\n setParams: function (params) {\r\n AWS.params[\'proxy\'] = params.proxy;\r\n switch (AWS.getField(params, \'auth_type\')) {\r\n case \'role_base\':\r\n AWS.getRoleBaseCredentials();\r\n break;\r\n case \'assume_role\':\r\n if (typeof params.metadata_auth === \'undefined\' || params.metadata_auth === \'\' || (params.metadata_auth !== \'true\' && params.metadata_auth !== \'false\')) {\r\n throw \'Required param metadata_auth for assume_role is not set or has invalid value: "\' + params.metadata_auth + \'". Expected "true" or "false".\';\r\n }\r\n if (params.metadata_auth === \'true\') {\r\n AWS.getRoleBaseCredentials();\r\n AWS.params[\'SessionToken\'] = AWS.params[\'Token\'];\r\n AWS.params[\'auth_type\'] = \'assume_role_metadata\';\r\n\r\n [\'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n if (params.metadata_auth === \'false\') {\r\n AWS.params[\'auth_type\'] = \'assume_role\';\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n const role_arn_regex = /role\\/(.+)$/;\r\n const match = AWS.params.role_arn.match(role_arn_regex);\r\n if (!match) {\r\n throw \'Invalid role ARN format.\';\r\n }\r\n\r\n const payload = {\r\n \'Action\': \'AssumeRole\',\r\n \'Version\': \'2011-06-15\',\r\n \'RoleArn\': AWS.params.role_arn,\r\n \'RoleSessionName\': match[1] + \'Session\',\r\n };\r\n\r\n credentials = AWS.getField(AWS.request(\'POST\', AWS.params.sts_region, \'sts\', AWS.prepareParams(payload), \'\'), \'AssumeRoleResponse.AssumeRoleResult.Credentials\');\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'SessionToken\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n break;\r\n default:\r\n AWS.params[\'auth_type\'] = \'access_key\';\r\n [\'AccessKeyId\', \'SecretAccessKey\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n [\'region\', \'arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n },\r\n\r\n sign: function (key, message) {\r\n var hex = hmac(\'sha256\', key, message);\r\n\r\n if ((hex.length % 2) === 1) {\r\n throw \'Invalid length of a hex string!\';\r\n }\r\n\r\n var result = new Int8Array(hex.length / 2);\r\n for (var i = 0, b = 0; i < hex.length; i += 2, b++) {\r\n result[b] = parseInt(hex.substring(i, i + 2), 16);\r\n }\r\n\r\n return result;\r\n },\r\n\r\n prepareParams: function (params) {\r\n var result = [];\r\n\r\n Object.keys(params).sort().forEach(function (key) {\r\n if (typeof params[key] !== \'object\') {\r\n result.push(key + \'=\' + encodeURIComponent(params[key]));\r\n }\r\n else {\r\n result.push(prepareObject(key, params[key]));\r\n }\r\n });\r\n\r\n return result.join(\'&\');\r\n },\r\n\r\n renderMetricQuery: function (period, arn) {\r\n var metrics_list = [\r\n \'ActiveConnectionCount:Sum\',\r\n \'ClientTLSNegotiationErrorCount:Sum\',\r\n \'ConsumedLCUs:Sum\',\r\n \'DesyncMitigationMode_NonCompliant_Request_Count:Sum\',\r\n \'HTTP_Fixed_Response_Count:Sum\',\r\n \'HTTP_Redirect_Count:Sum\',\r\n \'HTTP_Redirect_Url_Limit_Exceeded_Count:Sum\',\r\n \'HTTPCode_ELB_3XX_Count:Sum\',\r\n \'HTTPCode_ELB_4XX_Count:Sum\',\r\n \'HTTPCode_ELB_5XX_Count:Sum\',\r\n \'HTTPCode_ELB_500_Count:Sum\',\r\n \'HTTPCode_ELB_502_Count:Sum\',\r\n \'HTTPCode_ELB_503_Count:Sum\',\r\n \'HTTPCode_ELB_504_Count:Sum\',\r\n \'NewConnectionCount:Sum\',\r\n \'ProcessedBytes:Sum\',\r\n \'RejectedConnectionCount:Sum\',\r\n \'RequestCount:Sum\',\r\n \'RuleEvaluations:Sum\',\r\n \'TargetResponseTime:Average\',\r\n \'TargetTLSNegotiationErrorCount:Sum\',\r\n \'TargetConnectionErrorCount:Sum\',\r\n \'ELBAuthError:Sum\',\r\n \'ELBAuthFailure:Sum\',\r\n \'ELBAuthLatency:Sum\',\r\n \'ELBAuthSuccess:Sum\',\r\n \'ELBAuthUserClaimsSizeExceeded:Sum\',\r\n ],\r\n regex = /loadbalancer\\/(.+)$/;\r\n\r\n var metric_payload = [];\r\n metrics_list.forEach(function (metric, index) {\r\n var parts = metric.split(\':\', 2);\r\n metric_payload.push({\r\n \'Id\': \'m\' + index,\r\n \'MetricStat\': {\r\n \'Metric\': {\r\n \'MetricName\': parts[0],\r\n \'Namespace\': \'AWS/ApplicationELB\',\r\n \'Dimensions\': [\r\n {\r\n \'Name\': \'LoadBalancer\',\r\n \'Value\': arn.match(regex)[1],\r\n }\r\n ]\r\n },\r\n \'Period\': period,\r\n \'Stat\': parts[1],\r\n }\r\n });\r\n });\r\n\r\n return metric_payload;\r\n },\r\n\r\n request: function (method, region, service, params, data) {\r\n if (typeof data === \'undefined\' || data === null) {\r\n data = JSON.stringify([]);\r\n }\r\n else {\r\n data = JSON.stringify(data)\r\n }\r\n var amzdate = (new Date()).toISOString().replace(/\\.\\d+Z/, \'Z\').replace(/[-:]/g, \'\'),\r\n date = amzdate.replace(/T\\d+Z/, \'\'),\r\n canonical_uri = \'/\',\r\n host = service + \'.\' + region + \'.amazonaws.com\',\r\n canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\',\r\n signed_headers = \'content-encoding;host;x-amz-date\',\r\n canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data),\r\n credential_scope = date + \'/\' + region + \'/\' + service + \'/\' + \'aws4_request\',\r\n request_string = \'AWS4-HMAC-SHA256\' + \'\\n\' + amzdate + \'\\n\' + credential_scope + \'\\n\' + sha256(canonical_request),\r\n key = AWS.sign(\'AWS4\' + AWS.params.SecretAccessKey, date),\r\n key = AWS.sign(key, region),\r\n key = AWS.sign(key, service),\r\n key = AWS.sign(key, \'aws4_request\'),\r\n request = new HttpRequest(),\r\n url = \'https://\' + host + canonical_uri + \'?\' + params;\r\n\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'x-amz-date: \' + amzdate);\r\n request.addHeader(\'x-amz-content-sha256:\' + sha256(data));\r\n request.addHeader(\'X-Amz-Target: GraniteServiceVersion20100801.GetMetricData\')\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Content-Encoding: amz-1.0\');\r\n request.addHeader(\'Authorization: \' + \'AWS4-HMAC-SHA256 Credential=\' + AWS.params.AccessKeyId + \'/\' + credential_scope + \', \' + \'SignedHeaders=\' + signed_headers + \', \' + \'Signature=\' + hmac(\'sha256\', key, request_string));\r\n if (AWS.params.auth_type === \'role_base\' || AWS.params.auth_type === \'assume_role_metadata\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n request.addHeader(\'X-Amz-Security-Token: \' + (AWS.params.auth_type === \'role_base\' ? AWS.params.Token : AWS.params.SessionToken));\r\n }\r\n\r\n Zabbix.log(4, \'[ AWS ELB ] Sending request: \' + url);\r\n response = request.post(url, data);\r\n Zabbix.log(4, \'[ AWS ELB ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n if (request.getStatus() !== 200) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n return JSON.parse(response);\r\n },\r\n\r\n getMetricsData: function () {\r\n var end_time = Math.floor((new Date().getTime()) / 1000),\r\n start_time = end_time - AWS.request_period * 60;\r\n payload = {\r\n \'StartTime\': start_time,\r\n \'EndTime\': end_time,\r\n \'ScanBy\': \'TimestampDescending\',\r\n \'MetricDataQueries\': AWS.renderMetricQuery(AWS.request_period, AWS.params.arn)\r\n };\r\n\r\n return AWS.getField(AWS.request(\'POST\', AWS.params.region, \'monitoring\', \'\', payload), \'MetricDataResults\');\r\n }\r\n};\r\n\r\ntry {\r\n AWS.setParams(JSON.parse(value));\r\n return JSON.stringify(AWS.getMetricsData());\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ AWS ELB Get metrics] ERROR: \' + error);\r\n\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Get ELB Application Load Balancer metrics.\r\nFull metrics list related to Application Load Balancer: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-cloudwatch-metrics.html','0','30d','0','',NULL,'{$AWS.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','c7b4e867ff8246058d931ca76d18d4e7','0','2','0'),
('46453','21','','10607','Get target groups','aws.elb.alb.get_target_groups','0s;m/30','0','0','0','4','','','','',NULL,NULL,'var AWS = {\r\n params: {},\r\n metadata: \'http://169.254.169.254/latest/\',\r\n\r\n getField: function (data, path) {\r\n var steps = path.split(\'.\');\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n\r\n data = data[step];\r\n }\r\n\r\n return data;\r\n },\r\n\r\n getRoleBaseCredentials: function () {\r\n AWS.params[\'auth_type\'] = \'role_base\';\r\n var request = new HttpRequest();\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token-ttl-seconds: 21600\');\r\n var token = request.put(AWS.metadata + \'api/token\');\r\n\r\n if (request.getStatus() !== 200 || token === null || token === \'\') {\r\n throw \'Error getting IMDSv2 session token.\';\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token: \' + token);\r\n var IamRoleName = request.get(AWS.metadata + \'meta-data/iam/security-credentials\');\r\n\r\n if (request.getStatus() !== 200 || IamRoleName === null || IamRoleName === \'\') {\r\n throw \'Error getting security credentials from instance metadata. Role not found.\';\r\n }\r\n\r\n credentials = request.get(AWS.metadata + \'meta-data/iam/security-credentials/\' + encodeURI(IamRoleName));\r\n\r\n if (request.getStatus() !== 200 || credentials === null || credentials === \'\') {\r\n throw \'Error getting security credentials from instance metadata.\';\r\n }\r\n\r\n try {\r\n credentials = JSON.parse(credentials);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from instance metadata. Check debug log for more information.\';\r\n }\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'Token\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n },\r\n\r\n setParams: function (params) {\r\n AWS.params[\'proxy\'] = params.proxy;\r\n switch (AWS.getField(params, \'auth_type\')) {\r\n case \'role_base\':\r\n AWS.getRoleBaseCredentials();\r\n break;\r\n case \'assume_role\':\r\n if (typeof params.metadata_auth === \'undefined\' || params.metadata_auth === \'\' || (params.metadata_auth !== \'true\' && params.metadata_auth !== \'false\')) {\r\n throw \'Required param metadata_auth for assume_role is not set or has invalid value: "\' + params.metadata_auth + \'". Expected "true" or "false".\';\r\n }\r\n if (params.metadata_auth === \'true\') {\r\n AWS.getRoleBaseCredentials();\r\n AWS.params[\'SessionToken\'] = AWS.params[\'Token\'];\r\n AWS.params[\'auth_type\'] = \'assume_role_metadata\';\r\n\r\n [\'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n if (params.metadata_auth === \'false\') {\r\n AWS.params[\'auth_type\'] = \'assume_role\';\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n const role_arn_regex = /role\\/(.+)$/;\r\n const match = AWS.params.role_arn.match(role_arn_regex);\r\n if (!match) {\r\n throw \'Invalid role ARN format.\';\r\n }\r\n\r\n const payload = {\r\n \'Action\': \'AssumeRole\',\r\n \'Version\': \'2011-06-15\',\r\n \'RoleArn\': AWS.params.role_arn,\r\n \'RoleSessionName\': match[1] + \'Session\',\r\n };\r\n\r\n credentials = AWS.getField(AWS.request(\'GET\', AWS.params.sts_region, \'sts\', AWS.prepareParams(payload), \'\'), \'AssumeRoleResponse.AssumeRoleResult.Credentials\');\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'SessionToken\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n break;\r\n default:\r\n AWS.params[\'auth_type\'] = \'access_key\';\r\n [\'AccessKeyId\', \'SecretAccessKey\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n [\'region\', \'arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n },\r\n\r\n sign: function (key, message) {\r\n var hex = hmac(\'sha256\', key, message);\r\n\r\n if ((hex.length % 2) === 1) {\r\n throw \'Invalid length of a hex string!\';\r\n }\r\n\r\n var result = new Int8Array(hex.length / 2);\r\n for (var i = 0, b = 0; i < hex.length; i += 2, b++) {\r\n result[b] = parseInt(hex.substring(i, i + 2), 16);\r\n }\r\n\r\n return result;\r\n },\r\n\r\n prepareParams: function (params) {\r\n var result = [];\r\n\r\n Object.keys(params).sort().forEach(function (key) {\r\n if (typeof params[key] !== \'object\') {\r\n result.push(key + \'=\' + encodeURIComponent(params[key]));\r\n }\r\n else {\r\n result.push(prepareObject(key, params[key]));\r\n }\r\n });\r\n\r\n return result.join(\'&\');\r\n },\r\n\r\n request: function (method, region, service, params, data) {\r\n if (typeof data === \'undefined\' || data === null) {\r\n data = JSON.stringify([]);\r\n }\r\n var amzdate = (new Date()).toISOString().replace(/\\.\\d+Z/, \'Z\').replace(/[-:]/g, \'\'),\r\n date = amzdate.replace(/T\\d+Z/, \'\'),\r\n canonical_uri = \'/\',\r\n host = service + \'.\' + region + \'.amazonaws.com\',\r\n canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\',\r\n signed_headers = \'content-encoding;host;x-amz-date\',\r\n canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data),\r\n credential_scope = date + \'/\' + region + \'/\' + service + \'/\' + \'aws4_request\',\r\n request_string = \'AWS4-HMAC-SHA256\' + \'\\n\' + amzdate + \'\\n\' + credential_scope + \'\\n\' + sha256(canonical_request),\r\n key = AWS.sign(\'AWS4\' + AWS.params.SecretAccessKey, date),\r\n key = AWS.sign(key, region),\r\n key = AWS.sign(key, service),\r\n key = AWS.sign(key, \'aws4_request\'),\r\n request = new HttpRequest(),\r\n url = \'https://\' + host + canonical_uri + \'?\' + params;\r\n\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'x-amz-date: \' + amzdate);\r\n request.addHeader(\'x-amz-content-sha256:\' + sha256(data));\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Content-Encoding: amz-1.0\');\r\n request.addHeader(\'Authorization: \' + \'AWS4-HMAC-SHA256 Credential=\' + AWS.params.AccessKeyId + \'/\' + credential_scope + \', \' + \'SignedHeaders=\' + signed_headers + \', \' + \'Signature=\' + hmac(\'sha256\', key, request_string));\r\n if (AWS.params.auth_type === \'role_base\' || AWS.params.auth_type === \'assume_role_metadata\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n request.addHeader(\'X-Amz-Security-Token: \' + (AWS.params.auth_type === \'role_base\' ? AWS.params.Token : AWS.params.SessionToken));\r\n }\r\n\r\n Zabbix.log(4, \'[ AWS ELB ] Sending request: \' + url);\r\n response = request.get(url);\r\n Zabbix.log(4, \'[ AWS ELB ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n if (request.getStatus() !== 200) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n return JSON.parse(response);\r\n },\r\n\r\n listTargetGroups: function () {\r\n var lld_array = [],\r\n regex = /targetgroup\\/(.+)$/,\r\n payload = {\r\n \'Action\': \'DescribeTargetGroups\',\r\n \'LoadBalancerArn\': AWS.params.arn,\r\n \'Version\': \'2015-12-01\'\r\n };\r\n targets = AWS.getField(AWS.request(\'GET\', AWS.params.region, \'elasticloadbalancing\', AWS.prepareParams(payload), \'\'), \'DescribeTargetGroupsResponse.DescribeTargetGroupsResult.TargetGroups\');\r\n\r\n if (!Array.isArray(targets))\r\n targets = [targets]\r\n\r\n targets.forEach(function (targets) {\r\n lld_array.push(\r\n {\r\n target_name: AWS.getField(targets, \'TargetGroupName\'),\r\n target_arn: AWS.getField(targets, \'TargetGroupArn\').match(regex)[0],\r\n type: AWS.getField(targets, \'TargetType\'),\r\n protocol: AWS.getField(targets, \'Protocol\')\r\n }\r\n )\r\n });\r\n\r\n return lld_array;\r\n }\r\n};\r\n\r\ntry {\r\n AWS.setParams(JSON.parse(value));\r\n return JSON.stringify(AWS.listTargetGroups());\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ AWS ELB Target groups ] ERROR: \' + error);\r\n\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Get ELB target group.\r\n`DescribeTargetGroups` API method: https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html','0','30d','0','',NULL,'{$AWS.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','9b118d348b934146bab54e2df582e2b0','0','2','0'),
('46504','0','','10609','Get availability groups','mssql.availability.group.get["{$MSSQL.URI}","{$MSSQL.USER}","{$MSSQL.PASSWORD}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The item gets availability group states - name, primary and secondary health, synchronization health.','0','30d','0','',NULL,'30s','','','','200','1','0','','','0','0','0','0','0','0','0','71ade3c11bcd4f4691c5fa1c3fa6ded1','0','2','0'),
('46505','15','','10609','Average latch wait time','mssql.average_latch_wait_time','0;m0-59s3','31d','365d','0','0','','ms','','',NULL,NULL,'(last(//mssql.average_latch_wait_time_raw) - last(//mssql.average_latch_wait_time_raw,#2)) /\r\n(last(//mssql.average_latch_wait_time_base) - last(//mssql.average_latch_wait_time_base,#2) +\r\n(last(//mssql.average_latch_wait_time_base) - last(//mssql.average_latch_wait_time_base,#2)=0))','','0','','','','','0',NULL,'Average latch wait time (in milliseconds) for latch requests that had to wait.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8c5e2250dcc4405d95cc33167be33bb2','0','2','0'),
('46506','15','','10609','Total average wait time','mssql.average_wait_time','0;m0-59s3','31d','365d','0','0','','ms','','',NULL,NULL,'(last(//mssql.average_wait_time_raw) - last(//mssql.average_wait_time_raw,#2)) /\r\n(last(//mssql.average_wait_time_base) - last(//mssql.average_wait_time_base,#2) +\r\n(last(//mssql.average_wait_time_base) - last(//mssql.average_wait_time_base,#2)=0))','','0','','','','','0',NULL,'The average wait time, in milliseconds, for each lock request that had to wait.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3ba031d33d9147f786ee6fb6fddafaed','0','2','0'),
('46507','0','','10609','Get database','mssql.db.get["{$MSSQL.URI}","{$MSSQL.USER}","{$MSSQL.PASSWORD}"]','1h','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Getting databases - database name and recovery model.','0','30d','0','',NULL,'30s','','','','200','1','0','','','0','0','0','0','0','0','0','6c942840048b463e9439f327adceb767','0','2','0'),
('46508','0','','10609','Get job status','mssql.job.status.get["{$MSSQL.URI}","{$MSSQL.USER}","{$MSSQL.PASSWORD}"]','10m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The item gets the SQL agent job status.','0','30d','0','',NULL,'30s','','','','200','1','0','','','0','0','0','0','0','0','0','e36f8695b4f74178a19bb88afad586b8','0','2','0'),
('46509','0','','10609','Get last backup','mssql.last.backup.get["{$MSSQL.URI}","{$MSSQL.USER}","{$MSSQL.PASSWORD}"]','10m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The item gets information about backup processes.','0','30d','0','',NULL,'30s','','','','200','1','0','','','0','0','0','0','0','0','0','a394835aeddd46a18327f25747e3564d','0','2','0'),
('46510','0','','10609','Get local DB','mssql.local.db.get["{$MSSQL.URI}","{$MSSQL.USER}","{$MSSQL.PASSWORD}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Getting the states of the local availability database.','0','30d','0','',NULL,'30s','','','','200','1','0','','','0','0','0','0','0','0','0','f049c16678ad4daa83e55ab6c3a99fbc','0','2','0'),
('46511','0','','10609','Get DB mirroring','mssql.mirroring.get["{$MSSQL.URI}","{$MSSQL.USER}","{$MSSQL.PASSWORD}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Getting DB mirroring.','0','30d','0','',NULL,'30s','','','','200','1','0','','','0','0','0','0','0','0','0','fb51801472fc4ca7beed49c2586ba1cb','0','2','0'),
('46512','0','','10609','Get non-local DB','mssql.nonlocal.db.get["{$MSSQL.URI}","{$MSSQL.USER}","{$MSSQL.PASSWORD}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Getting the non-local availability database.','0','30d','0','',NULL,'30s','','','','200','1','0','','','0','0','0','0','0','0','0','8730198507594f4aa38d45bf00e65a38','0','2','0'),
('46513','15','','10609','Percent of ad hoc queries running','mssql.percent_of_adhoc_queries','0;m0-59s3','31d','365d','0','0','','%','','',NULL,NULL,'last(//mssql.sql_compilations_sec.rate) * 100 /\r\n(last(//mssql.batch_requests_sec.rate) + (last(//mssql.batch_requests_sec.rate)=0))','','0','','','','','0',NULL,'The ratio of SQL compilations per second to batch requests per second, in percent.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2064cd9f8e7646fa8fb329ca287fedd2','0','2','0'),
('46514','15','','10609','Percent of Recompiled Transact-SQL Objects','mssql.percent_recompilations_to_compilations','0;m0-59s3','31d','365d','0','0','','%','','',NULL,NULL,'last(//mssql.sql_recompilations_sec.rate) * 100 /\r\n(last(//mssql.sql_compilations_sec.rate) + (last(//mssql.sql_compilations_sec.rate)=0))','','0','','','','','0',NULL,'The ratio of SQL re-compilations per second to SQL compilations per second, in percent.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','98b0754f231c4160bcd2daafeef64fe0','0','2','0'),
('46515','0','','10609','Get performance counters','mssql.perfcounter.get["{$MSSQL.URI}","{$MSSQL.USER}","{$MSSQL.PASSWORD}"]','0;m0-59','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The item gets server global status information.','0','30d','0','',NULL,'30s','','','','200','1','0','','','0','0','0','0','0','0','0','2128f1e7d0fa46e2bdb8b06f5c07c436','0','2','0'),
('46516','0','','10609','Get quorum','mssql.quorum.get["{$MSSQL.URI}","{$MSSQL.USER}","{$MSSQL.PASSWORD}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Getting quorum - cluster name, type, and state.','0','30d','0','',NULL,'10s','','','','200','1','0','','','0','0','0','0','0','0','0','432178b4071e46758c421f6d9b75f4cd','0','2','0'),
('46517','0','','10609','Get quorum member','mssql.quorum.member.get["{$MSSQL.URI}","{$MSSQL.USER}","{$MSSQL.PASSWORD}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Getting quorum members - member name, type, state, and number of quorum votes.','0','30d','0','',NULL,'10s','','','','200','1','0','','','0','0','0','0','0','0','0','7343a6e34956475db3e79f7cfa905baa','0','2','0'),
('46518','0','','10609','Get replica','mssql.replica.get["{$MSSQL.URI}","{$MSSQL.USER}","{$MSSQL.PASSWORD}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Getting the database replica.','0','30d','0','',NULL,'30s','','','','200','1','0','','','0','0','0','0','0','0','0','77deceae02df4e2280f42ae7b7b16f76','0','2','0'),
('46519','15','','10609','Full scans to Index searches ratio','mssql.scan_to_search','0;m0-59s3','31d','365d','0','0','','','','',NULL,NULL,'last(//mssql.full_scans_sec.rate) / (last(//mssql.index_searches_sec.rate) + (last(//mssql.index_searches_sec.rate)=0))','','0','','','','','0',NULL,'The ratio of full scans per second to index searches per second. The threshold recommendation is strictly for OLTP workloads.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5dda9c1a17fa43ada4a6857e62148f1a','0','2','0'),
('46520','0','','10609','Version','mssql.version["{$MSSQL.URI}","{$MSSQL.USER}","{$MSSQL.PASSWORD}"]','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MSSQL Server version.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','624ea81f4a7c43659f291a2fc7913778','0','2','0'),
('46521','3','','10609','Service\'s TCP port state','net.tcp.service[tcp,{$MSSQL.HOST},{$MSSQL.PORT}]','30s','31d','365d','0','3','','','','',NULL,'1177','','','0','','','','','0',NULL,'Test the availability of MSSQL Server on a TCP port.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7fc4f1f9c3df45269972e617ce81f4b2','0','2','0'),
('46659','21','','10610','Get cluster','yugabytedb.clusters.get','1h','0','0','0','4','','','','',NULL,NULL,'var YugabyteDB = {\r\n params: {},\r\n clusters: [],\r\n error_msg: \'\',\r\n\r\n setParams: function (params) {\r\n [\'account_id\', \'project_id\', \'token\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n\r\n YugabyteDB.params = params;\r\n },\r\n\r\n\r\n request: function (url, data) {\r\n if (typeof data === \'undefined\' || data === null) {\r\n data = \'\';\r\n }\r\n\r\n var response, request = new HttpRequest();\r\n if (typeof YugabyteDB.params.proxy !== \'undefined\' && YugabyteDB.params.proxy !== \'\') {\r\n request.setProxy(YugabyteDB.params.proxy);\r\n }\r\n if (YugabyteDB.params.token) {\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Authorization: Bearer \' + YugabyteDB.params.token);\r\n }\r\n\r\n Zabbix.log(4, \'[ YugabyteDB ] Sending request: \' + url);\r\n\r\n response = request.get(url);\r\n\r\n Zabbix.log(4, \'[ YugabyteDB ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200 || response === null) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n return JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from API:\' + error;\r\n }\r\n }\r\n\r\n};\r\n\r\ntry {\r\n YugabyteDB.setParams(JSON.parse(value));\r\n\r\n clusters = YugabyteDB.request(\r\n \'https://cloud.yugabyte.com/api/public/v1/accounts/\' + YugabyteDB.params.account_id + \'/projects/\' + YugabyteDB.params.project_id + \'/clusters\'\r\n )\r\n\r\n YugabyteDB.clusters = clusters.data;\r\n}\r\ncatch (error) {\r\n Zabbix.log(3, \'[ YugabyteDB ] ERROR: \' + error);\r\n YugabyteDB.error_msg = \'Failed to get data from API:\' + error;\r\n}\r\n\r\nreturn JSON.stringify({\'clusters\': YugabyteDB.clusters, \'error\': YugabyteDB.error_msg});','','0','','','','','0',NULL,'Get raw data about clusters.','0','30d','0','',NULL,'10s','','','','200','1','0','','','0','0','0','0','0','0','0','25196b29de6c45c18485f2aefe306818','0','2','0'),
('46660','15','','10611','YSQL connections utilization','yugabytedb.cluster.connection.utilization','1m','31d','365d','0','0','','%','','',NULL,NULL,'(last(//yugabytedb.cluster.connection.count)/last(//yugabytedb.cluster.connection.limit))*100','','0','','','','','0',NULL,'Cumulative number of connections to the YSQL backend for all nodes, expressed in percent.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a7c388d2e66b48469e47a55cbb6ec614','0','2','0'),
('46661','15','','10611','Disk space utilization','yugabytedb.cluster.disk.utilization','1m','31d','365d','0','0','','%','','',NULL,NULL,'(last(//yugabytedb.cluster.disk.usage)/last(//yugabytedb.cluster.disk.provisioned))*100','','0','','','','','0',NULL,'Shows the percentage of disk space used by the cluster.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b2de999838914ca2bfc2c4fdfd22db74','0','2','0'),
('46662','21','','10611','Get cluster','yugabytedb.cluster.get','10m','0','0','0','4','','','','',NULL,NULL,'var YugabyteDB = {\r\n params: {},\r\n clusters: [],\r\n error_msg: \'\',\r\n\r\n setParams: function (params) {\r\n [\'account_id\', \'project_id\', \'token\', \'cluster_id\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n\r\n YugabyteDB.params = params;\r\n },\r\n\r\n\r\n request: function (url, data) {\r\n if (typeof data === \'undefined\' || data === null) {\r\n data = \'\';\r\n }\r\n\r\n var response, request = new HttpRequest();\r\n if (typeof YugabyteDB.params.proxy !== \'undefined\' && YugabyteDB.params.proxy !== \'\') {\r\n request.setProxy(YugabyteDB.params.proxy);\r\n }\r\n if (YugabyteDB.params.token) {\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Authorization: Bearer \' + YugabyteDB.params.token);\r\n }\r\n\r\n Zabbix.log(4, \'[ YugabyteDB ] Sending request: \' + url);\r\n\r\n response = request.get(url);\r\n\r\n Zabbix.log(4, \'[ YugabyteDB ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200 || response === null) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n return JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from API:\' + error;\r\n }\r\n }\r\n\r\n};\r\n\r\ntry {\r\n YugabyteDB.setParams(JSON.parse(value));\r\n\r\n cluster = YugabyteDB.request(\r\n \'https://cloud.yugabyte.com/api/public/v1/accounts/\' + YugabyteDB.params.account_id + \'/projects/\' + YugabyteDB.params.project_id + \'/clusters/\' + YugabyteDB.params.cluster_id\r\n )\r\n\r\n YugabyteDB.clusters = cluster.data;\r\n}\r\ncatch (error) {\r\n Zabbix.log(3, \'[ YugabyteDB ] ERROR: \' + error);\r\n YugabyteDB.error_msg = \'Failed to get data from API:\' + error;\r\n}\r\n\r\nreturn JSON.stringify({\'data\': YugabyteDB.clusters, \'error\': YugabyteDB.error_msg});','','0','','','','','0',NULL,'Get raw data about clusters.','0','30d','0','',NULL,'10s','','','','200','1','0','','','0','0','0','0','0','0','0','d8f71197e0e147fea4de2a17d4b1ad81','0','2','0'),
('46663','15','','10611','Memory utilization','yugabytedb.cluster.memory.utilization','1m','31d','365d','0','0','','%','','',NULL,NULL,'(last(//yugabytedb.cluster.memory.usage)/last(//yugabytedb.cluster.memory.total))*100','','0','','','','','0',NULL,'Shows the amount of RAM used on the cluster, expressed in percent.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','18e6de024a7a4ae48901f455dbd0a373','0','2','0'),
('46664','21','','10611','Get cluster metrics','yugabytedb.cluster.metric.get','1m','0','0','0','4','','','','',NULL,NULL,'var YugabyteDB = {\r\n params: {},\r\n metrics: {},\r\n error_msg: \'\',\r\n\r\n setParams: function (params) {\r\n [\'account_id\', \'project_id\', \'token\', \'cluster_id\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n\r\n YugabyteDB.params = params;\r\n },\r\n\r\n\r\n request: function (url, data) {\r\n if (typeof data === \'undefined\' || data === null) {\r\n data = \'\';\r\n }\r\n\r\n var response, request = new HttpRequest();\r\n if (typeof YugabyteDB.params.proxy !== \'undefined\' && YugabyteDB.params.proxy !== \'\') {\r\n request.setProxy(YugabyteDB.params.proxy);\r\n }\r\n if (YugabyteDB.params.token) {\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Authorization: Bearer \' + YugabyteDB.params.token);\r\n }\r\n\r\n Zabbix.log(4, \'[ YugabyteDB ] Sending request: \' + url);\r\n\r\n response = request.get(url);\r\n\r\n Zabbix.log(4, \'[ YugabyteDB ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200 || response === null) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n return JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from API:\' + error;\r\n }\r\n },\r\n\r\n\r\n get_last_values: function (values) {\r\n var max_timestamp = 0;\r\n var last_value = 0;\r\n for (e in values) {\r\n if (values[e][0] > max_timestamp) {\r\n max_timestamp = values[e][0];\r\n last_value = values[e][1];\r\n };\r\n };\r\n return last_value;\r\n },\r\n\r\n\r\n get_start_time: function() {\r\n return Math.floor(Date.now() / 1000 - 300);\r\n }\r\n\r\n};\r\n\r\nmetrics = [\r\n "CPU_USAGE",\r\n "DISK_USAGE_GB",\r\n "PROVISIONED_DISK_SPACE_GB",\r\n "READ_OPS_PER_SEC",\r\n "WRITE_OPS_PER_SEC",\r\n "AVERAGE_READ_LATENCY_MS",\r\n "AVERAGE_WRITE_LATENCY_MS",\r\n "YSQL_CONNECTION_LIMIT",\r\n "AVERAGE_YSQL_CONNECTION_COUNT",\r\n "NODE_CLOCK_SKEW",\r\n "DISK_BYTES_READ_MB_PER_SEC",\r\n "DISK_BYTES_WRITTEN_MB_PER_SEC",\r\n "FOLLOWER_LAG_MS",\r\n "MEMORY_TOTAL_GB",\r\n "MEMORY_USAGE_GB",\r\n "NETWORK_RECEIVE_BYTES_MB_PER_SEC",\r\n "NETWORK_TRANSMIT_BYTES_MB_PER_SEC",\r\n "NETWORK_RECEIVE_ERRORS_PER_SEC",\r\n "NETWORK_TRANSMIT_ERRORS_PER_SEC",\r\n "MASTER_UP_STATUS",\r\n "TSERVER_UP_STATUS",\r\n "YSQL_MAX_CONNECTION_COUNT"\r\n]\r\n\r\ntry {\r\n YugabyteDB.setParams(JSON.parse(value));\r\n\r\n var size = 6\r\n\r\n for (var i = 0; i < Math.ceil(metrics.length/size); i++) {\r\n var values = YugabyteDB.request(\r\n \'https://cloud.yugabyte.com/api/public/v1/accounts/\' + YugabyteDB.params.account_id + \'/projects/\' + YugabyteDB.params.project_id + \'/clusters/\' + YugabyteDB.params.cluster_id + \'/metrics?metrics=\' + metrics.slice((i * size), (i * size) + size).join(\'%2C\') + \'&start_time=\' + YugabyteDB.get_start_time()\r\n );\r\n\r\n values.data.forEach(function (e) {\r\n YugabyteDB.metrics[e.name] = YugabyteDB.get_last_values(e.values)\r\n });\r\n };\r\n}\r\ncatch (error) {\r\n Zabbix.log(3, \'[ YugabyteDB ] ERROR: \' + error);\r\n error_msg = \'Failed to get data from API:\' + error;\r\n}\r\n\r\nreturn JSON.stringify({\'metrics\': YugabyteDB.metrics, \'error\': YugabyteDB.error_msg});','','0','','','','','0',NULL,'Getting metrics for the cluster.','0','30d','0','',NULL,'5s','','','','200','1','0','','','0','0','0','0','0','0','0','9c51b3d15ac448388e23c74d4e5bba3a','0','2','0'),
('46665','21','','10611','Get cluster query statistic','yugabytedb.cluster.query.statistic.get','1m','0','0','0','4','','','','',NULL,NULL,'var YugabyteDB = {\r\n params: {},\r\n metrics: {},\r\n error_msg: \'\',\r\n\r\n setParams: function (params) {\r\n [\'account_id\', \'project_id\', \'token\', \'cluster_id\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n\r\n YugabyteDB.params = params;\r\n },\r\n\r\n\r\n request: function (url, data) {\r\n if (typeof data === \'undefined\' || data === null) {\r\n data = \'\';\r\n }\r\n\r\n var response, request = new HttpRequest();\r\n if (typeof YugabyteDB.params.proxy !== \'undefined\' && YugabyteDB.params.proxy !== \'\') {\r\n request.setProxy(YugabyteDB.params.proxy);\r\n }\r\n if (YugabyteDB.params.token) {\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Authorization: Bearer \' + YugabyteDB.params.token);\r\n }\r\n\r\n Zabbix.log(4, \'[ YugabyteDB ] Sending request: \' + url);\r\n\r\n response = request.get(url);\r\n\r\n Zabbix.log(4, \'[ YugabyteDB ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200 || response === null) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n return JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from API:\' + error;\r\n }\r\n },\r\n\r\n\r\n get_last_values: function (values) {\r\n var max_timestamp = 0;\r\n var last_value = 0;\r\n for (e in values) {\r\n if (values[e][0] > max_timestamp) {\r\n max_timestamp = values[e][0];\r\n last_value = values[e][1];\r\n };\r\n };\r\n return last_value;\r\n },\r\n\r\n\r\n get_start_time: function() {\r\n return Math.floor(Date.now() / 1000 - 300);\r\n }\r\n\r\n};\r\n\r\nmetrics = [\r\n "YSQL_SELECT_OPS_PER_SEC",\r\n "YSQL_DELETE_OPS_PER_SEC",\r\n "YSQL_INSERT_OPS_PER_SEC",\r\n "YSQL_UPDATE_OPS_PER_SEC",\r\n "YSQL_OTHER_OPS_PER_SEC",\r\n "YSQL_TRANSACTION_OPS_PER_SEC",\r\n "YSQL_SELECT_LATENCY_MS",\r\n "YSQL_DELETE_LATENCY_MS",\r\n "YSQL_INSERT_LATENCY_MS",\r\n "YSQL_UPDATE_LATENCY_MS",\r\n "YSQL_OTHER_LATENCY_MS",\r\n "YSQL_TRANSACTION_LATENCY_MS",\r\n "YCQL_SELECT_OPS_PER_SEC",\r\n "YCQL_DELETE_OPS_PER_SEC",\r\n "YCQL_INSERT_OPS_PER_SEC",\r\n "YCQL_OTHER_OPS_PER_SEC",\r\n "YCQL_UPDATE_OPS_PER_SEC",\r\n "YCQL_TRANSACTION_OPS_PER_SEC",\r\n "YCQL_SELECT_LATENCY_MS",\r\n "YCQL_DELETE_LATENCY_MS",\r\n "YCQL_INSERT_LATENCY_MS",\r\n "YCQL_OTHER_LATENCY_MS",\r\n "YCQL_UPDATE_LATENCY_MS",\r\n "YCQL_TRANSACTION_LATENCY_MS"\r\n]\r\n\r\ntry {\r\n YugabyteDB.setParams(JSON.parse(value));\r\n\r\n var size = 6\r\n\r\n for (var i = 0; i < Math.ceil(metrics.length/size); i++) {\r\n var values = YugabyteDB.request(\r\n \'https://cloud.yugabyte.com/api/public/v1/accounts/\' + YugabyteDB.params.account_id + \'/projects/\' + YugabyteDB.params.project_id + \'/clusters/\' + YugabyteDB.params.cluster_id + \'/metrics?metrics=\' + metrics.slice((i * size), (i * size) + size).join(\'%2C\') + \'&start_time=\' + YugabyteDB.get_start_time()\r\n );\r\n\r\n values.data.forEach(function (e) {\r\n YugabyteDB.metrics[e.name] = YugabyteDB.get_last_values(e.values)\r\n });\r\n };\r\n}\r\ncatch (error) {\r\n Zabbix.log(3, \'[ YugabyteDB ] ERROR: \' + error);\r\n error_msg = \'Failed to get data from API:\' + error;\r\n return JSON.stringify({\'error\': error_msg});\r\n}\r\n\r\nreturn JSON.stringify({\'metrics\': YugabyteDB.metrics, \'error\': YugabyteDB.error_msg});','','0','','','','','0',NULL,'Getting SQL statistics for the cluster.','0','30d','0','',NULL,'5s','','','','200','1','0','','','0','0','0','0','0','0','0','5497290f85d44d2c95ca0be3d2b030a3','0','2','0'),
('46666','21','','10611','Get keyspace','yugabytedb.keyspace.get','10m','0','0','0','4','','','','',NULL,NULL,'var YugabyteDB = {\r\n params: {},\r\n keyspaces: {},\r\n error_msg: \'\',\r\n\r\n setParams: function (params) {\r\n [\'account_id\', \'project_id\', \'token\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n\r\n YugabyteDB.params = params;\r\n },\r\n\r\n\r\n request: function (url, data) {\r\n if (typeof data === \'undefined\' || data === null) {\r\n data = \'\';\r\n }\r\n\r\n var response, request = new HttpRequest();\r\n if (typeof YugabyteDB.params.proxy !== \'undefined\' && YugabyteDB.params.proxy !== \'\') {\r\n request.setProxy(YugabyteDB.params.proxy);\r\n }\r\n if (YugabyteDB.params.token) {\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Authorization: Bearer \' + YugabyteDB.params.token);\r\n }\r\n\r\n Zabbix.log(4, \'[ YugabyteDB ] Sending request: \' + url);\r\n\r\n response = request.get(url);\r\n\r\n Zabbix.log(4, \'[ YugabyteDB ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200 || response === null) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n return JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from API:\' + error;\r\n }\r\n },\r\n\r\n\r\n get_keyspace: function (tables) {\r\n var table_info = {};\r\n var result = [];\r\n for (var table in tables[\'data\']) {\r\n var table_name = tables[\'data\'][table][\'keyspace\'];\r\n if (typeof table_info[table_name] !== \'undefined\') {\r\n table_info[table_name][\'size_bytes\'] += tables[\'data\'][table][\'size_bytes\']\r\n table_info[table_name][\'wal_size_bytes\'] += tables[\'data\'][table][\'wal_size_bytes\']\r\n }\r\n else {\r\n table_info[table_name] = {\r\n \'keyspace_name\': table_name,\r\n \'size_bytes\': tables[\'data\'][table][\'size_bytes\'],\r\n \'wal_size_bytes\': tables[\'data\'][table][\'wal_size_bytes\'],\r\n \'type\': tables[\'data\'][table][\'type\']}\r\n }\r\n }\r\n for (keyspace in table_info) {\r\n result.push(table_info[keyspace])\r\n }\r\n return result;\r\n }\r\n\r\n};\r\n\r\ntry {\r\n YugabyteDB.setParams(JSON.parse(value));\r\n\r\n var tables = YugabyteDB.request(\r\n \'https://cloud.yugabyte.com/api/public/v1/accounts/\' + YugabyteDB.params.account_id + \'/projects/\' + YugabyteDB.params.project_id + \'/clusters/\' + YugabyteDB.params.cluster_id + \'/tables\'\r\n )\r\n \r\n YugabyteDB.keyspaces = YugabyteDB.get_keyspace(tables);\r\n}\r\ncatch (error) {\r\n Zabbix.log(3, \'[ YugabyteDB ] ERROR: \' + error);\r\n error_msg = \'Failed to get data from API:\' + error;\r\n}\r\n\r\nreturn JSON.stringify({\'keyspaces\': YugabyteDB.keyspaces, \'error\': YugabyteDB.error_msg});','','0','','','','','0',NULL,'Get raw data about keyspaces.','0','30d','0','',NULL,'10s','','','','200','1','0','','','0','0','0','0','0','0','0','88c3b743cbe24ea9a0046dc0854a36be','0','2','0'),
('46667','21','','10611','Get node','yugabytedb.node.get','10m','0','0','0','4','','','','',NULL,NULL,'var YugabyteDB = {\r\n params: {},\r\n nodes: {},\r\n error_msg: \'\',\r\n\r\n setParams: function (params) {\r\n [\'account_id\', \'project_id\', \'token\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n\r\n YugabyteDB.params = params;\r\n },\r\n\r\n\r\n request: function (url, data) {\r\n if (typeof data === \'undefined\' || data === null) {\r\n data = \'\';\r\n }\r\n\r\n var response, request = new HttpRequest();\r\n if (typeof YugabyteDB.params.proxy !== \'undefined\' && YugabyteDB.params.proxy !== \'\') {\r\n request.setProxy(YugabyteDB.params.proxy);\r\n }\r\n if (YugabyteDB.params.token) {\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Authorization: Bearer \' + YugabyteDB.params.token);\r\n }\r\n\r\n Zabbix.log(4, \'[ YugabyteDB ] Sending request: \' + url);\r\n\r\n response = request.get(url);\r\n\r\n Zabbix.log(4, \'[ YugabyteDB ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200 || response === null) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n return JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from API:\' + error;\r\n }\r\n }\r\n\r\n};\r\n\r\ntry {\r\n YugabyteDB.setParams(JSON.parse(value));\r\n\r\n var node = YugabyteDB.request(\r\n \'https://cloud.yugabyte.com/api/public/v1/accounts/\' + YugabyteDB.params.account_id + \'/projects/\' + YugabyteDB.params.project_id + \'/clusters/\' + YugabyteDB.params.cluster_id + \'/nodes\'\r\n )\r\n YugabyteDB.nodes = node.data;\r\n}\r\ncatch (error) {\r\n Zabbix.log(3, \'[ YugabyteDB ] ERROR: \' + error);\r\n error_msg = \'Failed to get data from API:\' + error;\r\n}\r\n\r\nreturn JSON.stringify({\'nodes\': YugabyteDB.nodes, \'error\': YugabyteDB.error_msg});','','0','','','','','0',NULL,'Get raw data about nodes.','0','30d','0','',NULL,'10s','','','','200','1','0','','','0','0','0','0','0','0','0','734486b27ba64138bae356c7b14c8dbc','0','2','0'),
('46746','3','','10613','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'1189','','','0','','','','','0',NULL,'Host accessibility by ICMP.\r\n0 - ICMP ping fails.\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','737cc32022044218bd0599bc9be1c6cf','0','2','0'),
('46747','3','','10613','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','584837895d324e5bbcbce686ec894fb4','0','2','0'),
('46748','3','','10613','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','85013b32538f445d87955582857f2942','0','2','0'),
('46749','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10613','SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Used for discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a81c01a9acfe49eabea71a3106bf43b8','0','2','0'),
('46750','20','discovery[{#SNMPVALUE},1.3.6.1.4.1.2620.500.9000.1.2]','10613','Remote Access users','remote.users.number','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: CHECKPOINT-MIB\r\nNumber of remote access users.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d50cbc1930c24647b1f5a7921c9c3b06','0','2','0'),
('46751','20','walk[1.3.6.1.4.1.2620.1.6.7.8.2.1.2,1.3.6.1.4.1.2620.1.6.7.8.2.1.3,1.3.6.1.4.1.2620.1.6.7.8.2.1.4,1.3.6.1.4.1.2620.1.6.7.8.2.1.6]','10613','SNMP walk fan sensors','sensor.fan.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Used for discovering fan sensors from CHECKPOINT-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b943e400640e46498ba7ecf2ea3510dd','0','2','0'),
('46752','20','walk[1.3.6.1.4.1.2620.1.6.7.9.1.1.1,1.3.6.1.4.1.2620.1.6.7.9.1.1.2]','10613','SNMP walk PSU sensors','sensor.psu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Used for discovering power supply sensors from CHECKPOINT-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','76167bb41de149d6a4b4af4ba68e1460','0','2','0'),
('46753','20','walk[1.3.6.1.4.1.2620.1.6.7.8.1.1.2,1.3.6.1.4.1.2620.1.6.7.8.1.1.3]','10613','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Used for discovering temperature sensors from CHECKPOINT-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d5122dad11df4f6790d49d46614c3ea2','0','2','0'),
('46754','20','walk[1.3.6.1.4.1.2620.1.6.7.8.3.1.2,1.3.6.1.4.1.2620.1.6.7.8.3.1.3]','10613','SNMP walk voltage sensors','sensor.volt.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Used for discovering voltage sensors from CHECKPOINT-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','620126ff805d48aea5b7cac6d5ab4084','0','2','0'),
('46755','17','','10613','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'Used to collect all SNMP traps unmatched by other `snmptrap` items.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e04735bdbc4f453692902c0bc6596f3b','0','2','0'),
('46756','20','walk[1.3.6.1.4.1.2620.1.6.18.1.1.4,1.3.6.1.4.1.2620.1.6.18.1.1.5,1.3.6.1.4.1.2620.1.6.18.1.1.6,1.3.6.1.4.1.2620.1.6.18.1.1.8,1.3.6.1.4.1.2620.1.6.18.1.1.9,1.3.6.1.4.1.2620.1.6.18.1.1.10]','10613','SNMP walk svn features','svn.feature.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Used for discovering software blades and features from CHECKPOINT-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','847084d2b72a4c9688a4375a12fd7ea0','0','2','0'),
('46757','20','get[1.3.6.1.2.1.1.4.0]','10613','System contact details','system.contact','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nName and contact information of the contact person for the node. If not provided, the value is a zero-length string.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','499ee4e8eb2f481295625592ee215610','0','2','0'),
('46758','20','get[1.3.6.1.4.1.2620.1.6.7.2.3.0]','10613','CPU idle time','system.cpu.idle','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: CHECKPOINT-MIB\r\nAverage time the CPU has spent doing nothing.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','07162e1ca0c44dc5979b17c258b34052','0','2','0'),
('46759','20','get[1.3.6.1.4.1.2620.1.6.7.2.6.0]','10613','CPU interrupts per second','system.cpu.intr','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: CHECKPOINT-MIB\r\nNumber of interrupts processed per second.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5acef2ff22464f2c816bf1ab5ed8c66f','0','2','0'),
('46763','20','get[1.3.6.1.4.1.2620.1.6.7.2.7.0]','10613','Number of CPUs','system.cpu.num','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: CHECKPOINT-MIB\r\nNumber of processors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b42cc71d0b5143108b2314ab1fb1ceff','0','2','0'),
('46764','20','get[1.3.6.1.4.1.2021.11.60.0]','10613','Context switches per second','system.cpu.switches','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: UCD-SNMP-MIB\r\nNumber of context switches per second.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ada3e8eb30bc4c4f863fca6e46dc1cd5','0','2','0'),
('46765','20','get[1.3.6.1.4.1.2620.1.6.7.2.2.0]','10613','CPU system time','system.cpu.system','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: CHECKPOINT-MIB\r\nAverage time the CPU has spent running the kernel and its processes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bf0a80a981d248bdb2e4567ee8c084b3','0','2','0'),
('46766','20','get[1.3.6.1.4.1.2620.1.6.7.2.1.0]','10613','CPU user time','system.cpu.user','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: CHECKPOINT-MIB\r\nAverage time the CPU has spent running user processes that are not niced.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7a8a46d486404a5184a7fdba0832c50f','0','2','0'),
('46767','20','get[1.3.6.1.4.1.2620.1.6.7.2.4.0]','10613','CPU utilization','system.cpu.util','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: CHECKPOINT-MIB\r\nCPU utilization per core in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','db554f92ee6a4ab297b75839c019a7fe','0','2','0'),
('46768','20','walk[1.3.6.1.4.1.2620.1.6.7.5.1.1,1.3.6.1.4.1.2620.1.6.7.5.1.2,1.3.6.1.4.1.2620.1.6.7.5.1.3,1.3.6.1.4.1.2620.1.6.7.5.1.4,1.3.6.1.4.1.2620.1.6.7.5.1.5]','10613','SNMP walk CPU','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Used for discovering CPU from CHECKPOINT-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3628aac1e934408489153062d078e2e7','0','2','0'),
('46769','20','get[1.3.6.1.2.1.1.1.0]','10613','System description','system.descr','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nFull name and version identification of the system\'s hardware type, software operating system, and networking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a7ad79b572ab4e678011aa8ee810cd75','0','2','0'),
('46770','20','get[1.3.6.1.4.1.2620.1.6.16.9.0]','10613','Appliance manufacturer','system.hw.manufacturer','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: CHECKPOINT-MIB\r\nAppliance manufacturer.','31','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8385b6ee11b340f888676d013531a4d5','0','2','0'),
('46771','20','get[1.3.6.1.4.1.2620.1.6.16.7.0]','10613','Appliance product name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: CHECKPOINT-MIB\r\nAppliance product name.','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b461939fa04348f19c4f03ce3fd211b8','0','2','0'),
('46772','20','get[1.3.6.1.4.1.2620.1.6.16.3.0]','10613','Appliance serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: CHECKPOINT-MIB\r\nAppliance serial number.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','adb0bce1162a4e8990f4d299d8554d29','0','2','0'),
('46773','20','get[1.3.6.1.2.1.1.6.0]','10613','System location','system.location','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','df1681db47dc40b987f7be51e640974e','0','2','0'),
('46774','20','get[1.3.6.1.2.1.1.5.0]','10613','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn administratively-assigned name for the node (the node\'s fully-qualified domain name). If not provided, the value is a zero-length string.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a18c50a7b53e49c09de5fa39d9a70a14','0','2','0'),
('46775','20','get[1.3.6.1.2.1.1.2.0]','10613','System object ID','system.objectid','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe vendor\'s authoritative identification of the entity as part of the vendor\'s SMI enterprises subtree with the prefix 1.3.6.1.4.1 (e.g., a vendor with the identifier 1.3.6.1.4.1.4242 might assign a system object with the OID 1.3.6.1.4.1.4242.1.1).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bd2f23c23fff46b5b43e8283f1683927','0','2','0'),
('46776','20','get[1.3.6.1.2.1.25.1.1.0]','10613','System uptime','system.uptime','1m','31d','365d','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-V2-MIB\r\nTime since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b05995de7faf4d408b467c1024f2a438','0','2','0'),
('46777','20','walk[1.3.6.1.4.1.2620.1.6.7.6.1.2,1.3.6.1.4.1.2620.1.6.7.6.1.3,1.3.6.1.4.1.2620.1.6.7.6.1.4,1.3.6.1.4.1.2620.1.6.7.6.1.5,1.3.6.1.4.1.2620.1.6.7.6.1.6,1.3.6.1.4.1.2620.1.6.7.6.1.7]','10613','SNMP walk disks','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Used for discovering storage disks from CHECKPOINT-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d66ff3625ea74b5493a37d7b5e231c66','0','2','0'),
('46778','20','get[1.3.6.1.4.1.2620.1.6.7.4.4.0]','10613','Active memory','vm.memory.active','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: CHECKPOINT-MIB\r\nActive real memory (memory used by applications that is not cached to the disk) in bytes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9c5fbaca93854ad3941cb95e159b0ee1','0','2','0'),
('46779','20','get[1.3.6.1.4.1.2620.1.6.7.4.5.0]','10613','Free memory','vm.memory.free','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: CHECKPOINT-MIB\r\nFree memory available for applications in bytes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0a55ee1b84cb490494e27a4543db7691','0','2','0'),
('46780','20','get[1.3.6.1.4.1.2620.1.6.7.4.3.0]','10613','Total memory','vm.memory.total','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: CHECKPOINT-MIB\r\nTotal real memory in bytes. Memory used by applications.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','517445d996d148bcb34d7898dca55df6','0','2','0'),
('46781','15','','10613','Used memory','vm.memory.used','1m','31d','365d','0','3','','B','','',NULL,NULL,'last(//vm.memory.total) - last(//vm.memory.free)','','0','','','','','0',NULL,'Used real memory calculated by total real memory and free real memory in bytes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8846be280ae14ee8a1af1be65bef1996','0','2','0'),
('46782','15','','10613','Memory utilization','vm.memory.util','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used)/last(//vm.memory.total)*100','','0','','','','','0',NULL,'Memory utilization in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6bb39f4c24f14cc6a90db2ce1492dbea','0','2','0'),
('46783','20','get[1.3.6.1.4.1.2620.1.2.5.4.6.0]','10613','Decrypted packets per second','vpn.packets.decrypted','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: CHECKPOINT-MIB\r\nNumber of decrypted packets per second.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0eac75ac03af43d596b84cee15a8ddb4','0','2','0'),
('46784','20','get[1.3.6.1.4.1.2620.1.2.5.4.5.0]','10613','Encrypted packets per second','vpn.packets.encrypted','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: CHECKPOINT-MIB\r\nNumber of encrypted packets per second.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5d2b872c90774b868d5ce086fabe5cb2','0','2','0'),
('46785','20','walk[1.3.6.1.4.1.2620.500.9002.1.1,1.3.6.1.4.1.2620.500.9002.1.2,1.3.6.1.4.1.2620.500.9002.1.3,1.3.6.1.4.1.2620.500.9002.1.4,1.3.6.1.4.1.2620.500.9002.1.6,1.3.6.1.4.1.2620.500.9002.1.7,1.3.6.1.4.1.2620.500.9002.1.8,1.3.6.1.4.1.2620.500.9002.1.9,1.3.6.1.4.1.2620.500.9002.1.10,1.3.6.1.4.1.2620.500.9002.1.11]','10613','SNMP walk VPN tunnels','vpn.tunnel.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Used for discovering VPN tunnels from CHECKPOINT-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','eb15e618aff347b3ba986a2c02deb6bd','0','2','0'),
('46786','5','','10613','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'1195','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to the availability icons in the host list.\r\n\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','843f5f01701e4d79b3e899134f87632d','0','2','0'),
('46845','21','','10614','Get frequent metrics','oci.aut.db.metrics.frequent.get','1m','0','0','0','4','','','','',NULL,NULL,'function validateZabbixParams(requiredParams, allParams) {\r\n requiredParams.forEach(function (field) {\r\n if (typeof allParams !== \'object\' || typeof allParams[field] === \'undefined\' || allParams[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n}\r\n\r\nfunction OCI(service, action, params) {\r\n this.zabbixLogPrefix = \'[ OCI ] [ \' + service + \' ] [ \' + action + \' ]\';\r\n this.request = new HttpRequest();\r\n\r\n this.hash = function (string) {\r\n return sha256(string);\r\n };\r\n\r\n this.sign = function (string) {\r\n return sign(\'sha256\', params[\'private_key\'], string);\r\n };\r\n\r\n this.encode = function (hash) {\r\n const hexArr = hash.match(/.{1,2}/g);\r\n var uInt8Array = new Uint8Array(hexArr.length);\r\n hexArr.forEach(function (hex, idx) {\r\n uInt8Array[idx] = parseInt(hex, 16);\r\n });\r\n return btoa(uInt8Array);\r\n };\r\n\r\n this.getDate = function () {\r\n const weekdayShortList = [\'Sun\', \'Mon\', \'Tue\', \'Wed\', \'Thu\', \'Fri\', \'Sat\'];\r\n const monthShortList = [\'jan\', \'feb\', \'mar\', \'apr\', \'may\', \'jun\', \'jul\', \'aug\', \'sep\', \'oct\', \'nov\', \'dec\'];\r\n const today = new Date();\r\n return weekdayShortList[today.getUTCDay()] + \', \' + today.getUTCDate() + \' \' + monthShortList[today.getUTCMonth()] + \' \' + today.getUTCFullYear() + \' \' + today.getUTCHours() + \':\' + today.getUTCMinutes() + \':\' + today.getUTCSeconds() + \' GMT\';\r\n };\r\n\r\n this.executeRequest = function (httpMethod, apiPath, apiParams, mql, namespace) {\r\n var headers = \'(request-target) date host\';\r\n const contentTypeHeader = \'content-type: application/json\';\r\n const dateHeader = \'date: \' + this.getDate();\r\n const hostHeader = \'host: \' + params[\'api_host\'];\r\n const requestTarget = \'(request-target): \' + httpMethod + \' \' + apiPath + apiParams;\r\n var signingString = requestTarget + \'\\n\' + dateHeader + \'\\n\' + hostHeader;\r\n var reqHeaders = [contentTypeHeader, dateHeader];\r\n\r\n if (httpMethod === \'post\') {\r\n var body = JSON.stringify({\r\n \'namespace\': namespace,\r\n \'query\': mql\r\n });\r\n headers = headers + \' x-content-sha256 content-type content-length\';\r\n const bodyHeader = \'x-content-sha256: \' + this.encode(this.hash(body));\r\n const bodyLengthHeader = \'content-length: \' + body.length;\r\n signingString = signingString + \'\\n\' + bodyHeader + \'\\n\' + contentTypeHeader + \'\\n\' + bodyLengthHeader;\r\n reqHeaders.push(bodyHeader, bodyLengthHeader);\r\n }\r\n\r\n const signature = this.encode(this.sign(signingString));\r\n\r\n reqHeaders.push(\'Authorization: Signature version="1",keyId="\' + params[\'tenancy_ocid\'] + \'/\' + params[\'user_ocid\'] + \'/\' + params[\'fingerprint\'] + \'",algorithm="rsa-sha256",headers="\' + headers + \'",signature="\' + signature + \'"\');\r\n for (var header = 0, headerLength = reqHeaders.length; header < headerLength; header++) {\r\n this.request.addHeader(reqHeaders[header]);\r\n }\r\n\r\n if (params[\'http_proxy\']) {\r\n this.request.setProxy(params[\'http_proxy\']);\r\n Zabbix.log(4, this.zabbixLogPrefix + \' Using http proxy: \' + params[\'http_proxy\']);\r\n }\r\n\r\n if (httpMethod === \'post\') {\r\n var apiRateLimitExceeded = false;\r\n do {\r\n const response = this.request.post(\'https://\' + params[\'api_host\'] + apiPath + apiParams, body);\r\n\r\n try {\r\n if (JSON.parse(response)[\'code\'] === \'TooManyRequests\') {\r\n\r\n apiRateLimitExceeded = true;\r\n Zabbix.sleep(1000);\r\n } else {\r\n apiRateLimitExceeded = false;\r\n }\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not parse the response: \' + JSON.stringify(response));\r\n throw \'Could not parse the response. See logs for more information.\';\r\n }\r\n } while (apiRateLimitExceeded);\r\n } else {\r\n const response = this.request.get(\'https://\' + params[\'api_host\'] + apiPath + apiParams);\r\n }\r\n\r\n this.request.clearHeader();\r\n\r\n if (this.request.getStatus() === parseInt(params[\'http_status_code\'])) {\r\n return response;\r\n } else {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Unexpected HTTP response code: \' + this.request.getStatus());\r\n throw \'Unexpected HTTP response code: \' + this.request.getStatus();\r\n }\r\n };\r\n\r\n this.extractData = function (httpMethod, data, keys, compartment) {\r\n try {\r\n data = JSON.parse(data);\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not parse the received JSON object: \' + data);\r\n throw \'Could not parse received JSON object. See logs for more information.\';\r\n }\r\n\r\n if (typeof keys == \'object\') {\r\n var returnBuffer = [];\r\n for (var dataObj = 0, dataLength = data.length; dataObj < dataLength; dataObj++) {\r\n\r\n var objectBuffer = {};\r\n for (var key = 0, keysLength = keys.length; key < keysLength; key++) {\r\n if (data[dataObj][keys[key]] || data[dataObj][keys[key]] == null) {\r\n objectBuffer[keys[key].match(/^[a-z]+$|[A-Z][a-z]+$/)[0].toLowerCase()] = data[dataObj][keys[key]];\r\n } else {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Received an unexpected JSON object. Could not get value for key "\' + keys[key] + \'" in JSON: \' + JSON.stringify(data[dataObj]));\r\n throw \'Received an unexpected JSON object. See logs for more information.\';\r\n }\r\n }\r\n if (typeof compartment != \'undefined\' && compartment != \'\') objectBuffer[\'compartment\'] = compartment;\r\n returnBuffer.push(objectBuffer);\r\n }\r\n return returnBuffer;\r\n }\r\n\r\n try {\r\n if (httpMethod === \'get\') {\r\n return data[keys];\r\n } else {\r\n if (data.length === 0) {\r\n return 0;\r\n }\r\n data = data[0][keys];\r\n return data[data.length - 1][\'value\'];\r\n }\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not find key "\' + keys + \'" in JSON: \' + JSON.stringify(data));\r\n throw \'Could not find required key in JSON object. See logs for more information.\';\r\n }\r\n };\r\n}\r\n\r\nfunction buildMql(id, metrics, defaultStatistic, resourceType) {\r\n resourceType = resourceType === \'\' || resourceType === undefined ? \'resourceId\' : resourceType;\r\n this.query = \'[\' + params[\'req_interval\'] + \'m]{\' + resourceType + \'=\' + id + \'}.\';\r\n\r\n for (var i = 0, metricsLength = metrics.length; i < metricsLength; i++) {\r\n const metric = ((Array.isArray(metrics[i]) ? metrics[i] : [metrics[i], defaultStatistic]));\r\n metrics[i] = [metric[0], this.query + metric[1]];\r\n }\r\n}\r\n\r\n\r\nconst params = JSON.parse(value);\r\nvalidateZabbixParams([\'tenancy_ocid\', \'user_ocid\', \'private_key\', \'fingerprint\', \'api_host\', \'db_id\', \'http_status_code\', \'req_interval\', \'compartment_id\'], params);\r\nvar oci = new OCI(\'Autonomous DB\', \'Get metrics \' + params[\'req_interval\'] + \'m\', params);\r\n\r\nconst metrics = [\r\n [\'CpuTime\', \'mean\'],\r\n [\'CpuUtilization\', \'mean\'],\r\n [\'CurrentLogons\', \'count\'],\r\n \'DBBlockChanges\',\r\n [\'DBTime\', \'mean\'],\r\n \'ExecuteCount\',\r\n \'FailedConnections\',\r\n [\'FailedLogons\', \'mean\'],\r\n \'HardParseCount\',\r\n \'LogicalReads\',\r\n \'ParseCount\',\r\n \'ParseFailureCount\',\r\n \'PhysicalReads\',\r\n \'PhysicalReadTotalBytes\',\r\n \'PhysicalWrites\',\r\n \'PhysicalWriteTotalBytes\',\r\n \'QueuedStatements\',\r\n \'RedoGenerated\',\r\n [\'RunningStatements\', \'mean\'],\r\n \'Sessions\',\r\n \'SQLNetBytesFromClient\',\r\n \'SQLNetBytesFromDBLink\',\r\n \'SQLNetBytesToClient\',\r\n \'SQLNetBytesToDBLink\',\r\n \'TransactionCount\',\r\n \'UserCalls\',\r\n \'UserCommits\',\r\n \'UserRollbacks\',\r\n [\'WaitTime\', \'mean\']\r\n];\r\nbuildMql(params[\'db_id\'], metrics, \'sum\');\r\n\r\nvar result = {};\r\nfor (var i = 0, metricsLength = metrics.length; i < metricsLength; i++) {\r\n result[metrics[i][0]] = oci.extractData(\'post\', oci.executeRequest(\'post\', \'/20180401/metrics/actions/summarizeMetricsData\', \'?compartmentId=\' + encodeURIComponent(params[\'compartment_id\']), metrics[i][0] + metrics[i][1] + \'()\', \'oci_autonomous_database\'), \'aggregatedDatapoints\');\r\n}\r\nreturn JSON.stringify(result);','','0','','','','','0',NULL,'Gets all metrics related to the database that have a collection frequency of 1 minute.','0','7d','0','',NULL,'30s','','','','200','1','0','','','0','0','0','0','0','0','0','6104537179324cb48d82e05d64f3a19f','0','2','0'),
('46846','21','','10614','Get database stats','oci.aut.db.metrics.stats','5m','0','0','0','4','','','','',NULL,NULL,'function validateZabbixParams(requiredParams, allParams) {\r\n requiredParams.forEach(function (field) {\r\n if (typeof allParams !== \'object\' || typeof allParams[field] === \'undefined\' || allParams[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n}\r\n\r\nfunction OCI(service, action, params) {\r\n this.zabbixLogPrefix = \'[ OCI ] [ \' + service + \' ] [ \' + action + \' ]\';\r\n this.request = new HttpRequest();\r\n\r\n this.hash = function (string) {\r\n return sha256(string);\r\n };\r\n\r\n this.sign = function (string) {\r\n return sign(\'sha256\', params[\'private_key\'], string);\r\n };\r\n\r\n this.encode = function (hash) {\r\n const hexArr = hash.match(/.{1,2}/g);\r\n var uInt8Array = new Uint8Array(hexArr.length);\r\n hexArr.forEach(function (hex, idx) {\r\n uInt8Array[idx] = parseInt(hex, 16);\r\n });\r\n return btoa(uInt8Array);\r\n };\r\n\r\n this.getDate = function () {\r\n const weekdayShortList = [\'Sun\', \'Mon\', \'Tue\', \'Wed\', \'Thu\', \'Fri\', \'Sat\'];\r\n const monthShortList = [\'jan\', \'feb\', \'mar\', \'apr\', \'may\', \'jun\', \'jul\', \'aug\', \'sep\', \'oct\', \'nov\', \'dec\'];\r\n const today = new Date();\r\n return weekdayShortList[today.getUTCDay()] + \', \' + today.getUTCDate() + \' \' + monthShortList[today.getUTCMonth()] + \' \' + today.getUTCFullYear() + \' \' + today.getUTCHours() + \':\' + today.getUTCMinutes() + \':\' + today.getUTCSeconds() + \' GMT\';\r\n };\r\n\r\n this.executeRequest = function (httpMethod, apiPath, apiParams, mql, namespace) {\r\n var headers = \'(request-target) date host\';\r\n const contentTypeHeader = \'content-type: application/json\';\r\n const dateHeader = \'date: \' + this.getDate();\r\n const hostHeader = \'host: \' + params[\'api_host\'];\r\n const requestTarget = \'(request-target): \' + httpMethod + \' \' + apiPath + apiParams;\r\n var signingString = requestTarget + \'\\n\' + dateHeader + \'\\n\' + hostHeader;\r\n var reqHeaders = [contentTypeHeader, dateHeader];\r\n\r\n if (httpMethod === \'post\') {\r\n var body = JSON.stringify({\r\n \'namespace\': namespace,\r\n \'query\': mql\r\n });\r\n headers = headers + \' x-content-sha256 content-type content-length\';\r\n const bodyHeader = \'x-content-sha256: \' + this.encode(this.hash(body));\r\n const bodyLengthHeader = \'content-length: \' + body.length;\r\n signingString = signingString + \'\\n\' + bodyHeader + \'\\n\' + contentTypeHeader + \'\\n\' + bodyLengthHeader;\r\n reqHeaders.push(bodyHeader, bodyLengthHeader);\r\n }\r\n\r\n const signature = this.encode(this.sign(signingString));\r\n\r\n reqHeaders.push(\'Authorization: Signature version="1",keyId="\' + params[\'tenancy_ocid\'] + \'/\' + params[\'user_ocid\'] + \'/\' + params[\'fingerprint\'] + \'",algorithm="rsa-sha256",headers="\' + headers + \'",signature="\' + signature + \'"\');\r\n for (var header = 0, headerLength = reqHeaders.length; header < headerLength; header++) {\r\n this.request.addHeader(reqHeaders[header]);\r\n }\r\n\r\n if (params[\'http_proxy\']) {\r\n this.request.setProxy(params[\'http_proxy\']);\r\n Zabbix.log(4, this.zabbixLogPrefix + \' Using http proxy: \' + params[\'http_proxy\']);\r\n }\r\n\r\n if (httpMethod === \'post\') {\r\n var apiRateLimitExceeded = false;\r\n do {\r\n const response = this.request.post(\'https://\' + params[\'api_host\'] + apiPath + apiParams, body);\r\n\r\n try {\r\n if (JSON.parse(response)[\'code\'] === \'TooManyRequests\') {\r\n\r\n apiRateLimitExceeded = true;\r\n Zabbix.sleep(1000);\r\n } else {\r\n apiRateLimitExceeded = false;\r\n }\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not parse the response: \' + JSON.stringify(response));\r\n throw \'Could not parse the response. See logs for more information.\';\r\n }\r\n } while (apiRateLimitExceeded);\r\n } else {\r\n const response = this.request.get(\'https://\' + params[\'api_host\'] + apiPath + apiParams);\r\n }\r\n\r\n this.request.clearHeader();\r\n\r\n if (this.request.getStatus() === parseInt(params[\'http_status_code\'])) {\r\n return response;\r\n } else {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Unexpected HTTP response code: \' + this.request.getStatus());\r\n throw \'Unexpected HTTP response code: \' + this.request.getStatus();\r\n }\r\n };\r\n\r\n this.extractData = function (httpMethod, data, keys, compartment) {\r\n try {\r\n data = JSON.parse(data);\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not parse the received JSON object: \' + data);\r\n throw \'Could not parse received JSON object. See logs for more information.\';\r\n }\r\n\r\n if (typeof keys == \'object\') {\r\n var returnBuffer = [];\r\n for (var dataObj = 0, dataLength = data.length; dataObj < dataLength; dataObj++) {\r\n\r\n var objectBuffer = {};\r\n for (var key = 0, keysLength = keys.length; key < keysLength; key++) {\r\n if (data[dataObj][keys[key]] || data[dataObj][keys[key]] == null) {\r\n objectBuffer[keys[key].match(/^[a-z]+$|[A-Z][a-z]+$/)[0].toLowerCase()] = data[dataObj][keys[key]];\r\n } else {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Received an unexpected JSON object. Could not get value for key "\' + keys[key] + \'" in JSON: \' + JSON.stringify(data[dataObj]));\r\n throw \'Received an unexpected JSON object. See logs for more information.\';\r\n }\r\n }\r\n if (typeof compartment != \'undefined\' && compartment != \'\') objectBuffer[\'compartment\'] = compartment;\r\n returnBuffer.push(objectBuffer);\r\n }\r\n return returnBuffer;\r\n }\r\n\r\n try {\r\n if (httpMethod === \'get\') {\r\n return data[keys];\r\n } else {\r\n if (data.length === 0) {\r\n return 0;\r\n }\r\n data = data[0][keys];\r\n return data[data.length - 1][\'value\'];\r\n }\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not find key "\' + keys + \'" in JSON: \' + JSON.stringify(data));\r\n throw \'Could not find required key in JSON object. See logs for more information.\';\r\n }\r\n };\r\n}\r\n\r\nfunction buildMql(id, metrics, defaultStatistic, resourceType) {\r\n resourceType = resourceType === \'\' || resourceType === undefined ? \'resourceId\' : resourceType;\r\n this.query = \'[\' + params[\'req_interval\'] + \'m]{\' + resourceType + \'=\' + id + \'}.\';\r\n\r\n for (var i = 0, metricsLength = metrics.length; i < metricsLength; i++) {\r\n const metric = ((Array.isArray(metrics[i]) ? metrics[i] : [metrics[i], defaultStatistic]));\r\n metrics[i] = [metric[0], this.query + metric[1]];\r\n }\r\n}\r\n\r\n\r\nconst params = JSON.parse(value);\r\nvalidateZabbixParams([\'tenancy_ocid\', \'user_ocid\', \'private_key\', \'fingerprint\', \'api_host\', \'db_id\', \'http_status_code\', \'req_interval\', \'compartment_id\'], params);\r\nvar oci = new OCI(\'Autonomous DB\', \'Get metrics \' + params[\'req_interval\'] + \'m\', params);\r\n\r\nconst metrics = [\r\n [\'DatabaseAvailability\', \'last\'],\r\n \'ConnectionLatency\',\r\n \'QueryLatency\'\r\n];\r\nbuildMql(params[\'db_id\'], metrics, \'max\');\r\n\r\nvar result = {};\r\nfor (var i = 0, metricsLength = metrics.length; i < metricsLength; i++) {\r\n result[metrics[i][0]] = oci.extractData(\'post\', oci.executeRequest(\'post\', \'/20180401/metrics/actions/summarizeMetricsData\', \'?compartmentId=\' + encodeURIComponent(params[\'compartment_id\']), metrics[i][0] + metrics[i][1] + \'()\', \'oci_autonomous_database\'), \'aggregatedDatapoints\');\r\n}\r\nreturn JSON.stringify(result);','','0','','','','','0',NULL,'Gets all metrics related to specific database that have a collection frequency of 5 minutes.','0','7d','0','',NULL,'30s','','','','200','1','0','','','0','0','0','0','0','0','0','87a25240776a4b8a9a17ac053b69fd99','0','2','0'),
('46847','21','','10614','Get storage stats','oci.aut.db.metrics.storage.stats','60m','0','0','0','4','','','','',NULL,NULL,'function validateZabbixParams(requiredParams, allParams) {\r\n requiredParams.forEach(function (field) {\r\n if (typeof allParams !== \'object\' || typeof allParams[field] === \'undefined\' || allParams[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n}\r\n\r\nfunction OCI(service, action, params) {\r\n this.zabbixLogPrefix = \'[ OCI ] [ \' + service + \' ] [ \' + action + \' ]\';\r\n this.request = new HttpRequest();\r\n\r\n this.hash = function (string) {\r\n return sha256(string);\r\n };\r\n\r\n this.sign = function (string) {\r\n return sign(\'sha256\', params[\'private_key\'], string);\r\n };\r\n\r\n this.encode = function (hash) {\r\n const hexArr = hash.match(/.{1,2}/g);\r\n var uInt8Array = new Uint8Array(hexArr.length);\r\n hexArr.forEach(function (hex, idx) {\r\n uInt8Array[idx] = parseInt(hex, 16);\r\n });\r\n return btoa(uInt8Array);\r\n };\r\n\r\n this.getDate = function () {\r\n const weekdayShortList = [\'Sun\', \'Mon\', \'Tue\', \'Wed\', \'Thu\', \'Fri\', \'Sat\'];\r\n const monthShortList = [\'jan\', \'feb\', \'mar\', \'apr\', \'may\', \'jun\', \'jul\', \'aug\', \'sep\', \'oct\', \'nov\', \'dec\'];\r\n const today = new Date();\r\n return weekdayShortList[today.getUTCDay()] + \', \' + today.getUTCDate() + \' \' + monthShortList[today.getUTCMonth()] + \' \' + today.getUTCFullYear() + \' \' + today.getUTCHours() + \':\' + today.getUTCMinutes() + \':\' + today.getUTCSeconds() + \' GMT\';\r\n };\r\n\r\n this.executeRequest = function (httpMethod, apiPath, apiParams, mql, namespace) {\r\n var headers = \'(request-target) date host\';\r\n const contentTypeHeader = \'content-type: application/json\';\r\n const dateHeader = \'date: \' + this.getDate();\r\n const hostHeader = \'host: \' + params[\'api_host\'];\r\n const requestTarget = \'(request-target): \' + httpMethod + \' \' + apiPath + apiParams;\r\n var signingString = requestTarget + \'\\n\' + dateHeader + \'\\n\' + hostHeader;\r\n var reqHeaders = [contentTypeHeader, dateHeader];\r\n\r\n if (httpMethod === \'post\') {\r\n var body = JSON.stringify({\r\n \'namespace\': namespace,\r\n \'query\': mql\r\n });\r\n headers = headers + \' x-content-sha256 content-type content-length\';\r\n const bodyHeader = \'x-content-sha256: \' + this.encode(this.hash(body));\r\n const bodyLengthHeader = \'content-length: \' + body.length;\r\n signingString = signingString + \'\\n\' + bodyHeader + \'\\n\' + contentTypeHeader + \'\\n\' + bodyLengthHeader;\r\n reqHeaders.push(bodyHeader, bodyLengthHeader);\r\n }\r\n\r\n const signature = this.encode(this.sign(signingString));\r\n\r\n reqHeaders.push(\'Authorization: Signature version="1",keyId="\' + params[\'tenancy_ocid\'] + \'/\' + params[\'user_ocid\'] + \'/\' + params[\'fingerprint\'] + \'",algorithm="rsa-sha256",headers="\' + headers + \'",signature="\' + signature + \'"\');\r\n for (var header = 0, headerLength = reqHeaders.length; header < headerLength; header++) {\r\n this.request.addHeader(reqHeaders[header]);\r\n }\r\n\r\n if (params[\'http_proxy\']) {\r\n this.request.setProxy(params[\'http_proxy\']);\r\n Zabbix.log(4, this.zabbixLogPrefix + \' Using http proxy: \' + params[\'http_proxy\']);\r\n }\r\n\r\n if (httpMethod === \'post\') {\r\n var apiRateLimitExceeded = false;\r\n do {\r\n const response = this.request.post(\'https://\' + params[\'api_host\'] + apiPath + apiParams, body);\r\n\r\n try {\r\n if (JSON.parse(response)[\'code\'] === \'TooManyRequests\') {\r\n\r\n apiRateLimitExceeded = true;\r\n Zabbix.sleep(1000);\r\n } else {\r\n apiRateLimitExceeded = false;\r\n }\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not parse the response: \' + JSON.stringify(response));\r\n throw \'Could not parse the response. See logs for more information.\';\r\n }\r\n } while (apiRateLimitExceeded);\r\n } else {\r\n const response = this.request.get(\'https://\' + params[\'api_host\'] + apiPath + apiParams);\r\n }\r\n\r\n this.request.clearHeader();\r\n\r\n if (this.request.getStatus() === parseInt(params[\'http_status_code\'])) {\r\n return response;\r\n } else {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Unexpected HTTP response code: \' + this.request.getStatus());\r\n throw \'Unexpected HTTP response code: \' + this.request.getStatus();\r\n }\r\n };\r\n\r\n this.extractData = function (httpMethod, data, keys, compartment) {\r\n try {\r\n data = JSON.parse(data);\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not parse the received JSON object: \' + data);\r\n throw \'Could not parse received JSON object. See logs for more information.\';\r\n }\r\n\r\n if (typeof keys == \'object\') {\r\n var returnBuffer = [];\r\n for (var dataObj = 0, dataLength = data.length; dataObj < dataLength; dataObj++) {\r\n\r\n var objectBuffer = {};\r\n for (var key = 0, keysLength = keys.length; key < keysLength; key++) {\r\n if (data[dataObj][keys[key]] || data[dataObj][keys[key]] == null) {\r\n objectBuffer[keys[key].match(/^[a-z]+$|[A-Z][a-z]+$/)[0].toLowerCase()] = data[dataObj][keys[key]];\r\n } else {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Received an unexpected JSON object. Could not get value for key "\' + keys[key] + \'" in JSON: \' + JSON.stringify(data[dataObj]));\r\n throw \'Received an unexpected JSON object. See logs for more information.\';\r\n }\r\n }\r\n if (typeof compartment != \'undefined\' && compartment != \'\') objectBuffer[\'compartment\'] = compartment;\r\n returnBuffer.push(objectBuffer);\r\n }\r\n return returnBuffer;\r\n }\r\n\r\n try {\r\n if (httpMethod === \'get\') {\r\n return data[keys];\r\n } else {\r\n if (data.length === 0) {\r\n return 0;\r\n }\r\n data = data[0][keys];\r\n return data[data.length - 1][\'value\'];\r\n }\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not find key "\' + keys + \'" in JSON: \' + JSON.stringify(data));\r\n throw \'Could not find required key in JSON object. See logs for more information.\';\r\n }\r\n };\r\n}\r\n\r\nfunction buildMql(id, metrics, defaultStatistic, resourceType) {\r\n resourceType = resourceType === \'\' || resourceType === undefined ? \'resourceId\' : resourceType;\r\n this.query = \'[\' + params[\'req_interval\'] + \'m]{\' + resourceType + \'=\' + id + \'}.\';\r\n\r\n for (var i = 0, metricsLength = metrics.length; i < metricsLength; i++) {\r\n const metric = ((Array.isArray(metrics[i]) ? metrics[i] : [metrics[i], defaultStatistic]));\r\n metrics[i] = [metric[0], this.query + metric[1]];\r\n }\r\n}\r\n\r\n\r\nconst params = JSON.parse(value);\r\nvalidateZabbixParams([\'tenancy_ocid\', \'user_ocid\', \'private_key\', \'fingerprint\', \'api_host\', \'db_id\', \'http_status_code\', \'req_interval\', \'compartment_id\'], params);\r\nvar oci = new OCI(\'Autonomous DB\', \'Get metrics \' + params[\'req_interval\'] + \'m\', params);\r\n\r\nconst metrics = [\r\n \'StorageAllocated\',\r\n \'StorageMax\',\r\n \'StorageUsed\',\r\n [\'StorageUtilization\', \'mean\']\r\n];\r\nbuildMql(params[\'db_id\'], metrics, \'max\');\r\n\r\nvar result = {};\r\nfor (var i = 0, metricsLength = metrics.length; i < metricsLength; i++) {\r\n result[metrics[i][0]] = oci.extractData(\'post\', oci.executeRequest(\'post\', \'/20180401/metrics/actions/summarizeMetricsData\', \'?compartmentId=\' + encodeURIComponent(params[\'compartment_id\']), metrics[i][0] + metrics[i][1] + \'()\', \'oci_autonomous_database\'), \'aggregatedDatapoints\');\r\n}\r\nreturn JSON.stringify(result);','','0','','','','','0',NULL,'Gets all storage metrics related to a specific database that have a collection frequency of 60 minutes.','0','7d','0','',NULL,'30s','','','','200','1','0','','','0','0','0','0','0','0','0','cb2936c594e4450096559b3023f6aa4f','0','2','0'),
('46848','21','','10614','State','oci.aut.db.state','1m','31d','365d','0','3','','','','',NULL,'1196','function validateZabbixParams(requiredParams, allParams) {\r\n requiredParams.forEach(function (field) {\r\n if (typeof allParams !== \'object\' || typeof allParams[field] === \'undefined\' || allParams[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n}\r\n\r\nfunction OCI(service, action, params) {\r\n this.zabbixLogPrefix = \'[ OCI ] [ \' + service + \' ] [ \' + action + \' ]\';\r\n this.request = new HttpRequest();\r\n\r\n this.hash = function (string) {\r\n return sha256(string);\r\n };\r\n\r\n this.sign = function (string) {\r\n return sign(\'sha256\', params[\'private_key\'], string);\r\n };\r\n\r\n this.encode = function (hash) {\r\n const hexArr = hash.match(/.{1,2}/g);\r\n var uInt8Array = new Uint8Array(hexArr.length);\r\n hexArr.forEach(function (hex, idx) {\r\n uInt8Array[idx] = parseInt(hex, 16);\r\n });\r\n return btoa(uInt8Array);\r\n };\r\n\r\n this.getDate = function () {\r\n const weekdayShortList = [\'Sun\', \'Mon\', \'Tue\', \'Wed\', \'Thu\', \'Fri\', \'Sat\'];\r\n const monthShortList = [\'jan\', \'feb\', \'mar\', \'apr\', \'may\', \'jun\', \'jul\', \'aug\', \'sep\', \'oct\', \'nov\', \'dec\'];\r\n const today = new Date();\r\n return weekdayShortList[today.getUTCDay()] + \', \' + today.getUTCDate() + \' \' + monthShortList[today.getUTCMonth()] + \' \' + today.getUTCFullYear() + \' \' + today.getUTCHours() + \':\' + today.getUTCMinutes() + \':\' + today.getUTCSeconds() + \' GMT\';\r\n };\r\n\r\n this.executeRequest = function (httpMethod, apiPath, apiParams, mql, namespace) {\r\n var headers = \'(request-target) date host\';\r\n const contentTypeHeader = \'content-type: application/json\';\r\n const dateHeader = \'date: \' + this.getDate();\r\n const hostHeader = \'host: \' + params[\'api_host\'];\r\n const requestTarget = \'(request-target): \' + httpMethod + \' \' + apiPath + apiParams;\r\n var signingString = requestTarget + \'\\n\' + dateHeader + \'\\n\' + hostHeader;\r\n var reqHeaders = [contentTypeHeader, dateHeader];\r\n\r\n if (httpMethod === \'post\') {\r\n var body = JSON.stringify({\r\n \'namespace\': namespace,\r\n \'query\': mql\r\n });\r\n headers = headers + \' x-content-sha256 content-type content-length\';\r\n const bodyHeader = \'x-content-sha256: \' + this.encode(this.hash(body));\r\n const bodyLengthHeader = \'content-length: \' + body.length;\r\n signingString = signingString + \'\\n\' + bodyHeader + \'\\n\' + contentTypeHeader + \'\\n\' + bodyLengthHeader;\r\n reqHeaders.push(bodyHeader, bodyLengthHeader);\r\n }\r\n\r\n const signature = this.encode(this.sign(signingString));\r\n\r\n reqHeaders.push(\'Authorization: Signature version="1",keyId="\' + params[\'tenancy_ocid\'] + \'/\' + params[\'user_ocid\'] + \'/\' + params[\'fingerprint\'] + \'",algorithm="rsa-sha256",headers="\' + headers + \'",signature="\' + signature + \'"\');\r\n for (var header = 0, headerLength = reqHeaders.length; header < headerLength; header++) {\r\n this.request.addHeader(reqHeaders[header]);\r\n }\r\n\r\n if (params[\'http_proxy\']) {\r\n this.request.setProxy(params[\'http_proxy\']);\r\n Zabbix.log(4, this.zabbixLogPrefix + \' Using http proxy: \' + params[\'http_proxy\']);\r\n }\r\n\r\n if (httpMethod === \'post\') {\r\n var apiRateLimitExceeded = false;\r\n do {\r\n const response = this.request.post(\'https://\' + params[\'api_host\'] + apiPath + apiParams, body);\r\n\r\n try {\r\n if (JSON.parse(response)[\'code\'] === \'TooManyRequests\') {\r\n\r\n apiRateLimitExceeded = true;\r\n Zabbix.sleep(1000);\r\n } else {\r\n apiRateLimitExceeded = false;\r\n }\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not parse the response: \' + JSON.stringify(response));\r\n throw \'Could not parse the response. See logs for more information.\';\r\n }\r\n } while (apiRateLimitExceeded);\r\n } else {\r\n const response = this.request.get(\'https://\' + params[\'api_host\'] + apiPath + apiParams);\r\n }\r\n\r\n this.request.clearHeader();\r\n\r\n if (this.request.getStatus() === parseInt(params[\'http_status_code\'])) {\r\n return response;\r\n } else {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Unexpected HTTP response code: \' + this.request.getStatus());\r\n throw \'Unexpected HTTP response code: \' + this.request.getStatus();\r\n }\r\n };\r\n\r\n this.extractData = function (httpMethod, data, keys, compartment) {\r\n try {\r\n data = JSON.parse(data);\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not parse the received JSON object: \' + data);\r\n throw \'Could not parse received JSON object. See logs for more information.\';\r\n }\r\n\r\n if (typeof keys == \'object\') {\r\n var returnBuffer = [];\r\n for (var dataObj = 0, dataLength = data.length; dataObj < dataLength; dataObj++) {\r\n\r\n var objectBuffer = {};\r\n for (var key = 0, keysLength = keys.length; key < keysLength; key++) {\r\n if (data[dataObj][keys[key]] || data[dataObj][keys[key]] == null) {\r\n objectBuffer[keys[key].match(/^[a-z]+$|[A-Z][a-z]+$/)[0].toLowerCase()] = data[dataObj][keys[key]];\r\n } else {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Received an unexpected JSON object. Could not get value for key "\' + keys[key] + \'" in JSON: \' + JSON.stringify(data[dataObj]));\r\n throw \'Received an unexpected JSON object. See logs for more information.\';\r\n }\r\n }\r\n if (typeof compartment != \'undefined\' && compartment != \'\') objectBuffer[\'compartment\'] = compartment;\r\n returnBuffer.push(objectBuffer);\r\n }\r\n return returnBuffer;\r\n }\r\n\r\n try {\r\n if (httpMethod === \'get\') {\r\n return data[keys];\r\n } else {\r\n if (data.length === 0) {\r\n return 0;\r\n }\r\n data = data[0][keys];\r\n return data[data.length - 1][\'value\'];\r\n }\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not find key "\' + keys + \'" in JSON: \' + JSON.stringify(data));\r\n throw \'Could not find required key in JSON object. See logs for more information.\';\r\n }\r\n };\r\n}\r\n\r\n\r\nconst params = JSON.parse(value);\r\nvalidateZabbixParams([\'tenancy_ocid\', \'user_ocid\', \'private_key\', \'fingerprint\', \'api_host\', \'db_id\', \'http_status_code\'], params);\r\nvar oci = new OCI(\'Autonomous DB\', \'Get state\', params);\r\n\r\nreturn oci.extractData(\'get\', oci.executeRequest(\'get\', \'/20160918/autonomousDatabases/\' + encodeURIComponent(params[\'db_id\']), \'\'), \'lifecycleState\');','','0','','','','','0',NULL,'Gets the autonomous database state.','0','7d','0','',NULL,'10s','','','','200','1','0','','','0','0','0','0','0','0','0','48d69be6970c41fcb110f18e18ff6387','0','2','0'),
('46849','21','','10615','Get metrics','oci.block.volume.metrics.get','1m','0','0','0','4','','','','',NULL,NULL,'function validateZabbixParams(requiredParams, allParams) {\r\n requiredParams.forEach(function (field) {\r\n if (typeof allParams !== \'object\' || typeof allParams[field] === \'undefined\' || allParams[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n}\r\n\r\nfunction OCI(service, action, params) {\r\n this.zabbixLogPrefix = \'[ OCI ] [ \' + service + \' ] [ \' + action + \' ]\';\r\n this.request = new HttpRequest();\r\n\r\n this.hash = function (string) {\r\n return sha256(string);\r\n };\r\n\r\n this.sign = function (string) {\r\n return sign(\'sha256\', params[\'private_key\'], string);\r\n };\r\n\r\n this.encode = function (hash) {\r\n const hexArr = hash.match(/.{1,2}/g);\r\n var uInt8Array = new Uint8Array(hexArr.length);\r\n hexArr.forEach(function (hex, idx) {\r\n uInt8Array[idx] = parseInt(hex, 16);\r\n });\r\n return btoa(uInt8Array);\r\n };\r\n\r\n this.getDate = function () {\r\n const weekdayShortList = [\'Sun\', \'Mon\', \'Tue\', \'Wed\', \'Thu\', \'Fri\', \'Sat\'];\r\n const monthShortList = [\'jan\', \'feb\', \'mar\', \'apr\', \'may\', \'jun\', \'jul\', \'aug\', \'sep\', \'oct\', \'nov\', \'dec\'];\r\n const today = new Date();\r\n return weekdayShortList[today.getUTCDay()] + \', \' + today.getUTCDate() + \' \' + monthShortList[today.getUTCMonth()] + \' \' + today.getUTCFullYear() + \' \' + today.getUTCHours() + \':\' + today.getUTCMinutes() + \':\' + today.getUTCSeconds() + \' GMT\';\r\n };\r\n\r\n this.executeRequest = function (httpMethod, apiPath, apiParams, mql, namespace) {\r\n var headers = \'(request-target) date host\';\r\n const contentTypeHeader = \'content-type: application/json\';\r\n const dateHeader = \'date: \' + this.getDate();\r\n const hostHeader = \'host: \' + params[\'api_host\'];\r\n const requestTarget = \'(request-target): \' + httpMethod + \' \' + apiPath + apiParams;\r\n var signingString = requestTarget + \'\\n\' + dateHeader + \'\\n\' + hostHeader;\r\n var reqHeaders = [contentTypeHeader, dateHeader];\r\n\r\n if (httpMethod === \'post\') {\r\n var body = JSON.stringify({\r\n \'namespace\': namespace,\r\n \'query\': mql\r\n });\r\n headers = headers + \' x-content-sha256 content-type content-length\';\r\n const bodyHeader = \'x-content-sha256: \' + this.encode(this.hash(body));\r\n const bodyLengthHeader = \'content-length: \' + body.length;\r\n signingString = signingString + \'\\n\' + bodyHeader + \'\\n\' + contentTypeHeader + \'\\n\' + bodyLengthHeader;\r\n reqHeaders.push(bodyHeader, bodyLengthHeader);\r\n }\r\n\r\n const signature = this.encode(this.sign(signingString));\r\n\r\n reqHeaders.push(\'Authorization: Signature version="1",keyId="\' + params[\'tenancy_ocid\'] + \'/\' + params[\'user_ocid\'] + \'/\' + params[\'fingerprint\'] + \'",algorithm="rsa-sha256",headers="\' + headers + \'",signature="\' + signature + \'"\');\r\n for (var header = 0, headerLength = reqHeaders.length; header < headerLength; header++) {\r\n this.request.addHeader(reqHeaders[header]);\r\n }\r\n\r\n if (params[\'http_proxy\']) {\r\n this.request.setProxy(params[\'http_proxy\']);\r\n Zabbix.log(4, this.zabbixLogPrefix + \' Using http proxy: \' + params[\'http_proxy\']);\r\n }\r\n\r\n if (httpMethod === \'post\') {\r\n var apiRateLimitExceeded = false;\r\n do {\r\n const response = this.request.post(\'https://\' + params[\'api_host\'] + apiPath + apiParams, body);\r\n\r\n try {\r\n if (JSON.parse(response)[\'code\'] === \'TooManyRequests\') {\r\n\r\n apiRateLimitExceeded = true;\r\n Zabbix.sleep(1000);\r\n } else {\r\n apiRateLimitExceeded = false;\r\n }\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not parse the response: \' + JSON.stringify(response));\r\n throw \'Could not parse the response. See logs for more information.\';\r\n }\r\n } while (apiRateLimitExceeded);\r\n } else {\r\n const response = this.request.get(\'https://\' + params[\'api_host\'] + apiPath + apiParams);\r\n }\r\n\r\n this.request.clearHeader();\r\n\r\n if (this.request.getStatus() === parseInt(params[\'http_status_code\'])) {\r\n return response;\r\n } else {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Unexpected HTTP response code: \' + this.request.getStatus());\r\n throw \'Unexpected HTTP response code: \' + this.request.getStatus();\r\n }\r\n };\r\n\r\n this.extractData = function (httpMethod, data, keys, compartment) {\r\n try {\r\n data = JSON.parse(data);\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not parse the received JSON object: \' + data);\r\n throw \'Could not parse received JSON object. See logs for more information.\';\r\n }\r\n\r\n if (typeof keys == \'object\') {\r\n var returnBuffer = [];\r\n for (var dataObj = 0, dataLength = data.length; dataObj < dataLength; dataObj++) {\r\n\r\n var objectBuffer = {};\r\n for (var key = 0, keysLength = keys.length; key < keysLength; key++) {\r\n if (data[dataObj][keys[key]] || data[dataObj][keys[key]] == null) {\r\n objectBuffer[keys[key].match(/^[a-z]+$|[A-Z][a-z]+$/)[0].toLowerCase()] = data[dataObj][keys[key]];\r\n } else {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Received an unexpected JSON object. Could not get value for key "\' + keys[key] + \'" in JSON: \' + JSON.stringify(data[dataObj]));\r\n throw \'Received an unexpected JSON object. See logs for more information.\';\r\n }\r\n }\r\n if (typeof compartment != \'undefined\' && compartment != \'\') objectBuffer[\'compartment\'] = compartment;\r\n returnBuffer.push(objectBuffer);\r\n }\r\n return returnBuffer;\r\n }\r\n\r\n try {\r\n if (httpMethod === \'get\') {\r\n return data[keys];\r\n } else {\r\n if (data.length === 0) {\r\n return 0;\r\n }\r\n data = data[0][keys];\r\n return data[data.length - 1][\'value\'];\r\n }\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not find key "\' + keys + \'" in JSON: \' + JSON.stringify(data));\r\n throw \'Could not find required key in JSON object. See logs for more information.\';\r\n }\r\n };\r\n}\r\n\r\nfunction buildMql(id, metrics, defaultStatistic, resourceType) {\r\n resourceType = resourceType === \'\' || resourceType === undefined ? \'resourceId\' : resourceType;\r\n this.query = \'[\' + params[\'req_interval\'] + \'m]{\' + resourceType + \'=\' + id + \'}.\';\r\n\r\n for (var i = 0, metricsLength = metrics.length; i < metricsLength; i++) {\r\n const metric = ((Array.isArray(metrics[i]) ? metrics[i] : [metrics[i], defaultStatistic]));\r\n metrics[i] = [metric[0], this.query + metric[1]];\r\n }\r\n}\r\n\r\n\r\nconst params = JSON.parse(value);\r\nvalidateZabbixParams([\'tenancy_ocid\', \'user_ocid\', \'private_key\', \'fingerprint\', \'api_host\', \'volume_id\', \'http_status_code\', \'req_interval\', \'compartment_id\'], params);\r\nvar oci = new OCI(\'Block volume\', \'Get metrics\', params);\r\n\r\nconst metrics = [\r\n \'VolumeReadThroughput\',\r\n \'VolumeWriteThroughput\',\r\n \'VolumeReadOps\',\r\n \'VolumeWriteOps\',\r\n [\'VolumeThrottledIOs\', \'sum\'],\r\n \'VolumeGuaranteedVPUsPerGB\',\r\n \'VolumeGuaranteedIOPS\',\r\n \'VolumeGuaranteedThroughput\'\r\n];\r\nbuildMql(params[\'volume_id\'], metrics, \'mean\');\r\n\r\nvar result = {};\r\nfor (var i = 0, metricsLength = metrics.length; i < metricsLength; i++) {\r\n result[metrics[i][0]] = oci.extractData(\'post\', oci.executeRequest(\'post\', \'/20180401/metrics/actions/summarizeMetricsData\', \'?compartmentId=\' + encodeURIComponent(params[\'compartment_id\']), metrics[i][0] + metrics[i][1] + \'()\', \'oci_blockstore\'), \'aggregatedDatapoints\');\r\n}\r\nreturn JSON.stringify(result);','','0','','','','','0',NULL,'Gets block volume metrics.','0','7d','0','',NULL,'30s','','','','200','1','0','','','0','0','0','0','0','0','0','5c1d0fd1686e4c74b33dbe12956d7b7c','0','2','0'),
('46850','21','','10615','State','oci.block.volume.state','1m','31d','365d','0','3','','','','',NULL,'1198','function validateZabbixParams(requiredParams, allParams) {\r\n requiredParams.forEach(function (field) {\r\n if (typeof allParams !== \'object\' || typeof allParams[field] === \'undefined\' || allParams[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n}\r\n\r\nfunction OCI(service, action, params) {\r\n this.zabbixLogPrefix = \'[ OCI ] [ \' + service + \' ] [ \' + action + \' ]\';\r\n this.request = new HttpRequest();\r\n\r\n this.hash = function (string) {\r\n return sha256(string);\r\n };\r\n\r\n this.sign = function (string) {\r\n return sign(\'sha256\', params[\'private_key\'], string);\r\n };\r\n\r\n this.encode = function (hash) {\r\n const hexArr = hash.match(/.{1,2}/g);\r\n var uInt8Array = new Uint8Array(hexArr.length);\r\n hexArr.forEach(function (hex, idx) {\r\n uInt8Array[idx] = parseInt(hex, 16);\r\n });\r\n return btoa(uInt8Array);\r\n };\r\n\r\n this.getDate = function () {\r\n const weekdayShortList = [\'Sun\', \'Mon\', \'Tue\', \'Wed\', \'Thu\', \'Fri\', \'Sat\'];\r\n const monthShortList = [\'jan\', \'feb\', \'mar\', \'apr\', \'may\', \'jun\', \'jul\', \'aug\', \'sep\', \'oct\', \'nov\', \'dec\'];\r\n const today = new Date();\r\n return weekdayShortList[today.getUTCDay()] + \', \' + today.getUTCDate() + \' \' + monthShortList[today.getUTCMonth()] + \' \' + today.getUTCFullYear() + \' \' + today.getUTCHours() + \':\' + today.getUTCMinutes() + \':\' + today.getUTCSeconds() + \' GMT\';\r\n };\r\n\r\n this.executeRequest = function (httpMethod, apiPath, apiParams, mql, namespace) {\r\n var headers = \'(request-target) date host\';\r\n const contentTypeHeader = \'content-type: application/json\';\r\n const dateHeader = \'date: \' + this.getDate();\r\n const hostHeader = \'host: \' + params[\'api_host\'];\r\n const requestTarget = \'(request-target): \' + httpMethod + \' \' + apiPath + apiParams;\r\n var signingString = requestTarget + \'\\n\' + dateHeader + \'\\n\' + hostHeader;\r\n var reqHeaders = [contentTypeHeader, dateHeader];\r\n\r\n if (httpMethod === \'post\') {\r\n var body = JSON.stringify({\r\n \'namespace\': namespace,\r\n \'query\': mql\r\n });\r\n headers = headers + \' x-content-sha256 content-type content-length\';\r\n const bodyHeader = \'x-content-sha256: \' + this.encode(this.hash(body));\r\n const bodyLengthHeader = \'content-length: \' + body.length;\r\n signingString = signingString + \'\\n\' + bodyHeader + \'\\n\' + contentTypeHeader + \'\\n\' + bodyLengthHeader;\r\n reqHeaders.push(bodyHeader, bodyLengthHeader);\r\n }\r\n\r\n const signature = this.encode(this.sign(signingString));\r\n\r\n reqHeaders.push(\'Authorization: Signature version="1",keyId="\' + params[\'tenancy_ocid\'] + \'/\' + params[\'user_ocid\'] + \'/\' + params[\'fingerprint\'] + \'",algorithm="rsa-sha256",headers="\' + headers + \'",signature="\' + signature + \'"\');\r\n for (var header = 0, headerLength = reqHeaders.length; header < headerLength; header++) {\r\n this.request.addHeader(reqHeaders[header]);\r\n }\r\n\r\n if (params[\'http_proxy\']) {\r\n this.request.setProxy(params[\'http_proxy\']);\r\n Zabbix.log(4, this.zabbixLogPrefix + \' Using http proxy: \' + params[\'http_proxy\']);\r\n }\r\n\r\n if (httpMethod === \'post\') {\r\n var apiRateLimitExceeded = false;\r\n do {\r\n const response = this.request.post(\'https://\' + params[\'api_host\'] + apiPath + apiParams, body);\r\n\r\n try {\r\n if (JSON.parse(response)[\'code\'] === \'TooManyRequests\') {\r\n\r\n apiRateLimitExceeded = true;\r\n Zabbix.sleep(1000);\r\n } else {\r\n apiRateLimitExceeded = false;\r\n }\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not parse the response: \' + JSON.stringify(response));\r\n throw \'Could not parse the response. See logs for more information.\';\r\n }\r\n } while (apiRateLimitExceeded);\r\n } else {\r\n const response = this.request.get(\'https://\' + params[\'api_host\'] + apiPath + apiParams);\r\n }\r\n\r\n this.request.clearHeader();\r\n\r\n if (this.request.getStatus() === parseInt(params[\'http_status_code\'])) {\r\n return response;\r\n } else {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Unexpected HTTP response code: \' + this.request.getStatus());\r\n throw \'Unexpected HTTP response code: \' + this.request.getStatus();\r\n }\r\n };\r\n\r\n this.extractData = function (httpMethod, data, keys, compartment) {\r\n try {\r\n data = JSON.parse(data);\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not parse the received JSON object: \' + data);\r\n throw \'Could not parse received JSON object. See logs for more information.\';\r\n }\r\n\r\n if (typeof keys == \'object\') {\r\n var returnBuffer = [];\r\n for (var dataObj = 0, dataLength = data.length; dataObj < dataLength; dataObj++) {\r\n\r\n var objectBuffer = {};\r\n for (var key = 0, keysLength = keys.length; key < keysLength; key++) {\r\n if (data[dataObj][keys[key]] || data[dataObj][keys[key]] == null) {\r\n objectBuffer[keys[key].match(/^[a-z]+$|[A-Z][a-z]+$/)[0].toLowerCase()] = data[dataObj][keys[key]];\r\n } else {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Received an unexpected JSON object. Could not get value for key "\' + keys[key] + \'" in JSON: \' + JSON.stringify(data[dataObj]));\r\n throw \'Received an unexpected JSON object. See logs for more information.\';\r\n }\r\n }\r\n if (typeof compartment != \'undefined\' && compartment != \'\') objectBuffer[\'compartment\'] = compartment;\r\n returnBuffer.push(objectBuffer);\r\n }\r\n return returnBuffer;\r\n }\r\n\r\n try {\r\n if (httpMethod === \'get\') {\r\n return data[keys];\r\n } else {\r\n if (data.length === 0) {\r\n return 0;\r\n }\r\n data = data[0][keys];\r\n return data[data.length - 1][\'value\'];\r\n }\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not find key "\' + keys + \'" in JSON: \' + JSON.stringify(data));\r\n throw \'Could not find required key in JSON object. See logs for more information.\';\r\n }\r\n };\r\n}\r\n\r\n\r\nconst params = JSON.parse(value);\r\nvalidateZabbixParams([\'tenancy_ocid\', \'user_ocid\', \'private_key\', \'fingerprint\', \'api_host\', \'volume_id\', \'http_status_code\'], params);\r\nvar oci = new OCI(\'Block volume\', \'Get volume state\', params);\r\n\r\nreturn oci.extractData(\'get\', oci.executeRequest(\'get\', \'/20160918/volumes/\' + encodeURIComponent(params[\'volume_id\']), \'\'), \'lifecycleState\');','','0','','','','','0',NULL,'Gets the block volume state.','0','7d','0','',NULL,'10s','','','','200','1','0','','','0','0','0','0','0','0','0','4fdab3067ada41219c8208862e7c8b14','0','2','0'),
('46851','21','','10616','Get metrics','oci.boot.volume.metrics.get','1m','0','0','0','4','','','','',NULL,NULL,'function validateZabbixParams(requiredParams, allParams) {\r\n requiredParams.forEach(function (field) {\r\n if (typeof allParams !== \'object\' || typeof allParams[field] === \'undefined\' || allParams[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n}\r\n\r\nfunction OCI(service, action, params) {\r\n this.zabbixLogPrefix = \'[ OCI ] [ \' + service + \' ] [ \' + action + \' ]\';\r\n this.request = new HttpRequest();\r\n\r\n this.hash = function (string) {\r\n return sha256(string);\r\n };\r\n\r\n this.sign = function (string) {\r\n return sign(\'sha256\', params[\'private_key\'], string);\r\n };\r\n\r\n this.encode = function (hash) {\r\n const hexArr = hash.match(/.{1,2}/g);\r\n var uInt8Array = new Uint8Array(hexArr.length);\r\n hexArr.forEach(function (hex, idx) {\r\n uInt8Array[idx] = parseInt(hex, 16);\r\n });\r\n return btoa(uInt8Array);\r\n };\r\n\r\n this.getDate = function () {\r\n const weekdayShortList = [\'Sun\', \'Mon\', \'Tue\', \'Wed\', \'Thu\', \'Fri\', \'Sat\'];\r\n const monthShortList = [\'jan\', \'feb\', \'mar\', \'apr\', \'may\', \'jun\', \'jul\', \'aug\', \'sep\', \'oct\', \'nov\', \'dec\'];\r\n const today = new Date();\r\n return weekdayShortList[today.getUTCDay()] + \', \' + today.getUTCDate() + \' \' + monthShortList[today.getUTCMonth()] + \' \' + today.getUTCFullYear() + \' \' + today.getUTCHours() + \':\' + today.getUTCMinutes() + \':\' + today.getUTCSeconds() + \' GMT\';\r\n };\r\n\r\n this.executeRequest = function (httpMethod, apiPath, apiParams, mql, namespace) {\r\n var headers = \'(request-target) date host\';\r\n const contentTypeHeader = \'content-type: application/json\';\r\n const dateHeader = \'date: \' + this.getDate();\r\n const hostHeader = \'host: \' + params[\'api_host\'];\r\n const requestTarget = \'(request-target): \' + httpMethod + \' \' + apiPath + apiParams;\r\n var signingString = requestTarget + \'\\n\' + dateHeader + \'\\n\' + hostHeader;\r\n var reqHeaders = [contentTypeHeader, dateHeader];\r\n\r\n if (httpMethod === \'post\') {\r\n var body = JSON.stringify({\r\n \'namespace\': namespace,\r\n \'query\': mql\r\n });\r\n headers = headers + \' x-content-sha256 content-type content-length\';\r\n const bodyHeader = \'x-content-sha256: \' + this.encode(this.hash(body));\r\n const bodyLengthHeader = \'content-length: \' + body.length;\r\n signingString = signingString + \'\\n\' + bodyHeader + \'\\n\' + contentTypeHeader + \'\\n\' + bodyLengthHeader;\r\n reqHeaders.push(bodyHeader, bodyLengthHeader);\r\n }\r\n\r\n const signature = this.encode(this.sign(signingString));\r\n\r\n reqHeaders.push(\'Authorization: Signature version="1",keyId="\' + params[\'tenancy_ocid\'] + \'/\' + params[\'user_ocid\'] + \'/\' + params[\'fingerprint\'] + \'",algorithm="rsa-sha256",headers="\' + headers + \'",signature="\' + signature + \'"\');\r\n for (var header = 0, headerLength = reqHeaders.length; header < headerLength; header++) {\r\n this.request.addHeader(reqHeaders[header]);\r\n }\r\n\r\n if (params[\'http_proxy\']) {\r\n this.request.setProxy(params[\'http_proxy\']);\r\n Zabbix.log(4, this.zabbixLogPrefix + \' Using http proxy: \' + params[\'http_proxy\']);\r\n }\r\n\r\n if (httpMethod === \'post\') {\r\n var apiRateLimitExceeded = false;\r\n do {\r\n const response = this.request.post(\'https://\' + params[\'api_host\'] + apiPath + apiParams, body);\r\n\r\n try {\r\n if (JSON.parse(response)[\'code\'] === \'TooManyRequests\') {\r\n\r\n apiRateLimitExceeded = true;\r\n Zabbix.sleep(1000);\r\n } else {\r\n apiRateLimitExceeded = false;\r\n }\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not parse the response: \' + JSON.stringify(response));\r\n throw \'Could not parse the response. See logs for more information.\';\r\n }\r\n } while (apiRateLimitExceeded);\r\n } else {\r\n const response = this.request.get(\'https://\' + params[\'api_host\'] + apiPath + apiParams);\r\n }\r\n\r\n this.request.clearHeader();\r\n\r\n if (this.request.getStatus() === parseInt(params[\'http_status_code\'])) {\r\n return response;\r\n } else {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Unexpected HTTP response code: \' + this.request.getStatus());\r\n throw \'Unexpected HTTP response code: \' + this.request.getStatus();\r\n }\r\n };\r\n\r\n this.extractData = function (httpMethod, data, keys, compartment) {\r\n try {\r\n data = JSON.parse(data);\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not parse the received JSON object: \' + data);\r\n throw \'Could not parse received JSON object. See logs for more information.\';\r\n }\r\n\r\n if (typeof keys == \'object\') {\r\n var returnBuffer = [];\r\n for (var dataObj = 0, dataLength = data.length; dataObj < dataLength; dataObj++) {\r\n\r\n var objectBuffer = {};\r\n for (var key = 0, keysLength = keys.length; key < keysLength; key++) {\r\n if (data[dataObj][keys[key]] || data[dataObj][keys[key]] == null) {\r\n objectBuffer[keys[key].match(/^[a-z]+$|[A-Z][a-z]+$/)[0].toLowerCase()] = data[dataObj][keys[key]];\r\n } else {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Received an unexpected JSON object. Could not get value for key "\' + keys[key] + \'" in JSON: \' + JSON.stringify(data[dataObj]));\r\n throw \'Received an unexpected JSON object. See logs for more information.\';\r\n }\r\n }\r\n if (typeof compartment != \'undefined\' && compartment != \'\') objectBuffer[\'compartment\'] = compartment;\r\n returnBuffer.push(objectBuffer);\r\n }\r\n return returnBuffer;\r\n }\r\n\r\n try {\r\n if (httpMethod === \'get\') {\r\n return data[keys];\r\n } else {\r\n if (data.length === 0) {\r\n return 0;\r\n }\r\n data = data[0][keys];\r\n return data[data.length - 1][\'value\'];\r\n }\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not find key "\' + keys + \'" in JSON: \' + JSON.stringify(data));\r\n throw \'Could not find required key in JSON object. See logs for more information.\';\r\n }\r\n };\r\n}\r\n\r\nfunction buildMql(id, metrics, defaultStatistic, resourceType) {\r\n resourceType = resourceType === \'\' || resourceType === undefined ? \'resourceId\' : resourceType;\r\n this.query = \'[\' + params[\'req_interval\'] + \'m]{\' + resourceType + \'=\' + id + \'}.\';\r\n\r\n for (var i = 0, metricsLength = metrics.length; i < metricsLength; i++) {\r\n const metric = ((Array.isArray(metrics[i]) ? metrics[i] : [metrics[i], defaultStatistic]));\r\n metrics[i] = [metric[0], this.query + metric[1]];\r\n }\r\n}\r\n\r\n\r\nconst params = JSON.parse(value);\r\nvalidateZabbixParams([\'tenancy_ocid\', \'user_ocid\', \'private_key\', \'fingerprint\', \'api_host\', \'volume_id\', \'http_status_code\', \'req_interval\', \'compartment_id\'], params);\r\nvar oci = new OCI(\'Boot volume\', \'Get metrics\', params);\r\n\r\nconst metrics = [\r\n \'VolumeReadThroughput\',\r\n \'VolumeWriteThroughput\',\r\n \'VolumeReadOps\',\r\n \'VolumeWriteOps\',\r\n [\'VolumeThrottledIOs\', \'sum\'],\r\n \'VolumeGuaranteedVPUsPerGB\',\r\n \'VolumeGuaranteedIOPS\',\r\n \'VolumeGuaranteedThroughput\'\r\n];\r\nbuildMql(params[\'volume_id\'], metrics, \'mean\');\r\n\r\nvar result = {};\r\nfor (var i = 0, metricsLength = metrics.length; i < metricsLength; i++) {\r\n result[metrics[i][0]] = oci.extractData(\'post\', oci.executeRequest(\'post\', \'/20180401/metrics/actions/summarizeMetricsData\', \'?compartmentId=\' + encodeURIComponent(params[\'compartment_id\']), metrics[i][0] + metrics[i][1] + \'()\', \'oci_blockstore\'), \'aggregatedDatapoints\');\r\n}\r\nreturn JSON.stringify(result);','','0','','','','','0',NULL,'Gets boot volume metrics.','0','7d','0','',NULL,'30s','','','','200','1','0','','','0','0','0','0','0','0','0','388e89b8e68149438d714237e785ccde','0','2','0'),
('46852','21','','10616','State','oci.boot.volume.state','1m','31d','365d','0','3','','','','',NULL,'1199','function validateZabbixParams(requiredParams, allParams) {\r\n requiredParams.forEach(function (field) {\r\n if (typeof allParams !== \'object\' || typeof allParams[field] === \'undefined\' || allParams[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n}\r\n\r\nfunction OCI(service, action, params) {\r\n this.zabbixLogPrefix = \'[ OCI ] [ \' + service + \' ] [ \' + action + \' ]\';\r\n this.request = new HttpRequest();\r\n\r\n this.hash = function (string) {\r\n return sha256(string);\r\n };\r\n\r\n this.sign = function (string) {\r\n return sign(\'sha256\', params[\'private_key\'], string);\r\n };\r\n\r\n this.encode = function (hash) {\r\n const hexArr = hash.match(/.{1,2}/g);\r\n var uInt8Array = new Uint8Array(hexArr.length);\r\n hexArr.forEach(function (hex, idx) {\r\n uInt8Array[idx] = parseInt(hex, 16);\r\n });\r\n return btoa(uInt8Array);\r\n };\r\n\r\n this.getDate = function () {\r\n const weekdayShortList = [\'Sun\', \'Mon\', \'Tue\', \'Wed\', \'Thu\', \'Fri\', \'Sat\'];\r\n const monthShortList = [\'jan\', \'feb\', \'mar\', \'apr\', \'may\', \'jun\', \'jul\', \'aug\', \'sep\', \'oct\', \'nov\', \'dec\'];\r\n const today = new Date();\r\n return weekdayShortList[today.getUTCDay()] + \', \' + today.getUTCDate() + \' \' + monthShortList[today.getUTCMonth()] + \' \' + today.getUTCFullYear() + \' \' + today.getUTCHours() + \':\' + today.getUTCMinutes() + \':\' + today.getUTCSeconds() + \' GMT\';\r\n };\r\n\r\n this.executeRequest = function (httpMethod, apiPath, apiParams, mql, namespace) {\r\n var headers = \'(request-target) date host\';\r\n const contentTypeHeader = \'content-type: application/json\';\r\n const dateHeader = \'date: \' + this.getDate();\r\n const hostHeader = \'host: \' + params[\'api_host\'];\r\n const requestTarget = \'(request-target): \' + httpMethod + \' \' + apiPath + apiParams;\r\n var signingString = requestTarget + \'\\n\' + dateHeader + \'\\n\' + hostHeader;\r\n var reqHeaders = [contentTypeHeader, dateHeader];\r\n\r\n if (httpMethod === \'post\') {\r\n var body = JSON.stringify({\r\n \'namespace\': namespace,\r\n \'query\': mql\r\n });\r\n headers = headers + \' x-content-sha256 content-type content-length\';\r\n const bodyHeader = \'x-content-sha256: \' + this.encode(this.hash(body));\r\n const bodyLengthHeader = \'content-length: \' + body.length;\r\n signingString = signingString + \'\\n\' + bodyHeader + \'\\n\' + contentTypeHeader + \'\\n\' + bodyLengthHeader;\r\n reqHeaders.push(bodyHeader, bodyLengthHeader);\r\n }\r\n\r\n const signature = this.encode(this.sign(signingString));\r\n\r\n reqHeaders.push(\'Authorization: Signature version="1",keyId="\' + params[\'tenancy_ocid\'] + \'/\' + params[\'user_ocid\'] + \'/\' + params[\'fingerprint\'] + \'",algorithm="rsa-sha256",headers="\' + headers + \'",signature="\' + signature + \'"\');\r\n for (var header = 0, headerLength = reqHeaders.length; header < headerLength; header++) {\r\n this.request.addHeader(reqHeaders[header]);\r\n }\r\n\r\n if (params[\'http_proxy\']) {\r\n this.request.setProxy(params[\'http_proxy\']);\r\n Zabbix.log(4, this.zabbixLogPrefix + \' Using http proxy: \' + params[\'http_proxy\']);\r\n }\r\n\r\n if (httpMethod === \'post\') {\r\n var apiRateLimitExceeded = false;\r\n do {\r\n const response = this.request.post(\'https://\' + params[\'api_host\'] + apiPath + apiParams, body);\r\n\r\n try {\r\n if (JSON.parse(response)[\'code\'] === \'TooManyRequests\') {\r\n\r\n apiRateLimitExceeded = true;\r\n Zabbix.sleep(1000);\r\n } else {\r\n apiRateLimitExceeded = false;\r\n }\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not parse the response: \' + JSON.stringify(response));\r\n throw \'Could not parse the response. See logs for more information.\';\r\n }\r\n } while (apiRateLimitExceeded);\r\n } else {\r\n const response = this.request.get(\'https://\' + params[\'api_host\'] + apiPath + apiParams);\r\n }\r\n\r\n this.request.clearHeader();\r\n\r\n if (this.request.getStatus() === parseInt(params[\'http_status_code\'])) {\r\n return response;\r\n } else {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Unexpected HTTP response code: \' + this.request.getStatus());\r\n throw \'Unexpected HTTP response code: \' + this.request.getStatus();\r\n }\r\n };\r\n\r\n this.extractData = function (httpMethod, data, keys, compartment) {\r\n try {\r\n data = JSON.parse(data);\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not parse the received JSON object: \' + data);\r\n throw \'Could not parse received JSON object. See logs for more information.\';\r\n }\r\n\r\n if (typeof keys == \'object\') {\r\n var returnBuffer = [];\r\n for (var dataObj = 0, dataLength = data.length; dataObj < dataLength; dataObj++) {\r\n\r\n var objectBuffer = {};\r\n for (var key = 0, keysLength = keys.length; key < keysLength; key++) {\r\n if (data[dataObj][keys[key]] || data[dataObj][keys[key]] == null) {\r\n objectBuffer[keys[key].match(/^[a-z]+$|[A-Z][a-z]+$/)[0].toLowerCase()] = data[dataObj][keys[key]];\r\n } else {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Received an unexpected JSON object. Could not get value for key "\' + keys[key] + \'" in JSON: \' + JSON.stringify(data[dataObj]));\r\n throw \'Received an unexpected JSON object. See logs for more information.\';\r\n }\r\n }\r\n if (typeof compartment != \'undefined\' && compartment != \'\') objectBuffer[\'compartment\'] = compartment;\r\n returnBuffer.push(objectBuffer);\r\n }\r\n return returnBuffer;\r\n }\r\n\r\n try {\r\n if (httpMethod === \'get\') {\r\n return data[keys];\r\n } else {\r\n if (data.length === 0) {\r\n return 0;\r\n }\r\n data = data[0][keys];\r\n return data[data.length - 1][\'value\'];\r\n }\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not find key "\' + keys + \'" in JSON: \' + JSON.stringify(data));\r\n throw \'Could not find required key in JSON object. See logs for more information.\';\r\n }\r\n };\r\n}\r\n\r\n\r\nconst params = JSON.parse(value);\r\nvalidateZabbixParams([\'tenancy_ocid\', \'user_ocid\', \'private_key\', \'fingerprint\', \'api_host\', \'volume_id\', \'http_status_code\'], params);\r\nvar oci = new OCI(\'Boot volume\', \'Get volume state\', params);\r\n\r\nreturn oci.extractData(\'get\', oci.executeRequest(\'get\', \'/20160918/bootVolumes/\' + encodeURIComponent(params[\'volume_id\']), \'\'), \'lifecycleState\');','','0','','','','','0',NULL,'Gets the boot volume state.','0','7d','0','',NULL,'10s','','','','200','1','0','','','0','0','0','0','0','0','0','3f0e4bed1fd14293b40b23595f01ebb1','0','2','0'),
('46853','21','','10618','Get instance availability','oci.compute.availability.get','5m','31d','365d','0','3','','','','',NULL,'1200','function validateZabbixParams(requiredParams, allParams) {\r\n requiredParams.forEach(function (field) {\r\n if (typeof allParams !== \'object\' || typeof allParams[field] === \'undefined\' || allParams[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n}\r\n\r\nfunction OCI(service, action, params) {\r\n this.zabbixLogPrefix = \'[ OCI ] [ \' + service + \' ] [ \' + action + \' ]\';\r\n this.request = new HttpRequest();\r\n\r\n this.hash = function (string) {\r\n return sha256(string);\r\n };\r\n\r\n this.sign = function (string) {\r\n return sign(\'sha256\', params[\'private_key\'], string);\r\n };\r\n\r\n this.encode = function (hash) {\r\n const hexArr = hash.match(/.{1,2}/g);\r\n var uInt8Array = new Uint8Array(hexArr.length);\r\n hexArr.forEach(function (hex, idx) {\r\n uInt8Array[idx] = parseInt(hex, 16);\r\n });\r\n return btoa(uInt8Array);\r\n };\r\n\r\n this.getDate = function () {\r\n const weekdayShortList = [\'Sun\', \'Mon\', \'Tue\', \'Wed\', \'Thu\', \'Fri\', \'Sat\'];\r\n const monthShortList = [\'jan\', \'feb\', \'mar\', \'apr\', \'may\', \'jun\', \'jul\', \'aug\', \'sep\', \'oct\', \'nov\', \'dec\'];\r\n const today = new Date();\r\n return weekdayShortList[today.getUTCDay()] + \', \' + today.getUTCDate() + \' \' + monthShortList[today.getUTCMonth()] + \' \' + today.getUTCFullYear() + \' \' + today.getUTCHours() + \':\' + today.getUTCMinutes() + \':\' + today.getUTCSeconds() + \' GMT\';\r\n };\r\n\r\n this.executeRequest = function (httpMethod, apiPath, apiParams, mql, namespace) {\r\n var headers = \'(request-target) date host\';\r\n const contentTypeHeader = \'content-type: application/json\';\r\n const dateHeader = \'date: \' + this.getDate();\r\n const hostHeader = \'host: \' + params[\'api_host\'];\r\n const requestTarget = \'(request-target): \' + httpMethod + \' \' + apiPath + apiParams;\r\n var signingString = requestTarget + \'\\n\' + dateHeader + \'\\n\' + hostHeader;\r\n var reqHeaders = [contentTypeHeader, dateHeader];\r\n\r\n if (httpMethod === \'post\') {\r\n var body = JSON.stringify({\r\n \'namespace\': namespace,\r\n \'query\': mql\r\n });\r\n headers = headers + \' x-content-sha256 content-type content-length\';\r\n const bodyHeader = \'x-content-sha256: \' + this.encode(this.hash(body));\r\n const bodyLengthHeader = \'content-length: \' + body.length;\r\n signingString = signingString + \'\\n\' + bodyHeader + \'\\n\' + contentTypeHeader + \'\\n\' + bodyLengthHeader;\r\n reqHeaders.push(bodyHeader, bodyLengthHeader);\r\n }\r\n\r\n const signature = this.encode(this.sign(signingString));\r\n\r\n reqHeaders.push(\'Authorization: Signature version="1",keyId="\' + params[\'tenancy_ocid\'] + \'/\' + params[\'user_ocid\'] + \'/\' + params[\'fingerprint\'] + \'",algorithm="rsa-sha256",headers="\' + headers + \'",signature="\' + signature + \'"\');\r\n for (var header = 0, headerLength = reqHeaders.length; header < headerLength; header++) {\r\n this.request.addHeader(reqHeaders[header]);\r\n }\r\n\r\n if (params[\'http_proxy\']) {\r\n this.request.setProxy(params[\'http_proxy\']);\r\n Zabbix.log(4, this.zabbixLogPrefix + \' Using http proxy: \' + params[\'http_proxy\']);\r\n }\r\n\r\n if (httpMethod === \'post\') {\r\n var apiRateLimitExceeded = false;\r\n do {\r\n const response = this.request.post(\'https://\' + params[\'api_host\'] + apiPath + apiParams, body);\r\n\r\n try {\r\n if (JSON.parse(response)[\'code\'] === \'TooManyRequests\') {\r\n\r\n apiRateLimitExceeded = true;\r\n Zabbix.sleep(1000);\r\n } else {\r\n apiRateLimitExceeded = false;\r\n }\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not parse the response: \' + JSON.stringify(response));\r\n throw \'Could not parse the response. See logs for more information.\';\r\n }\r\n } while (apiRateLimitExceeded);\r\n } else {\r\n const response = this.request.get(\'https://\' + params[\'api_host\'] + apiPath + apiParams);\r\n }\r\n\r\n this.request.clearHeader();\r\n\r\n if (this.request.getStatus() === parseInt(params[\'http_status_code\'])) {\r\n return response;\r\n } else {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Unexpected HTTP response code: \' + this.request.getStatus());\r\n throw \'Unexpected HTTP response code: \' + this.request.getStatus();\r\n }\r\n };\r\n\r\n this.extractData = function (httpMethod, data, keys, compartment) {\r\n try {\r\n data = JSON.parse(data);\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not parse the received JSON object: \' + data);\r\n throw \'Could not parse received JSON object. See logs for more information.\';\r\n }\r\n\r\n if (typeof keys == \'object\') {\r\n var returnBuffer = [];\r\n for (var dataObj = 0, dataLength = data.length; dataObj < dataLength; dataObj++) {\r\n\r\n var objectBuffer = {};\r\n for (var key = 0, keysLength = keys.length; key < keysLength; key++) {\r\n if (data[dataObj][keys[key]] || data[dataObj][keys[key]] == null) {\r\n objectBuffer[keys[key].match(/^[a-z]+$|[A-Z][a-z]+$/)[0].toLowerCase()] = data[dataObj][keys[key]];\r\n } else {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Received an unexpected JSON object. Could not get value for key "\' + keys[key] + \'" in JSON: \' + JSON.stringify(data[dataObj]));\r\n throw \'Received an unexpected JSON object. See logs for more information.\';\r\n }\r\n }\r\n if (typeof compartment != \'undefined\' && compartment != \'\') objectBuffer[\'compartment\'] = compartment;\r\n returnBuffer.push(objectBuffer);\r\n }\r\n return returnBuffer;\r\n }\r\n\r\n try {\r\n if (httpMethod === \'get\') {\r\n return data[keys];\r\n } else {\r\n if (data.length === 0) {\r\n return 0;\r\n }\r\n data = data[0][keys];\r\n return data[data.length - 1][\'value\'];\r\n }\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not find key "\' + keys + \'" in JSON: \' + JSON.stringify(data));\r\n throw \'Could not find required key in JSON object. See logs for more information.\';\r\n }\r\n };\r\n}\r\n\r\n\r\nconst params = JSON.parse(value);\r\nvalidateZabbixParams([\'tenancy_ocid\', \'user_ocid\', \'private_key\', \'fingerprint\', \'api_host\', \'instance_id\', \'http_status_code\', \'req_interval\', \'compartment_id\'], params);\r\nvar oci = new OCI(\'Compute\', \'Get health\', params);\r\nconst mql = \'InstanceAccessibilityStatus[\' + params[\'req_interval\'] + \'m]{resourceId=\' + params[\'instance_id\'] + \'}.max()\';\r\n\r\nreturn JSON.stringify(oci.extractData(\'post\', oci.executeRequest(\'post\', \'/20180401/metrics/actions/summarizeMetricsData\', \'?compartmentId=\' + encodeURIComponent(params[\'compartment_id\']), mql, \'oci_compute_instance_health\'), \'aggregatedDatapoints\'));','','0','','','','','0',NULL,'The accessibility status of a virtual machine instance.\r\nA value of "1" indicates that the instance is unresponsive due to an issue with\r\nthe infrastructure or the instance itself.\r\nA value of "0" indicates that an accessibility issue has not been detected.\r\nIf the instance is stopped, then the metric does not have a value.','0','7d','0','',NULL,'10s','','','','200','1','0','','','0','0','0','0','0','0','0','657ad1d54de4454696573418f5f17f11','0','2','0'),
('46854','21','','10618','Get compute metrics','oci.compute.metrics.get','1m','0','0','0','4','','','','',NULL,NULL,'function validateZabbixParams(requiredParams, allParams) {\r\n requiredParams.forEach(function (field) {\r\n if (typeof allParams !== \'object\' || typeof allParams[field] === \'undefined\' || allParams[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n}\r\n\r\nfunction OCI(service, action, params) {\r\n this.zabbixLogPrefix = \'[ OCI ] [ \' + service + \' ] [ \' + action + \' ]\';\r\n this.request = new HttpRequest();\r\n\r\n this.hash = function (string) {\r\n return sha256(string);\r\n };\r\n\r\n this.sign = function (string) {\r\n return sign(\'sha256\', params[\'private_key\'], string);\r\n };\r\n\r\n this.encode = function (hash) {\r\n const hexArr = hash.match(/.{1,2}/g);\r\n var uInt8Array = new Uint8Array(hexArr.length);\r\n hexArr.forEach(function (hex, idx) {\r\n uInt8Array[idx] = parseInt(hex, 16);\r\n });\r\n return btoa(uInt8Array);\r\n };\r\n\r\n this.getDate = function () {\r\n const weekdayShortList = [\'Sun\', \'Mon\', \'Tue\', \'Wed\', \'Thu\', \'Fri\', \'Sat\'];\r\n const monthShortList = [\'jan\', \'feb\', \'mar\', \'apr\', \'may\', \'jun\', \'jul\', \'aug\', \'sep\', \'oct\', \'nov\', \'dec\'];\r\n const today = new Date();\r\n return weekdayShortList[today.getUTCDay()] + \', \' + today.getUTCDate() + \' \' + monthShortList[today.getUTCMonth()] + \' \' + today.getUTCFullYear() + \' \' + today.getUTCHours() + \':\' + today.getUTCMinutes() + \':\' + today.getUTCSeconds() + \' GMT\';\r\n };\r\n\r\n this.executeRequest = function (httpMethod, apiPath, apiParams, mql, namespace) {\r\n var headers = \'(request-target) date host\';\r\n const contentTypeHeader = \'content-type: application/json\';\r\n const dateHeader = \'date: \' + this.getDate();\r\n const hostHeader = \'host: \' + params[\'api_host\'];\r\n const requestTarget = \'(request-target): \' + httpMethod + \' \' + apiPath + apiParams;\r\n var signingString = requestTarget + \'\\n\' + dateHeader + \'\\n\' + hostHeader;\r\n var reqHeaders = [contentTypeHeader, dateHeader];\r\n\r\n if (httpMethod === \'post\') {\r\n var body = JSON.stringify({\r\n \'namespace\': namespace,\r\n \'query\': mql\r\n });\r\n headers = headers + \' x-content-sha256 content-type content-length\';\r\n const bodyHeader = \'x-content-sha256: \' + this.encode(this.hash(body));\r\n const bodyLengthHeader = \'content-length: \' + body.length;\r\n signingString = signingString + \'\\n\' + bodyHeader + \'\\n\' + contentTypeHeader + \'\\n\' + bodyLengthHeader;\r\n reqHeaders.push(bodyHeader, bodyLengthHeader);\r\n }\r\n\r\n const signature = this.encode(this.sign(signingString));\r\n\r\n reqHeaders.push(\'Authorization: Signature version="1",keyId="\' + params[\'tenancy_ocid\'] + \'/\' + params[\'user_ocid\'] + \'/\' + params[\'fingerprint\'] + \'",algorithm="rsa-sha256",headers="\' + headers + \'",signature="\' + signature + \'"\');\r\n for (var header = 0, headerLength = reqHeaders.length; header < headerLength; header++) {\r\n this.request.addHeader(reqHeaders[header]);\r\n }\r\n\r\n if (params[\'http_proxy\']) {\r\n this.request.setProxy(params[\'http_proxy\']);\r\n Zabbix.log(4, this.zabbixLogPrefix + \' Using http proxy: \' + params[\'http_proxy\']);\r\n }\r\n\r\n if (httpMethod === \'post\') {\r\n var apiRateLimitExceeded = false;\r\n do {\r\n const response = this.request.post(\'https://\' + params[\'api_host\'] + apiPath + apiParams, body);\r\n\r\n try {\r\n if (JSON.parse(response)[\'code\'] === \'TooManyRequests\') {\r\n\r\n apiRateLimitExceeded = true;\r\n Zabbix.sleep(1000);\r\n } else {\r\n apiRateLimitExceeded = false;\r\n }\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not parse the response: \' + JSON.stringify(response));\r\n throw \'Could not parse the response. See logs for more information.\';\r\n }\r\n } while (apiRateLimitExceeded);\r\n } else {\r\n const response = this.request.get(\'https://\' + params[\'api_host\'] + apiPath + apiParams);\r\n }\r\n\r\n this.request.clearHeader();\r\n\r\n if (this.request.getStatus() === parseInt(params[\'http_status_code\'])) {\r\n return response;\r\n } else {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Unexpected HTTP response code: \' + this.request.getStatus());\r\n throw \'Unexpected HTTP response code: \' + this.request.getStatus();\r\n }\r\n };\r\n\r\n this.extractData = function (httpMethod, data, keys, compartment) {\r\n try {\r\n data = JSON.parse(data);\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not parse the received JSON object: \' + data);\r\n throw \'Could not parse received JSON object. See logs for more information.\';\r\n }\r\n\r\n if (typeof keys == \'object\') {\r\n var returnBuffer = [];\r\n for (var dataObj = 0, dataLength = data.length; dataObj < dataLength; dataObj++) {\r\n\r\n var objectBuffer = {};\r\n for (var key = 0, keysLength = keys.length; key < keysLength; key++) {\r\n if (data[dataObj][keys[key]] || data[dataObj][keys[key]] == null) {\r\n objectBuffer[keys[key].match(/^[a-z]+$|[A-Z][a-z]+$/)[0].toLowerCase()] = data[dataObj][keys[key]];\r\n } else {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Received an unexpected JSON object. Could not get value for key "\' + keys[key] + \'" in JSON: \' + JSON.stringify(data[dataObj]));\r\n throw \'Received an unexpected JSON object. See logs for more information.\';\r\n }\r\n }\r\n if (typeof compartment != \'undefined\' && compartment != \'\') objectBuffer[\'compartment\'] = compartment;\r\n returnBuffer.push(objectBuffer);\r\n }\r\n return returnBuffer;\r\n }\r\n\r\n try {\r\n if (httpMethod === \'get\') {\r\n return data[keys];\r\n } else {\r\n if (data.length === 0) {\r\n return 0;\r\n }\r\n data = data[0][keys];\r\n return data[data.length - 1][\'value\'];\r\n }\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not find key "\' + keys + \'" in JSON: \' + JSON.stringify(data));\r\n throw \'Could not find required key in JSON object. See logs for more information.\';\r\n }\r\n };\r\n}\r\n\r\nfunction buildMql(id, metrics, defaultStatistic, resourceType) {\r\n resourceType = resourceType === \'\' || resourceType === undefined ? \'resourceId\' : resourceType;\r\n this.query = \'[\' + params[\'req_interval\'] + \'m]{\' + resourceType + \'=\' + id + \'}.\';\r\n\r\n for (var i = 0, metricsLength = metrics.length; i < metricsLength; i++) {\r\n const metric = ((Array.isArray(metrics[i]) ? metrics[i] : [metrics[i], defaultStatistic]));\r\n metrics[i] = [metric[0], this.query + metric[1]];\r\n }\r\n}\r\n\r\n\r\nconst params = JSON.parse(value);\r\nvalidateZabbixParams([\'tenancy_ocid\', \'user_ocid\', \'private_key\', \'fingerprint\', \'api_host\', \'instance_id\', \'http_status_code\', \'req_interval\', \'compartment_id\'], params);\r\nvar oci = new OCI(\'Compute\', \'Get metrics\', params);\r\n\r\nconst metrics = [\r\n [\'CpuUtilization\', \'mean\'],\r\n [\'MemoryUtilization\', \'mean\'],\r\n [\'LoadAverage\', \'mean\'],\r\n [\'MemoryAllocationStalls\', \'mean\'],\r\n \'DiskBytesRead\',\r\n \'DiskBytesWritten\',\r\n \'DiskIopsRead\',\r\n \'DiskIopsWritten\',\r\n \'NetworksBytesIn\',\r\n \'NetworksBytesOut\'\r\n];\r\nbuildMql(params[\'instance_id\'], metrics, \'rate\');\r\n\r\nvar result = {};\r\nfor (var i = 0, metricsLength = metrics.length; i < metricsLength; i++) {\r\n result[metrics[i][0]] = oci.extractData(\'post\', oci.executeRequest(\'post\', \'/20180401/metrics/actions/summarizeMetricsData\', \'?compartmentId=\' + encodeURIComponent(params[\'compartment_id\']), metrics[i][0] + metrics[i][1] + \'()\', \'oci_computeagent\'), \'aggregatedDatapoints\');\r\n}\r\nreturn JSON.stringify(result);','','0','','','','','0',NULL,'Gets compute instance metrics.','0','7d','0','',NULL,'30s','','','','200','1','0','','','0','0','0','0','0','0','0','65ff665a67374bb082f260ca473dfb1b','0','2','0'),
('46855','21','','10618','State','oci.compute.state.get','1m','31d','365d','0','3','','','','',NULL,'1201','function validateZabbixParams(requiredParams, allParams) {\r\n requiredParams.forEach(function (field) {\r\n if (typeof allParams !== \'object\' || typeof allParams[field] === \'undefined\' || allParams[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n}\r\n\r\nfunction OCI(service, action, params) {\r\n this.zabbixLogPrefix = \'[ OCI ] [ \' + service + \' ] [ \' + action + \' ]\';\r\n this.request = new HttpRequest();\r\n\r\n this.hash = function (string) {\r\n return sha256(string);\r\n };\r\n\r\n this.sign = function (string) {\r\n return sign(\'sha256\', params[\'private_key\'], string);\r\n };\r\n\r\n this.encode = function (hash) {\r\n const hexArr = hash.match(/.{1,2}/g);\r\n var uInt8Array = new Uint8Array(hexArr.length);\r\n hexArr.forEach(function (hex, idx) {\r\n uInt8Array[idx] = parseInt(hex, 16);\r\n });\r\n return btoa(uInt8Array);\r\n };\r\n\r\n this.getDate = function () {\r\n const weekdayShortList = [\'Sun\', \'Mon\', \'Tue\', \'Wed\', \'Thu\', \'Fri\', \'Sat\'];\r\n const monthShortList = [\'jan\', \'feb\', \'mar\', \'apr\', \'may\', \'jun\', \'jul\', \'aug\', \'sep\', \'oct\', \'nov\', \'dec\'];\r\n const today = new Date();\r\n return weekdayShortList[today.getUTCDay()] + \', \' + today.getUTCDate() + \' \' + monthShortList[today.getUTCMonth()] + \' \' + today.getUTCFullYear() + \' \' + today.getUTCHours() + \':\' + today.getUTCMinutes() + \':\' + today.getUTCSeconds() + \' GMT\';\r\n };\r\n\r\n this.executeRequest = function (httpMethod, apiPath, apiParams, mql, namespace) {\r\n var headers = \'(request-target) date host\';\r\n const contentTypeHeader = \'content-type: application/json\';\r\n const dateHeader = \'date: \' + this.getDate();\r\n const hostHeader = \'host: \' + params[\'api_host\'];\r\n const requestTarget = \'(request-target): \' + httpMethod + \' \' + apiPath + apiParams;\r\n var signingString = requestTarget + \'\\n\' + dateHeader + \'\\n\' + hostHeader;\r\n var reqHeaders = [contentTypeHeader, dateHeader];\r\n\r\n if (httpMethod === \'post\') {\r\n var body = JSON.stringify({\r\n \'namespace\': namespace,\r\n \'query\': mql\r\n });\r\n headers = headers + \' x-content-sha256 content-type content-length\';\r\n const bodyHeader = \'x-content-sha256: \' + this.encode(this.hash(body));\r\n const bodyLengthHeader = \'content-length: \' + body.length;\r\n signingString = signingString + \'\\n\' + bodyHeader + \'\\n\' + contentTypeHeader + \'\\n\' + bodyLengthHeader;\r\n reqHeaders.push(bodyHeader, bodyLengthHeader);\r\n }\r\n\r\n const signature = this.encode(this.sign(signingString));\r\n\r\n reqHeaders.push(\'Authorization: Signature version="1",keyId="\' + params[\'tenancy_ocid\'] + \'/\' + params[\'user_ocid\'] + \'/\' + params[\'fingerprint\'] + \'",algorithm="rsa-sha256",headers="\' + headers + \'",signature="\' + signature + \'"\');\r\n for (var header = 0, headerLength = reqHeaders.length; header < headerLength; header++) {\r\n this.request.addHeader(reqHeaders[header]);\r\n }\r\n\r\n if (params[\'http_proxy\']) {\r\n this.request.setProxy(params[\'http_proxy\']);\r\n Zabbix.log(4, this.zabbixLogPrefix + \' Using http proxy: \' + params[\'http_proxy\']);\r\n }\r\n\r\n if (httpMethod === \'post\') {\r\n var apiRateLimitExceeded = false;\r\n do {\r\n const response = this.request.post(\'https://\' + params[\'api_host\'] + apiPath + apiParams, body);\r\n\r\n try {\r\n if (JSON.parse(response)[\'code\'] === \'TooManyRequests\') {\r\n\r\n apiRateLimitExceeded = true;\r\n Zabbix.sleep(1000);\r\n } else {\r\n apiRateLimitExceeded = false;\r\n }\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not parse the response: \' + JSON.stringify(response));\r\n throw \'Could not parse the response. See logs for more information.\';\r\n }\r\n } while (apiRateLimitExceeded);\r\n } else {\r\n const response = this.request.get(\'https://\' + params[\'api_host\'] + apiPath + apiParams);\r\n }\r\n\r\n this.request.clearHeader();\r\n\r\n if (this.request.getStatus() === parseInt(params[\'http_status_code\'])) {\r\n return response;\r\n } else {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Unexpected HTTP response code: \' + this.request.getStatus());\r\n throw \'Unexpected HTTP response code: \' + this.request.getStatus();\r\n }\r\n };\r\n\r\n this.extractData = function (httpMethod, data, keys, compartment) {\r\n try {\r\n data = JSON.parse(data);\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not parse the received JSON object: \' + data);\r\n throw \'Could not parse received JSON object. See logs for more information.\';\r\n }\r\n\r\n if (typeof keys == \'object\') {\r\n var returnBuffer = [];\r\n for (var dataObj = 0, dataLength = data.length; dataObj < dataLength; dataObj++) {\r\n\r\n var objectBuffer = {};\r\n for (var key = 0, keysLength = keys.length; key < keysLength; key++) {\r\n if (data[dataObj][keys[key]] || data[dataObj][keys[key]] == null) {\r\n objectBuffer[keys[key].match(/^[a-z]+$|[A-Z][a-z]+$/)[0].toLowerCase()] = data[dataObj][keys[key]];\r\n } else {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Received an unexpected JSON object. Could not get value for key "\' + keys[key] + \'" in JSON: \' + JSON.stringify(data[dataObj]));\r\n throw \'Received an unexpected JSON object. See logs for more information.\';\r\n }\r\n }\r\n if (typeof compartment != \'undefined\' && compartment != \'\') objectBuffer[\'compartment\'] = compartment;\r\n returnBuffer.push(objectBuffer);\r\n }\r\n return returnBuffer;\r\n }\r\n\r\n try {\r\n if (httpMethod === \'get\') {\r\n return data[keys];\r\n } else {\r\n if (data.length === 0) {\r\n return 0;\r\n }\r\n data = data[0][keys];\r\n return data[data.length - 1][\'value\'];\r\n }\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not find key "\' + keys + \'" in JSON: \' + JSON.stringify(data));\r\n throw \'Could not find required key in JSON object. See logs for more information.\';\r\n }\r\n };\r\n}\r\n\r\n\r\nconst params = JSON.parse(value);\r\nvalidateZabbixParams([\'tenancy_ocid\', \'user_ocid\', \'private_key\', \'fingerprint\', \'api_host\', \'instance_id\', \'http_status_code\'], params);\r\nvar oci = new OCI(\'Compute\', \'Get state\', params);\r\n\r\nreturn oci.extractData(\'get\', oci.executeRequest(\'get\', \'/20160918/instances/\' + encodeURIComponent(params[\'instance_id\']), \'\'), \'lifecycleState\');','','0','','','','','0',NULL,'The current state of the instance.','0','7d','0','',NULL,'10s','','','','200','1','0','','','0','0','0','0','0','0','0','3c4a11c3c8fe40fca36635e2a6882816','0','2','0'),
('46856','21','','10618','Get VNICs','oci.compute.vnic.get','1m','0','0','0','4','','','','',NULL,NULL,'function validateZabbixParams(requiredParams, allParams) {\r\n requiredParams.forEach(function (field) {\r\n if (typeof allParams !== \'object\' || typeof allParams[field] === \'undefined\' || allParams[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n}\r\n\r\nfunction OCI(service, action, params) {\r\n this.zabbixLogPrefix = \'[ OCI ] [ \' + service + \' ] [ \' + action + \' ]\';\r\n this.request = new HttpRequest();\r\n\r\n this.hash = function (string) {\r\n return sha256(string);\r\n };\r\n\r\n this.sign = function (string) {\r\n return sign(\'sha256\', params[\'private_key\'], string);\r\n };\r\n\r\n this.encode = function (hash) {\r\n const hexArr = hash.match(/.{1,2}/g);\r\n var uInt8Array = new Uint8Array(hexArr.length);\r\n hexArr.forEach(function (hex, idx) {\r\n uInt8Array[idx] = parseInt(hex, 16);\r\n });\r\n return btoa(uInt8Array);\r\n };\r\n\r\n this.getDate = function () {\r\n const weekdayShortList = [\'Sun\', \'Mon\', \'Tue\', \'Wed\', \'Thu\', \'Fri\', \'Sat\'];\r\n const monthShortList = [\'jan\', \'feb\', \'mar\', \'apr\', \'may\', \'jun\', \'jul\', \'aug\', \'sep\', \'oct\', \'nov\', \'dec\'];\r\n const today = new Date();\r\n return weekdayShortList[today.getUTCDay()] + \', \' + today.getUTCDate() + \' \' + monthShortList[today.getUTCMonth()] + \' \' + today.getUTCFullYear() + \' \' + today.getUTCHours() + \':\' + today.getUTCMinutes() + \':\' + today.getUTCSeconds() + \' GMT\';\r\n };\r\n\r\n this.executeRequest = function (httpMethod, apiPath, apiParams, mql, namespace) {\r\n var headers = \'(request-target) date host\';\r\n const contentTypeHeader = \'content-type: application/json\';\r\n const dateHeader = \'date: \' + this.getDate();\r\n const hostHeader = \'host: \' + params[\'api_host\'];\r\n const requestTarget = \'(request-target): \' + httpMethod + \' \' + apiPath + apiParams;\r\n var signingString = requestTarget + \'\\n\' + dateHeader + \'\\n\' + hostHeader;\r\n var reqHeaders = [contentTypeHeader, dateHeader];\r\n\r\n if (httpMethod === \'post\') {\r\n var body = JSON.stringify({\r\n \'namespace\': namespace,\r\n \'query\': mql\r\n });\r\n headers = headers + \' x-content-sha256 content-type content-length\';\r\n const bodyHeader = \'x-content-sha256: \' + this.encode(this.hash(body));\r\n const bodyLengthHeader = \'content-length: \' + body.length;\r\n signingString = signingString + \'\\n\' + bodyHeader + \'\\n\' + contentTypeHeader + \'\\n\' + bodyLengthHeader;\r\n reqHeaders.push(bodyHeader, bodyLengthHeader);\r\n }\r\n\r\n const signature = this.encode(this.sign(signingString));\r\n\r\n reqHeaders.push(\'Authorization: Signature version="1",keyId="\' + params[\'tenancy_ocid\'] + \'/\' + params[\'user_ocid\'] + \'/\' + params[\'fingerprint\'] + \'",algorithm="rsa-sha256",headers="\' + headers + \'",signature="\' + signature + \'"\');\r\n for (var header = 0, headerLength = reqHeaders.length; header < headerLength; header++) {\r\n this.request.addHeader(reqHeaders[header]);\r\n }\r\n\r\n if (params[\'http_proxy\']) {\r\n this.request.setProxy(params[\'http_proxy\']);\r\n Zabbix.log(4, this.zabbixLogPrefix + \' Using http proxy: \' + params[\'http_proxy\']);\r\n }\r\n\r\n if (httpMethod === \'post\') {\r\n var apiRateLimitExceeded = false;\r\n do {\r\n const response = this.request.post(\'https://\' + params[\'api_host\'] + apiPath + apiParams, body);\r\n\r\n try {\r\n if (JSON.parse(response)[\'code\'] === \'TooManyRequests\') {\r\n\r\n apiRateLimitExceeded = true;\r\n Zabbix.sleep(1000);\r\n } else {\r\n apiRateLimitExceeded = false;\r\n }\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not parse the response: \' + JSON.stringify(response));\r\n throw \'Could not parse the response. See logs for more information.\';\r\n }\r\n } while (apiRateLimitExceeded);\r\n } else {\r\n const response = this.request.get(\'https://\' + params[\'api_host\'] + apiPath + apiParams);\r\n }\r\n\r\n this.request.clearHeader();\r\n\r\n if (this.request.getStatus() === parseInt(params[\'http_status_code\'])) {\r\n return response;\r\n } else {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Unexpected HTTP response code: \' + this.request.getStatus());\r\n throw \'Unexpected HTTP response code: \' + this.request.getStatus();\r\n }\r\n };\r\n\r\n this.extractData = function (httpMethod, data, keys, compartment) {\r\n try {\r\n data = JSON.parse(data);\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not parse the received JSON object: \' + data);\r\n throw \'Could not parse received JSON object. See logs for more information.\';\r\n }\r\n\r\n if (typeof keys == \'object\') {\r\n var returnBuffer = [];\r\n for (var dataObj = 0, dataLength = data.length; dataObj < dataLength; dataObj++) {\r\n\r\n var objectBuffer = {};\r\n for (var key = 0, keysLength = keys.length; key < keysLength; key++) {\r\n if (data[dataObj][keys[key]] || data[dataObj][keys[key]] == null) {\r\n objectBuffer[keys[key].match(/^[a-z]+$|[A-Z][a-z]+$/)[0].toLowerCase()] = data[dataObj][keys[key]];\r\n } else {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Received an unexpected JSON object. Could not get value for key "\' + keys[key] + \'" in JSON: \' + JSON.stringify(data[dataObj]));\r\n throw \'Received an unexpected JSON object. See logs for more information.\';\r\n }\r\n }\r\n if (typeof compartment != \'undefined\' && compartment != \'\') objectBuffer[\'compartment\'] = compartment;\r\n returnBuffer.push(objectBuffer);\r\n }\r\n return returnBuffer;\r\n }\r\n\r\n try {\r\n if (httpMethod === \'get\') {\r\n return data[keys];\r\n } else {\r\n if (data.length === 0) {\r\n return 0;\r\n }\r\n data = data[0][keys];\r\n return data[data.length - 1][\'value\'];\r\n }\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not find key "\' + keys + \'" in JSON: \' + JSON.stringify(data));\r\n throw \'Could not find required key in JSON object. See logs for more information.\';\r\n }\r\n };\r\n}\r\n\r\n\r\nconst params = JSON.parse(value);\r\nvalidateZabbixParams([\'tenancy_ocid\', \'user_ocid\', \'private_key\', \'fingerprint\', \'api_host\', \'instance_id\', \'availability_domain\', \'http_status_code\', \'compartment_id\'], params);\r\nvar oci = new OCI(\'Compute\', \'Get VNICs\', params);\r\n\r\nreturn JSON.stringify(oci.extractData(\'get\', oci.executeRequest(\'get\', \'/20160918/vnicAttachments\', \'?compartmentId=\' + encodeURIComponent(params[\'compartment_id\']) + \'&availabilityDomain=\' + encodeURIComponent(params[\'availability_domain\']) + \'&instanceId=\' + encodeURIComponent(params[\'instance_id\'])), [\'vnicId\', \'displayName\', \'lifecycleState\']));','','0','','','','','0',NULL,'Gets information about all virtual network interface cards attached to the instance.','0','7d','0','',NULL,'30s','','','','200','1','0','','','0','0','0','0','0','0','0','c0e74098afb14984af6355ac0711662e','0','2','0'),
('46857','21','','10619','Get VCN state','oci.vcn.state.get','5m','31d','365d','0','3','','','','',NULL,'1204','function validateZabbixParams(requiredParams, allParams) {\r\n requiredParams.forEach(function (field) {\r\n if (typeof allParams !== \'object\' || typeof allParams[field] === \'undefined\' || allParams[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n}\r\n\r\nfunction OCI(service, action, params) {\r\n this.zabbixLogPrefix = \'[ OCI ] [ \' + service + \' ] [ \' + action + \' ]\';\r\n this.request = new HttpRequest();\r\n\r\n this.hash = function (string) {\r\n return sha256(string);\r\n };\r\n\r\n this.sign = function (string) {\r\n return sign(\'sha256\', params[\'private_key\'], string);\r\n };\r\n\r\n this.encode = function (hash) {\r\n const hexArr = hash.match(/.{1,2}/g);\r\n var uInt8Array = new Uint8Array(hexArr.length);\r\n hexArr.forEach(function (hex, idx) {\r\n uInt8Array[idx] = parseInt(hex, 16);\r\n });\r\n return btoa(uInt8Array);\r\n };\r\n\r\n this.getDate = function () {\r\n const weekdayShortList = [\'Sun\', \'Mon\', \'Tue\', \'Wed\', \'Thu\', \'Fri\', \'Sat\'];\r\n const monthShortList = [\'jan\', \'feb\', \'mar\', \'apr\', \'may\', \'jun\', \'jul\', \'aug\', \'sep\', \'oct\', \'nov\', \'dec\'];\r\n const today = new Date();\r\n return weekdayShortList[today.getUTCDay()] + \', \' + today.getUTCDate() + \' \' + monthShortList[today.getUTCMonth()] + \' \' + today.getUTCFullYear() + \' \' + today.getUTCHours() + \':\' + today.getUTCMinutes() + \':\' + today.getUTCSeconds() + \' GMT\';\r\n };\r\n\r\n this.executeRequest = function (httpMethod, apiPath, apiParams, mql, namespace) {\r\n var headers = \'(request-target) date host\';\r\n const contentTypeHeader = \'content-type: application/json\';\r\n const dateHeader = \'date: \' + this.getDate();\r\n const hostHeader = \'host: \' + params[\'api_host\'];\r\n const requestTarget = \'(request-target): \' + httpMethod + \' \' + apiPath + apiParams;\r\n var signingString = requestTarget + \'\\n\' + dateHeader + \'\\n\' + hostHeader;\r\n var reqHeaders = [contentTypeHeader, dateHeader];\r\n\r\n if (httpMethod === \'post\') {\r\n var body = JSON.stringify({\r\n \'namespace\': namespace,\r\n \'query\': mql\r\n });\r\n headers = headers + \' x-content-sha256 content-type content-length\';\r\n const bodyHeader = \'x-content-sha256: \' + this.encode(this.hash(body));\r\n const bodyLengthHeader = \'content-length: \' + body.length;\r\n signingString = signingString + \'\\n\' + bodyHeader + \'\\n\' + contentTypeHeader + \'\\n\' + bodyLengthHeader;\r\n reqHeaders.push(bodyHeader, bodyLengthHeader);\r\n }\r\n\r\n const signature = this.encode(this.sign(signingString));\r\n\r\n reqHeaders.push(\'Authorization: Signature version="1",keyId="\' + params[\'tenancy_ocid\'] + \'/\' + params[\'user_ocid\'] + \'/\' + params[\'fingerprint\'] + \'",algorithm="rsa-sha256",headers="\' + headers + \'",signature="\' + signature + \'"\');\r\n for (var header = 0, headerLength = reqHeaders.length; header < headerLength; header++) {\r\n this.request.addHeader(reqHeaders[header]);\r\n }\r\n\r\n if (params[\'http_proxy\']) {\r\n this.request.setProxy(params[\'http_proxy\']);\r\n Zabbix.log(4, this.zabbixLogPrefix + \' Using http proxy: \' + params[\'http_proxy\']);\r\n }\r\n\r\n if (httpMethod === \'post\') {\r\n var apiRateLimitExceeded = false;\r\n do {\r\n const response = this.request.post(\'https://\' + params[\'api_host\'] + apiPath + apiParams, body);\r\n\r\n try {\r\n if (JSON.parse(response)[\'code\'] === \'TooManyRequests\') {\r\n\r\n apiRateLimitExceeded = true;\r\n Zabbix.sleep(1000);\r\n } else {\r\n apiRateLimitExceeded = false;\r\n }\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not parse the response: \' + JSON.stringify(response));\r\n throw \'Could not parse the response. See logs for more information.\';\r\n }\r\n } while (apiRateLimitExceeded);\r\n } else {\r\n const response = this.request.get(\'https://\' + params[\'api_host\'] + apiPath + apiParams);\r\n }\r\n\r\n this.request.clearHeader();\r\n\r\n if (this.request.getStatus() === parseInt(params[\'http_status_code\'])) {\r\n return response;\r\n } else {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Unexpected HTTP response code: \' + this.request.getStatus());\r\n throw \'Unexpected HTTP response code: \' + this.request.getStatus();\r\n }\r\n };\r\n\r\n this.extractData = function (httpMethod, data, keys, compartment) {\r\n try {\r\n data = JSON.parse(data);\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not parse the received JSON object: \' + data);\r\n throw \'Could not parse received JSON object. See logs for more information.\';\r\n }\r\n\r\n if (typeof keys == \'object\') {\r\n var returnBuffer = [];\r\n for (var dataObj = 0, dataLength = data.length; dataObj < dataLength; dataObj++) {\r\n\r\n var objectBuffer = {};\r\n for (var key = 0, keysLength = keys.length; key < keysLength; key++) {\r\n if (data[dataObj][keys[key]] || data[dataObj][keys[key]] == null) {\r\n objectBuffer[keys[key].match(/^[a-z]+$|[A-Z][a-z]+$/)[0].toLowerCase()] = data[dataObj][keys[key]];\r\n } else {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Received an unexpected JSON object. Could not get value for key "\' + keys[key] + \'" in JSON: \' + JSON.stringify(data[dataObj]));\r\n throw \'Received an unexpected JSON object. See logs for more information.\';\r\n }\r\n }\r\n if (typeof compartment != \'undefined\' && compartment != \'\') objectBuffer[\'compartment\'] = compartment;\r\n returnBuffer.push(objectBuffer);\r\n }\r\n return returnBuffer;\r\n }\r\n\r\n try {\r\n if (httpMethod === \'get\') {\r\n return data[keys];\r\n } else {\r\n if (data.length === 0) {\r\n return 0;\r\n }\r\n data = data[0][keys];\r\n return data[data.length - 1][\'value\'];\r\n }\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not find key "\' + keys + \'" in JSON: \' + JSON.stringify(data));\r\n throw \'Could not find required key in JSON object. See logs for more information.\';\r\n }\r\n };\r\n}\r\n\r\n\r\nconst params = JSON.parse(value);\r\nvalidateZabbixParams([\'tenancy_ocid\', \'user_ocid\', \'private_key\', \'fingerprint\', \'api_host\', \'vcn_id\', \'http_status_code\'], params);\r\nvar oci = new OCI(\'VCN\', \'Get VCN status\', params);\r\n\r\nreturn JSON.stringify(oci.extractData(\'get\', oci.executeRequest(\'get\', \'/20160918/vcns/\' + encodeURIComponent(params[\'vcn_id\']), \'\'), \'lifecycleState\'));','','0','','','','','0',NULL,'State of the virtual cloud network.','0','7d','0','',NULL,'10s','','','','200','1','0','','','0','0','0','0','0','0','0','7b2fdfb034ba4657a731ab11ffa175f6','0','2','0'),
('46858','21','','10619','Get subnets','oci.vcn.subnets.get','5m','0','0','0','4','','','','',NULL,NULL,'function validateZabbixParams(requiredParams, allParams) {\r\n requiredParams.forEach(function (field) {\r\n if (typeof allParams !== \'object\' || typeof allParams[field] === \'undefined\' || allParams[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n}\r\n\r\nfunction OCI(service, action, params) {\r\n this.zabbixLogPrefix = \'[ OCI ] [ \' + service + \' ] [ \' + action + \' ]\';\r\n this.request = new HttpRequest();\r\n\r\n this.hash = function (string) {\r\n return sha256(string);\r\n };\r\n\r\n this.sign = function (string) {\r\n return sign(\'sha256\', params[\'private_key\'], string);\r\n };\r\n\r\n this.encode = function (hash) {\r\n const hexArr = hash.match(/.{1,2}/g);\r\n var uInt8Array = new Uint8Array(hexArr.length);\r\n hexArr.forEach(function (hex, idx) {\r\n uInt8Array[idx] = parseInt(hex, 16);\r\n });\r\n return btoa(uInt8Array);\r\n };\r\n\r\n this.getDate = function () {\r\n const weekdayShortList = [\'Sun\', \'Mon\', \'Tue\', \'Wed\', \'Thu\', \'Fri\', \'Sat\'];\r\n const monthShortList = [\'jan\', \'feb\', \'mar\', \'apr\', \'may\', \'jun\', \'jul\', \'aug\', \'sep\', \'oct\', \'nov\', \'dec\'];\r\n const today = new Date();\r\n return weekdayShortList[today.getUTCDay()] + \', \' + today.getUTCDate() + \' \' + monthShortList[today.getUTCMonth()] + \' \' + today.getUTCFullYear() + \' \' + today.getUTCHours() + \':\' + today.getUTCMinutes() + \':\' + today.getUTCSeconds() + \' GMT\';\r\n };\r\n\r\n this.executeRequest = function (httpMethod, apiPath, apiParams, mql, namespace) {\r\n var headers = \'(request-target) date host\';\r\n const contentTypeHeader = \'content-type: application/json\';\r\n const dateHeader = \'date: \' + this.getDate();\r\n const hostHeader = \'host: \' + params[\'api_host\'];\r\n const requestTarget = \'(request-target): \' + httpMethod + \' \' + apiPath + apiParams;\r\n var signingString = requestTarget + \'\\n\' + dateHeader + \'\\n\' + hostHeader;\r\n var reqHeaders = [contentTypeHeader, dateHeader];\r\n\r\n if (httpMethod === \'post\') {\r\n var body = JSON.stringify({\r\n \'namespace\': namespace,\r\n \'query\': mql\r\n });\r\n headers = headers + \' x-content-sha256 content-type content-length\';\r\n const bodyHeader = \'x-content-sha256: \' + this.encode(this.hash(body));\r\n const bodyLengthHeader = \'content-length: \' + body.length;\r\n signingString = signingString + \'\\n\' + bodyHeader + \'\\n\' + contentTypeHeader + \'\\n\' + bodyLengthHeader;\r\n reqHeaders.push(bodyHeader, bodyLengthHeader);\r\n }\r\n\r\n const signature = this.encode(this.sign(signingString));\r\n\r\n reqHeaders.push(\'Authorization: Signature version="1",keyId="\' + params[\'tenancy_ocid\'] + \'/\' + params[\'user_ocid\'] + \'/\' + params[\'fingerprint\'] + \'",algorithm="rsa-sha256",headers="\' + headers + \'",signature="\' + signature + \'"\');\r\n for (var header = 0, headerLength = reqHeaders.length; header < headerLength; header++) {\r\n this.request.addHeader(reqHeaders[header]);\r\n }\r\n\r\n if (params[\'http_proxy\']) {\r\n this.request.setProxy(params[\'http_proxy\']);\r\n Zabbix.log(4, this.zabbixLogPrefix + \' Using http proxy: \' + params[\'http_proxy\']);\r\n }\r\n\r\n if (httpMethod === \'post\') {\r\n var apiRateLimitExceeded = false;\r\n do {\r\n const response = this.request.post(\'https://\' + params[\'api_host\'] + apiPath + apiParams, body);\r\n\r\n try {\r\n if (JSON.parse(response)[\'code\'] === \'TooManyRequests\') {\r\n\r\n apiRateLimitExceeded = true;\r\n Zabbix.sleep(1000);\r\n } else {\r\n apiRateLimitExceeded = false;\r\n }\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not parse the response: \' + JSON.stringify(response));\r\n throw \'Could not parse the response. See logs for more information.\';\r\n }\r\n } while (apiRateLimitExceeded);\r\n } else {\r\n const response = this.request.get(\'https://\' + params[\'api_host\'] + apiPath + apiParams);\r\n }\r\n\r\n this.request.clearHeader();\r\n\r\n if (this.request.getStatus() === parseInt(params[\'http_status_code\'])) {\r\n return response;\r\n } else {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Unexpected HTTP response code: \' + this.request.getStatus());\r\n throw \'Unexpected HTTP response code: \' + this.request.getStatus();\r\n }\r\n };\r\n\r\n this.extractData = function (httpMethod, data, keys, compartment) {\r\n try {\r\n data = JSON.parse(data);\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not parse the received JSON object: \' + data);\r\n throw \'Could not parse received JSON object. See logs for more information.\';\r\n }\r\n\r\n if (typeof keys == \'object\') {\r\n var returnBuffer = [];\r\n for (var dataObj = 0, dataLength = data.length; dataObj < dataLength; dataObj++) {\r\n\r\n var objectBuffer = {};\r\n for (var key = 0, keysLength = keys.length; key < keysLength; key++) {\r\n if (data[dataObj][keys[key]] || data[dataObj][keys[key]] == null) {\r\n objectBuffer[keys[key].match(/^[a-z]+$|[A-Z][a-z]+$/)[0].toLowerCase()] = data[dataObj][keys[key]];\r\n } else {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Received an unexpected JSON object. Could not get value for key "\' + keys[key] + \'" in JSON: \' + JSON.stringify(data[dataObj]));\r\n throw \'Received an unexpected JSON object. See logs for more information.\';\r\n }\r\n }\r\n if (typeof compartment != \'undefined\' && compartment != \'\') objectBuffer[\'compartment\'] = compartment;\r\n returnBuffer.push(objectBuffer);\r\n }\r\n return returnBuffer;\r\n }\r\n\r\n try {\r\n if (httpMethod === \'get\') {\r\n return data[keys];\r\n } else {\r\n if (data.length === 0) {\r\n return 0;\r\n }\r\n data = data[0][keys];\r\n return data[data.length - 1][\'value\'];\r\n }\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not find key "\' + keys + \'" in JSON: \' + JSON.stringify(data));\r\n throw \'Could not find required key in JSON object. See logs for more information.\';\r\n }\r\n };\r\n}\r\n\r\n\r\nconst params = JSON.parse(value);\r\nvalidateZabbixParams([\'tenancy_ocid\', \'user_ocid\', \'private_key\', \'fingerprint\', \'api_host\', \'vcn_id\', \'http_status_code\', \'compartment_id\'], params);\r\nvar oci = new OCI(\'VCN\', \'Get subnets\', params);\r\n\r\nreturn JSON.stringify(oci.extractData(\'get\', oci.executeRequest(\'get\', \'/20160918/subnets\', \'?compartmentId=\' + encodeURIComponent(params[\'compartment_id\']) + \'&vcnId=\' + encodeURIComponent(params[\'vcn_id\'])), [\'id\', \'displayName\', \'lifecycleState\', \'freeformTags\']));','','0','','','','','0',NULL,'Get data about subnets linked to the particular VCN.','0','7d','0','',NULL,'30s','','','','200','1','0','','','0','0','0','0','0','0','0','83236aeedf5e4ba39f0425c21f745690','0','2','0'),
('46859','21','','10620','Get frequent metrics','oci.obj.storage.metrics.frequent.get','1m','0','0','0','4','','','','',NULL,NULL,'function validateZabbixParams(requiredParams, allParams) {\r\n requiredParams.forEach(function (field) {\r\n if (typeof allParams !== \'object\' || typeof allParams[field] === \'undefined\' || allParams[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n}\r\n\r\nfunction OCI(service, action, params) {\r\n this.zabbixLogPrefix = \'[ OCI ] [ \' + service + \' ] [ \' + action + \' ]\';\r\n this.request = new HttpRequest();\r\n\r\n this.hash = function (string) {\r\n return sha256(string);\r\n };\r\n\r\n this.sign = function (string) {\r\n return sign(\'sha256\', params[\'private_key\'], string);\r\n };\r\n\r\n this.encode = function (hash) {\r\n const hexArr = hash.match(/.{1,2}/g);\r\n var uInt8Array = new Uint8Array(hexArr.length);\r\n hexArr.forEach(function (hex, idx) {\r\n uInt8Array[idx] = parseInt(hex, 16);\r\n });\r\n return btoa(uInt8Array);\r\n };\r\n\r\n this.getDate = function () {\r\n const weekdayShortList = [\'Sun\', \'Mon\', \'Tue\', \'Wed\', \'Thu\', \'Fri\', \'Sat\'];\r\n const monthShortList = [\'jan\', \'feb\', \'mar\', \'apr\', \'may\', \'jun\', \'jul\', \'aug\', \'sep\', \'oct\', \'nov\', \'dec\'];\r\n const today = new Date();\r\n return weekdayShortList[today.getUTCDay()] + \', \' + today.getUTCDate() + \' \' + monthShortList[today.getUTCMonth()] + \' \' + today.getUTCFullYear() + \' \' + today.getUTCHours() + \':\' + today.getUTCMinutes() + \':\' + today.getUTCSeconds() + \' GMT\';\r\n };\r\n\r\n this.executeRequest = function (httpMethod, apiPath, apiParams, mql, namespace) {\r\n var headers = \'(request-target) date host\';\r\n const contentTypeHeader = \'content-type: application/json\';\r\n const dateHeader = \'date: \' + this.getDate();\r\n const hostHeader = \'host: \' + params[\'api_host\'];\r\n const requestTarget = \'(request-target): \' + httpMethod + \' \' + apiPath + apiParams;\r\n var signingString = requestTarget + \'\\n\' + dateHeader + \'\\n\' + hostHeader;\r\n var reqHeaders = [contentTypeHeader, dateHeader];\r\n\r\n if (httpMethod === \'post\') {\r\n var body = JSON.stringify({\r\n \'namespace\': namespace,\r\n \'query\': mql\r\n });\r\n headers = headers + \' x-content-sha256 content-type content-length\';\r\n const bodyHeader = \'x-content-sha256: \' + this.encode(this.hash(body));\r\n const bodyLengthHeader = \'content-length: \' + body.length;\r\n signingString = signingString + \'\\n\' + bodyHeader + \'\\n\' + contentTypeHeader + \'\\n\' + bodyLengthHeader;\r\n reqHeaders.push(bodyHeader, bodyLengthHeader);\r\n }\r\n\r\n const signature = this.encode(this.sign(signingString));\r\n\r\n reqHeaders.push(\'Authorization: Signature version="1",keyId="\' + params[\'tenancy_ocid\'] + \'/\' + params[\'user_ocid\'] + \'/\' + params[\'fingerprint\'] + \'",algorithm="rsa-sha256",headers="\' + headers + \'",signature="\' + signature + \'"\');\r\n for (var header = 0, headerLength = reqHeaders.length; header < headerLength; header++) {\r\n this.request.addHeader(reqHeaders[header]);\r\n }\r\n\r\n if (params[\'http_proxy\']) {\r\n this.request.setProxy(params[\'http_proxy\']);\r\n Zabbix.log(4, this.zabbixLogPrefix + \' Using http proxy: \' + params[\'http_proxy\']);\r\n }\r\n\r\n if (httpMethod === \'post\') {\r\n var apiRateLimitExceeded = false;\r\n do {\r\n const response = this.request.post(\'https://\' + params[\'api_host\'] + apiPath + apiParams, body);\r\n\r\n try {\r\n if (JSON.parse(response)[\'code\'] === \'TooManyRequests\') {\r\n\r\n apiRateLimitExceeded = true;\r\n Zabbix.sleep(1000);\r\n } else {\r\n apiRateLimitExceeded = false;\r\n }\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not parse the response: \' + JSON.stringify(response));\r\n throw \'Could not parse the response. See logs for more information.\';\r\n }\r\n } while (apiRateLimitExceeded);\r\n } else {\r\n const response = this.request.get(\'https://\' + params[\'api_host\'] + apiPath + apiParams);\r\n }\r\n\r\n this.request.clearHeader();\r\n\r\n if (this.request.getStatus() === parseInt(params[\'http_status_code\'])) {\r\n return response;\r\n } else {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Unexpected HTTP response code: \' + this.request.getStatus());\r\n throw \'Unexpected HTTP response code: \' + this.request.getStatus();\r\n }\r\n };\r\n\r\n this.extractData = function (httpMethod, data, keys, compartment) {\r\n try {\r\n data = JSON.parse(data);\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not parse the received JSON object: \' + data);\r\n throw \'Could not parse received JSON object. See logs for more information.\';\r\n }\r\n\r\n if (typeof keys == \'object\') {\r\n var returnBuffer = [];\r\n for (var dataObj = 0, dataLength = data.length; dataObj < dataLength; dataObj++) {\r\n\r\n var objectBuffer = {};\r\n for (var key = 0, keysLength = keys.length; key < keysLength; key++) {\r\n if (data[dataObj][keys[key]] || data[dataObj][keys[key]] == null) {\r\n objectBuffer[keys[key].match(/^[a-z]+$|[A-Z][a-z]+$/)[0].toLowerCase()] = data[dataObj][keys[key]];\r\n } else {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Received an unexpected JSON object. Could not get value for key "\' + keys[key] + \'" in JSON: \' + JSON.stringify(data[dataObj]));\r\n throw \'Received an unexpected JSON object. See logs for more information.\';\r\n }\r\n }\r\n if (typeof compartment != \'undefined\' && compartment != \'\') objectBuffer[\'compartment\'] = compartment;\r\n returnBuffer.push(objectBuffer);\r\n }\r\n return returnBuffer;\r\n }\r\n\r\n try {\r\n if (httpMethod === \'get\') {\r\n return data[keys];\r\n } else {\r\n if (data.length === 0) {\r\n return 0;\r\n }\r\n data = data[0][keys];\r\n return data[data.length - 1][\'value\'];\r\n }\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not find key "\' + keys + \'" in JSON: \' + JSON.stringify(data));\r\n throw \'Could not find required key in JSON object. See logs for more information.\';\r\n }\r\n };\r\n}\r\n\r\nfunction buildMql(id, metrics, defaultStatistic, resourceType) {\r\n resourceType = resourceType === \'\' || resourceType === undefined ? \'resourceId\' : resourceType;\r\n this.query = \'[\' + params[\'req_interval\'] + \'m]{\' + resourceType + \'=\' + id + \'}.\';\r\n\r\n for (var i = 0, metricsLength = metrics.length; i < metricsLength; i++) {\r\n const metric = ((Array.isArray(metrics[i]) ? metrics[i] : [metrics[i], defaultStatistic]));\r\n metrics[i] = [metric[0], this.query + metric[1]];\r\n }\r\n}\r\n\r\n\r\nconst params = JSON.parse(value);\r\nvalidateZabbixParams([\'tenancy_ocid\', \'user_ocid\', \'private_key\', \'fingerprint\', \'api_host\', \'bucket_name\', \'http_status_code\', \'req_interval\', \'compartment_id\'], params);\r\nvar oci = new OCI(\'Object storage\', \'Get metrics \' + params[\'req_interval\'] + \'m\', params);\r\n\r\nconst metrics = [\r\n \'AllRequests\',\r\n \'ClientErrors\',\r\n \'FirstByteLatency\',\r\n \'PostRequests\',\r\n \'PutRequests\',\r\n \'TotalRequestLatency\'\r\n];\r\nbuildMql(params[\'bucket_name\'], metrics, \'mean\', \'resourceDisplayName\');\r\n\r\nvar result = {};\r\nfor (var i = 0, metricsLength = metrics.length; i < metricsLength; i++) {\r\n result[metrics[i][0]] = oci.extractData(\'post\', oci.executeRequest(\'post\', \'/20180401/metrics/actions/summarizeMetricsData\', \'?compartmentId=\' + encodeURIComponent(params[\'compartment_id\']), metrics[i][0] + metrics[i][1] + \'()\', \'oci_objectstorage\'), \'aggregatedDatapoints\');\r\n}\r\nreturn JSON.stringify(result);','','0','','','','','0',NULL,'Gets all metrics related to a specific bucket that have frequent update time (100 milliseconds).','0','7d','0','',NULL,'30s','','','','200','1','0','','','0','0','0','0','0','0','0','5463c35f2c48408997532001025989fa','0','2','0'),
('46860','21','','10620','Get hourly metrics','oci.obj.storage.metrics.hourly.get','1h','0','0','0','4','','','','',NULL,NULL,'function validateZabbixParams(requiredParams, allParams) {\r\n requiredParams.forEach(function (field) {\r\n if (typeof allParams !== \'object\' || typeof allParams[field] === \'undefined\' || allParams[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n}\r\n\r\nfunction OCI(service, action, params) {\r\n this.zabbixLogPrefix = \'[ OCI ] [ \' + service + \' ] [ \' + action + \' ]\';\r\n this.request = new HttpRequest();\r\n\r\n this.hash = function (string) {\r\n return sha256(string);\r\n };\r\n\r\n this.sign = function (string) {\r\n return sign(\'sha256\', params[\'private_key\'], string);\r\n };\r\n\r\n this.encode = function (hash) {\r\n const hexArr = hash.match(/.{1,2}/g);\r\n var uInt8Array = new Uint8Array(hexArr.length);\r\n hexArr.forEach(function (hex, idx) {\r\n uInt8Array[idx] = parseInt(hex, 16);\r\n });\r\n return btoa(uInt8Array);\r\n };\r\n\r\n this.getDate = function () {\r\n const weekdayShortList = [\'Sun\', \'Mon\', \'Tue\', \'Wed\', \'Thu\', \'Fri\', \'Sat\'];\r\n const monthShortList = [\'jan\', \'feb\', \'mar\', \'apr\', \'may\', \'jun\', \'jul\', \'aug\', \'sep\', \'oct\', \'nov\', \'dec\'];\r\n const today = new Date();\r\n return weekdayShortList[today.getUTCDay()] + \', \' + today.getUTCDate() + \' \' + monthShortList[today.getUTCMonth()] + \' \' + today.getUTCFullYear() + \' \' + today.getUTCHours() + \':\' + today.getUTCMinutes() + \':\' + today.getUTCSeconds() + \' GMT\';\r\n };\r\n\r\n this.executeRequest = function (httpMethod, apiPath, apiParams, mql, namespace) {\r\n var headers = \'(request-target) date host\';\r\n const contentTypeHeader = \'content-type: application/json\';\r\n const dateHeader = \'date: \' + this.getDate();\r\n const hostHeader = \'host: \' + params[\'api_host\'];\r\n const requestTarget = \'(request-target): \' + httpMethod + \' \' + apiPath + apiParams;\r\n var signingString = requestTarget + \'\\n\' + dateHeader + \'\\n\' + hostHeader;\r\n var reqHeaders = [contentTypeHeader, dateHeader];\r\n\r\n if (httpMethod === \'post\') {\r\n var body = JSON.stringify({\r\n \'namespace\': namespace,\r\n \'query\': mql\r\n });\r\n headers = headers + \' x-content-sha256 content-type content-length\';\r\n const bodyHeader = \'x-content-sha256: \' + this.encode(this.hash(body));\r\n const bodyLengthHeader = \'content-length: \' + body.length;\r\n signingString = signingString + \'\\n\' + bodyHeader + \'\\n\' + contentTypeHeader + \'\\n\' + bodyLengthHeader;\r\n reqHeaders.push(bodyHeader, bodyLengthHeader);\r\n }\r\n\r\n const signature = this.encode(this.sign(signingString));\r\n\r\n reqHeaders.push(\'Authorization: Signature version="1",keyId="\' + params[\'tenancy_ocid\'] + \'/\' + params[\'user_ocid\'] + \'/\' + params[\'fingerprint\'] + \'",algorithm="rsa-sha256",headers="\' + headers + \'",signature="\' + signature + \'"\');\r\n for (var header = 0, headerLength = reqHeaders.length; header < headerLength; header++) {\r\n this.request.addHeader(reqHeaders[header]);\r\n }\r\n\r\n if (params[\'http_proxy\']) {\r\n this.request.setProxy(params[\'http_proxy\']);\r\n Zabbix.log(4, this.zabbixLogPrefix + \' Using http proxy: \' + params[\'http_proxy\']);\r\n }\r\n\r\n if (httpMethod === \'post\') {\r\n var apiRateLimitExceeded = false;\r\n do {\r\n const response = this.request.post(\'https://\' + params[\'api_host\'] + apiPath + apiParams, body);\r\n\r\n try {\r\n if (JSON.parse(response)[\'code\'] === \'TooManyRequests\') {\r\n\r\n apiRateLimitExceeded = true;\r\n Zabbix.sleep(1000);\r\n } else {\r\n apiRateLimitExceeded = false;\r\n }\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not parse the response: \' + JSON.stringify(response));\r\n throw \'Could not parse the response. See logs for more information.\';\r\n }\r\n } while (apiRateLimitExceeded);\r\n } else {\r\n const response = this.request.get(\'https://\' + params[\'api_host\'] + apiPath + apiParams);\r\n }\r\n\r\n this.request.clearHeader();\r\n\r\n if (this.request.getStatus() === parseInt(params[\'http_status_code\'])) {\r\n return response;\r\n } else {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Unexpected HTTP response code: \' + this.request.getStatus());\r\n throw \'Unexpected HTTP response code: \' + this.request.getStatus();\r\n }\r\n };\r\n\r\n this.extractData = function (httpMethod, data, keys, compartment) {\r\n try {\r\n data = JSON.parse(data);\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not parse the received JSON object: \' + data);\r\n throw \'Could not parse received JSON object. See logs for more information.\';\r\n }\r\n\r\n if (typeof keys == \'object\') {\r\n var returnBuffer = [];\r\n for (var dataObj = 0, dataLength = data.length; dataObj < dataLength; dataObj++) {\r\n\r\n var objectBuffer = {};\r\n for (var key = 0, keysLength = keys.length; key < keysLength; key++) {\r\n if (data[dataObj][keys[key]] || data[dataObj][keys[key]] == null) {\r\n objectBuffer[keys[key].match(/^[a-z]+$|[A-Z][a-z]+$/)[0].toLowerCase()] = data[dataObj][keys[key]];\r\n } else {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Received an unexpected JSON object. Could not get value for key "\' + keys[key] + \'" in JSON: \' + JSON.stringify(data[dataObj]));\r\n throw \'Received an unexpected JSON object. See logs for more information.\';\r\n }\r\n }\r\n if (typeof compartment != \'undefined\' && compartment != \'\') objectBuffer[\'compartment\'] = compartment;\r\n returnBuffer.push(objectBuffer);\r\n }\r\n return returnBuffer;\r\n }\r\n\r\n try {\r\n if (httpMethod === \'get\') {\r\n return data[keys];\r\n } else {\r\n if (data.length === 0) {\r\n return 0;\r\n }\r\n data = data[0][keys];\r\n return data[data.length - 1][\'value\'];\r\n }\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not find key "\' + keys + \'" in JSON: \' + JSON.stringify(data));\r\n throw \'Could not find required key in JSON object. See logs for more information.\';\r\n }\r\n };\r\n}\r\n\r\nfunction buildMql(id, metrics, defaultStatistic, resourceType) {\r\n resourceType = resourceType === \'\' || resourceType === undefined ? \'resourceId\' : resourceType;\r\n this.query = \'[\' + params[\'req_interval\'] + \'m]{\' + resourceType + \'=\' + id + \'}.\';\r\n\r\n for (var i = 0, metricsLength = metrics.length; i < metricsLength; i++) {\r\n const metric = ((Array.isArray(metrics[i]) ? metrics[i] : [metrics[i], defaultStatistic]));\r\n metrics[i] = [metric[0], this.query + metric[1]];\r\n }\r\n}\r\n\r\n\r\nconst params = JSON.parse(value);\r\nvalidateZabbixParams([\'tenancy_ocid\', \'user_ocid\', \'private_key\', \'fingerprint\', \'api_host\', \'bucket_name\', \'http_status_code\', \'req_interval\', \'compartment_id\'], params);\r\nvar oci = new OCI(\'Object storage\', \'Get metrics \' + params[\'req_interval\'] + \'m\', params);\r\n\r\nconst metrics = [\r\n \'ObjectCount\',\r\n \'StoredBytes\',\r\n \'UncommittedParts\'\r\n];\r\nbuildMql(params[\'bucket_name\'], metrics, \'mean\', \'resourceDisplayName\')\r\n\r\nvar result = {};\r\nfor (var i = 0, metricsLength = metrics.length; i < metricsLength; i++) {\r\n result[metrics[i][0]] = oci.extractData(\'post\', oci.executeRequest(\'post\', \'/20180401/metrics/actions/summarizeMetricsData\', \'?compartmentId=\' + encodeURIComponent(params[\'compartment_id\']), metrics[i][0] + metrics[i][1] + \'()\', \'oci_objectstorage\'), \'aggregatedDatapoints\');\r\n}\r\nreturn JSON.stringify(result);','','0','','','','','0',NULL,'Gets all metrics related to specific bucket that have update time of 1 hour.','0','7d','0','',NULL,'30s','','','','200','1','0','','','0','0','0','0','0','0','0','4a12f1c73e8f40be9136a095ad147775','0','2','0'),
('46861','21','','10620','Get enabled object lifecycle management','oci.obj.storage.metrics.olm.get','3h','31d','365d','0','3','','','','',NULL,NULL,'function validateZabbixParams(requiredParams, allParams) {\r\n requiredParams.forEach(function (field) {\r\n if (typeof allParams !== \'object\' || typeof allParams[field] === \'undefined\' || allParams[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n}\r\n\r\nfunction OCI(service, action, params) {\r\n this.zabbixLogPrefix = \'[ OCI ] [ \' + service + \' ] [ \' + action + \' ]\';\r\n this.request = new HttpRequest();\r\n\r\n this.hash = function (string) {\r\n return sha256(string);\r\n };\r\n\r\n this.sign = function (string) {\r\n return sign(\'sha256\', params[\'private_key\'], string);\r\n };\r\n\r\n this.encode = function (hash) {\r\n const hexArr = hash.match(/.{1,2}/g);\r\n var uInt8Array = new Uint8Array(hexArr.length);\r\n hexArr.forEach(function (hex, idx) {\r\n uInt8Array[idx] = parseInt(hex, 16);\r\n });\r\n return btoa(uInt8Array);\r\n };\r\n\r\n this.getDate = function () {\r\n const weekdayShortList = [\'Sun\', \'Mon\', \'Tue\', \'Wed\', \'Thu\', \'Fri\', \'Sat\'];\r\n const monthShortList = [\'jan\', \'feb\', \'mar\', \'apr\', \'may\', \'jun\', \'jul\', \'aug\', \'sep\', \'oct\', \'nov\', \'dec\'];\r\n const today = new Date();\r\n return weekdayShortList[today.getUTCDay()] + \', \' + today.getUTCDate() + \' \' + monthShortList[today.getUTCMonth()] + \' \' + today.getUTCFullYear() + \' \' + today.getUTCHours() + \':\' + today.getUTCMinutes() + \':\' + today.getUTCSeconds() + \' GMT\';\r\n };\r\n\r\n this.executeRequest = function (httpMethod, apiPath, apiParams, mql, namespace) {\r\n var headers = \'(request-target) date host\';\r\n const contentTypeHeader = \'content-type: application/json\';\r\n const dateHeader = \'date: \' + this.getDate();\r\n const hostHeader = \'host: \' + params[\'api_host\'];\r\n const requestTarget = \'(request-target): \' + httpMethod + \' \' + apiPath + apiParams;\r\n var signingString = requestTarget + \'\\n\' + dateHeader + \'\\n\' + hostHeader;\r\n var reqHeaders = [contentTypeHeader, dateHeader];\r\n\r\n if (httpMethod === \'post\') {\r\n var body = JSON.stringify({\r\n \'namespace\': namespace,\r\n \'query\': mql\r\n });\r\n headers = headers + \' x-content-sha256 content-type content-length\';\r\n const bodyHeader = \'x-content-sha256: \' + this.encode(this.hash(body));\r\n const bodyLengthHeader = \'content-length: \' + body.length;\r\n signingString = signingString + \'\\n\' + bodyHeader + \'\\n\' + contentTypeHeader + \'\\n\' + bodyLengthHeader;\r\n reqHeaders.push(bodyHeader, bodyLengthHeader);\r\n }\r\n\r\n const signature = this.encode(this.sign(signingString));\r\n\r\n reqHeaders.push(\'Authorization: Signature version="1",keyId="\' + params[\'tenancy_ocid\'] + \'/\' + params[\'user_ocid\'] + \'/\' + params[\'fingerprint\'] + \'",algorithm="rsa-sha256",headers="\' + headers + \'",signature="\' + signature + \'"\');\r\n for (var header = 0, headerLength = reqHeaders.length; header < headerLength; header++) {\r\n this.request.addHeader(reqHeaders[header]);\r\n }\r\n\r\n if (params[\'http_proxy\']) {\r\n this.request.setProxy(params[\'http_proxy\']);\r\n Zabbix.log(4, this.zabbixLogPrefix + \' Using http proxy: \' + params[\'http_proxy\']);\r\n }\r\n\r\n if (httpMethod === \'post\') {\r\n var apiRateLimitExceeded = false;\r\n do {\r\n const response = this.request.post(\'https://\' + params[\'api_host\'] + apiPath + apiParams, body);\r\n\r\n try {\r\n if (JSON.parse(response)[\'code\'] === \'TooManyRequests\') {\r\n\r\n apiRateLimitExceeded = true;\r\n Zabbix.sleep(1000);\r\n } else {\r\n apiRateLimitExceeded = false;\r\n }\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not parse the response: \' + JSON.stringify(response));\r\n throw \'Could not parse the response. See logs for more information.\';\r\n }\r\n } while (apiRateLimitExceeded);\r\n } else {\r\n const response = this.request.get(\'https://\' + params[\'api_host\'] + apiPath + apiParams);\r\n }\r\n\r\n this.request.clearHeader();\r\n\r\n if (this.request.getStatus() === parseInt(params[\'http_status_code\'])) {\r\n return response;\r\n } else {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Unexpected HTTP response code: \' + this.request.getStatus());\r\n throw \'Unexpected HTTP response code: \' + this.request.getStatus();\r\n }\r\n };\r\n\r\n this.extractData = function (httpMethod, data, keys, compartment) {\r\n try {\r\n data = JSON.parse(data);\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not parse the received JSON object: \' + data);\r\n throw \'Could not parse received JSON object. See logs for more information.\';\r\n }\r\n\r\n if (typeof keys == \'object\') {\r\n var returnBuffer = [];\r\n for (var dataObj = 0, dataLength = data.length; dataObj < dataLength; dataObj++) {\r\n\r\n var objectBuffer = {};\r\n for (var key = 0, keysLength = keys.length; key < keysLength; key++) {\r\n if (data[dataObj][keys[key]] || data[dataObj][keys[key]] == null) {\r\n objectBuffer[keys[key].match(/^[a-z]+$|[A-Z][a-z]+$/)[0].toLowerCase()] = data[dataObj][keys[key]];\r\n } else {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Received an unexpected JSON object. Could not get value for key "\' + keys[key] + \'" in JSON: \' + JSON.stringify(data[dataObj]));\r\n throw \'Received an unexpected JSON object. See logs for more information.\';\r\n }\r\n }\r\n if (typeof compartment != \'undefined\' && compartment != \'\') objectBuffer[\'compartment\'] = compartment;\r\n returnBuffer.push(objectBuffer);\r\n }\r\n return returnBuffer;\r\n }\r\n\r\n try {\r\n if (httpMethod === \'get\') {\r\n return data[keys];\r\n } else {\r\n if (data.length === 0) {\r\n return 0;\r\n }\r\n data = data[0][keys];\r\n return data[data.length - 1][\'value\'];\r\n }\r\n } catch (error) {\r\n Zabbix.log(3, this.zabbixLogPrefix + \' Could not find key "\' + keys + \'" in JSON: \' + JSON.stringify(data));\r\n throw \'Could not find required key in JSON object. See logs for more information.\';\r\n }\r\n };\r\n}\r\n\r\n\r\nconst params = JSON.parse(value);\r\nvalidateZabbixParams([\'tenancy_ocid\', \'user_ocid\', \'private_key\', \'fingerprint\', \'api_host\', \'bucket_name\', \'http_status_code\', \'req_interval\', \'compartment_id\'], params);\r\nvar oci = new OCI(\'Object storage\', \'Get metrics \' + params[\'req_interval\'] + \'m\', params);\r\nconst mql = \'EnabledOLM[\' + params[\'req_interval\'] + \'m]{resourceDisplayName=\' + params[\'bucket_name\'] + \'}.mean()\';\r\n\r\nreturn JSON.stringify(oci.extractData(\'post\', oci.executeRequest(\'post\', \'/20180401/metrics/actions/summarizeMetricsData\', \'?compartmentId=\' + encodeURIComponent(params[\'compartment_id\']), mql, \'oci_objectstorage\'), \'aggregatedDatapoints\'));','','0','','','','','0',NULL,'Indicates whether a bucket has any executable Object Lifecycle Management policies configured. `EnabledOLM` emits:\r\n\r\n 1 - if policies are configured\r\n 0 - if no policies are configured','0','7d','0','',NULL,'10s','','','','200','1','0','','','0','0','0','0','0','0','0','5bb5ba3011e94e43bb1fdc79668c9537','0','2','0'),
('46958','11','','10317','Get database','db.odbc.get[get_database,"{$MYSQL.DSN}"]','1h','0','0','0','4','','','','',NULL,NULL,'show databases','','0','{$MYSQL.USER}','{$MYSQL.PASSWORD}','','','0',NULL,'Used for scanning databases in DBMS.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','70491bf6b6af401c9dfb10c0cbfddee1','0','2','0'),
('46959','11','','10317','Get replication','db.odbc.get[get_replication,"{$MYSQL.DSN}"]','1m','0','0','0','4','','','','',NULL,NULL,'show slave status','','0','{$MYSQL.USER}','{$MYSQL.PASSWORD}','','','0',NULL,'Gets replication status information.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e389af9f1d134e028e3b637544c8a265','0','2','0'),
('46960','11','','10328','Get archive log','db.odbc.get[get_archivelog,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]','1h','0','0','0','4','','','','',NULL,NULL,'SELECT d.dest_name\r\nFROM v$archive_dest d , v$database db WHERE d.status != \'INACTIVE\' AND db.log_mode = \'ARCHIVELOG\';','','0','{$ORACLE.USER}','{$ORACLE.PASSWORD}','','','0',NULL,'Gets the destinations of the log archive.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','76591a03cf684d30ae15eca8519ce1dd','0','2','0'),
('46961','11','','10328','Get ASM disk groups','db.odbc.get[get_asm,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]','1h','0','0','0','4','','','','',NULL,NULL,'SELECT name AS dgname FROM v$asm_diskgroup;','','0','{$ORACLE.USER}','{$ORACLE.PASSWORD}','','','0',NULL,'Gets the ASM disk groups.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','10f3da9afb674ff18956aa99229de8dd','0','2','0'),
('46962','11','','10328','Get database','db.odbc.get[get_db,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]','1h','0','0','0','4','','','','',NULL,NULL,'SELECT name as DBNAME, DECODE(CDB, \'YES\', \'CDB\', \'No-CDB\') AS TYPE FROM V$DATABASE;','','0','{$ORACLE.USER}','{$ORACLE.PASSWORD}','','','0',NULL,'Gets the databases in the database management system (DBMS).','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7ca479f46bb2435f9f9cb62d404fa37c','0','2','0'),
('46963','11','','10328','Get PDB','db.odbc.get[get_pdb,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]','1h','0','0','0','4','','','','',NULL,NULL,'SELECT CON_ID, name as DBNAME FROM V$PDBS;','','0','{$ORACLE.USER}','{$ORACLE.PASSWORD}','','','0',NULL,'Gets the pluggable database (PDB) in DBMS.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','de5aa291b7da4733ad26d517e8ff55cf','0','2','0'),
('46964','11','','10328','Get tablespace','db.odbc.get[get_tablespace,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]','1h','0','0','0','4','','','','',NULL,NULL,'SELECT\r\n CON_ID,\r\n NVL(CON$NAME, \'DB\') CON_NAME,\r\n TABLESPACE_NAME TABLESPACE,\r\n CONTENTS\r\nFROM\r\n CDB_TABLESPACES;','','0','{$ORACLE.USER}','{$ORACLE.PASSWORD}','','','0',NULL,'Gets tablespaces in DBMS.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2310462a8936465c8a62d8586ab0ba65','0','2','0'),
('46965','20','get[1.3.6.1.4.1.12356.101.13.1.5.0]','10604','HA config sync','ha.auto.sync[fgHaAutoSync.0]','1h','31d','365d','0','3','','','','',NULL,'1206','','','0','','','','','0',NULL,'MIB: FORTINET-FORTIGATE-MIB\r\nConfiguration of an automatic configuration synchronization (enabled or disabled).','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ea59bff13fd44c37aa5bd711146fe3d9','0','2','0'),
('46966','20','get[1.3.6.1.4.1.12356.101.13.1.2.0]','10604','HA cluster group ID','ha.cluster.group_id[fgHaGroupId.0]','1h','31d','0','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: FORTINET-FORTIGATE-MIB\r\nHA cluster group ID device is configured for.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','dbc47cff3e60401d9a52f590e1ed6281','0','2','0'),
('46967','20','get[1.3.6.1.4.1.12356.101.13.1.7.0]','10604','HA cluster group name','ha.cluster.group_name[fgHaGroupName.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: FORTINET-FORTIGATE-MIB\r\nHA cluster group name.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4e2b57a68243445e87ca0e23277bafd6','0','2','0'),
('46968','20','get[1.3.6.1.4.1.12356.101.13.1.4.0]','10604','HA cluster primary override','ha.cluster.override[fgHaOverride.0]','1h','31d','365d','0','3','','','','',NULL,'1206','','','0','','','','','0',NULL,'MIB: FORTINET-FORTIGATE-MIB\r\nStatus of the primary override flag.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b6bdf8c8d09140ffa4087d0204a0711d','0','2','0'),
('46969','20','get[1.3.6.1.4.1.12356.101.13.1.3.0]','10604','HA cluster priority','ha.cluster.priority[fgHaPriority.0]','1h','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: FORTINET-FORTIGATE-MIB\r\nHA clustering priority of the device (default = 128).','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3f1d2dfb8fd74e80aedb6fa0b7ff7215','0','2','0'),
('46970','20','walk[1.3.6.1.4.1.12356.101.13.2.1.1]','10604','SNMP walk HA members','ha.members.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Used for discovering HA members from FORTINET-FORTIGATE-MIB.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ff27aa75a1d84aa5a472fbf114f8dec0','0','2','0'),
('46971','20','get[1.3.6.1.4.1.12356.101.13.1.1.0]','10604','HA mode','ha.mode[fgHaSystemMode.0]','1h','31d','0','0','3','','','','',NULL,'1208','','','0','','','','','0',NULL,'MIB: FORTINET-FORTIGATE-MIB\r\nHigh-availability mode (Standalone, A-A or A-P).','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3d9bb1ddb4924d5ba4dc75fb4103cc10','0','2','0'),
('46972','20','get[1.3.6.1.4.1.12356.101.13.1.6.0]','10604','HA load-balancing schedule','ha.schedule[fgHaSchedule.0]','1h','31d','365d','0','3','','','','',NULL,'1205','','','0','','','','','0',NULL,'MIB: FORTINET-FORTIGATE-MIB\r\nLoad-balancing schedule of cluster (in A-A mode).','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bd3dc8fdcb8e41569f1f81b2624e1462','0','2','0'),
('46973','20','walk[1.3.6.1.4.1.12356.101.4.3.2.1]','10604','SNMP walk hardware sensors','hw.sensor.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Used for discovering hardware sensors from FORTINET-FORTIGATE-MIB.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bb422f92e3ad4eafb9f43f0167a250ee','0','2','0'),
('46974','20','get[1.3.6.1.4.1.12356.101.9.2.1.1.2.1]','10604','Blocked intrusions','ips.blocked[fgIpsIntrusionsBlocked.0]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: FORTINET-FORTIGATE-MIB\r\nNumber of intrusions blocked per second.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','04f58b6b63b945a08a27799bee741702','0','2','0'),
('46975','20','get[1.3.6.1.4.1.12356.101.4.2.2.0]','10604','IPS database version','ips.database.version[fgSysVersionIps.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: FORTINET-FORTIGATE-MIB\r\nIPS signature database version installed on the device.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9a42006208224b94a64ecc13437516b6','0','2','0'),
('46976','20','get[1.3.6.1.4.1.12356.101.9.2.1.1.9.1]','10604','Detected anomaly based intrusions','ips.detected.anomaly[fgIpsAnomalyDetections.0]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: FORTINET-FORTIGATE-MIB\r\nNumber of intrusions detected as anomalies per second.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','afa9709de4c34d0c82aaf87c5b4f4572','0','2','0'),
('46977','20','get[1.3.6.1.4.1.12356.101.9.2.1.1.3.1]','10604','Detected critical intrusions','ips.detected.crit[fgIpsCritSevDetections.0]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: FORTINET-FORTIGATE-MIB\r\nNumber of critical severity intrusions detected per second.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','20ceeb0c520d454bba3d032d10a5db11','0','2','0'),
('46978','20','get[1.3.6.1.4.1.12356.101.9.2.1.1.4.1]','10604','Detected high intrusions','ips.detected.high[fgIpsHighSevDetections.0]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: FORTINET-FORTIGATE-MIB\r\nNumber of high severity intrusions detected per second.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','badcc4a4fe3d4b219a2c67cda182ff4c','0','2','0'),
('46979','20','get[1.3.6.1.4.1.12356.101.9.2.1.1.7.1]','10604','Detected info intrusions','ips.detected.info[fgIpsInfoSevDetections.0]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: FORTINET-FORTIGATE-MIB\r\nNumber of info severity intrusions detected per second.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f570cf723b904be593a99a8338e577de','0','2','0'),
('46980','20','get[1.3.6.1.4.1.12356.101.9.2.1.1.6.1]','10604','Detected low intrusions','ips.detected.low[fgIpsLowSevDetections.0]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: FORTINET-FORTIGATE-MIB\r\nNumber of low severity intrusions detected per second.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5edd46eba610442888acf0c8bdcde2c1','0','2','0'),
('46981','20','get[1.3.6.1.4.1.12356.101.9.2.1.1.5.1]','10604','Detected medium intrusions','ips.detected.med[fgIpsMedSevDetections.0]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: FORTINET-FORTIGATE-MIB\r\nNumber of medium severity intrusions detected per second.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0e4f211aa2b6492fa461e2bc5af1723f','0','2','0'),
('46982','20','get[1.3.6.1.4.1.12356.101.9.2.1.1.8.1]','10604','Detected signature based intrusions','ips.detected.sign[fgIpsSignatureDetections.0]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: FORTINET-FORTIGATE-MIB\r\nNumber of intrusions detected by signature per second.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bf7ab7c7fdfd42a28e15545904baa6dc','0','2','0'),
('46983','20','get[1.3.6.1.4.1.12356.101.9.2.1.1.1.1]','10604','Total detected intrusions','ips.detected.total[fgIpsIntrusionsDetected.0]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: FORTINET-FORTIGATE-MIB\r\nTotal number of intrusions detected per second.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f35dea442cbe4578a221571b2dbd676f','0','2','0'),
('46984','20','get[1.3.6.1.4.1.12356.101.4.1.8.0]','10604','IPv4 Active sessions','net.ipv4.sessions[fgSysSesCount.0]','5m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: FORTINET-FORTIGATE-MIB\r\nNumber of active sessions on the device.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ba89be1a4a01484f955fc6d740d1c736','0','2','0'),
('46985','20','walk[1.3.6.1.4.1.12356.101.4.9.2.1]','10604','SNMP walk SD-WAN health-checks','sdwan_health.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Used for discovering SD-WAN health-checks from FORTINET-FORTIGATE-MIB.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','de401c1befce453bb9de93cb154026d4','0','2','0'),
('46986','20','walk[1.3.6.1.4.1.12356.101.4.4.2.1]','10604','SNMP walk CPU','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Used for discovering CPU from FORTINET-FORTIGATE-MIB.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','47d06309bad546b0b303c0c602c76415','0','2','0'),
('46987','20','walk[1.3.6.1.4.1.12356.101.3.2.1.1]','10604','SNMP walk virtual domain','vdom.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Used for discovering virtual domains from FORTINET-FORTIGATE-MIB.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','14d4584977a74e0791bf063652bf4c39','0','2','0'),
('46988','20','get[1.3.6.1.4.1.12356.101.12.2.3.1.1.1]','10604','SSL VPN state','vpn.ssl.state[fgVpnSslState.0]','1m','31d','365d','0','3','','','','',NULL,'1211','','','0','','','','','0',NULL,'MIB: FORTINET-FORTIGATE-MIB\r\nUsed to determine whether SSL-VPN is enabled on this virtual domain.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','08bf282b9b3c4e78b139f3f6fe3bcd97','0','2','0'),
('46989','20','get[1.3.6.1.4.1.12356.101.12.1.1.0]','10604','Active IPsec VPN tunnels','vpn.tunnel.active[fgVpnTunnelUpCount.0]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: FORTINET-FORTIGATE-MIB\r\nNumber of IPsec VPN tunnels with at least one SA.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1699dd171a1f41d5896ac766477033ca','0','2','0'),
('46990','20','walk[1.3.6.1.4.1.12356.101.12.2.2.1.3,1.3.6.1.4.1.12356.101.12.2.2.1.20]','10604','SNMP walk VPN tunnels','vpn.tunnel.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Used for discovering VPN tunnels from FORTINET-FORTIGATE-MIB.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','349a383498cd42729940d1b9e5176e3e','0','2','0'),
('46991','20','get[1.3.6.1.4.1.12356.101.12.2.3.1.2.1]','10604','Active SSL VPN users','vpn.users.count[fgVpnSslStatsLoginUsers.0]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: FORTINET-FORTIGATE-MIB\r\nCurrent number of users logged in through SSL-VPN tunnels in the virtual domain.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c9a78b70b0f54fdc92d5efbfd38a32c5','0','2','0'),
('46992','20','walk[1.3.6.1.4.1.12356.101.14.4.3.1]','10604','SNMP walk wireless AP','wireless.ap.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Used for discovering wireless access points from FORTINET-FORTIGATE-MIB.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5135b14791f844e4b1e1cdef4817a5d2','0','2','0'),
('47069','21','','10627','Get ELB NLB alarms data','aws.elb.nlb.get_alarms','0s;m/1','0','0','0','4','','','','',NULL,NULL,'var AWS = {\r\n params: {},\r\n metadata: \'http://169.254.169.254/latest/\',\r\n\r\n getField: function (data, path) {\r\n var steps = path.split(\'.\');\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n\r\n data = data[step];\r\n }\r\n\r\n return data;\r\n },\r\n\r\n getRoleBaseCredentials: function () {\r\n AWS.params[\'auth_type\'] = \'role_base\';\r\n var request = new HttpRequest();\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token-ttl-seconds: 21600\');\r\n var token = request.put(AWS.metadata + \'api/token\');\r\n\r\n if (request.getStatus() !== 200 || token === null || token === \'\') {\r\n throw \'Error getting IMDSv2 session token.\';\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token: \' + token);\r\n var IamRoleName = request.get(AWS.metadata + \'meta-data/iam/security-credentials\');\r\n\r\n if (request.getStatus() !== 200 || IamRoleName === null || IamRoleName === \'\') {\r\n throw \'Error getting security credentials from instance metadata. Role not found.\';\r\n }\r\n\r\n credentials = request.get(AWS.metadata + \'meta-data/iam/security-credentials/\' + encodeURI(IamRoleName));\r\n\r\n if (request.getStatus() !== 200 || credentials === null || credentials === \'\') {\r\n throw \'Error getting security credentials from instance metadata.\';\r\n }\r\n\r\n try {\r\n credentials = JSON.parse(credentials);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from instance metadata. Check debug log for more information.\';\r\n }\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'Token\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n },\r\n\r\n setParams: function (params) {\r\n AWS.params[\'proxy\'] = params.proxy;\r\n switch (AWS.getField(params, \'auth_type\')) {\r\n case \'role_base\':\r\n AWS.getRoleBaseCredentials();\r\n break;\r\n case \'assume_role\':\r\n if (typeof params.metadata_auth === \'undefined\' || params.metadata_auth === \'\' || (params.metadata_auth !== \'true\' && params.metadata_auth !== \'false\')) {\r\n throw \'Required param metadata_auth for assume_role is not set or has invalid value: "\' + params.metadata_auth + \'". Expected "true" or "false".\';\r\n }\r\n if (params.metadata_auth === \'true\') {\r\n AWS.getRoleBaseCredentials();\r\n AWS.params[\'SessionToken\'] = AWS.params[\'Token\'];\r\n AWS.params[\'auth_type\'] = \'assume_role_metadata\';\r\n\r\n [\'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n if (params.metadata_auth === \'false\') {\r\n AWS.params[\'auth_type\'] = \'assume_role\';\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n const role_arn_regex = /role\\/(.+)$/;\r\n const match = AWS.params.role_arn.match(role_arn_regex);\r\n if (!match) {\r\n throw \'Invalid role ARN format.\';\r\n }\r\n\r\n const payload = {\r\n \'Action\': \'AssumeRole\',\r\n \'Version\': \'2011-06-15\',\r\n \'RoleArn\': AWS.params.role_arn,\r\n \'RoleSessionName\': match[1] + \'Session\',\r\n };\r\n\r\n credentials = AWS.getField(AWS.request(\'GET\', AWS.params.sts_region, \'sts\', AWS.prepareParams(payload), \'\'), \'AssumeRoleResponse.AssumeRoleResult.Credentials\');\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'SessionToken\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n break;\r\n default:\r\n AWS.params[\'auth_type\'] = \'access_key\';\r\n [\'AccessKeyId\', \'SecretAccessKey\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n [\'region\', \'arn\', \'loadbalancer_name\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n },\r\n\r\n sign: function (key, message) {\r\n var hex = hmac(\'sha256\', key, message);\r\n\r\n if ((hex.length % 2) === 1) {\r\n throw \'Invalid length of a hex string!\';\r\n }\r\n\r\n var result = new Int8Array(hex.length / 2);\r\n for (var i = 0, b = 0; i < hex.length; i += 2, b++) {\r\n result[b] = parseInt(hex.substring(i, i + 2), 16);\r\n }\r\n\r\n return result;\r\n },\r\n\r\n prepareParams: function (params) {\r\n var result = [];\r\n\r\n Object.keys(params).sort().forEach(function (key) {\r\n if (typeof params[key] !== \'object\') {\r\n result.push(key + \'=\' + encodeURIComponent(params[key]));\r\n }\r\n else {\r\n result.push(prepareObject(key, params[key]));\r\n }\r\n });\r\n\r\n return result.join(\'&\');\r\n },\r\n\r\n request: function (method, region, service, params, data) {\r\n if (typeof data === \'undefined\' || data === null) {\r\n data = \'\';\r\n }\r\n\r\n var amzdate = (new Date()).toISOString().replace(/\\.\\d+Z/, \'Z\').replace(/[-:]/g, \'\'),\r\n date = amzdate.replace(/T\\d+Z/, \'\'),\r\n host = service + \'.\' + region + \'.amazonaws.com\',\r\n canonical_uri = \'/\',\r\n canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\',\r\n signed_headers = \'content-encoding;host;x-amz-date\',\r\n canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data),\r\n credential_scope = date + \'/\' + region + \'/\' + service + \'/\' + \'aws4_request\',\r\n request_string = \'AWS4-HMAC-SHA256\' + \'\\n\' + amzdate + \'\\n\' + credential_scope + \'\\n\' + sha256(canonical_request),\r\n key = AWS.sign(\'AWS4\' + AWS.params.SecretAccessKey, date),\r\n key = AWS.sign(key, region),\r\n key = AWS.sign(key, service),\r\n key = AWS.sign(key, \'aws4_request\'),\r\n request = new HttpRequest(),\r\n url = \'https://\' + host + canonical_uri + \'?\' + params;\r\n\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'x-amz-date: \' + amzdate);\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Content-Encoding: amz-1.0\');\r\n request.addHeader(\'Authorization: \' + \'AWS4-HMAC-SHA256 Credential=\' + AWS.params.AccessKeyId + \'/\' + credential_scope + \', \' + \'SignedHeaders=\' + signed_headers + \', \' + \'Signature=\' + hmac(\'sha256\', key, request_string));\r\n if (AWS.params.auth_type === \'role_base\' || AWS.params.auth_type === \'assume_role_metadata\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n request.addHeader(\'X-Amz-Security-Token: \' + (AWS.params.auth_type === \'role_base\' ? AWS.params.Token : AWS.params.SessionToken));\r\n }\r\n\r\n Zabbix.log(4, \'[ AWS ELB ] Sending request: \' + url);\r\n response = request.get(url);\r\n Zabbix.log(4, \'[ AWS ELB ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n try {\r\n response = JSON.parse(XML.toJson(response));\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from AWS CloudWatch API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n return response;\r\n },\r\n\r\n getAlarms: function () {\r\n var payload = {\r\n \'Action\': \'DescribeAlarms\',\r\n \'Version\': \'2010-08-01\',\r\n \'MaxRecords\': 100\r\n },\r\n result = [];\r\n\r\n while (payload.NextToken !== \'\') {\r\n var alarms = AWS.getField(AWS.request(\'GET\', AWS.params.region, \'monitoring\', AWS.prepareParams(payload)), \'DescribeAlarmsResponse.DescribeAlarmsResult\');\r\n payload.NextToken = alarms.NextToken || \'\';\r\n alarms_list = AWS.getField(alarms, \'MetricAlarms\');\r\n regex = /loadbalancer\\/(.+)$/;\r\n\r\n if (!Array.isArray(alarms_list))\r\n alarms_list = [alarms_list];\r\n alarms_list.forEach(function (alarm) {\r\n var dimensions = alarm.Dimensions;\r\n\r\n if (Array.isArray(alarm.Metrics)) {\r\n alarm.Metrics.forEach(function (metric) {\r\n if (typeof metric.MetricStat === \'object\' && metric.MetricStat !== null\r\n && typeof metric.MetricStat.Metric === \'object\' && metric.MetricStat.Metric !== null\r\n && Array.isArray(metric.MetricStat.Metric.Dimensions)) {\r\n dimensions = dimensions.concat(metric.MetricStat.Metric.Dimensions);\r\n }\r\n });\r\n }\r\n for (var i in dimensions) {\r\n if ((dimensions[i].Name === \'LoadBalancer\' && dimensions[i].Value === AWS.params.arn.match(regex)[1])\r\n || (dimensions[i].Name === \'LoadBalancerName\' && dimensions[i].Value === AWS.params.loadbalancer_name)) {\r\n result.push(alarm);\r\n break;\r\n }\r\n }\r\n });\r\n }\r\n\r\n return result;\r\n }\r\n};\r\n\r\ntry {\r\n AWS.setParams(JSON.parse(value));\r\n\r\n return JSON.stringify(AWS.getAlarms());\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ AWS ELB Alarms ] ERROR: \' + error);\r\n\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'`DescribeAlarms` API method: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarms.html','0','7d','0','',NULL,'{$AWS.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','6d74c1a68ea9476dadc39b785f333d5d','0','2','0'),
('47070','21','','10627','Get metrics data','aws.elb.nlb.get_metrics','0s;m/1','0','0','0','4','','','','',NULL,NULL,'var AWS = {\r\n params: {},\r\n metadata: \'http://169.254.169.254/latest/\',\r\n request_period: 60,\r\n\r\n getField: function (data, path) {\r\n var steps = path.split(\'.\');\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n\r\n data = data[step];\r\n }\r\n\r\n return data;\r\n },\r\n\r\n getRoleBaseCredentials: function () {\r\n AWS.params[\'auth_type\'] = \'role_base\';\r\n var request = new HttpRequest();\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token-ttl-seconds: 21600\');\r\n var token = request.put(AWS.metadata + \'api/token\');\r\n\r\n if (request.getStatus() !== 200 || token === null || token === \'\') {\r\n throw \'Error getting IMDSv2 session token.\';\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token: \' + token);\r\n var IamRoleName = request.get(AWS.metadata + \'meta-data/iam/security-credentials\');\r\n\r\n if (request.getStatus() !== 200 || IamRoleName === null || IamRoleName === \'\') {\r\n throw \'Error getting security credentials from instance metadata. Role not found.\';\r\n }\r\n\r\n credentials = request.get(AWS.metadata + \'meta-data/iam/security-credentials/\' + encodeURI(IamRoleName));\r\n\r\n if (request.getStatus() !== 200 || credentials === null || credentials === \'\') {\r\n throw \'Error getting security credentials from instance metadata.\';\r\n }\r\n\r\n try {\r\n credentials = JSON.parse(credentials);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from instance metadata. Check debug log for more information.\';\r\n }\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'Token\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n },\r\n\r\n setParams: function (params) {\r\n AWS.params[\'proxy\'] = params.proxy;\r\n switch (AWS.getField(params, \'auth_type\')) {\r\n case \'role_base\':\r\n AWS.getRoleBaseCredentials();\r\n break;\r\n case \'assume_role\':\r\n if (typeof params.metadata_auth === \'undefined\' || params.metadata_auth === \'\' || (params.metadata_auth !== \'true\' && params.metadata_auth !== \'false\')) {\r\n throw \'Required param metadata_auth for assume_role is not set or has invalid value: "\' + params.metadata_auth + \'". Expected "true" or "false".\';\r\n }\r\n if (params.metadata_auth === \'true\') {\r\n AWS.getRoleBaseCredentials();\r\n AWS.params[\'SessionToken\'] = AWS.params[\'Token\'];\r\n AWS.params[\'auth_type\'] = \'assume_role_metadata\';\r\n\r\n [\'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n if (params.metadata_auth === \'false\') {\r\n AWS.params[\'auth_type\'] = \'assume_role\';\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n const role_arn_regex = /role\\/(.+)$/;\r\n const match = AWS.params.role_arn.match(role_arn_regex);\r\n if (!match) {\r\n throw \'Invalid role ARN format.\';\r\n }\r\n\r\n const payload = {\r\n \'Action\': \'AssumeRole\',\r\n \'Version\': \'2011-06-15\',\r\n \'RoleArn\': AWS.params.role_arn,\r\n \'RoleSessionName\': match[1] + \'Session\',\r\n };\r\n\r\n credentials = AWS.getField(AWS.request(\'POST\', AWS.params.sts_region, \'sts\', AWS.prepareParams(payload), \'\'), \'AssumeRoleResponse.AssumeRoleResult.Credentials\');\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'SessionToken\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n break;\r\n default:\r\n AWS.params[\'auth_type\'] = \'access_key\';\r\n [\'AccessKeyId\', \'SecretAccessKey\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n [\'region\', \'arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n },\r\n\r\n sign: function (key, message) {\r\n var hex = hmac(\'sha256\', key, message);\r\n\r\n if ((hex.length % 2) === 1) {\r\n throw \'Invalid length of a hex string!\';\r\n }\r\n\r\n var result = new Int8Array(hex.length / 2);\r\n for (var i = 0, b = 0; i < hex.length; i += 2, b++) {\r\n result[b] = parseInt(hex.substring(i, i + 2), 16);\r\n }\r\n\r\n return result;\r\n },\r\n\r\n prepareParams: function (params) {\r\n var result = [];\r\n\r\n Object.keys(params).sort().forEach(function (key) {\r\n if (typeof params[key] !== \'object\') {\r\n result.push(key + \'=\' + encodeURIComponent(params[key]));\r\n }\r\n else {\r\n result.push(prepareObject(key, params[key]));\r\n }\r\n });\r\n\r\n return result.join(\'&\');\r\n },\r\n\r\n renderMetricQuery: function (period, arn) {\r\n var metrics_list = [\r\n \'ActiveFlowCount:Average\',\r\n \'ActiveFlowCount_TCP:Average\',\r\n \'ActiveFlowCount_TLS:Average\',\r\n \'ActiveFlowCount_UDP:Average\',\r\n \'ClientTLSNegotiationErrorCount:Sum\',\r\n \'ConsumedLCUs:Sum\',\r\n \'ConsumedLCUs_TCP:Sum\',\r\n \'ConsumedLCUs_TLS:Sum\',\r\n \'ConsumedLCUs_UDP:Sum\',\r\n \'NewFlowCount:Sum\',\r\n \'NewFlowCount_TCP:Sum\',\r\n \'NewFlowCount_TLS:Sum\',\r\n \'NewFlowCount_UDP:Sum\',\r\n \'PeakPacketsPerSecond:Maximum\',\r\n \'PortAllocationErrorCount:Sum\',\r\n \'SecurityGroupBlockedFlowCount_Inbound_ICMP:Sum\',\r\n \'SecurityGroupBlockedFlowCount_Inbound_TCP:Sum\',\r\n \'SecurityGroupBlockedFlowCount_Inbound_UDP:Sum\',\r\n \'SecurityGroupBlockedFlowCount_Outbound_ICMP:Sum\',\r\n \'SecurityGroupBlockedFlowCount_Outbound_TCP:Sum\',\r\n \'SecurityGroupBlockedFlowCount_Outbound_UDP:Sum\',\r\n \'ProcessedBytes:Sum\',\r\n \'ProcessedBytes_TCP:Sum\',\r\n \'ProcessedBytes_TLS:Sum\',\r\n \'ProcessedBytes_UDP:Sum\',\r\n \'ProcessedPackets:Sum\',\r\n \'TargetTLSNegotiationErrorCount:Sum\',\r\n \'TCP_Client_Reset_Count:Sum\',\r\n \'TCP_ELB_Reset_Count:Sum\',\r\n \'TCP_Target_Reset_Count:Sum\',\r\n \'UnhealthyRoutingFlowCount:Sum\'\r\n ],\r\n regex = /loadbalancer\\/(.+)$/;\r\n\r\n var metric_payload = [];\r\n metrics_list.forEach(function (metric, index) {\r\n var parts = metric.split(\':\', 2);\r\n metric_payload.push({\r\n \'Id\': \'m\' + index,\r\n \'MetricStat\': {\r\n \'Metric\': {\r\n \'MetricName\': parts[0],\r\n \'Namespace\': \'AWS/NetworkELB\',\r\n \'Dimensions\': [\r\n {\r\n \'Name\': \'LoadBalancer\',\r\n \'Value\': arn.match(regex)[1],\r\n }\r\n ]\r\n },\r\n \'Period\': period,\r\n \'Stat\': parts[1],\r\n }\r\n });\r\n });\r\n\r\n return metric_payload;\r\n },\r\n\r\n request: function (method, region, service, params, data) {\r\n if (typeof data === \'undefined\' || data === null) {\r\n data = JSON.stringify([]);\r\n }\r\n else {\r\n data = JSON.stringify(data)\r\n }\r\n var amzdate = (new Date()).toISOString().replace(/\\.\\d+Z/, \'Z\').replace(/[-:]/g, \'\'),\r\n date = amzdate.replace(/T\\d+Z/, \'\'),\r\n canonical_uri = \'/\',\r\n host = service + \'.\' + region + \'.amazonaws.com\',\r\n canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\',\r\n signed_headers = \'content-encoding;host;x-amz-date\',\r\n canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data),\r\n credential_scope = date + \'/\' + region + \'/\' + service + \'/\' + \'aws4_request\',\r\n request_string = \'AWS4-HMAC-SHA256\' + \'\\n\' + amzdate + \'\\n\' + credential_scope + \'\\n\' + sha256(canonical_request),\r\n key = AWS.sign(\'AWS4\' + AWS.params.SecretAccessKey, date),\r\n key = AWS.sign(key, region),\r\n key = AWS.sign(key, service),\r\n key = AWS.sign(key, \'aws4_request\'),\r\n request = new HttpRequest(),\r\n url = \'https://\' + host + canonical_uri + \'?\' + params;\r\n\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'x-amz-date: \' + amzdate);\r\n request.addHeader(\'x-amz-content-sha256:\' + sha256(data));\r\n request.addHeader(\'X-Amz-Target: GraniteServiceVersion20100801.GetMetricData\')\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Content-Encoding: amz-1.0\');\r\n request.addHeader(\'Authorization: \' + \'AWS4-HMAC-SHA256 Credential=\' + AWS.params.AccessKeyId + \'/\' + credential_scope + \', \' + \'SignedHeaders=\' + signed_headers + \', \' + \'Signature=\' + hmac(\'sha256\', key, request_string));\r\n if (AWS.params.auth_type === \'role_base\' || AWS.params.auth_type === \'assume_role_metadata\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n request.addHeader(\'X-Amz-Security-Token: \' + (AWS.params.auth_type === \'role_base\' ? AWS.params.Token : AWS.params.SessionToken));\r\n }\r\n\r\n Zabbix.log(4, \'[ AWS ELB ] Sending request: \' + url);\r\n response = request.post(url, data);\r\n Zabbix.log(4, \'[ AWS ELB ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n if (request.getStatus() !== 200) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n return JSON.parse(response);\r\n },\r\n\r\n getMetricsData: function () {\r\n var end_time = Math.floor((new Date().getTime()) / 1000),\r\n start_time = end_time - AWS.request_period * 60;\r\n payload = {\r\n \'StartTime\': start_time,\r\n \'EndTime\': end_time,\r\n \'ScanBy\': \'TimestampDescending\',\r\n \'MetricDataQueries\': AWS.renderMetricQuery(AWS.request_period, AWS.params.arn)\r\n };\r\n\r\n return AWS.getField(AWS.request(\'POST\', AWS.params.region, \'monitoring\', \'\', payload), \'MetricDataResults\');\r\n }\r\n};\r\n\r\ntry {\r\n AWS.setParams(JSON.parse(value));\r\n return JSON.stringify(AWS.getMetricsData());\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ AWS ELB Get metrics] ERROR: \' + error);\r\n\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Get ELB Network Load Balancer metrics.\r\nFull metrics list related to Network Load Balancer: https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html','0','7d','0','',NULL,'{$AWS.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','76d374302b29430c8fe5813656ffd928','0','2','0'),
('47071','21','','10627','Get target groups','aws.elb.nlb.get_target_groups','0s;m/30','0','0','0','4','','','','',NULL,NULL,'var AWS = {\r\n params: {},\r\n metadata: \'http://169.254.169.254/latest/\',\r\n\r\n getField: function (data, path) {\r\n var steps = path.split(\'.\');\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n\r\n data = data[step];\r\n }\r\n\r\n return data;\r\n },\r\n\r\n getRoleBaseCredentials: function () {\r\n AWS.params[\'auth_type\'] = \'role_base\';\r\n var request = new HttpRequest();\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token-ttl-seconds: 21600\');\r\n var token = request.put(AWS.metadata + \'api/token\');\r\n\r\n if (request.getStatus() !== 200 || token === null || token === \'\') {\r\n throw \'Error getting IMDSv2 session token.\';\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token: \' + token);\r\n var IamRoleName = request.get(AWS.metadata + \'meta-data/iam/security-credentials\');\r\n\r\n if (request.getStatus() !== 200 || IamRoleName === null || IamRoleName === \'\') {\r\n throw \'Error getting security credentials from instance metadata. Role not found.\';\r\n }\r\n\r\n credentials = request.get(AWS.metadata + \'meta-data/iam/security-credentials/\' + encodeURI(IamRoleName));\r\n\r\n if (request.getStatus() !== 200 || credentials === null || credentials === \'\') {\r\n throw \'Error getting security credentials from instance metadata.\';\r\n }\r\n\r\n try {\r\n credentials = JSON.parse(credentials);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from instance metadata. Check debug log for more information.\';\r\n }\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'Token\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n },\r\n\r\n setParams: function (params) {\r\n AWS.params[\'proxy\'] = params.proxy;\r\n switch (AWS.getField(params, \'auth_type\')) {\r\n case \'role_base\':\r\n AWS.getRoleBaseCredentials();\r\n break;\r\n case \'assume_role\':\r\n if (typeof params.metadata_auth === \'undefined\' || params.metadata_auth === \'\' || (params.metadata_auth !== \'true\' && params.metadata_auth !== \'false\')) {\r\n throw \'Required param metadata_auth for assume_role is not set or has invalid value: "\' + params.metadata_auth + \'". Expected "true" or "false".\';\r\n }\r\n if (params.metadata_auth === \'true\') {\r\n AWS.getRoleBaseCredentials();\r\n AWS.params[\'SessionToken\'] = AWS.params[\'Token\'];\r\n AWS.params[\'auth_type\'] = \'assume_role_metadata\';\r\n\r\n [\'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n if (params.metadata_auth === \'false\') {\r\n AWS.params[\'auth_type\'] = \'assume_role\';\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n const role_arn_regex = /role\\/(.+)$/;\r\n const match = AWS.params.role_arn.match(role_arn_regex);\r\n if (!match) {\r\n throw \'Invalid role ARN format.\';\r\n }\r\n\r\n const payload = {\r\n \'Action\': \'AssumeRole\',\r\n \'Version\': \'2011-06-15\',\r\n \'RoleArn\': AWS.params.role_arn,\r\n \'RoleSessionName\': match[1] + \'Session\',\r\n };\r\n\r\n credentials = AWS.getField(AWS.request(\'GET\', AWS.params.sts_region, \'sts\', AWS.prepareParams(payload), \'\'), \'AssumeRoleResponse.AssumeRoleResult.Credentials\');\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'SessionToken\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n break;\r\n default:\r\n AWS.params[\'auth_type\'] = \'access_key\';\r\n [\'AccessKeyId\', \'SecretAccessKey\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n [\'region\', \'arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n },\r\n\r\n sign: function (key, message) {\r\n var hex = hmac(\'sha256\', key, message);\r\n\r\n if ((hex.length % 2) === 1) {\r\n throw \'Invalid length of a hex string!\';\r\n }\r\n\r\n var result = new Int8Array(hex.length / 2);\r\n for (var i = 0, b = 0; i < hex.length; i += 2, b++) {\r\n result[b] = parseInt(hex.substring(i, i + 2), 16);\r\n }\r\n\r\n return result;\r\n },\r\n\r\n prepareParams: function (params) {\r\n var result = [];\r\n\r\n Object.keys(params).sort().forEach(function (key) {\r\n if (typeof params[key] !== \'object\') {\r\n result.push(key + \'=\' + encodeURIComponent(params[key]));\r\n }\r\n else {\r\n result.push(prepareObject(key, params[key]));\r\n }\r\n });\r\n\r\n return result.join(\'&\');\r\n },\r\n\r\n request: function (method, region, service, params, data) {\r\n if (typeof data === \'undefined\' || data === null) {\r\n data = JSON.stringify([]);\r\n }\r\n var amzdate = (new Date()).toISOString().replace(/\\.\\d+Z/, \'Z\').replace(/[-:]/g, \'\'),\r\n date = amzdate.replace(/T\\d+Z/, \'\'),\r\n canonical_uri = \'/\',\r\n host = service + \'.\' + region + \'.amazonaws.com\',\r\n canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\',\r\n signed_headers = \'content-encoding;host;x-amz-date\',\r\n canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data),\r\n credential_scope = date + \'/\' + region + \'/\' + service + \'/\' + \'aws4_request\',\r\n request_string = \'AWS4-HMAC-SHA256\' + \'\\n\' + amzdate + \'\\n\' + credential_scope + \'\\n\' + sha256(canonical_request),\r\n key = AWS.sign(\'AWS4\' + AWS.params.SecretAccessKey, date),\r\n key = AWS.sign(key, region),\r\n key = AWS.sign(key, service),\r\n key = AWS.sign(key, \'aws4_request\'),\r\n request = new HttpRequest(),\r\n url = \'https://\' + host + canonical_uri + \'?\' + params;\r\n\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'x-amz-date: \' + amzdate);\r\n request.addHeader(\'x-amz-content-sha256:\' + sha256(data));\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Content-Encoding: amz-1.0\');\r\n request.addHeader(\'Authorization: \' + \'AWS4-HMAC-SHA256 Credential=\' + AWS.params.AccessKeyId + \'/\' + credential_scope + \', \' + \'SignedHeaders=\' + signed_headers + \', \' + \'Signature=\' + hmac(\'sha256\', key, request_string));\r\n if (AWS.params.auth_type === \'role_base\' || AWS.params.auth_type === \'assume_role_metadata\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n request.addHeader(\'X-Amz-Security-Token: \' + (AWS.params.auth_type === \'role_base\' ? AWS.params.Token : AWS.params.SessionToken));\r\n }\r\n\r\n Zabbix.log(4, \'[ AWS ELB ] Sending request: \' + url);\r\n response = request.get(url);\r\n Zabbix.log(4, \'[ AWS ELB ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n if (request.getStatus() !== 200) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n return JSON.parse(response);\r\n },\r\n\r\n listTargetGroups: function () {\r\n var lld_array = [],\r\n regex = /targetgroup\\/(.+)$/,\r\n payload = {\r\n \'Action\': \'DescribeTargetGroups\',\r\n \'LoadBalancerArn\': AWS.params.arn,\r\n \'Version\': \'2015-12-01\'\r\n };\r\n targets = AWS.getField(AWS.request(\'GET\', AWS.params.region, \'elasticloadbalancing\', AWS.prepareParams(payload), \'\'), \'DescribeTargetGroupsResponse.DescribeTargetGroupsResult.TargetGroups\');\r\n\r\n if (!Array.isArray(targets))\r\n targets = [targets]\r\n\r\n targets.forEach(function (targets) {\r\n lld_array.push(\r\n {\r\n target_name: AWS.getField(targets, \'TargetGroupName\'),\r\n target_arn: AWS.getField(targets, \'TargetGroupArn\').match(regex)[0],\r\n type: AWS.getField(targets, \'TargetType\'),\r\n protocol: AWS.getField(targets, \'Protocol\')\r\n }\r\n )\r\n });\r\n\r\n return lld_array;\r\n }\r\n};\r\n\r\ntry {\r\n AWS.setParams(JSON.parse(value));\r\n return JSON.stringify(AWS.listTargetGroups());\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ AWS ELB Target groups ] ERROR: \' + error);\r\n\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Get ELB target group.\r\n`DescribeTargetGroups` API method: https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html','0','7d','0','',NULL,'{$AWS.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','d80c238267744bc9b46de217acd93842','0','2','0'),
('47131','22','','10628','Website {$WEBSITE.DOMAIN} Get data','website.get.data','{$WEBSITE.GET.DATA.INTERVAL}','0','0','0','4','','','','',NULL,NULL,'const Website = {\r\n params: {},\r\n\r\n setParams(params) {\r\n [\'scheme\', \'domain\',\'width\', \'height\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || !params[field]) {\r\n throw new Error(\'Required param is not set: \' + field + \'.\');\r\n }\r\n });\r\n this.params = params;\r\n },\r\n\r\n getOptions(browser) {\r\n switch ((browser || \'\').trim().toLowerCase()) {\r\n case \'firefox\':\r\n return Browser.firefoxOptions();\r\n case \'safari\':\r\n return Browser.safariOptions();\r\n case \'edge\':\r\n return Browser.edgeOptions();\r\n default:\r\n return Browser.chromeOptions();\r\n }\r\n },\r\n\r\n getPerformance() {\r\n const browser = new Browser(Website.getOptions(Website.params.browser));\r\n const url = Website.params.scheme + \'://\' + Website.params.domain + \'/\' + Website.params.path\r\n const screenshot = \'\';\r\n browser.setScreenSize(Number(Website.params.width), Number(Website.params.height))\r\n browser.navigate(url);\r\n browser.collectPerfEntries();\r\n screenshot = browser.getScreenshot();\r\n const result = browser.getResult();\r\n result.screenshot = screenshot;\r\n\r\n return JSON.stringify(result);\r\n }\r\n};\r\n\r\ntry {\r\n Website.setParams(JSON.parse(value));\r\n return Website.getPerformance();\r\n\r\n} catch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ Website get metrics] ERROR: \' + error);\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Returns the JSON with performance counters of the requested website.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b5d5b396dfdc4fc99e4c2d0216728027','0','2','0'),
('47158','21','','10629','Get branches','github.repo.branches.get','{$GITHUB.INTERVAL:"get_branches"}','0','0','0','4','','','','',NULL,NULL,'var github = {\r\n params: {},\r\n\r\n setParams: function (params, required) {\r\n required = required || [];\r\n required.concat([\'api_url\', \'user_agent\', \'api_version\', \'repo_owner\', \'repo_name\', \'pagination_required\', \'api_token\']).forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\'\r\n || params[field] === \'\') {\r\n throw \'Required parameter is not set: "\' + field + \'".\';\r\n }\r\n });\r\n\r\n github.params = params;\r\n\r\n if (typeof github.params.api_url === \'string\' && !github.params.api_url.endsWith(\'/\')) {\r\n github.params.api_url += \'/\';\r\n }\r\n },\r\n\r\n apiRequest: function (url, pagination_required) {\r\n const next_pattern = /<([^>]+)>;\\s*rel="next"/i;\r\n var request = new HttpRequest(),\r\n response,\r\n headers,\r\n final_data = {\r\n headers: {},\r\n data: []\r\n };\r\n\r\n pagination_required = (typeof pagination_required !== \'undefined\') ? pagination_required : \'true\';\r\n\r\n request.addHeader(\'User-Agent: \' + github.params.user_agent);\r\n request.addHeader(\'Accept: application/vnd.github+json\');\r\n request.addHeader(\'X-GitHub-Api-Version: \' + github.params.api_version);\r\n request.addHeader(\'Authorization: Bearer \' + github.params.api_token);\r\n\r\n if (typeof github.params.http_proxy !== \'undefined\' && github.params.http_proxy !== \'\') {\r\n request.setProxy(github.params.http_proxy);\r\n Zabbix.log(4, \'[ GitHub Repo ] Using HTTP proxy: \' + github.params.http_proxy);\r\n }\r\n\r\n while (url) {\r\n Zabbix.log(4, \'[ GitHub Repo ] Sending request: \' + url);\r\n\r\n response = request.get(url);\r\n\r\n Zabbix.log(4, \'[ GitHub Repo ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from API. Check debug log for more information.\';\r\n }\r\n\r\n var parsed_data = github.parseData(response);\r\n final_data.data = final_data.data.concat(parsed_data);\r\n\r\n headers = request.getHeaders();\r\n\r\n url = ((headers.link || \'\').match(next_pattern) || [])[1];\r\n\r\n if (pagination_required === \'false\') {\r\n url = \'\';\r\n }\r\n }\r\n\r\n final_data.headers = request.getHeaders();\r\n\r\n delete request;\r\n\r\n return final_data;\r\n },\r\n\r\n parseData: function (response_data) {\r\n if (!response_data) {\r\n return [];\r\n }\r\n\r\n const normalization_required = "total_count" in response_data && !("url" in response_data);\r\n if (!normalization_required) return response_data;\r\n\r\n delete response_data.incomplete_results;\r\n delete response_data.repository_selection;\r\n delete response_data.total_count;\r\n\r\n const namespaceKey = Object.keys(response_data)[0];\r\n response_data = response_data[namespaceKey];\r\n\r\n return response_data;\r\n },\r\n\r\n itemsCount: function (response_data) {\r\n const last_page_number = /<[^>]+page=(\\d+)>;\\s*rel="last"/i;\r\n\r\n if (response_data.headers.link){\r\n return response_data.headers.link.match(last_page_number)[1];\r\n }\r\n\r\n return response_data.data.length;\r\n }\r\n}\r\n\r\ntry {\r\n github.setParams(JSON.parse(value), [\'api_query\']);\r\n\r\n var result = github.apiRequest(github.params.api_url + github.params.api_query + \'?\' + github.params.query_params || \'\', github.params.pagination_required);\r\n\r\n return JSON.stringify(result);\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ GitHub Repo ] ERROR: \' + error);\r\n return JSON.stringify({ error: error });\r\n}','','0','','','','','0',NULL,'Get the repository branches.\r\n\r\nInformation about endpoint:\r\nhttps://docs.github.com/en/rest/branches/branches?apiVersion=2022-11-28#list-branches','0','7d','0','',NULL,'{$GITHUB.TIMEOUT:"get_branches"}','','','','200','1','0','','','0','0','0','0','0','0','0','e348ae4bd2c04b5c88df2f5cb422eb61','0','2','0'),
('47159','21','','10629','Get issue count','github.repo.issues.get','{$GITHUB.INTERVAL:"get_issues_count"}','0','0','0','4','','','','',NULL,NULL,'var github = {\r\n params: {},\r\n\r\n setParams: function (params, required) {\r\n required = required || [];\r\n required.concat([\'api_url\', \'user_agent\', \'api_version\', \'repo_owner\', \'repo_name\', \'pagination_required\', \'api_token\']).forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\'\r\n || params[field] === \'\') {\r\n throw \'Required parameter is not set: "\' + field + \'".\';\r\n }\r\n });\r\n\r\n github.params = params;\r\n\r\n if (typeof github.params.api_url === \'string\' && !github.params.api_url.endsWith(\'/\')) {\r\n github.params.api_url += \'/\';\r\n }\r\n },\r\n\r\n apiRequest: function (url, pagination_required) {\r\n const next_pattern = /<([^>]+)>;\\s*rel="next"/i;\r\n var request = new HttpRequest(),\r\n response,\r\n headers,\r\n final_data = {\r\n headers: {},\r\n data: []\r\n };\r\n\r\n pagination_required = (typeof pagination_required !== \'undefined\') ? pagination_required : \'true\';\r\n\r\n request.addHeader(\'User-Agent: \' + github.params.user_agent);\r\n request.addHeader(\'Accept: application/vnd.github+json\');\r\n request.addHeader(\'X-GitHub-Api-Version: \' + github.params.api_version);\r\n request.addHeader(\'Authorization: Bearer \' + github.params.api_token);\r\n\r\n if (typeof github.params.http_proxy !== \'undefined\' && github.params.http_proxy !== \'\') {\r\n request.setProxy(github.params.http_proxy);\r\n Zabbix.log(4, \'[ GitHub Repo ] Using HTTP proxy: \' + github.params.http_proxy);\r\n }\r\n\r\n while (url) {\r\n Zabbix.log(4, \'[ GitHub Repo ] Sending request: \' + url);\r\n\r\n response = request.get(url);\r\n\r\n Zabbix.log(4, \'[ GitHub Repo ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from API. Check debug log for more information.\';\r\n }\r\n\r\n var parsed_data = github.parseData(response);\r\n final_data.data = final_data.data.concat(parsed_data);\r\n\r\n headers = request.getHeaders();\r\n\r\n url = ((headers.link || \'\').match(next_pattern) || [])[1];\r\n\r\n if (pagination_required === \'false\') {\r\n url = \'\';\r\n }\r\n }\r\n\r\n final_data.headers = request.getHeaders();\r\n\r\n delete request;\r\n\r\n return final_data;\r\n },\r\n\r\n parseData: function (response_data) {\r\n if (!response_data) {\r\n return [];\r\n }\r\n\r\n const normalization_required = "total_count" in response_data && !("url" in response_data);\r\n if (!normalization_required) return response_data;\r\n\r\n delete response_data.incomplete_results;\r\n delete response_data.repository_selection;\r\n delete response_data.total_count;\r\n\r\n const namespaceKey = Object.keys(response_data)[0];\r\n response_data = response_data[namespaceKey];\r\n\r\n return response_data;\r\n },\r\n\r\n itemsCount: function (response_data) {\r\n const last_page_number = /<[^>]+page=(\\d+)>;\\s*rel="last"/i;\r\n\r\n if (response_data.headers.link){\r\n return response_data.headers.link.match(last_page_number)[1];\r\n }\r\n\r\n return response_data.data.length;\r\n }\r\n}\r\n\r\ntry {\r\n github.setParams(JSON.parse(value));\r\n\r\n var issues_count,\r\n issues_count_result = {\r\n issues: {\r\n total: 0,\r\n open: 0,\r\n closed: 0\r\n },\r\n pr: {\r\n total: 0,\r\n open: 0,\r\n closed: 0\r\n }\r\n };\r\n\r\n issues_count = github.apiRequest(github.params.api_url + \'repos/\' + github.params.repo_owner + \'/\' + github.params.repo_name + \'/pulls?state=all&per_page=1\', github.params.pagination_required);\r\n issues_count_result.pr.total = github.itemsCount(issues_count);\r\n\r\n issues_count = github.apiRequest(github.params.api_url + \'repos/\' + github.params.repo_owner + \'/\' + github.params.repo_name + \'/pulls?state=open&per_page=1\', github.params.pagination_required);\r\n issues_count_result.pr.open = github.itemsCount(issues_count);\r\n\r\n issues_count_result.pr.closed = issues_count_result.pr.total - issues_count_result.pr.open;\r\n\r\n\r\n issues_count = github.apiRequest(github.params.api_url + \'repos/\' + github.params.repo_owner + \'/\' + github.params.repo_name + \'/issues?state=all&per_page=1\', github.params.pagination_required);\r\n issues_count_result.issues.total = github.itemsCount(issues_count) - issues_count_result.pr.total;\r\n\r\n issues_count = github.apiRequest(github.params.api_url + \'repos/\' + github.params.repo_owner + \'/\' + github.params.repo_name + \'/issues?state=open&per_page=1\', github.params.pagination_required);\r\n issues_count_result.issues.open = github.itemsCount(issues_count) - issues_count_result.pr.open;\r\n\r\n issues_count_result.issues.closed = issues_count_result.issues.total - issues_count_result.issues.open;\r\n\r\n return JSON.stringify(issues_count_result);\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ GitHub Repo ] ERROR: \' + error);\r\n return JSON.stringify({ error: error });\r\n}','','0','','','','','0',NULL,'Get the count of issues and pull requests in the repository (total, open, closed).\r\n\r\nInformation about endpoint for issues:\r\nhttps://docs.github.com/en/rest/issues/issues?apiVersion=2022-11-28#list-repository-issues\r\n\r\nInformation about endpoint for pull requests:\r\nhttps://docs.github.com/en/rest/pulls/pulls?apiVersion=2022-11-28#list-pull-requests','0','7d','0','',NULL,'{$GITHUB.TIMEOUT:"get_issues_count"}','','','','200','1','0','','','0','0','0','0','0','0','0','f88f02dc593844a89eb601e833a1a19c','0','2','0'),
('47160','21','','10629','Number of releases','github.repo.releases.count','{$GITHUB.INTERVAL:"get_releases_count"}','31d','365d','0','3','','','','',NULL,NULL,'var github = {\r\n params: {},\r\n\r\n setParams: function (params, required) {\r\n required = required || [];\r\n required.concat([\'api_url\', \'user_agent\', \'api_version\', \'repo_owner\', \'repo_name\', \'pagination_required\', \'api_token\']).forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\'\r\n || params[field] === \'\') {\r\n throw \'Required parameter is not set: "\' + field + \'".\';\r\n }\r\n });\r\n\r\n github.params = params;\r\n\r\n if (typeof github.params.api_url === \'string\' && !github.params.api_url.endsWith(\'/\')) {\r\n github.params.api_url += \'/\';\r\n }\r\n },\r\n\r\n apiRequest: function (url, pagination_required) {\r\n const next_pattern = /<([^>]+)>;\\s*rel="next"/i;\r\n var request = new HttpRequest(),\r\n response,\r\n headers,\r\n final_data = {\r\n headers: {},\r\n data: []\r\n };\r\n\r\n pagination_required = (typeof pagination_required !== \'undefined\') ? pagination_required : \'true\';\r\n\r\n request.addHeader(\'User-Agent: \' + github.params.user_agent);\r\n request.addHeader(\'Accept: application/vnd.github+json\');\r\n request.addHeader(\'X-GitHub-Api-Version: \' + github.params.api_version);\r\n request.addHeader(\'Authorization: Bearer \' + github.params.api_token);\r\n\r\n if (typeof github.params.http_proxy !== \'undefined\' && github.params.http_proxy !== \'\') {\r\n request.setProxy(github.params.http_proxy);\r\n Zabbix.log(4, \'[ GitHub Repo ] Using HTTP proxy: \' + github.params.http_proxy);\r\n }\r\n\r\n while (url) {\r\n Zabbix.log(4, \'[ GitHub Repo ] Sending request: \' + url);\r\n\r\n response = request.get(url);\r\n\r\n Zabbix.log(4, \'[ GitHub Repo ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from API. Check debug log for more information.\';\r\n }\r\n\r\n var parsed_data = github.parseData(response);\r\n final_data.data = final_data.data.concat(parsed_data);\r\n\r\n headers = request.getHeaders();\r\n\r\n url = ((headers.link || \'\').match(next_pattern) || [])[1];\r\n\r\n if (pagination_required === \'false\') {\r\n url = \'\';\r\n }\r\n }\r\n\r\n final_data.headers = request.getHeaders();\r\n\r\n delete request;\r\n\r\n return final_data;\r\n },\r\n\r\n parseData: function (response_data) {\r\n if (!response_data) {\r\n return [];\r\n }\r\n\r\n const normalization_required = "total_count" in response_data && !("url" in response_data);\r\n if (!normalization_required) return response_data;\r\n\r\n delete response_data.incomplete_results;\r\n delete response_data.repository_selection;\r\n delete response_data.total_count;\r\n\r\n const namespaceKey = Object.keys(response_data)[0];\r\n response_data = response_data[namespaceKey];\r\n\r\n return response_data;\r\n },\r\n\r\n itemsCount: function (response_data) {\r\n const last_page_number = /<[^>]+page=(\\d+)>;\\s*rel="last"/i;\r\n\r\n if (response_data.headers.link){\r\n return response_data.headers.link.match(last_page_number)[1];\r\n }\r\n\r\n return response_data.data.length;\r\n }\r\n}\r\n\r\ntry {\r\n github.setParams(JSON.parse(value), [\'api_query\']);\r\n\r\n var result = github.apiRequest(github.params.api_url + github.params.api_query + \'?\' + github.params.query_params || \'\', github.params.pagination_required);\r\n\r\n return github.itemsCount(result);\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ GitHub Repo ] ERROR: \' + error);\r\n return JSON.stringify({ error: error });\r\n}','','0','','','','','0',NULL,'The number of releases in the repository. Note that this number also includes draft releases.\r\n\r\nInformation about endpoint:\r\nhttps://docs.github.com/en/rest/releases/releases?apiVersion=2022-11-28#list-releases','0','7d','0','',NULL,'{$GITHUB.TIMEOUT:"get_releases_count"}','','','','200','1','0','','','0','0','0','0','0','0','0','0098bfc3ed5c4181a7dcd1eceb8e7251','0','2','0'),
('47161','21','','10629','Get repository','github.repo.repository.get','{$GITHUB.INTERVAL:"get_repo"}','0','0','0','4','','','','',NULL,NULL,'var github = {\r\n params: {},\r\n\r\n setParams: function (params, required) {\r\n required = required || [];\r\n required.concat([\'api_url\', \'user_agent\', \'api_version\', \'repo_owner\', \'repo_name\', \'pagination_required\', \'api_token\']).forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\'\r\n || params[field] === \'\') {\r\n throw \'Required parameter is not set: "\' + field + \'".\';\r\n }\r\n });\r\n\r\n github.params = params;\r\n\r\n if (typeof github.params.api_url === \'string\' && !github.params.api_url.endsWith(\'/\')) {\r\n github.params.api_url += \'/\';\r\n }\r\n },\r\n\r\n apiRequest: function (url, pagination_required) {\r\n const next_pattern = /<([^>]+)>;\\s*rel="next"/i;\r\n var request = new HttpRequest(),\r\n response,\r\n headers,\r\n final_data = {\r\n headers: {},\r\n data: []\r\n };\r\n\r\n pagination_required = (typeof pagination_required !== \'undefined\') ? pagination_required : \'true\';\r\n\r\n request.addHeader(\'User-Agent: \' + github.params.user_agent);\r\n request.addHeader(\'Accept: application/vnd.github+json\');\r\n request.addHeader(\'X-GitHub-Api-Version: \' + github.params.api_version);\r\n request.addHeader(\'Authorization: Bearer \' + github.params.api_token);\r\n\r\n if (typeof github.params.http_proxy !== \'undefined\' && github.params.http_proxy !== \'\') {\r\n request.setProxy(github.params.http_proxy);\r\n Zabbix.log(4, \'[ GitHub Repo ] Using HTTP proxy: \' + github.params.http_proxy);\r\n }\r\n\r\n while (url) {\r\n Zabbix.log(4, \'[ GitHub Repo ] Sending request: \' + url);\r\n\r\n response = request.get(url);\r\n\r\n Zabbix.log(4, \'[ GitHub Repo ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from API. Check debug log for more information.\';\r\n }\r\n\r\n var parsed_data = github.parseData(response);\r\n final_data.data = final_data.data.concat(parsed_data);\r\n\r\n headers = request.getHeaders();\r\n\r\n url = ((headers.link || \'\').match(next_pattern) || [])[1];\r\n\r\n if (pagination_required === \'false\') {\r\n url = \'\';\r\n }\r\n }\r\n\r\n final_data.headers = request.getHeaders();\r\n\r\n delete request;\r\n\r\n return final_data;\r\n },\r\n\r\n parseData: function (response_data) {\r\n if (!response_data) {\r\n return [];\r\n }\r\n\r\n const normalization_required = "total_count" in response_data && !("url" in response_data);\r\n if (!normalization_required) return response_data;\r\n\r\n delete response_data.incomplete_results;\r\n delete response_data.repository_selection;\r\n delete response_data.total_count;\r\n\r\n const namespaceKey = Object.keys(response_data)[0];\r\n response_data = response_data[namespaceKey];\r\n\r\n return response_data;\r\n },\r\n\r\n itemsCount: function (response_data) {\r\n const last_page_number = /<[^>]+page=(\\d+)>;\\s*rel="last"/i;\r\n\r\n if (response_data.headers.link){\r\n return response_data.headers.link.match(last_page_number)[1];\r\n }\r\n\r\n return response_data.data.length;\r\n }\r\n}\r\n\r\ntry {\r\n github.setParams(JSON.parse(value), [\'api_query\']);\r\n\r\n var repo_data = github.apiRequest(github.params.api_url + github.params.api_query);\r\n\r\n if (repo_data.data[0].fork === false) {\r\n var repo_community_profile = github.apiRequest(github.params.api_url + github.params.api_query + \'/community/profile\');\r\n\r\n repo_data.data[0].zbx_community_profile = repo_community_profile.data[0];\r\n }\r\n\r\n return JSON.stringify(repo_data);\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ GitHub Repo ] ERROR: \' + error);\r\n return JSON.stringify({ error: error });\r\n}','','0','','','','','0',NULL,'Get the general repository information. If the repository is not a fork, the community profile metrics are also retrieved.\r\n\r\nInformation about endpoint:\r\nhttps://docs.github.com/en/rest/repos/repos?apiVersion=2022-11-28#get-a-repository\r\n\r\nInformation about community profile metrics:\r\nhttps://docs.github.com/en/rest/metrics/community?apiVersion=2022-11-28#get-community-profile-metrics','0','7d','0','',NULL,'{$GITHUB.TIMEOUT:"get_repo"}','','','','200','1','0','','','0','0','0','0','0','0','0','37e94a93bf924d84bb6609eec47ff081','0','2','0'),
('47162','21','','10629','Get self-hosted runners','github.repo.runners.get','{$GITHUB.INTERVAL:"get_runners"}','0','0','0','4','','','','',NULL,NULL,'var github = {\r\n params: {},\r\n\r\n setParams: function (params, required) {\r\n required = required || [];\r\n required.concat([\'api_url\', \'user_agent\', \'api_version\', \'repo_owner\', \'repo_name\', \'pagination_required\', \'api_token\']).forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\'\r\n || params[field] === \'\') {\r\n throw \'Required parameter is not set: "\' + field + \'".\';\r\n }\r\n });\r\n\r\n github.params = params;\r\n\r\n if (typeof github.params.api_url === \'string\' && !github.params.api_url.endsWith(\'/\')) {\r\n github.params.api_url += \'/\';\r\n }\r\n },\r\n\r\n apiRequest: function (url, pagination_required) {\r\n const next_pattern = /<([^>]+)>;\\s*rel="next"/i;\r\n var request = new HttpRequest(),\r\n response,\r\n headers,\r\n final_data = {\r\n headers: {},\r\n data: []\r\n };\r\n\r\n pagination_required = (typeof pagination_required !== \'undefined\') ? pagination_required : \'true\';\r\n\r\n request.addHeader(\'User-Agent: \' + github.params.user_agent);\r\n request.addHeader(\'Accept: application/vnd.github+json\');\r\n request.addHeader(\'X-GitHub-Api-Version: \' + github.params.api_version);\r\n request.addHeader(\'Authorization: Bearer \' + github.params.api_token);\r\n\r\n if (typeof github.params.http_proxy !== \'undefined\' && github.params.http_proxy !== \'\') {\r\n request.setProxy(github.params.http_proxy);\r\n Zabbix.log(4, \'[ GitHub Repo ] Using HTTP proxy: \' + github.params.http_proxy);\r\n }\r\n\r\n while (url) {\r\n Zabbix.log(4, \'[ GitHub Repo ] Sending request: \' + url);\r\n\r\n response = request.get(url);\r\n\r\n Zabbix.log(4, \'[ GitHub Repo ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from API. Check debug log for more information.\';\r\n }\r\n\r\n var parsed_data = github.parseData(response);\r\n final_data.data = final_data.data.concat(parsed_data);\r\n\r\n headers = request.getHeaders();\r\n\r\n url = ((headers.link || \'\').match(next_pattern) || [])[1];\r\n\r\n if (pagination_required === \'false\') {\r\n url = \'\';\r\n }\r\n }\r\n\r\n final_data.headers = request.getHeaders();\r\n\r\n delete request;\r\n\r\n return final_data;\r\n },\r\n\r\n parseData: function (response_data) {\r\n if (!response_data) {\r\n return [];\r\n }\r\n\r\n const normalization_required = "total_count" in response_data && !("url" in response_data);\r\n if (!normalization_required) return response_data;\r\n\r\n delete response_data.incomplete_results;\r\n delete response_data.repository_selection;\r\n delete response_data.total_count;\r\n\r\n const namespaceKey = Object.keys(response_data)[0];\r\n response_data = response_data[namespaceKey];\r\n\r\n return response_data;\r\n },\r\n\r\n itemsCount: function (response_data) {\r\n const last_page_number = /<[^>]+page=(\\d+)>;\\s*rel="last"/i;\r\n\r\n if (response_data.headers.link){\r\n return response_data.headers.link.match(last_page_number)[1];\r\n }\r\n\r\n return response_data.data.length;\r\n }\r\n}\r\n\r\ntry {\r\n github.setParams(JSON.parse(value), [\'api_query\']);\r\n\r\n var result = github.apiRequest(github.params.api_url + github.params.api_query + \'?\' + github.params.query_params || \'\', github.params.pagination_required);\r\n\r\n return JSON.stringify(result);\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ GitHub Repo ] ERROR: \' + error);\r\n return JSON.stringify({ error: error });\r\n}','','0','','','','','0',NULL,'Get the self-hosted runners of the repository.\r\n\r\nNote that admin access to the repository is required to use this endpoint:\r\nhttps://docs.github.com/en/rest/actions/self-hosted-runners?apiVersion=2022-11-28#list-self-hosted-runners-for-a-repository','0','7d','0','',NULL,'{$GITHUB.TIMEOUT:"get_runners"}','','','','200','1','0','','','0','0','0','0','0','0','0','a0ca909d3c734d859594771985a5c302','0','2','0'),
('47163','21','','10629','Number of tags','github.repo.tags.count','{$GITHUB.INTERVAL:"get_tags_count"}','31d','365d','0','3','','','','',NULL,NULL,'var github = {\r\n params: {},\r\n\r\n setParams: function (params, required) {\r\n required = required || [];\r\n required.concat([\'api_url\', \'user_agent\', \'api_version\', \'repo_owner\', \'repo_name\', \'pagination_required\', \'api_token\']).forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\'\r\n || params[field] === \'\') {\r\n throw \'Required parameter is not set: "\' + field + \'".\';\r\n }\r\n });\r\n\r\n github.params = params;\r\n\r\n if (typeof github.params.api_url === \'string\' && !github.params.api_url.endsWith(\'/\')) {\r\n github.params.api_url += \'/\';\r\n }\r\n },\r\n\r\n apiRequest: function (url, pagination_required) {\r\n const next_pattern = /<([^>]+)>;\\s*rel="next"/i;\r\n var request = new HttpRequest(),\r\n response,\r\n headers,\r\n final_data = {\r\n headers: {},\r\n data: []\r\n };\r\n\r\n pagination_required = (typeof pagination_required !== \'undefined\') ? pagination_required : \'true\';\r\n\r\n request.addHeader(\'User-Agent: \' + github.params.user_agent);\r\n request.addHeader(\'Accept: application/vnd.github+json\');\r\n request.addHeader(\'X-GitHub-Api-Version: \' + github.params.api_version);\r\n request.addHeader(\'Authorization: Bearer \' + github.params.api_token);\r\n\r\n if (typeof github.params.http_proxy !== \'undefined\' && github.params.http_proxy !== \'\') {\r\n request.setProxy(github.params.http_proxy);\r\n Zabbix.log(4, \'[ GitHub Repo ] Using HTTP proxy: \' + github.params.http_proxy);\r\n }\r\n\r\n while (url) {\r\n Zabbix.log(4, \'[ GitHub Repo ] Sending request: \' + url);\r\n\r\n response = request.get(url);\r\n\r\n Zabbix.log(4, \'[ GitHub Repo ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from API. Check debug log for more information.\';\r\n }\r\n\r\n var parsed_data = github.parseData(response);\r\n final_data.data = final_data.data.concat(parsed_data);\r\n\r\n headers = request.getHeaders();\r\n\r\n url = ((headers.link || \'\').match(next_pattern) || [])[1];\r\n\r\n if (pagination_required === \'false\') {\r\n url = \'\';\r\n }\r\n }\r\n\r\n final_data.headers = request.getHeaders();\r\n\r\n delete request;\r\n\r\n return final_data;\r\n },\r\n\r\n parseData: function (response_data) {\r\n if (!response_data) {\r\n return [];\r\n }\r\n\r\n const normalization_required = "total_count" in response_data && !("url" in response_data);\r\n if (!normalization_required) return response_data;\r\n\r\n delete response_data.incomplete_results;\r\n delete response_data.repository_selection;\r\n delete response_data.total_count;\r\n\r\n const namespaceKey = Object.keys(response_data)[0];\r\n response_data = response_data[namespaceKey];\r\n\r\n return response_data;\r\n },\r\n\r\n itemsCount: function (response_data) {\r\n const last_page_number = /<[^>]+page=(\\d+)>;\\s*rel="last"/i;\r\n\r\n if (response_data.headers.link){\r\n return response_data.headers.link.match(last_page_number)[1];\r\n }\r\n\r\n return response_data.data.length;\r\n }\r\n}\r\n\r\ntry {\r\n github.setParams(JSON.parse(value), [\'api_query\']);\r\n\r\n var result = github.apiRequest(github.params.api_url + github.params.api_query + \'?\' + github.params.query_params || \'\', github.params.pagination_required);\r\n\r\n return github.itemsCount(result);\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ GitHub Repo ] ERROR: \' + error);\r\n return JSON.stringify({ error: error });\r\n}','','0','','','','','0',NULL,'The number of tags in the repository.\r\n\r\nInformation about endpoint:\r\nhttps://docs.github.com/en/rest/repos/repos?apiVersion=2022-11-28#list-repository-tags','0','7d','0','',NULL,'{$GITHUB.TIMEOUT:"get_tags_count"}','','','','200','1','0','','','0','0','0','0','0','0','0','49d81fc72a6a455ebee7304592056930','0','2','0'),
('47164','21','','10629','Get workflows','github.repo.workflows.get','{$GITHUB.INTERVAL:"get_workflows"}','0','0','0','4','','','','',NULL,NULL,'var github = {\r\n params: {},\r\n\r\n setParams: function (params, required) {\r\n required = required || [];\r\n required.concat([\'api_url\', \'user_agent\', \'api_version\', \'repo_owner\', \'repo_name\', \'pagination_required\', \'api_token\']).forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\'\r\n || params[field] === \'\') {\r\n throw \'Required parameter is not set: "\' + field + \'".\';\r\n }\r\n });\r\n\r\n github.params = params;\r\n\r\n if (typeof github.params.api_url === \'string\' && !github.params.api_url.endsWith(\'/\')) {\r\n github.params.api_url += \'/\';\r\n }\r\n },\r\n\r\n apiRequest: function (url, pagination_required) {\r\n const next_pattern = /<([^>]+)>;\\s*rel="next"/i;\r\n var request = new HttpRequest(),\r\n response,\r\n headers,\r\n final_data = {\r\n headers: {},\r\n data: []\r\n };\r\n\r\n pagination_required = (typeof pagination_required !== \'undefined\') ? pagination_required : \'true\';\r\n\r\n request.addHeader(\'User-Agent: \' + github.params.user_agent);\r\n request.addHeader(\'Accept: application/vnd.github+json\');\r\n request.addHeader(\'X-GitHub-Api-Version: \' + github.params.api_version);\r\n request.addHeader(\'Authorization: Bearer \' + github.params.api_token);\r\n\r\n if (typeof github.params.http_proxy !== \'undefined\' && github.params.http_proxy !== \'\') {\r\n request.setProxy(github.params.http_proxy);\r\n Zabbix.log(4, \'[ GitHub Repo ] Using HTTP proxy: \' + github.params.http_proxy);\r\n }\r\n\r\n while (url) {\r\n Zabbix.log(4, \'[ GitHub Repo ] Sending request: \' + url);\r\n\r\n response = request.get(url);\r\n\r\n Zabbix.log(4, \'[ GitHub Repo ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from API. Check debug log for more information.\';\r\n }\r\n\r\n var parsed_data = github.parseData(response);\r\n final_data.data = final_data.data.concat(parsed_data);\r\n\r\n headers = request.getHeaders();\r\n\r\n url = ((headers.link || \'\').match(next_pattern) || [])[1];\r\n\r\n if (pagination_required === \'false\') {\r\n url = \'\';\r\n }\r\n }\r\n\r\n final_data.headers = request.getHeaders();\r\n\r\n delete request;\r\n\r\n return final_data;\r\n },\r\n\r\n parseData: function (response_data) {\r\n if (!response_data) {\r\n return [];\r\n }\r\n\r\n const normalization_required = "total_count" in response_data && !("url" in response_data);\r\n if (!normalization_required) return response_data;\r\n\r\n delete response_data.incomplete_results;\r\n delete response_data.repository_selection;\r\n delete response_data.total_count;\r\n\r\n const namespaceKey = Object.keys(response_data)[0];\r\n response_data = response_data[namespaceKey];\r\n\r\n return response_data;\r\n },\r\n\r\n itemsCount: function (response_data) {\r\n const last_page_number = /<[^>]+page=(\\d+)>;\\s*rel="last"/i;\r\n\r\n if (response_data.headers.link){\r\n return response_data.headers.link.match(last_page_number)[1];\r\n }\r\n\r\n return response_data.data.length;\r\n }\r\n}\r\n\r\ntry {\r\n github.setParams(JSON.parse(value), [\'api_query\']);\r\n\r\n var repo_data = github.apiRequest(github.params.api_url + github.params.api_query);\r\n\r\n if (repo_data.data[0].fork === false) {\r\n var repo_community_profile = github.apiRequest(github.params.api_url + github.params.api_query + \'/community/profile\');\r\n\r\n repo_data.data[0].zbx_community_profile = repo_community_profile.data[0];\r\n }\r\n\r\n return JSON.stringify(repo_data);\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ GitHub Repo ] ERROR: \' + error);\r\n return JSON.stringify({ error: error });\r\n}','','0','','','','','0',NULL,'Get the repository workflows.\r\n\r\nInformation about endpoint:\r\nhttps://docs.github.com/en/rest/actions/workflows?apiVersion=2022-11-28#list-repository-workflows','0','7d','0','',NULL,'{$GITHUB.TIMEOUT:"get_workflows"}','','','','200','1','0','','','0','0','0','0','0','0','0','d45dbcb0493d4258ac2cdba10648b3b3','0','2','0'),
('47195','16','','10630','License: Users: Get','jmx.discovery[attributes,"com.atlassian.jira:type=jira.license"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'License data for the discovery rule.','0','7d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','27334384618d4b2f91d700b188463a56','0','2','0'),
('47196','16','','10630','DB: Connections: Limit','jmx["com.atlassian.jira:name=BasicDataSource,connectionpool=connections",MaxTotal]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'Total allowed database connection count.','0','7d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','11a89b91831b4b5d899bff63ba935cbb','0','2','0'),
('47197','16','','10630','DB: Connections: Active','jmx["com.atlassian.jira:name=BasicDataSource,connectionpool=connections",NumActive]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'Active database connection count.','0','7d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f064dbd8781848c09184fb83a3a46097','0','2','0'),
('47198','16','','10630','DB: Reads','jmx["com.atlassian.jira:type=db.reads",invocation\\.count]','1m','31d','365d','0','0','','rps','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'Database read operations from Jira per second.\r\nUnits: rps - read operations per second.','0','7d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2928e1e3b68940938a0b107eb5d72b95','0','2','0'),
('47199','16','','10630','DB: Writes','jmx["com.atlassian.jira:type=db.writes",invocation\\.count]','1m','31d','365d','0','0','','wps','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'Database write operations from Jira per second.\r\nUnits: wps - write operations per second.','0','7d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ad5c16fa48864dc6b625a23f95ecf07a','0','2','0'),
('47200','16','','10630','Entity: Attachments','jmx["com.atlassian.jira:type=entity.attachments.total",Value]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'The number of attachments.','0','7d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','942556b043734986a2c5e261e97d5b1c','0','2','0'),
('47201','16','','10630','Entity: Components','jmx["com.atlassian.jira:type=entity.components.total",Value]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'The number of components.','0','7d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7aa003c53cb14555a88ee02e804ca45f','0','2','0'),
('47202','16','','10630','Entity: Custom fields','jmx["com.atlassian.jira:type=entity.customfields.total",Value]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'The number of custom fields.','0','7d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8ddf2cb59bb44d8a8fe7f2ca9e44ad20','0','2','0'),
('47203','16','','10630','Entity: Filters','jmx["com.atlassian.jira:type=entity.filters.total",Value]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'The number of filters.','0','7d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2c8d303953ed44b6815129a6a77ee5c6','0','2','0'),
('47204','16','','10630','Entity: Issues','jmx["com.atlassian.jira:type=entity.issues.total",Value]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'The number of issues.','0','7d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5d9a669481ab448eb5c9e0b64f3517b0','0','2','0'),
('47205','16','','10630','Entity: Versions created','jmx["com.atlassian.jira:type=entity.versions.total",Value]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'The number of versions created.','0','7d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b6a8a8ed8a9242858560b0743cc955aa','0','2','0'),
('47206','16','','10630','Issue: Created per minute','jmx["com.atlassian.jira:type=issue.created.count",Value]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'Issues created per minute.','0','7d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2152f7eb0bff4c9888e131634b770673','0','2','0'),
('47207','16','','10630','Issue: Search per minute','jmx["com.atlassian.jira:type=issue.search.count",Value]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'Issue searches performed per minute.','0','7d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','25fdfd0e3dce4d95ac2cdaed41ba5fb6','0','2','0'),
('47208','16','','10630','Issue: Updates per minute','jmx["com.atlassian.jira:type=issue.updated.count",Value]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'Issue updates performed per minute.','0','7d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','060d5f5ccf3a4ab197e4b95d9eb88b17','0','2','0'),
('47209','16','','10630','DB: Connections: Failed per minute','jmx["com.atlassian.jira:type=metrics,category00=db,category01=connection,category02=failures,name=counter",Count]','0;m0-59','31d','365d','0','0','','fpm','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'The count of database connection failures registered in one minute.\r\nUnits: fpm - fails per minute.','0','7d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bb565c20d5ad4cf1a94aea5966ec12fa','0','2','0'),
('47210','16','','10630','DB: Connections: Latency','jmx["com.atlassian.jira:type=metrics,category00=db,category01=connection,category02=latency,name=value",Value]','1m','31d','365d','0','0','','ms','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'The latest measure of latency when querying the database.','0','7d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8fb52b3e150a4f5fb84e8b527aaaf5a5','0','2','0'),
('47211','16','','10630','DB: Pool: Connections: Active','jmx["com.atlassian.jira:type=metrics,category00=db,category01=connection,category02=pool,category03=numActive,name=value",Value]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'Active connection count of the database pool.','0','7d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2d22d7c78abe40b8a82fb70a8d1091d1','0','2','0'),
('47212','16','','10630','DB: Pool: Connections: Idle','jmx["com.atlassian.jira:type=metrics,category00=db,category01=connection,category02=pool,category03=numIdle,name=value",Value]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'Idle connection count of the database pool.','0','7d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c18d258cdb8f420e8cb18a9e6e7c2bf8','0','2','0'),
('47213','16','','10630','DB: Connections: State','jmx["com.atlassian.jira:type=metrics,category00=db,category01=connection,category02=state,name=value",Value]','1m','31d','365d','0','3','','','','',NULL,'1224','','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'The state of the database connection.','0','7d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fc7870021dc04bf499db8834be67987e','0','2','0'),
('47214','16','','10630','HTTP: Pool: Connections: Active','jmx["com.atlassian.jira:type=metrics,category00=http,category01=connection,category02=pool,category03=numActive,name=value",Value]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'The latest measure of the number of active connections in the HTTP connection pool.','0','7d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','25d810c7fd5e4116a8e2323b7a2537a0','0','2','0'),
('47215','16','','10630','HTTP: Pool: Connections: Idle','jmx["com.atlassian.jira:type=metrics,category00=http,category01=connection,category02=pool,category03=numIdle,name=value",Value]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'The latest measure of the number of idle connections in the HTTP connection pool.','0','7d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b244d220b7e24d48913f4e8e1b490732','0','2','0'),
('47216','16','','10630','HTTP: Sessions: Active','jmx["com.atlassian.jira:type=metrics,category00=http,category01=connection,category02=sessions,category03=active,name=value",Value]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'The latest measure of the number of active user sessions.','0','7d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','195bc0648f6445bbbe205a5869383c68','0','2','0'),
('47217','16','','10630','HTTP: Requests per minute','jmx["com.atlassian.jira:type=metrics,category00=http,category01=requests,name=value",Value]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'The latest measure of the total number of HTTP requests per minute.','0','7d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0d5a76f579284baf9eaa47180ed2c3fa','0','2','0'),
('47218','16','','10630','Mail: Queue: Processing state','jmx["com.atlassian.jira:type=metrics,category00=mail,category01=queue,category02=jobRunning,name=value",Value]','1m','31d','365d','0','0','','','','',NULL,'1226','','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'The latest indicator of the state of a mail queue job.','0','7d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7029cc0f375740c79790b410b92579a1','0','2','0'),
('47219','16','','10630','Mail: Sent per minute','jmx["com.atlassian.jira:type=metrics,category00=mail,category01=queue,category02=numEmailsSentPerMin,name=value",Value]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'The latest measure of the number of emails sent by the SMTP server per minute.','0','7d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','27f65a6cc7a147c2a95d3348db0cc9eb','0','2','0'),
('47220','16','','10630','Mail: Queue: Error','jmx["com.atlassian.jira:type=metrics,category00=mail,category01=queue,category02=numErrors,name=value",Value]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'The latest measure of the number of items in an error mail queue.','0','7d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ec7e12f99490496c814e9000108ec8c9','0','2','0'),
('47221','16','','10630','Mail: Queue','jmx["com.atlassian.jira:type=metrics,category00=mail,category01=queue,category02=numItems,name=value",Value]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'The latest measure of the number of items in a mail queue.','0','7d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','67789113243b4689af58e42d0a127878','0','2','0'),
('47222','16','','10630','Mail: Processed per minute','jmx["com.atlassian.jira:type=metrics,category00=mail,category01=queue,category02=numItemsProcessedPerMin,name=value",Value]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'The latest measure of the number of items processed by a mail queue per minute.','0','7d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3d311c2e46af4c98b11f5f1a50b5318e','0','2','0'),
('47223','16','','10630','Quicksearch: Concurrent searches','jmx["com.atlassian.jira:type=quicksearch.concurrent.search",Value]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$JMX.USER}','{$JMX.PASSWORD}','','','0',NULL,'The number of concurrent searches that are being performed in real-time by using the quick search.','0','7d','0','service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6a81cf33cc834115b352324a18355368','0','2','0'),
('47237','21','','10631','Apps: Get reports','ms365.apps.reports.get','6h','0','0','0','4','','','','',NULL,NULL,'const ms365 = {\r\n params: {},\r\n token: null,\r\n\r\n setParams: function (params) {\r\n [\'app_id\', \'password\', \'tenant_id\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n\r\n ms365.params = params;\r\n },\r\n\r\n login: function () {\r\n const response = new HttpRequest(),\r\n login = new HttpRequest();\r\n\r\n if (typeof ms365.params.http_proxy !== \'undefined\' && ms365.params.http_proxy !== \'\') {\r\n login.setProxy(ms365.params.http_proxy);\r\n Zabbix.log(4, \'[ Microsoft 365 ] Using HTTP proxy: \' + ms365.params.http_proxy);\r\n }\r\n\r\n login.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n\r\n response = login.post(\r\n \'https://login.microsoftonline.com/\' + encodeURIComponent(ms365.params.tenant_id) + \'/oauth2/v2.0/token\',\r\n \'grant_type=client_credentials&scope=https://graph.microsoft.com/.default&client_id=\' + encodeURIComponent(ms365.params.app_id) + \'&client_secret=\' + encodeURIComponent(ms365.params.password)\r\n );\r\n\r\n if (login.getStatus() < 200 || login.getStatus() >= 300) {\r\n throw \'Login failed with status code \' + login.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse login session response.\';\r\n }\r\n\r\n if (!response.hasOwnProperty(\'access_token\')) {\r\n throw \'Authentication response does not contain access token.\';\r\n }\r\n\r\n ms365.token = response[\'access_token\'];\r\n },\r\n\r\n request: function (url) {\r\n const response = new HttpRequest(),\r\n request = new HttpRequest();\r\n\r\n if (typeof ms365.params.http_proxy !== \'undefined\' && ms365.params.http_proxy !== \'\') {\r\n request.setProxy(ms365.params.http_proxy);\r\n Zabbix.log(4, \'[ Microsoft 365 ] Using HTTP proxy: \' + ms365.params.http_proxy);\r\n }\r\n\r\n if (!ms365.token) {\r\n throw \'Request does not contain access token.\';\r\n }\r\n\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Authorization: Bearer \' + ms365.token);\r\n\r\n Zabbix.log(4, \'[ Microsoft 365 ] Request url: \' + url);\r\n\r\n response = request.get(url);\r\n\r\n Zabbix.log(4, \'[ Microsoft 365 ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n return JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from API.\';\r\n }\r\n },\r\n\r\n getField: function (data, path) {\r\n const steps = path.split(\'.\');\r\n\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n data = data[step];\r\n }\r\n\r\n return ms365.nullToZero(data);\r\n },\r\n\r\n nullToZero: function (data) {\r\n Object.keys(data).forEach(function (key) {\r\n if (data[key] === null) {\r\n data[key] = 0;\r\n } else if (typeof data[key] === \'object\') {\r\n ms365.nullToZero(data[key]);\r\n }\r\n });\r\n\r\n return data;\r\n },\r\n\r\n getMetricsData: function (endpoints) {\r\n const data = {};\r\n\r\n data.metrics = {};\r\n endpoints.forEach(function (field) {\r\n link = \'https://graph.microsoft.com/beta/reports/\' + field + \'(period=\\\'D7\\\')?$format=application/json\';\r\n answer = ms365.getField(ms365.request(link), \'value\');\r\n\r\n data.metrics[field] = answer;\r\n });\r\n\r\n return data;\r\n },\r\n\r\n getServiceData: function () {\r\n var data = {},\r\n\r\n link = \'https://graph.microsoft.com/beta/admin/serviceAnnouncement/healthOverviews/\';\r\n data.services = ms365.request(link);\r\n\r\n return data;\r\n }\r\n};\r\n\r\n\r\nendpoints = [\r\n \'getOffice365ActiveUserCounts\',\r\n \'getOffice365ServicesUserCounts\',\r\n \'getM365AppUserCounts\',\r\n \'getM365AppPlatformUserCounts\'\r\n];\r\n\r\ntry {\r\n ms365.setParams(JSON.parse(value));\r\n ms365.login();\r\n return JSON.stringify(ms365.getMetricsData(endpoints));\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ Microsoft 365 ] ERROR: \' + error);\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Accumulated data from the Microsoft Graph API "reports" endpoints.\r\nMore information:\r\nhttps://learn.microsoft.com/en-us/graph/api/resources/report?view=graph-rest-beta','0','7d','0','',NULL,'{$MS365.API.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','f694dc8e49084d3a961c7124cb712c43','0','2','0'),
('47238','21','','10631','OneDrive: Get reports','ms365.onedrive.reports.get','6h','0','0','0','4','','','','',NULL,NULL,'const ms365 = {\r\n params: {},\r\n token: null,\r\n\r\n setParams: function (params) {\r\n [\'app_id\', \'password\', \'tenant_id\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n\r\n ms365.params = params;\r\n },\r\n\r\n login: function () {\r\n const response = new HttpRequest(),\r\n login = new HttpRequest();\r\n\r\n if (typeof ms365.params.http_proxy !== \'undefined\' && ms365.params.http_proxy !== \'\') {\r\n login.setProxy(ms365.params.http_proxy);\r\n Zabbix.log(4, \'[ Microsoft 365 ] Using HTTP proxy: \' + ms365.params.http_proxy);\r\n }\r\n\r\n login.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n\r\n response = login.post(\r\n \'https://login.microsoftonline.com/\' + encodeURIComponent(ms365.params.tenant_id) + \'/oauth2/v2.0/token\',\r\n \'grant_type=client_credentials&scope=https://graph.microsoft.com/.default&client_id=\' + encodeURIComponent(ms365.params.app_id) + \'&client_secret=\' + encodeURIComponent(ms365.params.password)\r\n );\r\n\r\n if (login.getStatus() < 200 || login.getStatus() >= 300) {\r\n throw \'Login failed with status code \' + login.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse login session response.\';\r\n }\r\n\r\n if (!response.hasOwnProperty(\'access_token\')) {\r\n throw \'Authentication response does not contain access token.\';\r\n }\r\n\r\n ms365.token = response[\'access_token\'];\r\n },\r\n\r\n request: function (url) {\r\n const response = new HttpRequest(),\r\n request = new HttpRequest();\r\n\r\n if (typeof ms365.params.http_proxy !== \'undefined\' && ms365.params.http_proxy !== \'\') {\r\n request.setProxy(ms365.params.http_proxy);\r\n Zabbix.log(4, \'[ Microsoft 365 ] Using HTTP proxy: \' + ms365.params.http_proxy);\r\n }\r\n\r\n if (!ms365.token) {\r\n throw \'Request does not contain access token.\';\r\n }\r\n\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Authorization: Bearer \' + ms365.token);\r\n\r\n Zabbix.log(4, \'[ Microsoft 365 ] Request url: \' + url);\r\n\r\n response = request.get(url);\r\n\r\n Zabbix.log(4, \'[ Microsoft 365 ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n return JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from API.\';\r\n }\r\n },\r\n\r\n getField: function (data, path) {\r\n const steps = path.split(\'.\');\r\n\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n data = data[step];\r\n }\r\n\r\n return ms365.nullToZero(data);\r\n },\r\n\r\n nullToZero: function (data) {\r\n Object.keys(data).forEach(function (key) {\r\n if (data[key] === null) {\r\n data[key] = 0;\r\n } else if (typeof data[key] === \'object\') {\r\n ms365.nullToZero(data[key]);\r\n }\r\n });\r\n\r\n return data;\r\n },\r\n\r\n getMetricsData: function (endpoints) {\r\n const data = {};\r\n\r\n data.metrics = {};\r\n endpoints.forEach(function (field) {\r\n link = \'https://graph.microsoft.com/beta/reports/\' + field + \'(period=\\\'D7\\\')?$format=application/json\';\r\n answer = ms365.getField(ms365.request(link), \'value\');\r\n\r\n data.metrics[field] = answer;\r\n });\r\n\r\n return data;\r\n },\r\n\r\n getServiceData: function () {\r\n var data = {},\r\n\r\n link = \'https://graph.microsoft.com/beta/admin/serviceAnnouncement/healthOverviews/\';\r\n data.services = ms365.request(link);\r\n\r\n return data;\r\n }\r\n};\r\n\r\n\r\nconst endpoints = [\r\n \'getOneDriveActivityUserCounts\',\r\n \'getOneDriveActivityFileCounts\',\r\n \'getOneDriveUsageAccountCounts\',\r\n \'getOneDriveUsageFileCounts\',\r\n \'getOneDriveUsageStorage\'\r\n];\r\n\r\ntry {\r\n ms365.setParams(JSON.parse(value));\r\n ms365.login();\r\n return JSON.stringify(ms365.getMetricsData(endpoints));\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ Microsoft 365 ] ERROR: \' + error);\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Accumulated data from the Microsoft Graph API "reports" endpoints.\r\nMore information:\r\nhttps://learn.microsoft.com/en-us/graph/api/resources/report?view=graph-rest-beta','0','7d','0','',NULL,'{$MS365.API.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','31b78185119446f397404ae7abf05684','0','2','0'),
('47239','21','','10631','Outlook: Get reports','ms365.outlook.reports.get','6h','0','0','0','4','','','','',NULL,NULL,'const ms365 = {\r\n params: {},\r\n token: null,\r\n\r\n setParams: function (params) {\r\n [\'app_id\', \'password\', \'tenant_id\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n\r\n ms365.params = params;\r\n },\r\n\r\n login: function () {\r\n const response = new HttpRequest(),\r\n login = new HttpRequest();\r\n\r\n if (typeof ms365.params.http_proxy !== \'undefined\' && ms365.params.http_proxy !== \'\') {\r\n login.setProxy(ms365.params.http_proxy);\r\n Zabbix.log(4, \'[ Microsoft 365 ] Using HTTP proxy: \' + ms365.params.http_proxy);\r\n }\r\n\r\n login.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n\r\n response = login.post(\r\n \'https://login.microsoftonline.com/\' + encodeURIComponent(ms365.params.tenant_id) + \'/oauth2/v2.0/token\',\r\n \'grant_type=client_credentials&scope=https://graph.microsoft.com/.default&client_id=\' + encodeURIComponent(ms365.params.app_id) + \'&client_secret=\' + encodeURIComponent(ms365.params.password)\r\n );\r\n\r\n if (login.getStatus() < 200 || login.getStatus() >= 300) {\r\n throw \'Login failed with status code \' + login.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse login session response.\';\r\n }\r\n\r\n if (!response.hasOwnProperty(\'access_token\')) {\r\n throw \'Authentication response does not contain access token.\';\r\n }\r\n\r\n ms365.token = response[\'access_token\'];\r\n },\r\n\r\n request: function (url) {\r\n const response = new HttpRequest(),\r\n request = new HttpRequest();\r\n\r\n if (typeof ms365.params.http_proxy !== \'undefined\' && ms365.params.http_proxy !== \'\') {\r\n request.setProxy(ms365.params.http_proxy);\r\n Zabbix.log(4, \'[ Microsoft 365 ] Using HTTP proxy: \' + ms365.params.http_proxy);\r\n }\r\n\r\n if (!ms365.token) {\r\n throw \'Request does not contain access token.\';\r\n }\r\n\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Authorization: Bearer \' + ms365.token);\r\n\r\n Zabbix.log(4, \'[ Microsoft 365 ] Request url: \' + url);\r\n\r\n response = request.get(url);\r\n\r\n Zabbix.log(4, \'[ Microsoft 365 ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n return JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from API.\';\r\n }\r\n },\r\n\r\n getField: function (data, path) {\r\n const steps = path.split(\'.\');\r\n\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n data = data[step];\r\n }\r\n\r\n return ms365.nullToZero(data);\r\n },\r\n\r\n nullToZero: function (data) {\r\n Object.keys(data).forEach(function (key) {\r\n if (data[key] === null) {\r\n data[key] = 0;\r\n } else if (typeof data[key] === \'object\') {\r\n ms365.nullToZero(data[key]);\r\n }\r\n });\r\n\r\n return data;\r\n },\r\n\r\n getMetricsData: function (endpoints) {\r\n const data = {};\r\n\r\n data.metrics = {};\r\n endpoints.forEach(function (field) {\r\n link = \'https://graph.microsoft.com/beta/reports/\' + field + \'(period=\\\'D7\\\')?$format=application/json\';\r\n answer = ms365.getField(ms365.request(link), \'value\');\r\n\r\n data.metrics[field] = answer;\r\n });\r\n\r\n return data;\r\n },\r\n\r\n getServiceData: function () {\r\n var data = {},\r\n\r\n link = \'https://graph.microsoft.com/beta/admin/serviceAnnouncement/healthOverviews/\';\r\n data.services = ms365.request(link);\r\n\r\n return data;\r\n }\r\n};\r\n\r\n\r\nendpoints = [\r\n \'getEmailActivityCounts\',\r\n \'getEmailActivityUserCounts\',\r\n \'getEmailAppUsageUserCounts\',\r\n \'getMailboxUsageMailboxCounts\',\r\n \'getMailboxUsageStorage\'\r\n];\r\n\r\ntry {\r\n ms365.setParams(JSON.parse(value));\r\n ms365.login();\r\n return JSON.stringify(ms365.getMetricsData(endpoints));\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ Microsoft 365 ] ERROR: \' + error);\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Accumulated data from the Microsoft Graph API "reports" endpoints.\r\nMore information:\r\nhttps://learn.microsoft.com/en-us/graph/api/resources/report?view=graph-rest-beta','0','7d','0','',NULL,'{$MS365.API.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','4e4d78bd44db421a908288031489c3d4','0','2','0'),
('47240','21','','10631','Services: Get services','ms365.services.get','6h','0','0','0','4','','','','',NULL,NULL,'const ms365 = {\r\n params: {},\r\n token: null,\r\n\r\n setParams: function (params) {\r\n [\'app_id\', \'password\', \'tenant_id\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n\r\n ms365.params = params;\r\n },\r\n\r\n login: function () {\r\n const response = new HttpRequest(),\r\n login = new HttpRequest();\r\n\r\n if (typeof ms365.params.http_proxy !== \'undefined\' && ms365.params.http_proxy !== \'\') {\r\n login.setProxy(ms365.params.http_proxy);\r\n Zabbix.log(4, \'[ Microsoft 365 ] Using HTTP proxy: \' + ms365.params.http_proxy);\r\n }\r\n\r\n login.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n\r\n response = login.post(\r\n \'https://login.microsoftonline.com/\' + encodeURIComponent(ms365.params.tenant_id) + \'/oauth2/v2.0/token\',\r\n \'grant_type=client_credentials&scope=https://graph.microsoft.com/.default&client_id=\' + encodeURIComponent(ms365.params.app_id) + \'&client_secret=\' + encodeURIComponent(ms365.params.password)\r\n );\r\n\r\n if (login.getStatus() < 200 || login.getStatus() >= 300) {\r\n throw \'Login failed with status code \' + login.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse login session response.\';\r\n }\r\n\r\n if (!response.hasOwnProperty(\'access_token\')) {\r\n throw \'Authentication response does not contain access token.\';\r\n }\r\n\r\n ms365.token = response[\'access_token\'];\r\n },\r\n\r\n request: function (url) {\r\n const response = new HttpRequest(),\r\n request = new HttpRequest();\r\n\r\n if (typeof ms365.params.http_proxy !== \'undefined\' && ms365.params.http_proxy !== \'\') {\r\n request.setProxy(ms365.params.http_proxy);\r\n Zabbix.log(4, \'[ Microsoft 365 ] Using HTTP proxy: \' + ms365.params.http_proxy);\r\n }\r\n\r\n if (!ms365.token) {\r\n throw \'Request does not contain access token.\';\r\n }\r\n\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Authorization: Bearer \' + ms365.token);\r\n\r\n Zabbix.log(4, \'[ Microsoft 365 ] Request url: \' + url);\r\n\r\n response = request.get(url);\r\n\r\n Zabbix.log(4, \'[ Microsoft 365 ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n return JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from API.\';\r\n }\r\n },\r\n\r\n getField: function (data, path) {\r\n const steps = path.split(\'.\');\r\n\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n data = data[step];\r\n }\r\n\r\n return ms365.nullToZero(data);\r\n },\r\n\r\n nullToZero: function (data) {\r\n Object.keys(data).forEach(function (key) {\r\n if (data[key] === null) {\r\n data[key] = 0;\r\n } else if (typeof data[key] === \'object\') {\r\n ms365.nullToZero(data[key]);\r\n }\r\n });\r\n\r\n return data;\r\n },\r\n\r\n getMetricsData: function (endpoints) {\r\n const data = {};\r\n\r\n data.metrics = {};\r\n endpoints.forEach(function (field) {\r\n link = \'https://graph.microsoft.com/beta/reports/\' + field + \'(period=\\\'D7\\\')?$format=application/json\';\r\n answer = ms365.getField(ms365.request(link), \'value\');\r\n\r\n data.metrics[field] = answer;\r\n });\r\n\r\n return data;\r\n },\r\n\r\n getServiceData: function () {\r\n var data = {},\r\n\r\n link = \'https://graph.microsoft.com/beta/admin/serviceAnnouncement/healthOverviews/\';\r\n data.services = ms365.request(link);\r\n\r\n return data;\r\n }\r\n};\r\n\r\n\r\ntry {\r\n ms365.setParams(JSON.parse(value));\r\n ms365.login();\r\n return JSON.stringify(ms365.getServiceData());\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ Microsoft 365 ] ERROR: \' + error);\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'The list of Microsoft cloud services and their health statuses subscribed by a tenant.\r\nMore information:\r\nhttps://learn.microsoft.com/en-us/graph/api/servicehealth-get?view=graph-rest-beta&tabs=http','0','7d','0','',NULL,'{$MS365.API.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','53c72fa948454b998f612c4d099dd440','0','2','0'),
('47241','21','','10631','SharePoint: Get reports','ms365.sharepoint.reports.get','6h','0','0','0','4','','','','',NULL,NULL,'const ms365 = {\r\n params: {},\r\n token: null,\r\n\r\n setParams: function (params) {\r\n [\'app_id\', \'password\', \'tenant_id\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n\r\n ms365.params = params;\r\n },\r\n\r\n login: function () {\r\n const response = new HttpRequest(),\r\n login = new HttpRequest();\r\n\r\n if (typeof ms365.params.http_proxy !== \'undefined\' && ms365.params.http_proxy !== \'\') {\r\n login.setProxy(ms365.params.http_proxy);\r\n Zabbix.log(4, \'[ Microsoft 365 ] Using HTTP proxy: \' + ms365.params.http_proxy);\r\n }\r\n\r\n login.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n\r\n response = login.post(\r\n \'https://login.microsoftonline.com/\' + encodeURIComponent(ms365.params.tenant_id) + \'/oauth2/v2.0/token\',\r\n \'grant_type=client_credentials&scope=https://graph.microsoft.com/.default&client_id=\' + encodeURIComponent(ms365.params.app_id) + \'&client_secret=\' + encodeURIComponent(ms365.params.password)\r\n );\r\n\r\n if (login.getStatus() < 200 || login.getStatus() >= 300) {\r\n throw \'Login failed with status code \' + login.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse login session response.\';\r\n }\r\n\r\n if (!response.hasOwnProperty(\'access_token\')) {\r\n throw \'Authentication response does not contain access token.\';\r\n }\r\n\r\n ms365.token = response[\'access_token\'];\r\n },\r\n\r\n request: function (url) {\r\n const response = new HttpRequest(),\r\n request = new HttpRequest();\r\n\r\n if (typeof ms365.params.http_proxy !== \'undefined\' && ms365.params.http_proxy !== \'\') {\r\n request.setProxy(ms365.params.http_proxy);\r\n Zabbix.log(4, \'[ Microsoft 365 ] Using HTTP proxy: \' + ms365.params.http_proxy);\r\n }\r\n\r\n if (!ms365.token) {\r\n throw \'Request does not contain access token.\';\r\n }\r\n\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Authorization: Bearer \' + ms365.token);\r\n\r\n Zabbix.log(4, \'[ Microsoft 365 ] Request url: \' + url);\r\n\r\n response = request.get(url);\r\n\r\n Zabbix.log(4, \'[ Microsoft 365 ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n return JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from API.\';\r\n }\r\n },\r\n\r\n getField: function (data, path) {\r\n const steps = path.split(\'.\');\r\n\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n data = data[step];\r\n }\r\n\r\n return ms365.nullToZero(data);\r\n },\r\n\r\n nullToZero: function (data) {\r\n Object.keys(data).forEach(function (key) {\r\n if (data[key] === null) {\r\n data[key] = 0;\r\n } else if (typeof data[key] === \'object\') {\r\n ms365.nullToZero(data[key]);\r\n }\r\n });\r\n\r\n return data;\r\n },\r\n\r\n getMetricsData: function (endpoints) {\r\n const data = {};\r\n\r\n data.metrics = {};\r\n endpoints.forEach(function (field) {\r\n link = \'https://graph.microsoft.com/beta/reports/\' + field + \'(period=\\\'D7\\\')?$format=application/json\';\r\n answer = ms365.getField(ms365.request(link), \'value\');\r\n\r\n data.metrics[field] = answer;\r\n });\r\n\r\n return data;\r\n },\r\n\r\n getServiceData: function () {\r\n var data = {},\r\n\r\n link = \'https://graph.microsoft.com/beta/admin/serviceAnnouncement/healthOverviews/\';\r\n data.services = ms365.request(link);\r\n\r\n return data;\r\n }\r\n};\r\n\r\n\r\nendpoints = [\r\n \'getSharePointActivityFileCounts\',\r\n \'getSharePointActivityUserCounts\',\r\n \'getSharePointActivityPages\',\r\n \'getSharePointSiteUsageFileCounts\',\r\n \'getSharePointSiteUsageSiteCounts\',\r\n \'getSharePointSiteUsageStorage\',\r\n \'getSharePointSiteUsagePages\'\r\n];\r\n\r\ntry {\r\n ms365.setParams(JSON.parse(value));\r\n ms365.login();\r\n return JSON.stringify(ms365.getMetricsData(endpoints));\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ Microsoft 365 ] ERROR: \' + error);\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Accumulated data from the Microsoft Graph API "reports" endpoints.\r\nMore information:\r\nhttps://learn.microsoft.com/en-us/graph/api/resources/report?view=graph-rest-beta','0','7d','0','',NULL,'{$MS365.API.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','fd2cb544cfd744c1a94a1d32243978e6','0','2','0'),
('47242','21','','10631','Teams: Get reports','ms365.teams.reports.get','6h','0','0','0','4','','','','',NULL,NULL,'const ms365 = {\r\n params: {},\r\n token: null,\r\n\r\n setParams: function (params) {\r\n [\'app_id\', \'password\', \'tenant_id\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n\r\n ms365.params = params;\r\n },\r\n\r\n login: function () {\r\n const response = new HttpRequest(),\r\n login = new HttpRequest();\r\n\r\n if (typeof ms365.params.http_proxy !== \'undefined\' && ms365.params.http_proxy !== \'\') {\r\n login.setProxy(ms365.params.http_proxy);\r\n Zabbix.log(4, \'[ Microsoft 365 ] Using HTTP proxy: \' + ms365.params.http_proxy);\r\n }\r\n\r\n login.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n\r\n response = login.post(\r\n \'https://login.microsoftonline.com/\' + encodeURIComponent(ms365.params.tenant_id) + \'/oauth2/v2.0/token\',\r\n \'grant_type=client_credentials&scope=https://graph.microsoft.com/.default&client_id=\' + encodeURIComponent(ms365.params.app_id) + \'&client_secret=\' + encodeURIComponent(ms365.params.password)\r\n );\r\n\r\n if (login.getStatus() < 200 || login.getStatus() >= 300) {\r\n throw \'Login failed with status code \' + login.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse login session response.\';\r\n }\r\n\r\n if (!response.hasOwnProperty(\'access_token\')) {\r\n throw \'Authentication response does not contain access token.\';\r\n }\r\n\r\n ms365.token = response[\'access_token\'];\r\n },\r\n\r\n request: function (url) {\r\n const response = new HttpRequest(),\r\n request = new HttpRequest();\r\n\r\n if (typeof ms365.params.http_proxy !== \'undefined\' && ms365.params.http_proxy !== \'\') {\r\n request.setProxy(ms365.params.http_proxy);\r\n Zabbix.log(4, \'[ Microsoft 365 ] Using HTTP proxy: \' + ms365.params.http_proxy);\r\n }\r\n\r\n if (!ms365.token) {\r\n throw \'Request does not contain access token.\';\r\n }\r\n\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Authorization: Bearer \' + ms365.token);\r\n\r\n Zabbix.log(4, \'[ Microsoft 365 ] Request url: \' + url);\r\n\r\n response = request.get(url);\r\n\r\n Zabbix.log(4, \'[ Microsoft 365 ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n return JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from API.\';\r\n }\r\n },\r\n\r\n getField: function (data, path) {\r\n const steps = path.split(\'.\');\r\n\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n data = data[step];\r\n }\r\n\r\n return ms365.nullToZero(data);\r\n },\r\n\r\n nullToZero: function (data) {\r\n Object.keys(data).forEach(function (key) {\r\n if (data[key] === null) {\r\n data[key] = 0;\r\n } else if (typeof data[key] === \'object\') {\r\n ms365.nullToZero(data[key]);\r\n }\r\n });\r\n\r\n return data;\r\n },\r\n\r\n getMetricsData: function (endpoints) {\r\n const data = {};\r\n\r\n data.metrics = {};\r\n endpoints.forEach(function (field) {\r\n link = \'https://graph.microsoft.com/beta/reports/\' + field + \'(period=\\\'D7\\\')?$format=application/json\';\r\n answer = ms365.getField(ms365.request(link), \'value\');\r\n\r\n data.metrics[field] = answer;\r\n });\r\n\r\n return data;\r\n },\r\n\r\n getServiceData: function () {\r\n var data = {},\r\n\r\n link = \'https://graph.microsoft.com/beta/admin/serviceAnnouncement/healthOverviews/\';\r\n data.services = ms365.request(link);\r\n\r\n return data;\r\n }\r\n};\r\n\r\n\r\nendpoints = [\r\n \'getTeamsDeviceUsageDistributionUserCounts\',\r\n \'getTeamsDeviceUsageDistributionTotalUserCounts\',\r\n \'getTeamsUserActivityTotalDistributionCounts\',\r\n \'getTeamsUserActivityDistributionUserCounts\',\r\n \'getTeamsUserActivityDistributionTotalUserCounts\',\r\n \'getTeamsTeamActivityDistributionCounts\'\r\n];\r\n\r\ntry {\r\n ms365.setParams(JSON.parse(value));\r\n ms365.login();\r\n return JSON.stringify(ms365.getMetricsData(endpoints));\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ Microsoft 365 ] ERROR: \' + error);\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Accumulated data from the Microsoft Graph API "reports" endpoints.\r\nMore information:\r\nhttps://learn.microsoft.com/en-us/graph/api/resources/report?view=graph-rest-beta','0','7d','0','',NULL,'{$MS365.API.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','a77e654c05ec44ed991a36c6b1df472f','0','2','0'),
('47414','3','','10173','Get alarms','vmware.alarms.get[{$VMWARE.URL}]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'Get alarm status.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5a0c711cae454f0e92a492dd1718101f','0','2','0'),
('47415','21','','10173','Get Overall Health VC State','vmware.health.get','1m','0','0','0','4','','','','',NULL,NULL,'var Vcenter = {\r\n params: {},\r\n vmware_api_session_id: \'\',\r\n health_status: \'\',\r\n error_msg: \'\',\r\n\r\n setParams: function (params) {\r\n [\'url\', \'username\', \'password\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n\r\n if (params[\'url\'].endsWith(\'/\')) {\r\n params[\'url\'] = params[\'url\'].slice(0,-1);\r\n }\r\n params[\'url\'] = params[\'url\'].replace(\'/sdk\',\'\');\r\n\r\n Vcenter.params = params;\r\n },\r\n\r\n isGtOrEqVersion: function (first_version, second_version) {\r\n var first = first_version.split(\'.\').map(Number),\r\n second = second_version.split(\'.\').map(Number);\r\n\r\n if (first.length > second.length) {\r\n const max_componens_length = first.length\r\n }\r\n else {\r\n const max_componens_length = second.length\r\n }\r\n\r\n var num_components = first.length;\r\n while (num_components < max_componens_length) {\r\n first.push(0);\r\n num_components = num_components +1;\r\n }\r\n\r\n var num_components = second.length;\r\n while (num_components < max_componens_length) {\r\n second.push(0);\r\n num_components = num_components +1;\r\n }\r\n\r\n if (first[0] > second[0] ||\r\n (first[0] === second[0] && first[1] > second[1]) ||\r\n (first[0] === second[0] && first[1] === second[1] && first[2] >= second[2])) {\r\n return true;\r\n }\r\n\r\n return false;\r\n },\r\n\r\n login: function () {\r\n var response, request = new HttpRequest();\r\n request.setHttpAuth(HTTPAUTH_BASIC, Vcenter.params.username, Vcenter.params.password);\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Content-Type: application/json\');\r\n\r\n response = request.post(Vcenter.params.url + \'/api/session\', \'\');\r\n if (request.getStatus() >= 200 && request.getStatus() < 300 && (!JSON.parse(response).error)) {\r\n Vcenter.vmware_api_session_id = Vcenter.removeQuotes(response);\r\n return true;\r\n }\r\n\r\n response = request.post(Vcenter.params.url + \'/rest/com/vmware/cis/session\', \'\');\r\n if (request.getStatus() >= 200 && request.getStatus() < 300) {\r\n Vcenter.vmware_api_session_id = JSON.parse(response).value;\r\n return true;\r\n }\r\n\r\n return false;\r\n },\r\n\r\n logout: function () {\r\n path = \'/rest/com/vmware/cis/session\';\r\n if (Vcenter.vmware_api_version && Vcenter.isGtOrEqVersion(Vcenter.vmware_api_version, \'7.0.2\')) {\r\n path = \'/api/session\';\r\n }\r\n\r\n Vcenter.request(Vcenter.params.url + path, \'delete\');\r\n },\r\n\r\n get_version: function () {\r\n path = \'/rest/appliance/system/version\';\r\n\r\n try {\r\n Vcenter.vmware_api_version = Vcenter.request(Vcenter.params.url + path, \'get\').version;\r\n return true;\r\n }\r\n catch (error) {\r\n return false;\r\n }\r\n },\r\n\r\n removeQuotes: function (str){\r\n if (str.startsWith(\'"\') && str.endsWith(\'"\')) {\r\n return str.slice(1, -1);\r\n }\r\n\r\n return str;\r\n },\r\n\r\n getHealthStatus: function () {\r\n path = \'/api/appliance/health/system\';\r\n if (!Vcenter.isGtOrEqVersion(Vcenter.vmware_api_version, \'7.0.2\')) {\r\n path = \'/rest/appliance/health/system\';\r\n }\r\n\r\n result = Vcenter.removeQuotes(Vcenter.request(Vcenter.params.url + path, \'get\'));\r\n\r\n const idx = [\r\n \'green\',\r\n \'yellow\',\r\n \'orange\',\r\n \'red\',\r\n \'gray\'\r\n ].indexOf(result.toLowerCase());\r\n Vcenter.health_status = idx !== -1 ? idx : 5;\r\n },\r\n\r\n request: function (url, method) {\r\n var response, request = new HttpRequest();\r\n\r\n if (typeof Vcenter.params.proxy !== \'undefined\' && Vcenter.params.proxy !== \'\') {\r\n request.setProxy(Vcenter.params.proxy);\r\n }\r\n\r\n request.setHttpAuth(HTTPAUTH_NONE);\r\n request.addHeader("Cookie: vmware-api-session-id=" + Vcenter.vmware_api_session_id);\r\n\r\n Zabbix.log(4, \'[ VMware vCenter ] Sending request: \' + url);\r\n\r\n switch (method) {\r\n case \'get\':\r\n response = request.get(url);\r\n break;\r\n\r\n case \'post\':\r\n response = request.post(url);\r\n break;\r\n\r\n case \'delete\':\r\n response = request.delete(url);\r\n break;\r\n\r\n default:\r\n throw \'Unsupported HTTP request method: \' + method;\r\n }\r\n\r\n Zabbix.log(4, \'[ VMware vCenter ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n throw \'Cannot connect to VMware vCenter. Check debug log for more information.\';\r\n }\r\n\r\n if (method !== \'delete\' && JSON.parse(response).value) {\r\n return JSON.parse(response).value;\r\n }\r\n else {\r\n return response;\r\n }\r\n }\r\n};\r\n\r\ntry {\r\n Vcenter.setParams(JSON.parse(value));\r\n \r\n if (Vcenter.login() && Vcenter.get_version() && Vcenter.isGtOrEqVersion(Vcenter.vmware_api_version, \'6.5.0\')) {\r\n Vcenter.getHealthStatus();\r\n }\r\n else {\r\n Vcenter.health_status = 6;\r\n }\r\n\r\n if (Vcenter.vmware_api_session_id) {\r\n Vcenter.logout();\r\n }\r\n}\r\ncatch (error) {\r\n Zabbix.log(3, \'[ VMware vCenter ] ERROR: \' + error);\r\n Vcenter.error_msg = \'Failed to get data from API:\' + error;\r\n}\r\n\r\nreturn JSON.stringify({\'health\': Vcenter.health_status, \'error\': Vcenter.error_msg});','','0','','','','','0',NULL,'Gets overall health of the system. This item works only with VMware vCenter versions above 6.5.','0','7d','0','',NULL,'10','','','','200','1','0','','','0','0','0','0','0','0','0','889333d3225147e1b1604119050a121f','0','2','0'),
('47416','3','','10174','Snapshot consolidation needed','vmware.vm.consolidationneeded[{$VMWARE.URL},{$VMWARE.VM.UUID}]','1m','31d','365d','0','3','','','','',NULL,'1229','','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'Displays whether snapshot consolidation is needed or not. One of the following:\r\n- True;\r\n- False.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','20332e3c1ea54266a02ad500bc9ec1ca','0','2','0'),
('47417','3','','10174','Hypervisor maintenance mode','vmware.vm.hv.maintenance[{$VMWARE.URL},{$VMWARE.VM.UUID}]','1m','31d','365d','0','3','','','','',NULL,'1230','','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'Hypervisor maintenance mode. One of the following:\r\n- Normal mode;\r\n- Maintenance mode.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b794d9df3e764df8b04239d5779269cd','0','2','0'),
('47418','3','','10174','Get snapshots','vmware.vm.snapshot.get[{$VMWARE.URL},{$VMWARE.VM.UUID}]','1h','0','0','0','4','','','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'Snapshots of the guest VM.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','550350d76aa346c49ef828418ebc53be','0','2','0'),
('47419','3','','10174','VM state','vmware.vm.state[{$VMWARE.URL},{$VMWARE.VM.UUID}]','1m','31d','365d','0','3','','','','',NULL,'1232','','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'VMware virtual machine state. One of the following:\r\n- Not running;\r\n- Resetting;\r\n- Running;\r\n- Shutting down;\r\n- Standby;\r\n- Unknown.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2e68d5709d4f46b49b62d37a890e4193','0','2','0'),
('47420','3','','10174','VMware Tools status','vmware.vm.tools[{$VMWARE.URL},{$VMWARE.VM.UUID},status]','1m','31d','365d','0','3','','','','',NULL,'1231','','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'Monitoring of VMware Tools. One of the following:\r\n- Guest tools executing scripts: VMware Tools is starting.\r\n- Guest tools not running: VMware Tools is not running.\r\n- Guest tools running: VMware Tools is running.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6089b7822620423aa2b2e66066d33217','0','2','0'),
('47421','3','','10174','VMware Tools version','vmware.vm.tools[{$VMWARE.URL},{$VMWARE.VM.UUID},version]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'Monitoring of the VMware Tools version.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3870a0d8bfd1474db6e096a1a9a246b3','0','2','0'),
('47422','3','','10175','Connection state','vmware.hv.connectionstate[{$VMWARE.URL},{$VMWARE.HV.UUID}]','1m','31d','365d','0','3','','','','',NULL,'1233','','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'VMware hypervisor connection state. One of the following:\r\n- Connected;\r\n- Disconnected;\r\n- Not responding.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0e9fd4e6d6e446f08afe7b4b9431bc62','0','2','0'),
('47423','3','','10175','Number of broadcasts received','vmware.hv.network.in[{$VMWARE.URL},{$VMWARE.HV.UUID},broadcast]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'VMware hypervisor network input statistics (broadcasts).','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8f935e9718294cd4a67d02f4723a1713','0','2','0'),
('47424','3','','10175','Number of dropped received packets','vmware.hv.network.in[{$VMWARE.URL},{$VMWARE.HV.UUID},dropped]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'VMware hypervisor network input statistics (packets dropped).','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','720c58685828440bacda845bfd848d6a','0','2','0'),
('47425','3','','10175','Number of errors received','vmware.hv.network.in[{$VMWARE.URL},{$VMWARE.HV.UUID},errors]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'VMware hypervisor network input statistics (errors).','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0084eb8fd76241b8938bb1dad5a3f160','0','2','0'),
('47426','3','','10175','Number of broadcasts transmitted','vmware.hv.network.out[{$VMWARE.URL},{$VMWARE.HV.UUID},broadcast]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'VMware hypervisor network output statistics (broadcasts).','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','16496c407daa43b9863c05416b294992','0','2','0'),
('47427','3','','10175','Number of dropped transmitted packets','vmware.hv.network.out[{$VMWARE.URL},{$VMWARE.HV.UUID},dropped]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'VMware hypervisor network output statistics (packets dropped).','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f001256bbfc34cc0898c5eaef422973e','0','2','0'),
('47428','3','','10175','Number of errors transmitted','vmware.hv.network.out[{$VMWARE.URL},{$VMWARE.HV.UUID},errors]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'VMware hypervisor network output statistics (errors).','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5f549d8708f24160b04a4a74db29042a','0','2','0'),
('47443','3','','10366','Get alarms','vmware.alarms.get[{$VMWARE.URL}]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','{$VMWARE.USERNAME}','{$VMWARE.PASSWORD}','','','0',NULL,'Get alarm status.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b9e3684632314721aed3119df6a06976','0','2','0'),
('47444','21','','10366','Get Overall Health VC State','vmware.health.get','1m','0','0','0','4','','','','',NULL,NULL,'var Vcenter = {\r\n params: {},\r\n vmware_api_session_id: \'\',\r\n health_status: \'\',\r\n error_msg: \'\',\r\n\r\n setParams: function (params) {\r\n [\'url\', \'username\', \'password\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n\r\n if (params[\'url\'].endsWith(\'/\')) {\r\n params[\'url\'] = params[\'url\'].slice(0,-1);\r\n }\r\n params[\'url\'] = params[\'url\'].replace(\'/sdk\',\'\');\r\n\r\n Vcenter.params = params;\r\n },\r\n\r\n isGtOrEqVersion: function (first_version, second_version) {\r\n var first = first_version.split(\'.\').map(Number),\r\n second = second_version.split(\'.\').map(Number);\r\n\r\n if (first.length > second.length) {\r\n const max_componens_length = first.length\r\n }\r\n else {\r\n const max_componens_length = second.length\r\n }\r\n\r\n var num_components = first.length;\r\n while (num_components < max_componens_length) {\r\n first.push(0);\r\n num_components = num_components +1;\r\n }\r\n\r\n var num_components = second.length;\r\n while (num_components < max_componens_length) {\r\n second.push(0);\r\n num_components = num_components +1;\r\n }\r\n\r\n if (first[0] > second[0] ||\r\n (first[0] === second[0] && first[1] > second[1]) ||\r\n (first[0] === second[0] && first[1] === second[1] && first[2] >= second[2])) {\r\n return true;\r\n }\r\n\r\n return false;\r\n },\r\n\r\n login: function () {\r\n var response, request = new HttpRequest();\r\n request.setHttpAuth(HTTPAUTH_BASIC, Vcenter.params.username, Vcenter.params.password);\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Content-Type: application/json\');\r\n\r\n response = request.post(Vcenter.params.url + \'/api/session\', \'\');\r\n if (request.getStatus() >= 200 && request.getStatus() < 300 && (!JSON.parse(response).error)) {\r\n Vcenter.vmware_api_session_id = Vcenter.removeQuotes(response);\r\n return true;\r\n }\r\n\r\n response = request.post(Vcenter.params.url + \'/rest/com/vmware/cis/session\', \'\');\r\n if (request.getStatus() >= 200 && request.getStatus() < 300) {\r\n Vcenter.vmware_api_session_id = JSON.parse(response).value;\r\n return true;\r\n }\r\n\r\n return false;\r\n },\r\n\r\n logout: function () {\r\n path = \'/rest/com/vmware/cis/session\';\r\n if (Vcenter.vmware_api_version && Vcenter.isGtOrEqVersion(Vcenter.vmware_api_version, \'7.0.2\')) {\r\n path = \'/api/session\';\r\n }\r\n\r\n Vcenter.request(Vcenter.params.url + path, \'delete\');\r\n },\r\n\r\n get_version: function () {\r\n path = \'/rest/appliance/system/version\';\r\n\r\n try {\r\n Vcenter.vmware_api_version = Vcenter.request(Vcenter.params.url + path, \'get\').version;\r\n return true;\r\n }\r\n catch (error) {\r\n return false;\r\n }\r\n },\r\n\r\n removeQuotes: function (str){\r\n if (str.startsWith(\'"\') && str.endsWith(\'"\')) {\r\n return str.slice(1, -1);\r\n }\r\n\r\n return str;\r\n },\r\n\r\n getHealthStatus: function () {\r\n path = \'/api/appliance/health/system\';\r\n if (!Vcenter.isGtOrEqVersion(Vcenter.vmware_api_version, \'7.0.2\')) {\r\n path = \'/rest/appliance/health/system\';\r\n }\r\n\r\n result = Vcenter.removeQuotes(Vcenter.request(Vcenter.params.url + path, \'get\'));\r\n\r\n const idx = [\r\n \'green\',\r\n \'yellow\',\r\n \'orange\',\r\n \'red\',\r\n \'gray\'\r\n ].indexOf(result.toLowerCase());\r\n Vcenter.health_status = idx !== -1 ? idx : 5;\r\n },\r\n\r\n request: function (url, method) {\r\n var response, request = new HttpRequest();\r\n\r\n if (typeof Vcenter.params.proxy !== \'undefined\' && Vcenter.params.proxy !== \'\') {\r\n request.setProxy(Vcenter.params.proxy);\r\n }\r\n\r\n request.setHttpAuth(HTTPAUTH_NONE);\r\n request.addHeader("Cookie: vmware-api-session-id=" + Vcenter.vmware_api_session_id);\r\n\r\n Zabbix.log(4, \'[ VMware vCenter ] Sending request: \' + url);\r\n\r\n switch (method) {\r\n case \'get\':\r\n response = request.get(url);\r\n break;\r\n\r\n case \'post\':\r\n response = request.post(url);\r\n break;\r\n\r\n case \'delete\':\r\n response = request.delete(url);\r\n break;\r\n\r\n default:\r\n throw \'Unsupported HTTP request method: \' + method;\r\n }\r\n\r\n Zabbix.log(4, \'[ VMware vCenter ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n throw \'Cannot connect to VMware vCenter. Check debug log for more information.\';\r\n }\r\n\r\n if (method !== \'delete\' && JSON.parse(response).value) {\r\n return JSON.parse(response).value;\r\n }\r\n else {\r\n return response;\r\n }\r\n }\r\n};\r\n\r\ntry {\r\n Vcenter.setParams(JSON.parse(value));\r\n \r\n if (Vcenter.login() && Vcenter.get_version() && Vcenter.isGtOrEqVersion(Vcenter.vmware_api_version, \'6.5.0\')) {\r\n Vcenter.getHealthStatus();\r\n }\r\n else {\r\n Vcenter.health_status = 6;\r\n }\r\n\r\n if (Vcenter.vmware_api_session_id) {\r\n Vcenter.logout();\r\n }\r\n}\r\ncatch (error) {\r\n Zabbix.log(3, \'[ VMware vCenter ] ERROR: \' + error);\r\n Vcenter.error_msg = \'Failed to get data from API:\' + error;\r\n}\r\n\r\nreturn JSON.stringify({\'health\': Vcenter.health_status, \'error\': Vcenter.error_msg});','','0','','','','','0',NULL,'Gets overall health of the system. This item works only with VMware vCenter versions above 6.5.','0','7d','0','',NULL,'10','','','','200','1','0','','','0','0','0','0','0','0','0','7445c01436234092ad5d093d872b0682','0','2','0'),
('47451','5','','10048','Utilization of browser poller data collector processes, in %','zabbix[process,browser poller,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the browser poller processes have been busy for the last minute.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3ec67d79691b432c8a357fedfec77e6d','0','2','0'),
('47452','5','','10048','Utilization of internal poller data collector processes, in %','zabbix[process,internal poller,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the internal poller processes have been busy for the last minute.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a1278ad64af9401a834cd09b0c2f5766','0','2','0'),
('47455','5','','10047','Utilization of browser poller data collector processes, in %','zabbix[process,browser poller,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the browser poller processes have been busy for the last minute.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','dd20332db0c64a63a82378c1e8b2685c','0','2','0'),
('47456','5','','10047','Utilization of configuration syncer worker internal processes, in %','zabbix[process,configuration syncer worker,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the configuration syncer worker processes have been busy for the last minute.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','dfb04028770e4e3e8a154304b82284ba','0','2','0'),
('47457','5','','10047','Utilization of internal poller data collector processes, in %','zabbix[process,internal poller,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the internal poller processes have been busy for the last minute.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','912dd7b55d244aa9bbc3af17ba168b13','0','2','0'),
('47458','5','','10047','Utilization of proxy group manager internal processes, in %','zabbix[process,proxy group manager,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the proxy group manager processes have been busy for the last minute.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','306334d48ce6427d93ca8fbe292b8a11','0','2','0'),
('47459','5','','10047','Zabbix proxy groups stats','zabbix[proxy group,discovery]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The master item of Zabbix proxy groups\' statistics.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','efba7193b9aa48c385e98c9babfaa689','0','2','0'),
('47485','21','','10632','Get Lambda alarms data','aws.lambda.get_alarms','0s;m/1','0','0','0','4','','','','',NULL,NULL,'var AWS = {\r\n params: {},\r\n metadata: \'http://169.254.169.254/latest/\',\r\n\r\n getField: function (data, path) {\r\n var steps = path.split(\'.\');\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n\r\n data = data[step];\r\n }\r\n\r\n return data;\r\n },\r\n\r\n getRoleBaseCredentials: function () {\r\n AWS.params[\'auth_type\'] = \'role_base\';\r\n var request = new HttpRequest();\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token-ttl-seconds: 21600\');\r\n var token = request.put(AWS.metadata + \'api/token\');\r\n\r\n if (request.getStatus() !== 200 || token === null || token === \'\') {\r\n throw \'Error getting IMDSv2 session token.\';\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token: \' + token);\r\n var IamRoleName = request.get(AWS.metadata + \'meta-data/iam/security-credentials\');\r\n\r\n if (request.getStatus() !== 200 || IamRoleName === null || IamRoleName === \'\') {\r\n throw \'Error getting security credentials from instance metadata. Role not found.\';\r\n }\r\n\r\n credentials = request.get(AWS.metadata + \'meta-data/iam/security-credentials/\' + encodeURI(IamRoleName));\r\n\r\n if (request.getStatus() !== 200 || credentials === null || credentials === \'\') {\r\n throw \'Error getting security credentials from instance metadata.\';\r\n }\r\n\r\n try {\r\n credentials = JSON.parse(credentials);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from instance metadata. Check debug log for more information.\';\r\n }\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'Token\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n },\r\n\r\n setParams: function (params) {\r\n AWS.params[\'proxy\'] = params.proxy;\r\n switch (AWS.getField(params, \'auth_type\')) {\r\n case \'role_base\':\r\n AWS.getRoleBaseCredentials();\r\n break;\r\n case \'assume_role\':\r\n if (typeof params.metadata_auth === \'undefined\' || params.metadata_auth === \'\' || (params.metadata_auth !== \'true\' && params.metadata_auth !== \'false\')) {\r\n throw \'Required param metadata_auth for assume_role is not set or has invalid value: "\' + params.metadata_auth + \'". Expected "true" or "false".\';\r\n }\r\n if (params.metadata_auth === \'true\') {\r\n AWS.getRoleBaseCredentials();\r\n AWS.params[\'SessionToken\'] = AWS.params[\'Token\'];\r\n AWS.params[\'auth_type\'] = \'assume_role_metadata\';\r\n\r\n [\'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n if (params.metadata_auth === \'false\') {\r\n AWS.params[\'auth_type\'] = \'assume_role\';\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n const role_arn_regex = /role\\/(.+)$/;\r\n const match = AWS.params.role_arn.match(role_arn_regex);\r\n if (!match) {\r\n throw \'Invalid role ARN format.\';\r\n }\r\n\r\n const payload = {\r\n \'Action\': \'AssumeRole\',\r\n \'Version\': \'2011-06-15\',\r\n \'RoleArn\': AWS.params.role_arn,\r\n \'RoleSessionName\': match[1] + \'Session\',\r\n };\r\n\r\n credentials = AWS.getField(AWS.request(\'GET\', AWS.params.sts_region, \'sts\', AWS.prepareParams(payload), \'\'), \'AssumeRoleResponse.AssumeRoleResult.Credentials\');\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'SessionToken\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n break;\r\n default:\r\n AWS.params[\'auth_type\'] = \'access_key\';\r\n [\'AccessKeyId\', \'SecretAccessKey\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n [\'region\', \'name\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n },\r\n\r\n sign: function (key, message) {\r\n var hex = hmac(\'sha256\', key, message);\r\n\r\n if ((hex.length % 2) === 1) {\r\n throw \'Invalid length of a hex string!\';\r\n }\r\n\r\n var result = new Int8Array(hex.length / 2);\r\n for (var i = 0, b = 0; i < hex.length; i += 2, b++) {\r\n result[b] = parseInt(hex.substring(i, i + 2), 16);\r\n }\r\n\r\n return result;\r\n },\r\n\r\n prepareParams: function (params) {\r\n var result = [];\r\n\r\n Object.keys(params).sort().forEach(function (key) {\r\n if (typeof params[key] !== \'object\') {\r\n result.push(key + \'=\' + encodeURIComponent(params[key]));\r\n }\r\n else {\r\n result.push(prepareObject(key, params[key]));\r\n }\r\n });\r\n\r\n return result.join(\'&\');\r\n },\r\n\r\n request: function (method, region, service, params, data) {\r\n if (typeof data === \'undefined\' || data === null) {\r\n data = \'\';\r\n }\r\n\r\n var amzdate = (new Date()).toISOString().replace(/\\.\\d+Z/, \'Z\').replace(/[-:]/g, \'\'),\r\n date = amzdate.replace(/T\\d+Z/, \'\'),\r\n host = service + \'.\' + region + \'.amazonaws.com\',\r\n canonical_uri = \'/\',\r\n canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\',\r\n signed_headers = \'content-encoding;host;x-amz-date\',\r\n canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data),\r\n credential_scope = date + \'/\' + region + \'/\' + service + \'/\' + \'aws4_request\',\r\n request_string = \'AWS4-HMAC-SHA256\' + \'\\n\' + amzdate + \'\\n\' + credential_scope + \'\\n\' + sha256(canonical_request),\r\n key = AWS.sign(\'AWS4\' + AWS.params.SecretAccessKey, date),\r\n key = AWS.sign(key, region),\r\n key = AWS.sign(key, service),\r\n key = AWS.sign(key, \'aws4_request\'),\r\n request = new HttpRequest(),\r\n url = \'https://\' + host + canonical_uri + \'?\' + params;\r\n\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'x-amz-date: \' + amzdate);\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Content-Encoding: amz-1.0\');\r\n request.addHeader(\'Authorization: \' + \'AWS4-HMAC-SHA256 Credential=\' + AWS.params.AccessKeyId + \'/\' + credential_scope + \', \' + \'SignedHeaders=\' + signed_headers + \', \' + \'Signature=\' + hmac(\'sha256\', key, request_string));\r\n if (AWS.params.auth_type === \'role_base\' || AWS.params.auth_type === \'assume_role_metadata\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n request.addHeader(\'X-Amz-Security-Token: \' + (AWS.params.auth_type === \'role_base\' ? AWS.params.Token : AWS.params.SessionToken));\r\n }\r\n\r\n Zabbix.log(4, \'[ AWS Lambda Alarms ] Sending request: \' + url);\r\n response = request.get(url);\r\n Zabbix.log(4, \'[ AWS Lambda Alarms ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() !== 200) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n try {\r\n response = JSON.parse(XML.toJson(response));\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from AWS CloudWatch API. Check debug log for more information.\';\r\n }\r\n }\r\n\r\n return response;\r\n },\r\n\r\n getAlarms: function () {\r\n var payload = {\r\n \'Action\': \'DescribeAlarms\',\r\n \'Version\': \'2010-08-01\',\r\n \'MaxRecords\': 100\r\n },\r\n result = [];\r\n\r\n while (payload.NextToken !== \'\') {\r\n var alarms = AWS.getField(AWS.request(\'GET\', AWS.params.region, \'monitoring\', AWS.prepareParams(payload)), \'DescribeAlarmsResponse.DescribeAlarmsResult\');\r\n payload.NextToken = alarms.NextToken || \'\';\r\n alarms_list = AWS.getField(alarms, \'MetricAlarms\');\r\n\r\n if (!Array.isArray(alarms_list))\r\n alarms_list = [alarms_list];\r\n alarms_list.forEach(function (alarm) {\r\n var dimensions = alarm.Dimensions;\r\n\r\n if (Array.isArray(alarm.Metrics)) {\r\n alarm.Metrics.forEach(function (metric) {\r\n if (typeof metric.MetricStat === \'object\' && metric.MetricStat !== null\r\n && typeof metric.MetricStat.Metric === \'object\' && metric.MetricStat.Metric !== null\r\n && Array.isArray(metric.MetricStat.Metric.Dimensions)) {\r\n dimensions = dimensions.concat(metric.MetricStat.Metric.Dimensions);\r\n }\r\n });\r\n }\r\n for (var i in dimensions) {\r\n if (dimensions[i].Name === \'FunctionName\' && dimensions[i].Value === AWS.params.name) {\r\n result.push(alarm);\r\n break;\r\n }\r\n }\r\n });\r\n }\r\n\r\n return result;\r\n }\r\n};\r\n\r\ntry {\r\n AWS.setParams(JSON.parse(value));\r\n\r\n return JSON.stringify(AWS.getAlarms());\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ AWS Lambda Alarms ] ERROR: \' + error);\r\n\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'`DescribeAlarms` API method: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarms.html','0','7d','0','',NULL,'{$AWS.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','c80b25e889004287b6131c00000a3ad7','0','2','0'),
('47486','21','','10632','Get metrics data','aws.lambda.get_metrics','0s;m/1','0','0','0','4','','','','',NULL,NULL,'var AWS = {\r\n params: {},\r\n metadata: \'http://169.254.169.254/latest/\',\r\n request_period: 60,\r\n\r\n getField: function (data, path) {\r\n var steps = path.split(\'.\');\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n\r\n data = data[step];\r\n }\r\n\r\n return data;\r\n },\r\n\r\n getRoleBaseCredentials: function () {\r\n AWS.params[\'auth_type\'] = \'role_base\';\r\n var request = new HttpRequest();\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token-ttl-seconds: 21600\');\r\n var token = request.put(AWS.metadata + \'api/token\');\r\n\r\n if (request.getStatus() !== 200 || token === null || token === \'\') {\r\n throw \'Error getting IMDSv2 session token.\';\r\n }\r\n request.addHeader(\'X-aws-ec2-metadata-token: \' + token);\r\n var IamRoleName = request.get(AWS.metadata + \'meta-data/iam/security-credentials\');\r\n\r\n if (request.getStatus() !== 200 || IamRoleName === null || IamRoleName === \'\') {\r\n throw \'Error getting security credentials from instance metadata. Role not found.\';\r\n }\r\n\r\n credentials = request.get(AWS.metadata + \'meta-data/iam/security-credentials/\' + encodeURI(IamRoleName));\r\n\r\n if (request.getStatus() !== 200 || credentials === null || credentials === \'\') {\r\n throw \'Error getting security credentials from instance metadata.\';\r\n }\r\n\r\n try {\r\n credentials = JSON.parse(credentials);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from instance metadata. Check debug log for more information.\';\r\n }\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'Token\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n },\r\n\r\n setParams: function (params) {\r\n AWS.params[\'proxy\'] = params.proxy;\r\n switch (AWS.getField(params, \'auth_type\')) {\r\n case \'role_base\':\r\n AWS.getRoleBaseCredentials();\r\n break;\r\n case \'assume_role\':\r\n if (typeof params.metadata_auth === \'undefined\' || params.metadata_auth === \'\' || (params.metadata_auth !== \'true\' && params.metadata_auth !== \'false\')) {\r\n throw \'Required param metadata_auth for assume_role is not set or has invalid value: "\' + params.metadata_auth + \'". Expected "true" or "false".\';\r\n }\r\n if (params.metadata_auth === \'true\') {\r\n AWS.getRoleBaseCredentials();\r\n AWS.params[\'SessionToken\'] = AWS.params[\'Token\'];\r\n AWS.params[\'auth_type\'] = \'assume_role_metadata\';\r\n\r\n [\'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n if (params.metadata_auth === \'false\') {\r\n AWS.params[\'auth_type\'] = \'assume_role\';\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'sts_region\', \'role_arn\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n\r\n const role_arn_regex = /role\\/(.+)$/;\r\n const match = AWS.params.role_arn.match(role_arn_regex);\r\n if (!match) {\r\n throw \'Invalid role ARN format.\';\r\n }\r\n\r\n const payload = {\r\n \'Action\': \'AssumeRole\',\r\n \'Version\': \'2011-06-15\',\r\n \'RoleArn\': AWS.params.role_arn,\r\n \'RoleSessionName\': match[1] + \'Session\',\r\n };\r\n\r\n credentials = AWS.getField(AWS.request(\'POST\', AWS.params.sts_region, \'sts\', AWS.prepareParams(payload), \'\'), \'AssumeRoleResponse.AssumeRoleResult.Credentials\');\r\n\r\n [\'AccessKeyId\', \'SecretAccessKey\', \'SessionToken\'].forEach(function (field) {\r\n if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n throw \'Required credentials are not set: "\' + field + \'".\';\r\n };\r\n AWS.params[field] = credentials[field];\r\n });\r\n break;\r\n default:\r\n AWS.params[\'auth_type\'] = \'access_key\';\r\n [\'AccessKeyId\', \'SecretAccessKey\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n }\r\n [\'region\', \'name\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: "\' + field + \'".\';\r\n }\r\n AWS.params[field] = params[field];\r\n });\r\n\r\n },\r\n\r\n sign: function (key, message) {\r\n var hex = hmac(\'sha256\', key, message);\r\n\r\n if ((hex.length % 2) === 1) {\r\n throw \'Invalid length of a hex string!\';\r\n }\r\n\r\n var result = new Int8Array(hex.length / 2);\r\n for (var i = 0, b = 0; i < hex.length; i += 2, b++) {\r\n result[b] = parseInt(hex.substring(i, i + 2), 16);\r\n }\r\n\r\n return result;\r\n },\r\n\r\n prepareParams: function (params) {\r\n var result = [];\r\n\r\n Object.keys(params).sort().forEach(function (key) {\r\n if (typeof params[key] !== \'object\') {\r\n result.push(key + \'=\' + encodeURIComponent(params[key]));\r\n }\r\n else {\r\n result.push(prepareObject(key, params[key]));\r\n }\r\n });\r\n\r\n return result.join(\'&\');\r\n },\r\n\r\n renderMetricQuery: function (period, name) {\r\n var metrics_list = [\r\n \'AsyncEventsReceived:Average\',\r\n \'AsyncEventAge:Average\',\r\n \'AsyncEventsDropped:Average\',\r\n \'ConcurrentExecutions:Average\',\r\n \'UnreservedConcurrentExecutions:Sum\',\r\n \'Invocations:Sum\',\r\n \'Errors:Sum\',\r\n \'Throttles:Sum\',\r\n \'Duration:Average\'\r\n ];\r\n\r\n var metric_payload = [];\r\n metrics_list.forEach(function (metric, index) {\r\n var parts = metric.split(\':\', 2);\r\n metric_payload.push({\r\n \'Id\': \'m\' + index,\r\n \'MetricStat\': {\r\n \'Metric\': {\r\n \'MetricName\': parts[0],\r\n \'Namespace\': \'AWS/Lambda\',\r\n \'Dimensions\': [\r\n {\r\n \'Name\': \'FunctionName\',\r\n \'Value\': name,\r\n }\r\n ]\r\n },\r\n \'Period\': period,\r\n \'Stat\': parts[1],\r\n }\r\n });\r\n });\r\n\r\n return metric_payload;\r\n },\r\n\r\n request: function (method, region, service, params, data) {\r\n if (typeof data === \'undefined\' || data === null) {\r\n data = JSON.stringify([]);\r\n }\r\n else {\r\n data = JSON.stringify(data)\r\n }\r\n var amzdate = (new Date()).toISOString().replace(/\\.\\d+Z/, \'Z\').replace(/[-:]/g, \'\'),\r\n date = amzdate.replace(/T\\d+Z/, \'\'),\r\n canonical_uri = \'/\',\r\n host = service + \'.\' + region + \'.amazonaws.com\',\r\n canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\',\r\n signed_headers = \'content-encoding;host;x-amz-date\',\r\n canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data),\r\n credential_scope = date + \'/\' + region + \'/\' + service + \'/\' + \'aws4_request\',\r\n request_string = \'AWS4-HMAC-SHA256\' + \'\\n\' + amzdate + \'\\n\' + credential_scope + \'\\n\' + sha256(canonical_request),\r\n key = AWS.sign(\'AWS4\' + AWS.params.SecretAccessKey, date),\r\n key = AWS.sign(key, region),\r\n key = AWS.sign(key, service),\r\n key = AWS.sign(key, \'aws4_request\'),\r\n request = new HttpRequest(),\r\n url = \'https://\' + host + canonical_uri + \'?\' + params;\r\n\r\n if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n request.setProxy(AWS.params.proxy);\r\n }\r\n request.addHeader(\'x-amz-date: \' + amzdate);\r\n request.addHeader(\'x-amz-content-sha256:\' + sha256(data));\r\n request.addHeader(\'X-Amz-Target: GraniteServiceVersion20100801.GetMetricData\')\r\n request.addHeader(\'Accept: application/json\');\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Content-Encoding: amz-1.0\');\r\n request.addHeader(\'Authorization: \' + \'AWS4-HMAC-SHA256 Credential=\' + AWS.params.AccessKeyId + \'/\' + credential_scope + \', \' + \'SignedHeaders=\' + signed_headers + \', \' + \'Signature=\' + hmac(\'sha256\', key, request_string));\r\n if (AWS.params.auth_type === \'role_base\' || AWS.params.auth_type === \'assume_role_metadata\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n request.addHeader(\'X-Amz-Security-Token: \' + (AWS.params.auth_type === \'role_base\' ? AWS.params.Token : AWS.params.SessionToken));\r\n }\r\n\r\n Zabbix.log(4, \'[ AWS Lambda Get metrics ] Sending request: \' + url);\r\n response = request.post(url, data);\r\n Zabbix.log(4, \'[ AWS Lambda Get metrics ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n if (request.getStatus() !== 200) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n return JSON.parse(response);\r\n },\r\n\r\n getMetricsData: function () {\r\n var end_time = Math.floor((new Date().getTime()) / 1000),\r\n start_time = end_time - AWS.request_period * 60;\r\n payload = {\r\n \'StartTime\': start_time,\r\n \'EndTime\': end_time,\r\n \'ScanBy\': \'TimestampDescending\',\r\n \'MetricDataQueries\': AWS.renderMetricQuery(AWS.request_period, AWS.params.name)\r\n };\r\n\r\n return AWS.getField(AWS.request(\'POST\', AWS.params.region, \'monitoring\', \'\', payload), \'MetricDataResults\');\r\n }\r\n};\r\n\r\ntry {\r\n AWS.setParams(JSON.parse(value));\r\n return JSON.stringify(AWS.getMetricsData());\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ AWS Lambda Get metrics ] ERROR: \' + error);\r\n\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Get Lambda function metrics.\r\nFull metrics list related to the Lambda function: https://docs.aws.amazon.com/lambda/latest/dg/monitoring-metrics.html','0','7d','0','',NULL,'{$AWS.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','24c4972d090f4e72abc473752aac27d8','0','2','0'),
('47504','21','','10634','Get data','azure.scaleset.data.get','1m','0','0','0','4','','','','',NULL,NULL,'var Azure = {\r\n params: {},\r\n token: null,\r\n\r\n setParams: function (params) {\r\n [\'app_id\', \'password\', \'tenant_id\', \'subscription_id\', \'resource_id\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n\r\n Azure.params = params;\r\n },\r\n\r\n login: function () {\r\n var response, login = new HttpRequest();\r\n\r\n if (typeof Azure.params.proxy !== \'undefined\' && Azure.params.proxy !== \'\') {\r\n login.setProxy(Azure.params.proxy);\r\n }\r\n\r\n login.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n response = login.post(\r\n \'https://login.microsoftonline.com/\' + encodeURIComponent(Azure.params.tenant_id) + \'/oauth2/token\',\r\n \'grant_type=client_credentials&resource=\' + encodeURIComponent(\'https://management.azure.com/\') + \'&client_id=\' + encodeURIComponent(Azure.params.app_id) + \'&client_secret=\' + encodeURIComponent(Azure.params.password)\r\n );\r\n\r\n if (login.getStatus() !== 200) {\r\n throw \'Login failed with status code \' + login.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse login session response.\';\r\n }\r\n\r\n if (!response.hasOwnProperty(\'access_token\')) {\r\n throw \'Authentication response does not contain access token.\';\r\n }\r\n\r\n Azure.token = response[\'access_token\'];\r\n },\r\n\r\n request: function (url) {\r\n var response, request = new HttpRequest();\r\n\r\n if (typeof Azure.params.proxy !== \'undefined\' && Azure.params.proxy !== \'\') {\r\n request.setProxy(Azure.params.proxy);\r\n }\r\n\r\n if (!Azure.token) {\r\n throw \'Request does not contain access token.\';\r\n }\r\n\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Authorization: Bearer \' + Azure.token);\r\n Zabbix.log(4, \'[ AzureVMSS ] request url: \' + url);\r\n\r\n response = request.get(url);\r\n\r\n if (request.getStatus() !== 200) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n return JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from API.\';\r\n }\r\n },\r\n\r\n getField: function (data, path) {\r\n var steps = path.split(\'.\');\r\n\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n data = data[step];\r\n }\r\n\r\n return data;\r\n },\r\n\r\n getMetricsData: function () {\r\n var data = {},\r\n metric_endpoints = {\r\n \'main_metrics\': \'/providers/Microsoft.Insights/metrics?metricnames=\' + encodeURIComponent(\'Available Memory Bytes,CPU Credits Consumed,CPU Credits Remaining,Percentage CPU,Inbound Flows,Inbound Flows Maximum Creation Rate,Network In,Network In Total,Network Out,Network Out Total,Outbound Flows,Outbound Flows Maximum Creation Rate,VmAvailabilityMetric\') + \'&api-version=2021-05-01×pan=PT1M\',\r\n \'disks_metrics\': \'/providers/Microsoft.Insights/metrics?metricnames=\' + encodeURIComponent(\'Data Disk Bandwidth Consumed Percentage,Data Disk IOPS Consumed Percentage,Data Disk Max Burst Bandwidth,Data Disk Max Burst IOPS,Data Disk Queue Depth,Data Disk Read Bytes/sec,Data Disk Read Operations/Sec,Data Disk Target Bandwidth,Data Disk Target IOPS,Data Disk Used Burst BPS Credits Percentage,Data Disk Used Burst IO Credits Percentage,Data Disk Write Bytes/sec,Data Disk Write Operations/Sec,Disk Read Bytes,Disk Read Operations/Sec,Disk Write Bytes,Disk Write Operations/Sec\') + \'&api-version=2021-05-01×pan=PT1M\',\r\n \'os_disk_metrics\': \'/providers/Microsoft.Insights/metrics?metricnames=\' + encodeURIComponent(\'OS Disk Bandwidth Consumed Percentage,OS Disk IOPS Consumed Percentage,OS Disk Max Burst Bandwidth,OS Disk Max Burst IOPS,OS Disk Queue Depth,OS Disk Read Bytes/sec,OS Disk Read Operations/Sec,OS Disk Target Bandwidth,OS Disk Target IOPS,OS Disk Used Burst BPS Credits Percentage,OS Disk Used Burst IO Credits Percentage,OS Disk Write Bytes/sec,OS Disk Write Operations/Sec\') + \'&api-version=2021-05-01×pan=PT1M\',\r\n \'premium_and_vm_metrics\': \'/providers/Microsoft.Insights/metrics?metricnames=\' + encodeURIComponent(\'Premium Data Disk Cache Read Hit,Premium Data Disk Cache Read Miss,Premium OS Disk Cache Read Hit,Premium OS Disk Cache Read Miss,VM Cached Bandwidth Consumed Percentage,VM Cached IOPS Consumed Percentage,VM Local Used Burst BPS Credits Percentage,VM Local Used Burst IO Credits Percentage,VM Remote Used Burst BPS Credits Percentage,VM Remote Used Burst IO Credits Percentage,VM Uncached Bandwidth Consumed Percentage,VM Uncached IOPS Consumed Percentage\') + \'&api-version=2021-05-01×pan=PT1M\'\r\n };\r\n\r\n data.metrics = {};\r\n\r\n Object.keys(metric_endpoints).forEach(function (field) {\r\n metrics = Azure.getField(Azure.request(\'https://management.azure.com\' + Azure.params.resource_id + metric_endpoints[field]), \'value\');\r\n for (k in metrics) {\r\n key = Azure.getField(metrics[k], \'name.value\').replace(/(\\s|\\/)+/g, \'\');\r\n if (metrics[k].timeseries.length === 0) {\r\n metrics[k].timeseries.push({ \'data\': [\'nodata\'] })\r\n }\r\n data.metrics[key] = Azure.getField(metrics[k], \'timeseries.0.data.0\');\r\n }\r\n });\r\n\r\n data.capacity = Azure.getField(Azure.request(\'https://management.azure.com\' + Azure.params.resource_id + \'?api-version=2024-03-01\'), \'sku.capacity\');\r\n data.health = Azure.getField(Azure.request(\'https://management.azure.com\' + Azure.params.resource_id + \'/providers/Microsoft.ResourceHealth/availabilityStatuses?api-version=2020-05-01\'), \'value.0.properties\');\r\n\r\n return data\r\n }\r\n};\r\n\r\ntry {\r\n Azure.setParams(JSON.parse(value));\r\n Azure.login();\r\n return JSON.stringify(Azure.getMetricsData());\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ AzureVMSS ] ERROR: \' + error);\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Gathers data of the virtual machine scale set.','0','7d','0','',NULL,'{$AZURE.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','f783d047862144f2baed76bb281cec5b','0','2','0'),
('47570','20','walk[1.3.6.1.4.1.34774.4.1.23.5.5.1.1,1.3.6.1.4.1.34774.4.1.23.5.5.1.2,1.3.6.1.4.1.34774.4.1.23.5.5.1.3,1.3.6.1.4.1.34774.4.1.23.5.5.1.4]','10636','BBU SNMP walk','huawei.oceanstor.v6.bbu.snmp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovery of device backup battery units.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b1b27fc308a643c080ca461aa43ac155','0','2','0'),
('47571','20','get[1.3.6.1.4.1.34774.4.1.1.5.0]','10636','Capacity total','huawei.oceanstor.v6.capacity.total','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'Total capacity of a device.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5966b59ae96c4044a2c53d84728aa385','0','2','0'),
('47572','20','get[1.3.6.1.4.1.34774.4.1.1.4.0]','10636','Capacity used','huawei.oceanstor.v6.capacity.used','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'Used capacity of a device.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0bb56fda578e44b28dfaca63e37c6026','0','2','0'),
('47573','20','walk[1.3.6.1.4.1.34774.4.1.23.5.2.1.1,1.3.6.1.4.1.34774.4.1.23.5.2.1.8,1.3.6.1.4.1.34774.4.1.23.5.2.1.9,1.3.6.1.4.1.34774.4.1.23.5.2.1.2,1.3.6.1.4.1.34774.4.1.23.5.2.1.3,1.3.6.1.4.1.34774.4.1.23.5.2.1.6]','10636','Controller SNMP walk','huawei.oceanstor.v6.controller.snmp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovery of device controllers.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','251875b1bf7f4aea800eebdf826c92cc','0','2','0'),
('47574','20','walk[1.3.6.1.4.1.34774.4.1.23.5.1.1.1,1.3.6.1.4.1.34774.4.1.23.5.1.1.12,1.3.6.1.4.1.34774.4.1.23.5.1.1.4,1.3.6.1.4.1.34774.4.1.23.5.1.1.2,1.3.6.1.4.1.34774.4.1.23.5.1.1.3,1.3.6.1.4.1.34774.4.1.23.5.1.1.11]','10636','Disk SNMP walk','huawei.oceanstor.v6.disk.snmp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovery of device disks.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','502c0446b3ac4c7c91fb81076e8fded0','0','2','0'),
('47575','20','walk[1.3.6.1.4.1.34774.4.1.23.5.6.1.2,1.3.6.1.4.1.34774.4.1.23.5.6.1.4,1.3.6.1.4.1.34774.4.1.23.5.6.1.5,1.3.6.1.4.1.34774.4.1.23.5.6.1.8]','10636','Enclosure SNMP walk','huawei.oceanstor.v6.enclosure.snmp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovery of device enclosures.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','dc3f094725ff4794844687d4037ea2c2','0','2','0'),
('47576','20','walk[1.3.6.1.4.1.34774.4.1.23.5.4.1.1,1.3.6.1.4.1.34774.4.1.23.5.4.1.2,1.3.6.1.4.1.34774.4.1.23.5.4.1.3,1.3.6.1.4.1.34774.4.1.23.5.4.1.4]','10636','Fan SNMP walk','huawei.oceanstor.v6.fan.snmp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovery of device fans.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fe922a88992f49f9a6bf4ed080c880d7','0','2','0'),
('47577','20','walk[1.3.6.1.4.1.34774.4.1.19.9.4.1.2,1.3.6.1.4.1.34774.4.1.19.9.4.1.11,1.3.6.1.4.1.34774.4.1.21.4.1.13,1.3.6.1.4.1.34774.4.1.21.4.1.15,1.3.6.1.4.1.34774.4.1.21.4.1.16,1.3.6.1.4.1.34774.4.1.21.4.1.3,1.3.6.1.4.1.34774.4.1.21.4.1.4,1.3.6.1.4.1.34774.4.1.21.4.1.5,1.3.6.1.4.1.34774.4.1.21.4.1.6,1.3.6.1.4.1.34774.4.1.21.4.1.7,1.3.6.1.4.1.34774.4.1.21.4.1.8,1.3.6.1.4.1.34774.4.1.19.9.4.1.5]','10636','LUN SNMP walk','huawei.oceanstor.v6.lun.snmp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovery of device logical unit numbers.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','269a95fbb3ce4f1eb9dc684777875d87','0','2','0'),
('47578','20','walk[1.3.6.1.4.1.34774.4.1.21.3.1.1,1.3.6.1.4.1.34774.4.1.21.3.1.2,1.3.6.1.4.1.34774.4.1.21.3.1.5,1.3.6.1.4.1.34774.4.1.21.3.1.6,1.3.6.1.4.1.34774.4.1.21.3.1.7,1.3.6.1.4.1.34774.4.1.21.3.1.8,1.3.6.1.4.1.34774.4.1.21.3.1.9,1.3.6.1.4.1.34774.4.1.21.3.1.10]','10636','Node SNMP walk','huawei.oceanstor.v6.node.snmp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovery of device nodes.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2170d4e5ca684e579dd511e59e5e9828','0','2','0'),
('47579','20','walk[1.3.6.1.4.1.34774.4.1.23.4.2.1.2,1.3.6.1.4.1.34774.4.1.23.4.2.1.14,1.3.6.1.4.1.34774.4.1.23.4.2.1.5,1.3.6.1.4.1.34774.4.1.23.4.2.1.6,1.3.6.1.4.1.34774.4.1.23.4.2.1.7,1.3.6.1.4.1.34774.4.1.23.4.2.1.9]','10636','Storage pool SNMP walk','huawei.oceanstor.v6.pool.snmp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovery of device storage pools.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5daf9372f493406c818b27f5149dcff3','0','2','0'),
('47580','20','get[1.3.6.1.4.1.34774.4.1.1.3.0]','10636','Status','huawei.oceanstor.v6.status','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'System status.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4ad5a10227d74eaaaaf3678a6884b67d','0','2','0'),
('47581','20','get[1.3.6.1.4.1.34774.4.1.1.6.0]','10636','Version','huawei.oceanstor.v6.version','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The device version.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3ed972a612394bf285f816debcd8e89a','0','2','0'),
('47582','3','','10636','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'1243','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','590714e7fb3f4d468c19385146f76433','0','2','0'),
('47583','3','','10636','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3bcc87c0fee74e64be9b66cc9080008e','0','2','0'),
('47584','3','','10636','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','137b8177ba0b4949a895be9dde23400c','0','2','0'),
('47585','17','','10636','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2959893b639d457abb18a2b7e9abda23','0','2','0'),
('47586','20','get[1.3.6.1.2.1.1.4.0]','10636','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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.','23','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f80391019ebb4b18beb7a987c3a20830','0','2','0'),
('47587','20','get[1.3.6.1.2.1.1.1.0]','10636','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e7ddfe4774ad4ed7959d2e2200b50e8f','0','2','0'),
('47588','20','get[1.3.6.1.2.1.25.1.1.0]','10636','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','35b225e3dff343b0a0b82b8239d6bea3','0','2','0'),
('47589','20','get[1.3.6.1.2.1.1.6.0]','10636','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f0fa4b45ea2b41d0b0f40630680fb532','0','2','0'),
('47590','20','get[1.3.6.1.2.1.1.5.0]','10636','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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.','3','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','494d880ba7be4d9fb641b148597f805d','0','2','0'),
('47591','20','get[1.3.6.1.2.1.1.3.0]','10636','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4371c836612f4456a6ce191af79a23a2','0','2','0'),
('47592','20','get[1.3.6.1.2.1.1.2.0]','10636','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe 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 subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','634f6b6a4e724c158ba4726f063a1684','0','2','0'),
('47593','5','','10636','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'1244','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6816cad193a64edcbcf3f09d736eab9b','0','2','0'),
('47639','7','','10637','Service response time','net.tcp.service.perf[http,"{$APACHE.STATUS.HOST}","{$APACHE.STATUS.PORT}"]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3ac09d338f0847288eda20732bf5aa10','0','2','0'),
('47640','7','','10637','Service ping','net.tcp.service[http,"{$APACHE.STATUS.HOST}","{$APACHE.STATUS.PORT}"]','1m','31d','365d','0','3','','','','',NULL,'1245','','','0','','','','','0',NULL,'','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e4252071d0864fd5bf7c60c4d6e4915d','0','2','0'),
('47641','7','','10637','Get processes summary','proc.get[{$APACHE.PROCESS.NAME.PARAMETER},,,summary]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The aggregated data of summary metrics for all processes.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','37f15f5a28364399aa66aad31d0acc08','0','2','0'),
('47642','7','','10637','Get status','web.page.get["{$APACHE.STATUS.SCHEME}://{$APACHE.STATUS.HOST}:{$APACHE.STATUS.PORT}/{$APACHE.STATUS.PATH}"]','1m','1h','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Getting data from a machine-readable version of the Apache status page.\r\nFor more information see Apache Module [mod_status](https://httpd.apache.org/docs/current/mod/mod_status.html).','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d103e519e5044dfd982d535a0981bc84','0','2','0'),
('47689','7','','10639','Service response time','net.tcp.service.perf[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','09762f260f544f57afa5157c6bc632a3','0','2','0'),
('47690','7','','10639','Service status','net.tcp.service[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"]','1m','31d','365d','0','3','','','','',NULL,'1246','','','0','','','','','0',NULL,'','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b68e4123d7c9483c9f77bc9c27fd0e7c','0','2','0'),
('47691','7','','10639','Get processes summary','proc.get[{$NGINX.PROCESS.NAME.PARAMETER},,,summary]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The aggregated data of summary metrics for all processes.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','94bb17445cf14e909fede8b7060c0211','0','2','0'),
('47692','7','','10639','Get stub status page','web.page.get["{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PATH}","{$NGINX.STUB_STATUS.PORT}"]','1m','1h','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The following status information is provided:\r\n`Active connections` - the current number of active client connections including waiting connections.\r\n`Accepted` - the total number of accepted client connections.\r\n`Handled` - the total number of handled connections. Generally, the parameter value is the same as for the accepted connections, unless some resource limits have been reached (for example, the `worker_connections` limit).\r\n`Requests` - the total number of client requests.\r\n`Reading` - the current number of connections where Nginx is reading the request header.\r\n`Writing` - the current number of connections where Nginx is writing a response back to the client.\r\n`Waiting` - the current number of idle client connections waiting for a request.\r\n\r\nSee also [Module ngx_http_stub_status_module](https://nginx.org/en/docs/http/ngx_http_stub_status_module.html).','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','04ed4f82a84b4a81aa8d1682e7a70b5f','0','2','0'),
('47710','21','','10640','Get alert','nutanix.cluster.alert.get','1m','0','0','0','4','','','','',NULL,NULL,'var Nutanix = {\r\n params: {},\r\n\r\n setParams: function (requiredParams, allParams) {\r\n requiredParams.forEach(function (field) {\r\n if (typeof allParams !== \'object\' || typeof allParams[field] === \'undefined\' || allParams[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n\r\n Nutanix.params = allParams;\r\n },\r\n\r\n request: function (url) {\r\n\r\n var request = new HttpRequest();\r\n\r\n if (typeof Nutanix.params.proxy !== \'undefined\' && Nutanix.params.proxy !== \'\') {\r\n request.setProxy(Nutanix.params.proxy);\r\n }\r\n\r\n request.setHttpAuth(HTTPAUTH_BASIC, Nutanix.params.username, Nutanix.params.password);\r\n\r\n Zabbix.log(4, \'[ Nutanix ] Sending request: \' + url);\r\n\r\n const response = request.get(url);\r\n\r\n Zabbix.log(4, \'[ Nutanix ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from Nutanix PRISM API. Check debug log for more information.\';\r\n }\r\n\r\n return response;\r\n },\r\n\r\n deduplicateAlerts: function (full_data) {\r\n const severity_mapping = [\r\n \'kinfo\',\r\n \'kwarning\',\r\n \'kcritical\'\r\n ]\r\n\r\n var output_data = {};\r\n for (var entity in full_data.entities) {\r\n \r\n if (Nutanix.params.api_method === \'clusters\') {\r\n if (result.entities[entity].node_uuid.split(\'-\').length == 5) continue;\r\n }\r\n\r\n var severity = severity_mapping.indexOf(full_data.entities[entity].severity.toLowerCase()),\r\n message = full_data.entities[entity].message,\r\n title = full_data.entities[entity].alert_title;\r\n \r\n full_data.entities[entity].context_types.forEach(function(context, index) {\r\n message = message.replace(\'{\' + context + \'}\', full_data.entities[entity].context_values[index]);\r\n title = title.replace(\'{\' + context + \'}\', full_data.entities[entity].context_values[index]);\r\n });\r\n \r\n key = md5(title + message);\r\n if (key in output_data) {\r\n if (full_data.entities[entity].created_time_stamp_in_usecs > output_data[key].created) {\r\n output_data[key].created = full_data.entities[entity].created_time_stamp_in_usecs;\r\n output_data[key].severity = severity !== -1 ? severity : 3;\r\n output_data[key].state = full_data.entities[entity].resolved ? 0 : 1;\r\n output_data[key].message = full_data.entities[entity].detailed_message != \'\' ? full_data.entities[entity].detailed_message : message;\r\n output_data[key].last_id = full_data.entities[entity].id;\r\n }\r\n output_data[key].count += 1;\r\n } else {\r\n output_data[key] = {\r\n "name": title + \' - \' + message,\r\n "title": title != \'\' ? title : message,\r\n "created": full_data.entities[entity].created_time_stamp_in_usecs,\r\n "severity": severity !== -1 ? severity : 3,\r\n "state": full_data.entities[entity].resolved ? 0 : 1,\r\n "message": full_data.entities[entity].detailed_message != \'\' ? full_data.entities[entity].detailed_message : message,\r\n "last_id": full_data.entities[entity].id,\r\n "count": 1\r\n }\r\n }\r\n }\r\n\r\n return output_data;\r\n },\r\n\r\n cleanUnsupported: function (full_stat) {\r\n var output_stat = {};\r\n for (var element in full_stat) {\r\n if (full_stat[element] !== \'-1\') {\r\n output_stat[element] = full_stat[element];\r\n }\r\n };\r\n \r\n return output_stat;\r\n }\r\n};\r\n\r\ntry {\r\n const params = JSON.parse(value);\r\n Nutanix.setParams([\'endpoint_host\', \'endpoint_port\', \'username\', \'password\', \'auth_type\', \'api_method\', \'target_uuid\'], params);\r\n\r\n const url = \'https://\' + Nutanix.params.endpoint_host + \':\' + Nutanix.params.endpoint_port + \'/PrismGateway/services/rest/v2.0/\' + Nutanix.params.api_method + \'/\' + Nutanix.params.target_uuid + \'/alerts\',\r\n result = Nutanix.request(url);\r\n\r\n return JSON.stringify(Nutanix.deduplicateAlerts(result));\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(4, \'[ Nutanix ] ERROR: \' + error);\r\n\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Get data about alerts.','0','7d','0','',NULL,'{$NUTANIX.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','3761d4da912749c7a84f11a5cfbcf761','0','2','0'),
('47711','21','','10640','Get metric','nutanix.cluster.metric.get','1m','0','0','0','4','','','','',NULL,NULL,'var Nutanix = {\r\n params: {},\r\n\r\n setParams: function (requiredParams, allParams) {\r\n requiredParams.forEach(function (field) {\r\n if (typeof allParams !== \'object\' || typeof allParams[field] === \'undefined\' || allParams[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n\r\n Nutanix.params = allParams;\r\n },\r\n\r\n request: function (url) {\r\n\r\n var request = new HttpRequest();\r\n\r\n if (typeof Nutanix.params.proxy !== \'undefined\' && Nutanix.params.proxy !== \'\') {\r\n request.setProxy(Nutanix.params.proxy);\r\n }\r\n\r\n request.setHttpAuth(HTTPAUTH_BASIC, Nutanix.params.username, Nutanix.params.password);\r\n\r\n Zabbix.log(4, \'[ Nutanix ] Sending request: \' + url);\r\n\r\n const response = request.get(url);\r\n\r\n Zabbix.log(4, \'[ Nutanix ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from Nutanix PRISM API. Check debug log for more information.\';\r\n }\r\n\r\n return response;\r\n },\r\n\r\n deduplicateAlerts: function (full_data) {\r\n const severity_mapping = [\r\n \'kinfo\',\r\n \'kwarning\',\r\n \'kcritical\'\r\n ]\r\n\r\n var output_data = {};\r\n for (var entity in full_data.entities) {\r\n \r\n if (Nutanix.params.api_method === \'clusters\') {\r\n if (result.entities[entity].node_uuid.split(\'-\').length == 5) continue;\r\n }\r\n\r\n var severity = severity_mapping.indexOf(full_data.entities[entity].severity.toLowerCase()),\r\n message = full_data.entities[entity].message,\r\n title = full_data.entities[entity].alert_title;\r\n \r\n full_data.entities[entity].context_types.forEach(function(context, index) {\r\n message = message.replace(\'{\' + context + \'}\', full_data.entities[entity].context_values[index]);\r\n title = title.replace(\'{\' + context + \'}\', full_data.entities[entity].context_values[index]);\r\n });\r\n \r\n key = md5(title + message);\r\n if (key in output_data) {\r\n if (full_data.entities[entity].created_time_stamp_in_usecs > output_data[key].created) {\r\n output_data[key].created = full_data.entities[entity].created_time_stamp_in_usecs;\r\n output_data[key].severity = severity !== -1 ? severity : 3;\r\n output_data[key].state = full_data.entities[entity].resolved ? 0 : 1;\r\n output_data[key].message = full_data.entities[entity].detailed_message != \'\' ? full_data.entities[entity].detailed_message : message;\r\n output_data[key].last_id = full_data.entities[entity].id;\r\n }\r\n output_data[key].count += 1;\r\n } else {\r\n output_data[key] = {\r\n "name": title + \' - \' + message,\r\n "title": title != \'\' ? title : message,\r\n "created": full_data.entities[entity].created_time_stamp_in_usecs,\r\n "severity": severity !== -1 ? severity : 3,\r\n "state": full_data.entities[entity].resolved ? 0 : 1,\r\n "message": full_data.entities[entity].detailed_message != \'\' ? full_data.entities[entity].detailed_message : message,\r\n "last_id": full_data.entities[entity].id,\r\n "count": 1\r\n }\r\n }\r\n }\r\n\r\n return output_data;\r\n },\r\n\r\n cleanUnsupported: function (full_stat) {\r\n var output_stat = {};\r\n for (var element in full_stat) {\r\n if (full_stat[element] !== \'-1\') {\r\n output_stat[element] = full_stat[element];\r\n }\r\n };\r\n \r\n return output_stat;\r\n }\r\n};\r\n\r\ntry {\r\n const params = JSON.parse(value);\r\n Nutanix.setParams([\'endpoint_host\', \'endpoint_port\', \'username\', \'password\', \'auth_type\', \'api_method\', \'target_uuid\'], params);\r\n\r\n const url = \'https://\' + Nutanix.params.endpoint_host + \':\' + Nutanix.params.endpoint_port + \'/PrismGateway/services/rest/v2.0/\' + Nutanix.params.api_method + \'/\' + Nutanix.params.target_uuid;\r\n var result = Nutanix.request(url);\r\n\r\n result.stats = Nutanix.cleanUnsupported(result.stats);\r\n\r\n return JSON.stringify(result);\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(4, \'[ Nutanix ] ERROR: \' + error);\r\n\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Get data about basic metrics.','0','7d','0','',NULL,'{$NUTANIX.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','95a5fd893da84a7098cba12ffa1743ca','0','2','0'),
('47712','21','','10641','Get alert','nutanix.host.alert.get','1m','0','0','0','4','','','','',NULL,NULL,'var Nutanix = {\r\n params: {},\r\n\r\n setParams: function (requiredParams, allParams) {\r\n requiredParams.forEach(function (field) {\r\n if (typeof allParams !== \'object\' || typeof allParams[field] === \'undefined\' || allParams[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n\r\n Nutanix.params = allParams;\r\n },\r\n\r\n request: function (url) {\r\n\r\n var request = new HttpRequest();\r\n\r\n if (typeof Nutanix.params.proxy !== \'undefined\' && Nutanix.params.proxy !== \'\') {\r\n request.setProxy(Nutanix.params.proxy);\r\n }\r\n\r\n request.setHttpAuth(HTTPAUTH_BASIC, Nutanix.params.username, Nutanix.params.password);\r\n\r\n Zabbix.log(4, \'[ Nutanix ] Sending request: \' + url);\r\n\r\n const response = request.get(url);\r\n\r\n Zabbix.log(4, \'[ Nutanix ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from Nutanix PRISM API. Check debug log for more information.\';\r\n }\r\n\r\n return response;\r\n },\r\n\r\n deduplicateAlerts: function (full_data) {\r\n const severity_mapping = [\r\n \'kinfo\',\r\n \'kwarning\',\r\n \'kcritical\'\r\n ]\r\n\r\n var output_data = {};\r\n for (var entity in full_data.entities) {\r\n \r\n if (Nutanix.params.api_method === \'clusters\') {\r\n if (result.entities[entity].node_uuid.split(\'-\').length == 5) continue;\r\n }\r\n\r\n var severity = severity_mapping.indexOf(full_data.entities[entity].severity.toLowerCase()),\r\n message = full_data.entities[entity].message,\r\n title = full_data.entities[entity].alert_title;\r\n \r\n full_data.entities[entity].context_types.forEach(function(context, index) {\r\n message = message.replace(\'{\' + context + \'}\', full_data.entities[entity].context_values[index]);\r\n title = title.replace(\'{\' + context + \'}\', full_data.entities[entity].context_values[index]);\r\n });\r\n \r\n key = md5(title + message);\r\n if (key in output_data) {\r\n if (full_data.entities[entity].created_time_stamp_in_usecs > output_data[key].created) {\r\n output_data[key].created = full_data.entities[entity].created_time_stamp_in_usecs;\r\n output_data[key].severity = severity !== -1 ? severity : 3;\r\n output_data[key].state = full_data.entities[entity].resolved ? 0 : 1;\r\n output_data[key].message = full_data.entities[entity].detailed_message != \'\' ? full_data.entities[entity].detailed_message : message;\r\n output_data[key].last_id = full_data.entities[entity].id;\r\n }\r\n output_data[key].count += 1;\r\n } else {\r\n output_data[key] = {\r\n "name": title + \' - \' + message,\r\n "title": title != \'\' ? title : message,\r\n "created": full_data.entities[entity].created_time_stamp_in_usecs,\r\n "severity": severity !== -1 ? severity : 3,\r\n "state": full_data.entities[entity].resolved ? 0 : 1,\r\n "message": full_data.entities[entity].detailed_message != \'\' ? full_data.entities[entity].detailed_message : message,\r\n "last_id": full_data.entities[entity].id,\r\n "count": 1\r\n }\r\n }\r\n }\r\n\r\n return output_data;\r\n },\r\n\r\n cleanUnsupported: function (full_stat) {\r\n var output_stat = {};\r\n for (var element in full_stat) {\r\n if (full_stat[element] !== \'-1\') {\r\n output_stat[element] = full_stat[element];\r\n }\r\n };\r\n \r\n return output_stat;\r\n }\r\n};\r\n\r\ntry {\r\n const params = JSON.parse(value);\r\n Nutanix.setParams([\'endpoint_host\', \'endpoint_port\', \'username\', \'password\', \'auth_type\', \'api_method\', \'target_uuid\'], params);\r\n\r\n const url = \'https://\' + Nutanix.params.endpoint_host + \':\' + Nutanix.params.endpoint_port + \'/PrismGateway/services/rest/v2.0/\' + Nutanix.params.api_method + \'/\' + Nutanix.params.target_uuid + \'/alerts\',\r\n result = Nutanix.request(url);\r\n\r\n return JSON.stringify(Nutanix.deduplicateAlerts(result));\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(4, \'[ Nutanix ] ERROR: \' + error);\r\n\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Get data about alerts.','0','7d','0','',NULL,'{$NUTANIX.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','48c5f1f6ea454fd69756268cd613129e','0','2','0'),
('47713','21','','10641','Get disk','nutanix.host.disk.get','1m','0','0','0','4','','','','',NULL,NULL,'var Nutanix = {\r\n params: {},\r\n\r\n setParams: function (requiredParams, allParams) {\r\n requiredParams.forEach(function (field) {\r\n if (typeof allParams !== \'object\' || typeof allParams[field] === \'undefined\' || allParams[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n\r\n Nutanix.params = allParams;\r\n },\r\n\r\n request: function (url) {\r\n\r\n var request = new HttpRequest();\r\n\r\n if (typeof Nutanix.params.proxy !== \'undefined\' && Nutanix.params.proxy !== \'\') {\r\n request.setProxy(Nutanix.params.proxy);\r\n }\r\n\r\n request.setHttpAuth(HTTPAUTH_BASIC, Nutanix.params.username, Nutanix.params.password);\r\n\r\n Zabbix.log(4, \'[ Nutanix ] Sending request: \' + url);\r\n\r\n const response = request.get(url);\r\n\r\n Zabbix.log(4, \'[ Nutanix ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from Nutanix PRISM API. Check debug log for more information.\';\r\n }\r\n\r\n return response;\r\n },\r\n\r\n deduplicateAlerts: function (full_data) {\r\n const severity_mapping = [\r\n \'kinfo\',\r\n \'kwarning\',\r\n \'kcritical\'\r\n ]\r\n\r\n var output_data = {};\r\n for (var entity in full_data.entities) {\r\n \r\n if (Nutanix.params.api_method === \'clusters\') {\r\n if (result.entities[entity].node_uuid.split(\'-\').length == 5) continue;\r\n }\r\n\r\n var severity = severity_mapping.indexOf(full_data.entities[entity].severity.toLowerCase()),\r\n message = full_data.entities[entity].message,\r\n title = full_data.entities[entity].alert_title;\r\n \r\n full_data.entities[entity].context_types.forEach(function(context, index) {\r\n message = message.replace(\'{\' + context + \'}\', full_data.entities[entity].context_values[index]);\r\n title = title.replace(\'{\' + context + \'}\', full_data.entities[entity].context_values[index]);\r\n });\r\n \r\n key = md5(title + message);\r\n if (key in output_data) {\r\n if (full_data.entities[entity].created_time_stamp_in_usecs > output_data[key].created) {\r\n output_data[key].created = full_data.entities[entity].created_time_stamp_in_usecs;\r\n output_data[key].severity = severity !== -1 ? severity : 3;\r\n output_data[key].state = full_data.entities[entity].resolved ? 0 : 1;\r\n output_data[key].message = full_data.entities[entity].detailed_message != \'\' ? full_data.entities[entity].detailed_message : message;\r\n output_data[key].last_id = full_data.entities[entity].id;\r\n }\r\n output_data[key].count += 1;\r\n } else {\r\n output_data[key] = {\r\n "name": title + \' - \' + message,\r\n "title": title != \'\' ? title : message,\r\n "created": full_data.entities[entity].created_time_stamp_in_usecs,\r\n "severity": severity !== -1 ? severity : 3,\r\n "state": full_data.entities[entity].resolved ? 0 : 1,\r\n "message": full_data.entities[entity].detailed_message != \'\' ? full_data.entities[entity].detailed_message : message,\r\n "last_id": full_data.entities[entity].id,\r\n "count": 1\r\n }\r\n }\r\n }\r\n\r\n return output_data;\r\n },\r\n\r\n cleanUnsupported: function (full_stat) {\r\n var output_stat = {};\r\n for (var element in full_stat) {\r\n if (full_stat[element] !== \'-1\') {\r\n output_stat[element] = full_stat[element];\r\n }\r\n };\r\n \r\n return output_stat;\r\n }\r\n};\r\n\r\ntry {\r\n const params = JSON.parse(value);\r\n Nutanix.setParams([\'endpoint_host\', \'endpoint_port\', \'username\', \'password\', \'auth_type\', \'api_method\', \'target_uuid\'], params);\r\n\r\n const url = \'https://\' + Nutanix.params.endpoint_host + \':\' + Nutanix.params.endpoint_port + \'/PrismGateway/services/rest/v2.0/\' + Nutanix.params.api_method + \'?search_attribute_list=node_uuid&search_string=\' + Nutanix.params.target_uuid,\r\n result = Nutanix.request(url);\r\n\r\n var output_data = {};\r\n for (var entity in result.entities) {\r\n output_data[result.entities[entity].id] = result.entities[entity]\r\n }\r\n\r\n return JSON.stringify(output_data);\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(4, \'[ Nutanix ] ERROR: \' + error);\r\n\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Get data about installed disks.','0','7d','0','',NULL,'{$NUTANIX.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','a3a11c42c9da4eecb0aefa20792d4514','0','2','0'),
('47714','21','','10641','Get metric','nutanix.host.metric.get','1m','0','0','0','4','','','','',NULL,NULL,'var Nutanix = {\r\n params: {},\r\n\r\n setParams: function (requiredParams, allParams) {\r\n requiredParams.forEach(function (field) {\r\n if (typeof allParams !== \'object\' || typeof allParams[field] === \'undefined\' || allParams[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n\r\n Nutanix.params = allParams;\r\n },\r\n\r\n request: function (url) {\r\n\r\n var request = new HttpRequest();\r\n\r\n if (typeof Nutanix.params.proxy !== \'undefined\' && Nutanix.params.proxy !== \'\') {\r\n request.setProxy(Nutanix.params.proxy);\r\n }\r\n\r\n request.setHttpAuth(HTTPAUTH_BASIC, Nutanix.params.username, Nutanix.params.password);\r\n\r\n Zabbix.log(4, \'[ Nutanix ] Sending request: \' + url);\r\n\r\n const response = request.get(url);\r\n\r\n Zabbix.log(4, \'[ Nutanix ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from Nutanix PRISM API. Check debug log for more information.\';\r\n }\r\n\r\n return response;\r\n },\r\n\r\n deduplicateAlerts: function (full_data) {\r\n const severity_mapping = [\r\n \'kinfo\',\r\n \'kwarning\',\r\n \'kcritical\'\r\n ]\r\n\r\n var output_data = {};\r\n for (var entity in full_data.entities) {\r\n \r\n if (Nutanix.params.api_method === \'clusters\') {\r\n if (result.entities[entity].node_uuid.split(\'-\').length == 5) continue;\r\n }\r\n\r\n var severity = severity_mapping.indexOf(full_data.entities[entity].severity.toLowerCase()),\r\n message = full_data.entities[entity].message,\r\n title = full_data.entities[entity].alert_title;\r\n \r\n full_data.entities[entity].context_types.forEach(function(context, index) {\r\n message = message.replace(\'{\' + context + \'}\', full_data.entities[entity].context_values[index]);\r\n title = title.replace(\'{\' + context + \'}\', full_data.entities[entity].context_values[index]);\r\n });\r\n \r\n key = md5(title + message);\r\n if (key in output_data) {\r\n if (full_data.entities[entity].created_time_stamp_in_usecs > output_data[key].created) {\r\n output_data[key].created = full_data.entities[entity].created_time_stamp_in_usecs;\r\n output_data[key].severity = severity !== -1 ? severity : 3;\r\n output_data[key].state = full_data.entities[entity].resolved ? 0 : 1;\r\n output_data[key].message = full_data.entities[entity].detailed_message != \'\' ? full_data.entities[entity].detailed_message : message;\r\n output_data[key].last_id = full_data.entities[entity].id;\r\n }\r\n output_data[key].count += 1;\r\n } else {\r\n output_data[key] = {\r\n "name": title + \' - \' + message,\r\n "title": title != \'\' ? title : message,\r\n "created": full_data.entities[entity].created_time_stamp_in_usecs,\r\n "severity": severity !== -1 ? severity : 3,\r\n "state": full_data.entities[entity].resolved ? 0 : 1,\r\n "message": full_data.entities[entity].detailed_message != \'\' ? full_data.entities[entity].detailed_message : message,\r\n "last_id": full_data.entities[entity].id,\r\n "count": 1\r\n }\r\n }\r\n }\r\n\r\n return output_data;\r\n },\r\n\r\n cleanUnsupported: function (full_stat) {\r\n var output_stat = {};\r\n for (var element in full_stat) {\r\n if (full_stat[element] !== \'-1\') {\r\n output_stat[element] = full_stat[element];\r\n }\r\n };\r\n \r\n return output_stat;\r\n }\r\n};\r\n\r\ntry {\r\n const params = JSON.parse(value);\r\n Nutanix.setParams([\'endpoint_host\', \'endpoint_port\', \'username\', \'password\', \'auth_type\', \'api_method\', \'target_uuid\'], params);\r\n\r\n const url = \'https://\' + Nutanix.params.endpoint_host + \':\' + Nutanix.params.endpoint_port + \'/PrismGateway/services/rest/v2.0/\' + Nutanix.params.api_method + \'/\' + Nutanix.params.target_uuid;\r\n var result = Nutanix.request(url);\r\n\r\n result.stats = Nutanix.cleanUnsupported(result.stats);\r\n\r\n return JSON.stringify(result);\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(4, \'[ Nutanix ] ERROR: \' + error);\r\n\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Get data about basic metrics.','0','7d','0','',NULL,'{$NUTANIX.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','30b4da75a8f54b5385310b43fa6a2a7a','0','2','0'),
('47715','21','','10642','Get cluster','nutanix.cluster.get','10m','0','0','0','4','','','','',NULL,NULL,'var Nutanix = {\r\n params: {},\r\n\r\n setParams: function (requiredParams, allParams) {\r\n requiredParams.forEach(function (field) {\r\n if (typeof allParams !== \'object\' || typeof allParams[field] === \'undefined\' || allParams[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n\r\n Nutanix.params = allParams;\r\n },\r\n\r\n request: function (url) {\r\n\r\n var request = new HttpRequest();\r\n\r\n if (typeof Nutanix.params.proxy !== \'undefined\' && Nutanix.params.proxy !== \'\') {\r\n request.setProxy(Nutanix.params.proxy);\r\n }\r\n\r\n request.setHttpAuth(HTTPAUTH_BASIC, Nutanix.params.username, Nutanix.params.password);\r\n\r\n Zabbix.log(4, \'[ Nutanix ] Sending request: \' + url);\r\n\r\n const response = request.get(url);\r\n\r\n Zabbix.log(4, \'[ Nutanix ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from Nutanix PRISM API. Check debug log for more information.\';\r\n }\r\n\r\n return response;\r\n },\r\n\r\n deduplicateAlerts: function (full_data) {\r\n const severity_mapping = [\r\n \'kinfo\',\r\n \'kwarning\',\r\n \'kcritical\'\r\n ]\r\n\r\n var output_data = {};\r\n for (var entity in full_data.entities) {\r\n \r\n if (Nutanix.params.api_method === \'clusters\') {\r\n if (result.entities[entity].node_uuid.split(\'-\').length == 5) continue;\r\n }\r\n\r\n var severity = severity_mapping.indexOf(full_data.entities[entity].severity.toLowerCase()),\r\n message = full_data.entities[entity].message,\r\n title = full_data.entities[entity].alert_title;\r\n \r\n full_data.entities[entity].context_types.forEach(function(context, index) {\r\n message = message.replace(\'{\' + context + \'}\', full_data.entities[entity].context_values[index]);\r\n title = title.replace(\'{\' + context + \'}\', full_data.entities[entity].context_values[index]);\r\n });\r\n \r\n key = md5(title + message);\r\n if (key in output_data) {\r\n if (full_data.entities[entity].created_time_stamp_in_usecs > output_data[key].created) {\r\n output_data[key].created = full_data.entities[entity].created_time_stamp_in_usecs;\r\n output_data[key].severity = severity !== -1 ? severity : 3;\r\n output_data[key].state = full_data.entities[entity].resolved ? 0 : 1;\r\n output_data[key].message = full_data.entities[entity].detailed_message != \'\' ? full_data.entities[entity].detailed_message : message;\r\n output_data[key].last_id = full_data.entities[entity].id;\r\n }\r\n output_data[key].count += 1;\r\n } else {\r\n output_data[key] = {\r\n "name": title + \' - \' + message,\r\n "title": title != \'\' ? title : message,\r\n "created": full_data.entities[entity].created_time_stamp_in_usecs,\r\n "severity": severity !== -1 ? severity : 3,\r\n "state": full_data.entities[entity].resolved ? 0 : 1,\r\n "message": full_data.entities[entity].detailed_message != \'\' ? full_data.entities[entity].detailed_message : message,\r\n "last_id": full_data.entities[entity].id,\r\n "count": 1\r\n }\r\n }\r\n }\r\n\r\n return output_data;\r\n },\r\n\r\n cleanUnsupported: function (full_stat) {\r\n var output_stat = {};\r\n for (var element in full_stat) {\r\n if (full_stat[element] !== \'-1\') {\r\n output_stat[element] = full_stat[element];\r\n }\r\n };\r\n \r\n return output_stat;\r\n }\r\n};\r\n\r\ntry {\r\n const params = JSON.parse(value);\r\n Nutanix.setParams([\'endpoint_host\', \'endpoint_port\', \'username\', \'password\', \'auth_type\', \'api_method\'], params);\r\n\r\n const url = \'https://\' + Nutanix.params.endpoint_host + \':\' + Nutanix.params.endpoint_port + \'/PrismGateway/services/rest/v2.0/\' + Nutanix.params.api_method,\r\n result = Nutanix.request(url);\r\n\r\n return JSON.stringify(result);\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(4, \'[ Nutanix ] ERROR: \' + error);\r\n\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Get the available clusters.','0','7d','0','',NULL,'10s','','','','200','1','0','','','0','0','0','0','0','0','0','0c073836f90a4072be7acfc5d1a96b9e','0','2','0'),
('47716','21','','10642','Get host','nutanix.host.get','10m','0','0','0','4','','','','',NULL,NULL,'var Nutanix = {\r\n params: {},\r\n\r\n setParams: function (requiredParams, allParams) {\r\n requiredParams.forEach(function (field) {\r\n if (typeof allParams !== \'object\' || typeof allParams[field] === \'undefined\' || allParams[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n\r\n Nutanix.params = allParams;\r\n },\r\n\r\n request: function (url) {\r\n\r\n var request = new HttpRequest();\r\n\r\n if (typeof Nutanix.params.proxy !== \'undefined\' && Nutanix.params.proxy !== \'\') {\r\n request.setProxy(Nutanix.params.proxy);\r\n }\r\n\r\n request.setHttpAuth(HTTPAUTH_BASIC, Nutanix.params.username, Nutanix.params.password);\r\n\r\n Zabbix.log(4, \'[ Nutanix ] Sending request: \' + url);\r\n\r\n const response = request.get(url);\r\n\r\n Zabbix.log(4, \'[ Nutanix ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from Nutanix PRISM API. Check debug log for more information.\';\r\n }\r\n\r\n return response;\r\n },\r\n\r\n deduplicateAlerts: function (full_data) {\r\n const severity_mapping = [\r\n \'kinfo\',\r\n \'kwarning\',\r\n \'kcritical\'\r\n ]\r\n\r\n var output_data = {};\r\n for (var entity in full_data.entities) {\r\n \r\n if (Nutanix.params.api_method === \'clusters\') {\r\n if (result.entities[entity].node_uuid.split(\'-\').length == 5) continue;\r\n }\r\n\r\n var severity = severity_mapping.indexOf(full_data.entities[entity].severity.toLowerCase()),\r\n message = full_data.entities[entity].message,\r\n title = full_data.entities[entity].alert_title;\r\n \r\n full_data.entities[entity].context_types.forEach(function(context, index) {\r\n message = message.replace(\'{\' + context + \'}\', full_data.entities[entity].context_values[index]);\r\n title = title.replace(\'{\' + context + \'}\', full_data.entities[entity].context_values[index]);\r\n });\r\n \r\n key = md5(title + message);\r\n if (key in output_data) {\r\n if (full_data.entities[entity].created_time_stamp_in_usecs > output_data[key].created) {\r\n output_data[key].created = full_data.entities[entity].created_time_stamp_in_usecs;\r\n output_data[key].severity = severity !== -1 ? severity : 3;\r\n output_data[key].state = full_data.entities[entity].resolved ? 0 : 1;\r\n output_data[key].message = full_data.entities[entity].detailed_message != \'\' ? full_data.entities[entity].detailed_message : message;\r\n output_data[key].last_id = full_data.entities[entity].id;\r\n }\r\n output_data[key].count += 1;\r\n } else {\r\n output_data[key] = {\r\n "name": title + \' - \' + message,\r\n "title": title != \'\' ? title : message,\r\n "created": full_data.entities[entity].created_time_stamp_in_usecs,\r\n "severity": severity !== -1 ? severity : 3,\r\n "state": full_data.entities[entity].resolved ? 0 : 1,\r\n "message": full_data.entities[entity].detailed_message != \'\' ? full_data.entities[entity].detailed_message : message,\r\n "last_id": full_data.entities[entity].id,\r\n "count": 1\r\n }\r\n }\r\n }\r\n\r\n return output_data;\r\n },\r\n\r\n cleanUnsupported: function (full_stat) {\r\n var output_stat = {};\r\n for (var element in full_stat) {\r\n if (full_stat[element] !== \'-1\') {\r\n output_stat[element] = full_stat[element];\r\n }\r\n };\r\n \r\n return output_stat;\r\n }\r\n};\r\n\r\ntry {\r\n const params = JSON.parse(value);\r\n Nutanix.setParams([\'endpoint_host\', \'endpoint_port\', \'username\', \'password\', \'auth_type\', \'api_method\'], params);\r\n\r\n const url = \'https://\' + Nutanix.params.endpoint_host + \':\' + Nutanix.params.endpoint_port + \'/PrismGateway/services/rest/v2.0/\' + Nutanix.params.api_method,\r\n result = Nutanix.request(url);\r\n\r\n return JSON.stringify(result);\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(4, \'[ Nutanix ] ERROR: \' + error);\r\n\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Get the available hosts.','0','7d','0','',NULL,'10s','','','','200','1','0','','','0','0','0','0','0','0','0','06ce8fe78e9642cfb2064ad2aa25b50e','0','2','0'),
('47717','21','','10642','Get storage container','nutanix.storage.container.get','10m','0','0','0','4','','','','',NULL,NULL,'var Nutanix = {\r\n params: {},\r\n\r\n setParams: function (requiredParams, allParams) {\r\n requiredParams.forEach(function (field) {\r\n if (typeof allParams !== \'object\' || typeof allParams[field] === \'undefined\' || allParams[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n\r\n Nutanix.params = allParams;\r\n },\r\n\r\n request: function (url) {\r\n\r\n var request = new HttpRequest();\r\n\r\n if (typeof Nutanix.params.proxy !== \'undefined\' && Nutanix.params.proxy !== \'\') {\r\n request.setProxy(Nutanix.params.proxy);\r\n }\r\n\r\n request.setHttpAuth(HTTPAUTH_BASIC, Nutanix.params.username, Nutanix.params.password);\r\n\r\n Zabbix.log(4, \'[ Nutanix ] Sending request: \' + url);\r\n\r\n const response = request.get(url);\r\n\r\n Zabbix.log(4, \'[ Nutanix ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from Nutanix PRISM API. Check debug log for more information.\';\r\n }\r\n\r\n return response;\r\n },\r\n\r\n deduplicateAlerts: function (full_data) {\r\n const severity_mapping = [\r\n \'kinfo\',\r\n \'kwarning\',\r\n \'kcritical\'\r\n ]\r\n\r\n var output_data = {};\r\n for (var entity in full_data.entities) {\r\n \r\n if (Nutanix.params.api_method === \'clusters\') {\r\n if (result.entities[entity].node_uuid.split(\'-\').length == 5) continue;\r\n }\r\n\r\n var severity = severity_mapping.indexOf(full_data.entities[entity].severity.toLowerCase()),\r\n message = full_data.entities[entity].message,\r\n title = full_data.entities[entity].alert_title;\r\n \r\n full_data.entities[entity].context_types.forEach(function(context, index) {\r\n message = message.replace(\'{\' + context + \'}\', full_data.entities[entity].context_values[index]);\r\n title = title.replace(\'{\' + context + \'}\', full_data.entities[entity].context_values[index]);\r\n });\r\n \r\n key = md5(title + message);\r\n if (key in output_data) {\r\n if (full_data.entities[entity].created_time_stamp_in_usecs > output_data[key].created) {\r\n output_data[key].created = full_data.entities[entity].created_time_stamp_in_usecs;\r\n output_data[key].severity = severity !== -1 ? severity : 3;\r\n output_data[key].state = full_data.entities[entity].resolved ? 0 : 1;\r\n output_data[key].message = full_data.entities[entity].detailed_message != \'\' ? full_data.entities[entity].detailed_message : message;\r\n output_data[key].last_id = full_data.entities[entity].id;\r\n }\r\n output_data[key].count += 1;\r\n } else {\r\n output_data[key] = {\r\n "name": title + \' - \' + message,\r\n "title": title != \'\' ? title : message,\r\n "created": full_data.entities[entity].created_time_stamp_in_usecs,\r\n "severity": severity !== -1 ? severity : 3,\r\n "state": full_data.entities[entity].resolved ? 0 : 1,\r\n "message": full_data.entities[entity].detailed_message != \'\' ? full_data.entities[entity].detailed_message : message,\r\n "last_id": full_data.entities[entity].id,\r\n "count": 1\r\n }\r\n }\r\n }\r\n\r\n return output_data;\r\n },\r\n\r\n cleanUnsupported: function (full_stat) {\r\n var output_stat = {};\r\n for (var element in full_stat) {\r\n if (full_stat[element] !== \'-1\') {\r\n output_stat[element] = full_stat[element];\r\n }\r\n };\r\n \r\n return output_stat;\r\n }\r\n};\r\n\r\ntry {\r\n const params = JSON.parse(value);\r\n Nutanix.setParams([\'endpoint_host\', \'endpoint_port\', \'username\', \'password\', \'auth_type\', \'api_method\'], params);\r\n\r\n const url = \'https://\' + Nutanix.params.endpoint_host + \':\' + Nutanix.params.endpoint_port + \'/PrismGateway/services/rest/v2.0/\' + Nutanix.params.api_method,\r\n result = Nutanix.request(url);\r\n\r\n var output_data = {};\r\n for (var entity in result.entities) {\r\n output_data[result.entities[entity].storage_container_uuid] = result.entities[entity]\r\n }\r\n\r\n return JSON.stringify(output_data);\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(4, \'[ Nutanix ] ERROR: \' + error);\r\n\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Get the available storage containers.','0','7d','0','',NULL,'10s','','','','200','1','0','','','0','0','0','0','0','0','0','10cd43e73f1146cf8eb4bffd33978344','0','2','0'),
('47959','15','','10645','Queue usage','php-fpm.listen_queue_usage','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//php-fpm.listen_queue)/(last(//php-fpm.listen_queue_len)+(last(//php-fpm.listen_queue_len)=0))*100','','0','','','','','0',NULL,'The utilization of the queue.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bea3630fd88448228cd3e6b5808bac5f','0','2','0'),
('47960','7','','10645','Get processes summary','proc.get[{$PHP_FPM.PROCESS.NAME.PARAMETER},,,summary]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The aggregated data of summary metrics for all processes.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2e72b191ec3b481f800e100e69a85691','0','2','0'),
('47961','7','','10645','php-fpm_ping','web.page.get["{$PHP_FPM.HOST}","{$PHP_FPM.PING.PAGE}","{$PHP_FPM.PORT}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ca300d24e4434dd8bc5e86ea859eb9f6','0','2','0'),
('47962','7','','10645','Get status page','web.page.get["{$PHP_FPM.HOST}","{$PHP_FPM.STATUS.PAGE}?json","{$PHP_FPM.PORT}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','de356fd730494b27a701cb900cd5c9b1','0','2','0'),
('47988','15','','10646','Buffer pool efficiency','mysql.buffer_pool_efficiency','1m','31d','365d','0','0','','%','','',NULL,NULL,'100 - (last(//mysql.innodb_buffer_pool_reads) / \r\n( last(//mysql.innodb_buffer_pool_read_requests) + \r\n( last(//mysql.innodb_buffer_pool_read_requests) = 0 ) ) * 100 * \r\n( last(//mysql.innodb_buffer_pool_read_requests) > 0 ))','','0','','','','','0',NULL,'The item shows how effectively the buffer pool is serving reads.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','82d31eef03914d4abde2448691d89a7a','0','2','0'),
('47989','15','','10646','Buffer pool utilization','mysql.buffer_pool_utilization','1m','31d','365d','0','0','','%','','',NULL,NULL,'( last(//mysql.innodb_buffer_pool_pages_total) - \r\nlast(//mysql.innodb_buffer_pool_pages_free) ) / \r\n( last(//mysql.innodb_buffer_pool_pages_total) + \r\n( last(//mysql.innodb_buffer_pool_pages_total) = 0 ) ) * 100 * \r\n( last(//mysql.innodb_buffer_pool_pages_total) > 0 )','','0','','','','','0',NULL,'Ratio of used to total pages in the buffer pool.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9fa2d2ebecaa4ff4bf2ec01a68cdf2a2','0','2','0'),
('47990','7','','10646','Get status variables','mysql.get_status_variables["{$MYSQL.DSN}","{$MYSQL.USER}","{$MYSQL.PASSWORD}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Gets server global status information.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b942938fd6564e3cbcc37c11f59b2bed','0','2','0'),
('47991','15','','10646','Calculated value of innodb_log_file_size','mysql.innodb_log_file_size','1m','31d','365d','0','0','','','','',NULL,NULL,'(last(//mysql.innodb_os_log_written) - last(//mysql.innodb_os_log_written,#1:now-1h)) / {$MYSQL.INNODB_LOG_FILES}','','0','','','','','0',NULL,'`Innodb_log_file_size` is calculated as: (`innodb_os_log_written`-`innodb_os_log_written`(time shift -1h))/`{$MYSQL.INNODB_LOG_FILES}`. `Innodb_log_file_size` is the size in bytes of the each InnoDB redo log file in the log group. The combined size can be no more than 512 GB. Larger values mean less disk I/O due to less flushing checkpoint activity, but also slower recovery from a crash.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c9e2183fde7d4fff96bd837c362c43e6','0','2','0'),
('47992','7','','10646','Status','mysql.ping["{$MYSQL.DSN}","{$MYSQL.USER}","{$MYSQL.PASSWORD}"]','1m','31d','365d','0','3','','','','',NULL,'1260','','','0','','','','','0',NULL,'MySQL server status.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','338507e500574423915f798234c7f239','0','2','0'),
('47993','7','','10646','Version','mysql.version["{$MYSQL.DSN}","{$MYSQL.USER}","{$MYSQL.PASSWORD}"]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MySQL server version.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','674df57b5295448c89a7265902cc94ec','0','2','0'),
('48050','15','','10647','Buffer pool efficiency','mysql.buffer_pool_efficiency','1m','31d','365d','0','0','','%','','',NULL,NULL,'100 - (last(//mysql.innodb_buffer_pool_reads) / \r\n( last(//mysql.innodb_buffer_pool_read_requests) + \r\n( last(//mysql.innodb_buffer_pool_read_requests) = 0 ) ) * 100 * \r\n( last(//mysql.innodb_buffer_pool_read_requests) > 0 ))','','0','','','','','0',NULL,'The item shows how effectively the buffer pool is serving reads.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6179105b341e41e892398649eec227bb','0','2','0'),
('48051','15','','10647','Buffer pool utilization','mysql.buffer_pool_utilization','1m','31d','365d','0','0','','%','','',NULL,NULL,'( last(//mysql.innodb_buffer_pool_pages_total) - \r\nlast(//mysql.innodb_buffer_pool_pages_free) ) / \r\n( last(//mysql.innodb_buffer_pool_pages_total) + \r\n( last(//mysql.innodb_buffer_pool_pages_total) = 0 ) ) * 100 * \r\n( last(//mysql.innodb_buffer_pool_pages_total) > 0 )','','0','','','','','0',NULL,'Ratio of used to total pages in the buffer pool.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','427ee34312ca4fb595b71db9a350b1fc','0','2','0'),
('48052','7','','10647','Get status variables','mysql.get_status_variables["{$MYSQL.HOST}","{$MYSQL.PORT}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Gets server global status information.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','202cc1174b7f4b63a8c90bdc54ec2bb2','0','2','0'),
('48053','15','','10647','Calculated value of innodb_log_file_size','mysql.innodb_log_file_size','1m','31d','365d','0','0','','','','',NULL,NULL,'(last(//mysql.innodb_os_log_written) - last(//mysql.innodb_os_log_written,#1:now-1h)) / {$MYSQL.INNODB_LOG_FILES}','','0','','','','','0',NULL,'`Innodb_log_file_size` is calculated as: (`innodb_os_log_written`-`innodb_os_log_written`(time shift -1h))/`{$MYSQL.INNODB_LOG_FILES}`. `Innodb_log_file_size` is the size in bytes of the each InnoDB redo log file in the log group. The combined size can be no more than 512 GB. Larger values mean less disk I/O due to less flushing checkpoint activity, but also slower recovery from a crash.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8ce62d571e854df187d201bd4a7ccce1','0','2','0'),
('48054','7','','10647','Status','mysql.ping["{$MYSQL.HOST}","{$MYSQL.PORT}"]','1m','31d','365d','0','3','','','','',NULL,'1261','','','0','','','','','0',NULL,'MySQL server status.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ca43acd282a8435884b33af454b207fb','0','2','0'),
('48055','7','','10647','Version','mysql.version["{$MYSQL.HOST}","{$MYSQL.PORT}"]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MySQL server version.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2071500ce5ac486fa322fbab8acac046','0','2','0'),
('48112','7','','10648','Get archive','pgsql.archive["{$PG.CONNSTRING.AGENT2}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Collect archive status metrics.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','218b03c8bfb84b07ae0ec9ba0932fff3','0','2','0'),
('48113','7','','10648','Count of autovacuum workers','pgsql.autovacuum.count["{$PG.CONNSTRING.AGENT2}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Number of autovacuum workers.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bc14c8544eed47ce9510a803be5708d7','0','2','0'),
('48114','7','','10648','Get bgwriter','pgsql.bgwriter["{$PG.CONNSTRING.AGENT2}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Collect all metrics from pg_stat_bgwriter:\r\nhttps://www.postgresql.org/docs/current/monitoring-stats.html#PG-STAT-BGWRITER-VIEW','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8d0dd45f06974d6b8be9cc11404ac1c3','0','2','0'),
('48115','15','','10648','Cache hit ratio, %','pgsql.cache.hit','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//pgsql.dbstat.sum.blks_hit.rate) * 100 / (last(//pgsql.dbstat.sum.blks_hit.rate) + last(//pgsql.dbstat.sum.blks_read.rate))','','0','','','','','0',NULL,'Cache hit ratio.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7b701ad8f20a44958956a6cbfd4e5da2','0','2','0'),
('48116','7','','10648','Get connections sum','pgsql.connections["{$PG.CONNSTRING.AGENT2}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Collect all metrics from pg_stat_activity:\r\nhttps://www.postgresql.org/docs/current/monitoring-stats.html#PG-STAT-ACTIVITY-VIEW','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','52d9d2342b9c40a2b279dcbe4bcff023','0','2','0'),
('48117','7','','10648','Custom queries','pgsql.custom.query["{$PG.CONNSTRING.AGENT2}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}",""]','1m','1h','0','1','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Execute custom queries from file *.sql (check for option Plugins.Postgres.CustomQueriesPath at agent configuration).','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','defcba230619484db1a7d6faace8b33d','0','2','0'),
('48118','7','','10648','Get dbstat sum','pgsql.dbstat.sum["{$PG.CONNSTRING.AGENT2}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Collect all metrics from pg_stat_database as sums for all databases:\r\nhttps://www.postgresql.org/docs/current/monitoring-stats.html#PG-STAT-DATABASE-VIEW','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8d84c4ec8d05427f9da4b9a1904a0af4','0','2','0'),
('48119','7','','10648','Get dbstat','pgsql.dbstat["{$PG.CONNSTRING.AGENT2}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Collect all metrics from pg_stat_database per database:\r\nhttps://www.postgresql.org/docs/current/monitoring-stats.html#PG-STAT-DATABASE-VIEW','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e36f2b3e33e2435d9b95472a7844a1a4','0','2','0'),
('48120','7','','10648','Get locks','pgsql.locks["{$PG.CONNSTRING.AGENT2}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Collect all metrics from pg_locks per database:\r\nhttps://www.postgresql.org/docs/current/explicit-locking.html#LOCKING-TABLES','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','df19db910015411996e25ea5b48f0742','0','2','0'),
('48121','7','','10648','Age of oldest xid','pgsql.oldest.xid["{$PG.CONNSTRING.AGENT2}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','31d','365d','0','0','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Age of oldest xid.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1a32b0308496460b83ad2698edb21420','0','2','0'),
('48122','7','','10648','Ping','pgsql.ping["{$PG.CONNSTRING.AGENT2}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','31d','365d','0','3','','','','',NULL,'1265','','','0','','','','','0',NULL,'Used to test a connection to see if it is alive. It is set to 0 if the query is unsuccessful.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','52edd592df6f49df9bf46b5e93689a1a','0','2','0'),
('48123','7','','10648','Get queries','pgsql.queries["{$PG.CONNSTRING.AGENT2}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}","{$PG.QUERY_ETIME.MAX.WARN}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Collect all metrics by query execution time.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','060c0efaf60944538bf5fb6ca2828dc6','0','2','0'),
('48124','7','','10648','Replication: Standby count','pgsql.replication.count["{$PG.CONNSTRING.AGENT2}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Number of standby servers.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f15d0758764c4bd6b607335d9d57b76b','0','2','0'),
('48125','7','','10648','Replication: Lag in bytes','pgsql.replication.lag.b["{$PG.CONNSTRING.AGENT2}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','0',NULL,'Replication lag with master, in bytes.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a3297ef8198145848d4e3b16b7b8eb8b','0','2','0'),
('48126','7','','10648','Replication: Lag in seconds','pgsql.replication.lag.sec["{$PG.CONNSTRING.AGENT2}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','31d','365d','0','3','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'Replication lag with master, in seconds.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','142e93b332e24ecfbd50465bb4af91e7','0','2','0'),
('48127','7','','10648','Get replication','pgsql.replication.process["{$PG.CONNSTRING.AGENT2}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Collect metrics from the pg_stat_replication, which contains information about the WAL sender process, showing statistics about replication to that sender\'s connected standby server.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','aa03fb9cabd8459ea5f5efb90c9e1051','0','2','0'),
('48128','7','','10648','Replication: Recovery role','pgsql.replication.recovery_role["{$PG.CONNSTRING.AGENT2}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','31d','365d','0','3','','','','',NULL,'1263','','','0','','','','','0',NULL,'Replication role: 1 — recovery is still in progress (standby mode), 0 — master mode.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','226bcc226ffc487ba90d998a03692404','0','2','0'),
('48129','7','','10648','Replication: Status','pgsql.replication.status["{$PG.CONNSTRING.AGENT2}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','31d','365d','0','3','','','','',NULL,'1264','','','0','','','','','0',NULL,'Replication status: 0 — streaming is down, 1 — streaming is up, 2 — master mode.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ef2ac5eaf73c40e09af41bba03b4fac8','0','2','0'),
('48130','7','','10648','Uptime','pgsql.uptime["{$PG.CONNSTRING.AGENT2}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','31d','365d','0','0','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'Time since the server started.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','46b53fcf97a74619a03c2490fe9b71ea','0','2','0'),
('48131','7','','10648','Version','pgsql.version["{$PG.CONNSTRING.AGENT2}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'PostgreSQL version.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7a96feee8118450e83e994be87bc5eea','0','2','0'),
('48132','7','','10648','Get WAL','pgsql.wal.stat["{$PG.CONNSTRING.AGENT2}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','5m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Collect write-ahead log (WAL) metrics.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cb2a0f990a39411e9d3c7d95cc7504ee','0','2','0'),
('48224','7','','10649','Get bgwriter','pgsql.bgwriter["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','1h','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Collect all metrics from pg_stat_bgwriter:\r\nhttps://www.postgresql.org/docs/current/monitoring-stats.html#PG-STAT-BGWRITER-VIEW','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','08043026cea14053a0addd4bdb7b7b8d','0','2','0'),
('48225','7','','10649','Cache hit ratio, %','pgsql.cache.hit["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Cache hit ratio.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','934e6647557f41cba46532a5a5c5d2ea','0','2','0'),
('48226','7','','10649','Config hash','pgsql.config.hash["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','15m','31d','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'PostgreSQL configuration hash.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2d028578428949da8fa05d1f62f9f615','0','2','0'),
('48227','7','','10649','Get connections sum','pgsql.connections.sum["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Collect all metrics from pg_stat_activity:\r\nhttps://www.postgresql.org/docs/current/monitoring-stats.html#PG-STAT-ACTIVITY-VIEW','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','13cce1cb170f4c9db977cb49fc603f79','0','2','0'),
('48228','7','','10649','Get dbstat','pgsql.dbstat["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Collect all metrics from pg_stat_database per database:\r\nhttps://www.postgresql.org/docs/current/monitoring-stats.html#PG-STAT-DATABASE-VIEW','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bea2e947b16b4a3dac660e664a505904','0','2','0'),
('48229','7','','10649','Get locks','pgsql.locks["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Collect all metrics from pg_locks per database:\r\nhttps://www.postgresql.org/docs/current/explicit-locking.html#LOCKING-TABLES','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e5adbe1c2fc74943926cf45ff5efbff3','0','2','0'),
('48230','7','','10649','Ping time','pgsql.ping.time["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'Used to get the `SELECT 1` query execution time.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2ab77e9548014233b0945bdeb9c134bd','0','2','0'),
('48231','7','','10649','Ping','pgsql.ping["{$PG.HOST}","{$PG.PORT}"]','1m','31d','365d','0','3','','','','',NULL,'1268','','','0','','','','','0',NULL,'Used to test a connection to see if it is alive. It is set to 0 if the instance doesn\'t accept the connections.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','058b3cd8308b4692a5cb3e89a47886bd','0','2','0'),
('48232','7','','10649','Get queries','pgsql.queries["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}","{$PG.QUERY_ETIME.MAX.WARN}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Collect all metrics by query execution time.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2a4de36d7b434260b264a63ab444a430','0','2','0'),
('48233','7','','10649','Replication: Standby count','pgsql.replication.count["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Number of standby servers.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','401331b4eab0439ca954551bce2f0c2e','0','2','0'),
('48234','7','','10649','Replication: Lag in seconds','pgsql.replication.lag.sec["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','31d','365d','0','3','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'Replication lag with master, in seconds.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2005dff88ab64458b3970a40e5bf0aff','0','2','0'),
('48235','7','','10649','Replication: Recovery role','pgsql.replication.recovery_role["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','31d','365d','0','3','','','','',NULL,'1266','','','0','','','','','0',NULL,'Replication role: 1 — recovery is still in progress (standby mode), 0 — master mode.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','808f71865b934ac68512a3d6fa8b4aab','0','2','0'),
('48236','7','','10649','Replication: Status','pgsql.replication.status["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','31d','365d','0','3','','','','',NULL,'1267','','','0','','','','','0',NULL,'Replication status: 0 — streaming is down, 1 — streaming is up, 2 — master mode.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5c4061c4081d41fa86741a296378d031','0','2','0'),
('48237','7','','10649','Get transactions','pgsql.transactions["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Collect metrics by transaction execution time.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b22ed1707bd84c4faa010803b2c594fa','0','2','0'),
('48238','7','','10649','Uptime','pgsql.uptime["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','1m','31d','365d','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'Time since the server started.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d310b47d3e38466a980494fb0f9dfb01','0','2','0'),
('48239','7','','10649','Version','pgsql.version["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'PostgreSQL version.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9798496e21914a8cbdee1cd85decf3e8','0','2','0'),
('48240','7','','10649','Get WAL','pgsql.wal.stat["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]','5m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Collect write-ahead log (WAL) metrics.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9ca8653ea8304b5392d1c39111381751','0','2','0'),
('48297','0','','10074','CPU spin time','system.cpu.util[,spin]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'Time the CPU has spent spinning on a lock.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','636b16908e3746039cf0bc5edf5ef3c6','0','2','0'),
('48298','7','','10650','Number of devices','nvml.device.count','1h','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Retrieves the number of compute devices in the system. A compute device is a single GPU.\r\nFor all Nvidia products.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','efdffab0b401430388a5cb21a789978d','0','2','0'),
('48299','7','','10650','Get devices','nvml.device.get','1h','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Retrieves a list of Nvidia devices in the system.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6ea9f80195af4c7b89c1f7220fc71df7','0','2','0'),
('48300','7','','10650','Driver version','nvml.system.driver.version','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Retrieves the version of the system\'s graphics driver.\r\nFor all Nvidia products.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','424bce7a262144d0a2bc33bc0b5ee98a','0','2','0'),
('48301','7','','10650','NVML library version','nvml.version','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Retrieves the version of the NVML library.\r\nFor all Nvidia products.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1566ad71d26a474a858c12ff1cf438fb','0','2','0'),
('48341','0','','10651','Number of devices','nvml.device.count','1h','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Retrieves the number of compute devices in the system. A compute device is a single GPU.\r\nFor all Nvidia products.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ac18129f78a54a2e95d1d48630e0eab2','0','2','0'),
('48342','0','','10651','Get devices','nvml.device.get','1h','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Retrieves a list of Nvidia devices in the system.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','afe2ea47c42f4992851f02b31efd8225','0','2','0'),
('48343','0','','10651','Driver version','nvml.system.driver.version','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Retrieves the version of the system\'s graphics driver.\r\nFor all Nvidia products.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','824a7555809f4e23b2f7fa72aff28a0c','0','2','0'),
('48344','0','','10651','NVML library version','nvml.version','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Retrieves the version of the NVML library.\r\nFor all Nvidia products.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8e54cc700a9147baa5f18aa286c47205','0','2','0'),
('48384','21','','10652','Get data','azure.sql_inst.data.get','1m','0','0','0','4','','','','',NULL,NULL,'var Azure = {\r\n params: {},\r\n token: null,\r\n\r\n setParams: function (params) {\r\n [\'app_id\', \'password\', \'tenant_id\', \'subscription_id\', \'resource_id\'].forEach(function (field) {\r\n if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n throw \'Required param is not set: \' + field + \'.\';\r\n }\r\n });\r\n\r\n Azure.params = params;\r\n },\r\n\r\n login: function () {\r\n var response, login = new HttpRequest();\r\n\r\n if (typeof Azure.params.proxy !== \'undefined\' && Azure.params.proxy !== \'\') {\r\n login.setProxy(Azure.params.proxy);\r\n }\r\n\r\n login.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n response = login.post(\r\n \'https://login.microsoftonline.com/\' + encodeURIComponent(Azure.params.tenant_id) + \'/oauth2/token\',\r\n \'grant_type=client_credentials&resource=\' + encodeURIComponent(\'https://management.azure.com/\') + \'&client_id=\' + encodeURIComponent(Azure.params.app_id) + \'&client_secret=\' + encodeURIComponent(Azure.params.password)\r\n );\r\n\r\n if (login.getStatus() !== 200) {\r\n throw \'Login failed with status code \' + login.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n response = JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse login session response.\';\r\n }\r\n\r\n if (!response.hasOwnProperty(\'access_token\')) {\r\n throw \'Authentication response does not contain access token.\';\r\n }\r\n\r\n Azure.token = response[\'access_token\'];\r\n },\r\n\r\n request: function (url) {\r\n var response, request = new HttpRequest();\r\n\r\n if (typeof Azure.params.proxy !== \'undefined\' && Azure.params.proxy !== \'\') {\r\n request.setProxy(Azure.params.proxy);\r\n }\r\n\r\n if (!Azure.token) {\r\n throw \'Request does not contain access token.\';\r\n }\r\n\r\n request.addHeader(\'Content-Type: application/json\');\r\n request.addHeader(\'Authorization: Bearer \' + Azure.token);\r\n Zabbix.log(4, \'[ Azure SQL instance ] request url: \' + url);\r\n\r\n response = request.get(url);\r\n\r\n if (request.getStatus() !== 200) {\r\n throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n }\r\n\r\n try {\r\n return JSON.parse(response);\r\n }\r\n catch (error) {\r\n throw \'Failed to parse response received from API.\';\r\n }\r\n },\r\n\r\n getField: function (data, path) {\r\n var steps = path.split(\'.\');\r\n\r\n for (var i = 0; i < steps.length; i++) {\r\n var step = steps[i];\r\n if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n throw \'Required field was not found: \' + path;\r\n }\r\n data = data[step];\r\n }\r\n\r\n return data;\r\n },\r\n\r\n getMetricsData: function () {\r\n var data = {},\r\n metric_endpoints = {\r\n \'main_metrics\': \'/providers/Microsoft.Insights/metrics?metricnames=\' + encodeURIComponent(\'virtual_core_count,avg_cpu_percent,reserved_storage_mb,storage_space_used_mb,io_requests,io_bytes_read,io_bytes_written\') + \'&api-version=2021-05-01×pan=PT5M\',\r\n };\r\n\r\n data.metrics = {};\r\n\r\n Object.keys(metric_endpoints).forEach(function (field) {\r\n metrics = Azure.getField(Azure.request(\'https://management.azure.com\' + Azure.params.resource_id + metric_endpoints[field]), \'value\');\r\n for (k in metrics) {\r\n key = Azure.getField(metrics[k], \'name.value\').replace(/(\\s|\\/)+/g, \'\');\r\n if (metrics[k].timeseries.length === 0) {\r\n metrics[k].timeseries.push({ \'data\': [\'nodata\'] })\r\n }\r\n values = Azure.getField(metrics[k], \'timeseries.0.data\');\r\n for (var i = values.length - 1; i >= 0; i--) {\r\n if (typeof (values[i].average) !== \'undefined\') {\r\n data.metrics[key] = values[i];\r\n break;\r\n }\r\n }\r\n }\r\n });\r\n\r\n data.health = Azure.getField(Azure.request(\'https://management.azure.com\' + Azure.params.resource_id + \'/providers/Microsoft.ResourceHealth/availabilityStatuses?api-version=2020-05-01\'), \'value.0.properties\');\r\n data.instance = Azure.request(\'https://management.azure.com\' + Azure.params.resource_id + \'?api-version=2024-05-01-preview\');\r\n\r\n return data\r\n }\r\n};\r\n\r\ntry {\r\n Azure.setParams(JSON.parse(value));\r\n Azure.login();\r\n return JSON.stringify(Azure.getMetricsData());\r\n}\r\ncatch (error) {\r\n error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n Zabbix.log(3, \'[ Azure SQL instance ] ERROR: \' + error);\r\n return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Gathers data of the Azure SQL managed instance.','0','7d','0','',NULL,'{$AZURE.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','4dc91ae07bd048128a34da5b7ba090e8','0','2','0'),
('48385','15','','10652','Storage space utilization','azure.sql_inst.storage.utilization','1m','31d','365d','0','3','','%','','',NULL,NULL,'last(//azure.sql_inst.storage.used) * 100 / last(//azure.sql_inst.storage.reserved)','','0','','','','','0',NULL,'Managed instance storage space utilization, in percent.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b3ea1180eb174fb38656c9696fa9d9a7','0','2','0'),
('48400','3','','10654','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'1283','','','0','','','','','0',NULL,'','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2af50dac1b3245a9b6c350c1096209b6','0','2','0'),
('48401','3','','10654','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','250e30e7298444df8208e15c6a32a1c5','0','2','0'),
('48402','3','','10654','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8b40a9b8da8546e2a0b593e7dbb72537','0','2','0'),
('48403','20','walk[ 1.3.6.1.4.1.2636.5.1.1.2.1.1.1.3, 1.3.6.1.4.1.2636.5.1.1.2.4.1.1.1, 1.3.6.1.4.1.2636.5.1.1.2.6.2.1.2, 1.3.6.1.4.1.2636.5.1.1.2.6.2.1.7, 1.3.6.1.4.1.2636.5.1.1.2.6.2.1.8, 1.3.6.1.4.1.2636.5.1.1.2.6.2.1.10, 1.3.6.1.4.1.2636.5.1.1.2.1.1.1.2, 1.3.6.1.4.1.2636.5.1.1.2.1.1.1.11, 1.3.6.1.4.1.2636.5.1.1.2.1.1.1.14, 1.3.6.1.4.1.2636.5.1.1.2.1.1.1.13]','10654','SNMP walk BGP Peer','juniper.mx.bgp.peer.data.snmp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Scanning `BGP4-V2-MIB-JUNIPER::jnxBgpM2PeerData` for BGP Peer Data.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0335221808684100bd1e062a730a909d','0','2','0'),
('48404','20','walk[ 1.3.6.1.4.1.2636.5.1.1.2.6.2.1.1, 1.3.6.1.4.1.2636.5.1.1.2.6.2.1.2, 1.3.6.1.4.1.2636.5.1.1.2.6.2.1.7, 1.3.6.1.4.1.2636.5.1.1.2.6.2.1.8, 1.3.6.1.4.1.2636.5.1.1.2.6.2.1.9, 1.3.6.1.4.1.2636.5.1.1.2.6.2.1.10, 1.3.6.1.4.1.2636.5.1.1.2.6.2.1.11]','10654','SNMP walk BGP Prefix Counters','juniper.mx.bgp.prefix.counters.snmp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Scanning `BGP4-V2-MIB-JUNIPER::jnxBgpM2PrefixCountersTable` for Prefix Counters.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a6bab1f7b7bd45cf9dcfbb309957cf91','0','2','0'),
('48405','20','walk[1.3.6.1.4.1.2636.3.60.1.2.1.1.1, 1.3.6.1.4.1.2636.3.60.1.2.1.1.2, 1.3.6.1.4.1.2636.3.60.1.2.1.1.4, 1.3.6.1.4.1.2636.3.60.1.2.1.1.6, 1.3.6.1.4.1.2636.3.60.1.2.1.1.8, 1.3.6.1.4.1.2636.3.60.1.2.1.1.9, 1.3.6.1.4.1.2636.3.60.1.1.1.1.8, 1.3.6.1.4.1.2636.3.60.1.1.1.1.30, 1.3.6.1.2.1.2.2.1.8, 1.3.6.1.2.1.2.2.1.7, 1.3.6.1.2.1.31.1.1.1.18, 1.3.6.1.2.1.31.1.1.1.1, 1.3.6.1.2.1.2.2.1.2, 1.3.6.1.2.1.2.2.1.3]','10654','SNMP walk Multi-lane digital optical monitoring','juniper.mx.dom.snmp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Scanning `JUNIPER-DOM-MIB::jnxDomModuleLaneTable` for multi-lane digital optical monitoring.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9d7d94b8c0d046d2a1a6426e89128719','0','2','0'),
('48406','20','walk[1.3.6.1.2.1.10.7.2.1.19,1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2]','10654','SNMP walk EtherLike-MIB interfaces','juniper.mx.net.if.duplex.snmp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovery of interfaces from IF-MIB and EtherLike-MIB. Interfaces with operational status `up(1)` are discovered.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7ddc368f670e40d1b5770e0a4428ce45','0','2','0'),
('48407','20','walk[1.3.6.1.2.1.2.2.1.8, 1.3.6.1.2.1.2.2.1.2, 1.3.6.1.2.1.2.2.1.3, 1.3.6.1.2.1.2.2.1.7, 1.3.6.1.2.1.2.2.1.13, 1.3.6.1.2.1.2.2.1.14, 1.3.6.1.2.1.2.2.1.19, 1.3.6.1.2.1.2.2.1.20, 1.3.6.1.2.1.31.1.1.1.1, 1.3.6.1.2.1.31.1.1.1.6, 1.3.6.1.2.1.31.1.1.1.10, 1.3.6.1.2.1.31.1.1.1.15, 1.3.6.1.2.1.31.1.1.1.18]','10654','SNMP walk Network interfaces','juniper.mx.net.if.snmp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovery of interfaces from IF-MIB.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b11839f1bddd4781b23111511db1615a','0','2','0'),
('48408','20','walk[1.3.6.1.4.1.2636.3.1.13.1.5, 1.3.6.1.4.1.2636.3.1.13.1.7, 1.3.6.1.4.1.2636.3.1.13.1.8, 1.3.6.1.4.1.2636.3.1.13.1.5.2, 1.3.6.1.4.1.2636.3.1.13.1.5.4, 1.3.6.1.4.1.2636.3.1.13.1.6.4, 1.3.6.1.4.1.2636.3.1.13.1.6.2, 1.3.6.1.4.1.2636.3.1.13.1.11]','10654','SNMP walk Operating Table','juniper.mx.operating.snmp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Scanning `JUNIPER-MIB::jnxOperatingTable` for CPU, Memory, Temperature, and Fans.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f42152e7c0504aa4bfa611725f365afc','0','2','0'),
('48409','20','walk[ 1.3.6.1.2.1.14.10.1.1, 1.3.6.1.2.1.14.10.1.3, 1.3.6.1.2.1.14.10.1.5, 1.3.6.1.2.1.14.10.1.6, 1.3.6.1.2.1.14.10.1.7, 1.3.6.1.2.1.14.10.1.11]','10654','SNMP walk OSPF Neighbors','juniper.mx.ospf.nbr.snmp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Scanning `OSPF-MIB::ospfNbrTable` for OSPF Neighbors.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','80f06a9c2725450e9b5a16377b2cf7af','0','2','0'),
('48410','20','walk[ 1.3.6.1.4.1.2636.5.4.1.1.9.1.5, 1.3.6.1.4.1.2636.5.4.1.1.9.1.7, 1.3.6.1.4.1.2636.5.4.1.1.9.1.8, 1.3.6.1.4.1.2636.5.4.1.1.9.1.9, 1.3.6.1.4.1.2636.5.4.1.1.9.1.11]','10654','SNMP walk OSPFv3 Neighbors','juniper.mx.ospfv3.nbr.snmp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Scanning `OSPFV3-MIB-JUNIPER::jnxOspfv3NbrTable` for OSPFv3 Neighbors.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4f3115a33a6a43b6bf0ab2be3eeec995','0','2','0'),
('48411','20','walk[1.3.6.1.4.1.2636.3.1.14.1.5, 1.3.6.1.4.1.2636.3.1.14.1.6, 1.3.6.1.4.1.2636.3.1.14.1.10, 1.3.6.1.4.1.2636.3.1.14.1.16, 1.3.6.1.4.1.2636.3.1.14.1.7]','10654','SNMP walk Redundancy Table','juniper.mx.redundancy.table.snmp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Scanning `JUNIPER-MIB::jnxRedundancyTable` for Router Redundancy.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d72814c5b9c64f4e843a04137b99dad6','0','2','0'),
('48412','20','get[1.3.6.1.2.1.1.4.0]','10654','System contact details','juniper.mx.system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nName and contact information of the contact person for the node. If not provided, the value is a zero-length string.','23','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b9b7da53c32a4b48958c313ed45870b1','0','2','0'),
('48413','20','get[1.3.6.1.2.1.1.1.0]','10654','System description','juniper.mx.system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA 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.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','092dbc3c0da648449e69047d3f83b2ba','0','2','0'),
('48414','20','get[1.3.6.1.4.1.2636.3.1.2.0]','10654','Hardware model name','juniper.mx.system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: JUNIPER-MIB\r\nThe name, model, or detailed description of the device, indicating which product it represents, for example, `M40`.','29','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e101a0bd30ae45f6bff0b2b8c914f95b','0','2','0'),
('48415','20','get[1.3.6.1.4.1.2636.3.1.3.0]','10654','Hardware serial number','juniper.mx.system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: JUNIPER-MIB\r\nThe serial number of this subject, blank if unknown or unavailable.','8','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7fbc5fa8ef084cf585d5a617812b2d70','0','2','0'),
('48416','20','get[1.3.6.1.2.1.25.1.1.0]','10654','Uptime (hardware)','juniper.mx.system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from `sysUpTime` in the SNMPv2-MIB [RFC1907] because `sysUpTime` is the uptime of the network management portion of the system.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c2bcb74f5afe4659af6a614ea98dbf51','0','2','0'),
('48417','20','get[1.3.6.1.2.1.1.6.0]','10654','System location','juniper.mx.system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ef6895d078204d17b7f3ba142c2075bf','0','2','0'),
('48418','20','get[1.3.6.1.2.1.1.5.0]','10654','System name','juniper.mx.system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn 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 a zero-length string.','3','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1a80dba9043e43edb4c073f397e471c9','0','2','0'),
('48419','20','get[1.3.6.1.2.1.1.3.0]','10654','Uptime (network)','juniper.mx.system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','33b048b47db542d6bc304a0048e4b743','0','2','0'),
('48420','20','get[1.3.6.1.2.1.1.2.0]','10654','System object ID','juniper.mx.system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe vendor\'s authoritative identification of the entity as part of the vendor\'s SMI enterprises subtree with the prefix 1.3.6.1.4.1 (e.g., a vendor with the identifier 1.3.6.1.4.1.4242 might assign a system object with the OID 1.3.6.1.4.1.4242.1.1).','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','832ad6d2465e4c20813c194114d2655b','0','2','0'),
('48421','20','get[1.3.6.1.2.1.1.1.0]','10654','Operating system','juniper.mx.system.sw.os[sysDescr.0]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB','5','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8f743934b3364cadbef2f178cc5aabb1','0','2','0'),
('48422','17','','10654','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other `snmptrap` items.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d2d0f8b19fc3474880ce2decd2880ce8','0','2','0'),
('48423','5','','10654','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'1284','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8223b49a0d1f4467a5f79e423a4bf862','0','2','0'),
('48472','19','','10655','Get device certificate','pan.pa440.certificate.device.get','1h','0','0','0','4','','','','',NULL,NULL,'','','1','{$PAN.PA440.USER}','{$PAN.PA440.PASSWORD}','','','0',NULL,'Get the information about the device certificate. Note that superuser privileges are required to obtain the device certificate data.','0','7d','0','',NULL,'{$PAN.PA440.TIMEOUT}','{$PAN.PA440.API.URL}','[{"type":"op"},{"cmd":"<\\/status><\\/device-certificate><\\/show>"}]','','','1','0','{$PAN.PA440.HTTP_PROXY}','','0','0','0','0','0','0','0','4bdcedebb6dd4fd4951a13c52749b89d','0','2','0'),
('48473','19','','10655','Get certificates','pan.pa440.certificate.get','1h','0','0','0','4','','','','',NULL,NULL,'','','1','{$PAN.PA440.USER}','{$PAN.PA440.PASSWORD}','','','0',NULL,'Get the information about the certificates on the device.','0','7d','0','',NULL,'{$PAN.PA440.TIMEOUT}','{$PAN.PA440.API.URL}','[{"type":"config"},{"action":"get"},{"xpath":"\\/config\\/shared\\/certificate"}]','','','1','0','{$PAN.PA440.HTTP_PROXY}','','0','0','0','0','0','0','0','0d8d933aff9a4523aa784722616aa40f','0','2','0'),
('48474','19','','10655','Get system environmentals','pan.pa440.environmentals.get','1m','0','0','0','4','','','','',NULL,NULL,'','','1','{$PAN.PA440.USER}','{$PAN.PA440.PASSWORD}','','','0',NULL,'Get the system environment state information.','0','7d','0','',NULL,'{$PAN.PA440.TIMEOUT}','{$PAN.PA440.API.URL}','[{"type":"op"},{"cmd":"<\\/environmentals><\\/system><\\/show>"}]','','','1','0','{$PAN.PA440.HTTP_PROXY}','','0','0','0','0','0','0','0','d971daee3e2340a981b0c079adf3abdc','0','2','0'),
('48475','19','','10655','Get HA info','pan.pa440.ha.get','1m','0','0','0','4','','','','',NULL,NULL,'','','1','{$PAN.PA440.USER}','{$PAN.PA440.PASSWORD}','','','0',NULL,'Get the high availability information.','0','7d','0','',NULL,'{$PAN.PA440.TIMEOUT}','{$PAN.PA440.API.URL}','[{"type":"op"},{"cmd":"<\\/all><\\/high-availability><\\/show>"}]','','','1','0','{$PAN.PA440.HTTP_PROXY}','','0','0','0','0','0','0','0','81e26d3d45fb4cf9a085ecaf980dfc76','0','2','0'),
('48476','19','','10655','Get licenses','pan.pa440.licenses.get','1h','0','0','0','4','','','','',NULL,NULL,'','','1','{$PAN.PA440.USER}','{$PAN.PA440.PASSWORD}','','','0',NULL,'Get the information about installed licenses.','0','7d','0','',NULL,'{$PAN.PA440.TIMEOUT}','{$PAN.PA440.API.URL}','[{"type":"op"},{"cmd":"<\\/info><\\/license><\\/request>"}]','','','1','0','{$PAN.PA440.HTTP_PROXY}','','0','0','0','0','0','0','0','296fb66ceb8d45e0aa923bf7227711b5','0','2','0'),
('48477','19','','10655','Get OSPF neighbors','pan.pa440.ospf.neighbors.get','1m','0','0','0','4','','','','',NULL,NULL,'','','1','{$PAN.PA440.USER}','{$PAN.PA440.PASSWORD}','','','0',NULL,'Get the OSPF neighbor information.','0','7d','0','',NULL,'{$PAN.PA440.TIMEOUT}','{$PAN.PA440.API.URL}','[{"type":"op"},{"cmd":"<\\/neighbor><\\/ospf><\\/protocol><\\/routing><\\/show>"}]','','','1','0','{$PAN.PA440.HTTP_PROXY}','','0','0','0','0','0','0','0','2c88e39db8634c5baa03e9e6bd974e52','0','2','0'),
('48478','19','','10655','Get OSPFv3 neighbors','pan.pa440.ospfv3.neighbors.get','1m','0','0','0','4','','','','',NULL,NULL,'','','1','{$PAN.PA440.USER}','{$PAN.PA440.PASSWORD}','','','0',NULL,'Get the OSPFv3 neighbor information.','0','7d','0','',NULL,'{$PAN.PA440.TIMEOUT}','{$PAN.PA440.API.URL}','[{"type":"op"},{"cmd":"<\\/neighbor><\\/ospfv3><\\/protocol><\\/routing><\\/show>"}]','','','1','0','{$PAN.PA440.HTTP_PROXY}','','0','0','0','0','0','0','0','b4dda8f48f734b9bae0a1c55bd2faf45','0','2','0'),
('48479','19','','10655','Get session info','pan.pa440.session_info.get','1m','0','0','0','4','','','','',NULL,NULL,'','','1','{$PAN.PA440.USER}','{$PAN.PA440.PASSWORD}','','','0',NULL,'Get the information about sessions.','0','7d','0','',NULL,'{$PAN.PA440.TIMEOUT}','{$PAN.PA440.API.URL}','[{"type":"op"},{"cmd":"<\\/info><\\/session><\\/show>"}]','','','1','0','{$PAN.PA440.HTTP_PROXY}','','0','0','0','0','0','0','0','f3defb28d70a4a0f9ebd036d65e1fda2','0','2','0'),
('48480','19','','10655','Get system info','pan.pa440.system_info.get','1m','0','0','0','4','','','','',NULL,NULL,'','','1','{$PAN.PA440.USER}','{$PAN.PA440.PASSWORD}','','','0',NULL,'Get the general system information.','0','7d','0','',NULL,'{$PAN.PA440.TIMEOUT}','{$PAN.PA440.API.URL}','[{"type":"op"},{"cmd":"<\\/info><\\/system><\\/show>"}]','','','1','0','{$PAN.PA440.HTTP_PROXY}','','0','0','0','0','0','0','0','5133c9b5e7284141ba1da1d1d1c726f8','0','2','0'),
('48481','19','','10655','Get system state','pan.pa440.system_state.get','1m','0','0','0','4','','','','',NULL,NULL,'','','1','{$PAN.PA440.USER}','{$PAN.PA440.PASSWORD}','','','0',NULL,'Get the system state information. Used with a filter to retrieve CPU utilization metrics.','0','7d','0','',NULL,'{$PAN.PA440.TIMEOUT}','{$PAN.PA440.API.URL}','[{"type":"op"},{"cmd":"