From d5cfec536fa3817e33a6bbe8607b67cc67ad621e Mon Sep 17 00:00:00 2001
From: Ralph Amissah <ralph@amissah.com>
Date: Wed, 7 Dec 2016 17:48:06 -0500
Subject: 0.9.6 node info, and output continued

---
 org/ao_abstract_doc_source.org |  796 ++++++------
 org/ao_defaults.org            |   26 +-
 org/output.org                 | 2757 ++++++++++++++++++++--------------------
 3 files changed, 1809 insertions(+), 1770 deletions(-)

(limited to 'org')

diff --git a/org/ao_abstract_doc_source.org b/org/ao_abstract_doc_source.org
index da435a1..4292328 100644
--- a/org/ao_abstract_doc_source.org
+++ b/org/ao_abstract_doc_source.org
@@ -229,8 +229,8 @@ auto obj_att = ObjAttributes();
 /+ ocn +/
 int obj_cite_number, obj_cite_number_;
 auto object_citation_number = OCNemitter();
-int obj_cite_number_emit(int obj_cite_number_status_flag) {
-  return object_citation_number.obj_cite_number_emitter(obj_cite_number_status_flag);
+int ocn_emit(int ocn_status_flag) {
+  return object_citation_number.ocn_emitter(ocn_status_flag);
 }
 /+ book index variables +/
 string book_idx_tmp;
@@ -243,8 +243,8 @@ string[][string][string] bkidx_hash(
   return bookindex_extract_hash.bookindex_nugget_hash(bookindex_section, obj_cite_number);
 }
 /+ node +/
-string[string] _node_str;
-int[string]    _node_int;
+string[string] _node_heading_str;
+int[string]    _node_heading_int;
 auto node_construct = NodeStructureMetadata();
 #+END_SRC
 
@@ -271,8 +271,10 @@ scope(exit) {
 
 #+name: abs_init_rest
 #+BEGIN_SRC d
-auto node_int_ = node_metadata_int;
-auto node_str_ = node_metadata_str;
+auto node_heading_int_ = node_metadata_heading_int;
+auto node_heading_str_ = node_metadata_heading_str;
+auto node_para_int_    = node_metadata_para_int;
+auto node_para_str_    = node_metadata_para_str;
 line_occur = [
   "heading"  : 0,
   "para"     : 0,
@@ -330,20 +332,20 @@ string _anchor_tag;
 string toc_txt_;
 an_object["glossary_nugget"] = "";
 an_object["blurb_nugget"] = "";
-node_str_["is"]                           = "heading";
-node_str_["ocn"]                          = "0";
-node_str_["segment_anchor_tag"]           = "toc";
-node_str_["attrib"]                       = "";
-node_str_["marked_up_lev"]                = "1";
-node_int_["heading_lev_markup"]           = 4;
-node_int_["heading_lev_collapsed"]        = 2;
-node_int_["parent_ocn"]                   = 1;
-node_int_["parent_lev_markup"]            = 0;
+node_heading_str_["is"]                           = "heading";
+node_heading_str_["ocn"]                          = "0";
+node_heading_str_["segment_anchor_tag"]           = "toc";
+node_heading_str_["attrib"]                       = "";
+node_heading_str_["marked_up_lev"]                = "1";
+node_heading_int_["heading_lev_markup"]           = 4;
+node_heading_int_["heading_lev_collapsed"]        = 2;
+node_heading_int_["parent_ocn"]                   = 1;
+node_heading_int_["parent_lev_markup"]            = 0;
 auto toc_head =
   set_abstract_object.contents_heading(
     "Table of Contents", // nugget/object
-    node_str_,
-    node_int_,
+    node_heading_str_,
+    node_heading_int_,
     ["toc"],             // anchor tag
   );
 the_table_of_contents_section = [
@@ -391,7 +393,7 @@ debug(srclines) {
 #+name: abs_in_loop_body_00
 #+BEGIN_SRC d
 if (!line.empty) {
-  _check_obj_cite_number_status_(line, type);
+  _check_ocn_status_(line, type);
 }
 #+END_SRC
 
@@ -466,53 +468,56 @@ if there is a glossary section you need to:
     line_occur["para"] = State.off;
     an_object_key="glossary_nugget"; //
     if (matchFirst(line, rgx.heading_glossary)) {
-      node_str_["is"]                       = "heading";
-      node_str_["ocn"]                      = "0";
-      node_str_["segment_anchor_tag"]       = "";
-      node_str_["attrib"]                   = "";
-      node_str_["marked_up_lev"]            = "B";
-      node_int_["heading_lev_markup"]       = 1;
-      node_int_["heading_lev_collapsed"]    = 1;
-      node_int_["parent_ocn"]               = 1;
-      node_int_["parent_lev_markup"]        = 0;
+      node_heading_str_["is"]                       = "heading";
+      node_heading_str_["ocn"]                      = "0";
+      node_heading_str_["segment_anchor_tag"]       = "";
+      node_heading_str_["attrib"]                   = "";
+      node_heading_str_["marked_up_lev"]            = "B";
+      node_heading_int_["heading_lev_markup"]       = 1;
+      node_heading_int_["heading_lev_collapsed"]    = 1;
+      node_heading_int_["parent_ocn"]               = 1;
+      node_heading_int_["parent_lev_markup"]        = 0;
       the_glossary_section ~=
         set_abstract_object.contents_heading(
           "Glossary",       // nugget/object
-          node_str_,
-          node_int_,
+          node_heading_str_,
+          node_heading_int_,
           [""],             // anchor tag
         );
-      node_str_["is"]                       = "heading";
-      node_str_["ocn"]                      = "0";
-      node_str_["segment_anchor_tag"]       = "glossary";
-      node_str_["attrib"]                   = "";
-      node_str_["marked_up_lev"]            = "1";
-      node_int_["heading_lev_markup"]       = 4;
-      node_int_["heading_lev_collapsed"]    = 2;
-      node_int_["parent_ocn"]               = 1;
-      node_int_["parent_lev_markup"]        = 0;
+      node_heading_str_["is"]                       = "heading";
+      node_heading_str_["ocn"]                      = "0";
+      node_heading_str_["segment_anchor_tag"]       = "glossary";
+      node_heading_str_["attrib"]                   = "";
+      node_heading_str_["marked_up_lev"]            = "1";
+      node_heading_int_["heading_lev_markup"]       = 4;
+      node_heading_int_["heading_lev_collapsed"]    = 2;
+      node_heading_int_["parent_ocn"]               = 1;
+      node_heading_int_["parent_lev_markup"]        = 0;
       the_glossary_section ~=
         set_abstract_object.contents_heading(
           "Glossary",       // nugget/object
-          node_str_,
-          node_int_,
+          node_heading_str_,
+          node_heading_int_,
           ["glossary"],     // anchor tag
         );
     // } else if (matchFirst(line, rgx.heading)) {
     //   _heading_matched_(line, line_occur, an_object, an_object_key, lv, collapsed_lev, type, dochead_meta_aa); // levels?
     } else {
       _para_match_(line, an_object, an_object_key, indent, bullet, type, line_occur);
+      node_para_str_["is"]                           = "para";
+      node_para_str_["attrib"]                       = "";
+      node_para_int_["ocn"]                          = 0;
+      node_para_int_["indent_hang"]                  = indent["hang_position"];
+      node_para_int_["indent_base"]                  = indent["base_position"];
+      node_para_int_["bullet"]                       = (bullet) ? 1 : 0;
       the_glossary_section ~=
         set_abstract_object.contents_para(
-          "para",                    // an_object["is"],
           to!string(line),           // an_object["substantive"],
-          "",                        // attrib
-          0,                         // obj_cite_number,
-          indent,
-          bullet
+          node_para_str_,
+          node_para_int_,
         );
     }
-    type["obj_cite_number_status"] = TriState.off;
+    type["ocn_status"] = TriState.off;
   }
   continue;
 #+END_SRC
@@ -552,70 +557,73 @@ if there is a blurb section you need to:
     line_occur["para"] = State.off;
     an_object_key="blurb_nugget";
     if (matchFirst(line, rgx.heading_blurb)) {
-      node_str_["is"]                       = "heading";
-      node_str_["ocn"]                      = "0";
-      node_str_["segment_anchor_tag"]       = "";
-      node_str_["attrib"]                   = "";
-      node_str_["marked_up_lev"]            = "B";
-      node_int_["heading_lev_markup"]       = 1;
-      node_int_["heading_lev_collapsed"]    = 1;
-      node_int_["parent_ocn"]               = 1;
-      node_int_["parent_lev_markup"]        = 0;
+      node_heading_str_["is"]                       = "heading";
+      node_heading_str_["ocn"]                      = "0";
+      node_heading_str_["segment_anchor_tag"]       = "";
+      node_heading_str_["attrib"]                   = "";
+      node_heading_str_["marked_up_lev"]            = "B";
+      node_heading_int_["heading_lev_markup"]       = 1;
+      node_heading_int_["heading_lev_collapsed"]    = 1;
+      node_heading_int_["parent_ocn"]               = 1;
+      node_heading_int_["parent_lev_markup"]        = 0;
       the_blurb_section ~=
         set_abstract_object.contents_heading(
           "Blurb",          // nugget/object
-          node_str_,
-          node_int_,
+          node_heading_str_,
+          node_heading_int_,
           [""],             // anchor tag
         );
-      node_str_["is"]                       = "heading";
-      node_str_["ocn"]                      = "0";
-      node_str_["segment_anchor_tag"]       = "blurb";
-      node_str_["attrib"]                   = "";
-      node_str_["marked_up_lev"]            = "1";
-      node_int_["heading_lev_markup"]       = 4;
-      node_int_["heading_lev_collapsed"]    = 2;
-      node_int_["parent_ocn"]               = 1;
-      node_int_["parent_lev_markup"]        = 0;
+      node_heading_str_["is"]                       = "heading";
+      node_heading_str_["ocn"]                      = "0";
+      node_heading_str_["segment_anchor_tag"]       = "blurb";
+      node_heading_str_["attrib"]                   = "";
+      node_heading_str_["marked_up_lev"]            = "1";
+      node_heading_int_["heading_lev_markup"]       = 4;
+      node_heading_int_["heading_lev_collapsed"]    = 2;
+      node_heading_int_["parent_ocn"]               = 1;
+      node_heading_int_["parent_lev_markup"]        = 0;
       the_blurb_section ~=
         set_abstract_object.contents_heading(
           "Blurb",          // nugget/object
-          node_str_,
-          node_int_,
+          node_heading_str_,
+          node_heading_int_,
           ["blurb"],        // anchor tag
         );
     } else if ((matchFirst(line, rgx.heading))
     && (opt_action_bool["backmatter"] && opt_action_bool["section_blurb"])) {
       _heading_matched_(line, line_occur, an_object, an_object_key, lv, collapsed_lev, type, dochead_meta_aa); // levels?
-      node_str_["is"]                       = "heading";
-      node_str_["ocn"]                      = "0";
-      node_str_["segment_anchor_tag"]       = "blurb";
-      node_str_["attrib"]                   = "";
-      node_str_["marked_up_lev"]            = to!string(an_object["lev"]);
-      node_int_["heading_lev_markup"]       = to!int(an_object["lev_markup_number"]);    // make int, remove need to conv
-      node_int_["heading_lev_collapsed"]    = to!int(an_object["lev_collapsed_number"]); // make int, remove need to conv
-      node_int_["parent_ocn"]               = 1;
-      node_int_["parent_lev_markup"]        = 0;
+      node_heading_str_["is"]                       = "heading";
+      node_heading_str_["ocn"]                      = "0";
+      node_heading_str_["segment_anchor_tag"]       = "blurb";
+      node_heading_str_["attrib"]                   = "";
+      node_heading_str_["marked_up_lev"]            = to!string(an_object["lev"]);
+      node_heading_int_["heading_lev_markup"]       = to!int(an_object["lev_markup_number"]);    // make int, remove need to conv
+      node_heading_int_["heading_lev_collapsed"]    = to!int(an_object["lev_collapsed_number"]); // make int, remove need to conv
+      node_heading_int_["parent_ocn"]               = 1;
+      node_heading_int_["parent_lev_markup"]        = 0;
       the_blurb_section ~=
         set_abstract_object.contents_heading(
           to!string(line),           //  an_object["substantive"],
-          node_str_,
-          node_int_,
+          node_heading_str_,
+          node_heading_int_,
           [""],                      // anchor tag
         );
     } else {
       _para_match_(line, an_object, an_object_key, indent, bullet, type, line_occur);
+      node_para_str_["is"]                           = "para";
+      node_para_str_["attrib"]                       = "";
+      node_para_int_["ocn"]                          = obj_cite_number;
+      node_para_int_["indent_hang"]                  = indent["hang_position"];
+      node_para_int_["indent_base"]                  = indent["base_position"];
+      node_para_int_["bullet"]                       = (bullet) ? 1 : 0;
       the_blurb_section ~=
         set_abstract_object.contents_para(
-          "para",                    // an_object["is"],
           to!string(line),           //  an_object["substantive"],
-          "",                        // attrib
-          obj_cite_number,
-          indent,
-          bullet
+          node_para_str_,
+          node_para_int_,
         );
     }
-    type["obj_cite_number_status"] = TriState.off;
+    type["ocn_status"] = TriState.off;
   }
   continue;
 #+END_SRC
@@ -842,8 +850,8 @@ _block_flag_line_empty_(
   the_document_body_section,
   bookindex_unordered_hashes,
   obj_cite_number,
-  _node_str,
-  _node_int,
+  _node_heading_str,
+  _node_heading_int,
   cntr,
   type,
   obj_cite_number_poem,
@@ -874,7 +882,7 @@ assert(
 if ((type["heading"] == State.on)
 && (line_occur["heading"] > State.off)) {
   /+ heading object (current line empty) +/
-  obj_cite_number = obj_cite_number_emit(type["obj_cite_number_status"]);
+  obj_cite_number = ocn_emit(type["ocn_status"]);
   an_object["bookindex_nugget"] =
     ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
   bookindex_unordered_hashes =
@@ -915,10 +923,10 @@ if ((type["heading"] == State.on)
       an_object["is"],                              // string
       html_segnames_ptr,                            // int
     );
-   _node_str = _node_t[0];
-   _node_int = _node_t[1];
+   _node_heading_str = _node_t[0];
+   _node_heading_int = _node_t[1];
   an_object["attrib"] =
-    obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int);
+    obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);
   ++heading_ptr;
   debug(segments) {
     writeln(an_object["lev_markup_number"]);
@@ -927,8 +935,8 @@ if ((type["heading"] == State.on)
   the_document_body_section ~=
     set_abstract_object.contents_heading(
       an_object["substantive"],
-      _node_str,
-      _node_int,
+      _node_heading_str,
+      _node_heading_int,
       anchor_tags,
     );
   // track previous heading and make assertions
@@ -948,7 +956,7 @@ if ((type["heading"] == State.on)
 #+BEGIN_SRC d
 } else if ((type["para"] == State.on) && (line_occur["para"] > State.off)) {
   /+ paragraph object (current line empty) +/
-  obj_cite_number = obj_cite_number_emit(type["obj_cite_number_status"]);
+  obj_cite_number = ocn_emit(type["ocn_status"]);
   an_object["bookindex_nugget"] =
     ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
   bookindex_unordered_hashes =
@@ -963,22 +971,25 @@ if ((type["heading"] == State.on)
       heading_ptr-1,
       an_object["is"],
     );
-  _node_str = _node_t[0];
-  _node_int = _node_t[1];
+  _node_heading_str = _node_t[0];
+  _node_heading_int = _node_t[1];
   auto substantive_object_and_anchor_tags_tuple =
     obj_im.obj_inline_markup_and_anchor_tags(an_object, an_object_key, dochead_make_aa); // ...
   an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];
   anchor_tags = substantive_object_and_anchor_tags_tuple[1];
   an_object["attrib"] =
-    obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int);
+    obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);
+  node_para_str_["is"]                           = an_object["is"];
+  node_para_str_["attrib"]                       = an_object["attrib"];
+  node_para_int_["ocn"]                          = obj_cite_number;
+  node_para_int_["indent_hang"]                  = indent["hang_position"];
+  node_para_int_["indent_base"]                  = indent["base_position"];
+  node_para_int_["bullet"]                       = (bullet) ? 1 : 0;
   the_document_body_section ~=
     set_abstract_object.contents_para(
-      an_object["is"],
       an_object["substantive"],
-      an_object["attrib"],
-      obj_cite_number,
-      indent,
-      bullet
+      node_para_str_,
+      node_para_int_,
     );
   _common_reset_(line_occur, an_object, type);
   indent=[
@@ -1080,20 +1091,20 @@ debug(endnotes) {
 #+BEGIN_SRC d
 if (an_object["glossary_nugget"].length == 0) {
   writeln("no gloss");
-  node_str_["is"]                       = "heading";
-  node_str_["ocn"]                      = "0";
-  node_str_["segment_anchor_tag"]       = "";
-  node_str_["attrib"]                   = "";
-  node_str_["marked_up_lev"]            = "B";
-  node_int_["heading_lev_markup"]       = 1;
-  node_int_["heading_lev_collapsed"]    = 1;
-  node_int_["parent_ocn"]               = 1;
-  node_int_["parent_lev_markup"]        = 0;
+  node_heading_str_["is"]                       = "heading";
+  node_heading_str_["ocn"]                      = "0";
+  node_heading_str_["segment_anchor_tag"]       = "";
+  node_heading_str_["attrib"]                   = "";
+  node_heading_str_["marked_up_lev"]            = "B";
+  node_heading_int_["heading_lev_markup"]       = 1;
+  node_heading_int_["heading_lev_collapsed"]    = 1;
+  node_heading_int_["parent_ocn"]               = 1;
+  node_heading_int_["parent_lev_markup"]        = 0;
   the_glossary_section ~=
     set_abstract_object.contents_heading(
       "(skip) there is no Glossary section",   // nugget/object
-      node_str_,
-      node_int_,
+      node_heading_str_,
+      node_heading_int_,
       [""],             // anchor tag
     );
 } else {
@@ -1120,53 +1131,53 @@ auto biblio_ordered =
 #+name: abs_post
 #+BEGIN_SRC d
 if (biblio_ordered.length > 0) {
-  node_str_["is"]                       = "heading";
-  node_str_["ocn"]                      = "0";
-  node_str_["segment_anchor_tag"]       = "";
-  node_str_["attrib"]                   = "";
-  node_str_["marked_up_lev"]            = "B";
-  node_int_["heading_lev_markup"]       = 1;
-  node_int_["heading_lev_collapsed"]    = 1;
-  node_int_["parent_ocn"]               = 1;
-  node_int_["parent_lev_markup"]        = 0;
+  node_heading_str_["is"]                       = "heading";
+  node_heading_str_["ocn"]                      = "0";
+  node_heading_str_["segment_anchor_tag"]       = "";
+  node_heading_str_["attrib"]                   = "";
+  node_heading_str_["marked_up_lev"]            = "B";
+  node_heading_int_["heading_lev_markup"]       = 1;
+  node_heading_int_["heading_lev_collapsed"]    = 1;
+  node_heading_int_["parent_ocn"]               = 1;
+  node_heading_int_["parent_lev_markup"]        = 0;
   the_bibliography_section ~=
     set_abstract_object.contents_heading(
       "Bibliography",   // nugget/object
-      node_str_,
-      node_int_,
+      node_heading_str_,
+      node_heading_int_,
       [""],             // anchor tag
     );
-  node_str_["is"]                       = "heading";
-  node_str_["ocn"]                      = "0";
-  node_str_["segment_anchor_tag"]       = "bibliography";
-  node_str_["attrib"]                   = "";
-  node_str_["marked_up_lev"]            = "1";
-  node_int_["heading_lev_markup"]       = 4;
-  node_int_["heading_lev_collapsed"]    = 2;
-  node_int_["parent_ocn"]               = 1;
-  node_int_["parent_lev_markup"]        = 0;
+  node_heading_str_["is"]                       = "heading";
+  node_heading_str_["ocn"]                      = "0";
+  node_heading_str_["segment_anchor_tag"]       = "bibliography";
+  node_heading_str_["attrib"]                   = "";
+  node_heading_str_["marked_up_lev"]            = "1";
+  node_heading_int_["heading_lev_markup"]       = 4;
+  node_heading_int_["heading_lev_collapsed"]    = 2;
+  node_heading_int_["parent_ocn"]               = 1;
+  node_heading_int_["parent_lev_markup"]        = 0;
   the_bibliography_section ~=
     set_abstract_object.contents_heading(
       "Bibliography",
-      node_str_,
-      node_int_,
+      node_heading_str_,
+      node_heading_int_,
       ["bibliography"], // anchor tag
     );
 } else {
-  node_str_["is"]                       = "heading";
-  node_str_["ocn"]                      = "0";
-  node_str_["segment_anchor_tag"]       = "";
-  node_str_["attrib"]                   = "";
-  node_str_["marked_up_lev"]            = "B";
-  node_int_["heading_lev_markup"]       = 1;
-  node_int_["heading_lev_collapsed"]    = 1;
-  node_int_["parent_ocn"]               = 1;
-  node_int_["parent_lev_markup"]        = 0;
+  node_heading_str_["is"]                       = "heading";
+  node_heading_str_["ocn"]                      = "0";
+  node_heading_str_["segment_anchor_tag"]       = "";
+  node_heading_str_["attrib"]                   = "";
+  node_heading_str_["marked_up_lev"]            = "B";
+  node_heading_int_["heading_lev_markup"]       = 1;
+  node_heading_int_["heading_lev_collapsed"]    = 1;
+  node_heading_int_["parent_ocn"]               = 1;
+  node_heading_int_["parent_lev_markup"]        = 0;
   the_bibliography_section ~=
     set_abstract_object.contents_heading(
       "(skip) there is no Bibliography",   // nugget/object
-      node_str_,
-      node_int_,
+      node_heading_str_,
+      node_heading_int_,
       [""],             // anchor tag
     );
 }
@@ -1192,14 +1203,17 @@ foreach (entry; biblio_ordered) {
     ((entry["place"].str.empty) ? "" : ", " ~ entry["place"].str),
     ((entry["url"].str.empty) ? "" : ", [" ~ entry["url"].str ~ "]"),
   );
+  node_para_str_["is"]                           = "bibliography";
+  node_para_str_["attrib"]                       = "";
+  node_para_int_["ocn"]                          = 0;
+  node_para_int_["indent_hang"]                  = 0;
+  node_para_int_["indent_base"]                  = 1;
+  node_para_int_["bullet"]                       = 0;
   the_bibliography_section ~=
     set_abstract_object.contents_para(
-      "bibliography",
       out_,                                                // nugget/object
-      "",                                                  // attrib
-      0,                                                   // obj_cite_number
-      ([ "hang_position" : 0, "base_position" : 1, ]),     // indent
-      false
+      node_para_str_,
+      node_para_int_,
     );
 }
 #+END_SRC
@@ -1273,20 +1287,20 @@ debug(bookindex) {                         // bookindex
 #+BEGIN_SRC d
 if (an_object["blurb_nugget"].length == 0) {
   writeln("no blurb");
-  node_str_["is"]                       = "heading";
-  node_str_["ocn"]                      = "0";
-  node_str_["segment_anchor_tag"]       = "";
-  node_str_["attrib"]                   = "";
-  node_str_["marked_up_lev"]            = "B";
-  node_int_["heading_lev_markup"]       = 1;
-  node_int_["heading_lev_collapsed"]    = 1;
-  node_int_["parent_ocn"]               = 1;
-  node_int_["parent_lev_markup"]        = 0;
+  node_heading_str_["is"]                       = "heading";
+  node_heading_str_["ocn"]                      = "0";
+  node_heading_str_["segment_anchor_tag"]       = "";
+  node_heading_str_["attrib"]                   = "";
+  node_heading_str_["marked_up_lev"]            = "B";
+  node_heading_int_["heading_lev_markup"]       = 1;
+  node_heading_int_["heading_lev_collapsed"]    = 1;
+  node_heading_int_["parent_ocn"]               = 1;
+  node_heading_int_["parent_lev_markup"]        = 0;
   the_blurb_section ~=
     set_abstract_object.contents_heading(
       "(skip) there is no Blurb section",   // nugget/object
-      node_str_,
-      node_int_,
+      node_heading_str_,
+      node_heading_int_,
       [""],             // anchor tag
     );
 } else {
@@ -1563,44 +1577,44 @@ auto _common_reset_(
 
 #+name: abs_functions_ocn_status
 #+BEGIN_SRC d
-void _check_obj_cite_number_status_(
+void _check_ocn_status_(
   char[] line,
   ref int[string] type
 ) {
-  if ((!line.empty) && (type["obj_cite_number_status_multi_obj"] == TriState.off)) {
+  if ((!line.empty) && (type["ocn_status_multi_obj"] == TriState.off)) {
     /+ not multi-line object, check whether obj_cite_number is on or turned off +/
     if (matchFirst(line, rgx.obj_cite_number_block_marks)) {
       /+ switch off obj_cite_number +/
       if (matchFirst(line, rgx.obj_cite_number_off_block)) {
-        type["obj_cite_number_status_multi_obj"] = TriState.on;
+        type["ocn_status_multi_obj"] = TriState.on;
         debug(ocnoff) {
           writeln(line);
         }
       }
       if (matchFirst(line, rgx.obj_cite_number_off_block_dh)) {
-        type["obj_cite_number_status_multi_obj"] = TriState.closing;
+        type["ocn_status_multi_obj"] = TriState.closing;
         debug(ocnoff) {
           writeln(line);
         }
       }
     } else {
-      if (type["obj_cite_number_status_multi_obj"] == TriState.off) {
+      if (type["ocn_status_multi_obj"] == TriState.off) {
         if (matchFirst(line, rgx.obj_cite_number_off)) {
-          type["obj_cite_number_status"] = TriState.on;
+          type["ocn_status"] = TriState.on;
         } else if (matchFirst(line, rgx.obj_cite_number_off_dh)) {
-          type["obj_cite_number_status"] = TriState.closing;
+          type["ocn_status"] = TriState.closing;
         } else {
-          type["obj_cite_number_status"] = TriState.off;
+          type["ocn_status"] = TriState.off;
         }
       } else {
-        type["obj_cite_number_status"] =
-          type["obj_cite_number_status_multi_obj"];
+        type["ocn_status"] =
+          type["ocn_status_multi_obj"];
       }
     }
-  } else if ((!line.empty) && (type["obj_cite_number_status_multi_obj"] > TriState.off)) {
+  } else if ((!line.empty) && (type["ocn_status_multi_obj"] > TriState.off)) {
     if (matchFirst(line, rgx.obj_cite_number_off_block_close)) {
-      type["obj_cite_number_status_multi_obj"] = TriState.off;
-      type["obj_cite_number_status"] = TriState.off;
+      type["ocn_status_multi_obj"] = TriState.off;
+      type["ocn_status"] = TriState.off;
       debug(ocnoff) {
         writeln(line);
       }
@@ -2077,7 +2091,7 @@ void _poem_block_(
         an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];
         anchor_tags = substantive_object_and_anchor_tags_tuple[1];
         an_object["attrib"] =
-          obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int);
+          obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);
         the_document_body_section ~=
           set_abstract_object.contents_block(
             an_object["is"],
@@ -2098,7 +2112,7 @@ void _poem_block_(
       processing["verse"] ~= line ~= "\n";
       if (type["verse_new"] == State.on) {
         obj_cite_number =
-          obj_cite_number_emit(type["obj_cite_number_status"]);
+          ocn_emit(type["ocn_status"]);
         type["verse_new"] = State.off;
       } else if (matchFirst(line, rgx.newline_eol_delimiter_only)) {
         verse_line = TriState.off;
@@ -2124,14 +2138,14 @@ void _poem_block_(
           heading_ptr-1,
           an_object["is"]
         );
-        _node_str = _node_t[0];
-        _node_int = _node_t[1];
+        _node_heading_str = _node_t[0];
+        _node_heading_int = _node_t[1];
         auto substantive_object_and_anchor_tags_tuple =
           obj_im.obj_inline_markup_and_anchor_tags(an_object, an_object_key, dochead_make_aa);
         an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];
         anchor_tags = substantive_object_and_anchor_tags_tuple[1];
         an_object["attrib"] =
-          obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int);
+          obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);
         the_document_body_section ~=
           set_abstract_object.contents_block(
             an_object["is"],
@@ -2168,7 +2182,7 @@ void _poem_block_(
         an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];
         anchor_tags = substantive_object_and_anchor_tags_tuple[1];
         an_object["attrib"] =
-          obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int);
+          obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);
         the_document_body_section ~=
           set_abstract_object.contents_block(
             an_object["is"],
@@ -2188,7 +2202,7 @@ void _poem_block_(
       processing["verse"] ~= line ~= "\n";
       if (type["verse_new"] == State.on) {
         obj_cite_number =
-          obj_cite_number_emit(type["obj_cite_number_status"]);
+          ocn_emit(type["ocn_status"]);
         type["verse_new"] = State.off;
       } else if (matchFirst(line, rgx.newline_eol_delimiter_only)) {
         type["verse_new"] = State.on;
@@ -2215,14 +2229,14 @@ void _poem_block_(
             heading_ptr-1,
             an_object["is"]
           );
-        _node_str = _node_t[0];
-        _node_int = _node_t[1];
+        _node_heading_str = _node_t[0];
+        _node_heading_int = _node_t[1];
         auto substantive_object_and_anchor_tags_tuple =
           obj_im.obj_inline_markup_and_anchor_tags(an_object, an_object_key, dochead_make_aa);
         an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];
         anchor_tags = substantive_object_and_anchor_tags_tuple[1];
         an_object["attrib"] =
-          obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int);
+          obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);
         the_document_body_section ~=
           set_abstract_object.contents_block(
             an_object["is"],
@@ -2413,8 +2427,8 @@ void _block_flag_line_empty_(
   ref ObjComposite[] the_document_body_section,
   ref string[][string][string] bookindex_unordered_hashes,
   ref int obj_cite_number,
-  ref string[string] _node_str,
-  ref int[string] _node_int,
+  ref string[string] _node_heading_str,
+  ref int[string] _node_heading_int,
   ref int cntr,
   ref int[string] type,
   string[string] obj_cite_number_poem,
@@ -2432,7 +2446,7 @@ void _block_flag_line_empty_(
   assertions_flag_types_block_status_none_or_closed(type);
   if (type["code"] == TriState.closing) {
     obj_cite_number =
-      obj_cite_number_emit(type["obj_cite_number_status"]);
+      ocn_emit(type["ocn_status"]);
     an_object["bookindex_nugget"] =
       ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
     bookindex_unordered_hashes =
@@ -2447,14 +2461,14 @@ void _block_flag_line_empty_(
         heading_ptr-1,
         an_object["is"]
       );
-    _node_str = _node_t[0];
-    _node_int = _node_t[1];
+    _node_heading_str = _node_t[0];
+    _node_heading_int = _node_t[1];
     auto substantive_object_and_anchor_tags_tuple =
       obj_im.obj_inline_markup_and_anchor_tags(an_object, an_object_key, dochead_make_aa);
     an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];
     anchor_tags = substantive_object_and_anchor_tags_tuple[1];
     an_object["attrib"] =
-      obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int);
+      obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);
     the_document_body_section ~=
       set_abstract_object.contents_block_code(
         an_object["is"],
@@ -2482,15 +2496,15 @@ void _block_flag_line_empty_(
         heading_ptr-1,
         an_object["is"]
       );
-    _node_str = _node_t[0];
-    _node_int = _node_t[1];
+    _node_heading_str = _node_t[0];
+    _node_heading_int = _node_t[1];
     the_document_body_section ~=
       set_abstract_object.contents_block_obj_cite_number_string(
         "poem",
         "",
         (obj_cite_number_poem["start"], obj_cite_number_poem["end"]),
-        _node_str,
-        _node_int,
+        _node_heading_str,
+        _node_heading_int,
       ); // bookindex
     object_reset(an_object);
     processing.remove("verse");
@@ -2498,7 +2512,7 @@ void _block_flag_line_empty_(
     type["poem"] = TriState.off;
   } else if (type["table"] == TriState.closing) {
     obj_cite_number =
-      obj_cite_number_emit(type["obj_cite_number_status"]);
+      ocn_emit(type["ocn_status"]);
     an_object["bookindex_nugget"] =
       ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
     bookindex_unordered_hashes =
@@ -2513,14 +2527,14 @@ void _block_flag_line_empty_(
         heading_ptr-1,
         an_object["is"]
       );
-    _node_str = _node_t[0];
-    _node_int = _node_t[1];
+    _node_heading_str = _node_t[0];
+    _node_heading_int = _node_t[1];
     auto substantive_object_and_anchor_tags_tuple =
       obj_im.obj_inline_markup_and_anchor_tags(an_object, an_object_key, dochead_make_aa);
     an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];
     anchor_tags = substantive_object_and_anchor_tags_tuple[1];
     an_object["attrib"] =
-      obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int);
+      obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);
     the_document_body_section ~=
       set_abstract_object.contents_block(
         an_object["is"],
@@ -2535,7 +2549,7 @@ void _block_flag_line_empty_(
     type["table"] = TriState.off;
   } else if (type["group"] == TriState.closing) {
     obj_cite_number =
-      obj_cite_number_emit(type["obj_cite_number_status"]);
+      ocn_emit(type["ocn_status"]);
     an_object["bookindex_nugget"] =
       ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
     bookindex_unordered_hashes =
@@ -2550,14 +2564,14 @@ void _block_flag_line_empty_(
         heading_ptr-1,
         an_object["is"]
       );
-    _node_str = _node_t[0];
-    _node_int = _node_t[1];
+    _node_heading_str = _node_t[0];
+    _node_heading_int = _node_t[1];
     auto substantive_object_and_anchor_tags_tuple =
       obj_im.obj_inline_markup_and_anchor_tags(an_object, an_object_key, dochead_make_aa);
     an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];
     anchor_tags = substantive_object_and_anchor_tags_tuple[1];
     an_object["attrib"] =
-      obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int);
+      obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);
     the_document_body_section ~=
       set_abstract_object.contents_block(
         an_object["is"],
@@ -2571,7 +2585,7 @@ void _block_flag_line_empty_(
     type["blocks"] = TriState.off;
     type["group"] = TriState.off;
   } else if (type["block"] == TriState.closing) {
-    obj_cite_number = obj_cite_number_emit(type["obj_cite_number_status"]);
+    obj_cite_number = ocn_emit(type["ocn_status"]);
     an_object["bookindex_nugget"] =
       ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
     bookindex_unordered_hashes =
@@ -2586,14 +2600,14 @@ void _block_flag_line_empty_(
         heading_ptr-1,
         an_object["is"]
        );
-    _node_str = _node_t[0];
-    _node_int = _node_t[1];
+    _node_heading_str = _node_t[0];
+    _node_heading_int = _node_t[1];
     auto substantive_object_and_anchor_tags_tuple =
       obj_im.obj_inline_markup_and_anchor_tags(an_object, an_object_key, dochead_make_aa);
     an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];
     anchor_tags = substantive_object_and_anchor_tags_tuple[1];
     an_object["attrib"] =
-      obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int);
+      obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);
     the_document_body_section ~=
       set_abstract_object.contents_block(
         an_object["is"],
@@ -2608,7 +2622,7 @@ void _block_flag_line_empty_(
     type["block"] = TriState.off;
   } else if (type["quote"] == TriState.closing) {
     obj_cite_number =
-      obj_cite_number_emit(type["obj_cite_number_status"]);
+      ocn_emit(type["ocn_status"]);
     an_object["bookindex_nugget"] =
       ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
     bookindex_unordered_hashes =
@@ -2623,14 +2637,14 @@ void _block_flag_line_empty_(
         heading_ptr-1,
         an_object["is"]
       );
-    _node_str = _node_t[0];
-    _node_int = _node_t[1];
+    _node_heading_str = _node_t[0];
+    _node_heading_int = _node_t[1];
     auto substantive_object_and_anchor_tags_tuple =
       obj_im.obj_inline_markup_and_anchor_tags(an_object, an_object_key, dochead_make_aa);
     an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];
     anchor_tags = substantive_object_and_anchor_tags_tuple[1];
     an_object["attrib"] =
-      obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int);
+      obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);
     the_document_body_section ~=
       set_abstract_object.contents_block(
         an_object["is"],
@@ -3068,10 +3082,10 @@ auto _para_match_(
 #+BEGIN_SRC d
 struct OCNemitter {
   int obj_cite_number, obj_cite_number_;
-  int obj_cite_number_emitter(int obj_cite_number_status_flag)
-  in { assert(obj_cite_number_status_flag <= 2); }
+  int ocn_emitter(int ocn_status_flag)
+  in { assert(ocn_status_flag <= 2); }
   body {
-    obj_cite_number=(obj_cite_number_status_flag == 0)
+    obj_cite_number=(ocn_status_flag == 0)
     ? ++obj_cite_number_
     : 0;
     assert(obj_cite_number >= 0);
@@ -3794,16 +3808,16 @@ struct ObjAttributes {
   string obj_attributes(
     string obj_is_,
     string obj_raw,
-    string[string] _node_str,
-    int[string] _node_int
+    string[string] _node_heading_str,
+    int[string] _node_heading_int
   )
   in { }
   body {
     scope(exit) {
       destroy(obj_is_);
       destroy(obj_raw);
-      destroy(_node_str);
-      destroy(_node_int);
+      destroy(_node_heading_str);
+      destroy(_node_heading_int);
     }
     _obj_attrib.remove("json");
     _obj_attrib["json"] ="{";
@@ -3843,7 +3857,7 @@ struct ObjAttributes {
       break;
     }
     _obj_attrib["json"] ~=" }";
-    _obj_attrib["json"]=_set_additional_values_parse_as_json(_obj_attrib["json"], obj_is_, _node_str, _node_int); // check
+    _obj_attrib["json"]=_set_additional_values_parse_as_json(_obj_attrib["json"], obj_is_, _node_heading_str, _node_heading_int); // check
     debug(structattrib) {
       if (oa_j["is"].str() == "heading") {
         writeln(_obj_attrib["json"]);
@@ -4052,24 +4066,24 @@ struct ObjAttributes {
   string _set_additional_values_parse_as_json(
     string _obj_attrib,
     string obj_is_,
-    string[string] _node_str,
-    int[string] _node_int
+    string[string] _node_heading_str,
+    int[string] _node_heading_int
   ) {                                                  //
     JSONValue oa_j = parseJSON(_obj_attrib);
     assert(
       (oa_j.type == JSON_TYPE.OBJECT)
     );
     if (obj_is_ == "heading") {
-      oa_j.object["obj_cite_number"] = _node_str["ocn"];
-      oa_j.object["lev_markup_number"] = _node_int["heading_lev_markup"];
-      oa_j.object["lev_collapsed_number"] = _node_int["heading_lev_collapsed"];
+      oa_j.object["obj_cite_number"] = _node_heading_str["ocn"];
+      oa_j.object["lev_markup_number"] = _node_heading_int["heading_lev_markup"];
+      oa_j.object["lev_collapsed_number"] = _node_heading_int["heading_lev_collapsed"];
       oa_j.object["heading_ptr"] =
-        _node_int["ptr_heading"];
+        _node_heading_int["ptr_heading"];
       oa_j.object["doc_object_ptr"] =
-        _node_int["ptr_doc_object"];
+        _node_heading_int["ptr_doc_object"];
     }
-    oa_j.object["parent_obj_cite_number"] = _node_int["parent_ocn"];
-    oa_j.object["parent_lev_markup_number"] = _node_int["parent_lev_markup"];
+    oa_j.object["parent_obj_cite_number"] = _node_heading_int["parent_ocn"];         //
+    oa_j.object["parent_lev_markup_number"] = _node_heading_int["parent_lev_markup"];         //
     _obj_attrib = oa_j.toString();
     return _obj_attrib;
   }
@@ -4248,7 +4262,7 @@ struct BookIndexReportSection {
     bool[string]             opt_action_bool,
   ) {
     mixin SiSUnode;
-    string type;
+    string type_is;
     string lev;
     int lev_int_markup, lev_int_collapsed;
     string attrib;
@@ -4257,59 +4271,60 @@ struct BookIndexReportSection {
     auto mainkeys =
       bookindex_unordered_hashes.byKey.array.sort().release;
     ObjComposite[][string] bookindex_section;
-    auto node_int_ = node_metadata_int;
-    auto node_str_ = node_metadata_str;
+    auto node_heading_int_ = node_metadata_heading_int;
+    auto node_heading_str_ = node_metadata_heading_str;
+    auto node_para_int_ = node_metadata_para_int;
+    auto node_para_str_ = node_metadata_para_str;
     if ((mainkeys.length > 0)
     && (opt_action_bool["backmatter"] && opt_action_bool["section_bookindex"])) {
       string bi_tmp_seg, bi_tmp_scroll;
-      node_str_["is"]                       = "heading";
-      node_str_["ocn"]                      = "0";
-      node_str_["segment_anchor_tag"]       = "";
-      node_str_["attrib"]                   = "";
-      node_str_["marked_up_lev"]            = "B";
-      node_int_["heading_lev_markup"]       = 1;
-      node_int_["heading_lev_collapsed"]    = 1;
-      node_int_["parent_ocn"]               = 1;
-      node_int_["parent_lev_markup"]        = 0;
+      node_heading_str_["is"]                       = "heading";
+      node_heading_str_["ocn"]                      = "0";
+      node_heading_str_["segment_anchor_tag"]       = "";
+      node_heading_str_["attrib"]                   = "";
+      node_heading_str_["marked_up_lev"]            = "B";
+      node_heading_int_["heading_lev_markup"]       = 1;
+      node_heading_int_["heading_lev_collapsed"]    = 1;
+      node_heading_int_["parent_ocn"]               = 1;
+      node_heading_int_["parent_lev_markup"]        = 0;
       bookindex_section["scroll"] ~=
         set_abstract_object.contents_heading(
           "Book Index",
-          node_str_,
-          node_int_,
+          node_heading_str_,
+          node_heading_int_,
           [],
         );
       bookindex_section["seg"] ~=
         set_abstract_object.contents_heading(
           "Book Index",
-          node_str_,
-          node_int_,
+          node_heading_str_,
+          node_heading_int_,
           [],
         );
       ++obj_cite_number;
       ++mkn;
-      // 1~ Index
-      node_str_["is"]                       = "heading";
-      node_str_["ocn"]                      = "0";
-      node_str_["segment_anchor_tag"]       = "bookindex";
-      node_str_["attrib"]                   = "";
-      node_str_["marked_up_lev"]            = "1";
-      node_int_["heading_lev_markup"]       = 4;
-      node_int_["heading_lev_collapsed"]    = 2;
-      node_int_["parent_ocn"]               = 1;
-      node_int_["parent_lev_markup"]        = 0;
+      node_heading_str_["is"]                       = "heading";
+      node_heading_str_["ocn"]                      = "0";
+      node_heading_str_["segment_anchor_tag"]       = "bookindex";
+      node_heading_str_["attrib"]                   = "";
+      node_heading_str_["marked_up_lev"]            = "1";
+      node_heading_int_["heading_lev_markup"]       = 4;
+      node_heading_int_["heading_lev_collapsed"]    = 2;
+      node_heading_int_["parent_ocn"]               = 1;
+      node_heading_int_["parent_lev_markup"]        = 0;
       bookindex_section["scroll"] ~=
         set_abstract_object.contents_heading(
           "Index",
-          node_str_,
-          node_int_,
-          ["book_index"],
+          node_heading_str_,
+          node_heading_int_,
+          ["bookindex"],
         );
       bookindex_section["seg"] ~=
         set_abstract_object.contents_heading(
           "Index",
-          node_str_,
-          node_int_,
-          ["book_index"],
+          node_heading_str_,
+          node_heading_int_,
+          ["bookindex"],
         );
       ++obj_cite_number;
       ++mkn;
@@ -4344,55 +4359,50 @@ struct BookIndexReportSection {
         }
         bi_tmp_scroll = replaceFirst(bi_tmp_scroll, rgx.trailing_linebreak, "");
         bi_tmp_seg = replaceFirst(bi_tmp_seg, rgx.trailing_linebreak, "");
-        type="para";
-        attrib="";
-        indent=[
-          "hang_position" : 0,
-          "base_position" : 1,
-        ];
+        indent=[ "hang_position" : 0, "base_position" : 1, ];
+        node_para_str_["is"]                           = "para";
+        node_para_str_["attrib"]                       = "";
+        node_para_int_["ocn"]                          = obj_cite_number;
+        node_para_int_["indent_hang"]                  = 0;
+        node_para_int_["indent_base"]                  = 1;
+        node_para_int_["bullet"]                       = 0;
         bookindex_section["scroll"] ~=
           set_abstract_object.contents_para(
-            type,
             bi_tmp_scroll,
-            attrib,
-            obj_cite_number,
-            indent,
-            false
+            node_para_str_,
+            node_para_int_,
           );
         bookindex_section["seg"] ~=
           set_abstract_object.contents_para(
-            type,
             bi_tmp_seg,
-            attrib,
-            obj_cite_number,
-            indent,
-            false
+            node_para_str_,
+            node_para_int_,
           );
         ++obj_cite_number;
         ++mkn;
       }
     } else {                              // no book index, (figure out what to do here)
-      node_str_["is"]                       = "heading";
-      node_str_["ocn"]                      = "0";
-      node_str_["segment_anchor_tag"]       = "";
-      node_str_["attrib"]                   = "";
-      node_str_["marked_up_lev"]            = "B";
-      node_int_["heading_lev_markup"]       = 1;
-      node_int_["heading_lev_collapsed"]    = 1;
-      node_int_["parent_ocn"]               = 1;
-      node_int_["parent_lev_markup"]        = 0;
+      node_heading_str_["is"]                       = "heading";
+      node_heading_str_["ocn"]                      = "0";
+      node_heading_str_["segment_anchor_tag"]       = "";
+      node_heading_str_["attrib"]                   = "";
+      node_heading_str_["marked_up_lev"]            = "B";
+      node_heading_int_["heading_lev_markup"]       = 1;
+      node_heading_int_["heading_lev_collapsed"]    = 1;
+      node_heading_int_["parent_ocn"]               = 1;
+      node_heading_int_["parent_lev_markup"]        = 0;
       bookindex_section["scroll"] ~=
         set_abstract_object.contents_heading(
           "(skip) there is no Book Index",
-          node_str_,
-          node_int_,
+          node_heading_str_,
+          node_heading_int_,
           [""],
         );
       bookindex_section["seg"] ~=
         set_abstract_object.contents_heading(
           "(skip) there is no Book Index",
-          node_str_,
-          node_int_,
+          node_heading_str_,
+          node_heading_int_,
           [""],
         );
     }
@@ -4514,86 +4524,86 @@ struct NotesSection {
     auto set_abstract_object = ObjectAbstractSet();
     ObjComposite[][string] the_endnotes_section;
     auto endnotes_ = gathered_notes();
-    string type;
+    string type_is;
     string lev, lev_markup_number, lev_collapsed_number;
     string attrib;
     int[string] indent;
-    auto node_int_ = node_metadata_int;
-    auto node_str_ = node_metadata_str;
+    auto node_heading_int_ = node_metadata_heading_int;
+    auto node_heading_str_ = node_metadata_heading_str;
     if ((endnotes_["seg"].length > 0)
     && (opt_action_bool["backmatter"] && opt_action_bool["section_endnotes"])) {
-      node_str_["is"]                       = "heading";
-      node_str_["ocn"]                      = "0";
-      node_str_["segment_anchor_tag"]       = "";
-      node_str_["attrib"]                   = "";
-      node_str_["marked_up_lev"]            = "B";
-      node_int_["heading_lev_markup"]       = 1;
-      node_int_["heading_lev_collapsed"]    = 1;
-      node_int_["parent_ocn"]               = 1;
-      node_int_["parent_lev_markup"]        = 0;
+      node_heading_str_["is"]                       = "heading";
+      node_heading_str_["ocn"]                      = "0";
+      node_heading_str_["segment_anchor_tag"]       = "";
+      node_heading_str_["attrib"]                   = "";
+      node_heading_str_["marked_up_lev"]            = "B";
+      node_heading_int_["heading_lev_markup"]       = 1;
+      node_heading_int_["heading_lev_collapsed"]    = 1;
+      node_heading_int_["parent_ocn"]               = 1;
+      node_heading_int_["parent_lev_markup"]        = 0;
       the_endnotes_section["seg"] ~=
         set_abstract_object.contents_heading(
           "Endnotes",
-          node_str_,
-          node_int_,
+          node_heading_str_,
+          node_heading_int_,
           [],
         );
       the_endnotes_section["scroll"] ~=
         set_abstract_object.contents_heading(
           "Endnotes",
-          node_str_,
-          node_int_,
+          node_heading_str_,
+          node_heading_int_,
           [],
         );
       ++obj_cite_number;
       ++mkn;
-      node_str_["is"]                       = "heading";
-      node_str_["ocn"]                      = "0";
-      node_str_["segment_anchor_tag"]       = "endnotes";
-      node_str_["attrib"]                   = "";
-      node_str_["marked_up_lev"]            = "1";
-      node_int_["heading_lev_markup"]       = 4;
-      node_int_["heading_lev_collapsed"]    = 2;
-      node_int_["parent_ocn"]               = 1;
-      node_int_["parent_lev_markup"]        = 0;
+      node_heading_str_["is"]                       = "heading";
+      node_heading_str_["ocn"]                      = "0";
+      node_heading_str_["segment_anchor_tag"]       = "endnotes";
+      node_heading_str_["attrib"]                   = "";
+      node_heading_str_["marked_up_lev"]            = "1";
+      node_heading_int_["heading_lev_markup"]       = 4;
+      node_heading_int_["heading_lev_collapsed"]    = 2;
+      node_heading_int_["parent_ocn"]               = 1;
+      node_heading_int_["parent_lev_markup"]        = 0;
       the_endnotes_section["seg"] ~=
         set_abstract_object.contents_heading(
           "Endnotes",
-          node_str_,
-          node_int_,
+          node_heading_str_,
+          node_heading_int_,
           ["endnotes"],
         );
       the_endnotes_section["scroll"] ~=
         set_abstract_object.contents_heading(
           "Endnotes",
-          node_str_,
-          node_int_,
+          node_heading_str_,
+          node_heading_int_,
           ["endnotes"],
         );
       ++obj_cite_number;
       ++mkn;
     } else {
-      node_str_["is"]                       = "heading";
-      node_str_["ocn"]                      = "0";
-      node_str_["segment_anchor_tag"]       = "";
-      node_str_["attrib"]                   = "";
-      node_str_["marked_up_lev"]            = "B";
-      node_int_["heading_lev_markup"]       = 1;
-      node_int_["heading_lev_collapsed"]    = 1;
-      node_int_["parent_ocn"]               = 1;
-      node_int_["parent_lev_markup"]        = 0;
+      node_heading_str_["is"]                       = "heading";
+      node_heading_str_["ocn"]                      = "0";
+      node_heading_str_["segment_anchor_tag"]       = "";
+      node_heading_str_["attrib"]                   = "";
+      node_heading_str_["marked_up_lev"]            = "B";
+      node_heading_int_["heading_lev_markup"]       = 1;
+      node_heading_int_["heading_lev_collapsed"]    = 1;
+      node_heading_int_["parent_ocn"]               = 1;
+      node_heading_int_["parent_lev_markup"]        = 0;
       the_endnotes_section["seg"] ~=
         set_abstract_object.contents_heading(
           "(skip) there are no Endnotes",
-          node_str_,
-          node_int_,
+          node_heading_str_,
+          node_heading_int_,
           [""],
         );
       the_endnotes_section["scroll"] ~=
         set_abstract_object.contents_heading(
           "(skip) there are no Endnotes",
-          node_str_,
-          node_int_,
+          node_heading_str_,
+          node_heading_int_,
           [""],
         );
     }
@@ -4783,14 +4793,14 @@ struct NodeStructureMetadata {
       p_["lev_markup_number"] = DocStructMarkupHeading.h_text_1;
       p_["obj_cite_number"] = lv4;
     }
-    string[string] _node_str = [
+    string[string] _node_heading_str = [
       "is"                            : is_,
       "ocn"                           : to!string(obj_cite_number_),
       "marked_up_lev"                 : "",
       "segment_anchor_tag"            : to!string(segment_anchor_tag),
       "attrib"                        : "",
     ];
-    int[string] _node_int = [
+    int[string] _node_heading_int = [
       "ocn"                           : obj_cite_number_,
       "ptr_doc_object"                : 0,
       "ptr_html_segnames"             : 0,
@@ -4807,12 +4817,12 @@ struct NodeStructureMetadata {
         writeln("- ", to!string(_node));
       }
     }
-    assert(_node_int["parent_lev_markup"] >= 4);         //
-    assert(_node_int["parent_lev_markup"] <= 7);         //
-    assert(_node_int["parent_ocn"] >= 0);      // hmm, perhaps         //
+    assert(_node_heading_int["parent_lev_markup"] >= 4);         //
+    assert(_node_heading_int["parent_lev_markup"] <= 7);         //
+    assert(_node_heading_int["parent_ocn"] >= 0);      // hmm, perhaps         //
     auto t = tuple(
-      _node_str,
-      _node_int,
+      _node_heading_str,
+      _node_heading_int,
     );
     return t;
   }
@@ -4932,14 +4942,14 @@ struct NodeStructureMetadata {
     default:
       break;
     }
-    string[string] _node_str = [
+    string[string] _node_heading_str = [
       "is"                            : is_,
       "ocn"                           : to!string(obj_cite_number_),
       "marked_up_lev"                 : lev,
       "segment_anchor_tag"            : to!string(segment_anchor_tag),
       "attrib"                        : "",
     ];
-    int[string] _node_int = [
+    int[string] _node_heading_int = [
       "ocn"                           : obj_cite_number_,
       "ptr_doc_object"                : cntr_,
       "ptr_html_segnames"             : ((lev_markup_number == "4") ? html_segnames_ptr : 0),
@@ -4959,42 +4969,42 @@ struct NodeStructureMetadata {
         writeln("* ", to!string(_node));
       }
     }
-    assert(_node_int["parent_lev_markup"] <= 7);
-    assert(_node_int["parent_ocn"] >= 0);
+    assert(_node_heading_int["parent_lev_markup"] <= 7);
+    assert(_node_heading_int["parent_ocn"] >= 0);
     if (match(lev_markup_number, rgx.levels_numbered_headings)) {
-      assert(_node_int["heading_lev_markup"] <= 7);         // issues
-      assert(to!int(_node_str["ocn"]) >= 0);
-      if (_node_int["parent_lev_markup"] > 0) {
-        assert(_node_int["parent_lev_markup"] < _node_int["heading_lev_markup"]);
-        if (to!int(_node_str["ocn"]) != 0) {
-          assert(_node_int["parent_ocn"] < to!int(_node_str["ocn"]));
+      assert(_node_heading_int["heading_lev_markup"] <= 7);         // issues
+      assert(to!int(_node_heading_str["ocn"]) >= 0);
+      if (_node_heading_int["parent_lev_markup"] > 0) {
+        assert(_node_heading_int["parent_lev_markup"] < _node_heading_int["heading_lev_markup"]);
+        if (to!int(_node_heading_str["ocn"]) != 0) {
+          assert(_node_heading_int["parent_ocn"] < to!int(_node_heading_str["ocn"]));
         }
       }
-      if (_node_int["heading_lev_markup"] == 0) {
-        assert(_node_int["parent_lev_markup"] == DocStructMarkupHeading.h_sect_A);
-      } else if  (_node_int["heading_lev_markup"] == DocStructMarkupHeading.h_sect_B) {
-        assert(_node_int["parent_lev_markup"] == DocStructMarkupHeading.h_sect_A);
-      } else if  (_node_int["heading_lev_markup"] == DocStructMarkupHeading.h_sect_C) {
-        assert(_node_int["parent_lev_markup"] == DocStructMarkupHeading.h_sect_B);
-      } else if  (_node_int["heading_lev_markup"] == DocStructMarkupHeading.h_sect_D) {
-        assert(_node_int["parent_lev_markup"] == DocStructMarkupHeading.h_sect_C);
-      } else if  (_node_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_1) {
-        assert(_node_int["parent_lev_markup"] <= DocStructMarkupHeading.h_sect_D);
-      } else if  (_node_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_2) {
-        assert(_node_int["parent_lev_markup"] == DocStructMarkupHeading.h_text_1);
-      } else if  (_node_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_3) {
-        assert(_node_int["parent_lev_markup"] == DocStructMarkupHeading.h_text_2);
-      } else if  (_node_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_4) {
-        assert(_node_int["parent_lev_markup"] == DocStructMarkupHeading.h_text_3);
-      } else if  (_node_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_5) {
-        // // writeln(to!int(_node_int["parent_lev_markup"]));
-        // // assert(to!int(_node_int["parent_lev_markup"]) >= 4);
-        // // assert(to!int(_node_int["parent_lev_markup"]) <= 7);
+      if (_node_heading_int["heading_lev_markup"] == 0) {
+        assert(_node_heading_int["parent_lev_markup"] == DocStructMarkupHeading.h_sect_A);
+      } else if  (_node_heading_int["heading_lev_markup"] == DocStructMarkupHeading.h_sect_B) {
+        assert(_node_heading_int["parent_lev_markup"] == DocStructMarkupHeading.h_sect_A);
+      } else if  (_node_heading_int["heading_lev_markup"] == DocStructMarkupHeading.h_sect_C) {
+        assert(_node_heading_int["parent_lev_markup"] == DocStructMarkupHeading.h_sect_B);
+      } else if  (_node_heading_int["heading_lev_markup"] == DocStructMarkupHeading.h_sect_D) {
+        assert(_node_heading_int["parent_lev_markup"] == DocStructMarkupHeading.h_sect_C);
+      } else if  (_node_heading_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_1) {
+        assert(_node_heading_int["parent_lev_markup"] <= DocStructMarkupHeading.h_sect_D);
+      } else if  (_node_heading_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_2) {
+        assert(_node_heading_int["parent_lev_markup"] == DocStructMarkupHeading.h_text_1);
+      } else if  (_node_heading_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_3) {
+        assert(_node_heading_int["parent_lev_markup"] == DocStructMarkupHeading.h_text_2);
+      } else if  (_node_heading_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_4) {
+        assert(_node_heading_int["parent_lev_markup"] == DocStructMarkupHeading.h_text_3);
+      } else if  (_node_heading_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_5) {
+        // // writeln(to!int(_node_heading_int["parent_lev_markup"]));
+        // // assert(to!int(_node_heading_int["parent_lev_markup"]) >= 4);
+        // // assert(to!int(_node_heading_int["parent_lev_markup"]) <= 7);
       }
     }
     auto t = tuple(
-      _node_str,
-      _node_int,
+      _node_heading_str,
+      _node_heading_int,
     );
     return t;
   }
@@ -5341,20 +5351,20 @@ auto contents_comment(in string object) {
 #+BEGIN_SRC d
 auto contents_heading(
   in string         object,
-  in string[string] _node_str,
-  in int[string]    _node_int,
+  in string[string] _node_heading_str,
+  in int[string]    _node_heading_int,
   in string[]       tags,
 ) {
   ObjComposite object_set;
   object_set.use                                 = "content";
   object_set.of                                  = "para";
   object_set.is_a                                = "heading";
-  object_set.object                              = object;
-  object_set.obj_cite_number                     = _node_str["ocn"];
+  object_set.object                              = object.strip;
+  object_set.obj_cite_number                     = _node_heading_str["ocn"];
   object_set.anchor_tags                         ~= tags;
-  object_set.heading_attrib.lev                  = _node_str["marked_up_lev"];
-  object_set.heading_attrib.lev_int_markup       = _node_int["heading_lev_markup"];
-  object_set.heading_attrib.lev_int_collapsed    = _node_int["heading_lev_collapsed"];
+  object_set.heading_attrib.lev                  = _node_heading_str["marked_up_lev"];
+  object_set.heading_attrib.lev_int_markup       = _node_heading_int["heading_lev_markup"];
+  object_set.heading_attrib.lev_int_collapsed    = _node_heading_int["heading_lev_collapsed"];
   return object_set;
 }
 #+END_SRC
@@ -5364,22 +5374,20 @@ auto contents_heading(
 #+name: ao_object_setter_para
 #+BEGIN_SRC d
 auto contents_para(
-  in string is_a,
-  in string object,
-  in string attrib,
-  in int obj_cite_number,
-  in int[string] indent,
-  in bool bullet,
+  in string         object,
+  in string[string] _node_para_str,
+  in int[string]    _node_para_int,
 ) {
   ObjComposite object_set;
   object_set.use                      = "content";
   object_set.of                       = "para";
   object_set.is_a                     = "para";
   object_set.object                   = object.strip;
-  object_set.obj_cite_number          = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
-  object_set.para_attrib.indent_start = to!int(indent["hang_position"]);
-  object_set.para_attrib.indent_rest  = to!int(indent["base_position"]);
-  object_set.para_attrib.bullet       = false; // bullet;
+  object_set.obj_cite_number          = (_node_para_int["ocn"]==0) ? "" : to!string(_node_para_int["ocn"]);
+  object_set.anchor_tags              = [];
+  object_set.para_attrib.indent_start = _node_para_int["indent_hang"];
+  object_set.para_attrib.indent_rest  = _node_para_int["indent_base"];
+  object_set.para_attrib.bullet       = (_node_para_int["bullet"] == 1) ? true : false;
   return object_set;
 }
 #+END_SRC
@@ -5439,7 +5447,7 @@ auto contents_endnote(
 #+name: ao_object_setter_block
 #+BEGIN_SRC d
 auto contents_block(
-  in string type,
+  in string type_is,
   in string object,
   in string attrib,
   in int obj_cite_number,
@@ -5447,9 +5455,10 @@ auto contents_block(
   ObjComposite object_set;
   object_set.use                 = "content";
   object_set.of                  = "block";
-  object_set.is_a                = type;
+  object_set.is_a                = type_is;
   object_set.object              = object;
   object_set.obj_cite_number     = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
+  object_set.anchor_tags         = [];
   return object_set;
 }
 #+END_SRC
@@ -5459,7 +5468,7 @@ auto contents_block(
 #+name: ao_object_setter_block_code
 #+BEGIN_SRC d
 auto contents_block_code(
-  in string type,
+  in string type_is,
   in string object,
   in string attrib_language_syntax,
   in int obj_cite_number,
@@ -5467,10 +5476,11 @@ auto contents_block_code(
   ObjComposite object_set;
   object_set.use                 = "content";
   object_set.of                  = "block";
-  object_set.is_a                = type;
+  object_set.is_a                = type_is;
   object_set.block_attrib.syntax = attrib_language_syntax;
   object_set.object              = object;
   object_set.obj_cite_number     = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
+  object_set.anchor_tags         = [];
   return object_set;
 }
 #+END_SRC
@@ -5480,7 +5490,7 @@ auto contents_block_code(
 #+name: ao_object_setter_block_obj_cite_number_string
 #+BEGIN_SRC d
 auto contents_block_obj_cite_number_string(
-  in string         type,
+  in string         type_is,
   in string         object,
   in string         obj_cite_number,
   in string[string] _node_str,
@@ -5489,7 +5499,7 @@ auto contents_block_obj_cite_number_string(
   ObjComposite object_set;
   object_set.use                               = "content";
   object_set.of                                = "block";
-  object_set.is_a                              = type;
+  object_set.is_a                              = type_is;
   object_set.object                            = object;
   object_set.obj_cite_number                   = obj_cite_number;
   return object_set;
diff --git a/org/ao_defaults.org b/org/ao_defaults.org
index d991dec..26f8ae8 100644
--- a/org/ao_defaults.org
+++ b/org/ao_defaults.org
@@ -404,8 +404,8 @@ template SiSUrgxInitFlags() {
       "tic_group"            : 0,
       "tic_block"            : 0,
       "tic_quote"            : 0,
-      "obj_cite_number_status"           : 0, // 0 obj_cite_number; 1 no obj_cite_number; 2 no obj_cite_number & dummy headings
-      "obj_cite_number_status_multi_obj" : 0, // 0 obj_cite_number; 1 no obj_cite_number; 2 no obj_cite_number & dummy headings
+      "ocn_status"           : 0, // 0 obj_cite_number; 1 no obj_cite_number; 2 no obj_cite_number & dummy headings
+      "ocn_status_multi_obj" : 0, // 0 obj_cite_number; 1 no obj_cite_number; 2 no obj_cite_number & dummy headings
       "book_index"           : 0,
     ];
     return flags_type_init;
@@ -416,7 +416,7 @@ template SiSUrgxInitFlags() {
 #+name: ao_defaults_templates
 #+BEGIN_SRC d
 template SiSUnode() {
-  string[string] node_metadata_str() {
+  string[string] node_metadata_heading_str() {
     auto _node = [
         "is"                            : "",
         "ocn"                           : "",
@@ -426,7 +426,7 @@ template SiSUnode() {
     ];
     return _node;
   }
-  int[string] node_metadata_int() {
+  int[string] node_metadata_heading_int() {
     auto _node = [
         "ocn"                           : 0, // decide whether to use or keep?
         "ptr_doc_object"                : 0,
@@ -439,6 +439,24 @@ template SiSUnode() {
     ];
     return _node;
   }
+  string[string] node_metadata_para_str() {
+    auto _node = [
+        "is"                            : "",
+        "ocn"                           : "",
+        "attrib"                        : "",
+        // "segment_anchor_tag"            : "",
+    ];
+    return _node;
+  }
+  int[string] node_metadata_para_int() {
+    auto _node = [
+        "ocn"                           : 0,
+        "indent_base"                   : 0,
+        "indent_hang"                   : 0,
+        "bullet"                        : 0, // bool (0|1)
+    ];
+    return _node;
+  }
 }
 #+END_SRC
 
diff --git a/org/output.org b/org/output.org
index 924540c..0bad148 100644
--- a/org/output.org
+++ b/org/output.org
@@ -91,31 +91,46 @@ template SiSUoutputHTML() {
 ** text                                                                :text:
 ** html [#A]                                                           :html:
 *** html text objects
-**** html functions
-***** html
+**** misc
 
-***** heading
+#+name: output_html
+#+BEGIN_SRC d
+string _html_anchor_tags(const(string[]) anchor_tags) {
+  string tags="";
+  if (anchor_tags.length > 0) {
+    foreach (tag; anchor_tags) {
+      if (!(tag.empty)) {
+        tags ~= "<a name=\"" ~ tag ~ "\"></a>";
+      }
+    }
+  }
+  return tags;
+}
+#+END_SRC
+
+**** heading
 
 #+name: output_html
 #+BEGIN_SRC d
 auto html_heading(O)(
   auto ref const O         obj,
 ) {
+  auto tags = _html_anchor_tags(obj.anchor_tags);
   string o;
   o = format(q"¶<br><hr /><br>
   <div class="substance">
     <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label>
-    <h%s class="%s" id="%s"><a name="%s"></a>
+    <h%s class="%s" id="%s"><a name="%s"></a>%s
       %s
     </h%s>
-  </div>
-  ¶",
+  </div>¶",
   obj.obj_cite_number,
   obj.obj_cite_number,
   obj.heading_attrib.lev_int_markup,
   obj.is_a,
   obj.obj_cite_number,
   obj.obj_cite_number,
+  tags,
   obj.object,
   obj.heading_attrib.lev_int_markup
   );
@@ -123,43 +138,44 @@ auto html_heading(O)(
 }
 #+END_SRC
 
-***** para
+**** para
 
 #+name: output_html
 #+BEGIN_SRC d
 auto html_para(O)(
   auto ref const O         obj,
 ) {
+  auto tags = _html_anchor_tags(obj.anchor_tags);
   string o;
   if (obj.obj_cite_number.empty) {
-    o = format(q"¶<div class="substance">
-    <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label>
-    <p class="%s" attrib="h%si%s">
-      %s
-    </p>
-  </div>
-  ¶",
+    o = format(q"¶  <div class="substance">
+  <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label>
+  <p class="%s" attrib="h%si%s">%s
+    %s
+  </p>
+</div>¶",
       obj.obj_cite_number,
       obj.obj_cite_number,
       obj.is_a,
       obj.para_attrib.indent_start,
       obj.para_attrib.indent_rest,
+      tags,
       obj.object
     );
   } else {
-    o = format(q"¶<div class="substance">
-    <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label>
-    <p class="%s" attrib="h%si%s" id="%s">
-      %s
-    </p>
-  </div>
-  ¶",
+    o = format(q"¶  <div class="substance">
+  <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label>
+  <p class="%s" attrib="h%si%s" id="%s">%s
+    %s
+  </p>
+</div>¶",
       obj.obj_cite_number,
       obj.obj_cite_number,
       obj.is_a,
       obj.para_attrib.indent_start,
       obj.para_attrib.indent_rest,
       obj.obj_cite_number,
+      tags,
       obj.object
     );
   }
@@ -167,56 +183,7 @@ auto html_para(O)(
 }
 #+END_SRC
 
-***** html endnote
-
-#+name: output_html
-#+BEGIN_SRC d
-auto html_endnote(O)(
-  auto ref const O         obj,
-) {
-  string o;
-  o = format(q"¶<div class="substance">
-    <label class="tag"><a name="%s" a href="%s" class="lnkocn"></a></label>
-    <p class="%s" attrib="h%si%s">
-      %s
-    </p>
-  </div>
-  ¶",
-    obj.anchor_tags[0],
-    obj.anchor_tags[0],
-    obj.is_a,
-    obj.para_attrib.indent_start,
-    obj.para_attrib.indent_rest,
-    obj.object
-  );
-  return o;
-}
-#+END_SRC
-
-***** html toc
-
-#+name: output_html
-#+BEGIN_SRC d
-auto html_toc(O)(
-  auto ref const O         obj,
-) {
-  string o;
-  o = format(q"¶<div class="substance">
-    <p class="%s" attrib="h%si%s">
-      %s
-    </p>
-  </div>
-  ¶",
-  obj.is_a,
-  obj.para_attrib.indent_start,
-  obj.para_attrib.indent_rest,
-  obj.object
-  );
-  return o;
-}
-#+END_SRC
-
-***** html nugget
+**** nugget
 
 #+name: output_html
 #+BEGIN_SRC d
@@ -224,13 +191,12 @@ auto html_nugget(O)(
   auto ref const O         obj,
 ) {
   string o;
-  o = format(q"¶<div class="substance">
-    <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label>
-    <p class="%s" id="%s">
-      %s
-    </p>
-  </div>
-  ¶",
+  o = format(q"¶  <div class="substance">
+  <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label>
+  <p class="%s" id="%s">
+    %s
+  </p>
+</div>¶",
   obj.obj_cite_number,
   obj.obj_cite_number,
   obj.is_a,
@@ -241,14 +207,13 @@ auto html_nugget(O)(
 }
 #+END_SRC
 
-**** html scroll head & tail
+**** scroll head
 
 #+name: output_html
 #+BEGIN_SRC d
 auto scroll_head_html() {
   string o;
-  o = format(q"¶
-<!DOCTYPE html>
+  o = format(q"¶<!DOCTYPE html>
 <html>
 <head>
   <meta charset="utf-8">
@@ -274,24 +239,70 @@ auto scroll_head_html() {
   <link href="../../../_sisu/css/html.css" rel="stylesheet">
 </head>
 <body lang="en">
-<a name="top" id="top"></a>
-¶");
+<a name="top" id="top"></a>¶");
+  return o;
+}
+#+END_SRC
+
+**** scroll toc
+
+#+name: output_html
+#+BEGIN_SRC d
+auto html_toc(O)(
+  auto ref const O         obj,
+) {
+  string o;
+  o = format(q"¶  <div class="substance">
+  <p class="%s" attrib="h%si%s">
+    %s
+  </p>
+</div>¶",
+  obj.is_a,
+  obj.para_attrib.indent_start,
+  obj.para_attrib.indent_rest,
+  obj.object
+  );
+  return o;
+}
+#+END_SRC
+
+**** scroll endnote
+
+#+name: output_html
+#+BEGIN_SRC d
+auto html_endnote(O)(
+  auto ref const O         obj,
+) {
+  string o;
+  o = format(q"¶    <p class="%s" attrib="h%si%s">
+  %s
+</p>¶",
+    obj.is_a,
+    obj.para_attrib.indent_start,
+    obj.para_attrib.indent_rest,
+    obj.object
+  );
   return o;
 }
+#+END_SRC
+
+**** scroll tail
+
+#+name: output_html
+#+BEGIN_SRC d
 auto scroll_tail_html() {
   string o;
-  o = format(q"¶
-<a name="bottom" id="bottom"></a>
-<a name="end" id="end"></a>
+  o = format(q"¶  <a name="bottom" id="bottom"></a>
+  <a name="end" id="end"></a>
 </div>
 </body>
-</html>
-¶");
+</html>¶");
   return o;
 }
 #+END_SRC
 
-**** html scroll
+*** html hub, sort objects [#A]
+**** scroll
 
 #+name: output_html
 #+BEGIN_SRC d
@@ -365,1296 +376,1296 @@ void scroll(C)(
 }
 #+END_SRC
 
-*** css                                                                 :css:
+**** seg
+*** css                                                               :css:
 
 #+name: output_html_css
 #+BEGIN_SRC d
 auto html_css() {
   string css;
   css="/* SiSU css default stylesheet */
-      body {
-        color: black;
-        background: #ffffff;
-        background-color: #ffffff;
-      }
-      a:link {
-        color: #003399;
-        text-decoration: none;
-      }
-      a:visited {
-        color: #003399;
-        text-decoration: none;
-      }
-      a:hover {
-        color: #000000;
-        background-color: #f9f9aa;
-      }
-      a.lnkocn:link {
-        color: #777777;
-        text-decoration: none;
-      }
-      a:hover img {
-        background-color: #ffffff;
-      }
-      a:active {
-        color: #003399;
-        text-decoration: underline;
-      }
-      div {
-        margin-left: 0;
-        margin-right: 0;
-      }
-      div.p {
-        margin-left: 5%;
-        margin-right: 1%;
-      }
-
-      #top_band {
-        position: absolute;
-        top: 0;
-        bottom: 80px;
-        width: 100%;
-      }
-      #top_band_search {
-        position: absolute;
-        top: 0px;
-        right: 0px;
-        margin-left: 75%;
-        width: 20%;
-      }
-      #column_left {
-        position: absolute;
-        top: 80px;
-        left: 0;
-        margin-left: 1%;
-        width: 20%;
-      }
-      #column_center {
-        position: absolute;
-        top: 80px;
-        margin-left: 20%;
-        width: 55%;
-      }
-      #column_right {
-        position: absolute;
-        top: 80px;
-        right: 0px;
-        margin-left: 75%;
-        width: 25%;
-      }
-      #pane_major {
-        position: absolute;
-        top: 0px;
-        left: 0;
-        margin-left: 0;
-        width: 80%;
-      }
-      #pane_minor {
-        position: absolute;
-        top: 0px;
-        right: 0px;
-        margin-left: 75%;
-        width: 20%;
-        background-color: #aaaaaa;
-      }
-      .norm, .bold, .verse, .group, .block, .alt {
-        line-height: 133%;
-        margin-left: 0em;
-        margin-right: 2em;
-        margin-top: 12px;
-        margin-bottom: 0px;
-        padding-left: 0em;
-        text-indent: 0em;
-      }
-      p, h0, h1, h2, h3, h4, h5, h6, h7 {
-        display: block;
-        font-family: verdana, arial, georgia, tahoma, sans-serif, helvetica, times, roman;
-        font-size: 100%;
-        font-weight: normal;
-        line-height: 133%;
-        text-align: justify;
-        margin-left: 0em;
-        margin-right: 2em;
-        text-indent: 0mm;
-        margin-top: 0.8em;
-        margin-bottom: 0.8em;
-      }
-      /* indent */
-      p.norm { }
-      p.i1 {padding-left: 1em;}
-      p.i2 {padding-left: 2em;}
-      p.i3 {padding-left: 3em;}
-      p.i4 {padding-left: 4em;}
-      p.i5 {padding-left: 5em;}
-      p.i6 {padding-left: 6em;}
-      p.i7 {padding-left: 7em;}
-      p.i8 {padding-left: 8em;}
-      p.i9 {padding-left: 9em;}
-      /* hanging indent */
-      p.h0i0 {
-        padding-left: 0em;
-        text-indent:  0em;
-      }
-      p.h0i1 {
-        padding-left: 1em;
-        text-indent: -1em;
-      }
-      p.h0i2 {
-        padding-left: 2em;
-        text-indent: -2em;
-      }
-      p.h0i3 {
-        padding-left: 3em;
-        text-indent: -3em;
-      }
-      p.h0i4 {
-        padding-left: 4em;
-        text-indent: -4em;
-      }
-      p.h0i5 {
-        padding-left: 5em;
-        text-indent: -5em;
-      }
-      p.h0i6 {
-        padding-left: 6em;
-        text-indent: -6em;
-      }
-      p.h0i7 {
-        padding-left: 7em;
-        text-indent: -7em;
-      }
-      p.h0i8 {
-        padding-left: 8em;
-        text-indent: -8em;
-      }
-      p.h0i9 {
-        padding-left: 9em;
-        text-indent: -9em;
-      }
-      p.h1i0 {
-        padding-left: 0em;
-        text-indent:  1em;
-      }
-      p.h1i1 {
-        padding-left: 1em;
-        text-indent:  0em;
-      }
-      p.h1i2 {
-        padding-left: 2em;
-        text-indent: -1em;
-      }
-      p.h1i3 {
-        padding-left: 3em;
-        text-indent: -2em;
-      }
-      p.h1i4 {
-        padding-left: 4em;
-        text-indent: -3em;
-      }
-      p.h1i5 {
-        padding-left: 5em;
-        text-indent: -4em;
-      }
-      p.h1i6 {
-        padding-left: 6em;
-        text-indent: -5em;
-      }
-      p.h1i7 {
-        padding-left: 7em;
-        text-indent: -6em;
-      }
-      p.h1i8 {
-        padding-left: 8em;
-        text-indent: -7em;
-      }
-      p.h1i9 {
-        padding-left: 9em;
-        text-indent: -8em;
-      }
-      p.h2i0 {
-        padding-left: 0em;
-        text-indent:  2em;
-      }
-      p.h2i1 {
-        padding-left: 1em;
-        text-indent:  1em;
-      }
-      p.h2i2 {
-        padding-left: 2em;
-        text-indent:  0em;
-      }
-      p.h2i3 {
-        padding-left: 3em;
-        text-indent: -1em;
-      }
-      p.h2i4 {
-        padding-left: 4em;
-        text-indent: -2em;
-      }
-      p.h2i5 {
-        padding-left: 5em;
-        text-indent: -3em;
-      }
-      p.h2i6 {
-        padding-left: 6em;
-        text-indent: -4em;
-      }
-      p.h2i7 {
-        padding-left: 7em;
-        text-indent: -5em;
-      }
-      p.h2i8 {
-        padding-left: 8em;
-        text-indent: -6em;
-      }
-      p.h2i9 {
-        padding-left: 9em;
-        text-indent: -7em;
-      }
-      p.h3i0 {
-        padding-left: 0em;
-        text-indent:  3em;
-      }
-      p.h3i1 {
-        padding-left: 1em;
-        text-indent:  2em;
-      }
-      p.h3i2 {
-        padding-left: 2em;
-        text-indent:  1em;
-      }
-      p.h3i3 {
-        padding-left: 3em;
-        text-indent:  0em;
-      }
-      p.h3i4 {
-        padding-left: 4em;
-        text-indent: -1em;
-      }
-      p.h3i5 {
-        padding-left: 5em;
-        text-indent: -2em;
-      }
-      p.h3i6 {
-        padding-left: 6em;
-        text-indent: -3em;
-      }
-      p.h3i7 {
-        padding-left: 7em;
-        text-indent: -4em;
-      }
-      p.h3i8 {
-        padding-left: 8em;
-        text-indent: -5em;
-      }
-      p.h3i9 {
-        padding-left: 9em;
-        text-indent: -6em;
-      }
-      p.h4i0 {
-        padding-left: 0em;
-        text-indent:  4em;
-      }
-      p.h4i1 {
-        padding-left: 1em;
-        text-indent:  3em;
-      }
-      p.h4i2 {
-        padding-left: 2em;
-        text-indent:  2em;
-      }
-      p.h4i3 {
-        padding-left: 3em;
-        text-indent:  1em;
-      }
-      p.h4i4 {
-        padding-left: 4em;
-        text-indent:  0em;
-      }
-      p.h4i5 {
-        padding-left: 5em;
-        text-indent: -1em;
-      }
-      p.h4i6 {
-        padding-left: 6em;
-        text-indent: -2em;
-      }
-      p.h4i7 {
-        padding-left: 7em;
-        text-indent: -3em;
-      }
-      p.h4i8 {
-        padding-left: 8em;
-        text-indent: -4em;
-      }
-      p.h4i9 {
-        padding-left: 9em;
-        text-indent: -5em;
-      }
-      p.h5i0 {
-        padding-left: 0em;
-        text-indent:  5em;
-      }
-      p.h5i1 {
-        padding-left: 1em;
-        text-indent:  4em;
-      }
-      p.h5i2 {
-        padding-left: 2em;
-        text-indent:  3em;
-      }
-      p.h5i3 {
-        padding-left: 3em;
-        text-indent:  2em;
-      }
-      p.h5i4 {
-        padding-left: 4em;
-        text-indent:  1em;
-      }
-      p.h5i5 {
-        padding-left: 5em;
-        text-indent:  0em;
-      }
-      p.h5i6 {
-        padding-left: 6em;
-        text-indent: -1em;
-      }
-      p.h5i7 {
-        padding-left: 7em;
-        text-indent: -2em;
-      }
-      p.h5i8 {
-        padding-left: 8em;
-        text-indent: -3em;
-      }
-      p.h5i9 {
-        padding-left: 9em;
-        text-indent: -4em;
-      }
-      p.h6i0 {
-        padding-left: 0em;
-        text-indent:  6em;
-      }
-      p.h6i1 {
-        padding-left: 1em;
-        text-indent:  5em;
-      }
-      p.h6i2 {
-        padding-left: 2em;
-        text-indent:  4em;
-      }
-      p.h6i3 {
-        padding-left: 3em;
-        text-indent:  3em;
-      }
-      p.h6i4 {
-        padding-left: 4em;
-        text-indent:  2em;
-      }
-      p.h6i5 {
-        padding-left: 5em;
-        text-indent:  1em;
-      }
-      p.h6i6 {
-        padding-left: 6em;
-        text-indent:  0em;
-      }
-      p.h6i7 {
-        padding-left: 7em;
-        text-indent: -1em;
-      }
-      p.h6i8 {
-        padding-left: 8em;
-        text-indent: -2em;
-      }
-      p.h6i9 {
-        padding-left: 9em;
-        text-indent: -3em;
-      }
-      p.h7i0 {
-        padding-left: 0em;
-        text-indent:  7em;
-      }
-      p.h7i1 {
-        padding-left: 1em;
-        text-indent:  6em;
-      }
-      p.h7i2 {
-        padding-left: 2em;
-        text-indent:  5em;
-      }
-      p.h7i3 {
-        padding-left: 3em;
-        text-indent:  4em;
-      }
-      p.h7i4 {
-        padding-left: 4em;
-        text-indent:  3em;
-      }
-      p.h7i5 {
-        padding-left: 5em;
-        text-indent:  2em;
-      }
-      p.h7i6 {
-        padding-left: 6em;
-        text-indent:  1em;
-      }
-      p.h7i7 {
-        padding-left: 7em;
-        text-indent:  0em;
-      }
-      p.h7i8 {
-        padding-left: 8em;
-        text-indent: -1em;
-      }
-      p.h7i9 {
-        padding-left: 9em;
-        text-indent: -2em;
-      }
-      p.h8i0 {
-        padding-left: 0em;
-        text-indent:  8em;
-      }
-      p.h8i1 {
-        padding-left: 1em;
-        text-indent:  7em;
-      }
-      p.h8i2 {
-        padding-left: 2em;
-        text-indent:  6em;
-      }
-      p.h8i3 {
-        padding-left: 3em;
-        text-indent:  5em;
-      }
-      p.h8i4 {
-        padding-left: 4em;
-        text-indent:  4em;
-      }
-      p.h8i5 {
-        padding-left: 5em;
-        text-indent:  3em;
-      }
-      p.h8i6 {
-        padding-left: 6em;
-        text-indent:  2em;
-      }
-      p.h8i7 {
-        padding-left: 7em;
-        text-indent:  1em;
-      }
-      p.h8i8 {
-        padding-left: 8em;
-        text-indent:  0em;
-      }
-      p.h8i9 {
-        padding-left: 9em;
-        text-indent: -1em;
-      }
-      p.h9i0 {
-        padding-left: 0em;
-        text-indent:  9em;
-      }
-      p.h9i1 {
-        padding-left: 1em;
-        text-indent:  8em;
-      }
-      p.h9i2 {
-        padding-left: 2em;
-        text-indent:  7em;
-      }
-      p.h9i3 {
-        padding-left: 3em;
-        text-indent:  6em;
-      }
-      p.h9i4 {
-        padding-left: 4em;
-        text-indent:  5em;
-      }
-      p.h9i5 {
-        padding-left: 5em;
-        text-indent:  4em;
-      }
-      p.h9i6 {
-        padding-left: 6em;
-        text-indent:  3em;
-      }
-      p.h9i7 {
-        padding-left: 7em;
-        text-indent:  2em;
-      }
-      p.h9i8 {
-        padding-left: 8em;
-        text-indent:  1em;
-      }
-      p.h9i9 {
-        padding-left: 9em;
-        text-indent:  0em;
-      }
-      p.it0 {
-        margin-left: 0em;
-        margin-top: 6px;
-        margin-bottom: 0px;
-        line-height: 100%;
-      }
-      p.it1 {
-        margin-left: 1em;
-        margin-top: 0px;
-        margin-bottom: 0px;
-        line-height: 100%;
-      }
-      p.it2 {
-        margin-left: 2em;
-        margin-top: 0px;
-        margin-bottom: 0px;
-        line-height: 100%;
-      }
-      p.it3 {
-        margin-left: 3em;
-        margin-top: 0px;
-        margin-bottom: 0px;
-        line-height: 100%;
-      }
-      p.it4 {
-        margin-left: 4em;
-        margin-top: 0px;
-        margin-bottom: 0px;
-        line-height: 100%;
-      }
-      p.it5 {
-        margin-left: 5em;
-        margin-top: 0px;
-        margin-bottom: 0px;
-        line-height: 100%;
-      }
-      p.it6 {
-        margin-left: 6em;
-        margin-top: 0px;
-        margin-bottom: 0px;
-        line-height: 100%;
-      }
-      p.it7 {
-        margin-left: 7em;
-        margin-top: 0px;
-        margin-bottom: 0px;
-        line-height: 100%;
-      }
-      p.it8 {
-        margin-left: 8em;
-        margin-top: 0px;
-        margin-bottom: 0px;
-        line-height: 100%;
-      }
-      p.it9 {
-        margin-left: 9em;
-        margin-bottom: 0px;
-        margin-top: 0px;
-        line-height: 100%;
-      }
-      p.block { }
-      p.group { }
-      p.alt { }
-      p.verse {
-        margin-bottom: 6px;
-      }
-      p.code {
-        font-family: inconsolata, andale mono, courier new, courier, monospace;
-        font-size: 90%;
-        text-align: left;
-        background-color: #eeeeee;
-      }
-      p.caption {
-        text-align: left;
-        font-size: 80%;
-        display: inline;
-      }
-      p.endnote {
-        font-size: 96%;
-        line-height: 120%;
-        text-align: left;
-        margin-right: 15mm;
-      }
-      p.endnote_indent {
-        font-size: 96%;
-        line-height: 120%;
-        text-align: left;
-        margin-left: 2em;
-        margin-right: 15mm;
-      }
-      p.center {
-        text-align: center;
-      }
-      p.bold {
-        font-weight: bold;
-      }
-      p.bold_left {
-        font-weight: bold;
-        text-align: left;
-      }
-      p.centerbold {
-        text-align: center;
-        font-weight: bold;
-      }
-      p.em {
-        font-weight: bold;
-        font-style: normal;
-        background: #fff3b6;
-      }
-      p.small {
-        font-size: 80%;
-        margin-top: 0px;
-        margin-bottom: 0px;
-        margin-right: 6px;
-        text-align: left;
-      }
-      .tiny, .tiny_left, .tiny_right, .tiny_center {
-        font-size: 10px;
-        margin-top: 0px;
-        margin-bottom: 0px;
-        color: #777777;
-        margin-right: 6px;
-        text-align: left;
-      }
-      p.tiny { }
-      p.tiny_left {
-        margin-left: 0px;
-        margin-right: 0px;
-        text-align: left;
-      }
-      p.tiny_right {
-        margin-right: 1em;
-        text-align: right;
-      }
-      p.tiny_center {
-        margin-left: 0px;
-        margin-right: 0px;
-        text-align: center;
-      }
-      p.pane, p.pane_title, p.pane_blurb, p.pane_link, p.pane_indent {
-        font-size: 80%;
-        margin-top: 0px;
-        margin-bottom: 0px;
-        margin-left: 2mm;
-        margin-right: 4px;
-        text-align: left;
-      }
-      p.pane { }
-      p.pane_title {
-        font-weight: bold;
-        margin-bottom: 0px;
-      }
-      p.pane_blurb {
-        font-size: 10px;
-        margin-bottom: 0px;
-      }
-      p.pane_link {
-        font-size: 10px;
-        margin-bottom: 0px;
-        margin-left: 4mm;
-      }
-      p.pane_indent {
-        font-size: 10px;
-        margin-bottom: 0px;
-        margin-left: 4mm;
-      }
-      p.concordance_word {
-        line-height: 150%;
-        font-weight: bold;
-        display: inline;
-        margin-top: 4px;
-        margin-bottom: 1px;
-      }
-      p.concordance_count {
-        font-size: 80%;
-        color: #777777;
-        display: inline;
-        margin-left: 0em;
-      }
-      p.concordance_object {
-        font-size: 80%;
-        line-height: 120%;
-        text-align: left;
-        margin-left: 3em;
-        margin-top: 1px;
-        margin-bottom: 3px;
-      }
-      p.book_index_lev1 {
-        line-height: 100%;
-        margin-top: 4px;
-        margin-bottom: 1px;
-      }
-      p.book_index_lev2 {
-        line-height: 100%;
-        text-align: left;
-        margin-left: 3em;
-        margin-top: 1px;
-        margin-bottom: 3px;
-      }
-      p.quickref {
-        font-size: 10px;
-        font-style: italic;
-        margin-top: 0px;
-        margin-bottom: 0px;
-        color: #777777;
-        margin-right: 5px;
-        text-align: left;
-      }
-      p.bigref {
-        font-size: 11px;
-        font-weight: bold;
-        margin-top: 0px;
-        margin-bottom: 0px;
-        color: #777777;
-        margin-right: 5px;
-        text-align: center;
-      }
-      p.letter {
-        font-weight: bold;
-        font-size: 80%;
-        margin-left: 0em;
-        margin-top: 2px;
-        margin-bottom: 2px;
-        margin-right: 6px;
-        text-align: left;
-        color: white;
-        background: #880000;
-      }
-      tt {
-        font-family: inconsolata, andale mono, courier new, courier, monospace;
-        background-color: #eeeeee;
-      }
-      label.ocn {
-        width: 2%;
-        float: right;
-        top: 0;
-        font-size: 10px;
-        margin-top: 0px;
-        margin-bottom: 5px;
-        color: #777777;
-        margin-right: 5px;
-        text-align: right;
-        background-color: #ffffff;
-      }
-      table { }
-      tr { }
-      th,td {
-        vertical-align: top;
-        text-align: left;
-      }
-      th {
-        font-weight: bold;
-      }
-      p.left,th.left,td.left {
-        text-align: left;
-      }
-      p.small_left,th.small_left,td.small_left {
-        text-align: left;
-        font-size: 80%;
-      }
-      p.right,th.right,td.right {
-        text-align: right;
-      }
-      #horizontal_links {
-        background: #eeeeee;
-        margin-left: 5%;
-        margin-right: 5%;
-      }
-      #horizontal {
-        margin: 0;
-        padding: 0 0 0 10px;
-        border-top: 1px solid #000077;
-        border-bottom: 1px solid #000077;
-      }
-      #horizontal li {
-        margin: 0 0 0 0;
-        padding: 0 16px 0 0;
-        display: inline;
-        list-style-type: none;
-        text-align: left;
-        background: none;
-      }
-      #horizontal a {
-        line-height: 12px;
-        margin: 0 0 0 0;
-        text-decoration: none;
-        color: #000077;
-      }
-      #horizontal a.active, #horizontal a:hover {
-        border-bottom: 2px solid #777777;
-        padding-bottom: 2px;
-        color: #000077;
-      }
-      #horizontal a:hover {
-        color: #000077;
-      }
-      #document_versions {
-        position: absolute;
-        top: 10mm;
-        right: 2%;
-        width: 12%;
-        float: right;
-      }
-      #vertical_links {
-        position: absolute;
-        top: 10mm;
-        right: 0px;
-        width: 20%;
-        background: #dddddd;
-        float: right;
-      }
-      #vertical {
-        padding: 0 12px 0px 0px;
-        margin-left: 2%;
-        margin-right: 2%;
-      }
-      #vertical li {
-        display: block;
-        list-style-type: none;
-      }
-      #vertical a {
-        line-height: 12px;
-        text-decoration: none;
-        color: #000077;
-      }
-      #vertical a.active, #vertical a:hover {
-        border-bottom: 2px solid #777777;
-        padding-bottom: 2px;
-        color: #000077;
-      }
-      ul, li {
-        list-style-type: none;
-        list-style: none;
-        padding-left: 20px;
-        display: block;
-        font-family: verdana, arial, georgia, tahoma, sans-serif, helvetica, times, roman;
-        font-weight: normal;
-        line-height: 150%;
-        text-align: left;
-        text-indent: 0mm;
-        margin-left: 1em;
-        margin-right: 2em;
-        margin-top: 3px;
-        margin-bottom: 3px;
-      }
-      li {
-        background: url(../image_sys/bullet_09.png) no-repeat 0px 6px;
-      }
-      ul {
-      }
-      li.bullet { margin-left: 1em; }
-      li.i1 { margin-left: 2em; }
-      li.i2 { margin-left: 3em; }
-      li.i3 { margin-left: 4em; }
-      li.i4 { margin-left: 5em; }
-      li.i5 { margin-left: 6em; }
-      li.i6 { margin-left: 7em; }
-      li.i7 { margin-left: 8em; }
-      li.i8 { margin-left: 9em; }
-      li.i9 { margin-left: 10em; }
-      li.doc, li.ref, li.refcenter {
-        margin-top: 0px;
-        margin-bottom: 0px;
-        margin-right: 0px;
-        font-size: 8px;
-        font-style: normal;
-        text-align: left;
-      }
-      li.doc {
-        background: url(../image_sys/bullet_09.png) no-repeat 0px 6px;
-        padding-left: 16px;
-        margin-left: 10px;
-        margin-right: 0px;
-      }
-      li.ref {
-        background: none;
-        padding-left: 0;
-        margin-left: 0;
-        color: #777777;
-      }
-      li.refcenter {
-        background: url(../image_sys/bullet_09.png) no-repeat 0px 6px;
-        padding-left: 20px;
-        margin-left: 10%;
-        font-size: 9px;
-        color: #777777;
-        text-align: center;
-      }
-      li.refbold {
-        list-style-type: none;
-        padding-left: 16px;
-        margin-left: 0;
-        margin-right: 10mm;
-        font-weight: bold;
-      }
-      h0, h1, h2, h3, h4, h5, h6, h7 {
-        font-weight: bold;
-        line-height: 120%;
-        text-align: left;
-        margin-top: 20px;
-        margin-bottom: 10px;
-      }
-      h4.norm, h5.norm, h6.norm, h7.norm {
-        margin-top: 10px;
-        margin-bottom: 0px;
-      }
-      h0.center, h1.center, h2.center, h3.center, h4.center, h5.center, h6.center, h7.center {
-        text-align: center;
-      }
-      h0 { font-size: 125%; }
-      h1 { font-size: 120%; }
-      h2 { font-size: 115%; }
-      h3 { font-size: 110%; }
-      h4 { font-size: 105%; }
-      h5 { font-size: 100%; }
-      h6 { font-size: 100%; }
-      h7 { font-size: 100%; }
-      h1.i {margin-left: 2em;}
-      h2.i {margin-left: 3em;}
-      h3.i {margin-left: 4em;}
-      h4.i {margin-left: 5em;}
-      h5.i {margin-left: 6em;}
-      h6.i {margin-left: 7em;}
-      h7.i {margin-left: 8em;}
-      h8.i {margin-left: 9em;}
-      h9.i {margin-left: 10em;}
-      h1.top_band {
-        display: inline;
-        text-align: left;
-        margin-top: 0;
-        margin-left: 4mm;
-        text-indent: 0mm;
-        font-weight: bold;
-        font-size: 120%;
-      }
-      h2.top_band_tiny {
-        font-size: 10px;
-        font-weight: normal;
-        margin-top: 0px;
-        margin-left: 4mm;
-        text-indent: 0mm;
-        margin-bottom: 0px;
-        color: #777777;
-        margin-left: 140px;
-        margin-right: 0px;
-        text-align: left;
-      }
-      p.top_band {
-        display: inline;
-        text-align: left;
-        margin-top: 0;
-        margin-left: 140px;
-        text-indent: 0mm;
-        font-weight: bold;
-        font-size: 120%;
-      }
-      p.top_band_tiny {
-        font-size: 10px;
-        margin-top: 0px;
-        margin-bottom: 0px;
-        color: #777777;
-        margin-left: 140px;
-        margin-right: 0px;
-        text-align: left;
-      }
-      p.top_band_image {
-        float: left;
-        display: inline;
-        text-align: left;
-        margin-top: 0;
-        margin-left: 1mm;
-        text-indent: 0mm;
-        margin-right: 1mm;
-      }
-      .banner, .subbanner {
-        font-weight: bold;
-        text-align: center;
-        margin-left: 10mm;
-        margin-right: 15mm;
-        margin-top: 20px;
-        margin-bottom: 10px;
-      }
-      h0.banner {
-        font-size: 125%;
-      }
-      h1.banner {
-        font-size: 120%;
-      }
-      h1.subbanner {
-        font-size: 115%;
-      }
-      h2.banner {
-        font-size: 110%;
-      }
-      h3.banner {
-        color: #990000;
-        font-size: 105%;
-      }
-      h4.banner {
-        color: #ff0000;
-        font-size: 100%;
-      }
-      h5.banner {
-      }
-      h6.banner {
-      }
-      h7.banner {
-      }
-      .toc {
-        font-weight: normal;
-        margin-top: 6px;
-        margin-bottom: 6px;
-      }
-      h0.toc {
-        margin-left: 1em;
-        font-size: 120%;
-        line-height: 150%;
-      }
-      h1.toc {
-        margin-left: 1em;
-        font-size: 115%;
-        line-height: 150%;
-      }
-      h2.toc {
-        margin-left: 2em;
-        font-size: 110%;
-        line-height: 140%;
-      }
-      h3.toc {
-        margin-left: 3em;
-        font-size: 105%;
-        line-height: 120%;
-      }
-      h4.toc {
-        margin-left: 4em;
-        font-size: 100%;
-        line-height: 120%;
-      }
-      h5.toc {
-        margin-left: 5em;
-        font-size: 95%;
-        line-height: 110%;
-      }
-      h6.toc {
-        margin-left: 6em;
-        font-size: 90%;
-        line-height: 110%;
-      }
-      h7.toc {
-        margin-left: 7em;
-        font-size: 85%;
-        line-height: 100%;
-      }
-      .microtoc {
-        margin-top: 2px;
-        margin-bottom: 2px;
-      }
-      h0.microtoc {
-        margin-left: 0mm;
-        font-size: 120%;
-      }
-      h1.microtoc {
-        margin-left: 0mm;
-        font-size: 115%;
-      }
-      h2.microtoc {
-        margin-left: 5mm;
-        font-size: 110%;
-      }
-      h3.microtoc {
-        margin-left: 10mm;
-        font-size: 105%;
-      }
-      h4.microtoc {
-        margin-left: 15mm;
-        font-weight: normal;
-        font-size: 100%;
-      }
-      h5.microtoc {
-        margin-left: 20mm;
-        font-weight: normal;
-        font-size: 95%;
-      }
-      h6.microtoc {
-        margin-left: 25mm;
-        font-weight: normal;
-        font-size: 90%;
-      }
-      h7.microtoc {
-        margin-left: 30mm;
-        font-weight: normal;
-        font-size: 85%;
-      }
-      .subtoc {
-        margin-right: 34%;
-        font-weight: normal;
-      }
-      h5.subtoc {
-        margin-left: 2em;
-        font-size: 80%;
-        margin-top: 2px;
-        margin-bottom: 2px;
-      }
-      h6.subtoc {
-        margin-left: 3em;
-        font-size: 75%;
-        margin-top: 0px;
-        margin-bottom: 0px;
-      }
-      h7.subtoc {
-        margin-left: 4em;
-        font-size: 70%;
-        margin-top: 0px;
-        margin-bottom: 0px;
-      }
-      div.substance {
-        width: 100%;
-        background-color: #ffffff;
-      }
-      div.ocn {
-        width: 5%;
-        float: right;
-        top: 0;
-        background-color: #ffffff;
-      }
-      div.endnote {
-        width: 95%;
-        background-color: #fffffff;
-      }
-      div.toc {
-        position: absolute;
-        float: left;
-        margin: 0;
-        padding: 0;
-        padding-top: 0.5em;
-        border: 0;
-        width: 13em;
-        background-color: #eeeeee;
-        margin-right:1em;
-      }
-      div.summary {
-        margin: 0;
-        padding: 0;
-        border-left: 13em solid #eeeeee;
-        padding-left: 1em;
-        background-color: #eeeeee;
-      }
-      div.content, div.main_column {
-        margin: 0;
-        padding: 0;
-        border-left: 13em solid #ffffff;
-        padding-left: 1em;
-        padding-right: 1em;
-      }
-      div.content0, div.main_column0 {
-        margin: 0;
-        padding: 0;
-        border-left: 0% solid #ffffff;
-        padding-left: 5%;
-      }
-      div.scroll {
-        margin: 0;
-        padding: 0;
-        padding-left: 1em;
-        padding-right: 1em;
-      }
-      div.content:after {
-        content:' ';
-        clear:both;
-        display:block;
-        height:0;
-        overflow:hidden
-      }
-      div.footer {
-        clear:left;
-        padding: 0.5em;
-        font-size: 80%;
-        margin: 0;
-      }
-      div.toc ul {
-        list-style: none;
-        padding: 0;
-        margin: 0;
-      }
-      div.toc li ul a, li ul span.currentlink
-      {
-        font-weight: normal;
-        font-size: 90%;
-        padding-left: 2em;
-        background-color: #eeeeee;
-      }
-      div.toc a, span.currentlink{
-        display:block;
-        text-decoration: none;
-        padding-left: 0.5em;
-        color: #0000aa;
-      }
-      hr {
-        width: 90%;
-      }
-      span.currentlink {
-        text-decoration: none;
-        background-color: #aaaaf9;
-      }
-      div.toc a:visited {
-        color: #0000aa;
-      }
-      div.toc a:hover {
-        color: #000000;
-        background-color: #f9f9aa;
-      }
-      .minitoc {
-        font-weight: normal;
-        margin-top: 2px;
-        margin-bottom: 2px;
-      }
-      h1.minitoc, h2.minitoc, h3.minitoc {
-        margin-left: 0em;
-        font-weight: bold;
-        text-align: left;
-        font-size: 90%;
-        margin-top: 4px;
-        margin-bottom: 4px;
-      }
-      h4.minitoc {
-        margin-left: 0em;
-        font-size: 90%;
-      }
-      h5.minitoc {
-        margin-left: 1em;
-        font-size: 85%;
-      }
-      h6.minitoc {
-        margin-left: 2em;
-        font-size: 85%;
-      }
-      h7.minitoc {
-        margin-left: 3em;
-        font-size: 80%;
-      }
-      h0.minitoc {
-        margin-left: 0em;
-        font-size: 90%;
-      }
-      h0.c, h1.c, h2.c, h3.c, h4.c, h5.c, h6.c, h7.c, p.c {
-        text-align: center
-      }
-      h1.red, h2.red, h3.red, h4.red, h5.red, h6.red, h7.red {
-        text-align: center;
-        color: #ff0000;
-        margin-left: 5mm;
-        text-indent: 5mm;
-        margin-top: 30px;
-        margin-bottom: 20px;
-        margin-right: 15mm;
-      }
-      h1.ruby, h2.ruby, h3.ruby, h4.ruby, h5.ruby, h6.ruby, h7.ruby {
-        text-align: center;
-        color: #990000;
-        margin-left: 5mm;
-        text-indent: 5mm;
-        margin-top: 30px;
-        margin-bottom: 20px;
-        margin-right: 15mm;
+  body {
+    color: black;
+    background: #ffffff;
+    background-color: #ffffff;
+  }
+  a:link {
+    color: #003399;
+    text-decoration: none;
+  }
+  a:visited {
+    color: #003399;
+    text-decoration: none;
+  }
+  a:hover {
+    color: #000000;
+    background-color: #f9f9aa;
+  }
+  a.lnkocn:link {
+    color: #777777;
+    text-decoration: none;
+  }
+  a:hover img {
+    background-color: #ffffff;
+  }
+  a:active {
+    color: #003399;
+    text-decoration: underline;
+  }
+  div {
+    margin-left: 0;
+    margin-right: 0;
+  }
+  div.p {
+    margin-left: 5%;
+    margin-right: 1%;
+  }
+  #top_band {
+    position: absolute;
+    top: 0;
+    bottom: 80px;
+    width: 100%;
+  }
+  #top_band_search {
+    position: absolute;
+    top: 0px;
+    right: 0px;
+    margin-left: 75%;
+    width: 20%;
+  }
+  #column_left {
+    position: absolute;
+    top: 80px;
+    left: 0;
+    margin-left: 1%;
+    width: 20%;
+  }
+  #column_center {
+    position: absolute;
+    top: 80px;
+    margin-left: 20%;
+    width: 55%;
+  }
+  #column_right {
+    position: absolute;
+    top: 80px;
+    right: 0px;
+    margin-left: 75%;
+    width: 25%;
+  }
+  #pane_major {
+    position: absolute;
+    top: 0px;
+    left: 0;
+    margin-left: 0;
+    width: 80%;
+  }
+  #pane_minor {
+    position: absolute;
+    top: 0px;
+    right: 0px;
+    margin-left: 75%;
+    width: 20%;
+    background-color: #aaaaaa;
+  }
+  .norm, .bold, .verse, .group, .block, .alt {
+    line-height: 133%;
+    margin-left: 0em;
+    margin-right: 2em;
+    margin-top: 12px;
+    margin-bottom: 0px;
+    padding-left: 0em;
+    text-indent: 0em;
+  }
+  p, h0, h1, h2, h3, h4, h5, h6, h7 {
+    display: block;
+    font-family: verdana, arial, georgia, tahoma, sans-serif, helvetica, times, roman;
+    font-size: 100%;
+    font-weight: normal;
+    line-height: 133%;
+    text-align: justify;
+    margin-left: 0em;
+    margin-right: 2em;
+    text-indent: 0mm;
+    margin-top: 0.8em;
+    margin-bottom: 0.8em;
+  }
+  /* indent */
+  p.norm { }
+  p.i1 {padding-left: 1em;}
+  p.i2 {padding-left: 2em;}
+  p.i3 {padding-left: 3em;}
+  p.i4 {padding-left: 4em;}
+  p.i5 {padding-left: 5em;}
+  p.i6 {padding-left: 6em;}
+  p.i7 {padding-left: 7em;}
+  p.i8 {padding-left: 8em;}
+  p.i9 {padding-left: 9em;}
+  /* hanging indent */
+  p.h0i0 {
+    padding-left: 0em;
+    text-indent:  0em;
+  }
+  p.h0i1 {
+    padding-left: 1em;
+    text-indent: -1em;
+  }
+  p.h0i2 {
+    padding-left: 2em;
+    text-indent: -2em;
+  }
+  p.h0i3 {
+    padding-left: 3em;
+    text-indent: -3em;
+  }
+  p.h0i4 {
+    padding-left: 4em;
+    text-indent: -4em;
+  }
+  p.h0i5 {
+    padding-left: 5em;
+    text-indent: -5em;
+  }
+  p.h0i6 {
+    padding-left: 6em;
+    text-indent: -6em;
+  }
+  p.h0i7 {
+    padding-left: 7em;
+    text-indent: -7em;
+  }
+  p.h0i8 {
+    padding-left: 8em;
+    text-indent: -8em;
+  }
+  p.h0i9 {
+    padding-left: 9em;
+    text-indent: -9em;
+  }
+  p.h1i0 {
+    padding-left: 0em;
+    text-indent:  1em;
+  }
+  p.h1i1 {
+    padding-left: 1em;
+    text-indent:  0em;
+  }
+  p.h1i2 {
+    padding-left: 2em;
+    text-indent: -1em;
+  }
+  p.h1i3 {
+    padding-left: 3em;
+    text-indent: -2em;
+  }
+  p.h1i4 {
+    padding-left: 4em;
+    text-indent: -3em;
+  }
+  p.h1i5 {
+    padding-left: 5em;
+    text-indent: -4em;
+  }
+  p.h1i6 {
+    padding-left: 6em;
+    text-indent: -5em;
+  }
+  p.h1i7 {
+    padding-left: 7em;
+    text-indent: -6em;
+  }
+  p.h1i8 {
+    padding-left: 8em;
+    text-indent: -7em;
+  }
+  p.h1i9 {
+    padding-left: 9em;
+    text-indent: -8em;
+  }
+  p.h2i0 {
+    padding-left: 0em;
+    text-indent:  2em;
+  }
+  p.h2i1 {
+    padding-left: 1em;
+    text-indent:  1em;
+  }
+  p.h2i2 {
+    padding-left: 2em;
+    text-indent:  0em;
+  }
+  p.h2i3 {
+    padding-left: 3em;
+    text-indent: -1em;
+  }
+  p.h2i4 {
+    padding-left: 4em;
+    text-indent: -2em;
+  }
+  p.h2i5 {
+    padding-left: 5em;
+    text-indent: -3em;
+  }
+  p.h2i6 {
+    padding-left: 6em;
+    text-indent: -4em;
+  }
+  p.h2i7 {
+    padding-left: 7em;
+    text-indent: -5em;
+  }
+  p.h2i8 {
+    padding-left: 8em;
+    text-indent: -6em;
+  }
+  p.h2i9 {
+    padding-left: 9em;
+    text-indent: -7em;
+  }
+  p.h3i0 {
+    padding-left: 0em;
+    text-indent:  3em;
+  }
+  p.h3i1 {
+    padding-left: 1em;
+    text-indent:  2em;
+  }
+  p.h3i2 {
+    padding-left: 2em;
+    text-indent:  1em;
+  }
+  p.h3i3 {
+    padding-left: 3em;
+    text-indent:  0em;
+  }
+  p.h3i4 {
+    padding-left: 4em;
+    text-indent: -1em;
+  }
+  p.h3i5 {
+    padding-left: 5em;
+    text-indent: -2em;
+  }
+  p.h3i6 {
+    padding-left: 6em;
+    text-indent: -3em;
+  }
+  p.h3i7 {
+    padding-left: 7em;
+    text-indent: -4em;
+  }
+  p.h3i8 {
+    padding-left: 8em;
+    text-indent: -5em;
+  }
+  p.h3i9 {
+    padding-left: 9em;
+    text-indent: -6em;
+  }
+  p.h4i0 {
+    padding-left: 0em;
+    text-indent:  4em;
+  }
+  p.h4i1 {
+    padding-left: 1em;
+    text-indent:  3em;
+  }
+  p.h4i2 {
+    padding-left: 2em;
+    text-indent:  2em;
+  }
+  p.h4i3 {
+    padding-left: 3em;
+    text-indent:  1em;
+  }
+  p.h4i4 {
+    padding-left: 4em;
+    text-indent:  0em;
+  }
+  p.h4i5 {
+    padding-left: 5em;
+    text-indent: -1em;
+  }
+  p.h4i6 {
+    padding-left: 6em;
+    text-indent: -2em;
+  }
+  p.h4i7 {
+    padding-left: 7em;
+    text-indent: -3em;
+  }
+  p.h4i8 {
+    padding-left: 8em;
+    text-indent: -4em;
+  }
+  p.h4i9 {
+    padding-left: 9em;
+    text-indent: -5em;
+  }
+  p.h5i0 {
+    padding-left: 0em;
+    text-indent:  5em;
+  }
+  p.h5i1 {
+    padding-left: 1em;
+    text-indent:  4em;
+  }
+  p.h5i2 {
+    padding-left: 2em;
+    text-indent:  3em;
+  }
+  p.h5i3 {
+    padding-left: 3em;
+    text-indent:  2em;
+  }
+  p.h5i4 {
+    padding-left: 4em;
+    text-indent:  1em;
+  }
+  p.h5i5 {
+    padding-left: 5em;
+    text-indent:  0em;
+  }
+  p.h5i6 {
+    padding-left: 6em;
+    text-indent: -1em;
+  }
+  p.h5i7 {
+    padding-left: 7em;
+    text-indent: -2em;
+  }
+  p.h5i8 {
+    padding-left: 8em;
+    text-indent: -3em;
+  }
+  p.h5i9 {
+    padding-left: 9em;
+    text-indent: -4em;
+  }
+  p.h6i0 {
+    padding-left: 0em;
+    text-indent:  6em;
+  }
+  p.h6i1 {
+    padding-left: 1em;
+    text-indent:  5em;
+  }
+  p.h6i2 {
+    padding-left: 2em;
+    text-indent:  4em;
+  }
+  p.h6i3 {
+    padding-left: 3em;
+    text-indent:  3em;
+  }
+  p.h6i4 {
+    padding-left: 4em;
+    text-indent:  2em;
+  }
+  p.h6i5 {
+    padding-left: 5em;
+    text-indent:  1em;
+  }
+  p.h6i6 {
+    padding-left: 6em;
+    text-indent:  0em;
+  }
+  p.h6i7 {
+    padding-left: 7em;
+    text-indent: -1em;
+  }
+  p.h6i8 {
+    padding-left: 8em;
+    text-indent: -2em;
+  }
+  p.h6i9 {
+    padding-left: 9em;
+    text-indent: -3em;
+  }
+  p.h7i0 {
+    padding-left: 0em;
+    text-indent:  7em;
+  }
+  p.h7i1 {
+    padding-left: 1em;
+    text-indent:  6em;
+  }
+  p.h7i2 {
+    padding-left: 2em;
+    text-indent:  5em;
+  }
+  p.h7i3 {
+    padding-left: 3em;
+    text-indent:  4em;
+  }
+  p.h7i4 {
+    padding-left: 4em;
+    text-indent:  3em;
+  }
+  p.h7i5 {
+    padding-left: 5em;
+    text-indent:  2em;
+  }
+  p.h7i6 {
+    padding-left: 6em;
+    text-indent:  1em;
+  }
+  p.h7i7 {
+    padding-left: 7em;
+    text-indent:  0em;
+  }
+  p.h7i8 {
+    padding-left: 8em;
+    text-indent: -1em;
+  }
+  p.h7i9 {
+    padding-left: 9em;
+    text-indent: -2em;
+  }
+  p.h8i0 {
+    padding-left: 0em;
+    text-indent:  8em;
+  }
+  p.h8i1 {
+    padding-left: 1em;
+    text-indent:  7em;
+  }
+  p.h8i2 {
+    padding-left: 2em;
+    text-indent:  6em;
+  }
+  p.h8i3 {
+    padding-left: 3em;
+    text-indent:  5em;
+  }
+  p.h8i4 {
+    padding-left: 4em;
+    text-indent:  4em;
+  }
+  p.h8i5 {
+    padding-left: 5em;
+    text-indent:  3em;
+  }
+  p.h8i6 {
+    padding-left: 6em;
+    text-indent:  2em;
+  }
+  p.h8i7 {
+    padding-left: 7em;
+    text-indent:  1em;
+  }
+  p.h8i8 {
+    padding-left: 8em;
+    text-indent:  0em;
+  }
+  p.h8i9 {
+    padding-left: 9em;
+    text-indent: -1em;
+  }
+  p.h9i0 {
+    padding-left: 0em;
+    text-indent:  9em;
+  }
+  p.h9i1 {
+    padding-left: 1em;
+    text-indent:  8em;
+  }
+  p.h9i2 {
+    padding-left: 2em;
+    text-indent:  7em;
+  }
+  p.h9i3 {
+    padding-left: 3em;
+    text-indent:  6em;
+  }
+  p.h9i4 {
+    padding-left: 4em;
+    text-indent:  5em;
+  }
+  p.h9i5 {
+    padding-left: 5em;
+    text-indent:  4em;
+  }
+  p.h9i6 {
+    padding-left: 6em;
+    text-indent:  3em;
+  }
+  p.h9i7 {
+    padding-left: 7em;
+    text-indent:  2em;
+  }
+  p.h9i8 {
+    padding-left: 8em;
+    text-indent:  1em;
+  }
+  p.h9i9 {
+    padding-left: 9em;
+    text-indent:  0em;
+  }
+  p.it0 {
+    margin-left: 0em;
+    margin-top: 6px;
+    margin-bottom: 0px;
+    line-height: 100%;
+  }
+  p.it1 {
+    margin-left: 1em;
+    margin-top: 0px;
+    margin-bottom: 0px;
+    line-height: 100%;
+  }
+  p.it2 {
+    margin-left: 2em;
+    margin-top: 0px;
+    margin-bottom: 0px;
+    line-height: 100%;
+  }
+  p.it3 {
+    margin-left: 3em;
+    margin-top: 0px;
+    margin-bottom: 0px;
+    line-height: 100%;
+  }
+  p.it4 {
+    margin-left: 4em;
+    margin-top: 0px;
+    margin-bottom: 0px;
+    line-height: 100%;
+  }
+  p.it5 {
+    margin-left: 5em;
+    margin-top: 0px;
+    margin-bottom: 0px;
+    line-height: 100%;
+  }
+  p.it6 {
+    margin-left: 6em;
+    margin-top: 0px;
+    margin-bottom: 0px;
+    line-height: 100%;
+  }
+  p.it7 {
+    margin-left: 7em;
+    margin-top: 0px;
+    margin-bottom: 0px;
+    line-height: 100%;
+  }
+  p.it8 {
+    margin-left: 8em;
+    margin-top: 0px;
+    margin-bottom: 0px;
+    line-height: 100%;
+  }
+  p.it9 {
+    margin-left: 9em;
+    margin-bottom: 0px;
+    margin-top: 0px;
+    line-height: 100%;
+  }
+  p.block { }
+  p.group { }
+  p.alt { }
+  p.verse {
+    margin-bottom: 6px;
+  }
+  p.code {
+    font-family: inconsolata, andale mono, courier new, courier, monospace;
+    font-size: 90%;
+    text-align: left;
+    background-color: #eeeeee;
+  }
+  p.caption {
+    text-align: left;
+    font-size: 80%;
+    display: inline;
+  }
+  p.endnote {
+    font-size: 96%;
+    line-height: 120%;
+    text-align: left;
+    margin-right: 15mm;
+  }
+  p.endnote_indent {
+    font-size: 96%;
+    line-height: 120%;
+    text-align: left;
+    margin-left: 2em;
+    margin-right: 15mm;
+  }
+  p.center {
+    text-align: center;
+  }
+  p.bold {
+    font-weight: bold;
+  }
+  p.bold_left {
+    font-weight: bold;
+    text-align: left;
+  }
+  p.centerbold {
+    text-align: center;
+    font-weight: bold;
+  }
+  p.em {
+    font-weight: bold;
+    font-style: normal;
+    background: #fff3b6;
+  }
+  p.small {
+    font-size: 80%;
+    margin-top: 0px;
+    margin-bottom: 0px;
+    margin-right: 6px;
+    text-align: left;
+  }
+  .tiny, .tiny_left, .tiny_right, .tiny_center {
+    font-size: 10px;
+    margin-top: 0px;
+    margin-bottom: 0px;
+    color: #777777;
+    margin-right: 6px;
+    text-align: left;
+  }
+  p.tiny { }
+  p.tiny_left {
+    margin-left: 0px;
+    margin-right: 0px;
+    text-align: left;
+  }
+  p.tiny_right {
+    margin-right: 1em;
+    text-align: right;
+  }
+  p.tiny_center {
+    margin-left: 0px;
+    margin-right: 0px;
+    text-align: center;
+  }
+  p.pane, p.pane_title, p.pane_blurb, p.pane_link, p.pane_indent {
+    font-size: 80%;
+    margin-top: 0px;
+    margin-bottom: 0px;
+    margin-left: 2mm;
+    margin-right: 4px;
+    text-align: left;
+  }
+  p.pane { }
+  p.pane_title {
+    font-weight: bold;
+    margin-bottom: 0px;
+  }
+  p.pane_blurb {
+    font-size: 10px;
+    margin-bottom: 0px;
+  }
+  p.pane_link {
+    font-size: 10px;
+    margin-bottom: 0px;
+    margin-left: 4mm;
+  }
+  p.pane_indent {
+    font-size: 10px;
+    margin-bottom: 0px;
+    margin-left: 4mm;
+  }
+  p.concordance_word {
+    line-height: 150%;
+    font-weight: bold;
+    display: inline;
+    margin-top: 4px;
+    margin-bottom: 1px;
+  }
+  p.concordance_count {
+    font-size: 80%;
+    color: #777777;
+    display: inline;
+    margin-left: 0em;
+  }
+  p.concordance_object {
+    font-size: 80%;
+    line-height: 120%;
+    text-align: left;
+    margin-left: 3em;
+    margin-top: 1px;
+    margin-bottom: 3px;
+  }
+  p.book_index_lev1 {
+    line-height: 100%;
+    margin-top: 4px;
+    margin-bottom: 1px;
+  }
+  p.book_index_lev2 {
+    line-height: 100%;
+    text-align: left;
+    margin-left: 3em;
+    margin-top: 1px;
+    margin-bottom: 3px;
+  }
+  p.quickref {
+    font-size: 10px;
+    font-style: italic;
+    margin-top: 0px;
+    margin-bottom: 0px;
+    color: #777777;
+    margin-right: 5px;
+    text-align: left;
+  }
+  p.bigref {
+    font-size: 11px;
+    font-weight: bold;
+    margin-top: 0px;
+    margin-bottom: 0px;
+    color: #777777;
+    margin-right: 5px;
+    text-align: center;
+  }
+  p.letter {
+    font-weight: bold;
+    font-size: 80%;
+    margin-left: 0em;
+    margin-top: 2px;
+    margin-bottom: 2px;
+    margin-right: 6px;
+    text-align: left;
+    color: white;
+    background: #880000;
+  }
+  tt {
+    font-family: inconsolata, andale mono, courier new, courier, monospace;
+    background-color: #eeeeee;
+  }
+  label.ocn {
+    width: 2%;
+    float: right;
+    top: 0;
+    font-size: 10px;
+    margin-top: 0px;
+    margin-bottom: 5px;
+    color: #777777;
+    margin-right: 5px;
+    text-align: right;
+    background-color: #ffffff;
+  }
+  table { }
+  tr { }
+  th,td {
+    vertical-align: top;
+    text-align: left;
+  }
+  th {
+    font-weight: bold;
+  }
+  p.left,th.left,td.left {
+    text-align: left;
+  }
+  p.small_left,th.small_left,td.small_left {
+    text-align: left;
+    font-size: 80%;
+  }
+  p.right,th.right,td.right {
+    text-align: right;
+  }
+  #horizontal_links {
+    background: #eeeeee;
+    margin-left: 5%;
+    margin-right: 5%;
+  }
+  #horizontal {
+    margin: 0;
+    padding: 0 0 0 10px;
+    border-top: 1px solid #000077;
+    border-bottom: 1px solid #000077;
+  }
+  #horizontal li {
+    margin: 0 0 0 0;
+    padding: 0 16px 0 0;
+    display: inline;
+    list-style-type: none;
+    text-align: left;
+    background: none;
+  }
+  #horizontal a {
+    line-height: 12px;
+    margin: 0 0 0 0;
+    text-decoration: none;
+    color: #000077;
+  }
+  #horizontal a.active, #horizontal a:hover {
+    border-bottom: 2px solid #777777;
+    padding-bottom: 2px;
+    color: #000077;
+  }
+  #horizontal a:hover {
+    color: #000077;
+  }
+  #document_versions {
+    position: absolute;
+    top: 10mm;
+    right: 2%;
+    width: 12%;
+    float: right;
+  }
+  #vertical_links {
+    position: absolute;
+    top: 10mm;
+    right: 0px;
+    width: 20%;
+    background: #dddddd;
+    float: right;
+  }
+  #vertical {
+    padding: 0 12px 0px 0px;
+    margin-left: 2%;
+    margin-right: 2%;
+  }
+  #vertical li {
+    display: block;
+    list-style-type: none;
+  }
+  #vertical a {
+    line-height: 12px;
+    text-decoration: none;
+    color: #000077;
+  }
+  #vertical a.active, #vertical a:hover {
+    border-bottom: 2px solid #777777;
+    padding-bottom: 2px;
+    color: #000077;
+  }
+  ul, li {
+    list-style-type: none;
+    list-style: none;
+    padding-left: 20px;
+    display: block;
+    font-family: verdana, arial, georgia, tahoma, sans-serif, helvetica, times, roman;
+    font-weight: normal;
+    line-height: 150%;
+    text-align: left;
+    text-indent: 0mm;
+    margin-left: 1em;
+    margin-right: 2em;
+    margin-top: 3px;
+    margin-bottom: 3px;
+  }
+  li {
+    background: url(../image_sys/bullet_09.png) no-repeat 0px 6px;
+  }
+  ul {
+  }
+  li.bullet { margin-left: 1em; }
+  li.i1 { margin-left: 2em; }
+  li.i2 { margin-left: 3em; }
+  li.i3 { margin-left: 4em; }
+  li.i4 { margin-left: 5em; }
+  li.i5 { margin-left: 6em; }
+  li.i6 { margin-left: 7em; }
+  li.i7 { margin-left: 8em; }
+  li.i8 { margin-left: 9em; }
+  li.i9 { margin-left: 10em; }
+  li.doc, li.ref, li.refcenter {
+    margin-top: 0px;
+    margin-bottom: 0px;
+    margin-right: 0px;
+    font-size: 8px;
+    font-style: normal;
+    text-align: left;
+  }
+  li.doc {
+    background: url(../image_sys/bullet_09.png) no-repeat 0px 6px;
+    padding-left: 16px;
+    margin-left: 10px;
+    margin-right: 0px;
+  }
+  li.ref {
+    background: none;
+    padding-left: 0;
+    margin-left: 0;
+    color: #777777;
+  }
+  li.refcenter {
+    background: url(../image_sys/bullet_09.png) no-repeat 0px 6px;
+    padding-left: 20px;
+    margin-left: 10%;
+    font-size: 9px;
+    color: #777777;
+    text-align: center;
+  }
+  li.refbold {
+    list-style-type: none;
+    padding-left: 16px;
+    margin-left: 0;
+    margin-right: 10mm;
+    font-weight: bold;
+  }
+  h0, h1, h2, h3, h4, h5, h6, h7 {
+    font-weight: bold;
+    line-height: 120%;
+    text-align: left;
+    margin-top: 20px;
+    margin-bottom: 10px;
+  }
+  h4.norm, h5.norm, h6.norm, h7.norm {
+    margin-top: 10px;
+    margin-bottom: 0px;
+  }
+  h0.center, h1.center, h2.center, h3.center, h4.center, h5.center, h6.center, h7.center {
+    text-align: center;
+  }
+  h0 { font-size: 125%; }
+  h1 { font-size: 120%; }
+  h2 { font-size: 115%; }
+  h3 { font-size: 110%; }
+  h4 { font-size: 105%; }
+  h5 { font-size: 100%; }
+  h6 { font-size: 100%; }
+  h7 { font-size: 100%; }
+  h1.i {margin-left: 2em;}
+  h2.i {margin-left: 3em;}
+  h3.i {margin-left: 4em;}
+  h4.i {margin-left: 5em;}
+  h5.i {margin-left: 6em;}
+  h6.i {margin-left: 7em;}
+  h7.i {margin-left: 8em;}
+  h8.i {margin-left: 9em;}
+  h9.i {margin-left: 10em;}
+  h1.top_band {
+    display: inline;
+    text-align: left;
+    margin-top: 0;
+    margin-left: 4mm;
+    text-indent: 0mm;
+    font-weight: bold;
+    font-size: 120%;
+  }
+  h2.top_band_tiny {
+    font-size: 10px;
+    font-weight: normal;
+    margin-top: 0px;
+    margin-left: 4mm;
+    text-indent: 0mm;
+    margin-bottom: 0px;
+    color: #777777;
+    margin-left: 140px;
+    margin-right: 0px;
+    text-align: left;
+  }
+  p.top_band {
+    display: inline;
+    text-align: left;
+    margin-top: 0;
+    margin-left: 140px;
+    text-indent: 0mm;
+    font-weight: bold;
+    font-size: 120%;
+  }
+  p.top_band_tiny {
+    font-size: 10px;
+    margin-top: 0px;
+    margin-bottom: 0px;
+    color: #777777;
+    margin-left: 140px;
+    margin-right: 0px;
+    text-align: left;
+  }
+  p.top_band_image {
+    float: left;
+    display: inline;
+    text-align: left;
+    margin-top: 0;
+    margin-left: 1mm;
+    text-indent: 0mm;
+    margin-right: 1mm;
+  }
+  .banner, .subbanner {
+    font-weight: bold;
+    text-align: center;
+    margin-left: 10mm;
+    margin-right: 15mm;
+    margin-top: 20px;
+    margin-bottom: 10px;
+  }
+  h0.banner {
+    font-size: 125%;
+  }
+  h1.banner {
+    font-size: 120%;
+  }
+  h1.subbanner {
+    font-size: 115%;
+  }
+  h2.banner {
+    font-size: 110%;
+  }
+  h3.banner {
+    color: #990000;
+    font-size: 105%;
+  }
+  h4.banner {
+    color: #ff0000;
+    font-size: 100%;
+  }
+  h5.banner {
+  }
+  h6.banner {
+  }
+  h7.banner {
+  }
+  .toc {
+    font-weight: normal;
+    margin-top: 6px;
+    margin-bottom: 6px;
+  }
+  h0.toc {
+    margin-left: 1em;
+    font-size: 120%;
+    line-height: 150%;
+  }
+  h1.toc {
+    margin-left: 1em;
+    font-size: 115%;
+    line-height: 150%;
+  }
+  h2.toc {
+    margin-left: 2em;
+    font-size: 110%;
+    line-height: 140%;
+  }
+  h3.toc {
+    margin-left: 3em;
+    font-size: 105%;
+    line-height: 120%;
+  }
+  h4.toc {
+    margin-left: 4em;
+    font-size: 100%;
+    line-height: 120%;
+  }
+  h5.toc {
+    margin-left: 5em;
+    font-size: 95%;
+    line-height: 110%;
+  }
+  h6.toc {
+    margin-left: 6em;
+    font-size: 90%;
+    line-height: 110%;
+  }
+  h7.toc {
+    margin-left: 7em;
+    font-size: 85%;
+    line-height: 100%;
+  }
+  .microtoc {
+    margin-top: 2px;
+    margin-bottom: 2px;
+  }
+  h0.microtoc {
+    margin-left: 0mm;
+    font-size: 120%;
+  }
+  h1.microtoc {
+    margin-left: 0mm;
+    font-size: 115%;
+  }
+  h2.microtoc {
+    margin-left: 5mm;
+    font-size: 110%;
+  }
+  h3.microtoc {
+    margin-left: 10mm;
+    font-size: 105%;
+  }
+  h4.microtoc {
+    margin-left: 15mm;
+    font-weight: normal;
+    font-size: 100%;
+  }
+  h5.microtoc {
+    margin-left: 20mm;
+    font-weight: normal;
+    font-size: 95%;
+  }
+  h6.microtoc {
+    margin-left: 25mm;
+    font-weight: normal;
+    font-size: 90%;
+  }
+  h7.microtoc {
+    margin-left: 30mm;
+    font-weight: normal;
+    font-size: 85%;
+  }
+  .subtoc {
+    margin-right: 34%;
+    font-weight: normal;
+  }
+  h5.subtoc {
+    margin-left: 2em;
+    font-size: 80%;
+    margin-top: 2px;
+    margin-bottom: 2px;
+  }
+  h6.subtoc {
+    margin-left: 3em;
+    font-size: 75%;
+    margin-top: 0px;
+    margin-bottom: 0px;
+  }
+  h7.subtoc {
+    margin-left: 4em;
+    font-size: 70%;
+    margin-top: 0px;
+    margin-bottom: 0px;
+  }
+  div.substance {
+    width: 100%;
+    background-color: #ffffff;
+  }
+  div.ocn {
+    width: 5%;
+    float: right;
+    top: 0;
+    background-color: #ffffff;
+  }
+  div.endnote {
+    width: 95%;
+    background-color: #fffffff;
+  }
+  div.toc {
+    position: absolute;
+    float: left;
+    margin: 0;
+    padding: 0;
+    padding-top: 0.5em;
+    border: 0;
+    width: 13em;
+    background-color: #eeeeee;
+    margin-right:1em;
+  }
+  div.summary {
+    margin: 0;
+    padding: 0;
+    border-left: 13em solid #eeeeee;
+    padding-left: 1em;
+    background-color: #eeeeee;
+  }
+  div.content, div.main_column {
+    margin: 0;
+    padding: 0;
+    border-left: 13em solid #ffffff;
+    padding-left: 1em;
+    padding-right: 1em;
+  }
+  div.content0, div.main_column0 {
+    margin: 0;
+    padding: 0;
+    border-left: 0% solid #ffffff;
+    padding-left: 5%;
+  }
+  div.scroll {
+    margin: 0;
+    padding: 0;
+    padding-left: 1em;
+    padding-right: 1em;
+  }
+  div.content:after {
+    content:' ';
+    clear:both;
+    display:block;
+    height:0;
+    overflow:hidden
+  }
+  div.footer {
+    clear:left;
+    padding: 0.5em;
+    font-size: 80%;
+    margin: 0;
+  }
+  div.toc ul {
+    list-style: none;
+    padding: 0;
+    margin: 0;
+  }
+  div.toc li ul a, li ul span.currentlink
+  {
+    font-weight: normal;
+    font-size: 90%;
+    padding-left: 2em;
+    background-color: #eeeeee;
+  }
+  div.toc a, span.currentlink{
+    display:block;
+    text-decoration: none;
+    padding-left: 0.5em;
+    color: #0000aa;
+  }
+  hr {
+    width: 90%;
+  }
+  span.currentlink {
+    text-decoration: none;
+    background-color: #aaaaf9;
+  }
+  div.toc a:visited {
+    color: #0000aa;
+  }
+  div.toc a:hover {
+    color: #000000;
+    background-color: #f9f9aa;
+  }
+  .minitoc {
+    font-weight: normal;
+    margin-top: 2px;
+    margin-bottom: 2px;
+  }
+  h1.minitoc, h2.minitoc, h3.minitoc {
+    margin-left: 0em;
+    font-weight: bold;
+    text-align: left;
+    font-size: 90%;
+    margin-top: 4px;
+    margin-bottom: 4px;
+  }
+  h4.minitoc {
+    margin-left: 0em;
+    font-size: 90%;
+  }
+  h5.minitoc {
+    margin-left: 1em;
+    font-size: 85%;
+  }
+  h6.minitoc {
+    margin-left: 2em;
+    font-size: 85%;
+  }
+  h7.minitoc {
+    margin-left: 3em;
+    font-size: 80%;
+  }
+  h0.minitoc {
+    margin-left: 0em;
+    font-size: 90%;
+  }
+  h0.c, h1.c, h2.c, h3.c, h4.c, h5.c, h6.c, h7.c, p.c {
+    text-align: center
+  }
+  h1.red, h2.red, h3.red, h4.red, h5.red, h6.red, h7.red {
+    text-align: center;
+    color: #ff0000;
+    margin-left: 5mm;
+    text-indent: 5mm;
+    margin-top: 30px;
+    margin-bottom: 20px;
+    margin-right: 15mm;
+  }
+  h1.ruby, h2.ruby, h3.ruby, h4.ruby, h5.ruby, h6.ruby, h7.ruby {
+    text-align: center;
+    color: #990000;
+    margin-left: 5mm;
+    text-indent: 5mm;
+    margin-top: 30px;
+    margin-bottom: 20px;
+    margin-right: 15mm;
   }";
   return css;
 }
-- 
cgit v1.2.3