1<?xml version="1.0" encoding="UTF-8" ?> 2<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" 3 "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" 4[ 5<!ENTITY % defs SYSTEM "defs.ent"> %defs; 6]> 7 8<book id="localedb"> 9 10<bookinfo> 11 <title>X Locale Database Specification</title> 12 <releaseinfo>X Version 11, Release &fullrelvers;</releaseinfo> 13 <authorgroup> 14 <author> 15 <firstname>Yoshio</firstname><surname>Horiuchi</surname> 16 <affiliation><orgname>IBM Japan</orgname></affiliation> 17 </author> 18 </authorgroup> 19 <copyright><year>1994</year><holder>IBM Corporation</holder></copyright> 20 21<legalnotice> 22<para> 23License to use, copy, modify, and distribute this software and its documentation for 24any purpose and without fee is hereby granted, provided that the above copyright notice 25appear in all copies and that both that copyright notice and this permission notice 26appear in supporting documentation, and that the name of IBM not be used in advertising 27or publicity pertaining to distribution of the software without specific, written 28prior permission. 29</para> 30<para> 31IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED 32WARRANTIES OF MERCHANTABILITY, FITNESS, AND NONINFRINGEMENT OF THIRD PARTY RIGHTS, 33IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES 34OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN 35AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION 36WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 37</para> 38</legalnotice> 39 40<legalnotice> 41<para role="multiLicensing">Copyright © 1994 X Consortium</para> 42<para> 43Permission is hereby granted, free of charge, to any person obtaining a copy 44of this software and associated documentation files 45(the “Software”), to deal in the Software without restriction, 46including without limitation the rights to use, copy, modify, merge, publish, 47distribute, sublicense, and/or sell copies of the Software, and to permit 48persons to whom the Software is furnished to do so, subject to the following 49conditions: 50</para> 51 52<para> 53The above copyright notice and this permission notice shall be included in all 54copies or substantial portions of the Software. 55</para> 56 57<para> 58THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, 59EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 60MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN 61NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 62LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 63OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 64THE SOFTWARE. 65</para> 66 67<para> 68Except as contained in this notice, the name of the X Consortium shall not be 69used in advertising or otherwise to promote the sale, use or other dealings in 70this Software without prior written authorization from the X Consortium. 71</para> 72 73<para>X Window System is a trademark of The Open Group.</para> 74 75</legalnotice> 76</bookinfo> 77 78<chapter id='LocaleDB'> 79<title>LocaleDB</title> 80 81<sect1 id="General"> 82<title>General</title> 83<para> 84An X Locale Database contains the subset of a user's environment that 85depends on language, in X Window System. It is made up from one or more 86categories. Each category consists of some classes and sub-classes. 87</para> 88 89<para> 90It is provided as a plain ASCII text file, so a user can change its 91contents easily. It allows a user to customize the behavior of 92internationalized portion of Xlib without changing Xlib itself. 93</para> 94 95<para> 96This document describes; 97</para> 98 99<itemizedlist> 100 <listitem> 101 <para> 102Database Format Definition 103 </para> 104 </listitem> 105 <listitem> 106 <para> 107Contents of Database in sample implementation 108<!-- .RE --> 109 </para> 110 </listitem> 111</itemizedlist> 112 113<para> 114Since it is hard to define the set of required information for all 115platforms, only the flexible database format is defined. 116The available entries in database are implementation dependent. 117</para> 118 119</sect1> 120<sect1 id="Database_Format_Definition"> 121<title>Database Format Definition</title> 122<para> 123The X Locale Database contains one or more category definitions. 124This section describes the format of each category definition. 125</para> 126 127<para> 128The category definition consists of one or more class definitions. 129Each class definition has a pair of class name and class value, or 130has several subclasses which are enclosed by the left brace ({) and 131the right brace (}). 132</para> 133 134<para> 135Comments can be placed by using the number sign character (#). 136Putting the number sign character on the top of the line indicates 137that the entire line is comment. Also, putting any whitespace character 138followed by the number sign character indicates that a part of the line 139(from the number sign to the end of the line) is comment. 140A line can be continued by placing backslash (\) character as the 141last character on the line; this continuation character will be 142discarded from the input. Comment lines cannot be continued on 143a subsequent line using an escaped new line character. 144</para> 145 146<para> 147X Locale Database only accepts XPCS, the X Portable Character Set. 148The reserved symbols are; the quotation mark("), the number sign (#), 149the semicolon(;), the backslash(\), the left brace({) and 150the right brace(}). 151</para> 152 153<para> 154The format of category definition is; 155</para> 156 157<informaltable frame="none"> 158 <?dbfo keep-together="auto" ?> 159 <tgroup cols='3' align='left' colsep='0' rowsep='0'> 160 <colspec colname='c1' colwidth='3.0*'/> 161 <colspec colname='c2' colwidth='1.0*'/> 162 <colspec colname='c3' colwidth='6.0*'/> 163 <tbody> 164 <row> 165 <entry>CategoryDefinition</entry> 166 <entry>::=</entry> 167 <entry>CategoryHeader CategorySpec CategoryTrailer</entry> 168 </row> 169 <row> 170 <entry>CategoryHeader</entry> 171 <entry>::=</entry> 172 <entry>CategoryName NL</entry> 173 </row> 174 <row> 175 <entry>CategorySpec</entry> 176 <entry>::=</entry> 177 <entry>{ ClassSpec }</entry> 178 </row> 179 <row> 180 <entry>CategoryTrailer</entry> 181 <entry>::=</entry> 182 <entry>"END" Delimiter CategoryName NL</entry> 183 </row> 184 <row> 185 <entry>CategoryName</entry> 186 <entry>::=</entry> 187 <entry>String</entry> 188 </row> 189 <row> 190 <entry>ClassSpec</entry> 191 <entry>::=</entry> 192 <entry>ClassName Delimiter ClassValue NL</entry> 193 </row> 194 <row> 195 <entry>ClassName</entry> 196 <entry>::=</entry> 197 <entry>String</entry> 198 </row> 199 <row> 200 <entry>ClassValue</entry> 201 <entry>::=</entry> 202 <entry>ValueList | "{" NL { ClassSpec } "}"</entry> 203 </row> 204 <row> 205 <entry>ValueList</entry> 206 <entry>::=</entry> 207 <entry>Value | Value ";" ValueList</entry> 208 </row> 209 <row> 210 <entry>Value</entry> 211 <entry>::=</entry> 212 <entry>ValuePiece | ValuePiece Value</entry> 213 </row> 214 <row> 215 <entry>ValuePiece</entry> 216 <entry>::=</entry> 217 <entry>String | QuotedString | NumericString</entry> 218 </row> 219 <row> 220 <entry>String</entry> 221 <entry>::=</entry> 222 <entry>Char { Char }</entry> 223 </row> 224 <row> 225 <entry>QuotedString</entry> 226 <entry>::=</entry> 227 <entry>""" QuotedChar { QuotedChar } """</entry> 228 </row> 229 <row> 230 <entry>NumericString</entry> 231 <entry>::=</entry> 232 <entry>"\\o" OctDigit { OctDigit }</entry> 233 </row> 234 <row> 235 <entry></entry> 236 <entry>|</entry> 237 <entry>"\\d" DecDigit { DecDigit }</entry> 238 </row> 239 <row> 240 <entry></entry> 241 <entry>|</entry> 242 <entry>"\\x" HexDigit { HexDigit }</entry> 243 </row> 244 <row> 245 <entry>Char</entry> 246 <entry>::=</entry> 247 <entry><XPCS except NL, Space or unescaped reserved symbols></entry> 248 </row> 249 <row> 250 <entry>QuotedChar</entry> 251 <entry>::=</entry> 252 <entry><XPCS except unescaped """></entry> 253 </row> 254 <row> 255 <entry>OctDigit</entry> 256 <entry>::=</entry> 257 <entry><character in the range of "0" - "7"></entry> 258 </row> 259 <row> 260 <entry>DecDigit</entry> 261 <entry>::=</entry> 262 <entry><character in the range of "0" - "9"></entry> 263 </row> 264 <row> 265 <entry>HexDigit</entry> 266 <entry>::=</entry> 267 <entry><character in the range of "0" - "9", "a" - "f", "A" - "F"></entry> 268 </row> 269 <row> 270 <entry>Delimiter</entry> 271 <entry>::=</entry> 272 <entry>Space { Space }</entry> 273 </row> 274 <row> 275 <entry>Space</entry> 276 <entry>::=</entry> 277 <entry><space> | <horizontal tab></entry> 278 </row> 279 <row> 280 <entry>NL</entry> 281 <entry>::=</entry> 282 <entry><newline></entry> 283 </row> 284 </tbody> 285 </tgroup> 286</informaltable> 287 288<para> 289Elements separated by vertical bar (|) are alternatives. Curly 290braces ({...}) indicate zero or more repetitions of the enclosed 291elements. Square brackets ([...]) indicate that the enclosed element 292is optional. Quotes ("...") are used around literal characters. 293</para> 294 295<para> 296The backslash, which is not the top character of the NumericString, is 297recognized as an escape character, so that the next one character is 298treated as a literal character. For example, the two-character 299sequence, ""\"""(the backslash followed by the quotation mark) is 300recognized and replaced with a quotation mark character. 301Any whitespace character, that is not the Delimiter, unquoted and 302unescaped, is ignored. 303</para> 304 305</sect1> 306<sect1 id='Contents_of_Database'> 307<title>Contents of Database</title> 308<para> 309The available categories and classes depend on implementation, because 310different platform will require different information set. 311For example, some platform have system locale but some platform don't. 312Furthermore, there might be a difference in functionality even if the 313platform has system locale. 314</para> 315 316<para> 317In current sample implementation, categories listed below are available. 318</para> 319 320<informaltable frame="none"> 321 <?dbfo keep-together="always" ?> 322 <tgroup cols='1' align='left' colsep='0' rowsep='0'> 323 <colspec colname='c1' colwidth='1.0*'/> 324 <tbody> 325 <row> 326 <entry>XLC_FONTSET:XFontSet relative information</entry> 327 </row> 328 <row> 329 <entry>XLC_XLOCALE:Character classification and conversion information</entry> 330 </row> 331 </tbody> 332 </tgroup> 333</informaltable> 334 335</sect1> 336<sect1 id="XLC_FONTSET_Category"> 337<title>XLC_FONTSET Category</title> 338<para> 339The XLC_FONTSET category defines the XFontSet relative information. 340It contains the CHARSET_REGISTRY-CHARSET_ENCODING name and character 341mapping side (GL, GR, etc), and is used in Output Method (OM). 342</para> 343 344<informaltable frame="topbot"> 345 <?dbfo keep-together="always" ?> 346 <tgroup cols='3' align='left' colsep='0' rowsep='0'> 347 <thead> 348 <colspec colname='c1' colwidth='3.0*'/> 349 <colspec colname='c2' colwidth='1.0*'/> 350 <colspec colname='c3' colwidth='3.0*'/> 351 <row rowsep='1'> 352 <entry>class</entry> 353 <entry>super class</entry> 354 <entry>description</entry> 355 </row> 356 </thead> 357 <tbody> 358 <row> 359 <entry>fsN</entry> 360 <entry></entry> 361 <entry>Nth fontset (N=0,1,2, ...)</entry> 362 </row> 363 <row> 364 <entry>charset</entry> 365 <entry>fsN</entry> 366 <entry>list of encoding name</entry> 367 </row> 368 <row> 369 <entry>font</entry> 370 <entry>fsN</entry> 371 <entry>list of font encoding name</entry> 372 </row> 373 </tbody> 374 </tgroup> 375</informaltable> 376 377<variablelist> 378 <varlistentry> 379 <term>fsN</term> 380 <listitem> 381 <para> 382Includes an encoding information for Nth charset, where N is 383the index number (0,1,2,...). If there are 4 charsets available 384in current locale, 4 fontsets, fs0, fs1, fs2 and fs3, should be 385defined. 386This class has two subclasses, 'charset' and 'font'. 387 </para> 388 </listitem> 389 </varlistentry> 390 <varlistentry> 391 <term>charset</term> 392 <listitem> 393 <para> 394Specifies an encoding information to be used internally in Xlib 395for this fontset. The format of value is; 396 </para> 397<informaltable frame="none"> 398 <?dbfo keep-together="always" ?> 399 <tgroup cols='3' align='left' colsep='0' rowsep='0'> 400 <colspec colname='c1' colwidth='3.0*'/> 401 <colspec colname='c2' colwidth='1.0*'/> 402 <colspec colname='c3' colwidth='4.0*'/> 403 <tbody> 404 <row> 405 <entry>EncodingInfo</entry> 406 <entry>::=</entry> 407 <entry>EncodingName [ ":" EncodingSide ]</entry> 408 </row> 409 <row> 410 <entry>EncodingName</entry> 411 <entry>::=</entry> 412 <entry>CHARSET_REGISTRY-CHARSET_ENCODING</entry> 413 </row> 414 <row> 415 <entry>EncodingSide</entry> 416 <entry>::=</entry> 417 <entry>"GL" | "GR"</entry> 418 </row> 419 </tbody> 420 </tgroup> 421</informaltable> 422 423<para> 424For detail definition of CHARSET_REGISTRY-CHARSET_ENCODING, refer 425to the <olink targetdoc='xlfd' targetptr='xlfd'><citetitle>X Logical Font Description Conventions</citetitle></olink> document. 426</para> 427<literallayout> 428example: 429 ISO8859-1:GL 430</literallayout> 431 </listitem> 432 </varlistentry> 433 <varlistentry> 434 <term>font</term> 435 <listitem> 436 <para> 437Specifies a list of encoding information which is used for searching 438appropriate font for this fontset. The left most entry has highest 439priority. 440 </para> 441 </listitem> 442 </varlistentry> 443</variablelist> 444 445</sect1> 446<sect1 id="XLC_XLOCALE_Category"> 447<title>XLC_XLOCALE Category</title> 448<para> 449The XLC_XLOCALE category defines character classification, conversion 450and other character attributes. 451</para> 452 453<informaltable frame="topbot"> 454 <?dbfo keep-together="always" ?> 455 <tgroup cols='3' align='left' colsep='0' rowsep='0'> 456 <colspec colname='c1' colwidth='3.0*'/> 457 <colspec colname='c2' colwidth='1.0*'/> 458 <colspec colname='c3' colwidth='3.0*'/> 459 <thead> 460 <row rowsep='1'> 461 <entry>class</entry> 462 <entry>super class</entry> 463 <entry>description</entry> 464 </row> 465 </thead> 466 <tbody> 467 <row> 468 <entry>encoding_name</entry> 469 <entry></entry> 470 <entry>codeset name</entry> 471 </row> 472 <row> 473 <entry>mb_cur_max</entry> 474 <entry></entry> 475 <entry>MB_CUR_MAX</entry> 476 </row> 477 <row> 478 <entry>state_depend_encoding</entry> 479 <entry></entry> 480 <entry>state dependent or not</entry> 481 </row> 482 <row> 483 <entry>wc_encoding_mask</entry> 484 <entry></entry> 485 <entry>for parsing wc string</entry> 486 </row> 487 <row> 488 <entry>wc_shift_bits</entry> 489 <entry></entry> 490 <entry>for conversion between wc and mb</entry> 491 </row> 492 <row> 493 <entry>csN</entry> 494 <entry></entry> 495 <entry>Nth charset (N=0,1,2,...)</entry> 496 </row> 497 <row> 498 <entry>side</entry> 499 <entry>csN</entry> 500 <entry>mapping side (GL, etc)</entry> 501 </row> 502 <row> 503 <entry>length</entry> 504 <entry>csN</entry> 505 <entry>length of a character</entry> 506 </row> 507 <row> 508 <entry>mb_encoding</entry> 509 <entry>csN</entry> 510 <entry>for parsing mb string</entry> 511 </row> 512 <row> 513 <entry>wc_encoding</entry> 514 <entry>csN</entry> 515 <entry>for parsing wc string</entry> 516 </row> 517 <row> 518 <entry>ct_encoding</entry> 519 <entry>csN</entry> 520 <entry>list of encoding name for ct</entry> 521 </row> 522 </tbody> 523 </tgroup> 524</informaltable> 525 526<variablelist> 527 <varlistentry> 528 <term>encoding_name</term> 529 <listitem> 530 <para> 531Specifies a codeset name of current locale. 532 </para> 533 </listitem> 534 </varlistentry> 535 <varlistentry> 536 <term>mb_cur_max</term> 537 <listitem> 538 <para> 539Specifies a maximum allowable number of bytes in a multi-byte character. 540It is corresponding to MB_CUR_MAX of "ISO/IEC 9899:1990 C Language Standard". 541 </para> 542 </listitem> 543 </varlistentry> 544 <varlistentry> 545 <term>state_depend_encoding</term> 546 <listitem> 547 <para> 548Indicates a current locale is state dependent. The value should be 549specified "True" or "False". 550 </para> 551 </listitem> 552 </varlistentry> 553 <varlistentry> 554 <term>wc_encoding_mask</term> 555 <listitem> 556 <para> 557Specifies a bit-mask for parsing wide-char string. Each wide character is 558applied bit-and operation with this bit-mask, then is classified into 559the unique charset, by using 'wc_encoding'. 560 </para> 561 </listitem> 562 </varlistentry> 563 <varlistentry> 564 <term>wc_shift_bits</term> 565 <listitem> 566 <para> 567Specifies a number of bit to be shifted for converting from a multi-byte 568character to a wide character, and vice-versa. 569 </para> 570 </listitem> 571 </varlistentry> 572 <varlistentry> 573 <term>csN</term> 574 <listitem> 575 <para> 576<!-- .br --> 577Includes a character set information for Nth charset, where N is the 578index number (0,1,2,...). If there are 4 charsets available in current 579locale, cs0, cs1, cs2 and cs3 should be defined. This class has five 580subclasses, 'side', 'length', 'mb_encoding' 'wc_encoding' and 'ct_encoding'. 581 </para> 582 </listitem> 583 </varlistentry> 584 <varlistentry> 585 <term>side</term> 586 <listitem> 587 <para> 588Specifies a mapping side of this charset. The format of this value is; 589 </para> 590 <literallayout> 591 Side ::= EncodingSide[":Default"] 592 </literallayout> 593 <para> 594The suffix ":Default" can be specified. It indicates that a character 595belongs to the specified side is mapped to this charset in initial state. 596 </para> 597 </listitem> 598 </varlistentry> 599 <varlistentry> 600 <term>length</term> 601 <listitem> 602 <para> 603<!-- .br --> 604Specifies a number of bytes of a multi-byte character of this charset. 605It should not contain the length of any single-shift sequence. 606 </para> 607 </listitem> 608 </varlistentry> 609 <varlistentry> 610 <term>mb_encoding</term> 611 <listitem> 612 <para> 613Specifies a list of shift sequence for parsing multi-byte string. 614The format of this value is; 615 </para> 616<informaltable frame="none"> 617 <?dbfo keep-together="always" ?> 618 <tgroup cols='3' align='left' colsep='0' rowsep='0'> 619 <colspec colname='c1' colwidth='3.0*'/> 620 <colspec colname='c2' colwidth='1.0*'/> 621 <colspec colname='c3' colwidth='5.0*'/> 622 <tbody> 623 <row> 624 <entry>MBEncoding</entry> 625 <entry>::=</entry> 626 <entry>ShiftType ShiftSequence</entry> 627 </row> 628 <row> 629 <entry></entry> 630 <entry>|</entry> 631 <entry>ShiftType ShiftSequence ";" MBEncoding</entry> 632 </row> 633 <row> 634 <entry>ShiftType</entry> 635 <entry>::=</entry> 636 <entry>"<SS>"|"<LSL>"|"<LSR>"</entry> 637 </row> 638 <row> 639 <entry>ShiftSequence</entry> 640 <entry>::=</entry> 641 <entry>SequenceValue|SequenceValue ShiftSequence</entry> 642 </row> 643 <row> 644 <entry>SequenceValue</entry> 645 <entry>::=</entry> 646 <entry>NumericString</entry> 647 </row> 648 </tbody> 649 </tgroup> 650</informaltable> 651 652 <literallayout> 653example: 654 <LSL> \x1b \x28 \x4a; <LSL> \x1b \x28 \x42 655 </literallayout> 656 </listitem> 657 </varlistentry> 658 <varlistentry> 659 <term>wc_encoding</term> 660 <listitem> 661 <para> 662Specifies an integer value for parsing wide-char string. 663It is used to determine the charset for each wide character, after 664applying bit-and operation using 'wc_encoding_mask'. 665This value should be unique in all csN classes. 666 </para> 667 </listitem> 668 </varlistentry> 669 <varlistentry> 670 <term>ct_encoding</term> 671 <listitem> 672 <para> 673Specifies a list of encoding information that can be used for Compound 674Text. 675 </para> 676 </listitem> 677 </varlistentry> 678</variablelist> 679</sect1> 680 681<sect1 id="Sample_of_X_Locale_Database"> 682<title>Sample of X Locale Database</title> 683<para> 684The following is sample X Locale Database file. 685</para> 686 687<literallayout class="monospaced"> 688# XLocale Database Sample for ja_JP.euc 689# 690 691# 692# XLC_FONTSET category 693# 694XLC_FONTSET 695# fs0 class (7 bit ASCII) 696fs0 { 697 charset ISO8859-1:GL 698 font ISO8859-1:GL; JISX0201.1976-0:GL 699} 700# fs1 class (Kanji) 701fs1 { 702 charset JISX0208.1983-0:GL 703 font JISX0208.1983-0:GL 704} 705# fs2 class (Half Kana) 706fs2 { 707 charset JISX0201.1976-0:GR 708 font JISX0201.1976-0:GR 709} 710# fs3 class (User Defined Character) 711# fs3 { 712# charset JISX0212.1990-0:GL 713# font JISX0212.1990-0:GL 714# } 715END XLC_FONTSET 716 717# 718# XLC_XLOCALE category 719# 720XLC_XLOCALE 721 722encoding_name ja.euc 723mb_cur_max 3 724state_depend_encoding False 725 726wc_encoding_mask \x00008080 727wc_shift_bits 8 728 729# cs0 class 730cs0 { 731 side GL:Default 732 length 1 733 wc_encoding \x00000000 734 ct_encoding ISO8859-1:GL; JISX0201.1976-0:GL 735} 736# cs1 class 737cs1 { 738 side GR:Default 739 length 2 740 741 wc_encoding \x00008080 742 743 ct_encoding JISX0208.1983-0:GL; JISX0208.1983-0:GR;\ 744 JISX0208.1983-1:GL; JISX0208.1983-1:GR 745} 746 747# cs2 class 748cs2 { 749 side GR 750 length 1 751 mb_encoding <SS> \x8e 752 753 wc_encoding \x00000080 754 755 ct_encoding JISX0201.1976-0:GR 756} 757 758# cs3 class 759# cs3 { 760# side GL 761# length 2 762# mb_encoding <SS> \x8f 763# #if HasWChar32 764# wc_encoding \x20000000 765# #else 766# wc_encoding \x00008000 767# #endif 768# ct_encoding JISX0212.1990-0:GL; JISX0212.1990-0:GR 769# } 770 771END XLC_XLOCALE 772</literallayout> 773</sect1> 774 775<sect1 id="Reference"> 776<title>Reference</title> 777<para> 778[1] <emphasis remap='I'>ISO/IEC 9899:1990 C Language Standard</emphasis> 779</para> 780<para> 781[2] <olink targetdoc='xlfd' targetptr='xlfd'><citetitle>X Logical Font Description Conventions</citetitle></olink> 782</para> 783 784</sect1> 785</chapter> 786</book> 787