1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 2 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> 4 <head> 5 <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> 6 <meta name="generator" content="AsciiDoc 8.6.8" /> 7 <title>syslinux-cli(1)</title> 8 <style type="text/css"> 9 /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ 10 11 /* Default font. */ 12 body { 13 font-family: Georgia,serif; 14 } 15 16 /* Title font. */ 17 h1, h2, h3, h4, h5, h6, 18 div.title, caption.title, 19 thead, p.table.header, 20 #toctitle, 21 #author, #revnumber, #revdate, #revremark, 22 #footer { 23 font-family: Arial,Helvetica,sans-serif; 24 } 25 26 body { 27 margin: 1em 5% 1em 5%; 28 } 29 30 a { 31 color: blue; 32 text-decoration: underline; 33 } 34 a:visited { 35 color: fuchsia; 36 } 37 38 em { 39 font-style: italic; 40 color: navy; 41 } 42 43 strong { 44 font-weight: bold; 45 color: #083194; 46 } 47 48 h1, h2, h3, h4, h5, h6 { 49 color: #527bbd; 50 margin-top: 1.2em; 51 margin-bottom: 0.5em; 52 line-height: 1.3; 53 } 54 55 h1, h2, h3 { 56 border-bottom: 2px solid silver; 57 } 58 h2 { 59 padding-top: 0.5em; 60 } 61 h3 { 62 float: left; 63 } 64 h3 + * { 65 clear: left; 66 } 67 h5 { 68 font-size: 1.0em; 69 } 70 71 div.sectionbody { 72 margin-left: 0; 73 } 74 75 hr { 76 border: 1px solid silver; 77 } 78 79 p { 80 margin-top: 0.5em; 81 margin-bottom: 0.5em; 82 } 83 84 ul, ol, li > p { 85 margin-top: 0; 86 } 87 ul > li { color: #aaa; } 88 ul > li > * { color: black; } 89 90 .monospaced, code, pre { 91 font-family: "Courier New", Courier, monospace; 92 font-size: inherit; 93 color: navy; 94 padding: 0; 95 margin: 0; 96 } 97 98 99 #author { 100 color: #527bbd; 101 font-weight: bold; 102 font-size: 1.1em; 103 } 104 #email { 105 } 106 #revnumber, #revdate, #revremark { 107 } 108 109 #footer { 110 font-size: small; 111 border-top: 2px solid silver; 112 padding-top: 0.5em; 113 margin-top: 4.0em; 114 } 115 #footer-text { 116 float: left; 117 padding-bottom: 0.5em; 118 } 119 #footer-badges { 120 float: right; 121 padding-bottom: 0.5em; 122 } 123 124 #preamble { 125 margin-top: 1.5em; 126 margin-bottom: 1.5em; 127 } 128 div.imageblock, div.exampleblock, div.verseblock, 129 div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock, 130 div.admonitionblock { 131 margin-top: 1.0em; 132 margin-bottom: 1.5em; 133 } 134 div.admonitionblock { 135 margin-top: 2.0em; 136 margin-bottom: 2.0em; 137 margin-right: 10%; 138 color: #606060; 139 } 140 141 div.content { /* Block element content. */ 142 padding: 0; 143 } 144 145 /* Block element titles. */ 146 div.title, caption.title { 147 color: #527bbd; 148 font-weight: bold; 149 text-align: left; 150 margin-top: 1.0em; 151 margin-bottom: 0.5em; 152 } 153 div.title + * { 154 margin-top: 0; 155 } 156 157 td div.title:first-child { 158 margin-top: 0.0em; 159 } 160 div.content div.title:first-child { 161 margin-top: 0.0em; 162 } 163 div.content + div.title { 164 margin-top: 0.0em; 165 } 166 167 div.sidebarblock > div.content { 168 background: #ffffee; 169 border: 1px solid #dddddd; 170 border-left: 4px solid #f0f0f0; 171 padding: 0.5em; 172 } 173 174 div.listingblock > div.content { 175 border: 1px solid #dddddd; 176 border-left: 5px solid #f0f0f0; 177 background: #f8f8f8; 178 padding: 0.5em; 179 } 180 181 div.quoteblock, div.verseblock { 182 padding-left: 1.0em; 183 margin-left: 1.0em; 184 margin-right: 10%; 185 border-left: 5px solid #f0f0f0; 186 color: #888; 187 } 188 189 div.quoteblock > div.attribution { 190 padding-top: 0.5em; 191 text-align: right; 192 } 193 194 div.verseblock > pre.content { 195 font-family: inherit; 196 font-size: inherit; 197 } 198 div.verseblock > div.attribution { 199 padding-top: 0.75em; 200 text-align: left; 201 } 202 /* DEPRECATED: Pre version 8.2.7 verse style literal block. */ 203 div.verseblock + div.attribution { 204 text-align: left; 205 } 206 207 div.admonitionblock .icon { 208 vertical-align: top; 209 font-size: 1.1em; 210 font-weight: bold; 211 text-decoration: underline; 212 color: #527bbd; 213 padding-right: 0.5em; 214 } 215 div.admonitionblock td.content { 216 padding-left: 0.5em; 217 border-left: 3px solid #dddddd; 218 } 219 220 div.exampleblock > div.content { 221 border-left: 3px solid #dddddd; 222 padding-left: 0.5em; 223 } 224 225 div.imageblock div.content { padding-left: 0; } 226 span.image img { border-style: none; } 227 a.image:visited { color: white; } 228 229 dl { 230 margin-top: 0.8em; 231 margin-bottom: 0.8em; 232 } 233 dt { 234 margin-top: 0.5em; 235 margin-bottom: 0; 236 font-style: normal; 237 color: navy; 238 } 239 dd > *:first-child { 240 margin-top: 0.1em; 241 } 242 243 ul, ol { 244 list-style-position: outside; 245 } 246 ol.arabic { 247 list-style-type: decimal; 248 } 249 ol.loweralpha { 250 list-style-type: lower-alpha; 251 } 252 ol.upperalpha { 253 list-style-type: upper-alpha; 254 } 255 ol.lowerroman { 256 list-style-type: lower-roman; 257 } 258 ol.upperroman { 259 list-style-type: upper-roman; 260 } 261 262 div.compact ul, div.compact ol, 263 div.compact p, div.compact p, 264 div.compact div, div.compact div { 265 margin-top: 0.1em; 266 margin-bottom: 0.1em; 267 } 268 269 tfoot { 270 font-weight: bold; 271 } 272 td > div.verse { 273 white-space: pre; 274 } 275 276 div.hdlist { 277 margin-top: 0.8em; 278 margin-bottom: 0.8em; 279 } 280 div.hdlist tr { 281 padding-bottom: 15px; 282 } 283 dt.hdlist1.strong, td.hdlist1.strong { 284 font-weight: bold; 285 } 286 td.hdlist1 { 287 vertical-align: top; 288 font-style: normal; 289 padding-right: 0.8em; 290 color: navy; 291 } 292 td.hdlist2 { 293 vertical-align: top; 294 } 295 div.hdlist.compact tr { 296 margin: 0; 297 padding-bottom: 0; 298 } 299 300 .comment { 301 background: yellow; 302 } 303 304 .footnote, .footnoteref { 305 font-size: 0.8em; 306 } 307 308 span.footnote, span.footnoteref { 309 vertical-align: super; 310 } 311 312 #footnotes { 313 margin: 20px 0 20px 0; 314 padding: 7px 0 0 0; 315 } 316 317 #footnotes div.footnote { 318 margin: 0 0 5px 0; 319 } 320 321 #footnotes hr { 322 border: none; 323 border-top: 1px solid silver; 324 height: 1px; 325 text-align: left; 326 margin-left: 0; 327 width: 20%; 328 min-width: 100px; 329 } 330 331 div.colist td { 332 padding-right: 0.5em; 333 padding-bottom: 0.3em; 334 vertical-align: top; 335 } 336 div.colist td img { 337 margin-top: 0.3em; 338 } 339 340 @media print { 341 #footer-badges { display: none; } 342 } 343 344 #toc { 345 margin-bottom: 2.5em; 346 } 347 348 #toctitle { 349 color: #527bbd; 350 font-size: 1.1em; 351 font-weight: bold; 352 margin-top: 1.0em; 353 margin-bottom: 0.1em; 354 } 355 356 div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { 357 margin-top: 0; 358 margin-bottom: 0; 359 } 360 div.toclevel2 { 361 margin-left: 2em; 362 font-size: 0.9em; 363 } 364 div.toclevel3 { 365 margin-left: 4em; 366 font-size: 0.9em; 367 } 368 div.toclevel4 { 369 margin-left: 6em; 370 font-size: 0.9em; 371 } 372 373 span.aqua { color: aqua; } 374 span.black { color: black; } 375 span.blue { color: blue; } 376 span.fuchsia { color: fuchsia; } 377 span.gray { color: gray; } 378 span.green { color: green; } 379 span.lime { color: lime; } 380 span.maroon { color: maroon; } 381 span.navy { color: navy; } 382 span.olive { color: olive; } 383 span.purple { color: purple; } 384 span.red { color: red; } 385 span.silver { color: silver; } 386 span.teal { color: teal; } 387 span.white { color: white; } 388 span.yellow { color: yellow; } 389 390 span.aqua-background { background: aqua; } 391 span.black-background { background: black; } 392 span.blue-background { background: blue; } 393 span.fuchsia-background { background: fuchsia; } 394 span.gray-background { background: gray; } 395 span.green-background { background: green; } 396 span.lime-background { background: lime; } 397 span.maroon-background { background: maroon; } 398 span.navy-background { background: navy; } 399 span.olive-background { background: olive; } 400 span.purple-background { background: purple; } 401 span.red-background { background: red; } 402 span.silver-background { background: silver; } 403 span.teal-background { background: teal; } 404 span.white-background { background: white; } 405 span.yellow-background { background: yellow; } 406 407 span.big { font-size: 2em; } 408 span.small { font-size: 0.6em; } 409 410 span.underline { text-decoration: underline; } 411 span.overline { text-decoration: overline; } 412 span.line-through { text-decoration: line-through; } 413 414 div.unbreakable { page-break-inside: avoid; } 415 416 417 /* 418 * xhtml11 specific 419 * 420 * */ 421 422 div.tableblock { 423 margin-top: 1.0em; 424 margin-bottom: 1.5em; 425 } 426 div.tableblock > table { 427 border: 3px solid #527bbd; 428 } 429 thead, p.table.header { 430 font-weight: bold; 431 color: #527bbd; 432 } 433 p.table { 434 margin-top: 0; 435 } 436 /* Because the table frame attribute is overriden by CSS in most browsers. */ 437 div.tableblock > table[frame="void"] { 438 border-style: none; 439 } 440 div.tableblock > table[frame="hsides"] { 441 border-left-style: none; 442 border-right-style: none; 443 } 444 div.tableblock > table[frame="vsides"] { 445 border-top-style: none; 446 border-bottom-style: none; 447 } 448 449 450 /* 451 * html5 specific 452 * 453 * */ 454 455 table.tableblock { 456 margin-top: 1.0em; 457 margin-bottom: 1.5em; 458 } 459 thead, p.tableblock.header { 460 font-weight: bold; 461 color: #527bbd; 462 } 463 p.tableblock { 464 margin-top: 0; 465 } 466 table.tableblock { 467 border-width: 3px; 468 border-spacing: 0px; 469 border-style: solid; 470 border-color: #527bbd; 471 border-collapse: collapse; 472 } 473 th.tableblock, td.tableblock { 474 border-width: 1px; 475 padding: 4px; 476 border-style: solid; 477 border-color: #527bbd; 478 } 479 480 table.tableblock.frame-topbot { 481 border-left-style: hidden; 482 border-right-style: hidden; 483 } 484 table.tableblock.frame-sides { 485 border-top-style: hidden; 486 border-bottom-style: hidden; 487 } 488 table.tableblock.frame-none { 489 border-style: hidden; 490 } 491 492 th.tableblock.halign-left, td.tableblock.halign-left { 493 text-align: left; 494 } 495 th.tableblock.halign-center, td.tableblock.halign-center { 496 text-align: center; 497 } 498 th.tableblock.halign-right, td.tableblock.halign-right { 499 text-align: right; 500 } 501 502 th.tableblock.valign-top, td.tableblock.valign-top { 503 vertical-align: top; 504 } 505 th.tableblock.valign-middle, td.tableblock.valign-middle { 506 vertical-align: middle; 507 } 508 th.tableblock.valign-bottom, td.tableblock.valign-bottom { 509 vertical-align: bottom; 510 } 511 512 513 /* 514 * manpage specific 515 * 516 * */ 517 518 body.manpage h1 { 519 padding-top: 0.5em; 520 padding-bottom: 0.5em; 521 border-top: 2px solid silver; 522 border-bottom: 2px solid silver; 523 } 524 body.manpage h2 { 525 border-style: none; 526 } 527 body.manpage div.sectionbody { 528 margin-left: 3em; 529 } 530 531 @media print { 532 body.manpage div#toc { display: none; } 533 } 534 535 536 </style> 537 <script type="text/javascript"> 538 /*<![CDATA[*/ 539 var asciidoc = { // Namespace. 540 541 ///////////////////////////////////////////////////////////////////// 542 // Table Of Contents generator 543 ///////////////////////////////////////////////////////////////////// 544 545 /* Author: Mihai Bazon, September 2002 546 * http://students.infoiasi.ro/~mishoo 547 * 548 * Table Of Content generator 549 * Version: 0.4 550 * 551 * Feel free to use this script under the terms of the GNU General Public 552 * License, as long as you do not remove or alter this notice. 553 */ 554 555 /* modified by Troy D. Hanson, September 2006. License: GPL */ 556 /* modified by Stuart Rackham, 2006, 2009. License: GPL */ 557 558 // toclevels = 1..4. 559 toc: function (toclevels) { 560 561 function getText(el) { 562 var text = ""; 563 for (var i = el.firstChild; i != null; i = i.nextSibling) { 564 if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants. 565 text += i.data; 566 else if (i.firstChild != null) 567 text += getText(i); 568 } 569 return text; 570 } 571 572 function TocEntry(el, text, toclevel) { 573 this.element = el; 574 this.text = text; 575 this.toclevel = toclevel; 576 } 577 578 function tocEntries(el, toclevels) { 579 var result = new Array; 580 var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); 581 // Function that scans the DOM tree for header elements (the DOM2 582 // nodeIterator API would be a better technique but not supported by all 583 // browsers). 584 var iterate = function (el) { 585 for (var i = el.firstChild; i != null; i = i.nextSibling) { 586 if (i.nodeType == 1 /* Node.ELEMENT_NODE */) { 587 var mo = re.exec(i.tagName); 588 if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") { 589 result[result.length] = new TocEntry(i, getText(i), mo[1]-1); 590 } 591 iterate(i); 592 } 593 } 594 } 595 iterate(el); 596 return result; 597 } 598 599 var toc = document.getElementById("toc"); 600 if (!toc) { 601 return; 602 } 603 604 // Delete existing TOC entries in case we're reloading the TOC. 605 var tocEntriesToRemove = []; 606 var i; 607 for (i = 0; i < toc.childNodes.length; i++) { 608 var entry = toc.childNodes[i]; 609 if (entry.nodeName.toLowerCase() == 'div' 610 && entry.getAttribute("class") 611 && entry.getAttribute("class").match(/^toclevel/)) 612 tocEntriesToRemove.push(entry); 613 } 614 for (i = 0; i < tocEntriesToRemove.length; i++) { 615 toc.removeChild(tocEntriesToRemove[i]); 616 } 617 618 // Rebuild TOC entries. 619 var entries = tocEntries(document.getElementById("content"), toclevels); 620 for (var i = 0; i < entries.length; ++i) { 621 var entry = entries[i]; 622 if (entry.element.id == "") 623 entry.element.id = "_toc_" + i; 624 var a = document.createElement("a"); 625 a.href = "#" + entry.element.id; 626 a.appendChild(document.createTextNode(entry.text)); 627 var div = document.createElement("div"); 628 div.appendChild(a); 629 div.className = "toclevel" + entry.toclevel; 630 toc.appendChild(div); 631 } 632 if (entries.length == 0) 633 toc.parentNode.removeChild(toc); 634 }, 635 636 637 ///////////////////////////////////////////////////////////////////// 638 // Footnotes generator 639 ///////////////////////////////////////////////////////////////////// 640 641 /* Based on footnote generation code from: 642 * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html 643 */ 644 645 footnotes: function () { 646 // Delete existing footnote entries in case we're reloading the footnodes. 647 var i; 648 var noteholder = document.getElementById("footnotes"); 649 if (!noteholder) { 650 return; 651 } 652 var entriesToRemove = []; 653 for (i = 0; i < noteholder.childNodes.length; i++) { 654 var entry = noteholder.childNodes[i]; 655 if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") 656 entriesToRemove.push(entry); 657 } 658 for (i = 0; i < entriesToRemove.length; i++) { 659 noteholder.removeChild(entriesToRemove[i]); 660 } 661 662 // Rebuild footnote entries. 663 var cont = document.getElementById("content"); 664 var spans = cont.getElementsByTagName("span"); 665 var refs = {}; 666 var n = 0; 667 for (i=0; i<spans.length; i++) { 668 if (spans[i].className == "footnote") { 669 n++; 670 var note = spans[i].getAttribute("data-note"); 671 if (!note) { 672 // Use [\s\S] in place of . so multi-line matches work. 673 // Because JavaScript has no s (dotall) regex flag. 674 note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1]; 675 spans[i].innerHTML = 676 "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n + 677 "' title='View footnote' class='footnote'>" + n + "</a>]"; 678 spans[i].setAttribute("data-note", note); 679 } 680 noteholder.innerHTML += 681 "<div class='footnote' id='_footnote_" + n + "'>" + 682 "<a href='#_footnoteref_" + n + "' title='Return to text'>" + 683 n + "</a>. " + note + "</div>"; 684 var id =spans[i].getAttribute("id"); 685 if (id != null) refs["#"+id] = n; 686 } 687 } 688 if (n == 0) 689 noteholder.parentNode.removeChild(noteholder); 690 else { 691 // Process footnoterefs. 692 for (i=0; i<spans.length; i++) { 693 if (spans[i].className == "footnoteref") { 694 var href = spans[i].getElementsByTagName("a")[0].getAttribute("href"); 695 href = href.match(/#.*/)[0]; // Because IE return full URL. 696 n = refs[href]; 697 spans[i].innerHTML = 698 "[<a href='#_footnote_" + n + 699 "' title='View footnote' class='footnote'>" + n + "</a>]"; 700 } 701 } 702 } 703 }, 704 705 install: function(toclevels) { 706 var timerId; 707 708 function reinstall() { 709 asciidoc.footnotes(); 710 if (toclevels) { 711 asciidoc.toc(toclevels); 712 } 713 } 714 715 function reinstallAndRemoveTimer() { 716 clearInterval(timerId); 717 reinstall(); 718 } 719 720 timerId = setInterval(reinstall, 500); 721 if (document.addEventListener) 722 document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false); 723 else 724 window.onload = reinstallAndRemoveTimer; 725 } 726 727 } 728 asciidoc.install(); 729 /*]]>*/ 730 </script> 731 </head> 732 <body class="manpage"> 733 <div id="header"> 734 <h1> 735 syslinux-cli(1) Manual Page 736 </h1> 737 <h2>NAME</h2> 738 <div class="sectionbody"> 739 <p>syslinux-cli - 740 *Syslinux* boot prompt/command line interface 741 </p> 742 </div> 743 </div> 744 <div id="content"> 745 <div class="sect1"> 746 <h2 id="_description">DESCRIPTION</h2> 747 <div class="sectionbody"> 748 <div class="paragraph"><p><strong>Syslinux</strong>'s boot prompt provides a very simplistic command line 749 interface for loading modules and booting kernels.</p></div> 750 </div> 751 </div> 752 <div class="sect1"> 753 <h2 id="_boot_prompt">BOOT PROMPT</h2> 754 <div class="sectionbody"> 755 <div class="sect2"> 756 <h3 id="_command_line_keystrokes">COMMAND LINE KEYSTROKES</h3> 757 <div class="paragraph"><p>The command line prompt supports the following keystrokes:</p></div> 758 <div class="literalblock"> 759 <div class="content"> 760 <pre><code><Enter> boot specified command line 761 <BackSpace> erase one character 762 <Ctrl-U> erase the whole line 763 <Ctrl-V> display the current Syslinux version 764 <Ctrl-W> erase one word 765 <Ctrl-X> force text mode 766 <Tab> list matching labels 767 <F1>..<F12> help screens (if configured) 768 <Ctrl-F><digit> equivalent to F1..F10 769 <Ctrl-C> interrupt boot in progress 770 <Esc> interrupt boot in progress 771 <Ctrl-N> display network information (PXELINUX only; 3.50-4.06)</code></pre> 772 </div></div> 773 </div> 774 <div class="sect2"> 775 <h3 id="_working_directory">WORKING DIRECTORY</h3> 776 <div class="paragraph"><p>At start, the initial working directory for <strong>SYSLINUX</strong>/<strong>ISOLINUX</strong> will 777 be the directory containing the initial configuration file. If no 778 configuration file is found, <strong>SYSLINUX</strong> should default to the 779 install-time working directory, however this is a known issue with some 780 versions including 4.06.</p></div> 781 <div class="paragraph"><p>At start, the initial working directory for <strong>PXELINUX</strong> will be the 782 parent directory of pxelinux.0 unless overridden with DHCP option 210. 783 If no configuration file is found, <strong>PXELINUX</strong> will start a timer to 784 reboot the system in an attempt to restart the boot process and resolve 785 a possible transient issue.</p></div> 786 </div> 787 <div class="sect2"> 788 <h3 id="_alternate_filenames">ALTERNATE FILENAMES</h3> 789 <div class="paragraph"><p>For kernel-like file names given on the command line, <strong>Syslinux</strong> will 790 attempt to append file name extensions to the specified file name when 791 the file is not found in the following order: .0[<strong>PXELINUX</strong> only], 792 .bin[<strong>ISOLINUX</strong> only], .bs[<strong>SYSLINUX</strong> only], .bss[<strong>SYSLINUX</strong> only], 793 .c32, .cbt[Up to 4.06], .com[Up to 4.06] and .img[<strong>ISOLINUX</strong> 1.65-4.04 only].</p></div> 794 </div> 795 <div class="sect2"> 796 <h3 id="_path_rules">PATH RULES</h3> 797 <div class="paragraph"><p>The current working directory is <strong>always</strong> searched first, before PATH, 798 when attempting to open a filename. The current working directory is 799 not affected when specifying a file with an absolute path. For 800 example, given the following file system layout,</p></div> 801 <div class="literalblock"> 802 <div class="content"> 803 <pre><code>/boot/ 804 /bin/ 805 ls.c32 806 libls.c32 807 /foo/ 808 libls.c32</code></pre> 809 </div></div> 810 <div class="paragraph"><p>assuming that the current working directory is /boot/foo, and assuming 811 that libls.c32 is a dependency of ls.c32, executing /boot/bin/ls.c32 812 will cause /boot/foo/libls.c32 to be loaded, not /boot/bin/libls.c32, 813 even if /boot/bin is specified in the PATH directive of a config file.</p></div> 814 <div class="paragraph"><p>The reason that things work this way is that typically a user will 815 install all library files in the Syslinux installation directory, as 816 specified with the --directory installer option. This method allows 817 the user to omit the PATH directive from their config file and still 818 have things work correctly.</p></div> 819 </div> 820 </div> 821 </div> 822 <div class="sect1"> 823 <h2 id="_author">AUTHOR</h2> 824 <div class="sectionbody"> 825 <div class="paragraph"><p>This AsciiDoc derived document is a modified version of the original 826 <strong>SYSLINUX</strong> documentation by H. Peter Anvin <<a href="mailto:hpa (a] zytor.com">hpa (a] zytor.com</a>>. The conversion 827 to an AsciiDoc was made by Gene Cumm <<a href="mailto:gene.cumm (a] gmail.com">gene.cumm (a] gmail.com</a>></p></div> 828 </div> 829 </div> 830 </div> 831 <div id="footnotes"><hr /></div> 832 <div id="footer"> 833 <div id="footer-text"> 834 Last updated 2014-01-17 16:09:56 PST 835 </div> 836 </div> 837 </body> 838 </html> 839