diff options
22 files changed, 1339 insertions, 847 deletions
diff --git a/context/data/scite/lexers/scite-context-lexer-tex.lua b/context/data/scite/lexers/scite-context-lexer-tex.lua index c442fdc20..4fdf80869 100644 --- a/context/data/scite/lexers/scite-context-lexer-tex.lua +++ b/context/data/scite/lexers/scite-context-lexer-tex.lua @@ -111,11 +111,15 @@ local knowncommand = Cmt(cstoken^1, function(_,i,s) return currentcommands[s] and i end) -local wordtoken = context.patterns.wordtoken -local wordpattern = context.patterns.wordpattern -local checkedword = context.checkedword -local setwordlist = context.setwordlist -local validwords = false +local utfchar = context.utfchar +local wordtoken = context.patterns.wordtoken +local iwordtoken = context.patterns.iwordtoken +local wordpattern = context.patterns.wordpattern +local iwordpattern = context.patterns.iwordpattern +local invisibles = context.patterns.invisibles +local checkedword = context.checkedword +local setwordlist = context.setwordlist +local validwords = false -- % language=uk @@ -199,7 +203,7 @@ local p_csname = backslash * (cstoken^1 + P(1)) local p_grouping = S("{$}") local p_special = S("#()[]<>=\"") local p_extra = S("`~%^&_-+/\'|") -local p_text = wordtoken^1 --maybe add punctuation and space +local p_text = iwordtoken^1 --maybe add punctuation and space local p_number = context.patterns.real local p_unit = P("pt") + P("bp") + P("sp") + P("mm") + P("cm") + P("cc") + P("dd") @@ -229,7 +233,7 @@ local p_unit = P("pt") + P("bp") + P("sp") + P("mm") + P("cm") + -- end -- end) -local p_word = Cmt(wordpattern, function(_,i,s) +local p_word = Cmt(iwordpattern, function(_,i,s) if validwords then return checkedword(validwords,s,i) else @@ -279,6 +283,8 @@ elseif option == 2 then end +local p_invisible = invisibles^1 + local spacing = token(whitespace, p_spacing ) local rest = token('default', p_rest ) @@ -295,6 +301,7 @@ local number = token('number', p_number ) * token('constant', p_unit ) local special = token('special', p_special ) local extra = token('extra', p_extra ) +local invisible = token('invisible', p_invisible ) local text = token('default', p_text ) local word = p_word @@ -423,6 +430,7 @@ _rules = { -- { "number", number }, { "special", special }, { "extra", extra }, + { "invisible", invisible }, { "rest", rest }, } diff --git a/context/data/scite/lexers/scite-context-lexer-xml.lua b/context/data/scite/lexers/scite-context-lexer-xml.lua index 614eb0c07..33eeaa210 100644 --- a/context/data/scite/lexers/scite-context-lexer-xml.lua +++ b/context/data/scite/lexers/scite-context-lexer-xml.lua @@ -51,10 +51,12 @@ local closecdata = P("]]>") local entity = ampersand * (1-semicolon)^1 * semicolon -local wordpattern = context.patterns.wordpattern -local checkedword = context.patterns.checkedword -local setwordlist = context.setwordlist -local validwords = false +local wordpattern = context.patterns.iwordpattern +local iwordpattern = context.patterns.wordpattern +local checkedword = context.patterns.checkedword +local setwordlist = context.setwordlist +local invisibles = context.patterns.invisibles +local validwords = false -- <?xml version="1.0" encoding="UTF-8" language="uk" ?> -- @@ -75,7 +77,7 @@ local p_preamble = Cmt(#P("<?xml "), function(input,i,_) -- todo: utf bomb end) local p_word = - Cmt(wordpattern, function(_,i,s) + Cmt(iwordpattern, function(_,i,s) if validwords then return checkedword(validwords,s,i) else @@ -185,6 +187,9 @@ local p_instruction = * token("default",(1-closeinstruction)^1) * token("command",closeinstruction) +local p_invisible = + token("invisible",invisibles^1) + _rules = { { "whitespace", p_spacing }, { "preamble", p_preamble }, @@ -196,6 +201,7 @@ _rules = { { "close", p_close }, { "open", p_open }, { "entity", p_entity }, + { "invisible", p_invisible }, { "rest", p_rest }, } diff --git a/context/data/scite/lexers/scite-context-lexer.lua b/context/data/scite/lexers/scite-context-lexer.lua index 9ba25884b..f1c9bc9bd 100644 --- a/context/data/scite/lexers/scite-context-lexer.lua +++ b/context/data/scite/lexers/scite-context-lexer.lua @@ -574,3 +574,134 @@ lexer.fold = context.fold lexer.lex = context.lex lexer.token = context.token lexer.exact_match = context.exact_match + +-- helper .. alas ... the lexer's lua instance is rather crippled .. not even +-- math is part of it + +local floor = math and math.floor +local char = string.char + +if not floor then + + floor = function(n) + return tonumber(string.format("%d",n)) + end + + math = math or { } + + math.floor = floor + +end + +local function utfchar(n) + if n < 0x80 then + return char(n) + elseif n < 0x800 then + return char( + 0xC0 + floor(n/0x40), + 0x80 + (n % 0x40) + ) + elseif n < 0x10000 then + return char( + 0xE0 + floor(n/0x1000), + 0x80 + (floor(n/0x40) % 0x40), + 0x80 + (n % 0x40) + ) + elseif n < 0x40000 then + return char( + 0xF0 + floor(n/0x40000), + 0x80 + floor(n/0x1000), + 0x80 + (floor(n/0x40) % 0x40), + 0x80 + (n % 0x40) + ) + else + -- return char( + -- 0xF1 + floor(n/0x1000000), + -- 0x80 + floor(n/0x40000), + -- 0x80 + floor(n/0x1000), + -- 0x80 + (floor(n/0x40) % 0x40), + -- 0x80 + (n % 0x40) + -- ) + return "?" + end +end + +context.utfchar = utfchar + +-- a helper from l-lpeg: + +local gmatch = string.gmatch + +local function make(t) + local p + for k, v in next, t do + if not p then + if next(v) then + p = P(k) * make(v) + else + p = P(k) + end + else + if next(v) then + p = p + P(k) * make(v) + else + p = p + P(k) + end + end + end + return p +end + +function lpeg.utfchartabletopattern(list) + local tree = { } + for i=1,#list do + local t = tree + for c in gmatch(list[i],".") do + if not t[c] then + t[c] = { } + end + t = t[c] + end + end + return make(tree) +end + +-- patterns.invisibles = +-- P(utfchar(0x00A0)) -- nbsp +-- + P(utfchar(0x2000)) -- enquad +-- + P(utfchar(0x2001)) -- emquad +-- + P(utfchar(0x2002)) -- enspace +-- + P(utfchar(0x2003)) -- emspace +-- + P(utfchar(0x2004)) -- threeperemspace +-- + P(utfchar(0x2005)) -- fourperemspace +-- + P(utfchar(0x2006)) -- sixperemspace +-- + P(utfchar(0x2007)) -- figurespace +-- + P(utfchar(0x2008)) -- punctuationspace +-- + P(utfchar(0x2009)) -- breakablethinspace +-- + P(utfchar(0x200A)) -- hairspace +-- + P(utfchar(0x200B)) -- zerowidthspace +-- + P(utfchar(0x202F)) -- narrownobreakspace +-- + P(utfchar(0x205F)) -- math thinspace + +patterns.invisibles = lpeg.utfchartabletopattern { + utfchar(0x00A0), -- nbsp + utfchar(0x2000), -- enquad + utfchar(0x2001), -- emquad + utfchar(0x2002), -- enspace + utfchar(0x2003), -- emspace + utfchar(0x2004), -- threeperemspace + utfchar(0x2005), -- fourperemspace + utfchar(0x2006), -- sixperemspace + utfchar(0x2007), -- figurespace + utfchar(0x2008), -- punctuationspace + utfchar(0x2009), -- breakablethinspace + utfchar(0x200A), -- hairspace + utfchar(0x200B), -- zerowidthspace + utfchar(0x202F), -- narrownobreakspace + utfchar(0x205F), -- math thinspace +} + +-- now we can make: + +patterns.iwordtoken = patterns.wordtoken - patterns.invisibles +patterns.iwordpattern = patterns.iwordtoken^3 diff --git a/context/data/scite/lexers/themes/scite-context-theme.lua b/context/data/scite/lexers/themes/scite-context-theme.lua index ed1c5086b..f8554971d 100644 --- a/context/data/scite/lexers/themes/scite-context-theme.lua +++ b/context/data/scite/lexers/themes/scite-context-theme.lua @@ -77,6 +77,7 @@ style_definition = style { fore = colors.black, bold = true } style_okay = style { fore = colors.dark } style_error = style { fore = colors.red } style_warning = style { fore = colors.orange } +style_invisible = style { back = colors.orange } style_function = style { fore = colors.black, bold = true } style_operator = style { fore = colors.blue } style_preproc = style { fore = colors.yellow, bold = true } @@ -118,6 +119,7 @@ lexer.context.styles = { ["okay"] = style_okay, ["warning"] = style_warning, + ["invisible"] = style_invisible, ["error"] = style_error, } diff --git a/context/data/scite/scite-context-readme.pdf b/context/data/scite/scite-context-readme.pdf Binary files differindex 9cd61ba87..6d17a6e90 100644 --- a/context/data/scite/scite-context-readme.pdf +++ b/context/data/scite/scite-context-readme.pdf diff --git a/context/data/scite/scite-context-readme.tex b/context/data/scite/scite-context-readme.tex index 254a34e6e..6221d7cde 100644 --- a/context/data/scite/scite-context-readme.tex +++ b/context/data/scite/scite-context-readme.tex @@ -1,27 +1,14 @@ % interface=en modes=icon,screen language=uk +\usemodule[art-01] \usemodule[abr-02] -\logo [METAPOST] {MetaPost} -\logo [METAFUN] {MetaFun} - -\setupcolors - [state=start] - -\setuplayout - [footer=0pt, - width=middle, - height=middle] - -\setupbodyfont - [dejavu,11pt] +\unexpanded\def\METAPOST{MetaPost} +\unexpanded\def\METAFUN {MetaFun} \setuphead [section] - [page=, - style=\bfb, - color=darkblue, - after=\blank] + [color=darkblue] \setuptype [color=darkblue] @@ -114,7 +101,7 @@ frame=off, foregroundcolor=gray] {\definedfont[SerifBold sa 10]SciTE\endgraf - \definedfont[SerifBold sa 2.48]IN CONTEXT\kern.25\bodyfontsize} + \definedfont[SerifBold sa 2.48]IN CONTEXT MkIV\kern.25\bodyfontsize} \startTEXpage \tightlayer[TitlePage] @@ -124,13 +111,7 @@ \subject{About \SCITE} -{\em This is an updated but yet uncorrected version.} - -{\em Todo: look into using lpeg without special library (might be faster).} - -\SCITE\ is a source code editor written by Neil Hodgson. After -playing with several editors we decided that this editor was quite -configurable and extendible. +{\em This manual is under (re)construction.} For a long time at \PRAGMA\ we used \TEXEDIT, an editor we'd written in \MODULA. It had some project management features and @@ -139,24 +120,27 @@ rewrote this to a platform independent reimplementation called \TEXWORK\ written in \PERLTK\ (not to be confused with the editor with the plural name). -In the beginning of the century we can into \SCITE. Although the -mentioned editors provide some functionality not present in -\SCITE\ we've decided to use that editor because it frees us from -maintaining our own. We ported our \TEX\ and \METAPOST\ (line based) -syntax highlighting to \SCITE\ and got a lot of others for free. +In the beginning of the century I can into \SCITE, written by Neil +Hodgson. Although the mentioned editors provide some functionality +not present in \SCITE\ we decided to use that editor because it +frees us from maintaining our own. I ported our \TEX\ and +\METAPOST\ (line based) syntax highlighting to \SCITE\ and got a +lot of others for free. After a while I found out that there was an extension interface written in \LUA. I played with it and wrote a few extensions too. This pleasant experience later triggered the \LUATEX\ project. -A decade into the century \SCITE\ as another new feature: you can +A decade into the century \SCITE\ got another new feature: you can write dynamic external lexers in \LUA\ using \LPEG. As in the -meantime \CONTEXT\ had evolved in a \TEX/\LUA\ hybrid, it made +meantime \CONTEXT\ has evolved in a \TEX/\LUA\ hybrid, it made sense to look into this. The result is a couple of lexers that -suit \TEX, \METAPOST\ and \LUA\ usage in \CONTEXT\ \MKIV. -\footnote {In the process some of the general lexing framework was -adapted to suit our demands for speed. We shipe these files as -well.} +suit \TEX, \METAPOST\ and \LUA\ usage in \CONTEXT\ \MKIV. As we +also use \XML\ as input and output format a lexer for \XML\ is also +provided. And because \PDF\ is one of the backend formats lexing of +\PDF\ is also implemented. \footnote {In the process some of the +general lexing framework was adapted to suit our demands for speed. +We ship these files as well.} In the \CONTEXT\ (standalone) distribution you will find the relevant files under: @@ -169,6 +153,28 @@ Normally a user will not have to dive into the implementation details but in principle you can tweak the properties files to suit your purpose. +\subject{The look and feel} + +The color scheme that we use is consistent over the lexers but we +use more colors that in the traditional lexing. For instance, +\TEX\ primitives, low level \TEX\ commands, \TEX\ constants, basic +file structure related commands, and user commands all get a +different treatment. When spell checking is turned on, we indicate +unknown words, but also words that are known but might need +checking, for instance because they have an uppercase character. +In \in {figure} [fig:colors] we some of that in practice. + +\placefigure + [page] + [fig:colors] + {Nested lexers in action.} + {\rotate + [rotation=90] + {\externalfigure + [scite-context-visual.png] + [maxheight=1.2\textwidth, + maxwidth=.9\textheight]}} + \subject{Installing \SCITE} Installing \SCITE\ is straightforward. We are most familiar with @@ -201,8 +207,10 @@ to comment the external lexer import.} These can be fetched from: code.google.com/p/scintilla \stoptyping -On windows you need to copy the \type {lexers} subfolder to the \type -{wscite} folder. For Linux the place depends on the distribution. +On windows you need to copy the \type {lexers} subfolder to the +\type {wscite} folder. For Linux the place depends on the +distribution and I just copy them in the same path as where the +regular properties files live. For \UNIX, one can take a precompiled version as well. Here we need to split the set of files into: @@ -260,9 +268,12 @@ at the console as well). \subject{Fonts} -The configuration file defauls to the Dejavu fonts. These are part of the -\CONTEXT\ standalone (minimals) distribution. You can copy them to your -operating system from: +The configuration file defaults to the Dejavu fonts. These free +fonts are part of the \CONTEXT\ suite (also known as the +standalone distribution). Of course you can fetch them from \type +{http://dejavu-fonts.org} as well. You have to copy them to where +your operating system expects them. In the suite they are +available in \starttyping <contextroot>/tex/texmf/fonts/truetype/public/dejavu @@ -270,9 +281,9 @@ operating system from: \subject{An alternative approach} -If for some reason you prefer not to mess with property files in the main -\SCITE\ path, you can follow a different route and selectively copy files to -places. +If for some reason you prefer not to mess with property files in +the main \SCITE\ path, you can follow a different route and +selectively copy files to places. The following files are needed for the lpeg based lexer: @@ -282,6 +293,9 @@ lexers/scite-context-lexer-tex.lua lexers/scite-context-lexer-mps.lua lexers/scite-context-lexer-lua.lua lexers/scite-context-lexer-cld.lua +lexers/scite-context-lexer-txt.lua +lexers/scite-context-lexer-xml*.lua +lexers/scite-context-lexer-pdf*.lua lexers/context/data/scite-context-data-tex.lua lexers/context/data/scite-context-data-context.lua @@ -363,26 +377,29 @@ ones will be provided at some point. \subject{Spell checking} -If you want to have spell checking, you need have files with correct words -on each line. The first line of a file determines the language: +If you want to have spell checking, you need have files with +correct words on each line. The first line of a file determines +the language: \starttyping % language=uk \stoptyping -When you use the external lexers, you need to provide some files. Given that -you have a text file with valid words only, you can run the following script: +When you use the external lexers, you need to provide some files. +Given that you have a text file with valid words only, you can run +the following script: \starttyping mtxrun --script scite --words nl uk \stoptyping -This will convert files with names like \type {spell-nl.txt} into \LUA\ files -that you need to copy to the \type {lexers/data} path. Spell checking happens -realtime when you have the language directive (just add a bogus character to -disable it). Wrong words are colored red, and words that might have a case -problem are colored orange. Recognized words are greyed and words with less than -three characters are ignored. +This will convert files with names like \type {spell-nl.txt} into +\LUA\ files that you need to copy to the \type {lexers/data} path. +Spell checking happens realtime when you have the language +directive (just add a bogus character to disable it). Wrong words +are colored red, and words that might have a case problem are +colored orange. Recognized words are greyed and words with less +than three characters are ignored. In the case of internal lexers, the following file is needed: @@ -390,12 +407,46 @@ In the case of internal lexers, the following file is needed: spell-uk.txt \stoptyping -This file is searched on the path determined by the environment variable: +If you use the traditional lexer, this file is taken from the +path determined by the environment variable: \starttyping CTXSPELLPATH \stoptyping +As already mentioned, the lpeg lexer expects them in the data +path. This is because the \LUA\ instance that does the lexing is +rather minimalistic and lacks some libraries as well as cannot +access the main \SCITE\ state. + +Spell checking in \type {txt} files is enabled by adding a first +line: + +\starttyping +[#!-%] language=uk +\stoptyping + +The first character on that line is one of the four mentioned +between square brackets. So, + +\starttyping +# language=uk +\stoptyping + +should work. For \XML\ files there are two methods. You can use the +following (at the start of the file): + +\starttyping +<?xml ... language="uk" ?> +\stoptyping + +But probably better is to use the next directive just below the +usual \XML\ marker line: + +\starttyping +<?context-xml-directive editor language uk ?> +\stoptyping + \subject{Interface selection} In a similar fashion you can drive the interface checking: @@ -411,8 +462,8 @@ external ones are steered with themes. Unfortunately there is hardly any access to properties from the external lexer code nor can we consult the file system and/or run programs like \type {mtxrun}. This means that we cannot use configuration files in the -\CONTEXT\ distribution directly. Hopefully this changes with future -releases. +\CONTEXT\ distribution directly. Hopefully this changes with +future releases. \subject{The external lexers} @@ -435,8 +486,27 @@ In principle the external lexers can be used with \type for lpeg lexing originates in \type {textadept}. Currently \type {textadept} lacks a couple of features I like about \SCITE\ (for instance it has no realtime logpane) and it's also still changing. -At some point the \CONTEXT\ distribution will probably provide -files for \type {textadept} as well. +At some point the \CONTEXT\ distribution might ship with files +for \type {textadept} as well. + +The external lpeg lexers work okay with the \MSWINDOWS\ and +\LINUX\ versions of \SCITE, but unfortunately at the time of +writing this, the \LUA\ library that is needed is not available +for the \MACOSX\ version of \SCITE. Also, due to the fact that the +lexing framework is rather isolated, there are some issues that +cannot be addressed in the properly, at least not currently. + +In addition to \CONTEXT\ and \METAFUN\ lexing a \LUA\ lexer is +also provided so that we can handle \CONTEXT\ \LUA\ Document +(\CLD) files too. There is also an \XML\ lexer. This one also +provides spell checking. The \PDF\ lexer tries to do a good job on +\PDF\ files, but it has some limitations. There is also a simple +text file lexer that does spell checking. + +Don't worry if you see an orange rectangle in your \TEX\ or \XML\ +document. This indicates that there is a special space character +there, for instance \type {0xA0}, the nonbreakable space. Of course +we assume that you use \UTF8 as input encoding. \subject{The internal lexers} @@ -716,7 +786,7 @@ list is taken from the on|-|line help pages. \startbuffer[keybindings] \starttabulate[|l|p|] \FL -\NC \rm \bf keybinding \NC \bf meaning (taken from the \SCITE\ help file) \NC \NR +\NC \rm \bf keybinding \NC \bf meaning (taken from the \SCITE\ help file) \NC \NR \ML \NC \type{Ctrl+Keypad+} \NC magnify text size \NC \NR \NC \type{Ctrl+Keypad-} \NC reduce text size \NC \NR @@ -785,12 +855,4 @@ list is taken from the on|-|line help pages. \NC version \NC \currentdate \NC \NR \stoptabulate -\startstandardmakeup[headerstate=none,footer=none] - - \setuptabulate[before=,after=] \getbuffer[keybindings] - - \vfill - -\stopstandardmakeup - \stoptext diff --git a/context/data/scite/scite-context-visual.pdf b/context/data/scite/scite-context-visual.pdf Binary files differindex e7fffdfb7..69d82eda6 100644 --- a/context/data/scite/scite-context-visual.pdf +++ b/context/data/scite/scite-context-visual.pdf diff --git a/context/data/scite/scite-context-visual.png b/context/data/scite/scite-context-visual.png Binary files differindex aaf35e5e2..7368a68f1 100644 --- a/context/data/scite/scite-context-visual.png +++ b/context/data/scite/scite-context-visual.png diff --git a/scripts/context/lua/mtxrun.lua b/scripts/context/lua/mtxrun.lua index 995e5e814..2932f92a6 100644 --- a/scripts/context/lua/mtxrun.lua +++ b/scripts/context/lua/mtxrun.lua @@ -1130,7 +1130,7 @@ local report = texio and texio.write_nl or print local type = type -local byte, char = string.byte, string.char +local byte, char, gmatch = string.byte, string.char, string.gmatch -- Beware, we predefine a bunch of patterns here and one reason for doing so -- is that we get consistent behaviour in some of the visualizers. @@ -1698,6 +1698,61 @@ end -- end -- end +-- experiment: + +local function make(t) + local p +-- for k, v in next, t do + for k, v in table.sortedhash(t) do + if not p then + if next(v) then + p = P(k) * make(v) + else + p = P(k) + end + else + if next(v) then + p = p + P(k) * make(v) + else + p = p + P(k) + end + end + end + return p +end + +function lpeg.utfchartabletopattern(list) + local tree = { } + for i=1,#list do + local t = tree + for c in gmatch(list[i],".") do + if not t[c] then + t[c] = { } + end + t = t[c] + end + end + return make(tree) +end + +-- inspect ( lpeg.utfchartabletopattern { +-- utfchar(0x00A0), -- nbsp +-- utfchar(0x2000), -- enquad +-- utfchar(0x2001), -- emquad +-- utfchar(0x2002), -- enspace +-- utfchar(0x2003), -- emspace +-- utfchar(0x2004), -- threeperemspace +-- utfchar(0x2005), -- fourperemspace +-- utfchar(0x2006), -- sixperemspace +-- utfchar(0x2007), -- figurespace +-- utfchar(0x2008), -- punctuationspace +-- utfchar(0x2009), -- breakablethinspace +-- utfchar(0x200A), -- hairspace +-- utfchar(0x200B), -- zerowidthspace +-- utfchar(0x202F), -- narrownobreakspace +-- utfchar(0x205F), -- math thinspace +-- } ) + end -- of closure diff --git a/scripts/context/stubs/mswin/mtxrun.lua b/scripts/context/stubs/mswin/mtxrun.lua index 995e5e814..2932f92a6 100644 --- a/scripts/context/stubs/mswin/mtxrun.lua +++ b/scripts/context/stubs/mswin/mtxrun.lua @@ -1130,7 +1130,7 @@ local report = texio and texio.write_nl or print local type = type -local byte, char = string.byte, string.char +local byte, char, gmatch = string.byte, string.char, string.gmatch -- Beware, we predefine a bunch of patterns here and one reason for doing so -- is that we get consistent behaviour in some of the visualizers. @@ -1698,6 +1698,61 @@ end -- end -- end +-- experiment: + +local function make(t) + local p +-- for k, v in next, t do + for k, v in table.sortedhash(t) do + if not p then + if next(v) then + p = P(k) * make(v) + else + p = P(k) + end + else + if next(v) then + p = p + P(k) * make(v) + else + p = p + P(k) + end + end + end + return p +end + +function lpeg.utfchartabletopattern(list) + local tree = { } + for i=1,#list do + local t = tree + for c in gmatch(list[i],".") do + if not t[c] then + t[c] = { } + end + t = t[c] + end + end + return make(tree) +end + +-- inspect ( lpeg.utfchartabletopattern { +-- utfchar(0x00A0), -- nbsp +-- utfchar(0x2000), -- enquad +-- utfchar(0x2001), -- emquad +-- utfchar(0x2002), -- enspace +-- utfchar(0x2003), -- emspace +-- utfchar(0x2004), -- threeperemspace +-- utfchar(0x2005), -- fourperemspace +-- utfchar(0x2006), -- sixperemspace +-- utfchar(0x2007), -- figurespace +-- utfchar(0x2008), -- punctuationspace +-- utfchar(0x2009), -- breakablethinspace +-- utfchar(0x200A), -- hairspace +-- utfchar(0x200B), -- zerowidthspace +-- utfchar(0x202F), -- narrownobreakspace +-- utfchar(0x205F), -- math thinspace +-- } ) + end -- of closure diff --git a/scripts/context/stubs/unix/mtxrun b/scripts/context/stubs/unix/mtxrun index 995e5e814..2932f92a6 100755 --- a/scripts/context/stubs/unix/mtxrun +++ b/scripts/context/stubs/unix/mtxrun @@ -1130,7 +1130,7 @@ local report = texio and texio.write_nl or print local type = type -local byte, char = string.byte, string.char +local byte, char, gmatch = string.byte, string.char, string.gmatch -- Beware, we predefine a bunch of patterns here and one reason for doing so -- is that we get consistent behaviour in some of the visualizers. @@ -1698,6 +1698,61 @@ end -- end -- end +-- experiment: + +local function make(t) + local p +-- for k, v in next, t do + for k, v in table.sortedhash(t) do + if not p then + if next(v) then + p = P(k) * make(v) + else + p = P(k) + end + else + if next(v) then + p = p + P(k) * make(v) + else + p = p + P(k) + end + end + end + return p +end + +function lpeg.utfchartabletopattern(list) + local tree = { } + for i=1,#list do + local t = tree + for c in gmatch(list[i],".") do + if not t[c] then + t[c] = { } + end + t = t[c] + end + end + return make(tree) +end + +-- inspect ( lpeg.utfchartabletopattern { +-- utfchar(0x00A0), -- nbsp +-- utfchar(0x2000), -- enquad +-- utfchar(0x2001), -- emquad +-- utfchar(0x2002), -- enspace +-- utfchar(0x2003), -- emspace +-- utfchar(0x2004), -- threeperemspace +-- utfchar(0x2005), -- fourperemspace +-- utfchar(0x2006), -- sixperemspace +-- utfchar(0x2007), -- figurespace +-- utfchar(0x2008), -- punctuationspace +-- utfchar(0x2009), -- breakablethinspace +-- utfchar(0x200A), -- hairspace +-- utfchar(0x200B), -- zerowidthspace +-- utfchar(0x202F), -- narrownobreakspace +-- utfchar(0x205F), -- math thinspace +-- } ) + end -- of closure diff --git a/tex/context/base/cont-new.mkii b/tex/context/base/cont-new.mkii index e02ea2f7e..f900217ec 100644 --- a/tex/context/base/cont-new.mkii +++ b/tex/context/base/cont-new.mkii @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2011.11.08 19:35} +\newcontextversion{2011.11.09 19:33} %D This file is loaded at runtime, thereby providing an %D excellent place for hacks, patches, extensions and new diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv index 8fbf45e73..bfd707d1f 100644 --- a/tex/context/base/cont-new.mkiv +++ b/tex/context/base/cont-new.mkiv @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2011.11.08 19:35} +\newcontextversion{2011.11.09 19:33} %D This file is loaded at runtime, thereby providing an %D excellent place for hacks, patches, extensions and new diff --git a/tex/context/base/context-version.pdf b/tex/context/base/context-version.pdf index 2eda631b6..5c5982ccc 100644 --- a/tex/context/base/context-version.pdf +++ b/tex/context/base/context-version.pdf @@ -69,7 +69,7 @@ h f 0.000 0.000 0.700 rg 0.000 0.000 0.700 RG 6.996964 -6.113174 m 94.155334 -22.251892 l -64.514175 -33.352692 41.005051 -58.838028 32.849838 -88.710907 c +64.123337 -32.693390 40.289551 -58.530731 32.849838 -88.710907 c 6.996964 -6.113174 l h f 0 g 0 G @@ -97,7 +97,7 @@ h f 0.700 0.000 0.700 rg 0.700 0.000 0.700 RG -8.674164 -6.355164 m -56.902374 -90.097046 l --48.420502 -57.334106 -68.127991 -28.055984 -100.546051 -25.258499 c +-49.349472 -57.605606 -68.688110 -28.875458 -100.546051 -25.258499 c -8.674164 -6.355164 l h f 0 g 0 G @@ -163,17 +163,17 @@ stream </rdf:Description>
<rdf:Description rdf:about="" xmlns:pdfx="http://ns.adobe.com/pdfx/1.3/">
<pdfx:ConTeXt.Jobname>s-version</pdfx:ConTeXt.Jobname>
- <pdfx:ConTeXt.Time>2011.11.08 19:35</pdfx:ConTeXt.Time>
+ <pdfx:ConTeXt.Time>2011.11.09 19:33</pdfx:ConTeXt.Time>
<pdfx:ConTeXt.Url>www.pragma-ade.com</pdfx:ConTeXt.Url>
- <pdfx:ConTeXt.Version>2011.11.08 19:35</pdfx:ConTeXt.Version>
- <pdfx:ID>s-version.2011-11-08T19:35:22+01:00</pdfx:ID>
+ <pdfx:ConTeXt.Version>2011.11.09 19:33</pdfx:ConTeXt.Version>
+ <pdfx:ID>s-version.2011-11-09T19:33:51+01:00</pdfx:ID>
<pdfx:PTEX.Fullbanner>This is LuaTeX, Version beta-0.71.0-2011062811 (rev 4315) (TeX Live 2011) kpathsea version 6.0.1</pdfx:PTEX.Fullbanner>
</rdf:Description>
<rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/">
- <xmp:CreateDate>2011-11-08T19:35:22+01:00</xmp:CreateDate>
- <xmp:CreatorTool>ConTeXt - 2011.11.08 19:35</xmp:CreatorTool>
- <xmp:ModifyDate>2011-11-08T19:35:22+01:00</xmp:ModifyDate>
- <xmp:MetadataDate>2011-11-08T19:35:22+01:00</xmp:MetadataDate>
+ <xmp:CreateDate>2011-11-09T19:33:51+01:00</xmp:CreateDate>
+ <xmp:CreatorTool>ConTeXt - 2011.11.09 19:33</xmp:CreatorTool>
+ <xmp:ModifyDate>2011-11-09T19:33:51+01:00</xmp:ModifyDate>
+ <xmp:MetadataDate>2011-11-09T19:33:51+01:00</xmp:MetadataDate>
</rdf:Description>
<rdf:Description rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/">
<pdf:Keywords/>
@@ -201,7 +201,7 @@ endobj endobj 22 0 obj << -/ConTeXt.Url (www.pragma-ade.com) /ConTeXt.Version (2011.11.08 19:35) /ConTeXt.Jobname (s-version) /CreationDate (D:20111108193522+01'00') /Trapped /False /Title <feff0073002d00760065007200730069006f006e> /ConTeXt.Time (2011.11.08 19:35) /ID (s-version.2011-11-08T19:35:22+01:00) /Producer (LuaTeX-0.71.0) /ModDate (D:20111108193522+01'00') /Creator <feff0043006f006e00540065005800740020002d00200032003000310031002e00310031002e00300038002000310039003a00330035> +/ConTeXt.Url (www.pragma-ade.com) /ConTeXt.Version (2011.11.09 19:33) /ConTeXt.Jobname (s-version) /CreationDate (D:20111109193351+01'00') /Trapped /False /Title <feff0073002d00760065007200730069006f006e> /ConTeXt.Time (2011.11.09 19:33) /ID (s-version.2011-11-09T19:33:51+01:00) /Producer (LuaTeX-0.71.0) /ModDate (D:20111109193351+01'00') /Creator <feff0043006f006e00540065005800740020002d00200032003000310031002e00310031002e00300039002000310039003a00330033> /PTEX.Fullbanner (This is LuaTeX, Version beta-0.71.0-2011062811 (rev 4315) (TeX Live 2011) kpathsea version 6.0.1)>> endobj xref @@ -230,7 +230,7 @@ xref 0000006116 00000 n 0000006268 00000 n trailer -<</Size 23/Root 21 0 R/Info 22 0 R/ID[<B2B9E5A87ED8E1FBD60723E6E278A48B> <B2B9E5A87ED8E1FBD60723E6E278A48B>]>> +<</Size 23/Root 21 0 R/Info 22 0 R/ID[<CC1EB1A430B6D8712312FCFCDEFB26DA> <CC1EB1A430B6D8712312FCFCDEFB26DA>]>> startxref 6866 %%EOF diff --git a/tex/context/base/context-version.png b/tex/context/base/context-version.png Binary files differindex 2f1d39163..bda97b0d7 100644 --- a/tex/context/base/context-version.png +++ b/tex/context/base/context-version.png diff --git a/tex/context/base/context.mkii b/tex/context/base/context.mkii index 6dbf8e7d4..161b8759f 100644 --- a/tex/context/base/context.mkii +++ b/tex/context/base/context.mkii @@ -20,7 +20,7 @@ %D your styles an modules. \edef\contextformat {\jobname} -\edef\contextversion{2011.11.08 19:35} +\edef\contextversion{2011.11.09 19:33} %D For those who want to use this: diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv index 41665fd5f..bd07aad05 100644 --- a/tex/context/base/context.mkiv +++ b/tex/context/base/context.mkiv @@ -20,7 +20,7 @@ %D your styles an modules. \edef\contextformat {\jobname} -\edef\contextversion{2011.11.08 19:35} +\edef\contextversion{2011.11.09 19:33} %D For those who want to use this: diff --git a/tex/context/base/l-lpeg.lua b/tex/context/base/l-lpeg.lua index 9860937c4..018aa996e 100644 --- a/tex/context/base/l-lpeg.lua +++ b/tex/context/base/l-lpeg.lua @@ -50,7 +50,7 @@ local report = texio and texio.write_nl or print --~ function lpeg.Carg (l) local p = lpcarg(l) report("LPEG Carg =") lpprint(l) return p end local type = type -local byte, char = string.byte, string.char +local byte, char, gmatch = string.byte, string.char, string.gmatch -- Beware, we predefine a bunch of patterns here and one reason for doing so -- is that we get consistent behaviour in some of the visualizers. @@ -656,3 +656,58 @@ end -- end) -- end -- end + +-- experiment: + +local function make(t) + local p +-- for k, v in next, t do + for k, v in table.sortedhash(t) do + if not p then + if next(v) then + p = P(k) * make(v) + else + p = P(k) + end + else + if next(v) then + p = p + P(k) * make(v) + else + p = p + P(k) + end + end + end + return p +end + +function lpeg.utfchartabletopattern(list) + local tree = { } + for i=1,#list do + local t = tree + for c in gmatch(list[i],".") do + if not t[c] then + t[c] = { } + end + t = t[c] + end + end + return make(tree) +end + +-- inspect ( lpeg.utfchartabletopattern { +-- utfchar(0x00A0), -- nbsp +-- utfchar(0x2000), -- enquad +-- utfchar(0x2001), -- emquad +-- utfchar(0x2002), -- enspace +-- utfchar(0x2003), -- emspace +-- utfchar(0x2004), -- threeperemspace +-- utfchar(0x2005), -- fourperemspace +-- utfchar(0x2006), -- sixperemspace +-- utfchar(0x2007), -- figurespace +-- utfchar(0x2008), -- punctuationspace +-- utfchar(0x2009), -- breakablethinspace +-- utfchar(0x200A), -- hairspace +-- utfchar(0x200B), -- zerowidthspace +-- utfchar(0x202F), -- narrownobreakspace +-- utfchar(0x205F), -- math thinspace +-- } ) diff --git a/tex/context/base/spac-chr.lua b/tex/context/base/spac-chr.lua index add46c4d0..430996ffd 100644 --- a/tex/context/base/spac-chr.lua +++ b/tex/context/base/spac-chr.lua @@ -86,7 +86,7 @@ local methods = { -- The next one uses an attribute assigned to the character but still we -- don't have the 'local' value. - [0x00A0] = function(head,current) + [0x00A0] = function(head,current) -- nbsp local para = fontparameters[current.font] if has_attribute(current,a_alignstate) == 1 then -- flushright head, current = inject_nobreak_space(0x00A0,head,current,para.space,0,0) diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf index ac2d7064e..020dfd0ed 100644 --- a/tex/context/base/status-files.pdf +++ b/tex/context/base/status-files.pdf @@ -6,7 +6,7 @@ stream 0 g 0 G 0 g 0 G BT -/F47 11.955168 Tf 1 0 0 1 12.3537 968.1015 Tm [<004C005100700032004B002300320060>-515<0033002D>-515<006B007900520052>-515<0040>-515<0068003F0032>-515<004D006D004B002300320060>-515<00510037>-515<00370042004800320062>-515<006D00620032002F>-515<0042004D>-515<002A0051004D0068003200730069>-515<00550023001C00620032>-515<004B0051002F006D004800320062>-515<001C004D002F>-515<00620069007600480032006200560058>]TJ +/F47 11.955168 Tf 1 0 0 1 12.3537 968.1015 Tm [<004C005100700032004B002300320060>-515<004E002D>-515<006B007900520052>-515<0040>-515<0068003F0032>-515<004D006D004B002300320060>-515<00510037>-515<00370042004800320062>-515<006D00620032002F>-515<0042004D>-515<002A0051004D0068003200730069>-515<00550023001C00620032>-515<004B0051002F006D004800320062>-515<001C004D002F>-515<00620069007600480032006200560058>]TJ 1 0 0 1 164.1364 941.7188 Tm [<00650079>-500<006900320074>-22910<003800790064>-500<004B004600420042>-21091<006A00650064>-500<004B004600420070>-17694<006B0065>-500<004B004600700042>-5873<006A0038006B>-500<0048006D001C>]TJ ET q @@ -1434,7 +1434,7 @@ stream 0 g 0 G 0 g 0 G BT -/F47 11.955168 Tf 1 0 0 1 12.3537 968.1015 Tm [<004C005100700032004B002300320060>-515<0033002D>-515<006B007900520052>-515<0040>-515<0068003F0032>-515<0062004200780032>-515<00510037>-515<0055002B0051006000320056>-515<00370042004800320062>-515<006D00620032002F>-515<0042004D>-515<002A0051004D0068003200730069>-515<00550040>-515<0042004D002F0042002B001C006900320062>-515<00320074002B0048006D006200420051004D>-514<00510037>-515<0048001C0060003B0032>-515<002F001C0069001C>-515<003700420048003200620063>-515<0059>-515<0042004D002F0042002B001C006900320062>-515<0042004D002B0048006D006200420051004D>-515<00510037>-515<0048001C0060003B0032>-515<002F001C0069001C>-515<003700420048003200620063>-515<002B0051004B004B0032004D0069>-515<001C004D002F>-515<00620054001C002B00320062>-515<00600032004B005100700032002F00580056>]TJ +/F47 11.955168 Tf 1 0 0 1 12.3537 968.1015 Tm [<004C005100700032004B002300320060>-515<004E002D>-515<006B007900520052>-515<0040>-515<0068003F0032>-515<0062004200780032>-515<00510037>-515<0055002B0051006000320056>-515<00370042004800320062>-515<006D00620032002F>-515<0042004D>-515<002A0051004D0068003200730069>-515<00550040>-515<0042004D002F0042002B001C006900320062>-515<00320074002B0048006D006200420051004D>-514<00510037>-515<0048001C0060003B0032>-515<002F001C0069001C>-515<003700420048003200620063>-515<0059>-515<0042004D002F0042002B001C006900320062>-515<0042004D002B0048006D006200420051004D>-515<00510037>-515<0048001C0060003B0032>-515<002F001C0069001C>-515<003700420048003200620063>-515<002B0051004B004B0032004D0069>-515<001C004D002F>-515<00620054001C002B00320062>-515<00600032004B005100700032002F00580056>]TJ 1 0 0 1 139.4968 941.7188 Tm [<006B00790038005200790079>-500<006900320074>-8128<0039006B006B0038003900790039>-500<004B004600420042>-515<0039003300330038003900390052>-515<0059>-12028<006B006B00380033007900380065>-500<004B004600420070>-14066<006B00520065006A00640039>-500<004B004600700042>-4158<006B006B0079004E00790038004E>-500<0048006D001C>-515<003800650052004E005200380038>-515<0059>]TJ ET q @@ -2862,7 +2862,7 @@ stream 0 g 0 G 0 g 0 G BT -/F47 11.955168 Tf 1 0 0 1 12.3537 881.1505 Tm [<004C005100700032004B002300320060>-515<0033002D>-515<006B007900520052>-515<0040>-515<0068003F0032>-515<006000320048001C0069004200700032>-515<004D006D004B002300320060>-515<00510037>-515<00370042004800320062>-515<006D00620032002F>-515<0042004D>-515<002A0051004D0068003200730069>-515<0055006900320074002D>-515<004B004600420042002D>-515<004B004600420070002D>-514<004B004600700042002D>-515<0048006D001C00560058>]TJ +/F47 11.955168 Tf 1 0 0 1 12.3537 881.1505 Tm [<004C005100700032004B002300320060>-515<004E002D>-515<006B007900520052>-515<0040>-515<0068003F0032>-515<006000320048001C0069004200700032>-515<004D006D004B002300320060>-515<00510037>-515<00370042004800320062>-515<006D00620032002F>-515<0042004D>-515<002A0051004D0068003200730069>-515<0055006900320074002D>-515<004B004600420042002D>-515<004B004600420070002D>-514<004B004600700042002D>-515<0048006D001C00560058>]TJ ET 0 0 0.8 rg 0 0 0.8 RG q @@ -4225,7 +4225,7 @@ stream 0 g 0 G 0 g 0 G BT -/F47 11.955168 Tf 1 0 0 1 12.3537 881.1505 Tm [<004C005100700032004B002300320060>-515<0033002D>-515<006B007900520052>-515<0040>-515<0068003F0032>-515<006000320048001C0069004200700032>-515<0062004200780032>-515<00510037>-515<00370042004800320062>-515<006D00620032002F>-515<0042004D>-515<002A0051004D0068003200730069>-515<0055006900320074002D>-515<004B004600420042002D>-515<004B004600420070002D>-514<004B004600700042002D>-515<0048006D001C00560058>]TJ +/F47 11.955168 Tf 1 0 0 1 12.3537 881.1505 Tm [<004C005100700032004B002300320060>-515<004E002D>-515<006B007900520052>-515<0040>-515<0068003F0032>-515<006000320048001C0069004200700032>-515<0062004200780032>-515<00510037>-515<00370042004800320062>-515<006D00620032002F>-515<0042004D>-515<002A0051004D0068003200730069>-515<0055006900320074002D>-515<004B004600420042002D>-515<004B004600420070002D>-514<004B004600700042002D>-515<0048006D001C00560058>]TJ ET 0 0 0.8 rg 0 0 0.8 RG q @@ -5609,14 +5609,14 @@ stream <pdfx:ConTeXt.Time/>
<pdfx:ConTeXt.Url/>
<pdfx:ConTeXt.Version/>
- <pdfx:ID>s-inf-01.2011-11-08T19:40:05+01:00</pdfx:ID>
+ <pdfx:ID>s-inf-01.2011-11-09T19:38:52+01:00</pdfx:ID>
<pdfx:PTEX.Fullbanner>This is LuaTeX, Version beta-0.71.0-2011062811 (rev 4315) (TeX Live 2011) kpathsea version 6.0.1</pdfx:PTEX.Fullbanner>
</rdf:Description>
<rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/">
- <xmp:CreateDate>2011-11-08T19:40:05+01:00</xmp:CreateDate>
- <xmp:CreatorTool>ConTeXt - 2011.11.08 19:35</xmp:CreatorTool>
- <xmp:ModifyDate>2011-11-08T19:40:05+01:00</xmp:ModifyDate>
- <xmp:MetadataDate>2011-11-08T19:40:05+01:00</xmp:MetadataDate>
+ <xmp:CreateDate>2011-11-09T19:38:52+01:00</xmp:CreateDate>
+ <xmp:CreatorTool>ConTeXt - 2011.11.09 19:33</xmp:CreatorTool>
+ <xmp:ModifyDate>2011-11-09T19:38:52+01:00</xmp:ModifyDate>
+ <xmp:MetadataDate>2011-11-09T19:38:52+01:00</xmp:MetadataDate>
</rdf:Description>
<rdf:Description rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/">
<pdf:Keywords/>
@@ -5757,7 +5757,7 @@ endobj endobj 38 0 obj << -/CreationDate (D:20111108194005+01'00') /Creator <feff0043006f006e00540065005800740020002d00200032003000310031002e00310031002e00300038002000310039003a00330035> /Producer (LuaTeX-0.71.0) /ID (s-inf-01.2011-11-08T19:40:05+01:00) /Trapped /False /ModDate (D:20111108194005+01'00') /Title <feff0073002d0069006e0066002d00300031> +/CreationDate (D:20111109193852+01'00') /Creator <feff0043006f006e00540065005800740020002d00200032003000310031002e00310031002e00300039002000310039003a00330033> /Producer (LuaTeX-0.71.0) /ID (s-inf-01.2011-11-09T19:38:52+01:00) /Trapped /False /ModDate (D:20111109193852+01'00') /Title <feff0073002d0069006e0066002d00300031> /PTEX.Fullbanner (This is LuaTeX, Version beta-0.71.0-2011062811 (rev 4315) (TeX Live 2011) kpathsea version 6.0.1)>> endobj xref @@ -5802,7 +5802,7 @@ xref 0000114920 00000 n 0000115072 00000 n trailer -<</Size 39/Root 37 0 R/Info 38 0 R/ID[<B385D4CDD36AD831B3D4E0D755022535> <B385D4CDD36AD831B3D4E0D755022535>]>> +<</Size 39/Root 37 0 R/Info 38 0 R/ID[<15BCC188490C082BD359E02F63571E64> <15BCC188490C082BD359E02F63571E64>]>> startxref 115533 %%EOF diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdf index 0b31ef5d0..192aa01cd 100644 --- a/tex/context/base/status-lua.pdf +++ b/tex/context/base/status-lua.pdf @@ -7272,7 +7272,7 @@ endobj endobj 798 0 obj -<</Length 7546 >> +<</Length 7810 >> stream 0 g 0 G 0 g 0 G @@ -7286,123 +7286,131 @@ ET 0.6 0 0 rg 0.6 0 0 RG BT /F47 11.955168 Tf 1 0 0 1 14.1732 767.4915 Tm [<002A>]TJ -/F1 11.955168 Tf 1 0 0 1 107.7224 767.4915 Tm [<0037006D004D002B006900420051004D>]TJ +/F1 11.955168 Tf 1 0 0 1 157.9342 767.4915 Tm [<0037006D004D002B006900420051004D>]TJ /F47 11.955168 Tf 1 0 0 1 14.1732 753.064 Tm [<002A001C0060003B>]TJ -/F1 11.955168 Tf 1 0 0 1 107.7224 753.064 Tm [<0037006D004D002B006900420051004D>]TJ +/F1 11.955168 Tf 1 0 0 1 157.9342 753.064 Tm [<0037006D004D002B006900420051004D>]TJ /F47 11.955168 Tf 1 0 0 1 14.1732 738.6365 Tm [<002A0023>]TJ -/F1 11.955168 Tf 1 0 0 1 107.7224 738.6365 Tm [<0037006D004D002B006900420051004D>]TJ +/F1 11.955168 Tf 1 0 0 1 157.9342 738.6365 Tm [<0037006D004D002B006900420051004D>]TJ /F47 11.955168 Tf 1 0 0 1 14.1732 724.209 Tm [<002A002B>]TJ -/F1 11.955168 Tf 1 0 0 1 107.7224 724.209 Tm [<0037006D004D002B006900420051004D>]TJ +/F1 11.955168 Tf 1 0 0 1 157.9342 724.209 Tm [<0037006D004D002B006900420051004D>]TJ /F47 11.955168 Tf 1 0 0 1 14.1732 709.7815 Tm [<002A0037>]TJ -/F1 11.955168 Tf 1 0 0 1 107.7224 709.7815 Tm [<0037006D004D002B006900420051004D>]TJ +/F1 11.955168 Tf 1 0 0 1 157.9342 709.7815 Tm [<0037006D004D002B006900420051004D>]TJ /F47 11.955168 Tf 1 0 0 1 14.1732 695.354 Tm [<002A003B>]TJ -/F1 11.955168 Tf 1 0 0 1 107.7224 695.354 Tm [<0037006D004D002B006900420051004D>]TJ +/F1 11.955168 Tf 1 0 0 1 157.9342 695.354 Tm [<0037006D004D002B006900420051004D>]TJ /F47 11.955168 Tf 1 0 0 1 14.1732 680.9265 Tm [<002A004B0069>]TJ -/F1 11.955168 Tf 1 0 0 1 107.7224 680.9265 Tm [<0037006D004D002B006900420051004D>]TJ +/F1 11.955168 Tf 1 0 0 1 157.9342 680.9265 Tm [<0037006D004D002B006900420051004D>]TJ /F47 11.955168 Tf 1 0 0 1 14.1732 666.499 Tm [<002A0054>]TJ -/F1 11.955168 Tf 1 0 0 1 107.7224 666.499 Tm [<0037006D004D002B006900420051004D>]TJ +/F1 11.955168 Tf 1 0 0 1 157.9342 666.499 Tm [<0037006D004D002B006900420051004D>]TJ /F47 11.955168 Tf 1 0 0 1 14.1732 652.0715 Tm [<002A0062>]TJ -/F1 11.955168 Tf 1 0 0 1 107.7224 652.0715 Tm [<0037006D004D002B006900420051004D>]TJ +/F1 11.955168 Tf 1 0 0 1 157.9342 652.0715 Tm [<0037006D004D002B006900420051004D>]TJ /F47 11.955168 Tf 1 0 0 1 14.1732 637.644 Tm [<002A0069>]TJ -/F1 11.955168 Tf 1 0 0 1 107.7224 637.644 Tm [<0037006D004D002B006900420051004D>]TJ +/F1 11.955168 Tf 1 0 0 1 157.9342 637.644 Tm [<0037006D004D002B006900420051004D>]TJ /F47 11.955168 Tf 1 0 0 1 14.1732 623.2165 Tm [<0053>]TJ -/F1 11.955168 Tf 1 0 0 1 107.7224 623.2165 Tm [<0037006D004D002B006900420051004D>]TJ +/F1 11.955168 Tf 1 0 0 1 157.9342 623.2165 Tm [<0037006D004D002B006900420051004D>]TJ /F47 11.955168 Tf 1 0 0 1 14.1732 608.789 Tm [<005F>]TJ -/F1 11.955168 Tf 1 0 0 1 107.7224 608.789 Tm [<0037006D004D002B006900420051004D>]TJ +/F1 11.955168 Tf 1 0 0 1 157.9342 608.789 Tm [<0037006D004D002B006900420051004D>]TJ /F47 11.955168 Tf 1 0 0 1 14.1732 594.3615 Tm [<0061>]TJ -/F1 11.955168 Tf 1 0 0 1 107.7224 594.3615 Tm [<0037006D004D002B006900420051004D>]TJ +/F1 11.955168 Tf 1 0 0 1 157.9342 594.3615 Tm [<0037006D004D002B006900420051004D>]TJ ET 0 g 0 G BT /F47 11.955168 Tf 1 0 0 1 14.1732 579.934 Tm [<006C0053>]TJ -/F1 11.955168 Tf 1 0 0 1 107.7224 579.934 Tm [<0037006D004D002B006900420051004D>]TJ +/F1 11.955168 Tf 1 0 0 1 157.9342 579.934 Tm [<0037006D004D002B006900420051004D>]TJ /F47 11.955168 Tf 1 0 0 1 14.1732 565.5065 Tm [<006C005F>]TJ -/F1 11.955168 Tf 1 0 0 1 107.7224 565.5065 Tm [<0037006D004D002B006900420051004D>]TJ +/F1 11.955168 Tf 1 0 0 1 157.9342 565.5065 Tm [<0037006D004D002B006900420051004D>]TJ /F47 11.955168 Tf 1 0 0 1 14.1732 551.079 Tm [<006C0061>]TJ -/F1 11.955168 Tf 1 0 0 1 107.7224 551.079 Tm [<0037006D004D002B006900420051004D>]TJ +/F1 11.955168 Tf 1 0 0 1 157.9342 551.079 Tm [<0037006D004D002B006900420051004D>]TJ ET 0.6 0 0 rg 0.6 0 0 RG BT /F47 11.955168 Tf 1 0 0 1 14.1732 536.6515 Tm [<006F>]TJ -/F1 11.955168 Tf 1 0 0 1 107.7224 536.6515 Tm [<0037006D004D002B006900420051004D>]TJ +/F1 11.955168 Tf 1 0 0 1 157.9342 536.6515 Tm [<0037006D004D002B006900420051004D>]TJ ET 0 g 0 G BT /F47 11.955168 Tf 1 0 0 1 14.1732 522.224 Tm [<001C004D00760072003F003200600032>]TJ -/F1 11.955168 Tf 1 0 0 1 107.7224 522.224 Tm [<0037006D004D002B006900420051004D>]TJ +/F1 11.955168 Tf 1 0 0 1 157.9342 522.224 Tm [<0037006D004D002B006900420051004D>]TJ /F47 11.955168 Tf 1 0 0 1 14.1732 507.7966 Tm [<001C005400540032004D002F>]TJ -/F1 11.955168 Tf 1 0 0 1 107.7224 507.7966 Tm [<0037006D004D002B006900420051004D>]TJ +/F1 11.955168 Tf 1 0 0 1 157.9342 507.7966 Tm [<0037006D004D002B006900420051004D>]TJ /F47 11.955168 Tf 1 0 0 1 14.1732 493.3691 Tm [<0023001C0048001C004D002B00320060>]TJ -/F1 11.955168 Tf 1 0 0 1 107.7224 493.3691 Tm [<0037006D004D002B006900420051004D>]TJ +/F1 11.955168 Tf 1 0 0 1 157.9342 493.3691 Tm [<0037006D004D002B006900420051004D>]TJ /F47 11.955168 Tf 1 0 0 1 14.1732 478.9416 Tm [<002B003F0032002B00460032002F00620054004800420069>]TJ -/F1 11.955168 Tf 1 0 0 1 107.7224 478.9416 Tm [<0037006D004D002B006900420051004D>]TJ +/F1 11.955168 Tf 1 0 0 1 157.9342 478.9416 Tm [<0037006D004D002B006900420051004D>]TJ /F47 11.955168 Tf 1 0 0 1 14.1732 464.5141 Tm [<002B0051006D004D0069>]TJ -/F1 11.955168 Tf 1 0 0 1 107.7224 464.5141 Tm [<0037006D004D002B006900420051004D>]TJ -/F47 11.955168 Tf 1 0 0 1 306.6042 767.4915 Tm [<002B0051006D004D006900320060>]TJ -/F1 11.955168 Tf 1 0 0 1 400.1534 767.4915 Tm [<0037006D004D002B006900420051004D>]TJ -/F47 11.955168 Tf 1 0 0 1 306.6042 753.064 Tm [<0032004D002F00620069006000420054005400320060>]TJ -/F1 11.955168 Tf 1 0 0 1 400.1534 753.064 Tm [<0037006D004D002B006900420051004D>]TJ -/F47 11.955168 Tf 1 0 0 1 306.6042 738.6365 Tm [<003700420060006200690051003700620054004800420069>]TJ -/F1 11.955168 Tf 1 0 0 1 400.1534 738.6365 Tm [<0037006D004D002B006900420051004D>]TJ -/F47 11.955168 Tf 1 0 0 1 306.6042 724.209 Tm [<003700600051004D006900620069006000420054005400320060>]TJ -/F1 11.955168 Tf 1 0 0 1 400.1534 724.209 Tm [<0037006D004D002B006900420051004D>]TJ -/F47 11.955168 Tf 1 0 0 1 306.6042 709.7815 Tm [<00420062006E004800540032003B>]TJ -/F1 11.955168 Tf 1 0 0 1 400.1534 709.7815 Tm [<0037006D004D002B006900420051004D>]TJ -/F47 11.955168 Tf 1 0 0 1 306.6042 695.354 Tm [<004600320032005400320060>]TJ -/F1 11.955168 Tf 1 0 0 1 400.1534 695.354 Tm [<0037006D004D002B006900420051004D>]TJ +/F1 11.955168 Tf 1 0 0 1 157.9342 464.5141 Tm [<0037006D004D002B006900420051004D>]TJ +/F47 11.955168 Tf 1 0 0 1 14.1732 450.0866 Tm [<002B0051006D004D006900320060>]TJ +/F1 11.955168 Tf 1 0 0 1 157.9342 450.0866 Tm [<0037006D004D002B006900420051004D>]TJ +/F47 11.955168 Tf 1 0 0 1 306.6042 767.4915 Tm [<0032004D002F00620069006000420054005400320060>]TJ +/F1 11.955168 Tf 1 0 0 1 450.3651 767.4915 Tm [<0037006D004D002B006900420051004D>]TJ +/F47 11.955168 Tf 1 0 0 1 306.6042 753.064 Tm [<003700420060006200690051003700620054004800420069>]TJ +/F1 11.955168 Tf 1 0 0 1 450.3651 753.064 Tm [<0037006D004D002B006900420051004D>]TJ +/F47 11.955168 Tf 1 0 0 1 306.6042 738.6365 Tm [<003700600051004D006900620069006000420054005400320060>]TJ +/F1 11.955168 Tf 1 0 0 1 450.3651 738.6365 Tm [<0037006D004D002B006900420051004D>]TJ +/F47 11.955168 Tf 1 0 0 1 306.6042 724.209 Tm [<00420062006E004800540032003B>]TJ +/F1 11.955168 Tf 1 0 0 1 450.3651 724.209 Tm [<0037006D004D002B006900420051004D>]TJ +/F47 11.955168 Tf 1 0 0 1 306.6042 709.7815 Tm [<004600320032005400320060>]TJ +/F1 11.955168 Tf 1 0 0 1 450.3651 709.7815 Tm [<0037006D004D002B006900420051004D>]TJ ET 0.6 0 0 rg 0.6 0 0 RG BT -/F47 11.955168 Tf 1 0 0 1 306.6042 680.9265 Tm [<00480051002B001C00480032>]TJ -/F1 11.955168 Tf 1 0 0 1 400.1534 680.9265 Tm [<0037006D004D002B006900420051004D>]TJ -/F47 11.955168 Tf 1 0 0 1 306.6042 666.499 Tm [<004B001C0069002B003F>]TJ -/F1 11.955168 Tf 1 0 0 1 400.1534 666.499 Tm [<0037006D004D002B006900420051004D>]TJ +/F47 11.955168 Tf 1 0 0 1 306.6042 695.354 Tm [<00480051002B001C00480032>]TJ +/F1 11.955168 Tf 1 0 0 1 450.3651 695.354 Tm [<0037006D004D002B006900420051004D>]TJ +/F47 11.955168 Tf 1 0 0 1 306.6042 680.9265 Tm [<004B001C0069002B003F>]TJ +/F1 11.955168 Tf 1 0 0 1 450.3651 680.9265 Tm [<0037006D004D002B006900420051004D>]TJ ET 0 g 0 G BT -/F47 11.955168 Tf 1 0 0 1 306.6042 652.0715 Tm [<0051004D003200510037>]TJ -/F1 11.955168 Tf 1 0 0 1 400.1534 652.0715 Tm [<0037006D004D002B006900420051004D>]TJ -/F47 11.955168 Tf 1 0 0 1 306.6042 637.644 Tm [<0054001C0069006900320060004D0062>]TJ -/F1 11.955168 Tf 1 0 0 1 400.1534 637.644 Tm [<002F001C0069001C>-515<0069001C002300480032>]TJ +/F47 11.955168 Tf 1 0 0 1 306.6042 666.499 Tm [<0051004D003200510037>]TJ +/F1 11.955168 Tf 1 0 0 1 450.3651 666.499 Tm [<0037006D004D002B006900420051004D>]TJ +/F47 11.955168 Tf 1 0 0 1 306.6042 652.0715 Tm [<0054001C0069006900320060004D0062>]TJ +/F1 11.955168 Tf 1 0 0 1 450.3651 652.0715 Tm [<002F001C0069001C>-515<0069001C002300480032>]TJ ET 0.6 0 0 rg 0.6 0 0 RG BT -/F47 11.955168 Tf 1 0 0 1 306.6042 623.2165 Tm [<005400600042004D0069>]TJ -/F1 11.955168 Tf 1 0 0 1 400.1534 623.2165 Tm [<0037006D004D002B006900420051004D>]TJ +/F47 11.955168 Tf 1 0 0 1 306.6042 637.644 Tm [<005400600042004D0069>]TJ +/F1 11.955168 Tf 1 0 0 1 450.3651 637.644 Tm [<0037006D004D002B006900420051004D>]TJ +ET +0 g 0 G +BT +/F47 11.955168 Tf 1 0 0 1 306.6042 623.2165 Tm [<0060003200540048001C002B00320060>]TJ +/F1 11.955168 Tf 1 0 0 1 450.3651 623.2165 Tm [<0037006D004D002B006900420051004D>]TJ +/F47 11.955168 Tf 1 0 0 1 306.6042 608.789 Tm [<00620032002B0051004D002F0051003700620054004800420069>]TJ +/F1 11.955168 Tf 1 0 0 1 450.3651 608.789 Tm [<0037006D004D002B006900420051004D>]TJ +ET +0.6 0 0 rg 0.6 0 0 RG +BT +/F47 11.955168 Tf 1 0 0 1 306.6042 594.3615 Tm [<00620054001C004D>]TJ +/F1 11.955168 Tf 1 0 0 1 450.3651 594.3615 Tm [<0037006D004D002B006900420051004D>]TJ ET 0 g 0 G BT -/F47 11.955168 Tf 1 0 0 1 306.6042 608.789 Tm [<0060003200540048001C002B00320060>]TJ -/F1 11.955168 Tf 1 0 0 1 400.1534 608.789 Tm [<0037006D004D002B006900420051004D>]TJ -/F47 11.955168 Tf 1 0 0 1 306.6042 594.3615 Tm [<00620032002B0051004D002F0051003700620054004800420069>]TJ -/F1 11.955168 Tf 1 0 0 1 400.1534 594.3615 Tm [<0037006D004D002B006900420051004D>]TJ +/F47 11.955168 Tf 1 0 0 1 306.6042 579.934 Tm [<00620054004800420069>]TJ +/F1 11.955168 Tf 1 0 0 1 450.3651 579.934 Tm [<0037006D004D002B006900420051004D>]TJ +/F47 11.955168 Tf 1 0 0 1 306.6042 565.5065 Tm [<00620054004800420069001C0069>]TJ +/F1 11.955168 Tf 1 0 0 1 450.3651 565.5065 Tm [<0037006D004D002B006900420051004D>]TJ +/F47 11.955168 Tf 1 0 0 1 306.6042 551.079 Tm [<00620054004800420069006900320060>]TJ +/F1 11.955168 Tf 1 0 0 1 450.3651 551.079 Tm [<0037006D004D002B006900420051004D>]TJ +/F47 11.955168 Tf 1 0 0 1 306.6042 536.6515 Tm [<00620069006000420054005400320060>]TJ +/F1 11.955168 Tf 1 0 0 1 450.3651 536.6515 Tm [<0037006D004D002B006900420051004D>]TJ +/F47 11.955168 Tf 1 0 0 1 306.6042 522.224 Tm [<006900620054004800420069001C0069>]TJ +/F1 11.955168 Tf 1 0 0 1 450.3651 522.224 Tm [<0037006D004D002B006900420051004D>]TJ +/F47 11.955168 Tf 1 0 0 1 306.6042 507.7966 Tm [<006900620054004800420069006900320060>]TJ +/F1 11.955168 Tf 1 0 0 1 450.3651 507.7966 Tm [<0037006D004D002B006900420051004D>]TJ ET 0.6 0 0 rg 0.6 0 0 RG BT -/F47 11.955168 Tf 1 0 0 1 306.6042 579.934 Tm [<00620054001C004D>]TJ -/F1 11.955168 Tf 1 0 0 1 400.1534 579.934 Tm [<0037006D004D002B006900420051004D>]TJ +/F47 11.955168 Tf 1 0 0 1 306.6042 493.3691 Tm [<0069007600540032>]TJ +/F1 11.955168 Tf 1 0 0 1 450.3651 493.3691 Tm [<0037006D004D002B006900420051004D>]TJ ET 0 g 0 G BT -/F47 11.955168 Tf 1 0 0 1 306.6042 565.5065 Tm [<00620054004800420069>]TJ -/F1 11.955168 Tf 1 0 0 1 400.1534 565.5065 Tm [<0037006D004D002B006900420051004D>]TJ -/F47 11.955168 Tf 1 0 0 1 306.6042 551.079 Tm [<00620054004800420069001C0069>]TJ -/F1 11.955168 Tf 1 0 0 1 400.1534 551.079 Tm [<0037006D004D002B006900420051004D>]TJ -/F47 11.955168 Tf 1 0 0 1 306.6042 536.6515 Tm [<00620054004800420069006900320060>]TJ -/F1 11.955168 Tf 1 0 0 1 400.1534 536.6515 Tm [<0037006D004D002B006900420051004D>]TJ -/F47 11.955168 Tf 1 0 0 1 306.6042 522.224 Tm [<00620069006000420054005400320060>]TJ -/F1 11.955168 Tf 1 0 0 1 400.1534 522.224 Tm [<0037006D004D002B006900420051004D>]TJ -/F47 11.955168 Tf 1 0 0 1 306.6042 507.7966 Tm [<006900620054004800420069001C0069>]TJ -/F1 11.955168 Tf 1 0 0 1 400.1534 507.7966 Tm [<0037006D004D002B006900420051004D>]TJ -/F47 11.955168 Tf 1 0 0 1 306.6042 493.3691 Tm [<006900620054004800420069006900320060>]TJ -/F1 11.955168 Tf 1 0 0 1 400.1534 493.3691 Tm [<0037006D004D002B006900420051004D>]TJ +/F47 11.955168 Tf 1 0 0 1 306.6042 478.9416 Tm [<006D00690037002B003F001C00600069001C002300480032006900510054001C0069006900320060004D>]TJ +/F1 11.955168 Tf 1 0 0 1 450.3651 478.9416 Tm [<0037006D004D002B006900420051004D>]TJ ET 0.6 0 0 rg 0.6 0 0 RG BT -/F47 11.955168 Tf 1 0 0 1 306.6042 478.9416 Tm [<0069007600540032>]TJ -/F1 11.955168 Tf 1 0 0 1 400.1534 478.9416 Tm [<0037006D004D002B006900420051004D>]TJ /F47 11.955168 Tf 1 0 0 1 306.6042 464.5141 Tm [<007000320060006200420051004D>]TJ -/F1 11.955168 Tf 1 0 0 1 400.1534 464.5141 Tm [<0037006D004D002B006900420051004D>]TJ +/F1 11.955168 Tf 1 0 0 1 450.3651 464.5141 Tm [<0037006D004D002B006900420051004D>]TJ ET endstream endobj @@ -13928,17 +13936,17 @@ stream </rdf:Description>
<rdf:Description rdf:about="" xmlns:pdfx="http://ns.adobe.com/pdfx/1.3/">
<pdfx:ConTeXt.Jobname>s-inf-03</pdfx:ConTeXt.Jobname>
- <pdfx:ConTeXt.Time>2011.11.08 19:40</pdfx:ConTeXt.Time>
+ <pdfx:ConTeXt.Time>2011.11.09 19:39</pdfx:ConTeXt.Time>
<pdfx:ConTeXt.Url>www.pragma-ade.com</pdfx:ConTeXt.Url>
- <pdfx:ConTeXt.Version>2011.11.08 19:35</pdfx:ConTeXt.Version>
- <pdfx:ID>s-inf-03.2011-11-08T19:40:37+01:00</pdfx:ID>
+ <pdfx:ConTeXt.Version>2011.11.09 19:33</pdfx:ConTeXt.Version>
+ <pdfx:ID>s-inf-03.2011-11-09T19:39:24+01:00</pdfx:ID>
<pdfx:PTEX.Fullbanner>This is LuaTeX, Version beta-0.71.0-2011062811 (rev 4315) (TeX Live 2011) kpathsea version 6.0.1</pdfx:PTEX.Fullbanner>
</rdf:Description>
<rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/">
- <xmp:CreateDate>2011-11-08T19:40:37+01:00</xmp:CreateDate>
- <xmp:CreatorTool>ConTeXt - 2011.11.08 19:35</xmp:CreatorTool>
- <xmp:ModifyDate>2011-11-08T19:40:37+01:00</xmp:ModifyDate>
- <xmp:MetadataDate>2011-11-08T19:40:37+01:00</xmp:MetadataDate>
+ <xmp:CreateDate>2011-11-09T19:39:24+01:00</xmp:CreateDate>
+ <xmp:CreatorTool>ConTeXt - 2011.11.09 19:33</xmp:CreatorTool>
+ <xmp:ModifyDate>2011-11-09T19:39:24+01:00</xmp:ModifyDate>
+ <xmp:MetadataDate>2011-11-09T19:39:24+01:00</xmp:MetadataDate>
</rdf:Description>
<rdf:Description rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/">
<pdf:Keywords/>
@@ -14781,7 +14789,7 @@ endobj endobj 1445 0 obj << -/ConTeXt.Url (www.pragma-ade.com) /Creator <feff0043006f006e00540065005800740020002d00200032003000310031002e00310031002e00300038002000310039003a00330035> /ConTeXt.Jobname (s-inf-03) /Author <feff00480061006e007300200048006100670065006e0020002d0020006100750074006f006d00610074006900630061006c006c0079002000670065006e006500720061007400650064> /Trapped /False /CreationDate (D:20111108194037+01'00') /Producer (LuaTeX-0.71.0) /Title <feff0043006f006e00540065005800740020004d006b00490056> /ConTeXt.Time (2011.11.08 19:40) /ID (s-inf-03.2011-11-08T19:40:37+01:00) /ConTeXt.Version (2011.11.08 19:35) /ModDate (D:20111108194037+01'00') /Subject <feff004c007500610020006d006f00640075006c0065007300200061006e0064002000660075006e006300740069006f006e0073> +/ConTeXt.Url (www.pragma-ade.com) /Creator <feff0043006f006e00540065005800740020002d00200032003000310031002e00310031002e00300039002000310039003a00330033> /ConTeXt.Jobname (s-inf-03) /Author <feff00480061006e007300200048006100670065006e0020002d0020006100750074006f006d00610074006900630061006c006c0079002000670065006e006500720061007400650064> /Trapped /False /CreationDate (D:20111109193924+01'00') /Producer (LuaTeX-0.71.0) /Title <feff0043006f006e00540065005800740020004d006b00490056> /ConTeXt.Time (2011.11.09 19:39) /ID (s-inf-03.2011-11-09T19:39:24+01:00) /ConTeXt.Version (2011.11.09 19:33) /ModDate (D:20111109193924+01'00') /Subject <feff004c007500610020006d006f00640075006c0065007300200061006e0064002000660075006e006300740069006f006e0073> /PTEX.Fullbanner (This is LuaTeX, Version beta-0.71.0-2011062811 (rev 4315) (TeX Live 2011) kpathsea version 6.0.1)>> endobj xref @@ -14899,7 +14907,7 @@ xref 0000011811 00000 n 0000004152 00000 n 0000024538 00000 n -0000808440 00000 n +0000808704 00000 n 0000012800 00000 n 0000012924 00000 n 0000013049 00000 n @@ -14994,7 +15002,7 @@ xref 0000024160 00000 n 0000024286 00000 n 0000024412 00000 n -0000808772 00000 n +0000809036 00000 n 0000012029 00000 n 0000024637 00000 n 0000024682 00000 n @@ -15006,7 +15014,7 @@ xref 0000042582 00000 n 0000024878 00000 n 0000043371 00000 n -0000798368 00000 n +0000798632 00000 n 0000043495 00000 n 0000051914 00000 n 0000043619 00000 n @@ -15124,7 +15132,7 @@ xref 0000075163 00000 n 0000075287 00000 n 0000075324 00000 n -0000791161 00000 n +0000791425 00000 n 0000074996 00000 n 0000088659 00000 n 0000075446 00000 n @@ -15184,7 +15192,7 @@ xref 0000101368 00000 n 0000101492 00000 n 0000101529 00000 n -0000808916 00000 n +0000809180 00000 n 0000101201 00000 n 0000111247 00000 n 0000101651 00000 n @@ -15271,7 +15279,7 @@ xref 0000175256 00000 n 0000197060 00000 n 0000197184 00000 n -0000809060 00000 n +0000809324 00000 n 0000197025 00000 n 0000219628 00000 n 0000197381 00000 n @@ -15358,7 +15366,7 @@ xref 0000250471 00000 n 0000250595 00000 n 0000250632 00000 n -0000809204 00000 n +0000809468 00000 n 0000250304 00000 n 0000254784 00000 n 0000250742 00000 n @@ -15445,7 +15453,7 @@ xref 0000300415 00000 n 0000309590 00000 n 0000309714 00000 n -0000809348 00000 n +0000809612 00000 n 0000309555 00000 n 0000317166 00000 n 0000309923 00000 n @@ -15534,7 +15542,7 @@ xref 0000359736 00000 n 0000359860 00000 n 0000359897 00000 n -0000809492 00000 n +0000809756 00000 n 0000359569 00000 n 0000365251 00000 n 0000360019 00000 n @@ -15572,7 +15580,7 @@ xref 0000378531 00000 n 0000378568 00000 n 0000378240 00000 n -0000400822 00000 n +0000401086 00000 n 0000378678 00000 n 0000393081 00000 n 0000378731 00000 n @@ -15581,659 +15589,659 @@ xref 0000393007 00000 n 0000393044 00000 n 0000392716 00000 n -0000404012 00000 n +0000404276 00000 n 0000393166 00000 n -0000401405 00000 n +0000401669 00000 n 0000393219 00000 n -0000401083 00000 n -0000401207 00000 n -0000401331 00000 n -0000401368 00000 n -0000401040 00000 n -0000409269 00000 n -0000401478 00000 n -0000404595 00000 n -0000401531 00000 n -0000404273 00000 n -0000404397 00000 n -0000404521 00000 n -0000404558 00000 n -0000404230 00000 n -0000411660 00000 n -0000404680 00000 n -0000409852 00000 n -0000404733 00000 n -0000409530 00000 n -0000409654 00000 n -0000409778 00000 n -0000409815 00000 n -0000409487 00000 n -0000428751 00000 n -0000409925 00000 n -0000412243 00000 n -0000409978 00000 n -0000411921 00000 n -0000412045 00000 n -0000412169 00000 n -0000412206 00000 n -0000411878 00000 n -0000436106 00000 n -0000412316 00000 n -0000429334 00000 n -0000412369 00000 n -0000429012 00000 n -0000429136 00000 n -0000429260 00000 n -0000429297 00000 n -0000809636 00000 n -0000428969 00000 n -0000444200 00000 n -0000429419 00000 n -0000436689 00000 n -0000429472 00000 n -0000436367 00000 n -0000436491 00000 n -0000436615 00000 n -0000436652 00000 n -0000436324 00000 n -0000446628 00000 n -0000436762 00000 n -0000444783 00000 n -0000436815 00000 n -0000444461 00000 n -0000444585 00000 n -0000444709 00000 n -0000444746 00000 n -0000444418 00000 n -0000458531 00000 n -0000444868 00000 n -0000447211 00000 n -0000444921 00000 n -0000446889 00000 n -0000447013 00000 n -0000447137 00000 n -0000447174 00000 n -0000446846 00000 n -0000462927 00000 n -0000447284 00000 n -0000459114 00000 n -0000447337 00000 n -0000458792 00000 n -0000458916 00000 n -0000459040 00000 n -0000459077 00000 n -0000458749 00000 n -0000464673 00000 n -0000459199 00000 n -0000463510 00000 n -0000459252 00000 n -0000463188 00000 n -0000463312 00000 n -0000463436 00000 n -0000463473 00000 n -0000463145 00000 n -0000467534 00000 n -0000463595 00000 n -0000465256 00000 n -0000463648 00000 n -0000464934 00000 n -0000465058 00000 n -0000465182 00000 n -0000465219 00000 n -0000464891 00000 n -0000476218 00000 n -0000465329 00000 n -0000468117 00000 n -0000465382 00000 n -0000467795 00000 n -0000467919 00000 n -0000468043 00000 n -0000468080 00000 n -0000467752 00000 n -0000491024 00000 n -0000468202 00000 n -0000476801 00000 n -0000468255 00000 n -0000476479 00000 n -0000476603 00000 n -0000476727 00000 n -0000476764 00000 n -0000476436 00000 n -0000504229 00000 n -0000476874 00000 n -0000491607 00000 n -0000476927 00000 n -0000491285 00000 n -0000491409 00000 n -0000491533 00000 n -0000491570 00000 n -0000491242 00000 n -0000507214 00000 n -0000491692 00000 n -0000504730 00000 n -0000491745 00000 n -0000504482 00000 n -0000504606 00000 n -0000809780 00000 n -0000504447 00000 n -0000513388 00000 n -0000504815 00000 n -0000507715 00000 n -0000504868 00000 n -0000507467 00000 n -0000507591 00000 n -0000507432 00000 n -0000520428 00000 n -0000507800 00000 n -0000513971 00000 n -0000507853 00000 n -0000513649 00000 n -0000513773 00000 n -0000513897 00000 n -0000513934 00000 n -0000513606 00000 n -0000523598 00000 n -0000514044 00000 n -0000521011 00000 n -0000514097 00000 n -0000520689 00000 n -0000520813 00000 n -0000520937 00000 n -0000520974 00000 n -0000520646 00000 n -0000527532 00000 n -0000521084 00000 n -0000524181 00000 n -0000521137 00000 n -0000523859 00000 n -0000523983 00000 n -0000524107 00000 n -0000524144 00000 n -0000523816 00000 n -0000528721 00000 n -0000524254 00000 n -0000528115 00000 n -0000524307 00000 n -0000527793 00000 n -0000527917 00000 n -0000528041 00000 n -0000528078 00000 n -0000527750 00000 n -0000530451 00000 n -0000528188 00000 n -0000529304 00000 n -0000528241 00000 n -0000528982 00000 n -0000529106 00000 n -0000529230 00000 n -0000529267 00000 n -0000528939 00000 n -0000532451 00000 n -0000529377 00000 n -0000531034 00000 n -0000529430 00000 n -0000530712 00000 n -0000530836 00000 n -0000530960 00000 n -0000530997 00000 n -0000530669 00000 n -0000549147 00000 n -0000531107 00000 n -0000533034 00000 n -0000531160 00000 n -0000532712 00000 n -0000532836 00000 n -0000532960 00000 n -0000532997 00000 n -0000532669 00000 n -0000560144 00000 n -0000533107 00000 n -0000549741 00000 n -0000533162 00000 n -0000549414 00000 n -0000549539 00000 n -0000549665 00000 n -0000549703 00000 n -0000549368 00000 n -0000563112 00000 n -0000549827 00000 n -0000560656 00000 n -0000549882 00000 n -0000560405 00000 n -0000560530 00000 n -0000809924 00000 n -0000560367 00000 n -0000564973 00000 n -0000560742 00000 n -0000563711 00000 n -0000560797 00000 n -0000563381 00000 n -0000563507 00000 n -0000563633 00000 n -0000563672 00000 n -0000563335 00000 n -0000566589 00000 n -0000563785 00000 n -0000565572 00000 n -0000563840 00000 n -0000565242 00000 n -0000565368 00000 n -0000565494 00000 n -0000565533 00000 n -0000565196 00000 n -0000570200 00000 n -0000565646 00000 n -0000567188 00000 n -0000565701 00000 n -0000566858 00000 n -0000566984 00000 n -0000567110 00000 n -0000567149 00000 n -0000566812 00000 n -0000572636 00000 n -0000567262 00000 n -0000570799 00000 n -0000567317 00000 n -0000570469 00000 n -0000570595 00000 n -0000570721 00000 n -0000570760 00000 n -0000570423 00000 n -0000580803 00000 n -0000570873 00000 n -0000573235 00000 n -0000570928 00000 n -0000572905 00000 n -0000573031 00000 n -0000573157 00000 n -0000573196 00000 n -0000572859 00000 n -0000584418 00000 n -0000573309 00000 n -0000581402 00000 n -0000573364 00000 n -0000581072 00000 n -0000581198 00000 n -0000581324 00000 n -0000581363 00000 n -0000581026 00000 n -0000588851 00000 n -0000581488 00000 n -0000585017 00000 n -0000581543 00000 n -0000584687 00000 n -0000584813 00000 n -0000584939 00000 n -0000584978 00000 n -0000584641 00000 n -0000590118 00000 n -0000585103 00000 n -0000589450 00000 n -0000585158 00000 n -0000589120 00000 n -0000589246 00000 n -0000589372 00000 n -0000589411 00000 n -0000589074 00000 n -0000592904 00000 n -0000589524 00000 n -0000590717 00000 n -0000589579 00000 n -0000590387 00000 n -0000590513 00000 n -0000590639 00000 n -0000590678 00000 n -0000590341 00000 n -0000595425 00000 n -0000590791 00000 n -0000593503 00000 n -0000590846 00000 n -0000593173 00000 n -0000593299 00000 n -0000593425 00000 n -0000593464 00000 n -0000810079 00000 n -0000593127 00000 n -0000603832 00000 n -0000593577 00000 n -0000596024 00000 n -0000593632 00000 n -0000595694 00000 n -0000595820 00000 n -0000595946 00000 n -0000595985 00000 n -0000595648 00000 n -0000613482 00000 n -0000596098 00000 n -0000604431 00000 n -0000596153 00000 n -0000604101 00000 n -0000604227 00000 n -0000604353 00000 n -0000604392 00000 n -0000604055 00000 n -0000623351 00000 n -0000604505 00000 n -0000614081 00000 n -0000604560 00000 n -0000613751 00000 n -0000613877 00000 n -0000614003 00000 n -0000614042 00000 n -0000613705 00000 n -0000633415 00000 n -0000614167 00000 n -0000623864 00000 n -0000614222 00000 n -0000623612 00000 n -0000623738 00000 n -0000623574 00000 n -0000641106 00000 n -0000623950 00000 n -0000633928 00000 n -0000624005 00000 n -0000633676 00000 n -0000633802 00000 n -0000633638 00000 n -0000651410 00000 n -0000634014 00000 n -0000641619 00000 n -0000634069 00000 n -0000641367 00000 n -0000641493 00000 n -0000641329 00000 n -0000670252 00000 n -0000641705 00000 n -0000652009 00000 n -0000641760 00000 n -0000651679 00000 n -0000651805 00000 n -0000651931 00000 n -0000651970 00000 n -0000651633 00000 n -0000673957 00000 n -0000652083 00000 n -0000670851 00000 n -0000652138 00000 n -0000670521 00000 n -0000670647 00000 n -0000670773 00000 n -0000670812 00000 n -0000670475 00000 n -0000675394 00000 n -0000670925 00000 n -0000674556 00000 n -0000670980 00000 n -0000674226 00000 n -0000674352 00000 n -0000674478 00000 n -0000674517 00000 n -0000674180 00000 n -0000678444 00000 n -0000674630 00000 n -0000675993 00000 n -0000674685 00000 n -0000675663 00000 n -0000675789 00000 n -0000675915 00000 n -0000675954 00000 n -0000810234 00000 n -0000675617 00000 n -0000682255 00000 n -0000676067 00000 n -0000679043 00000 n -0000676122 00000 n -0000678713 00000 n -0000678839 00000 n -0000678965 00000 n -0000679004 00000 n -0000678667 00000 n -0000685560 00000 n -0000679117 00000 n -0000682854 00000 n -0000679172 00000 n -0000682524 00000 n -0000682650 00000 n -0000682776 00000 n -0000682815 00000 n -0000682478 00000 n -0000688270 00000 n -0000682940 00000 n -0000686159 00000 n -0000682995 00000 n -0000685829 00000 n -0000685955 00000 n -0000686081 00000 n -0000686120 00000 n -0000685783 00000 n -0000695276 00000 n -0000686245 00000 n -0000688869 00000 n -0000686300 00000 n -0000688539 00000 n -0000688665 00000 n -0000688791 00000 n -0000688830 00000 n -0000688493 00000 n -0000703662 00000 n -0000688943 00000 n -0000695875 00000 n -0000688998 00000 n -0000695545 00000 n -0000695671 00000 n -0000695797 00000 n -0000695836 00000 n -0000695499 00000 n -0000705876 00000 n -0000695961 00000 n -0000704261 00000 n -0000696016 00000 n -0000703931 00000 n -0000704057 00000 n -0000704183 00000 n -0000704222 00000 n -0000703885 00000 n -0000715842 00000 n -0000704347 00000 n -0000706475 00000 n -0000704402 00000 n -0000706145 00000 n -0000706271 00000 n -0000706397 00000 n -0000706436 00000 n -0000706099 00000 n -0000721742 00000 n -0000706549 00000 n -0000716441 00000 n -0000706604 00000 n -0000716111 00000 n -0000716237 00000 n -0000716363 00000 n -0000716402 00000 n -0000716065 00000 n -0000734583 00000 n -0000716527 00000 n -0000722341 00000 n -0000716582 00000 n -0000722011 00000 n -0000722137 00000 n -0000722263 00000 n -0000722302 00000 n -0000721965 00000 n -0000754494 00000 n -0000722415 00000 n -0000735182 00000 n -0000722470 00000 n -0000734852 00000 n -0000734978 00000 n -0000735104 00000 n -0000735143 00000 n -0000810389 00000 n -0000734806 00000 n -0000757955 00000 n -0000735268 00000 n -0000755007 00000 n -0000735323 00000 n -0000754755 00000 n -0000754881 00000 n -0000754717 00000 n -0000760544 00000 n -0000755093 00000 n -0000758554 00000 n -0000755148 00000 n -0000758224 00000 n -0000758350 00000 n -0000758476 00000 n -0000758515 00000 n -0000758178 00000 n -0000762805 00000 n -0000758628 00000 n -0000761143 00000 n -0000758683 00000 n -0000760813 00000 n -0000760939 00000 n -0000761065 00000 n -0000761104 00000 n -0000760767 00000 n -0000763278 00000 n -0000761217 00000 n -0000763074 00000 n -0000763200 00000 n -0000763239 00000 n -0000763028 00000 n -0000763352 00000 n -0000782306 00000 n -0000765804 00000 n -0000765961 00000 n -0000766141 00000 n -0000766313 00000 n -0000766477 00000 n -0000766637 00000 n -0000766805 00000 n -0000766973 00000 n -0000767145 00000 n -0000767309 00000 n -0000767490 00000 n -0000767667 00000 n -0000767840 00000 n -0000768021 00000 n -0000768198 00000 n -0000768371 00000 n -0000768552 00000 n -0000768733 00000 n -0000768918 00000 n -0000769087 00000 n -0000769240 00000 n -0000769421 00000 n -0000769594 00000 n -0000769779 00000 n -0000769944 00000 n -0000770129 00000 n -0000770298 00000 n -0000770463 00000 n -0000770628 00000 n -0000770793 00000 n -0000770982 00000 n -0000771143 00000 n -0000771308 00000 n -0000771469 00000 n -0000771658 00000 n -0000771839 00000 n -0000771996 00000 n -0000772149 00000 n -0000772314 00000 n -0000772491 00000 n -0000772660 00000 n -0000772821 00000 n -0000772998 00000 n -0000773151 00000 n -0000773308 00000 n -0000773465 00000 n -0000773630 00000 n -0000773799 00000 n -0000773960 00000 n -0000774125 00000 n -0000774282 00000 n -0000774447 00000 n -0000774632 00000 n -0000774793 00000 n -0000774966 00000 n -0000775131 00000 n -0000775300 00000 n -0000775461 00000 n -0000775626 00000 n -0000775787 00000 n -0000775952 00000 n -0000776109 00000 n -0000776286 00000 n -0000776447 00000 n -0000776616 00000 n -0000776797 00000 n -0000776966 00000 n -0000777143 00000 n -0000777312 00000 n -0000777465 00000 n -0000777666 00000 n -0000777863 00000 n -0000778048 00000 n -0000778221 00000 n -0000778390 00000 n -0000778571 00000 n -0000778744 00000 n -0000778913 00000 n -0000779082 00000 n -0000779255 00000 n -0000779436 00000 n -0000779605 00000 n -0000779766 00000 n -0000779951 00000 n -0000780120 00000 n -0000780289 00000 n -0000780454 00000 n -0000780623 00000 n -0000780796 00000 n -0000780981 00000 n -0000781158 00000 n -0000781311 00000 n -0000781488 00000 n -0000781673 00000 n -0000781826 00000 n -0000781995 00000 n -0000782156 00000 n -0000782388 00000 n -0000782682 00000 n -0000782757 00000 n -0000789478 00000 n -0000789701 00000 n -0000791305 00000 n -0000791495 00000 n -0000791751 00000 n -0000791826 00000 n -0000796874 00000 n -0000797097 00000 n -0000798512 00000 n -0000798702 00000 n -0000799027 00000 n -0000799102 00000 n -0000806637 00000 n -0000806859 00000 n -0000808583 00000 n +0000401347 00000 n +0000401471 00000 n +0000401595 00000 n +0000401632 00000 n +0000401304 00000 n +0000409533 00000 n +0000401742 00000 n +0000404859 00000 n +0000401795 00000 n +0000404537 00000 n +0000404661 00000 n +0000404785 00000 n +0000404822 00000 n +0000404494 00000 n +0000411924 00000 n +0000404944 00000 n +0000410116 00000 n +0000404997 00000 n +0000409794 00000 n +0000409918 00000 n +0000410042 00000 n +0000410079 00000 n +0000409751 00000 n +0000429015 00000 n +0000410189 00000 n +0000412507 00000 n +0000410242 00000 n +0000412185 00000 n +0000412309 00000 n +0000412433 00000 n +0000412470 00000 n +0000412142 00000 n +0000436370 00000 n +0000412580 00000 n +0000429598 00000 n +0000412633 00000 n +0000429276 00000 n +0000429400 00000 n +0000429524 00000 n +0000429561 00000 n +0000809900 00000 n +0000429233 00000 n +0000444464 00000 n +0000429683 00000 n +0000436953 00000 n +0000429736 00000 n +0000436631 00000 n +0000436755 00000 n +0000436879 00000 n +0000436916 00000 n +0000436588 00000 n +0000446892 00000 n +0000437026 00000 n +0000445047 00000 n +0000437079 00000 n +0000444725 00000 n +0000444849 00000 n +0000444973 00000 n +0000445010 00000 n +0000444682 00000 n +0000458795 00000 n +0000445132 00000 n +0000447475 00000 n +0000445185 00000 n +0000447153 00000 n +0000447277 00000 n +0000447401 00000 n +0000447438 00000 n +0000447110 00000 n +0000463191 00000 n +0000447548 00000 n +0000459378 00000 n +0000447601 00000 n +0000459056 00000 n +0000459180 00000 n +0000459304 00000 n +0000459341 00000 n +0000459013 00000 n +0000464937 00000 n +0000459463 00000 n +0000463774 00000 n +0000459516 00000 n +0000463452 00000 n +0000463576 00000 n +0000463700 00000 n +0000463737 00000 n +0000463409 00000 n +0000467798 00000 n +0000463859 00000 n +0000465520 00000 n +0000463912 00000 n +0000465198 00000 n +0000465322 00000 n +0000465446 00000 n +0000465483 00000 n +0000465155 00000 n +0000476482 00000 n +0000465593 00000 n +0000468381 00000 n +0000465646 00000 n +0000468059 00000 n +0000468183 00000 n +0000468307 00000 n +0000468344 00000 n +0000468016 00000 n +0000491288 00000 n +0000468466 00000 n +0000477065 00000 n +0000468519 00000 n +0000476743 00000 n +0000476867 00000 n +0000476991 00000 n +0000477028 00000 n +0000476700 00000 n +0000504493 00000 n +0000477138 00000 n +0000491871 00000 n +0000477191 00000 n +0000491549 00000 n +0000491673 00000 n +0000491797 00000 n +0000491834 00000 n +0000491506 00000 n +0000507478 00000 n +0000491956 00000 n +0000504994 00000 n +0000492009 00000 n +0000504746 00000 n +0000504870 00000 n +0000810044 00000 n +0000504711 00000 n +0000513652 00000 n +0000505079 00000 n +0000507979 00000 n +0000505132 00000 n +0000507731 00000 n +0000507855 00000 n +0000507696 00000 n +0000520692 00000 n +0000508064 00000 n +0000514235 00000 n +0000508117 00000 n +0000513913 00000 n +0000514037 00000 n +0000514161 00000 n +0000514198 00000 n +0000513870 00000 n +0000523862 00000 n +0000514308 00000 n +0000521275 00000 n +0000514361 00000 n +0000520953 00000 n +0000521077 00000 n +0000521201 00000 n +0000521238 00000 n +0000520910 00000 n +0000527796 00000 n +0000521348 00000 n +0000524445 00000 n +0000521401 00000 n +0000524123 00000 n +0000524247 00000 n +0000524371 00000 n +0000524408 00000 n +0000524080 00000 n +0000528985 00000 n +0000524518 00000 n +0000528379 00000 n +0000524571 00000 n +0000528057 00000 n +0000528181 00000 n +0000528305 00000 n +0000528342 00000 n +0000528014 00000 n +0000530715 00000 n +0000528452 00000 n +0000529568 00000 n +0000528505 00000 n +0000529246 00000 n +0000529370 00000 n +0000529494 00000 n +0000529531 00000 n +0000529203 00000 n +0000532715 00000 n +0000529641 00000 n +0000531298 00000 n +0000529694 00000 n +0000530976 00000 n +0000531100 00000 n +0000531224 00000 n +0000531261 00000 n +0000530933 00000 n +0000549411 00000 n +0000531371 00000 n +0000533298 00000 n +0000531424 00000 n +0000532976 00000 n +0000533100 00000 n +0000533224 00000 n +0000533261 00000 n +0000532933 00000 n +0000560408 00000 n +0000533371 00000 n +0000550005 00000 n +0000533426 00000 n +0000549678 00000 n +0000549803 00000 n +0000549929 00000 n +0000549967 00000 n +0000549632 00000 n +0000563376 00000 n +0000550091 00000 n +0000560920 00000 n +0000550146 00000 n +0000560669 00000 n +0000560794 00000 n +0000810188 00000 n +0000560631 00000 n +0000565237 00000 n +0000561006 00000 n +0000563975 00000 n +0000561061 00000 n +0000563645 00000 n +0000563771 00000 n +0000563897 00000 n +0000563936 00000 n +0000563599 00000 n +0000566853 00000 n +0000564049 00000 n +0000565836 00000 n +0000564104 00000 n +0000565506 00000 n +0000565632 00000 n +0000565758 00000 n +0000565797 00000 n +0000565460 00000 n +0000570464 00000 n +0000565910 00000 n +0000567452 00000 n +0000565965 00000 n +0000567122 00000 n +0000567248 00000 n +0000567374 00000 n +0000567413 00000 n +0000567076 00000 n +0000572900 00000 n +0000567526 00000 n +0000571063 00000 n +0000567581 00000 n +0000570733 00000 n +0000570859 00000 n +0000570985 00000 n +0000571024 00000 n +0000570687 00000 n +0000581067 00000 n +0000571137 00000 n +0000573499 00000 n +0000571192 00000 n +0000573169 00000 n +0000573295 00000 n +0000573421 00000 n +0000573460 00000 n +0000573123 00000 n +0000584682 00000 n +0000573573 00000 n +0000581666 00000 n +0000573628 00000 n +0000581336 00000 n +0000581462 00000 n +0000581588 00000 n +0000581627 00000 n +0000581290 00000 n +0000589115 00000 n +0000581752 00000 n +0000585281 00000 n +0000581807 00000 n +0000584951 00000 n +0000585077 00000 n +0000585203 00000 n +0000585242 00000 n +0000584905 00000 n +0000590382 00000 n +0000585367 00000 n +0000589714 00000 n +0000585422 00000 n +0000589384 00000 n +0000589510 00000 n +0000589636 00000 n +0000589675 00000 n +0000589338 00000 n +0000593168 00000 n +0000589788 00000 n +0000590981 00000 n +0000589843 00000 n +0000590651 00000 n +0000590777 00000 n +0000590903 00000 n +0000590942 00000 n +0000590605 00000 n +0000595689 00000 n +0000591055 00000 n +0000593767 00000 n +0000591110 00000 n +0000593437 00000 n +0000593563 00000 n +0000593689 00000 n +0000593728 00000 n +0000810343 00000 n +0000593391 00000 n +0000604096 00000 n +0000593841 00000 n +0000596288 00000 n +0000593896 00000 n +0000595958 00000 n +0000596084 00000 n +0000596210 00000 n +0000596249 00000 n +0000595912 00000 n +0000613746 00000 n +0000596362 00000 n +0000604695 00000 n +0000596417 00000 n +0000604365 00000 n +0000604491 00000 n +0000604617 00000 n +0000604656 00000 n +0000604319 00000 n +0000623615 00000 n +0000604769 00000 n +0000614345 00000 n +0000604824 00000 n +0000614015 00000 n +0000614141 00000 n +0000614267 00000 n +0000614306 00000 n +0000613969 00000 n +0000633679 00000 n +0000614431 00000 n +0000624128 00000 n +0000614486 00000 n +0000623876 00000 n +0000624002 00000 n +0000623838 00000 n +0000641370 00000 n +0000624214 00000 n +0000634192 00000 n +0000624269 00000 n +0000633940 00000 n +0000634066 00000 n +0000633902 00000 n +0000651674 00000 n +0000634278 00000 n +0000641883 00000 n +0000634333 00000 n +0000641631 00000 n +0000641757 00000 n +0000641593 00000 n +0000670516 00000 n +0000641969 00000 n +0000652273 00000 n +0000642024 00000 n +0000651943 00000 n +0000652069 00000 n +0000652195 00000 n +0000652234 00000 n +0000651897 00000 n +0000674221 00000 n +0000652347 00000 n +0000671115 00000 n +0000652402 00000 n +0000670785 00000 n +0000670911 00000 n +0000671037 00000 n +0000671076 00000 n +0000670739 00000 n +0000675658 00000 n +0000671189 00000 n +0000674820 00000 n +0000671244 00000 n +0000674490 00000 n +0000674616 00000 n +0000674742 00000 n +0000674781 00000 n +0000674444 00000 n +0000678708 00000 n +0000674894 00000 n +0000676257 00000 n +0000674949 00000 n +0000675927 00000 n +0000676053 00000 n +0000676179 00000 n +0000676218 00000 n 0000810498 00000 n -0000810646 00000 n -0000810729 00000 n -0000810797 00000 n -0000811402 00000 n -0000811999 00000 n -0000812625 00000 n -0000813269 00000 n -0000813838 00000 n -0000814516 00000 n -0000814598 00000 n -0000814718 00000 n -0000814756 00000 n -0000814939 00000 n +0000675881 00000 n +0000682519 00000 n +0000676331 00000 n +0000679307 00000 n +0000676386 00000 n +0000678977 00000 n +0000679103 00000 n +0000679229 00000 n +0000679268 00000 n +0000678931 00000 n +0000685824 00000 n +0000679381 00000 n +0000683118 00000 n +0000679436 00000 n +0000682788 00000 n +0000682914 00000 n +0000683040 00000 n +0000683079 00000 n +0000682742 00000 n +0000688534 00000 n +0000683204 00000 n +0000686423 00000 n +0000683259 00000 n +0000686093 00000 n +0000686219 00000 n +0000686345 00000 n +0000686384 00000 n +0000686047 00000 n +0000695540 00000 n +0000686509 00000 n +0000689133 00000 n +0000686564 00000 n +0000688803 00000 n +0000688929 00000 n +0000689055 00000 n +0000689094 00000 n +0000688757 00000 n +0000703926 00000 n +0000689207 00000 n +0000696139 00000 n +0000689262 00000 n +0000695809 00000 n +0000695935 00000 n +0000696061 00000 n +0000696100 00000 n +0000695763 00000 n +0000706140 00000 n +0000696225 00000 n +0000704525 00000 n +0000696280 00000 n +0000704195 00000 n +0000704321 00000 n +0000704447 00000 n +0000704486 00000 n +0000704149 00000 n +0000716106 00000 n +0000704611 00000 n +0000706739 00000 n +0000704666 00000 n +0000706409 00000 n +0000706535 00000 n +0000706661 00000 n +0000706700 00000 n +0000706363 00000 n +0000722006 00000 n +0000706813 00000 n +0000716705 00000 n +0000706868 00000 n +0000716375 00000 n +0000716501 00000 n +0000716627 00000 n +0000716666 00000 n +0000716329 00000 n +0000734847 00000 n +0000716791 00000 n +0000722605 00000 n +0000716846 00000 n +0000722275 00000 n +0000722401 00000 n +0000722527 00000 n +0000722566 00000 n +0000722229 00000 n +0000754758 00000 n +0000722679 00000 n +0000735446 00000 n +0000722734 00000 n +0000735116 00000 n +0000735242 00000 n +0000735368 00000 n +0000735407 00000 n +0000810653 00000 n +0000735070 00000 n +0000758219 00000 n +0000735532 00000 n +0000755271 00000 n +0000735587 00000 n +0000755019 00000 n +0000755145 00000 n +0000754981 00000 n +0000760808 00000 n +0000755357 00000 n +0000758818 00000 n +0000755412 00000 n +0000758488 00000 n +0000758614 00000 n +0000758740 00000 n +0000758779 00000 n +0000758442 00000 n +0000763069 00000 n +0000758892 00000 n +0000761407 00000 n +0000758947 00000 n +0000761077 00000 n +0000761203 00000 n +0000761329 00000 n +0000761368 00000 n +0000761031 00000 n +0000763542 00000 n +0000761481 00000 n +0000763338 00000 n +0000763464 00000 n +0000763503 00000 n +0000763292 00000 n +0000763616 00000 n +0000782570 00000 n +0000766068 00000 n +0000766225 00000 n +0000766405 00000 n +0000766577 00000 n +0000766741 00000 n +0000766901 00000 n +0000767069 00000 n +0000767237 00000 n +0000767409 00000 n +0000767573 00000 n +0000767754 00000 n +0000767931 00000 n +0000768104 00000 n +0000768285 00000 n +0000768462 00000 n +0000768635 00000 n +0000768816 00000 n +0000768997 00000 n +0000769182 00000 n +0000769351 00000 n +0000769504 00000 n +0000769685 00000 n +0000769858 00000 n +0000770043 00000 n +0000770208 00000 n +0000770393 00000 n +0000770562 00000 n +0000770727 00000 n +0000770892 00000 n +0000771057 00000 n +0000771246 00000 n +0000771407 00000 n +0000771572 00000 n +0000771733 00000 n +0000771922 00000 n +0000772103 00000 n +0000772260 00000 n +0000772413 00000 n +0000772578 00000 n +0000772755 00000 n +0000772924 00000 n +0000773085 00000 n +0000773262 00000 n +0000773415 00000 n +0000773572 00000 n +0000773729 00000 n +0000773894 00000 n +0000774063 00000 n +0000774224 00000 n +0000774389 00000 n +0000774546 00000 n +0000774711 00000 n +0000774896 00000 n +0000775057 00000 n +0000775230 00000 n +0000775395 00000 n +0000775564 00000 n +0000775725 00000 n +0000775890 00000 n +0000776051 00000 n +0000776216 00000 n +0000776373 00000 n +0000776550 00000 n +0000776711 00000 n +0000776880 00000 n +0000777061 00000 n +0000777230 00000 n +0000777407 00000 n +0000777576 00000 n +0000777729 00000 n +0000777930 00000 n +0000778127 00000 n +0000778312 00000 n +0000778485 00000 n +0000778654 00000 n +0000778835 00000 n +0000779008 00000 n +0000779177 00000 n +0000779346 00000 n +0000779519 00000 n +0000779700 00000 n +0000779869 00000 n +0000780030 00000 n +0000780215 00000 n +0000780384 00000 n +0000780553 00000 n +0000780718 00000 n +0000780887 00000 n +0000781060 00000 n +0000781245 00000 n +0000781422 00000 n +0000781575 00000 n +0000781752 00000 n +0000781937 00000 n +0000782090 00000 n +0000782259 00000 n +0000782420 00000 n +0000782652 00000 n +0000782946 00000 n +0000783021 00000 n +0000789742 00000 n +0000789965 00000 n +0000791569 00000 n +0000791759 00000 n +0000792015 00000 n +0000792090 00000 n +0000797138 00000 n +0000797361 00000 n +0000798776 00000 n +0000798966 00000 n +0000799291 00000 n +0000799366 00000 n +0000806901 00000 n +0000807123 00000 n +0000808847 00000 n +0000810762 00000 n +0000810910 00000 n +0000810993 00000 n +0000811061 00000 n +0000811666 00000 n +0000812263 00000 n +0000812889 00000 n +0000813533 00000 n +0000814102 00000 n +0000814780 00000 n +0000814862 00000 n +0000814982 00000 n +0000815020 00000 n +0000815203 00000 n trailer -<</Size 1446/Root 1444 0 R/Info 1445 0 R/ID[<2113557409CAE6A878F047BB91464E0D> <2113557409CAE6A878F047BB91464E0D>]>> +<</Size 1446/Root 1444 0 R/Info 1445 0 R/ID[<7C6E05E145ADC1A6BE3C5667671676BF> <7C6E05E145ADC1A6BE3C5667671676BF>]>> startxref -815824 +816088 %%EOF diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index e9ab336ca..b6c269569 100644 --- a/tex/generic/context/luatex/luatex-fonts-merged.lua +++ b/tex/generic/context/luatex/luatex-fonts-merged.lua @@ -1,6 +1,6 @@ -- merged file : luatex-fonts-merged.lua -- parent file : luatex-fonts.lua --- merge date : 11/08/11 19:35:08 +-- merge date : 11/09/11 19:33:25 do -- begin closure to overcome local limits and interference @@ -1147,7 +1147,7 @@ local report = texio and texio.write_nl or print --~ function lpeg.Carg (l) local p = lpcarg(l) report("LPEG Carg =") lpprint(l) return p end local type = type -local byte, char = string.byte, string.char +local byte, char, gmatch = string.byte, string.char, string.gmatch -- Beware, we predefine a bunch of patterns here and one reason for doing so -- is that we get consistent behaviour in some of the visualizers. @@ -1754,6 +1754,61 @@ end -- end -- end +-- experiment: + +local function make(t) + local p +-- for k, v in next, t do + for k, v in table.sortedhash(t) do + if not p then + if next(v) then + p = P(k) * make(v) + else + p = P(k) + end + else + if next(v) then + p = p + P(k) * make(v) + else + p = p + P(k) + end + end + end + return p +end + +function lpeg.utfchartabletopattern(list) + local tree = { } + for i=1,#list do + local t = tree + for c in gmatch(list[i],".") do + if not t[c] then + t[c] = { } + end + t = t[c] + end + end + return make(tree) +end + +-- inspect ( lpeg.utfchartabletopattern { +-- utfchar(0x00A0), -- nbsp +-- utfchar(0x2000), -- enquad +-- utfchar(0x2001), -- emquad +-- utfchar(0x2002), -- enspace +-- utfchar(0x2003), -- emspace +-- utfchar(0x2004), -- threeperemspace +-- utfchar(0x2005), -- fourperemspace +-- utfchar(0x2006), -- sixperemspace +-- utfchar(0x2007), -- figurespace +-- utfchar(0x2008), -- punctuationspace +-- utfchar(0x2009), -- breakablethinspace +-- utfchar(0x200A), -- hairspace +-- utfchar(0x200B), -- zerowidthspace +-- utfchar(0x202F), -- narrownobreakspace +-- utfchar(0x205F), -- math thinspace +-- } ) + end -- closure do -- begin closure to overcome local limits and interference |