r4724 Chapter: switch to InnoDB, add FKeys
[racktables] / wwwroot / inc / install.php
1 <?php
2
3 function renderInstallerHTML()
4 {
5 $stepfunc[1] = 'not_already_installed';
6 $stepfunc[2] = 'platform_is_ok';
7 $stepfunc[3] = 'init_config';
8 $stepfunc[4] = 'init_database_static';
9 $stepfunc[5] = 'init_database_dynamic';
10 $stepfunc[6] = 'congrats';
11
12 if (isset ($_REQUEST['step']))
13 $step = $_REQUEST['step'];
14 else
15 $step = 1;
16
17 if ($step > count ($stepfunc))
18 {
19 $root = (empty($_SERVER['HTTPS']) or $_SERVER['HTTPS'] == 'off') ? 'http://' : 'https://';
20 $root .= isset ($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : ($_SERVER['SERVER_NAME'].($_SERVER['SERVER_PORT']=='80'?'':$_SERVER['SERVER_PORT']));
21 // "Since PHP 4.3.0, you will often get a slash or a dot back from
22 // dirname() in situations where the older functionality would have given
23 // you the empty string."
24 // "On Windows, both slash (/) and backslash (\) are used as directory
25 // separator character."
26 $root .= strtr (dirname ($_SERVER['PHP_SELF']), '\\', '/');
27 if (substr ($root, -1) != '/')
28 $root .= '/';
29 header ("Location: ${root}");
30 exit;
31 }
32 $title = "RackTables installation: step ${step} of " . count ($stepfunc);
33 header ('Content-Type: text/html; charset=UTF-8');
34 ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
35 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
36 <head><title><?php echo $title; ?></title>
37 <style type="text/css">
38 .tdleft {
39 text-align: left;
40 }
41
42 .trok {
43 background-color: #80FF80;
44 }
45
46 .trwarning {
47 background-color: #FFFF80;
48 }
49
50 .trerror {
51 background-color: #FF8080;
52 }
53 </style>
54 </head>
55 <body>
56 <center>
57 <?php
58 echo "<h1>${title}</h1><p>";
59
60 echo "</p><form method=post>\n";
61 $testres = $stepfunc[$step] ();
62 if ($testres)
63 {
64 $next_step = $step + 1;
65 echo "<br><input type=submit value='proceed'>";
66 }
67 else
68 {
69 $next_step = $step;
70 echo "<br><input type=submit value='retry'>";
71 }
72 echo "<input type=hidden name=step value='${next_step}'>\n";
73
74 ?>
75 </form>
76 </center>
77 </body>
78 </html>
79
80 <?php
81 }
82
83 // Check if the software is already installed.
84 function not_already_installed()
85 {
86 global $found_secret_file, $pdo_dsn;
87 if ($found_secret_file and isset ($pdo_dsn))
88 {
89 echo 'Your configuration file exists and seems to hold necessary data already.<br>';
90 return FALSE;
91 }
92 else
93 {
94 echo 'There seem to be no existing installation here, I am going to setup one now.<br>';
95 return TRUE;
96 }
97 }
98
99 // Check that we can write to configuration file.
100 // If so, ask for DB connection paramaters and test
101 // the connection. Neither save the parameters nor allow
102 // going further until we succeed with the given
103 // credentials.
104 function init_config ()
105 {
106 global $path_to_secret_php;
107 if (!is_writable ($path_to_secret_php))
108 {
109 echo "The $path_to_secret_php file is not writable by web-server. Make sure it is.";
110 echo "The following commands should suffice:<pre>touch '$path_to_secret_php'; chmod 666 '$path_to_secret_php'</pre>";
111 echo 'Fedora Linux with SELinux may require this file to be owned by specific user (apache) and/or executing "setenforce 0" for the time of installation. ';
112 echo 'SELinux may be turned back on with "setenforce 1" command.<br>';
113 return FALSE;
114 }
115 if
116 (
117 !isset ($_REQUEST['save_config']) or
118 empty ($_REQUEST['mysql_host']) or
119 empty ($_REQUEST['mysql_db']) or
120 empty ($_REQUEST['mysql_username'])
121 )
122 {
123 echo "<input type=hidden name=save_config value=1>\n";
124 echo '<h3>Hint on setting up a database:</h3><pre>';
125 echo "mysql&gt;\nCREATE DATABASE racktables_db CHARACTER SET utf8 COLLATE utf8_general_ci;\n";
126 echo "GRANT ALL PRIVILEGES ON racktables_db.* TO racktables_user@localhost IDENTIFIED BY 'MY_SECRET_PASSWORD';\n</pre>";
127 echo '<table>';
128 echo "<tr><td><label for=mysql_host>MySQL host:</label></td>";
129 echo "<td><input type=text name=mysql_host id=mysql_host value=localhost></td></tr>\n";
130 echo "<tr><td><label for=mysql_host>database:</label></td>";
131 echo "<td><input type=text name=mysql_db id=mysql_db value=racktables_db></td></tr>\n";
132 echo "<tr><td><label for=mysql_username>username:</label></td>";
133 echo "<td><input type=text name=mysql_username value=racktables_user></td></tr>\n";
134 echo "<tr><td><label for=mysql_password>password:</label></td>";
135 echo "<td><input type=password name=mysql_password></td></tr>\n";
136 echo '</table>';
137 return FALSE;
138 }
139 $pdo_dsn = 'mysql:host=' . $_REQUEST['mysql_host'] . ';dbname=' . $_REQUEST['mysql_db'];
140 try
141 {
142 $dbxlink = new PDO ($pdo_dsn, $_REQUEST['mysql_username'], $_REQUEST['mysql_password']);
143 }
144 catch (PDOException $e)
145 {
146 echo "<input type=hidden name=save_config value=1>\n";
147 echo '<table>';
148 echo "<tr><td><label for=mysql_host>MySQL host:</label></td>";
149 echo "<td><input type=text name=mysql_host id=mysql_host value='" . $_REQUEST['mysql_host'] . "'></td></tr>\n";
150 echo "<tr><td><label for=mysql_host>database:</label></td>";
151 echo "<td><input type=text name=mysql_db id=mysql_db value='" . $_REQUEST['mysql_db'] . "'></td></tr>\n";
152 echo "<tr><td><label for=mysql_username>username:</label></td>";
153 echo "<td><input type=text name=mysql_username value='" . $_REQUEST['mysql_username'] . "'></td></tr>\n";
154 echo "<tr><td><label for=mysql_password>password:</label></td>";
155 echo "<td><input type=password name=mysql_password value='" . $_REQUEST['mysql_password'] . "'></td></tr>\n";
156 echo "<tr><td colspan=2>The above parameters did not work. Check and try again.</td></tr>\n";
157 echo '</table>';
158 return FALSE;
159 }
160
161 $conf = fopen ($path_to_secret_php, 'w+');
162 if ($conf === FALSE)
163 {
164 echo "Error: failed to open $path_to_secret_php for writing";
165 return FALSE;
166 }
167 fwrite ($conf, "<?php\n/* This file has been generated automatically by RackTables installer.\n");
168 fwrite ($conf, " * you shouldn't normally edit it unless your database setup has changed.\n");
169 fwrite ($conf, " */\n");
170 fwrite ($conf, "\$pdo_dsn = '${pdo_dsn}';\n");
171 fwrite ($conf, "\$db_username = '" . $_REQUEST['mysql_username'] . "';\n");
172 fwrite ($conf, "\$db_password = '" . $_REQUEST['mysql_password'] . "';\n\n");
173 fwrite ($conf, <<<ENDOFTEXT
174 // Default setting is to authenticate users locally, but it is possible to
175 // employ existing LDAP or Apache userbase. Uncommenting below two lines MAY
176 // help in switching authentication to LDAP completely.
177 // More info: http://sourceforge.net/apps/mediawiki/racktables/index.php?title=RackTablesAdminGuide
178 #\$user_auth_src = 'ldap';
179 #\$require_local_account = FALSE;
180
181 // This is only necessary for 'ldap' authentication source
182 \$LDAP_options = array
183 (
184 'server' => 'some.server',
185 'domain' => 'some.domain',
186 # 'search_dn' => 'ou=people,O=YourCompany',
187 'search_attr' => 'uid',
188 # 'displayname_attrs' => 'givenname familyname',
189
190 // LDAP cache, values in seconds. Refresh, retry and expiry values are
191 // treated exactly as those for DNS SOA record. Example values 300-15-600:
192 // unconditionally remeber successful auth for 5 minutes, after that still
193 // permit user access, but try to revalidate username and password on the
194 // server (not more often, than once in 15 seconds). After 10 minutes of
195 // unsuccessful retries give up and deny access, so someone goes to fix
196 // LDAP server.
197 //
198 // Like in DNS, the following condition must be always met:
199 // cache_retry <= cache_refresh <= cache_expiry
200 //
201 // To disable LDAP cache completely, set cache_refresh, cache_retry and
202 // cache_expiry to 0.
203 'cache_refresh' => 300,
204 'cache_retry' => 15,
205 'cache_expiry' => 600,
206 // Uncomment line below to work around ActiveDirectory+PHP problem to perform
207 // search right in the base DN (not in one of OUs/CNs below).
208 # 'options' => array (LDAP_OPT_PROTOCOL_VERSION => 3, LDAP_OPT_REFERRALS => 0),
209 );
210
211
212 ENDOFTEXT
213 );
214 fwrite ($conf, "?>\n");
215 fclose ($conf);
216 echo "The configuration file has been written successfully.<br>";
217 return TRUE;
218 }
219
220 function connect_to_db_or_die ()
221 {
222 try
223 {
224 connectDB();
225 }
226 catch (RackTablesError $e)
227 {
228 die ('Error connecting to the database');
229 }
230 }
231
232 function init_database_static ()
233 {
234 connect_to_db_or_die();
235 global $dbxlink;
236 if (!isInnoDBSupported())
237 {
238 echo 'InnoDB test failed! Please configure MySQL server properly and retry.';
239 return FALSE;
240 }
241 $result = $dbxlink->query ('show tables');
242 $tables = $result->fetchAll (PDO::FETCH_NUM);
243 $result->closeCursor();
244 unset ($result);
245 if (count ($tables))
246 {
247 echo 'Your database is already holding ' . count ($tables);
248 echo ' tables, so I will stop here and let you check it yourself.<br>';
249 echo 'There is some important data there probably.<br>';
250 return FALSE;
251 }
252 echo 'Initializing the database...<br>';
253 echo '<table border=1>';
254 echo "<tr><th>section</th><th>queries</th><th>errors</th></tr>";
255 $errlist = array();
256 foreach (array ('structure', 'dictbase') as $part)
257 {
258 echo "<tr><td>${part}</td>";
259 $nq = $nerrs = 0;
260 foreach (preg_split ("/;\s*\n/", get_pseudo_file ($part)) as $query)
261 {
262 $query = trim($query);
263 if (empty ($query) or '--' == substr ($query, 0, 2))
264 continue;
265 $nq++;
266 if ($dbxlink->exec ($query) === FALSE)
267 {
268 $nerrs++;
269 $errlist[] = $query;
270 }
271 }
272 echo "<td>${nq}</td><td>${nerrs}</td></tr>\n";
273 }
274 // (re)load dictionary by pure PHP means w/o any external file
275 echo "<tr><td>dictionary</td>";
276 $nq = $nerrs = 0;
277 $dictq = array();
278 foreach (reloadDictionary() as $query)
279 {
280 $nq++;
281 if ($dbxlink->exec ($query) === FALSE)
282 {
283 $nerrs++;
284 $errlist[] = $query;
285 }
286 }
287 echo "<td>${nq}</td><td>${nerrs}</td></tr>\n";
288
289 echo '</table>';
290 if (count ($errlist))
291 {
292 echo '<pre>The following queries failed:\n';
293 foreach ($errlist as $q)
294 echo "${q}\n\n";
295 echo '</pre>';
296 return FALSE;
297 }
298 return TRUE;
299 }
300
301 function init_database_dynamic ()
302 {
303 connect_to_db_or_die();
304 global $dbxlink;
305 if (!isset ($_REQUEST['password']) or empty ($_REQUEST['password']))
306 {
307 $result = $dbxlink->query ('select count(user_id) from UserAccount where user_id = 1');
308 $row = $result->fetch (PDO::FETCH_NUM);
309 $nrecs = $row[0];
310 $result->closeCursor();
311 if (!$nrecs)
312 {
313 echo '<table border=1>';
314 echo '<caption>Administrator password not set</caption>';
315 echo '<tr><td><input type=password name=password></td></tr>';
316 echo '</table>';
317 }
318 return FALSE;
319 }
320 else
321 {
322 // Never send cleartext password over the wire.
323 $hash = sha1 ($_REQUEST['password']);
324 $query = "INSERT INTO `UserAccount` (`user_id`, `user_name`, `user_password_hash`, `user_realname`) " .
325 "VALUES (1,'admin','${hash}','RackTables Administrator')";
326 $result = $dbxlink->exec ($query);
327 echo "Administrator password has been set successfully.<br>";
328 return TRUE;
329 }
330 }
331
332 function congrats ()
333 {
334 echo 'Congratulations! RackTables installation is complete. After pressing Proceed you will ';
335 echo 'enter the system. Authenticate with <strong>admin</strong> username.<br>RackTables project has a ';
336 echo "<a href='http://sourceforge.net/apps/mediawiki/racktables/index.php?title=RackTablesAdminGuide'>";
337 echo "wiki</a> and a ";
338 echo "<a href='http://www.freelists.org/list/racktables-users'>mailing list</a> for users. Have fun.<br>";
339 return TRUE;
340 }
341
342 function get_pseudo_file ($name)
343 {
344 switch ($name)
345 {
346 case 'structure':
347 return <<<END_OF_FILE
348 alter database character set utf8;
349 set names 'utf8';
350 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
351
352 CREATE TABLE `Atom` (
353 `molecule_id` int(10) unsigned default NULL,
354 `rack_id` int(10) unsigned default NULL,
355 `unit_no` int(10) unsigned default NULL,
356 `atom` enum('front','interior','rear') default NULL
357 ) ENGINE=InnoDB;
358
359 CREATE TABLE `Attribute` (
360 `id` int(10) unsigned NOT NULL auto_increment,
361 `type` enum('string','uint','float','dict') default NULL,
362 `name` char(64) default NULL,
363 PRIMARY KEY (`id`),
364 UNIQUE KEY `name` (`name`)
365 ) ENGINE=InnoDB;
366
367 CREATE TABLE `AttributeMap` (
368 `objtype_id` int(10) unsigned NOT NULL default '1',
369 `attr_id` int(10) unsigned NOT NULL default '1',
370 `chapter_id` int(10) unsigned default NULL,
371 UNIQUE KEY `objtype_id` (`objtype_id`,`attr_id`),
372 KEY `attr_id` (`attr_id`),
373 KEY `chapter_id` (`chapter_id`),
374 CONSTRAINT `AttributeMap-FK-chapter_id` FOREIGN KEY (`chapter_id`) REFERENCES `Chapter` (`id`),
375 CONSTRAINT `AttributeMap-FK-attr_id` FOREIGN KEY (`attr_id`) REFERENCES `Attribute` (`id`)
376 ) ENGINE=InnoDB;
377
378 CREATE TABLE `AttributeValue` (
379 `object_id` int(10) unsigned default NULL,
380 `attr_id` int(10) unsigned default NULL,
381 `string_value` char(255) default NULL,
382 `uint_value` int(10) unsigned default NULL,
383 `float_value` float default NULL,
384 UNIQUE KEY `object_id` (`object_id`,`attr_id`),
385 KEY `attr_id-uint_value` (`attr_id`,`uint_value`),
386 KEY `attr_id-string_value` (`attr_id`,`string_value`(12)),
387 CONSTRAINT `AttributeValue-FK-attr_id` FOREIGN KEY (`attr_id`) REFERENCES `AttributeMap` (`attr_id`),
388 CONSTRAINT `AttributeValue-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `Object` (`id`) ON DELETE CASCADE
389 ) ENGINE=InnoDB;
390
391 CREATE TABLE `CachedPAV` (
392 `object_id` int(10) unsigned NOT NULL,
393 `port_name` char(255) NOT NULL,
394 `vlan_id` int(10) unsigned NOT NULL default '0',
395 PRIMARY KEY (`object_id`,`port_name`,`vlan_id`),
396 KEY `vlan_id` (`vlan_id`),
397 CONSTRAINT `CachedPAV-FK-object-port` FOREIGN KEY (`object_id`, `port_name`) REFERENCES `CachedPVM` (`object_id`, `port_name`) ON DELETE CASCADE,
398 CONSTRAINT `CachedPAV-FK-vlan_id` FOREIGN KEY (`vlan_id`) REFERENCES `VLANValidID` (`vlan_id`)
399 ) ENGINE=InnoDB;
400
401 CREATE TABLE `CachedPNV` (
402 `object_id` int(10) unsigned NOT NULL,
403 `port_name` char(255) NOT NULL,
404 `vlan_id` int(10) unsigned NOT NULL default '0',
405 PRIMARY KEY (`object_id`,`port_name`,`vlan_id`),
406 UNIQUE KEY `port_id` (`object_id`,`port_name`),
407 CONSTRAINT `CachedPNV-FK-compound` FOREIGN KEY (`object_id`, `port_name`, `vlan_id`) REFERENCES `CachedPAV` (`object_id`, `port_name`, `vlan_id`) ON DELETE CASCADE
408 ) ENGINE=InnoDB;
409
410 CREATE TABLE `CachedPVM` (
411 `object_id` int(10) unsigned NOT NULL,
412 `port_name` char(255) NOT NULL,
413 `vlan_mode` enum('access','trunk') NOT NULL default 'access',
414 PRIMARY KEY (`object_id`,`port_name`),
415 CONSTRAINT `CachedPVM-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `Object` (`id`) ON DELETE CASCADE
416 ) ENGINE=InnoDB;
417
418 CREATE TABLE `Chapter` (
419 `id` int(10) unsigned NOT NULL auto_increment,
420 `sticky` enum('yes','no') default 'no',
421 `name` char(128) NOT NULL,
422 PRIMARY KEY (`id`),
423 UNIQUE KEY `name` (`name`)
424 ) ENGINE=InnoDB;
425
426 CREATE TABLE `Config` (
427 `varname` char(32) NOT NULL,
428 `varvalue` text NOT NULL,
429 `vartype` enum('string','uint') NOT NULL default 'string',
430 `emptyok` enum('yes','no') NOT NULL default 'no',
431 `is_hidden` enum('yes','no') NOT NULL default 'yes',
432 `is_userdefined` enum('yes','no') NOT NULL default 'no',
433 `description` text,
434 PRIMARY KEY (`varname`)
435 ) ENGINE=InnoDB;
436
437 CREATE TABLE `Dictionary` (
438 `chapter_id` int(10) unsigned NOT NULL,
439 `dict_key` int(10) unsigned NOT NULL auto_increment,
440 `dict_value` char(255) default NULL,
441 PRIMARY KEY (`dict_key`),
442 UNIQUE KEY `chap_to_val` (`chapter_id`,`dict_value`),
443 CONSTRAINT `Dictionary-FK-chapter_id` FOREIGN KEY (`chapter_id`) REFERENCES `Chapter` (`id`)
444 ) ENGINE=InnoDB;
445
446 CREATE TABLE `EntityLink` (
447 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
448 `parent_entity_type` enum('ipv4net','ipv4rspool','ipv4vs','ipv6net','object','rack','user') NOT NULL,
449 `parent_entity_id` int(10) unsigned NOT NULL,
450 `child_entity_type` enum('file','object') NOT NULL,
451 `child_entity_id` int(10) unsigned NOT NULL,
452 PRIMARY KEY (`id`),
453 UNIQUE KEY `EntityLink-unique` (`parent_entity_type`,`parent_entity_id`,`child_entity_type`,`child_entity_id`),
454 KEY `EntityLink-compound` (`parent_entity_type`,`child_entity_type`,`child_entity_id`)
455 ) ENGINE=InnoDB;
456
457 CREATE TABLE `File` (
458 `id` int(10) unsigned NOT NULL auto_increment,
459 `name` char(255) NOT NULL,
460 `type` char(255) NOT NULL,
461 `size` int(10) unsigned NOT NULL,
462 `ctime` datetime NOT NULL,
463 `mtime` datetime NOT NULL,
464 `atime` datetime NOT NULL,
465 `thumbnail` longblob,
466 `contents` longblob NOT NULL,
467 `comment` text,
468 PRIMARY KEY (`id`),
469 UNIQUE KEY `name` (`name`)
470 ) ENGINE=InnoDB;
471
472 CREATE TABLE `FileLink` (
473 `id` int(10) unsigned NOT NULL auto_increment,
474 `file_id` int(10) unsigned NOT NULL,
475 `entity_type` enum('ipv4net','ipv4rspool','ipv4vs','object','rack','user','ipv6net') NOT NULL default 'object',
476 `entity_id` int(10) NOT NULL,
477 PRIMARY KEY (`id`),
478 KEY `FileLink-file_id` (`file_id`),
479 UNIQUE KEY `FileLink-unique` (`file_id`,`entity_type`,`entity_id`),
480 CONSTRAINT `FileLink-File_fkey` FOREIGN KEY (`file_id`) REFERENCES `File` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
481 ) ENGINE=InnoDB;
482
483 CREATE TABLE `IPv4Address` (
484 `ip` int(10) unsigned NOT NULL default '0',
485 `name` char(255) NOT NULL default '',
486 `reserved` enum('yes','no') default NULL,
487 PRIMARY KEY (`ip`)
488 ) ENGINE=InnoDB;
489
490 CREATE TABLE `IPv4Allocation` (
491 `object_id` int(10) unsigned NOT NULL default '0',
492 `ip` int(10) unsigned NOT NULL default '0',
493 `name` char(255) NOT NULL default '',
494 `type` enum('regular','shared','virtual','router') default NULL,
495 PRIMARY KEY (`object_id`,`ip`),
496 KEY `ip` (`ip`),
497 CONSTRAINT `IPv4Allocation-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `Object` (`id`) ON DELETE CASCADE
498 ) ENGINE=InnoDB;
499
500 CREATE TABLE `IPv4LB` (
501 `object_id` int(10) unsigned default NULL,
502 `rspool_id` int(10) unsigned default NULL,
503 `vs_id` int(10) unsigned default NULL,
504 `prio` varchar(255) default NULL,
505 `vsconfig` text,
506 `rsconfig` text,
507 UNIQUE KEY `LB-VS` (`object_id`,`vs_id`),
508 KEY `IPv4LB-FK-rspool_id` (`rspool_id`),
509 KEY `IPv4LB-FK-vs_id` (`vs_id`),
510 CONSTRAINT `IPv4LB-FK-vs_id` FOREIGN KEY (`vs_id`) REFERENCES `IPv4VS` (`id`),
511 CONSTRAINT `IPv4LB-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `Object` (`id`),
512 CONSTRAINT `IPv4LB-FK-rspool_id` FOREIGN KEY (`rspool_id`) REFERENCES `IPv4RSPool` (`id`)
513 ) ENGINE=InnoDB;
514
515 CREATE TABLE `IPv4Log` (
516 `id` int(10) NOT NULL AUTO_INCREMENT,
517 `ip` int(10) unsigned NOT NULL,
518 `date` datetime NOT NULL,
519 `user` varchar(64) NOT NULL,
520 `message` text NOT NULL,
521 PRIMARY KEY (`id`),
522 KEY `ip-date` (`ip`,`date`)
523 ) ENGINE=InnoDB;
524
525 CREATE TABLE `IPv4NAT` (
526 `object_id` int(10) unsigned NOT NULL default '0',
527 `proto` enum('TCP','UDP') NOT NULL default 'TCP',
528 `localip` int(10) unsigned NOT NULL default '0',
529 `localport` smallint(5) unsigned NOT NULL default '0',
530 `remoteip` int(10) unsigned NOT NULL default '0',
531 `remoteport` smallint(5) unsigned NOT NULL default '0',
532 `description` char(255) default NULL,
533 PRIMARY KEY (`object_id`,`proto`,`localip`,`localport`,`remoteip`,`remoteport`),
534 KEY `localip` (`localip`),
535 KEY `remoteip` (`remoteip`),
536 KEY `object_id` (`object_id`),
537 CONSTRAINT `IPv4NAT-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `Object` (`id`)
538 ) ENGINE=InnoDB;
539
540 CREATE TABLE `IPv4Network` (
541 `id` int(10) unsigned NOT NULL auto_increment,
542 `ip` int(10) unsigned NOT NULL default '0',
543 `mask` int(10) unsigned NOT NULL default '0',
544 `name` char(255) default NULL,
545 `comment` text,
546 PRIMARY KEY (`id`),
547 UNIQUE KEY `base-len` (`ip`,`mask`)
548 ) ENGINE=InnoDB;
549
550 CREATE TABLE `IPv4RS` (
551 `id` int(10) unsigned NOT NULL auto_increment,
552 `inservice` enum('yes','no') NOT NULL default 'no',
553 `rsip` int(10) unsigned default NULL,
554 `rsport` smallint(5) unsigned default NULL,
555 `rspool_id` int(10) unsigned default NULL,
556 `rsconfig` text,
557 PRIMARY KEY (`id`),
558 KEY `rsip` (`rsip`),
559 UNIQUE KEY `pool-endpoint` (`rspool_id`,`rsip`,`rsport`),
560 CONSTRAINT `IPv4RS-FK` FOREIGN KEY (`rspool_id`) REFERENCES `IPv4RSPool` (`id`) ON DELETE CASCADE
561 ) ENGINE=InnoDB;
562
563 CREATE TABLE `IPv4RSPool` (
564 `id` int(10) unsigned NOT NULL auto_increment,
565 `name` char(255) default NULL,
566 `vsconfig` text,
567 `rsconfig` text,
568 PRIMARY KEY (`id`)
569 ) ENGINE=InnoDB;
570
571 CREATE TABLE `IPv4VS` (
572 `id` int(10) unsigned NOT NULL auto_increment,
573 `vip` int(10) unsigned default NULL,
574 `vport` smallint(5) unsigned default NULL,
575 `proto` enum('TCP','UDP') NOT NULL default 'TCP',
576 `name` char(255) default NULL,
577 `vsconfig` text,
578 `rsconfig` text,
579 PRIMARY KEY (`id`),
580 KEY `vip` (`vip`)
581 ) ENGINE=InnoDB;
582
583 CREATE TABLE `IPv6Address` (
584 `ip` binary(16) NOT NULL,
585 `name` char(255) NOT NULL default '',
586 `reserved` enum('yes','no') default NULL,
587 PRIMARY KEY (`ip`)
588 ) ENGINE=InnoDB;
589
590 CREATE TABLE `IPv6Allocation` (
591 `object_id` int(10) unsigned NOT NULL default '0',
592 `ip` binary(16) NOT NULL,
593 `name` char(255) NOT NULL default '',
594 `type` enum('regular','shared','virtual','router') default NULL,
595 PRIMARY KEY (`object_id`,`ip`),
596 KEY `ip` (`ip`),
597 CONSTRAINT `IPv6Allocation-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `Object` (`id`) ON DELETE CASCADE
598 ) ENGINE=InnoDB;
599
600 CREATE TABLE `IPv6Network` (
601 `id` int(10) unsigned NOT NULL auto_increment,
602 `ip` binary(16) NOT NULL,
603 `mask` int(10) unsigned NOT NULL,
604 `last_ip` binary(16) NOT NULL,
605 `name` char(255) default NULL,
606 `comment` text,
607 PRIMARY KEY (`id`),
608 UNIQUE KEY `ip` (`ip`,`mask`)
609 ) ENGINE=InnoDB;
610
611 CREATE TABLE `LDAPCache` (
612 `presented_username` char(64) NOT NULL,
613 `successful_hash` char(40) NOT NULL,
614 `first_success` timestamp NOT NULL default CURRENT_TIMESTAMP,
615 `last_retry` timestamp NOT NULL default '0000-00-00 00:00:00',
616 `displayed_name` char(128) default NULL,
617 `memberof` text,
618 UNIQUE KEY `presented_username` (`presented_username`),
619 KEY `scanidx` (`presented_username`,`successful_hash`)
620 ) ENGINE=InnoDB;
621
622 CREATE TABLE `Link` (
623 `porta` int(10) unsigned NOT NULL default '0',
624 `portb` int(10) unsigned NOT NULL default '0',
625 `cable` char(64) DEFAULT NULL,
626 PRIMARY KEY (`porta`,`portb`),
627 UNIQUE KEY `porta` (`porta`),
628 UNIQUE KEY `portb` (`portb`),
629 CONSTRAINT `Link-FK-a` FOREIGN KEY (`porta`) REFERENCES `Port` (`id`) ON DELETE CASCADE,
630 CONSTRAINT `Link-FK-b` FOREIGN KEY (`portb`) REFERENCES `Port` (`id`) ON DELETE CASCADE
631 ) ENGINE=InnoDB;
632
633 CREATE TABLE `Molecule` (
634 `id` int(10) unsigned NOT NULL auto_increment,
635 PRIMARY KEY (`id`)
636 ) ENGINE=InnoDB;
637
638 CREATE TABLE `MountOperation` (
639 `id` int(10) unsigned NOT NULL auto_increment,
640 `object_id` int(10) unsigned NOT NULL default '0',
641 `ctime` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
642 `user_name` char(64) default NULL,
643 `old_molecule_id` int(10) unsigned default NULL,
644 `new_molecule_id` int(10) unsigned default NULL,
645 `comment` text,
646 PRIMARY KEY (`id`),
647 KEY `object_id` (`object_id`),
648 CONSTRAINT `MountOperation-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `Object` (`id`) ON DELETE CASCADE
649 ) ENGINE=InnoDB;
650
651 CREATE TABLE `ObjectLog` (
652 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
653 `object_id` int(10) unsigned NOT NULL,
654 `user` char(64) NOT NULL,
655 `date` datetime NOT NULL,
656 `content` text NOT NULL,
657 PRIMARY KEY (`id`),
658 KEY `object_id` (`object_id`),
659 KEY `date` (`date`),
660 CONSTRAINT `ObjectLog-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `Object` (`id`) ON DELETE CASCADE
661 ) ENGINE=InnoDB;
662
663 CREATE TABLE `ObjectParentCompat` (
664 `parent_objtype_id` int(10) unsigned NOT NULL,
665 `child_objtype_id` int(10) unsigned NOT NULL,
666 UNIQUE KEY `parent_child` (`parent_objtype_id`,`child_objtype_id`)
667 ) ENGINE=InnoDB;
668
669 CREATE TABLE `Port` (
670 `id` int(10) unsigned NOT NULL auto_increment,
671 `object_id` int(10) unsigned NOT NULL default '0',
672 `name` char(255) NOT NULL default '',
673 `iif_id` int(10) unsigned NOT NULL,
674 `type` int(10) unsigned NOT NULL default '0',
675 `l2address` char(64) default NULL,
676 `reservation_comment` char(255) default NULL,
677 `label` char(255) default NULL,
678 PRIMARY KEY (`id`),
679 UNIQUE KEY `object_iif_oif_name` (`object_id`,`iif_id`,`type`,`name`),
680 KEY `type` (`type`),
681 KEY `comment` (`reservation_comment`),
682 KEY `l2address` (`l2address`),
683 KEY `Port-FK-iif-oif` (`iif_id`,`type`),
684 CONSTRAINT `Port-FK-iif-oif` FOREIGN KEY (`iif_id`, `type`) REFERENCES `PortInterfaceCompat` (`iif_id`, `oif_id`),
685 CONSTRAINT `Port-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `Object` (`id`) ON DELETE CASCADE
686 ) ENGINE=InnoDB;
687
688 CREATE TABLE `PortAllowedVLAN` (
689 `object_id` int(10) unsigned NOT NULL,
690 `port_name` char(255) NOT NULL,
691 `vlan_id` int(10) unsigned NOT NULL default '0',
692 PRIMARY KEY (`object_id`,`port_name`,`vlan_id`),
693 KEY `vlan_id` (`vlan_id`),
694 CONSTRAINT `PortAllowedVLAN-FK-object-port` FOREIGN KEY (`object_id`, `port_name`) REFERENCES `PortVLANMode` (`object_id`, `port_name`) ON DELETE CASCADE,
695 CONSTRAINT `PortAllowedVLAN-FK-vlan_id` FOREIGN KEY (`vlan_id`) REFERENCES `VLANValidID` (`vlan_id`)
696 ) ENGINE=InnoDB;
697
698 CREATE TABLE `PortCompat` (
699 `type1` int(10) unsigned NOT NULL default '0',
700 `type2` int(10) unsigned NOT NULL default '0',
701 UNIQUE KEY `type1_2` (`type1`,`type2`),
702 KEY `type2` (`type2`)
703 ) ENGINE=InnoDB;
704
705 CREATE TABLE `PortInnerInterface` (
706 `id` int(10) unsigned NOT NULL,
707 `iif_name` char(16) NOT NULL,
708 PRIMARY KEY (`id`),
709 UNIQUE KEY `iif_name` (`iif_name`)
710 ) ENGINE=InnoDB;
711
712 CREATE TABLE `PortInterfaceCompat` (
713 `iif_id` int(10) unsigned NOT NULL,
714 `oif_id` int(10) unsigned NOT NULL,
715 UNIQUE KEY `pair` (`iif_id`,`oif_id`),
716 CONSTRAINT `PortInterfaceCompat-FK-iif_id` FOREIGN KEY (`iif_id`) REFERENCES `PortInnerInterface` (`id`)
717 ) ENGINE=InnoDB;
718
719 CREATE TABLE `PortLog` (
720 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
721 `port_id` int(10) unsigned NOT NULL,
722 `date` datetime NOT NULL,
723 `user` varchar(64) NOT NULL,
724 `message` text NOT NULL,
725 PRIMARY KEY (`id`),
726 KEY `port_id-date` (`port_id`,`date`),
727 CONSTRAINT `PortLog_ibfk_1` FOREIGN KEY (`port_id`) REFERENCES `Port` (`id`) ON DELETE CASCADE
728 ) ENGINE=InnoDB;
729
730 CREATE TABLE `PortNativeVLAN` (
731 `object_id` int(10) unsigned NOT NULL,
732 `port_name` char(255) NOT NULL,
733 `vlan_id` int(10) unsigned NOT NULL default '0',
734 PRIMARY KEY (`object_id`,`port_name`,`vlan_id`),
735 UNIQUE KEY `port_id` (`object_id`,`port_name`),
736 CONSTRAINT `PortNativeVLAN-FK-compound` FOREIGN KEY (`object_id`, `port_name`, `vlan_id`) REFERENCES `PortAllowedVLAN` (`object_id`, `port_name`, `vlan_id`) ON DELETE CASCADE
737 ) ENGINE=InnoDB;
738
739 CREATE TABLE `PortVLANMode` (
740 `object_id` int(10) unsigned NOT NULL,
741 `port_name` char(255) NOT NULL,
742 `vlan_mode` enum('access','trunk') NOT NULL default 'access',
743 PRIMARY KEY (`object_id`,`port_name`),
744 CONSTRAINT `PortVLANMode-FK-object-port` FOREIGN KEY (`object_id`, `port_name`) REFERENCES `CachedPVM` (`object_id`, `port_name`)
745 ) ENGINE=InnoDB;
746
747 CREATE TABLE `Object` (
748 `id` int(10) unsigned NOT NULL auto_increment,
749 `name` char(255) default NULL,
750 `label` char(255) default NULL,
751 `objtype_id` int(10) unsigned NOT NULL default '1',
752 `asset_no` char(64) default NULL,
753 `has_problems` enum('yes','no') NOT NULL default 'no',
754 `comment` text,
755 PRIMARY KEY (`id`),
756 UNIQUE KEY `asset_no` (`asset_no`),
757 UNIQUE KEY `name` (`name`),
758 KEY `type_id` (`objtype_id`,`id`)
759 ) ENGINE=InnoDB;
760
761 CREATE TABLE `ObjectHistory` (
762 `id` int(10) unsigned default NULL,
763 `name` char(255) default NULL,
764 `label` char(255) default NULL,
765 `objtype_id` int(10) unsigned default NULL,
766 `asset_no` char(64) default NULL,
767 `has_problems` enum('yes','no') NOT NULL default 'no',
768 `comment` text,
769 `ctime` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
770 `user_name` char(64) default NULL,
771 KEY `id` (`id`),
772 CONSTRAINT `ObjectHistory-FK-object_id` FOREIGN KEY (`id`) REFERENCES `Object` (`id`) ON DELETE CASCADE
773 ) ENGINE=InnoDB;
774
775 CREATE TABLE `RackSpace` (
776 `rack_id` int(10) unsigned NOT NULL default '0',
777 `unit_no` int(10) unsigned NOT NULL default '0',
778 `atom` enum('front','interior','rear') NOT NULL default 'interior',
779 `state` enum('A','U','T','W') NOT NULL default 'A',
780 `object_id` int(10) unsigned default NULL,
781 PRIMARY KEY (`rack_id`,`unit_no`,`atom`),
782 KEY `RackSpace_object_id` (`object_id`),
783 CONSTRAINT `RackSpace-FK-rack_id` FOREIGN KEY (`rack_id`) REFERENCES `Object` (`id`),
784 CONSTRAINT `RackSpace-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `Object` (`id`) ON DELETE CASCADE
785 ) ENGINE=InnoDB;
786
787 CREATE TABLE `RackThumbnail` (
788 `rack_id` int(10) unsigned NOT NULL,
789 `thumb_data` blob,
790 UNIQUE KEY `rack_id` (`rack_id`),
791 CONSTRAINT `RackThumbnail-FK-rack_id` FOREIGN KEY (`rack_id`) REFERENCES `Object` (`id`) ON DELETE CASCADE
792 ) ENGINE=InnoDB;
793
794 CREATE TABLE `Script` (
795 `script_name` char(64) NOT NULL,
796 `script_text` longtext,
797 PRIMARY KEY (`script_name`)
798 ) ENGINE=InnoDB;
799
800 CREATE TABLE `TagStorage` (
801 `entity_realm` enum('file','ipv4net','ipv4vs','ipv4rspool','object','rack','user','ipv6net','vst') NOT NULL default 'object',
802 `entity_id` int(10) unsigned NOT NULL,
803 `tag_id` int(10) unsigned NOT NULL default '0',
804 `user` char(64) DEFAULT NULL,
805 `date` datetime DEFAULT NULL,
806 UNIQUE KEY `entity_tag` (`entity_realm`,`entity_id`,`tag_id`),
807 KEY `entity_id` (`entity_id`),
808 KEY `TagStorage-FK-tag_id` (`tag_id`),
809 CONSTRAINT `TagStorage-FK-tag_id` FOREIGN KEY (`tag_id`) REFERENCES `TagTree` (`id`)
810 ) ENGINE=InnoDB;
811
812 CREATE TABLE `TagTree` (
813 `id` int(10) unsigned NOT NULL auto_increment,
814 `parent_id` int(10) unsigned default NULL,
815 `tag` char(255) default NULL,
816 PRIMARY KEY (`id`),
817 UNIQUE KEY `tag` (`tag`),
818 KEY `TagTree-K-parent_id` (`parent_id`),
819 CONSTRAINT `TagTree-K-parent_id` FOREIGN KEY (`parent_id`) REFERENCES `TagTree` (`id`)
820 ) ENGINE=InnoDB;
821
822 CREATE TABLE `UserAccount` (
823 `user_id` int(10) unsigned NOT NULL auto_increment,
824 `user_name` char(64) NOT NULL default '',
825 `user_password_hash` char(40) default NULL,
826 `user_realname` char(64) default NULL,
827 PRIMARY KEY (`user_id`),
828 UNIQUE KEY `user_name` (`user_name`)
829 ) ENGINE=InnoDB;
830
831 CREATE TABLE `UserConfig` (
832 `varname` char(32) NOT NULL,
833 `varvalue` text NOT NULL,
834 `user` char(64) NOT NULL,
835 UNIQUE KEY `user_varname` (`user`,`varname`),
836 KEY `varname` (`varname`),
837 CONSTRAINT `UserConfig-FK-varname` FOREIGN KEY (`varname`) REFERENCES `Config` (`varname`) ON DELETE CASCADE,
838 CONSTRAINT `UserConfig-FK-user` FOREIGN KEY (`user`) REFERENCES `UserAccount` (`user_name`) ON DELETE CASCADE
839 ) ENGINE=InnoDB;
840
841 CREATE TABLE `VLANDescription` (
842 `domain_id` int(10) unsigned NOT NULL,
843 `vlan_id` int(10) unsigned NOT NULL default '0',
844 `vlan_type` enum('ondemand','compulsory','alien') NOT NULL default 'ondemand',
845 `vlan_descr` char(255) default NULL,
846 PRIMARY KEY (`domain_id`,`vlan_id`),
847 KEY `vlan_id` (`vlan_id`),
848 CONSTRAINT `VLANDescription-FK-domain_id` FOREIGN KEY (`domain_id`) REFERENCES `VLANDomain` (`id`) ON DELETE CASCADE,
849 CONSTRAINT `VLANDescription-FK-vlan_id` FOREIGN KEY (`vlan_id`) REFERENCES `VLANValidID` (`vlan_id`)
850 ) ENGINE=InnoDB;
851
852 CREATE TABLE `VLANDomain` (
853 `id` int(10) unsigned NOT NULL auto_increment,
854 `description` char(255) default NULL,
855 PRIMARY KEY (`id`),
856 UNIQUE KEY `description` (`description`)
857 ) ENGINE=InnoDB;
858
859 CREATE TABLE `VLANIPv4` (
860 `domain_id` int(10) unsigned NOT NULL,
861 `vlan_id` int(10) unsigned NOT NULL,
862 `ipv4net_id` int(10) unsigned NOT NULL,
863 UNIQUE KEY `network-domain` (`ipv4net_id`,`domain_id`),
864 KEY `VLANIPv4-FK-compound` (`domain_id`,`vlan_id`),
865 CONSTRAINT `VLANIPv4-FK-compound` FOREIGN KEY (`domain_id`, `vlan_id`) REFERENCES `VLANDescription` (`domain_id`, `vlan_id`) ON DELETE CASCADE,
866 CONSTRAINT `VLANIPv4-FK-ipv4net_id` FOREIGN KEY (`ipv4net_id`) REFERENCES `IPv4Network` (`id`) ON DELETE CASCADE
867 ) ENGINE=InnoDB;
868
869 CREATE TABLE `VLANIPv6` (
870 `domain_id` int(10) unsigned NOT NULL,
871 `vlan_id` int(10) unsigned NOT NULL,
872 `ipv6net_id` int(10) unsigned NOT NULL,
873 UNIQUE KEY `network-domain` (`ipv6net_id`,`domain_id`),
874 KEY `VLANIPv6-FK-compound` (`domain_id`,`vlan_id`),
875 CONSTRAINT `VLANIPv6-FK-compound` FOREIGN KEY (`domain_id`, `vlan_id`) REFERENCES `VLANDescription` (`domain_id`, `vlan_id`) ON DELETE CASCADE,
876 CONSTRAINT `VLANIPv6-FK-ipv6net_id` FOREIGN KEY (`ipv6net_id`) REFERENCES `IPv6Network` (`id`) ON DELETE CASCADE
877 ) ENGINE=InnoDB;
878
879 CREATE TABLE `VLANSTRule` (
880 `vst_id` int(10) unsigned NOT NULL,
881 `rule_no` int(10) unsigned NOT NULL,
882 `port_pcre` char(255) NOT NULL,
883 `port_role` enum('access','trunk','anymode','uplink','downlink','none') NOT NULL default 'none',
884 `wrt_vlans` char(255) default NULL,
885 `description` char(255) default NULL,
886 UNIQUE KEY `vst-rule` (`vst_id`,`rule_no`),
887 CONSTRAINT `VLANSTRule-FK-vst_id` FOREIGN KEY (`vst_id`) REFERENCES `VLANSwitchTemplate` (`id`) ON DELETE CASCADE
888 ) ENGINE=InnoDB;
889
890 CREATE TABLE `VLANSwitch` (
891 `object_id` int(10) unsigned NOT NULL,
892 `domain_id` int(10) unsigned NOT NULL,
893 `template_id` int(10) unsigned NOT NULL,
894 `mutex_rev` int(10) unsigned NOT NULL default '0',
895 `out_of_sync` enum('yes','no') NOT NULL default 'yes',
896 `last_errno` int(10) unsigned NOT NULL default '0',
897 `last_change` timestamp NOT NULL default '0000-00-00 00:00:00',
898 `last_push_started` timestamp NOT NULL default '0000-00-00 00:00:00',
899 `last_push_finished` timestamp NOT NULL default '0000-00-00 00:00:00',
900 `last_error_ts` timestamp NOT NULL default '0000-00-00 00:00:00',
901 UNIQUE KEY `object_id` (`object_id`),
902 KEY `domain_id` (`domain_id`),
903 KEY `template_id` (`template_id`),
904 KEY `out_of_sync` (`out_of_sync`),
905 KEY `last_errno` (`last_errno`),
906 CONSTRAINT `VLANSwitch-FK-domain_id` FOREIGN KEY (`domain_id`) REFERENCES `VLANDomain` (`id`),
907 CONSTRAINT `VLANSwitch-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `Object` (`id`),
908 CONSTRAINT `VLANSwitch-FK-template_id` FOREIGN KEY (`template_id`) REFERENCES `VLANSwitchTemplate` (`id`)
909 ) ENGINE=InnoDB;
910
911 CREATE TABLE `VLANSwitchTemplate` (
912 `id` int(10) unsigned NOT NULL auto_increment,
913 `mutex_rev` int(10) NOT NULL,
914 `description` char(255) default NULL,
915 `saved_by` char(64) NOT NULL,
916 PRIMARY KEY (`id`),
917 UNIQUE KEY `description` (`description`)
918 ) ENGINE=InnoDB;
919
920 CREATE TABLE `VLANValidID` (
921 `vlan_id` int(10) unsigned NOT NULL default '1',
922 PRIMARY KEY (`vlan_id`)
923 ) ENGINE=InnoDB;
924
925 CREATE VIEW `Row` AS SELECT id, label AS name
926 FROM `Object`
927 WHERE objtype_id = 1561;
928
929 CREATE VIEW `Rack` AS SELECT O.id, O.label AS name, O.asset_no, O.has_problems, O.comment,
930 AV.uint_value AS height,
931 RT.thumb_data,
932 Row.id AS row_id,
933 Row.name AS row_name
934 FROM `Object` O
935 LEFT JOIN `AttributeValue` AV ON O.id = AV.object_id AND AV.attr_id = 27
936 LEFT JOIN `RackThumbnail` RT ON O.id = RT.rack_id
937 LEFT JOIN `EntityLink` EL ON O.id = EL.child_entity_id AND EL.parent_entity_type = 'object' AND EL.child_entity_type = 'object'
938 INNER JOIN `Row` ON EL.parent_entity_id = Row.id
939 WHERE O.objtype_id = 1560;
940
941 CREATE VIEW `RackObject` AS SELECT * FROM `Object`
942 WHERE `objtype_id` NOT IN (1560, 1561, 1562);
943
944 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
945 END_OF_FILE;
946 ##########################################################################
947 case 'dictbase':
948 return <<<END_OF_FILE
949 INSERT INTO `Attribute` (`id`, `type`, `name`) VALUES
950 (1,'string','OEM S/N 1'),
951 (2,'dict','HW type'),
952 (3,'string','FQDN'),
953 (4,'dict','SW type'),
954 (5,'string','SW version'),
955 (6,'uint','number of ports'),
956 (7,'float','max. current, Ampers'),
957 (8,'float','power load, percents'),
958 (14,'string','contact person'),
959 (13,'float','max power, Watts'),
960 (16,'uint','flash memory, MB'),
961 (17,'uint','DRAM, MB'),
962 (18,'uint','CPU, MHz'),
963 (20,'string','OEM S/N 2'),
964 (21,'string','support contract expiration'),
965 (22,'string','HW warranty expiration'),
966 (24,'string','SW warranty expiration'),
967 (25,'string','UUID'),
968 (26,'dict','Hypervisor'),
969 (27,'uint','Height'),
970 -- ^^^^^ Any new "default" attributes must go above this line! ^^^^^
971 -- Primary key value 9999 makes sure, that AUTO_INCREMENT on server restart
972 -- doesn't drop below 10000 (other code relies on this, site-specific
973 -- attributes are assigned IDs starting from 10000).
974 (9999,'string','base MAC address');
975
976 INSERT INTO `AttributeMap` (`objtype_id`, `attr_id`, `chapter_id`) VALUES
977 (2,1,NULL),
978 (2,2,27),
979 (2,3,NULL),
980 (2,5,NULL),
981 (4,1,NULL),
982 (4,2,11),
983 (4,3,NULL),
984 (4,4,13),
985 (4,14,NULL),
986 (4,21,NULL),
987 (4,22,NULL),
988 (4,24,NULL),
989 (4,25,NULL),
990 (4,26,29),
991 (5,1,NULL),
992 (5,2,18),
993 (6,1,NULL),
994 (6,2,19),
995 (6,20,NULL),
996 (7,1,NULL),
997 (7,2,17),
998 (7,3,NULL),
999 (7,4,16),
1000 (7,5,NULL),
1001 (7,14,NULL),
1002 (7,16,NULL),
1003 (7,17,NULL),
1004 (7,18,NULL),
1005 (7,21,NULL),
1006 (7,22,NULL),
1007 (7,24,NULL),
1008 (8,1,NULL),
1009 (8,2,12),
1010 (8,3,NULL),
1011 (8,4,14),
1012 (8,5,NULL),
1013 (8,14,NULL),
1014 (8,16,NULL),
1015 (8,17,NULL),
1016 (8,18,NULL),
1017 (8,20,NULL),
1018 (8,21,NULL),
1019 (8,22,NULL),
1020 (8,24,NULL),
1021 (9,6,NULL),
1022 (12,1,NULL),
1023 (12,3,NULL),
1024 (12,7,NULL),
1025 (12,8,NULL),
1026 (12,13,NULL),
1027 (12,20,NULL),
1028 (445,1,NULL),
1029 (445,2,21),
1030 (445,3,NULL),
1031 (445,5,NULL),
1032 (445,14,NULL),
1033 (445,22,NULL),
1034 (447,1,NULL),
1035 (447,2,9999),
1036 (447,3,NULL),
1037 (447,5,NULL),
1038 (447,14,NULL),
1039 (447,22,NULL),
1040 (15,2,23),
1041 (798,1,NULL),
1042 (798,2,24),
1043 (798,3,NULL),
1044 (798,5,NULL),
1045 (798,14,NULL),
1046 (798,16,NULL),
1047 (798,17,NULL),
1048 (798,18,NULL),
1049 (798,20,NULL),
1050 (798,21,NULL),
1051 (798,22,NULL),
1052 (798,24,NULL),
1053 (965,1,NULL),
1054 (965,3,NULL),
1055 (965,2,25),
1056 (1055,2,26),
1057 (1323,1,NULL),
1058 (1323,2,28),
1059 (1323,3,NULL),
1060 (1323,5,NULL),
1061 (1397,1,NULL),
1062 (1397,2,34),
1063 (1397,14,NULL),
1064 (1397,21,NULL),
1065 (1397,22,NULL),
1066 (1398,1,NULL),
1067 (1398,2,35),
1068 (1398,14,NULL),
1069 (1398,21,NULL),
1070 (1398,22,NULL),
1071 (1502,1,NULL),
1072 (1502,2,31),
1073 (1502,3,NULL),
1074 (1502,14,NULL),
1075 (1502,20,NULL),
1076 (1502,21,NULL),
1077 (1502,22,NULL),
1078 (1503,1,NULL),
1079 (1503,2,30),
1080 (1503,3,NULL),
1081 (1503,4,14),
1082 (1503,5,NULL),
1083 (1503,14,NULL),
1084 (1503,16,NULL),
1085 (1503,17,NULL),
1086 (1503,18,NULL),
1087 (1503,20,NULL),
1088 (1503,21,NULL),
1089 (1503,22,NULL),
1090 (1503,24,NULL),
1091 (1504,3,NULL),
1092 (1504,4,13),
1093 (1504,14,NULL),
1094 (1504,24,NULL),
1095 (1505,14,NULL),
1096 (1506,14,NULL),
1097 (1506,17,NULL),
1098 (1506,18,NULL),
1099 (1507,1,NULL),
1100 (1507,2,32),
1101 (1507,3,NULL),
1102 (1507,4,33),
1103 (1507,5,NULL),
1104 (1507,14,NULL),
1105 (1507,20,NULL),
1106 (1507,21,NULL),
1107 (1507,22,NULL),
1108 (1560,27,NULL);
1109
1110 INSERT INTO `Chapter` (`id`, `sticky`, `name`) VALUES
1111 (1,'yes','ObjectType'),
1112 (2,'yes','PortOuterInterface'),
1113 (11,'no','server models'),
1114 (12,'no','network switch models'),
1115 (13,'no','server OS type'),
1116 (14,'no','switch OS type'),
1117 (16,'no','router OS type'),
1118 (17,'no','router models'),
1119 (18,'no','disk array models'),
1120 (19,'no','tape library models'),
1121 (21,'no','KVM switch models'),
1122 (23,'no','console models'),
1123 (24,'no','network security models'),
1124 (25,'no','wireless models'),
1125 (26,'no','fibre channel switch models'),
1126 (27,'no','PDU models'),
1127 (28,'no','Voice/video hardware'),
1128 (29,'no','Yes/No'),
1129 (30,'no','network chassis models'),
1130 (31,'no','server chassis models'),
1131 (32,'no','virtual switch models'),
1132 (33,'no','virtual switch OS type'),
1133 (34,'no','power supply chassis models'),
1134 (35,'no','power supply models'),
1135 -- Default chapters must have ID less than 10000, add them above this line.
1136 (9999,'no','multiplexer models');
1137
1138 INSERT INTO `PortInnerInterface` VALUES
1139 (1,'hardwired'),
1140 (2,'SFP-100'),
1141 (3,'GBIC'),
1142 (4,'SFP-1000'),
1143 (5,'XENPAK'),
1144 (6,'X2'),
1145 (7,'XPAK'),
1146 (8,'XFP'),
1147 (9,'SFP+'),
1148 (10,'QSFP+');
1149
1150 INSERT INTO `ObjectParentCompat` VALUES
1151 (3,13),
1152 (4,1504),
1153 (4,1507),
1154 (1397,1398),
1155 (1502,4),
1156 (1503,8),
1157 (1505,4),
1158 (1505,1504),
1159 (1505,1506),
1160 (1505,1507),
1161 (1506,4),
1162 (1506,1504);
1163
1164 INSERT INTO `PortInterfaceCompat` VALUES
1165 (2,1208),(2,1195),(2,1196),(2,1197),(2,1198),(2,1199),(2,1200),(2,1201),
1166 (3,1078),(3,24),(3,34),(3,1202),(3,1203),(3,1204),(3,1205),(3,1206),(3,1207),
1167 (4,1077),(4,24),(4,34),(4,1202),(4,1203),(4,1204),(4,1205),(4,1206),(4,1207),
1168 (5,1079),(5,30),(5,35),(5,36),(5,37),(5,38),(5,39),(5,40),
1169 (6,1080),(6,30),(6,35),(6,36),(6,37),(6,38),(6,39),(6,40),
1170 (7,1081),(7,30),(7,35),(7,36),(7,37),(7,38),(7,39),(7,40),
1171 (8,1082),(8,30),(8,35),(8,36),(8,37),(8,38),(8,39),(8,40),
1172 (9,1084),(9,30),(9,35),(9,36),(9,37),(9,38),(9,39),(9,40),
1173 (10,1588),
1174 (1,16),(1,19),(1,24),(1,29),(1,31),(1,33),(1,446),(1,681),(1,682),(1,1322),(1,1399),(1,1469);
1175
1176 INSERT INTO `PortCompat` (`type1`, `type2`) VALUES
1177 (17,17),
1178 (18,18),
1179 (19,19),
1180 (24,24),
1181 (18,19),
1182 (19,18),
1183 (18,24),
1184 (24,18),
1185 (19,24),
1186 (24,19),
1187 (29,29),
1188 (30,30),
1189 (16,1322),
1190 (1322,16),
1191 (29,681),
1192 (29,682),
1193 (32,32),
1194 (33,446),
1195 (34,34),
1196 (35,35),
1197 (36,36),
1198 (37,37),
1199 (38,38),
1200 (39,39),
1201 (40,40),
1202 (41,41),
1203 (439,439),
1204 (446,33),
1205 (681,29),
1206 (681,681),
1207 (681,682),
1208 (682,29),
1209 (682,681),
1210 (682,682),
1211 (1077,1077),
1212 (1084,1084),
1213 (1087,1087),
1214 (1195,1195),
1215 (1196,1196),
1216 (1197,1197),
1217 (1198,1199),
1218 (1199,1198),
1219 (1200,1200),
1220 (1201,1201),
1221 (1202,1202),
1222 (1203,1203),
1223 (1204,1204),
1224 (1205,1205),
1225 (1206,1207),
1226 (1207,1206),
1227 (1209,1209),
1228 (1210,1210),
1229 (1211,1211),
1230 (1212,1212),
1231 (1213,1213),
1232 (1214,1214),
1233 (1215,1215),
1234 (1216,1216),
1235 (1217,1217),
1236 (1218,1218),
1237 (1219,1219),
1238 (1220,1220),
1239 (1221,1221),
1240 (1222,1222),
1241 (1223,1223),
1242 (1224,1224),
1243 (1225,1225),
1244 (1226,1226),
1245 (1227,1227),
1246 (1228,1228),
1247 (1229,1229),
1248 (1230,1230),
1249 (1231,1231),
1250 (1232,1232),
1251 (1233,1233),
1252 (1234,1234),
1253 (1235,1235),
1254 (1236,1236),
1255 (1237,1237),
1256 (1238,1238),
1257 (1239,1239),
1258 (1240,1240),
1259 (1241,1241),
1260 (1242,1242),
1261 (1243,1243),
1262 (1244,1244),
1263 (1245,1245),
1264 (1246,1246),
1265 (1247,1247),
1266 (1248,1248),
1267 (1249,1249),
1268 (1250,1250),
1269 (1251,1251),
1270 (1252,1252),
1271 (1253,1253),
1272 (1254,1254),
1273 (1255,1255),
1274 (1256,1256),
1275 (1257,1257),
1276 (1258,1258),
1277 (1259,1259),
1278 (1260,1260),
1279 (1261,1261),
1280 (1262,1262),
1281 (1263,1263),
1282 (1264,1264),
1283 (1265,1265),
1284 (1266,1266),
1285 (1267,1267),
1286 (1268,1268),
1287 (1269,1269),
1288 (1270,1270),
1289 (1271,1271),
1290 (1272,1272),
1291 (1273,1273),
1292 (1274,1274),
1293 (1275,1275),
1294 (1276,1276),
1295 (1277,1277),
1296 (1278,1278),
1297 (1279,1279),
1298 (1280,1280),
1299 (1281,1281),
1300 (1282,1282),
1301 (1283,1283),
1302 (1284,1284),
1303 (1285,1285),
1304 (1286,1286),
1305 (1287,1287),
1306 (1288,1288),
1307 (1289,1289),
1308 (1290,1290),
1309 (1291,1291),
1310 (1292,1292),
1311 (1293,1293),
1312 (1294,1294),
1313 (1295,1295),
1314 (1296,1296),
1315 (1297,1297),
1316 (1298,1298),
1317 (1299,1299),
1318 (1300,1300),
1319 (1316,1316),
1320 (1424,1424),
1321 (1425,1425),
1322 (1426,1426),
1323 (1427,1427),
1324 (1428,1428),
1325 (1429,1429),
1326 (1430,1430),
1327 (1431,1431),
1328 (1432,1432),
1329 (1433,1433),
1330 (1434,1434),
1331 (1435,1435),
1332 (1436,1436),
1333 (1437,1437),
1334 (1438,1438),
1335 (1439,1439),
1336 (1440,1440),
1337 (1441,1441),
1338 (1442,1442),
1339 (1443,1443),
1340 (1444,1444),
1341 (1445,1445),
1342 (1446,1446),
1343 (1447,1447),
1344 (1448,1448),
1345 (1449,1449),
1346 (1450,1450),
1347 (1451,1451),
1348 (1452,1452),
1349 (1453,1453),
1350 (1454,1454),
1351 (1455,1455),
1352 (1456,1456),
1353 (1457,1457),
1354 (1458,1458),
1355 (1459,1459),
1356 (1460,1460),
1357 (1461,1461),
1358 (1462,1462),
1359 (1463,1463),
1360 (1464,1464),
1361 (1465,1465),
1362 (1466,1466),
1363 (1469,1469),
1364 (1399,1399);
1365
1366 INSERT INTO `Config` (varname, varvalue, vartype, emptyok, is_hidden, is_userdefined, description) VALUES
1367 ('color_F','8fbfbf','string','no','yes','no','HSV: 180-25-75. Free atoms, they are available for allocation to objects.'),
1368 ('color_A','bfbfbf','string','no','yes','no','HSV: 0-0-75. Absent atoms.'),
1369 ('color_U','bf8f8f','string','no','yes','no','HSV: 0-25-75. Unusable atoms. Some problems keep them from being free.'),
1370 ('color_T','408080','string','no','yes','no','HSV: 180-50-50. Taken atoms, object_id should be set for such.'),
1371 ('color_Th','80ffff','string','no','yes','no','HSV: 180-50-100. Taken atoms with highlight. They are not stored in the database and are only used for highlighting.'),
1372 ('color_Tw','804040','string','no','yes','no','HSV: 0-50-50. Taken atoms with object problem. This is detected at runtime.'),
1373 ('color_Thw','ff8080','string','no','yes','no','HSV: 0-50-100. An object can be both current and problematic. We run highlightObject() first and markupObjectProblems() second.'),
1374 ('MASSCOUNT','8','uint','no','no','yes','&quot;Fast&quot; form is this many records tall'),
1375 ('MAXSELSIZE','30','uint','no','no','yes','&lt;SELECT&gt; lists height'),
1376 ('enterprise','MyCompanyName','string','no','no','no','Organization name'),
1377 ('ROW_SCALE','2','uint','no','no','yes','Picture scale for rack row display'),
1378 ('PORTS_PER_ROW','12','uint','no','no','yes','Ports per row in VLANs tab'),
1379 ('IPV4_ADDRS_PER_PAGE','256','uint','no','no','yes','IPv4 addresses per page'),
1380 ('DEFAULT_RACK_HEIGHT','42','uint','yes','no','yes','Default rack height'),
1381 ('DEFAULT_SLB_VS_PORT','','uint','yes','no','yes','Default port of SLB virtual service'),
1382 ('DEFAULT_SLB_RS_PORT','','uint','yes','no','yes','Default port of SLB real server'),
1383 ('DETECT_URLS','no','string','yes','no','yes','Detect URLs in text fields'),
1384 ('RACK_PRESELECT_THRESHOLD','1','uint','no','no','yes','Rack pre-selection threshold'),
1385 ('DEFAULT_IPV4_RS_INSERVICE','no','string','no','no','yes','Inservice status for new SLB real servers'),
1386 ('AUTOPORTS_CONFIG','4 = 1*33*kvm + 2*24*eth%u;15 = 1*446*kvm','string','yes','no','no','AutoPorts configuration'),
1387 ('DEFAULT_OBJECT_TYPE','4','uint','yes','no','yes','Default object type for new objects'),
1388 ('SHOW_EXPLICIT_TAGS','yes','string','no','no','yes','Show explicit tags'),
1389 ('SHOW_IMPLICIT_TAGS','yes','string','no','no','yes','Show implicit tags'),
1390 ('SHOW_AUTOMATIC_TAGS','no','string','no','no','yes','Show automatic tags'),
1391 ('IPV4_AUTO_RELEASE','1','uint','no','no','yes','Auto-release IPv4 addresses on allocation'),
1392 ('SHOW_LAST_TAB','no','string','yes','no','yes','Remember last tab shown for each page'),
1393 ('EXT_IPV4_VIEW','yes','string','no','no','yes','Extended IPv4 view'),
1394 ('TREE_THRESHOLD','25','uint','yes','no','yes','Tree view auto-collapse threshold'),
1395 ('IPV4_JAYWALK','no','string','no','no','no','Enable IPv4 address allocations w/o covering network'),
1396 ('ADDNEW_AT_TOP','yes','string','no','no','yes','Render "add new" line at top of the list'),
1397 ('IPV4_TREE_SHOW_USAGE','yes','string','no','no','yes','Show address usage in IPv4 tree'),
1398 ('PREVIEW_TEXT_MAXCHARS','10240','uint','yes','no','yes','Max chars for text file preview'),
1399 ('PREVIEW_TEXT_ROWS','25','uint','yes','no','yes','Rows for text file preview'),
1400 ('PREVIEW_TEXT_COLS','80','uint','yes','no','yes','Columns for text file preview'),
1401 ('PREVIEW_IMAGE_MAXPXS','320','uint','yes','no','yes','Max pixels per axis for image file preview'),
1402 ('VENDOR_SIEVE','','string','yes','no','yes','Vendor sieve configuration'),
1403 ('IPV4LB_LISTSRC','{\$typeid_4}','string','yes','no','no','List source: IPv4 load balancers'),
1404 ('IPV4OBJ_LISTSRC','{\$typeid_4} or {\$typeid_7} or {\$typeid_8} or {\$typeid_12} or {\$typeid_445} or {\$typeid_447} or {\$typeid_798} or {\$typeid_1397} or {\$typeid_1502} or {\$typeid_1503} or {\$typeid_1504} or {\$typeid_1507}','string','yes','no','no','List source: IPv4-enabled objects'),
1405 ('IPV4NAT_LISTSRC','{\$typeid_4} or {\$typeid_7} or {\$typeid_8} or {\$typeid_798}','string','yes','no','no','List source: IPv4 NAT performers'),
1406 ('ASSETWARN_LISTSRC','{\$typeid_4} or {\$typeid_7} or {\$typeid_8}','string','yes','no','no','List source: object, for which asset tag should be set'),
1407 ('NAMEWARN_LISTSRC','{\$typeid_4} or {\$typeid_7} or {\$typeid_8}','string','yes','no','no','List source: object, for which common name should be set'),
1408 ('RACKS_PER_ROW','12','uint','yes','no','yes','Racks per row'),
1409 ('FILTER_PREDICATE_SIEVE','','string','yes','no','no','Predicate sieve regex(7)'),
1410 ('FILTER_DEFAULT_ANDOR','or','string','no','no','no','Default list filter boolean operation (or/and)'),
1411 ('FILTER_SUGGEST_ANDOR','yes','string','no','no','no','Suggest and/or selector in list filter'),
1412 ('FILTER_SUGGEST_TAGS','yes','string','no','no','no','Suggest tags in list filter'),
1413 ('FILTER_SUGGEST_PREDICATES','yes','string','no','no','no','Suggest predicates in list filter'),
1414 ('FILTER_SUGGEST_EXTRA','no','string','no','no','no','Suggest extra expression in list filter'),
1415 ('DEFAULT_SNMP_COMMUNITY','public','string','no','no','no','Default SNMP Community string'),
1416 ('IPV4_ENABLE_KNIGHT','yes','string','no','no','no','Enable IPv4 knight feature'),
1417 ('TAGS_TOPLIST_SIZE','50','uint','yes','no','no','Tags top list size'),
1418 ('TAGS_QUICKLIST_SIZE','20','uint','no','no','no','Tags quick list size'),
1419 ('TAGS_QUICKLIST_THRESHOLD','50','uint','yes','no','no','Tags quick list threshold'),
1420 ('ENABLE_MULTIPORT_FORM','no','string','no','no','no','Enable "Add/update multiple ports" form'),
1421 ('DEFAULT_PORT_IIF_ID','1','uint','no','no','no','Default port inner interface ID'),
1422 ('DEFAULT_PORT_OIF_IDS','1=24; 3=1078; 4=1077; 5=1079; 6=1080; 8=1082; 9=1084','string','no','no','no','Default port outer interface IDs'),
1423 ('IPV4_TREE_RTR_AS_CELL','yes','string','no','no','no','Show full router info for each network in IPv4 tree view'),
1424 ('PROXIMITY_RANGE','0','uint','yes','no','yes','Proximity range (0 is current rack only)'),
1425 ('VLANSWITCH_LISTSRC', '', 'string', 'yes', 'no', 'yes', 'List of VLAN running switches'),
1426 ('VLANIPV4NET_LISTSRC', '', 'string', 'yes', 'no', 'yes', 'List of VLAN-based IPv4 networks'),
1427 ('IPV4_TREE_SHOW_VLAN','yes','string','no','no','yes','Show VLAN for each network in IPv4 tree'),
1428 ('DEFAULT_VDOM_ID','','uint','yes','no','yes','Default VLAN domain ID'),
1429 ('DEFAULT_VST_ID','','uint','yes','no','yes','Default VLAN switch template ID'),
1430 ('8021Q_DEPLOY_MINAGE','300','uint','no','no','no','802.1Q deploy minimum age'),
1431 ('8021Q_DEPLOY_MAXAGE','3600','uint','no','no','no','802.1Q deploy maximum age'),
1432 ('8021Q_DEPLOY_RETRY','10800','uint','no','no','no','802.1Q deploy retry timer'),
1433 ('8021Q_WRI_AFTER_CONFT_LISTSRC','false','string','no','no','no','802.1Q: save device configuration after deploy (RackCode)'),
1434 ('8021Q_INSTANT_DEPLOY','no','string','no','no','yes','802.1Q: instant deploy'),
1435 ('STATIC_FILTER','yes','string','no','no','yes','Enable Filter Caching'),
1436 ('ENABLE_BULKPORT_FORM','yes','string','no','no','yes','Enable "Bulk Port" form'),
1437 ('CDP_RUNNERS_LISTSRC', '', 'string', 'yes', 'no', 'no', 'List of devices running CDP'),
1438 ('LLDP_RUNNERS_LISTSRC', '', 'string', 'yes', 'no', 'no', 'List of devices running LLDP'),
1439 ('SHRINK_TAG_TREE_ON_CLICK','yes','string','no','no','yes','Dynamically hide useless tags in tagtree'),
1440 ('MAX_UNFILTERED_ENTITIES','0','uint','no','no','yes','Max item count to display on unfiltered result page'),
1441 ('SYNCDOMAIN_MAX_PROCESSES','0','uint','yes','no', 'no', 'How many worker proceses syncdomain cron script should create'),
1442 ('PORT_EXCLUSION_LISTSRC','{\$typeid_3} or {\$typeid_10} or {\$typeid_11} or {\$typeid_1505} or {\$typeid_1506}','string','yes','no','no','List source: objects without ports'),
1443 ('FILTER_RACKLIST_BY_TAGS','yes','string','yes','no','yes','Rackspace: show only racks matching the current object\'s tags'),
1444 ('SSH_OBJS_LISTSRC','none','string','yes','no','yes','Rackcode filter for SSH-managed objects'),
1445 ('TELNET_OBJS_LISTSRC','none','string','yes','no','yes','Rackcode filter for telnet-managed objects'),
1446 ('SYNC_802Q_LISTSRC','','string','yes','no','no','List of VLAN switches sync is enabled on'),
1447 ('QUICK_LINK_PAGES','','string','yes','no','yes','List of pages to dislay in quick links'),
1448 ('DB_VERSION','0.19.7','string','no','yes','no','Database version.');
1449
1450 INSERT INTO `Script` VALUES ('RackCode','allow {\$userid_1}');
1451
1452 INSERT INTO VLANValidID (vlan_id) VALUES
1453 (1),
1454 (2),
1455 (3),
1456 (4),
1457 (5),
1458 (6),
1459 (7),
1460 (8),
1461 (9),
1462 (10),
1463 (11),
1464 (12),
1465 (13),
1466 (14),
1467 (15),
1468 (16),
1469 (17),
1470 (18),
1471 (19),
1472 (20),
1473 (21),
1474 (22),
1475 (23),
1476 (24),
1477 (25),
1478 (26),
1479 (27),
1480 (28),
1481 (29),
1482 (30),
1483 (31),
1484 (32),
1485 (33),
1486 (34),
1487 (35),
1488 (36),
1489 (37),
1490 (38),
1491 (39),
1492 (40),
1493 (41),
1494 (42),
1495 (43),
1496 (44),
1497 (45),
1498 (46),
1499 (47),
1500 (48),
1501 (49),
1502 (50),
1503 (51),
1504 (52),
1505 (53),
1506 (54),
1507 (55),
1508 (56),
1509 (57),
1510 (58),
1511 (59),
1512 (60),
1513 (61),
1514 (62),
1515 (63),
1516 (64),
1517 (65),
1518 (66),
1519 (67),
1520 (68),
1521 (69),
1522 (70),
1523 (71),
1524 (72),
1525 (73),
1526 (74),
1527 (75),
1528 (76),
1529 (77),
1530 (78),
1531 (79),
1532 (80),
1533 (81),
1534 (82),
1535 (83),
1536 (84),
1537 (85),
1538 (86),
1539 (87),
1540 (88),
1541 (89),
1542 (90),
1543 (91),
1544 (92),
1545 (93),
1546 (94),
1547 (95),
1548 (96),
1549 (97),
1550 (98),
1551 (99),
1552 (100),
1553 (101),
1554 (102),
1555 (103),
1556 (104),
1557 (105),
1558 (106),
1559 (107),
1560 (108),
1561 (109),
1562 (110),
1563 (111),
1564 (112),
1565 (113),
1566 (114),
1567 (115),
1568 (116),
1569 (117),
1570 (118),
1571 (119),
1572 (120),
1573 (121),
1574 (122),
1575 (123),
1576 (124),
1577 (125),
1578 (126),
1579 (127),
1580 (128),
1581 (129),
1582 (130),
1583 (131),
1584 (132),
1585 (133),
1586 (134),
1587 (135),
1588 (136),
1589 (137),
1590 (138),
1591 (139),
1592 (140),
1593 (141),
1594 (142),
1595 (143),
1596 (144),
1597 (145),
1598 (146),
1599 (147),
1600 (148),
1601 (149),
1602 (150),
1603 (151),
1604 (152),
1605 (153),
1606 (154),
1607 (155),
1608 (156),
1609 (157),
1610 (158),
1611 (159),
1612 (160),
1613 (161),
1614 (162),
1615 (163),
1616 (164),
1617 (165),
1618 (166),
1619 (167),
1620 (168),
1621 (169),
1622 (170),
1623 (171),
1624 (172),
1625 (173),
1626 (174),
1627 (175),
1628 (176),
1629 (177),
1630 (178),
1631 (179),
1632 (180),
1633 (181),
1634 (182),
1635 (183),
1636 (184),
1637 (185),
1638 (186),
1639 (187),
1640 (188),
1641 (189),
1642 (190),
1643 (191),
1644 (192),
1645 (193),
1646 (194),
1647 (195),
1648 (196),
1649 (197),
1650 (198),
1651 (199),
1652 (200),
1653 (201),
1654 (202),
1655 (203),
1656 (204),
1657 (205),
1658 (206),
1659 (207),
1660 (208),
1661 (209),
1662 (210),
1663 (211),
1664 (212),
1665 (213),
1666 (214),
1667 (215),
1668 (216),
1669 (217),
1670 (218),
1671 (219),
1672 (220),
1673 (221),
1674 (222),
1675 (223),
1676 (224),
1677 (225),
1678 (226),
1679 (227),
1680 (228),
1681 (229),
1682 (230),
1683 (231),
1684 (232),
1685 (233),
1686 (234),
1687 (235),
1688 (236),
1689 (237),
1690 (238),
1691 (239),
1692 (240),
1693 (241),
1694 (242),
1695 (243),
1696 (244),
1697 (245),
1698 (246),
1699 (247),
1700 (248),
1701 (249),
1702 (250),
1703 (251),
1704 (252),
1705 (253),
1706 (254),
1707 (255),
1708 (256),
1709 (257),
1710 (258),
1711 (259),
1712 (260),
1713 (261),
1714 (262),
1715 (263),
1716 (264),
1717 (265),
1718 (266),
1719 (267),
1720 (268),
1721 (269),
1722 (270),
1723 (271),
1724 (272),
1725 (273),
1726 (274),
1727 (275),
1728 (276),
1729 (277),
1730 (278),
1731 (279),
1732 (280),
1733 (281),
1734 (282),
1735 (283),
1736 (284),
1737 (285),
1738 (286),
1739 (287),
1740 (288),
1741 (289),
1742 (290),
1743 (291),
1744 (292),
1745 (293),
1746 (294),
1747 (295),
1748 (296),
1749 (297),
1750 (298),
1751 (299),
1752 (300),
1753 (301),
1754 (302),
1755 (303),
1756 (304),
1757 (305),
1758 (306),
1759 (307),
1760 (308),
1761 (309),
1762 (310),
1763 (311),
1764 (312),
1765 (313),
1766 (314),
1767 (315),
1768 (316),
1769 (317),
1770 (318),
1771 (319),
1772 (320),
1773 (321),
1774 (322),
1775 (323),
1776 (324),
1777 (325),
1778 (326),
1779 (327),
1780 (328),
1781 (329),
1782 (330),
1783 (331),
1784 (332),
1785 (333),
1786 (334),
1787 (335),
1788 (336),
1789 (337),
1790 (338),
1791 (339),
1792 (340),
1793 (341),
1794 (342),
1795 (343),
1796 (344),
1797 (345),
1798 (346),
1799 (347),
1800 (348),
1801 (349),
1802 (350),
1803 (351),
1804 (352),
1805 (353),
1806 (354),
1807 (355),
1808 (356),
1809 (357),
1810 (358),
1811 (359),
1812 (360),
1813 (361),
1814 (362),
1815 (363),
1816 (364),
1817 (365),
1818 (366),
1819 (367),
1820 (368),
1821 (369),
1822 (370),
1823 (371),
1824 (372),
1825 (373),
1826 (374),
1827 (375),
1828 (376),
1829 (377),
1830 (378),
1831 (379),
1832 (380),
1833 (381),
1834 (382),
1835 (383),
1836 (384),
1837 (385),
1838 (386),
1839 (387),
1840 (388),
1841 (389),
1842 (390),
1843 (391),
1844 (392),
1845 (393),
1846 (394),
1847 (395),
1848 (396),
1849 (397),
1850 (398),
1851 (399),
1852 (400),
1853 (401),
1854 (402),
1855 (403),
1856 (404),
1857 (405),
1858 (406),
1859 (407),
1860 (408),
1861 (409),
1862 (410),
1863 (411),
1864 (412),
1865 (413),
1866 (414),
1867 (415),
1868 (416),
1869 (417),
1870 (418),
1871 (419),
1872 (420),
1873 (421),
1874 (422),
1875 (423),
1876 (424),
1877 (425),
1878 (426),
1879 (427),
1880 (428),
1881 (429),
1882 (430),
1883 (431),
1884 (432),
1885 (433),
1886 (434),
1887 (435),
1888 (436),
1889 (437),
1890 (438),
1891 (439),
1892 (440),
1893 (441),
1894 (442),
1895 (443),
1896 (444),
1897 (445),
1898 (446),
1899 (447),
1900 (448),
1901 (449),
1902 (450),
1903 (451),
1904 (452),
1905 (453),
1906 (454),
1907 (455),
1908 (456),
1909 (457),
1910 (458),
1911 (459),
1912 (460),
1913 (461),
1914 (462),
1915 (463),
1916 (464),
1917 (465),
1918 (466),
1919 (467),
1920 (468),
1921 (469),
1922 (470),
1923 (471),
1924 (472),
1925 (473),
1926 (474),
1927 (475),
1928 (476),
1929 (477),
1930 (478),
1931 (479),
1932 (480),
1933 (481),
1934 (482),
1935 (483),
1936 (484),
1937 (485),
1938 (486),
1939 (487),
1940 (488),
1941 (489),
1942 (490),
1943 (491),
1944 (492),
1945 (493),
1946 (494),
1947 (495),
1948 (496),
1949 (497),
1950 (498),
1951 (499),
1952 (500),
1953 (501),
1954 (502),
1955 (503),
1956 (504),
1957 (505),
1958 (506),
1959 (507),
1960 (508),
1961 (509),
1962 (510),
1963 (511),
1964 (512),
1965 (513),
1966 (514),
1967 (515),
1968 (516),
1969 (517),
1970 (518),
1971 (519),
1972 (520),
1973 (521),
1974 (522),
1975 (523),
1976 (524),
1977 (525),
1978 (526),
1979 (527),
1980 (528),
1981 (529),
1982 (530),
1983 (531),
1984 (532),
1985 (533),
1986 (534),
1987 (535),
1988 (536),
1989 (537),
1990 (538),
1991 (539),
1992 (540),
1993 (541),
1994 (542),
1995 (543),
1996 (544),
1997 (545),
1998 (546),
1999 (547),
2000 (548),
2001 (549),
2002 (550),
2003 (551),
2004 (552),
2005 (553),
2006 (554),
2007 (555),
2008 (556),
2009 (557),
2010 (558),
2011 (559),
2012 (560),
2013 (561),
2014 (562),
2015 (563),
2016 (564),
2017 (565),
2018 (566),
2019 (567),
2020 (568),
2021 (569),
2022 (570),
2023 (571),
2024 (572),
2025 (573),
2026 (574),
2027 (575),
2028 (576),
2029 (577),
2030 (578),
2031 (579),
2032 (580),
2033 (581),
2034 (582),
2035 (583),
2036 (584),
2037 (585),
2038 (586),
2039 (587),
2040 (588),
2041 (589),
2042 (590),
2043 (591),
2044 (592),
2045 (593),
2046 (594),
2047 (595),
2048 (596),
2049 (597),
2050 (598),
2051 (599),
2052 (600),
2053 (601),
2054 (602),
2055 (603),
2056 (604),
2057 (605),
2058 (606),
2059 (607),
2060 (608),
2061 (609),
2062 (610),
2063 (611),
2064 (612),
2065 (613),
2066 (614),
2067 (615),
2068 (616),
2069 (617),
2070 (618),
2071 (619),
2072 (620),
2073 (621),
2074 (622),
2075 (623),
2076 (624),
2077 (625),
2078 (626),
2079 (627),
2080 (628),
2081 (629),
2082 (630),
2083 (631),
2084 (632),
2085 (633),
2086 (634),
2087 (635),
2088 (636),
2089 (637),
2090 (638),
2091 (639),
2092 (640),
2093 (641),
2094 (642),
2095 (643),
2096 (644),
2097 (645),
2098 (646),
2099 (647),
2100 (648),
2101 (649),
2102 (650),
2103 (651),
2104 (652),
2105 (653),
2106 (654),
2107 (655),
2108 (656),
2109 (657),
2110 (658),
2111 (659),
2112 (660),
2113 (661),
2114 (662),
2115 (663),
2116 (664),
2117 (665),
2118 (666),
2119 (667),
2120 (668),
2121 (669),
2122 (670),
2123 (671),
2124 (672),
2125 (673),
2126 (674),
2127 (675),
2128 (676),
2129 (677),
2130 (678),
2131 (679),
2132 (680),
2133 (681),
2134 (682),
2135 (683),
2136 (684),
2137 (685),
2138 (686),
2139 (687),
2140 (688),
2141 (689),
2142 (690),
2143 (691),
2144 (692),
2145 (693),
2146 (694),
2147 (695),
2148 (696),
2149 (697),
2150 (698),
2151 (699),
2152 (700),
2153 (701),
2154 (702),
2155 (703),
2156 (704),
2157 (705),
2158 (706),
2159 (707),
2160 (708),
2161 (709),
2162 (710),
2163 (711),
2164 (712),
2165 (713),
2166 (714),
2167 (715),
2168 (716),
2169 (717),
2170 (718),
2171 (719),
2172 (720),
2173 (721),
2174 (722),
2175 (723),
2176 (724),
2177 (725),
2178 (726),
2179 (727),
2180 (728),
2181 (729),
2182 (730),
2183 (731),
2184 (732),
2185 (733),
2186 (734),
2187 (735),
2188 (736),
2189 (737),
2190 (738),
2191 (739),
2192 (740),
2193 (741),
2194 (742),
2195 (743),
2196 (744),
2197 (745),
2198 (746),
2199 (747),
2200 (748),
2201 (749),
2202 (750),
2203 (751),
2204 (752),
2205 (753),
2206 (754),
2207 (755),
2208 (756),
2209 (757),
2210 (758),
2211 (759),
2212 (760),
2213 (761),
2214 (762),
2215 (763),
2216 (764),
2217 (765),
2218 (766),
2219 (767),
2220 (768),
2221 (769),
2222 (770),
2223 (771),
2224 (772),
2225 (773),
2226 (774),
2227 (775),
2228 (776),
2229 (777),
2230 (778),
2231 (779),
2232 (780),
2233 (781),
2234 (782),
2235 (783),
2236 (784),
2237 (785),
2238 (786),
2239 (787),
2240 (788),
2241 (789),
2242 (790),
2243 (791),
2244 (792),
2245 (793),
2246 (794),
2247 (795),
2248 (796),
2249 (797),
2250 (798),
2251 (799),
2252 (800),
2253 (801),
2254 (802),
2255 (803),
2256 (804),
2257 (805),
2258 (806),
2259 (807),
2260 (808),
2261 (809),
2262 (810),
2263 (811),
2264 (812),
2265 (813),
2266 (814),
2267 (815),
2268 (816),
2269 (817),
2270 (818),
2271 (819),
2272 (820),
2273 (821),
2274 (822),
2275 (823),
2276 (824),
2277 (825),
2278 (826),
2279 (827),
2280 (828),
2281 (829),
2282 (830),
2283 (831),
2284 (832),
2285 (833),
2286 (834),
2287 (835),
2288 (836),
2289 (837),
2290 (838),
2291 (839),
2292 (840),
2293 (841),
2294 (842),
2295 (843),
2296 (844),
2297 (845),
2298 (846),
2299 (847),
2300 (848),
2301 (849),
2302 (850),
2303 (851),
2304 (852),
2305 (853),
2306 (854),
2307 (855),
2308 (856),
2309 (857),
2310 (858),
2311 (859),
2312 (860),
2313 (861),
2314 (862),
2315 (863),
2316 (864),
2317 (865),
2318 (866),
2319 (867),
2320 (868),
2321 (869),
2322 (870),
2323 (871),
2324 (872),
2325 (873),
2326 (874),
2327 (875),
2328 (876),
2329 (877),
2330 (878),
2331 (879),
2332 (880),
2333 (881),
2334 (882),
2335 (883),
2336 (884),
2337 (885),
2338 (886),
2339 (887),
2340 (888),
2341 (889),
2342 (890),
2343 (891),
2344 (892),
2345 (893),
2346 (894),
2347 (895),
2348 (896),
2349 (897),
2350 (898),
2351 (899),
2352 (900),
2353 (901),
2354 (902),
2355 (903),
2356 (904),
2357 (905),
2358 (906),
2359 (907),
2360 (908),
2361 (909),
2362 (910),
2363 (911),
2364 (912),
2365 (913),
2366 (914),
2367 (915),
2368 (916),
2369 (917),
2370 (918),
2371 (919),
2372 (920),
2373 (921),
2374 (922),
2375 (923),
2376 (924),
2377 (925),
2378 (926),
2379 (927),
2380 (928),
2381 (929),
2382 (930),
2383 (931),
2384 (932),
2385 (933),
2386 (934),
2387 (935),
2388 (936),
2389 (937),
2390 (938),
2391 (939),
2392 (940),
2393 (941),
2394 (942),
2395 (943),
2396 (944),
2397 (945),
2398 (946),
2399 (947),
2400 (948),
2401 (949),
2402 (950),
2403 (951),
2404 (952),
2405 (953),
2406 (954),
2407 (955),
2408 (956),
2409 (957),
2410 (958),
2411 (959),
2412 (960),
2413 (961),
2414 (962),
2415 (963),
2416 (964),
2417 (965),
2418 (966),
2419 (967),
2420 (968),
2421 (969),
2422 (970),
2423 (971),
2424 (972),
2425 (973),
2426 (974),
2427 (975),
2428 (976),
2429 (977),
2430 (978),
2431 (979),
2432 (980),
2433 (981),
2434 (982),
2435 (983),
2436 (984),
2437 (985),
2438 (986),
2439 (987),
2440 (988),
2441 (989),
2442 (990),
2443 (991),
2444 (992),
2445 (993),
2446 (994),
2447 (995),
2448 (996),
2449 (997),
2450 (998),
2451 (999),
2452 (1000),
2453 (1001),
2454 (1002),
2455 (1003),
2456 (1004),
2457 (1005),
2458 (1006),
2459 (1007),
2460 (1008),
2461 (1009),
2462 (1010),
2463 (1011),
2464 (1012),
2465 (1013),
2466 (1014),
2467 (1015),
2468 (1016),
2469 (1017),
2470 (1018),
2471 (1019),
2472 (1020),
2473 (1021),
2474 (1022),
2475 (1023),
2476 (1024),
2477 (1025),
2478 (1026),
2479 (1027),
2480 (1028),
2481 (1029),
2482 (1030),
2483 (1031),
2484 (1032),
2485 (1033),
2486 (1034),
2487 (1035),
2488 (1036),
2489 (1037),
2490 (1038),
2491 (1039),
2492 (1040),
2493 (1041),
2494 (1042),
2495 (1043),
2496 (1044),
2497 (1045),
2498 (1046),
2499 (1047),
2500 (1048),
2501 (1049),
2502 (1050),
2503 (1051),
2504 (1052),
2505 (1053),
2506 (1054),
2507 (1055),
2508 (1056),
2509 (1057),
2510 (1058),
2511 (1059),
2512 (1060),
2513 (1061),
2514 (1062),
2515 (1063),
2516 (1064),
2517 (1065),
2518 (1066),
2519 (1067),
2520 (1068),
2521 (1069),
2522 (1070),
2523 (1071),
2524 (1072),
2525 (1073),
2526 (1074),
2527 (1075),
2528 (1076),
2529 (1077),
2530 (1078),
2531 (1079),
2532 (1080),
2533 (1081),
2534 (1082),
2535 (1083),
2536 (1084),
2537 (1085),
2538 (1086),
2539 (1087),
2540 (1088),
2541 (1089),
2542 (1090),
2543 (1091),
2544 (1092),
2545 (1093),
2546 (1094),
2547 (1095),
2548 (1096),
2549 (1097),
2550 (1098),
2551 (1099),
2552 (1100),
2553 (1101),
2554 (1102),
2555 (1103),
2556 (1104),
2557 (1105),
2558 (1106),
2559 (1107),
2560 (1108),
2561 (1109),
2562 (1110),
2563 (1111),
2564 (1112),
2565 (1113),
2566 (1114),
2567 (1115),
2568 (1116),
2569 (1117),
2570 (1118),
2571 (1119),
2572 (1120),
2573 (1121),
2574 (1122),
2575 (1123),
2576 (1124),
2577 (1125),
2578 (1126),
2579 (1127),
2580 (1128),
2581 (1129),
2582 (1130),
2583 (1131),
2584 (1132),
2585 (1133),
2586 (1134),
2587 (1135),
2588 (1136),
2589 (1137),
2590 (1138),
2591 (1139),
2592 (1140),
2593 (1141),
2594 (1142),
2595 (1143),
2596 (1144),
2597 (1145),
2598 (1146),
2599 (1147),
2600 (1148),
2601 (1149),
2602 (1150),
2603 (1151),
2604 (1152),
2605 (1153),
2606 (1154),
2607 (1155),
2608 (1156),
2609 (1157),
2610 (1158),
2611 (1159),
2612 (1160),
2613 (1161),
2614 (1162),
2615 (1163),
2616 (1164),
2617 (1165),
2618 (1166),
2619 (1167),
2620 (1168),
2621 (1169),
2622 (1170),
2623 (1171),
2624 (1172),
2625 (1173),
2626 (1174),
2627 (1175),
2628 (1176),
2629 (1177),
2630 (1178),
2631 (1179),
2632 (1180),
2633 (1181),
2634 (1182),
2635 (1183),
2636 (1184),
2637 (1185),
2638 (1186),
2639 (1187),
2640 (1188),
2641 (1189),
2642 (1190),
2643 (1191),
2644 (1192),
2645 (1193),
2646 (1194),
2647 (1195),
2648 (1196),
2649 (1197),
2650 (1198),
2651 (1199),
2652 (1200),
2653 (1201),
2654 (1202),
2655 (1203),
2656 (1204),
2657 (1205),
2658 (1206),
2659 (1207),
2660 (1208),
2661 (1209),
2662 (1210),
2663 (1211),
2664 (1212),
2665 (1213),
2666 (1214),
2667 (1215),
2668 (1216),
2669 (1217),
2670 (1218),
2671 (1219),
2672 (1220),
2673 (1221),
2674 (1222),
2675 (1223),
2676 (1224),
2677 (1225),
2678 (1226),
2679 (1227),
2680 (1228),
2681 (1229),
2682 (1230),
2683 (1231),
2684 (1232),
2685 (1233),
2686 (1234),
2687 (1235),
2688 (1236),
2689 (1237),
2690 (1238),
2691 (1239),
2692 (1240),
2693 (1241),
2694 (1242),
2695 (1243),
2696 (1244),
2697 (1245),
2698 (1246),
2699 (1247),
2700 (1248),
2701 (1249),
2702 (1250),
2703 (1251),
2704 (1252),
2705 (1253),
2706 (1254),
2707 (1255),
2708 (1256),
2709 (1257),
2710 (1258),
2711 (1259),
2712 (1260),
2713 (1261),
2714 (1262),
2715 (1263),
2716 (1264),
2717 (1265),
2718 (1266),
2719 (1267),
2720 (1268),
2721 (1269),
2722 (1270),
2723 (1271),
2724 (1272),
2725 (1273),
2726 (1274),
2727 (1275),
2728 (1276),
2729 (1277),
2730 (1278),
2731 (1279),
2732 (1280),
2733 (1281),
2734 (1282),
2735 (1283),
2736 (1284),
2737 (1285),
2738 (1286),
2739 (1287),
2740 (1288),
2741 (1289),
2742 (1290),
2743 (1291),
2744 (1292),
2745 (1293),
2746 (1294),
2747 (1295),
2748 (1296),
2749 (1297),
2750 (1298),
2751 (1299),
2752 (1300),
2753 (1301),
2754 (1302),
2755 (1303),
2756 (1304),
2757 (1305),
2758 (1306),
2759 (1307),
2760 (1308),
2761 (1309),
2762 (1310),
2763 (1311),
2764 (1312),
2765 (1313),
2766 (1314),
2767 (1315),
2768 (1316),
2769 (1317),
2770 (1318),
2771 (1319),
2772 (1320),
2773 (1321),
2774 (1322),
2775 (1323),
2776 (1324),
2777 (1325),
2778 (1326),
2779 (1327),
2780 (1328),
2781 (1329),
2782 (1330),
2783 (1331),
2784 (1332),
2785 (1333),
2786 (1334),
2787 (1335),
2788 (1336),
2789 (1337),
2790 (1338),
2791 (1339),
2792 (1340),
2793 (1341),
2794 (1342),
2795 (1343),
2796 (1344),
2797 (1345),
2798 (1346),
2799 (1347),
2800 (1348),
2801 (1349),
2802 (1350),
2803 (1351),
2804 (1352),
2805 (1353),
2806 (1354),
2807 (1355),
2808 (1356),
2809 (1357),
2810 (1358),
2811 (1359),
2812 (1360),
2813 (1361),
2814 (1362),
2815 (1363),
2816 (1364),
2817 (1365),
2818 (1366),
2819 (1367),
2820 (1368),
2821 (1369),
2822 (1370),
2823 (1371),
2824 (1372),
2825 (1373),
2826 (1374),
2827 (1375),
2828 (1376),
2829 (1377),
2830 (1378),
2831 (1379),
2832 (1380),
2833 (1381),
2834 (1382),
2835 (1383),
2836 (1384),
2837 (1385),
2838 (1386),
2839 (1387),
2840 (1388),
2841 (1389),
2842 (1390),
2843 (1391),
2844 (1392),
2845 (1393),
2846 (1394),
2847 (1395),
2848 (1396),
2849 (1397),
2850 (1398),
2851 (1399),
2852 (1400),
2853 (1401),
2854 (1402),
2855 (1403),
2856 (1404),
2857 (1405),
2858 (1406),
2859 (1407),
2860 (1408),
2861 (1409),
2862 (1410),
2863 (1411),
2864 (1412),
2865 (1413),
2866 (1414),
2867 (1415),
2868 (1416),
2869 (1417),
2870 (1418),
2871 (1419),
2872 (1420),
2873 (1421),
2874 (1422),
2875 (1423),
2876 (1424),
2877 (1425),
2878 (1426),
2879 (1427),
2880 (1428),
2881 (1429),
2882 (1430),
2883 (1431),
2884 (1432),
2885 (1433),
2886 (1434),
2887 (1435),
2888 (1436),
2889 (1437),
2890 (1438),
2891 (1439),
2892 (1440),
2893 (1441),
2894 (1442),
2895 (1443),
2896 (1444),
2897 (1445),
2898 (1446),
2899 (1447),
2900 (1448),
2901 (1449),
2902 (1450),
2903 (1451),
2904 (1452),
2905 (1453),
2906 (1454),
2907 (1455),
2908 (1456),
2909 (1457),
2910 (1458),
2911 (1459),
2912 (1460),
2913 (1461),
2914 (1462),
2915 (1463),
2916 (1464),
2917 (1465),
2918 (1466),
2919 (1467),
2920 (1468),
2921 (1469),
2922 (1470),
2923 (1471),
2924 (1472),
2925 (1473),
2926 (1474),
2927 (1475),
2928 (1476),
2929 (1477),
2930 (1478),
2931 (1479),
2932 (1480),
2933 (1481),
2934 (1482),
2935 (1483),
2936 (1484),
2937 (1485),
2938 (1486),
2939 (1487),
2940 (1488),
2941 (1489),
2942 (1490),
2943 (1491),
2944 (1492),
2945 (1493),
2946 (1494),
2947 (1495),
2948 (1496),
2949 (1497),
2950 (1498),
2951 (1499),
2952 (1500),
2953 (1501),
2954 (1502),
2955 (1503),
2956 (1504),
2957 (1505),
2958 (1506),
2959 (1507),
2960 (1508),
2961 (1509),
2962 (1510),
2963 (1511),
2964 (1512),
2965 (1513),
2966 (1514),
2967 (1515),
2968 (1516),
2969 (1517),
2970 (1518),
2971 (1519),
2972 (1520),
2973 (1521),
2974 (1522),
2975 (1523),
2976 (1524),
2977 (1525),
2978 (1526),
2979 (1527),
2980 (1528),
2981 (1529),
2982 (1530),
2983 (1531),
2984 (1532),
2985 (1533),
2986 (1534),
2987 (1535),
2988 (1536),
2989 (1537),
2990 (1538),
2991 (1539),
2992 (1540),
2993 (1541),
2994 (1542),
2995 (1543),
2996 (1544),
2997 (1545),
2998 (1546),
2999 (1547),
3000 (1548),
3001 (1549),
3002 (1550),
3003 (1551),
3004 (1552),
3005 (1553),
3006 (1554),
3007 (1555),
3008 (1556),
3009 (1557),
3010 (1558),
3011 (1559),
3012 (1560),
3013 (1561),
3014 (1562),
3015 (1563),
3016 (1564),
3017 (1565),
3018 (1566),
3019 (1567),
3020 (1568),
3021 (1569),
3022 (1570),
3023 (1571),
3024 (1572),
3025 (1573),
3026 (1574),
3027 (1575),
3028 (1576),
3029 (1577),
3030 (1578),
3031 (1579),
3032 (1580),
3033 (1581),
3034 (1582),
3035 (1583),
3036 (1584),
3037 (1585),
3038 (1586),
3039 (1587),
3040 (1588),
3041 (1589),
3042 (1590),
3043 (1591),
3044 (1592),
3045 (1593),
3046 (1594),
3047 (1595),
3048 (1596),
3049 (1597),
3050 (1598),
3051 (1599),
3052 (1600),
3053 (1601),
3054 (1602),
3055 (1603),
3056 (1604),
3057 (1605),
3058 (1606),
3059 (1607),
3060 (1608),
3061 (1609),
3062 (1610),
3063 (1611),
3064 (1612),
3065 (1613),
3066 (1614),
3067 (1615),
3068 (1616),
3069 (1617),
3070 (1618),
3071 (1619),
3072 (1620),
3073 (1621),
3074 (1622),
3075 (1623),
3076 (1624),
3077 (1625),
3078 (1626),
3079 (1627),
3080 (1628),
3081 (1629),
3082 (1630),
3083 (1631),
3084 (1632),
3085 (1633),
3086 (1634),
3087 (1635),
3088 (1636),
3089 (1637),
3090 (1638),
3091 (1639),
3092 (1640),
3093 (1641),
3094 (1642),
3095 (1643),
3096 (1644),
3097 (1645),
3098 (1646),
3099 (1647),
3100 (1648),
3101 (1649),
3102 (1650),
3103 (1651),
3104 (1652),
3105 (1653),
3106 (1654),
3107 (1655),
3108 (1656),
3109 (1657),
3110 (1658),
3111 (1659),
3112 (1660),
3113 (1661),
3114 (1662),
3115 (1663),
3116 (1664),
3117 (1665),
3118 (1666),
3119 (1667),
3120 (1668),
3121 (1669),
3122 (1670),
3123 (1671),
3124 (1672),
3125 (1673),
3126 (1674),
3127 (1675),
3128 (1676),
3129 (1677),
3130 (1678),
3131 (1679),
3132 (1680),
3133 (1681),
3134 (1682),
3135 (1683),
3136 (1684),
3137 (1685),
3138 (1686),
3139 (1687),
3140 (1688),
3141 (1689),
3142 (1690),
3143 (1691),
3144 (1692),
3145 (1693),
3146 (1694),
3147 (1695),
3148 (1696),
3149 (1697),
3150 (1698),
3151 (1699),
3152 (1700),
3153 (1701),
3154 (1702),
3155 (1703),
3156 (1704),
3157 (1705),
3158 (1706),
3159 (1707),
3160 (1708),
3161 (1709),
3162 (1710),
3163 (1711),
3164 (1712),
3165 (1713),
3166 (1714),
3167 (1715),
3168 (1716),
3169 (1717),
3170 (1718),
3171 (1719),
3172 (1720),
3173 (1721),
3174 (1722),
3175 (1723),
3176 (1724),
3177 (1725),
3178 (1726),
3179 (1727),
3180 (1728),
3181 (1729),
3182 (1730),
3183 (1731),
3184 (1732),
3185 (1733),
3186 (1734),
3187 (1735),
3188 (1736),
3189 (1737),
3190 (1738),
3191 (1739),
3192 (1740),
3193 (1741),
3194 (1742),
3195 (1743),
3196 (1744),
3197 (1745),
3198 (1746),
3199 (1747),
3200 (1748),
3201 (1749),
3202 (1750),
3203 (1751),
3204 (1752),
3205 (1753),
3206 (1754),
3207 (1755),
3208 (1756),
3209 (1757),
3210 (1758),
3211 (1759),
3212 (1760),
3213 (1761),
3214 (1762),
3215 (1763),
3216 (1764),
3217 (1765),
3218 (1766),
3219 (1767),
3220 (1768),
3221 (1769),
3222 (1770),
3223 (1771),
3224 (1772),
3225 (1773),
3226 (1774),
3227 (1775),
3228 (1776),
3229 (1777),
3230 (1778),
3231 (1779),
3232 (1780),
3233 (1781),
3234 (1782),
3235 (1783),
3236 (1784),
3237 (1785),
3238 (1786),
3239 (1787),
3240 (1788),
3241 (1789),
3242 (1790),
3243 (1791),
3244 (1792),
3245 (1793),
3246 (1794),
3247 (1795),
3248 (1796),
3249 (1797),
3250 (1798),
3251 (1799),
3252 (1800),
3253 (1801),
3254 (1802),
3255 (1803),
3256 (1804),
3257 (1805),
3258 (1806),
3259 (1807),
3260 (1808),
3261 (1809),
3262 (1810),
3263 (1811),
3264 (1812),
3265 (1813),
3266 (1814),
3267 (1815),
3268 (1816),
3269 (1817),
3270 (1818),
3271 (1819),
3272 (1820),
3273 (1821),
3274 (1822),
3275 (1823),
3276 (1824),
3277 (1825),
3278 (1826),
3279 (1827),
3280 (1828),
3281 (1829),
3282 (1830),
3283 (1831),
3284 (1832),
3285 (1833),
3286 (1834),
3287 (1835),
3288 (1836),
3289 (1837),
3290 (1838),
3291 (1839),
3292 (1840),
3293 (1841),
3294 (1842),
3295 (1843),
3296 (1844),
3297 (1845),
3298 (1846),
3299 (1847),
3300 (1848),
3301 (1849),
3302 (1850),
3303 (1851),
3304 (1852),
3305 (1853),
3306 (1854),
3307 (1855),
3308 (1856),
3309 (1857),
3310 (1858),
3311 (1859),
3312 (1860),
3313 (1861),
3314 (1862),
3315 (1863),
3316 (1864),
3317 (1865),
3318 (1866),
3319 (1867),
3320 (1868),
3321 (1869),
3322 (1870),
3323 (1871),
3324 (1872),
3325 (1873),
3326 (1874),
3327 (1875),
3328 (1876),
3329 (1877),
3330 (1878),
3331 (1879),
3332 (1880),
3333 (1881),
3334 (1882),
3335 (1883),
3336 (1884),
3337 (1885),
3338 (1886),
3339 (1887),
3340 (1888),
3341 (1889),
3342 (1890),
3343 (1891),
3344 (1892),
3345 (1893),
3346 (1894),
3347 (1895),
3348 (1896),
3349 (1897),
3350 (1898),
3351 (1899),
3352 (1900),
3353 (1901),
3354 (1902),
3355 (1903),
3356 (1904),
3357 (1905),
3358 (1906),
3359 (1907),
3360 (1908),
3361 (1909),
3362 (1910),
3363 (1911),
3364 (1912),
3365 (1913),
3366 (1914),
3367 (1915),
3368 (1916),
3369 (1917),
3370 (1918),
3371 (1919),
3372 (1920),
3373 (1921),
3374 (1922),
3375 (1923),
3376 (1924),
3377 (1925),
3378 (1926),
3379 (1927),
3380 (1928),
3381 (1929),
3382 (1930),
3383 (1931),
3384 (1932),
3385 (1933),
3386 (1934),
3387 (1935),
3388 (1936),
3389 (1937),
3390 (1938),
3391 (1939),
3392 (1940),
3393 (1941),
3394 (1942),
3395 (1943),
3396 (1944),
3397 (1945),
3398 (1946),
3399 (1947),
3400 (1948),
3401 (1949),
3402 (1950),
3403 (1951),
3404 (1952),
3405 (1953),
3406 (1954),
3407 (1955),
3408 (1956),
3409 (1957),
3410 (1958),
3411 (1959),
3412 (1960),
3413 (1961),
3414 (1962),
3415 (1963),
3416 (1964),
3417 (1965),
3418 (1966),
3419 (1967),
3420 (1968),
3421 (1969),
3422 (1970),
3423 (1971),
3424 (1972),
3425 (1973),
3426 (1974),
3427 (1975),
3428 (1976),
3429 (1977),
3430 (1978),
3431 (1979),
3432 (1980),
3433 (1981),
3434 (1982),
3435 (1983),
3436 (1984),
3437 (1985),
3438 (1986),
3439 (1987),
3440 (1988),
3441 (1989),
3442 (1990),
3443 (1991),
3444 (1992),
3445 (1993),
3446 (1994),
3447 (1995),
3448 (1996),
3449 (1997),
3450 (1998),
3451 (1999),
3452 (2000),
3453 (2001),
3454 (2002),
3455 (2003),
3456 (2004),
3457 (2005),
3458 (2006),
3459 (2007),
3460 (2008),
3461 (2009),
3462 (2010),
3463 (2011),
3464 (2012),
3465 (2013),
3466 (2014),
3467 (2015),
3468 (2016),
3469 (2017),
3470 (2018),
3471 (2019),
3472 (2020),
3473 (2021),
3474 (2022),
3475 (2023),
3476 (2024),
3477 (2025),
3478 (2026),
3479 (2027),
3480 (2028),
3481 (2029),
3482 (2030),
3483 (2031),
3484 (2032),
3485 (2033),
3486 (2034),
3487 (2035),
3488 (2036),
3489 (2037),
3490 (2038),
3491 (2039),
3492 (2040),
3493 (2041),
3494 (2042),
3495 (2043),
3496 (2044),
3497 (2045),
3498 (2046),
3499 (2047),
3500 (2048),
3501 (2049),
3502 (2050),
3503 (2051),
3504 (2052),
3505 (2053),
3506 (2054),
3507 (2055),
3508 (2056),
3509 (2057),
3510 (2058),
3511 (2059),
3512 (2060),
3513 (2061),
3514 (2062),
3515 (2063),
3516 (2064),
3517 (2065),
3518 (2066),
3519 (2067),
3520 (2068),
3521 (2069),
3522 (2070),
3523 (2071),
3524 (2072),
3525 (2073),
3526 (2074),
3527 (2075),
3528 (2076),
3529 (2077),
3530 (2078),
3531 (2079),
3532 (2080),
3533 (2081),
3534 (2082),
3535 (2083),
3536 (2084),
3537 (2085),
3538 (2086),
3539 (2087),
3540 (2088),
3541 (2089),
3542 (2090),
3543 (2091),
3544 (2092),
3545 (2093),
3546 (2094),
3547 (2095),
3548 (2096),
3549 (2097),
3550 (2098),
3551 (2099),
3552 (2100),
3553 (2101),
3554 (2102),
3555 (2103),
3556 (2104),
3557 (2105),
3558 (2106),
3559 (2107),
3560 (2108),
3561 (2109),
3562 (2110),
3563 (2111),
3564 (2112),
3565 (2113),
3566 (2114),
3567 (2115),
3568 (2116),
3569 (2117),
3570 (2118),
3571 (2119),
3572 (2120),
3573 (2121),
3574 (2122),
3575 (2123),
3576 (2124),
3577 (2125),
3578 (2126),
3579 (2127),
3580 (2128),
3581 (2129),
3582 (2130),
3583 (2131),
3584 (2132),
3585 (2133),
3586 (2134),
3587 (2135),
3588 (2136),
3589 (2137),
3590 (2138),
3591 (2139),
3592 (2140),
3593 (2141),
3594 (2142),
3595 (2143),
3596 (2144),
3597 (2145),
3598 (2146),
3599 (2147),
3600 (2148),
3601 (2149),
3602 (2150),
3603 (2151),
3604 (2152),
3605 (2153),
3606 (2154),
3607 (2155),
3608 (2156),
3609 (2157),
3610 (2158),
3611 (2159),
3612 (2160),
3613 (2161),
3614 (2162),
3615 (2163),
3616 (2164),
3617 (2165),
3618 (2166),
3619 (2167),
3620 (2168),
3621 (2169),
3622 (2170),
3623 (2171),
3624 (2172),
3625 (2173),
3626 (2174),
3627 (2175),
3628 (2176),
3629 (2177),
3630 (2178),
3631 (2179),
3632 (2180),
3633 (2181),
3634 (2182),
3635 (2183),
3636 (2184),
3637 (2185),
3638 (2186),
3639 (2187),
3640 (2188),
3641 (2189),
3642 (2190),
3643 (2191),
3644 (2192),
3645 (2193),
3646 (2194),
3647 (2195),
3648 (2196),
3649 (2197),
3650 (2198),
3651 (2199),
3652 (2200),
3653 (2201),
3654 (2202),
3655 (2203),
3656 (2204),
3657 (2205),
3658 (2206),
3659 (2207),
3660 (2208),
3661 (2209),
3662 (2210),
3663 (2211),
3664 (2212),
3665 (2213),
3666 (2214),
3667 (2215),
3668 (2216),
3669 (2217),
3670 (2218),
3671 (2219),
3672 (2220),
3673 (2221),
3674 (2222),
3675 (2223),
3676 (2224),
3677 (2225),
3678 (2226),
3679 (2227),
3680 (2228),
3681 (2229),
3682 (2230),
3683 (2231),
3684 (2232),
3685 (2233),
3686 (2234),
3687 (2235),
3688 (2236),
3689 (2237),
3690 (2238),
3691 (2239),
3692 (2240),
3693 (2241),
3694 (2242),
3695 (2243),
3696 (2244),
3697 (2245),
3698 (2246),
3699 (2247),
3700 (2248),
3701 (2249),
3702 (2250),
3703 (2251),
3704 (2252),
3705 (2253),
3706 (2254),
3707 (2255),
3708 (2256),
3709 (2257),
3710 (2258),
3711 (2259),
3712 (2260),
3713 (2261),
3714 (2262),
3715 (2263),
3716 (2264),
3717 (2265),
3718 (2266),
3719 (2267),
3720 (2268),
3721 (2269),
3722 (2270),
3723 (2271),
3724 (2272),
3725 (2273),
3726 (2274),
3727 (2275),
3728 (2276),
3729 (2277),
3730 (2278),
3731 (2279),
3732 (2280),
3733 (2281),
3734 (2282),
3735 (2283),
3736 (2284),
3737 (2285),
3738 (2286),
3739 (2287),
3740 (2288),
3741 (2289),
3742 (2290),
3743 (2291),
3744 (2292),
3745 (2293),
3746 (2294),
3747 (2295),
3748 (2296),
3749 (2297),
3750 (2298),
3751 (2299),
3752 (2300),
3753 (2301),
3754 (2302),
3755 (2303),
3756 (2304),
3757 (2305),
3758 (2306),
3759 (2307),
3760 (2308),
3761 (2309),
3762 (2310),
3763 (2311),
3764 (2312),
3765 (2313),
3766 (2314),
3767 (2315),
3768 (2316),
3769 (2317),
3770 (2318),
3771 (2319),
3772 (2320),
3773 (2321),
3774 (2322),
3775 (2323),
3776 (2324),
3777 (2325),
3778 (2326),
3779 (2327),
3780 (2328),
3781 (2329),
3782 (2330),
3783 (2331),
3784 (2332),
3785 (2333),
3786 (2334),
3787 (2335),
3788 (2336),
3789 (2337),
3790 (2338),
3791 (2339),
3792 (2340),
3793 (2341),
3794 (2342),
3795 (2343),
3796 (2344),
3797 (2345),
3798 (2346),
3799 (2347),
3800 (2348),
3801 (2349),
3802 (2350),
3803 (2351),
3804 (2352),
3805 (2353),
3806 (2354),
3807 (2355),
3808 (2356),
3809 (2357),
3810 (2358),
3811 (2359),
3812 (2360),
3813 (2361),
3814 (2362),
3815 (2363),
3816 (2364),
3817 (2365),
3818 (2366),
3819 (2367),
3820 (2368),
3821 (2369),
3822 (2370),
3823 (2371),
3824 (2372),
3825 (2373),
3826 (2374),
3827 (2375),
3828 (2376),
3829 (2377),
3830 (2378),
3831 (2379),
3832 (2380),
3833 (2381),
3834 (2382),
3835 (2383),
3836 (2384),
3837 (2385),
3838 (2386),
3839 (2387),
3840 (2388),
3841 (2389),
3842 (2390),
3843 (2391),
3844 (2392),
3845 (2393),
3846 (2394),
3847 (2395),
3848 (2396),
3849 (2397),
3850 (2398),
3851 (2399),
3852 (2400),
3853 (2401),
3854 (2402),
3855 (2403),
3856 (2404),
3857 (2405),
3858 (2406),
3859 (2407),
3860 (2408),
3861 (2409),
3862 (2410),
3863 (2411),
3864 (2412),
3865 (2413),
3866 (2414),
3867 (2415),
3868 (2416),
3869 (2417),
3870 (2418),
3871 (2419),
3872 (2420),
3873 (2421),
3874 (2422),
3875 (2423),
3876 (2424),
3877 (2425),
3878 (2426),
3879 (2427),
3880 (2428),
3881 (2429),
3882 (2430),
3883 (2431),
3884 (2432),
3885 (2433),
3886 (2434),
3887 (2435),
3888 (2436),
3889 (2437),
3890 (2438),
3891 (2439),
3892 (2440),
3893 (2441),
3894 (2442),
3895 (2443),
3896 (2444),
3897 (2445),
3898 (2446),
3899 (2447),
3900 (2448),
3901 (2449),
3902 (2450),
3903 (2451),
3904 (2452),
3905 (2453),
3906 (2454),
3907 (2455),
3908 (2456),
3909 (2457),
3910 (2458),
3911 (2459),
3912 (2460),
3913 (2461),
3914 (2462),
3915 (2463),
3916 (2464),
3917 (2465),
3918 (2466),
3919 (2467),
3920 (2468),
3921 (2469),
3922 (2470),
3923 (2471),
3924 (2472),
3925 (2473),
3926 (2474),
3927 (2475),
3928 (2476),
3929 (2477),
3930 (2478),
3931 (2479),
3932 (2480),
3933 (2481),
3934 (2482),
3935 (2483),
3936 (2484),
3937 (2485),
3938 (2486),
3939 (2487),
3940 (2488),
3941 (2489),
3942 (2490),
3943 (2491),
3944 (2492),
3945 (2493),
3946 (2494),
3947 (2495),
3948 (2496),
3949 (2497),
3950 (2498),
3951 (2499),
3952 (2500),
3953 (2501),
3954 (2502),
3955 (2503),
3956 (2504),
3957 (2505),
3958 (2506),
3959 (2507),
3960 (2508),
3961 (2509),
3962 (2510),
3963 (2511),
3964 (2512),
3965 (2513),
3966 (2514),
3967 (2515),
3968 (2516),
3969 (2517),
3970 (2518),
3971 (2519),
3972 (2520),
3973 (2521),
3974 (2522),
3975 (2523),
3976 (2524),
3977 (2525),
3978 (2526),
3979 (2527),
3980 (2528),
3981 (2529),
3982 (2530),
3983 (2531),
3984 (2532),
3985 (2533),
3986 (2534),
3987 (2535),
3988 (2536),
3989 (2537),
3990 (2538),
3991 (2539),
3992 (2540),
3993 (2541),
3994 (2542),
3995 (2543),
3996 (2544),
3997 (2545),
3998 (2546),
3999 (2547),
4000 (2548),
4001 (2549),
4002 (2550),
4003 (2551),
4004 (2552),
4005 (2553),
4006 (2554),
4007 (2555),
4008 (2556),
4009 (2557),
4010 (2558),
4011 (2559),
4012 (2560),
4013 (2561),
4014 (2562),
4015 (2563),
4016 (2564),
4017 (2565),
4018 (2566),
4019 (2567),
4020 (2568),
4021 (2569),
4022 (2570),
4023 (2571),
4024 (2572),
4025 (2573),
4026 (2574),
4027 (2575),
4028 (2576),
4029 (2577),
4030 (2578),
4031 (2579),
4032 (2580),
4033 (2581),
4034 (2582),
4035 (2583),
4036 (2584),
4037 (2585),
4038 (2586),
4039 (2587),
4040 (2588),
4041 (2589),
4042 (2590),
4043 (2591),
4044 (2592),
4045 (2593),
4046 (2594),
4047 (2595),
4048 (2596),
4049 (2597),
4050 (2598),
4051 (2599),
4052 (2600),
4053 (2601),
4054 (2602),
4055 (2603),
4056 (2604),
4057 (2605),
4058 (2606),
4059 (2607),
4060 (2608),
4061 (2609),
4062 (2610),
4063 (2611),
4064 (2612),
4065 (2613),
4066 (2614),
4067 (2615),
4068 (2616),
4069 (2617),
4070 (2618),
4071 (2619),
4072 (2620),
4073 (2621),
4074 (2622),
4075 (2623),
4076 (2624),
4077 (2625),
4078 (2626),
4079 (2627),
4080 (2628),
4081 (2629),
4082 (2630),
4083 (2631),
4084 (2632),
4085 (2633),
4086 (2634),
4087 (2635),
4088 (2636),
4089 (2637),
4090 (2638),
4091 (2639),
4092 (2640),
4093 (2641),
4094 (2642),
4095 (2643),
4096 (2644),
4097 (2645),
4098 (2646),
4099 (2647),
4100 (2648),
4101 (2649),
4102 (2650),
4103 (2651),
4104 (2652),
4105 (2653),
4106 (2654),
4107 (2655),
4108 (2656),
4109 (2657),
4110 (2658),
4111 (2659),
4112 (2660),
4113 (2661),
4114 (2662),
4115 (2663),
4116 (2664),
4117 (2665),
4118 (2666),
4119 (2667),
4120 (2668),
4121 (2669),
4122 (2670),
4123 (2671),
4124 (2672),
4125 (2673),
4126 (2674),
4127 (2675),
4128 (2676),
4129 (2677),
4130 (2678),
4131 (2679),
4132 (2680),
4133 (2681),
4134 (2682),
4135 (2683),
4136 (2684),
4137 (2685),
4138 (2686),
4139 (2687),
4140 (2688),
4141 (2689),
4142 (2690),
4143 (2691),
4144 (2692),
4145 (2693),
4146 (2694),
4147 (2695),
4148 (2696),
4149 (2697),
4150 (2698),
4151 (2699),
4152 (2700),
4153 (2701),
4154 (2702),
4155 (2703),
4156 (2704),
4157 (2705),
4158 (2706),
4159 (2707),
4160 (2708),
4161 (2709),
4162 (2710),
4163 (2711),
4164 (2712),
4165 (2713),
4166 (2714),
4167 (2715),
4168 (2716),
4169 (2717),
4170 (2718),
4171 (2719),
4172 (2720),
4173 (2721),
4174 (2722),
4175 (2723),
4176 (2724),
4177 (2725),
4178 (2726),
4179 (2727),
4180 (2728),
4181 (2729),
4182 (2730),
4183 (2731),
4184 (2732),
4185 (2733),
4186 (2734),
4187 (2735),
4188 (2736),
4189 (2737),
4190 (2738),
4191 (2739),
4192 (2740),
4193 (2741),
4194 (2742),
4195 (2743),
4196 (2744),
4197 (2745),
4198 (2746),
4199 (2747),
4200 (2748),
4201 (2749),
4202 (2750),
4203 (2751),
4204 (2752),
4205 (2753),
4206 (2754),
4207 (2755),
4208 (2756),
4209 (2757),
4210 (2758),
4211 (2759),
4212 (2760),
4213 (2761),
4214 (2762),
4215 (2763),
4216 (2764),
4217 (2765),
4218 (2766),
4219 (2767),
4220 (2768),
4221 (2769),
4222 (2770),
4223 (2771),
4224 (2772),
4225 (2773),
4226 (2774),
4227 (2775),
4228 (2776),
4229 (2777),
4230 (2778),
4231 (2779),
4232 (2780),
4233 (2781),
4234 (2782),
4235 (2783),
4236 (2784),
4237 (2785),
4238 (2786),
4239 (2787),
4240 (2788),
4241 (2789),
4242 (2790),
4243 (2791),
4244 (2792),
4245 (2793),
4246 (2794),
4247 (2795),
4248 (2796),
4249 (2797),
4250 (2798),
4251 (2799),
4252 (2800),
4253 (2801),
4254 (2802),
4255 (2803),
4256 (2804),
4257 (2805),
4258 (2806),
4259 (2807),
4260 (2808),
4261 (2809),
4262 (2810),
4263 (2811),
4264 (2812),
4265 (2813),
4266 (2814),
4267 (2815),
4268 (2816),
4269 (2817),
4270 (2818),
4271 (2819),
4272 (2820),
4273 (2821),
4274 (2822),
4275 (2823),
4276 (2824),
4277 (2825),
4278 (2826),
4279 (2827),
4280 (2828),
4281 (2829),
4282 (2830),
4283 (2831),
4284 (2832),
4285 (2833),
4286 (2834),
4287 (2835),
4288 (2836),
4289 (2837),
4290 (2838),
4291 (2839),
4292 (2840),
4293 (2841),
4294 (2842),
4295 (2843),
4296 (2844),
4297 (2845),
4298 (2846),
4299 (2847),
4300 (2848),
4301 (2849),
4302 (2850),
4303 (2851),
4304 (2852),
4305 (2853),
4306 (2854),
4307 (2855),
4308 (2856),
4309 (2857),
4310 (2858),
4311 (2859),
4312 (2860),
4313 (2861),
4314 (2862),
4315 (2863),
4316 (2864),
4317 (2865),
4318 (2866),
4319 (2867),
4320 (2868),
4321 (2869),
4322 (2870),
4323 (2871),
4324 (2872),
4325 (2873),
4326 (2874),
4327 (2875),
4328 (2876),
4329 (2877),
4330 (2878),
4331 (2879),
4332 (2880),
4333 (2881),
4334 (2882),
4335 (2883),
4336 (2884),
4337 (2885),
4338 (2886),
4339 (2887),
4340 (2888),
4341 (2889),
4342 (2890),
4343 (2891),
4344 (2892),
4345 (2893),
4346 (2894),
4347 (2895),
4348 (2896),
4349 (2897),
4350 (2898),
4351 (2899),
4352 (2900),
4353 (2901),
4354 (2902),
4355 (2903),
4356 (2904),
4357 (2905),
4358 (2906),
4359 (2907),
4360 (2908),
4361 (2909),
4362 (2910),
4363 (2911),
4364 (2912),
4365 (2913),
4366 (2914),
4367 (2915),
4368 (2916),
4369 (2917),
4370 (2918),
4371 (2919),
4372 (2920),
4373 (2921),
4374 (2922),
4375 (2923),
4376 (2924),
4377 (2925),
4378 (2926),
4379 (2927),
4380 (2928),
4381 (2929),
4382 (2930),
4383 (2931),
4384 (2932),
4385 (2933),
4386 (2934),
4387 (2935),
4388 (2936),
4389 (2937),
4390 (2938),
4391 (2939),
4392 (2940),
4393 (2941),
4394 (2942),
4395 (2943),
4396 (2944),
4397 (2945),
4398 (2946),
4399 (2947),
4400 (2948),
4401 (2949),
4402 (2950),
4403 (2951),
4404 (2952),
4405 (2953),
4406 (2954),
4407 (2955),
4408 (2956),
4409 (2957),
4410 (2958),
4411 (2959),
4412 (2960),
4413 (2961),
4414 (2962),
4415 (2963),
4416 (2964),
4417 (2965),
4418 (2966),
4419 (2967),
4420 (2968),
4421 (2969),
4422 (2970),
4423 (2971),
4424 (2972),
4425 (2973),
4426 (2974),
4427 (2975),
4428 (2976),
4429 (2977),
4430 (2978),
4431 (2979),
4432 (2980),
4433 (2981),
4434 (2982),
4435 (2983),
4436 (2984),
4437 (2985),
4438 (2986),
4439 (2987),
4440 (2988),
4441 (2989),
4442 (2990),
4443 (2991),
4444 (2992),
4445 (2993),
4446 (2994),
4447 (2995),
4448 (2996),
4449 (2997),
4450 (2998),
4451 (2999),
4452 (3000),
4453 (3001),
4454 (3002),
4455 (3003),
4456 (3004),
4457 (3005),
4458 (3006),
4459 (3007),
4460 (3008),
4461 (3009),
4462 (3010),
4463 (3011),
4464 (3012),
4465 (3013),
4466 (3014),
4467 (3015),
4468 (3016),
4469 (3017),
4470 (3018),
4471 (3019),
4472 (3020),
4473 (3021),
4474 (3022),
4475 (3023),
4476 (3024),
4477 (3025),
4478 (3026),
4479 (3027),
4480 (3028),
4481 (3029),
4482 (3030),
4483 (3031),
4484 (3032),
4485 (3033),
4486 (3034),
4487 (3035),
4488 (3036),
4489 (3037),
4490 (3038),
4491 (3039),
4492 (3040),
4493 (3041),
4494 (3042),
4495 (3043),
4496 (3044),
4497 (3045),
4498 (3046),
4499 (3047),
4500 (3048),
4501 (3049),
4502 (3050),
4503 (3051),
4504 (3052),
4505 (3053),
4506 (3054),
4507 (3055),
4508 (3056),
4509 (3057),
4510 (3058),
4511 (3059),
4512 (3060),
4513 (3061),
4514 (3062),
4515 (3063),
4516 (3064),
4517 (3065),
4518 (3066),
4519 (3067),
4520 (3068),
4521 (3069),
4522 (3070),
4523 (3071),
4524 (3072),
4525 (3073),
4526 (3074),
4527 (3075),
4528 (3076),
4529 (3077),
4530 (3078),
4531 (3079),
4532 (3080),
4533 (3081),
4534 (3082),
4535 (3083),
4536 (3084),
4537 (3085),
4538 (3086),
4539 (3087),
4540 (3088),
4541 (3089),
4542 (3090),
4543 (3091),
4544 (3092),
4545 (3093),
4546 (3094),
4547 (3095),
4548 (3096),
4549 (3097),
4550 (3098),
4551 (3099),
4552 (3100),
4553 (3101),
4554 (3102),
4555 (3103),
4556 (3104),
4557 (3105),
4558 (3106),
4559 (3107),
4560 (3108),
4561 (3109),
4562 (3110),
4563 (3111),
4564 (3112),
4565 (3113),
4566 (3114),
4567 (3115),
4568 (3116),
4569 (3117),
4570 (3118),
4571 (3119),
4572 (3120),
4573 (3121),
4574 (3122),
4575 (3123),
4576 (3124),
4577 (3125),
4578 (3126),
4579 (3127),
4580 (3128),
4581 (3129),
4582 (3130),
4583 (3131),
4584 (3132),
4585 (3133),
4586 (3134),
4587 (3135),
4588 (3136),
4589 (3137),
4590 (3138),
4591 (3139),
4592 (3140),
4593 (3141),
4594 (3142),
4595 (3143),
4596 (3144),
4597 (3145),
4598 (3146),
4599 (3147),
4600 (3148),
4601 (3149),
4602 (3150),
4603 (3151),
4604 (3152),
4605 (3153),
4606 (3154),
4607 (3155),
4608 (3156),
4609 (3157),
4610 (3158),
4611 (3159),
4612 (3160),
4613 (3161),
4614 (3162),
4615 (3163),
4616 (3164),
4617 (3165),
4618 (3166),
4619 (3167),
4620 (3168),
4621 (3169),
4622 (3170),
4623 (3171),
4624 (3172),
4625 (3173),
4626 (3174),
4627 (3175),
4628 (3176),
4629 (3177),
4630 (3178),
4631 (3179),
4632 (3180),
4633 (3181),
4634 (3182),
4635 (3183),
4636 (3184),
4637 (3185),
4638 (3186),
4639 (3187),
4640 (3188),
4641 (3189),
4642 (3190),
4643 (3191),
4644 (3192),
4645 (3193),
4646 (3194),
4647 (3195),
4648 (3196),
4649 (3197),
4650 (3198),
4651 (3199),
4652 (3200),
4653 (3201),
4654 (3202),
4655 (3203),
4656 (3204),
4657 (3205),
4658 (3206),
4659 (3207),
4660 (3208),
4661 (3209),
4662 (3210),
4663 (3211),
4664 (3212),
4665 (3213),
4666 (3214),
4667 (3215),
4668 (3216),
4669 (3217),
4670 (3218),
4671 (3219),
4672 (3220),
4673 (3221),
4674 (3222),
4675 (3223),
4676 (3224),
4677 (3225),
4678 (3226),
4679 (3227),
4680 (3228),
4681 (3229),
4682 (3230),
4683 (3231),
4684 (3232),
4685 (3233),
4686 (3234),
4687 (3235),
4688 (3236),
4689 (3237),
4690 (3238),
4691 (3239),
4692 (3240),
4693 (3241),
4694 (3242),
4695 (3243),
4696 (3244),
4697 (3245),
4698 (3246),
4699 (3247),
4700 (3248),
4701 (3249),
4702 (3250),
4703 (3251),
4704 (3252),
4705 (3253),
4706 (3254),
4707 (3255),
4708 (3256),
4709 (3257),
4710 (3258),
4711 (3259),
4712 (3260),
4713 (3261),
4714 (3262),
4715 (3263),
4716 (3264),
4717 (3265),
4718 (3266),
4719 (3267),
4720 (3268),
4721 (3269),
4722 (3270),
4723 (3271),
4724 (3272),
4725 (3273),
4726 (3274),
4727 (3275),
4728 (3276),
4729 (3277),
4730 (3278),
4731 (3279),
4732 (3280),
4733 (3281),
4734 (3282),
4735 (3283),
4736 (3284),
4737 (3285),
4738 (3286),
4739 (3287),
4740 (3288),
4741 (3289),
4742 (3290),
4743 (3291),
4744 (3292),
4745 (3293),
4746 (3294),
4747 (3295),
4748 (3296),
4749 (3297),
4750 (3298),
4751 (3299),
4752 (3300),
4753 (3301),
4754 (3302),
4755 (3303),
4756 (3304),
4757 (3305),
4758 (3306),
4759 (3307),
4760 (3308),
4761 (3309),
4762 (3310),
4763 (3311),
4764 (3312),
4765 (3313),
4766 (3314),
4767 (3315),
4768 (3316),
4769 (3317),
4770 (3318),
4771 (3319),
4772 (3320),
4773 (3321),
4774 (3322),
4775 (3323),
4776 (3324),
4777 (3325),
4778 (3326),
4779 (3327),
4780 (3328),
4781 (3329),
4782 (3330),
4783 (3331),
4784 (3332),
4785 (3333),
4786 (3334),
4787 (3335),
4788 (3336),
4789 (3337),
4790 (3338),
4791 (3339),
4792 (3340),
4793 (3341),
4794 (3342),
4795 (3343),
4796 (3344),
4797 (3345),
4798 (3346),
4799 (3347),
4800 (3348),
4801 (3349),
4802 (3350),
4803 (3351),
4804 (3352),
4805 (3353),
4806 (3354),
4807 (3355),
4808 (3356),
4809 (3357),
4810 (3358),
4811 (3359),
4812 (3360),
4813 (3361),
4814 (3362),
4815 (3363),
4816 (3364),
4817 (3365),
4818 (3366),
4819 (3367),
4820 (3368),
4821 (3369),
4822 (3370),
4823 (3371),
4824 (3372),
4825 (3373),
4826 (3374),
4827 (3375),
4828 (3376),
4829 (3377),
4830 (3378),
4831 (3379),
4832 (3380),
4833 (3381),
4834 (3382),
4835 (3383),
4836 (3384),
4837 (3385),
4838 (3386),
4839 (3387),
4840 (3388),
4841 (3389),
4842 (3390),
4843 (3391),
4844 (3392),
4845 (3393),
4846 (3394),
4847 (3395),
4848 (3396),
4849 (3397),
4850 (3398),
4851 (3399),
4852 (3400),
4853 (3401),
4854 (3402),
4855 (3403),
4856 (3404),
4857 (3405),
4858 (3406),
4859 (3407),
4860 (3408),
4861 (3409),
4862 (3410),
4863 (3411),
4864 (3412),
4865 (3413),
4866 (3414),
4867 (3415),
4868 (3416),
4869 (3417),
4870 (3418),
4871 (3419),
4872 (3420),
4873 (3421),
4874 (3422),
4875 (3423),
4876 (3424),
4877 (3425),
4878 (3426),
4879 (3427),
4880 (3428),
4881 (3429),
4882 (3430),
4883 (3431),
4884 (3432),
4885 (3433),
4886 (3434),
4887 (3435),
4888 (3436),
4889 (3437),
4890 (3438),
4891 (3439),
4892 (3440),
4893 (3441),
4894 (3442),
4895 (3443),
4896 (3444),
4897 (3445),
4898 (3446),
4899 (3447),
4900 (3448),
4901 (3449),
4902 (3450),
4903 (3451),
4904 (3452),
4905 (3453),
4906 (3454),
4907 (3455),
4908 (3456),
4909 (3457),
4910 (3458),
4911 (3459),
4912 (3460),
4913 (3461),
4914 (3462),
4915 (3463),
4916 (3464),
4917 (3465),
4918 (3466),
4919 (3467),
4920 (3468),
4921 (3469),
4922 (3470),
4923 (3471),
4924 (3472),
4925 (3473),
4926 (3474),
4927 (3475),
4928 (3476),
4929 (3477),
4930 (3478),
4931 (3479),
4932 (3480),
4933 (3481),
4934 (3482),
4935 (3483),
4936 (3484),
4937 (3485),
4938 (3486),
4939 (3487),
4940 (3488),
4941 (3489),
4942 (3490),
4943 (3491),
4944 (3492),
4945 (3493),
4946 (3494),
4947 (3495),
4948 (3496),
4949 (3497),
4950 (3498),
4951 (3499),
4952 (3500),
4953 (3501),
4954 (3502),
4955 (3503),
4956 (3504),
4957 (3505),
4958 (3506),
4959 (3507),
4960 (3508),
4961 (3509),
4962 (3510),
4963 (3511),
4964 (3512),
4965 (3513),
4966 (3514),
4967 (3515),
4968 (3516),
4969 (3517),
4970 (3518),
4971 (3519),
4972 (3520),
4973 (3521),
4974 (3522),
4975 (3523),
4976 (3524),
4977 (3525),
4978 (3526),
4979 (3527),
4980 (3528),
4981 (3529),
4982 (3530),
4983 (3531),
4984 (3532),
4985 (3533),
4986 (3534),
4987 (3535),
4988 (3536),
4989 (3537),
4990 (3538),
4991 (3539),
4992 (3540),
4993 (3541),
4994 (3542),
4995 (3543),
4996 (3544),
4997 (3545),
4998 (3546),
4999 (3547),
5000 (3548),
5001 (3549),
5002 (3550),
5003 (3551),
5004 (3552),
5005 (3553),
5006 (3554),
5007 (3555),
5008 (3556),
5009 (3557),
5010 (3558),
5011 (3559),
5012 (3560),
5013 (3561),
5014 (3562),
5015 (3563),
5016 (3564),
5017 (3565),
5018 (3566),
5019 (3567),
5020 (3568),
5021 (3569),
5022 (3570),
5023 (3571),
5024 (3572),
5025 (3573),
5026 (3574),
5027 (3575),
5028 (3576),
5029 (3577),
5030 (3578),
5031 (3579),
5032 (3580),
5033 (3581),
5034 (3582),
5035 (3583),