summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tlgs/lib
diff options
context:
space:
mode:
authorReinhard Kotucha <reinhard.kotucha@web.de>2008-04-27 12:21:15 +0000
committerReinhard Kotucha <reinhard.kotucha@web.de>2008-04-27 12:21:15 +0000
commit1561025730401799ab38b5568fefdb44f3c7cd90 (patch)
tree9633f052e1d7b82b26f0cae0641a67a15d9c8336 /Master/tlpkg/tlgs/lib
parenta256edfd694e954c747687da218917244add5bd9 (diff)
tlpkg/tlgs: Update to gs 8.62.
git-svn-id: svn://tug.org/texlive/trunk@7680 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/tlgs/lib')
-rw-r--r--Master/tlpkg/tlgs/lib/FAPIcidfmap32
-rw-r--r--Master/tlpkg/tlgs/lib/FAPIconfig14
-rw-r--r--Master/tlpkg/tlgs/lib/FAPIconfig-FCO14
-rw-r--r--Master/tlpkg/tlgs/lib/FAPIfontmap33
-rw-r--r--Master/tlpkg/tlgs/lib/FCOfontmap-PCLPS2107
-rw-r--r--Master/tlpkg/tlgs/lib/FCOfontmap-PCLPS3198
-rw-r--r--Master/tlpkg/tlgs/lib/FCOfontmap-PS3159
-rw-r--r--Master/tlpkg/tlgs/lib/Fontmap2
-rw-r--r--Master/tlpkg/tlgs/lib/Fontmap.ATB168
-rw-r--r--Master/tlpkg/tlgs/lib/Fontmap.ATM185
-rw-r--r--Master/tlpkg/tlgs/lib/Fontmap.GS14
-rw-r--r--Master/tlpkg/tlgs/lib/Fontmap.OS2214
-rw-r--r--Master/tlpkg/tlgs/lib/Fontmap.OSF163
-rw-r--r--Master/tlpkg/tlgs/lib/Fontmap.SGI405
-rw-r--r--Master/tlpkg/tlgs/lib/Fontmap.Sol486
-rw-r--r--Master/tlpkg/tlgs/lib/Fontmap.TeXLive4
-rw-r--r--Master/tlpkg/tlgs/lib/Fontmap.Ult146
-rw-r--r--Master/tlpkg/tlgs/lib/Fontmap.VMS424
-rw-r--r--Master/tlpkg/tlgs/lib/Info-macos.plist14
-rw-r--r--Master/tlpkg/tlgs/lib/PDFA_def.ps2
-rw-r--r--Master/tlpkg/tlgs/lib/PDFX_def.ps2
-rwxr-xr-xMaster/tlpkg/tlgs/lib/afmdiff.awk151
-rw-r--r--Master/tlpkg/tlgs/lib/bj8.rpd17
-rw-r--r--Master/tlpkg/tlgs/lib/docie.ps6
-rw-r--r--Master/tlpkg/tlgs/lib/dumphint30
-rw-r--r--Master/tlpkg/tlgs/lib/dumphint.ps2
-rwxr-xr-x[-rw-r--r--]Master/tlpkg/tlgs/lib/fixmswrd.pl0
-rw-r--r--Master/tlpkg/tlgs/lib/font2c.ps675
-rw-r--r--Master/tlpkg/tlgs/lib/font2pcl.ps603
-rw-r--r--Master/tlpkg/tlgs/lib/ghostpdf.inf44
-rw-r--r--Master/tlpkg/tlgs/lib/gs_agl.ps4
-rw-r--r--Master/tlpkg/tlgs/lib/gs_cff.ps6
-rw-r--r--Master/tlpkg/tlgs/lib/gs_cidcm.ps15
-rw-r--r--Master/tlpkg/tlgs/lib/gs_cidtt.ps2
-rw-r--r--Master/tlpkg/tlgs/lib/gs_fntem.ps6
-rw-r--r--Master/tlpkg/tlgs/lib/gs_icc.ps13
-rw-r--r--Master/tlpkg/tlgs/lib/gs_img.ps20
-rw-r--r--Master/tlpkg/tlgs/lib/gs_init.ps22
-rw-r--r--Master/tlpkg/tlgs/lib/gs_l.xbm29
-rw-r--r--Master/tlpkg/tlgs/lib/gs_l.xpm58
-rw-r--r--Master/tlpkg/tlgs/lib/gs_l_m.xbm29
-rw-r--r--Master/tlpkg/tlgs/lib/gs_lev2.ps6
-rw-r--r--Master/tlpkg/tlgs/lib/gs_m.xbm16
-rw-r--r--Master/tlpkg/tlgs/lib/gs_m.xpm44
-rw-r--r--Master/tlpkg/tlgs/lib/gs_m_m.xbm16
-rw-r--r--Master/tlpkg/tlgs/lib/gs_pdfwr.ps42
-rw-r--r--Master/tlpkg/tlgs/lib/gs_s.xbm11
-rw-r--r--Master/tlpkg/tlgs/lib/gs_s.xpm36
-rw-r--r--Master/tlpkg/tlgs/lib/gs_s_m.xbm11
-rw-r--r--Master/tlpkg/tlgs/lib/gs_t.xbm8
-rw-r--r--Master/tlpkg/tlgs/lib/gs_t.xpm28
-rw-r--r--Master/tlpkg/tlgs/lib/gs_ttf.ps189
-rw-r--r--Master/tlpkg/tlgs/lib/gs_typ42.ps4
-rw-r--r--Master/tlpkg/tlgs/lib/gslp.ps695
-rw-r--r--Master/tlpkg/tlgs/lib/ht_ccsto.ps6598
-rw-r--r--Master/tlpkg/tlgs/lib/opdfread.ps81
-rw-r--r--Master/tlpkg/tlgs/lib/pdf2dsc.ps7
-rw-r--r--Master/tlpkg/tlgs/lib/pdf_base.ps90
-rw-r--r--Master/tlpkg/tlgs/lib/pdf_cslayer.ps121
-rw-r--r--Master/tlpkg/tlgs/lib/pdf_draw.ps123
-rw-r--r--Master/tlpkg/tlgs/lib/pdf_font.ps110
-rw-r--r--Master/tlpkg/tlgs/lib/pdf_main.ps147
-rw-r--r--Master/tlpkg/tlgs/lib/pdf_ops.ps238
-rw-r--r--Master/tlpkg/tlgs/lib/pdf_rbld.ps20
-rw-r--r--Master/tlpkg/tlgs/lib/pdf_sec.ps23
-rw-r--r--Master/tlpkg/tlgs/lib/pdfopt.ps6
-rw-r--r--Master/tlpkg/tlgs/lib/ps2epsi.ps3
-rw-r--r--Master/tlpkg/tlgs/lib/rinkj-2200-setup222
-rw-r--r--Master/tlpkg/tlgs/lib/stcinfo.ps799
-rw-r--r--Master/tlpkg/tlgs/lib/stcolor.ps171
70 files changed, 10994 insertions, 3389 deletions
diff --git a/Master/tlpkg/tlgs/lib/FAPIcidfmap b/Master/tlpkg/tlgs/lib/FAPIcidfmap
new file mode 100644
index 00000000000..697a2a17667
--- /dev/null
+++ b/Master/tlpkg/tlgs/lib/FAPIcidfmap
@@ -0,0 +1,32 @@
+%!
+% $Id: FAPIcidfmap 6826 2006-05-31 15:29:52Z leonardo $
+% This is a sample map file for FAPI CID fonts.
+
+%
+% The map is a set of records like this :
+%
+% /CIDfont_name options_dict ;
+%
+% where options_dict is a dictionary with the following entries :
+%
+% Key Type Description
+% Path string Absolute path to font file, or relative path to font file from
+% the GS_EXTFONTPATH value.
+% CIDFontType interger PostScript type for this CID font. Only 0 is currently allowed.
+% Note that this is unrelated to the real type of the font file -
+% the bridge will perform format conversion.
+% FAPI name Name of the renderer to be used with the font. Only /UFST is now allowed.
+% SubfontId integer (optional) Index of the font in font collection, such as FCO or TTC.
+% It is being ignored if /Path doesn't specify a collection.
+% Default value is 0.
+% CSI array Must have strongly 2 elements.
+% The first element of the array specifies Ordering of CIDSystemInfo.
+% The second element specifies Supplement of CIDSystemInfo.
+%
+% Use regular Postscript syntax.
+%
+% Examples :
+%
+% /Ryumin-Medium << /Path (msgothic.ttc) /CIDFontType 0 /FAPI /UFST /CSI [(Japan1) 2] >> ;
+% /HeiseiKakuGo-W5 << /Path (F:/WIN2000/Fonts/BATANG.TTC) /CIDFontType 0 /FAPI /UFST /CSI [(Japan1) 2] >> ;
+
diff --git a/Master/tlpkg/tlgs/lib/FAPIconfig b/Master/tlpkg/tlgs/lib/FAPIconfig
new file mode 100644
index 00000000000..c4e2d781d7c
--- /dev/null
+++ b/Master/tlpkg/tlgs/lib/FAPIconfig
@@ -0,0 +1,14 @@
+%!
+% $Id: FAPIconfig 6870 2006-06-20 16:31:15Z leonardo $
+% This is configuration file for FAPI client.
+
+/FontPath (/Fonts) % A default directory for FAPI-handled font files path in FAPIfontmap.
+/CIDFontPath (/CIDFonts) % A default directory for FAPI-handled CID font files path in FAPIcidfmap.
+/HookDiskFonts [1 2 9 11 42] % FontType values for disk PS fonts to be redirected to FAPI.
+/HookEmbeddedFonts [1 2 9 11 42] % FontType values for embedded PS fonts to be redirected to FAPI.
+
+% Values allowed for HookDiskFonts and HookEmbeddedFonts are 1, 2, 9, 11, 42.
+% "Disk fonts" are fonts being installed to Ghostscript with 'lib/Fontmap' or with GS_FONTPATH,
+% and CID font resource files.
+% "Embedded fonts" are fonts and CID fonts being embedded into a document.
+
diff --git a/Master/tlpkg/tlgs/lib/FAPIconfig-FCO b/Master/tlpkg/tlgs/lib/FAPIconfig-FCO
new file mode 100644
index 00000000000..2d6966bf850
--- /dev/null
+++ b/Master/tlpkg/tlgs/lib/FAPIconfig-FCO
@@ -0,0 +1,14 @@
+%!
+% $Id: FAPIconfig-FCO 6998 2006-08-18 04:42:11Z ray $
+% This is configuration file for FAPI client.
+
+/FontPath () % A default directory for FAPI-handled font files path in FAPIfontmap.
+/CIDFontPath () % A default directory for FAPI-handled CID font files path in FAPIcidfmap.
+/HookDiskFonts [] % FontType values for disk PS fonts to be redirected to FAPI.
+/HookEmbeddedFonts [] % FontType values for embedded PS fonts to be redirected to FAPI.
+
+% Values allowed for HookDiskFonts and HookEmbeddedFonts are 1, 2, 9, 11, 42.
+% "Disk fonts" are fonts being installed to Ghostscript with 'lib/Fontmap' or with GS_FONTPATH,
+% and CID font resource files.
+% "Embedded fonts" are fonts and CID fonts being embedded into a document.
+
diff --git a/Master/tlpkg/tlgs/lib/FAPIfontmap b/Master/tlpkg/tlgs/lib/FAPIfontmap
new file mode 100644
index 00000000000..a3d4ca3f345
--- /dev/null
+++ b/Master/tlpkg/tlgs/lib/FAPIfontmap
@@ -0,0 +1,33 @@
+%!
+% $Id: FAPIfontmap 6870 2006-06-20 16:31:15Z leonardo $
+% This is a sample map file for FAPI fonts.
+
+%
+% The map is a set of records like this :
+%
+% /font_name options_dict ;
+%
+% where options_dict is a dictionary with the following entries :
+%
+% Key Type Description
+% Path string Absolute path to font file, or relative path to font file from
+% the GS_EXTFONTPATH value.
+% FontType interger PostScript type for this font. Only 1 and 42 are currently allowed.
+% Note that this is unrelated to the real type of the font file -
+% the bridge will perform format conversion.
+% FAPI name Name of the renderer to be used with the font. Only /AgfaUFST is now allowed.
+% SubfontId integer (optional) Index of the font in font collection, such as FCO or TTC.
+% It is being ignored if /Path doesn't specify a collection.
+% Default value is 0.
+% Decoding name (optional) The name of a Decoding resource to be used with the font.
+% If specified, "xlatmap" doesn't work for this font.
+%
+% Use regular Postscript syntax.
+%
+% Examples :
+%
+% /ArialTT << /Path (arial.ttf) /FontType 1 /FAPI /UFST >> ;
+% /CourierTT << /Path (F:/WIN2000/Fonts/cour.ttf) /FontType 1 /FAPI /UFST >> ;
+% /FCO1 << /Path (F:/AFPL/ufst/fontdata/MTFONTS/PCLPS3/MT1/PCLP3__G.FCO) /FontType 42 /FAPI /UFST /SubfontId 10 >> ;
+%
+
diff --git a/Master/tlpkg/tlgs/lib/FCOfontmap-PCLPS2 b/Master/tlpkg/tlgs/lib/FCOfontmap-PCLPS2
new file mode 100644
index 00000000000..ba7526f13ee
--- /dev/null
+++ b/Master/tlpkg/tlgs/lib/FCOfontmap-PCLPS2
@@ -0,0 +1,107 @@
+% Copyright (C) 2001, 2002 Aladdin Enterprises. All rights reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% For more information about licensing, please refer to
+% http://www.ghostscript.com/licensing/. For information on
+% commercial licensing, go to http://www.artifex.com/licensing/ or
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
+% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
+
+% $Id: FCOfontmap-PCLPS2 8269 2007-10-03 17:37:35Z ray $
+
+% May add general FAPIfontmap records here like this :
+/Wingdings-Regular << /Path FCOfontfile2 /FontType 1 /FAPI /UFST /SubfontId 0 /Encoding /Wingdings /Decoding /FCO_Wingdings>> ;
+
+% Mapping Postscript fonts to pclp2_xj.fco FCO members :
+FCOfontfile ReadFCOfontmap:
+0 Albertus-Medium
+1 Albertus-ExtraBold
+2 AntiqueOlive
+3 AntiqueOlive-Italic
+4 AntiqueOlive-Bold
+5 Arial
+6 Arial-Italic
+7 Arial-Bold
+8 Arial-BoldItalic
+9 Clarendon-Condensed-Bold
+10 Coronet
+11 CourierHP
+12 CourierHP-Italic
+13 CourierHP-Bold
+14 CourierHP-BoldItalic
+15 Garamond-Antiqua
+16 Garamond-Kursiv
+17 Garamond-Halbfett
+18 Garamond-KursivHalbfett
+19 LetterGothic
+20 LetterGothic-Italic
+21 LetterGothic-Bold
+22 Marigold
+23 CGOmega
+24 CGOmega-Italic
+25 CGOmega-Bold
+26 CGOmega-BoldItalic
+27 SymbolMT SymbolEncoding FCO_Symbol
+28 CGTimes
+29 CGTimes-Italic
+30 CGTimes-Bold
+31 CGTimes-BoldItalic
+32 TimesNewRoman
+33 TimesNewRoman-Italic
+34 TimesNewRoman-Bold
+35 TimesNewRoman-BoldItalic
+36 UniversMedium
+37 UniversMedium-Italic
+38 Univers-Bold
+39 Univers-BoldItalic
+40 Univers-Condensed-Medium
+41 Univers-Condensed-MediumItalic
+42 Univers-Condensed-Bold
+43 Univers-Condensed-BoldItalic
+44 Courier-
+45 Courier-Italic
+46 Courier-Bold-
+47 Courier-BoldItalic
+48 AvantGarde-Book
+49 AvantGarde-BookOblique
+50 AvantGarde-Demi
+51 AvantGarde-DemiOblique
+52 Bookman-Light
+53 Bookman-LightItalic
+54 Bookman-Demi
+55 Bookman-DemiItalic
+56 Courier
+57 Courier-Oblique
+58 Courier-Bold
+59 Courier-BoldOblique
+60 Helvetica
+61 Helvetica-Oblique
+62 Helvetica-Bold
+63 Helvetica-BoldOblique
+64 Helvetica-Narrow
+65 Helvetica-Narrow-Oblique
+66 Helvetica-Narrow-Bold
+67 Helvetica-Narrow-BoldOblique
+68 NewCenturySchlbk-Roman
+69 NewCenturySchlbk-Italic
+70 NewCenturySchlbk-Bold
+71 NewCenturySchlbk-BoldItalic
+72 Palatino-Roman
+73 Palatino-Italic
+74 Palatino-Bold
+75 Palatino-BoldItalic
+76 Symbol SymbolEncoding FCO_Symbol
+77 Times-Roman
+78 Times-Italic
+79 Times-Bold
+80 Times-BoldItalic
+81 ZapfChancery-MediumItalic
+82 ZapfDingbats DingbatsEncoding FCO_Dingbats
+EndFCOfontmap
+%EOF
diff --git a/Master/tlpkg/tlgs/lib/FCOfontmap-PCLPS3 b/Master/tlpkg/tlgs/lib/FCOfontmap-PCLPS3
new file mode 100644
index 00000000000..f84fb72417d
--- /dev/null
+++ b/Master/tlpkg/tlgs/lib/FCOfontmap-PCLPS3
@@ -0,0 +1,198 @@
+% Copyright (C) 2001, 2002 Aladdin Enterprises. All rights reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% For more information about licensing, please refer to
+% http://www.ghostscript.com/licensing/. For information on
+% commercial licensing, go to http://www.artifex.com/licensing/ or
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
+% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
+
+% $Id: FCOfontmap-PCLPS3 8269 2007-10-03 17:37:35Z ray $
+
+% May add general FAPIfontmap records here like this :
+/Wingdings-Regular << /Path FCOfontfile2 /FontType 1 /FAPI /UFST /SubfontId 0 /Encoding /Wingdings /Decoding /FCO_Wingdings>> ;
+
+% Mapping Postscript fonts to pclp2_xj.fco FCO members :
+FCOfontfile ReadFCOfontmap:
+0 Albertus-Medium
+1 Albertus-ExtraBold
+2 AntiqueOlive
+3 AntiqueOlive-Italic
+4 AntiqueOlive-Bold
+5 Arial
+6 Arial-Italic
+7 Arial-Bold
+8 Arial-BoldItalic
+9 Clarendon-Condensed-Bold
+10 Coronet
+11 CourierHP
+12 CourierHP-Italic
+13 CourierHP-Bold
+14 CourierHP-BoldItalic
+15 Garamond-Antiqua
+16 Garamond-Kursiv
+17 Garamond-Halbfett
+18 Garamond-KursivHalbfett
+19 LetterGothic
+20 LetterGothic-Italic
+21 LetterGothic-Bold
+22 Marigold
+23 CGOmega
+24 CGOmega-Italic
+25 CGOmega-Bold
+26 CGOmega-BoldItalic
+27 SymbolMT SymbolEncoding FCO_Symbol
+28 CGTimes
+29 CGTimes-Italic
+30 CGTimes-Bold
+31 CGTimes-BoldItalic
+32 TimesNewRoman
+33 TimesNewRoman-Italic
+34 TimesNewRoman-Bold
+35 TimesNewRoman-BoldItalic
+36 Univers-Medium
+37 Univers-MediumItalic
+38 Univers-Bold
+39 Univers-BoldItalic
+40 Univers-Condensed-Medium
+41 Univers-Condensed-MediumItalic
+42 Univers-Condensed-Bold
+43 Univers-Condensed-BoldItalic
+44 Courier
+45 Courier-Italic
+46 Courier-Bold
+47 Courier-BoldItalic
+48 AlbertusMT-Light
+49 AlbertusMT
+50 AlbertusMT-Italic
+51 AntiqueOlive-Roman
+52 AntiqueOlive-Italic
+53 AntiqueOlive-Bold
+54 AntiqueOlive-Compact
+55 AvantGarde-Book
+56 AvantGarde-BookOblique
+57 AvantGarde-Demi
+58 AvantGarde-DemiOblique
+59 Bodoni
+60 Bodoni-Italic
+61 Bodoni-Bold
+62 Bodoni-BoldItalic
+63 Bodoni-Poster
+64 Bodoni-PosterCompressed
+65 Bookman-Light
+66 Bookman-LightItalic
+67 Bookman-Demi
+68 Bookman-DemiItalic
+69 Candid
+70 Apple-Chancery
+71 Chicago
+72 Clarendon-Light
+73 Clarendon
+74 Clarendon-Bold
+75 CooperBlack
+76 CooperBlack-Italic
+77 Copperplate-ThirtyTwoBC
+78 Copperplate-ThirtyThreeBC
+79 Coronet-Regular
+80 Courier
+81 Courier-Oblique
+82 Courier-Bold
+83 Courier-BoldOblique
+84 Eurostile
+85 Eurostile-Bold
+86 Eurostile-ExtendedTwo
+87 Eurostile-BoldExtendedTwo
+88 StempelGaramond-Roman
+89 StempelGaramond-Italic
+90 StempelGaramond-Bold
+91 StempelGaramond-BoldItalic
+92 Geneva
+93 GillSans-Light
+94 GillSans-LightItalic
+95 GillSans
+96 GillSans-Italic
+97 GillSans-Bold
+98 GillSans-BoldItalic
+99 GillSans-ExtraBold
+100 GillSans-Condensed
+101 GillSans-BoldCondensed
+102 Goudy
+103 Goudy-Italic
+104 Goudy-Bold
+105 Goudy-BoldItalic
+106 Goudy-ExtraBold
+107 Helvetica-Condensed
+108 Helvetica-Condensed-Oblique
+109 Helvetica-Condensed-Bold
+110 Helvetica-Condensed-BoldObl
+111 Helvetica
+112 Helvetica-Oblique
+113 Helvetica-Bold
+114 Helvetica-BoldOblique
+115 Helvetica-Narrow
+116 Helvetica-Narrow-Oblique
+117 Helvetica-Narrow-Bold
+118 Helvetica-Narrow-BoldOblique
+119 HoeflerText-Regular
+120 HoeflerText-Italic
+121 HoeflerText-Black
+122 HoeflerText-BlackItalic
+123 HoeflerText-Ornaments
+124 JoannaMT
+125 JoannaMT-Italic
+126 JoannaMT-Bold
+127 JoannaMT-BoldItalic
+128 LetterGothic
+129 LetterGothic-Slanted
+130 LetterGothic-Bold
+131 LetterGothic-BoldSlanted
+132 LubalinGraph-Book
+133 LubalinGraph-BookOblique
+134 LubalinGraph-Demi
+135 LubalinGraph-DemiOblique
+136 Monaco
+137 MonaLisa-Recut
+138 NewYork
+139 NewCenturySchlbk-Roman
+140 NewCenturySchlbk-Italic
+141 NewCenturySchlbk-Bold
+142 NewCenturySchlbk-BoldItalic
+143 Optima
+144 Optima-Italic
+145 Optima-Bold
+146 Optima-BoldItalic
+147 Oxford
+148 Palatino-Roman
+149 Palatino-Italic
+150 Palatino-Bold
+151 Palatino-BoldItalic
+152 Symbol SymbolEncoding FCO_Symbol
+153 Taffy
+154 Times-Roman
+155 Times-Italic
+156 Times-Bold
+157 Times-BoldItalic
+158 Univers
+159 Univers-Oblique
+160 Univers-Bold
+161 Univers-BoldOblique
+162 Univers-Condensed
+163 Univers-CondensedOblique
+164 Univers-CondensedBold
+165 Univers-CondensedBoldOblique
+166 Univers-Light
+167 Univers-LightOblique
+168 Univers-Extended
+169 Univers-ExtendedObl
+170 Univers-BoldExt
+171 Univers-BoldExtObl
+172 ZapfChancery-MediumItalic
+173 ZapfDingbats DingbatsEncoding FCO_Dingbats
+EndFCOfontmap
+%EOF
diff --git a/Master/tlpkg/tlgs/lib/FCOfontmap-PS3 b/Master/tlpkg/tlgs/lib/FCOfontmap-PS3
new file mode 100644
index 00000000000..ec5f91e3747
--- /dev/null
+++ b/Master/tlpkg/tlgs/lib/FCOfontmap-PS3
@@ -0,0 +1,159 @@
+% Copyright (C) 2001, 2002 Aladdin Enterprises. All rights reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% For more information about licensing, please refer to
+% http://www.ghostscript.com/licensing/. For information on
+% commercial licensing, go to http://www.artifex.com/licensing/ or
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
+% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
+
+% $Id: FCOfontmap-PS3 8269 2007-10-03 17:37:35Z ray $
+
+% May add general FAPIfontmap records here like this :
+/Wingdings-Regular << /Path FCOfontfile2 /FontType 1 /FAPI /UFST /SubfontId 0 /Encoding /Wingdings /Decoding /FCO_Wingdings>> ;
+
+% Mapping Postscript fonts to ps3___xh.fco FCO members :
+FCOfontfile ReadFCOfontmap:
+0 AlbertusMT-Light
+1 AlbertusMT
+2 AlbertusMT-Italic
+3 AntiqueOlive-Roman
+4 AntiqueOlive-Italic
+5 AntiqueOlive-Bold
+6 AntiqueOlive-Compact
+7 ArialMT
+8 Arial-ItalicMT
+9 Arial-BoldMT
+10 Arial-BoldItalicMT
+11 AvantGarde-Book
+12 AvantGarde-BookOblique
+13 AvantGarde-Demi
+14 AvantGarde-DemiOblique
+15 Bodoni
+16 Bodoni-Italic
+17 Bodoni-Bold
+18 Bodoni-BoldItalic
+19 Bodoni-Poster
+20 Bodoni-PosterCompressed
+21 Bookman-Light
+22 Bookman-LightItalic
+23 Bookman-Demi
+24 Bookman-DemiItalic
+% 25 Candid % Disabled due to unknown glyph names.
+26 Apple-Chancery
+27 Chicago
+28 Clarendon-Light
+29 Clarendon
+30 Clarendon-Bold
+31 CooperBlack
+32 CooperBlack-Italic
+33 Copperplate-ThirtyTwoBC
+34 Copperplate-ThirtyThreeBC
+35 Coronet-Regular
+36 Courier
+37 Courier-Oblique
+38 Courier-Bold
+39 Courier-BoldOblique
+40 Eurostile
+41 Eurostile-Bold
+42 Eurostile-ExtendedTwo
+43 Eurostile-BoldExtendedTwo
+44 StempelGaramond-Roman
+45 StempelGaramond-Italic
+46 StempelGaramond-Bold
+47 StempelGaramond-BoldItalic
+48 Geneva
+49 GillSans-Light
+50 GillSans-LightItalic
+51 GillSans
+52 GillSans-Italic
+53 GillSans-Bold
+54 GillSans-BoldItalic
+55 GillSans-ExtraBold
+56 GillSans-Condensed
+57 GillSans-BoldCondensed
+58 Goudy
+59 Goudy-Italic
+60 Goudy-Bold
+61 Goudy-BoldItalic
+62 Goudy-ExtraBold
+63 Helvetica-Condensed
+64 Helvetica-Condensed-Oblique
+65 Helvetica-Condensed-Bold
+66 Helvetica-Condensed-BoldObl
+67 Helvetica
+68 Helvetica-Oblique
+69 Helvetica-Bold
+70 Helvetica-BoldOblique
+71 Helvetica-Narrow
+72 Helvetica-Narrow-Oblique
+73 Helvetica-Narrow-Bold
+74 Helvetica-Narrow-BdOblique
+75 HoeflerText-Regular
+76 HoeflerText-Italic
+77 HoeflerText-Black
+78 HoeflerText-BlackItalic
+79 HoeflerText-Ornaments
+80 JoannaMT
+81 JoannaMT-Italic
+82 JoannaMT-Bold
+83 JoannaMT-BoldItalic
+84 LetterGothic
+85 LetterGothic-Slanted
+86 LetterGothic-Bold
+87 LetterGothic-BoldSlanted
+88 LubalinGraph-Book
+89 LubalinGraph-BookOblique
+90 LubalinGraph-Demi
+91 LubalinGraph-DemiOblique
+92 Marigold
+93 Monaco
+94 MonaLisa-Recut
+95 NewYork
+96 NewCenturySchlbk-Roman
+97 NewCenturySchlbk-Italic
+98 NewCenturySchlbk-Bold
+99 NewCenturySchlbk-BoldItalic
+100 Optima
+101 Optima-Italic
+102 Optima-Bold
+103 Optima-BoldItalic
+104 Oxford
+105 Palatino-Roman
+106 Palatino-Italic
+107 Palatino-Bold
+108 Palatino-BoldItalic
+109 Symbol SymbolEncoding FCO_Symbol
+110 Taffy
+111 Times-Roman
+112 Times-Italic
+113 Times-Bold
+114 Times-BoldItalic
+115 TimesNewRomanPSMT
+116 TimesNewRomanPS-ItalicMT
+117 TimesNewRomanPS-BoldMT
+118 TimesNewRomanPS-BdItMT
+119 Univers
+120 Univers-Oblique
+121 Univers-Bold
+122 Univers-BoldOblique
+123 Univers-Condensed
+124 Univers-CondensedOblique
+125 Univers-CondensedBold
+126 Univers-CondensedBdOblique
+127 Univers-Light
+128 Univers-LightOblique
+129 Univers-Extended
+130 Univers-ExtendedObl
+131 Univers-BoldExt
+132 Univers-BoldExtObl
+133 ZapfChancery-MediumItalic
+134 ZapfDingbats DingbatsEncoding FCO_Dingbats
+EndFCOfontmap
+%EOF
diff --git a/Master/tlpkg/tlgs/lib/Fontmap b/Master/tlpkg/tlgs/lib/Fontmap
index 8d32f46e6cf..300f6290eac 100644
--- a/Master/tlpkg/tlgs/lib/Fontmap
+++ b/Master/tlpkg/tlgs/lib/Fontmap
@@ -1,4 +1,6 @@
%!
+%% $Id$
+
% See Fontmap.GS for the syntax of real Fontmap files.
%% Replace 1 (Fontmap.GS)
diff --git a/Master/tlpkg/tlgs/lib/Fontmap.ATB b/Master/tlpkg/tlgs/lib/Fontmap.ATB
new file mode 100644
index 00000000000..e4f8d61c837
--- /dev/null
+++ b/Master/tlpkg/tlgs/lib/Fontmap.ATB
@@ -0,0 +1,168 @@
+% Copyright (C) 1994 Aladdin Enterprises. All rights reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% For more information about licensing, please refer to
+% http://www.ghostscript.com/licensing/. For information on
+% commercial licensing, go to http://www.artifex.com/licensing/ or
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
+% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
+
+% $Id: Fontmap.ATB 6300 2005-12-28 19:56:24Z giles $
+% Fontmap.ATB - an alternative Fontmap for Ghostscript,
+% suitable for use with the 65 Adobe Type Manager fonts
+% supplied with Adobe Type Basics.
+
+% Before you use ATM fonts with Ghostscript, please read carefully
+% the license that accompanies the ATM fonts; neither Aladdin Enterprises
+% nor any other distributor of Ghostscript takes any responsibility for
+% any possible violations of such licenses.
+
+% The 65 Adobe Type Basics ATM fonts
+
+%disk 1
+/Bookman-Light (bkl_____.pfb) ;
+/Bookman-Demi (bkd_____.pfb) ;
+/Bookman-DemiItalic (bkdi____.pfb) ;
+/Bookman-LightItalic (bkli____.pfb) ;
+/Courier (com_____.pfb) ;
+/Courier-Bold (cob_____.pfb) ;
+/Courier-BoldOblique (cobo____.pfb) ;
+/Courier-Oblique (coo_____.pfb) ;
+/Helvetica (hv______.pfb) ;
+/Helvetica-Bold (hvb_____.pfb) ;
+/Helvetica-BoldOblique (hvbo____.pfb) ;
+/Helvetica-Oblique (hvo_____.pfb) ;
+/Helvetica-Narrow (hvn_____.pfb) ;
+/Helvetica-Narrow-Bold (hvnb____.pfb) ;
+/Helvetica-Narrow-BoldOblique (hvnbo___.pfb) ;
+/Helvetica-Narrow-Oblique (hvno____.pfb) ;
+/Palatino-Roman (por_____.pfb) ;
+/Palatino-Bold (pob_____.pfb) ;
+/Palatino-BoldItalic (pobi____.pfb) ;
+/Palatino-Italic (poi_____.pfb) ;
+/Symbol (sy______.pfb) ;
+/Times-Roman (tir_____.pfb) ;
+/Times-Bold (tib_____.pfb) ;
+/Times-BoldItalic (tibi____.pfb) ;
+/Times-Italic (tii_____.pfb) ;
+
+% disk2
+/AGaramond-Regular (gdrg____.pfb) ;
+/AGaramond-Italic (gdi_____.pfb) ;
+/AGaramond-Bold (gdb_____.pfb) ;
+/AGaramond-BoldItalic (gdbi____.pfb) ;
+/Americana (am______.pfb) ;
+/Americana-ExtraBold (ameb____.pfb) ;
+/AvantGarde-Book (agw_____.pfb) ;
+/AvantGarde-Demi (agd_____.pfb) ;
+/AvantGarde-DemiOblique (agdo____.pfb) ;
+/AvantGarde-BookOblique (agwo____.pfb) ;
+/Carta (cr______.pfb) ;
+/Kaufmann (kf______.pfb) ;
+/Lithos-Regular (lorg____.pfb) ;
+/Lithos-Black (lobl____.pfb) ;
+/NewCenturySchlbk-Roman (ncr_____.pfb) ;
+/NewCenturySchlbk-Bold (ncb_____.pfb) ;
+/NewCenturySchlbk-BoldItalic (ncbi____.pfb) ;
+/NewCenturySchlbk-Italic (nci_____.pfb) ;
+/Parisian (pn______.pfb) ;
+/ParkAvenue (pa______.pfb) ;
+/Tekton (tkrg____.pfb) ;
+/Tekton-Bold (tkb_____.pfb) ;
+/Trajan-Bold (tjb_____.pfb) ;
+/ZapfChancery-MediumItalic (zcmi____.pfb) ;
+/ZapfDingbats (zd______.pfb) ;
+
+%disk 3
+/ACaslon-Regular (awrg____.pfb) ;
+/ACaslon-Semibold (awsb____.pfb) ;
+/ACaslon-SemiboldItalic (awsbi___.pfb) ;
+/ACaslon-Italic (awi_____.pfb) ;
+/Barmeno-Regular (bfrg____.pfb) ;
+/Barmeno-Medium (bfm_____.pfb) ;
+/Barmeno-Bold (bfb_____.pfb) ;
+/Barmeno-ExtraBold (bfeb____.pfb) ;
+/Blackoak (bo______.pfb) ;
+/Formata-Regular (fmrg____.pfb) ;
+/Formata-Medium (fmm_____.pfb) ;
+/Formata-MediumItalic (fmmi____.pfb) ;
+/Formata-Italic (fmi_____.pfb) ;
+/Poetica-SuppOrnaments (pvor____.pfb) ;
+/WoodtypeOrnaments-Two (woor2___.pfb) ;
+
+
+% Fonts converted from bitmaps.
+
+/Charter-Roman (bchr.gsf) ;
+/Charter-Italic (bchri.gsf) ;
+/Charter-Bold (bchb.gsf) ;
+/Charter-BoldItalic (bchbi.gsf) ;
+
+/ZapfChancery (zcr.gsf) ;
+/ZapfChancery-Oblique (zcro.gsf) ;
+/ZapfChancery-Bold (zcb.gsf) ;
+
+% Fonts from the X11R5 distribution.
+
+/Utopia-Regular (putr.gsf) ;
+/Utopia-Italic (putri.gsf) ;
+/Utopia-Bold (putb.gsf) ;
+/Utopia-BoldItalic (putbi.gsf) ;
+
+% Shareware fonts. See FONTMAP.GS for the copyright statements.
+
+/Shareware-Cyrillic-Regular (fcyr.gsf) ;
+/Shareware-Cyrillic-Italic (fcyri.gsf) ;
+% Aliases
+/Cyrillic /Cyrillic-Regular ;
+/Cyrillic-Regular /Shareware-Cyrillic-Regular ;
+/Cyrillic-Italic /Shareware-Cyrillic-Italic ;
+
+/Calligraphic-Hiragana (fhirw.gsf) ;
+/Calligraphic-Katakana (fkarw.gsf) ;
+
+% Fonts converted from Hershey outlines.
+
+/Hershey-Gothic-English (hrge_r.gsf) 4290000 ;
+/Hershey-Gothic-English-Bold (hrge_rb.gsf) 4290030 ;
+/Hershey-Gothic-English-Oblique (hrge_ro.gsf) 4290010 ;
+
+/Hershey-Gothic-German (hrgr_r.gsf) 4291000 ;
+/Hershey-Gothic-German-Bold (hrgr_rb.gsf) 4291030 ;
+/Hershey-Gothic-German-Oblique (hrgr_ro.gsf) 4291010 ;
+
+/Hershey-Gothic-Italian (hrit_r.gsf) 4292000 ;
+/Hershey-Gothic-Italian-Bold (hrit_rb.gsf) 4292030 ;
+/Hershey-Gothic-Italian-Oblique (hrit_ro.gsf) 4292010 ;
+
+/Hershey-Greek-Complex (hrgk_c.gsf) 4293200 ;
+/Hershey-Greek-Simplex (hrgk_s.gsf) 4293100 ;
+
+/Hershey-Plain (hrpl_r.gsf) 4294000 ;
+/Hershey-Plain-Bold (hrpl_rb.gsf) 4294030 ;
+/Hershey-Plain-Oblique (hrpl_ro.gsf) 4294010 ;
+/Hershey-Plain-Simplex (hrpl_s.gsf) 4294100 ;
+/Hershey-Plain-Simplex-Bold (hrpl_sb.gsf) 4294130 ;
+/Hershey-Plain-Simplex-Bold-Oblique (hrpl_sbo.gsf) 4294140 ;
+/Hershey-Plain-Simplex-Oblique (hrpl_so.gsf) 4294110 ;
+/Hershey-Plain-Triplex (hrpl_t.gsf) 4294300 ;
+/Hershey-Plain-Triplex-Italic (hrpl_ti.gsf) 4294320 ;
+/Hershey-Plain-Triplex-Bold (hrpl_tb.gsf) 4294330 ;
+/Hershey-Plain-Triplex-Bold-Italic (hrpl_tbi.gsf) 4294350 ;
+
+/Hershey-Script-Complex (hrsc_c.gsf) 4295200 ;
+/Hershey-Script-Complex-Bold (hrsc_cb.gsf) 4295230 ;
+/Hershey-Script-Complex-Oblique (hrsc_co.gsf) 4295210 ;
+/Hershey-Script-Simplex (hrsc_s.gsf) 4295100 ;
+/Hershey-Script-Simplex-Bold (hrsc_sb.gsf) 4295130 ;
+/Hershey-Script-Simplex-Oblique (hrsc_so.gsf) 4295110 ;
+
+% This font, and only this font among the Hershey fonts, uses
+% the SymbolEncoding.
+/Hershey-Symbol (hrsy_r.gsf) 4296000 ;
diff --git a/Master/tlpkg/tlgs/lib/Fontmap.ATM b/Master/tlpkg/tlgs/lib/Fontmap.ATM
new file mode 100644
index 00000000000..f4586c32080
--- /dev/null
+++ b/Master/tlpkg/tlgs/lib/Fontmap.ATM
@@ -0,0 +1,185 @@
+% Copyright (C) 1990, 1992, 1994, 1996 Aladdin Enterprises. All rights reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% For more information about licensing, please refer to
+% http://www.ghostscript.com/licensing/. For information on
+% commercial licensing, go to http://www.artifex.com/licensing/ or
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
+% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
+
+% $Id: Fontmap.ATM 6300 2005-12-28 19:56:24Z giles $
+% Fontmap.ATM - an alternative Fontmap for Ghostscript,
+% suitable for use with Adobe Type Manager fonts.
+
+% Before you use ATM fonts with Ghostscript, please read carefully
+% the license that accompanies the ATM fonts; neither Aladdin Enterprises
+% nor any other distributor of Ghostscript takes any responsibility for
+% any possible violations of such licenses.
+
+%
+%
+% Fonts contributed by:
+% URW++ Design and Development Incorporated
+% Poppenbuetteler Bogen 29A
+% D-22399 Hamburg
+% Germany
+% tel. +49 (40) 60 60 50
+% fax +49 (40) 60 60 51 11
+% http://www.urwpp.de
+% for distribution under the GNU License and Aladdin Free Public License.
+% See the notice at the head of this Fontmap file for licensing terms.
+% Each of these fonts is individually covered by the license:
+% for licensing purposes, they are not "part of" any larger entity.
+% The following notice applies to these fonts:
+%
+% Copyright URW Software, Copyright 1994 by URW.
+%
+
+% Actual fonts
+
+/URWBookmanL-DemiBold (b018015l.pfb) ;
+/URWBookmanL-DemiBoldItal (b018035l.pfb) ;
+/URWBookmanL-Ligh (b018012l.pfb) ;
+/URWBookmanL-LighItal (b018032l.pfb) ;
+
+/NimbusMonL-Regu (n022003l.pfb) ;
+/NimbusMonL-ReguObli (n022023l.pfb) ;
+/NimbusMonL-Bold (n022004l.pfb) ;
+/NimbusMonL-BoldObli (n022024l.pfb) ;
+
+/URWGothicL-Book (a010013l.pfb) ;
+/URWGothicL-BookObli (a010033l.pfb) ;
+/URWGothicL-Demi (a010015l.pfb) ;
+/URWGothicL-DemiObli (a010035l.pfb) ;
+
+/NimbusSanL-Regu (n019003l.pfb) ;
+/NimbusSanL-ReguItal (n019023l.pfb) ;
+/NimbusSanL-Bold (n019004l.pfb) ;
+/NimbusSanL-BoldItal (n019024l.pfb) ;
+
+/NimbusSanL-ReguCond (n019043l.pfb) ;
+/NimbusSanL-ReguCondItal (n019063l.pfb) ;
+/NimbusSanL-BoldCond (n019044l.pfb) ;
+/NimbusSanL-BoldCondItal (n019064l.pfb) ;
+
+/URWPalladioL-Roma (p052003l.pfb) ;
+/URWPalladioL-Ital (p052023l.pfb) ;
+/URWPalladioL-Bold (p052004l.pfb) ;
+/URWPalladioL-BoldItal (p052024l.pfb) ;
+
+/CenturySchL-Roma (c059013l.pfb) ;
+/CenturySchL-Ital (c059033l.pfb) ;
+/CenturySchL-Bold (c059016l.pfb) ;
+/CenturySchL-BoldItal (c059036l.pfb) ;
+
+/NimbusRomNo9L-Regu (n021003l.pfb) ;
+/NimbusRomNo9L-ReguItal (n021023l.pfb) ;
+/NimbusRomNo9L-Medi (n021004l.pfb) ;
+/NimbusRomNo9L-MediItal (n021024l.pfb) ;
+
+/StandardSymL (s050000l.pfb) ;
+
+/URWChanceryL-MediItal (z003034l.pfb) ;
+
+/Dingbats (d050000l.pfb) ;
+
+% Aliases
+
+/Bookman-Demi /URWBookmanL-DemiBold ;
+/Bookman-DemiItalic /URWBookmanL-DemiBoldItal ;
+/Bookman-Light /URWBookmanL-Ligh ;
+/Bookman-LightItalic /URWBookmanL-LighItal ;
+
+/Courier /NimbusMonL-Regu ;
+/Courier-Oblique /NimbusMonL-ReguObli ;
+/Courier-Bold /NimbusMonL-Bold ;
+/Courier-BoldOblique /NimbusMonL-BoldObli ;
+
+/AvantGarde-Book /URWGothicL-Book ;
+/AvantGarde-BookOblique /URWGothicL-BookObli ;
+/AvantGarde-Demi /URWGothicL-Demi ;
+/AvantGarde-DemiOblique /URWGothicL-DemiObli ;
+
+/Helvetica /NimbusSanL-Regu ;
+/Helvetica-Oblique /NimbusSanL-ReguItal ;
+/Helvetica-Bold /NimbusSanL-Bold ;
+/Helvetica-BoldOblique /NimbusSanL-BoldItal ;
+
+/Helvetica-Narrow /NimbusSanL-ReguCond ;
+/Helvetica-Narrow-Oblique /NimbusSanL-ReguCondItal ;
+/Helvetica-Narrow-Bold /NimbusSanL-BoldCond ;
+/Helvetica-Narrow-BoldOblique /NimbusSanL-BoldCondItal ;
+
+/Palatino-Roman /URWPalladioL-Roma ;
+/Palatino-Italic /URWPalladioL-Ital ;
+/Palatino-Bold /URWPalladioL-Bold ;
+/Palatino-BoldItalic /URWPalladioL-BoldItal ;
+
+/NewCenturySchlbk-Roman /CenturySchL-Roma ;
+/NewCenturySchlbk-Italic /CenturySchL-Ital ;
+/NewCenturySchlbk-Bold /CenturySchL-Bold ;
+/NewCenturySchlbk-BoldItalic /CenturySchL-BoldItal ;
+
+/Times-Roman /NimbusRomNo9L-Regu ;
+/Times-Italic /NimbusRomNo9L-ReguItal ;
+/Times-Bold /NimbusRomNo9L-Medi ;
+/Times-BoldItalic /NimbusRomNo9L-MediItal ;
+
+/Symbol /StandardSymL ;
+
+/ZapfChancery-MediumItalic /URWChanceryL-MediItal ;
+
+/ZapfDingbats /Dingbats ;
+
+
+% ATM fonts.
+
+/Courier (com_____.pfb) ;
+/Courier-Oblique (coo_____.pfb) ;
+/Courier-Bold (cob_____.pfb) ;
+/Courier-BoldOblique (cobo____.pfb) ;
+
+/Helvetica (hv______.pfb) ;
+/Helvetica-Oblique (hvo_____.pfb) ;
+/Helvetica-Bold (hvb_____.pfb) ;
+/Helvetica-BoldOblique (hvbo____.pfb) ;
+
+/Symbol (sy______.pfb) ;
+
+/Times-Roman (tir_____.pfb) ;
+/Times-Italic (tii_____.pfb) ;
+/Times-Bold (tib_____.pfb) ;
+/Times-BoldItalic (tibi____.pfb) ;
+
+
+% More fonts from Adobe Type Manager for MS Windows.
+
+/TektonMM (zjrg____.pfb) ;
+
+/Boulevard (qtrg____.pfb) ;
+/Anna (iarg____.pfb) ;
+
+/PopplLaudatio-Regular (pyrg____.pfb) ;
+/PopplLaudatio-Medium (pym_____.pfb) ;
+/PopplLaudatio-Italic (pyi_____.pfb) ;
+/PopplLaudatio-MediumItalic (pymi____.pfb) ;
+
+/Boton-Regular (tnr_____.pfb) ;
+/Boton-Medium (tnm_____.pfb) ;
+/Boton-Italic (tni_____.pfb) ;
+/Boton-MediumItalic (tnmi____.pfb) ;
+
+/BaskervilleBE-Regular (virg____.pfb) ;
+/BaskervilleBE-Medium (vim_____.pfb) ;
+/BaskervilleBE-Italic (vii_____.pfb) ;
+/BaskervilleBE-MediumItalic (vimi____.pfb) ;
+
+/Giddyup (wg______.pfb) ;
+/Giddyup-Thangs (wgtha___.pfb) ;
+
diff --git a/Master/tlpkg/tlgs/lib/Fontmap.GS b/Master/tlpkg/tlgs/lib/Fontmap.GS
index 617b10cc78c..551da508240 100644
--- a/Master/tlpkg/tlgs/lib/Fontmap.GS
+++ b/Master/tlpkg/tlgs/lib/Fontmap.GS
@@ -13,7 +13,7 @@
% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
-% $Id: Fontmap.GS 7932 2007-05-09 06:37:44Z marcos $
+% $Id: Fontmap.GS 8487 2008-01-17 03:16:02Z alexcher $
% Fontmap - standard font catalog for Ghostscript.
% ----------------------------------------------------------------
@@ -46,18 +46,16 @@
%
% - At least one space or tab, and a terminating semicolon.
-% Because of limitations in the MS-DOS environment, Ghostscript font
-% file names must be no more than 8 characters long, must consist only
-% of LOWER CASE letters, digits, and underscores, and must start with a
-% letter. Font names, on the other hand, need only obey the syntax of
-% names in the Ghostscript language, which is much more liberal.
-
-% The following table is actually a Ghostscript data structure.
+% The following table is executed as a PostScript file.
% If you add new entries, be sure to copy the punctuation accurately;
% in particular, you must leave at least one space or tab between each
% field in the entry. Also, please read fonts.doc for important information
% about font names.
+% PDF interpreter evaluates hexadecimal escapes in PDF font names before
+% looking up the font. When the resulting name cannot be represented using
+% PostScript name syntax, the string can be used instead of the name.
+
% Note that .pfa and .pfb fonts are compatible with Adobe Type Manager
% and other programs that don't include full PostScript interpreters,
% as well as with PostScript interpreters; .gsf fonts are compatible with
diff --git a/Master/tlpkg/tlgs/lib/Fontmap.OS2 b/Master/tlpkg/tlgs/lib/Fontmap.OS2
new file mode 100644
index 00000000000..99a92878b22
--- /dev/null
+++ b/Master/tlpkg/tlgs/lib/Fontmap.OS2
@@ -0,0 +1,214 @@
+% Copyright (C) 1990, 1992, 1993, 1996 Aladdin Enterprises. All rights reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% For more information about licensing, please refer to
+% http://www.ghostscript.com/licensing/. For information on
+% commercial licensing, go to http://www.artifex.com/licensing/ or
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
+% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
+
+% $Id: Fontmap.OS2 6300 2005-12-28 19:56:24Z giles $
+% fontmap.os2 aka Fontmap.OS2 - OS/2 font catalog for Ghostscript.
+
+% ----------------------------------------------------------------
+
+% This file is a catalog of fonts known to Ghostscript. Any font
+% that is to be loaded automatically when named must be in this catalog,
+% except for fonts that Ghostscript finds automatically in directories
+% named in the GS_FONTPATH environment variable.
+
+% Each font has an entry consisting of three items:
+%
+% - The name by which the font is known inside Ghostscript
+% (a Ghostscript name preceded by a `/', or a string enclosed
+% in parentheses). This is used to find the file from which
+% a font of a given name should be loaded.
+%
+% - Information depending on whether this is a real font or a
+% font alias:
+%
+% - For real fonts, the name of the Ghostscript font
+% file (a Ghostscript string, enclosed in parentheses).
+% The filename should include the extension, which (by
+% convention) is `.gsf'. `.pfa' and `.pfb' files are
+% also usable as fonts for Ghostscript.
+%
+% - For font aliases, the name of the font which should
+% be used when this one is requested, preceded by a
+% `/'. See the entry for Charter below for an example.
+%
+% - A terminating semicolon.
+
+% Because of limitations in the MS-DOS environment, Ghostscript font
+% file names must be no more than 8 characters long, must consist only
+% of LOWER CASE letters, digits, and underscores, and must start with a
+% letter. Font names, on the other hand, need only obey the syntax of
+% names in the Ghostscript language, which is much more liberal.
+
+% Most of the Ghostscript fonts were created automatically from freely
+% available bitmaps. There is a makefile (fonts.mak) that specifies
+% how this conversion was done. fonts.mak also specifies, for each such
+% converted font, its uniqueID (an integer used to identify distinct fonts
+% within the Ghostscript font machinery), and its encoding (the mapping
+% from character codes in a string to character names). For more detailed
+% information, read fonts.mak.
+
+% The following table is actually a Ghostscript data structure.
+% If you add new entries, be sure to copy the punctuation accurately;
+% in particular, you must leave at least one space or tab between each
+% field in the entry. Also, please read fonts.doc for important information
+% about font names.
+
+
+%
+%
+% Fonts contributed by:
+% URW++ Design and Development Incorporated
+% Poppenbuetteler Bogen 29A
+% D-22399 Hamburg
+% Germany
+% tel. +49 (40) 60 60 50
+% fax +49 (40) 60 60 51 11
+% http://www.urwpp.de
+% for distribution under the GNU License and Aladdin Free Public License.
+% See the notice at the head of this Fontmap file for licensing terms.
+% Each of these fonts is individually covered by the license:
+% for licensing purposes, they are not "part of" any larger entity.
+% The following notice applies to these fonts:
+%
+% Copyright URW Software, Copyright 1994 by URW.
+%
+
+% Actual fonts
+
+/URWBookmanL-DemiBold (b018015l.pfb) ;
+/URWBookmanL-DemiBoldItal (b018035l.pfb) ;
+/URWBookmanL-Ligh (b018012l.pfb) ;
+/URWBookmanL-LighItal (b018032l.pfb) ;
+
+/NimbusMonL-Regu (n022003l.pfb) ;
+/NimbusMonL-ReguObli (n022023l.pfb) ;
+/NimbusMonL-Bold (n022004l.pfb) ;
+/NimbusMonL-BoldObli (n022024l.pfb) ;
+
+/URWGothicL-Book (a010013l.pfb) ;
+/URWGothicL-BookObli (a010033l.pfb) ;
+/URWGothicL-Demi (a010015l.pfb) ;
+/URWGothicL-DemiObli (a010035l.pfb) ;
+
+/NimbusSanL-Regu (n019003l.pfb) ;
+/NimbusSanL-ReguItal (n019023l.pfb) ;
+/NimbusSanL-Bold (n019004l.pfb) ;
+/NimbusSanL-BoldItal (n019024l.pfb) ;
+
+/NimbusSanL-ReguCond (n019043l.pfb) ;
+/NimbusSanL-ReguCondItal (n019063l.pfb) ;
+/NimbusSanL-BoldCond (n019044l.pfb) ;
+/NimbusSanL-BoldCondItal (n019064l.pfb) ;
+
+/URWPalladioL-Roma (p052003l.pfb) ;
+/URWPalladioL-Ital (p052023l.pfb) ;
+/URWPalladioL-Bold (p052004l.pfb) ;
+/URWPalladioL-BoldItal (p052024l.pfb) ;
+
+/CenturySchL-Roma (c059013l.pfb) ;
+/CenturySchL-Ital (c059033l.pfb) ;
+/CenturySchL-Bold (c059016l.pfb) ;
+/CenturySchL-BoldItal (c059036l.pfb) ;
+
+/NimbusRomNo9L-Regu (n021003l.pfb) ;
+/NimbusRomNo9L-ReguItal (n021023l.pfb) ;
+/NimbusRomNo9L-Medi (n021004l.pfb) ;
+/NimbusRomNo9L-MediItal (n021024l.pfb) ;
+
+/StandardSymL (s050000l.pfb) ;
+
+/URWChanceryL-MediItal (z003034l.pfb) ;
+
+/Dingbats (d050000l.pfb) ;
+
+% Aliases
+
+/Bookman-Demi /URWBookmanL-DemiBold ;
+/Bookman-DemiItalic /URWBookmanL-DemiBoldItal ;
+/Bookman-Light /URWBookmanL-Ligh ;
+/Bookman-LightItalic /URWBookmanL-LighItal ;
+
+/Courier /NimbusMonL-Regu ;
+/Courier-Oblique /NimbusMonL-ReguObli ;
+/Courier-Bold /NimbusMonL-Bold ;
+/Courier-BoldOblique /NimbusMonL-BoldObli ;
+
+/AvantGarde-Book /URWGothicL-Book ;
+/AvantGarde-BookOblique /URWGothicL-BookObli ;
+/AvantGarde-Demi /URWGothicL-Demi ;
+/AvantGarde-DemiOblique /URWGothicL-DemiObli ;
+
+/Helvetica /NimbusSanL-Regu ;
+/Helvetica-Oblique /NimbusSanL-ReguItal ;
+/Helvetica-Bold /NimbusSanL-Bold ;
+/Helvetica-BoldOblique /NimbusSanL-BoldItal ;
+
+/Helvetica-Narrow /NimbusSanL-ReguCond ;
+/Helvetica-Narrow-Oblique /NimbusSanL-ReguCondItal ;
+/Helvetica-Narrow-Bold /NimbusSanL-BoldCond ;
+/Helvetica-Narrow-BoldOblique /NimbusSanL-BoldCondItal ;
+
+/Palatino-Roman /URWPalladioL-Roma ;
+/Palatino-Italic /URWPalladioL-Ital ;
+/Palatino-Bold /URWPalladioL-Bold ;
+/Palatino-BoldItalic /URWPalladioL-BoldItal ;
+
+/NewCenturySchlbk-Roman /CenturySchL-Roma ;
+/NewCenturySchlbk-Italic /CenturySchL-Ital ;
+/NewCenturySchlbk-Bold /CenturySchL-Bold ;
+/NewCenturySchlbk-BoldItalic /CenturySchL-BoldItal ;
+
+/Times-Roman /NimbusRomNo9L-Regu ;
+/Times-Italic /NimbusRomNo9L-ReguItal ;
+/Times-Bold /NimbusRomNo9L-Medi ;
+/Times-BoldItalic /NimbusRomNo9L-MediItal ;
+
+/Symbol /StandardSymL ;
+
+/ZapfChancery-MediumItalic /URWChanceryL-MediItal ;
+
+/ZapfDingbats /Dingbats ;
+
+
+%
+% ATM fonts that come with OS/2.
+
+/Courier (cour.pfb) ;
+/Courier-Oblique /Courier-Italic ;
+/Courier-Italic (couri.pfb) ;
+/Courier-Bold (courb.pfb) ;
+/Courier-BoldOblique /Courier-BoldItalic ;
+/Courier-BoldItalic (courbi.pfb) ;
+
+/Helvetica (helv.pfb) ;
+/Helvetica-Oblique /Helvetica-Italic ;
+/Helvetica-Italic (helvi.pfb) ;
+/Helvetica-Bold (helvb.pfb) ;
+/Helvetica-BoldOblique /Helvetica-BoldItalic ;
+/Helvetica-BoldItalic (helvbi.pfb) ;
+
+/Symbol /SymbolSet ;
+/SymbolSet (symb.pfb) ;
+
+/Times-Roman /TimesNewRoman ;
+/TimesNewRoman (tnr.pfb) ;
+/Times-Italic /TimesNewRoman-Italic ;
+/TimesNewRoman-Italic (tnri.pfb) ;
+/Times-Bold /TimesNewRoman-Bold ;
+/TimesNewRoman-Bold (tnrb.pfb) ;
+/Times-BoldItalic /TimesNewRoman-BoldItalic ;
+/TimesNewRoman-BoldItalic (tnrbi.pfb) ;
+
+
diff --git a/Master/tlpkg/tlgs/lib/Fontmap.OSF b/Master/tlpkg/tlgs/lib/Fontmap.OSF
new file mode 100644
index 00000000000..563f14a995f
--- /dev/null
+++ b/Master/tlpkg/tlgs/lib/Fontmap.OSF
@@ -0,0 +1,163 @@
+% fontmap.osf aka Fontmap.OSF1 - Ghostscript fontmap for DEC OSF/1 systems.
+%
+% UNIX systems from Digital Equipment Corporation are bundled with a license
+% for Display PostScript, including certain fonts. Using their font outlines
+% (which on OSF/1 systems are found in /usr/lib/X11/fonts/Type1Adobe)
+% improves the visual quality of documents displayed on screen. To do that,
+% use this file as your Fontmap file and add /usr/lib/X11/fonts/Type1Adobe
+% as the second argument to GS_LIB_DEFAULT in your makefile
+% in your makefile.
+%
+% This file is Pete Kaiser's original Ultrix file as modified by
+% Bjorn S. Nilsson (nilsson@nbi.dk) first for Ultrix 4.3 and then
+% for OSF/1 version 1.3.
+%
+
+%/AvantGarde-Book (AvantGarde-Book) ;
+%/AvantGarde-BookOblique (AvantGarde-BookOblique);
+%/AvantGarde-Demi (AvantGarde-Demi) ;
+%/AvantGarde-DemiOblique (AvantGarde-DemiOblique);
+
+%/Courier-BoldItalic /Courier-BoldOblique ;
+%/Courier-Italic /Courier-Oblique ;
+
+%/Courier (Courier) ;
+%/Courier-Bold (Courier-Bold) ;
+%/Courier-BoldOblique (Courier-BoldOblique) ;
+%/Courier-Oblique (Courier-Oblique) ;
+
+%/Helvetica (Helvetica) ;
+%/Helvetica-Bold (Helvetica-Bold) ;
+%/Helvetica-BoldOblique (Helvetica-BoldOblique) ;
+%/Helvetica-Oblique (Helvetica-Oblique) ;
+
+%/LubalinGraph-Book (LubalinGraph-Book) ;
+%/LubalinGraph-BookOblique (LubalinGraph-BookOblique);
+%/LubalinGraph-Demi (LubalinGraph-Demi) ;
+%/LubalinGraph-DemiOblique (LubalinGraph-DemiOblique);
+
+%/NewCenturySchlbk-Bold (NewCenturySchlbk-Bold) ;
+%/NewCenturySchlbk-BoldItalic (NewCenturySchlbk-BoldItalic);
+%/NewCenturySchlbk-Italic (NewCenturySchlbk-Italic);
+%/NewCenturySchlbk-Roman (NewCenturySchlbk-Roman);
+
+%/Souvenir-Demi (Souvenir-Demi) ;
+%/Souvenir-DemiItalic (Souvenir-DemiItalic) ;
+%/Souvenir-Light (Souvenir-Light) ;
+%/Souvenir-LightItalic (Souvenir-LightItalic) ;
+
+%/Symbol (Symbol) ;
+
+%/Times-Bold (Times-Bold) ;
+%/Times-BoldItalic (Times-BoldItalic) ;
+%/Times-Italic (Times-Italic) ;
+%/Times-Roman (Times-Roman) ;
+
+%/ZapfDingbats (ZapfDingbats) ;
+
+/AvantGarde-Book (AvantGarde-Book.pfa) ;
+/AvantGarde-BookOblique (AvantGarde-BookOblique.pfa) ;
+/AvantGarde-Demi (AvantGarde-Demi.pfa) ;
+/AvantGarde-DemiOblique (AvantGarde-DemiOblique.pfa) ;
+/Bookman-Demi (pbkd.gsf) ;
+/Bookman-DemiItalic (pbkdi.gsf) ;
+/Bookman-Light (pbkl.gsf) ;
+/Bookman-LightItalic (pbkli.gsf) ;
+/Calligraphic-Hiragana (fhirw.gsf) ;
+/Calligraphic-Katakana (fkarw.gsf) ;
+/CharterBT-Bold (bchb.gsf) ;
+/CharterBT-BoldItalic (bchbi.gsf) ;
+/CharterBT-Italic (bchri.gsf) ;
+/CharterBT-Roman (bchr.gsf) ;
+/Courier (Courier.pfa) ;
+/Courier-Bold (Courier-Bold.pfa) ;
+/Courier-BoldOblique (Courier-BoldOblique.pfa) ;
+/Courier-Oblique (Courier-Oblique.pfa) ;
+/Helvetica (Helvetica.pfa) ;
+/Helvetica-Bold (Helvetica-Bold.pfa) ;
+/Helvetica-BoldOblique (Helvetica-BoldOblique.pfa) ;
+/Helvetica-Oblique (Helvetica-Oblique.pfa) ;
+/Hershey-Gothic-English (hrger.gsf) ;
+/Hershey-Gothic-German (hrgrr.gsf) ;
+/Hershey-Gothic-Italian (hritr.gsf) ;
+/Hershey-Plain-Duplex (hrpld.gsf) ;
+/Hershey-Plain-Duplex-Italic (hrpldi.gsf) ;
+/Hershey-Plain-Triplex (hrplt.gsf) ;
+/Hershey-Plain-Triplex-Italic (hrplti.gsf) ;
+/Hershey-Script-Complex (hrscc.gsf) ;
+/Hershey-Script-Simplex (hrscs.gsf) ;
+/Hershey-Gothic-English-Bold (hrgerb.gsf) ;
+/Hershey-Gothic-English-Oblique (hrgero.gsf) ;
+/Hershey-Gothic-English-Semibold (hrgerd.gsf) ;
+/Hershey-Gothic-German-Bold (hrgrrb.gsf) ;
+/Hershey-Gothic-German-Oblique (hrgrro.gsf) ;
+/Hershey-Gothic-Italian-Bold (hritrb.gsf) ;
+/Hershey-Gothic-Italian-Oblique (hritro.gsf) ;
+/Hershey-Plain-Duplex-Bold (hrpldb.gsf) ;
+/Hershey-Plain-Duplex-Bold-Italic (hrpldbi.gsf) ;
+/Hershey-Plain-Triplex-Bold (hrpltb.gsf) ;
+/Hershey-Plain-Triplex-Bold-Italic (hrpltbi.gsf) ;
+/Hershey-Script-Complex-Bold (hrsccb.gsf) ;
+/Hershey-Script-Complex-Oblique (hrscco.gsf) ;
+/Hershey-Script-Simplex-Bold (hrscsb.gsf) ;
+/Hershey-Script-Simplex-Oblique (hrscso.gsf) ;
+/Hershey-Greek-Complex (hrgkc.gsf) ;
+/Hershey-Greek-Simplex (hrgks.gsf) ;
+/Hershey-Plain (hrplr.gsf) ;
+/Hershey-Plain-Simplex (hrpls.gsf) ;
+/Hershey-Plain-Bold (hrplrb.gsf) ;
+/Hershey-Plain-Bold-Oblique (hrplrbo.gsf) ;
+/Hershey-Plain-Oblique (hrplro.gsf) ;
+/Hershey-Plain-Simplex-Bold (hrplsb.gsf) ;
+/Hershey-Plain-Simplex-Bold-Oblique (hrplsbo.gsf) ;
+/Hershey-Plain-Simplex-Oblique (hrplso.gsf) ;
+/Hershey-Symbol (hrsy_r.gsf) ;
+/LubalinGraph-Book (LubalinGraph-Book.pfa) ;
+/LubalinGraph-BookOblique (LubalinGraph-BookOblique.pfa) ;
+/LubalinGraph-Demi (LubalinGraph-Demi.pfa) ;
+/LubalinGraph-DemiOblique (LubalinGraph-DemiOblique.pfa) ;
+/NewCenturySchlbk-Bold (NewCenturySchlbk-Bold.pfa) ;
+/NewCenturySchlbk-BoldItalic (NewCenturySchlbk-BoldItalic.pfa) ;
+/NewCenturySchlbk-Italic (NewCenturySchlbk-Italic.pfa) ;
+/NewCenturySchlbk-Roman (NewCenturySchlbk-Roman.pfa) ;
+/NimbusRomanNo9L-Regular (n021003l.gsf) ;
+/NimbusSansL-Regular (n019003l.gsf) ;
+/Palatino-Bold (pplb.gsf) ;
+/Palatino-BoldItalic (pplbi.gsf) ;
+/Palatino-Italic (pplri.gsf) ;
+/Palatino-Roman (pplr.gsf) ;
+/Shareware-Cyrillic-Regular (fcyr.gsf) ;
+/Shareware-Cyrillic-Italic (fcyri.gsf) ;
+/Souvenir-Demi (Souvenir-Demi.pfa) ;
+/Souvenir-DemiItalic (Souvenir-DemiItalic.pfa) ;
+/Souvenir-Light (Souvenir-Light.pfa) ;
+/Souvenir-LightItalic (Souvenir-LightItalic.pfa) ;
+/Symbol (Symbol.pfa) ;
+/Times-Bold (Times-Bold.pfa) ;
+/Times-BoldItalic (Times-BoldItalic.pfa) ;
+/Times-Italic (Times-Italic.pfa) ;
+/Times-Roman (Times-Roman.pfa) ;
+/URWAntiquaT-RegularCondensed (u003043t.gsf) ;
+/URWGroteskT-Bold (u004006t.gsf) ;
+/Utopia-Bold (putb.gsf) ;
+/Utopia-BoldItalic (putbi.gsf) ;
+/Utopia-Italic (putri.gsf) ;
+/Utopia-Regular (putr.gsf) ;
+/ZapfChancery (zcr.gsf) ;
+/ZapfChancery-Bold (zcb.gsf) ;
+/ZapfChancery-Oblique (zcro.gsf) ;
+/ZapfDingbats (ZapfDingbats.pfa) ;
+/Cyrillic /Cyrillic-Regular ;
+/Cyrillic-Regular /Shareware-Cyrillic-Regular ;
+/Cyrillic-Italic /Shareware-Cyrillic-Italic ;
+
+% BSN additions from original Fontmap file and some more aliases
+
+/Helvetica-Narrow-Bold /Helvetica-Narrow ;
+/ZapfChancery-MediumItalic /ZapfChancery-Oblique ;
+/Charter-Roman /CharterBT-Roman ;
+/Charter-Italic /CharterBT-Italic ;
+/Charter-Bold /CharterBT-Bold ;
+/Charter-BoldItalic /CharterBT-BoldItalic ;
+/Courier-Italic /Courier-Oblique ;
+/Courier-BoldItalic /Courier-BoldOblique ;
diff --git a/Master/tlpkg/tlgs/lib/Fontmap.SGI b/Master/tlpkg/tlgs/lib/Fontmap.SGI
new file mode 100644
index 00000000000..69fee1080ca
--- /dev/null
+++ b/Master/tlpkg/tlgs/lib/Fontmap.SGI
@@ -0,0 +1,405 @@
+% Copyright (C) 1996, 1999 Aladdin Enterprises. All rights reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% For more information about licensing, please refer to
+% http://www.ghostscript.com/licensing/. For information on
+% commercial licensing, go to http://www.artifex.com/licensing/ or
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
+% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
+
+% $Id: Fontmap.SGI 6300 2005-12-28 19:56:24Z giles $
+%
+% Fontmap.SGI - standard font catalog for Ghostscript, modified for IRIX 5.3
+% with the DPS fonts installed (dps_eoe.sw.dpsfonts).
+% by H. Gohel, gohel@acm.org. 1999-09-10
+
+% ----------------------------------------------------------------
+
+% This file is a catalog of fonts known to Ghostscript. Any font
+% that is to be loaded automatically when named must be in this catalog,
+% except for fonts that Ghostscript finds automatically in directories
+% named in the GS_FONTPATH environment variable.
+
+% Each font has an entry consisting of three items:
+%
+% - The name by which the font is known inside Ghostscript
+% (a Ghostscript name preceded by a `/', or a string enclosed
+% in parentheses). This is used to find the file from which
+% a font of a given name should be loaded.
+%
+% - Information depending on whether this is a real font or a
+% font alias:
+%
+% - For real fonts, the name of the Ghostscript font
+% file (a Ghostscript string, enclosed in parentheses).
+% The filename should include the extension, which (by
+% convention) is `.gsf'. `.pfa' and `.pfb' files are
+% also usable as fonts for Ghostscript.
+%
+% - For font aliases, the name of the font which should
+% be used when this one is requested, preceded by a
+% `/'. See the entry for Charter below for an example.
+% Note that an alias name cannot be enclosed in parentheses.
+%
+% - At least one space or tab, and a terminating semicolon.
+
+% Because of limitations in the MS-DOS environment, Ghostscript font
+% file names must be no more than 8 characters long, must consist only
+% of LOWER CASE letters, digits, and underscores, and must start with a
+% letter. Font names, on the other hand, need only obey the syntax of
+% names in the Ghostscript language, which is much more liberal.
+
+% The following table is actually a Ghostscript data structure.
+% If you add new entries, be sure to copy the punctuation accurately;
+% in particular, you must leave at least one space or tab between each
+% field in the entry. Also, please read fonts.doc for important information
+% about font names.
+
+% Note that .pfa and .pfb fonts are compatible with Adobe Type Manager
+% and other programs that don't include full PostScript interpreters,
+% as well as with PostScript interpreters; .gsf fonts are compatible with
+% PostScript interpreters, but not with ATM or similar programs.
+
+%
+%
+% Fonts contributed by:
+% URW++ Design and Development Incorporated
+% Poppenbuetteler Bogen 29A
+% D-22399 Hamburg
+% Germany
+% tel. +49 (40) 60 60 50
+% fax +49 (40) 60 60 51 11
+% http://www.urwpp.de
+% for distribution under the GNU License and Aladdin Free Public License.
+% See the notice at the head of this Fontmap file for licensing terms.
+% Each of these fonts is individually covered by the license:
+% for licensing purposes, they are not "part of" any larger entity.
+% The following notice applies to these fonts:
+%
+% Copyright URW Software, Copyright 1994 by URW.
+%
+
+% Actual fonts
+
+/URWBookmanL-DemiBold (b018015l.pfb) ;
+/URWBookmanL-DemiBoldItal (b018035l.pfb) ;
+/URWBookmanL-Ligh (b018012l.pfb) ;
+/URWBookmanL-LighItal (b018032l.pfb) ;
+
+/NimbusMonL-Regu (n022003l.pfb) ;
+/NimbusMonL-ReguObli (n022023l.pfb) ;
+/NimbusMonL-Bold (n022004l.pfb) ;
+/NimbusMonL-BoldObli (n022024l.pfb) ;
+
+/URWGothicL-Book (a010013l.pfb) ;
+/URWGothicL-BookObli (a010033l.pfb) ;
+/URWGothicL-Demi (a010015l.pfb) ;
+/URWGothicL-DemiObli (a010035l.pfb) ;
+
+/NimbusSanL-Regu (n019003l.pfb) ;
+/NimbusSanL-ReguItal (n019023l.pfb) ;
+/NimbusSanL-Bold (n019004l.pfb) ;
+/NimbusSanL-BoldItal (n019024l.pfb) ;
+
+/NimbusSanL-ReguCond (n019043l.pfb) ;
+/NimbusSanL-ReguCondItal (n019063l.pfb) ;
+/NimbusSanL-BoldCond (n019044l.pfb) ;
+/NimbusSanL-BoldCondItal (n019064l.pfb) ;
+
+/URWPalladioL-Roma (p052003l.pfb) ;
+/URWPalladioL-Ital (p052023l.pfb) ;
+/URWPalladioL-Bold (p052004l.pfb) ;
+/URWPalladioL-BoldItal (p052024l.pfb) ;
+
+/CenturySchL-Roma (c059013l.pfb) ;
+/CenturySchL-Ital (c059033l.pfb) ;
+/CenturySchL-Bold (c059016l.pfb) ;
+/CenturySchL-BoldItal (c059036l.pfb) ;
+
+/NimbusRomNo9L-Regu (n021003l.pfb) ;
+/NimbusRomNo9L-ReguItal (n021023l.pfb) ;
+/NimbusRomNo9L-Medi (n021004l.pfb) ;
+/NimbusRomNo9L-MediItal (n021024l.pfb) ;
+
+/StandardSymL (s050000l.pfb) ;
+
+/URWChanceryL-MediItal (z003034l.pfb) ;
+
+/Dingbats (d050000l.pfb) ;
+
+% Aliases
+% These Adobe fonts are available with DPS on IRIX, so they commented out:
+
+%/Bookman-Demi /URWBookmanL-DemiBold ;
+%/Bookman-DemiItalic /URWBookmanL-DemiBoldItal ;
+%/Bookman-Light /URWBookmanL-Ligh ;
+%/Bookman-LightItalic /URWBookmanL-LighItal ;
+
+%/Courier /NimbusMonL-Regu ;
+%/Courier-Oblique /NimbusMonL-ReguObli ;
+%/Courier-Bold /NimbusMonL-Bold ;
+%/Courier-BoldOblique /NimbusMonL-BoldObli ;
+
+%/AvantGarde-Book /URWGothicL-Book ;
+%/AvantGarde-BookOblique /URWGothicL-BookObli ;
+%/AvantGarde-Demi /URWGothicL-Demi ;
+%/AvantGarde-DemiOblique /URWGothicL-DemiObli ;
+
+%/Helvetica /NimbusSanL-Regu ;
+%/Helvetica-Oblique /NimbusSanL-ReguItal ;
+%/Helvetica-Bold /NimbusSanL-Bold ;
+%/Helvetica-BoldOblique /NimbusSanL-BoldItal ;
+
+%/Helvetica-Narrow /NimbusSanL-ReguCond ;
+%/Helvetica-Narrow-Oblique /NimbusSanL-ReguCondItal ;
+%/Helvetica-Narrow-Bold /NimbusSanL-BoldCond ;
+%/Helvetica-Narrow-BoldOblique /NimbusSanL-BoldCondItal ;
+
+%/Palatino-Roman /URWPalladioL-Roma ;
+%/Palatino-Italic /URWPalladioL-Ital ;
+%/Palatino-Bold /URWPalladioL-Bold ;
+%/Palatino-BoldItalic /URWPalladioL-BoldItal ;
+
+%/NewCenturySchlbk-Roman /CenturySchL-Roma ;
+%/NewCenturySchlbk-Italic /CenturySchL-Ital ;
+%/NewCenturySchlbk-Bold /CenturySchL-Bold ;
+%/NewCenturySchlbk-BoldItalic /CenturySchL-BoldItal ;
+
+%/Times-Roman /NimbusRomNo9L-Regu ;
+%/Times-Italic /NimbusRomNo9L-ReguItal ;
+%/Times-Bold /NimbusRomNo9L-Medi ;
+%/Times-BoldItalic /NimbusRomNo9L-MediItal ;
+
+%/Symbol /StandardSymL ;
+
+%/ZapfChancery-MediumItalic /URWChanceryL-MediItal ;
+
+%/ZapfDingbats /Dingbats ;
+
+%
+%
+% Type 1 fonts contributed to the X11R5 distribution.
+%
+
+% The following notice accompanied the Charter fonts.
+%
+% (c) Copyright 1989-1992, Bitstream Inc., Cambridge, MA.
+%
+% You are hereby granted permission under all Bitstream propriety rights
+% to use, copy, modify, sublicense, sell, and redistribute the 4 Bitstream
+% Charter (r) Type 1 outline fonts and the 4 Courier Type 1 outline fonts
+% for any purpose and without restriction; provided, that this notice is
+% left intact on all copies of such fonts and that Bitstream's trademark
+% is acknowledged as shown below on all unmodified copies of the 4 Charter
+% Type 1 fonts.
+%
+% BITSTREAM CHARTER is a registered trademark of Bitstream Inc.
+
+% The Bitstream Charter fonts have different names (CharterBT-
+% instead of Charter-), but Ghostscript doesn't care.
+/Charter-Roman (bchr.pfa) ;
+/Charter-Italic (bchri.pfa) ;
+/Charter-Bold (bchb.pfa) ;
+/Charter-BoldItalic (bchbi.pfa) ;
+
+% The following notice accompanied the Utopia font:
+%
+% Permission to use, reproduce, display and distribute the listed
+% typefaces is hereby granted, provided that the Adobe Copyright notice
+% appears in all whole and partial copies of the software and that the
+% following trademark symbol and attribution appear in all unmodified
+% copies of the software:
+%
+% Copyright (c) 1989 Adobe Systems Incorporated
+% Utopia (R)
+% Utopia is a registered trademark of Adobe Systems Incorporated
+%
+% The Adobe typefaces (Type 1 font program, bitmaps and Adobe Font
+% Metric files) donated are:
+%
+% Utopia Regular
+% Utopia Italic
+% Utopia Bold
+% Utopia Bold Italic
+
+% The original Utopia files are available with IRIX and DPS so need
+% for aliases, HJG.
+
+%/Utopia-Regular (putr.pfa) ;
+%/Utopia-Italic (putri.pfa) ;
+%/Utopia-Bold (putb.pfa) ;
+%/Utopia-BoldItalic (putbi.pfa) ;
+
+%
+%
+% Fonts contributed by URW GmbH for distribution under the GNU License.
+% The following notice accompanied these fonts:
+%
+% U004006T URW Grotesk 2031 Bold PostScript Type 1 Font Program
+% U003043T URW Antiqua 2051 Regular Condensed PostScript Type 1 Font Program
+%
+% Copyright (c) 1992 URW GmbH, Hamburg, Germany
+%
+% This program is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or
+% (at your option) later version.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; wihtout even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+% See the GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this program; if not, write to the Free Software
+% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%
+% Address:
+% URW GmbH
+% PC Support
+% Harksheider Strasse 102
+% 2000 Hamburg 65
+% Germany
+% Phone: +49 40 60 60 50 (Reception)
+% Phone: +49 40 60 60 52 30 (PC Support)
+% Fax : +49 40 60 60 52 52
+%
+
+/URWAntiquaT-RegularCondensed (u003043t.gsf) ;
+/URWGroteskT-Bold (u004006t.gsf) ;
+
+%
+%
+% Shareware Kana fonts. These are subject to the following notice:
+%
+% These copyrighted fonts were developed by Kevin Hartig. Permission is
+% granted to freely distribute them in entirety along with this statement.
+% This is shareware. If you decide to use these fonts please contribute
+% $10 US to help support further freeware and shareware software development.
+% Questions and comments may be sent to:
+%
+% hartig@fsl.noaa.gov
+% khartig@nyx.cs.du.edu
+%
+% Kevin Hartig
+% 1126 Collyer Street
+% Longmont, CO 80501 USA
+%
+% copyright 1993.
+
+% Hiragana and Katakana fonts. The character names are inappropriate,
+% and the encoding is probably not related to any known standard.
+
+/Calligraphic-Hiragana (fhirw.gsf) ;
+/Calligraphic-Katakana (fkarw.gsf) ;
+
+%
+%
+% Public-domain fonts. These have no copyright, and are of unknown quality.
+
+% Cyrillic fonts. The character names are inappropriate,
+% and the encoding is probably not related to any known standard.
+
+/Shareware-Cyrillic-Regular (fcyr.gsf) ;
+/Shareware-Cyrillic-Italic (fcyri.gsf) ;
+
+% Aliases
+/Cyrillic /Cyrillic-Regular ;
+/Cyrillic-Regular /Shareware-Cyrillic-Regular ;
+/Cyrillic-Italic /Shareware-Cyrillic-Italic ;
+
+%
+%
+% Fonts converted from Hershey outlines. These are constructed and
+% maintained manually. These are also in the public domain.
+%
+% The suggested UniqueID's and filenames are constructed differently for
+% these than for the ones above, because of the strange way that the Hershey
+% fonts were constructed. The scheme for these looks like:
+%
+% 42TTXY0
+%
+% TT = typeface, X = ``class'', Y = variation
+%
+% The typeface names and numbers are listed in fonts.mak.
+%
+% class:
+% 0 = normal = r
+% 1 = simplex = s
+% 2 = complex = c
+% 3 = triplex = t
+% 4 = duplex = d
+%
+% variation:
+% 0 = normal (omitted)
+% 1 = oblique = o
+% 2 = italic = i
+% 3 = bold = b
+% 4 = bold oblique = bo
+% 5 = bold italic = bi
+%
+
+% Fonts created by Thomas Wolff <wolff@inf.fu-berlin.de>, by adding
+% accents, accented characters, and various other non-alphabetics
+% to the original Hershey fonts. These are "freeware", not to be sold.
+
+/Hershey-Gothic-English (hrger.pfa) ; % 5066533
+/Hershey-Gothic-German (hrgrr.pfa) ;
+/Hershey-Gothic-Italian (hritr.pfa) ;
+
+/Hershey-Plain-Duplex (hrpld.pfa) ;
+/Hershey-Plain-Duplex-Italic (hrpldi.pfa) ;
+/Hershey-Plain-Triplex (hrplt.pfa) ;
+/Hershey-Plain-Triplex-Italic (hrplti.pfa) ;
+
+/Hershey-Script-Complex (hrscc.pfa) ;
+/Hershey-Script-Simplex (hrscs.pfa) ; % 5066541
+
+% Fonts created algorithmically from the above.
+
+/Hershey-Gothic-English-Bold (hrgerb.gsf) ; % 5066542
+/Hershey-Gothic-English-Oblique (hrgero.gsf) ;
+/Hershey-Gothic-English-SemiBold (hrgerd.gsf) ;
+/Hershey-Gothic-German-Bold (hrgrrb.gsf) ;
+/Hershey-Gothic-German-Oblique (hrgrro.gsf) ;
+/Hershey-Gothic-Italian-Bold (hritrb.gsf) ;
+/Hershey-Gothic-Italian-Oblique (hritro.gsf) ;
+
+/Hershey-Plain-Duplex-Bold (hrpldb.gsf) ;
+/Hershey-Plain-Duplex-Bold-Italic (hrpldbi.gsf) ;
+/Hershey-Plain-Triplex-Bold (hrpltb.gsf) ;
+/Hershey-Plain-Triplex-Bold-Italic (hrpltbi.gsf) ;
+
+/Hershey-Script-Complex-Bold (hrsccb.gsf) ;
+/Hershey-Script-Complex-Oblique (hrscco.gsf) ;
+/Hershey-Script-Simplex-Bold (hrscsb.gsf) ;
+/Hershey-Script-Simplex-Oblique (hrscso.gsf) ; % 5066556
+
+% Fonts consisting only of characters from the original Hershey
+% distribution. These are Type 3 fonts.
+
+/Hershey-Greek-Complex (hrgkc.gsf) ; % 5066557
+/Hershey-Greek-Simplex (hrgks.gsf) ;
+
+/Hershey-Plain (hrplr.gsf) ;
+/Hershey-Plain-Simplex (hrpls.gsf) ; % 5066560
+
+% Fonts created algorithmically from the above.
+
+/Hershey-Plain-Bold (hrplrb.gsf) ; % 5066561
+/Hershey-Plain-Bold-Oblique (hrplrbo.gsf) ;
+/Hershey-Plain-Oblique (hrplro.gsf) ;
+/Hershey-Plain-Simplex-Bold (hrplsb.gsf) ;
+/Hershey-Plain-Simplex-Bold-Oblique (hrplsbo.gsf) ;
+/Hershey-Plain-Simplex-Oblique (hrplso.gsf) ; % 5066566
+
+% This font, and only this font among the Hershey fonts, uses
+% the SymbolEncoding.
+
+/Hershey-Symbol (hrsyr.gsf) ; % 5066567
diff --git a/Master/tlpkg/tlgs/lib/Fontmap.Sol b/Master/tlpkg/tlgs/lib/Fontmap.Sol
new file mode 100644
index 00000000000..337e942c775
--- /dev/null
+++ b/Master/tlpkg/tlgs/lib/Fontmap.Sol
@@ -0,0 +1,486 @@
+% Copyright (C) 1996, 1999 Aladdin Enterprises. All rights reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% For more information about licensing, please refer to
+% http://www.ghostscript.com/licensing/. For information on
+% commercial licensing, go to http://www.artifex.com/licensing/ or
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
+% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
+
+% $Id: Fontmap.Sol 6300 2005-12-28 19:56:24Z giles $
+% Fontmap.Solaris - Ghostscript Fontmap for Solaris 2.3 and above
+% ===============================================================
+%
+% The Solaris 2.3 (and above) operating system from Sun Microsystems comes with
+% Display Postscript (DPS), including certain Type1 and Type3 PostScript fonts.
+% Using these fonts instead of the default Ghostscript fonts greatly improves
+% the visual quality of Ghostscript rendered documents, especially at larger
+% font sizes. You should definately use these fonts if you have Solaris 2.3 or
+% above.
+%
+% To use the Solaris 2 DPS fonts, simply copy this file (Fontmap.Solaris) to
+%
+% /usr/local/lib/Ghostscript/VERSION/Fontmap
+% (where VERSION is the version number of Ghostscript, eg: 3.33)
+%
+% and set the environment variable GS_LIB as follows:
+%
+% GS_LIB=/usr/openwin/lib/X11/fonts/Type1:/usr/openwin/lib/X11/fonts/Type3
+% export GS_LIB
+%
+% You can use /usr/openwin/lib/fonts/Type1/outline instead if you like, it
+% makes no difference (the files in /usr/openwin/lib/fonts/Type1 are symlinks
+% into /usr/openwin/lib/fonts/Type1/outline).
+%
+% Instead of setting GS_LIB, you could add the above directories to
+% GS_LIB_DEFAULT in your makefile before building Ghostscript.
+%
+%
+% IMPORTANT NOTE
+% ==============
+%
+% Note that simply setting GS_FONTPATH may not work, because for some reason
+% some versions of gs can't seem to find any fonts in
+% /usr/openwin/lib/X11/fonts/Type1/outline.
+% It says: "15 files, 15 scanned, 0 new fonts".
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% ----------------------------------------------------------------
+
+% This file is a catalog of fonts known to Ghostscript. Any font
+% that is to be loaded automatically when named must be in this catalog,
+% except for fonts that Ghostscript finds automatically in directories
+% named in the GS_FONTPATH environment variable.
+
+% Each font has an entry consisting of three items:
+%
+% - The name by which the font is known inside Ghostscript
+% (a Ghostscript name preceded by a `/', or a string enclosed
+% in parentheses). This is used to find the file from which
+% a font of a given name should be loaded.
+%
+% - Information depending on whether this is a real font or a
+% font alias:
+%
+% - For real fonts, the name of the Ghostscript font
+% file (a Ghostscript string, enclosed in parentheses).
+% The filename should include the extension, which (by
+% convention) is `.gsf'. `.pfa' and `.pfb' files are
+% also usable as fonts for Ghostscript.
+%
+% - For font aliases, the name of the font which should
+% be used when this one is requested, preceded by a
+% `/'. See the entry for Charter below for an example.
+% Note that an alias name cannot be enclosed in parentheses.
+%
+% - At least one space or tab, and a terminating semicolon.
+
+% Because of limitations in the MS-DOS environment, Ghostscript font
+% file names must be no more than 8 characters long, must consist only
+% of LOWER CASE letters, digits, and underscores, and must start with a
+% letter. Font names, on the other hand, need only obey the syntax of
+% names in the Ghostscript language, which is much more liberal.
+
+% The following table is actually a Ghostscript data structure.
+% If you add new entries, be sure to copy the punctuation accurately;
+% in particular, you must leave at least one space or tab between each
+% field in the entry. Also, please read fonts.doc for important information
+% about font names.
+
+% Note that .pfa and .pfb fonts are compatible with Adobe Type Manager
+% and other programs that don't include full PostScript interpreters,
+% as well as with PostScript interpreters; .gsf fonts are compatible with
+% PostScript interpreters, but not with ATM or similar programs.
+
+%
+%
+% Fonts contributed by:
+% URW++ Design and Development Incorporated
+% Poppenbuetteler Bogen 29A
+% D-22399 Hamburg
+% Germany
+% tel. +49 (40) 60 60 50
+% fax +49 (40) 60 60 51 11
+% http://www.urwpp.de
+% for distribution under the GNU License and Aladdin Free Public License.
+% See the notice at the head of this Fontmap file for licensing terms.
+% Each of these fonts is individually covered by the license:
+% for licensing purposes, they are not "part of" any larger entity.
+% The following notice applies to these fonts:
+%
+% Copyright URW Software, Copyright 1994 by URW.
+%
+
+% Actual fonts
+
+/URWBookmanL-DemiBold (b018015l.pfb) ;
+/URWBookmanL-DemiBoldItal (b018035l.pfb) ;
+/URWBookmanL-Ligh (b018012l.pfb) ;
+/URWBookmanL-LighItal (b018032l.pfb) ;
+
+/NimbusMonL-Regu (n022003l.pfb) ;
+/NimbusMonL-ReguObli (n022023l.pfb) ;
+/NimbusMonL-Bold (n022004l.pfb) ;
+/NimbusMonL-BoldObli (n022024l.pfb) ;
+
+/URWGothicL-Book (a010013l.pfb) ;
+/URWGothicL-BookObli (a010033l.pfb) ;
+/URWGothicL-Demi (a010015l.pfb) ;
+/URWGothicL-DemiObli (a010035l.pfb) ;
+
+/NimbusSanL-Regu (n019003l.pfb) ;
+/NimbusSanL-ReguItal (n019023l.pfb) ;
+/NimbusSanL-Bold (n019004l.pfb) ;
+/NimbusSanL-BoldItal (n019024l.pfb) ;
+
+/NimbusSanL-ReguCond (n019043l.pfb) ;
+/NimbusSanL-ReguCondItal (n019063l.pfb) ;
+/NimbusSanL-BoldCond (n019044l.pfb) ;
+/NimbusSanL-BoldCondItal (n019064l.pfb) ;
+
+/URWPalladioL-Roma (p052003l.pfb) ;
+/URWPalladioL-Ital (p052023l.pfb) ;
+/URWPalladioL-Bold (p052004l.pfb) ;
+/URWPalladioL-BoldItal (p052024l.pfb) ;
+
+/CenturySchL-Roma (c059013l.pfb) ;
+/CenturySchL-Ital (c059033l.pfb) ;
+/CenturySchL-Bold (c059016l.pfb) ;
+/CenturySchL-BoldItal (c059036l.pfb) ;
+
+/NimbusRomNo9L-Regu (n021003l.pfb) ;
+/NimbusRomNo9L-ReguItal (n021023l.pfb) ;
+/NimbusRomNo9L-Medi (n021004l.pfb) ;
+/NimbusRomNo9L-MediItal (n021024l.pfb) ;
+
+/StandardSymL (s050000l.pfb) ;
+
+/URWChanceryL-MediItal (z003034l.pfb) ;
+
+/Dingbats (d050000l.pfb) ;
+
+% Aliases
+
+/Bookman-Demi /URWBookmanL-DemiBold ;
+/Bookman-DemiItalic /URWBookmanL-DemiBoldItal ;
+/Bookman-Light /URWBookmanL-Ligh ;
+/Bookman-LightItalic /URWBookmanL-LighItal ;
+
+/Courier /NimbusMonL-Regu ;
+/Courier-Oblique /NimbusMonL-ReguObli ;
+/Courier-Bold /NimbusMonL-Bold ;
+/Courier-BoldOblique /NimbusMonL-BoldObli ;
+
+/AvantGarde-Book /URWGothicL-Book ;
+/AvantGarde-BookOblique /URWGothicL-BookObli ;
+/AvantGarde-Demi /URWGothicL-Demi ;
+/AvantGarde-DemiOblique /URWGothicL-DemiObli ;
+
+% Solaris 2 DPS has Helvetica as a Type1 font.
+%/Helvetica /NimbusSanL-Regu ;
+%/Helvetica-Oblique /NimbusSanL-ReguItal ;
+%/Helvetica-Bold /NimbusSanL-Bold ;
+%/Helvetica-BoldOblique /NimbusSanL-BoldItal ;
+
+/Helvetica-Narrow /NimbusSanL-ReguCond ;
+/Helvetica-Narrow-Oblique /NimbusSanL-ReguCondItal ;
+/Helvetica-Narrow-Bold /NimbusSanL-BoldCond ;
+/Helvetica-Narrow-BoldOblique /NimbusSanL-BoldCondItal ;
+
+/Palatino-Roman /URWPalladioL-Roma ;
+/Palatino-Italic /URWPalladioL-Ital ;
+/Palatino-Bold /URWPalladioL-Bold ;
+/Palatino-BoldItalic /URWPalladioL-BoldItal ;
+
+/NewCenturySchlbk-Roman /CenturySchL-Roma ;
+/NewCenturySchlbk-Italic /CenturySchL-Ital ;
+/NewCenturySchlbk-Bold /CenturySchL-Bold ;
+/NewCenturySchlbk-BoldItalic /CenturySchL-BoldItal ;
+
+% Solaris 2 DPS has Times as a Type1 font.
+%/Times-Roman /NimbusRomNo9L-Regu ;
+%/Times-Italic /NimbusRomNo9L-ReguItal ;
+%/Times-Bold /NimbusRomNo9L-Medi ;
+%/Times-BoldItalic /NimbusRomNo9L-MediItal ;
+
+% Solaris 2 DPS has Symbol as a Type1 font.
+%/Symbol /StandardSymL ;
+
+/ZapfChancery-MediumItalic /URWChanceryL-MediItal ;
+
+/ZapfDingbats /Dingbats ;
+
+%
+%
+% Type 1 fonts contributed to the X11R5 distribution.
+%
+
+% The following notice accompanied the Charter fonts.
+%
+% (c) Copyright 1989-1992, Bitstream Inc., Cambridge, MA.
+%
+% You are hereby granted permission under all Bitstream propriety rights
+% to use, copy, modify, sublicense, sell, and redistribute the 4 Bitstream
+% Charter (r) Type 1 outline fonts and the 4 Courier Type 1 outline fonts
+% for any purpose and without restriction; provided, that this notice is
+% left intact on all copies of such fonts and that Bitstream's trademark
+% is acknowledged as shown below on all unmodified copies of the 4 Charter
+% Type 1 fonts.
+%
+% BITSTREAM CHARTER is a registered trademark of Bitstream Inc.
+
+/CharterBT-Roman (bchr.pfa) ;
+/CharterBT-Italic (bchri.pfa) ;
+/CharterBT-Bold (bchb.pfa) ;
+/CharterBT-BoldItalic (bchbi.pfa) ;
+
+% Aliases
+
+/Charter-Roman /CharterBT-Roman ;
+/Charter-Italic /CharterBT-Italic ;
+/Charter-Bold /CharterBT-Bold ;
+/Charter-BoldItalic /CharterBT-BoldItalic ;
+
+% The following notice accompanied the Utopia font:
+%
+% Permission to use, reproduce, display and distribute the listed
+% typefaces is hereby granted, provided that the Adobe Copyright notice
+% appears in all whole and partial copies of the software and that the
+% following trademark symbol and attribution appear in all unmodified
+% copies of the software:
+%
+% Copyright (c) 1989 Adobe Systems Incorporated
+% Utopia (R)
+% Utopia is a registered trademark of Adobe Systems Incorporated
+%
+% The Adobe typefaces (Type 1 font program, bitmaps and Adobe Font
+% Metric files) donated are:
+%
+% Utopia Regular
+% Utopia Italic
+% Utopia Bold
+% Utopia Bold Italic
+
+/Utopia-Regular (putr.pfa) ;
+/Utopia-Italic (putri.pfa) ;
+/Utopia-Bold (putb.pfa) ;
+/Utopia-BoldItalic (putbi.pfa) ;
+
+%
+%
+% Fonts contributed by URW GmbH for distribution under the GNU License.
+% The following notice accompanied these fonts:
+%
+% U004006T URW Grotesk 2031 Bold PostScript Type 1 Font Program
+% U003043T URW Antiqua 2051 Regular Condensed PostScript Type 1 Font Program
+%
+% Copyright (c) 1992 URW GmbH, Hamburg, Germany
+%
+% This program is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or
+% (at your option) later version.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; wihtout even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+% See the GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this program; if not, write to the Free Software
+% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 U.S.A.
+%
+% Address:
+% URW GmbH
+% PC Support
+% Harksheider Strasse 102
+% 2000 Hamburg 65
+% Germany
+% Phone: +49 40 60 60 50 (Reception)
+% Phone: +49 40 60 60 52 30 (PC Support)
+% Fax : +49 40 60 60 52 52
+%
+
+/URWAntiquaT-RegularCondensed (u003043t.gsf) ;
+/URWGroteskT-Bold (u004006t.gsf) ;
+
+%
+%
+% Shareware Kana fonts. These are subject to the following notice:
+%
+% These copyrighted fonts were developed by Kevin Hartig. Permission is
+% granted to freely distribute them in entirety along with this statement.
+% This is shareware. If you decide to use these fonts please contribute
+% $10 US to help support further freeware and shareware software development.
+% Questions and comments may be sent to:
+%
+% hartig@fsl.noaa.gov
+% khartig@nyx.cs.du.edu
+%
+% Kevin Hartig
+% 1126 Collyer Street
+% Longmont, CO 80501 USA
+%
+% copyright 1993.
+
+% Hiragana and Katakana fonts. The character names are inappropriate,
+% and the encoding is probably not related to any known standard.
+
+/Calligraphic-Hiragana (fhirw.gsf) ;
+/Calligraphic-Katakana (fkarw.gsf) ;
+
+%
+%
+% Public-domain fonts. These have no copyright, and are of unknown quality.
+
+% Cyrillic fonts. The character names are inappropriate,
+% and the encoding is probably not related to any known standard.
+
+/Shareware-Cyrillic-Regular (fcyr.gsf) ;
+/Shareware-Cyrillic-Italic (fcyri.gsf) ;
+
+% Aliases
+/Cyrillic /Cyrillic-Regular ;
+/Cyrillic-Regular /Shareware-Cyrillic-Regular ;
+/Cyrillic-Italic /Shareware-Cyrillic-Italic ;
+
+%
+%
+% Fonts converted from Hershey outlines. These are constructed and
+% maintained manually. These are also in the public domain.
+%
+% The suggested UniqueID's and filenames are constructed differently for
+% these than for the ones above, because of the strange way that the Hershey
+% fonts were constructed. The scheme for these looks like:
+%
+% 42TTXY0
+%
+% TT = typeface, X = ``class'', Y = variation
+%
+% The typeface names and numbers are listed in fonts.mak.
+%
+% class:
+% 0 = normal = r
+% 1 = simplex = s
+% 2 = complex = c
+% 3 = triplex = t
+% 4 = duplex = d
+%
+% variation:
+% 0 = normal (omitted)
+% 1 = oblique = o
+% 2 = italic = i
+% 3 = bold = b
+% 4 = bold oblique = bo
+% 5 = bold italic = bi
+%
+
+% Fonts created by Thomas Wolff <wolff@inf.fu-berlin.de>, by adding
+% accents, accented characters, and various other non-alphabetics
+% to the original Hershey fonts. These are "freeware", not to be sold.
+
+/Hershey-Gothic-English (hrger.pfa) ; % 5066533
+/Hershey-Gothic-German (hrgrr.pfa) ;
+/Hershey-Gothic-Italian (hritr.pfa) ;
+
+/Hershey-Plain-Duplex (hrpld.pfa) ;
+/Hershey-Plain-Duplex-Italic (hrpldi.pfa) ;
+/Hershey-Plain-Triplex (hrplt.pfa) ;
+/Hershey-Plain-Triplex-Italic (hrplti.pfa) ;
+
+/Hershey-Script-Complex (hrscc.pfa) ;
+/Hershey-Script-Simplex (hrscs.pfa) ; % 5066541
+
+% Fonts created algorithmically from the above.
+
+/Hershey-Gothic-English-Bold (hrgerb.gsf) ; % 5066542
+/Hershey-Gothic-English-Oblique (hrgero.gsf) ;
+/Hershey-Gothic-English-SemiBold (hrgerd.gsf) ;
+/Hershey-Gothic-German-Bold (hrgrrb.gsf) ;
+/Hershey-Gothic-German-Oblique (hrgrro.gsf) ;
+/Hershey-Gothic-Italian-Bold (hritrb.gsf) ;
+/Hershey-Gothic-Italian-Oblique (hritro.gsf) ;
+
+/Hershey-Plain-Duplex-Bold (hrpldb.gsf) ;
+/Hershey-Plain-Duplex-Bold-Italic (hrpldbi.gsf) ;
+/Hershey-Plain-Triplex-Bold (hrpltb.gsf) ;
+/Hershey-Plain-Triplex-Bold-Italic (hrpltbi.gsf) ;
+
+/Hershey-Script-Complex-Bold (hrsccb.gsf) ;
+/Hershey-Script-Complex-Oblique (hrscco.gsf) ;
+/Hershey-Script-Simplex-Bold (hrscsb.gsf) ;
+/Hershey-Script-Simplex-Oblique (hrscso.gsf) ; % 5066556
+
+% Fonts consisting only of characters from the original Hershey
+% distribution. These are Type 3 fonts.
+
+/Hershey-Greek-Complex (hrgkc.gsf) ; % 5066557
+/Hershey-Greek-Simplex (hrgks.gsf) ;
+
+/Hershey-Plain (hrplr.gsf) ;
+/Hershey-Plain-Simplex (hrpls.gsf) ; % 5066560
+
+% Fonts created algorithmically from the above.
+
+/Hershey-Plain-Bold (hrplrb.gsf) ; % 5066561
+/Hershey-Plain-Bold-Oblique (hrplrbo.gsf) ;
+/Hershey-Plain-Oblique (hrplro.gsf) ;
+/Hershey-Plain-Simplex-Bold (hrplsb.gsf) ;
+/Hershey-Plain-Simplex-Bold-Oblique (hrplsbo.gsf) ;
+/Hershey-Plain-Simplex-Oblique (hrplso.gsf) ; % 5066566
+
+% This font, and only this font among the Hershey fonts, uses
+% the SymbolEncoding.
+
+/Hershey-Symbol (hrsyr.gsf) ; % 5066567
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Solaris 2 Display PostScript Type1 and Type3 fonts...
+%
+
+/Helvetica (Helvetica.pfa) ;
+/Helvetica-Bold (Helvetica-Bold.pfa) ;
+/Helvetica-BoldOblique (Helvetica-BoldOblique.pfa) ;
+/Helvetica-Oblique (Helvetica-Oblique.pfa) ;
+
+/Symbol (Symbol.pfa) ;
+/SymbolSet /Symbol ;
+
+/Times-Bold (Times-Bold.pfa) ;
+/Times-BoldItalic (Times-BoldItalic.pfa) ;
+/Times-Italic (Times-Italic.pfa) ;
+/Times-Roman (Times-Roman.pfa) ;
+/TimesNewRoman /Times-Roman ;
+/TimesNewRoman-Bold /Times-Bold ;
+/TimesNewRoman-BoldItalic /Times-BoldItalic ;
+/TimesNewRoman-Italic /Times-Italic ;
+
+/Dijkstra (Dijkstra.ps) ;
+
+/Hershey-Cyrillic (HrshCyr.ps) ;
+
+/Hershey-Gothic (HrshGoth.ps) ;
+
+/Hershey-Greek (HrshGrk.ps) ;
+/Hershey-Greek-Narrow (HrshGrkN.ps) ;
+/Hershey-Greekp (HrshGrkp.ps) ;
+
+/Hershey-Italic (HrshI.ps) ;
+/Hershey-Italic-Narrow (HrshIN.ps) ;
+/Hershey-Italic-Wide (HrshIW.ps) ;
+/Hershey-Roman (HrshRom.ps) ;
+/Hershey-Roman-Narrow (HrshRomN.ps) ;
+/Hershey-Roman-Wide (HrshRomW.ps) ;
+/Hershey-Romand (HrshRomd.ps) ;
+/Hershey-Romanp (HrshRomp.ps) ;
+
+/Hershey-Script (HrshScr.ps) ;
+/Hershey-Script-Narrow (HrshScrN.ps) ;
diff --git a/Master/tlpkg/tlgs/lib/Fontmap.TeXLive b/Master/tlpkg/tlgs/lib/Fontmap.TeXLive
index 85b3d640dd4..3dc7fe38cef 100644
--- a/Master/tlpkg/tlgs/lib/Fontmap.TeXLive
+++ b/Master/tlpkg/tlgs/lib/Fontmap.TeXLive
@@ -1,6 +1,8 @@
%% Fontmap.TeXLive
+%% $Id$
-This file is part of TeXLive. Public domain.
+%% This file is part of TeXLive.
+%% You may freely use, modify and/or distribute this file.
%% Bitstream Charter
diff --git a/Master/tlpkg/tlgs/lib/Fontmap.Ult b/Master/tlpkg/tlgs/lib/Fontmap.Ult
new file mode 100644
index 00000000000..ffe425349c6
--- /dev/null
+++ b/Master/tlpkg/tlgs/lib/Fontmap.Ult
@@ -0,0 +1,146 @@
+% Copyright (C) 1990, 1995, 1999 Aladdin Enterprises. All rights reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% For more information about licensing, please refer to
+% http://www.ghostscript.com/licensing/. For information on
+% commercial licensing, go to http://www.artifex.com/licensing/ or
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
+% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
+
+% $Id: Fontmap.Ult 6300 2005-12-28 19:56:24Z giles $
+% Fontmap.Ult is derived from the standard Fontmap file distributed with
+% ghostscript; for credits and sources see that file. The modifications here
+% are valid for ULTRIX 4.3, and consist of defining some fonts and font
+% aliases as the licensed fontfiles included in ULTRIX for use on ULTRIX
+% workstations, which give better quality than the free fontfiles available
+% for ghostscript. Under ULTRIX 4.3 the licensed fontfiles are found in
+%
+% /usr/lib/DPS/outline/decwin
+%
+% so that directory must either be built into ghostscript by redefining
+% GS_LIB_DEFAULT when ghostscript is compiled, or else by defining an
+% environmental variable GS_LIB_DEFAULT, which contains it as an element of
+% the path, when running ghostscript. For instance, under the KornShell
+%
+% GS_LIB_DEFAULT=/usr/gs:/usr/lib/DPS/outline/decwin:/usr/gs/fonts
+% export GS_LIB_DEFAULT
+%
+% Peter Kaiser (kaiser@acm.org) 27 January 1995
+% Updated by L. Peter Deutsch (ghost@aladdin.com) 5 January 1999
+% to include correct aliasing for the Bitstream Charter fonts
+
+/AvantGarde-Book (AvantGarde-Book) ;
+/AvantGarde-BookOblique (AvantGarde-BookOblique) ;
+/AvantGarde-Demi (AvantGarde-Demi) ;
+/AvantGarde-DemiOblique (AvantGarde-DemiOblique) ;
+/Courier (Courier) ;
+/Courier-Bold (Courier-Bold) ;
+/Courier-BoldOblique (Courier-BoldOblique) ;
+/Courier-Oblique (Courier-Oblique) ;
+/Helvetica (Helvetica) ;
+/Helvetica-Bold (Helvetica-Bold) ;
+/Helvetica-BoldOblique (Helvetica-BoldOblique) ;
+/Helvetica-Oblique (Helvetica-Oblique) ;
+/LubalinGraph-Book (LubalinGraph-Book) ;
+/LubalinGraph-BookOblique (LubalinGraph-BookOblique) ;
+/LubalinGraph-Demi (LubalinGraph-Demi) ;
+/LubalinGraph-DemiOblique (LubalinGraph-DemiOblique) ;
+/NewCenturySchlbk-Bold (NewCenturySchlbk-Bold) ;
+/NewCenturySchlbk-BoldItalic (NewCenturySchlbk-BoldItalic) ;
+/NewCenturySchlbk-Italic (NewCenturySchlbk-Italic) ;
+/NewCenturySchlbk-Roman (NewCenturySchlbk-Roman) ;
+/Souvenir-Demi (Souvenir-Demi) ;
+/Souvenir-DemiItalic (Souvenir-DemiItalic) ;
+/Souvenir-Light (Souvenir-Light) ;
+/Souvenir-LightItalic (Souvenir-LightItalic) ;
+/Symbol (Symbol) ;
+/Times-Bold (Times-Bold) ;
+/Times-BoldItalic (Times-BoldItalic) ;
+/Times-Italic (Times-Italic) ;
+/Times-Roman (Times-Roman) ;
+
+% Fonts distributed as part of ghostscript
+
+/Bookman-Demi (pbkd.gsf) ;
+/Bookman-DemiItalic (pbkdi.gsf) ;
+/Bookman-Light (pbkl.gsf) ;
+/Bookman-LightItalic (pbkli.gsf) ;
+/Calligraphic-Hiragana (fhirw.gsf) ;
+/Calligraphic-Katakana (fkarw.gsf) ;
+/CharterBT-Bold (bchb.pfa) ;
+/CharterBT-BoldItalic (bchbi.pfa) ;
+/CharterBT-Italic (bchri.pfa) ;
+/CharterBT-Roman (bchr.pfa) ;
+/Hershey-Gothic-English (hrger.pfa) ;
+/Hershey-Gothic-English-Bold (hrgerb.gsf) ;
+/Hershey-Gothic-English-Oblique (hrgero.gsf) ;
+/Hershey-Gothic-English-SemiBold (hrgerd.gsf) ;
+/Hershey-Gothic-German (hrgrr.pfa) ;
+/Hershey-Gothic-German-Bold (hrgrrb.gsf) ;
+/Hershey-Gothic-German-Oblique (hrgrro.gsf) ;
+/Hershey-Gothic-Italian (hritr.pfa) ;
+/Hershey-Gothic-Italian-Bold (hritrb.gsf) ;
+/Hershey-Gothic-Italian-Oblique (hritro.gsf) ;
+/Hershey-Greek-Complex (hrgkc.gsf) ;
+/Hershey-Greek-Simplex (hrgks.gsf) ;
+/Hershey-Plain (hrplr.gsf) ;
+/Hershey-Plain-Bold (hrplrb.gsf) ;
+/Hershey-Plain-Bold-Oblique (hrplrbo.gsf) ;
+/Hershey-Plain-Duplex (hrpld.pfa) ;
+/Hershey-Plain-Duplex-Bold (hrpldb.gsf) ;
+/Hershey-Plain-Duplex-Bold-Italic (hrpldbi.gsf) ;
+/Hershey-Plain-Duplex-Italic (hrpldi.pfa) ;
+/Hershey-Plain-Oblique (hrplro.gsf) ;
+/Hershey-Plain-Simplex (hrpls.gsf) ;
+/Hershey-Plain-Simplex-Bold (hrplsb.gsf) ;
+/Hershey-Plain-Simplex-Bold-Oblique (hrplsbo.gsf) ;
+/Hershey-Plain-Simplex-Oblique (hrplso.gsf) ;
+/Hershey-Plain-Triplex (hrplt.pfa) ;
+/Hershey-Plain-Triplex-Bold (hrpltb.gsf) ;
+/Hershey-Plain-Triplex-Bold-Italic (hrpltbi.gsf) ;
+/Hershey-Plain-Triplex-Italic (hrplti.pfa) ;
+/Hershey-Script-Complex (hrscc.pfa) ;
+/Hershey-Script-Complex-Bold (hrsccb.gsf) ;
+/Hershey-Script-Complex-Oblique (hrscco.gsf) ;
+/Hershey-Script-Simplex (hrscs.pfa) ;
+/Hershey-Script-Simplex-Bold (hrscsb.gsf) ;
+/Hershey-Script-Simplex-Oblique (hrscso.gsf) ;
+/Hershey-Symbol (hrsyr.gsf) ;
+/NimbusRomanNo9L-Regular (n021003l.gsf) ;
+/NimbusSansL-Regular (n019003l.gsf) ;
+/Palatino-Bold (pplb.gsf) ;
+/Palatino-BoldItalic (pplbi.gsf) ;
+/Palatino-Italic (pplri.gsf) ;
+/Palatino-Roman (pplr.gsf) ;
+/Shareware-Cyrillic-Italic (fcyri.gsf) ;
+/Shareware-Cyrillic-Regular (fcyr.gsf) ;
+/URWAntiquaT-RegularCondensed (u003043t.gsf) ;
+/URWGroteskT-Bold (u004006t.gsf) ;
+/Utopia-Bold (putb.pfa) ;
+/Utopia-BoldItalic (putbi.pfa) ;
+/Utopia-Italic (putri.pfa) ;
+/Utopia-Regular (putr.pfa) ;
+/ZapfChancery (zcr.gsf) ;
+/ZapfChancery-Bold (zcb.gsf) ;
+/ZapfChancery-Oblique (zcro.gsf) ;
+/ZapfDingbats (pzdr.gsf) ;
+
+% Font aliases
+
+/Charter-Roman /CharterBT-Roman ;
+/Charter-Italic /CharterBT-Italic ;
+/Charter-Bold /CharterBT-Bold ;
+/Charter-BoldItalic /CharterBT-BoldItalic ;
+/Courier-BoldItalic /Courier-BoldOblique ;
+/Courier-Italic /Courier-Oblique ;
+/Cyrillic /Shareware-Cyrillic-Regular ;
+/Cyrillic-Italic /Shareware-Cyrillic-Italic ;
+/Cyrillic-Regular /Shareware-Cyrillic-Regular ;
+/Helvetica-Narrow-Bold /Helvetica-Narrow ;
+/ZapfChancery-MediumItalic /ZapfChancery-Oblique ;
diff --git a/Master/tlpkg/tlgs/lib/Fontmap.VMS b/Master/tlpkg/tlgs/lib/Fontmap.VMS
new file mode 100644
index 00000000000..e58ce48c61d
--- /dev/null
+++ b/Master/tlpkg/tlgs/lib/Fontmap.VMS
@@ -0,0 +1,424 @@
+% fontmap.vms - Ghostscript fontmap for VAX/VMS systems with DECwindows/Motif.
+%
+% Mathog, 14-SEP-2000. Modified slightly from that provided by 6.01.
+% Changed to use Courier font from Decwindows instead of Ghostscript
+% The hershey fonts are listed, but they are not constructed during a regular
+% build of the package.
+%
+% **************************
+%Uses all the XDPS Outline fonts (Type 1 fonts) provided with Motif.
+%
+%XDPS on VAX/VMS does not have Bookman, Palatino and ZapfChancery fonts, so
+%we still have to use the Ghostscript fonts for those. Helvetica-Narrow is also
+%missing. But then you get the LubalinGraph and Souvenir fonts which are just
+%beautiful!
+
+/AvantGarde-Book
+ (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]AVANTGARDE-BOOK.XDPS$OUTLINE) ;
+/AvantGarde-BookOblique
+ (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]AVANTGARDE-BOOKOBLIQUE.XDPS$OUTLINE) ;
+/AvantGarde-Demi
+ (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]AVANTGARDE-DEMI.XDPS$OUTLINE) ;
+/AvantGarde-DemiOblique
+ (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]AVANTGARDE-DEMIOBLIQUE.XDPS$OUTLINE) ;
+/Courier-Bold
+ (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]COURIER-BOLD.XDPS$OUTLINE) ;
+/Courier-BoldOblique
+ (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]COURIER-BOLDOBLIQUE.XDPS$OUTLINE) ;
+/Courier-Oblique
+ (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]COURIER-OBLIQUE.XDPS$OUTLINE) ;
+/Courier
+ (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]COURIER.XDPS$OUTLINE) ;
+/Helvetica-Bold
+ (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]HELVETICA-BOLD.XDPS$OUTLINE) ;
+/Helvetica-BoldOblique
+ (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]HELVETICA-BOLDOBLIQUE.XDPS$OUTLINE) ;
+/Helvetica-Oblique
+ (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]HELVETICA-OBLIQUE.XDPS$OUTLINE) ;
+/Helvetica
+ (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]HELVETICA.XDPS$OUTLINE) ;
+/LubalinGraph-Book
+ (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]LUBALINGRAPH-BOOK.XDPS$OUTLINE) ;
+/LubalinGraph-BookOblique
+ (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]LUBALINGRAPH-BOOKOBLIQUE.XDPS$OUTLINE) ;
+/LubalinGraph-Demi
+ (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]LUBALINGRAPH-DEMI.XDPS$OUTLINE) ;
+/LubalinGraph-DemiOblique
+ (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]LUBALINGRAPH-DEMIOBLIQUE.XDPS$OUTLINE) ;
+/NewCenturySchlbk-Roman
+ (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]NEWCENTURYSCHLBK-ROMAN.XDPS$OUTLINE) ;
+/NewCenturySchlbk-Italic
+ (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]NEWCENTURYSCHLBK-ITALIC.XDPS$OUTLINE) ;
+/NewCenturySchlbk-Bold
+ (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]NEWCENTURYSCHLBK-BOLD.XDPS$OUTLINE) ;
+/NewCenturySchlbk-BoldItalic
+ (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]NEWCENTURYSCHLBK-BOLDITALIC.XDPS$OUTLINE) ;
+/Souvenir-Light
+ (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]SOUVENIR-LIGHT.XDPS$OUTLINE) ;
+/Souvenir-LightItalic
+ (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]SOUVENIR-LIGHTITALIC.XDPS$OUTLINE) ;
+/Souvenir-Demi
+ (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]SOUVENIR-DEMI.XDPS$OUTLINE) ;
+/Souvenir-DemiItalic
+ (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]SOUVENIR-DEMIITALIC.XDPS$OUTLINE) ;
+%If you want the Apple symbol (SIC!) then remove the comment (%)
+%in front of character 240 in the following file (he he he)
+/Symbol
+ (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]SYMBOL.XDPS$OUTLINE) ;
+/Times-Roman
+ (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]TIMES-ROMAN.XDPS$OUTLINE) ;
+/Times-Italic
+ (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]TIMES-ITALIC.XDPS$OUTLINE) ;
+/Times-Bold
+ (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]TIMES-BOLD.XDPS$OUTLINE) ;
+/Times-BoldItalic
+ (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]TIMES-BOLDITALIC.XDPS$OUTLINE) ;
+
+%
+%
+% Fonts contributed by:
+% URW++ Design and Development Incorporated
+% Poppenbuetteler Bogen 29A
+% D-22399 Hamburg
+% Germany
+% tel. +49 (40) 60 60 50
+% fax +49 (40) 60 60 51 11
+% http://www.urwpp.de
+% for distribution under the GNU License and Aladdin Free Public License.
+% See the notice at the head of this Fontmap file for licensing terms.
+% Each of these fonts is individually covered by the license:
+% for licensing purposes, they are not "part of" any larger entity.
+% The following notice applies to these fonts:
+%
+% Copyright URW Software, Copyright 1994 by URW.
+%
+
+% Actual fonts
+
+/URWBookmanL-DemiBold (b018015l.pfb) ;
+/URWBookmanL-DemiBoldItal (b018035l.pfb) ;
+/URWBookmanL-Ligh (b018012l.pfb) ;
+/URWBookmanL-LighItal (b018032l.pfb) ;
+
+/NimbusMonL-Regu (n022003l.pfb) ;
+/NimbusMonL-ReguObli (n022023l.pfb) ;
+/NimbusMonL-Bold (n022004l.pfb) ;
+/NimbusMonL-BoldObli (n022024l.pfb) ;
+
+/URWGothicL-Book (a010013l.pfb) ;
+/URWGothicL-BookObli (a010033l.pfb) ;
+/URWGothicL-Demi (a010015l.pfb) ;
+/URWGothicL-DemiObli (a010035l.pfb) ;
+
+/NimbusSanL-Regu (n019003l.pfb) ;
+/NimbusSanL-ReguItal (n019023l.pfb) ;
+/NimbusSanL-Bold (n019004l.pfb) ;
+/NimbusSanL-BoldItal (n019024l.pfb) ;
+
+/NimbusSanL-ReguCond (n019043l.pfb) ;
+/NimbusSanL-ReguCondItal (n019063l.pfb) ;
+/NimbusSanL-BoldCond (n019044l.pfb) ;
+/NimbusSanL-BoldCondItal (n019064l.pfb) ;
+
+/URWPalladioL-Roma (p052003l.pfb) ;
+/URWPalladioL-Ital (p052023l.pfb) ;
+/URWPalladioL-Bold (p052004l.pfb) ;
+/URWPalladioL-BoldItal (p052024l.pfb) ;
+
+/CenturySchL-Roma (c059013l.pfb) ;
+/CenturySchL-Ital (c059033l.pfb) ;
+/CenturySchL-Bold (c059016l.pfb) ;
+/CenturySchL-BoldItal (c059036l.pfb) ;
+
+/NimbusRomNo9L-Regu (n021003l.pfb) ;
+/NimbusRomNo9L-ReguItal (n021023l.pfb) ;
+/NimbusRomNo9L-Medi (n021004l.pfb) ;
+/NimbusRomNo9L-MediItal (n021024l.pfb) ;
+
+/StandardSymL (s050000l.pfb) ;
+
+/URWChanceryL-MediItal (z003034l.pfb) ;
+
+/Dingbats (d050000l.pfb) ;
+
+
+% Aliases
+
+/Bookman-Demi /URWBookmanL-DemiBold ;
+/Bookman-DemiItalic /URWBookmanL-DemiBoldItal ;
+/Bookman-Light /URWBookmanL-Ligh ;
+/Bookman-LightItalic /URWBookmanL-LighItal ;
+
+%/Courier /NimbusMonL-Regu ;
+%/Courier-Oblique /NimbusMonL-ReguObli ;
+%/Courier-Bold /NimbusMonL-Bold ;
+%/Courier-BoldOblique /NimbusMonL-BoldObli ;
+
+%/AvantGarde-Book /URWGothicL-Book ;
+%/AvantGarde-BookOblique /URWGothicL-BookObli ;
+%/AvantGarde-Demi /URWGothicL-Demi ;
+%/AvantGarde-DemiOblique /URWGothicL-DemiObli ;
+
+%/Helvetica /NimbusSanL-Regu ;
+%/Helvetica-Oblique /NimbusSanL-ReguItal ;
+%/Helvetica-Bold /NimbusSanL-Bold ;
+%/Helvetica-BoldOblique /NimbusSanL-BoldItal ;
+
+/Helvetica-Narrow /NimbusSanL-ReguCond ;
+/Helvetica-Narrow-Oblique /NimbusSanL-ReguCondItal ;
+/Helvetica-Narrow-Bold /NimbusSanL-BoldCond ;
+/Helvetica-Narrow-BoldOblique /NimbusSanL-BoldCondItal ;
+
+/Palatino-Roman /URWPalladioL-Roma ;
+/Palatino-Italic /URWPalladioL-Ital ;
+/Palatino-Bold /URWPalladioL-Bold ;
+/Palatino-BoldItalic /URWPalladioL-BoldItal ;
+
+%/NewCenturySchlbk-Roman /CenturySchL-Roma ;
+%/NewCenturySchlbk-Italic /CenturySchL-Ital ;
+%/NewCenturySchlbk-Bold /CenturySchL-Bold ;
+%/NewCenturySchlbk-BoldItalic /CenturySchL-BoldItal ;
+
+%/Times-Roman /NimbusRomNo9L-Regu ;
+%/Times-Italic /NimbusRomNo9L-ReguItal ;
+%/Times-Bold /NimbusRomNo9L-Medi ;
+%/Times-BoldItalic /NimbusRomNo9L-MediItal ;
+
+%/Symbol /StandardSymL ;
+
+/ZapfChancery-MediumItalic /URWChanceryL-MediItal ;
+
+/ZapfDingbats /Dingbats ;
+
+
+%
+%
+% Type 1 fonts contributed to the X11R5 distribution.
+%
+
+% The following notice accompanied the Charter fonts.
+%
+% (c) Copyright 1989-1992, Bitstream Inc., Cambridge, MA.
+%
+% You are hereby granted permission under all Bitstream propriety rights
+% to use, copy, modify, sublicense, sell, and redistribute the 4 Bitstream
+% Charter (r) Type 1 outline fonts and the 4 Courier Type 1 outline fonts
+% for any purpose and without restriction; provided, that this notice is
+% left intact on all copies of such fonts and that Bitstream's trademark
+% is acknowledged as shown below on all unmodified copies of the 4 Charter
+% Type 1 fonts.
+%
+% BITSTREAM CHARTER is a registered trademark of Bitstream Inc.
+/CharterBT-Roman (bchr.pfa) ;
+/CharterBT-Italic (bchri.pfa) ;
+/CharterBT-Bold (bchb.pfa) ;
+/CharterBT-BoldItalic (bchbi.pfa) ;
+%Charter to CharterBT aliasing
+/Charter-Roman /CharterBT-Roman ;
+/Charter-Italic /CharterBT-Italic ;
+/Charter-Bold /CharterBT-Bold ;
+/Charter-BoldItalic /CharterBT-BoldItalic ;
+
+% IBM Courier - Copyright (c) IBM Corporation 1990, 1991
+%/Courier (ncrr.pfa) ;
+%/Courier-Italic (ncrri.pfa) ;
+%/Courier-Bold (ncrb.pfa) ;
+%/Courier-BoldItalic (ncrbi.pfa) ;
+%Oblique to Italic aliasing
+%/Courier-Oblique /Courier-Italic ;
+%/Courier-BoldOblique /Courier-BoldItalic ;
+/Courier-Italic /Courier-Oblique ;
+/Courier-BoldItalic /Courier-BoldOblique ;
+
+% The following notice accompanied the Utopia font:
+%
+% Permission to use, reproduce, display and distribute the listed
+% typefaces is hereby granted, provided that the Adobe Copyright notice
+% appears in all whole and partial copies of the software and that the
+% following trademark symbol and attribution appear in all unmodified
+% copies of the software:
+%
+% Copyright (c) 1989 Adobe Systems Incorporated
+% Utopia (R)
+% Utopia is a registered trademark of Adobe Systems Incorporated
+%
+% The Adobe typefaces (Type 1 font program, bitmaps and Adobe Font
+% Metric files) donated are:
+%
+% Utopia Regular
+% Utopia Italic
+% Utopia Bold
+% Utopia Bold Italic
+
+/Utopia-Regular (putr.gsf) ;
+/Utopia-Italic (putri.gsf) ;
+/Utopia-Bold (putb.gsf) ;
+/Utopia-BoldItalic (putbi.gsf) ;
+
+%
+%
+% Fonts contributed by URW GmbH for distribution under the GNU License.
+% The following notice accompanied these fonts:
+%
+% U004006T URW Grotesk 2031 Bold PostScript Type 1 Font Program
+% U003043T URW Antiqua 2051 Regular Condensed PostScript Type 1 Font Program
+%
+% Copyright (c) 1992 URW GmbH, Hamburg, Germany
+%
+% This program is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or
+% (at your option) later version.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; wihtout even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+% See the GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this program; if not, write to the Free Software
+% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 U.S.A.
+%
+% Address:
+% URW GmbH
+% PC Support
+% Harksheider Strasse 102
+% 2000 Hamburg 65
+% Germany
+% Phone: +49 40 60 60 50 (Reception)
+% Phone: +49 40 60 60 52 30 (PC Support)
+% Fax : +49 40 60 60 52 52
+%
+
+/URWAntiquaT-RegularCondensed (u003043t.gsf) ;
+/URWGroteskT-Bold (u004006t.gsf) ;
+
+%
+%
+% Shareware Kana fonts. These are subject to the following notice:
+%
+% These copyrighted fonts were developed by Kevin Hartig. Permission is
+% granted to freely distribute them in entirety along with this statement.
+% This is shareware. If you decide to use these fonts please contribute
+% $10 US to help support further freeware and shareware software development.
+% Questions and comments may be sent to:
+%
+% hartig@fsl.noaa.gov
+% khartig@nyx.cs.du.edu
+%
+% Kevin Hartig
+% 1126 Collyer Street
+% Longmont, CO 80501 USA
+%
+% copyright 1993.
+
+% Hiragana and Katakana fonts. The character names are inappropriate,
+% and the encoding is probably not related to any known standard.
+
+/Calligraphic-Hiragana (fhirw.gsf) ;
+/Calligraphic-Katakana (fkarw.gsf) ;
+
+%
+%
+% Public-domain fonts. These have no copyright, and are of unknown quality.
+
+% Cyrillic fonts. The character names are inappropriate,
+% and the encoding is probably not related to any known standard.
+
+/Shareware-Cyrillic-Regular (fcyr.gsf) ;
+/Shareware-Cyrillic-Italic (fcyri.gsf) ;
+
+% Aliases
+/Cyrillic /Cyrillic-Regular ;
+/Cyrillic-Regular /Shareware-Cyrillic-Regular ;
+/Cyrillic-Italic /Shareware-Cyrillic-Italic ;
+
+%
+%
+% Fonts converted from Hershey outlines. These are constructed and
+% maintained manually. These are also in the public domain.
+%
+% The suggested UniqueID's and filenames are constructed differently for
+% these than for the ones above, because of the strange way that the Hershey
+% fonts were constructed. The scheme for these looks like:
+%
+% 42TTXY0
+%
+% TT = typeface, X = ``class'', Y = variation
+%
+% The typeface names and numbers are listed in fonts.mak.
+%
+% class:
+% 0 = normal = r
+% 1 = simplex = s
+% 2 = complex = c
+% 3 = triplex = t
+% 4 = duplex = d
+%
+% variation:
+% 0 = normal (omitted)
+% 1 = oblique = o
+% 2 = italic = i
+% 3 = bold = b
+% 4 = bold oblique = bo
+% 5 = bold italic = bi
+%
+
+% Fonts created by Thomas Wolff <wolff@inf.fu-berlin.de>, by adding
+% accents, accented characters, and various other non-alphabetics
+% to the original Hershey fonts. These are "freeware", not to be sold.
+
+/Hershey-Gothic-English (hrger.pfa) ; % 5066533
+/Hershey-Gothic-German (hrgrr.pfa) ;
+/Hershey-Gothic-Italian (hritr.pfa) ;
+
+/Hershey-Plain-Duplex (hrpld.pfa) ;
+/Hershey-Plain-Duplex-Italic (hrpldi.pfa) ;
+/Hershey-Plain-Triplex (hrplt.pfa) ;
+/Hershey-Plain-Triplex-Italic (hrplti.pfa) ;
+
+/Hershey-Script-Complex (hrscc.pfa) ;
+/Hershey-Script-Simplex (hrscs.pfa) ; % 5066541
+
+% Fonts created algorithmically from the above.
+
+/Hershey-Gothic-English-Bold (hrgerb.gsf) ; % 5066542
+/Hershey-Gothic-English-Oblique (hrgero.gsf) ;
+/Hershey-Gothic-English-SemiBold (hrgerd.gsf) ;
+/Hershey-Gothic-German-Bold (hrgrrb.gsf) ;
+/Hershey-Gothic-German-Oblique (hrgrro.gsf) ;
+/Hershey-Gothic-Italian-Bold (hritrb.gsf) ;
+/Hershey-Gothic-Italian-Oblique (hritro.gsf) ;
+
+/Hershey-Plain-Duplex-Bold (hrpldb.gsf) ;
+/Hershey-Plain-Duplex-Bold-Italic (hrpldbi.gsf) ;
+/Hershey-Plain-Triplex-Bold (hrpltb.gsf) ;
+/Hershey-Plain-Triplex-Bold-Italic (hrpltbi.gsf) ;
+
+/Hershey-Script-Complex-Bold (hrsccb.gsf) ;
+/Hershey-Script-Complex-Oblique (hrscco.gsf) ;
+/Hershey-Script-Simplex-Bold (hrscsb.gsf) ;
+/Hershey-Script-Simplex-Oblique (hrscso.gsf) ; % 5066556
+
+% Fonts consisting only of characters from the original Hershey
+% distribution. These are Type 3 fonts.
+
+/Hershey-Greek-Complex (hrgkc.gsf) ; % 5066557
+/Hershey-Greek-Simplex (hrgks.gsf) ;
+
+/Hershey-Plain (hrplr.gsf) ;
+/Hershey-Plain-Simplex (hrpls.gsf) ; % 5066560
+
+% Fonts created algorithmically from the above.
+
+/Hershey-Plain-Bold (hrplrb.gsf) ; % 5066561
+/Hershey-Plain-Bold-Oblique (hrplrbo.gsf) ;
+/Hershey-Plain-Oblique (hrplro.gsf) ;
+/Hershey-Plain-Simplex-Bold (hrplsb.gsf) ;
+/Hershey-Plain-Simplex-Bold-Oblique (hrplsbo.gsf) ;
+/Hershey-Plain-Simplex-Oblique (hrplso.gsf) ; % 5066566
+
+% This font, and only this font among the Hershey fonts, uses
+% the SymbolEncoding.
+
+/Hershey-Symbol (hrsyr.gsf) ; % 5066567
diff --git a/Master/tlpkg/tlgs/lib/Info-macos.plist b/Master/tlpkg/tlgs/lib/Info-macos.plist
new file mode 100644
index 00000000000..9ece6edc4fa
--- /dev/null
+++ b/Master/tlpkg/tlgs/lib/Info-macos.plist
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
+<plist version="0.9">
+<dict>
+ <key>CFBundleIdentifier</key>
+ <string>com.ghostscript.Ghostscript</string>
+ <key>CFBundleName</key>
+ <string>Ghostscript</string>
+ <key>CFBundleShortVersionString</key>
+ <string>703</string>
+ <key>NSExecutable</key>
+ <string>Ghostscript</string>
+</dict>
+</plist>
diff --git a/Master/tlpkg/tlgs/lib/PDFA_def.ps b/Master/tlpkg/tlgs/lib/PDFA_def.ps
index b3c405f3bec..a0ba5f0e4d8 100644
--- a/Master/tlpkg/tlgs/lib/PDFA_def.ps
+++ b/Master/tlpkg/tlgs/lib/PDFA_def.ps
@@ -1,5 +1,5 @@
%!
-% $Id: PDFA_def.ps 6892 2006-07-05 14:03:49Z leonardo $
+% $Id: PDFA_def.ps 8284 2007-10-10 17:40:38Z giles $
% This is a sample prefix file for creating a PDF/A document.
% Feel free to modify entries marked with "Customize".
diff --git a/Master/tlpkg/tlgs/lib/PDFX_def.ps b/Master/tlpkg/tlgs/lib/PDFX_def.ps
index 0d9602b3374..615b66c9732 100644
--- a/Master/tlpkg/tlgs/lib/PDFX_def.ps
+++ b/Master/tlpkg/tlgs/lib/PDFX_def.ps
@@ -1,5 +1,5 @@
%!
-% $Id: PDFX_def.ps 6460 2006-01-16 14:06:57Z leonardo $
+% $Id: PDFX_def.ps 8284 2007-10-10 17:40:38Z giles $
% This is a sample prefix file for creating a PDF/X-3 document.
% Feel free to modify entries marked with "Customize".
diff --git a/Master/tlpkg/tlgs/lib/afmdiff.awk b/Master/tlpkg/tlgs/lib/afmdiff.awk
new file mode 100755
index 00000000000..e9c237b4bc6
--- /dev/null
+++ b/Master/tlpkg/tlgs/lib/afmdiff.awk
@@ -0,0 +1,151 @@
+#!/usr/bin/awk -f
+###=====================================================================
+### Read two Adobe Font Metric files, and compute tables of the
+### differences in character repertoire, declared widths (WX), and
+### bounding boxes.
+###
+### Usage:
+### awk -f afmdiff.awk file1.afm file2.afm
+###
+### Author:
+### Nelson H. F. Beebe
+### Center for Scientific Computing
+### University of Utah
+### Department of Mathematics, 322 INSCC
+### 155 S 1400 E RM 233
+### Salt Lake City, UT 84112-0090
+### USA
+### Email: beebe@math.utah.edu, beebe@acm.org, beebe@computer.org,
+### beebe@ieee.org (Internet)
+### WWW URL: http://www.math.utah.edu/~beebe
+### Telephone: +1 801 581 5254
+### FAX: +1 801 585 1640, +1 801 581 4148
+###
+########################################################################
+########################################################################
+########################################################################
+### ###
+### awkdiff.awk: compare two Adobe Font Metric files ###
+### ###
+### Copyright (C) 2000 Nelson H. F. Beebe ###
+### ###
+### This program is covered by the GNU General Public License (GPL), ###
+### version 2 or later, available as the file COPYING in the program ###
+### source distribution, and on the Internet at ###
+### ###
+### ftp://ftp.gnu.org/gnu/GPL ###
+### ###
+### http://www.gnu.org/copyleft/gpl.html ###
+### ###
+### This program is free software; you can redistribute it and/or ###
+### modify it under the terms of the GNU General Public License as ###
+### published by the Free Software Foundation; either version 2 of ###
+### the License, or (at your option) any later version. ###
+### ###
+### This program is distributed in the hope that it will be useful, ###
+### but WITHOUT ANY WARRANTY; without even the implied warranty of ###
+### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ###
+### GNU General Public License for more details. ###
+### ###
+### You should have received a copy of the GNU General Public ###
+### License along with this program; if not, write to the Free ###
+### Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, ###
+### MA 02111-1307 USA ###
+### ###
+### This program may also be distributed as part of AFPL ###
+### Ghostscript, under the terms of the Aladdin Free Public License ###
+### (the "License"). ###
+### ###
+### Every copy of AFPL Ghostscript must include a copy of the ###
+### License, normally in a plain ASCII text file named PUBLIC. The ###
+### License grants you the right to copy, modify and redistribute ###
+### AFPL Ghostscript, but only under certain conditions ###
+### described in the License. Among other things, the License ###
+### requires that the copyright notice and this notice be preserved ###
+### on all copies. ###
+### ###
+########################################################################
+########################################################################
+########################################################################
+#
+# [29-Apr-2000]
+#=======================================================================
+
+/^FontName/ { FontName[++NFontName] = $2 }
+
+
+/^C / {
+ if (NFontName == 1)
+ CharName1[$8]++
+ if (NFontName == 2)
+ CharName2[$8]++
+ }
+
+
+/^C / {
+ name = $8
+ if (name in WX)
+ {
+ if (WX[name] != $5)
+ WXDIFF[name] = WX[name] - $5
+ }
+ else
+ WX[name] = $5
+ }
+
+
+/^C / {
+ name = $8
+ bx = $13 - $11
+ if (name in BX)
+ {
+ if (BX[name] != bx)
+ BXDIFF[name] = BX[name] - bx
+ }
+ else
+ BX[name] = bx
+ }
+
+
+/^C / {
+ name = $8
+ by = $14 - $12
+ if (name in BY)
+ {
+ if (BY[name] != by)
+ BYDIFF[name] = BY[name] - by
+ }
+ else
+ BY[name] = by
+ }
+
+
+END {
+ Sortpipe = "sort -f | pr -3 -w80 -l1 -t"
+ print "Comparison of AFM metrics in files:", ARGV[1], ARGV[2]
+ print "Font names:", FontName[1], FontName[2]
+ show_name_diffs(FontName[2],CharName2, FontName[1],CharName1)
+ show_name_diffs(FontName[1],CharName1, FontName[2],CharName2)
+ show_num_diffs("WX width differences", WXDIFF)
+ show_num_diffs("Bounding box width differences", BXDIFF)
+ show_num_diffs("Bounding box height differences",BYDIFF)
+ }
+
+function show_name_diffs(font1,array1,font2,array2, name)
+{
+ print "\nChars from", font2, "missing from", font1 ":"
+ for (name in array2)
+ {
+ if (!(name in array1))
+ printf("%s\n", name) | Sortpipe
+ }
+ close(Sortpipe)
+}
+
+function show_num_diffs(title,array, name)
+{
+ printf("\n%s:\n", title)
+ for (name in array)
+ printf("%-15s\t%4d\n", name, array[name]) | Sortpipe
+ close(Sortpipe)
+}
diff --git a/Master/tlpkg/tlgs/lib/bj8.rpd b/Master/tlpkg/tlgs/lib/bj8.rpd
new file mode 100644
index 00000000000..fce6c2d4b7d
--- /dev/null
+++ b/Master/tlpkg/tlgs/lib/bj8.rpd
@@ -0,0 +1,17 @@
+
+StartEntry: U_CanonBJC8200
+GSDriver: uniprint
+Description: {Canon BJC-8200 (UP)}
+About: { \
+ Canon BJC-8200 uniprint driver settings.\
+ }
+Resolution: {NA} {NA} {}
+ BitsPerPixel: {bj8pp12f} {1200x1200DpI, photo paper pro, color, rendered}
+ BitsPerPixel: {bj8hg12f} {1200x1200DpI, high gloss photo film, color, rendered}
+ BitsPerPixel: {bj8gc12f} {1200x1200DpI, glossy photo cards, color, rendered}
+ BitsPerPixel: {bj8oh06n} {600x600DpI, transparencies, color, rendered}
+ BitsPerPixel: {bj8ts06n} {600x600DpI, t-shirt transfer, color, rendered}
+ BitsPerPixel: {bj8pa06n} {600x600DpI, plain paper, color, rendered}
+
+EndEntry
+#
diff --git a/Master/tlpkg/tlgs/lib/docie.ps b/Master/tlpkg/tlgs/lib/docie.ps
index 20dd6a17776..31b4df74ec0 100644
--- a/Master/tlpkg/tlgs/lib/docie.ps
+++ b/Master/tlpkg/tlgs/lib/docie.ps
@@ -13,7 +13,7 @@
% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
-% $Id: docie.ps 6300 2005-12-28 19:56:24Z giles $
+% $Id: docie.ps 8411 2007-11-28 18:39:59Z ray $
% docie.ps
% Emulate CIE algorithms in PostScript.
@@ -101,7 +101,7 @@ DOCIEDEBUG { (After MatrixLMN Decode: ) print3 } if
} bind def
/csciea % <csdict> <a> csciea <csdict> <x> <y> <z>
- { 1 index /RangeA .knownget not { r1default } if restrict
+ { 1 index /RangeA .knownget not { r1default aload pop } if restrict
DOCIEDEBUG { (After RangeA Decode: ) print1 } if
1 index /DecodeA .knownget { exec } if
DOCIEDEBUG { (After DecodeA Decode: ) print1 } if
@@ -210,7 +210,9 @@ DOCIEDEBUG { (After RangeABC Encode: ) print3 } if
/mapdict mark
/CIEBasedA { 1 get exch csciea currentcolorrendering 4 1 roll crmap } bind
+ /DeviceGray { pop /DefaultGray /ColorSpace findresource 1 get exch csciea currentcolorrendering 4 1 roll crmap } bind
/CIEBasedABC { 1 get 4 1 roll cscieabc currentcolorrendering 4 1 roll crmap } bind
+ /DeviceRGB { pop /DefaultRGB /ColorSpace findresource 1 get 4 1 roll cscieabc currentcolorrendering 4 1 roll crmap } bind
.dicttomark def
/mapcie % <a> mapcie <v1> ...
% <a> <b> <c> mapcie <v1> ...
diff --git a/Master/tlpkg/tlgs/lib/dumphint b/Master/tlpkg/tlgs/lib/dumphint
deleted file mode 100644
index 88e437643d8..00000000000
--- a/Master/tlpkg/tlgs/lib/dumphint
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/sh
-# $Id: dumphint 8107 2007-07-05 19:04:29Z till $
-# Linearized PDF hint formatting utility.
-
-# This definition is changed on install to match the
-# executable name set in the makefile
-GS_EXECUTABLE=gs
-gs="`dirname $0`/$GS_EXECUTABLE"
-if test ! -x "$gs"; then
- gs="$GS_EXECUTABLE"
-fi
-GS_EXECUTABLE="$gs"
-
-
-OPTIONS="-dSAFER -dDELAYSAFER"
-while true
-do
- case "$1" in
- -*) OPTIONS="$OPTIONS $1" ;;
- *) break ;;
- esac
- shift
-done
-
-if [ $# -ne 1 ]; then
- echo "Usage: `basename $0` input.pdf" 1>&2
- exit 1
-fi
-
-exec "$GS_EXECUTABLE" -q -dNODISPLAY $OPTIONS -- dumphint.ps "$1"
diff --git a/Master/tlpkg/tlgs/lib/dumphint.ps b/Master/tlpkg/tlgs/lib/dumphint.ps
index 34d6be8b4d1..c5e1e2f81f4 100644
--- a/Master/tlpkg/tlgs/lib/dumphint.ps
+++ b/Master/tlpkg/tlgs/lib/dumphint.ps
@@ -13,7 +13,7 @@
% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
-% $Id: dumphint.ps 6300 2005-12-28 19:56:24Z giles $
+% $Id: dumphint.ps 8284 2007-10-10 17:40:38Z giles $
% Linearized PDF hint formatting utility.
%
diff --git a/Master/tlpkg/tlgs/lib/fixmswrd.pl b/Master/tlpkg/tlgs/lib/fixmswrd.pl
index 521aaeabd4b..521aaeabd4b 100644..100755
--- a/Master/tlpkg/tlgs/lib/fixmswrd.pl
+++ b/Master/tlpkg/tlgs/lib/fixmswrd.pl
diff --git a/Master/tlpkg/tlgs/lib/font2c.ps b/Master/tlpkg/tlgs/lib/font2c.ps
new file mode 100644
index 00000000000..c5234d72b02
--- /dev/null
+++ b/Master/tlpkg/tlgs/lib/font2c.ps
@@ -0,0 +1,675 @@
+% Copyright (C) 1992, 1993, 1994, 1995, 1999 Aladdin Enterprises. All rights reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% For more information about licensing, please refer to
+% http://www.ghostscript.com/licensing/. For information on
+% commercial licensing, go to http://www.artifex.com/licensing/ or
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
+% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
+
+% $Id: font2c.ps 6300 2005-12-28 19:56:24Z giles $
+% font2c.ps
+% Write out a PostScript Type 0 or Type 1 font as C code
+% that can be linked with the interpreter.
+% This even works on protected fonts, if you use the -dWRITESYSTEMDICT
+% switch in the command line. The code is reentrant and location-
+% independent and has no external references, so it can be put into
+% a sharable library even on VMS.
+
+/font2cdict 100 dict dup begin
+
+% Define the maximum string length that all compilers will accept.
+% This must be approximately
+% min(max line length, max string literal length) / 4 - 5.
+
+/max_wcs 50 def
+
+% Define a temporary file for writing out procedures.
+/wtempname (_.tmp) def
+
+% ------ Protection utilities ------ %
+
+% Protection values are represented by a mask:
+/a_noaccess 0 def
+/a_executeonly 1 def
+/a_readonly 3 def
+/a_all 7 def
+/prot_names
+ [ (0) (a_execute) null (a_readonly) null null null (a_all)
+ ] def
+/prot_opers
+ [ {noaccess} {executeonly} {} {readonly} {} {} {} {}
+ ] def
+
+% Get the protection of an object.
+ /getpa
+ { dup wcheck
+ { pop a_all }
+ { % Check for executeonly or noaccess objects in protected.
+ dup protected exch known
+ { protected exch get }
+ { pop a_readonly }
+ ifelse
+ }
+ ifelse
+ } bind def
+
+% Get the protection appropriate for (all the) values in a dictionary.
+ /getva
+ { a_noaccess exch
+ { exch pop
+ dup type dup /stringtype eq 1 index /arraytype eq or
+ exch /packedarraytype eq or
+ { getpa a_readonly and or }
+ { pop pop a_all exit }
+ ifelse
+ }
+ forall
+ } bind def
+
+% Keep track of executeonly and noaccess objects,
+% but don't let the protection actually take effect.
+.currentglobal
+false .setglobal % so protected can reference local objs
+/protected % do first so // will work
+ systemdict wcheck { 1500 dict } { 1 dict } ifelse
+def
+systemdict wcheck not
+ { (Warning: you will not be able to convert protected fonts.\n) print
+ (If you need to convert a protected font, please\n) print
+ (restart the program and specify the -dWRITESYSTEMDICT switch.\n) print
+ flush
+ (%end) .skipeof
+ }
+if
+userdict begin
+ /executeonly
+ { dup //protected exch //a_executeonly put readonly
+ } bind def
+ /noaccess
+ { dup //protected exch //a_noaccess put readonly
+ } bind def
+end
+true .setglobal
+systemdict begin
+ /executeonly
+ { userdict /executeonly get exec
+ } bind odef
+ /noaccess
+ { userdict /noaccess get exec
+ } bind odef
+end
+%end
+.setglobal
+
+% ------ Output utilities ------ %
+
+% By convention, the output file is named cfile.
+
+% Define some utilities for writing the output file.
+ /wtstring 100 string def
+ /wb {cfile exch write} bind def
+ /ws {cfile exch writestring} bind def
+ /wl {ws (\n) ws} bind def
+ /wt {wtstring cvs ws} bind def
+
+% Write a C string. Some compilers have unreasonably small limits on
+% the length of a string literal or the length of a line, so every place
+% that uses wcs must either know that the string is short,
+% or be prepared to use wcca instead.
+ /wbx
+ { 8#1000 add 8 (0000) cvrs dup 0 (\\) 0 get put ws
+ } bind def
+ /wcst
+ [
+ 32 { /wbx load } repeat
+ 95 { /wb load } repeat
+ 129 { /wbx load } repeat
+ ] def
+ ("\\) { wcst exch { (\\) ws wb } put } forall
+ /wcs
+ { (") ws { dup wcst exch get exec } forall (") ws
+ } bind def
+ /can_wcs % Test if can use wcs
+ { length max_wcs le
+ } bind def
+ /wncs % name -> C string
+ { wtstring cvs wcs
+ } bind def
+% Write a C string as an array of character values.
+% We only need this because of line and literal length limitations.
+ /wca % <string> <prefix> <suffix> wca -
+ { 0 4 -2 roll exch
+ { % Stack: suffix n prefix char
+ exch ws
+ exch dup 19 ge { () wl pop 0 } if 1 add
+ exch dup 32 ge 1 index 126 le and
+ { 39 wb dup 39 eq 1 index 92 eq or { 92 wb } if wb 39 wb }
+ { wt }
+ ifelse (,)
+ } forall
+ pop pop ws
+ } bind def
+ /wcca % <string> wcca -
+ { ({\n) (}) wca
+ } bind def
+
+% Write object protection attributes. Note that dictionaries and arrays are
+% the only objects that can be writable.
+ /wpa
+ { dup xcheck { (a_executable|) ws } if
+ dup type dup /dicttype eq exch /arraytype eq or
+ { getpa }
+ { getpa a_readonly and }
+ ifelse prot_names exch get ws
+ } bind def
+ /wva
+ { getva prot_names exch get ws
+ } bind def
+
+% ------ Object writing ------ %
+
+ /wnstring 128 string def
+
+% Convert an object to a string to be scanned at a later time.
+ /cvos % <obj> cvos <string>
+ { % We'd like to use == and write directly to a string,
+ % but we can't do the former because of operators,
+ % and we can't do the latter because we can't predict
+ % how long the string would have to be....
+ wtempname (w) file dup 3 -1 roll wproc closefile
+ wtempname status pop pop pop exch pop string
+ wtempname (r) file dup 3 -1 roll readstring pop exch closefile
+ } bind def
+
+% Write a string/name or null as an element of a string/name/null array.
+% Convert any other kind of value to a token to be read back in.
+ /wsn
+ { dup null eq
+ { pop (\t255,255,) wl
+ }
+ { dup type /nametype eq { wnstring cvs } if
+ dup type /stringtype ne { cvos (255,) ws } if
+ dup length 256 idiv wt (,) ws
+ dup length 256 mod wt
+ (,) (,\n) wca
+ }
+ ifelse
+ } bind def
+% Write a packed string/name/null array.
+ /wsna % <name> <(string|name|null)*> wsna -
+ { (\tstatic const unsigned char ) ws exch wt ([] = {) wl
+ { wsn } forall
+ (\t0\n};) wl
+ } bind def
+
+% Write a number or an array of numbers, as refs.
+/isnumber
+ { type dup /integertype eq exch /realtype eq or
+ } bind def
+/wnums
+ { dup isnumber
+ { (real_v\() ws wt (\),) ws }
+ { { wnums } forall }
+ ifelse
+ } bind def
+
+% Test whether a procedure or unusual array can be written (printed).
+/iswx 4 dict dup begin
+ /arraytype { { iswproc } isall } def
+ /nametype { pop true } def
+ /operatortype { pop true } def % assume it has been bound in
+ /packedarraytype /arraytype load def
+end def
+/iswnx 6 dict dup begin
+ /arraytype { { iswproc } isall } def
+ /integertype { pop true } def
+ /nametype { pop true } def
+ /realtype { pop true } def
+ /stringtype { pop true } def
+ /packedarraytype /arraytype load def
+end def
+/iswproc % <obj> iswproc <bool>
+ { dup xcheck { iswx } { iswnx } ifelse
+ 1 index type .knownget { exec } { pop false } ifelse
+ } bind def
+
+% Write a printable procedure (one for which iswproc returns true).
+/wproca 3 dict dup begin
+ /arraytype
+ { 1 index ({) writestring
+ { 1 index ( ) writestring 1 index exch wproc } forall
+ (}) writestring
+ } bind def
+ /packedarraytype /arraytype load def
+ /operatortype { .writecvs } bind def % assume binding would work
+end def
+/wproc % <file> <proc> wproc -
+ { dup type wproca exch .knownget { exec } { write==only } ifelse
+ } bind def
+
+% Write a named object. Return true if this was possible.
+% Legal types are: boolean, integer, name, real, string,
+% array of (integer, integer+real, name, null+string),
+% and certain procedures and other arrays (see iswproc above).
+% All other objects are either handled specially or ignored.
+ /isall % <array> <proc> isall <bool>
+ { true 3 -1 roll
+ { 2 index exec not { pop false exit } if }
+ forall exch pop
+ } bind def
+ /wott 8 dict dup begin
+ /arraytype
+ { woatt
+ { aload pop 2 index 2 index exec
+ { exch pop exec exit }
+ { pop pop }
+ ifelse
+ }
+ forall
+ } bind def
+ /booleantype
+ { { (\tmake_true\(&) } { (\tmake_false\(&) } ifelse ws
+ wt (\);) wl true
+ } bind def
+ /integertype
+ { (\tmake_int\(&) ws exch wt (, ) ws
+ wt (\);) wl true
+ } bind def
+ /nametype
+ { (\tcode = (*pprocs->name_create)\(i_ctx_p, &) ws exch wt
+ (, ) ws wnstring cvs wcs % OK, names are short
+ (\);) wl
+ (\tif ( code < 0 ) return code;) wl
+ true
+ } bind def
+ /packedarraytype
+ /arraytype load def
+ /realtype
+ { (\tmake_real\(&) ws exch wt (, (float)) ws
+ wt (\);) wl true
+ } bind def
+ /stringtype
+ { ({\tstatic const unsigned char s_[] = ) ws
+ dup dup can_wcs { wcs } { wcca } ifelse
+ (;) wl
+ (\tmake_const_string\(&) ws exch wt
+ (, a_readonly, ) ws length wt (, (const byte *)s_\);) wl
+ (}) wl true
+ } bind def
+ end def
+% Write some other kind of object, if known.
+ /wother
+ { dup otherobjs exch known
+ { otherobjs exch get (\t) ws exch wt ( = ) ws wt (;) wl true }
+ { pop pop false }
+ ifelse
+ } bind def
+% Top-level procedure.
+ /wo % name obj -> OK
+ { dup type wott exch .knownget { exec } { wother } ifelse
+ } bind def
+
+% Write an array (called by wo).
+ /wap % <name> <array> wap -
+ { dup xcheck not 1 index wcheck not and 1 index rcheck and
+ { pop pop }
+ { (\tr_set_attrs\(&) ws exch wt (, ) ws wpa (\);) wl }
+ ifelse
+ } bind def
+ /wnuma { % <name> <array> <element_C_type> <<type>_v> wnuma -
+ ({\tstatic const ref_\() ws exch ws (\) a_[] = {) wl exch
+ % Stack: name type_v array
+ dup length 0 eq {
+ (\t) ws 1 index ws (\(0\)) wl
+ } {
+ dup {
+ (\t) ws 2 index ws (\() ws wt (\),) wl
+ } forall
+ } ifelse exch pop
+ % Stack: name array
+ (\t};) wl
+ dup wcheck {
+ (\tcode = (*pprocs->scalar_array_create)\(i_ctx_p, &) ws exch wt
+ (, (const ref *)a_, ) ws dup length wt
+ (, ) ws wpa (\);) wl
+ (\tif ( code < 0 ) return code;) wl
+ } {
+ (\tmake_const_array\(&) ws exch wt
+ (, avm_foreign|) ws dup wpa (, ) ws length wt
+ (, (const ref *)a_\);) wl
+ } ifelse
+ (}) wl
+ } bind def
+ /woatt [
+ % Integers
+ { { { type /integertype eq } isall }
+ { (long) (integer_v) wnuma true }
+ }
+ % Integers + reals
+ { { { type dup /integertype eq exch /realtype eq or } isall }
+ { (float) (real_v) wnuma true }
+ }
+ % Strings + nulls
+ { { { type dup /nulltype eq exch /stringtype eq or } isall }
+ { ({) ws dup (sa_) exch wsna
+ (\tcode = (*pprocs->string_array_create)\(i_ctx_p, &) ws exch wt
+ (, \(const char *\)sa_, ) ws dup length wt (, ) ws wpa (\);) wl
+ (\tif ( code < 0 ) return code;) wl
+ (}) wl true
+ }
+ }
+ % Names
+ { { { type /nametype eq } isall }
+ { ({) ws dup (na_) exch wsna
+ (\tcode = (*pprocs->name_array_create)\(i_ctx_p, &) ws 1 index wt
+ (, \(const char *\)na_, ) ws dup length wt (\);) wl
+ (\tif ( code < 0 ) return code;) wl
+ wap (}) wl true
+ }
+ }
+ % Procedure
+ { { iswproc }
+ { dup cvos
+ % Stack: name proc string
+ ({\tstatic const unsigned char s_[] = ) ws
+ dup dup can_wcs { wcs } { wcca } ifelse
+ (;) wl
+ (\tcode = (*pprocs->ref_from_string)\(i_ctx_p, &) ws 2 index wt
+ (, \(const char *\)s_, ) ws length wt (\);) wl
+ (\tif ( code < 0 ) return code;) wl
+ wap (}) wl true
+ wtempname deletefile
+ }
+ }
+ % Default
+ { { pop true }
+ { wother }
+ }
+ ] def
+
+% Write a named dictionary. We assume the ref is already declared.
+ /wd % <name> <dict> <extra> wd -
+ { 3 1 roll
+ ({) ws
+ (\tref v_[) ws dup length wt (];) wl
+ dup [ exch
+ { counttomark 2 sub wtstring cvs
+ (v_[) exch concatstrings (]) concatstrings exch wo not
+ { (Skipping ) print ==only (....\n) print }
+ if
+ } forall
+ ]
+ % Stack: array of keys (names)
+ ({) ws dup (str_keys_) exch wsna
+ (\tstatic const cfont_dict_keys keys_ =) wl
+ (\t { 0, 0, ) ws length wt (, ) ws 3 -1 roll wt (, ) ws
+ dup wpa (, ) ws dup wva ( };) wl pop
+ (\tcode = \(*pprocs->ref_dict_create\)\(i_ctx_p, &) ws wt
+ (, &keys_, \(const char *\)str_keys_, v_\);) wl
+ (\tif ( code < 0 ) return code;) wl
+ (}) wl
+ (}) wl
+ } bind def
+
+% Write character dictionary keys.
+% We save a lot of space by abbreviating keys which appear in
+% StandardEncoding or ISOLatin1Encoding.
+% Writes code to declare and initialize enc_keys_, str_keys, and keys_.
+/wcdkeys % <dict> wcdkeys -
+ { % Write keys present in StandardEncoding or ISOLatin1Encoding,
+ % pushing other keys on the o-stack.
+ (static const charindex enc_keys_[] = {) wl
+ dup [ exch 0 exch
+ { pop decoding 1 index known
+ { decoding exch get ({) ws dup -8 bitshift wt
+ (,) ws 255 and wt (}, ) ws
+ 1 add dup 5 mod 0 eq { (\n) ws } if
+ }
+ { exch }
+ ifelse
+ }
+ forall pop
+ ]
+ ({0,0}\n};) wl
+ % Write other keys.
+ (str_keys_) exch wsna
+ % Write the declaration for keys_.
+ (static const cfont_dict_keys keys_ = {) wl
+ (\tenc_keys_, countof\(enc_keys_\) - 1,) wl
+ (\t) ws dup length wt ( - \(countof\(enc_keys_\) - 1\), 0, ) ws
+ dup wpa (, ) ws wva () wl
+ (};) wl
+ } bind def
+
+% Enumerate character dictionary values in the same order that
+% the keys appear in enc_keys_ and str_keys_.
+% <proc> is called with each value in turn.
+/cdforall % <dict> <proc> cdforall -
+ { 2 copy
+ { decoding 3 index known
+ { 3 -1 roll pop exec }
+ { pop pop pop }
+ ifelse
+ }
+ /exec cvx 3 packedarray cvx
+ /forall cvx
+ 5 -2 roll
+ { decoding 3 index known
+ { pop pop pop }
+ { 3 -1 roll pop exec }
+ ifelse
+ }
+ /exec cvx 3 packedarray cvx
+ /forall cvx
+ 6 packedarray cvx exec
+ } bind def
+
+% ------ Writers for special objects ------ %
+
+/writespecial 10 dict dup begin
+
+ /FontInfo { 0 wd } def
+
+ /Private { 0 wd } def
+
+ /CharStrings
+ { ({) wl
+ dup wcdkeys
+ (static const unsigned char values_[] = {) wl
+ { wsn } cdforall
+ (\t0\n};) wl
+ (\tcode = \(*pprocs->string_dict_create\)\(i_ctx_p, &) ws wt
+ (, &keys_, (const char *)str_keys_, \(const char *\)values_\);) wl
+ (\tif ( code < 0 ) return code;) wl
+ (}) wl
+ } bind def
+
+ /Metrics
+ { ({) wl
+ dup wcdkeys
+ (static const ref_(float) values_[] = {) wl
+ dup { (\t) ws wnums () wl } cdforall
+ (\t0\n};) wl
+ (static const unsigned char lengths_[] = {) wl
+ { (\t) ws dup isnumber
+ { pop 0 }
+ { length 1 add }
+ ifelse wt (,) wl
+ } cdforall
+ (\t0\n};) wl
+ (\tcode = \(*pprocs->num_dict_create\)\(i_ctx_p, &) ws wt
+ (, &keys_, str_keys_, (const ref *)values_, lengths_\);) wl
+ (\tif ( code < 0 ) return code;) wl
+ (}) wl
+ } bind def
+
+ /Metrics2 /Metrics load def
+
+ /FDepVector pop % (converted to a list of font names)
+
+end def
+
+% ------ The main program ------ %
+
+% Construct an inverse dictionary of encodings.
+[ /StandardEncoding /ISOLatin1Encoding
+ /SymbolEncoding /DingbatsEncoding
+ /KanjiSubEncoding
+]
+dup length dict begin
+ { mark exch dup { .findencoding exch def } stopped cleartomark
+ } forall
+currentdict end /encodingnames exch def
+
+% Invert the StandardEncoding and ISOLatin1Encoding vectors.
+512 dict begin
+ 0 1 255 { dup ISOLatin1Encoding exch get exch 256 add def } for
+ 0 1 255 { dup StandardEncoding exch get exch def } for
+currentdict end /decoding exch def
+
+/writefont % cfilename procname -> [writes the current font]
+ { (gsf_) exch concatstrings
+ /fontprocname exch def
+ /cfname exch def
+ /cfile cfname (w) file def
+
+% Remove unwanted keys from the font.
+ currentfont dup length dict begin { def } forall
+ { /FID /MIDVector /CurMID } { currentdict exch undef } forall
+ /Font currentdict end def
+
+% Replace the FDepVector with a list of font names.
+ Font /FDepVector .knownget
+ { [ exch { /FontName get } forall ]
+ Font /FDepVector 3 -1 roll put
+ }
+ if
+
+% Find all the special objects we know about.
+% wo uses this to write out references to otherwise intractable objects.
+ /otherobjs writespecial length dict dup begin
+ writespecial
+ { pop Font 1 index .knownget { exch def } { pop } ifelse
+ }
+ forall
+ end def
+
+% Define a dummy FontInfo, in case the font doesn't have one.
+ /FontInfo 0 dict def
+
+% Write out the boilerplate.
+ Font begin
+ (/****************************************************************) wl
+ ( Portions of this file are subject to the following notice(s):) wl
+ systemdict /copyright get wl
+ FontInfo /Notice .knownget
+ { (----------------------------------------------------------------) wl wl
+ } if
+ (****************************************************************/) wl
+ () wl
+ (/* ) ws cfname ws ( */) wl
+ (/* This file was created by the ) ws product ws ( font2c utility. */) wl
+ () wl
+ (#undef DEBUG) wl
+ (#include "ccfont.h") wl
+ () wl
+
+% Write the procedure prologue.
+ (#ifdef __PROTOTYPES__) wl
+ (ccfont_proc\() ws fontprocname ws (\);) wl
+ (int) wl
+ fontprocname ws ((i_ctx_t *i_ctx_p, const cfont_procs *pprocs, ref *pfont)) wl
+ (#else) wl
+ (int) wl
+ fontprocname ws ((i_ctx_p, pprocs, pfont) i_ctx_t *i_ctx_p; const cfont_procs *pprocs; ref *pfont;) wl
+ (#endif) wl
+ ({\tint code;) wl
+ (\tref Font;) wl
+ otherobjs
+ { exch pop (\tref ) ws wt (;) wl }
+ forall
+
+% Write out the special objects.
+ otherobjs
+ { exch writespecial 2 index get exec
+ }
+ forall
+
+% Write out the main font dictionary.
+% If possible, substitute the encoding name for the encoding;
+% PostScript code will fix this up.
+ { /Encoding /PrefEnc }
+ { Font 1 index .knownget
+ { encodingnames exch .knownget { def } { pop } ifelse }
+ { pop }
+ ifelse
+ }
+ forall
+ (Font) Font FontType 0 eq { 5 } { 1 } ifelse wd
+
+% Finish the procedural initialization code.
+ (\t*pfont = Font;) wl
+ (\treturn 0;) wl
+ (}) wl
+ end % Font
+
+ cfile closefile
+
+ } bind def
+
+end def % font2cdict
+
+% Compute the procedure name from the font name.
+% Replace all non-alphanumeric characters with '_'.
+/makefontprocnamemap 256 string
+ 0 1 255 { 2 copy 95 put pop } for
+ (0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz)
+ { 2 copy dup put pop } forall
+readonly def
+/makefontprocname % <fontname> makefontprocname <procnamestring>
+ { dup length string cvs
+ dup length 1 sub -1 0
+ { % Stack: string index
+ 2 copy 2 copy get //makefontprocnamemap exch get put pop
+ }
+ for
+ } def
+
+/writefont { font2cdict begin writefont end } def
+
+% If the program was invoked from the command line, run it now.
+[ shellarguments
+ { counttomark dup 2 eq exch 3 eq or
+ { counttomark -1 roll cvn
+ (Converting ) print dup =only ( font.\n) print flush
+ % Ensure that we get a clean copy of the font from the
+ % file system.
+ 2 { % do both local and global
+ currentglobal not setglobal
+ dup undefinefont
+ } repeat
+ findfont setfont
+ (FontName is ) print currentfont /FontName get ==only (.\n) print flush
+ counttomark 1 eq
+ { % Construct the procedure name from the file name.
+ currentfont /FontName get makefontprocname
+ }
+ if
+ writefont
+ (Done.\n) print flush
+ }
+ { cleartomark
+ (Usage: font2c fontname cfilename.c [shortname]\n) print
+ ( e.g.: font2c Courier cour.c\n) print flush
+ mark
+ }
+ ifelse
+ }
+if pop
diff --git a/Master/tlpkg/tlgs/lib/font2pcl.ps b/Master/tlpkg/tlgs/lib/font2pcl.ps
new file mode 100644
index 00000000000..8da03b0f85f
--- /dev/null
+++ b/Master/tlpkg/tlgs/lib/font2pcl.ps
@@ -0,0 +1,603 @@
+% Copyright (C) 1993, 1994, 1995, 1997 Aladdin Enterprises. All rights reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% For more information about licensing, please refer to
+% http://www.ghostscript.com/licensing/. For information on
+% commercial licensing, go to http://www.artifex.com/licensing/ or
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
+% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
+
+% $Id: font2pcl.ps 6300 2005-12-28 19:56:24Z giles $
+% font2pcl.ps
+% Write out a font as a PCL bitmap font.
+
+/pcldict 60 dict def
+
+% Write out the current font as a PCL bitmap font.
+% The current transformation matrix defines the font size and orientation.
+
+/WriteResolution? false def % true=use "resolution bound font" format,
+ % false=use older format
+
+/LJ4 false def % true=use LJ4 Typeface code
+ % false=use LJIIP/IID/IIIx Typeface code
+
+pcldict begin % internal procedures
+
+/findstring % <string> <substring> findstring <bool>
+ { search { pop pop pop true } { pop false } ifelse
+ } def
+
+ % Determine which set of keywords is present in a string.
+ % The last keyword set must be empty.
+
+/keysearch % <string> <array of arrays of keywords> keysearch <index>
+ { 0 1 2 index length 1 sub
+ { 2 copy get true exch
+ { % Stack: <string> <a.a.k.> <index> <bool> <keyword>
+ 4 index exch findstring and
+ }
+ forall
+ { 0 exch getinterval exit
+ }
+ if pop
+ }
+ for
+ exch pop length % invalid index if missing
+ } def
+
+ % Determine the device height of a string in quarter-dots.
+
+/charheight % <string> charheight <int>
+ { gsave newpath 0 0 moveto false charpath
+ pathbbox exch pop exch sub exch pop 0 exch grestore
+ dtransform add abs 4 mul cvi
+ } def
+
+ % Compute an integer version of the transformed FontBBox.
+
+/inflate % <num> inflate <num>
+ { dup 0 gt { ceiling } { floor } ifelse
+ } def
+/ixbbox % - ixbbox <llx> <lly> <urx> <ury>
+ { /FontBBox load aload pop % might be executable or literal
+ 4 2 roll transform exch truncate cvi exch truncate cvi
+ 4 2 roll transform exch inflate cvi exch inflate cvi
+ } def
+
+ % Determine the original font of a possibly transformed font.
+ % Since some badly behaved PostScript files construct transformed
+ % fonts "by hand", we can't just rely on the OrigFont pointers.
+ % Instead, if a font with the given name exists, and if its
+ % entries for FontType and UniqueID match those of the font we
+ % obtain by following the OrigFont chain, we use that font.
+
+/origfont
+ { { dup /OrigFont known not { exit } if /OrigFont get } loop
+ FontDirectory 1 index /FontName get .knownget
+ { % Stack: origfont namedfont
+ 1 index /FontType get 1 index /FontType get eq
+ { 1 index /UniqueID .knownget
+ { 1 index /UniqueID .knownget
+ { eq { exch } if }
+ { pop }
+ ifelse
+ }
+ if
+ }
+ if pop
+ }
+ if
+ } def
+
+
+ % Determine the bounding box of the current device's image.
+ % Free variables: row, zerow.
+
+/devbbox % <rw> <rh> devbbox <ymin> <ymax1> <xmin> <xmax1>
+ { % Find top and bottom whitespace.
+ dup
+ { dup 0 eq { exit } if 1 sub
+ dup currentdevice exch row copyscanlines
+ zerow ne { 1 add exit } if
+ }
+ loop % ymax1
+ 0
+ { 2 copy eq { exit } if
+ dup currentdevice exch row copyscanlines
+ zerow ne { exit } if
+ 1 add
+ }
+ loop % ymin
+ exch
+ % Find left and right whitespace.
+ 3 index 0
+ % Stack: rw rh ymin ymax1 xmin xmax1
+ 3 index 1 4 index 1 sub
+ { currentdevice exch row copyscanlines .findzeros
+ exch 4 1 roll .max 3 1 roll .min exch
+ }
+ for % xmin xmax1
+ % Special check: xmin > xmax1 if height = 0
+ 2 copy gt { exch pop dup } if
+ 6 -2 roll pop pop
+
+ } def
+
+ % Write values on outfile.
+
+ /w1 { 255 and outfile exch write } def
+ /w2 { dup -8 bitshift w1 w1 } def
+ /wbyte % <byte> <label> wbyte
+ { VDEBUG { print ( =byte= ) print dup == flush } { pop } ifelse w1
+ } def
+ /wword % <word16> <label> wword
+ { VDEBUG { print ( =word= ) print dup == flush } { pop } ifelse w2
+ } def
+ /wdword % <word32> <label> wdword
+ { VDEBUG { print ( =dword= ) print dup == flush } { pop } ifelse
+ dup -16 bitshift w2 w2
+ } def
+
+/style.posture.keys
+ [ { (Italic) } { (Oblique) }
+ { }
+ ] def
+/style.posture.values <010100> def
+
+/style.appearance.width.keys
+ [ { (Ultra) (Compressed) }
+ { (Extra) (Compressed) }
+ { (Extra) (Condensed) }
+ { (Extra) (Extended) }
+ { (Extra) (Expanded) }
+ { (Compressed) }
+ { (Condensed) }
+ { (Extended) }
+ { (Expanded) }
+ { }
+ ] def
+/style.appearance.width.values <04030207070201060600> def
+
+/width.type.keys
+ [ { (Ultra) (Compressed) }
+ { (Extra) (Compressed) }
+ { (Extra) (Condensed) }
+ { (Extra) (Expanded) }
+ { (Compressed) }
+ { (Condensed) }
+ { (Expanded) }
+ { }
+ ] def
+/width.type.values <fbfcfd03fdfe0200> def
+
+/stroke.weight.keys
+ [ { (Ultra) (Thin) }
+ { (Ultra) (Black) }
+ { (Extra) (Thin) }
+ { (Extra) (Light) }
+ { (Extra) (Bold) }
+ { (Extra) (Black) }
+ { (Demi) (Light) }
+ { (Demi) (Bold) }
+ { (Semi) (Light) }
+ { (Semi) (Bold) }
+ { (Thin) }
+ { (Light) }
+ { (Bold) }
+ { (Black) }
+ { }
+ ] def
+/stroke.weight.values <f907fafc0406fe02ff01fbfd030500> def
+
+/vendor.keys
+ [ { (Agfa) }
+ { (Bitstream) }
+ { (Linotype) }
+ { (Monotype) }
+ { (Adobe) }
+ { }
+ ] def
+/vendor.default.index 4 def % might as well be Adobe
+/old.vendor.values <020406080a00> def
+/new.vendor.values <010203040500> def
+/vendor.initials (CBLMA\000) def
+
+currentdict readonly end pop % pcldict
+
+
+% Convert and write a PCL font for the current font and transformation.
+
+% Write the font header. We split this off only to avoid overflowing
+% the limit on the maximum size of a procedure.
+% Free variables: outfile uury u0y rw rh orientation uh ully
+/writefontheader
+ { outfile (\033\)s) writestring
+ outfile 64 WriteResolution? { 4 add } if
+ Copyright length add write==only
+ outfile (W) writestring
+ WriteResolution? { 20 68 } { 0 64 } ifelse
+ (Font Descriptor Size) wword
+ (Header Format) wbyte
+ 1 (Font Type) wbyte
+ FullName style.posture.keys keysearch style.posture.values exch get
+ FullName style.appearance.width.keys keysearch
+ style.appearance.width.values exch get 4 mul add
+ PaintType 2 eq { 32 add } if
+ /style exch def
+ style -8 bitshift (Style MSB) wbyte
+ 0 (Reserved) wbyte
+ /baseline uury 1 sub u0y sub def
+ baseline (Baseline Position) wword
+ rw (Cell Width) wword
+ rh (Cell Height) wword
+ orientation (Orientation) wbyte
+ FontInfo /isFixedPitch .knownget not { false } if
+ { 0 } { 1 } ifelse (Spacing) wbyte
+ % Use loop/exit to fake a multiple-exit block.
+ { Encoding StandardEncoding eq { 10 (J) exit } if
+ Encoding ISOLatin1Encoding eq { 11 (J) exit } if
+ Encoding SymbolEncoding eq { 19 (M) exit } if
+ Encoding DingbatsEncoding eq { 10 (L) exit } if
+% (Warning: unknown Encoding, using ISOLatin1.\n) print flush
+ 11 (J) exit
+ }
+ loop
+ 0 get 64 sub exch 32 mul add (Symbol Set) wword
+ ( ) stringwidth pop 0 dtransform add abs 4 mul
+ /pitch exch def
+ pitch cvi (Pitch) wword
+ uh 4 mul (Height) wword % Height
+ (x) charheight (x-Height) wword
+ FullName width.type.keys keysearch
+ width.type.values exch get (Width Type) wbyte
+ style 255 and (Style LSB) wbyte
+ FullName stroke.weight.keys keysearch
+ stroke.weight.values exch get (Stroke Weight) wbyte
+ FullName vendor.keys keysearch
+ dup vendor.initials exch get 0 eq
+ { % No vendor in FullName, try Notice
+ pop Copyright vendor.keys keysearch
+ dup vendor.initials exch get 0 eq { pop vendor.default.index } if
+ }
+ if
+ /vendor.index exch def
+ 0 (Typeface LSB) wbyte % punt
+ 0 (Typeface MSB) wbyte % punt
+ 0 (Serif Style) wbyte % punt
+ 2 (Quality) wbyte
+ 0 (Placement) wbyte
+ gsave FontMatrix concat rot neg rotate
+ /ulwidth
+ FontInfo /UnderlineThickness .knownget
+ { 0 exch dtransform exch pop abs }
+ { resolution 100 div }
+ ifelse def
+ FontInfo /UnderlinePosition .knownget
+ { 0 exch transform exch pop negY ulwidth 2 div add }
+ { ully ulwidth add }
+ ifelse u0y sub
+ round cvi 1 .max 255 .min (Underline Position) wbyte
+ ulwidth round cvi 1 .max 255 .min (Underline Thickness) wbyte
+ grestore
+ uh 1.2 mul 4 mul cvi (Text Height) wword
+ (average lowercase character) dup stringwidth
+ pop 0 dtransform add abs
+ exch length div 4 mul cvi (Text Width) wword
+ 0
+ { dup Encoding exch get /.notdef ne { exit } if
+ 1 add
+ }
+ loop (First Code) wword
+ 255
+ { dup Encoding exch get /.notdef ne { exit } if
+ 1 sub
+ }
+ loop (Last Code) wword
+ pitch dup cvi sub 256 mul cvi (Pitch Extended) wbyte
+ 0 (Height Extended) wbyte
+ 0 (Cap Height) wword % (default)
+ currentfont /UniqueID known { UniqueID } { 0 } ifelse
+ 16#c1000000 add (Font Number (Adobe UniqueID)) wdword
+ FontName length 16 .max string
+ dup FontName exch cvs pop
+ outfile exch 0 16 getinterval writestring % Font Name
+ WriteResolution?
+ { resolution dup (X Resolution) wword (Y Resolution) wword
+ }
+ if
+ outfile Copyright writestring % Copyright
+ } def
+
+/writePCL % <fontfile> <resolution> writePCL -
+ {
+ save
+ currentfont begin
+ pcldict begin
+ 80 dict begin % allow for recursion
+ /saved exch def
+ /resolution exch def
+ /outfile exch def
+ matrix currentmatrix dup 4 0 put dup 5 0 put setmatrix
+
+ % Supply some default values so we don't have to check later.
+
+ currentfont /FontInfo known not { /FontInfo 1 dict def } if
+ currentfont /FontName known not { /FontName () def } if
+ /Copyright FontInfo /Notice .knownget not { () } if def
+ /FullName
+ FontInfo /FullName .knownget not
+ { FontName dup length string cvs }
+ if def
+
+ % Determine the original font, and its relationship to this one.
+
+ /OrigFont currentfont origfont def
+ /OrigMatrix OrigFont /FontMatrix get def
+ /OrigMatrixInverse OrigMatrix matrix invertmatrix def
+ /ScaleMatrix matrix currentfont OrigFont ne
+ { FontMatrix exch OrigMatrixInverse exch concatmatrix
+ } if
+ def
+ /CurrentScaleMatrix
+ matrix currentmatrix
+ matrix defaultmatrix
+ dup 0 get 1 index 3 get mul 0 lt
+ 1 index dup 1 get exch 2 get mul 0 gt or
+ /flipY exch def
+ dup invertmatrix
+ dup concatmatrix
+ def
+ /negY flipY { {neg} } { {} } ifelse def
+
+ % Print debugging information.
+
+ /CDEBUG where { pop } { /CDEBUG false def } ifelse
+ /VDEBUG where { pop } { /VDEBUG false def } ifelse
+ CDEBUG { /VDEBUG true def } if
+ DEBUG
+ { (currentmatrix: ) print matrix currentmatrix ==
+ (defaultmatrix: ) print matrix defaultmatrix ==
+ (flipY: ) print flipY ==
+ (scaling matrix: ) print CurrentScaleMatrix ==
+ (FontMatrix: ) print FontMatrix ==
+ (FontBBox: ) print /FontBBox load ==
+ currentfont OrigFont ne
+ { OrigFont /FontName .knownget { (orig FontName: ) print == } if
+ (orig FontMatrix: ) print OrigMatrix ==
+ } if
+ currentfont /ScaleMatrix .knownget { (ScaleMatrix: ) print == } if
+ gsave
+ FontMatrix concat
+ (combined matrix: ) print matrix currentmatrix ==
+ grestore
+ flush
+ } if
+
+ % Determine the orientation.
+
+ ScaleMatrix matrix currentmatrix dup concatmatrix
+ 0 1 3
+ { 1 index 1 get 0 eq 2 index 2 get 0 eq and 2 index 0 get 0 gt and
+ { exit } if
+ pop -90 matrix rotate exch dup concatmatrix
+ }
+ for
+ dup type /integertype ne
+ { (Only rotations by multiples of 90 degrees are supported:\n) print
+ == flush
+ saved end end end restore stop
+ }
+ if
+ /orientation exch def
+ /rot orientation 90 mul def
+ DEBUG { (orientation: ) print orientation == flush } if
+
+ dup dup 0 get exch 3 get negY sub abs 0.5 ge
+ { (Only identical scaling in X and Y is supported:\n) print
+ exch flipY 3 array astore ==
+ currentdevice .devicename ==
+ matrix defaultmatrix == flush
+ saved end end end restore stop
+ }
+ if pop
+
+ % Determine the font metrics, in the PCL character coordinate system,
+ % which has +Y going towards the top of the page.
+
+ gsave
+ FontMatrix concat
+ 0 0 transform
+ negY round cvi /r0y exch def
+ round cvi /r0x exch def
+ ixbbox
+ negY /rury exch def /rurx exch def
+ negY /rlly exch def /rllx exch def
+ /rminx rllx rurx .min def
+ /rminy rlly negY rury negY .min def
+ /rw rurx rllx sub abs def
+ /rh rury rlly sub abs def
+ gsave rot neg rotate
+ 0 0 transform
+ negY round cvi /u0y exch def
+ round cvi /u0x exch def
+ ixbbox
+ negY /uury exch def /uurx exch def
+ negY /ully exch def /ullx exch def
+ /uw uurx ullx sub def
+ /uh uury ully sub def
+ grestore
+ DEBUG
+ { (rmatrix: ) print matrix currentmatrix ==
+ (rFontBBox: ) print [rllx rlly rurx rury] ==
+ (uFontBBox: ) print [ullx ully uurx uury] ==
+ flush
+ } if
+ grestore
+
+ % Disable the character cache, to avoid excessive allocation
+ % and memory sandbars.
+
+ mark cachestatus /upper exch def
+ cleartomark 0 setcachelimit
+
+ % Write the font header.
+
+ writefontheader
+
+ % Establish an image device for rasterizing characters.
+
+ matrix currentmatrix
+ dup 4 rminx neg put
+ dup 5 rminy neg put
+ % Round the width up to a multiple of 8
+ % so we don't get garbage bits in the last byte of each row.
+ rw 7 add -8 and rh <ff 00> makeimagedevice
+ /cdevice exch def
+ nulldevice % prevent page device switching
+ cdevice setdevice
+
+ % Rasterize each character in turn.
+
+ /raster rw 7 add 8 idiv def
+ /row raster string def
+ /zerow row length string def
+ 0 1 Encoding length 1 sub
+ { /cindex exch def
+ Encoding cindex get /.notdef ne
+ { VDEBUG { Encoding cindex get == flush } if
+ erasepage initgraphics
+ 0 0 moveto currentpoint transform add
+ ( ) dup 0 cindex put show
+ currentpoint transform add exch sub round cvi
+ /cwidth exch abs def
+ rw rh devbbox
+ VDEBUG
+ { (image bbox: ) print 4 copy 4 2 roll 4 array astore == flush
+ } if
+ % Save the device bounding box.
+ % Note that this is in current device coordinates,
+ % not PCL (right-handed) coordinates.
+ /bqx exch def /bpx exch def /bqy exch def /bpy exch def
+ % Re-render with the character justified to (0,0).
+ % This may be either the lower left or the upper left corner.
+ bpx neg bpy neg idtransform moveto
+ erasepage
+ VDEBUG { (show point: ) print [ currentpoint transform ] == flush } if
+ ( ) dup 0 cindex put show
+ % Find the bounding box. Note that xmin and ymin are now 0,
+ % xmax1 = xw, and ymax1 = yh.
+ rw rh devbbox
+ /xw exch def
+ % xmin or ymin can be non-zero only if the character is blank.
+ xw 0 eq
+ { pop }
+ { dup 0 ne { (Non-zero xmin! ) print = } { pop } ifelse }
+ ifelse
+ /yh exch def
+ yh 0 eq
+ { pop }
+ { dup 0 ne { (Non-zero ymin! ) print = } { pop } ifelse }
+ ifelse
+
+ /xbw xw 7 add 8 idiv def
+ /xright raster 8 mul xw sub def
+ % Write the Character Code command.
+ outfile (\033*c) writestring
+ outfile cindex write==only
+ outfile (E) writestring
+ % Write the Character Definition command.
+ outfile (\033\(s) writestring
+ yh xbw mul 16 add
+ outfile exch write=only
+ % Record the character position for the .PCM file.
+ /cfpos outfile fileposition 1 add def
+ outfile (W\004\000\016\001) writestring
+ orientation (Orientation) wbyte 0 (Reserved) wbyte
+ rminx bpx add r0x sub (Left Offset) wword
+ flipY { rminy bpy add neg } { rminy bqy add } ifelse r0y sub
+ (Top Offset) wword
+ xw (Character Width) wword
+ yh (Character Height) wword
+ cwidth orientation 2 ge { neg } if 4 mul (Delta X) wword
+ % Write the character data.
+ flipY { 0 1 yh 1 sub } { yh 1 sub -1 0 } ifelse
+ { cdevice exch row copyscanlines
+ 0 xbw getinterval
+ CDEBUG
+ { dup
+ { 8
+ { dup 128 ge { (+) } { (.) } ifelse print
+ 127 and 1 bitshift
+ }
+ repeat pop
+ }
+ forall (\n) print
+ }
+ if
+ outfile exch writestring
+ }
+ for
+ }
+ { /bpx 0 def /bpy 0 def /bqx 0 def /bqy 0 def
+ /cwidth 0 def
+ /cfpos 0 def
+ }
+ ifelse
+
+ }
+ for
+
+ % Wrap up.
+
+ upper setcachelimit
+ outfile closefile
+
+ nulldevice % prevent page device switching
+ saved end end end restore
+
+ } def
+
+% Provide definitions for testing with older or non-custom interpreters.
+
+/.findzeros where { pop (%END) .skipeof } if
+/.findzeros
+ { userdict begin /zs exch def /zl zs length def
+ 0 { dup zl ge { exit } if dup zs exch get 0 ne { exit } if 1 add } loop
+ zl { dup 0 eq { exit } if dup 1 sub zs exch get 0 ne { exit } if 1 sub } loop
+ exch 3 bitshift exch 3 bitshift
+ 2 copy lt
+ { exch zs 1 index -3 bitshift get
+ { dup 16#80 and 0 ne { exit } if exch 1 add exch 1 bitshift } loop pop
+ exch zs 1 index -3 bitshift 1 sub get
+ { dup 1 and 0 ne { exit } if exch 1 sub exch -1 bitshift } loop pop
+ }
+ if end
+ } bind def
+%END
+
+/write=only where { pop (%END) .skipeof } if
+/w=s 128 string def
+/write=only
+ { w=s cvs writestring
+ } bind def
+%END
+
+%**************** Test
+/PCLTEST where {
+ pop
+ /DEBUG true def
+ /CDEBUG true def
+ /VDEBUG true def
+ /Times-Roman findfont 10 scalefont setfont
+ (t.pcf) (w) file
+ 300 72 div dup scale
+ 300 writePCL
+ flush quit
+} if
diff --git a/Master/tlpkg/tlgs/lib/ghostpdf.inf b/Master/tlpkg/tlgs/lib/ghostpdf.inf
new file mode 100644
index 00000000000..a3536f7c6c3
--- /dev/null
+++ b/Master/tlpkg/tlgs/lib/ghostpdf.inf
@@ -0,0 +1,44 @@
+; GHOSTPDF.INF (for Windows 2k, XP and XP x64 edition)
+
+[Version]
+Signature="$Windows NT$"
+Provider=Ghostgum Software Pty Ltd
+ClassGUID={4D36E979-E325-11CE-BFC1-08002BE10318}
+Class=Printer
+CatalogFile=oemprint.cat
+
+DriverVer=01/02/2007,1.0.0.1
+
+; Manufacturer section
+[Manufacturer]
+"Ghostscript"=Ghostscript,NTamd64,NTia64
+
+; Model sections
+[Ghostscript]
+"Ghostscript PDF" = GHOSTPDF.PPD, Ghostscript_PDF, Ghostscript_PDF_Writer
+
+[Ghostscript.NTamd64]
+"Ghostscript PDF" = GHOSTPDF.PPD, Ghostscript_PDF, Ghostscript_PDF_Writer
+
+[Ghostscript.NTia64]
+"Ghostscript PDF" = GHOSTPDF.PPD, Ghostscript_PDF, Ghostscript_PDF_Writer
+
+; Installer section
+[GHOSTPDF.PPD]
+CopyFiles=@GHOSTPDF.PPD
+DataSection=PSCRIPT_DATA
+Include=NTPRINT.INF
+Needs=PSCRIPT.OEM
+
+[DestinationDirs]
+DefaultDestDir=66000
+
+[SourceDisksNames]
+1=%Disk1%,,,""
+
+[SourceDisksFiles]
+GHOSTPDF.PPD =1
+
+[Strings]
+Disk1="Ghostscript PPD Setup Disk 1"
+; end of ghostpdf.inf
diff --git a/Master/tlpkg/tlgs/lib/gs_agl.ps b/Master/tlpkg/tlgs/lib/gs_agl.ps
index 380a2432958..1cf0b5e858e 100644
--- a/Master/tlpkg/tlgs/lib/gs_agl.ps
+++ b/Master/tlpkg/tlgs/lib/gs_agl.ps
@@ -13,7 +13,7 @@
% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
-% $Id: gs_agl.ps 6300 2005-12-28 19:56:24Z giles $
+% $Id: gs_agl.ps 8178 2007-08-05 13:55:26Z leonardo $
% This file was derived from the Adobe Glyph List, version 1.2, dated
% 22 Oct 1998, at
@@ -23,7 +23,7 @@
% The AdobeGlyphList dictionary maps glyph names to Unicode values.
% Nearly all names map to a single value; however, a few names map to
% multiple values. See the above file, and also
-% http://partners.adobe.com/asn/developer/typeforum/unicodegn.html
+% http://www.adobe.com/devnet/opentype/archives/glyph.html
% for more details.
/AdobeGlyphList 1500 dict
diff --git a/Master/tlpkg/tlgs/lib/gs_cff.ps b/Master/tlpkg/tlgs/lib/gs_cff.ps
index 6fcf80358f3..94b1f61d318 100644
--- a/Master/tlpkg/tlgs/lib/gs_cff.ps
+++ b/Master/tlpkg/tlgs/lib/gs_cff.ps
@@ -13,7 +13,7 @@
% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
-% $Id: gs_cff.ps 6883 2006-06-29 04:07:16Z alexcher $
+% $Id: gs_cff.ps 8239 2007-09-14 05:23:52Z alexcher $
% Loader for CFF (compressed) fonts, including OpenType CFFs.
% The following are not implemented yet:
% Deleted entries in the Name Index
@@ -677,6 +677,10 @@ dup % Format 2
/vminor next def
/hdrsize next def
/aoffsize next def
+ hdrsize 4 gt {
+ hdrsize 4 sub dup advance
+ f exch () /SubFileDecode filter flushfile
+ } if
% Read the Indexes.
diff --git a/Master/tlpkg/tlgs/lib/gs_cidcm.ps b/Master/tlpkg/tlgs/lib/gs_cidcm.ps
index 5a6e0e2d98e..9b410f7cc90 100644
--- a/Master/tlpkg/tlgs/lib/gs_cidcm.ps
+++ b/Master/tlpkg/tlgs/lib/gs_cidcm.ps
@@ -13,7 +13,7 @@
% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
-% $Id: gs_cidcm.ps 8022 2007-06-05 22:23:38Z giles $
+% $Id: gs_cidcm.ps 8492 2008-01-18 21:50:38Z alexcher $
% Extending Font resource category with CIDFont-CMap fonts.
languagelevel 2 .setlanguagelevel currentglobal true setglobal
@@ -171,12 +171,15 @@ currentdict end def
RESMPDEBUG { (cidcm GetCIDSystemInfo from file ) print dup = } if
currentglobal exch true setglobal % CSIs /InstName g (path)
mark exch % CSIs /InstName g [ (path)
- { (r) file % CSIs /InstName g [ file
- //GetCIDSystemInfoFromFile exec % CSIs /InstName g [ CSI
- } stopped {
- cleartomark //.prs_empty
+ { (r) file } stopped {
+ cleartomark //.prs_empty
} {
- exch pop
+ exch 1 index % CSIs /InstName g file [ file
+ //GetCIDSystemInfoFromFile stopped {
+ cleartomark closefile //.prs_empty
+ } {
+ exch pop exch closefile
+ } ifelse
} ifelse % CSIs /InstName g CSI
exch setglobal % CSIs /InstName CSI
dup 4 1 roll % CSI CSIs /InstName CSI
diff --git a/Master/tlpkg/tlgs/lib/gs_cidtt.ps b/Master/tlpkg/tlgs/lib/gs_cidtt.ps
index b7e7fa7157d..fc0dbc30357 100644
--- a/Master/tlpkg/tlgs/lib/gs_cidtt.ps
+++ b/Master/tlpkg/tlgs/lib/gs_cidtt.ps
@@ -13,7 +13,7 @@
% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
-% $Id: gs_cidtt.ps 8022 2007-06-05 22:23:38Z giles $
+% $Id: gs_cidtt.ps 8190 2007-08-14 20:48:29Z till $
% Redefine CIDFont category with an emulation with True Type fonts.
languagelevel 2 .setlanguagelevel
diff --git a/Master/tlpkg/tlgs/lib/gs_fntem.ps b/Master/tlpkg/tlgs/lib/gs_fntem.ps
index b5cf479c184..8472d9c4afa 100644
--- a/Master/tlpkg/tlgs/lib/gs_fntem.ps
+++ b/Master/tlpkg/tlgs/lib/gs_fntem.ps
@@ -13,7 +13,7 @@
% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
-% $Id: gs_fntem.ps 8022 2007-06-05 22:23:38Z giles $
+% $Id: gs_fntem.ps 8274 2007-10-09 00:06:24Z leonardo $
% A procset for Postscript font emulation
% The procedures must not depend on the presence of the
@@ -344,7 +344,9 @@ currentdict end def
dup /CIDSystemInfo get /Ordering get cvn
} if
dup type /nametype eq {
- //SubstNWP exch get % <<font>> [SubstNWP]
+ //SubstNWP exch .knownget not {
+ []
+ } if % <<font>> [SubstNWP]
} if
1 index exch /SubstNWP exch put
} if
diff --git a/Master/tlpkg/tlgs/lib/gs_icc.ps b/Master/tlpkg/tlgs/lib/gs_icc.ps
index 9856b2c9a38..7068940ed92 100644
--- a/Master/tlpkg/tlgs/lib/gs_icc.ps
+++ b/Master/tlpkg/tlgs/lib/gs_icc.ps
@@ -13,7 +13,7 @@
% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
-% $Id: gs_icc.ps 6300 2005-12-28 19:56:24Z giles $
+% $Id: gs_icc.ps 8306 2007-10-20 16:34:38Z alexcher $
% ICCBased color space method dictionaries.
% This assumes gs_ciecs2.ps has already been processed.
@@ -123,9 +123,14 @@ colorspacedict
/Alternate .knownget
{
//.cs_validate exec
- //.cs_potential_icc_alternate exec not
- //setcspace_rangecheck
- if
+ dup //.cs_potential_icc_alternate exec not
+ {
+ 0 get /ICCBased ne
+ //setcspace_rangecheck
+ if
+ }
+ { pop }
+ ifelse
}
if
}
diff --git a/Master/tlpkg/tlgs/lib/gs_img.ps b/Master/tlpkg/tlgs/lib/gs_img.ps
index 5c0c00127b0..a8a8bf774d5 100644
--- a/Master/tlpkg/tlgs/lib/gs_img.ps
+++ b/Master/tlpkg/tlgs/lib/gs_img.ps
@@ -13,7 +13,7 @@
% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
-% $Id: gs_img.ps 7647 2007-01-26 16:49:00Z alexcher $
+% $Id: gs_img.ps 8242 2007-09-18 15:41:08Z leonardo $
% image, colorimage, and imagemask implementation
%
@@ -674,6 +674,21 @@ if
}
.bind systemdict begin odef end
+% An auxiliary function for checking whether an imagemask to be interpolated.
+/.is_low_resolution % <image dict> .is_low_resolution <bool>
+{ % Checking whether image pixel maps to more than 2 device pixels.
+ % The threshold 2 is arbitrary.
+ 1 exch 0 exch
+ 0 exch 1 exch
+ /ImageMatrix get dup
+ 2 {
+ 4 1 roll
+ idtransform dtransform dup mul exch dup mul add sqrt
+ } repeat
+ max
+ 2 gt % arbitrary
+} .bind def
+
%
% width height polarity matrix datasrc imagemask -
@@ -686,7 +701,8 @@ if
dup type /dicttype eq .languagelevel 2 ge and
{ dup /ImageType get
//.imagemasktypes exch .knownget
- { 1 index /ImageType get 1 eq
+ { 1 index //.is_low_resolution exec
+ 2 index /ImageType get 1 eq and
2 index /BitsPerComponent get 1 eq and
2 index /Interpolate .knownget not { false } if and
//filterdict /ImscaleDecode known and {
diff --git a/Master/tlpkg/tlgs/lib/gs_init.ps b/Master/tlpkg/tlgs/lib/gs_init.ps
index 8e04aaf4d95..7a80d35ed51 100644
--- a/Master/tlpkg/tlgs/lib/gs_init.ps
+++ b/Master/tlpkg/tlgs/lib/gs_init.ps
@@ -13,7 +13,7 @@
% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
-% $Id: gs_init.ps 8054 2007-06-17 00:01:02Z alexcher $
+% $Id: gs_init.ps 8401 2007-11-21 22:42:03Z giles $
% Initialization file for the interpreter.
% When this is run, systemdict is still writable.
@@ -27,9 +27,12 @@
% initialization files, have names that begin with %, e.g.,
% (%Type1BuildChar) cvn.
-% Check the interpreter revision. NOTE: the interpreter code requires
-% that the first non-comment token in this file be an integer.
-860
+% Interpreter library version number
+% NOTE: the interpreter code requires that the first non-comment token
+% in this file be an integer, and that it match the compiled-in version!
+862
+
+% Check the interpreter revision.
dup revision ne
{ (gs: Interpreter revision \() print revision 10 string cvs print
(\) does not match gs_init.ps revision \() print 10 string cvs print
@@ -1281,7 +1284,7 @@ put % errordict /rangecheck
}
if
}
- { 0 .getdevice .devicename
+ { .getdefaultdevice .devicename
}
ifelse
}
@@ -1516,6 +1519,14 @@ setpacking
.setdefaultbgucr
} bind def
+% Rendering intent mapping for setcolorrendering1 and PDF interpreter
+/.renderingintentdict mark
+ /Perceptual 0
+ /RelativeColorimetric 1
+ /Saturation 2
+ /AbsoluteColorimetric 3
+.dicttomark readonly def
+
% Load basic color support
%% Replace 1 (gs_cspace.ps)
(gs_cspace.ps) runlibfile
@@ -2147,6 +2158,7 @@ currentdict /.imagemasktypes .undef
currentdict /.patterntypes .undef
currentdict /.shadingtypes .undef
currentdict /.wheredict .undef
+currentdict /.renderingintentdict .undef
end
% Clean up VM, and enable GC.
diff --git a/Master/tlpkg/tlgs/lib/gs_l.xbm b/Master/tlpkg/tlgs/lib/gs_l.xbm
new file mode 100644
index 00000000000..4f9de445487
--- /dev/null
+++ b/Master/tlpkg/tlgs/lib/gs_l.xbm
@@ -0,0 +1,29 @@
+#define gs_l.xbm_width 48
+#define gs_l.xbm_height 48
+#define gs_l.xbm_x_hot 0
+#define gs_l.xbm_y_hot 0
+static unsigned char gs_l.xbm_bits[] = {
+ 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0xa0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x20, 0x03, 0x00,
+ 0x00, 0x00, 0x00, 0x3e, 0x03, 0x00, 0x00, 0x00, 0xff, 0x1f, 0x07, 0x00,
+ 0x00, 0xe0, 0xff, 0x0f, 0x07, 0x00, 0x00, 0xf8, 0xff, 0x81, 0x07, 0x00,
+ 0x00, 0xfc, 0x1f, 0xc0, 0x0f, 0x00, 0x00, 0xfe, 0x07, 0xf0, 0x1f, 0x00,
+ 0x00, 0xff, 0x01, 0xf8, 0x1f, 0x00, 0x00, 0xff, 0x41, 0xfc, 0x3f, 0x00,
+ 0x80, 0xff, 0xc8, 0xfc, 0x3f, 0x00, 0x80, 0xff, 0xd8, 0xf8, 0x3f, 0x00,
+ 0x80, 0xff, 0x98, 0xf0, 0x3f, 0x00, 0x80, 0xff, 0x10, 0xe0, 0x3f, 0x00,
+ 0x00, 0xff, 0x01, 0xc0, 0x3f, 0x00, 0x00, 0xff, 0x81, 0x81, 0x1f, 0x00,
+ 0x00, 0xfe, 0x83, 0x83, 0x1f, 0x00, 0x00, 0xfc, 0x0f, 0x83, 0x0f, 0x00,
+ 0x00, 0xf8, 0x1f, 0xc3, 0x03, 0x00, 0x00, 0xe0, 0x1f, 0xe0, 0x01, 0x00,
+ 0x00, 0xf0, 0x1f, 0x38, 0x00, 0x00, 0x00, 0xfc, 0x0f, 0x00, 0x00, 0x00,
+ 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7f, 0x00, 0x00, 0x00, 0x00,
+ 0xc0, 0xff, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x00, 0x00, 0x00,
+ 0xc0, 0xff, 0xff, 0xff, 0x01, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x0f, 0x00,
+ 0x80, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x00,
+ 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x03,
+ 0x00, 0xc0, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x03,
+ 0xc0, 0x3f, 0x00, 0x00, 0xff, 0x03, 0xe0, 0x0f, 0x00, 0x00, 0xfe, 0x03,
+ 0xf0, 0x07, 0xfc, 0x00, 0xfc, 0x01, 0xf0, 0x07, 0x0e, 0x00, 0xff, 0x04,
+ 0xf0, 0x07, 0x7e, 0xe0, 0x7f, 0x02, 0xf0, 0x0f, 0xfc, 0xff, 0x1f, 0x01,
+ 0xe0, 0x1f, 0xf0, 0xff, 0xc3, 0x00, 0xc0, 0xff, 0x00, 0x00, 0x78, 0x00,
+ 0x80, 0xff, 0x0f, 0xf8, 0x3f, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x07, 0x00,
+ 0x00, 0xe0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/Master/tlpkg/tlgs/lib/gs_l.xpm b/Master/tlpkg/tlgs/lib/gs_l.xpm
new file mode 100644
index 00000000000..ef898c29c8c
--- /dev/null
+++ b/Master/tlpkg/tlgs/lib/gs_l.xpm
@@ -0,0 +1,58 @@
+/* XPM */
+static char * gs_l_xpm[] = {
+/* width height ncolors cpp [x_hot y_hot] */
+"48 48 4 1 0 0",
+/* colors */
+" s none m none c none",
+". s iconColor1 m black c black",
+"X s iconColor2 m white c white",
+"o s iconColor5 m black c blue",
+/* pixels */
+" . ",
+" .X.. ",
+" .X.. ",
+" .XX.. ",
+" .....XX.. ",
+" .............XXX... ",
+" ...............XXXX... ",
+" ..............XXXXXX.... ",
+" ...........XXXXXXXXX...... ",
+" ..........XXXXXXXXX......... ",
+" .........XXXXXXXXXX.......... ",
+" .........XXXXXoXXX............ ",
+" .........XXXoXXooXX............ ",
+" .........XXXooXooXXX........... ",
+" .........XXXooXXoXXXX.......... ",
+" .........XXXXoXXXXXXXX......... ",
+" .........XXXXXXXXXXXXX........ ",
+" .........XXXXXXooXXXXXX...... ",
+" .........XXXXXoooXXXXX...... ",
+" ..........XXXXooXXXXX..... ",
+" ..........XXXooXXXX.... ",
+" ........XXXXXXXX.... ",
+" .........XXXXXX... ",
+" ..........XXXXXXX ",
+" ........XXXXXXXXXXXX ",
+" ........XXXXXXXXXXXXXX ",
+" ..........XXXXXXXXXXXXXXX ",
+" ..................XXXXXXXXX ",
+" ...........................X ",
+" .............................. ",
+" ................................ ",
+" ................................. ",
+" ................................. ",
+" ................................ ",
+" ............................ ",
+" XXXXXXXXXXXXX.............. ",
+" ........XXXXXXXXXXXXXXXXXX.......... ",
+" .......XXXXXXXXXXXXXXXXXXXXX......... ",
+" .......XXXXXXX......XXXXXXXXXX.......X ",
+" .......XXXXXX...XXXXXXXXXXXX........XX. ",
+" .......XXXXXX......XXXXXX..........XX. ",
+" ........XXXXXX...................XXX. ",
+" ........XXXXXXX..............XXXX.. ",
+" ..........XXXXXXXXXXXXXXXXXXX.... ",
+" .............XXXXXXX........... ",
+" .......................... ",
+" ................... ",
+" "};
diff --git a/Master/tlpkg/tlgs/lib/gs_l_m.xbm b/Master/tlpkg/tlgs/lib/gs_l_m.xbm
new file mode 100644
index 00000000000..0253814e7b0
--- /dev/null
+++ b/Master/tlpkg/tlgs/lib/gs_l_m.xbm
@@ -0,0 +1,29 @@
+#define gs_l_m.xbm_width 48
+#define gs_l_m.xbm_height 48
+#define gs_l_m.xbm_x_hot 0
+#define gs_l_m.xbm_y_hot 0
+static unsigned char gs_l_m.xbm_bits[] = {
+ 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00,
+ 0x00, 0x00, 0x00, 0xfe, 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x00,
+ 0x00, 0xe0, 0xff, 0xff, 0x07, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x07, 0x00,
+ 0x00, 0xfc, 0xff, 0xff, 0x0f, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x1f, 0x00,
+ 0x00, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0xff, 0xff, 0xff, 0x3f, 0x00,
+ 0x80, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x80, 0xff, 0xff, 0xff, 0x3f, 0x00,
+ 0x80, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x80, 0xff, 0xff, 0xff, 0x3f, 0x00,
+ 0x00, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xff, 0xff, 0xff, 0x1f, 0x00,
+ 0x00, 0xfe, 0xff, 0xff, 0x1f, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x0f, 0x00,
+ 0x00, 0xf8, 0xff, 0xff, 0x03, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x01, 0x00,
+ 0x00, 0xf0, 0xff, 0x3f, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x07, 0x00, 0x00,
+ 0x00, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x80, 0xff, 0xff, 0x1f, 0x00, 0x00,
+ 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x01, 0x00,
+ 0xc0, 0xff, 0xff, 0xff, 0x03, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x0f, 0x00,
+ 0x80, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x00,
+ 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x03,
+ 0x00, 0xc0, 0xff, 0xff, 0xff, 0x03, 0x00, 0x80, 0xff, 0xff, 0xff, 0x03,
+ 0xc0, 0xff, 0xff, 0xff, 0xff, 0x03, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x03,
+ 0xf0, 0xff, 0xff, 0xff, 0xff, 0x03, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x07,
+ 0xf0, 0xff, 0xff, 0xff, 0xff, 0x03, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x01,
+ 0xe0, 0xff, 0xff, 0xff, 0xff, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x7f, 0x00,
+ 0x80, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x07, 0x00,
+ 0x00, 0xe0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/Master/tlpkg/tlgs/lib/gs_lev2.ps b/Master/tlpkg/tlgs/lib/gs_lev2.ps
index de632671ecc..468ad54d455 100644
--- a/Master/tlpkg/tlgs/lib/gs_lev2.ps
+++ b/Master/tlpkg/tlgs/lib/gs_lev2.ps
@@ -13,7 +13,7 @@
% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
-% $Id: gs_lev2.ps 8119 2007-07-12 13:34:24Z alexcher $
+% $Id: gs_lev2.ps 8174 2007-08-04 14:30:04Z alexcher $
% Initialization file for Level 2 functions.
% When this is run, systemdict is still writable,
% but (almost) everything defined here goes into level2dict.
@@ -770,6 +770,10 @@ end
/.setcolorrendering1 where { pop } { (%END CRD) .skipeof } ifelse
.colorrenderingtypes 1 {
+ % Adobe ProcSet "Adobe_AGM_Core 2.0 0" places an /Intent key into CRD's
+ dup /Intent .knownget {
+ //.renderingintentdict exch .knownget { .setrenderingintent } if
+ } if
dup .buildcolorrendering1 .setcolorrendering1
} .bind put
diff --git a/Master/tlpkg/tlgs/lib/gs_m.xbm b/Master/tlpkg/tlgs/lib/gs_m.xbm
new file mode 100644
index 00000000000..a94e079e257
--- /dev/null
+++ b/Master/tlpkg/tlgs/lib/gs_m.xbm
@@ -0,0 +1,16 @@
+#define gs_m.xbm_width 32
+#define gs_m.xbm_height 32
+#define gs_m.xbm_x_hot 0
+#define gs_m.xbm_y_hot 0
+static unsigned char gs.m.bm_bits[] = {
+ 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x48, 0x00,
+ 0x00, 0xf8, 0xc7, 0x00, 0x00, 0xff, 0xc1, 0x00, 0x80, 0x3f, 0xf0, 0x00,
+ 0xc0, 0x0f, 0xf8, 0x01, 0xc0, 0x87, 0xfc, 0x03, 0xe0, 0xa7, 0xfc, 0x03,
+ 0xe0, 0x27, 0xf8, 0x03, 0xe0, 0x07, 0xf0, 0x03, 0xc0, 0x0f, 0xe3, 0x01,
+ 0x80, 0x1f, 0xe3, 0x00, 0x00, 0x3f, 0x60, 0x00, 0x00, 0x7c, 0x10, 0x00,
+ 0xc0, 0x3f, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x00,
+ 0xf0, 0xff, 0x7f, 0x00, 0xf0, 0xff, 0xff, 0x03, 0xe0, 0xff, 0xff, 0x07,
+ 0xc0, 0xff, 0xff, 0x0f, 0x00, 0xff, 0xff, 0x1f, 0x00, 0x00, 0xe0, 0x1f,
+ 0xf0, 0x00, 0x80, 0x0f, 0x78, 0x10, 0x80, 0x07, 0x78, 0x10, 0xc0, 0x13,
+ 0x70, 0xe0, 0xff, 0x08, 0xf0, 0x00, 0x00, 0x06, 0xc0, 0x03, 0xe0, 0x01,
+ 0x00, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/Master/tlpkg/tlgs/lib/gs_m.xpm b/Master/tlpkg/tlgs/lib/gs_m.xpm
new file mode 100644
index 00000000000..d99770097a9
--- /dev/null
+++ b/Master/tlpkg/tlgs/lib/gs_m.xpm
@@ -0,0 +1,44 @@
+/* XPM */
+static char * gs_m_xpm[] = {
+/* width height ncolors cpp [x_hot y_hot] */
+"32 32 6 1 0 0",
+/* colors */
+" s none m none c none",
+". s iconColor1 m black c black",
+"X s iconColor2 m white c white",
+"o c #C0C0C0C0C0C0",
+"O c #808080808080",
+"+ c #00000000FFFF",
+/* pixels */
+" .X ",
+" .X. ",
+" .XX. ",
+" ........XXX.. ",
+" .........oXXXo.. ",
+" .......XXXXXXO... ",
+" ......XXXXXXX...... ",
+" .....XXXX+XX........ ",
+" ......XX+X+XX........ ",
+" ......XX+XXXXX....... ",
+" ......XXXXXXXXX...... ",
+" ......XXXX++XXX.... ",
+" .....OXXX++XXX... ",
+" ......XXXXXXX.. ",
+" .....XXXXX. ",
+" ........XXXXXXX ",
+" .....XXXXXXXXXXXX ",
+" .......XXXXXXXXXXXX ",
+" ...................X ",
+" ...................... ",
+" ...................... ",
+" ...................... ",
+" ..................... ",
+" XXXXXXXXXXXX........ ",
+" ....XXXXXXXXXXXXXXX.....X ",
+" ....XXXXX.XXXXXXXXXX....XX ",
+" ....XXXXX.XXXXXXXXX....XX. ",
+" ...XXXXXX...........XXX. ",
+" ....XXXXXXXXXXXXXXXXX.. ",
+" ....XXXXXXXXXXX.... ",
+" ............. ",
+" "};
diff --git a/Master/tlpkg/tlgs/lib/gs_m_m.xbm b/Master/tlpkg/tlgs/lib/gs_m_m.xbm
new file mode 100644
index 00000000000..c792a4f5239
--- /dev/null
+++ b/Master/tlpkg/tlgs/lib/gs_m_m.xbm
@@ -0,0 +1,16 @@
+#define gs_m_m.xbm_width 32
+#define gs_m_m.xbm_height 32
+#define gs_m_m.xbm_x_hot 0
+#define gs_m_m.xbm_y_hot 0
+static unsigned char gs.m_m.bm_bits[] = {
+ 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x78, 0x00,
+ 0x00, 0xf8, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x80, 0xff, 0xff, 0x00,
+ 0xc0, 0xff, 0xff, 0x01, 0xc0, 0xff, 0xff, 0x03, 0xe0, 0xff, 0xff, 0x03,
+ 0xe0, 0xff, 0xff, 0x03, 0xe0, 0xff, 0xff, 0x03, 0xc0, 0xff, 0xff, 0x01,
+ 0x80, 0xff, 0xff, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0xfc, 0x1f, 0x00,
+ 0xc0, 0xff, 0x1f, 0x00, 0xe0, 0xff, 0x3f, 0x00, 0xf0, 0xff, 0x7f, 0x00,
+ 0xf0, 0xff, 0xff, 0x00, 0xf0, 0xff, 0xff, 0x03, 0xe0, 0xff, 0xff, 0x07,
+ 0xc0, 0xff, 0xff, 0x0f, 0x00, 0xff, 0xff, 0x1f, 0x00, 0xfe, 0xff, 0x1f,
+ 0xf0, 0xff, 0xff, 0x1f, 0xf8, 0xff, 0xff, 0x1f, 0xf8, 0xff, 0xff, 0x1f,
+ 0xf0, 0xff, 0xff, 0x0f, 0xf0, 0xff, 0xff, 0x07, 0xc0, 0xff, 0xff, 0x01,
+ 0x00, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/Master/tlpkg/tlgs/lib/gs_pdfwr.ps b/Master/tlpkg/tlgs/lib/gs_pdfwr.ps
index 494fb30cec5..acd5b73a83b 100644
--- a/Master/tlpkg/tlgs/lib/gs_pdfwr.ps
+++ b/Master/tlpkg/tlgs/lib/gs_pdfwr.ps
@@ -13,7 +13,7 @@
% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
-% $Id: gs_pdfwr.ps 7814 2007-04-01 19:14:49Z leonardo $
+% $Id: gs_pdfwr.ps 8178 2007-08-05 13:55:26Z leonardo $
% PDF writer additions to systemdict.
% This file should be included iff the pdfwrite "device" is included
@@ -682,6 +682,7 @@ currentdict /.pdf_hook_DSC_Creator undef
/EmbedAllFonts { }
/MaxSubsetPct { }
/SubsetFonts { }
+ /DSCEncodingToUnicode { }
.dicttomark readonly def
/.distillerdevice
{ currentdevice .devicename dup /pdfwrite eq exch /ps2write eq or
@@ -754,6 +755,37 @@ currentdict /.pdf_hook_DSC_Creator undef
} ifelse
} .bind odef
+% Create a table for translation DSC comments into Unicode UTF-16
+/.make_DSC_translation_table { % <encoding> .make_DSC_translation_table <array>
+ dup type /stringtype eq {
+ cvn
+ } if
+ dup type /nametype eq {
+ /Encoding findresource
+ } if
+ dup length array exch % [out] [in]
+ 0 1 2 index length 1 sub { % [out] [in] i
+ dup 2 index exch get % [out] [in] i n
+ dup dup null eq exch /.notdef eq or {
+ pop -1
+ } {
+ dup //AdobeGlyphList exch .knownget { % [out] [in] i n c
+ dup type dup /arraytype eq exch /packedarraytype eq or {
+ 0 get % fixme: using the 1st char
+ } if
+ exch pop % [out] [in] i c
+ } { % [out] [in] i n
+ (DSCEncoding defines a character that is not in AdobeGlyphList : )
+ exch .namestring concatstrings =
+ /.make_DSC_translation_table cvx /undefined signalerror
+ } ifelse
+ } ifelse
+ 3 index % [out] [in] i c [out]
+ 3 1 roll put % [out] [in]
+ } for
+ pop % [out]
+} bind def
+
1000 % priority
{
% Note, this may not work if the initial device is not pdfwrite
@@ -792,6 +824,14 @@ currentdict /.pdf_hook_DSC_Creator undef
systemdict 2 index known { pop pop } { def } ifelse
} forall
} repeat
+ currentdevice .devicename /pdfwrite eq {
+ systemdict /PDFX known systemdict /PDFA known or {
+ /DSCEncoding where {
+ /DSCEncoding get .make_DSC_translation_table
+ /DSCEncodingToUnicode exch def
+ } if
+ } if
+ } if
currentdict end .setdistillerparams
.distillerdevice //null false mark .putdeviceparams
dup type /booleantype eq not { cleartomark pop } if pop pop
diff --git a/Master/tlpkg/tlgs/lib/gs_s.xbm b/Master/tlpkg/tlgs/lib/gs_s.xbm
new file mode 100644
index 00000000000..4d5234f63e1
--- /dev/null
+++ b/Master/tlpkg/tlgs/lib/gs_s.xbm
@@ -0,0 +1,11 @@
+#define gs_s.xbm_width 24
+#define gs_s.xbm_height 24
+#define gs_s.xbm_x_hot 0
+#define gs_s.xbm_y_hot 0
+static unsigned char gs.s.bm_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x80, 0x08, 0x00, 0x00, 0x13,
+ 0x00, 0x00, 0x33, 0x00, 0xfe, 0x31, 0xe0, 0xff, 0x38, 0xf0, 0x3f, 0x38,
+ 0xf8, 0x07, 0x7e, 0xfc, 0x01, 0x7f, 0xfe, 0x90, 0x7f, 0x7e, 0x94, 0x7f,
+ 0x7e, 0x84, 0x7f, 0x7e, 0x00, 0x7f, 0x7e, 0x00, 0x7e, 0xfc, 0x60, 0x7c,
+ 0xfc, 0x61, 0x38, 0xf8, 0x03, 0x38, 0xf8, 0x03, 0x18, 0xf0, 0x07, 0x0c,
+ 0xc0, 0x0f, 0x06, 0xc0, 0x07, 0x03, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00};
diff --git a/Master/tlpkg/tlgs/lib/gs_s.xpm b/Master/tlpkg/tlgs/lib/gs_s.xpm
new file mode 100644
index 00000000000..765d9d79dd5
--- /dev/null
+++ b/Master/tlpkg/tlgs/lib/gs_s.xpm
@@ -0,0 +1,36 @@
+/* XPM */
+static char * gs_s_xpm[] = {
+/* width height ncolors cpp [x_hot y_hot] */
+"24 24 6 1 0 0",
+/* colors */
+" s none m none c none",
+". c #808080808080",
+"X s iconColor1 m black c black",
+"o c #C0C0C0C0C0C0",
+"O s iconColor2 m white c white",
+"+ c #00000000FFFF",
+/* pixels */
+" ",
+" .. ",
+" XoOo. ",
+" X.OoX ",
+" X.OoX. ",
+" .XXXXXX.oOoXX ",
+" ..XXXXXXXX.oOO.XX ",
+" XXXXXXXX..oOOOo.XX ",
+" XXXXXXX.OOOOOo.XXXX. ",
+" XXXXXX.OOOOOOOXXXXXXX ",
+" .XXXXX.OOOO+OOXXXXXXXX ",
+" XXXXXXOOO+O+OOXXXXXXXX ",
+" XXXXXXOOO+OOOOXXXXXXXX ",
+" XXXXXXOOOOOOOOOXXXXXXX ",
+" .XXXXXOOOOOOOOOO.XXXXX ",
+" XXXXXXOOOOO++OOO.XXXX ",
+" .XXXXX.OOOO++OOOoXXX ",
+" XXXXXX.OOOOOOOOOXXX ",
+" .XXXXXXoOOOOOOOoXX ",
+" .XXXXXXoOOOOOo.X ",
+" .XXXXXOOOOO.X ",
+" .XXXXOOOOO.. ",
+" XXXXXOOOOOOOO ",
+" "};
diff --git a/Master/tlpkg/tlgs/lib/gs_s_m.xbm b/Master/tlpkg/tlgs/lib/gs_s_m.xbm
new file mode 100644
index 00000000000..941e9c48475
--- /dev/null
+++ b/Master/tlpkg/tlgs/lib/gs_s_m.xbm
@@ -0,0 +1,11 @@
+#define gs_s_m.xbm_width 24
+#define gs_s_m.xbm_height 24
+#define gs_s_m.xbm_x_hot 0
+#define gs_s_m.xbm_y_hot 0
+static unsigned char gs.s_m.bm_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x1f,
+ 0x00, 0x00, 0x3f, 0x00, 0xfe, 0x3f, 0xe0, 0xff, 0x3f, 0xf0, 0xff, 0x3f,
+ 0xf8, 0xff, 0x7f, 0xfc, 0xff, 0x7f, 0xfe, 0xff, 0x7f, 0xfe, 0xff, 0x7f,
+ 0xfe, 0xff, 0x7f, 0xfe, 0xff, 0x7f, 0xfe, 0xff, 0x7f, 0xfc, 0xff, 0x7f,
+ 0xfc, 0xff, 0x3f, 0xf8, 0xff, 0x3f, 0xf8, 0xff, 0x1f, 0xf0, 0xff, 0x0f,
+ 0xc0, 0xff, 0x07, 0xc0, 0xff, 0x03, 0xf0, 0xff, 0x01, 0x00, 0x00, 0x00};
diff --git a/Master/tlpkg/tlgs/lib/gs_t.xbm b/Master/tlpkg/tlgs/lib/gs_t.xbm
new file mode 100644
index 00000000000..e35c2b7acb8
--- /dev/null
+++ b/Master/tlpkg/tlgs/lib/gs_t.xbm
@@ -0,0 +1,8 @@
+#define gs_t.xbm_width 16
+#define gs_t.xbm_height 16
+#define gs_t.xbm_x_hot 0
+#define gs_t.xbm_y_hot 0
+static unsigned char gs.t.bm_bits[] = {
+ 0x00, 0x10, 0x00, 0x20, 0x00, 0x68, 0xf0, 0x67, 0xfc, 0x61, 0x7e, 0x70,
+ 0x1f, 0xf9, 0x4f, 0xfd, 0x4f, 0xfc, 0x0f, 0xf8, 0x1f, 0xf3, 0x1e, 0xe3,
+ 0x3e, 0x60, 0x7c, 0x30, 0x70, 0x0c, 0x1e, 0x00};
diff --git a/Master/tlpkg/tlgs/lib/gs_t.xpm b/Master/tlpkg/tlgs/lib/gs_t.xpm
new file mode 100644
index 00000000000..8b587ecd69d
--- /dev/null
+++ b/Master/tlpkg/tlgs/lib/gs_t.xpm
@@ -0,0 +1,28 @@
+/* XPM */
+static char * gs_t_xpm[] = {
+/* width height ncolors cpp [x_hot y_hot] */
+"16 16 6 1 0 0",
+/* colors */
+" s none m none c none",
+". s iconColor1 m black c black",
+"X s iconColor2 m white c white",
+"o c #808080808080",
+"O c #C0C0C0C0C0C0",
+"+ c #00000000FFFF",
+/* pixels */
+" . ",
+" X. ",
+" .X.o ",
+" o......XX.. ",
+" .......OXXX.. ",
+" ......XXXXXo.. ",
+"o....XXX+XX.....",
+"....XX+X+Xo.....",
+"....XX+XXXo.....",
+"....XXXXXXX.....",
+"o...oXXX++XX....",
+" ....XXX++XXX..o",
+" ....oXXXXXXX.. ",
+" .....XXXXX.. ",
+" ...XXXoo ",
+" o...XXXXXXX "};
diff --git a/Master/tlpkg/tlgs/lib/gs_ttf.ps b/Master/tlpkg/tlgs/lib/gs_ttf.ps
index e657112b199..e6295825fbb 100644
--- a/Master/tlpkg/tlgs/lib/gs_ttf.ps
+++ b/Master/tlpkg/tlgs/lib/gs_ttf.ps
@@ -13,7 +13,7 @@
% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
-% $Id: gs_ttf.ps 8022 2007-06-05 22:23:38Z giles $
+% $Id: gs_ttf.ps 8556 2008-02-28 14:56:32Z alexcher $
% Support code for direct use of TrueType fonts.
% (Not needed for Type 42 fonts.)
@@ -138,12 +138,61 @@ currentdict /tt_tag_dict .undef
exch pop
} bind def
+% Make /MacRomanEncodingForTrueType including additional
+% characters in Mac OS Roman encoding, which is missing
+% in /MacRomanEncoding. See PDF spec 1.7, p. 431 or
+% "Inside Macintosh: Text" 1-55, Figure 1-36.
+% This is useful to exploit the glyphs via Apple Roman
+% TrueType cmap subtable, but not appropriate for information
+% interchange.
+
+/MacRomanEncodingForTrueType
+ /MacRomanEncoding .findencoding
+ dup length array copy
+ <<
+ /notequal 173
+ /infinity 176
+ /lessequal 178
+ /greaterequal 179
+ /partialdiff 182
+ /summation 183
+ /product 184
+ /pi 185
+ /integral 186
+ /Omega 189
+ /radical 195
+ /approxequal 197
+ /Delta 198
+ /lozenge 215
+ /Euro 219
+ /apple 240
+ >> {
+ TTFDEBUG { (Extend MacRomanEncodingForTrueType for TrueType: ) =only } if
+
+ % check /.notdef to avoid overwriting
+ 2 index 1 index get dup /.notdef eq {
+ TTFDEBUG { (insert /) =only 2 index =only ( @ ) =only 1 index == } if
+ pop
+ exch 2 index 3 1 roll put
+ } {
+ TTFDEBUG { (cannot insert /) =only 2 index =only ( @ ) =only 1 index =only ( used for ) =only dup == } if
+ pop
+ pop pop
+ } ifelse
+ } forall
+ aload pop
+ 256 packedarray
+ 5 1 index .registerencoding
+.defineencoding
+
% Define the Macintosh standard mapping from characters to glyph indices.
/MacRomanEncoding dup .findencoding def
/MacGlyphEncoding dup .findencoding def
+/MacRomanEncodingForTrueType dup .findencoding def
% Invert the MacRomanEncoding.
-/.romanmacdict MacRomanEncoding .invert_encoding def
+/.romanmacdict MacRomanEncodingForTrueType .invert_encoding def
+/.latin1isodict ISOLatin1Encoding .invert_encoding def
% Define remapping for misnamed glyphs in TrueType 'post' tables.
% There are probably a lot more than this!
@@ -527,13 +576,8 @@ currentdict /tt_tag_dict .undef
5 index 4 index 3 index % s o p lSi minl from s p minl
getinterval % s o p lSi minl from to
copy pop % s o p lSi minl
- 3 1 roll % s o minl p lSi
- sub % s o minl p'
- 3 1 roll add % s p' o'
- dup 3 index length ge {
- exch exit % s o p'
- } if
- exch % s o' p'
+ exch pop add exch pop 0 exch % s 0 p'
+ dup 3 index length ge { exit } if
} ifelse
} forall
pop pop % s
@@ -573,9 +617,41 @@ currentdict /tt_tag_dict .undef
postglyphs postpos //get_from_stringarray exec
postglyphs postpos 1 add 2 index //getinterval_from_stringarray exec cvn
exch postpos add 1 add /postpos exch def
- 2 index 3 1 roll put
+ 2 index 3 1 roll
+ put
} for
/postnames exch def
+
+ % Some TrueType fonts converted by "Windows Type 1 Installer" have
+ % problematic post table including MacGlyphEncoding entries which
+ % should be omitted. Such extra entries in the beginning of glyphName
+ % array make /Encoding broken. If we find populary predefined
+ % ISOLatin1Encoding glyph name in the post table, empty encoding is
+ % returned. Some TrueType fonts for Microsoft Windows redefines
+ % MacGlyphEncoding glyph name out of predefined range). To permit
+ % such fonts, ISOLatin1Encoding is used to find broken post. Bug 689495.
+ /.broken_post //false def
+ tabdict /name .knownget {
+ (Windows Type 1 Installer V1.0) search {
+ pop pop pop
+ .latin1isodict postnames {
+ dup //null ne
+ % dup /.notdef ne and
+ {
+ 2 copy known {
+ TTFDEBUG { (ignore post table that redefines ISOLatin1Encoding glyph name ) print dup == flush } if
+ /.broken_post //true def
+ pop exit
+ } if
+ } if
+ pop
+ } forall
+ pop
+ } {
+ pop
+ } ifelse
+ } if
+
numglyphs array 0 1 numglyphs 1 sub {
dup 2 mul 34 add postglyphs exch 2 //getinterval_from_stringarray exec
dup 0 get 8 bitshift exch 1 get add dup 258 lt {
@@ -603,6 +679,18 @@ currentdict /tt_tag_dict .undef
} ifelse
2 index 3 1 roll put
} for
+
+ .broken_post {
+ pop
+ 0 1 postnames length 1 sub {
+ postnames 1 index get null eq {
+ postnames 1 index /.notdef put
+ } if
+ pop
+ } for
+
+ [ postnames aload length 1 roll ]
+ } if
}
ifelse
} bind
@@ -1074,8 +1162,13 @@ mark
} if
/cmapsub 1 index def
dup 4 getu32 % bool [] i PlatID SpecID (cmap) (cmapsub) p
- cmaptab length 1 index sub % bool [] i PlatID SpecID (cmap) (cmapsub) p l
- cmaptab 3 1 roll getinterval
+ cmaptab 1 index getu16a % get cmap format
+ 8 lt { % length for traditional 16bit format 0, 2, 4, 6
+ cmaptab 1 index 2 add getu16a
+ } { % length for advanced 32bit format 8, 10, 12
+ cmaptab 1 index 4 add getu32a
+ } ifelse % bool [] i PlatID SpecID (cmap) (cmapsub) p l
+ cmaptab 3 1 roll getinterval_from_stringarray
/cmaptab exch def % bool [] i PlatID SpecID (cmap) (cmapsub)
5 index 5 index 1 add get % bool [] i PlatID SpecID (cmap) (cmapsub) /Decoding
/Decoding exch def % bool [] i PlatID SpecID (cmap) (cmapsub)
@@ -1378,14 +1471,10 @@ mark
exch
} if
2 index 1 index known
- { dup /.notdef eq {
- pop pop % discard duplicate .notdef glyphs
- } {
- % The same name maps to more than one glyph. Change the name.
- pop dup .nname 3 index 2 index 2 index put
- 2 index exch 3 -1 roll put
- }
- ifelse
+ { % The same name maps to more than one glyph. Change the name.
+ % No special treatment for /.notdef glyph. Bug 689408.
+ pop dup .nname 3 index 2 index 2 index put
+ 2 index exch 3 -1 roll put
} {
2 index exch 3 -1 roll put % unique name
} ifelse
@@ -1760,8 +1849,29 @@ currentdict /postalias undef
<00030001> .findcmap {
prebuilt_encoding null ne {
TTFDEBUG { (Using cmap 3.1 with prebuilt_encoding for non-symbolic.) = } if
+
+ % The character code in /prebuilt_encoding[] is not guaranteed to be
+ % compatible with the Microsoft UCS2 TrueType cmap subtable.
+ % If the glyphname is known by AdobeGlyphList, the charcode for the glyph
+ % is replaced by UCS2 charcode from AdobeGlyphList. Otherwise it is left
+ % as in /prebuilt_encoding[]. /.pdfmapchars should dredge them.
+
/.allow_uniXXXX_glyph_names //true def
- prebuilt_encoding .invert_encoding .pdfmapchars
+ AdobeGlyphList prebuilt_encoding .invert_encoding dup { % <<AGL>> <<pbe>> <glyphname> <pbecode>
+ pop % <<AGL>> <<pbe>> <glyphname>
+ TTFDEBUG { (check glypname /) print dup =only flush } if
+ 2 index 1 index .knownget { % <<AGL>> <<pbe>> <glyphname> <AGLcode>
+ 2 index 3 1 roll % <<AGL>> <<pbe>> <<pbe>> <glyphname> <AGLcode>
+ TTFDEBUG { ( redefine codepoint by AdobeGlyphList, ) print dup == flush } if
+ put % <<AGL>> <<pbe>>
+ } { % <<AGL>> <<pbe>> <glyphname>
+ TTFDEBUG { ( unknown glyphname, leave as it is ) print flush } if
+ pop % <<AGL>> <<pbe>>
+ } ifelse
+ } forall
+ exch pop % <<pbe>>
+ TTFDEBUG { dup (<<\n) print { exch ( ) print =only (\t) print == } forall (>>\n) print flush } if
+ .pdfmapchars
/Encoding prebuilt_encoding
} {
% Likely this branch is now obsolete.
@@ -1776,7 +1886,12 @@ currentdict /postalias undef
<00010000> .findcmap {
TTFDEBUG { (Using cmap 1.0 for non-symbolic.) = } if
.romanmacdict .pdfmapchars
- /Encoding /MacRomanEncoding .findencoding
+ /Encoding
+ prebuilt_encoding null ne {
+ prebuilt_encoding
+ } {
+ /MacRomanEncodingForTrueType .findencoding
+ } ifelse
} {
% Apply the default algorithm for using the 'post'.
.charkeys
@@ -1793,6 +1908,36 @@ currentdict /postalias undef
/is_symbolic gput
//false 0 .loadttfonttables
.makesfnts
+ tabdict /cmap known not {
+ ( **** Warning: Embedded TT font lacks required cmap table. Using identity cmap.\n)
+ pdfformaterror
+ % Unknown (i.e. not 0 ) language ID brings in post table.
+ % Fields: cmap_version, number_of_subtables,
+ % plarform_id, encoding_id, offset,
+ % format, subtable_length, language,
+ % 256 bytes of identity mapping.
+ tabdict /cmap
+ < 0000 0001
+ 0001 D00D 0000000c
+ 0000 0106 0000
+ 00 01 02 03 04 05 06 07 08 09 0a 0d 0c 0d 0e 0f
+ 10 11 12 13 14 15 16 17 18 19 1a 1d 1c 1d 1e 1f
+ 20 21 22 23 24 25 26 27 28 29 2a 2d 2c 2d 2e 2f
+ 30 31 32 33 34 35 36 37 38 39 3a 3d 3c 3d 3e 3f
+ 40 41 42 43 44 45 46 47 48 49 4a 4d 4c 4d 4e 4f
+ 50 51 52 53 54 55 56 57 58 59 5a 5d 5c 5d 5e 5f
+ 60 61 62 63 64 65 66 67 68 69 6a 6d 6c 6d 6e 6f
+ 70 71 72 73 74 75 76 77 78 79 7a 7d 7c 7d 7e 7f
+ 80 81 82 83 84 85 86 87 88 89 8a 8d 8c 8d 8e 8f
+ 90 91 92 93 94 95 96 97 98 99 9a 9d 9c 9d 9e 9f
+ a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 aa ad ac ad ae af
+ b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 ba bd bc bd be bf
+ c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 ca cd cc cd ce cf
+ d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 da dd dc dd de df
+ e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 ea ed ec ed ee ef
+ f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 fa fd fc fd fe ff
+ > readonly put
+ } if
.getpost
.pickcmap
mark
diff --git a/Master/tlpkg/tlgs/lib/gs_typ42.ps b/Master/tlpkg/tlgs/lib/gs_typ42.ps
index 9c8585f39b2..2ef6058954e 100644
--- a/Master/tlpkg/tlgs/lib/gs_typ42.ps
+++ b/Master/tlpkg/tlgs/lib/gs_typ42.ps
@@ -13,7 +13,7 @@
% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
-% $Id: gs_typ42.ps 7107 2006-10-15 17:19:45Z ray $
+% $Id: gs_typ42.ps 8537 2008-02-22 10:09:30Z leonardo $
% Type 42 font support code.
% Here are the BuildChar and BuildGlyph implementation for Type 42 fonts.
@@ -54,7 +54,7 @@ buildfontdict 42
} bind put
//.buildfont3 exec
} {
- //.buildfont42 exec
+ systemdict /.buildfont42 get exec
} ifelse
} bind
put
diff --git a/Master/tlpkg/tlgs/lib/gslp.ps b/Master/tlpkg/tlgs/lib/gslp.ps
new file mode 100644
index 00000000000..c520be656d9
--- /dev/null
+++ b/Master/tlpkg/tlgs/lib/gslp.ps
@@ -0,0 +1,695 @@
+% Copyright (C) 1991, 1995, 1996, 1997, 1998, 1999 Aladdin Enterprises. All rights reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% For more information about licensing, please refer to
+% http://www.ghostscript.com/licensing/. For information on
+% commercial licensing, go to http://www.artifex.com/licensing/ or
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
+% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
+
+% $Id: gslp.ps 6300 2005-12-28 19:56:24Z giles $
+% gslp.ps - format and print text
+
+% This utility provides functionality approximately equivalent to the Unix
+% `enscript' program. It prints plain text files using a single font.
+% It currently handles tabs and formfeeds, but not backspaces.
+% It will line-wrap when using fixed-pitch fonts.
+% It will also do kerning and width adjustment.
+% Standard switches implemented:
+% -12BclqRr -b<header> -f<font> -F<hfont> -L<lines> -p<outfile>
+% Sun switches implemented:
+% -T<n> set tab width
+% Switches ignored:
+% -GghKkmow -# -C -d -J -n -P -S -s -t -v
+% Switches added:
+% --add-to-space <units>
+% add the given number of 1/72" units to the width of each
+% space (may be negative)
+% --add-to-width <units>
+% add the given number of 1/72" units to the width of each
+% character (may be negative)
+% --columns <n>
+% print in <n> columns
+% --detect
+% treat the file as PostScript if it starts with %!
+% --first-page <n>
+% start printing at page <n>
+% --kern <file.afm>
+% kern using information from the given .AFM file
+% --last-page <n>
+% stop printing after page <n>
+% --(heading|footing)-(left|center|right) <string>
+% set the heading/footing fields; use -B first to clear
+% --margin-(top|bottom|left|right) <inches>
+% set a margin
+% --no-eject-(file|formfeed)
+% end-of-file/FF only starts a new column, not a new sheet
+% --spacing <n>
+% use double (n=2), triple (n=3), etc. spacing
+% Also, the string %# in a heading or footing is replaced with the page #.
+/PageNumberString (%#) def
+
+/lpdict 150 dict def
+lpdict begin
+
+% build iso-latin-1 version of a font
+/font-to-iso-latin-1 { % <font> font-to-iso-latin-1 <font>
+ %% reencode for iso latin1; from the 2nd edition red book, sec 5.6.1
+ dup length dict begin {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding ISOLatin1Encoding def currentdict end
+ dup /FontName get 80 string cvs (-ISOLatin1) concatstrings cvn
+ exch definefont
+} def
+
+/find-latin-font { % <name> find-latin-font <font>
+ findfont font-to-iso-latin-1
+} def
+
+% Define the initial values of the printing parameters.
+
+/AddToSpace 0 def
+/AddToWidth 0 def
+/BodyFont null def % use default
+ /defaultBodyFontPortrait
+ /Courier find-latin-font 10 scalefont def
+ /defaultBodyFontLandscape
+ /Courier find-latin-font 7 scalefont def
+ /defaultBodyFont
+ { Landscape { defaultBodyFontLandscape } { defaultBodyFontPortrait } ifelse } def
+/Columns 1 def
+/DetectFileType false def
+/EjectEOF true def
+/EjectFF true def
+/Footers false def
+/FootingLeft () def
+/FootingCenter () def
+/FootingRight () def
+/Headers true def
+/HeadingLeft () def
+/HeadingCenter () def
+/HeadingRight (page ) PageNumberString concatstrings def
+/HeadingFont null def % use default
+ /defaultHeadingFont
+ /Courier-Bold find-latin-font 10 scalefont def
+/Kern 0 dict def % no kerning
+/Landscape false def
+/MarginBottom 36 def % 1/2"
+/MarginLeft 36 def % 1/2"
+/MarginRight 36 def % 1/2"
+/MarginTop 36 def % 1/2"
+/MaxLines 9999 def % max lines per page
+/Noisy true def % i.e., not quiet
+/OutFile null def % null = write directly to device
+/PageFirst 1 def
+/PageLast 99999 def
+/Spacing 1 def
+/Tab 8 def
+/Truncate false def % wrap long lines, don't truncate
+
+% When writing to a file, we want to write out PostScript;
+% when writing to the printer, we want to execute it;
+% some commands should be executed regardless.
+% lpexec provides for all this.
+
+/lpdef { % <name> <value> lpdef -
+ /def 2 true lpexec
+} def
+
+/lpexec { % <arg1> ... <argn> </op> <n> <do_always> lpexec -
+ OutFile null eq {
+ pop 1 add true
+ } {
+ /t exch def 1 add /n exch def cvx
+ n -1 roll dup wo
+ n 1 sub { n -1 roll dup wosp } repeat
+ (\n) ws n t
+ } ifelse
+ { pop load exec }
+ { { pop } repeat }
+ ifelse
+} def
+
+/lpmoveto { % <x> <y> lpmoveto -
+ % Round the coordinates for smaller output.
+ 2 {
+ exch 100 mul round 100 div
+ dup dup cvi eq { cvi } if
+ } repeat
+ 1 index X eq { neg exch pop /V 1 } { neg /M 2 } ifelse true lpexec
+} def
+/lpshow { % <string> lpshow -
+ dup length 0 ne {
+ addspace 0 ne {
+ addspace 0 32
+ addwidth 0 ne {
+ addwidth 0 6 -1 roll /awidthshow 6 true lpexec
+ } {
+ 4 -1 roll /widthshow 4 true lpexec
+ } ifelse
+ } {
+ addwidth 0 ne {
+ addwidth 0 3 -1 roll /ashow 3 true lpexec
+ } {
+ OutFile null ne {
+ dup dup length =string length gt {
+ /show 1 false lpexec
+ } {
+ (S ) ws ws (\n) ws
+ } ifelse
+ } if show
+ } ifelse
+ } ifelse
+ } {
+ pop
+ } ifelse
+} def
+/lpsetmyfont {
+ dup load setfont
+ OutFile null ne { cvx /setfont 1 false lpexec } { pop } ifelse
+} def
+
+% Define some utility procedures.
+
+/banner % ypos left center right
+ { /HFont lpsetmyfont
+ /addspace 0 def /addwidth 0 def
+ /pairkern 0 dict def
+ 3 -1 roll bannerstring pop 0 4 index pwidth showline2 pop
+ exch bannerstring pwidth exch sub 2 div 3 index pwidth showline2 pop
+ bannerstring
+ % Prevent the last character of the heading from grazing
+ % the right margin.
+ % ****** WHY DOES IT REQUIRE SO MUCH PADDING? ******
+ ( ) stringwidth pop 2 mul add
+ pwidth exch sub
+ 3 -1 roll pwidth showline2 pop
+ } def
+
+/bannerstring % string -> string width
+ { PageNumberString search
+ { exch pop pindex 4 string cvs concatstrings exch concatstrings
+ }
+ if dup stringwidth pop
+ } def
+
+/beginpage
+ { /lindex 0 def
+ /skipping pindex PageFirst ge pindex PageLast le and not def
+ pagex pagey Landscape {/BL} {/B} ifelse 2 true lpexec
+ /pagesave exch def
+ skipping { nulldevice /OutFile null def } if
+ Headers
+ { lheight hdescent add
+ HeadingLeft HeadingCenter HeadingRight banner
+ } if
+ /BFont lpsetmyfont
+ /pairkern Kern def
+ /addspace AddToSpace def /addwidth AddToWidth def
+ pairkern length 0 ne {
+ /addspace AddToSpace lpdef /addwidth AddToWidth lpdef
+ } if
+ } def
+
+/endpage {
+ lindex 0 ne {
+ Footers {
+ topskip plength sub hdescent add
+ FootingLeft FootingCenter FootingRight banner
+ } if
+ /E
+ } {
+ /restore
+ } ifelse
+ pagesave exch 0 true lpexec
+ /pindex pindex 1 add def
+} def
+
+/endcolumn
+ { lindex colines 1 sub add colines idiv colines mul
+ dup llength ge { pop endpage beginpage } { /lindex exch def } ifelse
+ } def
+
+/fontheight % <font> fontheight <ascent> <height>
+ { gsave setfont
+ newpath 0 0 moveto
+ (|^_j) false charpath
+ pathbbox exch pop dup 2 index sub 4 -2 roll pop pop
+ grestore exch 1.25 mul exch 1.25 mul
+ } def
+
+/wdict {
+ dup length wosp ( dict\n) ws
+ { (dup) ws exch wosp wosp ( put\n) ws } forall
+} def
+/wosp { ( ) ws wo } def
+/wo {
+ dup type /dicttype eq { wdict } { OutFile exch write==only } ifelse
+} def
+/ws {
+ OutFile exch writestring
+} def
+
+/outfont { % <name> <font> outfont -
+ OutFile null ne {
+ exch wo
+ dup /FontName get
+ dup wosp (-ISOLatin1) ws wosp ( RE) ws
+ /FontMatrix get 0 get 1000 mul round cvi wosp
+ ( scalefont def\n) ws
+ } {
+ pop pop
+ }ifelse
+} def
+
+/StringFF (\f) def
+/CharFF StringFF 0 get def
+/StringTAB (\t) def
+/CharTAB StringTAB 0 get def
+
+/showline % line -> leftover_line (handles \f)
+ { { showline1 dup length 0 eq { exit } if
+ dup 0 get CharFF ne { exit } if
+ EjectFF { endpage beginpage } { endcolumn } ifelse
+ skip1
+ }
+ loop
+ } def
+
+/showline1 % line -> leftover_line (handles page break)
+ { lindex llength eq { endpage beginpage } if
+ lindex colines idiv cowidth mul % x
+ lindex colines mod 1 add lheight mul neg fascent sub % y
+ 1 index cowidth add
+ showline2
+ /lindex lindex 1 add def
+ } def
+
+/setxy {
+ /ty exch def /tx exch def
+} def
+
+/showline2 { % string x y xlimit -> leftover_string (handles tabs)
+ 2 index exch 5 2 roll setxy {
+ % Stack: xinit xlimit string
+ showline3 dup length 0 eq { exit } if
+ dup 0 get CharTAB ne { exit } if
+ tx 3 index sub tabwx div
+ 0.05 add ceiling tabwx mul 3 index add ty setxy
+ skip1
+ tx 2 index ge { exit } if
+ } loop exch pop exch pop
+} def
+
+/showline3 { % xlimit string -> xlimit leftover_string
+ % (finds line break / tab / formfeed)
+ 1 index tx sub
+ cwx div 0.1 add cvi 0 .max 1 index length .min
+ 1 index 0 3 -1 roll getinterval
+ % look for \f or \t
+ StringFF search { exch pop exch pop } if
+ StringTAB search { exch pop exch pop } if
+ dup length 0 ne {
+ tx ty lpmoveto
+ dup pairkern length 0 eq {
+ lpshow
+ } {
+ { kproc } exch /kshow 2 true lpexec
+ } ifelse
+ currentpoint setxy
+ } if
+ length dup 2 index length exch sub getinterval
+} def
+
+/kproc { % <char1> <char2> kproc -
+ pairkern currentfont /Encoding get 3 index get
+ 2 copy known {
+ get currentfont /Encoding get 2 index get
+ 2 copy known {
+ get currentfont /FontMatrix get 0 get mul
+ } {
+ pop pop 0
+ } ifelse
+ } {
+ pop pop 0
+ } ifelse
+ addwidth add 2 index 32 eq { addspace add } if
+ dup 0 eq { pop } { 0 rmoveto } ifelse
+ pop pop
+} def
+
+/skip1
+ { dup length 1 sub 1 exch getinterval
+ } def
+
+/e== { % <object> e== - -- print an object to stderr
+ (%stderr) (w) file dup 3 -1 roll write==only flushfile
+} def
+
+/eprint { % <string> eprint - -- print a string to stderr
+ (%stderr) (w) file dup 3 -1 roll writestring flushfile
+} def
+
+% Read kerning information from a .AFM file.
+
+/readkern { % <afmfile> readkern <pairkerndict>
+ /mfilename 1 index def
+ (r) file /mfile exch def
+ mfile =string readline pop
+ (StartFontMetrics ) anchorsearch {
+ pop pop
+ /kdict 256 dict def
+ { mfile =string readline pop
+ (EndFontMetrics) anchorsearch { pop pop exit } if
+ (KPX ) anchorsearch {
+ pop token pop cvlit /char1 exch def
+ token pop cvlit /char2 exch def
+ token pop /kern exch def pop
+ kdict char1 .knownget not {
+ 5 dict kdict char1 2 index .growput
+ } if
+ char2 kern .growput
+ } {
+ pop
+ } ifelse
+ } loop kdict
+ } {
+ pop
+ mfilename eprint ( does not begin with StartFontMetrics.\n) eprint
+ 0 dict
+ } ifelse
+ mfile closefile
+} def
+
+% The main printing procedure
+
+/doFirst true def
+/prevBFont null def
+/prevHFont null def
+
+/lpfirst { % - lpfirst -
+% Define some abbreviating procedures.
+ /B {save 3 1 roll translate /X 0 def} lpdef
+ /BL {save 3 1 roll 90 rotate translate /X 0 def} lpdef
+ /E {showpage restore} lpdef
+ /V {neg X exch moveto} lpdef
+ /M {/X 2 index def neg moveto} lpdef
+ /S {currentfile =string readline pop show} lpdef
+ /RE { % <isoname> <fontname> RE <font>
+ findfont
+ %% reencode for iso latin1; from the 2nd edition red book, sec 5.6.1
+ dup length dict begin {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding ISOLatin1Encoding def currentdict end
+ definefont
+ } lpdef
+} def
+
+/lp { % file initial_chars ->
+ /lpline exch def
+ /lpfile exch def
+
+ doFirst { lpfirst /doFirst false def } if
+
+% Initialize the device and fonts.
+ /BFont
+ BodyFont null eq { defaultBodyFont } { BodyFont } ifelse def
+ BFont prevBFont ne {
+ /BFont BFont outfont
+ /prevBFont BFont def
+ } if
+ Headers Footers or {
+ /HFont
+ HeadingFont null eq { defaultHeadingFont } { HeadingFont } ifelse def
+ HFont prevHFont ne {
+ /HFont HFont outfont
+ /prevHFont HFont def
+ } if
+ } if
+ save
+
+% Get the layout parameters.
+ clippath
+ gsave % for possible rotation
+ Landscape { 90 rotate } if
+ BFont setfont ( ) stringwidth pop /cwx exch def
+ cwx Tab mul /tabwx exch def
+ BFont fontheight /fheight exch def /fascent exch def
+ Headers Footers or { HFont fontheight } { 0 0 } ifelse
+ /hheight exch def /hascent exch def
+ /hdescent hheight hascent sub def
+ fheight Spacing mul /lheight exch def
+ Headers { hheight lheight add } { 0 } ifelse
+ /topskip exch def
+ Footers { hheight lheight add } { 0 } ifelse
+ /botskip exch def
+ /pskip topskip botskip add def
+ % Translate the page so that (0,0) corresponds to
+ % the top of the topmost body line.
+ pathbbox
+ 2 index sub MarginBottom MarginTop add sub /plength exch def
+ 2 index sub MarginLeft MarginRight add sub /pwidth exch def
+ pwidth Columns div /cowidth exch def
+ exch MarginLeft add
+ exch MarginBottom add plength add topskip sub
+ /pagey exch def /pagex exch def
+ plength pskip sub lheight div cvi MaxLines .min
+ dup /colines exch def
+ Columns mul /llength exch def
+ grestore
+ OutFile null ne { nulldevice } if
+
+% Print layout
+ Noisy
+ { (Page height = ) eprint llength e==
+ (.\n) eprint flush
+ } if
+
+% Write the kerning table, if relevant.
+ OutFile null ne Kern length 0 ne and {
+ (/kproc) ws /kproc load wosp ( def\n) ws
+ (/pairkern) ws Kern wosp ( def\n) ws
+ } if
+
+% Disable stack recording so we can use stopped with readline.
+ $error /recordstacks false put
+
+% Initialize for the first page.
+ /lbuf 64000 string def
+ /pindex 1 def
+ beginpage
+
+% Iterate through the file.
+ lpline
+ { dup length /pos exch def
+ lbuf exch 0 exch putinterval
+ { lpfile lbuf pos lbuf length pos sub getinterval readline } stopped
+ { % Filled the line before a CR or EOF.
+ exch pop showline
+ }
+ { % Reached CR and/or EOF first.
+ exch length pos add lbuf exch 0 exch getinterval
+ 1 index { showline } if % omit final empty line
+ { dup length 0 eq Truncate or { pop () exit } if
+ showline
+ }
+ loop
+ exch not { exit } if
+ }
+ ifelse
+ pindex PageLast gt { exit } if
+ } loop
+ pop
+
+% Wrap up.
+%**************** WHY IS THIS COMMENTED OUT? ****************
+% EjectEOF { endpage } { endcolumn } ifelse
+ endpage
+ restore
+
+} def
+
+end
+
+% Usage: <file> lp
+% prints <file> using the current parameter settings.
+% Usage: [ <arg1> ... <argn> ] lpcommand
+% interprets args like a command line.
+
+/lp { save lpdict begin () lp end restore } def
+
+lpdict begin
+
+/splitfn % (FontNN.NN) -> <font>
+ { dup /arg exch def length
+ { dup 0 le { exit } if
+ dup 1 sub arg exch get dup 48 ge 1 index 59 le and exch 46 eq or not { exit } if
+ 1 sub
+ } loop
+ arg exch 0 exch getinterval dup cvn find-latin-font
+ exch arg exch anchorsearch pop pop cvr scalefont
+ } def
+
+% Parse the command line switches.
+
+/doswitch % argn ... arg1 (-?) restofswitch ->
+ { exch dup cvn lpdict exch known
+ { cvn load exec }
+ { exch pop (Unknown switch: ) eprint eprint (\n) eprint }
+ ifelse
+ } def
+
+/more % argn ... arg1 restofswitch ->
+ { dup length 0 ne
+ { (- ) dup 1 3 index 0 get put
+ exch dup length 1 sub 1 exch getinterval
+ doswitch
+ }
+ { pop
+ }
+ ifelse
+ } def
+
+/-- { (--) exch concatstrings
+ dup cvn lpdict exch known
+ { cvn load exec }
+ { (Unknown switch: ) eprint eprint (\n) eprint }
+ ifelse
+ } def
+/--add-to-space { cvr /AddToSpace exch def } def
+/--add-to-width { cvr /AddToWidth exch def } def
+/--columns { cvi 1 .max /Columns exch def } def
+/--detect { /DetectFileType true def } def
+/--first-page { cvi /PageFirst exch def } def
+/--footing-center { /FootingCenter exch def /Footers true def } def
+/--footing-left { /FootingLeft exch def /Footers true def } def
+/--footing-right { /FootingRight exch def /Footers true def} def
+/--heading-center { /HeadingCenter exch def /Headers true def } def
+/--heading-left { /HeadingLeft exch def /Headers true def } def
+/--heading-right { /HeadingRight exch def /Headers true def } def
+/--kern { readkern /Kern exch def } def
+/--last-page { cvi /PageLast exch def } def
+/--margin-bottom { cvr 72.0 mul /MarginBottom exch def } def
+/--margin-left { cvr 72.0 mul /MarginLeft exch def } def
+/--margin-right { cvr 72.0 mul /MarginRight exch def } def
+/--margin-top { cvr 72.0 mul /MarginTop exch def } def
+/--no-eject-file { /EjectEOF false def } def
+/--no-eject-formfeed { /EjectFF false def } def
+/--spacing { cvr /Spacing exch def } def
+
+/-# { pop } def % ignore
+/-+ { -- } def
+(-1)cvn { /Columns 1 def more } def
+(-2)cvn { /Columns 2 def more } def
+/-b { /HeadingLeft exch def /HeadingCenter () def /HeadingRight PageNumberString def
+ /Headers true def
+ /break true def
+ } def
+/-B { /HeadingLeft () def /HeadingCenter () def /HeadingRight () def
+ /Headers false def
+ /FootingLeft () def /FootingCenter () def /FootingRight () def
+ /Footers false def
+ /break true def
+ more
+ } def
+/-C { pop } def % ignore
+/-c { /Truncate true def more } def
+/-d { pop } def % ignore
+/-f { splitfn /BodyFont exch def } def
+/-F { splitfn /HeadingFont exch def } def
+/-G { more } def % ignore
+/-g { more } def % ignore
+/-h { more } def % ignore
+/-J { pop } def % ignore
+/-K { more } def % ignore
+/-k { more } def % ignore
+/-l { 66 -L -B } def
+/-L { cvi /MaxLines exch def } def
+/-m { more } def % ignore
+/-n { pop } def % ignore
+/-o { more } def % ignore
+/-p { (w) file /OutFile exch def OutFile (%!\n) writestring } def
+/-P { pop } def % ignore
+/-q { /Noisy false def more } def
+/-r { /Landscape true def more } def
+/-R { /Landscape false def more } def
+/-S { pop } def % ignore
+/-s { pop } def % ignore
+/-T { cvi /Tab exch def } def
+/-v { pop } def % ignore
+/-w { more } def % ignore
+
+/lp1 % filename ->
+ { break not { dup /HeadingLeft exch def } if
+ Noisy
+ { (Printing ) eprint dup eprint (\n) eprint
+ } if
+ (r) file
+ % If requested, check for a PostScript file.
+ DetectFileType
+ { dup 2 string readstring pop dup (%!) eq
+ { % Yes, it's a PostScript file.
+ pop dup 80 string readline pop pop cvx exec
+ }
+ { lp
+ }
+ ifelse
+ }
+ { () lp
+ }
+ ifelse
+ } bind def
+
+/lpcstring 8192 string def
+
+end
+
+/lpcommand % <[arg1 ... argn]> lpcommand <any_printed>
+ { % Push the commands on the stack in reverse order
+ mark exch
+ dup length 1 sub -1 0 { 1 index exch get exch } for pop
+ lpdict begin
+ /any false def
+ /break false def
+ { dup mark eq { pop exit } if
+ dup length 2 ge { dup 0 get (-) 0 get eq } { false } ifelse
+ { dup 0 2 getinterval
+ exch dup length 2 sub 2 exch getinterval
+ doswitch
+ }
+ { dup /matched false def
+ { /matched true def /any true def lp1 } lpcstring filenameforall
+ matched { pop } { lp1 } ifelse % let the error happen
+ }
+ ifelse
+ } loop
+ OutFile null ne
+ { OutFile (%stdout) (w) file ne { OutFile closefile } if
+ /OutFile null def
+ } if
+ any
+ end
+ } def
+
+[ shellarguments
+ { ] dup length 0 ne { lpcommand } { false } ifelse not
+ { (%stderr) (w) file
+ [ (Usage: )
+ /PROGNAME where { pop PROGNAME } { (gslp) } ifelse
+ ( [-12BclqRr] [-b<header>] [-f<font>] [-F<hfont>]\n)
+ ( [-L<lines>] [-p<outfile>] [-T<tabwidth>]\n)
+ ( [--add-to-(space|width) <units>] [--columns <n>]\n)
+ ( [--detect] [--first-page <page#>] [--last-page <page#>]\n)
+ ( [--(heading|footing)-(left|right|center) <string>]\n)
+ ( [--kern <afmfile>] [--margin-(top|bottom|left|right) <inches>]\n)
+ ( [--no-eject-(file|formfeed)] [--spacing <n>] file1 ... filen\n)
+ ] { 2 copy writestring pop } forall dup flushfile closefile
+ }
+ if
+ }
+ { pop }
+ifelse
diff --git a/Master/tlpkg/tlgs/lib/ht_ccsto.ps b/Master/tlpkg/tlgs/lib/ht_ccsto.ps
index 2772ecc2f63..bb24e32178a 100644
--- a/Master/tlpkg/tlgs/lib/ht_ccsto.ps
+++ b/Master/tlpkg/tlgs/lib/ht_ccsto.ps
@@ -1,14 +1,12 @@
%!
% This file is a reformatting of data placed in the public domain by its
-% author, CalComp Technology, Inc. The original file bore this comment:
-%
-% convert 167.pat 167a360h.dat 167a360h.lin
+% author, CalComp Technology, Inc.
%
% Aladdin Enterprises, Menlo Park, CA reformatted the original data as
% PostScript halftone dictionaries, and hereby places this file in the
% public domain as well.
-% $Id: ht_ccsto.ps 6300 2005-12-28 19:56:24Z giles $
+% $Id: ht_ccsto.ps 8469 2007-12-31 19:06:52Z ray $
% This file defines a /StochasticDefault Type 5 Halftone.
% Note that the Black array is used for Default, Black, and Gray
@@ -32,782 +30,878 @@
/Width 167
/Height 167
/Thresholds <
-ff51ef01d993ec6bd87ae0b102f24fff9f52da29e9bbff389add8cd834f3a5cf26f879fb
-6afe32d2f8adfe79f7c760d0ea6ad87ae561f804ff53ed2dd95ec5ea52c1ff25f787ff94
-c7b3ff6cf7a7cb86f24388fecc5ce1be6bf356ffaef137cb4fd8b966c1ff43f9cb2fe4bc
-0bee36f554d969e91fed4ebffb79ff37b4f88affa501ed94e5bf0ac6fc8ef57cface63de
-7abfee7bb8fe4694ff2eed86f1a5ff70eeafd694c0f61a9cd883b6ff52affe8ef62bfec4
-93e578edc193f28609d9aee556f179ffc112fe87b9d618c89cf1b8875ac0dd49a8ff36b6
-f60affc1a1b9eda7cc93f679ff1ea7fb08a3ec5dd005e035e44ad9c00bed32d0afdd963d
-f6b215e085dcc5019ffe8dfb7ad9fa2b9fec9459ee79f8cf80d886ffa5cc95fe84ffa561
-ea89f2ca27da4fcbfb5ad83093f79a53d824dda53ef0adff29a7e0169ef2cf77d8b64ac7
-32b7db933bfb0de086cef223fdc932e0c20edd56d465ef33afd80bfe41afffcd7afa6dfe
-07c7b565e595ed39ffa5e64fd909ffe21d99f2d880e086c3dd8946fe24c84cfb0fbfe086
-edd165e5cb89db83f2b8fb87f2a15aff9af561ff0ff0acd875ffa9f92693fabe54e510f1
-45a5e6cc03d8fbacdc4cafff62e0b329f95cc0da2de0c015d453a4fe86f270aae289fec5
-48bee483ff56c4ff9013d893f868ffd834bafa19f6a5fe87f703fbc59ef176fe5b7ae4a7
-5aed79fb9ebff296e282c0ff59f296c5e12fa5ec22becfa2ed2dfaaf44d8bf64f286ff7a
-afc56bd0fe8c05f964fe52a5f9d17ae091e488d9aa38f84993ffb94ffa30fea5467bd213
-fab0d868afd990e083fc2dedc2449be7c249edd793db84d0ff875efeb98612c5fd25c0ed
-11c6eb7be00db0f35afa86ffafdd07d83cc6ff13d676eaacff1aeebf9ae669bde46eed42
-cbb57ce75ba4e081d85be09fd961e845acd833d9ff45bffa95d12ae57b3cff17b5f97bd8
-ad61fb79d3fc67b4f43bff79d98acbff79f7b025e03dcef62ffba53fe5c3aaed1abfed2a
-adf260ff2ef357ffc395bfde289fed7dd868e5b6fe93db77e22ac9fe1df347c858d0b669
-fed879ffb28628ff61f8af1ac2f0933eddff9a6ae05f9ffe934affa2fb6dcb9bd8b633ed
-64fb9df6b67aed58fb25d963d8a635fb08d7f83afd9dbefb02f48efec24bff0eedbd41b7
-ff7ec1fe67f598c7a4df14d963ffa5f9d886c9e946dc24e7bf1aed9944c2df83d893e252
-fb1da5e303ddc297fbb58ade81edbe72ff4fce9bd97cffc913daafcf84e56cdd01fe6df4
-d516feadef0ed82eec55ff8ffbaa51e078b6fa94ff1ae0a50bef3ad3fbc0a5ca35ed9ce0
-2fd5f6b64ebef388facf52f1d7af37c3ee3eff1cf7ce92e4ae48d01ef993cfa1f18cf57c
-fec293f2b250afcd1eea79e04fd91fed93ccb378fe87f21db1e417ecaf0870f486fe89ec
-b60bc361eea56bf49cfc83ffb66ef7acff15f952ef0bd26bf2bf56fd78ff6cd80de951d6
-15fab22df27afe5ee24395fb9e42fab91afe9ef1adcc4dafe29342c4ff97f679cb20d85c
-eac582ffd509e45ff27af7c766e09818ed5afeb669fa77febe6193f2d836e206a5dd8b18
-f4db7cb6d793e0874dfe24c9ff86de6bd932e04cca07da44e061ce7afed979ff57d398fe
-aad067fb2cf3d323e197c4fa7ada86cffbe026d851cc36f592feb325ffd208cb51d931cb
-e403da62ed93cba6fe87eb82de9bcab82fee5ffa7cff9fda5adfc0a0e533f4a5beea6ff0
-c667e0a5cd4bc631fb9bff5bc6f975bb45b5dd9fef94f701a5ed299feec2a5bfdc41aeff
-80f5b873d904e5cc3dd9af09fbd81d97ff7ac3fb34ffc8965afe02f550abedc681dc79ba
-f250fda6ff80fa9dff86fa96f32ae6bf0af1c2a5f22bc75ef99cc0e56193faac5eed55d4
-33ff4bbdafff80f194df5dd839e0c055affe89f793f05ea0fe86d8af2bfb46afdc37ff23
-f447f8a9cc9cc6b636ed84fe73f817c7afcc0dff52dd05a5ff28f779fb8eed86e50bb7ec
-1cc0ed93fb07ff60d981c7fa61ccfb874efe3189fbce21d94bceff90f7a279ff87f2a4c5
-85fec14ab8e66cedb64ff9d98fe479bfff0ca1fb60ee1094e8c40bc1dd22d85bd2b814b6
-ff5c9edf9337d988ff86ee0ddd40a6ffcb3cddbe06fe8bf09dea633ab8e510ff6dfb9bf2
-7efba4ed79df20d87afbc74ae038ffc09bc3f37bcda0d889d980ec1ffe45f4d493cc02d8
-87eb67fe81f193d686fecb7cd993e012d85bd877cffa6aaffe33e36fd086e638fd4bb4df
-9b3fc0dd7bd3ed9e5ff193faa02edf55c5eb15d849e058e575dda5f826afd07be09f21ce
-45fbd866cdf136e5a5fed83d9af35aaff06be539eda5dd85cbf94affaffa11acdc76b6ff
-88d808afea82ffcd6cdbad1fcafaed78d09fbfdc03d54fcd14d931d060ffa6e511b7f699
-ec79dd60e41bfe61f766fb14ff5ad890d9a51bff62f352ffa6d23ce04dd922edb65af240
-d160ffb6f526ffac39c1df81d9a5f94af4bfadd094ff0ff2afff1df6b905fec586d80ced
-c686fe3ba8f691fb7dff39f518ed80d8ff0bfa41ffaff288b424fabb7ad8b64abf6aedbe
-79fe86bdff98f679fe52ee1ab6e980d75ac1ed43f8d859b9f481fc50f227a5f442ffbf6c
-b2c3fe30fa4bb0f779ff93f687ff96edb13ec0ff5ad120aff707fd80d194ea0db6c99ec1
-e479f16afbbc7adc93e0bf22fb9fc2ff7dfabf32e7affe84eda94498dd86f19eff4cf217
-cc64d8a413fe2deb6cd879d886e59752e0a52af357ff62b3e871f2ca61de29cfacc79dcd
-62fb4688dfadcc79e85bfec6e59848f81bff93f7cc29ffd019e047cb02afd82ed876fc8f
-c622f69efe6acbaf1cfbc837e29fd96ac7e787d87fd8fb1554a5e491ed7cc5e027dc5be4
-4ad806c9fa6295ef86febf53d6a5ed32dd56d3f14ae838affe07e03fcaf22afc4086ee89
-d811afe4639cfb9308c0db24f7b8fe62d81de07bd18fff94fb27f1c97ce09cf63cfe26f9
-61d8ff79fad170e3c0a5fb10daaf24ffb99fe60ef05cfeb8a0c1f3982cedbe11dc9e3b82
-efd388de6fe004b1d958aaedb6fb6dd9fe65f286e5af3ffebe8ce42fb9ff7bed9962ffb4
-25b8fe9a3dfe0cf8459ce0ffcb66d81cfe43adefbfa2c2fb86f56da2eacc31d865f294ff
-3bbffa86ffa579ff8efa82bbd0a0fe6eb0d89dc2e5af5af897fc39c2e05dd3f29e69e47c
-d507e8b1fd5fd903eb57e07ddb6cbdfb53d686ca8ee19fc513b6ca3aafff9430dd51d87a
-ed99d154fa88ff93dc38e501e052cbfe67fdaf78f7c1ff09affe32c8a1fe79fb96f98739
-93efad43c7a5ff0fc1e07dec52cda5ed01df50d0f186db93f612e4b879e08bbaf374a90b
-f386e5c19cff883efe1eb5e037d2fb1aa8fe92e20ccf60e570b4cb2ce5c101d950e028ec
-59b7db13ff57f50affbd2bde68b5f518ffa943fbcc38ff92f39c46c2ed87f6a8c73cf4ac
-ff39b1ed08ff5deeaf45f5d96af29aec16ccfe80f498ff46fb08edc130d863bff77bff92
-f782b9dd3dd4ec1e8cd99dec52b7f35ed8b840e312d3ffbf1de597f926cba1fb5ed406ff
-6bfb84d88ffea50de546ed70d886fbcb4ceed02cd8f7bf50ffb161df09d0f480e679c5ff
-885bc0e450f577b5eda1c3f510feaf6dfb9db9f4a6ff94f631fa88bdd093dd75d2f286cd
-ed55d87bcbe578b3eb72d859c9ff9330fbbc70fe9fc50bcf9ae07bd9a4d819ffbe72b0ff
-4fdc83f8a545e0ad27c9b683e2af68f7a5fe21afd04ed92ae016a5f25fb7ffc55afb79d0
-ff85e822f1cb83f4a44ed8fb73d656ed64dc35f394f1aedc20e54ef532c0fa7bc6afff51
-f12e9fffa56afe865cec9ecf2ffb93f861abd959f20e96eeadff78d925c1ff4cfb289bd9
-80d0ed50de62c71bcd74bfd697ed4cfb33abfe41a4ff0ca0fe93f721baff0ec2fb29f8a6
-13e2afcc4ae527ee66fc5ff321fe62fa87e879d1fb03c2e923d861c6ef6ad8fa6ef3cc59
-ff94d351c4ea6beda6bffb6fffc986fb9538e0b12be4a913cb4cff64afdd6dc9f78835bf
-ff92b8fe93e579d9874dc4f87bcebc9ae03ad8fc219fde7bbedb19c6e901ddd13cfb78f1
-b949b5eacb2dffa5bfde44d801f2c499e085d87ccaff5fe51ebdf836ff7afb5af30dfe49
-aed97df1ca65e6c77ae0bc3bdc61ed519bf25ba5dd81edcf75f268ff95dd81d8a1d992d5
-a5c72ecf53fd31a3e05ea6fb92ff09b6fe1ebdd915acdd33e006f286b8ff0cf93d93eda1
-47e305beef86f4be67fa97e5abc59dfc30fe06bce7abed08e23ed114bfff2afae09544b1
-ff16f279ffaa67bff906ccfe6bf859b5fa98ff8ec2e022d997ff148aedc36af87afdb5e9
-8652fb3ef819f3af45ef87ff6ca5d894e493da85e068c1fd06e0af1cf9b726ef5ffbcb81
-fe88c4d981e1bf4eff3bb8fe1cdbaf06c1ff1ef541ff59f788ee9edd82baf286fec042ed
-76e589d0af64ff93fb79f5a4fe79e32d9fd987e5c71dd6f37dd0fe4cd817ffcc3cf251fb
-0fec53d87ee09661fe79cd9ffe7ff8a958ceb90affc1ea6dd85addc44ff4d286e4af43ed
-88e47dcb28b7e50ea4ff5eed81d8fc9f46e225d89f3b94feafd6a5bfe169dd93d0b841c4
-ed10f245d72dffc3a3e677f35aff96d078fe9ed817ade504b1fa2ff71bfc97c4e062a4ea
-7dd6f7ad5acb86ed7ae011db51ff09f7cb40d818e19ebfd951f235f7c24cea42d0ba6ac2
-da5ffcc976fe61aaff5ab8fc64a5e180ed76afd881dd92d881f9b6f258ffd01fb6f569c3
-ea44ef9efb71afd9882dfe97f6b00febb527ff60f295c9b733fe64ee4d7bfbcc79ddb636
-c552befa84fe63f1b8da29e510fe489eff31fb05f39ffd87cd7efeb6ee8742f927cea6c7
-86e952deaf4af595ff67f3d070e0a5d386ee098cf5d04ffe3487ec9bfab92ecaaffe7fd2
-93e0a969ff97f661f32eabfe83de77e19ec7a5ff0dee3a95f3ae4cf115cdf480da952ee8
-c421faa1d902fdb625ff60dea61b9cd839a1f9d849de27b4d162e01ed8f55ffbd5b73dc8
-89febd82e095d938fb11ffd693d9a2b3f2ad43f403fea5f186e007dba6cc14ff72f481ce
-93eed979cba5e077d82ce04ddca8049be1afd893ff3bed20acfb0fedc188d843c7b735fe
-c060ff48afd8ff30bee48dc9fb46dd12e5a5fb43bff023fb4bb7ed27d77bcd8fffc110cb
-a1ff02fb29ed5bd885ffcb19e9d18bddaf42e508edbf52ff95cb39feb96bebc67aef31ff
-b8fb85f3c25186ffadfa6fff93c1ff9731cba918ed86fa64d92efe5af779d0acdf844af6
-15ffd828e98ad8bf88d71fff9af6b84aecbf8fdf4eb6fc5fc007b8f566bfff5af7afff68
-fab8f64ffe15ed61d893fed781d86dff2cf9a5fd7aed9f11f195c1fb619eed930ff164b7
-d377ff6ad885e66aa5d87febc886f993fe07dc4be598f940afd990de7afa9be54ba9fb93
-28ff57fb99c2ff77f9b062ed7ae069c9f2439fe391cf6de444dc14e0afed9411bee603f3
-3a87dfb1f14fffafdf03edafd074ed0abeff569cecc1a5e586fe83bcff52f73afba8c73e
-cf79ff6afb37aefac930d8ff87e64bfe1396eac1189eed28d585dd79ca9fbdf269c037f2
-50e4aecb86e01dd852deafce38eb22e3c043fec3a5ff22ed99bdf24afe01c1ff3bfaa014
-d947df5bed6dfb79d865edca5cf23cbece11c1f8d550e0c0a5ec84d933add825dfc10dfb
-a5f62593ffd20af34ef795cd78ff61fa2fc4f280caa0cfaef954fe7de5c05f93ff9b52fb
-a5c79fe130caf31ffb51c639c1e212c99adab26ee580fe92de21d893cbed1a8ff69d42f2
-a2d485e5c54888f2cf79d95dff21b6fa46ff04b3e59fc3fa9b01ed57bff293ff87f76cfe
-86d97bf2af79e052d8b459fa19c796d0abf28ee362baf379ffc09bb8d0a5ee36ffa81cfe
-86b5ff7bf1a03187ff7bf649c511f388e469fe7af79ecf45d7aedd5ab6fe83d8af05fba8
-c890d1a3fe60e135fe5be576d80cdb9f24f8c545c0e21ddd42fe87f9b688dd7ab6ed954a
-a5fd76f11cccef47d815eb5ff27be45ba4ffd469e0afc720edb632fbafffa53afe94e888
-bfec7adf8bd1f74cff1890d3fe7affa23dd907d547e0a5ca51fe02cefb28f477fccd86e0
-66ec32de51d80dcaff30e5a81bf739ff24b6d987c5e56dd1ec18d964feb1e4b904b4d8fe
-9fbcff45efb2d93feb86ff60f114e579c1ed2cffbf5aed31e30de94cd7aff279db17eeb0
-fc78c9ed6cdda7f285ff93f1af1ad55dfe6cceff06fad1ed5add93ff65b9ff6bf5bf9dc3
-fe04f7c12fafed0efe5bfa73ffcd7ad809dfbd54f20fcbfc5bd830ef5797dd7abbef3eb8
-e026d0fb6af47efcbf17edb89de85bb6d395ed069fff3cf8a4fb81fe79f7b083d987d0ed
-6fddc38afd0ef5499ffa2da5fb91e525d851eda0fd8627f05acea0c80793feaf1ad9bd93
-fca7f73eafd97ce09ec3f86dffbf93fb1c9bd88dffc23f96e72eadfb13fe34ce60d86ecb
-ee78d90ce73ba0d96aaf30f9be3fafe60a9ae0ae35ff42a5d86ee687fb55d095e086d952
-a0e562ee70fac780ddaf36f1affe82c7ff2acffb75d9a465f787b6c6a5ea3098ff61f635
-beff86f83cc7afe56db6d60dbccb25e6c240ef65fd519ffeab58e495d67dedcd7be0c041
-cb5ef782ff6bd83bc0dd93e51cfe60f3d178dfc38cfa4bc72ed0a0fe5df21ffe4a93daaf
-42f062c0ff2dec5086fad467ffcf79d895d97df706fb4ca5ff93f481bbed7ce4ff95cb6a
-fed37dfad829fb86d1b1ed87ff4fd89fbef22bb0f414baf822fb99cb1da4ff6af99ec60a
-a1e51eb7eba542e413f3cd4ce50fff4dccb2dd83d893df70d913abe588ff4dc6f387ff79
-f493b75afb9ecc28e7c505bff93df25effaa04ff51f396ffa9c0df13affa94f578fb69d8
-81dda52efa4dff33afed86ff64e00cce95dd7abded22fb86d8a5e473f6a5bfdda408f09d
-3af286e453eca5d083eac324e04cd0ff5af72387e90de0ad2cf24ebb7fc3ee11fa53de24
-b7f409ff86cbfe63c9ed80daae45ffafed2bd84be06dffd066fb9461fec188ff82bffe79
-d893f186fb0bf341ff1ffaa0c1fe6cd81df7a124d950dd39d8ff88d80affb660fa88e07b
-cf85d82cddbd86db6bd808eb468cf2cc5ce00cd03feda7f639ffbf98ed6cbfe104d89af0
-85f962fb3bd0ff6dd39fcb08f33adac405f149ffc87ae0bf59ff0efdbf2bffb53bfa97bf
-fcae16c7a9cf60c1ff79f697caa6d9ff569fdd8bd67afbc779d958dd3993e4ab3dff4fc1
-e179d984e596fe86f32fafd943f4cd0af0b44adb25afed44de25d864e1afcd7be8c451dd
-2fee5be07ad2fe7df089feae18edabec79dbc198f030ff16fb9ff66dfbc822feb5f76dd4
-febe2bfe9dbcff8ec601b6d971e111cda9f779fe5bdd25cba5d888e5a501b4f437ffb681
-feaf5dfe97e066b7fb1df7a0ccb68d5df371e5bf85d93586ea9bfb43f0fb3db0d81feb53
-fe0293f2cf48ff1deda542fe99ee6beabc02fb9fd093fe07f73af351cf05dcc09aed6de2
-be87dd79cbf88afb7cbcfea5f97bff9f5bfdbe4696fe81f59cc7a7f154b5cb0fcfb868f9
-be3695f71cfe47afd893dfaf59b9e83e9ae3a54993dda23986edc478ec59b3fb86fe5bf8
-86f152e01fd989ed81ff54f419ff51f7c6e55bd969eccb51e993d833aef428d0af61ed3d
-d8fac59edb16f252ffc5f65ddc70e0a3d893ed67fc82dd87e3c12eafe595cb86e0afcf27
-c0f97effcb61f22ded66d8b79dc2ff7cf1a547fa11ffa525ff51fa31a8ed5ce51bcb62c0
-e831caed1ad9aced09b6d042ea04bffa2cff9ef23be1c581e5bf6bde86d0fb60ed43cff2
-0bcaafff79f2b8ff20f0b6deae4df91ac2e128eaafd420c79eff6cfba5ce34c6b2df72e3
-c086bd4493fe86fa15aadd1afb61ffcd7ce083ffd993fe8022ed45affe8ad8ac02b3d220
-ffb0065dfe15cdabc632f563faa4fe6ff25efe0af66cff9f17d149addd81e0bf90f160fb
-17afd85afeca91d87ecaed84d895e7b907d898ff8cf30d9adc51a8f886ff65d8f97bff92
-fb5cd8af6ee563fcaf23ff56fbcb3be9a611c97afe83befe61ed34d70fe088cf79fb05ff
-93d9a4fe7dd89644f2a5fe32d1aec54fffa2fa0f9efb932dd9feaded21b7c997ff79efc1
-87ba12f957ed38c101b2e2c094fbd465e02ced9dfe89f27dc7f5e2bf9ff943ff9eceb94b
-e008d832d876da93e550d9affc96f722feb00fff40bed093eb36e3b879e560f243aff619
-fe79c9ff68dc3bd95ad0fb79ffc660e02bcbaf48e027cf76e485edc242bcd18eee7bd807
-acff53f492ffb61ee54aa5dd86f966feac5afbbe51ce67f130d44aed60ffcb79e077e959
-ee0af367e56bf2d846c7f19810e080d6f643e557d8af40f7d993d3a7c98ffba5f550ff69
-c40ff7a4ff61d83bd950e5309a8427e071dc7aed1affb37cf797ff88f9bf3baff183e832
-e063d9c177eac5a5e427fe77f9a21bff33fbc29ee06ccf5ae03ca4f284faadfeb139edb6
-05f476b6f26fffc29dedb534ff12f5a5fe02e548b6f696ef77d7afe04ed8f79cc3ed21d0
-9ed981cbf41ce49be8a5c88dffba9df516bdfa04c599fb7fde92dc25ccb77dffab53facb
-6bff5a9ed984f224fe9cc632fb4dff0de060d884dd17b7ed87ca41b7dd7bee77ff86d6fb
-c4ffb7f108d393d985e4c241cd51ed229affc30ffe5dc97cf2a44cfb995afc7def95d95e
-cbee8fd8ae01ff32fb9cf293fdbb14e5c11e86e49fc77cdf93cefe12eaba1efb4cfec993
-d886db79d886ffce61e033b9fc2487ef7fbf32fb65ff54f115e642b8d886ff22fa54f30d
-e538d0af66d8a4ff2acbb638ffbfa5fe3bea07d0e67cb5ee39c1fb0afea5e06add7aeda2
-e56df1b6ff2def6bcefd34aff193f80afeafc80ef4bc45e58c4ca5fe5afb3df924f48efb
-bea5c5e04bdd87cfa5edb605ffd81fd3f331dc4dd409ffbd40da51eb88d2b579dd0cd667
-ebcc5396f7cf4aff29f951fb349bdca560e588da9f67f35efb37f860f2a51dfec19fdd67
-ccfeab04ffd88ad47fe195ff6dfd8eed5bc0d971e0afce79fe86d9fc43f36ce57bd8f487
-57f179d89bf78840ff1bd4a4eb78bace37bdf903ffb81bb2d9933e9fdd8dfaac52c1ff59
-d87ee0a334e697d967af16f8b6d979e0a8c96cd0acde16ea63fe78f4a2fb3af629fec76a
-baed86b6cc9cff84e0a86afb85febbf75ceec14eff85f72ea5ffd861bee992d8a5d887ed
-be50fdd279f20ac1e31cddb1c99adf32c6ed884cf213f9be43e5ce9351f309f9b629c6af
-c501b4fe39aafc9334ecb64fed1fb7e793da52fe169cd3e413c5fa5bb1e0a8c3f261fe27
-afe467ed80ccaf63e788fe49fbc7f554d01de59bdc80e524ff4bd0fb86fe2bccfedd6bec
-2ef2c012ef9ffe5a86ff93dc01d8b720b4d87fdd5994e59e52ff62f814aff12df6c30fe0
-a52495d912faa5bfe35fb7f08924fea208fb55f310ff45d7f39329ffbfa8fa83fea44bff
-0faffe5a94cbff83e09f71f59762ecafc0df6adaa5ef4afaa1f37ccfed15c6ff86f9c96d
-ff88c70fb6ed86c1fb42acfe932ac0fe1efb5495df84c8ff4cf696ff2ef4c241f2bd81bf
-13afe07bff64f605fb61c6abf289c143b5ef7a9c52c893feb24fff61e537f2b6c644b1f1
-57ff88f272ff90ccf81afbc20ade92e7ca6dd888e5b371f3b7ff72e658dd2893fbd04be0
-c16deed379e084ca9ae58601c4e69751e033d852cfed7abfee80d6fb08b7d83affc427d9
-ff19fb3e9ffe35fa86e06fdc2de54e93f6a54ddd06a1e2c03efba5ff3bb0e062c9ec70d9
-a9ed60da7ae2bf04f8b66ed910d05bd875de99d12cf9d895fe39edafd293b9cda0eb69d5
-10eaa6e058d5fab3ff21cf74dd87d994bed80ded9dfb79e89ee03fd709ed44afdb82f2b3
-79fe51a5fb5aff40facd39e14acc9ffe81efc4039cfe7af5b334b7fa3bbaec5eb0ffabf7
-41c0f08eff99f7bb30facd53e02ab5f26aedaf79eab359b7d893c2e473cd58d618ff97cb
-85ffd862caef7bd7ff2f9bf27ee564bffa22f19e02f54dff8bceaff536ffa0d834ed87fe
-93f29ffa14ff6deda54ee46ed89847fb29f342fe1ef596ff5ff71cffbe05d87ae8a8f702
-fbc41dff79fb60e32ccfbb1cc3fe6bfac0a4fe61d83de3c434bfed19d094dd679ffe7fb4
-fb1bafd96affafdf41d914d8fe7ccba4ff20f9c72ed966b4fe16d65ae00593e7a022ff95
-f77bd0a725fbd10dfbc887f64cff11f583ff93edae3febbf0eaffe27b7fb4487edd260d9
-27cfed6bda79ffd086e0c10af2439ad881e868fb9ee04ed824e579cbade10bceff90f807
-ffc0a5e17adc86b6cb51d9b684d99f67f33ff9be469ae556a0ed4eafd495c9a5ff70f95a
-addf9350e528f09dff6ef5a5ff7ad961f01fc1df06d4ee7dcaf243d837ea86f4afff964e
-ed18e07fd9a563f17bfbcb55dd81f47ac2fe47b8e085d861e53effc15e99e06ded28acdb
-7dd8a5e022d961c9f769fb9df155e56cccadf7be16fab6fe9508ffa5c73eaffe30a4fb82
-befe0ff746becb18aff77bff51b9fe5a89fb84be26afdd84eb68c5fe50d7ff75fa27cefe
-48f2ca94abd065ffd87ad2fa6ec2f632fe17f34be5c594ec2bceff7bd3be1eafdd0cd849
-e593fbbe9dff85f7a530e55299fe8bf9bf21cb5486e5bfa9ff5bef44cefd93de0e8cedaf
-ff25b4f26ccbfe69f303fdacd877edaafa41ff96c3fe68f2bb47b0f8befe0ab6d426e074
-d987ff09dd5393e9a74386e0afcc2cf797ed66bbdd52d2ed6ab4caa5ff7df2d23fb6c893
-df20ecc3d946eec7f35ad830fb119eeda507e0aded6eafe28726fde011edaf2ef2af27b4
-ea7bdd8bec7dd7ac06ff86f5b711aff779fcd061fe86fab603c64bf236eb53c7ff79dbc0
-0fe04ea8ff8efad106f267d09ec1fe861eeb58d0fec23f95d0eb3bd99e18d1afde952ff4
-c614dc81d9bf54e707d12cfe86eb8c44a2f27cff93bbfb1ec5b1f17dfdd051ffc4f65afb
-73ea7bd915cbf97bffaf27c2e950e029d95aa4fedc09fb64f5b4369ffe93499ffe7af186
-d9bf35c6f2933dc5fb0bc2ffd86082fec179fcb969ffd814ff53d041befe67dbbf41d861
-edc83cdd5193ed98ce2feea7fe8fd8b67ada8abaf424fbb476f1d061dc39b6fb93d92cf7
-0c95e0afc0ffa0317ef9d962a5ff86f6b0fb578dffbe5dafff52ef1aa5f387dd80e59bd9
-05ffb5e461dd37ed4bd0a0f94197e023a5e08e0ea1d834e0aefc59ffa548e41bf096fe7a
-fa8cf695ffc63286f0c0a5cf7affd102dcb7e716cda8e04dff90fa5fbfff6a9ceb9037a5
-edcbb638e6c609edbf81de86b6fa9ef224b0f079fa9afeb686ff95f3c514da5ae179d862
-e427cafb14fe43aae05fceff960df79eed7fc843fe87ddafed4dfa3a82e5b6eda614fbc7
-0be24fdd31c5e81cd8f986ccb688fec133ff4cfbb438b9f16dd82efcafcc96ff7aed64ce
-ff69c8fe38f4c6f267fec01a95d882f1c789d871db3fd816d055eb0188edd89644ff1aee
-56bef77dff6bb2f73ac1f477e824afe117ddbf45f7bafb1bf56efb5793db9f4afe3af7cb
-07e184d9fb33afd418cb4ce103d836a9ff80f7a5ff3df3b3ff5aaae569f1c686ed9e2ac7
-ea74d71cff64edafc560ff77d4a7f3d908ff5ccbe7945af07ad588ffa979ee9e42e505f7
-d449e093ceb76defa4fe4ad086ed9e4fe802c0db14e0af2ceeb884d9ab4a93dcaf52c6ed
-44e50baffe37faadf486ff94dc7cccfba75cfdd681d98de09a4bec33c1e486ff9405d298
-c2fb7bf688fea7cf5dd8984fdda0c3ff2ffac1a5e65b93ffc148b888c1ed68ff94f27cfb
-84f9cb52e0b118c3de9d0d88edd081d89f02ff3dd8fa81bafe52e092d89c16f8d831c6fb
-178ab7cc9bdb2887ffc0aafc1fed62cffb4dc7fe79d99d6bfa79ed0ff2c71ed866de93fb
-12c7ff81f8a75bfe86fba3d610f85efbb7ff21f39fff6cfbc19cf35ce7a006becd4be524
-feb52be1bf11aff463fa25fdafcba2fb20d94de6b8fd4bdd39d864d253ef03ff79e7ffb8
-0cf17ce460f20eccafed639bfed812ff4ae6a926d8b546ecbc74fb2cd2fe6188fbb8f5a2
-21fa48fed06ae8b85be534a5f371fa35ffbf5793e7b15ac2e545f867febef245d92db6de
-93f509a5e081b6f138ffc221d8affe61a5ff85f619ea59dc77bedf3ed3f273cb46f388e6
-76d706ec6bd87ae201d0b52edf85d87bc5ff65eeb66ff2c167ef74ff99ed2ccaa5db73e5
-0def60d079f2c55fa5ef7effa5ed29db94e086c72dce7ae067d897d092e073ff20d5f435
-a4e493d883cef772ffdb9f20e59af15895e5c13ae04dd9bf9bedb77bf6a715ff93ddc204
-cba8de79e2acfe03f49ffe74ee93d83b7fd19af986ff41d858c9f835ff13d0af5ae5a1fb
-5999d1eb4be0afcb7dff99f625a5fe9429bde69cc735affe8ade94d03efec293f679ff52
-f920fd42d9ae31fcd89b43faa2de41d95cb5ff50c0ff5ad882ff93faa52effd61de3be0c
-c2fe6bf53bb3eda320f6afff1ffa47fe32f394dab950c3ef52f704fe59b6c70e8bcffe65
-d988c9f905ffaf7af980fe37c912de4dd9c279ef55fc9fee4cc1f529f081dc86d724d9b0
-1cfbaeef02e553ce9ff27dffbb68dc94ed76f6bf89f23ebfe42b93fb9c39feb72ed95eed
-c66cefafff07f75dffdb26f056ff83f1af31ec5bdd87cfade08bd185ecc18d10ffafd00b
-c2fb82f7d479eb1794f3b8e240d808dec06293fb9e67f25bacd880cbfb56feddc040a5ec
-88dd86d8ae58fb79afff87d17cde9ff038fdacf43bbeee0cff43a8db72efcb1cdd5ef28f
-ff93fb83feb024d86de17bff0fafd86bcf3aff53f36bffc761e087ffa5bcec12c0e02a92
-f0b249b8de30ff09cba9ff7ef7bf03c4da79edc986feab0de14dd863de91d8bb79cda5c8
-1ce163da9bbeff13baf23ca0ef58ff1bf8b8e679df61ec932fccb704fb9fc5df8728afed
-80fe76eeace052cbfe8ccff818ffbc0ed88e5f95fdc352cb14f165e9c005c5e51ad92ffb
-bf71c4e06cd962e07cb3d878bfeb86d82dbbff95d784e063cc2ce040d0f888fe1db4cf99
-fb50ffb7ed79e0a2cd3f94f5af4dc925fb6afe78a3fad31bfea5fd68d297e06fed17d952
-e5a9ff51f80cafe039cdfb86ff93f9ac43fb15b1ff6df79fbff912fb4dcca5fa68c0fe0d
-d87ddd9646c4f534fa7bffaaf255ddac47f936fe9efa5bc79fcd3cff10f4b62ddf3d96ed
-9f61f27de9f9d206ef93ffa9bfff26f69afe66f281e0a541ff19b1f729ff9bfa4efea0f6
-1dfe56f3a34ae909fe3cbaf3a4c0f06db6ec4dbff761ed86df9f1a93fac00bfbaeec0ed0
-fc8df081d848cbed5dbee681d90cec7bf255fb94d088fe73d883ddc07bff54f176b9dc35
-d01fedc198c4e546d932ed49a8d888e079ed34afd974e5affb5cceff69acd887da4fe088
-fe7aedc16dd3b0e814b7f125f8b96db2d87bed88ffbf48c4e293ff266bafe079d835e24b
-9ed978df3dd0a4ff5cedc896ed7fd1a3cb18beed2ac762d0afe579fbc86ef7c3a6e55aff
-0e97ff08c8a5e085d922d73df2c3d933afdd7ad882fe9c2fe160db96e8ab06ff933cf95c
-c6a0fb22daaf3cf9b628ed44ec22a5e792d89ff71a9fed7ed970ff66f378faa5fd93c3ff
-61f425fe95c4ff1df5c1369cf123b5ed03fec617eec01cafe522ff93f55c85d8fe71dd55
-ecc7fb4afe01d969e5a8fb32d94fc99fff5afb99f483fdc951fbc187ec23cbb20dfa61c1
-fe51f17ae66dcca9e492ff3997d90fabdb9350ed1ad886d2e467dc7afb2eff5afa76feb9
-6cff87f755ff2be44ad9bfa5f711ff37f4b870e0c498ddff4aaed861fec67ae0c1a3fd97
-fad242fc1fe55fc8fb4cfeb7e53ad81ddfc004d058e80ce59bd2bf56e786deaa52ffc67f
-e26dd2bf63afff7799fbd061d852e00bcbff973ed0a9ff961c87e097cfa5fa1fd875ed87
-bee5f237d9b828b6d90b93edaf15ff93f372fcbf92e62aafe403fb94f459ff0bf153c2ed
-67ceff27f2bf9dfb79f7af43fa99f252d8a5cb93e0a510ea4bd3a9ed96c6b4fa79ff52c8
-b785dd7bccfb4df31fb987c1ea86e39c14f24fff0cc85aba87f36acf94ff7cbfde8a089f
-f186fcaf80ef8dfe7ab6ca4aff87f204d86cfa93d108f9a1fe51f79ee539cef34c94fe86
-f99cd9b629e5aff6058ae4b6f3af37f251bfef92ff09b0fe1a86cd7feda5fe77f9ce2ee0
-a0d843abd835e04bc6fb79d8b75fdd37d87adfbfa5fa18fdb186df5cfe32ceb630eda1cb
-28bfe689f301ee42d1f9c49ee505c94feb199ee51eee74fdd04ffe27a5eb7affd833f101
-ff37f5ce86d879e092d8ff08afe084ed06d92eacf5b4ff48b6ca31ff51dd27c6fb84edb3
-3bb7fe5ced29d978e0b138b9dc25d85bfaa526e7c406edaa3bf167fb53d886c1fb45d95d
-ffc87cfe9c35dd5db9eb69dcf74dfe01d857e0a55ef26cfa7abefe69f5a1ff68b5f24fff
-c285fe93f89e31d96addc42feb78d286e069ffc862fc82ffa916fe5fda79ffb8862eff61
-fb86fe7cf4cc69d888e028a3e592d9bf15ceaf6bfc9ecb79d8ba45ffa5f933f149a3edc0
-36ff5abefa87ec5ad86bcfed7ae093d89cf4ab3fdd15f8a5e388cd9dffb7f34cfc94f373
-ff85ed89d9bf7af2b56ed9ff91cebea0ff2feb77d782e522a8e113c2f484cdfa51d6ad9b
-df86e56df21dc4ffafdc31d0ea02ddc420c0e80bcfa925e2b015ea49c1f288ff9c5af7b8
-ff04fab3ed12a5e506dd5fe4cc7fd89fec961ef5bf92d0a6e039d9af44fba5f959b8f102
-f669ff87f244e6c362f9a5fe65afdc1eb2d882fbca6efe9ad6a9e83fcd96fd28f7a110fe
-56f519ed61ceff73d560d920fb43e07d169fe568cc12d5a3c90afe52ffac58fbc51cbc4d
-fa13ee61d0a5fe10f893d0fc61b4ff78e6a12bbffe0eff38d198ffb993e9860fc2ff9356
-f9b486ed799cfe84d9f769ffd771b6fe01e63fbde29345a5d99f4194d8f96fd0aff146bc
-f634fd4ac2e16ddd45f218bff865ff89d808bfdaff61d5ade040dd99fab60ee047ed28c0
-fb6dc7f268e6a926d951f017fb64b8ff0cc1df79e9c689d9a5cb88fb0abcea96fe80ed79
-d893f6befe2db5ff8cef3fe5bb79dd11e0c033e59ff2d578e091bff25ac2dc6aed3986e9
-d850cd1effaaf179c564bef124c649fb3bc0fb9a5eedacca49ff3bf9d15de030b6cb4096
-facd5bd880ccf612feb5f16df5baff8647b7ff3793fe9d69e086b6f15afea5fc9bec77b2
-d011edaffe823d87c6fe5793fbc12acf80ff88b5ca96e105ed994efe11bfff80e5c293cb
-a4e47af2ae4bffb75cf938ff4ada78e0a24df22ccba8ff09eb52dd85c4de47e0b6fb6af8
-94c4f472ffb062fe3793ffb33dfe20e79744ffa2bff7a508ed95d95be045afecacf979b3
-e68bd8a5ed4be4ba1bfe80e595daa619f1adff77f5a9ef1fa5ed8ffd5fa5d87dda25d650
-e323d9c1f27ceabf1ec4fa0fceff26b0ca0ad35ec3fe33ed9fc85194eecbf5972cc1ed12
-a7fe6eef3ad3f769ff86d87bffafcd94e35ff5a131f84cff20d861dd9bcc1fe196d07eed
-b8ff33f9c391bbe54bc7b673feae39f28bfa831ea5d927e944afd82aebd187cae609dc9c
-cbb66dfeb0cb18dd59c8ff6cfb88f781d0fb21e43ecffb5ff306ff72d982f3ce61d810f2
-7bc2fe9343c4dc0fe487c1ff47dd26c6ff39f460fc8df979affb8f19dc52fba5da80e4a3
-62dbf872ed86e525b6d86cff7ffbd832b117ebaff871b9dd5bd894e4a415d836ec4ce525
-d940fb89d003bfe088d87fecaffe31f687fe61f205fba41c93d86de010ff6cf486fad61b
-cffba805cbaffed060ffc09dfe86f99a16ed79baf765f379f9d803e079fa8dfe2ab5df40
-d304edb269bf86fe9e14bfd296b7cb29ff42afee91ffb129e54dbeeb935bfbb939df6bd2
-9ffa86b6e795cfafdf09cbee33c7fe95d66be62aff48f4c7934ad898fa52ff7cf6af3be0
-15a5f7c4ff62d946cfff7af608ff52c6fe86f4afd09ffa80eeb233f1acff50fb0ff3c255
-93e0bb45b6d886d96adfb1f644fca5f095d921e041a4ed934ed8ed6bdd5498f18f4fed02
-d84cc7fb5aff40a5d82fe44794edadf140d261ec7ac2f479fec134ffd8ed5cddaeff7af6
-54faa5c7a0fb25de72cbfd86d2f809feafce7afe98f207e76df251c90eff4286febd82e0
-aa4ded08f47bcd93d8af05fbbeff19c0de99d904ccf078bcea85539fe287fc9c26eda5c7
-90f1b76ddaa81cff61c1e058c6fd6beb7bda95d4a53cfbd001f0a8fa17ffaff452eb7add
-c15bd03cc2fe7dcbff62bbff7bbeff24f4c714dfc5aff679f0a96bdd88ccfb7dfec1afff
-8634c79ff3bb93fb1b9adda75ae6a01074f62de54cdb1de562de0be269d755f838a3f05e
-9cdd7fed2ae5c255b1fc93d91ee078ed9bc2f29f56ff62f5cf83ddaffe5df275ff88d932
-ade49339f362fe5abffdd23efec7fa38d20be0adcb4ee540d623fa48feca8bed0ba5ff1b
-9fdd42c92cee79ffbd78b8ff72db82e99f38bed22bfeb60dff80f7a661ee9630d8f30fe5
-3d99e47aaaff6dfb2f87e034ffbf0af5b624e09e07dd57d4fb6fff0ce447d8afff3bc7fa
-86debbc993d86cfbafd086fe94f28cfe9ded85bbdc12c9ff3ad854ffa518f9d633ce62ff
-9ffbba61e01dcde513d8a222ff9c2fc0e012d83cedc284f15efbc782d894e090229ae493
-05b5e979f288fe66fbaff381e292ed9b5bf67abdd979f3ce86fea5f959df19d8f72996ec
-3ad367c5fb79ff9bca51ed9fe02edabf01c3fbaf58cda7fdd85dfbd24be295bffe9dd380
-e2a5d86af15ec9fb87f6b81de093cfa5ff68f081e5960dee4afc19ff88f19e3bfeb635d8
-4fcd30d805c7ff68fa79b8ed88d973cbed79a3ff87edaf47d62efa93feb67bf889febf5c
-c4eb54b4fb9ff5b555fe9bd228b0ff16f445fab2ff4bd8f37ac0ff4ad72fe0c10f98fb62
-cc02bfdf3acefe2ee5bc47e10dd88ecb9efa5cabe4c765fe93f726d8b313e582faad67c0
-fb5aff9cf272e58ef12886b6ca0b93f8c11fd955dc1cee4bfa37ff86d9ab51ea2999eec1
-52f228cab612d960fecd79d9a5b857d90acbed80c6f577ff84f77afbaf44eca5e431affc
-02fa9642bfe058d90ecbf17de9c151d337ed4edd3befa8fa86ff8ac965d024e0af0ceea5
-dc6ae09fcf68dd7aedb961fe2baed96cf9b67cffc535b9ffa5f785ffaf54f26197ff7ff5
-6bff24e881cbed42a5f20fd85ee051edbf60f226c4fe0893eb86e04bd314feb9d9f742ff
-afed35a5ea88f27bffc193d09ac0e517ffcf7cbeff45a4fe8ae57cfcbfa3f330b4ff38f2
-cef76bffbc5ce003aadd18e5b1dd5ae096ce22c1f362c4e566f1affe1ff694fb79b5ff02
-9df682ffa5c77ae588d803d63ded1df996ff62f7cd7dff3df8af2dedb60cf7a41fe0c59a
-e580edc01ddd50eda7e55ad944d819e09dc7afea22caa9e051d861fe0987ffd07ae5b0fc
-95ff6dfaa5cf88e456f2d8b21db8ff88dda24880bfec6fde65cdff4efb06ccb15df70ffe
-51a5f29036fad867cbe907d95af535eb4dc6ace085d87d2298eda72ff978ffca88f1a53e
-bffe1af579fe8eb6ff46add814d986debf46c3e537c8aedd2bd9af07fbb61fff59f280e5
-79b6d841c0dd9347e96ed888cafb79ffc96ed0ff864cfa10ff419ffe93f786d917ee78fb
-95f265fa07fc79b7ed3bbffb86f2afbfdd9822fe9f46c81dafd902dd43ff97ccb746eda5
-d930ed64fab3ff039ed82efeb979ddbfa5e53ceda2e07eedc64abfe0ac13fdb56cfa83d0
-9edb93ff6dfb1ff652fee1bf42c3de8cd8a044fb53d1ff9361d9a4d856ef0cd09efb7aff
-6cf35c9dffa666fe8cf366fe71f2d561edcb73e0b5fe50cbff7ae8a513fec1a7fb01e556
-b8d73ea7e854bff2aad493cbb0f277d826d262fe9ed0be28afdc88d851cffe83f79c06d9
-a132fd4af1c268d9f978f4d081fe8ff0af1ff984ff7af76cfc9fcb20ed87c3fb79f2a411
-ed9739ff61fec46cd7b822fb96fe72f492dc2cd8afef1cff49cb02ed9cd991c8a04dff94
-f360fe21eebe7ceb9a0fc2f286ff2de07cdb86e524dfa4cb32c1e409d0ed20d840e1a1ca
-4e93ff9a4afba52795dba909f15afbce82e02cbdf279ff1df387fb2cfe9416e669ed5eda
-06e55eff7ee0af37f458fecd38ff79f8a617dd5dccfe6ae5c591e66efbb50bbee2ab4ced
-35d85ac9e969d813d03de0c251e5a5cf39e952d18ae0c366f8d583d99c28f946ffaf6de2
-0bd83fedc386ff4ba5d879e586df7bd05ef007fbd478d813e3aec967fdd62afab0e738cb
-6dea8afa3aff5bf6c03ff9a9fe87f581b9f883ffaf1afabfdb16c0da7bf0b9fa34f5c693
-deb938f05bff68c79fd9b45fe1afd976e0afc2ff22f8a5fd97c7b0f20afbc986e0a462ed
-b5de30e6c593ff2dbaef4dfa13add834ccff912cff9cc1f67bffa341fe8cf386feaf0af6
-88ff6dd999ff19f641ffb026b6f217e5b988e77bf1c153f89effb659f296c1fe3bf5aff9
-51fd28ffa5e88828f9b6ff8743eab80daedf79db85ff9ff705d0abc59cceb583e36fd823
-d560dd51a5dd6dd0ec873af7a7f237e610d383e08c4cfa239fff93d986e026f64cd0fe96
-09c3f73afe4788dcbf38ce4efa2a9edd934cff08c1fa94118ff39f56ed7adb71b4d59ac0
-ff85ed9450efce6adf0ab5e41adfc09add53e2c55dde7ad82ab5fb5daee069d97dccfb5f
-c3fb7affcd01d830dda6d079c724e4af04ec85e0bf1293d895dc83cb62ddef933ba3d1fa
-6fff93f74cfe3dd01fda5bb6fe4bf217fd48f210ff95f079ff2afbcb0efa4596fdb979d8
-65fec188ff4aafffd86bcbea4dd107eea5fe7ae69334bfed6ca4dd80cff59559ff7bde85
-ecd067f0c0d97ae841bdfed868fed201faaff61cff3df25ae163fbd8af3ff786fe78c3fb
-61f60eadff2798fbb6fe56f4c811f2cb86fe97f10893e89e4cd834a5fa85fe60ff11f35a
-f977fcd06afa5e9dd9ff34f255f719fe9e51dab9ed04bfd934e063caa5ed77fb93f1c678
-d992e079dd87d8b947b6d988e45c9bedc0ade00dcdff2cdea544f398c3ed0da1fe86bcf7
-7cfbb641bbd814f2c6f943ffcb24f0b501e1c1a0ed10feb63cffb520a5f38cd0f15eb6c9
-3cb0e29333c4e57cdd94cf26c7b716ff99beec4fd93aaad87dedcf6dbeea8636a5e6bd64
-e0af3ee829d455d8ff3cc0ed87e2bf4eecabc994e086d888dd39a5db26cdfe44b6c6a2ce
-abe279d0ff6afb7af55aaaf1c198f209afe04fd8149ff92fff51caaffe38f6a5fe03f3a5
-bfff8a61ff7bf3a05aed7bfbafcb20fb5db8db40f218a4d86add98ed80ffa55090d89d5c
-fbbe78ff61fb2cd7a8c77ae5c15ffacf4aff1d9de427ffa3f277cfff8a5bfbaf06fea5f2
-79ea61e421cba5ff8af225ffb93bd9f902c3f2d71693fa7fffa0bff76ffdbb79b1f60efe
-62f29ecc16f646afed1fff9fc0ff7bf6b087ee68fb0aff3cbff40f86e01eb3ce9bfe861a
-ff5bd8ff7bf386ffdd65eda2beed079ee57ceb67b0c83fe016d0e52fd84de9c793d702e3
-6ddf84d0fc77e562c4ff30f454ff1fe061d9b7fe1cedadd051eaafd393f279fb56f71394
-ed9c75e586c6fb79da6ed818fd48a5e0bf43c2e484dd4cfaa0d091fb79ee05cf93d7af5a
-fba779afff4a95ffd031d84ded0593dcae17c6e06adb97d01eff79e585befb64b6cb4aed
-16e052d91bc0e088d87ced5bafd8f79fc3ff47dd2ce0afcd87be42cc26c7b83bb3cc21fb
-61f7c74cd91ccdfa7efe86f553b7f795feb51cff60f299ff53edad30f3be9bd96fe0a5c9
-94ccaffb05f185e567ff10f69e1ee447bfe021d986d5ff32cafe04ddaf42f3b0ed53e698
-bfee0ef7a0ff5cf52eb6d70afe43adda62b6f54bfc86eebf2dedd868caed60b6fc9df378
-c3fe44f49efa2cfeac42fbbc93db3affd02bd8fe79f495c980fe93f2a92ef347fac296fe
-33be57e670ee93fb60f738d9fd93f8a5fc5ad8ff79e493d6b574fb99ffb64fda25d893ed
-74c605c072e08ed8b628b8d911ffa1ca04fe43f9c00efd3af64a93e4b343b9d891d97cc8
-fe80f9a560ffaff34ab0dd51a5ef6bff9fcb0e93fec360fa7bd886d923d86dcbff7af193
-c1f830ffc87ae0c10bdb6bfec01bfbaf23d986df0ec9a8e26bd987e55bd87ec9e579ed5a
-aeed6ba0f89607e2ae33fbb60ae64dffcb91dfa61ee980e58efb27d8b60cb8d87eebb104
-e04dd586e7920cf2bd40ff19eec230d683e59bef6cfe1fb0ff92d9fb3cf549fea7fa8acd
-79e07fe686edb07ded86df7ad9c468ff9ffa31f353fd32b6ed0dc4ec9335cca1fc6bf9c5
-87d82ce761fbd934a5dc22eb43fe60f387fba551e5c55fe077edaf1bfa399fffaad34a98
-dd75f4a1fe44bff859ff25f9bf1cc1ff92f106b5f82dc4fd03c0de4becc756ffd665ead0
-83db9f61fe6dc8ffb643c801aef281fe9ff349fec46af2c19fed16aff3a7d069ec83dfae
-5cf965f40bff49d09fc2e440ed5aafcf85ea78dd39f156f636ff50d3b82aff4cd0a8fe17
-f4b02bdf88cd84e096dd58cf9bfe43c0fe72ee0ae2a81dfe5af694d6b676bef886ff82c9
-a9cf9ee502edbf20acff12b4d088de82d2ed8724f9b0f288e538ce8ff16296d889de5eab
-ed953bdd54ff70d09fdf68b0fe87f373a5db7ebaf026aafb2bc5ed05d94b87efa5fee5cd
-60de36e06dd7a424ff972dfb77ffca4bfe2dfa99cf55fe93d8a4cabc93c0f837fb86cb9a
-f928febe0dcf96e57fd888dbc094ed6ce2c58bfb2fc1e35bd5f9c213ffb507f579ff8bdc
-6db2e31bd993d884cbed7dd8af12f248ffd108e450b6f413fb3bafdb71fe95f252bdfd3f
-f462feb84df3c778e00cff57b6ea05c1dcfd29ed79d0ff4efbce83ec9dd847ff1af4cc3c
-d820b9fb0ff7408bffcb79e051adf593fbd013d965a13dffafd093ff15f6ba78e2c558e5
-bf66df7edbac11f4be2fed05ff3fe15ceb7aafd60fe961d8b56beea5ff23affe15fbaf26
-f71bfeaf0be79ff2659bff9248a5e679edc0a5cb22ea3afad167f17bfb5bff2fb7f743ff
-c97de3ae67f498c2de6ae093c1ff85d038d976e5ca6bd99de32695dda55dff95d87cc6f7
-7fffa53cb6cba3fa1393dca50af5ae24fbbf93edb66ffa81ffd05ce4a1c3e09959f886ff
-ce7ae030a5ff86f7c2ed9518f94ea9d883edcf50feb68825f898ed46c8ff6be5a5ceb88c
-f2a8fb13bff168ffa2f518ffcb3ad861edc866de70eb9bd8a5ce69fabd57d6afdd03edb3
-fe61d93cff4afbbc62f2b704ff9cc727eb88e579c1e0893afabe25ddb03dfd26ffaf4ee9
-2bf261f7a2fb2c99f60ffe58bfff01fbcd31ee43faab2ad95bd0f67aff51c6aff235caff
-68d9b87ae45bce32e599eb4488febf63fe1ef4bf16edb710fe5ebae44ddc2bfc52beeb7b
-c1ed63fb31adf30bd8feacd201b0fb73b9dc43ff70fb61d82acb9ffe32ddb244bde0799c
-fa86f7ba4cf29fd051fb3fff4bf2c480ff1dfb50f56ad025ed93d686d86fdda5c887e6ac
-3ff8bca1d54dfe02afeaa6cf79fe85f9cd7ad988c7fb79d88fe0c006ccafed81d886cbf0
-6de7ba8ad984e367ccfe87ed1d99e10adb6dfe85e479bce646f3c90bfe81fbae12c8afee
-a52edc86d86cdd9fd168e897c2f16ffabe936bcfff44b2fe08ddc093dc7be9943af160ff
-cb86e2279fed92d81be697ff79dc62d879ee93fc4eb8de06e43c94ffaf02ffbd93ca89d8
-af2cdd79e086b8c796e2b77efb19f39ef70fff2efc79cced59dd13fbaad897f25cff19f1
-53e805abf242ed0da5f01afe46afff7fd954ff39faaf2bd8a246f710fea6d8159fe06fff
-c768f1aeea23d854fc2da4fb9361edb5dd4cd3ff78e006cbf951f2a7ff4cfa36feaf41fb
-1ab0cc23e1f30e86e3d56ef4ad5aff1efa51bfd986e0a438f059fec108fa58f6c44ac1ed
-21f7b7ff03e586c6f265fea5c0d927e0c286f12ff408e560ffabef41cffa29ff52fac65a
-dfbf32afed84d956e01eb7fe95ee67c63dfc31d984e09fd8b987ff5ed07dfeda59bacb97
-e75cef18e3a3ceb979f886fecb7aecc053ffb8ef3dd8af30fbbe3994f89cef86c1e01ad1
-ff982591f59f5ef28bfd6a9ae2c502beeb93da72c8e579d8f67affaad8aff8992ae5c237
-edc69dd0a5ff69fb2abffe93d57bebb581e0a67af286afe38a419ed9ad2fff20b0ce6ffb
-88f86cfd41d8a5b9fe95edc5118ffeb169d87ae90a9bffab63fecc6bd89ef986ff61d02d
-cba5ff91cfb56efbc04cfb36d9c09ce5b647c289ff67fa2fd787febf60f208e950df17af
-dd389cf29249c3fe7bf3a4cd7cffd14bdd02b6ff68f0af3dc2f9d838e9c62bd946d8ff38
-8dfb80cb24b5f806a0ff9351df9d3b75de4acafd8f61ffb463e445ed11e6c29ad962e017
-d851fecb34ffba09fe3bc5fbb5f451fbc39ac0ea4bdd1ae147cc9fed79e45bcc45b786f9
-bed915ed9fdb92caf236d0ee934ce418ed40c6a6f192fa5af20bde62f8c30f96ecc493ef
-2efb1afa86f6d636dfb6ed79ddaf3efb7dda8affc296ff67fbcf22d7fb9407e04cd910e3
-61bffe80c8f442d879fea5eb70bbfe7ab7ffa0f7b577baedae43fe9fe063edd432c6ef0b
-c8fbf193ffb61cf2b9d804fb8afe81ccaf5ef20ff9acff88f324a1d96aecd06bde9911e0
-85d387ed68f681fe99f383b6e913bfff23f87bd9fe35d24d9cf45aff23f84aa5e08b01c1
-fb98ff7fb6e507d947afda7ee59fed26ddacff801ffe66b7d493d8be0dacec93089fff25
-f79bc2ed5ad6ac37f24ae5b77be9a664ecc0a5fa81ff8af51dafe15c9feb93cf10dd51ff
-08a8e01ad052c610f4d31fddc088f046ffb786eaaf65ffb758af02d879ecc6439eed79da
-20b8f732ff84ecc5439dde79bef186fb51a5fa80ffbc6efe1ddd3cd90cd731d853c7ff77
-fa5fabdc93ed17a6f288ffc972e086cc6bbfff79fbaff22ada52cafd66f795c2ff19fbbf
-44affe7bee5ab8e2c6a5f658ff3bf39ffe4cfbc8e552d062e521a7fe1aee84d8a5c904ff
-5ff7c933ff5abded41b9d486fa36ffcd19fe5df788d893cbf35bfb84ee93e4a552ff65f2
-11c6a9cd1efc5af798d92ce5ccfb87f65e97ffd252f5c1a1e373dd52d0af69bffb34ceff
-5de617c8e527d84fedca56f27dfb89ffa6f87afea52ed993e0c23bfb64c0e654dd05b6fb
-39b9fca5ef1ed93ee571d191eaaf33d7be6ded86d86994ffd250d938cbf48d46ed11df77
-cb64e079d9bf6db2f384dc8affc968e0b1ff27fa6ee086da19b0df75dd16cb9fe555edab
-db69b9e586da78ed37e64e9fdd93d929ff61f9ca84e09bff7cfa79da80e014cf88fe649a
-49e434ddc11591e0a62eff4bfb99bef628ffd87fe4ad0dc79fd9b35af0acf71ca5e7afc6
-60ecbf47c5e007d3f257f60eff86cda2ff7ed896ec82d8a5e40fd85fe7b1ca94ff57f90b
-f397ff22fa37e14aecc40c86f5b6fc8705ffc093feba9bedb02bf5951aff3ac4fe03ec51
-9ef6944dbed093ed51fec493fb86f59afe6df924ffc60693f3a54cfb32c8afff7cfabf2f
-fe6cd482dc31affb27d056d838f24bffa4bffa40acedffc0a5fe70fbadf841fec594bcd3
-09e06ee59504f161f796fe48f98fffbf6188d2fe8e07ffd82b96f286b0ed6bb1cb77d69c
-ea08d93ef525fe4bf72dfe7cf488fe974cfe12bfe080d865e07ab5d898c0ff79f7afe99f
-1c95e5d171e05ccf43f801ffd06ae5c2a4f078add87bf9d10dd8f474fb11b5d8ad3bed4d
-d625cf4fe0b7d99661c1fc29ecc397bef91fa2d903e186c2f00dfbc1a4e079d993ed86e6
-9ad2ba2add61edca1978d920cfb92fe06cd787ed18f379ffa7fa48ccfcb4d930e088edba
-32d001dafa9e42dfc15aa4e5c313fe5dc1ff1dfbbef14abffe7ce3abcb6de0aec561ce46
-de26ceed7cdda041fea6fb3ec3f15cfe14acd82ad95cfeb8f346a5f228fbaed983dd7bbe
-fe25f959dab831fbbf42aefd8d35e4c499ff29f59fbfff7cf28efba73e88edafe07bd988
-ff0cdf6fe8ca65ffa8f741afe4954bff04f64cfd15feaf08fb61f593ffb582e0f393fa7f
-ef93c4f20ed961dd50b0d8388dd9b8864fa0ffaf21cb5df586fdaf2fc0f181fdaff76bfb
-b677e5349fda94378ffba561f3bf58eda4c71ff099ffba9ff26db5fa37f6b2c720ce9ffe
-06afd187f455fb92e32fd861c9fe7fd8a114ffb632fb4aa5de86d810ffce6ae093ed62c0
-ffa548f179e069da0eaae061d803ecb4fe13fa33ff56d56af2a2fe3e94edc11fd5a5ff5a
-bded7be59ec7b3db6acbe484dec24ed00afb5d3add57e009ff4bafff7df888fece67eec4
-fe26e4c4ed6bd4fb7be79cd86ded96ff6fd021ed32dc4cd2f092cef748ffb6e41cddc42b
-94ff12fa51ff79dd0de55bc2ff07c1d986ed79f285e873bbe43ced9fe07ad06df983ffaf
-34e564efc961f2c793eacc5cff98ed7eaff308ff2eb4db1fde86d3bb40fe80f7ce33fea5
-f96dd884dd79cdaded16dcb94ab6d8fb4c90f279de7ccef936b6cf5ff22da5ed3eb6ff20
-aded7be8a3d1b889fea8cb9ae567bee835cab520fca50f7dafff8c07f445a6d80eff3ce5
-4cd80ee152d995cc92fea526ff7ebae065d87aee51ffafdb86d580e99ed052f593fb3aa3
-e09353ff17d951ff2ccbf669fec524bfff03ebb5dc10e099beff3e94e69c53f50ab8ed28
-d950fa38cbbb9ec5e95bf0affe05f9a4c2e04b93edc558bfe539f24dbde75f98fb7cff89
-f608aae0bc55fc33ee1699d9ff1dfa93c0ff88fb79c99ff836fec127ffec11c351f939b3
-fb24d093fb79eb84e0b6f2d842bddf83c6ff79ef85ccaefe79f5affb7cff75f20addbe55
-ed03a5f315feaed070e55ced41d9af01fba9c970d5afee61feaec3e588d493dfae46d8b4
-79fb50a8f29343a4f66afa1eccaffe23d1ff8dd978aaf78cd285e668fe6ff57eff9a55c1
-e76bed2196fbb80990f126a4ffc19dff21f8cb45e226b1d07ff12affcd88d893fec75289
-eaaf63dd55d819f24be567d9b078de62be9eefd278d8f173d9a8ed02dc55f73ffe5393cf
-fb5ffe9f1fe249b8f31b9eddc235a3e016d859e87afbd06bfbcb84d9992ff9b707fcaaf8
-6afec086ee2fff1af886d921ed449cf402fc5ff887ff0eed9ac2de61cdffc34cd088ed79
-df81dba538e34cffc95fe014feafd71ce045d815d6fa9249d97dffca5bd8ffbb68fad981
-0de063d878b5f59ec2ed37feb5da9911f263e56baef5d844cbfe0bf775e286d888ffc404
-fb93f44afb2790ff9f0cbffe5c86ffa1bcc998d1adf81ba5eb37d1f686d9fe68c1fb2793
-edbe69f787fe9fc9399bdfaf3fff4df5c979edd09a25c2de33e347afdc8ae0bf42c5fb7e
-b9ff6edca9ca1de5be9fcf5cf32ffea520f086feb948fb06f361fbc37ef2a61efd93f2a1
-4bf995c2fc93e1b929c5ffb4e43ba8f38840ead29646c6fbaff393fd07d058fe86dda248
-85ebc1acff2cbfe00da4fb9369ed96ceaafe12ee4395e1b632c787d8b0e531f3aeed3bb8
-e2c34af116ff30dd62edc779dcaf50cbb40aace081cff858ffd040b7c629f9afff21f593
-c3ec68b5ff4689d8ff79b2f693ffd379f35c9affa565e2d014ebc16aed99d54dfb39ff93
-d586e8c095e218e7a7c79ecebc0fedb830c0eb66d93acbe374ed29b661fe78acf386139d
-fad819cffb9f1bffafee864bc435bfed92e019d56df2befe3efa59c9a5fa50ffc537e5d4
-af2dff41b8cfa4bff151f7a7ffea5bfe7ade65d886c8fe1d93fa88d978e97bff9f4dfe13
-fa98ff65c2f140ff60b6e5028bd9f270e062d888d670e50aa6e01eceadf32ebeed17cb53
-b909fe35cbec0dd8f13093fa9f30ff4bfa82f18ad873e00cd952fb3aaed87cff5bf740ff
-b06cfa9ffe7ad387ffae0cffbe9ff7c402c6e543d0efc05092e8af7ac1e06fd82bdea9d8
-fea05bff7af75aff0be591d878df01ec81dc965ef8b71decc39de760fa28fe83d86fd91e
-9dd005cb95ff21f94f9cf2d832e55afbafcc07c0e585ed88e023d8fa74d296ed38c9a8fe
-b01bffa5ef10e451fe9fc1fa7afe61dc75fb599ffe81d8fa99c3e57ab6f955afffc84ee0
-bb85ddb429b7db18eeaffe79f281befe61f227dd92d885e5d51cd950dd08ed52e589d03b
-e050db96f068ffaf31feaff664fe32f752f494fe62fa0186eac51fceafe886d8b322b8f3
-96fe61d626f2aecd86ff7efb6dbdf396dc62e50cfe93f267f8abfb43afda6ee6cf6cb6ff
-a5d68626f28bfa2bd7b93eb6ed932ebdfe12afff83dd52e398cb4abffc7ef2af36ed56d9
-87ee11e797c4e166f2a626ed4a96ff28cf8ce761a5f379fdce0cfea0f665ffc2449fdd1d
-c7ed01d988d172ed16f94ba5ff92f385fbc398bafb5af480ff79fa2fb8d884e578dd10cc
-9bd887ddbf15b0ec87e4bf42fba5f23b9dde52fba5ff30cf87f19fff77e907df51d83be0
-03cc4fc0ed87d2b53dc5bc38ed5ac1f583fea507ec4dc80cedbfffade05bda6dffa4f84d
-ffadeb5ae1c763eb1ef66dfb87ed79b6d122c0da90ff26c6a1feb83cff04d83fdfc091fb
-d869f0a8fe04bedf19d845a6ee6dd83ae0ad70facf7effa760e4b8ff3bfbafca79edc055
-d035e0a546fa2dd7a5c8b410e9c29ffb0af25ad894ff58f104ff42a0fcce3bd85dffb271
-dd83c7ff26ed82dd6ce652d919cb4cdabefe6df5a5f286ff91fca91cff53f8a5ffe092d6
-a3e518d137c0ff81fb7af69552cd399afeafe805d86acf7bdc86f79f48fb93d1a5d936dd
-07ff45f68eff6be174b6f74fcc86da7deda4fb79ff61be0eb8db4386d8fb7bfe8af7c65a
-dd86fec004eab726e250ccf4934ba5e09643feb32afb86f6b66bffbe7aed86fe23f2d193
-50dd80cba5fe23eb86d77ee4a5c2f26093ff9df125d0f50ffe4eafd262f815ccaffe7dfb
-8bf7a73d94d8b916b4d94dd82df6c993e07fdc156afe26fb62b6ed97e147d0a5df3eb8fb
-76d8f38646c2fb80f218e537d809cff0ae2fff5dc0fe7bd886e09fcd4ced01d7ed79e41a
-fb51f4be6cc3eb1bd1f59fff75bff2af3bcd5ae62497ff19f2b07cfbc659f085fa9a2efe
-b5f20acef17edcc499de03eccb1ff1cc14dc6dd99949fbbcff3eed69c6b661f42efbb34c
-df23e6c70bd96ce552b7cb95ed77fac09dbbed3a98e05fd822edb3fd2efa9ffe7aef87e5
-bc4af225d85bf1c7afe080c8ff50f787bbf323c2ffd219e1a50ec5ef9655dfb2fe9ff96b
-feb975ddc19af10faff343faaf13fbbc9dfeaf36ff95d3a6e09116fe35a5dc9357eb39d1
-fd1ee493eda5c9afed79b7d143e73395ffafd811c0ec7cd96afdbf64e50efe49b9ff5a9f
-df935effaef737ffafd71e87d8aff937fbcd9fdc78cbff93f979a9fa90fe82da89fb31d8
-b604ee4bff79f9c70af0a1ff67d086ed5be03dd00efe599ed97bfbaaff98eb419ff20e93
-dcaf15ff5fe5934b9ff580ffaffb30bbff933ac650b6e9983fff1bfa64cca2e688dd79c7
-ec60de2dcf65bbca61fa2bc1ffd886cef84effc986e0ad5cc767ff07fa4dff38ccfb69f9
-a3c4e0883cfda5f75dd521e99f2cffadcb93e778ceabfe3df8afd854a1e082ed69f7c2f1
-1693e09907ff51f1147fd939bdee49d72ec6f91cabe061ffc689d893e060a5feb649bae1
-0fdd76cd93eba5dd91c6ff09e6c039cc017dffd179fbcc42fdc497db74fab5ea31d861d9
-7bcfeb1dd9afed90db14cbf37fd891e033ff51cf25ff3da7fe86f292d9fb0de5afed8046
-b3e85f99e3ae31f711fb88ed9ed8b67ee090da9e0fedbe74ff08f5ca62d837dd87ff79bd
-df934cf230c1fa20ef71d980eb0bc1ed61cd06dda54b8fffd053edba7ad992c5f389fecb
-67e087eda560c2ff7af09e44fe2ef40ebed939dd93f679ffa5fb19ff75f966f235b7f45d
-a0ee8afadab521e752a6ed78e52ec1ed03d86dfe87f121e45aa0f67afa09ff6efb86bee3
-59ee7af4c293fbb583f1cb1cd953ff3aa5f2934ac5fba5f223fec105fc84d8be9fd625fe
-48f7c51ef461feafca28de5cd9bb85ed7bfeafed45d0fa5bf5d885ffa561e093d617ff62
-b6fe29f693ff7afdb6df39befe80c7f728feac44e41d9eff0ff551ffbae640d816cfe57b
-d985caff73fa7eed31d7b446b8d95ac926d89ce07ac8affe62de47bf60f49cbfff07d985
-fb4fb0fe57e0afcb50fa86ffc043cd5ce5a3d048ed23b1fd03d2b219ed61e4c04a94ea9d
-d27be7c55cd8ff8906dd6dd67bdd93b9ee4bff3cf6b780dd6ba5ec82d830e078f393fbad
-4aff1ae09f0cc1fb9704c9b716eb51d0f2af43fbbe9dc4e586d875e442cb24ed61faa20b
-e843a5e069d5fb6db7de79d9c094d8089af386fbb959f1a5fc479ae228cba3fe63f396f2
-84f488fe52fb1aff4ce415d87bf193fec334e068d059ee9fd979c6f49613eca2c6b601ed
-93feabc62de7a6c2ff51cba1ff6cf99edb06feaff567fe09f6a020feac27e0afc0ff51f4
-34fa62d0b181de78edcc14ffd05affa6f893fe52d21fe498d6be6af3cb8e5fe5a8ff71f8
-9bda8a06ffc387ed33dd3ef24efbc09ff9b384d97ae5cd6dfed186ef0fa0cfff4bf7af2e
-fd6df7c95ddbae3affbf1fd0aff367b7e806c2df1fd839d502deabed83d093d886f7b0fe
-2de50fadfb86f397feaf11ffbf2388d0fb62ff35f2d078d91be086fe7ef76094de7dec3c
-bed834c3ed5dd727dc84e06dc7ed66cbf371fd3194e1afcd9ce51ef3c102fe4d9af3bd30
-e5b60ac641b7da8bf16cfa32feb247ffb8f232dc4ce0af28febbd96de55aaafa7afe99d1
-b002e05dd5ff12f14db8f2af1dff5abfe93390edc561eca5d345afff27f4a1cb7aec5bdf
-15c7ff79f96dafff81fa9affb93ab6dc60fa32ed993fcbaa80ceed4dd81ed83be5bb6ae0
-aaed47bedf89d8994bffa8f861f042dd0ecef42bfa5bafe586fe75a5fa80ff52c8b3fc3c
-a9f79350e59dd9f9860eff4abfff58e4a5caafe08952f179d998e8aaef02ff4eceabdf75
-d0e68616c5fb7bd887fcc78342f6b223fdcf08b4c91eef86ff93ed2cafca9dff8b30e096
-caa5f97cfbc10193feb71dfb93e080d075e409f894ff87fbaa40d3afed52c0e061cb79ec
-a3f60be8afc779ffd96dfade599fff90f984f062caf841fc6bffa528f67afaafd82fc89a
-d2b99fff74b6d895c5ff1ff148b9d90fe0bfa5f91896e4d010d8ffc215ba50c2ec89ef76
-a1d87aff41f82dfcc3a3fe3af75dff85e47ab6f61293ed239ff8d869b3eb1cee3ea6fad8
-79eacb6794f6e060ffb752c534c1f563fa3ed8bffb5cf749df29d863daade53add84c3eb
-13ef61fe86d954d72cdc61ed93e5249efb10a5f01cfc58d37eff9f27feb706b4ea2089f7
-c503dd5ccb94ff1eafd093da0ae5b859dc11e864fd54f307fe66bfed47fb12ed88d96acc
-ff7bf3963ae585cfff498afba33f86ddf57ffe43de13d4f926f292d894d879dd10c0e077
-d025d844caea7bc8fb5fffc138adfe39c2ff7ccde7129dff2ea1ffd951a4d87de496d9fe
-6fb7d893e78118da86c1ed71ffb5f244ff5cf39dff497bfeb7d923eaaffe71f5afcf03fa
-5bffd87acdfe4dd894e024d950cbf36ad6ef61c0ffd93ba7f297fe2bdc6fe079ec30c2f4
-7dfecb6fffc493bfe080d88ee024d5af84e0b84cb4fb9b29e058caff6af25ba2edbf61ed
-b5fbae37d8a4cbadfeaf5fcb6de60bef5bff96fa55a9fb91f395fea42cff4aafd881de94
-ed79d955abe05c93f3b860d4f08718c1fb31f314fb499eee0dff27acfbc2a5ff04afd894
-119ee0c0a5cc0cd8afdc9351a6fb9a36c3e89b4bffa1c8b98842f5b668e57df96cfe88e5
-86bee24696fba54d7afdd672d07aedb9f64dffb6fa9e55d738aee09c45f218a5ff38f65a
-fa79ffc339fea2f20be8c0a9fb13b0d822e0b902ffd82adb62e997ff23f15185ed9afebe
-4ffb73c920e486d9bf18e166d861edbcd89de509f24eff07bff189f703febd4bd8f9bf3d
-e4b6ed6bdd90d0a7bfe07bd886c8ed5fe142d09ffe35f6b8fe8421fa69f686fd29fac8f1
-43beff8e19bfed6de43bd9f1add02ceda4c736cba9f23cfe12a1ffc728d8f3cab612ff36
-daa70a9cd8931686dfafff87fa20eeb97ffbc366eda9cb97e505f0af6bd886dd7afe62d6
-a0f57dfe88f9cd79aff794fe08c66de588fbc83ad91bddabc79eebb563f535ff86c2ff0e
-f8c1841bfd5af9af88d2a5fa28d09add69d2ff880e85fec55893ffaf4cfe24f73cfe4cf7
-a538ff93f86ae07cd488e346cfed88e0bf4cc3e2a30285d6e563e0cbfb31d893fe8215fb
-6effc007feafee0cc2dc79b9f25290e69418f96deda2e552feb6fa32f2c8fe40ef05ea96
-d26dffc852e69ad111fe44acd963ccf92bff52ce39f087ea40d050dd359cee1dc54aca84
-f6d358db06b7ff86f67afd26ff48f3ce7be0a5ed3eb0dc943fc7ecb5dc71cbed3be560b4
-ff45affb2699edb1f29e23fad601e0c195ec88ceafe479ddb2cf0bafed26f356d96ffbaf
-5bff38aeed9257f4b6ff9410f7b04886b6fd0eb1eaa7c1e05194f279dd7fff9354fbd080
-d8fa3ffeac45e0c264aff287d679e4b06cb7d393bdcb52e5ac0ae1b227fe60e493bfff7b
-f31cb5e698bbfa91c419b6fb94ed7ac8fe6cb7ff92f2b73ba5fb93f579d4af5ae093d786
-d8a502fec024d0a0f156fbaef38932a3ff17b7fb96c0dd6cebc685f0cb37da4ed0e57db9
-f564fa38ca53f2049cff1bf262fbcb88dc85ff17f2c308bbd299f811ffcc72df46edacce
-79ffc5f15ec9f84cdc349bf8d549d828ec47bfe0a533ed09b2ce61dfff9b28fbcf1bdd46
-fec259f623ff5ff779fe3bf3c179f8be82f2c24fec27d79dfb77c144ee05dcfe9fd965e0
-0bffb554e5d65fdd22d8ffc21bd04ee72bedba08f252f73bffc45e95f879fe88d424e05b
-feb9f253e47ac951ff0ef8a51ee077b6ff70fbbc62ff42a1d97ee6acff9fc1d957d68ae0
-bb50ff60cda5e9b486d9fb2bde6dd8af30fe97c75cfe35edb50593e09e76f28affc81bac
-ff86fac49ff718ff88beff72f6b78308bef1935bff80eda507e07bdb9fe218ddb7d96afb
-af4dedd834a5fb88dc5be940d8ff92d0b47f4af229ffc189d42ff5a50cf8affb8052ea86
-febba0ff6df9cf6be0afdd69ecb7d94de50ada63ff96cd04da80d893fe2aee87d883cdfe
-5dfa15c1ec930af095c3ed1effbe11d35efb87f574fd2d98e41bb6fc40c652fe6496ef7d
-fd47f3a5d020e784d599d957fed82effcf1fe15687eecc6ad9a561e66ed9afe95cd8ae2e
-edd2f3d850c9ea94d830cbff88fbbf4bc3fc8f2fa0ec26cfff0594ffce1ff46eff86c9af
-13f257fdd8adc1e0aa38fa9ee774caed86439ae0bf9ef134e360c4dc369fffc5189bfa8f
-13ffc680fb72eb86d977ed60ff27f46bd89edf62ed36abd98de2a03fc4e0af2efe5bd8a5
-50f993e526dd3aeda5c3fe6df6c87eee8ef423e6bf3dcb9ee168dd79fba7f317fb6df2c0
-62e752a4fbafd8faa03de501ffb823fe953bc1f922fec35a9e388dfeaf0dfb61f79d50ed
-2a93f3a562edb1ff7dd85ba7ddc15186e3afd201beed73dd93e09e1cff5287f780d85bbb
-fb3e99ffb8f312fc45afd87efd1795fbbf4893fec132f1bfa53eddadcb45f616feb1d1a4
-c6b0e14cf514fe9fbff128ff56f3afff6dfbd07ce086f1cb6dd87aff68b6cc06e74bd3af
-38de0ed89fd783f9a8ff1bb6ff07edc041d887cbbb2a9afa86beed7e48bc0dc0fe86f158
-d2f279c5fb669ce27cefaaffb9e52bdd86c3e077d9bfa9c5e703fed047d910b6fe92f572
-faaff29c3ffca2f837fe50f732beed84eecd04ebafff1ad0ace028d861ddc593ff03f3a5
-c1f074e5afed74e4b45adafb87f529fea5bfe09938fb49f10a9aff7cb7c752ff80cc97d6
-6bd820dc48a5f608fb36aafe17f19fc0f879ff94bcf07bff9afa72ff5ee404d85ef1c782
-d99460ff9ff844ffaced1ed0ff0ac4dbff84e95ed095dd9342b4e305f1cd43d80edc67d3
-55f999ff3ca4fe15fa43ff6dd886bcfa77f6cc3be41ae03fd80cffbe5ae081d98dd77dca
-fb61d83abcfe9443c4ef6bfe7cf290fea765ed79b6cd5be04bd80efe2dd952f4d0841ed8
-9fc889ed3086f9c193e57dfbcc39d7ed6ddc01e54ef70cfd86f881beed78cd9dc0ed87e0
-af43eb20d8ac42fb14e05acf88ec26c8a3fe7addaf4df63efbb7c60ab5e07dd874e4af68
-b3f6923fd59df436fe17fac5ff69d979afff86f791fb84e8c160abf2bf53ed7ad597e33f
-f1209ee0935ff2c096c5fe86e97ad0efb017b6f024fea50ee599ff915ad8fa7ab3dd14d8
-4fcb09e0bc2ff9d93dfa93ff85cb8cd897ff059fffaff050e60eafffcf56ed1bafdd5ca9
-f29321fba5f688d379e0b6de3acbff19b5ff5adf20d360ffc493fe5af3c392d0a8fa30db
-51b7f244b0ed27fb93d0a7cb26eb93dc5ef011fec440f9d32ae0aafb22afd97ee0be871d
-f3abfd29bbeb4ac81df59502eed724de8fcaa5ea1caffa82cbff33c7fea56bff51a9d860
-f92693fa86ff5de270deb766f11ed0f5bf23e04bc0f994ff83f75afecf9f6aedb125b7f2
-42f564e87abfed45e36cff7ffad9499ddb84ffd032fec774ffb1d05fc0ed31fea74695eb
-ac5dc2e53bf386fe7bdb06e051bfdc84e529fe62bff279fed06cffc688d86ee812fe88f3
-79fc37ffa3cd5593edbd6bfe88f164bfff6df6ae46ceec9644c6ed76d09effaf3ecfffbc
-78fb65ff0df559feca5dddaf53edb602e6d824baee15dd82cae54edbc695c2f443ffc687
-e0a5479cff88f3a558e024d69eec931be5bf11fe9fea7adaa5fc1dcafa68ce95c634d3b6
-68bff208e54e95ea9e15dd4be687fa1a9dd87ef1b9ff05f493fb6bd999cf4bf29ff783fb
-af0fff6fd99be00294e7a40be59c1ff74dffa5e068d85ae29dd2bd70e6affb17a1e24dd8
-03cbe54ad80fed9efe63b8e58f50fe12e556d9fab5874bed94cca8e06ed9ba79ff0df29f
-d286f04c9df3ce79fba3ff33bffea53bfb06a8d89c2ffd79f9b6e764d801fec88af172da
-3ac7fa79ffcc5fdd3fff0ad05fe0af28b8fe0cf9a1f321fcde79fea2c0fb65bdf089f7aa
-37d8afff4ee513d964d854dd2eedad0ffba5c837b0d82df29cc1ee53f67fffd840bdfc7d
-cdec7fd9b936b6f031ffaf19f54cfa07f286c3ff88f47afbb179ee99fe86dd25c9ff08f7
-c1a5dd86f079dc10fed8af18f84ac4fe9226edaacd79fb27ff68cafc8954e2b646b3ed93
-0df2c46cbfff78f8d05cd90bd736f27ee4af2cfb54e686ff69b2d84396f6aad56ee586f1
-7dffa5ee79d862e079ccac3ab1cb5eed28d8f942ce05c2fe7bf269caa2fe88f683fe9ed1
-75ffc462ed6ad9ff77e65dde36b5d519c94faff8ca57df37b8fb0df496fb86cf80ddc193
-e082d9bf50e03bd91eb7dd34febb2ec54fb5f8569fd978e035b7fb23bf6aadc537f5d284
-e49538c1fc9a4fe1be57e380daa52fc0f809ff97f463b9e079d99fed52e516aaf4b6ff71
-fb9fce4aed9bd3b80af4a4e320edacdf8728fbbf9dfe31cf53d83ae59bfe42b6ff6cd8f7
-1eff93cbb371afff86e057dd26b6fb36c7b52de0af0dfabc40e9b728fe941bc7a5fe93f5
-61ff8efba0ed1f93edadff76afd06ae057da01fa4bfe26b0ff349ffe97ef7ecbff67add0
-69fad993e279edd55fff93fa5ecda0ffd8f27de09d56ff21f1afde6bd4f818ff95c2f713
-ffafdf5cd97ee01fd3ff59f721fb33db86cbea893f94daae15ffbc86fb60ffa8d036c1fb
-5ef307ffc45aee15afdd91f785fdc417c0f2d704efbe81e0a846f60efeda5fee94fba5c0
-ed7be379facf61edca86e0b179f9d27cf2adfb49cc0bd886beed27e060d3ff8614c3ee3c
-febe2bff9fedb1e376d0ef6acaf321d260fba543c1f212e0a53eff06fbaf28e7c01bc4ed
-81e04fb527ff62fbc2a5d888fb04ed3cb5eb62d835afdd7ded79fe9fd067fcaf3cc8ace1
-80d56afea253fec9ed2ee5c18df31dd9bf39e56dfe7fb6cb93d16ce6b893c6fb4bea01dd
-4aaeec8a4c93dda734fe62d1ea7ae0bf27b6cf18c84bff09d951ed19a3ff9350f125fec1
-02a9e542d888ef6cffb6f847ceaf79faa748d8fa9c65d988f2a5cc79c63895f8a453dd86
-b8e883d906dfafeb86ff7bf5c29ebed051fe6aa4f29432fe03f778e599d009ed40fe4aca
-b682ff86c8a1fe93f24ad81ccb41e419edc07cd9fb884cffb8ed27f3c10385befe62f73b
-cbb175ec93c5f24fe010fe48f8af32fe4df386d5a3ffbe94f862ffc6f660ff94c3ed09b6
-ff508bd8fe7df999f087d298ff86c0dd3cc6fe80d969e498ff64b8eb15b1e0902ca4e57b
-ffc409c0edba50d7fe05e551dd16f95bffd80ec7fe13fb4aa8ff6df75cfc24d35ad828e9
-60f282db92cbfc47e4b1d19dc7fec051ebb893cf9fe569f2d051dd2bed09d260fe85fa9b
-f590ffa52dec9805c2f29510a5d871deaefa479fd87de055d9ff51f817a5d886edaddc79
-edbe7bd9ac26fe66cb5ce122d99e2cb9e315d9529ffa86c9adeda53ce352d82bde5bec38
-b5fc7af5b010ce97f34dd932ccf979ffd03ff4c7fc12d83bf297fe3193f27bb2ca7cff86
-eb88d8a266eeac7ae593edc21ce086ce93dc9fed92fe84cd16ff40f60bb6d786ff58f43b
-a51cfd81fa60f216bfff2facf97bfeba8ce5bda2e038d867d97accf950ffafe638dab6fa
-86ff5af193c3e410ffb6fa9606ce9cc0ff32f99f29c3ff1ecef205e5c197ed1bf5b6fe70
-d1fb79affa80f4d04be52dfc13f5c275ff86f6b0fd93bfe021d857eaa5fa34aeff8dedaf
-22c65295dea65486eda0e371da81d1fb1be341edbd30cdabfe23f6bb41facc5bd93af69f
-bff232ff51fa06ca4eb7fb9abaed6de17aed26afe98ddeefcb68d927dda4fa79d789e513
-b1cf65fb45f70ec2ff86f103fb5abadd74d37afe5fed45e018bacc2cff60f1a52786eeaf
-fe61ed7adf60d0fb945ce066a5ff7ef938afdb933da5ee0ebfed3fc1e023b5ff79d896d6
-83dfb301eaa549cc11fa6df395ff7edb62e6c81dd851fc9ef5affe03fab2ffbb4db7fe20
-ee53b7cc98ff6bfb9ff448c1e06de8d18927ff85d775ff45a6d88ae07cbeffa5dd35e15c
-d2a7c1ff54fbc609d84c72acf492ffb945b4e054fe9bc3ed35e1abcd95ec6db5d64fc7af
-e813a3f625f19cce7ffec39efb51e58fcf83dcbee258d879dc26d793efbf4eb7f687fbb9
-33dd62d2ff79fabbd986ff9966ffa36bfe87c0f13ff75bff31f2bf5dc3ff7bedaece4ee1
-03d046febe6cfb86e57adb39e286d968e032d993f665cba5ff86f65bd4b00ce175d97eb5
-ff09aafec0afed04e593c5fe0ff539b4e623f16df482fe20f83a98dba565f985ffc5e510
-d85be987fe07eeb929f65bff941dff5abffb21f39fff6292fdcb6ad855e008d9a62aed84
-d879fc0bf94dff8efb37f3a3ff5bfb0291ffd80ed845e9c992eaae4eca12ed53e63ac5d9
-09f2cd47e803a6e092cc95d87afb9de51dd9a429ff9cc1fb86f0af16f2a5ca09ff93d66b
-f22acb81f26de807b3e546d90fabeb2af7c493ff19fa3bc999f252e26096fbaf57ec80d9
-9bccf261d994cf0cc7afdf76eccb14f1d08bdb29a34dfe96f71eb0d497ca70df86d86ec8
-f083e53ad0af60de33d8f2bf42ff87fa83ff6bf5bc63ff1ff0a5dd74d7b21cc5afc70fb6
-e583c4e13ca5f18bff9e51fe0df49efeb586fc7aaff578e55bafdc7cfbc875fe19f04de5
-22d48af860fec96bec38afd869de9bd643eab65aee0ffec39effbe1dfb9fc1ff6dfb97c5
-fe79df58db43bfed93e586de6cd815f3ce2fddc21df968ff5493fbae4bffa6fa53a1fe95
-5effaf36fe59f5ecc96add7abef15df73cffa5fb06e6a444d8adff72d9fe8df7b62086ec
-aee433c6afdd3ee5cd94d9b53db8e92fed9ff549fe95f730affe79f4bc5ae417c0f288d0
-5ed831e0c527c1e41cfebf98ff29f3be32dd5ad8a5fe85b7ff40afd89345f6bd90ff25f8
-3dff87fd78f6d073e0b55ee43fdda5cd45f029d8ad33f24acf9ffe81f9a263d85dfe2df8
-9effb67aff6df0a3bbd62ce5c413c0e374da39edc405bfde7ce393c1d97a01a8fb36cfff
-2ee07ed9bb4bb6f17bfeaffb0297ed2fbe10ca5ec5fe950acba5ed1e9afb9307f74cfe9c
-f77bfe85e066d879e06abedd4bd520ccfe7cb3d92ede73fb84f26af8a0ff80d89337f786
-d7b168ff8bfa80dc35c6ed6acaf409edacd010e079d293ebb31fbfdd2b9afbc14bf193f8
-73fe83d993dd7eeac291bee622b9ec06c1ff27f2a5cfba4eca37ed9ad340fe5df4af7afe
-9ff729fe84d88eff86f330fb4af81cafffb9ee86e6af61c7a5fb12ed93dd5fd035dc62c6
-f77accf493ffa5e046d7f979ff67f8d04bedc888d86de013ca52d009ffa5f021cdff7df2
-9dfb943ec2fa66ffafed15db98d202dd44ed51c4e0ad4fed17e8a4cf08ec6df3a00ffab6
-7adb84ff6ff99ff158d973ccf2a253ffc41693ffae1ab8d20af362ff59f802ff61fa79f3
-68cba7e07dd9af02fc77ef87ddac0dfab779e005cbed3ddd63d09ded1bdd46b6d89ec6ac
-d299e06dcd5ad80cf29bfe51ccb163fa25ff83f98af2a553e09f4dd83aed88f26cbadf3a
-dab279ffb461ff31f3c096ffa6fab7c63ab3fc9343e519d86ae0afdc25e09f4bc0feaa47
-ffb779fab8a5ff0cf1c29efeba48f6b788ff54e0aad93bfe4fe629ddc03ac4fb0bfe4988
-fac679edabe039d0fe66ed9fc0e523b6c993d9b717dd94ff31fb4ff73aedc194e51efa51
-fec269ebc796fd74b6fa90bce95aaffb6bf7cc61ff0cf252ff42fb2df979ff89de1aec85
-ffc19fd4afe016d82dd0fc0cffaefa86c517b2fe1d9bf2c110e6c22ae07edba957ee26e5
-4691ec86de5edac0a5fe84f708ff5af279d1f48739e1be64ed99cd1edf87d96cfb3bcc68
-da7ae5c922d887ff64bfd79cbbfb5d93fea57add9be1c007e5af35fa6ded86bede4fff3b
-88d1fc6aed3fd0feaf46b6d88ed894d086ff42afd891d880f2af1aff3aace01ece50ff02
-f5c980e4a52bed93e085da88eda2e093ddbf47c2f978da09e03ff5519aeeb6ff61bcd981
-e424b8ff9ee552d5fb4b8ffd9453f1acf903fed189d97fd6f41cffa0f804f15fb9cf52ec
-93c7a3fd0694d8f76dfbca2bfe58f373fb30d093e085fa11ff40affb60ed30aff206ff66
-cdaee51eedbc30f755ffaf68fed885d55af7219bebc5affaa735d8aff75a85ed9ee469f0
-16fe58dc76c9f561ff2be548dabf64c3f65aff93ef81d6ae42ff10c1fe7ed85bfe33ca17
-bf51fe21abf09e37d893f288ea7dc7fe874899eb933df26bd0ed5ad97aefbf7bceec61d8
-fa9e5dcbb78437ff61f6be5ab5d03fc1e97bff2deda6ca67e636cbb0ff24b6ce12acd980
-e2abcb4ee779ff1fef97e4be9ded8ad37ff9ce70e093ef15f352d861ffce92d87ceeb925
-beff01dd78cdfb8710e260f196ff0c9de0c22af907ff83e5a9f21dfba512e098cca6fe79
-f79dee86d76edf27b8fe6dd9be97dd5ae61ff4c09be6aaf3d97acbfe70d1ff63fb4ac91f
-fbb804e5c8fb1cdfc1a5fe4694f601fbaf28ffaf06feb623d0ff44d9f0abc3df1293fed9
-6bfb964ccc9fd886fb14ffaff986ee5ae579f196ff3ff7c00affa0c1f45dd8b652c82ffe
-51d904e7b525fbab43d8b99bff85e7a245f017e041cef559a3f08cffb045c1fe7dd81cdf
-86c6fb3aff89cebf52cbba6dc4e064d4ffbf4cfb08bee02ed812dd35fac19ae537b4f260
-fb32f7a3ceb278f166ff8404f7a542e911b6e49bbdff9fd86af7b470bef264fb0fc9afe0
-79b7cb64de77e198c96be575beed931bfa4c99fcc53195ed0ed9bbf510fa4bb6e09647d8
-1ad0a5c3fb42e588ebb46cdd60ed14a9d981fea5f98fc4f26ffec279df86cafe61fa34cb
-b602fbc67efa99fe6f96eaca4ad828e5a5dc31edb9feab48e860d9b3ed5dfda5f520ff3f
-9eeb8d52a1ed88ec5ca5fb7bffa5e9870cff79f8cd18e08dd8bc69ff3afb12dd47d1db81
-e0c097f35dcb1ced53e538aed943ff31a5d88bdb86fa20ffd839fea8f538f24ff69ffe0e
-87fbc4a3bfe778efaefa79b0ff8761e4c2a2f161c1ed91ff6ef83186dcbf55d025fe9ef9
-93befe3cf202e64ad918ace09f38ff4cf71bbee98ae279f2d76fb5db50d22bd9fb14abfe
-93f381ff79f99d4a7bf5c493f38618a0d832d978e386beef04fdc2f826d96dffce44edbf
-51caf2aac5dc4e93ffad47fe04ed93bdd89ebffc884dff28fb52afff81fc7adb86fed079
-ed95c4e64dff2ded61cdab73edc1119cd88bd9ae36d8afe03bda54ff06d94ae021bee033
-d3fe9341ff23affe2edb4ddf9bbeffa40cfe91eec147d22edd65e0a5d093bff184ff45bf
-ea83d19bed8640d414fe4b97ed1dff87f491b85ec3e073dd5bc709cd63e5b1d905ed29af
-ffb7fb62f297fe47cffa68d0b038d884c4e52091d9af79fc932afb429ff2c062ecc59cb8
-d150e57aec2faceee1b0d093f1d931e6a7c60bf3b624fac015fe7ff393e07cb6f351fbb2
-6fd9fa4dff1afbc386f85dff7af286cd66ff82cffe5bf3a41fc6dd7ed0e579d886f2c403
-e15ad3ed79d960a8f380ff7af7c350ff2cfb54b8d293fa11b5f35bc3ffa7fb9ec7affd68
-d8a5ca0dc1f186ff43f61bb5fb9cf4b621ff88fba0c0e451de7bd9b908b6de952bb8ff79
-f496ff44aff1bff501e53fc1e07ebffe0ae4b023f558fb7ff709ff60f6c76da013ed3dc2
-87b9d045eda4cb6ceb59a5df71d906cd58fed50ee1c42bff87b8cb7bed88e514bfd399ea
-21b8fb9db9f2409ed872e8b6fb66f7b850fa0afeb36afb94f62bb2f920ffcc04e0afd61a
-95ed7cb2d787fe1ff062ccfe2adbaf09e563ed5add2cb7f33bfba6ff36e59fd591bfe062
-d93cd8eec156d038fe65cf0ced3fff8af76ffeaedd3ee0c10ddba5fb804d86ffc6a0fe61
-b2eb6fd97dfdd079d92cdd9ecb89d8a521ffd8fa7cb6fe06fa70ff84f72fff85ccff48f9
-bf9eedb54095fba466e65aed21e4b03edd61ff8df129cba5e439ed17c9aced01ffc33c90
-ed0b9aeabfa5cd3cecc176c6e962c0e0a576fb9843f0bcfe38c0e50dec98de7ad9a457e4
-79ed93cdb725ff84f7c881da78e37bd9af06fa57ff2ff87eff934ca5f27edd79f294ff83
-d0adeb4ed512ea7df2ab57fb66d416c2fed89749f214d0fa1fd795ed51a1ff87f26cff5a
-f23efecc5e934ccdf479d893dd23d860e0afd90e95e59133ff66f6c2dd27bff593da82fe
-66f3bf7febaa47affb7af470db93fe68f886d95995febf54c4ff8734ef60ffa123fe499c
-ff8c4df5d85bc7ff8f60d9a3f259fdac3ec3f82fffc095fa4cff3cf8d86be0a908ff57ee
-28d051edbf93eaa6cb97ed12b8fbc517ffabe723d84ac6f91c9be085f260cb18fe93cdac
-f288e09d25edba80e2a24cf05dff27bee70cc7a7ce17e095de79a5f2c7fe9d28e447ee5a
-f388fb9c3ffebdd862f4c6ade01588ff7fd844ff04c69fd20cffcf2afdc7e352d90cffbe
-48afdd2ee579fad017dea8e05ed4fb8de080d0e585d9be0fc4ed9616e4ad2aecc207fb70
-dd81d0ff6bb1e58aed0fd0bb9de075afcf41ed87d3b79ffe88f76bfe3bd21cf24bafd2e5
-72dd98cc42befe86e5af5abffc3bffc49efbb886ec1fe44cff3cf7c168fed85fffcb86d9
-88cefb69b2f938feb664fa1dc1e40bb638eabfa9ff9fc6aacc14edc55d87f8b31ae14ba0
-fad74db6ee9ec9abf941fbbc59abf2940284ffc19fce63fbd77dffb1c944aff574fe37f3
-af12cb47f216b8fa39f3a5fc39cafe7ef9cf79fe93b8d819f85fbbed03d64aaafc77f521
-c4fe0df395c3fb4af514c0e021d8aeda79fe6cc2fe8745ff31f96df6a256f10ffe9fef77
-d9b222da46e061baff9fc894da75e9b30babf328affb05f5ad42c2e27bed86e5c38fbaff
-69f97bdd88fb63cf1cf83bffba70fbabdd27cffb86fec35a93f2cb19fd5ce67add6eec99
-e04adab6eb9343ed28e0a212f0961ffd9dee2fd891d87ddd9ffeba99fd71afdf79d86add
-af52ed1e9edd3ae54eff9fc1e826a1fb7ffecb34d986df66b6e887ff1eafe27edd6ea8ff
-955bfba5c89de403f3bfa8d093e004d9c398df65d82fe6c06afa79ffa5f033d05ded05af
-fe31d3fb52c5e56cc1e067dd97fe12d850d324ff51ed40afd8
- >
+00AE10FE266C139427851F4EFD0DB00060AD25D6164400C765227327CB0C5A30
+D90786049501CD2D0752018608389F2F159527851A9E07FB00AC12D226A13A15
+AD3E00DA0878006B384C0093085834790DBC770133A31E41940CA900510EC834
+B02746993E00BC0634D01B43F411C90AAB269616E012B140048600C84B077500
+5AFE126B1A40F53903710A8305319C21854011844701B96B00D112790E5A008F
+1150296B3F09E563277C4900AD50017109D4013B6C1A87123E6C0D79F626511A
+A90E86003EED01784629E737630E4778A53F22B65700C94909F5003E5E461258
+336C098600E15804F75C13A22FFA1FCA1BB5263FF412CD2F502269C2094DEA1F
+7A233AFE60017204852605D460136BA6118607307F2779005A336A017B005A9E
+15760D35D825B03404A527CF6C0865AC27DB225AC10F5200D6581FE9610D3088
+2749B538CD48246CC404F21F79310DDC0236CD1F3DF122A92B9A10CC5027F401
+BE50003285059201F8384A9A1A6A12C6005A19B026F6001DE2660D277F1F793C
+2276B901DB37B304F0401F79122E9A1A3476247C0D4704780D5EA500650A9E00
+F00F53278A005606D96C0541AB1AEF0EBA5A1933FC27045323B350009D1F4CD6
+06A33F25D21F3FEA2BAC5B01790D8F551D76013AB7411B7C00A93B006FEC276C
+07970027CB4505E6095A017808FC043A610E8901A4851B58A512860461400D69
+1D7D3F00A60D693A1ED05A13DD41305D12D20550BB27409B0D790085503A942F
+0173FA069B01AD5A062E851F6E1B772655C707B66C0046B005CF015AB9842DEC
+054F279750266F1F7C03D2123DBB64183DB612286C247B2F0078A1014679ED3A
+02DA3F12EE3914841FF24F0CA50579005022F827C33900EC2989155300E51140
+651996421B9112BD344A8318A45B1F7E27A41F60269E17BA5327CC2600BA4005
+6A2ED51A84C300E84A068427529E04862C03984B0BC400862675340086084FDA
+1FC23109D0045AC01A3C5512E54012D5520D9F00D10CA8003C6A4021D7601282
+27971A49016C24881DD53601E20CB837A72F4996012786004D79D7009E0750E5
+3D0F6CC1220065951FA060016CB5005D049234642749CC129B046209498512A7
+04DA269C2759CA04F72807C502624104FD0B71013DB400F11242BE4800813E01
+980A67385B20EB269C005A0627793616B923DB1840E51266BB3D207C276C1DAD
+04E25A1CFC223D68044A75217E12418D00B0316426830036EC2550307B1A9322
+FE01920B2AE9015210F127D113AA00700455AE1F8749056B00E51F5AF410C52C
+043F5A35CA12631FD02A0949B1410C770530AD0E2850C83C11C100E308316D1B
+51B72FE1066C305E0E730A83013D6C0D4DAF5032E115861FB026E0126C334C87
+01780DE24E1BE81350F78F0B7901761349F43C9E115A940B63037C0049910853
+00EA06AD10F42D940D40A90287009327F216AE29EA054DD20D8501A11DBC6A04
+61BD0546E501610E5233B2501D6CBD3B0068098634DF27A3153A7D002AF61BA0
+0D850838991F67E712A5014996058801419E6C0D27C91DF95A2274E70B248349
+286C1F78B201DB360079219426CD1FB335F825BB1F9E318501268600A82C6701
+552F9804D30C2CDC1E683B0585257930041FD927AE33C90A6D014CDA002DF734
+AE26CE341BFC259D126C34590178147D21643547D011A00583006025A5203F5F
+1ACC0B5A4115900F39981F5A32B439CE046400A439068A44BA4A2260106B08FE
+5A12D660113D5A4023BE51007F0A478C26FB1A33C22650F60427E26800853C04
+CB003769A501FD0AAF5412397E2386450DAF0259007F0562007905690CD51940
+F50E3D5A0DD438A106633F1A9E6C0553A112AA2BCC00B44250007F0E6B20A227
+C61F3FAA500176086C0FA15F01792750D404B95023C800DC0BB8075633633949
+C9127B018C07E8385033F200AD22FA5A00D70886047112791AF44813E33F126C
+04F8009F267E38059E330478B101CE760431DE26B431006F085D8600780D5B3A
+7A013EB54719931249B00626701B864000F35E049F11EF6B173BF43E22DD27A4
+2D47EB4900A361206CC82677007911F222BF590034C32241F901740F62159CC5
+471AEF009204640D81045B128620DF27850438B51FC7003F643C0C84325F2776
+267F13E001BA0B2B6C33FD27781498017E0E6C2979013483266C1FED27A42788
+3005955001CC1C902F7919C702B44B2064C03F22842C1261A00E6C055FD120AA
+3A14EA27B61FA71A8A225A07D9502F841F60DE31BA042799320EC91A5A0127C2
+650CA5500F941AC6125A227A3406B5005005EE53238949007727F750157D0032
+932452E0350512872F604023FC2AB032EB26CE2F9F00591AEE4809661386229F
+1BE4019E089904EB00A5276F265AE4009D0CAD00592DC31FB226DD1249A50DBF
+2E9F00490AD90053C63E207E265A06B50B40522F6B00F00D5000E20946FA013A
+7927F312397901C457096E048200C60AE7127F2700F405BE00500D774BDB0544
+852749B540951241860179420067098601AD11E549167F28A53E12BC0727A646
+0B7E03AF0DD85A0BBD0040934D3C01CF05B44F0886006C09780069124EC13F00
+A52EDF5008F8027F2E6B15F24936613E1B860E95044385236C1F40DD04603D00
+820540CD1850017B1256BB6722790E6100B30DE8339B275BEC01D21493278627
+791A68AD1F5AD50CA8009D4C178E0D359E21D630533862329D04B97720523386
+17A401391A67B707E4006C0833D6002FE61FB834FD5027D12789037039DD0961
+01953450E30437C81D60269538187827802704EAAB5A1B6E12833A1FD823A41B
+B527F936059D6A10790140AC295A12CD22A92C0EB517C75001F81FC0350DD503
+BF79117627EE501B9C63046CF73F24DB0847019D27E21F842E70006B04D80E36
+831F6309C301D9069E270086052E8F1C3F5A04EF2550DB00466019F10FA30147
+5F3E0C67D31241EE2361C47D102C7721901FFB4E26A7551249049226019A0D79
+1A50C00141731BD046008412669D004BDA470165C201F307BA631F00349927E3
+01BC5210405D3D04790A925D1533CE279A0D6B00C4400579005A860071057D44
+2F5F01914F27623D1A50A5076803C63D1FA22C0D61961B832AF8174E02A026FC
+14A81F8224934204AC297935711E603AEC4935C550006BCF22AE278512662EAB
+0577006C23C71AFE1FAD340198025087083E00F65001CD375E018604690678C6
+6C1052BC385A00F03E1F8213AD325A12FE20AF2F0E79246C09ED1B47861F7445
+0C8B56F40C791A3E630077C101E14A1FC82D04E557016D1DF3309F1A8F4B34D3
+1A3EFE26AF1FD713A64824EC00A80AF50042D421974A0AE70056BC0433C7006D
+0C63B93D1278095738C30B5300C64E12F700A21150BA0A26950D6513E933017F
+0B6700B904F7123ECF279C400884006D087D4622C22B13E173266213AD480CA1
+2747BF1CED2C0040E21A6806D9345E04A12BF90094047B2770015AF21AB9128F
+27790434B3112FD3270840AF004E9E20F62F0B7F19863A0077A43F1BAF0A884A
+125E3C0AEF0150920462460B59006B09CE0577422F6C228A2D0D793212AA2784
+341A874C148D27A636006CCF04438F01603AF430651F84265B27E600418D4F00
+B0237C075ABA1F52D836497C1D5097085A01DE502FB126D51FE95A0DA048003A
+A504862F007A17DD0E347C0B5BB127048C29A9129B23CA0C6B0E5123DF1AB10A
+CD3F0584395000AE0ED160005A950179A3136130D0046C079E5426A60DF16911
+52008726DA3E00B304D764267F2F12AF219D38E4328B40296812B304CC5401BE
+5B00F35F016C08DE4500F13D04D60759EC1D5033B51AD8119903A00CDE019D05
+7817862E04FC3D16DC279E3910952705910C33A6006B2CAE3B15941259400490
+003679046AC71F4ED41B56EC34B3009B502292360877CA40006D47016C1A8626
+78B23B07843143651FC52703DE6021844124E63916FE222EC304870E46B64A15
+34D2005A4021BB27FE0D3B661F7A27833500A01AE14207C9008504A50CF201B6
+5126820E359A1938851F43C4239E12AE640DA45A227E12308A0D97006A227E27
+5E266D2A5A38D130AC02CE5C1FA159046D00F64901E14226EA5322CC1FF90D79
+4700F306C26C125EB81CFA4110790B419805681A543A6203CF01F943185412F7
+1DC12EEB4000D5051F6ABB4E00E90D860055984006F933019407A64A05670071
+3D1FDD266800EB75123C950785024A1679AD04C107E60C50BA107800935A276B
+1B6C257A1F973E02F91F50E30648D910A004347E01773B267E1E40B100C44701
+E32450F93E00E10ABE00A608771161227D450D79013FBD12891A762F509B006C
+04860A5B01861CD26026781A38E2290C822F01B327E80033C30DAE04F013AC27
+811F699E0186326001800756A73146F5003E159227A5223BB00B2D791B50BC12
+771B8234D7481AF15B00A1127E270360B91DDA2760C46B0150295A401E96226C
+2F47BE3B12EF0DBA28D2003C5C19880CA500692F87016127E8521AFB4E05D008
+E403683B1F9D5B1582290852A5347912851FEE24AE00F60834BF27E71E614026
+AE0DCA083DB315BD2F45953D25A0033689019E5500A547039B5A1E7F12895027
+7E226D277E06490DA7002FE0490A963C15BB1061048E502677D20168094FF014
+4AD8009F0D6A3648CC019B11B2840433862249C93AAD41057B019C0E4725D61A
+EF01B76100CE04FA0C600278328101491178BD06D83159387916AD2150B50A6A
+00980C2F8F1F5A2C7911F6730A2FB001CB7813640546D1355001802D6C1F5696
+0068099E0CD154017C21881E61385A00F211C56A0C51B30EEA320B7F256AD117
+3BDE055E26FD0249DA009F2159E46327C65E0627B621D84B2E9D1FE1270AA004
+2A48C2377601427D1F6A26C704EE00296C265D4C0D52BC0BFC015A0E791FF824
+5933EB008D0B7E316C112686345A1F8827D31FB22357FB641E50276C00C412DF
+5304F0123E7727BC3848CA013F9F00B7502700CF411B723604B922ED1A5A04BC
+400FDC04B44812D828843270003EEF345E00FD04D612A4277A0034E6162E7422
+50BD1AF71240AD006A34C601469414398510CE0047047A0C3DAE790052059000
+6C3E0068CE3456E71279059B26D101A508862F53207BB509EA0027D716752740
+7728E000650947B513407020B14903A03FF8470A994000A508500097054709B0
+01EA129E276C01287E279200D3065A02851260EE0E6A3E049E61126CF00E9B48
+2C880095277A19955A2780143779066C01F823B41A6706BF50266F218505641A
+B456046CD700A804663D0088064F9D12851F96360DBC601C6E30921BBB23EB1F
+50126BEE4119FC0CC578204E0EB0005020FC12502F8B12F54100A963133E5A1A
+79017C4300AD08C5045738C13086009504C8510536CF27007819B401EC69153E
+E76112D72A7A22863560420D963FC80DAF1B5134791FE227AD215031C714DD1C
+3FBC013C5A00DD1266420DB501FE3E00C4055FEB26B820A412920486279A1235
+A30DC34131EE3E072AAF1F3F5A137B26CC5227DA203EF2045A09DA6C002DF50C
+B1086A3287009E05D03B0D7F355F305106AB01821A3FA06C0064AD045A38601E
+CF350CE004AE39C63E1DED3665254D911A7F016D21DE276C3412E5700962BD0D
+5D2B7A1A3AB7770D308626A200DE4905B900FB4C1A603C0564FE12A8400D6C00
+780893017926840D50861FAD274BA605E638692F540D711C9D450C86003F6447
+2F5A11C90057E301794A00840E5FCE78008409B63AEE0C771B960185086130BA
+285122A549017C2750FA0457376F2E5C019F1ECA01A41A8927F32460DB073ABA
+3F1DE222BD0178064977228549126AB55A02890EE33310B827EA14A00D841BA4
+5B002B961F5038DF1249CD0450005AC5016B177740138520742E08B300E76F2C
+0185005DC226F82AB81F5A35AE01FD3104D70B880332791F9913CD21AE27F235
+00CF1A57E408C600DB4926783A1A922E13E7269B014E1B46FB4B2701604300BA
+104D26C01479009F0EEB1A863E12D30040A512CE1CF216B328500D8624E8114F
+038736129322580D7A006C0E50E52AA201933100F9052E12A5226C009A460094
+0A40623C01FB083ED05012F101A4058C00328527F62042AB0DF03403A427CF10
+A86822854410C1471FD92F04950B810340E812476217A4492C6A12F96000C307
+5B047E0186084F7C26782F1290223C7502F10AB66005D25A046E1ADA27AE125F
+0279D80FA5315F37F86C0150E526426C035808C15026831F613C079200406C04
+E3642772003DC06918D15204EC01CB319F279134118726F318C45F269550CF06
+41C05019F5651F51CA00BD5A2791197804AA2F6A1F7926AD5F1A9D118F05387F
+2250C90E50017D3800D530048A265B9A087849395A15CF67009E09CA41007907
+C338501A924929F24334DA193DBF109A02AE600154A71B6A29821232841F3FBE
+34A1087D009427C43F226C1AE3019F0C2E87203C7305B438D12F5F01A20DE001
+B56C2550BD0F9D3F00D213AF79052B98003086276A268208F904B35A006C0B7E
+4412831B006A3495012C820527D604792E4E127800B02760410DD44F0BEB4507
+DD046634E25B0095066139F55E1AE148145ABD1BEC0C32B31AF000B2334D227C
+276C208F26EC541A7700B2390C7800860B6C48A5046133D7183AFA4006C20DA1
+0055FB00AE0C6900563F20EC50056B0A870496277E225AD105B200CC50127900
+9B1FF3316A22854212DD0479275A1B8C095A40225BF70F62C50D791BAC135A2F
+7C153CDB1FB32F00A508DC7816F21F52D30DB144803C11EE05AC21DB480BF600
+7934019C36127F2551BA005012D427B41F92002F99046B9E013E77007D400186
+276C0E7904F40CBE00E0055F3E019327E2085EDB26AF22C627007727F500499F
+05771F84307A27D3224279249427F714B9730D33A31FF32FC0125809C6004067
+1293401EFB27650F7A069D04C42F00922C6034F70CC5253BFA0EB60037851F40
+A600F10240D4004AC40568400351E93856309F3E0086096835592600A9602274
+298504388626A722C66C1B54C200B03E1E86267B1A6901790CD05026BC0B32F5
+0F4BB524DA5012BB21DA279B1E503284173BAE22D011A41F852D01820F760151
+E712541386243E670FCF00E9046009920437DD014A08922B0141D40162430071
+39FE49268E1EEE3256088601A422DA345A27771A5AFE4B0BC800497E0150A201
+681F994804E2085F334972A20C8E1A407A26CA79156404BC0F04C24F27E014AC
+01FD6C0D30B700E2125ABD016611941543FD04602F6C01F808C50CAE30FA233F
+6512921D41782286340775048343015A06840060A40241B969017E0A6338580E
+AB4A34F03047970641C96A08E301B850276C2050A64617C1651C5AB66C225DC6
+79123B8713A64C047901A407790EAD1FE02676127E00AB0BE600AE08391AA426
+961334AE166C27CC510BD72F509E12C227053A6124E90DAD003A09A2238F1F5C
+276C1298037D22781C3ED1501A6A34791F5030D83F068100349E0DD212992748
+623D00830E5AB805EE005ADA00AE05CE5712A31AE4349D3F17CE3512E5265312
+F6492FBD15FB4005D300610DC41E3A7E1A409421792F049F12BC300DF4355000
+860D4700DF0F492151B206E53D1ED715502BDF38610093045A31CB394D208D1C
+3F7942BB6C017905EA5522E5049E0032831F7C00266C017FDD12BA5001752753
+FD4C2DDF004FF9A201EA325439CD0A9C055B01900DA101F509930060E82EB652
+227E1F406F0E9F04E85027A501356E278135127B276A1846F8276700730CF265
+23AE570779009A270684006D04A32750911A9C0350DC00A90434C41659EE3685
+017C41019E12CB28F01F77308604FA006C265B01822769BB0D5A01CD2E513AB0
+005D05F061046CD226015212DE4836680086103E7845ED06A812C73EFE4D1D3F
+6B042B9A1FD3126201760D82380A1D406006BC00613146B41FF727CD2789256C
+1AAF2650036908DD014FF000BF412F6C14C91C47861A9F0DBC5009E601863600
+9723C426A52F048600399F1FD43450B71FD830891B7A123DBD432E71118427F8
+5300AC0B6D0049E11AB55A227906990153A50441AE31980ECF2BB5129F003486
+1F8816A611F50C981A940D27B9380E67EF1F7F2909BC1AA82750BF08266C2C58
+3670045A0AAF00963BF0085B009E27C426AF1ACF657BD81F8E238512E5004C83
+086800770640C4500E7C17CD1F9C263E88153A5A1BD80188065DE400CC043D61
+1F9330A51FC35B0D7B0552014EC61249FA0B89490D90003D62124ACB00ED0A5A
+01FD1AB7490969108828501FB12708633C12DE2F61267E340BE31B64175A3772
+0045620AE94205FB3A660480216D23DA3348820054AC05349400A561267B0DDB
+016339CD04B200F21F9F277B22E848127835BE4822841188007929043B00480E
+F72C6C267A1B3DBE32AE12DD65003CF001A236830D5BB30466A50382106A26A1
+3411702751FE00CD04630D6C0244EB1A3EE1791B603883206C3101ED1545E104
+B301366C27792486277900319E1FCC4603DB78108040CD049A00AB0EEA19BD47
+277900DD05AB0CF21AC72F5099275B00D53449C700405A01C415F82F19834A11
+C63E04F5015A1F952285125D1A920E4900D210943102CB500E6C07F5015037F1
+0B43BA1A73B35A01A504C206DB0B7104415A3A1FB42278305A1249FA0027E02C
+0CCE23B22BF60042BF25AE14772D4A8622F329981433AC690830B500D606AE04
+CB64235A9F1A772560980CA104C8079F0D5AE2013E602298330154FB0027752B
+801E6A0092027112A43F268E1F50318601792603BC0C931A84270B78A80E8627
+640877BF00E42B5B14874531C84206FC0047E44D266CC16022720553AD3E00A6
+27811F5CCB1968269850E9074926861F5736932F5321E9159C01870B5D04C509
+D6013895451279493363007B1F5795047A014408A3113EB1007A08D15A00279E
+41166D275A27781241AF022D860DF53E1CE3224E366520CD391277B30DEC0641
+BC1A316CAE0CF60649D639503AFE4B01C655036CCB1349B012E048186C25AD01
+E9632C1BEC3A05A44E1F573C0D9E01D8501B98127F33509C187701B604380AAB
+2FE21A64237F1ADB00B42F047901D43301229413D10D3FED106001A579006C23
+FE2748DF4B278022A66B1A61AD009D07EB500ED2093CF01F5ADB6A26ED055A40
+1CA0480F76DB015DF704AA0CEF00BA280C6CD6004057057C015BB400F05001A5
+6B34007C1F608E0A689D13503F2095255A10B5055E0C833012EA390079063692
+007738F04912793E04BD53016CD53F01E104AB6A207B3700B3096900D10B3DBE
+0D427E40EC501F84009B09FA049E39540D763EBC4A108563AD376C014DB0009E
+1AC80D4939BB4E0EA800770D8D006F3307E5043DF5216D18359227771A4C8E0C
+48008D19A722D76C042FB41F3E92112C861F7B35651A79FE3B1968AE1FCC27AD
+30128540117F2904F74827C5003BD82600E604C16001CA05791F9023D21AB16C
+095AB222F95E1D3FC1045A00C44F1F9D36138F2656129F25851D40FB07499126
+EF2FA4278A21662ED306276A01C612502D6C46325F14962AEF15591FA72A054C
+00DE308B2278266B4127F21262048617611FC028F612BB50247D0D4C8601AE5A
+04A500BF0532C61EB53360017E103BFC6301850A4CCB4805C44513A14F005408
+BE3F0F7100660844CF0532AC1FD54A0D95125086154CA648276C3D1B8C32A729
+E70068347A00279D3510842800D0640D811A9B4005DD0E61FD0AB2007431500A
+C9005F27CB1278016C0D6005EB0092125AB11B912767B804D60CBD01E10A6900
+A008E30041FA2785175708FD043BE20086049F1CD33044E33C0194053F5B019E
+27C21C3BCB4012E62F6B22986001804B04E4502695005020BE26EB270183345B
+00DF0638D126994B01E929A51FFA6C185FDD006A08842F58DA042EF204377809
+B300EE0A7C006C1251C01440F15001D84804BB78122D9F26D83012942586002F
+791F3EF50DBC65277E179704611FB127DB1A8634521EF431006F07F8003F5A1E
+8523794934AE26497B2660980CC00641B9651AA95F12B1502B6A365A008F06A5
+52206CAF1AD70F6200910A5A0085269E0FE03E20F92B1182350DBC27C815790B
+500069B112E71F80265A9C0E840434AA227E0B853D01B8471F7A279E1AC1003E
+A1661F9212D7532482275A1FDD269E36089604620EAA1A9333520841E9054901
+6AF7005A38C15001CF5B047D4101F008B94134E750088400AE4601A576047B41
+D950227B14973A01AF28008A05D83101B70D356B542F9A0027852D05913D09CD
+01E80CB41A3A6B13D43100842C41E15022F327B61A6C044162007A085ACF1AAD
+6601740640DE34AB791A405600A410BB31026C21F173125000DA4B0D93340196
+0CFC02532788125505BE00693C01970D44B84F074101F5492BD91F8B267800F6
+22AC6C1658BC791F5033D3086812994422AD2D12954B355A00820D2DC049376C
+20DF133C26B911380CA527CF04EE61125AF81F521291501D78D9021FEE1250D1
+0D50D84B1584227413822853F900790A48EE500886032F9E01790549FC39B40D
+C914AC380086243FF01FB1570071052EF90D982F613E0179E114A72F013DC06A
+2F14C42661E72E50216AD00B39EB237E2640AB18F82ED301791473BB5D0D8300
+6C4404E13A4E0E82022FAE003B09A5048C158426EA3406840050D83D16AF1FD6
+26A55B0123F6049B0A4BC960016CB66001850E792640CA390D6CC23A04F43D00
+279F7D013E860346960027EB00AC2FBE4101982440BE279E1237C322AE6C1267
+31D0115801702749852575450BDB044B890E2F9E23C649046C26D308F36A1F50
+3F005FCE8106269D5A0079094F04A8720041A25000AD10E55A0C78227F1A6426
+FA004A1B9E22C812B42F5F06BE681FDC5A1F71F15E27CB1F5103A6005AB71BE4
+0F6901850573096A0039CD790F3F5A3085002EFD234818E932571FB2006F05A0
+40009563146FC85A123449C71939F612407E21794905610DDB4F0F8605650149
+79006A0C3AEB25A51E86279D1BD83504EB01BC551FA0310069F20861128037BC
+0178225012B205C57D1A491259EB0438F41DB022CE3A17E3270679334977013E
+CC00B3044BC7460E9227D1035033690085129B3100963701C70B390D98013FE5
+6A277D0E3876278E24C027E92FAA14FE77122769BB00E511A941088200944D08
+C53E0B8817DB501EE82240BA084504E40A9104A86C2460B501C50834F81E7B26
+04CC502BE734B31EFC27C956007F085A00C20C4C00A5551A960E39791261D538
+158B28E3009B12503A9F00882B580C26F700A334186BA50F852A770056861161
+BD1AFA082BB61F6C314892105B01B52F791261B017FD3F24EB1F50D311477B26
+54B56C2350AD3912BB1AF45001C805520B79006B2383330458A302297E26721F
+65B413CC3E1B79006BFA2D673D04840977015830A22767B0225F3C00D0053E5A
+19A46C003EB747773E1297006B0D83047B0634AD1F4EE73C2162F277122F7E27
+60FD00C227057E4501AD1F6D2763E90727CE3904E87548336424D778003F5503
+E0129D3004B2380186266294058612F00D38E12799216C04ED38007E0758A401
+79045C29EF07A1044800DE0C600093043E630CA3185FF94132B41ADB014AD41E
+40EE500B9C05DA0250345D04DF26B2194702B422C6279B2DAC10FC0086180047
+F30E831B9F0DF13350129C640127ED00B51956D9274AB913438B04D32D019E77
+04470A5DDE05B7012F951747A41ACB5A0C8E05CA0040A86C184EA53D1ABA0798
+01410DBA26D249216C0AF65A1F7E490EC7003DDE2750019E5A007A09E615A623
+884120C12C0D8C34B90C77198928F9139427851DFE2F4AD1207A27843A009A11
+49900D3E98108B006612D3355A248C1AF2109F2F860D3AA05A1081005A12D624
+6B1F7938D231851F9827682F6D1F8C00DF2A0BCA5B1B6C277C31088D002460DF
+1A650EA76A1A3EC51FB22640641248840958EA006C223DFB345721861D5301FC
+0B60018B116C27C4802E65067900BE27A73607CA00EC2F50A51A5E04A6662E14
+B41F503482006609DA5A016BD642196338CA500175216B2FC1013D6C098600AD
+06DF02BD2651CE032764BC055D21BE26A34A00AF3F00A5277D006C055AD10029
+E21C41F33D01940AC44C125CDF095000E005B801CD0C6B2546AF3C10AD08FB01
+A64938F17430019A26773606FA005085067F01C836ED21B2263D8610AA036011
+B33E0AD60F7E237928DB264FE3045110FD1AAC31600D82004497236B12890940
+760DC1401BD46C0463C60148D126A1123993105000F808A20024D90FA9007C0E
+50CE13A4227830521F742E7A133E72EF00502FF43D047D082B8614E86B0C471D
+BF27F7213F9D6C0461980DA453277F3404A901223FBF5A137722792751A70486
+5000782E8321600FC702530BC44111F300BC57248D1034E322A10D70006C047C
+014FDB27921E8400F050279430C500AC0C9400389E1F78005A4313ED3F1FD56D
+0F4DB64721CF00F6345600810840FC3B25861236790154F21EB2279C216E2744
+86325A37E31E9C25644100EC450DC35F10A700E407471986209E136CD03348FB
+04603A2078D750127F018911531FAD3401733007E70043F12771A06A023CAD34
+EB0E9A163FFA3A1AE526D004408E3B1F93269D1F834C278740147927D244006A
+287B1F9C33D31FBF2F077701E24B306604AF004812861F5D32C06B0A50B236DA
+049501875C052CE4015A02972D681F9012E826AD1A5600AE07F3501FC6320479
+006C0653BC04EA4E009208604006ED04B2335A05973F01F227822269B93B0ACB
+058400550DAA2253B806C9016105A4386032C300EF0B49D220C26912609E0D82
+16062DF9106C00564000D9096501990D7E1F5ABE00E64E08D6006405B1015F09
+E201A90C5CB516F601C3450C5B3F0F924913B240089E12792060E56C053FF404
+5113F12F03720F7E27B73412A241197E26F313840DAA046B2F77018C277C223F
+8400AB0E894623CA2FE0123E673B1AB926CD12B65727771F8612CB50268B1A50
+04A331009653277825B01F770185123E922C4F17EB480EDA0746924D27841277
+0040B73B1D6C00D994501F8627CA1DB461268720C22F5B00A312376912802E5C
+34E74112D5389D2F501A86043791083C591AA500F16800F7375A1F7A26DD28C2
+0D3C26CC502285277D0163D01E9F24691754F9006CC306A3395F04DD2550C306
+49D712BB13DD5A186D276008E5601281268F00990C87055A026C3C009E0BDA01
+6A3B00E20A3EC9630EDC4A12FC0139E8113FE3501ADD006C0AA37A27018E22AA
+133804B501FE26961A5704CD26B0366000A504660B7C0236AE043E7813DC344D
+F2059E3E01AE0E85199233561B6D00C66826F054246CAF12E527792D1B982385
+04D100A50589014693007808AA00D41BB526405A08EE00C80B478F1F3B672200
+B551279E0139851F3E5C0268052DBD03E01AA03704B301481AC527E2203FFB2F
+A717F31A642D40A918792155AD0039801D922D409C50008866042F9E27AD1FF4
+340068C12F560069E3781F68305A05E0278A1278411A0DC82647D74926F46C12
+50EA006C0C8D03406D19D5501BFC046B0BA600F40EAC3D12983100D80D406204
+860850BC05660DAD275A346C1F5AEF15B42C561269394B058600AD37487A2284
+3304B20CE046783E15791C63EB0DB000F337A545780C95306B0083402175F760
+0E7903507F107201854935B500780DFB2793056C2EF7065E01AE08611AC6310C
+B36B017906632649D61A5009FA751B490C50C80DAE40106D00F64F01E5793280
+125A01880631D11F5F27BC5427CA1FB43904862748A022C8278520405A05E702
+4E7920A301CD3149CF125E34D74019760CFE11BD2E063B611AFA36B014E6611A
+E1118B022FB001D85A14850027CC0EFE00C80A317927861F6D2700F7501F7B12
+F926D1530A4B00B74935CE00AE22D839047B124CC44801A312D626871F4EC746
+23DA27A4055AD9183BF91255C40E9804AC27793E04BA26A20037830163CA22A2
+4614962308B201FE27A81F5AA10D9305854101960A5E00974A0DB0003D7A016C
+0761CE2695223BD014872D791F9600379D037D0056E901A02586004779D1009E
+047901830B339627771FD75C1A6D2640EA315094036134862745BA005A06CC0E
+B65C123FC900A541057813A527943012851F6C27630B54C022EA075A1C773262
+00480CB3036B0C8C007A12762640850D4A9126006E31415F00D01488287D1ADD
+571EEC3D0B7B3205AE29526420791A920DE23B005023CE2F15FD223BDF3F17F4
+3056DA1D4FEA15B63E0D770063A5084700FB054C12ED5A1AF922A01B33802760
+1369E10A406D2F591FC62650BB045A06A6470EFD099600780DBB193C9D065A01
+9A5023E14D277D0435910165295617C0326902D7085EEF01A90AE6129E31008C
+2A9F26DF04BC1F82E9601A9733ED2A5C36F501AD0053A7043AE343B205EC119E
+2F5A01EF076C2F039E4B0087195ED44001F100C72E6700466C1679F03D006CA9
+064B79128663017B26089600288E4901FE19C0421D6CBA5A2660BE6B2706902F
+500EB94309CB02B53D1E9222BA0DE740079A007627F74025009E2A521FBF2266
+0549F11FB812D73F0492380D971956D926AE0FE8049B4700F33E208616397626
+5A347704F5431569017F1286276C094101D24A007310C01A448622EE1F3FCC1A
+600D2A871F6E400DA53D239512C6791627AF32E100550E863A9B410EDB39B604
+C43F0465A1125335B600C4062EA21FCF4934BF690532A4277F3309ED014A0E92
+0A450079B84800C86C0162961F79490EA5015A036413884D2FEE1250017DC278
+3901A86C043ED5307F00774A35691EFA1266B101EE40007F1A3D6C345B1B850D
+51B40048A306C700B525871F5DB20DD3345700F614AD227A3B21B81F49049507
+6B3B0B8D004F9D01C86C004CC201DF1868BB005D40085AF7126A26A41FBA5013
+5306864C1974275A12B41B45E4017F1A6A2559E60E5200880A5610E05A127002
+A05A278225DA29AF1CDC263E0D831540E13B05F03100D94F35F52CA13C01CC12
+6037AE6B11340A68D33E12ED58019110C52C0896007927840050326B1CA00A5E
+CE07B300DF279E226433E01E692F81124700CC063C6E441AB438498C0151C60D
+74057CE15A26D816BB5027D5142E783519F62363344992014F34E722A6370093
+0477087E2F04DE1BC13004A00CF9008D267D0C319E27EF0D843D016CBC3B23F0
+1B783E00B822D93900C60B9F03720686500470E623AD045A257F1B5C9D24078D
+12791ADA49279300800427CD4EE81450078E4622A4276B1B5BEA27C913B31ADA
+26BF04762FFC401F772780135001CE0978019E0DFA045BE36C27921FEF00930B
+790529E4300457FA3450012F9F003F6201790665E9128645089A0C860627FC1F
+86057201D54A20BF2CFB124D9640790161EB402D694834D600BD50116E004ED6
+1AB241146CA40446C620942D60057949186A305020F63411CC38016A299419D5
+00B70B386CB5276705AD00830950C41FEA5A083B009D26B930008509F700AD39
+01790B502F60057F114DCC0E5300AF04F00C3DAA6C1F44BA4927792695204E09
+BB035A0F6A26DE1FBE5B126CB127129422AB670E70B012FD27B33804A500BF5A
+27D01BB86B12520EBF2D9E13853D0B86013ECB002712A32251008509AB055A38
+5F04DA218D3402792D07F60150318501670DF818920DAE36F100BD7901427D1F
+55B212F70B84326C2750FA044100E63F216626FB330F8743157AAC601D780363
+D9125A386F0E48922557E3009E3E1FA73902941484256A2B5AC3042FFE0F5705
+E800500BAD1485223EA42FC33D018234009D4400844100DB0B38EB203A500986
+0F56942277330482013E500079CB38600C446C04E4652258A5195FEF8B09D21A
+B324E21A9D21F41D9628AA07C75C0FA163228012D51A3DAA4E036C26E11F8712
+643D0D60A9009D0A307C225001A20D8A007726CD521B6CC60C9D01A540022DC1
+013805C72DF41F5234B11ABF29DC05B701357412F45A00E46022BD36D3118600
+428747008D247D1660C7412DD40149F2007F08599E1169CF270CF01AC2661B85
+55009204D0781FCB0040F50A49DB1F61F822A82B049000F31BB8275000C43805
+792144366C279304502F79016B0D730162127A4423ED3600C527AB005AE70629
+CC319D006004459E1FE2321AEC275DDD0063D03F1FED27C3123D7B0EA104387D
+276B1F6FDD651B6CFA4A16860D77019904500C7E1D6D1264A409854226860C31
+79015A06A620E62708D66913C52C983A0486006435AE12601FD12540FE3C0450
+A732580227A2042DB41D6A4001622C7F1D5A27950EA13604780947E21F6C305A
+00970F7E1A69F211B503E600770E61C40149CA27B032CF27FA38009705864712
+77268C3412865C00781250B829D1056C01498407760140A33B14AB4B04600A4A
+AA01642DD74F00E90BBA054D00B4270C853F00B528D01F3EF067049D33FD4020
+C53101D11A43B81EF22771346105A3541B389A016C08D9274CEC1A7D0552983F
+04A500630D8D1A710ED7794935F46C073EE026AA23E311B405C800792654AE15
+D666113EAD0DD73549ED269F013286265A47A826F534127F390A88007B088504
+50BB135A1BCE5003FD0569BD401FA726F1340E82163EAE2CC812B122C4105705
+790075369A2FDB1F50F3115A23951F603097228512469E01D451269306498300
+3ACA46005A087A0050AB0D9E6800800A9400DB177E3412BD5A0DF027A11FAE12
+409F0DD93B01F76C14791FB42CEB01462608BD005012CA5A15770D84003E6C2F
+653F1AE80030834100BA5B01751A8303405C0CCF4B00C70D3108940043A31FFC
+5522E71A4E22A51F6931DD3E0C9D3B1A990E5001E0096B04864A00FD62097D00
+5A38851A7727FC29C212E20669009D08328200C20750D21249F3085BE01F3A65
+1A7F123FE222AF12581AA526BB27E61F62385015DD35561FAE279E01F678002F
+851A4F036A0092055A30771BA90D274DE2470077225DB77F401390219A3200B1
+04F9334EA208F001AE5A0D6FC90527983416F826A50ACA14B239531F7A2782DD
+671258D006870035770E5AC14001E50A8601714900B95227EB26792140B93C1A
+C8375122D42650F80449E000A60D7F1A864927BE3F226CB81691277735048600
+36912F0079B305EF00BE60016C087926E81187046A0D9A05F803864812C44004
+790D50402267DD0160B937E25026FD22BC00683348B9125A26CF129B054C00FC
+6127D101468622405A1AC3125D1F811239B5401F53EC024A93057C2F61246C00
+9204E009AD011E40BD3C2173275FBB04AC2E006C9E265B27A910F32F61048500
+930CA36200599901730C99018E0D2A9E12348C1F4A01AF340085175AEC013E58
+04FE1AA94728C15817AB400D552B6C344F0D8827D92D9D01612F41D750237727
+AE30017C0863F9265ECD02B50E3D972606870B2F7E01700F50E0067B00850893
+036034DF12783C04860D5BEE1268C6009E013B932847DD0469018D0B6D23D327
+5010E300B634FD1263266E375FB2006B0C9F01DE1141831465F03D0D7900D21F
+8324791ADB205B34CD3E1BF62F12DF27BF1E5E35B16C0065B5045AD86A2456F6
+0EA504317D1FD3420D8600E20C7804D3016BE9199612A125F91AA100811F50C8
+0BA70132C700860759E822A23301951A3A6E1991044AF4411D54B312CA27A536
+169627EC2FC21F3DAE1A5A30C616AD2E751F3C99072A7C2663D706B90050921D
+F427C0123C7900B45A27861A7920842FA10FF8042B8727EC1C5136980229D505
+4F18C73492157505C500A4093FC0065601780A7E46077C0050E5054024E93F25
+840F4605CB0A396C2146C70FA400973860264BA01E5026891F503D00DD075A02
+68384F0DF50436791F5B9D124A21CF193A6C00D24510B205EC5227CB33006ED3
+00633E0984005CBE01730C790150F509770092266600E609BE004FD9490DE81A
+467718840E3EAC07610049A60D693E01C40A5006AE02D7005A1777D706490078
+BC1547F2512086247A006008FA2F543A63314A7C1C9027DC2A9F22AE5A22922F
+1378C508580DC819EF2C7C1F73B305DC60006C26791FD909B32F0169F63C08C5
+01B8772340C731B105D561226CB300F73E056BEE700C60A91285248E4B2A653F
+007A126BAF10319520F54A1BE5203F6522AC1D3AA2218527D54A04A2511F9626
+823304A03C04850032FE27CF22592F8638DB1B50FB137A1F40ED6C276A237C34
+9D22106CC45C2E0590006C08B301C22FE025A44901B40DE802B70DEF006A0F86
+00D50434F105BA69024686279A013E7700B5500027943415B22EF8115A018519
+6CCB4012935B227F300A6AA60084217A132F980F3F268517BE42012797012DFE
+055009E300C20DA51E9C042750C0087901873C049E09F15200D867044901A90B
+37EE0D347901680EF76C1761B327CB5A057A019F00EE0CA50688032F9505A162
+2600CB0DAA08E60161AE254612FB4026CB1F9C355A1288046C0E3987266D1F86
+22782746B84926771BA364123F521FF23200D3215ABB0C673C12F25E01794308
+830449BE4427EB0D3906BC0034DB0F4AFE1E3E5F12EF0149C3004ADF5A0C732F
+0EA14936C34F1D6CCC3B1A83226B30D93848E900664113B026C5552782123092
+411579C95A19429B1F50C117D62BAA2700C33F12781D40B11354366B1F792777
+22C65A24D93201BB49395D31541D862F009504850AA5550E3E670DF6501FB027
+EB6006D000AE355001C7095A01FC0C5A4000759E00840C5FA51284045034DF04
+A24724BF0DE75B27952267127F005AAF6F2762A3044187009E04D3285738851A
+3EA00530B500E2621BD8005C0D88300075A40450F9015A0D86159E1BDE345A00
+750DDA0046C42606FD3C0D28E96C0580005F4008900244864E09F1019D0D6133
+E909B95012E000603F0084094F78119704F500C3400BF0791FE14C31640179E5
+00A42700840C7900229A125D4112F8611A8314984F37C01FE92F1AD027B21638
+6C28FD1C92207B2F03881A9D3B00CF0BAB00E01F9E264801E312522FAE15502C
+6C0D8604A908EC6B12638A1A79390486259127E702B75A1F40BC3D1B7B22B305
+5F2F6E048611FA306C2850A50458865000B56A002FCE27B212FA6C2351E8391F
+9524682FE100861A7A41049B4934B512E91FAD26E43F1F77278312A450270860
+3C00B822D31F50327841BD33D93847C44C33DE049E0838B326E332058101790A
+AC48086A014AE3009F0D6600AC1252CF0C416426901F5A366B335004FA0E7A1A
+9800EF0961E11BB8401FDE26792A00CD3501FB2250BD0C4F12AC19674011F108
+5F00A30AD14928F501BC52259D490AB403791140D212279735129F4903620C87
+3C01BB0B6105D30153BD04436C24C5002FD42701860B6A367F016C0D56D10CB8
+053D6901CC41A8198F116C049F08C726026C075A03A52700861B6C294A8B0466
+0049B025DA276C128B39FA3F8D1F712749D74726EE005E35FB01BC063FF102C5
+09B56C1B4CBC46276E268337017F065A9F00500CB54F22AE5A1094006034F16C
+013C9F0584277926DC27923400850E6C3E07CF0037851F3EF42494013FE40450
+DC267920F136571D9426781AA42781361A8612A55112945F0769F81D51CC0449
+F519B200346E2059E1167F1A7104D82749F3472781144EFB1FB22A79186DF30D
+42BF00E6113DCF297C1A64109301E04F006D2604C30AB60158057532861F8019
+79124F8212792085263B97006005CE0CAC02CD4912F23B136CCA335E0394063A
+7827D3189E0426CB5A23DD14BC019F0C78045AAE1A3AA01F881250E405C66000
+552CB567228A0B5E01BB4007A600DA0640E33E006D0EF94A07D23B02FC3F21B4
+1338A900299A152F7C24609E0192370049BC37FE510D7E01600CB6013B950D3E
+6012E9500C582F96137C2051A3069A0BF400B62F603D1BBF12A550307A158722
+C60EA909C900AF2C47D500B32F5701E80B4FD42077327B1F6922A7306401BC3F
+018D11F51D57E201A5096B294989410779007D365630611AFD1240DF5300ED4B
+2F77217D2D1278DB064F0D771AC731700E9D69277621A154126AC422AB008F2F
+6020974F01780C8C5A2481450FD95504D43A12FA26B478105A011A329F21C91F
+92285BDB0068D204880035B401D2056630AA016C275B35436C3F07C804793465
+06D70141F230691A802777243F6B12931D3A7404D03E1CA42A063DEC004AF80A
+86007423924D1CE4266C277B3412822750ED0DB7002EF71BAF490BEC04C45024
+8E016A0DAD4202C00B9D0147B20C38871FF300A84915FA3E2302D612862F00B1
+04317C136227B800E50B33C327DF4604F008BF740034861FAE520A6C042FEC26
+9A5EC200502F6C00EA0945871D3AA71A409920812453EE0B41D012FA00C01EA3
+14855029F0169E274A94115A00DC5001EA0450D908E40150F418600D9A64006D
+B75A1986123F5A34DD15C5052E980E8404A400D04808BC0036821C51980B673D
+21951F6C3E007A2FC726891A359426621CD96A225AA2006A2783390880005AC3
+49345C05EC6C235AF50A51DB04406C124990057E002FA31B5E3C1F66A6077900
+31851FCF5A0079083D126AE706B156277C1230AF014977DA076712B93700941A
+5A3147730D5704EC400E97005D0AE70034C5279E123799218F1464275A319605
+42A8295022FC124C019E26C300B504439D0D48FB006338D814771A863E1F76C5
+0541DA224FC202D90050B116D40D9E085D04D36609F001A74000FE0432CE11BC
+0554D526A42F098500AE39500DCA3500972647851BA431CD1A6614BB7701409C
+01E10B40E91248EF01A1451BB223D403AD4114843E129C04CE520CF42701532D
+FE4F048C4623BC008F049E27D5346001CD224DBB421F866305790845B30D602F
+AE04C000B40D3B7F00E204AF0A952FDA126C29792790225A37781953C007435E
+2AB201FD5015593086017A063285267738048627701F3FF93350127E2779340F
+92184575267B1C9833017812E2661EF52492017A1B864319B90C36F4017E0451
+ED3750115AD12379279322602E9717683D0E9005416C943000BB4D01F7223F6C
+2384166BC50E9F0034791DD860126D27E419680086239D2786116C03B14721F9
+1BC36B0050FD00426C35762750D322861F794738691D488104E60C6108F000D1
+03863312A622EC045527680DA300E60EAC17FA540DBD12F25A0FE501B9500080
+26AB00C60550D4275DB908EF015927EA601F900038970E5115DC27AB03D25B04
+6C9E124A22B32C00871FF93406AE0D5800B305C90150BE04E54F33DC1E0CF179
+1C2A910B52A500E105AE4026791F5BC70FA6013EF705A7093BB53E12DE084800
+FC1A79390D9A015A3F26D81F3D790ED00BF71A9F005410BE3005D600AD0539A5
+2040CD50127B26A91FE148016A119839C203CE267B1F6027467800A12F820125
+A645346818A310E71C5C3146860779013485133FAC004710C22750CF0441C66B
+076310793E1FE52E0067DA6E0A60A10D740295651D3AFD41146C258D371A8627
+0985005527500766D51A3DC81239622F5A009604D540016C2A84144A7E1F5985
+0D79501C75BE612652D000DF4F31900477079302BE275A46016A123AEE70014E
+96278516F56400549C01339427610679009E2FD2345A006E304A91043FB304C9
+263F631A49B83D76009805D0287801409F0DF716AF20E85022C7630D6DB63C01
+840C5B3283002EB422FD4900970F50C23D0627C71639D426B92700C772047F34
+DB4A07F95F006CAE2062C48A21B53502709E004B9C1BBA12EE193D65269D1FE8
+27AE0134CB0045F601C43A044A0BAE043C653F15B422E51EB8336012861BA433
+BA4879064126EA1260246D350DC92F116CB31BE712BF39590E6D05A50DF4219D
+073CF069133B6C10D104E505790929C9204912862250C104822575003D690098
+0430DD28046BF81FB326EF1C9E40017F370BBD2786015A148F44018548005F08
+4A88451251BC01601F9C122BCD3910F437040E6C0049E30D4627FB0475017E33
+50A10DF0065300770CDB5E2695132F942166EE1F7A2C781297097E01660C7C49
+16EC4000DC07842601CA2DB2630BA500DC07B55A1F74FE3E04670080491AF826
+B85025811A6012D92253007FE00199482B6C2741F253136CF76000DA08643D12
+A52953C80DB51A488416599B133F5A057E00750AE2501EA360146C30EF22AE00
+F7571FE52FAD39EF0B2CE0223F770FB900487915509A0048A750FD27861339BC
+61128625DF4708CD007B133ABC622186410E7904AE5A057F00439101E222C326
+F328CE27AC38008805A054236C12E8590D7700368D1F79339440008604500DD5
+25AD350299086A3D00E60440BB50018411A5471D395A09A700C40C6001B30437
+1AAD2F9D1ADE5801E5117B275A36FB00A00836CC00A54212BE462B7905C90032
+E601A20877276C340CA4047B116C1B5AAD009A0DEE395632E103A5086726D31A
+33047809A168002DAD0A3E5E1C8C22AD2F50964004CB3100A219E8371AD827B0
+1235A90D82047600590785015AD1266C1F3DC4049B3F19AB22FA4904C646035A
+10E126C11A8E2E6E1550CC284192127927966B002DAF26C7340B72B912EE2088
+349B1F862640924D0C7B23750036971F4E00D805911F7925E64F208A22E93460
+1AAA12542496461A79258712C819B160226C26D6009E06357B1F640083058625
+7F1FEB3077019B65B61BCB223EEA6E1F59D100B404664109D70027801B52F238
+60264CA50F5308E35A1850399F1340B83A1FF82C0DA809F10079325D00812769
+137D275A1BF027A0184E356B00A806F40C6800DD05C81EB5133BF3790A490378
+FA003F6C014564124FD40A6AE500C53B01FC13AE61096BB2412F6C12AE013B6C
+04790A65019206DB0039F96C0C5AB304CD375000830540D001932B7D23CE5004
+D82FA927C70DB4005B4005BF5312003F5A018F045207BE013A6B432CF61F911A
+6AFB0E9E086901B7067000409E772D0171F80027D4690D794F12944E34882963
+15F726C10ADA01B408D201830B770168B301ED401F7F279A1F854A27673F0086
+08501660E36A1A2E8E1FA330BC07FE002F951A3D5B0F87522784062EF2270B8B
+04EE4A2752C412B229DA30B01F4826699E3E03D6133C684106E05D26FC1E793D
+0FF2043E5B1F86266C127919652D45D5229E1235E68726DF3046D01F93287812
+E70C86005805B733034B26CF1F771245CD2FFE250561BD203EA55B1A3CEC01A2
+3E00E204410EB54001831C5434921F513A9E31B921D9311283225FBE015904C1
+3C0EA301EB5327D526A301470CB95A0DD70451267C22844101DA06A62547CE04
+40BD510272CA1B3B6600D60A604000830D710458C17712501F84267700F32090
+17359A005708BE501B6AB400FB09B302EA0150F7049E0A6C004A7D1F0C6C0580
+106C3B0DF1269E22AF4F27C772264779B05F0050DE34A20A790250D03F0E7E02
+5008940449881ACB60256BC870045A9E0C40A7125B38E00F660045600D924A05
+C8094D38DF316001F9502E780BAA046D1CD0279E360180275EEB0049CD04B55A
+217927EF0031951F6C129D3F005AB70E861F9625F1551F9E27FC134B01EC05CC
+00A92A950D5D01C16B123EE02A5A00A54212841A61384C2495341B7B213DB12F
+F504A2C522A81FF600B45000820777013198113B01D91B3B12942B0484186327
+92126900902FDE12CD23B32D0F6D3108B700491BE3223BD46B00ED05AE008622
+F21AA43D00F83E267912860D7A178C441BC312601F852F92067C0050CB1A9B10
+369E0D386C1533A300671281500CF700D14B24E021792C44BF017F0831CC015A
+0692277B2286325212E92346B5492704B36F0D8621833106C94930A00DD25A12
+C14900DF521284175C2E4776015734651A984117CA354ADF035AF082500073F8
+0BBA5927F100C31AB327F11EAD266A336D015AD90081451F9A278511AE005024
+792A7F16612FAD0A6C04C55C1F6CAC00E826AE00D3340996013ADB4000FC144A
+23EF1F664100C16B1963AC0AF54712D726AF05C73444613A16A40F5001FA065B
+3D1FB46C123AA7401AC60DB24218A0670483007609F7551F43AA03CC11E96626
+00E2056C3F00770486366007C9013ED80013EE3CAE06C64C04DB2F6C0486147B
+1F490D27BD42207C390086107A335101860A500483008A0DF52241AA12FC5A0C
+EA01512F8F1AA312BE2650FE0456368F2A50119E01513C1A772B6C2051B9274B
+8604AF570D6CBC5B099505E1335001DC2E007226875508732D7A199701900A81
+0065AA3E189412DE690447F66F0ED95B003E6200DE0734BA1DD94E2F800ED500
+3277276C0138AD7615509C22AA27E60DB41A98264F87219D4161102D87270E8C
+265712FD23AA08C001AC6C3004A00160E01DB6470CE461223DCA5C1FE927A617
+85042F9404347B2666D00648F803550795013F7911D000E5077926DE12BB630B
+FD03A0077800F112653D219E32003CB32F771286207E245AC71CB30036A01FEB
+015028E31FBA27EA29056DB626820035A42700449705267EF21F9C27874A0A61
+3D12C8014A2566EE0D9C1A94510A27BB3401F4088A1D792777003BFB046C0BB5
+04D86F0060F34001A379005E4336672E5207E45A14C82E09792601973E04D86C
+1241960878016036C6642050C000B20A3686122F65DA3D21CC1CB85023751F40
+BD3A0481460091235635E21A416030A30CD0015ADF0F790146B704F90C9E043C
+810D59E1026C0D5EB4066A3D036C1E46D63A004B1BC4570C77BF152D69B93904
+500C6C02F82FA70179225DB77A143E5300D3401FF25B046C961269315501ED11
+BC6A1E49CD3878274F1ACE0C5112C4471D3CB50EE900CF229D1238862350AF34
+4BF5531F7E3007A7002FBF4839D6065000DE0A6C3C13974A00B9762700864D09
+6C002C860CA365005A9A1D2FEB143E9512662AB204C6006C2A79173F6A1DE718
+5838613143F01247CF3F149926C5341C8B12D6499E0187530C79EC620527E630
+0460E400501179B43BCA40126D1FE62A920D4101C105A6365A05AF003AC81A2B
+50D200BE47305B400EAE08580015A40185219A27793701E26C05772687168400
+60B201EC0567009A3D0EBF009F491AFD74260D8F1F9D2777298F1AF5591FE131
+520CD14112E834AC46F601CA3413F2270ECF6C0560CF00B4057D0E75278C1FF3
+26AD04C551278300A408BF004F93056001852C780051F3004160083BFD391ABC
+2F103FAF6D1750853E1F9027D4215627015FA4008508A500F41A6E278720FE13
+7E2369A10748E2133C62189F05D7017C279026E1622FFA346A00DE06B0630D27
+CD1AA5045033F83F1A7A12771FDC27058B2D6912C73657014FE4005A10EF1BAE
+01603E0585019E238A04A660017E2705663C1A854906AA500037B11F447A224B
+D64824E7115001860D7E41019E0DD8226D277A1A2AE326AF22F712AD1A762FC4
+1FAF24690F970050CE0150099B01CD08AD0B6B019D05FE79153AE03150177927
+4CDD470C69019E29D90D51327900810492420C69239D1AF3016C0D98075404BC
+50259119309349005A2979D90D7405D42846C149126CD14201ED50007C22AD1C
+6734B54003810D50C912A9267811EE18683B1E990D59D912B56900D73073189E
+5A0C860231F3015F099A003DBB6022E23812FE26772E8D12E906B45A006D0C7A
+043C674504A50B7F008605D047277B1A8722EF336427782240EA4F13781B40BD
+045A0DC46221AD045A00CF30780E60008816F820AE27C41FFC33B03F12782D4A
+C23A43C712A53E0A7C015AF813B237F3124000521FA42592005B07B2005214A5
+1E389C14E1099204781286492EDD3F256F00D9395E0147C300FB27C0203F6E04
+27960F5701FB4120E627BA59119227C51F528F05308100589F1B4700C4045035
+86123FAA2FCA1F5AB905D2285A374BEF163D6004F50DA5276B00A70EFB00BD5F
+0331C427A2004D8E227C3800D9127D229319AD26E634B3254101920A5A0D7900
+6E0356E300AC075A001F6D295C1AE72EC83F007E0485096AAD32C665015017FA
+2795308423790860B7046C2E5A26C922F800BA097100941E8B4908B033792582
+125B0486009E41F14724BC7927048401750839A52279013FFB1548D91DAF330B
+6CB45A1F69BC014CD50479094994004185127901DC0D2E6CAF227F345A01DC14
+7928811B5A3D0D9F6C00620EDA2F0AF001B1502D9D07EA3350018204740858C2
+6B2746E94B26B227D209366C1F8023EA9501D9049D4912681EB82F5A20C14704
+89270C79B93D047F0DE71AC827F6300F51D000A23F018427791F6032B312FE28
+12861BE504AE0B41933C14E42E0A60008A400D50C432A519DB6800E60D4F8304
+39A60F7A0565D1014A0DF5310E81233B6621FC1334E00E33EB23922666B60443
+00C1129639499E0BD1044CB320DC1938F426931AAD48346A1288053F624412C5
+671FA027DD124C02D10560018510781A43B50DDA27A40E38501F7F3700AF0878
+440CDC3D002DE61E5AF13A1069AA204D0160069401468A223E650EF0500CBC05
+50EC0443620150C9006A2C591F6EE901CA5A236CA814C62E02E11B6C125A3650
+1286482EBC18CC6A005027EE3F1383269502409B1AF101B64600A560206CA100
+5108C8005028E178275006C8043260238734006C068656056F017D257604CE27
+49FB11B400860638F50F5E00982F7912A41FC22FF101A66126840455006714BE
+600DF16C2350EA00A01A6CB4600A7F005004CF44006CC539AF491667C000E405
+9B335D1977228638139F21D2309A44359E05D43E0027793107B10036791F52A3
+389800F805B200C7330496065C3B1F77C3025A08A22ADE1660D30052346C1887
+315401C2075027AB5E1F7D1296083D0EE96C1F66F800AE0EEB8026C64211B628
+D13906E3541F9E003976276C1F9F5A0149B6451EF02289326C145A226E3900F6
+193FC633FE82002E860433BD023B68248B054A15CE279E26843014E22650126F
+24EB340C80276E1FCC00AE30DA00C25801790D6D2604F21A50127FB94C17A066
+1C51CE08EE047712612749811F6F2561F012418B00F70A359D27C82278008642
+206CB30DCF3E05DF108E267F14F43E129E32F9225AB470002FAC124585266D3A
+0C760134981F78125A9F3D00850F61BB01D10BF14126C6226C0986005A04E600
+8A06990DCA480BA25F117505254ADE18AD5912871AD13E12FC279201780EDE1B
+A55F098505F600910479411CA611850B3D6C044A7C0E34E326AC00C55A0D6CB5
+3A045A0DDC013EFA037B27416029DA01B7083AE10B9E015035D721A326447A12
+84015012BA2F05A40A277A005A9E1F6C29E8009D4901D6096C0085024920C641
+017F3808D70153BB1BE26100F00AAE004519BF27E9301A84267A35008C058112
+CE284BB94726A536D927631F853750019D21B8409F0B634000F8267A04B04F01
+A81F5034AF0579003FBC32A31A5C2FB712DC4E02FC2D4DE6129E1B3FB56B1562
+2D84183AA3270076F922922984226C4611B400C309487F22945A137D27CF1F87
+0C6C0452B500E51F60F33E0468FB3648E914AE2F0D50BC0441623B1A79278A1B
+BD34DB129E055DF417BC5A1F962A0492482186263F6B27F7650C790446A60E5A
+03B8651DD7345C019C0C690D7B0B7701AD04E500B31BEA27840E6C013CCB1F97
+2FA611602686390B69EC135D3949FE126C015439D218593D00AE345E00930661
+24F901500A9801F6095FDF0153D81F503F00AE0BCB059D2F4E7E21871233EB00
+2FA50059076C01AD2DE01B672941950C3471A01A57008E07642575F9003C7812
+CC22C10DB1043F60064C7B26851A3292012E7910F05F3000B40850D102920836
+A22451C50040E02F500C984817F93D20E027C62AFD2154127C2F6C2779084F01
+D21AF05204790C680150EE0040DC772F049D00CA0D2F8726E41F790181089F6B
+218213C34127CB3C12A228D8237B1F92381299340C8E02CE6B1E5032631AE10C
+3EFD01B2650C42CF1A49F539BE4825740E9305CD014DB800470DCD23B31F50D7
+014426921AA555058501662E4FFD1FA22A00ED0EB2470D50E200A54016CC6F12
+3A9E135A2CBA5000D80B5E348513A420EA380086069250007E05650046C54923
+9F05CD1266C034557F3112B227E127C41A44951F5512B84120762766B4005707
+9E0FBD22F1310BD405A4501A79018A5A057F00AD374C03C356086CAF1A622606
+79F100B54000A71B5A35501F76AD0E862667175510FD00B13154208A2F1979E9
+3A0484277803387CBD094DDC0230F74B36E11079006C12D35035620074CF1F69
+355A0683043EFE6C0148E2046C1F7F2F8A1BF6076B00780455BF2C5012AD3F1F
+9E3486135C09F4175038860026920521A660006F067B0F9D3507BE0394005AD7
+0985055027D037652D4660008B49276A3A00E00EB74626F01F405A06E7691B2F
+EF27003DEA45AF3D137610895E278500BE07D2033C5C01C508A2007A1B854909
+ED6C12DC600727964C14E311C1590527861534986B091F9F0048AD3ACB3E0A9C
+05C1274004A308B620D6279C25521AC5227B3C14EC109E017926AB28D3239E12
+6C1ADB6104EF5A0FE303A72C810060D80148F94B15DF76083AFC22A3346B00E1
+502F6C25F51A47A623EE179B02AB0CF801994012B804ED127726953300840C69
+C51A7A3000B675045CC079220A8001BC21EC2B06D90D6D276B278622EF3F1F88
+2FDA27BB3515843704A0003EC75201C63D00833218ED6200D15E0026AE5B2782
+1B6926019048276C187EE725793E128E004A0DBB00A30C6200B684014826DC15
+50018E0A5030FC05A40027853201B2276B1FDB26AF340C9529109E3F0026C458
+0D6801D423901F8613CF3D0B82013490003B6C401F7F27711FDB2A507B1F47B3
+4B0464D61FA73500950DA45D12409E124A0451C8275B34520150A0349219F410
+A4006905AA56046E0C6A015BD300B550277E216B128626AA541FA36C0C479F2B
+0F78E73E04CE0CEB04B66111F200D853043D5A00FB50276BEE611F3F5A33F327
+50236CAE590465C93C1764B4005E374677BD0A49971A82069301771A79411DB9
+69045AB28502298D2F85124609B200490561AA28C7511F63BA0DE75A00C709A5
+0586003CC6015D0DF4173F5604EC4F27DD1F46FD0027D5249D166800DC0EAE7A
+12650141B0048C36DF1B792640E71E99279E124327621AF60DB100F8400E7608
+FC0142B4270640C21B491294226F2F58401F8427793712A01EBD2F6001CA0947
+017BDE0596097902D605370EBC410071E64012921BC4260E522FD3125B38C934
+560DC301ED5E0038D7270C3549ED00C92558F563276CE9792050007805DF1146
+80043C99125634681AFA0F509427792285019D295F0A82017706328650086B01
+F739921A770437C526E422543861144A9C0ACA00793D00F1073E7BE402A50650
+772D5A05D72F6522962D0077F17A013AA76C0050B301DB08C301B3085AC7006C
+07951F832B771CB93012771F40B33C1D5CFD7A291A9C1F3404CE276C017DEA04
+91003FF8015011F33D2386460DAD6F196BE70692125D1AAD014905CD0D3701BF
+10FA15692D920037AD19652EEE01BB53269C3306D400AD31C60F7815BF2FAF22
+CA6311E23AB5357B092CA724F9480079098502D900B70C31841F5A12C14F236B
+C038134A238E3412C41A9F4B00BA5004D966124E0D61DC0529FE1F3E6A137731
+501B86224D30F45012D90CA926900450A400C751126DA80B49006BEF084FB779
+4902F14E15583E1FAE6B0D862280006CAB042F7F2705C00153BA1F3D9B500D78
+29861B4F93482C6C4234AD1A53F51E4DD8019F1B6C4000840CE34A196744056E
+3BE649046B128537019348006D0D48C45A046C0A862B50A51F6C2879275AFD01
+3FDB2F5F0EA904510C76CD5C00E84804693F229314397A0F34C825B12F1A8246
+0A9B05C735AC0DFB6300E40D9D043477237A00E80D3CF7442D6607EE00338D20
+B912533186003A0EA13607B323CB64072AB627D713B8401F5ACC12F64D319E20
+0064D70430E422B9013DA609DC00A0088601C40C3E8607417D0D3DB013D82862
+04883EBB11FA230160269A1FF4004AAB1A29A022DD27003DE42FB118D41245F7
+0DAD08C4003BA16A078601772BDB1FA401460DAC1B8536AE00F1075AE11F8849
+008F04439D00BD5E2681195300603E26A829751F44AF009F325A164B792604D4
+21922750CF016838A301CA124AFA6C1F61890D750037E4530079053B6008E700
+7741008D09487CF7410E6CA4007F125AF81F8424601DE7224826950450B21227
+CB5A047723A416BF27006D2F4B80B50DD6003E762BD00A5AF30750047FAD1579
+01445F00920630941F502296134826B21AF5259C006932FB257F276C01D51178
+277C3201A205EA3E136CF50F6A3C12E10041EE2CA104780A8B02D2671BE44903
+BF39AD019B69108202B80C5A2FDF187B2A6626A80127D10030E01EA978113395
+265A9E1991265016A32751D1122D0C27AF36156B27CF3400770440B43C0370D0
+5F13D93000FA6B0031E00B9100793650EC0DA80227523E1F55C70561188B3512
+79BC651F40610ECB1C9F3B23C960003AE7640570EC00397F048D14792688129F
+00D80B942761209D12C95426721D5FC03B1F50D101A4275AAF066C1AD922C512
+5A3C019209378111710BDC1940C234611E97228604580CE804920D3F9D18AD5B
+045027055FC21AFE0047DC016AC43E06DD013CA561C7720150F2049E0862AF12
+D56C0C5A9D124E008227A458223EAE791C502DFE41128C226C1F61E300AD7808
+7F27A44404C16600470CED03BA50278102E86A0440B76C013ECD0E405AC12252
+34BA09E9014E2E5B394F1EB30AEB0160400ED700A90C500092042F831F790E34
+92278500974933F918B42C50C721F12760287C065700E44900F8123FBE277834
+44D5650579411281B743F23F01790EA72D0D863A0499631D83105500461AD422
+793C1F882640563A18FC012FB826EF49016D0A8D05500D63C0035D07C801AF08
+CD41127B1132FB145000E52F531FD7279E223A6C00FC0C5A3E0F8B1A50128B1B
+4BA52504780AD6015A401F66C704B60EF56500834838AD007F3368299427DF23
+B75A09F704C95501E80E603F0786006B430F840065058D00A11BFB27A10E387D
+266B9F006007BB005312E12F00F53B24007B16A12F6A226CBD4B1CFA0E32BC27
+F123982CAA066600C35B01EA05BC009227794305880933C41BE51FC027F30041
+A51F7E2672288235049E27C543016BBC3B109401830D6F01589A12864932A41F
+B427F101D226AD0B2F7BE12760377612CF79063E6C1A820433C628129223FE1A
+B108F30279077E41128732623F12781F50BC14DF2753BD04EB1FA5307713D937
+5C01852250B209C1044839F54A1F82278B1B50974C096DC02A620BC901E8053A
+00962686500079086E047B173E9F540D40AC12852A681CC00EDF611F6CA00D3F
+693A017916852F104FE8490FDB015AF11A66006EA52705854C22EB27B034F61F
+43D00626C2056C007A3473276800FA6000500FAF19F1500030A912E45022A356
+0D6CDE045A09772C861F4921C53400E64A00A520DF2C9F003B6C01A50C3C6D2F
+5705CF24AE480DBB4F12D8046C2F5834D9146C23A10FEE013BBF062CD51F5504
+DD5026811F4178E20C5402D64414B537E20A6AFD1128DB2170355A15E350057D
+3400CC38015A9400AE56279F06D96C057900A21D8F2148990EE12F0A40DC1FB4
+3F066B007C08A501306095124EDA480DBD0A9B17854012BA1C9300800526B662
+247B002FCD01388B004E2FA03F12CE0158B96A1453A23D1AC40C79018424F91F
+AE40237B1AD6019D400D86012F93003977279117ED01770C8603C8005C32AA6C
+12429401770E9B4000920951B9311369BB3912892F610050C130004387049A00
+F20AA60135A22250AC1249FD1927DB4511EA227D351AB124396A3D0BBC003978
+1F5AB86300770C5AA71FDB2961136CE41A40EE01601585255A03E2350597316A
+39CB2C4997400DF71AB16A1561EA22B4197805E56227810E4600FA0B6C049426
+6630B40D60087C0450F0009026641FFD6B185BF41A63E008B2005A1F9727A51D
+622D428F195004E85E1DB227FC341AB527F01261019C471A70AF01ED1AA92605
+4A78B4126B33571F9126458600F20D602D790FB3620C3186045C00CC40015AC4
+04F9572763D002860649189B27FE0137750E8D25C53805860033A022C000F52F
+A01F50D74701F3065E0CDE032186015D3F049A420F760855C8275000B11AEC26
+9B27AB22D11252F0045A37C84F27D20D633E11AC09800027BF42038232138026
+46C9490FCE0050E60AB305F80D793C00770B85044E861166017922DA3600F708
+3E5A22790F8623EF012750E707B53B016DD91255328604D80097350376AB1D49
+B94C126CF20D3B93400087072FA326F428C90D811B50D304AB197900964D27BC
+6909552A911A790E82005A1186279D1F863353C54E34A112D72706BD31FA3D01
+840D96355D0177097C01612E8A003B9D129526008819A221C94A2AE636B05007
+35A820C84704F20B690479307F223E6C1F7D2640AF1FC426E14822CB0144D13A
+B04A07A96026871FCA4804DC4095523AC80A2D7B1B6AC73E0365B01E41A81C7F
+255AD03F07F600680B9C461F86266012AD1AE9550B49008E046031B512642C47
+F50B5B1CDF12532078D704406201CE30AC27C51A6401BD4900932708E1006C34
+4C8E5000791FA822D94904C9384AD21F50F20543BF1648D7016BE4385A016C0A
+9E0071045F12E06C12520089502F951FA825FE05B401D94F00CB600168108134
+0098522F9605266C1D86122AA0006C05A1325F00270D821F62A900DE0E502194
+2B07E7006A3D08EC005020A326811FE02C00A608DE04CC2479341576C06B2551
+EA004379049F00572FC93E04A10CF8003BA511EA50226E087A023BE83F0D28FB
+10417E1F57B909F10125A0116B045A3F12841C8605309E1235791F4E86062D83
+0D5204B633F427794112D81F9F2C0079EB3C11C30141D40060124E1C892F1095
+350CDE2D9F045ABC3E0DED1F5AC100F90450D7183FE43B127E1FB04AD8009D04
+3D5A277704FB12C34A149D27CA502282128601602F980350C337531E7F2A9501
+5DAC013612D11A3E720CE22640C61A92018049346C2E9319476C3904B415FE22
+B5511375B36C2258CB019D2E15851F40D84930E737B400F626AE12E65C006CAF
+0EDA013EFD561ABD27771093004907B83150860558B72705639A26770D5A3386
+39C76A075BAC227947177C26F92050147900840A3D61412FAE01955B0D6BCD01
+FC08871A662FF612BF01B535497D0079375E016C0DB527E334BE1BE6123F8326
+0477B3004712D80C3EFC7A41019D08C4344E8A136C3A0DB01FEF01B70750CD01
+B20C792A5C00416B079D0039099F006B3C12F64900AF7427018206660F782D67
+00793F22C339017F26961B67009B4714EA4E1F6FD35B1A84003BF63F1245AF28
+01FA1AAE22E906A40027F13801EC04B557009208A303DB2CA527D7169F0D7D24
+6D3403B81B4E2E6238013FAE14476C30601A960D2FAE22D412F62D9F017A0564
+0A6F005AD21367FA3D0D6AEF5A278E215105B86027821FAA2600AE07E85A2779
+125223861241842653D9019934A31EDD2661D3461CEA26AD6005793652125AC3
+1CAD27D421A413C74A03850A4FEF31680CB226CD330686002FC00B3803ED27C4
+0D6801CE6C0D844D358300791477275D991153851A6C123DE31F79316C236012
+6D017B32E900BF09F449287900A70BC45AE3027E059F0DE94000D05306840145
+731A425D1FC7279826853306AF005019C72549057900A50E6C3C1BEF00490569
+F931633F00CD0660D63C00E1310DFA1A3E6812E40A49018F2E048650057F0B2F
+B41AD203EC0A3D8A0079094F026C401FDE27A8155A05CB5100721250DD39AD6A
+2159AB79125F1C8E257E2E04E41CBE1242CF325401DC0944BE0533A426C50960
+400DCD00AE05F935B14804654512921E8512D95016722110349726D8225B0586
+28761AEC4E309A04BA08F13D00790EFC04A545228B2C8501A012BA1FE74533D3
+009F0E5AD8791150019E1285209F2F046BA31F995A008106C750246CC25A11F1
+4012C03E1FDC4A00862769297C204CFE155AB633EE05920C6A0081249D1937E2
+27AE03610A5001FC054D0044B24801DF11AC483367009404600BB73E1F92172E
+76D8007A288A00BA5927751F8341005A22CA1EA32D583E00AB0439F627B38D53
+0B6D0046BA4B1FAB01643C12CA1E54326A13924A29B0385017EC5C09DA0E6331
+80013C6104AE1A70307C23411DA7278623D9286C1040B14809780446CC229D2D
+008605442679006699005C9401783F0EC008A400CE0D40A23C0084125131B11E
+FC2FB901419304791A8524C61D7926971FCD266C099A345A007909A42B4FF31E
+8A26814A00F655013F5012FB1A6C3A01F00AC64B19DC0E920B7D01DF07C56724
+5A9A067A003A1AEF27A4167801F81146D609A4006BE200A54004DE0C60009D6D
+02349527AA1FF72659D5127B278603F406B2007104C80C5C00A404FD6E0027F1
+27BA16366D1551B135ED12AC19C53A26F60D32B817FC591F6D336A278504621A
+E2265BD600633E04790F50E90D5A35F6006C29940DD5347E0D9217F84C1AB926
+F05414D5083B6C00E605C436660DAD1D9F690450A8137F2664330D9E266B30F3
+385020891334EB0E2F7424D65CB2016908E14F2B68358F20792791370F7C1AC5
+2F509F21CC270D40BD0078057C00940A439C00E00F5A228B284DE33A5038F049
+1A7C3B1EC35A0E740061AE01F20B61014A790385500A871AA450238304378A01
+E60FB21ADD2B75079F01369413C7502796216429BC1549A511F0013C610041E2
+04603E009204683A018620A724BC40126C1A79219327EA0C31D0223DE2069700
+AB6C0451B4005905AC5E016AA10050C901A60A1336952285410EA208C3005A04
+F9195BBB2752008D2601720849DF7913511BCC395022C11A326B264AC24716D0
+12600AB6016A08CF5001860B43A51BE83F0D772FA127CE1F3AD83E1BE3014067
+00D60C41CD22A5275A017A4800BF50276CBA09426F00DA07C200780287092F8C
+1F4AA11BC0225A32BA0FD62752CC0DB53060017E065D9C27A201D20761004985
+00920F5C4429D31A3BEC3F1C8B25C6123BFA4021831C6C3E2685FE5704C93000
+D11F812644B4490E84015004FD6812D041EF35A13A016AF5345A12E165046CF8
+08B301630884017A1F9927861F954122B42ADF3301834C26D1218C047B0D9507
+5F007F276CC80879284E970074057F23CA391295350BF612532FEF1F862D6C14
+4CE04022D465043EB40E6C078C017C266C2281153D6E4119DD4613F93E00D80D
+5A3045B135C812652CBF01A20B5085016008D6017B277100790CCF04B507E350
+0046117919509E385A04ED126C22A02FCA239D390885330B6C005A1FB9280686
+0098072FB412377727921FEC35AD2FF6005A0FDE3200820D62046BC13D059900
+5012EA24672DFD22BB12AE3B1F52B012E8175B30F713920C5FF0054985247B00
+9006600EA7268C330D5DAC003BE96C0051E5472DF50C9D00A607FD009E05860C
+9734581F822650FD038810782253F20548861FFA3412C2229C2F6212E422B949
+276139532D661F9232A527F30D6401AE334E9C05DA007C06750D5AAC1F60B227
+C512770D934520C5254D86004B9E00CE0C3F690059054839C54C036CBC1AE627
+951F5023DA1F60B43F0155B800488605475A00F30E3D610145B709487700AB1F
+5526C401B019D6223FC53B04F401B67705398612541FC62F019912603F1ADC49
+366C2648E8226B00CE04B008C5123E6B1AE105AE013D96143869028B49056F43
+16A550049408339E00F30DAD00BD04D20686007621E5137A003E602B501FE927
+D22F03F3005105793AE84D01E2640D3EEF193DD51F812456A811D91AB96E1379
+21A1253F5A017B08F700A50D862E0B78C61E419B126632E12078269304C43397
+25851A36DD2778009B4028634404A26C015A8522641E3FF81A50CA0592127941
+21B000C4772E039512C02F0150B9492771276B2F7900BD50276E277F0D50E500
+C5531FE131AF00FD0A367F1B5AD4126C1F7A2577125D1F6C2240B83D068725F6
+1FC00AAE651149009E43267E1BDB4700611AAD2A04B470026BAC0E5306FC012E
+762680290BE3005F07FB0EA04630AD136C385C02F96B2708920435D401A70C8C
+04CF2F6C1F7A05EE00BF50049F12CF500DF9009932511AE11243CF08AA005097
+01277A2AA508DE64143A500558CA275008A57A12611B960FE901A72389360A9E
+00D41AB725409B3C09A5006C107E2951BD00EF3E018127A401CC35E840AE01DE
+540F61C8276C0D771582380178B766146CC20D942F12A5268510408431139E27
+0561A234487BC8009E0941A54A2FC03E168400D21259359819C9344F00DB4931
+ED53267F1D5434B1188600E010681B416212752C8006318F1F6C10EA0CAD279E
+00316D27831146DA4100FE2287320478EF1D9F0E6900F3621F3DD506F8007C1A
+560DE2045AED1F673359018608621179289120D847019226416822A519E00B3F
+6419550C268534018F2E009C04B536E00447FB1A3704E3203E5A01B96B09FE04
+50D70050F90149DC2F00BB260F543C20ED6C0126940469B33360277904EB0050
+067911A51A860E6900C0083FF5005F3E0BA22749AD37D001AE26FB184ADA0454
+BC274664007A185DBA0FE81FBE310AA65C0F73004FBA3E018227E320793904C5
+00763140AD3445923B1F9B2B0040B304F7411FD127ED22CA053E651AC84B0D9F
+04CD085C314D870E99007BFB085ABD16EE491B644200602795084B8F410D9B04
+F036501F8648349B21881E6736941A8A41126CE405B366033ACE6A12F126440A
+EF05B4491F69B827E52F5A3C04BD1A77144B93229F12EB56267E015A06703B0D
+90013D86207935019E05CB3449FD04398105660190691535B527D71A5A23CE12
+460154B7179F264C12A2025A0ADF00C0611472AD5E127713A35A0484005A1678
+F300860732E71F7227439600C504ED22B82E247E1F3F680CA234E312AC1AC751
+26BC00CE5A2774247905DF0027C601570AC70DB0096001F178043B5C40188710
+5105864F00789E1B3D5D0E9E3E126E009107CE792340AA2FDA0161066C4101C3
+0DFD19B526E7531F60C700B308E44116751D860D28904A24AF2DD42604EB5401
+6C0C7E00860662B5840A3B6C0C79E75F27CD26871C794110FB023D07D9269200
+31BB1240AE350D553A23B16C0052B801FB126C422761400377B200D704AD5000
+7E03852479012F86126A3B19B200D2129E32548C123EEE6327742651C927501F
+C425AB00F926B51FDE411FCC2C016CBE00DC5001D124B2206441005BF3016E11
+3EB82DD1229A1F5A2F6C400E7B00BA40157C2E641279BF2BEB01B46812E20078
+0B6E47A13C1F8C22A438F6329C1A4E26FA12D6500048049D0D6801B83005972F
+4FC7277B3B1ADF6E265086036CD504BD600D3F9D133A63472EAF1A8513D05311
+1E4F2F6C0E26CE195839F40C49DB053FEA01800C6C1F83490CAE044D902605B2
+00E5043C7907A200850D793299007D3001A40C5BE03922812F1A8627790D3BFC
+1EA52C1286269F570C7F0085083CAF00D304AB472D6C05EE4A0CA43C00580461
+38500297275A35F23E0E7900BC09E44A04630B49DE0077045F3F1BAE21842646
+F749216AD44700860B6900BB500E400AFE1AC03E1F814001F51B4FDC0AA70480
+08F6009F0938925FEC12C23D78462FBA125B349314A65A208E26F932A7012AF1
+1E3BD4007847348412771AEB402C6615DE470462460DBF61278D174904990847
+AF05F5014C95046B09D44D06DF0033FB1F5029E56A12834D287801E00F9D3301
+D52450F61A9C12A522D3480CC4045900C91A602A6E401F9D26C327113EA92FC7
+019A30F312C000750890015122C11F3EF2245A047FB27900395F019E4D149026
+82022F8626D322613476275ADE002705834901F9058F007B08D0007A3300B706
+4061124ABF6A045B9919A512DE1B4FC1229E00720ED6345A1BC612E8365312FE
+003CC36F12F46515405A32C3133E8939169D3F1F5A890467BC0F4301C73F1AF2
+13672185265BA81B86126C3248DA007B08377E25871C842650F905A800D00781
+006CB35A0D8122860D6B007C2F5214B12AED15820D54A804992BE93D012768B6
+0DEB2F05E0286A12AE5E00780D9300A50DC10133A16CB3320B86276C22DC279F
+1F5026F16A1A6ECC0099093D22D8400A6C257D01990C40801455B85004850B8F
+246C0197077926A66A0140AB3B0078CB109F005EDC01B6630073B20A27A43800
+709F265C0DA60253C13C07D0003F6A05B300C30727941F56F700A811D72FAE12
+406C1559346812ED47043AE8005418DC27B53906E3641F7A0D9F34E7016C3253
+0D771F62DA12457F1D5DB30FA200D84118F3385831E81F6A21865A0D380162D7
+1BB811A50C770463C00142279D0B39521FEA77008027BB00FB39602DF30030D5
+02381CAD26F30041B75022D11A86052FE821571FA12B04721F7F2F1A7A2641F0
+3B1269E91B52D5133DF8048F227E2F00944E1A7512F02F44621F8A5030BE1278
+2C48600177089401C42DE30DB4502D1A8D226733BD4101791A50A54003C4003B
+6104477913E01BB300C3083E970127A000347926773104964D06C701499B05E2
+3E1BF449C71540560060395533EB123AA278074CE51EB45F0528B24911613654
+06BE0443A6540D6BFD7B003E60319C042882004E36BB500A8B01C80C50ED34B8
+0DE94705C60C5A03C6350181063086016C4727E607A04412FC29B55503880ADE
+3B01F20C6A3C04B50AEB3F1FDE2751258601933D0178BA00CE0692095DA90EF0
+01601088264DDD25B91F9E450060376B258A164CF4540CD75004FA0A52BD3D1D
+8412791A3C7045009606842277049C30E307C400458F045422D8300479013CA5
+6C0D34E602A31985229113661FB52549146CBC12D71F5DED0F69E0026211D027
+6E27822260014566028E50208627952250AD12E16122C51AB100603E17D95E04
+800134CB2679209949177800E1501D81229157006AA4045A37621BFC0C40572F
+6C1FFB263C67209A27D0193F950586005A0FCC2FA212FA5001CE2C04AD3A1A93
+3E1F98226801ED27AF2CDB00AE12BF5027>
>>
/Gray 1 index
/Default 1 index
@@ -821,782 +915,878 @@ fe31d3fb52c5e56cc1e067dd97fe12d850d324ff51ed40afd8
/Width 167
/Height 167
/Thresholds <
-7bb6c793d8a0e14ddb04d951e02dcdb901eca3c572efa5fe78b5d86adcfa3ef584d3b938
-f308ff45f9ca7ad989de80e593bfda7debc76ae0bc679dea874abeecb83af378ff9accaf
-f175d8f36bfcc2a1e5018ebef786ff51ef28d44de122ceb819c974ed86e4ac64ff9bf786
-f29f6bf95fdd20ceff4ff5cb82e0ab3fd8b352dd16e5c484e25dd8fb6087ffafd14ac1fe
-d8b34db7ffd15cf7a9ff54c3ed3aafe070c7ff7af29cffdd38fe4cfa13b0ff81f77afe93
-f95aeea8c94de5accb1cc0e527f2ad10b5cf95e855e58dd8be9be06db6fd3bf759ce0ffe
-60b5ff41affe9238f8d05bd8fb9e1189dd93d9c049fb0293deaf0ecf52ed3dcdaefb579f
-e06ada93f978ffbf98f757ff93f65cfe3ef9be38df4dcd37ffafd295c0f67ab8dd6eb6fe
-11d0f97affc86bf88cff27bffe933dc1e99530eda5e28328f27be58e3cecbf0bcba5fe78
-b8ff26f4a445e423d85188ea9dcd7cedd028e0a5cb21dd79d886fb6afe10f468fd5199ff
-7dc5fe87ff02c1f92bfe50f128c2ed12d6a7c59fedadc3f421d19fe026d6edab05feb027
-efc3fe57fa20a5e487d8ff4af886ffbe95ff60f227e6c31efbb93bb6d89442ed6bd988d8
-2ddd9ecf79f1d186fe7fd95ae006fd40afe00ca0fb38c1ed65bee82193ecb64cb7e09f15
-edb0ff0dcbf95afd12bce9adfb0ec2fb9e50f366e430d0e580d886dfbfa7fd83effbbf28
-f4b63d93fbc042feabbfff0ce636dd96d892d981ebd062e037d84bbcee6099ddafc993fb
-64a2ff72f203ff4dfb349ce779f280fba35afbcb7ae590d251a8e07fcffe34f679b6ca99
-e344eb18afde81d870ffb37aeda3ff13f3c3a7ff0af16ce5ae14fbb32498e501edb8fb79
-efc3a5ff67f1c357e679afff46a8cffe2ed9a5f171f9cd67d879e06abedd76c9ff8a43cc
-a4e078cfff86d891fa9f10f151fe14fa5ac9b60163a9e479fec2f15297e970f04789f2af
-cf7af75bff27fab809fb9df5afed78d7abff860dea5bcfafe536d097dd90d886e0bf52fb
-0ec862e5c14395de31ff78f9cb09efb970dd5eec1cfd2ad5b27bf9d036feb6ee47cef504
-d187e360de2fbccb9efb4cffbf5fe6c6ff6dd8a52899d89352ec1fd87cff93c6fc2ed89a
-f774b2f279fe08dc43abfc1ff6adfe3f93f19a52d8f479ff22f12fb1e51ced4bbfff94cc
-89d995ed32ffd9cfff47d80687d9aff311d19ec2de9b61ffbe1ee9b9dd6093edc256d218
-94fb24f23cc3fb94ff1bf252da7afe5cf91ef368ffa6cc93ffb618f5afff65f39fd8399a
-ff932ffbc197c6f28fe56efec14e93e09f0c93dd9b5abffa43aefe8cf95ced3bafdb7ad2
-f38b49b9f257feb6f435ffcb88fa97e42fdb09b9f27ae502dd4fc0e05ad37affc682eb97
-2cd3afff1cdaf7bf03dd5ed9b9fb61c1fe7cb0dc6ddf36ec63d179e052931c9fee93fab9
-31ff5db6ff37f91afec72ef1b08745a4f2cf40a5ff84f8cc65debfa4e061d880dd87fea7
-ed2bcb84d897d007ed42dc50edd183da21d8ae0cf1b3e54bc4e0ad15ff43b961c2f408ed
-a9ff6df3b8fb2cfeaad96feac921d878e080fed01df69606d8fb931de077d983e2a914dd
-47d060fa9fed69afd256fb87ff12a8fb93ed9e32dd53caf27de665ccb23a88feb6ed9749
-93df9c43c5f703fb5df5b6ff2afbc2afecf8c65add70d0e681cbe463d878ec51a5e05dd4
-feb4fa169ffed821e44aa8ff8f53fe77f730ed46d6b60ab9dc94f03bfe59d978fdaff797
-37fe6ef986edbf73fb67aff26cf891d29ed8ff37addd63d815d749d860e086f134ffb867
-eea0ff03c6b686e554b7ffa53be9c4a5f90bfd4bbff186fe92f2c14abfff27faa0c4d961
-efc93dd91acef587fea64efa0ab9ef6efbd7a53681ffb5f809ffade079d59bd8920ba5e5
-9e0efe6b3baaf323ff45a7fc1c9bfb93da85ccfb7ef79707e079bfe54a88f195c4e00dca
-ed15d99dcba5fe79fa9cf66fff62e5afee85e5c41587e1c0a5e64fc83bfed924beff0ed7
-41e052ed04b4ed5ac0fb83f6a4fe7ef7af1ac1e0930dfdbe44caaaf535fe62facb72edc0
-86ff5ece93c99eff65d832e00ea5fe81d8b46eed1d94e59f6cf985ffb963e302d9bbd89a
-ff47e5a81ff1c5d814ea61d088ef27ff4ff239fec3f97bbfdd8ed8ffcc88d884edc67aed
-bd4af209ffb112d93ccaee54d7ff69cafbaf38fe6ef5a57afabf50ff07c2e432d84de01e
-cabb119ffb2e97ffbb47ff07cf9cfeb85ca8d0e87dd987fea6f579fb63c6ff9331edba24
-c4eb38cdff9863f7aed67cfb88dd77d894dea529d94bfb0faff22eed51d926e9aef373cc
-e63ade14eac24effbe37fed024e4b34bfac193ff7f29e06bd880c7ff8652fc8acbabf43e
-bfdc93cd7ee0b361d83cf256f67aba14fb60f7a40bdb53ffc988e0c163edbbff70b9fe89
-2ff2b604dec192d959ead543a9ed88e059b0f293ff79aff86affd94fc1db5ff3d081ec6c
-f21de286ed9335f861edc52ec1da8ae49d1edcadcf78ff6ab1d9875bf2ca4cdf2aeb53f1
-18ff4ff20bc7ff82e49ac2dc6ce0affb78f6c05894ffaf5bf786ff7bf6af79d8f25aacf4
-c27ce0a42ef256c3fbaef515fe3e9ae0be9fed2dd980fea25bf614fbc025ee86ff96d42b
-e070ed9ce02fcbf386e59f1fea3f9ffa934ba5df299be5acd082ed6bfc26bafe1c97ffc5
-2afb7bf66cc816b6ecd041e0bf79b0ed74e523a5fb4db6d893c3ff02fbca88dd1894ffa1
-20fe45d0fa7bf350e297f204fdbed809a5fe79fa9ad1a5e584cd8ce2a042f3ba5eff31fa
-a015c1df9a05fbda20ed93cbb653dd32d4fb0db686de8e41f708feafcf9fee8635bfeb92
-cff607fa46c3ff59e61ec2e487d9a455ffa5c917e265feb1fbc53fafff6cb6fe38d8fb7d
-f5d425ddb6fb86f6c313f951ff3cd49aed79caafe36de793bfdb23b7fe86fa3093fcaa23
-c6fe03fa93c2df7ac8ff32fa4aa1dc79b5fe50f3bc4be3b881eda551e90bfec52dc1e093
-42ffafed3ddbb00fff3eb1f730fe69fbafce1bed93d07ad8ff873dfec579b9d563ff07fa
-d08bfe9560edc6ff16fbcd97d86fe548dd11d1ff9d5fde79b8db84e26aa5f279b5fb4aff
-31edafd26be9b582efc402ab5dfed985eb24d0ae6ab8c751afff5ff106d85bedb17bdd86
-b5f84faaff5dfa3fd803f34b9fffd340df9ec2da6bed88f457d8b54bff3ef60ca5e588f1
-bc55eb20ceb079d3fb73f7cc11ffbf94d8b658fb9f4df8cc7be077d085e7c293bfdd7ad8
-9dd725ee61feac56eabe4393ecd066e5af50f49bc1e19e41ec17c9e39d4493eabe51ff32
-f295ff8bfab142c3f221ff4aa6fe25f8bf0ec5e086d896d079fe08f446f9c03393f2dd87
-bd0ecc59fa79d9f704fe9ae083d07be66eff35cffe2bc8eb18e1cd0ddd82f186fea5c3e2
-5f93efaf55f40aff47d096e06dea9fd2b895edd65ad916c9f784fc67d8ff0999dd32afe6
-69d93afe88e577edd5a526f34ffb1fff38f261fe5afb05ed55de91d880caf902feabf323
-a4f21affc335fe4884f2be7df3a52cfbb1dc63a5ed88d85ecb1dd653eda5fe7bd86aeccc
-63d87ade96ff37f506ed60df89cb9cdc7bffafe54f27f8d895ffa5c0ed43b4e587ee16f9
-35fea4c894e165baeda162ffbe79f2afcb20bcd062fc18f7bd05ffd77de5a5befb13affe
-31f519fb52bf86fb78ff983fe0a5ee38a7e0be52ff5ec2fb86f1ac25bfff1686fcc786d8
-93da9fcb86d91ae0afc785f872ff10e549b4dd69d872cbff81d987efa4d8b8d924fed74b
-ffcf79f101fec522f976fe86ed7ade87d804e493fbbf14f19ffd44ee88d26dc9b1ff20f7
-51fc24d859d878ffcfb362e548df1595ff70c848b6d88adcaf44f01dabfb8c09fed89557
-fb9f53ff9efa47ed8fdd79cbea8738feb828df62eccb87d880e176cdff26afe930d1feb6
-0fc48dfa6ef6d084f29a2ae060d2f866caafe75ab8ff14f15bf76dffa4f59644ffbb38cb
-b1f295ff86c4f535fcb25ce02fd152e41288fbb067ace570bbe857d878e09abfda0ae0a5
-fb24ff6ef75bcb378fffb83bb5d8ad5bfba2fa3ea6d893d983e7adf20bed9ffb1af491f9
-71fec431befb99ff2df262fbd883ffcd45e5d29335c2e327d2ed33e077d9b12fb7fe5296
-faaecb59f689ffa250f161ffa5d839adf2cc7bddad53f27dfed948e528afec0fd9bfa4ff
-0198df4bf392d83bdd9fc6b605ea2dd879ceec68dca3fd297bda3bed20a1e0bf0deda5fb
-7cf793ffc133f0db06c5f91c9effb7f44bff3b93f6af42c7b74fe6c1a4edaedf72da94e9
-01ffc01aea62c0e57af031ffbf6196fec15286e1c633bfd97fe6a5f21ceb61d0a5c602ad
-e55a95f7bd60f2aff780ff86b6c793f610ffa0d93be5d220e06fdc7ad835c6fa21d9af0e
-f39ae08b07ff62f893d8af26b8cc95ff69c5f962fe38cbb0ed7efea70cffb365f978fed0
-8ae056fe22a5fa12f086e5c2a6f979c0ff4b92fac841bfde04d84aedaf79bfff945ac3e0
-8820a2ddc3afe56ccffe79f4d8872fff1afa4ef429fe86f278e4a8cc95ff11fb5ecbb61a
-fbc54193dafe4badff9e06f34dd864df93bcfc53f797ff3abfec0ea2fe4add13da68f002
-fe5fccb67dec6af3ac6dee9cff11fa99f2b686e47bfbc586fe5bfac09fed1bcf42ffe486
-fc04d8bf43ace093f086fb46db2dd0f279cced2fd94babfa7cef8ec1e479c95ed24dfe19
-d19ce868c6e66196ff719ffe83e668d4fa4186ecadfe3ff2b4fb870ff150ff2799d9099f
-fbafd48fc9b681e5af52c4d950fe31ef5ab7c7a0e46eed79e1aff229c3a0e066edcd93ff
-8bfbc13dd90ce07aed72d0fb6dc2e085d87dffa5ca4ce6a5f23bfed826fbc10affb945c4
-e8af4bd001ff5acf30ef46afda2be54dc7a5fbbd8cc44fb4f17ffb9dff17d559e273c8ac
-fa69bde421a2ff92f2c53adb0cb6f331b8ff9cf8be93f15dfe0bb5fb2ac1ed19c4f059ce
-a9ff189ad8f52bdf6bd772d83acffe83d99fc0ee58ffbe55ed69f630fcce10d6fb9925f5
-92d886d1f64afe03f799d32fff86e95afa15f6b558e02ddb0fa5f281ff9fcc2fd9af21b5
-ff38fa1cedaf2ffc9dd86bc0e4925bcfaf79e1c87ff29364d8ff78edc0a0ebbb96c2e86d
-d785fe79eb5fdf07eda0d961e434de88d87bfe27b9ff1199ec4093fbbe51e0179cff86d0
-ff62afed3add09eb43ade084cff279affe7fb1e038b6f72694cbfe61b7ce93fa09ff7ff6
-a55de8af17f96bdd86f2d00ee09dd85f93fea53ee0c177e265fe2099e086daac44fca5cd
-09bb93d788c240fe7ced86c9fe6be4ae4df4befe60f3d686d89bcb79dfc089f324ff961a
-f5a7ff4df8b252fb18bffd2fa8d99343f61dff55fb05ffb9ed13dc37fe83f46bff30f7ad
-ce79f351ebc19fdc6bf4cf83ffd661edca79fdce5be59e46c4fc88d87ffe93c4ff30d9a9
-4fd8e451d1f76cfdc772d8f24cb6ed11ff50c0ed90dd29edc932fcd17eea39cb2b95feaf
-42ffc0ee48bff885ffb50cf2bfafec38d862ffc267ec7ad9fff24dffdd95d5b661faaf46
-d024fad893108dde9f4ff167f541fe5cf854ceba51c5e072dd05edbe27e6c3a5e054c8f8
-1bfecd7ad993df80d8a43e88faafd19fc645d4afe0960dffbe24feb508ed43e5be55df19
-b5f707afdd48b5f624fbade502d954edaf5bdc77b6f725ffb703f1a329d9ac0effb57ce1
-86c8af7be5a444cc59feb67ce09649ffbc93feb0e05bc7f28707d99ee119d84cedcf9453
-f779ffafed15dfb422faae38cbb67f27fb0ef3cd20e094edb8863affcaf733ffc703d990
-e49fd909e279eea9fe3ffac194d882fe9a66ff80f39a61e0ab5cfaaf3ab2f26af8b6e098
-50f61fffa6fb2188fec75df1a1cb81fa92ffa52ffeaeee74c79efe87f283c0df7ad866fa
-73ff2acefb0ff5cb69e2c25ffb7acbff62f48bdb46fb03ff3cf7d328feaff894c705f263
-f7adcb02e463f486fa20a2e6b879ff69f37cfba160ffd607ddc02b93f983f4be6de59a19
-eed8bfa4e151abff79f65affc5eda55eb6d862affb7aff19d07effb6fb15d886d8af51ff
-34f260d1ed38d807d2f086c6e509edc6fe18cf4ded23ffcb86e279d87bcbed489fe686d9
-34e058d870ceed935cc2fb4ce538d810e33fa4ff14f196cba5e57ab9e4a940ffb085dd94
-e6189be03bcf9fec84d895dd79bef061db1ae56affa4d922dd61fbabc914d973edd44bf5
-cb31ddafca28c3e53ba5fd609bfbcb52d83bcffe56ddfd9e44f566c4fb73d8b701d99e17
-88e0c520f292e85acca5ed67e09746a3dd60e90cf286cea5c2e411a9f68efeb942fe2da3
-ff90509fe57bff93d865b4d949ef0ee75dbaf9d917fb6affa6f61bfbb805d8f93099d97c
-f6b9ff6ff9cb6cd9af42ed18c2fe3987ef96d715fe37f46dbefa7cbefe20bcf936f351fc
-1e9dd882fb9ebad84cc1fe81f29f3dedba52ffb685fe66a5fb9345ff9bf570bfed80e4c3
-46a6ef93ffa207f18c5cc9ff93e62bb2ed39cbfb7ae5b2f246fe86bffd13baf92dc0fc1f
-f4b3ff82f97aff9ce31ffb4f93fecb5ae0669fdd7ee7d06edbb6f937dcad2efac20afeb8
-85ff9cf5328fb3c851ecba7ac4e6618cffa465d6ff1ceba54795d8a932f386febf79f955
-98dfc11ffa71ea93d859cced4eb3ee65e574cba9c593d0afff3df2c252ed1ffb77b0e02d
-d0ff80f8a0cd32e513bfe005d0ef5fd910b4fa32d11bf3affe0be279edc779d8e6ab04da
-5aff6fc1fe64afef52fe6cd795ec42cba3dd50ec7cafd363ed33ca26d0be3faff488ecbf
-4497fa24bfff0ef7a648fb14e96bd886ebbd74f1ac68f3cc3cd886d0ff5ae5a5d009f24a
-97d8f23fcaf483b6cd67feb6f023fec15cde1fe0a3d6b1f26bffa5cdb649f87affa92afe
-d80cd99afb52ff14ed61dd6ee3b30aff86d399ea0fbfed934fda22e57afbc596ff77f3b8
-87e580fecb86dd94fe7bdc87d252d92db5ff347af9c682ed87d911a8de28bfd51dbaf90a
-aeff6af674ff98d93cffb993bfe593ef5afcd26edc27fface579d5ed74ce60c2ed86cb98
-fe09f75afed240e0c11baee56dfd01bff027fa6bfe86c1ff2aa8e1bc0be54ffab003d979
-d587e49dbff658ff33fc07d247ed5bfec19edf0be4c7a078ff88f12ce080da98fe0cf5c4
-79de62b6f35ac5ff9066fec1aefb62d8af48ea5ad89f41ff1ed0af2cff56ea61cd37eb6b
-fb8afa65c1f3dd419ffe21b8fa9cf577ff7bfb9bdf79cbe487d825d3af05fbc859e00dfe
-4efab0e0a201ff5bd77bd905ffaf47b6f494ff23bef33fb9cf9fe11296ff81fb9efe4ced
-afda61acd880de3bafed79cbfb5c93ff9bda7ec8f388ff60f509ff4694d987ce93e79fdd
-8fd801f231bff19262f6bf43c958d2b1f75ace86d8a534fe92f8cc31fca540f1d807e145
-99ee09ff88c1f72cfdc46cbded6de5a5d30df7a0ff82f21dcbafe512a56efbd266e4cb4d
-d838e1afce4bf23affa533fa55f17ae6c288acf779f2a5db861781f8be86e99df363f0c3
-84fbd82bde51b1e37fff75f048c7afed60cf27dd79d8962ffa88f74fff99c5e321dc9f13
-ebc049ef25fe3fa5e42add81d0a6c3fb0eed62d96dfa26fd80e688d9a553ffd01deba8f9
-95fe18a5e12ffa49ffbf51e7149cdc7de4be60b7f779ffcb70dfa5f218afe087eda5f850
-fbc179f1b666d823debfa5ff4495fecfecbc0cf3b07bff8bf29806ec8fc1da67edc683e0
-9cfe38f24ce121d9c43bc6ffb6d937edc940fb1cccaf39e01295fa7dcbfd59d81bddaefb
-63ff38b6f893c2f50effc09ed21cedbc11fb8af762febf7af8d06cd886e0bf5cfb51b9ed
-66e579cbafff1ef286c65fcc3fff6afac239affe86db05e561c3ff79eeb6e57aeda5caaf
-ff4def27d0fb9d3ad9af1dfabd3acf9eff4dcd10d836de9d01ff4ac9fb89f49b56e379d8
-ed87269959ffbf3eed1ad94fc9fe61fd10b2f81eafff08ce5fda95ff80fb9f6cfb955df0
-8dfe73afd877b5f96bfeb8edc55beca103ee91fac12f93eb83c9e558ed35afe16ff142fe
-a5ca6ee0b541b7d832f1af379ffe93f516ff9bcba5f820fe37b5f1479fe051b6ffa5f6bd
-9cdd18ed97e556d872ffc188de3dd8a70393d919fb6df184d495fe9317c2f384eda4c754
-fe79ed68dc7ef294ff62b9d98ee89e14d947cafd03f7bf39b9f8e0abcf7fdd88fbaef66b
-b6d894e679d09add6bd97fedb610b8d533edbf06c2e224d750dd13ffc1e62bd8a24c88ff
-af3cffd27ae0649affd11edda802ffbea3fb52d081df8ee756fe85f49eff79dd68d6fbc2
-1fed53d08aed0edd83d88cc8ff7dd6fb78c9e739d812e25ac4fd67d979f32defaf3afb9d
-f362fec6fb61d05ad82de009d977ebafff51e52bff80f294d928faa8fe45e47ac7f450fa
-38c1ff80f8b878ddb064ffd6794af22aeb61e5c3369fe523fa53c2ff4bfb3ef5a6fe45fa
-a5ed6adb52ffa8f470fe7df793f2924498ff86f2b4d91fe5be6cb2f433ccf15da5f652fe
-8bd069e07cd921fdc107aff21dd351d903eeb2ff0f86e4b074b7e561c0fa6dff40f3ae02
-e92ebaed0e95f47dfe93f72fb1ce0ffba3bbcb7ae0b80db3e48f4bbef094ff88f6a8ff5e
-f936d87ccf96d86add0fe85dd5b804b6d793fb1ba6e082afe45aeca92fffc225f2a518fb
-da94fdaaff1486d8fe75d09ef12ab4ed93e5bc2ac3e086d827fe86e578d843dea5ca32e0
-57d0eebb52dd0bfb6af186d8f919c2ffa20fc0d96de3b0d940f716ff95edaf5affc67ddd
-87fbade59344a2e9cb40ffc6f72fffad45d0afe166dd9dc1fa619bffcf60dab545b8eb86
-ffabc84aff1cf94df588ff27d8f29d1fdd40e5c36abdcba2e35af105fe4bf9afcb88ff85
-f69bee2dda5acdff28bbfe79d81fccee6c97e086e6c86ab602c7478dbff8af0ebeff5dac
-e061c807cd63ed9e18ff71f3a2cb16f89cffb70efbbe9efdb405face7ae89bcc48fe349e
-ed9351e6affe36fb981bf2b787d875cc32f7a4d860fb3cedc32f86fcbdf5619aed920595
-d87be096ec1aa1fe2bf65193e0c242affc25f1a5ff78df27db6ee995dd80d9a2ed5acab6
-36ffc167fab30ffb40ee1bb8fea5dc86e09e36fcbf21dd4fe187ff85f37494ecd007f190
-fe9c5fd8fb3dff4f9cfeeb84e3aff1d35de087ed44cbf97eff88f794ff84fbba5adec153
-eaaad02fc666e561ed1cd87fdc9139fec029ffb975c3db61fbcf88f37bdd87cbff70c6fe
-59f292dc6be52bec89d9689affc64ee018d8f95ad9c0fe4df30dfd87faca71d982d3fe1d
-f286df8dd66dd904d25cf293f709d75efebf21d0aafb7aeb85df9fcd71e085da8fff79ca
-47c0f36dc6f15becb679feaf42c3e00dbff659a0e06ad945c6fa0db5ce7ad9f13293ff52
-fb2999ff3bfb93d9b703db31d84cd91fd851ccf1ae03fe89f45cfd87f199d884ffad4afe
-c4f062a9e07bd9a5ed06e4b525dd43d807ed4aa5e0299fe80afe4cfbc396bfff0cf6c020
-f2b879ffb528affb72b5e9a0cdb93abf4ef2afff37b6cd9ffe09f950f59ffa86febf50c3
-fe84f2379bfa81e514da53f706fe39f3a5fe51d833e591fa9a2fff0aafd87afaca15d8f9
-a368fed631b7fe3ffba5f4b67ce98af6af09b8d243c1d97acbea7adac41bf084fea9f36d
-feb5f079e52c93fa85c93fb6d979e01eff3aee52c1f29f1987d6fb58f30ffa5dfec083ff
-79fa86ff79bfef62f9c97adda5d2b613f247a6d781eab065de9ccb6bfecf3ce01cc75aff
-79f7db93d507a5ed7be556bdcb79e3ba41b3e0329deda63ce08fc9ed48d869fe8ac7a5d4
-7fe1b724bbebaefb60d811edafd0a1fe30df469fed9327e6c14997fadb6ecabc1bd436ff
-51de2fc5ff87f8ed9f0cf4a521f254a3faab37d157c0e09c3da5fc8fffc347beed94ff0b
-f9a5d091bccd87e029d9b6eaa013ca96e080d7af4af13dc7afe045b6fc10d8af39fbbe26
-f077fe86c5f831fe4bcefe06fa3aeebe85f58eff93ed2cd8a716ff61fbc74ef813ff82ee
-af23ff94ed69cefb1ae5ba63ff12b7fe9ff143baff30eeb44aff95f78801c2f27eff6dd9
-66e582ef8bffbd61ffce77fdaeed8813b0f27aff93ed9fd681fb6be25aad28ceff70e4b8
-86ffbf4cc3ff89ee9613f7b8dd0bcf60e49ffe2eda71d7b647f55afe04f7aaff65fb40f5
-b0ff3abfff27f594cba7ec139ff6d17ee488ff9bd055ff92e55db0e07ad899dd6fa5e486
-d8a50dea49d860d77bde65f2c09aedb67add89d862e033fbd986d812ffb679d85af3cc93
-de7bd002c6aaf479e57dfbcc72d95cd2ff9e43caa5e243fb1ec757d104f2d83ba6f306d9
-4cbdffd82adc62cc84da15eda5d01dc0fee063bedb39fbcd06e799df61d926ffca7be974
-f983f110d862e5aefb36e79cbfd894eb8038c1e094d07dd86ae5a552dc67ea1cfe60fbcd
-8e22f251d621df6bed7ece34c1ed07fe53f31afbc03cf761ffcf78feb6f202fba5fe37da
-4acb1fe53bfea2f5aac78fc147f9a5c830f786ffa42cfb4df66aff86e024db52ca1b9fe6
-12eeb532e0afed25bef494b7ff97f7b36993edc75ae07dfbd0579dfc93f302fe5afabe3f
-fe99dd79a2fb4893ed9d66d978fc12f67fe5a652fe2fd74ddca5ff7df7c1159ff264ff23
-fa43afd8fa890bed50fe22f285f9c884fe9dd986debc4cffc0affe70f5affb03baf79fff
-6bd3a5c783e188d994baed2396dda72899e3af44c1e67bfb73ff88efbf22cf4dfe19f2b7
-6fe562edafd20ec0e083d9a7e83ded5ffbc099f2affe58fac179fb6cf684ff87cd61eb2a
-dd4ce5c0fe2086ffaff13393f5c240e052d873dfb272e58cf249f712d7affe17b9ff4aef
-c593bed646fad085edb2ffbe27b6e03b8dffce7ed888e07ac4ff5b9ed4ff7add88e05bcf
-18b3e009d253f22d9ded6bda369fe5933fcba5e048da1db1f22effb647f827ff4cc8afe5
-39fab8ff6dcbf38810f0a5e059d8a85cff83ed95dc7cffd006fca143e497f040fec215b8
-d89eceb40ffe43d981dda54edd9ccf19d851dd0afea5cf7aff9f37d7ace9961ccaabdd0a
-e586bfff87f8c02dffc305d8a8c7f07ddd68c9f282e0ae31fe5af491b709e09f1c8ee286
-fa55cbf3bc4ae401f34bb3ef1abbe72fb5c835f9b9a2ff96fc6df67bff92cffe01e190ed
-c10ac3ff84f365ff94fbcb57d977e9cc6ce0aff266fe7ff18ad953df2098ffd3b927b5f2
-03fac49cdd08d652ea37afdd82cbfa67ff6dd0b079ff5bfa2aff76e08bd86aef28bfff0c
-f25afe95fa79f0c142fbbb18c3f281fb52d0f965fe75ffafee22a6eb17a0f24faaf980ff
-6096ff2ef8ac40cf21fa95d9b51cecc6ff66f5c5fb58ee96d9b11d86edaffea5c0dd6bd0
-fb74f554fe9ccd02ed49e43cc7a0e73ad965afd774ff56faa6ec4dd915d8b637be77f693
-fa139ffdc2029fde15d856cd11ed84fbc34a83fa95fe80d686eb2faff46bfbbf93f15fff
-2899dc08b6f824ef93e581c796f14ef937ffc493e385d693e079e731cbb488e475ef90fa
-50d80fde78b7e641d2bd5a89fbd267c7e57aceed64e036d01fb1e586ed9efebe79ed6bd0
-ff863aa5d849af37d8af06ff75d9fb9b2cc858f914feac3ecaa5e56cee79ffbf8ad0a9ed
-20c5a5fbbb36edb626d97ae068f599fe7ae48ff1d60ee05fbfed4186ffd070fb88f679ff
-add05dedafe034db50e53dff54c0fe7be6a51efe46e4a9bff27ac8ec88d855dd34baea0d
-d0a8bfeaaf03fb5ff767fd3cc9b9a8f84aff13d93ed39be46dedaffe26c7a4f22bf8d89f
-3cfeaf33fe9b1afe86b6eafdc979d901d85be0b00efb3fa0deb3f079fec7f379fece51ec
-bf60d3fb8ae094d87ce099ed0cd6b71dafd861fb10f766fe5cf20dcaff79f7c687fe1eb5
-c92faeee1cfb4a9cffc2abff79d8f1bd51ebafdb36e0a130fcb80dff8cf5a9cb79ed8ab4
-e05dcd2adac49dbccc16e652fba54dfe6dfcc2a5fe74f761ff2186df9cd0b72eebbba4ff
-07ed8adb82f3a4b8fe01aeffc14a9eef7aff86de9711c2e081ccf45ed9bf52c3f66a9d44
-fa59ff72f333ffd996c1f85efc21e0950fa3dc619cf89339ffb854f124ff4ff228ff86f8
-5fffc5f72aeda3d893cbacd893e56195e44fa1ee61ceff79f9d051dda5bfea863bdc23e4
-a52f93fb9b26c0ff7fcaf377dba1d84cc609ffb61dc9fb12f293ff80fa69f67ffe89d82e
-e0bf1de19f04f352d79edc8ecbf441fe4bf0a5cc14f268d85cfb25bfcd65e07aedcb2c88
-f5d85fe00ccd68fcafff4df10da5e27ceda5dd0ad8eeafd095c3e8a4d387bb4ce904da93
-cd6af7b6ff26edc017c5e5a80ae672d683cb90d8b843afdd924a94dbb53fff50f327ff4a
-affad31accfe11dcad46edb770ffc461fe08cdfb93f85bb9f4ca3fd8f79450e604bee540
-fe6bfa93f17ad8f9659fd875d848e40fe034d85ff3a5ff85f7b47beecb71e01ced39fa54
-afd97ae089ff53e584dc98e57caffe4cf726ff5786f9d89517fbbca0edb539e47dd993ff
-be43ff2af989ff7a2ff517fe3cb61ffe61f5cc7bf1c043ffbe30e55bd77affa5f26dd0f4
-86da9ef709fe61f39afb22f2cafe62fb86c2e571e089c5ed2ba6fb86b8e775f389d007e5
-af2bf37cd9a264ed7bccfe0889ffa51bedd386fe9b62f286cb23de5ae84196d0f53cffaf
-f4a3ce86fd9fda01cb5ad961cfff4ca8fa92ff7fb6d186ff14f5c124d896c1fa3bff1bbc
-ed79e587d0a2bfe0a543ffadcb3bfe55f5c263fa22d652ea95c9add146c1e5d874debf90
-fbc693e4109fff5fa5e57dddaf83fb93df32d84ffe36a4ff3aec5ae0a7dd12e080d8b784
-08e9aedd159dfdaf06fb80c1e051da3c97fb2ed89afc5cdb94bfe33effc017d94595e5d8
-4bcefe6cb8ed43d9c418bcea9fb9fba5c0ff24b5ed8805c762ffb64aec79ee93fa22ed99
-0fc1de35d864c8fb06e596d8b36dfe61f71eadd98ccbfe44d80fb6fb3df21dfdc767e581
-dc93d818e09cbfed86dd6ffb13f27afea16191fea854ed66dd41c2fad82db9fe19f24bfe
-c402ef60f986e07fc1e369c793febc65c5fcbf52ff3bf6c69737f5bad931c0dda546ff91
-f47dffc459beff25aaed86ff58abf57ee6a6feb7ed60aff269afe22ab0f96fffa4f74dff
-38ce13dd62e055c2d9fb93db26f1c296ff42e076d786fbaff579ff9ced4393f2bf4efe34
-eea2becf86fe5af362a5de93ffc66ad993d87ab7f304fe61f77bff5dfb32b6fe05f09eda
-60e024b9f8d837e0c40bf77effa24b86edcf84d89dd579e191bfd09fed10b6fb20b2fa1b
-cf2fed93459eeac2a5d36dffd87f50f994ff6df2b3d816beed04e19fed79c2f841d512ed
-cb25d854f23586c5ff2cc4fa0bc5ff7dc0e030d87cd193f082fe93f7affe8432be4af8b0
-5ae11eb8d1a5fe3ddf50d829e2bf16affed967a9ed7cb7d308e94ae4b1d00dc0f925f14d
-a5f407ff52ed35d0b188ed21cba9d393e75acba5c642afff91c8ed047df35eff9ab8d023
-f1b6fba652f76afb20f43cff4efb29adfecb5eedd879e59ff979ffaff1861bfb58e523a4
-fec286e151d623e886fe6ca4d866fe17b2de6ad980faa46dfe96dd88d2f911abdd80bde7
-8b4ced0ea5f46afb07d95be0c147cd0c9bf1adffd872cafe6df586f910b9f29fff6bf0ac
-57f8c5872cd0ff18cbfa79fb92ff9f39fb9ae87bd886ccea7ed587de9ffe70fac451bae5
-43f208aff27cff67facf2ee44ca7ffddafd487ea50e5af61e014caec08e094ccbca5d8b7
-94c3dc4893f3ac43ffbf6ad9b603d834fed093db88f1cb43ec0eaff47bfe5fce35c3fb3f
-f281cbf633feafe951c7e04bec05ff4dbe8fef79ff579ffbd086fdc954ddb6ee86ff2ca7
-e97deed25ee41998ed0aa5ddbf2ec4ea6cc31ab7cf81fe93d860ddf79e5be0a43be055d8
-29c7ed79dc31ff64fbb230fc47f7af11c0e02fd99bff78fb9ec0fe40d928e0b984f388fb
-cc539f12fb34bffa79fec196ff6793ffaf3efe5af10ef65cff79f8d107df96cc11ed3dcd
-f37ee3bb4ef506fb51adde89ffcd34ddc199f8a5eb79dfa6d85393e3c0019eff1faef782
-b6c99cd9fe41e01dd6f22fa8df3a94ff9841a5e068bdfb6effa528fb93c0fa86d3fc4592
-ff9e4bffd993ed3adc03e731ffaf0cc1ef7fffba84f3a5f97cb6ff51ca9fe10bdd98bfe0
-6ccef160a5f781f20eb3cc69db84d193f7a51ae557d90f93edfecb8defa50ad82eed47af
-e6c75adcc27ce48bd887e01eedaf6cff87f65ffeb1fa5ba5fd60a0e779b7c885fe13ef4a
-9cfa9305e34edc1bffc026fab9ff4786fbd079f0c52dd8fb72f415b1cf86fbaf65c1fe7a
-f6cc1fedbbfe26c7f201d83ddcb0c739de52e55e9bf2d061e5d38733fa79ff86f4b1c677
-ed95fe44d920ecca10d851df05c6a8ed5baff383ff17a5fe3895ffd31be15bc2eb38e424
-ed60e079cdfe6cffaabff62dba47e060cdfe86db91d8f936a3f225fab317ff45fb66cebe
-32e6c428aadd9f2593e0c117c4ff2bd4ff3aedafd476bfe562b9fcaeff93d16191ed9909
-d3afeea952dd9961fea539e05aed69fab850dd9be317d94aafe080d87af69f79e588f86a
-ff82f399ff25c3ec18a6fb05a9f7afc0e053d79f5afbd44de086cea5f95e9aff87fb93f4
-60f81afdcd41d861edca86ebc14886fcbfa5fb72ff7cf7a9ff12fb4b9eddc338e079d999
-f280ff3cb3f24dff1a86cbfd79e066d9c09ee9b9a5f27bfeb85afbd53feab7ff4bf095dc
-6dedaf86d99a5ff9a1ff1ed0ee8431c957f5befb4ac3fe79dc2fc9f50dffce7ce4b986ff
-9fd829c7f503ff5bf4c493fb61ff14e64cd9ff56caafe016d862d97cb6fe77bfe086c9ed
-55dd0ba2f324fec217a7faaf1efd63c7b0e545ed34ce76e086d9be7bff93f6b851d922fb
-afee974edd29d892d5b844b6d88ec6f10195f886ff5efd16d0a1ec6ac4df6ed0eeb006d1
-9fff2ef251c933ff05d94d93eebf6eff7af285d874fb36f9ba5af61bfecb26d858f3b14b
-d8f786eb9f0ed896e535f38aff7093e5ba46f40ffccc23db7aff966aed92d5b068e405d9
-a5f293d0b41db8fb2d9ff494fe04f6d833b2f839fe4f96ff7afbcd6bd974e58af33ac0eb
-93f12eff86d7be9bfeb62bffac46e81fdf359dfe7be361d809c4ff81f859f307fe98f55b
-ed31adfebf49ed1ec571b8e523c1fb039bf8a55aff94f44bafde88fe92dd7ee5acf3c615
-9de50ada42cb0ee5bf9fcf08e07addbe6df27ae4c181ffbe11e039ffb869ff7acb5ce01a
-d5fb5b9fde88d8a56bf892e952e2d0b348f92bffb3f1b750c634fe5ff3d779edcf45e05a
-ccaf6cedd065d97cebc62bd8ae3fffb0ee45b7d982ff58de7bd9ab01f350dc12f2cb65ed
-96c4fa70bee802f2c09eff8ce03beda6c99ce862dd26d886fbcc6dde93d1a7eaaffa85fe
-7694e1be31c3e524d887c0ed73d00dea62f9c12686fbaffe86d0a5f58cfeaf48ff6bf293
-fdab4fe692ffa502de3c9ffbadd175dbf028b6ec9abff8af3ac2f226fe5fefbf4aca0afa
-b725fea5c2df9f4385fe90f9bf96e1873effb668fa90bff03bff9f11ffaff419b4e482ec
-94c71c93f8cc08e5a0d00efb66f7c493fda5ea6fafd809fe51a0d9ff5bceaf43ed30f562
-b8cf13ff46b1d886ff77e59b4df428ff65fb52df39d949c6f65aff86fb79b6f739fe15fb
-5ef4aed23897fed54bdd31f15ffc64d82ded93c5e052d726c7fb0bd841cafe78f6d6885c
-fdbf43a8cff90dff4286eea3ff6dce97e71effa5f29bc67eed61e61388fab9e51cd843ed
-09affba7c90cddb222fd78e07fc8ed8944cc9efa4afe0ef561fbd8679bffb631fe8ccbb4
-41e629d260baff48f9b681ddc11386b6fb79fe93bed0a4fe75e293c2fd1df1accf0bffaf
-d59fb9e508c179f3be9ce92bd3a4dc42f1ce6de1aadb84d89e4effafed66a3ea91cf7de0
-1de897d974fe18aff786ff9e73ef94f8af4dedb725edc71ef286fe8c55d8a5c5d961e007
-b5ed4cb1d979e036ff5afb93d979ffcd31d867ed9dff6cc3d92ce86ef77aff9ad2bc15fb
-51afd8fb69e579d99cd0afe0ae3bfedb5ced7ec2ed55fec097ff79e51ec2e07bd0f52ffe
-abf8d328e0c30fe44fea1cf2af30ed5fe09e39fab75be216ed4fcba3ffd8a50fff62b2ed
-0cbfe59612fbbe4798f231feca79db1bcbff01f753ffafca7aff52e4c19bdd3bd848ebc9
-5bd82de09acc80fe9e67e4afd804e7aff165fb21fe93c1fa7cfeca3efb8bd0abdf19d63c
-edb584f391ffad5ccba4f776fe54d0a4ed4be43eeaa5d894fe08a5d81effbf2ffc4d87ef
-7fbe28cba6f93fafdd16f051bff288fb9d27ff429cee6ce53c95f452a5f18dfe7ddb68cc
-fb87d97bffc16aecc693fe7dfa89ec256afcc48cc0f979fe5588ffacca64ffd26ae0b512
-fa93f55cbedd85d8a528fabf05f4b432fa69ffa5f3b520ff79fc89f314dd48d8ff933bfb
-be61ff30e27eedae53d937dd1294e5af01ee63bff386ffc007e053d910d0fb24dd3ae094
-bfff1fb9d893fe85f732ee82bff988ee52a5e18dc9ff02d1f287e714d995ff81d68ee0a8
-0ada4cedcf92eac75bd888c7ed77d8ff64c934d6afff4abcf603d14cdfaf1cf942add830
-db5df7dd39ed4de020d991d0eb3fd92bedb702f8c586edbb3db6e1944afd3aeeb868ed9f
-d05af18fecc402ce63e496ddc352bdff6bf7b607edcd7bdfa5c893d0b944c3ff86f6a0bf
-ff71f2c193fe329ed84aa5f596fd7cf651bef080feaf16f286e061f305c753c4b1cb3dda
-59e074c8f760f025a5e59a45ff94fb62d025f45aff33fac19ffeb576fb04a7e01dffaf06
-fcb422b7fb87f70695e570a8eb8ff281fec075c4ef68fe83d087afca96f5a5ff60ee25b4
-f780fe9979dda027fc53d9a5fe22f8aec4e579fece45ff84dabf13b75efe7bf586fa10a3
-f130d0a5c57efaa55afe19f34efa14ff9ce517edb241e057d12afb4cccaff76ffbcb79dd
-32c89eea78b5cf47c2e6aa4cc5fe7ab5fa9fff17f587ffb828fdb711db81fbbc53f9d9c0
-5ac7a5ebb47ae099d883e367c934e45cbff17af74de59fcd59edd346ecadc1dd27fec757
-ff17d933edbbff0ee5a5f205ff52fe16d876cca8c1fe6cc0e258cdfa44ffc17ae686ee70
-d962ec179bd80c95e3af1efba5ffd995c0e035d955c0fe79e55aec1ee04dc9e68ad879e0
-9feb6ef488d979c7fe80f991da98e46bed0fddbc22ff58b6fe1eafff01f588ff69d4fa9a
-2bc0e938e262eb97c661f1a3d085ff96d86aecce862daaf00bff3bf2c205f752fe1cf393
-ff85d8fa54d2a1c66dff86fa9977dd9b5aff81ee9f3ce094cca5e3934597d8b646b8e094
-ed7ee45bfb04f3479edd0aabf31eb8ed80e4af3aff0ed19eff8ac0fe62f9c66cf0d8873e
-c64df824a5ffbfa9e03ad9b6ff82f490ffaf24f745fdbb30c1dc02d451f220a6d80bea52
-ff18d884ffa562ea8bcfed80e4d361e195dc22ed9310e5aeff79d287d9af2cfed502e54f
-dd37e848fe129fffb6fc7ae286d96cfe93bbcfa4dd5ed812edaf2cb5fe24f3b63ce019bd
-ff12facb1ed866c5f47dfb64f96ffbb5f62efe7bfb35c71ef9adc798e080d2f960ffcb73
-dfa551d81cf5c599bffb2cc64cf242e0a134ff509ff5dd80e579d0ed8618fb77f7980aa6
-d861da38ed97c6a6ce85ff6aa9fc93ff85cefb65f3afca7fed9ed92ec8f23adc9b0df947
-93fbc159bff85ecbff80d94af20bfc46f8c157adf692fe7bf4abcb78c0f241de1fd54ff6
-9ecb47e730ed4bb1fb86f5c26effcb7dd987d6f866c7f26ae5b986f5a1fc0bacdb27d84a
-d007dd79ec93d287e4b39ecf2aff43afff2e93eda04efb87ffc493fe78d966ed79b9f693
-d7b679f3d37fe6c829adfb0afea03ec2e191d05de8c6f830fe9ecc79ff5aee0cdd4bedca
-5fdf2ce89f3ee09733fdb640f956fc87b7fa6dfec4a5bff22ca0ff38a5dab041ed6cd788
-e09ccf71ed93e069d927ccb806eda3e07dd893ed88ddb018feb8a0fa7affc937dba542e5
-9e0ff050ff0da4ec964ad8a52eed41d95fcfff6cf1a4f486ff9fcb55db13f24affdd79ec
-8ff0d67addbe14c1e730d90ce037bfe509ff3fafe360dd04ffcc21b6fa0e89fecb72da88
-f1b0ff66f325ffaa4193e0af0ffbb719dd6dfeb4fa991df8aecb73fec37affd766e5c686
-e079e604d1b243ec60e079d7ed7bcefd06f29fc0f92ffead26ffb912fb40ffbfa5fb70ff
-5dfa2aff58f562ff31fbd169e022cdbf0f9af879febc63f2cf89dd79bcfb32d0fe85fbca
-7aff92f39a39bdc913bfe660ef20ff77faa1d96c3afec260bc1af765fea9f479d06cf1ad
-f7985bf2a3c1fa15ffa7ef6cacfc68d9afeda545eb63d456dc0ed895d885efb7fe78caed
-69d1f286d8a02982d5e58746f6bb06f1b522bef707a6ff1eccacff67e3c093ff21fba810
-de4e97e577fe1db6e066cbed7adda7c1dd8715eb4de093bed392bbc909cfa9c557aff385
-ff53eeafdf60d802d1fc3bb8fe39f4cb81deab01e643afe059d521e0b1fb7cfead38d994
-d88fe2b05ac0f7e59307d9fe95c3e03cd95dff93fbc24f86ffafcd6be080d99434bed83a
-debf49ff30bff686ff24fb94f861fe44e402da52f328bef943b0fe3af6b7f14dbeffd869
-e4af5cd8fa6d95d9f161b7ed3f9cf11bfe35afd956c7fe85fac75ed893dd7cc1fb4ea5f6
-5bfe2a99f2ce7af3c43ce61bf068f8a5fb79e88dde03d895e080fe32f286e58eafe168ae
-d89325fe51f2c16abffe11f7a5fe7bed53e02dd0fd81f75cfb2ad8ff0ba74eb8fba338ed
-50a5f281d81fe03b9eedd729dc47fe23f452c3fe81f7b179f29dcf86e016d996e0ae3fc1
-eda4ca7aff8bd293de74a3e77cc0e065db8afb9f0eb4fe3cd1fe9837edc24792d0fe59f8
-c77bd972ccf386f77ab6ec2ab0ff26f750ff0fafe5c708d86ecffa44afff1f98f981feb2
-dc35e04dee1cff95fd61f72ad65ac6a5ff48ee23c5f918ffb7e679d88effa5f07fdb88c7
-62d908d69ceb944bc701eaaac9689aedcbffd870f2c07cffd002feb6ef85ccfe17b1f37c
-e887b5d09fed62e01ecbfe08db56f999fe77cd5bf3c784bc2ceab64ef11ffb5cffc433fb
-04adff18d839cfed79c5ed8714c0e186ffaffa2d95ddbc27fb93eea14ad513e53cd09ef2
-7ed286edc598f34090ff94ef80b6e66bd8b9dd5cd9a54994ff81c79ed8be2face57bb5fb
-94ed1dceb67bff81beed885ac2f70de33bd823d251ee2efaa4ff86f66cffb4faa5c551fe
-aff532869f19dd59e5b22c93e6a55297fa68bae868befb03c0ff4bfa09d1a8ff5ea2e584
-edc138b1ed04fe89ec1bd8ff7bf6ce6ce4add908e095c6ea70c2ee73ff5c9afb249ff4ac
-ff4ad819da5acbee13a1eb5bd80afcb0ff94c1ff67dd0ae062d9a735fb81d6f152e43aff
-0ec3fc3387ffc60cfdb8ed13b6fe42f95df4d83ed0f208cb88fe61f6d856e536abd8fb40
-b0ca62fa7ffb93ff9ecf87d85dca3cd80fdf61ed82e01dd961d0f2c1f881fd0dd7fbbf4a
-f9c8e411da48a4ff32c8a6f179e586b6ea4693edc04eff1b93fbd160dab932b5fd9d4ac8
-12abfa984abbf588ff59b7fa44afe093f3c250bfe055d879ec69fb7ef2a567fbd588ff84
-e26bdd32ed5fb5f093fbaffe17e5b962e223b7c6a4d388e0629ef1c14aa0ec68de76d0f1
-79e586afc677ffa76ab7ff4cc1e09607fbbf95ec0a9eef83ffbaa0eb4be009dd53e819ee
-8efe79f29bcc29ff78f390ffaf43e85fd0acec8754f1d98f2fbeff7af6cf8bdd75e03fd8
-2dc9ff7af6cb28fb95d0afe549a4ff80f2a3dc5ae5affb93df32d6ff85ca3caff026cf9f
-fe0cd52fdea8ff7afb2af7c494bfe50bffc6aa4de52fcba8f951ca9cfa20c04cc9379eee
-5affcc92fa6dfe15f7b547f9cb01eaaefb7bd230f6af38d905ccff14edc125edd883f29f
-33efaccb6bf779ffcc65d930f314c8b7a9f782fd79ffafe126d8af3ffb9fd5b647e00fdd
-8826bbff3e98feb88418c4fe9d40e5b708fa5afe92f796fcad50e00eb3d865ea32dd7df1
-c627d853ff71f909d85fed75febe1aed62fdd885e27edd79d986fe61f203d092d9af0cff
-449fde913dd8fe79b7ed1dc5a5fe75cfa5d9ff86f4d078d9a502ed48da86d869caeda579
-ff86d822f297ffbf5aff9df7b652dcaa5efbaf3ae013ddb977ff3bde1cdbb628fd87e579
-d986ed69cbba31d1be459ff986ffc087ee09fac883f096fea1ed6bc3de1fd2ffacf251ed
-afc988ec80d819cc5bd613ed8bbffe71f9bd9efe5cfb0ab0f493e417cbaff281ff23d0b2
-6ae07bd8a511fa50ff1df252e8a5cd93eb6de35ce986d2afed62cffc9702c1f77dfe87ef
-04e54af37a08e058befb44f7bf9bfea8f436ff9628fed837e361da55e00989e5c26bd488
-ef81fa99d179ff9ff967fcd753e986fec160e751d0a8ff47f927ff40f2a3fb72f5c561e5
-1ddd4ec2e49458fcac3dccfb03b1f87af09345e06fd98afb22ff6ddca5f095ff83f5a5d8
-27daaf42f015c7a9cc9ae16bfe7ab7ed884edec19fe647f39ffe37f7c09acca7c781fbc0
-20ff43b5f92ffe9ff550fe26f8b531f2afe043d85ad86bdd86ff8ce8c1a4fe2895d885df
-5bca1cafec86e1c065baf59cfeaffb6fcbf2a121fa49fe1ad941e00deac471becc24aff4
-a6d04798fac59fed1bc0df93d797d886e003b0d913d897f67bfea55fffd02dd8f65c7fd6
-e52fd962fabf9ffe04d360d854f335fe4dd831dfc23cfeb65fffce89dd74f239ff4cd82a
-c9fb3bd2ff9438f886ffcb0cafdd5dec2ef460edbe3a95f0c3a4dc83d8b81cb6d97bddc3
-6ed95cea89ffaff62cffafc61dd041fa62cdaff219ff3af68bffd04cd805fbaf45ce14c6
-3c94eda93efbd879e0c1a5bfff6dfbb327f543fe87e09211fbaff08805fe6ff79b5bfe7b
-f618fe5ec2ff6ab6ff52b9d331bff21ab6ed75b2e1fe4a8affa4cc11ea38c2e77fed87e0
-a0c685e57af2b375e37dcfee8605f74bff93d77cf59eee5196e5a507edadd816b88ec1ed
-87d57cfe93e401feaee2864cf610ff61f395fc38eeac0ffb84ffa63ac91294e79f42fb9d
-f1bd94ed38dc65e0afce7aed619fe57bed6ddcff86f27af9d017ffbf59afed9333f35496
-edc859d997e5abef4effc960d830e0bfabdd39b8ed07cd61e1c0a6e94ff2ca79e005ed89
-dc7ae069c2ff15becbaaedc057feb583ff79b5f930ffaa0fedb722fbbf01ff52f91894e0
-c2aae6b121edb714df87ffc060fabf79fe69c5f25ffb45ff21d9b54bb8d961d818fed06a
-e0afc946e587cb5aff96c0e019cffa7df2d661cbf379e45efe11b5ff88fa9d54febd0bc1
-fa25ff99c71ea5d84fe0b688d97ee499fe0fceff87e7c32887b7ff62ce047fd8b67aed93
-ff7bf958c3ffd06ddc8ff39e42fb23dc9a3afaa5fe9efb41f7a5fe44a9e06b34fc0f95e4
-2af3d14cdf25ceaf64d9fa6affd49d5dea86d899c8fb57fe3787d0fb6dc7fe62d80eddb4
-28f1d939b3fb32e597d079e96af2a5ff88f27ce7b988fa9934fea5d105f4b880ec4c9ff1
-79bee348b6fb0eb0da27b6d88fde79d807c7f22ed9a5e080d9af4ef2b2f979ffc128fe52
-f72bd161f2b74cdd07feacf6d819ec93ffbff71efe43df16cf3de48a24a5fb4bff2ebfed
-92d883ecafd12ac55fceaec70bd89bf985f3d977d0fa79db5b9bf786fb70f2bf3bb6ca40
-8ae5c3a5f62bf04ba5dd7bd8fa5fa5dc529fed83f86cffd08955c2eb7bdca804fabd9ffd
-0ae03bd127ffa748ed1ebee57ff271ff8de21fc4fbd853fe25aeff76d993ed6effc968f3
-30f851fcaf61e579ff58ee40cdfe68d833e00ca3ed73e5bf93eba5c76dfb80d168db4c93
-fbaf51d8329ce583cfaffb85f295fdb6ee79e5c1abd976ff61f816ff70f386f121ff66ef
-79e726dc5686f5bb4cedafc3ed1bcaabe006d7fe7af4aff81dff49b0de87ffc026f2af1a
-c0f601ffbf36cda5eb459af7abff1cd84cffc95bdf2cbfce96fb72dd5bc7fb79ccff64d8
-28e0c046c6fe9336b9e885dd67d1be34fe53d8a33cfe9fe6a6cf79ea97bcf31bc6b2fb94
-11e682f192c8fd44d8a903fb4bff1eefb4e52cf27dffc23ec0f38afbc34abef2599fd85e
-d60ed936d89810fe51e509c6a5cc94e357d893d980e03affc293c5ffdf219dff9309ff86
-befe4393ff9c4fdb09d860d97bccfd5bd209edb669ff9ded88e580f1abfe1ec6afdd03e0
-7cee87e071b7f593ff64f143afed92f79e06dfaf3eefa1fb5c93eda566efd98705f9b0f4
-08f8a5c3e618f2b0d256c517feb722ff47ce9ffd3389e3bfa9fb49d85a97ec83ffc49ce0
-85d8a4389bfebbd811e49fdf09d465eda5fe0bb9f62cff7df587ff65f9cb83f289b6ef45
-fe30c0ff0cfa4bf598d3b249fa01ae66c4e03ccde5a740e961d8ef66bbe684ed93fea4ed
-1193ec98d97bfbca4ed831d34ecc28d95de085fb69fe5ccd3efcaff816d84cade57efeca
-16d840cef381fe94c914aecffe11f6b72ec0ffabcd3d98e486dc6098fd77e201ed93dd83
-edca7fe186dd6bf1d05fff26caa3ffbafa22dd51da39aff666feb9d98647a5f573fe6af9
-7fff21dd61cae86dddaaed49c5a8ed40a1de35d0fe6ae080dda562eda0ceb818fb86edbe
-9ff1b6fe75f8b763fbd48afab915cdfb29ffac45c929aefabf38ff51e336a2e57efe79f7
-97ff8dfa77f026d2bd93e7a6c7289beb85f2cb0edcb379f985ffbc61db23e661ffd943ba
-df58d4fb9c5ef27afdc250ff22fabf48cf93fa7aff5df73ba9f50dfe42ebac03f580d96e
-ed0887d2a5c0f879fecb19de4af105ebb0e083cd35dab6e154d086edaf3efbbd04cd9fe5
-1ccaafff77f7af1ed8adf451fbb3c62eff73edc028d754fe37e80dafd825ed9e14e2349b
-f3ae5ddd6fd0f66bffce6de0b586ed79c7fe13f1a7e00cd656e215b6cb99ff4bf312fa83
-feda51ff3093fec42aed4be5b00ffba5d19cf2b683f89b77ff931ae5d042d926deb682eb
-7beea5ff33afdb2dcc9cbfe06bd8a5c97bffbfa1e551fec0aff342e77b0cedb77dea93d0
-6dff8cf822ff58faa52995f19ef934ff9ac886ff7bfa6dfe5cd902e1c264bdfa2798d810
-e886df90d95aa5ff93e58dcb87f3cf6bff5ac7fe79cbff52e593c0f910bdec9c4ef321fc
-c019fab588d9b946b6fd6bf3a0c1ff37ed88d8b89dd842bb8ad0a5c1e74999fbc0a5d56c
-edc338ff53c732dd01edcb3bd8fab67ded88ff6af4c943d80ee08ac4f671bafe06fb51ff
-8ef92cda50e031c2f09a36e06afc92ffafc92eff59fb86d8b544bed993d686efc6ff15d9
-66d779e322db51e02dd186f290fb9e4cffd96ec9ff7ada71fe55f704feca61db10fb4fff
-9541e084ddaf4bf2b685d81efe3a9fe09038c1e195d87adda3cf2df664ff95de86d8af3f
-ec70dab10ef960ff79f6d906f261fa78b9de8655ff1cfab87ee38df593fb7bffb064f3be
-8647fe0dc7afe013a9fe86f7bf5be51cb4ef6ad986d824cb59ee95fb88f89317d6ff84cf
-1fd854e086d999dc12ed2ee4a2fe61ed18e04aaf6de681fe0ff2a5fe6bf3c0a5ecb53cde
-29c7ea9315f3b646edaff23bc5a2e5b635f884f17ad81ec3eda9f72cfd97d702e761eda5
-c4f179ffaffb03ff57f53cff61e083d805eb3af820ffc493fb4ef285bfd42eeab26dffaf
-e020ceff03f6d092d99f30f24cd90aea4abed02be09f0df6c2daa5fb4e93fbcf60d9a043
-fb7cffd54de5a1f261e89edf79d40fd84ccbfba95aed94e59ff139fe5ef677c79efc61f2
-0ac9aeff6ffac5fd42cbace0b849b5d89641fb18ffbe7aeda542fbaccc83fb9924caa8eb
-79cc69edafd045d9b9affb8708c8b768ed6ffba2ffbc7afb58d225d886d07eeab0c693ed
-affe54f4accb81dc6de00abcd09efe3df0a1cb23e5c34393efab5aecb635f350fec0a6ff
-78b8cca5fe6af579feacd68959f079e9c13b9ef323ffc2afdd3d9afac532affe81fa19ff
-a5f37fffa464e8be06ff5ff776cdabed25beff4fafdd7cb6f73f97dca1018eb8f45a88ff
-93f708ffcb91d97bcefa5bffd079dd59e208d1ff61f615ff3dfa9c1affa5fa66e24ad3ff
-81f3d81db5c645ce30dd0bd993f869f046dba510fe50ca0d9edd935dffbe48fbaff062e5
-23c5e487ff67fd5a87fbd671fe9fcb6be085dd7aeb1ec9aaed5cde25e595d94cec36ffba
-1ad82bffafe587d85ce40694f2c01391fdbf09cb5cd8bd3cc2ec20e4b83ffad97cc81ab9
-fb0dc6a5df81e8cc37ffd469ebcb2df3b4edd81cfbcf20dd6deba95ee564f1119bd80dba
-f533ffafed54b9de91d887d977e0c287e62bc17ef5b757da3ba5ffdb7ef092f79bfe73eb
-3ddeaffe62face80f186fad12efbc219eda5d02e95ff7dfa58b618d994cfaaedbe17d93d
-df1fffa5fb08d366fd5ff728ff86f9c21abffb93df67cbfe8ff285db02fb6df584fecf5a
-ffade64add87edabf778fb55afd87affcd872ebffb9fdc86e16cfe3ef80296ed9326fbbf
-85e57cfe5b86e4be79f0a2d446c0f725fea0c1e585ee6aa4e09468c1fa9f29fb49f2affe
-2ff05ecc9fffdd149fee78fbca8750fa17d855e149ccb3ff9b16bee63497d925e0bc75ed
-6be5b578f67cfec342b9d693edc151f608fa339dff80f893f1be46c3ed87d993e08cd998
-d859a4ff6dc808b6fa9746e061d071eda5cb2edda526e185d86ef198ff42e429b8d093fe
-61f20c96ecacde4ced35ff4def94d3a7c0ff4bbbe09d0eff4ecf39c0ff9b51fbb639fe8c
-df82d8b131f84bff3ac2fe06d3f73088e6cf7de0a409bed593fe03ec436ec0fe28e3a60d
-f4d299e07cffc088f21f87d6f26cc8aef369feb140ffadd93bffcd08e05beda1f501ff6b
-fba4e0b47addc462ebaf5ecc7afa9852ff3af214d250ed10daf03ab2e59fed2fe7afc0f7
-38febf51ffb64cf2c763ed34fbc222d0a5c796ff01e031ddaec1fd5af58afe7ed093d8af
-29f25bdb7ad0fb74f1afd893edaad922e8ce05de86bef213ff51e487d5a9cb95da79f251
-a5d8ff0eacff58c5fb61f63eb9d894f9a8e088d07bffc1912bfe41eeaf07faa2bffd43a5
-fb1dff4de4c179e9c40f99f35a9dfb86d81ed964e0afdd31d860c9fe3ee5b60bd8ff14ed
-2dbae5aecba1fe85fa7effb878c4f352ff79d75cff06a2d99520e57ad7fa79b7fb94ccb5
-68fe7af265ec72f0bbf69b4bdf28d8b408b7d91ff963ffbd73fe14eda01ed955fe62f615
-fc71faa567ffaeed2bccaf6bedb9ff50fb19f35fe386c4fe6393f0c739e585d893b6dd86
-fb59cbff21f751d936f1b8d96fceb968e5c653dd78eaca86d88dd99802f9b762fbcf86df
-c036f1a5ff7efac14c90f37dff1e99f286fec154aedc86d7fb890ce34bafe638afce31ad
-fe84d025dd87ef7fccfb76f2acc5f10aa0ea16d850ff0bd99fe50ffe3adba84587ccff79
-f76bff9fe570edacde07e6cb86e064f9c587e527caa5c693e054c8f1934dc4fe5cfad8a0
-047be093e9aefc2db8ea21bfdc5c9df575fe1df24eff12acee2f95d86bedafe5865efb96
-f525feaf79ff2bf6b609e551ed32ffa9d228eda54bfe20edaacb50bee63895fed014e4b7
-efd14ed829eda1f76dfea55ad0ff74f9d768cbf36afbd803dc62f7affe18d9af2ce552ff
-5f93fed061ffafef91bef946b0d893d382fab6fe1fb7e9a1cf48f13affc14391f79c46fb
-afce41b1ff6cb7ef4dff34aff38d30d9f9789de0943bfdb4f6c028d14cc99fff6baff738
-fecd18ddc197d8be9ac5dc79e45baefebf069fffc314ea59bed835edc49ad05aff7afcaf
-cc64e57cfe6ac8f27bd387fe6df911accaec24a7fb965286b0fb75f661e037d923c8f43b
-beed951cfebb08e0bf7bec8ae59b3ebfe354ed99cabd12e0c14391e4993fce2ce278c8fc
-5ef767e917d861e15cc610edb686d86698fbd85dc7f3a32cff97f109ccfb7bdd86ecce0d
-ffd4a41aecbc0cf5c086d849a5ff8bf176d90cedd07be5b862eda54aff36f36afd4cf8bc
-fbda3b93fad543e0abcaa3ff85faab16fb73ee93db9e22f9b842f294d9379fdb60e017d8
-93d3ff5388f7bf49d9c5ff02c0e493cd82ff99f2b480e09f29c2e06f9eff9342f951ff21
-c2fb60a3ff81f66bfdb477f8adfb21bef76affabf41d95e026c59fff86f296f989fe7aca
-fc1df3c415bbff3588d6ee69e07dddad44d706f9b679e5ba4afec259ffd078dd27fec5ec
-57dd15fe87f9a64eff01a0fb80f8b87ae288e025afcf0ba579d2ea5791f673fe4af001d5
-6de093c1e00fd639f5c679ebd8ad1bffb0f706ffaff17ae55e9ff2ce3ce09efe3493e09f
-42ff06edaf49d110ff50f7b6fc45f5c52eedaed19ec9a7ed7df2ce39d80fd93fd0ed30da
-79cbec86df9c4cd0afff51d8fb38afd905d038d956e031afdf78e5b179dbafe610b8c823
-fd53f787ffa1c94ffe389ded7de1b38e3ffb93f09f1184fbafcd61e53dbfd992e0c146d8
-26e6c306fa5fc0ff80eec8fe1ca6ffbf1bdd93d88cdd5aed39ff4bb5fe6be2af52ff1588
-fbc777d883e0c4439fff26fbc104affe7bee6fc1ed5df9cb7add69d7fb93e979dbc46193
-d87ee9b462fd0df668fe5ada08b9fa86fe9df488afff62eea54ffe0ac1ed81d96dedb379
-bef46afb7effa5f593ff80c0fa46ffcd26fe76f884fea5d093beed2fe26ded86d0f560d8
-28fbc6ed69e55abcf3d99942f4aac793fb2af752f388ffaf6cfba5cf9fed62d8369d6cf2
-cb2fe0b55bf328ff78f786d0aef15ec3f286fe95d0b1ef49a5e62dfb5193ebc068dd87d9
-9ce44cd80db7f52cd5b324fda5f71ebc50c2fa9602fee115ff5bdbc08dd894e01ad68ae9
-79afcb58e362de1bc8b605ffd978b5f635fe02fabf13ffd252dfa4ed4acb19d851ef04a5
-d96da5f08ad75ed938e051e916d29bc0ff1fd9af16ff96ea8601a7d81cceff8833c2e580
-ff1ded6fe082cb98df0bd0ed34dd52fe11e086f5e4c24b97f862fbc781e5b0cd21befe1a
-93e49e2ad903de3fe06cccfe5df2afbffe20f8b63af557ff79f786ffd863afff84edb64b
-c287ffdd9f2ff0c678b9d69af01fff35f44db1eeacff50f82bf0bf26fe82fa7af5cf8a3a
-c3e47bd88fdda560e59b2bebb11cb8da88ed9cdd8dd0fd32f7c856de06fbabf48effa7fa
-60f23e88b7fc66bdcb44affeb6f681fea045e4adff08da5ad6a1ff16b9fe2cadfa7bb6ff
-8bf193c6b3ff5403feafed7ed99c09ffa545fb9bde66b8f83fffcb68faa6f490ff0b93de
-9c0fdc5ad879cced74d61bdda5c82793faca12d961df8ff1d83e80fbb868e5ac29fa55af
-dea5e474beff8437c2df86d86dff95b8d239e04b93f2aafb1aff5af043cff282cafe7af6
-93ff78fb61f427fe5893ed9f1cff94ecb74ac60ec443b6d97efbc7e743d8fa79f2d45bd9
-39dd60c8ef69d877ed95b8f347c9a5dd67edcc41e04fc818d74aeb29a5d9f387d212ff3c
-f4cd79dcc187eb4fedd273ddbe81e0b254c72cb6d8f536c1ff84f3acff06a5fd8af2b238
-edace73e9df17afa39ff16afedcb0ad8ff43f3c592c1fe8648c4fbd027d8f29617fea2e7
-01dd4ded9fc1fcd725d861dfa3c9afff8826fa51b6dd44d833e00aceabc67ae8c349bfe1
-83d06bff93f2a1f686fe27e5a50f93f3a404e0a520f871ffa5f307b2fe25f9bf2efc7de3
-86f23dfdbe79ff9ff996f4afff7bf9cc69bf45e5b893d8b663f931fe10c5ff9f0afea51d
-f232ff86fca4f88661b5ee6fe5c34294e7c32de062cfff5ffb81d8ff4de5a2bed093f969
-a5f284afd086ff49e705d3f1991193faa54affafcb46bafba5f387ff0b86afff7df6c041
-e91f97e4c4aded0dc1fc6df9a2bcff3ffbb60cffa8f963f13ed821dc67d85ae095cf64ff
-b6da6cffc577fec786e1bf2ed193d97adfb052e864d005fb5fd4af11e8af21d95adb37a2
-e05c95e9a8ff72fb4cee21e59ded7de2af3bc0f383cdfb6dd9bbed12e547beffd553d929
-92fbbc4bfe98bbfb0b93e1c218bf8bb8cd0bfe53e037c6fe5ae531ef13b4d96bf9bb79ff
-b5ed6ec9e567dd7af78acd5dc724aadbee5ab9ed0e9afe69f9cc56fe679fff5ba5e0c34d
-ea73dd84cae561d812daaffe7af3affe34fbaf08edbf3bed52e52a99e9329ef11198fa78
-fe3ff7c162ffc4a5febe95b7ec78dc5bf2ce8ffe7cc3fb0dc0fe1fd031ddc5a5c1ffb14a
-b9d860fa88e562d9459fe8934da0d87bceed8e19f69bfed014f0d36de450cbaff842a5da
-fb30f26de880ed99fbb623d878fec09de47deda440e029d851e004b7fb38ec10d931ff78
-f9d36bbffb3bcfaddd8cd884b7f208c0e080d0f01091f296d515ed4a9bf488fb9b31c2e2
-9f52c0e073ccff6bfab086fe7bcbfb59d1ff52cded4ddfafeb9e0ded9521e14cef38ff1e
-f79efe8845e402b6ee6db0da84ed93f99817f25688d97bfe1cf1a7d123ff93f0c107f6b7
-e33bffaf27fbc97fe062a8e07baff61bff88ed6ad0ff865ce0affe43c7ba07cd61eb94dd
-af50fa3bff21c2fe69f5adfe86ff7bcf9cc0fe84ee95e0b04afe2da7d96dff53f313ff46
-d893fb2ef73c95ffbb2cfe60f8b3ffd225e04dbeec9301ffc61aaeea2ca5da22e0c116d8
-b67feeae6ce0a96cffc31a86cffb7acbfa80d886e0c58cc13bc6b4fb79f5d73ecbf32dff
-4ee06dccff7ed0fb05f5abdf9635fcb659dd29ffb365fe71f2c479e0a04fff02bffa5aff
-38c8b660dc26e09f04c1f7961dd1a5f77aff9ff486ff10f692d8a8ca96e080da9f3bc4da
-5fe922f253a6e343d80cf298c0ed79f9be27e286d07aedb2eb5adaa6c2d96ce5cb80d9a5
-3b87bffe79ccff5bf6d06ced95fc7bf7c779f162fb9cf438de0ac5fb1ff7bf338cd9ff45
-a5e039a1ed17f4b15ad9ff82e524d8bf5093ff9b5ae0a5bf04f642abdd38a0edc44886ff
-d86ac9f87ed86de5cb20da9709fa60edafd894f230cf9ade7efccd85f37cfeafed49caff
-86e028d951dc2ed758cc64e819f35bfb4bf70ebfed9319f7a6d792ffd867fa7cff88dd1b
-d8af02ea98c5fe3df7a51d86ffbf61fe21f44ba8ed20e3b7f25695eda513dd79b5fb44d8
-59d9973eff9ec942d387ff92f34fa5d979e1affabd60d7f669fed976ffbe2bfb9d09ef98
-fa66ffabe01cd8fac061fbd9a2bee779fec02993e8c60cafed9302eaadfb46a5ee81fec0
-a7d31ff840e779db88fa0eee40a5ff56d435d871dfa55aef69fe92f178fb7ef19bfeafcf
-88d8b893ceaaff4dfbb0c964fb49b815ccabc657e575fb68ffc386fb5dafe06cd9b8e09c
-01ee7de086c7ff79fb88fe04e7c434faba87ff2ec1e582ff15edafd002ecace457bfdc67
-ffce89fe04ed4b93f1ae25c9b902afcc67e479ecafd348bbcd0ced87f7b68615ea79c356
-fe23f265e4aff360fb9df73fd9ffc23397d9ff53d131ed48ff93cabda4fe51ec72d88ec6
-e917d988f694ff29f9bf0fd5acc514cbb3e404d8327afb40ff09ed33e07cd686df33ec94
-c3ef9ffe2af7b638f4afca4af236b6de0ac2fc30ff4bf2c396cb41fab609d843cd5cd886
-ffaf68f2cf52df9c0bf1a5cb66fe86f570fe13f1a525e5a234ed5bd886c7fc14dd93f26b
-fdd83cfaa9d052fe88f87af1a1c64dce33ffd489ff98f186d894cf51ff86d93ae05ad0b7
-6191f2c50f86b7fb93bad886ed57fc0bd0b726ff9ff452b4f26fe3b811b5d87ce9a0fb44
-f37fff4ca5ff87f7c19feabb90c5fe61f225f575ffc007fe3de087d97feacea123ed95d7
-a5fe7af6519fed88d372fb30ffa4d673eb93e09ded6cde1dd9c03cadf985f3afc748f9bb
-30e04dd993c579fecc6bfac681dd9aff2ea7e55aff43ebb681f29713ffb732de1bd836fb
-81fe92edaf53f237df0fe54aff0cdeb718b3ffc285fe17fabe4afeabf6cc1bf250fa14ad
-df7de56cf2c85ed723fe86c3fb46fe9ef263fb33cf6de489d993dfc242dd52e01bd268f1
-58a5d88ecf9add5aa5e07bd86fed5bff058ffed960ff16e656d888e5cb64dd14e5afd862
-ed1bfe52f67dff29faaaf574fea0e020d85cfe89e47bdda4c1ffa92afad83bb7f20fb2ff
-25f064d0f779b6d29fc625dd51e5cb85f3c86fffb6e560dc24e464dda4cab465feafc683
-ed7bfba0ed892aedafdd79e6cf79eb5b98e37bd79cc3ff37cd9cff44a3e483e664d908af
-cf84e044dac190ffb71dfe39f923f2a0bff46fff96fa26bff903fb4ffe16bdfa4cf3afff
-1dd0a5c1f14486b6d093bdf42affa520faa2fe8e58f3bb93cfaeddbe16b7d99352c1e50d
-ef8bfd7be737d81bff52fb0a8bedc05b9bea7dd89edf54cb85e0a03ec1fe0ae37aff92fb
-ab4ce85ea1e0934aa5ee79c9aefb07fe27f8d89f5af9d03fd962d85dcef99e4694f3229f
-df2ad4ff41b2fe65ee76b8ec1fc6b0fe04f9bf96fbbb5bed21c0ffad01ed4bde9ecbbd79
-e660fc1594d8af46d9a4e56deca7e06dcbed81d9a430c799f63cdc62bfdffc31fa64c8b5
-6dcfedb348b9f1cd0fff4efb3985fe9ff378d1ff36afd858d142c5a0fa71f0afd282f2ce
-60feb1f707ff46fb72f4a5f90cfeafed83f391ef60d80fc5ff22d8fe04f7bffe10baff48
-9dd886da8a2fefbf1cadffb9f232fdbf07e4b6ff68b9fe58f7b06bedca05d93caffb7ff7
-88ed7ad8a83def2bd2ff88faa55ce593c5f779ff67eea9c793ceb0fe2beec681ff39d8b4
-3eb7f99f41ff10cdfb68e17ab6fd96f80e9dd87fe011fbd93987ff80d928a7e57bd8a8f2
-c42de54ce008c69cfb7dff85d9ff06addb9627edbe43afda1ee088d0abc793e319d862ce
-5dd92cd84ecf31de81ec9d64f1b879b1cc6ad894f286d0f63cf24fffe677fc9beb8a0897
-d9a552ff69d831cbec81dbc40cfbbd7ce588fed00dd94dd827dd5effcb7dde9938e069cc
-f33afe61afd90fe049fa0bff3bec62de86fb0dc1f284fe88d924e5b98ae37cbef10affcb
-29d859c9f34dffaff25d99e9c303bff786fd3dbeed058bdeb568fcb1f97ff15cdd1becae
-65bef43ffec26afe9af57afba840e653f12dc0ff88fb95f27cffaff76dffa6f953fcafcb
-40fbd929ed3de850de1eb6c670cba5c0d93be04ef7b6fe78f5cb83f08efba706f94393e1
-9f30ff51f2be6af4b9ff6efbaff11b9efd6df8aebff60c9dddb7ec2ec0f587d790d99dd8
-87faa94bafe09d4ddd13ed96ff55d4f561ff39aedb51a3ed89ffa878eda03ecbaeff52fb
-9eec42b6d899ff6bcbfa47ffcc9438a1e223ce96f8c131eecd86d87ae9b40fd836e254c3
-ff7cfa98d98651e53bdd1fe0bf0595e4b81bb6d830dd83e39658ffbe9ac4fd6bf97affaa
-fb016ab2ff85d56fde47e320bae516d84fe0c1a2bfff75f4cd86dda52be09636a5e8934d
-c7b6e147d811ed4c86d8ff841da5fd9451ed2efe6cf15de401d8c4f363ffbd79faaf61c6
-ed861dbfd194ea6dc6fa79de25e2c305bfe886e019d179d86fffca5de424ddaf83e08c12
-f3b9fe6db5ff46b88dfcb64bff16fa50caf781ffbf95f21bb5cb10febdf7a5d07afe9e5a
-fbcd44fb9cf27efe6df412f9aad079f30ba6d993ed13e25aedfa22c4f212fe95cf86ff6d
-a9fe94f77dff63ed19d948abeb16ccff57fbb6e012d0f682ff68f3afff92c3fdaf49c3fb
-d36dd8ffa5c682e525ffbf86fe3593d821e7cd33e0c106abfaaffe4bf823feaf13d05ef9
-6bfe93f729fe69f68af22edeaf0bfb7af454fe1eb6efd573dc51d2ed69c4e610d86fe594
-d08ce0a546e8a004df61d4ee6be0ad44c601ffbd4ac3eda878dc85d858e006c9a4d387ed
-19fe5ac1ff32cf58d689d89479da9e60eaae2bfabe3fc4f258d03ad927d893fa7ec1fe88
-f9799fda86f068fea73ed907dda530cc57e229dc7beb9345f708ba60f9da52d0b242eaa0
-bffd78f85fadff7bfc93db36e180dd9cd885f293ffabbfd944dc6fd497d941e0a4fe65ed
-93d2aac798d0a5fb3fa3ff25f7bf03acf579ff9bf224dc55f629ffbe68d8f884fea439ff
-80ed93e5b46ded93f831c8ff14f339ff96bcf74eff39b6e086afdd80e0a1fb76fe30e5ff
-46fbcb7dddb868ef9ee01ddc86edaff25de53bb5e023d85bc6ed01cf31d888cbfb94ed79
-d0fe72f4a3fa93fe13e0afc99ae6c21c89b7f571fbc55bed07b5cb98ed56d929f369ff5c
-c802ef54e435dc4eed1c87f4aefd55f17dffc311b9cd35f84bff14f160d96ae5c985d89e
-63fed834dfaf43c1fe7ceb95d97dcbfb34b6c827ebc15ad621fe5bf4d322da6de39061e0
-c2a1d061e788d8bf93fb47bdf022fa4cf125eac593bfa5e0b818f23effd004eb64fb76ff
-c102a5fe86c9ff6df6a2ff38b1fa80ff5af326b760c0fb2097dfb602c851b7ef80ff5df3
-40ffabfbcb0fdda51fff92d0f545fb16d588eca5b9cd9ff4b686fc79caa5fb95c1e59e17
-bbd808ccb066ed79ffa5c1e26ddf8fff27f8bb0aed5be5afc687fa61d0fa67b5cc01ff5a
-f2189eed6effaf78fb9ef6b786d9379ffbafff0dd1faaf51f91ffeab35fb1def6dcbff6b
-d89dca8cd9ac48f70af06186feabe079b0fd8dd4a5c94294fccf2dde9909e8bb66d895e3
-4bddafe279ebc6ff41a7e7c746ff85f1a6d961d027db86d87ae03195fe83f2ce7ae0589e
-e27cdc6affc34ce519eb42ffc12dbcff0ace3bff5bfac679ff93fb26f897dd4eea1f95fb
-c54fc0e99479fe89fa39ff17da7bec0ba2ef2bfb88c6a4d2afe087d94ce4ba0ad943c9fa
-69ffcb8642bfe9a32fed86d8b679edbf73e5add90298e55bff07f563ffbe9ac633baec93
-57c1f438c252ff12f5afe577baf86cf2aad141ee0ef876fec1199dfc930a9fd8f3845ced
-94d643fb23fe75f4aefb16f061d8ed4ec73baff719fec226ffb9f20c97fb86fe93d868e0
-a4e668f583dd92d82ce0b13ce85fb6d539bffb88d9bf2fafed9d44c4dd52d9a5ce77ee4f
-ff93c2de74e1a7ed32fe3ff74efe10f667cefe84e59715ecb608d8f0934cfec494ff49f5
-cd08ffd69743feaff639d286da7cd81ae453fcd0ff1fcdfb0d96d8f8a1bfe061d81eef4e
-9ed852fe89faacc7a4d02693f5d237dcb5f88717d5feac10e5be9aea86e4a13ab9cf9eff
-b677afff9de85ad586edb1894aa2dfbe32da5dcf79f01afb46d9aeec54f17efe6af6c09e
-c3f283ffa506f255fe87f602feaff411ffbf26f399c0e0aa2ffb41ffbf5cd886dcb67bd8
-93d096ed37a5f257ffaacb81f3a562fbd760f211adde699fe29256f9c765d879edb8fa44
-fea6ee83d88e5d9fe4ac66dbff8426ed4c98ff91fa87caff15e2c027cc7afe53efb0e04c
-bdff5ee044cbfb9935cef763ff36afd909cbff59e544c604fad226de86ff6ddd37d0f6b6
-fe6ff9c878f710feafd193f3b8249dff06c9acdb0eed4cfb17d961e5cc7bdc9de079d886
-d872e0ac7ae74cfb1c88f2cc82d99911fd96f009c8ff24f25bff80bde024d879dd51fe3a
-e4c01cafe180befa27c3fe3eb8ed26a5f22efea51496e0c235bfff24f5edc84cf2d4a544
-c4d988fbcc2bd851dd37b6f360afff5be513dd6aff82fa70a3f07dffbb6dd9ed79b0e08e
-c3fe54f87abff17bfe89eec062ed52d80bf2a2fe7f08d83ee81fafed88dda53dff61c97a
-fbd870b5e54297fe87d87ae59cfe3cb1ff1cd334f04cf92affc058f2c494d0affe55b7f7
-5cedafd644c0fb9351e59fd82eccf96afeafef1ae9afda73ff9bf235cae66fb4ea7fd1fe
-64cbff86d852ddb6f36193fb9a56dd7c0594ff8816fbafe56dec08a6e580feaced7ace96
-ed85d993fb86ca34d907e6cd11d8ac2af257b5ff48cb19e871d794ec1fa5d92ed84b9df8
-82fbb3e5be48b5f1aafb94caa2ff37d851ebc298ed0be4bf47d0f879fbd062e234ffb928
-c4ed5dc1ee80ffa9c79aebb033fbb506fe61e57add04d4b52cf481ffa564dfb979fa75f4
-af03dd9c40c1fb935dc4f62dd879fea003ffd144f81493dca10fe576ee85ff2acef208e6
-c4a5faafda3ce0c280f120ff5cbefe48f2c20d9aff2ffb04d73aed4ab8f39fbff2af55fe
-74ed9ac0fe05c586fbbf9bf52cff5bd0fc85f493ffbb15dda52291fe85da2ae04ced65d9
-7ce693ff70f925b5fe5b93ff9f2dedbc1ef2bfa5cd88f96ca2f7934be2bf6bfb16d162e5
-c56eed86d822edacfb79ffca63d91acff520fecb14dec263ff7ac6f78761d8fe05a5ec8d
-db5bcff39362efa9bfe535fbc1affc1acb5ce67ab2d769ff3ecefe75f79dfe4dbf91cea5
-e079daaf69fad36dddafe575f6c2a8e821fe5086fb93c4e41efa62d893f1b631ed4bafdc
-87dfaf47ca0ee079edcc6cffb8d83eeb99ffbc90c1ff03fa4ecb08bbd891dd81ceed1adf
-c45a93ff9e4efa01e746d7e00fd0faa50add5aed87fe9f1cd9aaf952ffc1479feb50a5fa
-8dee7ab4ec5aadff9941e7b8ed32d9baff3397f1bf50ff17e5ae3ac1e09e58ff79f35ee0
-3f8fb6f99ebffe50f8bd90f06331e9c125d886f5d944fb2ef7bf1aebb740f0c25793ff9f
-1cff83d297e0c317ed40afd086e72ee05efdd86dffcf61fb15f39affbe60f93aafe630f3
-78fac111cd55f21fa8e1bf9ff3a8fe38f54cfb32b6f468fdaedb79ccec85d87bffb87efe
-9a37d8f588ff79ca37f2bcff3b9ce0936df9c517c0db25e056ff36c389e16dd1f2881ba2
-fb9312cdaee049dd86c2ee76f987ff1efbce2ad994d47dfec6e94adf0ad9af3ae413adde
-d3b368ed97ff01afed7bd89d64ffc779fea31decc545bfe06dd960ef3bffa1bdf968ffbe
-52ff9ec90e93e4a103edaac767e273d9a5c798fe52cf96df59acf288fc79d5f7862fdd5b
-e07ae99fd3aee56fccb003ed3ae516abfe30f1af22ed51c0ff6ab6cc40bae693d54d91f1
-d90bf5d336df94ff73fd9abed19fd9fb0bed2cbdfeb2e54dd3f97cf466ffa4fa3fb0d854
-df97d871b9fa87f106ecbe2280ff93f179cdfd6ed8ff7afb0bfeba49c6e579bfff12eec3
-3a96e05dbbf980fea6f286f706fb7ed988e26bd3b30aeda4cf76f8b1fe3bc8fa9340ffb7
-28fa39fe0ae07dd987fe01c9ff63d833dea541c2fe93fb1ab7c65eff1299fa3cfec06bff
-85f6c960ddc16dfbc6a5e586f124fba5f709ff78face67b6cb5cb0fe87f35ae5af4bf702
-fe4684cea5f98149d96dffa757e028b7c808d496fc0cfeb131f5af0ae04daeff528cf6d7
-af37c2ff1e9ded9329bf52abd880f2a03ffc51a5dd86f6acfd05f4d668d90fd832ce5cdf
-a5cb1ef44dfe2af6c47efb1ff24cea82d9b95be5d379e8cb7eddb6f05ffb19f161eca52c
-e593ee7cffaff06cd984d0ff2bf278c8eb81d887dea0d0be4694ffa653e2964af217d95e
-e07dd865dcb3e013befb29ff85e89e28b8d80dcbec7ddc93eebeff4ed8bffb93f10dc9ed
-83d0fb7af067e778db7df1cb5fd9ff95c4dc6bcde49e5afad9a557eabe42f8a7eec5f35f
-e214fec193cae935d75ae074cbaf2cff9bf58aff93fcaf43ffb77ad888e092db48afe18a
-dca715f188ff24aff906a3ed9349a1d88bcb9fd681fabf6bfe16ce5ae40dd429ee52a0d9
-8be0af44ff20f34bf82bfbafe011d0f80bfebf90ffabc99efe2ff39c3d91eea053e597d8
-14faafe282efa233ffb749c72690e49513c73eb6e08f38ffaf1de09dff2ec99fe54fa9fb
-88c144f820fba52ffec11188f2d379fbcb68e07be528ffa2d061e02af287fa6eff1eb6ed
-7ae554cc39e051dc24ebc167ddfb03f1aa3fffbcd856ff34c1fbad42d89eed6dc2fe31f6
-baff22f74cff26dc50e0aec799f9bd95fb82ff93c6f746fd06ee88d0b973ec96d864ed86
-f3799ed872e036cf51fb07c1e479cbfebf61ffd8af3efeb75bed40ff60fbc16be79ff3af
-f86efeaff59fff60fbc1d961f7bf3acfaded24c0ff18d52deab17be584edb96aedacff2b
-98e002b5ff16b86cafcb4cfab27efbaa0cc1df93cefa3dfec493f2b47cfa9fd386f2ad34
-b1cb64fbd5840dfa87c89be06ed0f57afb52afdf63d779e167eda7da77f296ff0df552d9
-36ed4bc1dc61e410b5d86acba5fe5cfba5c707feb61fd85ac7ff3ff4acfa7cea87ddaf47
-f9b620f2d02f86f6d071f1c780d893d020e4b216fe5add07d839e054dd2dd8a50193eda0
-59f279fb6cf85fafedb7fe6dffce4ed801ffcb43dc86c7fe4ff47cd89efec1fb86f01feb
-bf42c5ff9a27ef5090dd9f13fb61e6be06ed5aff12d0fe79e5bf229de9c0a0ee1bf851ff
-2cb6cd10c0ff1ff3b4ff0fd0b33dbee9ae5ec5a4d889ffb67bffa431f9a5f477ff9af92e
-bfe40fdb56e279cbff88f924b6ed9213d8be29f657ff94d86de75aa5ebc105a9dd259ffe
-08fa79d986f7cd7ad884ff98ed7bd08def84f5b2fe3dccff86d813ddc593df863d97d816
-bcf58fdf7baff876ee5eaad98ee734f246e005d95dd76ffe9fdc79e5b881ffbc63f7c0ae
-d923ffca92d87be069bbee4affaff45efe3dccacd594c0ed68fea5e081d89646a5dd86fd
-94fe07cdf837fb44ea1dcfe504e0afca52d3ba38e251dc63a1f77effaef44a9fdd77e459
-c3dcfd67ff99b8d486ed03fe97c2fe77fb8aff55f8cd76dea5f24dff3aa8f130ebc047af
-ff1dfa6bdd50e280d8b60ee495fea745ff03fac8f65af29a32fe50ed1cd8b60df9d01ffe
-5bbacf9467f588ff95d90af24ef837fed602e9d029e34b94f1a54efe28f5a5fa2e99d86d
-d936d086e56aff49f207a4e54df061fa39f2b8fb76ed2ed86ddf86b7e593cbaffa5f9ef6
-79fb84ff1fed8dc5f286fec340bad63395edc039fcaff2862cb5cb45ee1dfb34ade0b044
-dc10d745e496ecb93ceec02ec5e694c1e086fb68a5fbd264e5acce17ffc022fa8dfd53d9
-34f2c09bed6489b0dd79e0c0a5d099fb59ffdd9c67edc2a4fa77ffddadce27ed7de4c093
-cdb46daef55a9dfe74ffcf6dddb784e9c23ed9c5fe0ff67efe95f101d986d879fec77dd8
-1ccb9ad584d919cd5bfab9f551ff1dd469fe6393f2c74cd927e065ddaefb02a7d81ee08b
-f065fbc916ffa5d00496ffd86ce9a4c1e06fc7f179cbff6af882d9b61cc76dffac62ff5f
-b805f44dd911c5e12993f69b52fdb76994edc55dbfec7dce85e252afd9fe0fc4ff3afa0d
-f162c8b98840c0fb934be019d82e9742fbbe51fdb062ff18f2d942c9afed84daa60cf435
-fbcd609eff934f86edaee017dd58ffa5fa28ddaf36f994fc79ff02f45aff93e09f16a5d8
-7eecafed0bddc02db3fd93d09bf2c04380beff6cf499ff26eab680e07bdb6aecc14baffa
-07fe5293ff9f40fa18a2ed93e55df387fbb210e093d6a5fdd277ffbf9efe7af3b905dcc1
-34edc4fb459ef32ba5f760ff1dfbd02ebdeb4faad87be586ff37f4d8a6e52cccff81f6b6
-edfec269e7a1d023ecade060beff80fb1bd839fac782e19a16f2be06e2b5dd9e46befa93
-d2b861c4ec7feecb6ce058ecb9de88c975eb3dfeb4f23bfbc32d96f755ffa5db15ed56ff
-1188fecbeb4cddbf59cbaad00afe52f626fa85fea5ef83d98af2cf0cf3d28dddbf39d022
-ffafe04ad8f452fb1def4b98e89035ed50dc42cdfb80ffaf870fd4afdb71ffd006d893dd
-a574fe82b5f467fcc646dbb4e28108ff61f3b30ed8a54a8612e2b20cff79f5c5478dfb97
-10e46bdd8eed53affe5cbaff82d0fb79f825fece87c542f223e69f47ff0ca9fe24d3a33a
-abfe26f9a5d07ad986e06d9dffce75d888ed6afe86d87cc6f09f2493fa9f16f879fb83e6
-93d9b0cd5ee03bd81cd05ae528a5e4bb61fe59f786fca8c83797fe7bb6cb9ee37eddc224
-fac6a5d786fea061e559f1caf765fe16e5b583fb6ef142c7ed5ae027d2bf21afed93259f
-fcafcb93d378ed5bfec7f1d87bf9c787d9589cfed832ddc1a5f746ffc4a1df20d2ed40db
-51afed56c963ec1dffb479fe6ef7bf93c2f288d97ef6b6ed52d866dd0eef4dff03bde741
-aae219fb3ecbafe638faa946e0b5da36d1ed86e02bdb4df21b87fe9dbff579ff9ef57cca
-ff4793ec2ac8a5e961e17cf2cf01ed2dfe67beff39fbaf5ff207ffb61eebc624d89341a4
-e08af2bf3bea4ccbaffe9f0af795ff86f99fff70f6b8d950ea3cfa23febde08732a550ed
-38a7f22cfbb804bcf75afe2bccb68605fe76f8a76df692fe28d59fffb896f369e3c595d9
-18e054dc3ce550ff0bdc83fb9cf291fe87d891ccf360b8fe86f279b6e4089af279cdff63
-f872fe68b7ff51c59fffa9c0ee44d912afe549db35fcb668d8fb7ab5ff08d8b413fe51a5
-d988df8cf20ca5d87be1bf93e075cbf569abff7ef8b7ff2cd85285fac3a5ee1a87e1be79
-d960e406de51d812fe6af282ddace187419ff7b7ffd386fece6cdd7fd1ed69a3e67eed61
-d8f3bf95ec3ac1e10bcb6ae75fd908e544abd905fb3bafffa5fb79fe86cb9fe860d01ae0
-35c659e52dfc4f96facf12d84bc9ff84fbd24bda1eb7ed06c8afe810ceaded61cb2ee068
-b6ff93f986cb93ebbf12f0af1bc2df6ced50ffc29cbffa69ff3dcf5bc2ed64f617ff3dad
-fa5196d5f24be00add61edacffd99724ff78d5f930ffd038f2afcc7bf186e49ac727ffbe
-5e97f2b7d903db7024e5b617ff9ef75093ffce1fd893ff9e30de5ecb98ff7ab6fca4c0ff
-78f78fc6fd79f166c1e98833d0b912bef327affa93ff7ab7ff9ebcf6a9c0dc28a4ee88e5
-9f20de61baff80fc86d4a0e54197fe7af505fe91f388fbc634d851df02ff4da3d981ff9a
-f440fb95cd78f435ef1fe5bf96f8acfe29d288dd6ac5ed27d9ff1089d0a3fe7bd89d02c5
-35bfe093d95db6ca56acfb9543febe2efbb83de7a5cd06edc41dff61fb93eeffc364e05a
-cb09e5bd3ab2f45be00cc6fb7cff14db54edd747f21b93e0c150ed29afcd9cf95cbeed80
-f2a1e26afec732d84cc8f409d94ac91ced62febf43ff67f8adc2f52aa4e05aea32ff79fb
-c25ee093d96ddf47d80aa2f295fd7bed6dc6f360e53bdd79d388d91ee684dd92d8a848ed
-18d86bdb53febf9cfb6eceb65feac1fb34afee3bfeb3f686fc4cf40cfe88f39cdf11c9ed
-6bdb9fcb79fe87f46cfe55fab17ee8c53baf518ffa95f289ff7ad8fb78c0fe85f2ac4ae3
-aff1a5fb2686e494c4fa35a5fe76bbff43e222d8ff09d852ff46d6b779ed86e4af5de67b
-f293ff87e583f195c4d936ed4e93ddbf14f7afc693d81af1ba30fb4bc8a6fa7cffce55dc
-28d09cfbac30fe96c7a7fe04f75bffa1cd5dff75fbc49fff80f594efa745eb0baffe84f7
-a64386e6c877d989d25deaaed081e76cdd1fec84ffb788f819ff4ce00cd842db8bd47ae4
-c1459efbd6edba1dde3ed860ec9e12f19b33da52d2f89336d065c6afffb132ed5eb7dd12
-d0eb86d87cfeae72b2fa90c796ef06ff99f715fea0c0fb25e053d20cd851e104b0fe7bd0
-ff61facf9865ef51f6b06fe4a5d087ff1ec2ed3cabf783ff5ed91fe0b4cd0dfa5ac1ed81
-e0aa2bfab909ed32e261bccb3be003cff790c2e248d91ce0b5fe970eff50f220dc9b16ff
-bb3bce7afbc14ad633e459c6a5ee8bf87fffadf033da17feacf10d9440ffc179fea5f62f
-bfdd66e6ca88ff991cc1fe8bf909e958d1fe81cdfb86e59e4af70eefc32ef6ce3fe628fb
-61b4d93fb0d862ee39aad87ff8b5fe6ff7b6fb78c1e80ab5ed4088d9ff0bdf7accfa4dff
-13efb6e9965bbfe219cba5f091f685ff79ee86e634b2d045f1bf51ebb087d993f20efbb3
-86ff5dba37ff87f29fff58ef2bd9f486e57dff70fbc75aeda0ffb651a5f693fe7db5e96a
-d0ba45d8bf1f9dff86ec67d876e0c0af69e4a5cc21c7acfc47ffaa17ed42e0afd959db85
-d88df49d03e0a023f056ffc891dcaa5aedb761fe94d8a5c0ea6dcbfe7bde8accff5bdca5
-3d93d9a73293de27a3fb82caacfe2cb7c89dff23bedc86d9a54380feaff479fe62e807c8
-52d838d94adea0ff69fbaf79fed669febe4fff7dd856edc779d8fba5d826ca67bed57acc
-67bcd630c7b0e043a9f77cd906edc6e515d964cbfa01fe2cf39cfb6ccaea4bcfaff533fe
-86f6d8f90bf25eff6dee88d184f3bfa2fb6dff7af529ff4cde3bc7f74fffbf79d9af1dfb
-67ff9ed283dfac18f34dff20faaa2df147fa0198f115ffc5f21effc7f462ffd15de019ed
-64e558fb3baae1932bf765fec8e533d80fd09edd88fba0fe7df2a5fcbb10d8bf21ecc50e
-addc1ae5c926e98efea32de7981bed60fd94f305fa9cfeaf45fb9af506a3f0cf23e46afa
-953986ffa2ee2898dd86d874e015b2fa63bdfb0898d95bce1a
- >
+8449386C275F1EB224FB26AE1FD23246FE135C3A8D105A01874A27952305C10A
+7B2C46C70CF700BA0635852676217F1A6C4025821438951F4398621578B54113
+47C50C87006533500E8A270C94033D5E1AFE7141087900AE10D72BB21EDD3147
+E6368B12791B539B006408790D609406A022DF3100B00A347D1F54C0274CAD22
+E91A3B7B1DA227049F7800502EB53E01274CB248002EA3085600AB3C12C5501F
+8F3800850D630022C701B305EC4F007E0885016C06A5115736B21A5334E33F1A
+D80D52EF4A306A17AA1A722741641F924902C408A631F0019F4A00BE50016DC7
+072FA4270461EE76226C263FB604FD6C2150F130AD12C2325104A8601F95256C
+068700406708A8006C09A301C10641C720B232C800502D6A3F09854722914901
+EE2F0685003794077300D840016CC23E166ACF125A1D7CD70D841A71C31340F4
+345A01874700D90B5BBA1BDC27AE7715623283122FD71F5A34DE228627790495
+01EF0B9702AE6600823A017800FD3E06D401AF0ED73D12ED29583A6012523C0B
+DE2E601FD9291254FA014FD8103C01A805DF5A1B782700B5077900416A009F0D
+D8193CE10446C449276BBD1294267727D2226130860E2E79018026A51FF902BF
+501FF35F04C73E129A4117DE6C1349B3481F60EA124F00F23406A502ED431652
+04F13D0461AF0C991BCF2F1A7F2779204058027C100440D70B49C26C043FBD01
+544000F319C92269276D267E142F9D1FC827B443119F662250366C049B5D008D
+0DFC00B204CB6318860D7F045CA50434851A6F2DAE571F803001CB0986493566
+1CBB14E750217E278F004C85125C00EC0C3C5800F50E931A51EB044CDB671AFE
+12470486103C5A00980E3CA819865000B9573001D1265A0E8E06329827861F95
+412289360075BC335B1F87300079276E0560EF0EAE01EB05A53649FE9C561B86
+013D0EAD68168F0FB8760D50308508A400D80547F604620A50128728540079F2
+15A430501AC92F68226F27791F40AD04F1379D1A3EBC6A21CE00870634F61046
+8F22A113E302D52A4D84062FC9014911B8310AFB2E781C9F21D043346104B300
+40A019390092275AD766276CAD13E02783006C3903D12765088B4D0D8601F723
+BC5403E0095201C06C0E65AD270B8600DD0ED04E1AE312B440006B3376266A12
+CD00263000B827F97826500CEE2E613D21649E0041E11646229F6C123DA92DE7
+6B04DB0DC33C046B00E40DAD258501A306E10C970059336C0049E70A50009A0C
+6027C665006CD0043E68390D701A91013EB16C1F60F36C2264A54005BC510173
+06A312C45024852D0C74B6460DA801490BCA00347705681BD024F6460D851AFD
+22B03F1FA52C8500397D1468D32C5000E3250840FC22A12646049E3E01834F23
+9220C9139C2E861FAD6CE360116C0546CE00A24900C806E50138D10E4F78BA5B
+0D30BF5A007B07339A21405B1F9E277F2278015812D4347B27682FF812BD23AF
+122E7C25DE2751F30E4C1AB43B1F52EA00BC469E3D0BF7125600920C4704D301
+5526901536DE27871F7F012FE20969F927046CE21F88267C1D56EB22B82F9F05
+601296502DA9047800ED57046C1261CD22AC350D82199A334DC57701491268B6
+6C2063BC3A08FC04A20A4900D5043D50130739A5228F2F197E341B9C278713AE
+5A1FA22B014B05E9600127DE1BB5570070AC018808CF12B92949F546236B0FC4
+01A6268702500868C80191067912408C0498500D93076E2D612700C852229C27
+EA28B6279F1F790ECB004798115F00FC3949791AAB48005AC4163B5A06F402B4
+400E79016D0D3EB54000D8055F3B269E1036C226E5310A780159B105F5461091
+04285AC97E004A07F600521F862A64276DF45A1A61F10194C4550CDC00BA5803
+E364046C257A3304810868F81F86401AB5770E6A3B1FF23512EA2662345A0186
+05630990009D1A50117A1A3BEA781E3F5A19B037C40126DB4100F128BE1FAD12
+FB4B12A53F047C095B01810850E53E1F6CF20241BB35550ACA019D05348D123F
+7900A1316C3661009A27CD1FF15A017E274B9112E26B1A6093067A00469C1CFD
+2644276500B81A57E00E3A27EB159E2F7710D800B00DC6013C06844022712700
+3377277B1239851242B50DF6004EED26C33511AB280096350450C701910A5A85
+0540AF00F83D1BCD27B21FE13544EE6004D1680044B800F830630147A3572F17
+82267801590A86049C39006CCE1245DB3B14C73200679C085129830477228827
+6B215AD626B404F0500DD112AE26D916510C8C3319C521EB153DB10041C8012F
+DB1B4CB4053E6C0080D61F94277F380079AD037534540BC140236C32811F4C9E
+27C30DA9098545EB049F085BF424AC0036771F3E9C1244008F460176D00D49FB
+213E6D26A6152ABC5612771FA64F0D6C00865007950026B03E24A00C2F7E1393
+0DE21D79126CCA079E123AD13E25751B62E12352308700954E2678A40D35B320
+D514AC0EE700B00DF438007D1B653D23931F500487093FA76B0050A408790084
+095086270DA5530B3D831F5BD10DA93C04510AEA01C1651F416012D2267F015D
+A409EB043FDA117900692BD41F8F12631FD0340C791A60E015C060056CB45A20
+D6641A532F7D129403D94501E368003AD50484099337E949132FBE1F40864F12
+8B1ADC5A04B249276C3C00FD04357722E76B005EDF01BA2F05840CAF1D680DFB
+024127F65A018605652E5A1A7B32731D5FBD0C45A100CE055FEA3E2065FA0425
+DF126C3449AC22CD2B04F249792171BE08F7015030601179CA40146D3009F805
+B93C00A619E13D1B78265BAA005A36E81D9A014E043AC05000934901C7270482
+0A2BDA22490479093CEC06AE00C32B65128635501C92186C4024DC48017905CF
+6C0355DC3901FC056C3D20853700CD05B55E23864A01AF0C43B41C477E125AAE
+16F4013AD23E1F6CBD005012C2244FF000C14E08CF0196045031E4126C2F8527
+0078C2013A86462A9C00F8052F74016A9F123900E904326827901AB722EE2E00
+62A0218647247B1D955A0D864A04B500CE12502D94164A7D103BFD54A201267A
+14DB2F51954738AE5000A00EF927A4124E8422794A07B05500A205C027FC0CB4
+60002CBF20613D259412770BA8274AB400C109F35A1A770E43AA14DF314F862C
+048C0833EE00406B2749A70460B20733841F882F7A183D6C402285276228DA11
+9E0153A91541BC6C132F991A50AF0B643E1E61BE13E8361C62BB6C1541AE00CD
+0D6A0074054EBD3C0DDE00B55901DA0740F13A1F7927692F8601F70BB9063FCC
+6C0D227842F133A605862608FB01651F7C2F84199100CA3001D43714E71E32F2
+227D0E79015A3C1DA06C1050AA0BF500B82F691F9215602D476A1229A526E936
+087B03982700F66622CD50199626C501771A88122A5AD90CB004E000C70D9E01
+A504FA12AA216E277F3506FD01540CDC5B0DE5003CCA01B77B0D41820C5AD304
+4E239C5A127727A134E229AC125A0184279513339C2785216900C80AF9129F20
+763463238400501AB0D807276A005A3F12BC4B1A7811E906CA015B376B1E9A45
+125E9D0041860D5034DF432F9D03E70842FA0028821A5A4104EC5001CE0AE604
+AD407904870067C01F5A11C7581F41AD00A13D04790E53DA4000E97903387927
+6C2560347926E51F50387A078D00EF1AB64B2296278D34007E2678105B274726
+DB0128B40030860EFE013ADD068901791285217827FB1B6C0440EB0E6002BB11
+772D92364E00DF08AE03DB27A6278700304C9D1AB720EA6A008F37B749277523
+50BB0FE2540473F601276AA80460AC006105B812702286341578C70147D7209D
+133478277F1E893200D95016CF2E0149F03B720591092F7B0D65D51F9F2D0799
+355018A54700EB0EA40892005B0A69BB0044C7344E0D6A00793B0ACA034DA31F
+D02EAD1BED77044F98531A8F4417A827871F654025F51F5A04DB009108A434C8
+700047C44A2752A4045D05C159276C267C18520DF4126004E50B6E068E013BCE
+41046600D20D9D04277C0032BA1A2D6CCA3D1CD82D12CC1F88264ED04801AD69
+055134A60976005DAF0E9E005A27C6520D33842252AC0D820126B71AD75013F0
+26405B00FE6720B40C6D27C422603949FA15D22786311397235C02D68425C412
+DF5E1F40F2125A0483086C003ECC0F24F93A06E36100480BB400C46C0950BD38
+48B0193E5B1251208D256B16FE003FE5159D3F1A850FCE00409E69013EAD791E
+39CC402680195A0DE3149E2F5A39FD521AA56A08429F0D50087F007949386C09
+EF005F26C41A2DDF1F90238527CA3905DE2650F10C651F74F8009D076C2750D9
+47336A00963A069D01C7344F12810158F3004C9A0687012F751FA901DD5A05ED
+0F791A3D5906863F00B46D0537BE4021FB27B512508640006BA53C1F77DF5D22
+3C501A933001860B2778D000E505B10BD601790D871B57336A00EE04A13449E5
+043ABE6C2501B4520061F90CB2279B206C4303AC086800C54013F15D01B522EC
+25970FFD01A033498213950C5392116300EE05660D49791B84043A7901A4053F
+6012E430BD001B7903FB2740BC531F6C0F7904B924D22F0D863312D026B45405
+8310713E1B8636A12DB201E62E63179739199E69008E60017C19972B05BE7913
+5201C00D4B0478F00EAF00D86626F66004502B7036497E1A50AD3B26AF01CE10
+A548385F1B9112861E500DD63C5F1F9912326C0074043EC226F31F85128D2F04
+923D1F7A2782005A35B3195A0DC40127D9043EF50046BA3B1750B42FFE00A530
+CF10B95025D41AB2385A0442733BB04B0E80046200E82AA61D8C37530596421B
+DE5D006D0D3AC524F3490CCE47006307416C0EA201F44A04D53E12E63B0FA631
+5600E765270AD42094288D27C530017C26603F11A70041AA129609CF0331EF29
+0466DA0A6D27792E09B501FC08662CD0007916A505EA094AA71FD224F05A0D7E
+006033D02650DE4A00C705E31250D0036227943F1B6DA43050861E37800D6C9B
+270087123F5F1444693D1792287A018614A020F8125F269E1BCB2177278401D8
+4600EE6613BF6C0441AE1FE86300792F009D5012C522F614BC521F7B300D8650
+01804E1FC74908D96B34019E48316C05F60080095AA21750E8069422790D2FF1
+1F6227A06C015AC11F3E881D9A01DF661F792553BB035A32F6446C28773DBF01
+8312793601941B51B20B41019F0C297927643486203F760CDB0069E50A5800B2
+074DAD04E74002D057266CBC09E200AA04FA004612EC23C8017C0B9400CF0852
+31860CAE143E6023940B307C00299E1235860231A41A61B93B03772780016C3B
+00CF2656B0271BAE2E089302388D270DB34912EE00AF3F126F22D61236CD032E
+8115C634D46A0150BD003F11B740077A004AF30D405013C7279D003D98138526
+000DB200226A2A499E0550B92FDB05276CEF722160B00E980ABE01A307AB3145
+AE3A1F8D22FA1241D8193C5A1FAB3707E4013285266C207F275BC17705502E60
+39BA2B501F69F20041DB014AF712BC1A41AA20E64A08F85022B74A09DB04521A
+FD26AB1250A423884908DA0048FC0E5CD62653F1004A831E793750841A5BBB33
+A60149831F69B600436C014F1FA4380D78F826611EE627B312306BAC08860050
+12EA204BDD0551C7344980D804F10C32DF1F6B124779C5003508CC0038FC266F
+1B6026F61D86115601C0053E6B277D016599007F0C659E1F54A30550C54D0D95
+07491F67AF09E0005904DE770138A20E5E347E056D005AD00151118B38610178
+0D7C3F20852799058C00D53104F00A34961D3DA0048534009D0B7424B904FC00
+C3082CD70150076B38FA0D9C085234FD1B9C0B7905DF5D19478600960C83045E
+9F0029F8223FD46C067C0B41921A65E61127405B1EAE54008609A5003A125AA1
+49279D50048500E62F81004904EA27792750AE00CB0D9F2E12C727F82D0F7939
+1AF6123901E730B212DC0034791D8627843412B760197926CB1FA7278F31126C
+A33D04B31AC727EF1CC05B00EB0E69345A1A85461B56BF004F7A226B19E7641F
+C43060137B276A2286410F9E24E51A95005B26DD229E045436EB268C122BB40A
+34CE225035D73C1AC45A029F640434AD27C43001A9220261BB0A993B048C2748
+FE2661E8771F3ADF0D6D17A5335A12981F68B95C229F16F30D79315A3D1BEE56
+09710146BD01D25C006FAF601A84006C279A4B26B610F118A2450626E8049500
+5909E40447FA2706CF662683094600900634932650BD12E73D01C678106928EA
+01C80B924105834101DF4306C90CAE03E162277D04614527B33E017E0D60C212
+45AD00497A01995A046CBA00640A8F40127F1B3CB959106C005DF80E73A33600
+6C19D44D12C63404851A4D0DB901794002EC4506D23F03E00B4C007D06850063
+1CE004B06C0134A51F99602281182F91244906C82352D1053DF501477A00630A
+CD704C37AE1345853B199E73005B9A2900E3145AB86A2756CD0C7901408606AA
+67203EE0058E156C27A63312B14C119A1A8B34563A6C2F5000C20D3DAD12E004
+884F1FD22F007F075F32CD1AEC401FFA2F10A026EF4B05CD2EE40C5001F41D86
+123886271954FB25A500903E019B5010AD0193286A13BD345C22AF1383502C9C
+12CC35D92F41C0500B771340BB6805DB4000F10859B704EB1694277914428B0E
+53970C33C327792F00A51A5A2FF60DB568270DC0350B7C49329801490FDC013E
+A321E01F5C294E0D94005A3249B607850056D50127F3266504AD00EB129E2291
+1C4CF500792C6615F040126CB025DD1A85043A6900880C47781A7F013479226B
+018423782DAD26D24A00CB8506397D127826EE5721D7402AE24506F551009509
+8B006726C300466C401A6C10A5032D9123D800531A862A128B319F3D12793467
+01F608A5012DBF1F3EE4511A9202FE400FD8059401793E00D5571E43F41AB005
+4FFC26862A781B624009A700CC03F82DB812A4013E6120F41B385F8700770ED3
+1F7F256701F30A3B86219D490CA53A006F99013E51049D2750B715A52760BE00
+E12F50D300A9159E32C814940475059A3E0C22BE6001DE4705630A8800840464
+2086341B7827DA2C50FA0437A61FF201B1054F1F5DFE00A4288426FA0050B849
+0B6B00DC410CC04630601EED69007E046101B31250259E53277F21C450128634
+04A36C00642581370C77009F0AF600B96B2678316C1860227027FE0DCE400E6D
+9D0940BC36A72D4E08A53179275ACB016D0733CE035ABF0E27F81EBA6611F600
+773E08D3023B934212921A5A2CF2085F007D0DE234501AED5A91042D991B34B2
+27C71E5031B40DC5005ACC05AA0E85193D775308860D5A2479E87E0741791662
+0C9C0F3C7B0427D421AE4E1C80008A0FB73850129F30D822862769D0057708B0
+00663A1CDE2360EC143FB610DA01C05A1BD5227E2F593C04F1129D269205D902
+7F1977265AAC002FE21457066A01E75A1ED005B60040AE18EB6323821B419F48
+088600348F205A0DE7501F78125A07AF043E860E499927DC21405A00BB6A0130
+1343F30C4F8400740D67F913703E259812397C1F6301C70DB31EDE263BC43900
+4926C81236BF04E33350C61FED6A05823402A627E42251049C00C749076C3D0A
+F1003F612DE31243EE0475089D014085072F9327791F40A304AE4612991A8634
+5000E10D7939A033C00095053DC650017924FA1A9E3C008611491A85125A3550
+00B210D82F0462C52650E20542C5306100B232EF27C92162FE00B53604760B64
+A91C86271278D966A60040C112E526B036019E02EF4D07E15000F731A0256A00
+7F046093046AA20F72018C5027884A06940147123AA4135EFC116E053ED06C14
+7C361AA712CA501E900EBD015A35911F4ABE4827CD0E50C860016C0AE9006434
+5A07DF01C84A0EB8601FAE49005A09426322E712681AA9278D003E7721C22758
+FC6C26E604920E7B2B6A016CE83D0C7B125B38AB0186129723810D6B009D4626
+711761EB26B83502FC0840C646071F54308022770451099449276B19862F6522
+9426801249EF472ACC1240F93D1DDB28AF22EC003E19D4275DB3770050C3002D
+851F9B65002EE12257FD00415C04AD2F7E207118A9017A0B610086229729043D
+E012AC2F7512F1227C27733700822904873618C627ED1DA53B029826860CD210
+50C504620C9D0139049E2FA527D21FF62688145000AE1AD4007F0D6B26D70557
+01BA1B85380BAF05C73E007F074787224F9B002986B50DD5149E1A3CC9601ADC
+05AC3D00B404C10A5901BA055A129524AD00570B8F0182086C0D6DBB6700790D
+4B26E01A41934D0BCC330EA25A09AD01742F961F8326DE023EF8500DE22CAE26
+FC114D00F0791B4F8B481A9E3F059200BF0C51FD16D14512F16A0B82016C08D0
+4E31F0045C4434851F47F24C1B70B4410F6B0077095700A106C9278330692795
+22F017A22A47FB49286C04E4591F7D501BA51356D0003DDA0D5AE704256B0255
+00EB7927018A2F610ED54B126C1A43D53C1F7927D801791A8727BC215A35CD1F
+A82F1144AD22F404950E792706E63D005DF03F26921C4F26BF08E9006A1250A5
+003982227804521A6CBB5D1634BF003908D00052BA2F501E9922623E059E6400
+309F254ABA471479005437B500E306B20A7700D8270D62E022BF1A3C9542345D
+1CA50EFA01B406503477007A096411D225A53200D744018627E0331193681F79
+19379549FD38B872400750F14100A2531F9E37F8329C1261E7008E0C5D34E907
+630048F1044161024BFA053185176433B701CB61126CAE195001C90467E40D48
+78278A33CD085B279F04C3123CD07903420A9E65126DFA6A27841F6913E55E01
+D409AE6C1F3DBD5003DA0E5A008720D82491166A227F265D12A53549C9003E98
+054CF004BF11E447015A23791F61C90340DE22B01E78007A0C8B6B132FF80E6F
+0163A02704C200B06301147B1C500E2CA21F7812BB3406810077086B007B0445
+A5213EAC15552FD039991A9E12E32780236EC6013FD600468A3C249E0430770C
+84227834008F3901A60D6D23941AD413762697650039B11FE72706A5263F01B2
+0CF2027805358E267D2C01E20D792072299226FB2DA30D6C08F628A10140DE2F
+550485147A2060328E1F7A2570008635B83F0C92390EA41349860150BD3C1FF2
+4009A65F1F9526BA3905F24A3185260ECD6C00AD04D66600C4046C2648FC24CE
+27B326E027AE330E51FC01760BA302780E66277B0052B5013B0F9D561F84265A
+12F91B4ADA22BC27F812B55A1FD66017F501B3043C694000F3093FDF0D478600
+4AD750048D4A165F3246C540B10D5000C849326001F606AF0A6005790140AF3C
+017B0DC864057E1AEB25AC08F901C60C5A01AE27CC1A6E0565D000F550278505
+35EA27065C970129CE4801C0045A0B498316750950F6472DBC3E268534158525
+3BE40F7B01560C92014A0F861AD36C057A36C04926861FE100C511AD3E0D60E6
+782904A70CF005A2013F7C00860579008640109D063685225A2D49EC0DB85928
+7E154F9A216334940130C31FE338A5008608246C2AF85A12841AA94234861C45
+BE4C1FCD621259C31F703612B727960175385A2B801E48DB441451049F27EE12
+502F5E01CF20B960126CD8193EB6680524913543E42BC900AE21D03A00780712
+60F30B5ADE0DAB5C0554C82EA83F1F63C25A0370003CB841126B00F4065A2F6E
+4332781FD62649155FEC35691F7F2850B50EC238501FBA4903EF2750C60441D9
+0F8801793A07CE01B43101F905C511417A0A71006C12D32758E9009E0438B107
+EC007D1150DC006B12963104E51A459C00ED4801600EBC4500CF114BB5006A08
+77FE3D0D81009226991A7D107400429E00318802511277EC4F0D85006C126029
+7E04941DA552D731008F1B47790040B33C00761169EC084722F4309F1B6001D1
+258E2849B80AA501FB0855009A04BF0A4F00C54000D80A6B345813EC60092E81
+1B7700642FAA006D1AA24F1F85276622905A1B79275AF215B6279F2884219A0D
+3F651249852276279D1FCC04267927ED00498627A50C336C21842FFD39550B86
+1A8204338D26A32D0061BC355A1DBC04E138A82EFB0D27C4590CF926B3420027
+D5239D337B25EA125A2FE23F011F9C4124C60432F91866209E26D9003584168B
+067C0EEF279D1A5104C9186340276B147FC73E1F6B2F8227951A5AAD239815E3
+019F043271DD0DAE29DE2094128131CB3E12F801AC0CE5043FC3089E00308701
+490DFD045A01C825B534E01AC4015D0A5538703EB8065A37CF0879005BD304B2
+099500791FDB24AD35E46019ED114ACD1F5012DA410B6B480068084C966C1238
+A51F82042FA862036C0CFD01A50541C0016622865D04B76C126299268703ED09
+801A59AD01D028B2235A0082083EEA600D9B00DC05BC50270576F412AF01DD0D
+7A06377B016226792143B3003F50018F0A5004FC45086000942C5A387C1E7726
+6B4512DC692258D7661C50BB3E1984048C00771040DD30B201E60D48901A9D12
+502DF13F1F7C265817C212A0043F660D5001A7053E860493097B0078329E14D5
+22B31A3F01DF7900500ECC6C0A3DBF1FAD278C204D8D1A730DB608ED285001E8
+4600B5103A6C4129B9052F7A124D0041D8491FC47200318127771F853B00A461
+2B008522771FA430E74C1FF62DAC0DD262129425C9601A6CC0345A1FB725E24E
+0DD10049B807D800B337501AC605470092340C77EF0F5A1FA62757A3007C126A
+2383002FF9035EBC1B680FBF013DEA472761314BF001BC267E225AB1226330E6
+27AE22F5015A30850060C828531669E3355422F51A79400078073FD2003CFA27
+57380F822297360D7D1F51CE01A50B6E48F61F60E3711D7905AA340C43B51BFE
+0CB44C10E54418D04A37CA06465D006903920984006D3001FE1E6F123EF53C00
+7B0C9A006B0434A826881633931F500D9901800E7526AC20DF67002C46D84A0D
+FC053B6322F729AD15C850227D34059800922F4F8600A405D500891F74279510
+D74000F30DA5016A05860F3EBD0444E73C0D7E04AD2F069A018A005011DD5914
+E85F0DB055067F009F6900D10753BF30DE056A264AE3133900990A3A04A71169
+264EE2791250015A3F22942F048B0AAB016332FD12B61BC3385F18C5269A5028
+8B00A9055913B226EA2749C84188096C05EC60023DFD6021EA27A932EE127B04
+3CB57C056A017F297914D0500B9404406C0EA000D76623F74907DB106C1A7E38
+690EB106C8003B6C1C7A296C1F8618CE344B771B8A106F05AF27F021874819BE
+2D42A576042D98381A8531129B1FC92FE04E1A79126101418612942F0079C55A
+27B650C82750F9008A260464D337A706EB0153C1355A1A9311860040752F5612
+DF3A5A0444C91249D926851F970A6601851B700E29F11FA04012BE79002F8F04
+77098600522FA212501FCB24AF1AC200AB3F0184195AE101B91B56400D853713
+7727AA22CB4515F22F57401550FC04A0089802C336465707B500EC26C12C641B
+92125001D9385B0DD4072760C30150CC0164E50179491502368626FE27A41F4F
+F104C05F214C0F8601380C860131AE13409F2C04751F6B27831F6612F32948E2
+50279E04EF089901A30DF235008608397801E14A36D05111E304B563003D5400
+86270E42AE145024C91F5ECF0347F200730A56348612754B1FA232D5253B6243
+33E919AD045AB20192033D5A018B089E00DE7920632F48D114445B00F8127524
+7D0C5B4701FE51003EB561108500792168EE3D1F7E330BA12640AD3C099562BB
+05A6008D0CCC0026693E07A103DE1F6AF05C239E63076CC60047AB0EDB00B00D
+D7007907A0003A08D5125C276C3453276C1A9E6A1BB05E119E310086062FAE22
+5A401579C423DC1B5AD06C0464D93F0080350C88245E27B339F60049E23604ED
+0D6C007F05960980017627D11F40E21E60FB0CAD28612371340BBE01B40F5A33
+EB0D9727A304DA40329A1F851234D3770A27A01FF33297035000B20EF25A1D83
+125A22F52711502F6A3C175B2C7844B316FB256C3295084900D9123FE83A1A57
+F5198D297C346F2747BC50226DB56B244AC000AF0CD800B550052CE53301EE23
+52B912488F003B9E01F732046C07A4460B35C027086BAF19FB411ABF0194056C
+0E8527069A60278A27B71BF01FCB27A00C5A007A084B8411348E1FE312C605AB
+5026851F7600AC1A7B23671A835001B308D900A87906276AE804435F124AC61B
+82266C0041BC00D506760085D00AE801C349E0019E0A33840E3FBC0041CF1AA4
+2885005A0D922F0B79256108F6019E0C6504DD0D35019D04793D1A8E1F763A12
+D459047947188A0C762FF81A50D40C83265D9B12843301F776005AE4122C7901
+649D0D7934DC21A517BE692F0AC300500B5C3179026025FE34A5269E3000B357
+056D0080492E7900EB0A3EDB27693E05C400E44312861A782F5D401F5ABC0052
+34C401AA0A3D9C05DD29AD156A36522EB93E1A278B21406F04396C1BEF6000A0
+5A1A8222507C046C20CD27B001C95B00C513A51F5822ED1F7F27487BF7165122
+EA620250F9047F3E1FAE25C36804D1276503A3246B401CC1003FE826BA6A1A27
+B43101934712BC263BE743156046045A3F00DB4A1277FA389D0049B51386116C
+05DD1266F03E21CA279B3704F91A69274C92019E08E15226733401BB27F04904
+C20DE20238981A7E236C27E71F63401279229004EC0D85015E9E6E0157AB1299
+22BE3D0527D24601E60DB4013BFD109F06791F803E1C96386C01439A3A0340AD
+00C4093968C80A4526CE3F225AB9006E0B82003BA64100DA55127900A7540A81
+19590148129F500D96501DD54F0690005B08B200C731EC229D1FAA3D26046C24
+D90E3D6900BD1F89287904500A86006312BC6C0D40B101CB115D41307901A50C
+9D5A216C003995266C2785480CFB019E088400A204CD4901FA0F61259F1FDB46
+0727C81F3BF40881005DB47912307B27622A861E6E402F6012EF4904DF4D05E4
+30D0126CBA61153D5A2C92002780AF066B00920D4C27E94112FB1E6012863D07
+BE2AED1234DA27AB0DCA793A00D33B05F43A00823F1FCF27832E6C0F7D016C08
+50017BCD41B5074FA51EE1472E5A01C220AF27D61D40E950012698561283482C
+F716B51B4E2FF23F06DA0EB25A0BF800AD12CA2F4E7712DE34562C6C18A5345A
+39BD50006E3712FB820CA10065472FDC0E490459AD089504DF0BC300B104D652
+0134A11227861A60068600500E79E404A71ADC5B013D791EAE29DC177901935B
+279901E84D2195267F055B92016922772D06EE54227F421874B312F15A0B9504
+F826A41F3EB832F3640E5200278D3501920A7906EF460D6000940F53A8073A78
+D32F00E7340586046D0060C60465178427793315812A782160018F053BAE451A
+BC0DF7500D8300980530D11BB3580022502B7815AF1A509E1FEB3513F71F6B33
+435A27486B3C23B76C0C53BC0040952649FC27CB012F6C24770E34BC13F1500B
+8401A031CA3C04C00D7E3409CC015016AE381FB413FA00B24170108600A86004
+2F790236AB2249117900D3581682112DA11BE66712F55A2240D13B15933CE548
+307E016C279F220861A41F5BC41FAA27D638128623CE009B044DCF03B80850EE
+3F1FD02664008704613F01BF26D71F467B0C770433AC60ED04CB400586013E69
+00986C0050C101A50EF109A30086072EF8206933EE12C2320C811C44B10AF904
+AE5221760032CB223E66075A1486205927AC6C1C3FFE6100E051087D49366326
+01BE1FE2290DD05720C56B0067BE5A1F97420491005AD7046C3F05792C03BA6D
+0061B400266C12C523FC18CE0050F33E108000457B0C5A06834900AE35601EF4
+2267401F93310E9F5A087E0DF14C3396247B2E6C085AE51AA826F06C12013472
+105AF527D112B8501938A5233D831B7427781FE1125093007809A0014E05A45A
+029F5F188648377A01EC10B563056CFA1CB123E4003FD9054600B879042F860F
+3AD227048D0BEA4E307904509A3E01850933E0124401D9380DFE27C2234F38C6
+21AD1AA1640D2F9E1A2C78CC058600790B4E3988126A01BB26DF1335EF27AE20
+FA395712A4500C7C00E85A01C76A002CE41EA43D14C71BDB129F1F8632019300
+554009D245B81F9F320179246E2706C95C0DDA054CE800BA04993141CD193BD7
+552260DA6C1F3EE83B00D42B00C512502B89401A9D460351006C2E9E6E1266F6
+2C501156AD22669E015AC61FA512960547AF22641CE826B5501F7F2785096086
+1A770795007D0C6600DA3C13E75904FA5608503F1FAC2860A5042BB21F79315A
+06A1650078046C0B9F07E50232BE279E123579143EB77903405A048D00830856
+00ED04B461223CC71F8626660D7F00C34C0DB200E5793402861F99263F611646
+5A0D840147A5042AC0154800B40F6A23921250792665A0065E00E12F117BCE36
+A80A4104B53C018623D0360AF20031831B4679006027D6380AFC00A40B3B6C04
+9E00EB19B32600A935501FE9279D2683490188401F793612AA22F45D0CDB013D
+E8580550E1029C384F1ABA12CB31891F79264184006C0947AE26DD04501168B1
+22D6276D2A47BB492771390EFE6A077900A102E92F5E13953B20912F114FF92E
+6000D10DAE36CC00FA26B26C11409100850D7A278B04C90645A509E40134D927
+A70C4EB42708791460F127691ACA0C75008F6C1A45B90BF00333DC2485006995
+126D2A4F971BFA265A0D6C2F4BE24704D2600B6B01FB0927CC4D07C601B06900
+85043294268B1A750CC53F146C0ED100792841640149D40053B917E020CA6201
+841C9E27F63B007E07A60CF801670AA412CE520140B612E13A8E471ADC3E04FC
+64075AA5006B0BB4502177016D22811A530C39EA621AF525BD34F11A406030F7
+1F852241920D851B3E7E0041EE1FC6004796008534A31FE52A04A4602177275A
+94076D16AD1D2F4CB706D4004C0E48AF39CB01A00C28861230BA1FA533509312
+2F9A26831439D42751C0004F11BA48267D00A721842654FE0CAF23ED0D349A12
+693B058F4117FD0D3F6100731FC412593663179D22D92779043392216C2E5815
+50057A01896B1E41CE3C1ADB27783F128C2FF2159D063ED979045001792F5A0A
+730150B700940D6C0254B0196D005AFD21C36004522E8A240FD7491365400750
+C53D0DD901A01040B535F50548DA015A3D2060BC7A016F0640691E78C1004997
+056F400FC40060EE00500BE64B1B7D136B38E36C0733F71A5F2FF10499083B6C
+025A15905027F601AE5F2600A43150BC12CF0A9D4730EC00B94E277900881A64
+B20BD7009A04AD20C626B63909A5007904864908C601EA04A10B512DC768012A
+B422CE0EA0039B27D2126C3A1FAD28D93804F427BE350187092977A30240BC57
+3006F200BD79115C0092316818E1005A0D643981129E19EC7705461AE327BC12
+F650045836F3224DDD02871F80371276BB336105B501F10A9E042798640049CE
+0173344BBE19D62D9F4500B706497E223EEC79490486016C412F5B018A1D6C3D
+02E20E5330F400502A60461AF73E860C416316D42C5B23BD0E31921E55247B27
+61B1005012995C156E30821FE21768268B01E750087900618C106B0750B21248
+DA1238E10D790173AA275A3A269E1FF84A12B34E26861FC900A5046C26860032
+CE2798126200933C26D31791088500652D43EA04AE502704961A8626632F501F
+51C40124A312813D12AA013F6800861AE13D1F842F0AD00154072CD71F3CF01B
+B015E30D50CF12A01F61C60548A41DE912B0345C00275AF0009D4D12F3401A69
+ED0441B8670DCE01358624E43400FE08AC0050358500AD1B3E6422C427B71436
+A427D21F65337F0161981B5027FB18500E9A04DE016C3E05830135C104742F54
+20E629C3124A7B0C6E0052A3345B088901AB2F5B12B41BC1155A276B01F75A27
+E10040D003B278108041D7345906C05022E90FAE400D770462D800BD6311931A
+C36A0BAD5A0E72018224973304782684003E9513396C0182057613DA95033B73
+3F068601AA770053359B002D951F4AED056C0AA341227A275AD70540FA0B4BCD
+0596005A0C4ADF008603760CEB22B727006CC404419E00CF1D811251AC26C822
+ED6B1A50FE119C400C79003FF81FAC26EF2F04DB22C51F6B4000E046276C017A
+08CD117D40067711AD5A1E723600FD2E0D7818EB266A007E29711F57F525B312
+306D1538A4277738128827009B36CB295000B54309FC2EB32050E306BD5227CF
+24A20822C612B21FDF266E2F14C026D41248FD073A791244C2491E6BB502C511
+479712602FA50E70133BFD319C1B69223CAD4200940849F8123284205A376C2F
+46BB3C0079095F40008E0D3E6C01CD6127B55A0A69028309AE410F7F0150E90D
+791F9E0CFA38AC3B4E34C225A61F8B37089F0FDA5A1A65BA006B049D2FDA0BA5
+00CC053E60014A8904FB581FE20050F9034BDD48047808F96A1A8F5714700D7E
+013F8A3B1097017C2F785035690A5A009F11DA4B087F016686225FD803AC265A
+01DD07513B1A860131BA007B2540EC48A101840A7905EF5C0ECF2F5A3A81055A
+A501E60CB105EB00631AE8124DBE1FA82ED504B33350089004348622CD376115
+874A30B83D1955B33A01854A056000E80A780047D70248EE247E0443AC06263F
+A5385A144B851F66277C1C9836CB1BA3400E8508B21A6032A6122CB913523E22
+D80138A800E826CC124400F11A5A0DFA00AD01E9278933573E01933F1DA73205
+BB003E851979118F269D13E86427F36A1C50E1045A00266A3F1FCA26AA3F0186
+1AA513E11FB236197527861F6014910B77268638017F066E25671B9412F02243
+DD00A74901E15000FE0A7700962B0565D43F16C71D9D1468399E0E5C2F7A0069
+2795133179D2550FF400C40D3DFA08AD01E30C6C007A2705AB2D5E3992007905
+66882264A5007E1160C31F6B335A1C6CBA682749B9471F6B12811BA404FB0CB8
+6122F5540CE147127F1B50C500F12E6100753F019D0639930F2778C139B207DB
+5A0040561FC52649007D0B6F0050DB08BA0244CF3E23FD2BAE0DDF5927F415AD
+00E7277B005A9D157430127F1B2C9E1E6A23DD126CEF1A5100862D782650D301
+2AFD1AB022C817B701ED60004903851D792693016C44305B22A127ED1250D34A
+01DB0C49C31FE64200ED0534E127993A0B82049B0690044A09D1018404CA38E1
+065238671F7F2D069F00348C205AAE27E30A3A664004D339B30DBD1F5ECB00AF
+600A227F1A862F1279E704880867F559279E25C712683959317A009556036C00
+7A31049A0C503580126126D1370DC52364F206B86C043EA64007A134007F26B5
+0DF403B9073EA852096D01840B5434873F0DBE21E02AB0096134B818CF12B44E
+04790A3D910034822678290799380D951A46790A5E03F45324D827B52FF82286
+136C2D781B4C6130D500BC5000D16C125FB10478003B6C01872699128646096C
+2849860C2C801937D65204F5015FC13D1E6E2FA2173907CF0161338600A511F3
+22B41235A020D31760C11F68CC0249BF06A90378480592013B5A400DD35F00C7
+5A254FBE129328771F63308E126C1F9626D83347F9125C1F82276C1277224FE7
+01475F05850036C8245ABD1A61F00FAF00F25B1369B5275AD112BE26A0300093
+0E5B0B79006034AA24EC0DB500228613700F29852241EB3E18CF26F31FC8401A
+F600C0501C9F22FB0033DE4905F17601348D25770E4F00990CDA0055BE6C1F50
+F00448E62292014B0566E20751348C013C850028991A39791F8619FB2E4DBC13
+9F1F862812843102F90D603F06D00152D90046ED04BF00405A048F00A205D500
+A70A9D00CE042E961FDD3240F065078601439C0D307622864304CD2F017A0435
+85006D0C65C64236EC40199F10DF0088055E2693C5013D9F43E5089A01560B86
+2F930E520867A40D5C3E05EA005810935303972650125ABA149C2BA923F1276A
+277A104801873512962E0D79275FD67D2A1A78B90944F90E4ADD4108F85900E1
+335300981C3F6C00DE0457EF21B1681A8801E2491F9934128522583E2278EA14
+B21F6C412C6D4436F630563AA8500C7A00AC1150209F27FD2E03C44701C60B34
+7E2154FE19BC501FA62ADE1F4E04830152C7266B27701D4FA53F081A6CF82601
+6A3C1FC326A2006C043DB079005032941F7F266BCB4127C52140B600CF400979
+00DB046B079E01BB1BFD25AD0CD74106BC4F01C509480EB2410027961B50A327
+05926A260E9E4812C0630EE401CA5026A938017A0538A1276C22833E04B15A09
+A401D5660D31850C3BC319E40F97075A0486177221FC276A1F7F01CD0D791A71
+501E9751276CDA01AE0D3E954001EE085A018412AC1FD22F027E08A304D52700
+F458B147045CC712AF5A0D7E27E01FC4611228D623B801DC0BAD3C017E084E86
+0D6230791FE926691F51C03E125B358500742D6C218B5C18833F1F9A24750460
+F14B01C32E0167C8123DB86D2F01A6073884268D330C7908854913D54F00D908
+AF00F0501A38F727913005BB5000E067067E014D23CA1FB211E3006A029E08D5
+29A5395A00B711DC3A06E7004819862771005A0F802477389D26F72963146BB4
+38FE1555369765123400278F0D3F83002FFD0149107A3301E84E0C8317784A2F
+60129D1FE13401F724A90666018832A40C387B43D31549B10EE004A3003BCC04
+FB5200E727C63012863A1278EB3F1E79005005D26A2243D8046C115EB52AEC1A
+C32F610D812D79123A670CBF6F006B107F491994274622A3265AB66B007E3861
+2741D0531A844A046B12E2314984007E411277A53D08F21CC427DC2DAE11D105
+5B00790993004B055A3AAE01500ACD7960E622A61A4DD36C195AAD6805974517
+974104FC3F00B405F62E5700A15D1A7B123EC74E12FB017613E4270084093193
+1B5226F71F6A39158F3D118C00A36504DB600B5300B527E625A53411EC5E14A4
+27F5034F006B3E009822F51F9D2658CA047E290EAD1BC500F13C03CC780039F3
+024712EC4901BD06A20B27C12F0DF73477019E0927A91AC9542704BF4F359D05
+80046C0061307827A235C327F0209E127D1FE2269E2F0D3E077E02F2280440B5
+06371BEE25B75B00CD37590E861A794915B96C123FB100E46C042E9F2546CD4A
+0262B537ED540567B5440A7700A64805BB501F6C0C3DAF401FAA278613960481
+0D5A98042A77007B1D9422CD12A04A0F6C045001E81A469D1DDC48395B2C771F
+9D610E3EB55F139721892F0E861A795039880058954800B33E1F69F804406A13
+F561107C00455F14B41FF622AC17E6117101860D6433D600870C6F0050BC17A0
+2F531378AB0E2670D0410085093074228A1FC027D23600850934D7046A2F501A
+B65B007F0D5C23A51A50046C20CD29007A35C3500FD9306001F32AD021570085
+04D5083B6B401AF4003955B21AD0345706AE356305DF3FB336C86111A500336D
+059201EA084AB80634FE155104842DCF0950C726FA3300EB123EDA12277C0D60
+CC10533494088600339A26CF0CEB374856087D028600501ED92750C004602A49
+B81FF02277D94400C16701477BE73B0162BF1A48F705A5016D08690352AF1FF1
+4C279A15CD22820E39D827AC008E06F627A0128A0141E5129D02277A1D812286
+2679019E0DFC2F6D2650F300BB60216EC22701864812E23A5A018A305A260079
+0B2F87265AFD12B72579279635125A86007927DD0D680040A500620849AD2355
+A10450C51FEC22468800C421E32449D702781A86267912963445CE2E41BA6006
+79003F7811F605377C0F69015E12943C21E02D00530DAE12503677137F27E633
+A429EC127440018E06426101A304F54F0B6C1BE834500D7E00DC2F4D951F8427
+5AEE05AF00E20DAD175A326C14921CA316792D50129D300368FD3E0882017810
+FB1AB50C85F71FA74104BB08406401570BC90069D70127C81C9E25AA1FF6761A
+3D942B77107E05662E86006006980328AC1679013E9F18AE2F5700B806D800BF
+0D5C048D0A3A9E1AE222B13D1B6BA70353C23304FC4E07850F6CBA1F90267504
+DD0092235A0F6A007C0A5A27D82550BD0FEA385633651E940185481277B1213E
+6019B80C6001C8083F653358387E043FDF00BC4A06D001600AAF01D9074ACE0D
+501FBC27A5279422790073173E5B01D76A277A20A435E35013791E3F9A450A63
+01500490340D5EDE05B601E526BE1FF2153B8E4133DB500B592FB867053A6012
+E43F206C286827791FFC4F26EC27680984015AA0002FD22709A380291AD0269D
+05406001FB2C9F27AB0CCA01B227CE203DC30149A0003176228B0DC600B327D5
+3604C42D006BC707790034F35022A213D10B9F1241C56A0F3C5B237C2747E349
+2684223C9126A31576005009D3005039E22FBE059D32500DE600C50974002FB3
+27FA0450BA31EB39C36B1256C10427861F3E5A400092044CD80ABC01781F6DEE
+04500F77FA01900864A4018409E701A13D00954900AD462CCE400DE549128A4D
+1E01B575005B33EE15C73D188012781F5F397A1A850D4C8A1C82301179FA08B4
+006C28830A6111AE691A5AF8125227E947713E12782A83016C1BFE01511D79B3
+09EF009E0C6A03C71153F0047B0059C536ED6B1860BD04620E426B12C7239A1F
+503185129E601A8412922300790D85062FE80040A650126CCC0CAB691237A626
+681A5410B100369F27CF1F405422C64712F8329E1E3F5916B00D35861FFA1276
+23851F963D00EA413455123FA8014A7C00864A06CF0055F01248DD0440FE00AD
+06E76B1F3D55194EDE1248EB2078003F9F05408601963A0DA004BA00DE264AB4
+47269E27E7012F951F5036B91A7834A500693F1FE63005820D299E340C861BA1
+01EE4A00770562AB0142F43E05DA006638E15A27B01F497726811B6601F03100
+78183CD77848009D31FB80274985126C008406A73C002F9223700C61BD04DC23
+65C5055A016104BE085A01BB561F94CB03F06A1BD50C2EB320DA31509B260595
+002B62A2157927663704A801C8782F049238019D27F1224BD70E26C64C04CD1A
+682F8616950D5A00770D831846770566CB015A2EFA0B477F13B3600E86411CB7
+4904F14F25D8492770218627F8380DD1265A1F7F2650B10D4D0686003ED701AD
+08D42E9E0D48B322F801530927E6136C004008E101BC20E930C21B75DB5A04B4
+00D140126D277C13502ED53AA0315138F42764067A0C26882F058624A4640879
+048F0D40C44935BF751A3C5A09D40FB45A22842705A05A23AD60127C0793002F
+76AA3D14842357FB05426002F51FC42ED80058B712E1411A800D8E00721DE03B
+0427AC01DA510089266C12910036970CCF07AE03509E1A8600A711BF32019727
+CC1FF35C128C1A406C145A3892047F2E9724B36C0450AE27CD631A7C3050047A
+0D6A024911861A3E542689009E07E9008F0C790EDE0099108618D923A9790A44
+B312503C12E435541FF92801850B5007E200B64F2178003FD90D50E53F09FE00
+40C9325A14BA65085400E327B30036A420D3403169048D22A438048633009B27
+D71F3FB939016CC946177A22982E41CB01AC275CC30160195930861568430CE4
+394D046BEE197D0E6D3702BB2756FC04B400E1104B1AD30D82003DC13F0C7504
+3CB5410DA66027A129F126C92767EF01AE1AF6395A336B1CA8276C267F1FC500
+3D6C3A0020DE62006CF600794101BC6C0063B024F6279F26843302A42DF61249
+96006212771A7F0E5401E1395022FC1F8311781F8E480A6C009B0EBC50126D08
+61F92050C1105E04A36C125A99102678FA064F0BF7075A3C19E70D4F2DA93AE8
+0148DD00B8316002CC761C405604B627A568137C003B631F7A275BC764014427
+EE1B6020F62B9A125A01F44609D300820A78009A06347C0D764910BA01CF3F00
+F305B40A672C4DB605FE51993B1FC3321A58BF169E27109944197B126C015B12
+EE6C136726840435B127CE2CB133D726A21F7A049601A332C1035007E927B352
+1A810135E927BF310C7E016B36EB513001EE0948D13F005432C2671B79239F67
+02881DFE126C227C1235801E7922940E2FA000D9355C004505DD22AE25C65009
+9901462679B85A0A8C0195068000DE229E351792225512B63A5712BF5E21CA2F
+01951F7F225A9D125F3147E704791241600E49018A07489C042B750546EA3204
+D60053BA36D6510540C700AE1CC95D1A8101860868007205880FD92D426C1859
+38D764147A0D34F1234C86067A00439E24DC199E0026BC4520A72B0463A10D85
+023DAF00DD0540B7306C058500A208C4560AF201BD1453FC0A7F269112F7782D
+5A3F07860134E621B50EFA144F1F7C32CA25491EAB2F791250C10442FB32601A
+E3355000880850E127520BAE044C39D1008C123FD728AB01C817F25027DA1261
+EB1DCB640C51A222902F09940031921F4A7912863801EC0E581FF329A91DEA49
+346600B40CED057C0125AE00CF6C013BD512B41A4FF0045A2E630D497C076488
+006CE51A2FBD26D921497D1484115A00CC5024D23363401F94275A368400405E
+1AAE013F500CBD1884F3124882156C2F92007307DD00A7055AD66A0E6106CB00
+6537790084059201A326FD1E3D9B4205D86727EF1779206F26A55A006C1A7234
+780C309400A53801863400AD1A6C3F06EF421363B10CDE033FE6054A772646B9
+4902940C5F3E00C8127727476227BD44752F5A3E18B666043F5A2A93123CC700
+AC38CD22FE1234C427054982127700950B36BC27F11F753B098E4501F904AE00
+7106D325AF1FCE3D0F65C91F95036D005036D100A60479274ABB41266C297910
+3900EA269928861CDD24AE1FD22E790D6F0461B3002691360085258E01AA08FB
+01359E24EF04B0006ABE1F7B2250B40D497A27E101C5601F6FC73E1E6A278522
+5C30D2099B006A21792750C0138F254EF1069F00860926F90D9E0587462179AA
+00E30547811C720A6C0484004F9B0C4179B801F238501FEC5601790840A41AE3
+4B1095267927DB34A6116A0477076CE829007B30E027AB1F79266623ED12D11B
+5D019E12E71FB55092197E01F00D5A01940C3F5A134AC321D638156CEA0C49B9
+12500DC43A5D1A49CA077B0E8527E13C125608D3026828FD189E125A3B0E8600
+5004FC00A80AC3009E1F7C27FA14C507DF003B6C04B10D7A402BD1154D920050
+1FDF3100FC092F6D2660CF0DB326F515B5412FD41F60F2093D255A04B16C0430
+9F265FBC0483002AB21A5E0D9E176120862BF027B3340456A5126B1A600EC601
+A109883861039E0DF536510090053A02BD34531F47B64A2769BE04E700418512
+5ABD0453337C0466DB35571486339612502FBA2646500478F73748971290045D
+00438504A72DDA27792F81154F396C125001AB0B53347E23921FF5432F6101C2
+0F5E34DC1A3CBC6C1054A51349CA0CAF013F59008747335A01950A8601532976
+A60F86163EC4610CDC003D5022C265053ACD50017E05E6005A0C80005B9B1741
+F900A00889325412DA4100B05022834908C068235EFE71470BA577006C08F700
+346E26843105A4002F8622A61DF72E009E09EA00C20563E5005A05991DB52C00
+7E0C27E24A39BA31CF22F4266C07960FB9245AEF01AF35F261226CA20041B704
+500F9D1ADC3A1B78009802A57804298E016034941F7A228514E1365512A321DA
+1A6A26B313C90045E527D400501A7827A31BF96B0D3FEC6E0240F634A32742C3
+3D13DF1B47C005268337E54604F2395A207E1733C8002B961434D20C4B1227E3
+0430DF22921456A11A9B0EEE6427F2450ACC005012AB46216E277826881F3D78
+19D43E810A48A825C45A0024810F6D0864018C14C22150019D05317F0E79052E
+D1043DE6125A2FD16A008205A749E7266B30551241E826C220E0005A04F72C99
+02A008D70079063DE540046C20983401700D7A24FD04920A7B0130A5005219B5
+22781254088704AA502785003278D140046023791E9301C107FD69126CD90440
+7A1A8301A4791B41860F5D2BB93F08DA015F3E1A7A11955B1F6B973E0560D604
+B60D5001D00FA133600022EB601187043578AF05E827AA1EB6334C0064E94119
+CB6826DA1F438A12941A4A870983013CBD46296C123EAE09F705CC62007F076C
+0E41B93C1278266C1F73266727A65B009237F7490568B91F9E2F8E125A34D122
+5AD91E7A27910E6700BD1BD6472F6C019E0DF369135321B312CA00B2106B2C58
+3F00B4441F62F100B130C63F0064AE0449C60173207D274ECE07B400C53D01F9
+2C08CF771930821F5BF6412A6C01FC13BC913F01D71C59F20B2D661F83003F77
+0DE078290D9337510C96014EBF005226C40032F71FA4125E0AFE0094045B1F4B
+85223B9D1450A133850567AD00C50DEB2DAF12EF250FC54D1A6012D018503F08
+C70140AE0049B30D389C12CB043DDD2F5A386900FE1FCE22513E02A50A750181
+2F6C2750D60DA424852F048B0E50276C125526DD1731FA2179410DEC00AE1B78
+2A56346A25860DAE5A2700F15300A73A049E09C146276B06571F772F84003E6E
+D401BE1150F8055D4002BC5A04E200B21B3E86163BF0660CA562047927E1269B
+1F5022CE279F3601C11A49F42700EB12D2451A51345E017A05810047873B0CAD
+008628A300F95D266ADF1A8528058648046B334A9701850D9A138D0F440964B4
+20D7274BF74826E0069C00428C01EB125FE126AA019D09EA038E055A98005112
+D4335094124600AF04E60CA01C793B019C6C0F38C61A7A276C49227904A63400
+DE08AE26C90E4726903146971A39AC228715357927722667FD06489D04307920
+3FC90E5A0081053EB36F0C8200E1660D79013EAB512379280476F31CB45019C7
+5031CE52017B2FDA227810803304890D533A0EF55F15E927AF00F426601AF001
+C52457BA78330086089400601A8F125321F81934791F9B063A781AD8355A396C
+1FAB370E6CB23B01A305275FFB841F6C165103D24715DE4023A3620A8A01E20D
+B100ED5311D06A279412501A79A104690ADA01508600D40949F61AAE12CD0056
+2DD7125AB401DF125534AF4119C76A012FEB1B48102EB127D6125E0892015AA5
+2F008B062897340C950427FC239D085001E72650D31AAD00A06C012F9E005010
+6E4106B94F276C2C7D054901E048165E30B70EC5003EBC6E0863B9045031BE4E
+00934810B200CB500C72CF260687621F6BC4024B093FD72EB3366000945008C7
+0132E7223E682741653A23861BA4510140F960003CEB15A64127CA123B652FA5
+00850350339B1A830195370D842C78019206EE533513DB580469AD794F048A09
+9E1FC826DC370BC441126AE30144F71F408413751A64C1401CAB12663542ED1F
+3EBC6E1B66C031D31D873703A1089816E8279E1EA339EF1249792799670427A2
+380C5CD300680EF633048422791331F2002B5BE51343F30A3F7927B65A00740E
+8926F3122F841A479D125AB500C90C9502B307430425C46C052ABC1F54355C00
+7A0554E9048C116C2461DD0647BD0D6B26C860249F1FE8276C2C00AC770840B6
+263A00FD3F1B6C327D00660D4B7F1F60D63D1F9061006CBD06AE00DE3D049F5C
+007E0994024B88075204DE41089500540BE26A1FD93A6000790D690676018535
+03E20C3BEA4400CA772911961F822252BB28F90649861A45B5013DA6002F8722
+D8013A13A822EA01780659B100FE5F047F0747851D771FDA5030F45A862D15A8
+6E098C01B50FFE2A921F6C3E1FF029C60A3986142752E4004F08F900500E851A
+A1600D31C31F6101CB6C1F60BD00F91250B62EEF00AF084903BA0A3AD112512E
+61365812820D31C627F026C02F12CF25863413792063B32F5000AE2704C75026
+FA2FC726A91FCE5020871A4E86245019EF4737DC02AC0878005E36B001C76212
+821E4C71C0046C0F60EE7B0450329E1AC240266D1F3EB927D9193CF905A03F00
+7F113701E3590040E4226C277322A512C600B44A01941D50AD00EA7704388827
+7C1F3BBC6000D9043EFB50018411903E12A2063485229628046C1686243B9E6C
+2781164B9D02F2099701A525F746057901620B7750009D115AB001F53E127E26
+92124C86410B950481005A0A6C007F3F05B90032D90189077B015A2F6C4112D0
+1D9212792F0A9F27D7043912961AA5430C2666BD0B55386C04D508AD0C770050
+93045A3060129D27C962930D34D01F4AA40CD7008708792F510EA13C0D79016A
+2F4E10B65A19D204AE6C143F97227826631BB327F2480AD32A4CDB025A08E143
+AF3D0569FD011EEA00A4243F72276B1FE5297516865034A71C9D21E43749FA00
+26874A09CA01FD0540EC002DAD205B12B534E627AE10FB5A26925A0F7528A126
+C71FAE16E92D643F00E02650E900691579FE5827E3310077CC3D1A7F00E21290
+1F7D346720F42F12CB22AD01EE1F790A1B3DB468079D04387E1A4F32DE4101E5
+6C1B61D526FC21C01F933301A20D504001DF0749C50AA80086087900279C5000
+7B1249B43D78002260D00F39874629650FE000CA0BB24E115300AF07D40F40D9
+017D05850A3075C53C1B842770225A9F1A64D4144EE3472577126322722F02CD
+0837A921F904540B710058059F0DC1774803994234BB500149097E015FBA1B52
+00F725A5295E00E94601D35205844900740E6C394C00ABFC015012812663F600
+5ABA046421994707C000349705590B6F00F46C2163F023A5278633128B29E422
+5A37D86C0535ED269E20700E27C17F0447971A53D605AA50215A1B8B41007BC8
+3D20792792006A472DC61FB46C0D5504E500A50FBC300D7D350185096C008704
+9E0BD801A76C1260E3006B1348B539F13BBC492681043818BC2705860D2BA426
+C6229F3710962788126A470CB8365A22981233BE1FB037E728B514D65A260C78
+2DED00C30B3286233E7814B0122D8C22417E1F4DAB38D349270AC93E007B0C53
+00F95A02750D4DC7125318C1620E8505C600E9501234F52700BC0C3A6D3E0179
+B73B042FD8270D69E8015D18FE22B212603E0328DA279E205C36500077D905AE
+4922BB27CC1FF531543985173CB6401E7C2F94006C0D5E097901D81A5AF06C0C
+5BFB1F5ADF078E005A0CF84D01DA0640D103821C790DC2024186006006690B50
+008406339640BA1A476C27499C06CE01EF3A0060F5015AE20DCD0079035B0779
+9E4A11901A3CBD6B183CD21F9D3000A0047E2700B21A5D412F6C06965A0D7B50
+2F7900B618FA2C0E66EE6C055AB5005034B945045A0C7800F479500082093FBE
+16E0681B3B5212F23E0392065D4300C00449F30057069C0EC127DE239827A51F
+6A309B00492593003A880138791E40D12E6C2685204FAD179B2FFA04A02B50EE
+1750DE26A524C85D1FA36A1657008D04B311DE1A6212821D50C43F0C7C320492
+264412ED1AB841002AAC26D66D0443B401674404F46C1E3DE740744732F401AC
+1FC83901A51ACE10EC4B2694064486004A1291361A982285087532A238DB5524
+11A54612F16501960633A901986000A45A1F3CB2158C227B351A9E27ED255001
+850C5001CB0450F71240C412AD1AD56616CD610EEE67058701C0083E9D003B5A
+01416A48138723A40D317001833C04F23F01E02FCE223A5A3E004EB546279F05
+771A9D26BA60176CB25F2784311271E60964012FEB0F2C921BAF345007BD5A25
+04CF0D92177F12660449DC2787013F621B82125BBF1FD627AE1FFB4804C713EF
+26CE0087062C944004C430522273277B480DF73F1F7F2F0FEF6E0D692AEA12B5
+640B770464CE3D1D60AD3F1F8C330094054F7901843404A62E00AD3212B22050
+1461F2126ADE1EB310C700E108610177BA1BFD4911924F257B126C0667E80DA9
+77268401E30E582EDC006C0F3EF809481CC40050D80436801F9D571F845009E4
+007712952F0079A31F5001BC3845F8329E146B2250AF05C400DE3D01960A5201
+79008430633F017B116A1F4FB501D258269200AC0CEC00B9276C04D108C36A00
+44D3019F074C002DDA1FB241136CFE0039E55115D35A25DD1F3EE92749801151
+931F5693003CE57930048534057F27791F3A733EC4394B04860A28C1340CD200
+B11F923300812F04FA0A542069CA0349A622D6004C9A018E0D3B861F5FB000FD
+4005A500C737499F23D91F60FB3E0869E22E5A088500600B7900EF096D275735
+691F7F2560C43B25A016DD0DAC591CBC27F30D673F12860641D81D792F85124D
+14A525593D26931A347F265AC4784001863300A4092F93126A03840838860E9D
+04630BC721F53A04E00840CC732600BA5A1FC65E12E80B4EA526007D1ADB2740
+AF6C0064A51F5A40FB09BD5422C75F123BB77900279536078127921A34DF2568
+F6059F1250276B0DCF3065218103327A0C83015012B63500791FD726AE23D128
+A7339B17E60CA404B408F140126CE60859286D0027980583007722E42750FD15
+673A01C2085AE27900409E01DE0BB45712DF1C480DA96A125AEC22864A04BB27
+A62668C1006136BD2C78006D0CB05A26861E5005429F2809960126890041D404
+62F61067059900541FE327053F9E04265D411886013FD66C1739F350126CFD15
+5204B95A117E013F582CE007BF1886247705F111BF5A00A92BCA278E205AA510
+96016D0E8704810E640150307727476C315500B2044F369B04B647EA335439A8
+1A8A0497003C7904A2501F9326471F63FE11821F79380086047701FB183BCB05
+457800D13E1A7D00EA12502FFD13531BA840239800317601FB12B46C0E51DA36
+46FD5033981B8613502CB74432F31278084979EA15863CA901DC0D9A1B500C9F
+046208C026003DCC682600AC2ECE12B7006C35425B01AE138D27713916E82677
+096B00D60640F02A533AEB344C1BFB27CD8504BF00F612CC1F83297920CC136B
+3C106001D50849C70B5035B50DC94921F53D03CF00B40D3C6934BE0549F627BC
+32A327790050970D30AD2063F40E5A349901790A8F01EC0E5ADA1A5DCB12A427
+793803EB226C0D940227C305562FAD017707850E5E39B231CC002B7600670E79
+276B30AE007926C51FA52F489E6E0D3AF07948046C45277912A803F42F48D900
+600BAD4B0D901C47EE4A2783165F04BB0C8000B35A0078083E6015446F3A019E
+0DDA0A8A003FF801C21F78268015315EDC126A285A018509AE6012772C8D04CF
+005B298C146C1F62129321E2263FC352067A0C5038B70644CF1FB2266C3A8601
+339405397E226500D1581AA500BC14497E0D68EC0048CD21E427C9047E016D12
+50AC0DC820F01AB500F32148E74C003D7A01E80541B501540933E40DAF05EB52
+20821A930D37A128DC01793C04B901610D9C04CC30921B76266C203DBD22AD1F
+E42D970EA75A2771306522A55A1F84279012A400FA7001269F00E919A927771A
+349B22EB1A50279D12E401AD098200D605550A8B015F1FDF27A301761B84225B
+3E0056D50527C4480DF04D00DA0F9B2F0886492D6039DA22AE1A347A0C379000
+491A9F23DB1B9B225B354B9A0150397C1284045F1276D51250228619308614A4
+671C8428633C00C8326300BB5C1B7C199B26F750307B1FBB253E6F0048E201C6
+06DC0D5F400B90006905D94006FC04B001E94205B30C5000E22F5A3E0EBB7949
+2F6C420BD5005ADF055D0171A70C446C30512241E948266CAD3E1AF210740284
+18C827E400AD04F574123FA4641582276120AB347A1F5FC13E01F51C85006D04
+54B317A15E1F6CB55A1186365104F801D8072760A5062FC0269D27A2310661B9
+6B0CDD6020D52B00BE4D019A11894713E0394F01FB0640690444A412DE3F0052
+FE12B42161344286199F03EA6B2750B9265B1A9213581F9234127E265BCF3866
+09C3239D402003CE059B374A9230124CB7460E32F000B104C67A01600C872E00
+C95027A72EBD3A5F058E0F502D7D0D319F014E08F800B9048D0B5A06F3015012
+7C0C6E109F27F03A00DD2701FB084001EF4500B76227792575D01040E3520046
+0DCD0240F81B4900974601A7084F941235FA26C3500480087712852757C210D4
+2D0077055AA31A6C3A088600981156386C314F01D411397E00C6274BC1480660
+BE00EF3204971E8549026907F16227801FEE0426C678007F26D7581A8427570D
+3BD21AB31FF739630482007A2600F9522469D81241BC5025E11F772F54386C1C
+E6279D31A226D327B130CE217E13629B0E47864E3395276B0D792F09C30DB000
+198803641475F768265AAD009627CE34137E243BF30442831A77012FF226B227
+D822A10034822166C71F96330CC5019E5026F01FB605F400C4139D217904F23E
+0D7B017726DB1A46751C83410EF50034D627A6360CB200500DA266163CFC4008
+7902C24112FA74214A97034E06800EA322E413519A410BC0013D9501650A8504
+57BF19AC0ED23F0077046A0D8300500892005906AC035034BF0426D612C217AF
+21E149398F345A3F26C41FB1084901870A347C0F710458F906BC6C1E60CF00AE
+0D41950B46009104500EE461029207514009F362224813D13F0A78286F266227
+780556B4501F62B222EC126900AA2B0A9E00C65124AE5C1276005787125FC134
+5100AD046113BD49276600943405B800336BC75E1DDC3169073ECE1132792785
+164BF027C91DAB3C008305672679AE1AC422E01F40FA6A1B47E44927CF227C1C
+69A70041653B02940685005504FE954D007A2A9021B81CDF451AE927B01F3E5D
+40008A0B3279225AD41F69C95A176CB238491EB827EE12B37927007BE25A026B
+AE12D101930EA21BFE273B0C9C00428605509E391279E2402E6B159239058621
+DA1D3CFA4017791FE62E8627900035A21BDB22507C1F73ED0C4601924A00B947
+720349B400E905AF35087E00406A0DE44A34EF0142085A2F850161A50432BB04
+630D8101920BED06552F860CF459266C12EC1DA51205DD3B0DED016A30790092
+56016B0882009C12E626B75414E93300A804491FED2F097D00970C50006D3C02
+50B63C042C9227005A397D1ADA00407901CA6C27DE1832CC1F3EF954055001B4
+07DC0150EC2FA10694016C08D6019609750DD12150F404850BAB01E149102A8C
+23AE2D12963B19EF27901A6B2F731F5AB9175FFB209E2B11941F52BB39FE0042
+B53C125787237A27A71FF9365B2C7812E601A53E00CD30A72976276B8625619F
+1551D40541C03B0DA72FC526D8276C05813E017706866025790F970158C126F8
+225ACF33A81DD62384146CBA08F7459F0625AD2F4DBD155F40028707A0520084
+036C24C91E7F2263277A0D6C00544026BB23902B6826BE1F5B019A126C2D5538
+672F5A04C05C00DA0840FC530A8600640DDB23AA09D600419727077B015BC600
+7F126C1A4B92126C07CE3700EB0CC600694308B100C6491F7950227F1F5E0489
+01CF1A00B904348222479710611FE2237912500DA21AC44A1FDC27A43912FE30
+CE277734046B12862F018D0B5C056C01EC1F503665193DE376480A8E043AA412
+F84A346712A926D60C9600A337FD10AB1BCA23B112E3780B5102AA0E82003CEE
+4632CA07B400EB0E9F26951A367A27619C0127CB2050BC3E0183146A26823404
+CB4937D8143EA529DE01A40B2CDD25921C6F9E1F3D5E2F9E187727406C04B842
+0FDD05B30EDA153A6C405A1F47E70DC1002FFB149B0489003EFD5A0179360092
+095D00C74E057F00A50CD9489F3F04DF682049FD37AE48107F00A20CBF005404
+34F0225AE0006D2F0ABA04E92A77135A4632600B49790386355A046A3E1A61E8
+4427F7334F991286005A3E1D92207000D80744F512A41A503978059E2F05984A
+33FE00A50DE7611291005087046109487926C860045000F22E0550AE06E00154
+CA04E21092340094276235732653B708F50F9E7901541F864F02722B5A36BD6B
+0330D22166F6174499276A1CB422501D86143900BE581838B9007A0E59269E2F
+D8247927851FCE6A017C0D31851FA7611D832395003CB31AE614BD003ED24300
+F531C400A4053986006C04D9076822B115E06A043AB03F166B86017605C600E8
+258413F45D10D40477395B2D501F7826B31B45F526BC360596003479BD40165C
+D0127927498612408C1A5226FD671AA400F80A9C00416539CC45136CA83E0BC7
+3DAD00ED0A501A884507930D552EBE11F10789013EE662036CF560270C7BA312
+6B29BC04DC018A0B5104E90F9E2712B138C45008E6013DD900460DF368047901
+6C27971F5B19970A7C226D27D31F4EC317A0492AC64004772640D0501262BB3B
+22AD265A318811B0006C3D218B1E5812CD01C008B101EF099831017B1A68EA13
+49F7270F6CB3013B6B00B60A32F7002968BC015009C62D79258327E51BAC032F
+00E03204F26927075E401F9E27E110B16127AD01760553385B2FD96C0A2DC823
+4A0778E82A0153EF1A416515791B5EC546306100498850006217A52A79124E76
+B55D2041CD25A230860FE504B9265113AB0E810195093F613C0D7C005AF90DAA
+017809FD01500BEE0040D90C663F1F55D004BE0040A32779234984276C2F6912
+C85A0DA80055347E0C5A9D04289F0DEE522196601D6DA906389A2786124705BB
+0159117C2771A2601B539924007BD912B367006E05783500EA1D3FD8338501AC
+104F1FB34200A11FBB340466CA31089C00C95026F63400A61ABB39FB052DD921
+79009222C82F0949019006378708EF01502E6C0C47DB6200F9365324F112B304
+E8269E1A338423621F862779278D1F538518B304E3770D337D2666EE02690FF6
+3700DB0DA4007F421FDB278622AE01C51B3FE3501E7F4105D83C01C14712D95A
+0DD1015AEB691F3DCA4000DB0A1237B30D2B5ABB3B26770433D427AE22C8490C
+9F5000A41AEC2295007D058F5C0F820044922612864F1F713C01AB0785400E84
+0176113F9D12AD27F40D5D0180F727C117E0501277225AC2009E368504278F4A
+1ABD68017827851A6301C34E00E32CCB0FB306D5003FA70D3B6B2F5001AA4808
+A3125029BB3F046CAE1A6027D1330695015010E51650258C00640DCA3519904B
+15802E019B34007927AD22490C9E6C0465A92283FA6B0077E904501A9213F759
+1A7F015312853169127A266C047935CB26F81932EE2753D50DA84A00B734E617
+8E286B13E05A26D127B462077D044C1A41B74A0E55046B355D00C827AE143D67
+12F41B40B82F0786042F9D1DCB0046D73B12A23E117F00563865144FCC044AF9
+019E1A8522FB2B4AD30B7E005A9B204686058A0B50FC2263BF3E046CA23B09D2
+2786015FFC002EBB07EB6C235EF01A89117A00D5310DF7193B5A055025C31F3D
+7F0EDF00A34101B70D3DF26500D004FB28C512B5470C60400D50AA018B12653F
+01FA3A790440640AD300A42F037A0B6C0044EA225ADD6E017A25D51FB3129A26
+83196C008F06DA4A01A46C0060D21243E10D405A327706935D086CB41D409404
+E92E9D1A3A91127927DD1253048600359C26E5300ADF0134EB213D9C00853908
+789E2701FA5A137224A4300C6C9D1056401ACA043E5003E534A319854D289600
+C131018A086201B2406E315A1F86255096052C9222501A8A093D5717DE01AF79
+046C3B1BE1059D276C0E49CE12B45023782050B835F11F86123393004727C114
+6600436F3E00FC05B134F744276E227E3112E5203BA56C0061B105FE18B9281F
+F02F055AF522A512780160E3265506AD003EB86014AF5A057211854B13A55200
+66BE184712CD264500CC680E40AF00E81A51C53E1F61A700860CA11FC0704906
+614001AF07426F0F9CCE163EDA27790A26BB04D10840E51448BF0F3DA86C0060
+E3007C2D681F3CE812BF502F7918D11FA102279200309E04EA0C6500419F06C5
+5019CF0C87053EEE32AA0DE0571E40600C5701C70AB304CD490B970251248633
+137A27840047810165C8270A77008635C80D4300C4631F6C92063AE83F24DA1F
+A900C93C761E922E0D77E45D046CED32511FB622793D1189067800E10431D526
+6B2B82013916B520F52650C51BEC52212C4C97126800FE50128427629B003886
+015CE2133ABA401F92269F10C4005E4206970041AD006136F16C1B5EFC125538
+981D8C265A386701AD306920A6530D7703862A0879D022A41F8516602C511A90
+334FFC12C51AE95401CF0E50DD12AE3F00954933BF45196C2AB26E0E26F40A2C
+C9206B008C0265412E602604F412D342014D1AB22C06830B99005B05C04F27AB
+2068278E4605780EF91341DD7F006C0E8632029127008504F40145B6391A8640
+00ED113CC5691FA244067F01590D7908F9048126771D942C4CF5125B3089074E
+01C437056CBF0048D705C601F51F82267801FE36009C27CC215ABE3D016C04E5
+4839A100ED6605C3013F94007A09369F223E9204395A1A790EDB045A08F60087
+0531984934A34F01780CA51A50B408FD01B97B315A067EB626920058A81FD748
+37F72B6903F3014ECE0A50F51FB25100AD73092850C83D00E162126CD640AD54
+277F0D5FC003AE5A2279095302FA0B299726F027CD31A3205A34E10BB201D509
+3B8104E00DB3157D2646A41A2C8617348122490FA004E60E9E135AD31A6C1183
+00500F93267B2F00D40D8737147E2778215F2F41B96B0059AC1D69B50DE826A1
+1F82279A234C1FEC4104D6007A1761D74727F2341382236C114100B12740046C
+0EF236127C2F04850F98188724820E34A026006A3B2394321B61A505265AA815
+41BD0758113A0CA01DEB013E6C3516CA28A51F8B3450D300640A75006C0350BC
+00488527771F6D24B7501E752358EA0E7700DB5006F95C126CB65E2774346029
+7E05409401E931A51BF22BD611AD5F26741F50BB00DF0CB407D404501FEE2F07
+F401406F0054366101D00C63C26E115FAC1A6827EB05501D7D105DCC0048B638
+D96F1B6AEC38C1491F70C70050E21F6200D136601AB05604773EBB07DF045AD0
+013EEE770D2C860434971F841AD7005D2F9E1FD50D78059100E14912851AAB33
+C61FAE23DB143E982204FC0E55C0004327A900CB3E0452BD276112923D01CE09
+4500DD08B300D923AF1F51386606426A047D006C3908B902F911772F468C1369
+279B12790C8661278D1FC930AE04F83E1B863401409E002750C10148A412BF00
+9F043E9418600C50079101500A60009F043E269E0840C5305212DB3F00E72AD2
+154E841A7B124695125300D4671FFD4A00E947935034B3054D810455F33E206C
+3105C2013B6C0D4B8305602C790D52CB4E349B042A7BF2057837641F912F0A85
+04AD50209C28861E98125825880D6900F20AAD26C912B43E239E1BEF4A279534
+5A01A3045A38F80149E027A53800C00B53058315782250B80649DF0D2FD07909
+2F8E0E387F276C2FDF1B4DE901A522F827C61FAB22D2275AFE6C125FA60D8604
+9307A050124801920031B127FE0034BC23793801B00B832761013E04790FE014
+40BD3A0065D810AF6F2260EC049E1941F912A500ED2F01861A40DD62163F5F11
+E407AE00D34932EF3F00E00C4B00F02F4CC2411651A13A5B2776004984005BCE
+065A0B88006506D1401BF024A91D8634007706DB49126DEC2741D609A8006B27
+9218A55A143EFA5622DA6001F705862679083285277B006712842F72107B0A4D
+01C233007927EC223A6C2079C26827E9430A70208450078911A155267118CB0D
+B91FFA26A22890016023861A477E00439C083F5126DC00356D27841F964411B5
+00500BA101C233532A6B3F1297015A1F7E2769B95A2279026B01F83207C804BB
+15E2301AFB1F5035AD2C45C71DAE239C5E088100510BB56022881BA63C230298
+0066472B7912FC01683D0188047500AA073289215A0DB200C5570ECF143FB850
+00E2059422AF1D7F2749F11B6A0158BA00FC053709A50D65CD01AF12E32749F2
+062FE001A445306B980A77006A26F50DB107C80129FD162FD61CB46B0E5AB101
+D70A5A05D166279226C92F791A9500B60DF85B1AB20F9E05C60D47048912D127
+922079481A6C345005A0610986047B00E012723A0D79013CBF4529CC6A123FC6
+03500D79D34A34BA11E204CB521F4FBB23EF28BA1B691346C3113FD13A196B3E
+1F7904975A042D9B1A5331E8003FDD057202AC26CB0D3F64129B764F22861F3F
+5A2F6604A600226398123D5B058800225231D812821B3F6C324B92510AA56201
+8B00309222487B163DC1263A01F00981016A0EFE2679278601388227E334652A
+7B26E632A405460AAE00E22B96019C6C0D38B326D81F9A225104FD5827E11F74
+0F9A0436E9005A2FFB69002793165B3E1F90380E86340095077D2649E3389200
+539D00A047FA0BB226EE3A1ED66C0964AD0248966B123AA2401382317A1DAD50
+2601F03B00C505F20E9D374677BF3F046CB41FE627D168BD0441AE024F9D00E7
+0D26BD3650127B2559F30BCA04329F61006CB07912511FE822A7005A05D72250
+C9066B038600FD0BA5006C1F60E95A2781135012F4223FD24C026C2F640D3FBC
+7F4100930B6600D915497F1F842495133EB45005F801AD6C0060BF05E75D126C
+1AA20C78044DEF1F6C295A022D8800406101850C46FA233ECB123B04BA610CD4
+5A089F00E2042FD14214B05527841A7900C80B27591AD333007E094912013D96
+185E2FDC13521F9F41007F04E427C605387D1E65E90D41F91D4A2261B941056C
+2D479E3B13801134931FA713462177368A14C2014B0DC4043CD26908AA005A24
+EA12A900EE77013414B32240A634552FF501AD09D9057A015A107C26750D30F3
+0C2D722240C62FDD00501FB5270BAD04E210B467176FCA12AF23BD32047F0050
+78F02B50248E002FF9276C225A8B017D4A0B980339B9244B1D7EF7009E0C4CF1
+275AB579ED1D4DF300860A3AB8720468EF1B94227112AC5001A345007D2F0486
+07DA0131783ABD0DDC1960B800F35601DB2C5CC55401D9065A2F8526791F9262
+00318A2777129501792783390F60DB6C0560E90786047C196C264F32A11FC427
+E32FA51AD75A1B449E01A60879035737C86801844934611C81223DDB05395A28
+79015F9E1AA60E35089A01E91A4A7C04910EBD3812A51FD82D40DE50126CDA60
+0350346C2C8712A401380E278406387826A7630127CD223E5A08B9003B5E20DF
+2D12BF24AE5012A9369C13E2004B86019108406C3D0D772681094912AD279922
+F110B200FC4218BE551DE604C1345019C70556B91F4A25C92E12791FD424B20D
+E4780162400A8600610A833500B86C13D5375A169E1E830D30FE12D201984100
+C60450A00DF80049E11439DB276CBE5B1F750D40C415B334500160F5086A0079
+0660008F094726AF15C305DC01421F78CD5AAF12C7580DD30447FB4308A501D4
+334979FA0189075892096D01D72A600047690C961C3A6A26E71FAB23C31AAF00
+F4237C04630D6E0178276E330C9F4701790D86491BF7650D8632009C078D0197
+4800AE3A6000563F11BB26ED501AB624CA0349972704854A00F7274BEC01AE5A
+267720730DF35A27841E406C1F8A340A96540081074800D327AD7A053C5A11E5
+781E4186269F1BF921AE27ED01950D7D22531E78BE600848002C790131932280
+2E12965C1981129E270C406A13C53E1EF4349518A026F71ABB5426FA04C45000
+5A048601793460179F2FE51FCA39A61AD203B0690530ED27B436007B042DB425
+E14812F9375017EF3152129E34D11F9749006C0679346C1440ED0F50E43D2093
+12AF003D6340059600C230A43D129B09E800C25205AE692A0DB41FF5229E1253
+002668DB00872A06CF002FC70D5033840E791B6538D80041A1680D4826FC248F
+DB1A49E8006108AF6C0031E0276C0061CF21A13467008549035B3F0087087039
+02860E993E1677CC2F46ED410CD850056C00854800614309563F23D75B11771A
+60DF219E45007F03792B5F1ABE6801850AFA016E0C770439CB27AE20FD00B25C
+267E00650BBF046A32870BCA10E01A4069075301D62D7722953A12D82600EF76
+2F5C01842762FD3ACA401F6C26A24935A953046ABC0141D10447C2185A32F912
+3BE2009E046C11003C9B1FA534F61A42C54D0BA41FF339048300EB24AB1228B8
+0DE46C1F3EAF12D650326306A341127F0D5E1D950138CD27B3370BF626B536E3
+129D0140BC009807523D0AD55B1FA515CD0086043DA11F6C269220B827F55D0D
+6A02841292390C9F1AC422862C7726E1197B226D2757B712E7279424AC014063
+04913149A0153E04CB5011C4014C097903B30BF301770C6320EE361294246034
+8601780B9301AA054E81173AC450AE70056A0D7600852704873F017A0D53B51C
+500E5A04D9791B6B3B05CA5A01894400BC1DDD2700F627AD00B929488612791B
+50A219840D6C00781A7C0E6A3B26C912B16C2240EB0850396C27E50E45CF04B4
+375905830031AA23D72F630453CF0169385801FB08A4005E32A2008A043B6000
+7F0A6B1058BA14F450017B0859BC7919378826762DA215512F7E189322E0137B
+00487707E600B31FF327BD24742B851B3EBA6104291245E221C1279F1361ED0E
+64CC25AD2D076CC92F9A3950004ECD12A14822ED2F1479278301518D4D056F38
+6910F9006608EA015F3F04DA1FAC2DF327AE1EFB4F01842F009E0530679A10AE
+094F901B5A2F7800E13D12C354087C00A126E01F4B32F205A53E127E1F55D405
+46F612CD1D9E4334C41FFC30086F3D1DB726E31F4A0168F100AF0DDF2364E900
+44C43185043EB529CC1BA6395A1174078000520FCC25E801530EF26BBF003E86
+015A09D04022991935770066E33E017406F616A72E017E3204791A61B508F110
+3CD10931C019D7049E4B26C04F279D11C6552780074A0190084904873E17F54A
+12BF772600F420853305B200EC10491669A4401DE6345A0F6E097A0086117919
+CB4D2FBA0E40AE144F78266C0DF1044C7900A245C800780D6000A710D4260B79
+1A82008F0438A5125F0049AE5A096C01824A16952F45BA2740E0620079139827
+891F3F50961B5A33DE385303B80055E812BD1F5026A6247A27720B62FC1F5FDC
+0FA900376E2355A512489E016B275A3F159234018421753300A4235AC26C2658
+CD6C21D85C047D355301D348376200DC412379265ABC7F01500B86019D17F837
+AD27C726B5215F00960450860129960141B0008227A912388627045A27D93598
+412A8533984329CF384F1FBC56088326F912391AEA269B3405FE01D30C630493
+3515B430500ACC0179092706F40DA1009211772E7B0C405D049200850AD600B3
+21C43808B00040862650E2049800612D7C2053E70CB200DF0555D20EB805FE67
+0EEA003A0DE100380B9D002EA21FE6129B1AA704C4551E6CD4089A01371ACC27
+F02F612277045F01820D5A0344EF2740DE133AF15223E51A36D91671015CD218
+67E4129F026B0CFA05630150BA04650AF95C0F30DC1B95056AC679005D11D767
+2279278B1FEA4D059C4204F76726A431E5>
>>
/Magenta <<
@@ -1604,782 +1794,878 @@ addc1ae5c926e98efea32de7981bed60fd94f305fa9cfeaf45fb9af506a3f0cf23e46afa
/Width 167
/Height 167
/Thresholds <
-d8af40ed51ff24d350d812fe97dd67e0c16ce5c552fbd331feaf05ed5dd033f0a5ff79fa
-6ac0e62fd865df98c3d904e093d0a8bff303e49dc8a5fb5b95ffa86edd7ee2af1eff87e8
-b666df86d934cbfe7ffba126e8c19fff4ee53add9e1eed52afdd6ad879dfaf71fd99bafe
-9fdd7dd891d82fee9dfd1f96f012a2e028ed4393ebb6da4ae099ec6edd7ae65cfd19cbf2
-935ac3fe86fbcf27ddabfb70baff3bf81ccf63fb88dd7bf969ffba8fc3e586ed7be2c242
-adf505fbaf28f3ab0bb3e975da94c89fffba61e046da22b2d977ef9ffe0ff156a2f66df9
-31ff4587fec26cfe79daaed821e0c014f54afbc395f30dfec421f577fcaa4ad603edbb5f
-f819d8b893fe79cff97efeca39fca5f339fab816f247cb12aff337fe74f5af44c9b1ff7d
-d7fb63ce9fc1ff840294f2ab59bcfb41f9abc99eeeb64dd7faa04be11ab3f8875dc5ed14
-ccaac69fffa9bfea38b60be4c11dfa64b6fe38f9b269fbce88d986cbff5fd8fe68c1f73c
-ff4ce41fec86b8fb9ec4ff3bfcbf5aafe586febe42cc98dd72e5d2af4bf21cd23bfe6bf7
-88fe9fb7d387ed41cfaf75e09dbbd00fed8ae5b16bffd081dd70fb07c2ec2aade41696ed
-c40fbed985e5d080e08dfbd45ee0a8de17d0fa79e52eddaf48beff0cd952e3c7fd2acfff
-0cd29fc604ff44d87fff8815e0adc6f462d8bdfe3f9cfb88f35aee47e4289dfec7f2a579
-de95e017cea7c70ce7be27ff5df04ca2e280baed259de088f2accd93fe18cb60f285e09b
-1cf9c64ad823e7abff17c5fbb812ed97cba6ea93bfed51d028ee57ff08a9e06bd8f83cff
-4cfa95c0ff2ff8c33eacfd59f2a3d9608fffc75bd8f54d8cff9c49fe23a1ff60ef3487ff
-c454bffe9559d986f868fe93db70f47afbaf47aaeb7fbff366fe82da93f5bf27ddc2f666
-ff3391e5950ed9afe060d823dd93d879f4cd4c935eccfe3ef25aff6cf287ffa151ed95d7
-1ffad014f24997d8fec216d466fb57abf27dea12d54eebadd083ff94f279dd7ef2a54c93
-ff7ef82fff57fa06afd97be378da81c8f784ff25b7cd93ed79e457a4d97ade98ec0de5c0
-38febcf04398fb76a5e0c062e9c676c1ec3ccda5bfea9a0bed903cc3ff01edacc917ed39
-e4a5cb29f18dff61dd3eb0e421ed5ae666a4fb9540b5ed9ebff948ffcc85ff2ff784ff70
-fa06feb67cfad8ff21a5d889cb9edd2cd979d0fd7dd96febb261fea0c6ff864d80fba5db
-0dc1e03eddaefe6ff78aff3fed0ccf65fe38d056c1eed83cd962e0bf91d59fe536ffa6fb
-3bf3b72cdd5aed63e509afdb2afecc62f01ffe87d7b27ced951ad6afe004ccff20f9b22b
-f694fb6ab3fe0afa50b8f766fbb6e872d89e40f2b99dfbb821ea99d3bf14e588ed7bcbb8
-87ff2bc4e10ed5fe58cd06d971dfa559eb6ccba4ed45d0b987c23ded13a06dc7f660ff09
-f77ffb58f523b0e40afebf7ee0c13fe501f5bff1af44ff96f479ffb82b95deb608b9d97b
-de51e4c0a0fb88ff21b6f49cfbb51bf643ff86f1c10dcaa5d868fdafc79efba7ffc35bf3
-b511fa93d2b854fb2cff50c3f77aff80f3a860d979edd35ae103c4f286d879e5d07eddc6
-1fa4f35bfecf82ff66cd86f27aff5df886c3fb1aff4dfad96fb2fb51f3b67ce093f37ffe
-15c0fa24b6f30bc6a7e631d9f193d0b0e1eeac2fec7ae550d1b89cc5ec62c0f29f42fb2a
-93fc79afd99120e5c484d838b0d068facf47fe97f262fbb7ffaf29ed05d9b1e563cd09c7
-5bdd73e0c35eb891f487ff1ded974bfe14d44086ed9bd183eabf45ff84f1bf93d0a5e065
-dd2ed247c1ee91fe0ca4ffbe9bdf4ddb2efeaf23ff4193fed333e0be21e04ad906ff54da
-3be0afd836aed98bd89c11c1ed73abcd61ed2dff4de6c495ed79d0fe86db7afc81ffaf52
-fb28ff4d88fcbf9ed8bd93ed04fe47adff934edcc5aaf2ca51bfed44ceff6dd926f8c2fd
-04efbe86e378d932d8a01886f393c4f57b4a9df979ff81f393feab14fbd92bd250dbb56f
-d7f279e28ae9be1bf74cff389fe0ac18d94ae602f23cfebe93f99efe25d055bfdc8631f8
-6eff91edc161f1a2c2e46187ffb079faaeef78e7bfa3c4fb870efe9ff64ff238f5a8fe39
-d8ff20fa86db8bd8a531ff43d9ae38e553ed1ccb5df397c0e081dbd147dd12fb3aff69bc
-d88de018cdf879ff0c87e9a5ff7bfba55cec88eda1528deb9e3fff20f5a5fd5dedb3d960
-e848abfeb9ed31dca5e528d84acaea966ffe99fa7ec6fb02b6cb34fa61feca86df79c2fe
-6ff2c48ff9a5fe81d9a914ed60dd6cb4eb88e542fbc3a5d01ad84796e0b64bfa10f5bbd9
-0eed9531c5fc994cfa1b93edbe75e56bc998e177de64cbb779e0afc90ffb64f2be70b4f7
-6ad89fffbd9be4b611e942a5f70484ff66f178b2cea3f732fb60f2b437e59ac1fa35dd12
-d82ee0be08fb4cbfffd464e0c46dbacb52bfce89ff3afbc686df1cd87dfec145b0ff8cf0
-a359f5ce41e017f045a2e785ff9bb9d843abfb25b5e704d951fe2fc852b6d85df4c1a0ff
-0ac0f73fff96f179e55aee86f9afff14fb86d89fcc4c96fb6bd9fe9312dfc3abf0d944ff
-d023b6fe06afff28affb01f69446fea5c1df1cfbc8e504b8fb1fc94afb63ffd170fecb7a
-d9f3aae69bc0f41fe65add97bed96dfeb827df6ed786ee9df779fea6cc98e012a5fb1df2
-a9e583ff07f92ac2e09d0cff96f160e21087fbcd78dd01ffbe25b9ee7cd892ceff61d852
-f315ef93e070cef97fd38aed9dbee497ef1fff79e74ecbabe280d9ac12ceb624ffb0cb36
-e667caa6ed2dff7be9c13fd0b55abef661ff3784b7cb5d9efad861ecce7bbfef7ad95aed
-d06bf23d93eb994887fec77dea88f293d8379ef0ab21fe51bf17ca33fe5bd87efec110ff
-42aed681ef93ff5af6c364bfda48e52bff61f5c976dc58fe16f069e49eed855af7afd835
-a7faafc5eb9b21f75ad585d8fe68afff55f730bced1ee5aecd66ff06f2af30ed60fbaf40
-ff11fa85e093d030fb73f358fe2bcafb6df7d89406fda3c793ec52cfb95ff104f8a0ff1c
-f4d67fd989d1fe03f9acf15394fd8f4bfbd552e59effb824e481d9bc61ffb6ee9a51f53f
-e009da78f9c247bfdd93e0a2ed88da85e093ed2ba5e480c9f502ff50ce1ee0ac3aff1aaf
-f280d891d8af42ff86d094d88ed8b646affed03fed6afcd1883bff4fdebe86ed6dfa35af
-e507c0e19bdd7aa5fe935dfbbb9cd7bf64ff87d822c9e57ada68cc3bfb6cd987df1ecd99
-ed64bee13987f4d179f25aff08f784fea5c0da5ede86ec9146e526ee57a9db7ee02ac2e6
-10c1f29b1dfeb217c586faaeff0cfcd02dd816e0afd49fc1ff85ec1ade89ff79f92dfb42
-ff52f20cff61ccf76bfbaf5ae9bc90fab674fd96c7eb69c2fe51fa1ee594c1ed3af74ffb
-31ff94dd17b7d993c9b623e5c09fed66fed039e0abed79c6fa8849fe0bfbc43ac0dd29e6
-4ffe3bd9aae054ff88b7f648bafe9ec2f10cffa5b8fa79b7ff47aafec04b9fe025dcafe0
-6ad819e54393fcb33ac6b7faa6ff96c0f331ff61b4ff79b2da3adfba6cf288ed3ad84d9f
-e053a5f28af983ff25fa63b1cc51fe9bf20cd85acd6de099d2acc69ed8b646dd1bed9dd0
-63dd3dedcb05e079b7fa0dacdd87ef77fc02afd97de0a7cb68f379fa61ff02f859ff62f3
-0ad2b81aaeff9316c4ff53a2f2cc73d958f19ff96fff84db7ab6fa0fa0f36dec08cfa4e8
-17ed4fade0c451ed44dd02d298db15edafff66fac23e94fb9df27dffcd21f0a5ff09d052
-ca13e06dd888c8ed4bd0f867ff79f9d746e0a5ff93f4cc7af7c662dc35d05fdd93ed12fb
-a5c761afe686eeb9ffaf1cf84afb30f386ff8ed884fe29f79ffe7aaff45dfe40d39aed37
-ca4ebacfa5f227ffc106ecb922e6be91c2ea7edd93d983fe73f893f14bc1fb9a2bddbf1f
-b3eb93d279e010d0aced09f4ca6aedc635dc80fa8bff68b1d786f73793d880ffa0f86af2
-84fb73de2ed9b37cfecc20d54bddbe6ae079d866e085fe7bf79cfe4cf70793fb9a1eeda5
-cb0a95fec55eca10be2fed9702fbaffe7bf1b64bbbd97ee02effcf36fba8017ad9c193e3
-7cdebf05c4ed39da74e3c013c4e52cd6bba3f06dff7ab6ff9ef82dfe5dd863a2f981fe9f
-cf4af233add829f045cda5dd3fe45eb5e073d0f678fd87ff3df825ff90bdf64593d8af40
-ffb785fea5d85add32bef329ff98bffe1ce4c127c5e031d85ed088f2c017e45abcf479fe
-af30f795fe49f59fed2fe9b83db5d994cde53eddafc633e4aeec8620b6f78dfed972ffad
-d844a4e606fba5ff3cf75df1be7add6ac9ecf559fe36afff5e95fea153faa6ff4baefb93
-54ff68f91dc2dd2fcef315d86cde86e593edbf43db58df79fec597fb6dffc19ffb1dbeff
-9ec3fe0fee5ab6ea43d69bde69d8af38ec6bc9fe60f88ad422e54df019fe75c8fb7cdcaf
-5be578f5af7afc86b5fe9ef40dfe519eff8bf1a53ce1c483e5b60fc7afc51cb2d774dda5
-f01fff63bcf56bff83fa87ff42bff2d833de60afd03ae583f0c86ed886df70ca97d4b01e
-f796fe4da329db8bd0f114cbec76dfafc70ccf94d961f2cc9bd980ec57affb9660e252f2
-99c93bfa19ff93c4f72aebab0fd946e5b307e86df281cb2af26bd693ff09caa5f216aff0
-86fbc19cff29a4d91de59dfb7ad895cc92e0a603e847cdf209d9c53ae653ed12ca4eaeea
-92c9e945d80ed8ff9102fb5bffa3f337fb8eff4df90bfc79d884ed2aa6d908e055d86acb
-fd9262ff9ff321fbbf5aff1d94ff5bf629b9ee07fe87e95bd810e5c5ff85f965a5db983a
-f820fe82f46df123e6b439f50ffec593e504edafc0feaa09ffb57ed975e10cb0d45bf686
-ffa5cb65f693d932e068d986e239db7ae586fb6cbefe46d003e14eceaeed7bffc35dbff2
-31ff5bf73ff1c087fe6ba3ff6699ff86d9bbfa79ffd262dd33b9fb87f6b74ebfef93d726
-dc79d858e2bedc83cf8fe551fb9ec3fe7fce9cf125f6a313e8afc74fd6b56dec95cdabe1
-35edc39bfe54e0b445b9ff92f4ac724cd809c6fb54ffc1a7d25ce135dda5ffbe7ce08ad8
-a645ff75d785ff2789d1e86de0c148f49ffb6bff98ccb753ee20feb74dbbffb2fa03feaf
-f59efc51d81dc8e662db7eff95f36dfa11cc49a5ea01b3df83d696d879ffb523e0c13fed
-bf0eeea53d93dbaf38f97effa566e05c94fbd060df7aed61feafee8627a5f160ff2cccba
-18e045ed5ffe7ad374ddba5afb03f186ffc20ef745fb65cfb113e589d779faa4dd27d968
-cbefde8de9af26ed7ae16dedba9afbb74eca06fa51ff32f2bf9ff63ad95bccfa41bbf623
-feabcd30bded41e31bfbd181da71e3a0ed8654a6de9552c622afed8dffae34faa5ea57d8
-21e0bf93fdb0f686ff75c2f513fc2de54bd0f480faaf79fbd170feb6f51bed97c1e505f2
-ce1effc3299ff932ffc09cce0696fab6ff10e4c393f15aff86fab6da38e6afff50f9cc7a
-d967d838e0a2bde58cbafe7bf9ac2fffbf16f260fa81fd1ca53bf458ff86d7b60bf640ff
-16cd84fe92ed9fdc93ce86e01cc2ed93e57aacee66a2d888eb86ff7ccab27bf29331fe97
-f23bd812fcc7f43fd0ff79f9cc32d94df397ce10b0f57afcb538ec5bde2bd852e33ca5ed
-adc986fa9f52d915e3b92c9ed922e15ccb66fe26acd97bbeed79dcaded86d8a517f851ff
-d955e07dd89f47faaede71d8a51095f2c20598ec2da5ff90f59bfa85fe60d209ed2bdd51
-d0f269e59fcf93b8eb51c0fec79dd1b1e447fccb92db82f260e928d85ad324fc5cf76dff
-a84afb13fec70ed8ff5bf916dd51e505fed750baedc009c4ff7be5a42c90e0b115ebb864
-ff98e469d980fec63cddc086ff98d287f099f97dfed88b50ffb609edc394ff60f6c6ff62
-f894beffa3d586f34dfe32aff848fe10e04ff2c593ec75b1cb3bf762febe8503c1f327ed
-b8ff4c88fbd97cc0ed19e441cb1cd84af293fea1c886ff82b6ca4afe40ed09d099e578f7
-03fe3294f2a46afe51d0be9ec2f57bff86ebafdf06d983e8b886dd53a4f89538c679cca5
-f288d9659cfad848a7fa79afce47f8b6ff6cef88d842e5a902c1fe25f15093ffa319ed51
-d909ff4bc818cfb627bfe07aead162fe34a7dd934c8aecae4add01ea4bfbc693b8e66cd1
-93cbb67ffe6de539bfd91df38dc1e52eedc9fe53a2fe6ad580e1acc83caffc67d09ffe79
-ed7dddaf35d862ebb53ced04fb88d8a5c2fb62ff27b54fe081edc41bc0e728affb06ff3e
-a5e012f2c143a5fb60d221f3ca6aefd076e3b1ed9fff2bbefe3ceec31486ffd360e027ed
-be86d80bcc49fbadf27cd2f979b1e086caed61cffa79e37bedc0a5fb94ee5fdafe0ef646
-a8e081beef04d7f2c017c4fd85f791ddaf15ee5ac4ff07f35efbc136d0a8ff60fb86bcff
-15aeda943f89eacb86db33fb21f759ffd31fe07ed95cdfafff13f7c295ff18f8d46bdeaf
-f121ff569de07df2d8ffa0cd5efa93ff5fd5ed79e293d9fa69d0ad67ffcb7eef97fe9f34
-ffb026fe4bfa01da57e06ad0af76ffaded931feda0fb8eff61f593fea5c71b94fe28b7e9
-40bcfa0dafe02db5c736fbb626dd57e086ffaf71b3cb93ff1ef7d86cffb642fe9be53ad8
-53cf31fe9dbffb2887dfaced20e3a4f40ab8d39bed4ace9ffb71ffb6f4aa16e552ed9fd9
-79e0b963f497ff09f8c02fa5da80e357bee14f9afcc13895e484d2f537c5ad6abf23fbb7
-35e078d99f56f8b54fc52ebbfe34ddb71ed93be050bfd982e093c1dd80cf86fb96f40dfb
-b837df57caf8af4fc919d5b536de5de677ffd96aed62c4ff75d19efe83f688fea2ca69f2
-7bfec205ce42f9d828ed5ecbb13aaccc79e062d879eea5ff7df186e56ed5aaf69643d8b2
-69ff86e654fb2cafe47ef236d70bd95cd0f878ffbf6cc4f20d93edb346b6e25489fcca68
-ff27fb79cdaaed2692fec44af818afd8fe10dc79f086dda5c1f708ffc925dd86fe99ee79
-b1fb7af488ffc386f207fa4cf519afff31f0b636b9d97feccd7dfcbd40d8ff7ff653eec1
-9cf22dd8b037c8a5fb0faded2edd54d864d913e54effafd837aaf789f0bd65fbc0a2fe79
-defc21f3a1f90cfeb828afe05fd00aff3fdd5fccff79fac73ada72f18ac8fe01d864e7b6
-f979fd2f9cd8a806fb3ba5febf33ffa3fb79cef39d4cf086d29ff20dff79bad96ee0a8cc
-94ed4b87b5fad956e512fe508fe5b863fe9eed0fd84ae5cb03d84de2a117fbafe670bdd2
-9de25ad868e0a5ff4df71f9ce50ba4e79402e09bd96fff0faffb83f79ff24bcf99d96bfb
-93f405ffb9f17ed89d1afa87e64bdd159eea954ee508f2bf68b6d334c695ce68faca1dfc
-a5da7aea9ffe11bfe51b93ec9ed624e058a5f388ff9c47a5e087c6ff43f4c295c6db4ee5
-ca82dd15eeba24d8e602b6ed53afdd5dcafe59f50dff65fb78bcffcf3eafff9ed076edc6
-4496ecce46aef66dffbf64f188fe6bbded9355cda3ff37fc79f388fe12e86ed888c6ff6c
-d0fe79f2bf62fe29e584dcbf51e006db7bfe86f33be5c25daceb9546a7fe31edc05fd0b1
-ff74c7fe32d0ff84db9d49d9fa7fff6ce345edbf7ae864f542f2b725b1ed6a9fcffe5af7
-83ff94f9c04be023bff5d01ef166b7de70e25dff86fa9326f960d8a951ff6ba5fec733ff
-cb82faaf1ceaa5ca8fde24d7ee0295f51dc84aebbb29fdabf31d87bee07ed9af22fbaae0
-2ad3f940c4fe11f05edc93eb26cba7d093fb27edb044f2b751db30faa8d092c3f35afe93
-c4ff60d320df5affb519ffcb3adeb6e079d388f6a5fb2193f2a95cddaf1bed56cfffaf0e
-e650f0afff9f05ff97d88ccb85ff93fa3dd9f92fbce009cb4fd814ddb37afad85a91ff99
-e50ea5fe24f0b617b0efd07ae986fec596c0f25f93e09e20f13fe397d57aed53bff2ab60
-c1e884fb91f786ffaf79d969ffc5fa17fe36f49dd53f92f6b368afe474d87de0b50ac6b7
-fb3ef64dafdd7afea3c826ec88cf5ae014fb42acd820eb43afe087edc09dcd78edbe81f8
-86fd0cf74ee501dc6dedd739ccfb7de593c1f98630ed89c89fd81e84d0f452d92dfe0ed8
-4be05bcdb679ed65a7fe90f27cfe6befc44394febc3ad861fbca7dd78dd981e05abeff0c
-d83fe01ae43bccf677fabc86d86dff43fa15fea43cff99f955d367dc0ed843cdf105e3b4
-4293dd95d05ee984ffdbc40affd01eedacff44f89fff6094d982c7f15ed804e45eff72fa
-9aff7bf0bc94ff79f8c09ff117feaa36fb08f6a548dc20d86bd697cc80ff52c7b77cff9a
-0af149fb3899e0bfa5fe29f587fbda5ab4e474edafe574f0c1a5f303ff93c5dd61d828e0
-acd01affafeb04cdee84edbe32f750fe37f8a2fc3f9cf2affa72f592feb610d947d0fe03
-e7c5a9bfd977e0c386dd2be5b9ffaaef7ce29c66fbc579f2d258f186fec00dbc487eedbe
-86fa9a2abbcb87d841c0ed07ffb61bffa8f983d79fd80ede38afd34be706ccb668ff7ad8
-6dcbf186e07cd0fb6dffaff356ff28f1bf9ffe14f54ce1b0c6a4d1b1fe16f645cbaddd3e
-a5bff132c1fe9348bffb9517fd7ed8af45fc12f3b8ff993efbbb5bd880f78752ff1c9ee0
-93dd73edbe01d2afe38651c1dda75bd87dffb1ed62a5f3932aed509df761fb0daffe8d38
-9e5ac3fe22f9c13b95fe23b8ff01e53da0fad8affba452e762c0f26dfb17f3a7fb79dd68
-e19ecb3dbfe623f48eee7ec8f66dfec3a5ed3add26e593f950a5d85bfe2eafe0c43fa0e2
-8dd9ab36ed62df9ed86bf427ff60ed77d986eb72fb80c6ff138ffa9b18c5ff9f36dcc460
-e334f19ebfe09a4386edca74e79efa38aae0c1add8fd57f213afc986ff6ef41fceff9405
-ffcf26eca02f8ffcc34bbffb88ffcb30d894eac950d8f3d2ed2eaed85ce9afd96ee661a5
-d96accee8756e11fcfff2ed8fe57d999d584e720d0a5f347fd7def9664fe52c640fcb61b
-e4982dfd74f587fb5ed311beff1eedc395f00a93ecc115fa5dfecd83d887ee2afe93d880
-da04cd96ff63da0ae54dd9b7ec69ddafe06bcff96dffa0bbfe86ea5280fbaff80ca5f52f
-d489c1ff29f24a7fb4d092ffd840e95bdc88fba534d8ed4daffb6ad9b7dd18e29fdb7be0
-07a5ed80ff5b93f1be0883b7f672ffbe88ff18f79fc4fa86ffac1bc8ff8af2769ee09305
-b5ed35fe5cc797fe30afd86dde2bfbd986b4e9a5cd60ff50bbe08ad657d9c19ffface67e
-d9a142ff62bcfb70ffb677e01ea5f80eff51c97ae453f2b9fe5be024d488fe79f8955ec4
-ff3bf752f208baed2be74ed01bc2ffd822dd5fd6e554b5ff0be065d99ffedc05ee44c177
-fb9dd727ec4fc2f282bef879c1f33bfe79f75fff23f659c2fe46dd1bcffb289bffdf61ce
-b209ed33a5e0bf47ec28d849d5f89b34dc4cf8c95ef1c5ff79ceaced46df72ccff11f899
-d2bb08c3f217ff85dc88cbfb62f21bff9c04f253ca38fa64f5b97de5d04eda37cbf085c6
-eb6cddc096fbb717ffa33289f3aefb56f1a0d024c0fe02a5d886d793e05aafd479f593fb
-a53bb7f292ffb76cfec87aed94fbb619c491fabb98e6b51cf37bffbf93e460fe27b2e10a
-ace552cbbd93d3b76cb0e479d687f2af64c2e045acfe3ffad880d0fb5493ff7fdd79f294
-51e0c1a7eab10efdb68648b0f71094ffb6f45792edae38ff5baffb6fd956f326edaf0bcf
-b2dd79e4afce88ec95c1e001d6fa239ef2b1ed9926fbaf45ffb460e53bedcb71dcb5ecc7
-3f94dcb03eeda5e07bcef348ff26fd7af686ffb706db58d3f684ca4ac51dee9c35dd50d0
-40ea87f039ce52ff2bf9cc63d9ac44fe11d19ae652c8ff6dd296ea05ef40fec8f232fab6
-fe52e5a2ed6df91894e69052f2b979dcc20ceeaffe07c0ff6efb1582fe93d831fbcbe063
-e5d68502a3e2c34cbfe088edcf46e388d47ce06af893ff38a5f74cfe3cf724fe4cafff93
-58c5fe850e88ffd269dd9ad028faa5d288aff95afd1b84c1f80effc286ff35f563b5eb9e
-c7abdd1bd93ac8fb88e56dc608fe94f7af79cdf988fe7df5a0d662fe7add86d86baff005
-e597cba9ed66c3fb7fb9ee20fa87ffafdf861693d89c0aa7da36ff12b6caf3d828c7ffa1
-12fe3cf2a9cb36c7a4ed2cd0adf1d93be46dedbf198effbe43f1c8fa29fd86f669fa2184
-feb8f635fe9fd042e15fedc886d87be0bfa7d090dd6bedb6e43dbff9d84bbdfe03f789f1
-bf07ff4ef209e59dd8bced61d866e118bfd986e420c973fb4fbefe9aed8551f123ff97e9
-62db2ad8ff02b9e022d8b013fba9c0e80bf2a2fe39c3ff79fa5af638ffa518f2459ce0ae
-38d7559efab6ff4df6b9ed7ad072d6fd7a4da5fb9646e2be86e588fe6cf97de568b6f542
-88b9c8a1ff4b9be8c3369afba65193dcafd80ccca5c0e09e1194d8af04ffa5c2fbac27ff
-0dee9e49fb14f331fbc11887f0d460b8f3935ce0ab55d979ed94de81d8af4aff2ca4fe95
-f391fba955fa96ff5bef0be66dcb5faffeadcba4d837aefbb5ed61bfeda25bf26affca58
-e0299bfbb44cb8e084afd524e08ed880e0bf93c4ff6fcbfe7df4c230ec79e06fdc2bfe97
-f2a73bd9ffc061efd66af3cb50d924e094d84dfecd7ad8ff5bfa03cfaff571feafea23d9
-b7fe7b49ff9df35cff44f2b5ff71edc186da1881e793d8b76ffed996e47dd8a451d9ffa1
-2eff9d12e7cd7cffc239fead38c1ff5ffbc87beaca44d825d077e0c010dd79d894d892f2
-26f9d413de43fe7ff5dd863fa3fb8a49ffcf85e53a96f37bffcc6ad988ed12fb47edbf66
-fe07f354fd64e811dc59b8e50ada93d0af1eff94cb5cdd03c5f78920eab406b7fe279fff
-7ed358fc1cf0a510fb9e24e593ed61dc2cd754d986fe61ef13ebc384dd3ae5adda63d829
-df49f75cfbbfd83efa63f5c134c552b7ff60e0f69467cbea79d8faa63eee1cebb369d8f8
-9f23ed9312f6b67ae485ff5df73afea3c3fc2df841ff7ad8a176ef89ecc250ba15c2ffd8
-10d0e49618f9a5bfe00fd9b948f11fffc595d8b674ff9fb9d29ac82fd8affa7af628a5ff
-6bfc41f8ca62f084f990ff9f59defa6dd9ff79c7afe80bf6a3ec79cb61e0c052edafd340
-aafb87ff94f809e475d080e093fb1db7fe9301c1fb7cf9a5ca96e0308bff9dcaaf2ced93
-ff86ef1ec9b408cffd23b2f64283c7fc87d87bfbc51686e6d075dfabce4eff02efaae898
-d979f15289e0afcaa5e458ffbf4aff0e86f9d99de55093f7a93cfcb3c852ff80faa575fe
-86e5af5bfa2bf4ce0edd42f061f8a8ff4b99d889dfbe47edaae06abbe53bd81ed84dedce
-80aacb3f99ed32fa60dcb63ab9ff9afa81ffaf6df979ffc715df5bec7acba1f427ffaf45
-d3a5ec61c5ed9033e9bf5aff1daff2b84df112ffd55de002b0d199fe7afaaa5ae56dd9bb
-fe28afe04cdc32f2b8ff47b2fe32fa6cf18bdab741c60ab6e530bdf39a4dfe02c1f31ee5
-9ccdafe19431fd71f3cb66edc76de084dc27d75dedc334d8be3cec7dde9460f77efe86e0
-1bd978d0f235ff62fbd08823bfff11affe97f386fbad0fe52dfeb0f786d893d083edabde
-02d539d81fdfc206e8b767f3afd01fbfff3aaedb5dc9f76dfd2eaff74bffcfa00fef86d1
-fe6dcde57ad984b3f99fc0fb4ef23edd33ed87c3ff068ada9bf871ffa8e55f8ecbf36abe
-d698e41fd252fe93f8a6ff5ad0ff14cced78de81b1d062fa34f451ffc0afe027acfe20a0
-f609fe67f5affe06db9ef96cffa1cb51ffc2a6e72dc6abfe93ed01b6c6a2ec1396f4c679
-d99fee59d068e034c3fe93f17bd815e44cff1afb52fe88f484f296f363fea3cb28e29a47
-fca5f159b9fb86f39a08d894c0d979deb76dfbd569e0a543e80ba2fa61ed24cb42e475d8
-86e5c49dbefb43aff2d051eb16b7c90497fbc10c9fe01aff4aadfb93f378e030d882eca5
-6bdd80b7f63cff4beeb993dd7bd66ddd0689ffd85cc5e77bd29dea944ac0e461ed19b2d2
-03fdb123ed48d0a3e55ccd43c0ff86fa50cbafe057feb04ffb85d907ffbf9cf460bf47de
-62feafc87ae09cd826c95ad9b846b4d731ed7efa73ffca85d97be5cf16d840e6baff51f5
-0fff9e1de444acfe28f7c780febe39dfb6fd7aff93f629feb662ff17d693e061a5ff85d8
-f55bfad045edaffe7bed85bbd95cde28caaffe61f41ec5f748fe25d69fbed884fc05c1fe
-23f2a5fbc54a93f2a53aff53d91ccbf183b5fb93c2f47aee59e3be86fb6eff09fa7af6a0
-5ae421f187fe6dd803edc12ee578eda652e721b5dafa8aeea05df4b735f266f975ff19fb
-a5ff79f693dd39d9be0ef42efe449ef07affc260a5ed87e067cbfe89f3c592d97abaed53
-d0ff8f4ba5dd06cd61edc10beb80d971ef20fac130f24c93dfbd79ff87dd37d862caf508
-ff74beed0f9eda90e07eb6d89eed88fb11f731aee3995fe8b34680edafe50dfbd992f286
-fea73dff25cf51ff33e091d87ff3cb14db90edafd91debcf7bd961d831eab5fa74db97c4
-fd42ccfb79d1ff7d01cc39c0e609ffc691dda5eb93cd76dd0fe1ba49b6fea560e093d889
-c6ff61e0ab1cf9c62ed749eebd39d97f14f151ff0799e09316f1c2f769ed82e0a154d8af
-f83dfeabce78e793cbadff2c9fe921d55df7a5fd3c88e0c4a3f969fbcc38ff4dfa07ff67
-c75cade086c9ff4ef8ce86d8ffc12bfa61cabb65cf2dde60ecc779dd88e6a2cc64fa1bff
-3f98e9b650c63a93ffbb30fbafff80f59f4b93e55fff15afdc930ef29f41eb98ffaafb7b
-d99e59fe0ed03de05bed86d067ffa1f00ac7f979ff4bee04b6d831fb89da82fe90faa979
-f993ffcb78dc9fcdfb37f9afd8871ed7afff37f7aeff5e93df9f5affb949fe0ee564bffd
-6ad97cecc011d8afff9533e743d1b779edafc9a5ed93e41efdd139eb5793dca535fe1691
-e0a6d395ff36affe9dbcfb13affa43f3af0ff19ac1dd75b9fe6bf99ffeb2df5596efc50e
-a5e119d2ffc223f3bb87f750ffc880e0afc7f15bd825f24abce587ef7afe9ffa2efdb3ed
-22d85fe0983aedbb9dc0fa77ed95cbb752e56cd90bc7e623df4cb3fb2ef461b6c669ed3e
-ffbcfb4999d96ddc14ccf11fcbec03de99c4dc7ef1ce0af2b5fe2e9afa85f059c6fb7cb0
-f219ff9724e65acd3baff2bf75ff9ff5d11bebc36cbef451fb1ae479edd701ed4ccd9fe0
-86d87bfec05dff2faef0cf09d837e518f280fbc24686f3d876fbb83edfa5d047e197edb6
-62fb26fe6a15dc7fe093c9f62dd84dd9b416b9d8943da7f78bfb7dfeafcc15f862d2af4e
-fe0ff5d025f19dff9360f2c2a5e47ed786eb23fea5cb80dd5093d1f223fe86ed7abeff6b
-b6f686fb2ab3fe4396e0a54b93f4cc50e226b7ea04c0fe86dd5ac6f78afe7bfbd88643db
-b80ebe61ff79fba4ed7dda86cc4ff7b674e16bff8ef645ff07dd36d9a5d193fb489ff786
-dc7bcf6ad805e8affe9a39cd5295f67afb81ffc037d118e5a3d692e0ffa5f853ff1ca9fc
-91ff86f2a5f56dfebeda4ccb19d952e66cdd82ed26ffc783dd71b2ff5dd83bcefca042ff
-04f158ff94d85af20afb9fc2e910b4c8a5d72dfa46a5e035d055c0ed79caaffb3bffb8e4
-60a7ff7ecffa70ade03ad86deea645d819dfbe04fea8f069d8fb91c0df3fd804ff3cb8fe
-a1c626ff90dac022d1b679ed87fb6df61eeb63c7e15aebadff4df8a4ff6dda5be0adffbf
-ed0cc84dec07a5fe83f5c15aed38bcc53db5d287edc04fcc03e03bd851df07e977ff9ff1
-87cf30ffa5fb52de9d3bf2a5fb42bfe487ecb015bfdd87d89bcc10dd78e584d8b82ffa79
-ff80f45afbba98c3fb85f392ffa54bf916ed72d188d901edc71ddd9f44c2ff65f6a0fe0c
-cefd79f3a561e78ccf28ff964aed26a6f266e1c497e711ee87d956ed36aff27efcbf4acb
-98e352dd83ffaf12febd2e93edb63eb9d72bfa8bf22686d6a5ffb66ccfe66edaaf43fbab
-f867f293fe0ce562dc96f3bd6dfb7eff86cdaef226d661fe96f3b822b3d886e8afce1fc5
-ea8601fa62fe94f452f732fe64f6affe31afff68f096db50e03bd089e552ed08dd50d91c
-d5e585d892dd27f261febe81f279feafee18dbb729b4dd85bbe04ec8ffaf55f9b67ae5c3
-99fad881fe9f59fb75dc61fe7afac19ffe51e410efa5ff1bb0fea8c938ed96d274fad823
-e088ed85e5c007ccaffb5ae532d8f29c4ff921ff95cb05d09d1ed96fd883fe28fa60e79d
-c3ec1db7f85e96dc81ec01df78d891e50bff5af77aff5ba0fed8a9de2bd86fe0c17aafe8
-9250c0efd043e5c602c4f79fbeff0caeff87d37afe9ffa6cb0ff40f75bff7cd8ae3afb52
-d90ce073d88af182fa4bff309ffa9330f1d80deccb35fe09b953cb17edbe2ef3adce1ee0
-a60ae570d688d862e070f2d98b02e5b660ff40f1c265ff98fa13fe4d9fff7be978d988fa
-931dfec886d865de7afe5beaffa7f751f1bfa4cfb841ff2dafd4e537c5ff50faa5c959fa
-3efebef26dd519e092edbf35c44b86eeafff1b9ffbcf19d8fa9d1386f3ac78fe61b629ed
-74e3cb3ad966ebc030b8ed0fbcce9ec7a7e718e295c0e886d593ff39fb4dd599ed6ac1eb
-14d0e265a5ff9a5cf379d3ff93f6b279ffd88946ffb568ecc393f521ffaff929c6b740d0
-ff58f8cf81e0ac0ab4cb50afdc79c7ed62dd30ff16f14ac3e2b83bedaef331e5b0d887c7
-32b6e19543ee12feaace96ed6993fba40de0bf2cffacc1eb8548a2dd86fe58d007fd93f3
-affbc64696d2ea4088f3a83be4b4ffc529b9e193fcc295f94ba1f293fd1ea6f27ec3fb61
-f306fb48b9fe86f020a5fe2ff35ccf9fbee51dcaa9dc6effb97efbc542bfe08adcaf47e3
-33dec2259ad0ed79c9f54dff3fafdf9b39c99ffe87f769beed9327fbc168fed986f6d137
-eba51bf8add198c9bca1ff865cfebf0c9fff9027fb4af493fb04c4ff88d886e275f70bfe
-cb44d8f5ae6be563f21199dab5fe37edc29ef5b578d863e00d81d9fa68bbffd85bcaff7d
-d94992fad615d845e01cd7affe14e05fc9ff4ce338a5db81df79ed88d04cc3ffcd61dec2
-9aed0eff87f85ffc02f49c44ed21d986f81aff2fee86c0fe6af8aafc07b7f92f99d984cb
-fb6bd0fb7ae859d816e0a335c2dd9e1bf3b849e21f9ffe5ffbcf9353fe3ff755dc02eda8
-d973f1d878d2ef9ebe62de78b0d967e54bf219d855dd63afea8952c7fe93d888cdff2af1
-7fd0b126e245cbf821ff9dc1ffa426f19009b8fb9621ed6be7c1559aff7ef56ffe68e685
-d28cf7aa78d98dffd123feafcc1efa6af6a44393f2a850fb79b4d846aedf93d488e5c3ae
-fe61eeafd570c9a9fb01afd941ed5ce570d0aefe15f3a503ed55bedd0af275ff7cfbaff5
-79feaecc85ef79ffc683dfbd42d8f2b6e084eb79fb93d024fbb339f951c311ecff27c1fe
-36f89fc979fb88ffc093fa1dffd99916ee33fc55bce0aa08f689ff7cfb985fe7bd4df239
-e5bf58c5ed934be0c2a4f905feaff05be9c59ebbcb38fa50d928edb80af5539ce6943eff
-be99e010dcb5eb03ffbf24c5fe69f6cb2cff51d917ff5393e0a33afb93f552d09ee980d5
-86dbafff51ee7ad865e0ba7eff26a5fe92cc95d952e10ed84ce53cff0ed8a645f4078cff
-af7d0fa5fc20b5ca35e8be67e59acba8fe89b8d1a3e87bedad20ffb63eeda52df25fcfb6
-36f9ce7cde79f2904cfbd8b64ab9dc16edadcd79dd84d86df9a5fe33cef780fe40bbd386
-de1fdbb42eff08f3af7eed98ff5cccea93c7f261c9ef64e534afff83f96dd07ae09fed3c
-e4bb73e885f279ed86d9c107ffc25be50ddd79ff51fa12ff942bc4dd1ce4b6ff48f7ce92
-f0d24cdc32ed21d06fff96ed6dd89ce77bfbd46bedc4e426fec4ee67cefe88f87dffaf4b
-ff09e057dd3a5dfb0ad04ec2de84e4cb6adbb3c79ee57bedbd5affa5d51fc1ed943efea2
-f26ad556ff33fa13feb4ec03d861e0aa0eda69e079f148a5ffc062ed93e06aceff10d886
-dea54afb32b6ff14a1d87ffec961d82fe392fb55f487d1af06fe9fce20c7b2f637fab56d
-f29fbaff99f01fc7a4ed58bff361a5fb8f3794da9f34e577b6fb6bf7affd81f1c02faffd
-86f55dcb21afffa04f86b8d98d38d8b050dd61d90ef2c493ef7ffa93f3e082b5ff93f561
-fb08affe15fd4cf604ff4b95e4af41f7a8ff65cae86fdf0cff88d97be0afed883ea7fb8e
-f27cffbf9ff529ff99c4e4358dfdae42bffb31b8da59f925febe7bdd83d9aefb28f2a546
-f3b8fe5cd92ad8ac14fe5cf1c33efba6fe41a0dd7cedce26de46ce61c5aee06dcbabe37c
-febf4af1befb1dffc15dfe13c3e5a45ac1df429efada01d032baed88e030d9b4fccc48fa
-a7ff79f318ed87d76ce02fb9cf20d97819caed61dd2abad29ae686ed93d979e0a4c1fb0d
-f0c286e103d9a21ff9be97c3ec29fcc16196d9b7e04fcf25d64ded3badd8b511fb74f4d8
-0dd1f97bd8ad78f0a4c2e56ad0ff01f843cf5ce071d1e5951c9fe9aff779ffc098d8b57a
-e065d880e0bf12fe4c97fe88f47cfe2df74bfe25f53ed908ea9cd677cbb16bedb086f296
-2bd8ff078efed28861bfff8ff948fe96f761f10495e56ee009d3bc94c5fe41f8adfb70fe
-a5c0ffedac40fabfa4ff4bf238d856d027fbaf31dc82d46cfe2fbffa7cffafc832fb4ca5
-f39306c6ff24f96dfe9af586fb93c4fe51ed93d0be4d94f69e51ec03fec43aff1a95f52b
-b0ed9bbafe93c0ff0587fcb6f5860cc4ec4ae137fa22ff97f30bf957ff94cab1e75fd80f
-e4a5d882ec96d87effa2cd86ff0ef657f2d307e0c547bfec60c6afe7a51cf7acf05ab3d9
-9fc70dade47fd8ff28f6be99fb4bff2ea6e09115c1dd34e4499a64fe88cf14e080da79fa
-7cff9be084caf961ff29d993dd9f4ee637ed78da86e5b969dbabed55e59fcb16dd75dfb0
-19da86e06efa27ffb1e068c9ff8adc84f3b26dbfd979e064cb77df11ed468df4cb38d950
-d2ff9469d886ed6dbed733afea91d171e53ed91eefa5fcb939fbb605dd54e6c064fb3bc2
-e093d92ea5fe7af8a6ff89fb7df256caed4fd827e5c817e65dffce34fbbf69afd052dd73
-e3a1c1f552d2ff975ef687fbcce52cd998f75afc1ecda9c611f265ff52a5e493ee84fb5b
-f3cb93d888f75dfe19cdff36fa86d4b941edbd5aff33c9f75fff04c9a5d884ee1afea721
-e562d052e5c8fb4cfe9ff33bff58f6a5c6e2b85aee7bfeaf44bffb19ffc295f766fdca52
-da2af2affb79ffbf6bcc86e072c9ff88f2a617ed93dcab5ffa77ffc753d831d70cd93cdd
-1dfe6ebcff80faa551fb86f1be79de9d43c5ec84ff32f7b820da79ed9e43c6ec79d802af
-58b7ff65afea86b7ff46f088c0dd1fd3f410c652d01ae0a808ff51dd10cf93eb9f5ce1af
-1df58aff81faa5c0ec64a6e97bb7e54af237acd65aedc29bf725ff9f0893ecac0dbed893
-d4b766fe1f80ffacdd26ed9fe57edaaf47d907e5b67fff98fbc1018be0a54af823ff5af4
-9c4dd235fed97bf823ffbf13e9b683f399fe81f668ed87d385e01199de6bd0ec6ad9a124
-f388ffacf90ff25eafcc81fe8afb04d8b9f21cb6ff93f1fbc80befc632d4ed63e09ffe43
-aeedba77b5f7a0ffb77afebb70eba5fe79d842f4c880febf61e310d94ce00794fbd722cf
-fb67ff96c2ff8ada7dfb3eafdd79edb6df36d6f686fa1afb2eef93c4ec960fc3f862de0b
-f25afa92f1a6c640ed18e44c93eed036f2ca92db9fed15d9bef986b745cc5be479ed9fcc
-47e11add4beac09ac3fb51f4b5fbc53bfe09baff34cbfe51d817e062d99ac2e611ed45e4
-63b4ff618ffdca4ade753b9ddf5193ffa006f8b524cb80fb8d38ffd846d92bc6e938d8f9
-c23daff068ffb602dd4bd1ff7ccda4f37bfec34992f29c38ddaf17df50e908f260bffe87
-d72ffa67ff89c247b6e59cc0d936fb4cc0fb6eb5cf91ffa5cb2dd061ff86f99ed86bccfe
-63abff9b0ae97ad869b1fe8f11c5ed95feb9a5d841fd6cf888fb6fceb020ff2fadd99e41
-8ae3af86f27aa6e081b5eb7bd593febf2afb69ffa5d09dc6ed37c2e52a99f8afd8aaff7a
-f6d879e5c872da93ebbe02c5e29a6afd8bf25e9ff5912598ffd11ae0c186ef9cf89439be
-fb30afd83defb8ff53c0ec7acbfe86f879b9cea3e318ef5ce797cbba59dafe7dd05eff87
-b9d89fe084d931fc3dc667ee95feb71ee056d984edaf32bfdf5ac6fa52ff29facf41efab
-ff60e508f42ff186c2e027d9c0a5fe65f2c686e503ffb7f721edc14ac4f658fa08c1fe59
-f038a4e086d9bf51fa1eff5aadf46ed5e3860ef3e123ccb01afb41affe36fa4cffa7f251
-f9cb06e078ffd34cddb5ed6193fba42dfc54d823eaaef168c7ff6fe09f15d8a6fe10f746
-a2d82baffa39ff54d97fffaf46fe1af0a50ded42f2ab05e853f119ff5cf297d8aafb13dd
-59edcc79fc2eff0ff79ef319fb7eb7e296c7b886e079dd2cafd889ca93bdff02afff943c
-e406deb84efc93ee79d862dc79ff97e61bd892ed9f27e286cbff60f13a94e97bdc93c0dd
-08feb244ffcf6b93befa6ff1c297e868d19fdd6cd886dc2ea5eeafc812aefb81fe0bc9f3
-46e6bc79e485fe6ddb0ae1991ded87fecc67e384d98abae76df0cb86d881edafcc06c0e0
-8fd879fbc788d97acdf985fe79cfa6eaaf02fe4dd5a1bcf83face687c8a5dd6fd886d693
-ed25d06af550fb1dff80c4f24bff3ffb51d09ff24cbaf786fa9c79e0bd44b2dd32fe9fcb
-2ad861fb70ff43dcb973fbb001d2acfed80bf3ad31fb63edc17bebbe52fc2bdc4de4ba5e
-fe10b7ed16bff41efe63bffe8844eb99e532ce5be47ab8d968ffca35f2afc651ff7af6d0
-5bd92aabfa43ee31cdfb01ffbf58fe0ff6992cfba2f761f22be94eafff26fd3db0dd25be
-fa3a89e0c179e588eb27c79cff04b7f262bcfb4aff3cd961feb3ed03ddafd657bdfa69ce
-a5d89beb70de66c8ed61d83acbff18f5a2ff68f1bf13fba8f28cb8cea5e56bffc846ed98
-f82588b6fe50cfed83d8a94ef91895edc2f786ffa530e07aceff86f85999e0c3a1e45cd0
-ff81fa6fb6ed93bffb24aef50aa5dc9313faa3cbb63ca5ff7ff7c67cd895ff5da5dd9526
-e39dd96bcae576d938d085ffc193e06adec298f467aee37dc9ff43f7b72fff5bfb7bf167
-d1fa3aea22cba5c0ed79e6a54892ff9b65f29fe70baffe1bf726affb15feaf23ffa5ee6b
-b5d861e90fd6af7aeb5ce13fff05ed2fbef411acdb7edf66bfe558c5e278baf615ff93d0
-afff3da165d913d0fb93f5ad51e079cbff8b40f70ffbb920d83cccf41aff47d89dec83ce
-fb4effd079ed29fddcc105eab657ff0ce078c7f34db8fe62f43ffdbd52f295fe71dbaf3b
-fb13f4b650e408d1ff48f212afd87dedcb84d893d91be3b26ddc8bff79f507b5ff13c2f9
-d55be3c12ffb8bc5e26ced94c0db88d87fe596cf0dbefe28f99acb86fb37f8c093bccaa4
-d893fe55cf99fa2dfe4bcaff77fb2d97ff24a4d76de036de60cde5fea5ef874bd905edc5
-2bfbaa26f0ba7edba573f387feb068df9fd070ff54dd3b95edab5ede89d89662f18fce38
-e588f2b0f92487edd282de88d0b412ffac20bfed02e59ecfa9c982ff86f8be76b6d694f6
-5afe1da8e20aee72fec043fe9bcf58dd96e084cd88df2bb0f417fea8d04cff2ab8d350ff
-36f656f139dd78ea85cfaf5aed40e4c29fd049ff0bf465f95caedf83ec69d0a7f3af16ed
-9fc1f26ac4fe49f39ffe81f2ae01c843b6ffc86dfe619fdb83d0ea65d6ff56c7ec4bdec0
-03fdc42df8b506f192ffc11cbff925ff59f8bf44fea1f475dd984ad3aaff9f39fa1bafed
-77e05fc5e551a5fb87f360fe43eb22dca534d9fb61e72cd887c5f96bfca1cc3593ecc40d
-edb632fd53f331fa9fff68c4d97adf86ed7db0ed86e67fe079cd8afaa7fe49f53cfbd992
-ffb01ffe6cef9be583d630c2ee19ff40bdf20c92e786d54de004b1eb7ed8b80cb6d827fb
-8ee580e91ea6df91cbff4de60ab6fb33aee20796f8a06bedae5aed79e5c97ed85be587d9
-6be2a8c90edf86d923affb1bc0fe6bdb0bc1e07ac8ff30f8c193f17affcb6dd823d986d8
-7bfa60c3fe930ecb9fff6befa551ddb04af3afff60a5f980fec87cd991d8b943b3e4934a
-f63afd0ec0f943fe04caa1ff11d9b828b6d88ee072c005c674ed93d825da4fb6ff99fb74
-b5d693e479ffd85afca5f893fdd938f760fb93ee70e657be33fe96c2fa47f32ea9f293fe
-80c995f479fed82bd0ff3adb93bcfb42acfe2cfa9ef444fec378f39dfcb660edca68d8ed
-2dbfee86fc4bf5b662daad43fe0ad7b62ef55cffa0f70eeebf98e653edb0f342afdd04fe
-ca32ffd586d921e0bf47e41e9ef610ff67e585f105fbafcc94c9a5e06fd99bbef330aded
-53ff99f260ff1cb5fe95f7b753f586fe7efacd1cd94cc7f761fb21ccb33bb8c726cc42be
-87cdafe02cdd47ffc39ff7d8af5bed7cd888e0c01bd952e016ed4acbb664fbbe85e579ff
-1ed097db6ae0c617aedc9305ed4dd831d0ff954affaf79a7fb5aafd793cf05ee79fb91d0
-a0fa4cdd84e4c243bfe0a548fd18d86eda79fbc686e5759ced9413f756fb79f293d3afea
-51d0aded1cfeb7d961e01fff54f430ffc462e577fcd084df6de302d793c7e94dd82fe5d0
-16e03fc8b067eb7ce59e07edbea2ed65ddff86f37bffd85bff1a86fe9bceb31ee0860ff4
-bf3cff0afb68ee87b0f67bffc09fff1fedaf46f616cc9ef262fe0ef6b179bbfd6ff7bfa0
-ff7ffa9316d7f2c302f9d93bb9ff25f28affa5cb21e461ea79f2a5fe06affb5b8affcf77
-f2a3ff27e49d1dff4acffa5fc1e57ac7a8d72cfb61ff78befb5c9dd89050a5ff80ed98dd
-6ad8a418f240dbb85dfb20cbaffb7bed5aa0f37bff618affbfa5f303fea5f638feafca51
-ff2ff99f14d84fe0af09f298c1f1aa5af57afb6affd079e2abcea2c6b644fecd26dba539
-dd88d886e094c9abec4ebfe287edc03cffd855d429e83eafe064bde6a53686eabe6dcfed
-7dd8aa3ad94fecbe99ff16b7c726cf94dd7ce5c43393e2b03cc9b65ef1d08cf3a520b5ff
-3cb6fe10eda0c1e101b5f024cbff43f9c6f214d8bb41b6fb7cf7bc86fea10dedc398f344
-a5de2cffcd0de0adc0ed9b5ce488d9b647b9d887dd79e092d978c6f193fb77eda5ca63e0
-34d9bf04edb9da519efe19f755f234ffd99d5efa6ad0fc77f95af311ff60fe85faa534d8
-4c9ee89308f197fe86cbf211c8f456feb6fb9827ffad0ef661fbc378fe86f73fafd8fb63
-e15af23dff1cf6affa01d2fe68d8febd41e87ad9c0f067d0ec85de7bff5995f5cf80dda4
-6cedbf3493e67afea5ee07d14deacb6bd8ffaf4aff88c1fe65d879b9fd9645fa0ecbfb2a
-ff79f095ff10f248fd17f24bfeb65bda1fd03dfe4cf793ff6ffad1a33b93efdd62cb83dc
-95d89312bfe085ec04afe424c779d0a6dd30d801cdff7afbc35ffbcc7dd969e0ae5dfbb5
-2ad87ade5dc5e253dd9ac0df1ae4b50adf6aceef5094ed85ffc09ad5b471db7aed569ff3
-8f1194fac108ff4c93dd9e2afa4ece38bfdc8847fe3af7c30996fed04cf626e086d993ff
-9f23fa4c8ce083d310e637f2a7f73a87ecd06ddda551dd60d523d86fe383b5ce9cc5abd0
-05f79fff85db79dfae0db8ea4387ffb6f92888e8a5ff28fd51f9aff53bfec196f259b6ff
-9ef853c1f17be788b9e517f2b626b0ff41f619ff99d96dff88f60aaffe86f38cfe41a3ff
-7bf6c19cff2c91ffcc34d8ad13fa4defba2dff93c5e630deb5ed62a4e086c9fb0af2b0c7
-97fda5f822ffc2afe076d9afe15fb4d99fc768ff5bf038b9de93c6f534fab9f07bdac016
-dbbffa1aafff83f8b981f587fea9f93fc0f65bff3afa8aea6dcb38e7b0fa2ad6fd67c9ae
-e313d878d4fb07f05ed07bdf86e579d8a54bff86c3ed3fd80be26dafff46f9289cd983d5
-f866c3e08ad152e939cfa5e551c2e03dd013d869e9c95ad835ed4cabe2be0bb5fb6ee691
-c5e56afecc5ddd17a6f879ff38cdfe58f437afe07eff5ee506da5eed69e61694fe2cfb87
-f31dff79f2bd2ce082cefb5af109a9db9527a5fb4a9aff934ecaa1e140d820edd009e4c1
-32cba4df24e586db7ce02dff86f2c20f9aeb7cbeee21fe60f394ff4da0c891d99ced02cb
-49ff1cefafd82cdc92f472fe96fb22b8d76cc4fe61ff3997ed11a4f279fbc387ed20cb9f
-fc6cf77aff84f91faff08ffe81d0f478f9d968c2f14afd32a1d9069cf783fecf51d888dc
-af28bed09efe62d226d877f2b0cb93d4aaf2bf54e8a73ed7b856e501fba7c1fe13a5e87a
-ffcb50feb5e073cbed61d5f271fe66f38cfe66a6ff9d5cf36cff7afb9ed00cef56d8a4d9
-6193ffd153fb44a0d88cdec342bfe1fe52f61ffb6dff93db9ed083fa6cb5fd13ace0bf4a
-c6ed7ee0a2ed3ce5a5bfdd79b9fe2ed89e03ffb3fa64ed30d9a5ed46b7cc97ff43dd02d9
-af1dc8469ffe2298ddbfaff286fbbf3bedb779fc07fa65f295fb78ee17d986f793fe9f41
-ff10fa4c86ffd06ec9ff79fbca88d86ee94793ddc041d8b679e580f259ff1fb6fb07afd9
-2bddaec837e5c346bfde86d914d8ad46ffb68efe79f51afebf3ea5f188caff78f92fa7ed
-98227dd885e0acc64deb35f55ad907e9cb67d8fa3690f2a551fe0ff75db1cc06fb4effcd
-65de6fecbf8048a2dd88ffb81db2d8f256e488cfa5fa6dff95fcb0e57ad0ff8709fe61d8
-51e0a9ca22eaafc79de019d844d95ae5a7ed50dd1dc0ed80e59ac5e01fa4f70cb6ed2daf
-f83dff7dcdf762ff96f91ded3dd603d888e57ac7a5ff82f69d02ffb579fb94f61ffeaff1
-66e5c462f3c122ce96e05addb1e518ddaa03e05cbcff6bf7cef238ffb430f3a3bffc7ce5
-8afea445ffbe7ccfff17e5c09ad093c1ff7bf288eaa535edafff42f7d9b9fe14d34be086
-eb9308fec426f260bfed51e05ed80ff2a542edcb81e824ff6bf57fff9761f254afff85f7
-a5ffb935c5ff7cb6f96cd9ae2bfe61b9ed7add68cf9fe06adca5ee0cafe024d065c98aff
-86faa8ef3bdd4eed37d351c1e97df1cb0ed958e0bf4296fa02fcaf31e4a5ec44affb7af7
-84ff77f5c680edcb0ad957b8a5d979cdfe60d912b6ca28f252c1ee9929ea51abd986ff37
-fa4bee1cdc55d91fc1f8930bcab68628f18ee572f29cff5afbc067adfa82e513b3d826f7
-93fe65c7e4ab5cfa9ecb8ed80de147bce52efece3adfbf02cc62fb980fc1e02fd74affc0
-7af3d84bffb2fa45f416ffb028d29bfe55b5f59ffbb454ebc45cbffe89f87bb6fe93fa2e
-d647afed87ffa379edcb73d988edb879fa68ffc705d830cd4fd835b6fe3b9ef188ff19fc
-4aee0d96e581f068ffa5cf93e01db8f687fbc95ef16ad8a5e280d39dfebf95e24bd2fb5d
-d8fda7cd58affbc301bfda2ee09fed51ca9bff79fbc567d33aec9629f7d819df59f9a5fe
-86cef379d9bd7af65b9bed92e281f3affb66fe88f279e9b50593e49a2290e094d882c7fb
-5ef184c2ed3cd812e0c02f9cff22a2d813e5cd1de061bafb9fff62ce33d6f918a5ff54d8
-3affc912dcbb85ed9dfe8cf294fe86d0affb6cd893c9bbde86fac73bffafd847e40cff6f
-fbd457dd079ee024b6f50abfff34e0872ffb6dffaa7ae4993de50ff3d83096ee61a6f780
-ff0db6fe2bd2be389fe982db72ffb878bdff79ee2cc942dd9f1bffa50bed8bcafe48fa23
-d640e54ecbade00bd238fac7fe3ed2fdbf5afe62f33993e4ad32d988ff75f25dfeafdd83
-cff562ff569ff2c29bed78e01ed993fcb155c2e52aed7fdd9c5ef0a338f855d769e20bde
-62e51ddb4ce52df67410a0e65aa7dd9a1bfb93bbf39fc73486ffafc1fe7dfbcc88dd6ba9
-f079f6afc5df14c7f424ffbe7bffbb62ffcb7dfec23cd05bc1dd7aeb52f4afff17faa8f0
-01d0fb3ca5d495da7beb6bfdc658e0c161ff1ca8da6db7f190c7a5ed269cfc87e29f5385
-eabc78f0cc04d999dec019ffbefb05afd893cd7bf408ed4daae082bdfe8642ff0ec951f2
-6de707f298fe7aceaffe09f8d286fdcb72de25fba0c7a5fa54f67affaedd5cedd8ff34c1
-fe79f4c27aec61d240f1aded9447e42fd8a540ff5afbc74cd802ed4f8ff19854dd6bedd8
-4e93eda441e021d995f0a5fc44f6b1df6ad986d8b645bbe09355c2f30ffb50ffacf133b2
-ee80fa9fd0aff486fec652ff08f67affcf46d962ffc4f7a515e03baff67cff52fa98d84a
-93c7f448ff2ae66bd695fec733eecb09dfafcf95e7b686fa9fd26bdf39b9fb5b93ebbe4d
-e529b1ff91eeaf42ff29cbb796d2bf149efe86bf69b2ed04d340dfb52afe8dfa79e003d8
-f979f365f7ba79ed169af986fe9dc0ff60d0feafcb05a8fbcf1bd6fa86f46cff10e06dd8
-931ca4fb05f261fe87f631feafec7fd888e0bf03d089fb40d925e54cec36d815a4e494d8
-5bddb971f8afeb17b132d8fb7fff6cd8b625e586ed72f8db62a3e480daa5fb52dc198ffb
-af79f98dfc60f439ffc626dd47ffc187e40fdcc44393fec27bf210d861cef382d972ff06
-f35ffbcf3ee421fbd081f788fb6cffc859dd18cbb0fe6db6cb9cdc09e6ca87d1eb2ad8af
-44e927d9a51e83fa8bf239aefe73b6c74be5bb91c3f933ffb8ed7ed096e11fcc9bdd61d8
-20ff4cf831a1f55fe394cdafff7bd886ff69f7d33aef6efea712edc12c97f5cbee9451c8
-9fed33fec35ed30acab026ffce0ffac41ebfea7cf2c1d923e350d625da7dd8a55ffd8fed
-a51fefa9f577ffadf119a6da95e580fe1bbae44beda5d88be6b379f9acecaf45e05bd995
-ed08a5f7bfa2ff4497e720fe3db3ff9337fe62b0ff72f4c494f86afbb6e047dec485dd52
-eb09ffa8cb2cf24da2e078da4aff38f95cb7ff4baef27ae4a4cb93c2e580ffbf11fe4e99
-ed05e196cab588ff80cf2ac1fb9357fec6873d82feafed11d0b277ec9bfca5fe5af1b686
-e0699dfe9337ffb74786ffbaf56df1b5fe12f6cc80d85bcdfa9640cbb630e05dd1f93bff
-49caaced5e9afbc03bfb49c624f1be64c579f1aaff1ecd50d8e98639ed6adcc25af2bf91
-e078d5f29fe533c0e011dd79bbe53fef8cffb52dfebef693d879ed80fe96eabc0afb88cb
-a5d989c6e979dfc10cffb864fb17f051d926a9e668f2c76dfbc028ed47e00eb6fa99dd40
-e0add561ffdabf08d889ff65f8bf18f245dd6de1c24afd34f6bc46f1afd06ff9d894419f
-d9a54593e2bd3fe601feb671d7ff69f7d984fe9c79ed86b4f95693ffc20f86e993b9ff98
-d138ff0efebf2ba1e678ffb461fcd093f810fea5d061ee13fa4dbc1cc5fb58acff52fe0a
-c9a3d512cc68e59f167de043fb20d960d573ffce61ed19f556fe10a1f728fd96cd3fe8a9
-d69afe6ecafb82d8b21edcaf65fea5f962c3e644f287ff69f602f1b859f9a5fb44afd939
-e0a6d092bff51e96ec9fd87fcce45fdd06e5a512edb3fa04ffb8f75a9cff88f2c149ea15
-b0e225a9cf0be8c020c4dd02ead031dcafffc41df26de586df9badd651facd84f4c213e1
-a822e582d777eb2fffa0bece91ffd96eb5f27abfd989ed85ff73f394fc4cf3b7ff9dcd88
-e3a5f815dd3fabf49cd893e07aedcf6bd85aec87fabe5aff36c0eda349f133f9a5ff45ba
-d879cb9efc6bafce15bfd992e5a328e088d869ccf47cfe86fb61ff2e86b8ff79da5ffe16
-a9ff82fc62c8ff69e086d278eb2fc4dd6ad9319ef893fe85c2ff4ff2b568ffa1f569febe
-7afa6cf25ea5e057d801fe4df7dc69ebb95ddd359cfe7cc8ff5dd945fbc186d853fb67f1
-3baaed06c4e726a5fa5bd825dcb938b1e078d929ed5cfeb73bb3ed84fbc627dd51ff31ca
-b648ffb4f5ac2ed906ed84e0af08ffd892e079d886cef537ff01f133d8ff7aeba527fe4f
-d0fd74ee1ee59e19eb4fc905e59ec4f9d142ee01f389e6bf28cba1ed30b6ce32fe5cdf86
-b1fd18faa5bfdf7ad837dd5fb7d879fbc64be035d8ab43d8a0e02ecef977fea5ed7fcd86
-1afeb009ff92efbf51f237aff3b6e48a05f6afe529b6d99cf986fe944cf3ce39e59ef751
-fea1f908d193fa6cd804f287ff4acab67afe8def80affc86f19f088adebf7cff94cf6af3
-87ba5ac80cff4ff2149ce386eac187b91ff34dfbcc7bdd85b7c852ff79fab4c696eda9d3
-4bea10a5e093cba5d852f299fa43aff779fb9dbff227ffce67edc253f10bff59f494fb03
-e4af2ae692bffc72f393ff15afed930bd9b628b8d937f2e5be87ed75d81ffaa5cf97e087
-1c96ffa9d03e97ffcb0be052d861d0fb9977ffaf63bfd26de27fc6ff52aade86e756bfd2
-9be50ce858d004c0df1dd83ae5b7fe4cfbc85fe51ffc42d2fa97fda3c1e07ac6fe61d8ae
-4affdd98c4e070b8f437ff11f7a5bfd94ae42bff55f787ff6cb9fe76fa5aff2efb7adc67
-e4d286d81aed5093dbab0fd99739ff92e4a9cc6de67af151fec161fa0db2cb23ec87c1fb
-51c9fd83f499fb5aff9fc94fd932fba8e569d901fe4afbc7ec55dd71fed8855cf593ff22
-e5af1cc0ee17c6fe03edb523f19c36c1f51dffc495fe25f461ffc393fda5fa78f366ff70
-d97eed9f1af79fd892e7a522ec44ed28b6f93cafda22fba0c65cf93c93ff06abe896db60
-e12f9cfe82d87addaf33d9c3f23dd722d985e0a5c808ff970eff5ae5a6c3f76ec8fb79e5
-afd062c72aedbe18cba3d17fed96c8ed5cffa4d03ddf78d99e4be235d879e0af6b26ff93
-e2c448bfff88ed7bd8b26db9f825f1b714e8b0d36dc1ed7afe88e04fda87d8ac69ffce5c
-fbafe574d9af34ed79e088d8a849ed32d946e5c498c1ed1fd035dcb976f154ff7bc0dd83
-d873fe88d094fb55f27bec0cd981e6be5dedcb48d881f08dfcd00eecaefb0bc0fa931a9f
-df86ed61f7bf4decb66df0c0a4f3ba3cfe09e94aa3f356fe1df6a0fe4efa9bff29f7b119
-ff41a5e081f266fe9af626ffbfa9ff93ef06d2f9e97df2619fed963ddf2db6f410ff3ccd
-9fc75bfa9efe36f947acdd55f2aaff7bfa34f5c44696dd7dd80dfec068faa5cc4dfb12f9
-bf9ff76dffb115fb43acf993ff86fbcd39e0af0cf851ffa9e552d917ed6fe097d268fda5
-fe1bd3faa378fe6afb25c94daff5943fcda2e079edb7ff50fb99cfb41dfe88f8d040e02c
-cc63e084d795ffbb2dd886ebbf78d8b37ce062d96ce0c471bffb2fd91ae5c505c0e965f1
-14cb52c3fd955f8ed80ebcff18f8cf8cfecb52e0acee76fe80edaf2887dfc59ffb04b7cc
-2f93ec61df79e6b8f81bff58efa03cf2ba13ffbe9bda63e11cc8a5cd79bbd891de63d84d
-e10dabfe86c9ed79dac403bff77effa9cb09ff30deb849b2f0922ae0c012ecbca5ff87e0
-61c7ff6bf353ff3acf6bd8af0fff7be16dd824b0fe83fb93ff8ff25edd1ccbef72dba843
-ff0ceebe3bf4acfd38f09fde7cd187ffaf79fb58aed886dd88eca540c0ddfe56fbcb80d8
-ac5bf2679efb9362c0de08d840e2b8f39417eb79d4f782fbc20bd0afff108dc1ec85d18b
-e0adcf87dd5bec31aff183ff56f026dbff5df707ffafef6cc6ed5ed92eb7fe399cfb932b
-e4bf3ef289bff676ed94dc68bbff7df29fce53e502efaefb1cb0d924d786dc81f029f5c1
-4cee9ffc55ef79c2d94dde12c937fe80f97aafff05f9c988d965fecf8b0ec7b659fe04f7
-52efc350b9da94f332fe47fa1fffaff620a3edb33bf56bfec20cbee31dd6ff2ea5fa93ff
-82d85affc050ffb55cd941dea2fa439bd8fc31aed942fd20f952ff79f693c2fe3ed094de
-8afeaf35c79ce6bd2994fea525f699ff7dcbafe04bebd19959fba1e55aafd013ff35f8c9
-58d841ff86f99ad17f3bd893ee74fe9ff403feace279dea8cb04c2dd93ff15a7f67bb7ed
-9bbfd94de03ac1e59558f19ae5209fdbff72f7ce83d893e4a435f4d520ff73e092d097d8
-67e07ace2dc786e094db29eda5ff7eefa55fc5f279d060ef0de573dba5ca2ced99ff74ef
-67c1f26fb6ee65ffc57bd885df2eb5d001e27ad86bec06d776e688f346cb73f2d33edfbe
-77dc59ea19f685ffa561feafd821c2ff38f1b681e0a509f593deb62dd945f2befe67f845
-e5c25ab1e79357bfff35fa71f3a534e55bb8e86ad0fe48fa21a2f5b8fb8861fed22cfb74
-bcec46b5d826a9e64aff12d8fe9b63edafcc0ef260e47cf10cb8ffe779ff03ef53d264d8
-39dd4bfdb8e64dd920fba2cbaffd25fa63f4af11bfe12bb5fe24e54bcdbe06a0e75cf39c
-c1fb6cff9ff321ffb7fb5ef810d6a3fb86fe5ba7f881ffc712fb93de66d81ec7f20fed79
-fa6b9dd979fec74dfbcf62ed1ffcaac0ff8728db9bccb78a17fbc631d8f8169cd892e052
-feba81fad83dff029fd881d0ed880d9ddec318b1e052cbf984fb7cf294ff68edc188b848
-c1ff935be6a5c1fa2fffc3a0dd4f98d85dcfa7fe88f67bfbc298d20594ff86e4c133ec4b
-9ae08dd981d6fd5ca7fbcc7cdc94ff86f4adfa37feaf0be544edc652afdc934aabd984b8
-ee2cafe014dbc002e84f9eed86d04afea4ef6db7ce93e049d4f705e5429eee79a9ff88d5
-7af05a94e7cb5cff08d9f3a7d477ff60c5afed64ff1cd774eac72a9eed86c6f169e5aa5a
-ffb3f33dffa5f780ffa936d803e14ccb18d4af33fbd984e107cbf73afe4a9fdb9357fb6e
-f51bfbbaf745bfdd17e1af24e877f4c13af7b26bff7df7be56ee1aff4496d8ed8801eb55
-d016d83fdb71d889c7f182d8951ac0fe67f2c6f438fec869ffce64ed7aff96ccaffc2ed8
-6df1b938b4fb4cff33c1fe88b6cc86f9d81ce8c531dd4fe20bc7fb14a6edb6e5823afa4d
-edafdd87fe43c87fed9ef70d96ffce5fe0aa43fe14fbca27e462d879e15ada14c5f395ff
-86b6fe9afa79f0b024f29efab686de81bfed09c6e638b6cbeda53790eb9c6affbf5ffa90
-ff4de0a8cd16e7b7dc02d1ff7acfa5c0f08632c6ff95f68cfa7afe96f01be448a5ff59fc
-aee034d8a10e8ee0a523e09741f9a0d04bed37dd61e4b5ff05d99be580dd87f3a51aef52
-ffaf5dbeff8d57fbb0f686ffa562d9f97e31a0ffc0afe0950cf72cd993fbb639dc61d0f1
-76b4fb24f4ba8ada7ab6d88ffea7ee2fce98ed9351dd3cc8ed61d841bfdb67febe41d053
-ff14d8ff69b9fc79c1fe8260d8ffc20bfbc53d93f2c635bfd986f17afe9f4993fe9f36b4
-f564fb09dcfea45ad929e050e9c227afff7bf9cb15d97bea73fb5af6c4ff51d0fd7df1b1
-c51efbbb93ff7cf2a2448ceb86fe2cd107e754bfd981dc14c6f42f95deafd1189ed93beb
-d0953fc2fed058eb1e86fec19ed067f206d1fa8effa84ee00fc0db79ffc753eb36f24bc6
-03b6fa86fe61d0fc79f7af11b7f586ff06acd77dec8bdd7beab427aff22eafed11e0fd26
-87e2af6eedade007a5ed9e11fb30d85af3c7ee46d9c3ec20df93c8b63fd2f27dffa5cab4
-6aedd252ddbb66ed97f72cccafe08643a7e99353dd09ff87d974e026d4b60afebef8b047
-bbf268fec396ff41faaaed77d8acfd03f369fecb6cf2b425ffafed8c0ede93fdce44ef5b
-ffa9bfe58654cb21bff98bfe9952e530a5f785ff9dbefb93e549d80cddaf1ebed37bffce
-2bec94c5e54bf317fe32f6c26efad27ad8ff65d0ab94caf248fece27fa75ffd750fec568
-eb84ddaf26be84fb895afeb951ff7bf7af18cbbe46f70ffebe82fba430feaf3ec7a5ff08
-95feb6fa16bef7adcc6ce555f19dfb69f7c961d922e0a5d87ddbac28ed6de0995ec1ff3e
-e561d885e0b847fec27af481dd55cbfb7bf163a5d97fe018ed4e96ffaff486ea37d843f2
-ca7deed406dfc11ff061d97affa5f56eff9df028e55093dfad5af970ffa5c995d4af4eed
-a056e59a46bef93ff3679fd984b6d951cbb686dc7ae1a5c0ff07f890ffce0be1adcb79e5
-24d84ee09efb68e881d89a43f20ac1e086d0ff79da6bedcf27d960d2ed8744fbb727feaf
-0ebfeb3faeed93ff83f511ff4cf687c8fb0dd1fb25a7d07bf795ff22a0e79305e05ad616
-feb466d92ec7f920ffa4cb7cfed814d941dfafff6ad9af1bfbb47ffe9f67dd94d019edbf
-34c4e33dd861fea4c0fa6bfec31cbbcf2ce360fb79ff1dc4fb02f7a8e87ad805beff1cf7
-5fff96f51efe42f329fb4798d86ee44ea5ed6dff14fa9ff293fe87ed34d8a0ff36f5afce
-8bff4df5029ef122fabf64e57ef29b2fffd77befca62d8ff85cb97ff18d658cd73e4c293
-d8b759b3ea79afed6af2b52ae053cdfa30bbf799ff8ef0c041f7abffb05eecba3bfab734
-b3f57afe9c03c4ef81fe9fcc4ae139cdfa40ff5afba551fe79b3f282dbaf44ed09d73fe0
-9ee879fb9ded0dd8be94d987dd74cf21ffb3fad558e0a6ea10d569eba0cdb993d2afed39
-fe95d8f92cd199de75d85bd010d96eb6f804bfe27ada60eda9d970ecc962e0b03bffa5fb
-3ec0e2a106dd4da5f6934ee52ddc6fe086fa35fe9f3efb19ffd927c4ff3ad8b708fbd680
-eebf7aedcf52d833e05197e6c40186e59aca84e079d3ee6dc1e04bd0fb9328dd58e672ff
-b7f371b3e588d86dcae792de0ac2fb1af8cc90ff72f288ff57f1b144c6b6f237e561ff4f
-b2fe93c8529c7aefb543c189f2abc661fb05f664ff7be0af13bf81bdf241c2f42eff96f6
-4cffc884df9554fb1efec02a93feac42fbc186edb60fc788ff6dc9f986ffc615edcf7cf3
-a1fa4aefa5da6adfc0afec6297f5719fe083ffcb945afeaf0fff4ba4fe83faa8bfff2993
-f3d745ff10f355fb08a2fe2489f0b75fe3bfa5fa12d99524a5e00fc3f62df1af14f862ff
-529ee59459dd7fd8b420b7d801dc93ff865afe9fef12c0f22eec6bddfecc2bfe86fbd04b
-ff24e580dc9be51dd054f5c7fb49fe88e763afcc80ed67e4af27fe61f2c3a8e0b15bfac5
-13e4d39c16fe52da93e7b71fed4fb6ec3493fcaa39feb401c5afc629b6f909f35193cee5
-43bef913f24c88edc632df9ac9b1dd1ce3c10af279d2fd50beed87d8a5d892e9be61d8ff
-a52ef785ff4ec1ee5cf7bbfe85fb6aa8e084ff9cccb686edba6ac7fe29f63afba2f478fe
-63ea16deacd06cc9a8e079d9b6f816af67d997e634a3e07ed859ffc152acfa8ddd9f3e93
-d9b21bb8ff03f9bd37ceba78eba4d41bff4088f79bd879f15787f4d87be56cf343fcd986
-fe79ceafe071d9c05bed8efd6dff95e17fd48ad8ff04abfecc67dd9fc1fe1da5f260f837
-fb5ef3679fda88e560a5dc9b34fb51f929ff4acff79653cceb67d60cdd79b5d288eb51da
-40bdff09d44ddc31f3d31fd8ff05b6eda5cf87dd4be0c5a5befb8ef424f93dfb5afea54c
-8ce545bcf40ec8affe0af893f1af34fdce6bef2dffb6f16de5a2ed7add6ae0a5fe0afbc1
-39eeb57ce6d007ea3bfea5bfff38b6cb2affa4d866afd038e50df354fa22ff86d8b842e6
-15f154ff65fb32bf7fef8724fcb933e061ceff86d879db86d893c9fe4cfb1ebaea12fece
-93df7cc79fe4861ec1e514bbfd93f29cfb32ff01aed88feecb5ed995ef7dfc5a99fb4ca4
-f27cc95dfe0fc3ff9a22ed51cd41c2e485d993d308f1b7ffc4fbd686ff77ee7bddb741ca
-87edb717dd84d860e00dff4dfb32c69cfe24f284d99e5aff6bcbfa53abff7db7cc25dc92
-de7ffb99c504fabd16f59dbaff8dc8a5e89be41cf4cb81d99ed021edc39cf7d84ee0afd7
-77ef96f6b648e502fea5f512ff34b5ed9dc2ff6ff2b676f405b6ed39b1feadfa84f2a43c
-e05acf6ce09ec2fb33ff1ba2f977fe27e4a5c5ea77c1d963e032e883f1af3bbff988ff97
-f77cb3ff1aed7adc71e027849a30e550d93bd861ffa4f70fc469ff50f5a5fb8fc9a7d393
-d9f740afd857e543f6d680e01098f1c746d8f26be567f30aee59e977e079cbff60ed4ad4
-30f167ce51befb5aacfe66f986dda54ae51eb6ff92f453ffac07d87bee8ed1bc42c2ed85
-e476cf27e048afcb2be060c6ff79fbd05ad93bdc68ffc979fe19f6af43f260e579b8e336
-eb93d0be40ff0fb0fe22f796fcafd950e593da76d832d808e04bb9ce9eff43f99fbfe2f5
-c77df289fe9ded2ce065d4fb94c0e2b201c138ed57f912ba87c1ef79ff97c9b721edadfe
-d92d93fb9e0ffaa2ff4fc5aed132fea5f24496d87dfea4d993ff05fb79cf88e00fd734ed
-61febe83fe7ac911a6e93bcbfb56ff23affc63e56eafd85cfb92ff7bf9d865ff86f8a851
-dc9a0df38cff98d807b9e795d884edca7ed891cafe5ad8af17fb60f190bfe081ddad49d1
-179fff6cf60afe5ef26ffea4fa63f532c6abcd15fe5d06b0ff20d2b302acd88afeaf45ed
-2280fe93d9ff83e07ccdff61fb1addaa15fa86fe9344bd86c0e372dfb2c634cea5fb6cff
-9ec720d4afea28e1c21af94daedeb6f020ffb8f279ffafca0bf2cf43ed60fbd086de6bbf
-e581c5e13bf29eff2cfabf04ea42d0b609edacd91aedca31e8c062cb1be55ceda831fa51
-ff25a5ff11fa47a5f17cffc29db7d866ed2df261cbff7ef9c027cfafe086cb95e5af2ec1
-e387dd82fc67ed93d8a3e070dc5df6c5ff52f216db9ec5fad83ded61afd028f4ae33d893
-e951cbec69d95be5c6f751ff19f454ff81ed89d91fe052f186f85bfe86fbb359ec78c4ed
-8639a2dd9349a5e39a3ee8b959afdf93d8af47fe1cf79536bef968b8cf0fcbb554f1a7c7
-9cf581fe9646befd5b9fff7bf9a5febc7cfb8af8cb79dd87bee26ded9ac0dc05cf51f33a
-f707fe93d09ffb02bcea6bee99fe42a5ed1dff48cff29302fe53eb1fd8b03dfbf043fb9b
-ea8635d985bfe571f35d8db6cca0f71dfbb766e097fe5daffe81b6ff37f4b401a5e588d8
-a5cb25dd5bfe79f7a9cd11e171d9b601c68effbc9dfe2bbefed46df7b5fe22c8fb6df69f
-fb16ff30f098c1db79ecabed18aefe89f07dfed27ae05bee2fdd51c4e87bcdafe164d825
-de44edaf25db4ab4f00acdf443d9af2ff386fe96e584d979e1c14fff3dabe49339dd58d9
-79c7fb7ad68bdd9f56ffd9a6ca97f679ffc160cfa9c716aefcbf97fa3bb5ff2bbffd0eff
-59bfe07ac8ff49f105c4da3af308cb9fd36dffd03bfb62f985f09ad804e1bf6ced98bfff
-39f6a7ed3fd00ce05cccf28c46eb08d86bdb86bddd2cd885cf7be088fa60b6ff0ad888ff
-d839dd50d924a1f71dd86cfec1a0fa1fff41f30bfb86f193d879febf82ff88c1fe6194fb
-66d0ff6de04bd82bedafff45aeda80edc963fecb86ff09f4b724de53fa11eec37fbb4ef2
-2cade00de98723f75affd04ce024c3ea83d0a5ec53e486f23a9df008a4ddbfa5f673e4a5
-d886fb22edbd7add95ce0ce064ff86edaf33ff4dfa2ea5dd81d869fb78f594faaf13dfc0
-a9ff96f351ff04aaff5ef23df9bf05c5e728cc9efb5ab793f479ff87f3c64dff88e5ab13
-d970df93d883ddb2cc4dff0fe54ccdf313e442a5ebb71ee5a10ac69ef96affa41dcb99fb
-22f8ba14f4b02bf2be9fd84fff87edb1d186fb29d8fa7dd3fe6acb95ffe47cedbb81f493
-ffa54cfb06f77dd995d879cfff67d4fa8650ec2dffc062f042afda934afe1ff25dfea0d0
-2ec74bfa8cc3df78d1f360fe1ce593ddc03bd86bff82f75ecb41c0e07bcded7dd695e458
-abfe9f51fd65ef40c2e625cbbc0dd6b66de5afc73cf886ffbe35f661ff9830eaa5c6b687
-f765a4d975fbcf2affc782feaff136afdd80c7fa70ee62e5a052d986e095d055fb87e66e
-d8a542ff35aee09a0ae6af3fbef930af6ad9a03be70cd978eecb6ed860ce34fe13fbad2e
-e7963fc2ff8dd89b1cfb93bfff6df8c39ee07cd9af3ef7a7fc93bdd91aaffe9307c8a0ce
-5af02786fda0ed51d825e591fba52dfa9f49f50efd8ac3dd6fedd087d983b0f779fe81fb
-a4f83cff9f06ed95d3b65be89db8ed17bffc7ef46afbd026e0b83eefbb7add9757ef30d8
-5bfccb0ff254bddf09d87acdff73fa5bfe0eedaf2fc1f704fec39dbff56bffb965ff93dd
-5aedd1fa06ffce6cfe5dd51aaff193ff85f2a7dd6cedc978fcb0ee17db79f2afd74ce90d
-e331ed5abfff2cedc179e514f160ff86eb3fd9b2ef45ffbc9ffed8b404b9e4b1fe64d918
-ecd16de5c587d9b624ff39f71ba8e530ffca0dd851de32ec66e086cdfc77f428fbce02fe
-51caa5e047d507d93da2ff7afed39018ff4cf7d18bdf7aecbf88e894fe3aa5ffaffb32b6
-ed20c7afe069d4ffa45be47bf25feb15d847efcc1cf176fda54a95edb67add88b6f987fe
-42dd1de2c045c5f8249fdb0cd876e55bfe35e160fea3d190c8a8fb05afd883feb65addae
-d745cf9ef77afe69e488f311c549f67bff8731a0f17bffb586fe1ca8ff36eea5d0b89bc0
-ff79f3ba62e38ef2abd096c719fa59b4d852e079aff27bd986fe6cf787ff93f2bf57ed01
-9bfac39fe5b304ff46fab621ff5dd979cff28848c5e585d4a2f2429df68f1aedcb93d821
-de92fe80e56eb2da9ac912e2c139c651fb1ff3ca30e19fc7a5fb529bff935fc0e57dfe54
-f9aecfa0ca80f2c42ffa61ff78cd95f74ef30ad2ff9325f6a5fb0dc1df25d8ad33d984ec
-a5c0e050d5f8c111cebe3cf25ccaed65d879fb6ded5bdf47d914a0fa3bffc101fe4af2bd
-99ed22ffa5c3fe43c0e322eb38ceafde52d81de086cbaee450f237c069f2bd9fca79dd85
-d528ed9e18c1ea9613fe4be687ffd830c9faae37fb6aff79cf3ec7a8fb3af752ffbc83fe
-86e5a5c1ec9c56ffbe0aed74d0afed03dfafff4ff1b1df873af303e6be1194edafe014dc
-44e46dcf91e39f43f2c969e07aed62b0f977ffc299fb57ff2893fba94be59bfa7ade90d9
-af40f998e54bdc07fe93f986c8eb7fd8a56ae685d86aff77d3b764f10f93ed9e61fbc195
-f1119fed7afda5f92cff6dd881d7fe93d861ed15fe4ff6b8fa68ffaff75affbf66f5b807
-c05ffcb64edf8fbfec4ab8f69aff1fd788bfd88ae928d8ff15f64a84dfacd079f75afe2e
-d964fa86ed18a9cb3197ffc193ff6ffaadff8651c2f385fbb8ff31ef7ac6eb6bb9fe39cb
-95ff52bfed08e542afdd8bd1e919cbff85d85bed29fb02ffa1cb10c1ff8fcd7bd727edb7
-4bfb23f0bf43fba5e512dd46fbc98de4be30ffd8af48ff60c0fe35b7c743d888c1ed0ffb
-ac20ed3bff93d8afe19b04a8dc4de02cd877e0a5cb79d9ee93ce81f472ff14cca6db07e0
-86f1a5fe03f443adf2b3a2d993d6ff11fb38d995e082bdfe89c83db7d5fb5ff5d81ee062
-d1b427de49d8f9a139d89c1ba6de60ff25b6fd02d9a1fa21c4e82e95da80f4cd15f14cae
-f3953aee0dffa5c79ee177de83feab2ef361f697ff69a9e093d27ffeafca2eb9fa9bec87
-34fe4fd0f58c09ee86d3a5e070d0f367ff95f54aafde52e986c7a6ce27f94287eeb6fe7e
-cd87fd9ff305fb31ff9e48fe10e529dab8f163fe84fabe52c536b6dd79ccfb7b4dee64fe
-33b7c995f260ff27b5eb0fb0f697fe2d88d9af71fb9eef44eac369f5b61fd0ff58f2b6f9
-81d892dd81d8af76ed80e1a564fcb85affaa61fe76c9fc5fdac26abad042ea4cc2f735f2
-51d9bf9ee118d840cbf709ff51db11e07aed86cb5aadf7d67deaa462e0c497fc1bf72ffa
-b104e5ad17d89efe78d096ff5af377e6a3c3ff2dd745f210edc441b8d093dd69e1bfa5d6
-affe943b9fd825e2469ffcd881ed5effa40ee5b728cb7de488ed43afe486d2f44fc4dd5a
-d86deac1ff0ab9ce58a9f87ffe9fcd79fe6196e07ed853ec0ffb51f23cccff17d84cfed0
-7df3d61dc7e587d99f2de379fea4f579fb93ff64afd089e576ed42c0fe86f2ba82dd9eee
-88f759ff41f51effc106afdb1cfeb83bff4ebfe181d9c488fe81cbfb5fef26b7f91cafe0
-06fdc168e085da93e494d8a56cff87ef45aff319f83efb5286e9b5fd7af86ac3ed8a14ff
-97d922e0c28eff98fab559f86bfecc06f9bf67aaff79f216ffb14495e0fa2affbf14d13e
-e208edabe7bc06fe30fc9dc5abe597fa67bef486efbe05e347a1ed933df90cffb886f206
-e033ddac15d9bd1efeb609ff92fba65ee0a331fd53cf2ec7a5d592d9a1d881dd95ff68f2
-75cfed81dda55bf29b51ed61dc3bbce07ac7e665caf17dd9ae49fe0df35afb7aff36f8bd
-1ee55fffca7cd885e099c4f201d844debfa5ff2dcbeab549b9f178fb3cd1dd01e9c619db
-be7bde9f21fcd83ae09abcce7bf8c44d87d979e593feb892ffbf3588f7c96dddaf64ff4c
-cb13a9e42bb1e03895fb86c9ff6ffbbfa6ed6beac451d394ff59ccf36efad86aefc661d8
-23e9c203fbd179e887fa62fe21f35ffc66ee27e54accafe213a6f829fbc20effba21f793
-fea00cffa441feab33fb4ced97d6bf74cd1bc762de50edd080d99b28fb4cffc125d978ff
-adee960ef259d9ab61f893fb2fcf9eec5c86fe6aa5ff9f2ef151ffafc67bfac032f54ee5
-20dcaef194f335dc64ed56d673fbd84ea4f483cbf122e885ffd079fb5ac5ffb75ff2a516
-e02ad94ed0af21fea5f768afe283b6c927ade045a5f883dc4fffb072beff19d8a4d97be0
-9acf0bc59ffe70bcfb3093ffc959d872ebb378e5cb7bd855edcd86f2d275dd93d0bd88fa
-31f694ffa6f4b99dfb6daffe10f5c3a1edb577f550e4c05b88ffc579e680f4d009df61b1
-ff50bff7d82cd0ee4ccbfb86d870ed46e50da5fe8fd884fb6bff06d45efba1cb26f997e5
-1dbfffd312e340b8d85ef3b752ec9dd98c1eecd43dddb982f792ff7bf7bf63d830c1ed08
-fb46ff98f480fecc16ec9af26ad9f545afee5dff08edb139ffacf43cc7a8f687edc2469c
-f392ff38ccfb43a9ff18f5b568de2bbdff0af557ff13dbb759ec28e050d901c1e52ccbb4
-70e560cf0ce292fea81afbd237e0b51efe3e88ff9cc1e586f30ba974f3ba8be079b8e412
-f693db86f1d050df01eda5cd52ec7de0c10fffa5c743adef933987f996fb79fea1c832fe
-af09ffc1f778affd67fecb52e001e538dc93ff88fa54d199ed7ad851dd3094ffaf3acab6
-13c59fe18eca86d653fbbd6cdb7de057eb03d95ffdb1e807d57ce4699ef2d35de0c239fc
-97f85aafe5c29dd8b06efea0d0bb82fa8eff79a5ff86fabf3bff94f265d831cceaa26df5
-86fbc2a2bfefad43fe1cd866cbffe09c45f80cfe3d9afeb825b4ff6299ed7bffb92fe48c
-befe3fafe586f265fed96dfbb6edaa58d9b104e06fde88d3ef823b9edc11beed2c98f3c1
-a0b8fe5cf00ee69fb9ff24afda10fba5c0e370d1fa79ffd861f926fe3cf69ce07cc9f127
-fb94ff8fd17be01dd862feb8f724dbc00893fb9c63e4af11d889ee8640fc2af2ca3fe007
-feaf38e84af1d356dd32eda5d653bffe86ef9562fac906d84ae45bdc27e0c57ced91e4a5
-5415fbd87fd887e7c76ad99fe237c8fb1cafcb6afe9ef622c68ffc76d82ed8af02cb47e0
-19d0ff29ccf793ff1bf84898e5c6fe5be879ccaddf8846fb62cd9dc7accf29de61caf271
-e8b362ff57f32aa5e05297e586d879d86ceb2dfe13a4d864cc17f24cff9ef186dd9844a9
-ed84feafe732bffa7dffc29ffb22bfe093dc7abcfb6af179e4c19ec9b60dea94d180fd07
-f7af20d15affc03eb1ed96ff87f693ff79f7b04bfa30fec3b26cbfff42f4a527f250fc81
-f4b959d8f843edc15ad780e9b61aee52fe79f698ffbd86fe79beed6abf4ab6d87abbfa24
-b488f2afff41fa0bffd880ed18f539ff7dfb91f6a83bfe86c6ed0cd886c5fe05b9f61dff
-aff20fff94d0adbff44af9a5d981dfc139acff26f5b6ff60d140f25ab6ed22d94de03cd2
-a6ff52f362ff1ba5d990d85aff14fb66f761fe1be460dd79ec99f6b711e5a6ff60d031d9
-14cd4fd503dcbf9fd078edfaca1faddb6ccdff82eaaf08d888ffb676dcac11faafff4af9
-cb85dda5ed39e56bf0af5af39a3dd8fea5e536f1cd66d8fb45ce219fe07bd0af26f8a5dd
-75e558e049d815ebc555df2ea0fa93f15f9eedd37bddc03f9bdfb44bfd38e686d06fe333
-feaf6afacf77d85bd812e093d97ccbfe86d693f181fe67eb87d802cc93d4f445fe1fec80
-d989d8a0cd7bf3c39bc0ff38e04ac7fb7ad820df79eda4fb7ef29bfb6dff10e5b83a63ea
-9df08bfe06bedd3ccbffa640dd0dee86ff88d93793df9e5cffb614b8d25bd822ddc10bc4
-e89410ee60fba10cffbf79e48fd9f94fb6ed6ce6b84ac1fe85c5a4f287ff79a2f790ffce
-4bd921cefb8931fe4e87fbcc61fac781d960ff07fb93edc01cecb70be586ed8efb79f728
-ffa505dd52ff0dccafc717f873fe84ed36b6c69ccca9f847f423ff37dcaf46fb2bafd886
-fea05ef093f789feaf55c0e039d85ddf94f180ffafbd4bff33d455ed5eacfa9361e5c09c
-f95ec72bf2a5c2f10abfe62af396fa86ff9dfa80ffa6fd50f2ba79dc81c6edab50f502fe
-5a96c8ff34fbc37aff971dd8fb09afd93dcce504d973b8f580ffae41dcbfa5c2ee9f29ed
-a501f794ef9fddb545bb75f9c65bff9bfb31c64bcda5e067c6f06feabea5f433e5a0c0df
-5ada9fff7cfa5fee2fb8ca9bde82eb87fea6cb93ed62da03e4cb31d951cb08d2ff25b3fe
-92f536cc51d826e0fbcf86da7afac497e123d3f32cfb67d0aafe98d357ff79d9fe7ace61
-e044da07ca4ce032d96bde86ffc924fe4d87e093d7b67cdbf4188bdda506e236d8f29361
-befe77fa69b6fe5aed1898e066c7f77af25fe409d5ff82c5ea5cd820cb79f697ffc44293
-e2af4dccadf19efe1ab9fa429efb9543e25efe7af22db2fa15d651e90dd86cff78fd56bf
-f26bd20bef52f915ffacf76eb6ff83fc9cf46ba5ee61c30bb6ec89fe86f47008afec17e4
-b11df287fe78b3cc93ed1fd94fe079ea1ecdaf50b2f293c2fe7cf58cf1a1cf93f91ed048
-aee492cef71cff3eeec337afd7f152cffa88f3be4eb6f6d52fe09ced35caa5c0fbd33aef
-0ba5e01aff94fab678e051aafb8fff55ec2ed80eefadfe16d5f46dfe01dd6ce584cfafda
-13c9ff7cd99bce4fff72beed81de8ab5fb97c2dd03e3a51dfb52e293d883dfc24499ed1a
-bfe724dc46e9c986d8f9a5ff63d914dfa4c798f567fec17effb741bded0eff4bc2fe8ef4
-02fbbe9dfd3af8d708fb35a6d863d925fb58ed7ab6f69dfb64ed33b6d89bcb6dfba2ff4a
-93fe9f5fe06a9affdd3e93f0c21aaff861ff2886b2ff79d8fe69b6d058c847f31dfec92a
-e277db93feb6e568d87ded9f28debf95c3ff57f32eff60f2ad2aedbf1aedaac3e53fa5fb
-2ff6ce3de025b0f779ffcb8ad979ff3bf4b467fcd379fb61add87bf9b517ff3c7be52ad1
-95fabf45ffd933d8ac45e861d99fe05bd881e0a45be77cb5cb42ed6ee4bd69e69abfee1a
-ffacea76d613ffc63cd807ddafff86fa5af3b00de07bebc611edc025fdc51286b9fe5e87
-ffd084db93d7ed49c2e79b44c2ed2dfc83e090d9af68d8b0fa13d27b46a5fe30fa4fb9ff
-9349f838aad988e491e07ad1f9a552fe64f9058cfed06bc5af7aff86f264bfd844affa2d
-eda2cfbe22eca52fe1c596f259ffc082e296f2bf9efb79ed5aa7e47a5bfe76f19ec5fb03
-f787fea5f619faba34d8ff68f893d81390ffc456ff83e4be48c5fe89e2aa70f286fea453
-d415c0e02ddac05cf929b3e062ffaf4cdcacfbd803cce6a545f110e554befa9326f9a9ff
-75d8acf00fff61f59aff5aa1f287fbb8f283db89cbe565d1ed86e0bf0ffb4cc824fe4689
-ddc386e080d8f2991de2ff09d94fe6a5ff39ed95e565b5c707fe6dfa7acdffaf41fe0bd8
-af33ef65d456dd0ec2e032c9fd23f2ce86e00dfb3b93dbb732c74ab6d877cff29e16e0a7
-29ffadf03ea5dd24d8539af79330d85afbcb4fda27caf289ea61a5ff84fe95cca5ff86d8
-80cff879ee5994ec9f2bfad97afb8dfe9f01c5dc85e015b2f63d96ddafd032ed0bc0d94a
-e435e005d05deca308fba71eff79f693cca7edb9a1c1ff0af6b636ffa849ddc05a87b8f1
-9cc818d6b987fe12c1ff79f156e5aed90986f293c1ed78e593c4fe2bf68efeaf52ffb683
-d89c1af6c094d6afee70ffa5f186ed2eff9446feb87beebf7ade63cefa7cf58efcc60abf
-e594ed01a5ff8af8b437ff79fbbf4eed1fe969d954f536ee0bbce42fcbf943ffc166b9d8
-4fcb37f1aeff56f36bbee15cccfe8843f286cba7f76cffb3c794ff87f725ffc152eac55e
-d92ded53ff04f861e57ad86aead060c7f779feadf8d232fe6afb79f826cfa5f334d88cdd
-9a38ffbbe929da529fff4ff202b1e07ad86bec93d901ef51ff
- >
+2750BF12AE00DB2CAF27ED016822981F3E931A3AAD042CCE0150FA12A22FCC0F
+5A008605953F19D0279A20673C26FB1F6C2F57400CFC1B62375A04A46A005791
+22811D50E10078174999207926CB340180045ED9173E6000B11AC52261E112AD
+502295278620508E02664501602282276E27D0116202E0690FED5D1FD712BC6C
+144925B51F661391228519A302E6340D6CA53C01790430D82254048F4500C407
+E3309C0477228406960045703C1A7912841D3DBD520AFA0450D70C54F44C168A
+256B376000459E1FB925DD4D2688106001F00EA95D099206CE00BA78013D9301
+86255127DE1F3FEB0AB5043C6A0CF2013BDE0A880355B529FC1244A007E62747
+6C01863006810135C6035A0CC60547E90DB834ED500CC8018B0A50BB364E0082
+28049C31603E007BFD6B0D54A64304BE065436611149B228055FB41EE54C0778
+A23A12EB3355396000564015C749F41B3EE2059B4901C7064D96043177267934
+00A02701973E08C300B31BE013794704613B00C40340A5501A790141BD336722
+8D1A2D50B40DE32DC4019408770160482C7812BE30508A1F62442FF012751A4E
+94002F7E228F04F83D13D5521BE969123BF041267A1A2F7F1F72042BA11F5721
+E82F05861AD12250B74100F326AD1C3802D53000F32D6039FB00BB27800077EA
+1F52390B9D274201C06304770CA511B81BD76201380D5A86216A1FE8315838F3
+1841D800A20FB35D1D7F4512DA621F770D53326C01E7349F0D7A1F64E30639B5
+27DC185400E83A0447ED12683459156C4012AE2FD711A800F7561F942707C300
+B3056A3F00D0073CC15302A60D5C269F700038A4270AB2730063B601DC5E009F
+10CB78003BAB40016AA626790797016C248F0B850450B8551480400C99017D25
+6C0A40D8223D099900CC6E1A6AF126501F9F27DC226C27860B32B36CA13301C1
+0DA500930D78005EAE126A28E0052FEB0DB66827013DE92B9904A8540D8215ED
+2AB114522F7C006B0D8622810D5AB36C008107D000A805F95026841C87257E37
+087B00DA48326C12861BA85B2685216713F21A3FC701430FBC6704895A1F3F9D
+1639893E13C3325A401565F4126FC33C00FE125336E812C61B5A34D60E72009E
+22C14F1BDE12A519995B046ABF4A12614006B700337A00D0087B008F05F90149
+83052700DE5A2776346122D326862F02822690144D9E015F390079B27F045A24
+F23E1FC122510190087500C012F3309A01C72FA93E1127C3269D1F406E2A601A
+C9005904C40C48D322A5129C1AF65024D501339D0FE00178284D83126AE52950
+1FFB3300DF064DD4096B04954C01F505AF4708990449178D2761BF0D46620447
+DE15662C40EB1A77128434477800D43B1EF12A01A732F9268E205AA61493345B
+12BA2F46783DC212EC5F9238099F00F6088004A70ADC4F1BF50140811F3EC01A
+FE0A400E50BB00690B860047D46A2149F746268421AE1B3F5F047700DE490B63
+044AE409BC00790E3EF2355A2797025038610458003CA40C4AEE056C2D47AB04
+D300AF3C0885007F0C579F2686122CA51EFC3B0D7927861A2F812239E05B0CA4
+01307D009932790D8500A207793C04E500B20526904D04AE0C49831F6C0C8001
+EA3F05DB490CF4395819CE260E6C2F4F1E1153D013851AAF2E47633A139D3F0D
+60BD04D56C038650266EDF1A3B7B27C74F2F970530B801680D9D04480050D612
+FA264E1A9C32F638A4228C1F3CA1476E0B7800E21268B401EB2BBF7912642E7C
+1540BA007B0E406C2F5A1F9A22D12DB83E116E01F35B00416420B224D10150DC
+00BE6C012CCC1F41DE1FB526F900AB25C41F5027C95126742763EE3E128C5432
+9E12D200B2193B6A12862F01792485037E0050AD04D700B27703406127426C12
+FB01B852006CB1233A550D35AE4012BB31009226D9073D02FB1041791C8726CD
+275FE7790C6C3B0A84B5620686007E0C6C0154EB0426D42DAF244A90280D861D
+751641E408B300C7601F53E726B519FD0DC301416C066101DA2FAA402379CE07
+91006E123E9E0E5D3D1B9E78004F860551108718405C3B0478F1016009B00DC7
+0A5701C62700DF05792474275ACE00BC2651C71AAC12E334A20C683F1F7E242E
+B822ED04C500964327721FE732078600F378165A0084045AA31377125EAD7214
+61C000DF0A5A02A2124C269F17B754014612CE235A1AD727B535156990016605
+813904FD4934CB059E01357920863D01900D3B70065A017E2656EB129F22934B
+14771ABD043C5A2FE527B8691F49B405EF0A4426F1126ACE3A0366B305E46C12
+418A1A9436671E88219B3448861F5036F0049B0D418F4B089527600042641B49
+EE16BD5A08FB7B00990E874D315C08CD049F0D4BC81A653E05CA22ED27D11F41
+F704B340002B9B1F3B924534AD40317600C504397920E32782013EBA4F00730F
+5CA60A31BE1FE80FBA5D187A00644627BC5404DA4A18FB26AE01D037AD4927A2
+0B3E5F00F53F08C000690E861AA51179065000EB0479276033B369049426016C
+ED203C540F26BB002FDC4901F95000D75004FE096BB9015A3E20E304371AFB47
+04E036B5049C002E8F013485260C5519643F0BE019A522684126920147D82091
+287911620886015933671FED5A04E20D561A7C00F806D53D1F62F300690E9F1D
+EF7804328722FE0041DA461183276D31009E27AD0CEA106C1F8F3106802C7512
+62411B6810E0008618B134541D7F2653ED3149DB004F34C91998355912D20084
+163EC02F4AA541099E00C87B4834A26105279E13318440108526A5122F940DC2
+6C1466B77801388215770D6C27C8610F54DE01AE40E835CC01A42781013EEF00
+BD51297E106C00A5093C9B4025B71AD4009E0A368923A701E90F961B61127AA5
+085027CA5805503A1464DE08A52A7A2701975000AA08CF4312E11A51329900F9
+0D50CF129F0450BF00EE057A1F6C2FCF048C0CA701D435049208276BF9025C38
+6C13AD3046A00EFB075F00E30B298026762E01FC06530EAC6B0270B4042AAD1A
+610047DB1B7E26439E00491165AE0AC01FF62587063DB840226C1F5D1277257A
+1F6C12D45A1B7F360AFD00AF31E11F53C500E5500D7F276E2750BD00792F6B27
+712749B950012FC01295032E77C400B0214179129205CA501AF83F1E6422855A
+016CA204446328409B007827DD361A85259733C40493267820E13266129B411E
+C6780B2E860DA500F7087B015A3F25A12179136EB91AD911A85624811FD53D19
+EF3E0D64E2014DE83A79055100F3032FD227E91F502B603E007A13E521760086
+06D204BD00AD0DF3009E3308940450A516436F05498B02693814963D01AE05E1
+1A6B3E12C508B004CE006B22E848266C3649DC1A3F601299012FC61F54128639
+0577B601F4043BC53F22D619B001C426551FAB00774809B74501613D0EF3005A
+4705864800B855013FB4601FDA23501F9527E61ABC6C034CC53948055900693F
+0CCE009E4B00864D25C52045930D7712C527B2601FAC5A0D75067C00DA059C4E
+33AE01640DF327A532921F662D5339612749B922E412622F9C22C21234FA1F86
+4805F2532278108803FD5026821F5834970C86059E00FD07A6009D0CF52D47E5
+51006CE93B00AC5D0D338C26A70E600690007B24854905F05F0C9213F7305B17
+E812B0521F3BAE12BB22FD2D6724EA12500099053DC16B04620D820032DE0F5A
+00F62FAD35EC1F9227773712B42F079800860628B91F5A006C0B338508399D23
+CA2FA0226C12ED045A389E50197911460050E307B504CF0C790071277B01D608
+600185500BA201BF2C6512C835B145305A0DD8003EF91346DD19416E3D158122
+6C267C018C076C0EB43E0465D42240E04C146C2D861FEF2F5312F60B35951239
+CA237F057400974E287908C86C277F005F07950D7B048C21D1264C830133DF2A
+B42241951F8627991F7A0184086301B308F86C0465E1125A34F56A013AA135EF
+41D01268FD045001840E49B44426811FD10030C90457FE85263E6C1C832140FA
+3B12C6258B1C3FEC3B1AD329445C0F92008549006107D201A2279C5D067E0160
+30B50DCC5227D60FBA325A22C01BA14A1F8C2F0987027800C207DA006F4209BA
+6C2750BF00487A015A27A522CD410CD600674001E31B3ED83A1FCE27A12F770D
+3FE81BA5430B860150CF086A01B60A6012D01647C24A266B321AC1225039CC1B
+511379DF49087201268D005227BB5B19F9045A00C308A20E4185229536130AA6
+01C95000A16A015EAC055900B451046CAB009706E23D22D0310CEA279321791A
+6C1240BC24A72086013A680492003E6004E24100613C01F011A54915BC296421
+962750C7139436019F07752BDD1AB20FE6018A3704832350A41A870A50850379
+4A01610BF201AE6100740E5AC31E3B7C1A49F038503AE34D288B225A0FE0009C
+430A94007C057800BD400D27CC219F502FC51A7C0F37912779208F35682B4FE1
+086901B25CD624742F0EEB341389205038F3306B269E0D3364267F13A8500469
+9F1DAD0D6636C405E6006C3B08D51454F026B91A4CF817920D7E34D50D94296C
+00F6355A0DE9500F79043E6300D65B26E21A620485276A336D1F59FC17B8320D
+F6263AC519AC12ED35B151156D3616BA27F127006EFD04A4005C0CC8047100B2
+06F40386277B12D55926F71FAA279534026D9D00600CDE0440A500E26B00A409
+D64611F8017816A427EF1A3A007A069A5A2467C507DF017D0B920EDC194BC60A
+F0013A6C1AFB12503F0155F6004A81268A1EF34F2BA40979005A349A096C26CD
+1F9726791DC624851A7904934101B92FFC1EB131511284003CA2400DCE00A408
+C00E3F7801945C009966007926440586002D9D22CC4604780948B140106C28D9
+238627A71D41237C30701AAE04613C018031630EDA095CEC175038B0294A9213
+6A32541ECA123C6401AB1F4BBA46006D0B538DB327F63904AB003E582DA31ECA
+225A0041831F752759BA008A287A00D8762E17921F3EB70B60049400673348AC
+11DF0148B244004D05FC01500A6103AE27E237199D2481006A0C9205EE33B65A
+15FE4C207C29692786004ADC1F3EC01240F1115AC26C2450C70681005A991FA3
+6B042F9F2085129E01501179D85A0E9F00D33345E71FBA12A001852C8B2245A5
+04FC0E79003DF108BA049A304EEC1A762886055B22D82697341021721650D912
+851E921245650448B135F905AE00CD0D406009C526A43305BE4409DC015432CF
+4212BE1CE4042E7E258E1C5F1279AB59216AAD39DD5012720051CB055A15A827
+DE1F406C024F0979008A3D0AEC03D21AB42F0B7F055086042E8F01490AE41268
+3E1AFA0D31E1003CD66006CD003F6331F969054900EF1B3C6C0EA50079054925
+C7195000AF063385269827C71F5D421A734501840653D00040E90D9F057E02E3
+5AC40BA700792849F409BF00E9327B016D1260236C31791FE33D126C1A855311
+995D277714790083354D840D6CCE01680DC427ED03380BC02F00860633CD26B2
+0C6831EF4F0A85034AC713A421D427AD1CC35A125236790560AD26EA1C46D361
+26DD1EA3349901D953268441128623521279275AE807AE0026AA1F822760B805
+51218E275AEF6A0D3DFA6713D25A006F0A64057A019F2DF612D422AE2F0D961A
+60306C4714AE3F0138622E4E1BB803346D247D0D9F16D727A52CDB03A3089200
+57B504EC0138F12700A406E922AE1AFA0128AF45123FF63B00841A5BD36F1F4E
+EA14479B00671B96267F0139C3223F7900672D780F660682012774AF0049F612
+3C6B009F0939009D076B41005C2A790CB201CD5007B701EF1FB00D3A6C138A4E
+34C4089D01417AFC3E0CD8124700B3770426833F12E61BBE34E327B50D6C015E
+3779007D4935B501BF12F62F661A8708FC01CD6B0D5B9501AE2F41613D0A8400
+79145020F9267C17477922AC5B076AC73986335A0D77269A630527B758058650
+31B807490093107727BD1A56FD3E01DA0EAF6C005CE612AE26F600B437E73049
+D8401F85152E9D01CB58226CB3751351B522FE15B404396C4719932E6C344980
+01921AC64026E20C723E1AD1123601AC5D01952A7F1E5337C35003982F600186
+12822250CA279D144AC312FB0477275A3D049D00D84AB01F7E123BE43F18D750
+04F900C15A1FED0D3EBC5A049F2DDE0C3595102F891C4E126000D44101C3113C
+EB79002C9F1FD812417927F433B604520D832D06864E1F7935129E3005861C84
+123F5A046B11A02501F109B9571F7E4110FB280D3FE83B027A086E2250EA11A5
+3B00F80CA1043EC92F57009F04794300EA51256BC07615347924CC04DE08A600
+2CE01F8126A3205000EC083D6A00E7072B9421500EDE00A9621F820D27005F32
+A1056C00A02A12861D6C2605962F529800348110680160CB004FD901B405FE25
+A81F952F50890052126CE0125F0471009E0A6C015A38E46B01D74816BF4305F2
+501FD24A38C90449D922A81F7900508E4C346C00E10827930049BD01641AC527
+AC30CE01624004D778205312DF1C5B0BF5472C6412B53160048E00490B55E91A
+AD126026861F469C0B6800F6073FD05A257F1CA8411EB065033EC76A1B7B2D0A
+C83A529540DC0448CA1F872660A9074AB03AD14401CB2248E126C41FAF40267D
+1F6C3E227F307904690BF20447C820A8350750B036E62A4AC921A21988002695
+129D3B008A2E61017C0977015D35960D84013DFA31BD0627D712A1344EC55333
+861F9D2786115A00820E791A912A550969BC274D96007919AB04D3501B810DC9
+28F426A32F07870040933B0DF26C124CB9491DAB7603359700D80486325512D9
+6D013BB507E7502701EF23860F79225A3E08F70036DA2279016611864E04850B
+77003C790DF805B30AE65000CE0F49C94626801332820342BF27008009AC113E
+630DD2274FC8375A04F05212D122AB279B26EC1AB1005027C85508760F429A04
+3F5D01862103DE0C5E06F30147D7501FA02FF500C022A03300860538C5258D0E
+753701FE279B1849068602D0632757F904C45A0140CC005C0486310C62B30F79
+2D600DF200864526911F57336B12B4784A0526A91AED01AF701A479C016112F0
+27B51A34FC27B21D5EE80450198F422D621DA527971F5A00B208E0631AF45B18
+6BFD1F64269000F050047C08600DB430662694046C0BFA00460E812762E50578
+19B422EA61156AB11AF70D4097492CCB396A31970535E2035A2585156001EE40
+1AE46C136129DB1FA75A0C770063B85A1F783900BC0B3D6A3924B11A357D22EA
+1145DB2719FD4912AC5022A23501A60AF2009A0487430030C15000612F891239
+BB691331B951099200409B0E77019442126CAA325C00C803860C7701ED179127
+773900932F01860D409D01D61A7B2340AE1FF9248401790CC41A3DA253146AB9
+5801CE123FA02F4E008B3801CD2F007B2462B626058000931CBA124085179B0A
+BD0D48DA4E1295603001A5087C006B063FB41FDC400A2FE10E9948218F1DA200
+79056CD9069F2756AE00945A0138CC00347D0550E3155A357021DB2811FD6A0A
+E237B51444D602540CE278411F812650DD04551FD52C06BF3B01EE0FA1236C14
+D934582F6C04D8124FBB0D48AE24CF05572F6D3C0CA5016C3B009F2CDF20A500
+4AE60034C521491F862C77095A04DE6C0D56A32250E412A9300050F119AF0F50
+0060FA00682773347A006C05C22606D0431FF634B027EB224C850527A56E0066
+1AF15A01DB0F49E84F102F851679013A693F0DA06C1F61DF0EC01C682A8512AC
+400D549F3E177B046E08790050862696003A05E801C90B622AC06D094C97501B
+8B27821F4AF5394804C109B2502285015C37D9137730A51FEB04BD5327DF14BC
+501F78123F62328712417E077902F308B11AFE23921228C63304821A6C3E0679
+CF1276376027E17B2F0BAD26D201F127B41FA4324986129A58016F0D83019410
+3BBC6B0143C5279E0435822872267E1FA54100F327C01FE51BC4330988054379
+279200BC05EA015BC3006606AA2C9823F127BC320EFA1C4BBD6C226A2FA1167B
+00243BF5002FE1125300BB0760009F6B267D380EA127FB1BA1008D056500840F
+436B0086073F600EE80155C904F7095AB723DF27942968337F00AD3848830065
+F50EB604C7661F405A01D60A780425A54B1B8B12501A8B0F3E5A0CFC006C3A22
+9E27D71F532FE5005014FB32117B1241CD08AF01C8075D03C0630D50058D0A6D
+0149EF26B82F01FC183A564026881F3C7922D41A46005510831D6399043A860D
+2DA70E79013FF243B7811241790565D544347827BE3F12F80049E40057067C28
+6027F121C7502CB418F933499700852792340E791F832F049200500CA900D70E
+406001EB0AB31E4F395B2E4E01E909BA345222C15A400ECD3E016CB740046AE8
+02812750BA03ED0C470066C10444A4277F0878AD00E3611F6C228C1241FE2D50
+1C79AE3E2258A42782004E129D5A0C6CD512AF62089E04F2500172C761A53C01
+DD063EC46A01DC4700FE1AC25F052750045BAD189D3F0D9204E80C5804862297
+1E6134C24019DC0B711181370992013C5A12C522D91A6C06AF5A27A401D1501F
+3BC05F1D722654C9129D206127940BD8009F12882679148D047F3900EC700564
+E73A0060C9233B9F1CCB0E61401F65BC7912358B186105C7551F3E522702A80D
+EC50367900910BE031006BFA0030D9135FD070033CB44004770034CF276B1536
+AF270C2D12D15127A316502691199E5A2695331178A91EE03000D12701A82666
+2A7B18DF2F5A0CB8028210699B01AD39BF0349E41B67D2028B0A7804A12CEE41
+00E1123C6A0FF56C133EEA05A201327C277811D5016C277F25FB3269009C25F5
+1AB22648139622501F94300692005F44017915AD7F045007F35A0AD02B763E00
+D60DB5804B2F6D0027BF16A42377045ACB2712B2500495264822E71D6024841F
+F85A127F00A46C0E41F77C48098D00417700E708603B05790053E43700750D89
+611F6CFA4A12CA01A3386801CF50279221D40426794B165A329F00AF441F7529
+A8263E6000531981265EBD009D43048F0049881FE15A07F100AE36851BAC0D46
+01A41FDB2B770186076AA13B00C408AD0DF74512D418B12FE43D0027DD22A029
+1AAB4A00F41F9A26600123FA11BB3E88046228D813B03D0D7D4107863E0CC401
+8608A000DC09A63D01B922E43004D76400209E314DF612CC5A1F40B813D727B6
+2A0764CB23B30736A10E3A0086315312B9208D3300EE07662D44F73C0DE8007A
+237734049D0DE40063FB0DAC35C7059B0A46821A2FB125C8340F7A391493223F
+690448E8005CCD760C5104A90E5F2FDB3F01FD5A2779286C1FA5502B860A6C04
+5AC4480D6D004893013785126B0449E63B6E054467194AE30C8400406C1B9F01
+D84D1EF5531AAD34426C2C48934F1B8629780D509B3D1FBA5301C005277F2F04
+AB6C008022860D6BAE1F3E58154EF1024979B74F08EF6B00490BA86D1251C700
+A450049026A90CD91250F4304D22861B503177136A3E1FFE2905DC610D4E1266
+D90450BA004B9F1AC412348E234A1338C06B234FC1125A1F84310CB700D90285
+09790048F924A72C097B35B53AE21163CA22AF2FBF15780FC631AD00D406339C
+2653BB01EE2E6519AD3700922D6915FA10BF01370DCD054901AD1A5D129206E7
+6B196FAD0D4686233DF3115001F83F009104EA7D016C27CE04341F9C1A297AFD
+5C1D3CB3401F771230B91C772B831F95076C00C75A08B301C308DB01B350006C
+A73A017AF177002D9622652FD7055A2D775006A502E47B3E07F1003D7900CA0A
+9C4A1461385422E426C53704771A9239F7016B08508632067701820A5F299D01
+8522792794500FFA1A68345612993C04804611DF057800502079E96C2763F558
+25C900ED49350C27D738005EED01C30D5634C9385B12D32F520E26C41B921240
+E6710041BC0E3705D60279099605DE7B014709CA01602FBD1EA012377927841F
+40582F6F229412491BC2400627B44201FC08760E40F800B10DF61A622743129E
+27991EE74026791BDF368C04B0410165127AAE0EDC0068169D24D52700FD461F
+DD274FEC04563F17F40D5D01C63C008605A509C7005AE70DBA631F51C728AA61
+054900B2094612852F8D290285B25A0469B91D41791A77019306821A97490ABD
+7746375E00B464173CC9650459AE6C235027F3335A3F1F61EE6B2750FB005A3D
+0453D800F21161B604EB0CCE043EE7780F2B9F470C6CA31F54AA2686126B217E
+2750B500D35B016A0C6E0456AA056900A410F4199234A0500152345B27C85104
+4A129E40125DA40D950035A71FD664044BB3471F7B502ADB1F71277F1F406C3B
+00903401820B3DCF13861F9023D401680D58C426003F9E1029950C34AF26DB1F
+6B27B20132852700A405FC30500A8E015015DC26480184B600620CA300BB0D4A
+008E123E7925E77E186C2748900126691B82275BAE26005ED10062ED18328300
+3DC60152C73E00A00437841535BB27DA2F881F3FEF2286276B276D0DD9062BEC
+21BC01800A2279C05C0475B600307A1AC5690C84003395267712ED04B8124099
+01F80CAB029B17EE23A6471AF5256C2F50E1006B34A322FC3A0876DF154BF948
+01D86000812CA703E30F5AEF0461DB1A6C129E23D328AB2679019E10EC143C7B
+22C51A52259C27D620B608A3044027C1059C0A3ECB3AAD48009F1F096B983415
+86270559C111E3144C96270760DC126CED0949851B7A00A208C5015C3C03D207
+BE0085275E891076133DAF45EA3D0027EF2F1B69E7065A401FF02646B70EE000
+3A6A27498B0060462D6537D02750058509D75A009403BE07359D0F7B066F0060
+A6210592260086385017F4095C1386349E1F3FAD12502CBF550478006B07F61B
+8A2F7F1F6C04E248016CFE3E0483065A35691FCF7400623550D3126C007910E1
+364BF73002DC4D09BD7C3803782784043AE979192F8A205431B100FD10551767
+26860EAD761F50355A1BA70040B500F1790626621AAF6C0856C3034C37AD007F
+055A8A01791A50A405D40B31F122BD0F9E075700B46627762041B812551F9544
+1AC427E127B212317F5534C06612CD059F2349C5460065057E00509206860038
+EA20A41385345E0BD80050BA2C5A139E3A126FCC1640A500E2500D47B20EED00
+2AA21FFD4F2E6601850555A51A92264401D7501FB323CD0D4700B84D01CD0593
+0E742548BE39F5491ACF420C65B201FD3E0CE11A6332501E6BCE028E0C349912
+38921F7B23D828A2123CCB2741C31382216B9F088101791FE426872F0DCA009D
+042F77DC4000EE5001680C790452F01AD2014F0879276C2F7C125421FD2AC627
+E0203DF91748980C502FE04000C55124A236089202D15008B400305FF010792E
+0192321A85267B4C06603F04B10DC122CC12783C00F9752564078E00571AA071
+340C954129671BE02DAD016C075900A52F00EB331287217E4E2F9D05CB0BAE00
+3F501FD85301DF5F09F601980A5001F924610693005E34AE003D5918D2395401
+6C12FE49395D13EC690B3986266011A62F971FCB3C016C0E8427EA1BB300E504
+AD01770B7B0D690C9C015C34D71D65B8035A0EA64604790C65F7276B3F268621
+4892042A961F5ABC17F45D059E12DB34BD1B8A27791A3B624104BC500D2FAE14
+E94836FB68043EF3601FE500B552046C0C871FCF277D135A94227F4809C300B4
+11466C2284299222F9760027A33A18842D62156BB53F1B9E12E64D2DFC024EDC
+12B72F5C1AA332BC3F007905AF34501FA8014FB0047A26F80040630B9F40B821
+9D015037851F6327D936A52647B94B28CE1281058C00357A26841A30E927BF19
+4500AE0AF00061E21BBB5301D708387F0141C620490285006C09D601499D00E8
+296C1F9E5A007A270AA4052FBA12500184127A4426A321D73550019E0BE13A08
+B701DA296041277B03FA3E01DC0D5A043AB56C0D5AC500AC26E3340E7C4A046C
+3D0B8511A61C4179049100F60585095FA51BDE0E78019227FC123ED11A871259
+AD18DE4A250575115FA20B48CA0D99068A00E6045A0086096C22C62641F10BD1
+01BB610F85003D9F5A12781F983401760C3A6D26854512AC2F0070B45A22F932
+9E123EF4147F268E10DF053ECF0DB36C204286007822C8279D350AF7008B4112
+F061256F1F81492761127704EE08CE511C66A0174CB97F12501AF204266D0D79
+0158C200DA30AE00CC1F6E27800C34EB246F125026E2143084269E27CE154A05
+8B24683B02BD3304862E0082FE33C63F19F600396E225A146C328922F01E45B6
+49015A9F1F6C277639009E1F54E30639D128B61142C62680EB0EAE00F8661F6C
+E90E3D0896127D1F5EAB275007C201543187186C345200D36016DE2AA2085A02
+C3771F3B5C06960433C700B205F8009838A3521F793600B107317927003ED405
+9E35449A30D2219F1338862277195D339B05E400C0671649AF39C56C0044CF04
+50007F0A60B46C1AA000EA50236CF10D60BE1467005504842661A601F12FC21F
+A412792F98005E0FF538068600B411FB4927CE0476257D016F055686066C0034
+8723603204C806502778E1285000C8085100A16C2060A50046B601F11A9B4002
+952683133FEE2750006ACC18BC2E48861250365A126C1BE1022EC614A86C235A
+CA01E96E1F592C6A00C95001624304EC5005BC0C50F00E653E228A4601940660
+014D20AA69103AF15A1EE62D003DDC0C447808AF00377F1F50380EA427DA0DB5
+431A781085016005D1024C12DD27A01F67C51244623F0588126A3448AD1A9326
+F43819DC20B34C04D10B9E49399612C1004304B666269223EB330EE03413FC21
+663B23810E31F50D4A01D165057A0FA63904834F0DE60068DB19A532C4500D40
+8A00600A2EE4143C93410BAE04E51B861228FE12B332601F792784013FA200D0
+510F30F627C81AE70D7F043DB9790C27890447C1205A2FB81E6812499D04D901
+95EA23801F6C3609D227B2264BE946276BC25808740482015033EA079D2D50B1
+01F00A2FDA0E62006C9F0D3D5A1B81287914DC015A347F22AF6C2E0DDC017912
+8541009449097904D54C01BC691F5AB46C0B33AF1DD94815FB3F017922A53908
+750184042779BC2447F1419E0086045B1282257933B008498B1E94007109BA00
+F822C9265A2E6C04B76008792384309527FA17500165C632AD6A0985047E003F
+C82EE71A5C296D1F005A07AC00E356036E00790D5A0A92014125B334E626AD19
+93227D12D900387C228E4D00A227C431035FBD00FB0EA7006B27A50DF504603D
+16EF4B375A28D205B95A1FCA2FAA3F1286355004C400471B9F58008130058F52
+1FC527921159BA27E62041FB01570F9627046E3F20C027FB00C347015E39D900
+6F253FDD2E49861278049209E1149C381EA5145200B2075B009225A41F520040
+12F337B213F85A017C0A3EA512C7433AC24A2D78123FB033FC1FC427AE20F816
+8800600E7830CF005A04AD2162C40D5A04BD401B78134FEA402278276433EF22
+871A7B2747D00586007F0BA50445673C047A0C6D005AB406E9128D2E7726FE12
+38E22260BB3D009A095F01F33102860C5A9E187330D70069B512D9590D991E3B
+6818EE117826A912C9500D810340B534671CAD227C0050ED0142D16C1249C146
+28D405740DD979295A0049933019912550BC045407980D6C01F31A9D23690C42
+920481007932510DD9299E01690C47DD4C2779175031E03A1579FE059D016B0B
+AD08CD019B095001CE5000970F6924AF1FC42F761AAD12F722AF26E32A1A7A27
+6D22D80D9E01417E0D86015011E72448D64B227A441FB1370050AA0649851A3C
+6605277E0160A6048A239E0185053E6001AE1BEF105A00E44F015736C712692D
+8B0527DC1F77127A1A3FF8335004A51ACD270D63B006DE006A34FA2F62E12690
+277C01D7059F18623C13E24807A169237E13FE2087276E1AF400A5088500A45F
+01275621D427901F3E8550176DAF3F102FBC1A39FD3B08604100F35100782C85
+016005934F00BF08A400832751C504AD26F31F8C27750E7D05B400CF60056CCF
+0E27F21334CA01F646AC34E81241D10C5231E11F59F51A8F2977279D1F8F0D26
+74FD1A499F00BF0E3D9A006705EC01B260008416872677056CE2013779279A21
+8501A415005808AE0E405B3047BE00D2502B1AC83A00AF055A36A605C101410D
+922AE61F6D1240CA3BB479115000E4600430E6270562EC790C5387019E49D612
+8B1C34C52699143FCF4712F0433161385818E71D6A3F17792A6C00C604B22A66
+12953E14EB2F1D9A5A0065A30C862C006C094D86002776B9004A97133C6C0ADE
+005006D63948BF2F00A707307E1F53F54B34AF50238638129D22CF00E90EB53C
+1D47C412510CCE1A4F277838CD491E6ABC11ED0155316912966C045BF21F40D3
+00533E147AB75D227901A72FF8026C0C500439B9692D15BF770C57C41B4B003A
+D6461E6C033D6A06B45E0D6C02E1590D813C049E0CF904B74601790FDF5A01D0
+0CA33060411AE235562391004681043ABD401F752350B81CCC213DDA652F1286
+360AB200C0502064C636600178089641126CD8043E97012679092EC8145AE407
+522E6736435E0079A30140F360006FD804B50B6C04FB3B007727791D8A08F401
+34BB270A51941A9C0DEE66254A01C8123D610A4A87279C1FF27E260597440027
+A435008226B66D0529EA27BA1FE3285001EB1FA03600B31CC75A247E20861277
+2FB33C00329E213D6512F1007807A003FD0B63BB12DE267907E500D011793F01
+95075503F84806D066267B3404942F048517A627E91F5CCA3D2261E40C47B61D
+E06001A004306CAC01C008AA23FD1257268C0E27872D1061419D21874F26981A
+B40DE627AA229C501576AD38016C27773200D50E802F4ED91DBA3407DE00623E
+005BD90E6FF6470469DE1294183EAA6500810A900197197A2D73085587267200
+2EDC015033E10595095BBC6C0D57AF04864B27B951206C2B771A3C51019E1150
+2A8F365604FE5026BE12A31A8F2F5101EA0C5AFC12AA4122F50D8A008304500A
+860151337A108600397C2042BD270D491F7B1486046C2FDB044CC606AE3CEE13
+00D83E01C9076036860477003F6C05E2002666E911CC03AA431F55F709760083
+0467A01842B20DC61A40A73A126CB41F3D5B06FA01500FA4163A614434C705AF
+26D71247F50AAC63196BC10041661FEF234A14FC0040DB3A01960934D300AE26
+E800AC6C1F5CC5046C0AAD2F61167F2A79245000AE1185279A1F458100D95A01
+6D336A26AD1EF127B31AC300F12759BA0BF873005082F05A03DF4A35CA174198
+1A6534570176472E5C17841252DF0049C1125AD20DA03049C906318321860D6F
+B3042749B54623E912523286227B2792065A01CC31087F01BF442C7921E0244B
+D100F70C5081126700A333156C380D9E36109B1ACB50007C06922F851F6012C3
+1B448C177A0D861279263EF8003DA41AF2228600AE05ED006BD43B22E31B4900
+B708316D0F2DB323CD12DE2F900069129227631884042B94123B1BD9013B1198
+31017707820050B400F61FA822C5A204F52FB13D217B1B3495244C38611A8412
+42A5005A2AE03E126BC1015D0D952AA900CC05EC014B13FC279E1F55F125961F
+860EB75A003F9D126C1F953100EF2779215AB504CD4900EB5E278001369E27D0
+1C6D04AA0B782E50F9016031DF384D09C8054A920D604500660FE0385B12A740
+0C9E5A0470C86B2560CB1A884904940850027E0E3FD05002790AA234DE50005F
+B079472672C7274FAF229E26F10D3B6C1080056C0C1F7D4A006C0A9E04F75001
+EA02B309FB00B46A1B50BE0857009A35179020F3007726841F501277C1580471
+0D830040600AD600663B1BCA720251BD4004CE4725A606DA014184227C265104
+D70D5AB90C4701A326D52753EB01A30E3CC1045901BE5F22831231D921B9319E
+3A511F9234541C830140B50E4104E2003EA201EC3C1A5BA53E20BD610525FE2F
+CD4512771FCF264B0333B7055800860CE7127828931FD04630DF2687E635129E
+22D5452D651979126C26861F5B3E04F20F3D791EFC265DE00641683C13D6033E
+9E6926481FB030DA29B212C452274AEE048B0B27F22E06842752870F5B3D1A95
+2F00FE07BC30A31F8E2E1A6AE36016500886003F67274A851F9A277F1F40ED01
+B36801770B8301D208B401DA0AC126F715632988344E94124F790D69D42700F8
+71012D779E40007006B70169089E0EFB6A1A911FF62C436B3A01BE0752048F01
+5A3F001253BF05405B00B40DC727A92FD80450CE237D2B9301D0400583005037
+CD04B35A0C6CF93900DB069201650A79046C3B01AE126C2F41B26B0961AE13FC
+013BC500E56A0AD44F126445016C3F00FA7803490A79F33B13B51EC805DD0068
+0CF406A8006B354E18A027F01B5A277D13692781005D327900F109A80D2CF81F
+3AB840139F3950185AE308530FA54C266038F2521B802700D709416604B400D1
+591F6EEA3E22CB1BB6659B017730EB1F7F2586058300641F7B35069E00D6266C
+2260B119C8128725791A4696245412AA1A6034E9228A204FE625791F9105D800
+4E1F97360075237B0C4D924026861F9B348820EE12B9720B34C726AF2D006B96
+277912924128CC50156E2E8E1AC126E1105A0346C60449FA22AB193F9B04C43D
+1F6C26D15A01850759007604820DA93512B027D81A37E819A20031CB04409650
+2FAD228C1C5E3E0AAD2D0068A1097804331AD3266708A503E1325639EE0D9A00
+AD5A1B6C117B04A40C346C277708A201E63200C905792B46BE1242A500CC3608
+A000FB365A277B11E50158DE1A9D2FAD1A3704B301600CC400A7095A391D47A5
+11840150BB4004E6003D6A08990235AD25D50D50048600409433791F8D360077
+0D59E8126C2354A005880038AC27CE28F326C322E2019143007F055AAE04790E
+41862162BC3A137B00CD0847DF25861261BC39138627FD50A748009A50157948
+00B90F773F22E02C0BEF39AD2FE51F57F700AE22EF306C1460A31E50E20A7500
+7E055A3F139B591684481AB50DC85329A5123D6408DA0060F76C1353F241276C
+2B489901E07F005322D912601A812550B826F81A49800067043EFE741F5AB507
+DC00A50B63B22DCA01268407DC0040EC16497C0C66017E099712782C7A1FEE66
+21942F1395265EDB0C77005306F00DA150337E017504FB27460DE349006C0E04
+37F41039CD2B129C1F6001BC511245884A085F00488501448F145A018627BD0B
+377F01409E1CEF26B31FF86B0428DD30049800693D0075258204C15022861249
+20C929097905E504D1106C3B1369F03C079D21F40DA5056D0E5939BF12E71BB3
+6C112FC90D356D246012EA2641067948BA33A41B86126033B81EE522B4153F65
+3C04AE0B4A043AC401F64500CB3401AE27E81F9D26653D19EE12BA1B9C4B009E
+700235B5218AC46220AE6C005FF9074ADB347F0472C70027B926D43916C72706
+3DC2500F970049FD22B42E0083325B0C84013CB66D0D63C72250E820AF16F70D
+9F40017828D0059800763DB8491A633F26C904B33F04914A306E005A34D22F9E
+00790661279433019C540064F5168527964E0170EE3A126A01465A27BE029307
+770490314FDF00D0522661BE751C50790D85591F7E4A14842A6C0140D5049600
+5A2F623912C83D1AD5660750275500850927861A378D256C1441FD3A1D659502
+740DA1600A6EDA67002EE51F3E791063076BC64104CF5027C2104700AC3F1385
+340179078646315C1CE710A318683445A62501822FA100784627601F7B26CE03
+C23998116A0148E11FA9267B1250CD4020A53905AD00D60530BE1054009F1AF7
+0BD00E793D1FD8263F5A019A0D39791AFC004808DE123EB53B09A705F73E01A6
+0FC75B1F792640AE05E100A5520B912A1C79F10C1EDC334FE504BE5001C905B3
+00580DAE0634F91F87002CB3224A129E6C045BD203AB27DC15510E973800901F
+60EA275901EF08B95D27D45005C600AB26800050B901E50F5AF212BD0D54FA17
+AC0EE600A30D68275504EC22A612338603D100F008610CE60481481D69384779
+1F8622D3502776356C4200FD50006BC31BF92147B1036C1186279D2386006819
+E4276D1260D81D7934009F0EC56B1684236C3F22F7014DBB0030946C4105900E
+3D6817972E602293277923D15A115037ED51047E01F4360CB91943861B7A0192
+24F51E66E212780133981C7B26754518920F3479277E125033F93F1F70278604
+3877268532067A018630591550FD01B22A5E4307C0531978375A22902779296C
+12DA2F950AAF04E2007F3B0DB400C004AE2F600DB34508790563861F42BB4D22
+CD016034D5279E048F00BC23468C044FFE2D530127F40C52CE049C123E841441
+AD03D423B21B45A101EF4812E9400BE1019C400177BB14661ACD31A41B854726
+970035CA0D5039AE0085092FA426D55405BC11CE3204FE0040A701F00966D304
+5D089E0DD416B15000D902C24F22DA4105C5761F3E861A7714D8386300FB480D
+9D4304B500C3269E014C12FC225029A8420596315A2764148F219937129E27C5
+3400E70A5D00970E40EC04570D7347315A1A940037B9126707DA774901AF3012
+7C2756B106E76A123D0879005ACF1F8531007907A6661F3C5E1BA32F007E0590
+49126C4004DB510AF55A236CEC055C3449C35A0080083983276A00A25A226AD9
+1C622694351A8926C72F7A003E6C1F95213D670B98511C823600BC0848D000A4
+04840E982E05C515DD345A3F1286195AB76D00649A0D6018F45001E408D95004
+EA0150DC005A11944A279E16F029508514A31EC000FA12D0410BEE5324812099
+401AA73A1D874509EA006C2F5000C25E9A26EC2F046C0A52AE1F86340074BF08
+F00446DF27C3330BE500B82762137C3104B1002F8612D602233EFA1549A800F3
+1F87380CB247019D0BC00242AD0D6A018E2450C404EC0B49AF1BF72E00B70DED
+50278212347B276C26E41C4D92237400860AF84A00EC3D062AA41C3ED004743A
+1D93126B3F247727801A6930F24101D70665347904C8073F6C43355B276C01AA
+306605D201B435008804D26800DB5B28921FC9219F321A015A1078B426FA123A
+D40455D90F4581245A8C0C78014F9720602F8F00AB22C46A1254A1217627699D
+0E7031C71A770D4F06DB78122D7D21772F4BED0053DF4012FD1A613056367D00
+7907418949296B09A501E2571DF5118D013FBC016430A722691F7B327720D44F
+0BE801572FB300D5472CAF00C909A90EC62287157A3050A512BF1B3D602FB600
+F40B9A06A351207C13962F580C50E912603E0D953B01B60C60017E0D51FE37BC
+49003792019E60247C2F159A2900A93813B4213FFC023BD2074AF90E6D003EE3
+4006DA00A60740BB015E0B8A2267B52C550060C605E45012881FA03A1AAE5A04
+780C9F01BC14DD235ACB26049E18D327783A0694035E33CA6C133BF21249CD02
+AC0CCE056000973B2685207912824F127919801F863275055801B60AC304266D
+004FE0019310641A7C29CF3D11E600BF420DF36D18792AB21FFB4E14812747F3
+4927D804711A7F16E159206E3400B219F54904CC511DF869075F941251A51286
+1A368127A41A7826941D5736F1207926DC5004E43F019424F43E1F853700CF07
+3E6C0E8500349227DC26792784059F3C016CF134600094105AAE224FB50C5000
+9F5A067F013783266E2746BC4C1B6CB509C502F13F06BC01FB355E00EE2647D7
+4927711F8D3FFA398B126C27DA25B0490066048B4A296C1B860027A5035A076C
+0226C7089F046C118F19A841CC01693D05B80CD1560D6C017F366A0B860127D4
+2F00C5246C4304BD5301D305610BBB013C870C6203499F1235972712D2401179
+03B40A499D2552BC01F52849D10AA3005F08F111406719AC124F0CBD5022FB01
+35CD002A7926DE1F40B81BE16109EF00981A7A0EFA0450336B365A1F90266441
+0CCF5212AC00660D9F00E34A016A0848AC0A7901810532E326B338089E04DE33
+4CC44738D933BD417832501FD322B8003C60082750A4128327771F3FE426AD1F
+E912B534499B04417A1A8600E12F6824951F39E851236CFA12B227CE2F006AB5
+0050865804A550286C30FA1186046E2F5F05B3227B1B3DBC401F5AB702E72791
+25860439791A8A63126BEC08A904860D6C2C5015AE2F5212E30148269E1FE000
+AB0BCF003B9D1A88032F7B20921CFD286C3816B227D01A2FE91FC0374F981483
+1A61F812415D129A2200790C840027A400E5790164314CE11F79F00B40C300F5
+049711784F0984003F6000E01250B909E933610D9D01F1094E8644029008405F
+0080056CE9280D3CFD0626C44600DA0D75005A34DE1B9E15860D5A01F95004A4
+750030880D5C00D81B62E200B53005A03E1A85385728D3049E00874104A36227
+6FAF5A007F12672295275BE70DBF2447A204DF3450048412A55F0C84009E7500
+405A0CFC015A09C7015035AE00D00660EB27B01F50F60D673E0E55A50A850495
+002F861D54315D3949BB0132D9245AC6227727791F6B365413B1401D78123FC3
+0027AA2BD617C1501F9B42195AC9791541923012822755C526B013416600E948
+38D9306B22831A3BCC6C1D4FC33649A10E2F730C5ADF4A00C34901EF125F3E1E
+FE4A0FDB3400BC06390DEB2744BE490483084379015EF2123C670CBB5A21D300
+32F21F523F1264A31B772649B846277822861F6D2687390E6C0488125A359C1F
+CB2640FB124625AE6101E608AA0DCB002662A105952F038806A50CEE009F017A
+055ACB27B361176CF70E680179340DEE370BA901490467D80052F1099E043C87
+017908C05027049C1EA50DC200E3095005FE2D0197270142BE1785263F0F982F
+137A218400A66A0A307F225B931240CB6C1985015A11F82EB2153494270050B5
+00773E019A2786460269BA05F13404D500860F6A00EF0DB702E80DB40149A425
+E02FC201B3086C0090052E5CC46C10229D347C236A276CED401F7A13FB501BDB
+38862F5922CF27FE320085043CA004338226961F51A2044AD5278521A23A1DAC
+22653F20E51B4AF520953110AF6B127A003F652A4B8E248512A9600C70EE6B05
+3EF700B36C2261D505B131C7402377B801C5083CF669012FB309D91F79266C00
+60DC05B3731F7C2CEF19C80D5808C578132F92225AAE229F2ADC27901C7C4A31
+633A542FFA0860007A24862051F24715BC78004906D777175A00D702AE06500A
+C4013E690DA649006107AC3E0E841877461AE80D49D94F00BE09E60066269200
+7709F55001790C7301BE5C0084093E6300D36E0033CB2752EC05B21045D2006C
+3A19CF214A129D5B1F793604F50D4F3868025A07DD003D501F8926501EA04B26
+60389700A40FC746216C390ACB05460F84253FE9244005E550007C07467E0A78
+015606C03F09A400C50575159234C7184F05D529029836511CEC27872B04F80F
+A12F8420791A86275AB400793C12C027F41D925000B906D763267C2A07993C1F
+752EAD16C6305A1AAE3D1FC22FEC27961636A527CA12B3541D41F44A0491196E
+3A1A950133A222E859078600C73201A70BC8501F8100A11AF925A1129619E96B
+01D304780CE200860D42D31F7D3104A50EF656246AD85A04B565006CB1355E1E
+BF27DF122FF61B3ECD345B20DB1A7924831FD200790D3DF06514834111DE019F
+0C6B00B25F376E266312FD34B600E3105027D3236D0B8D016904DD4728933B01
+9E00C66812EE5B0D86043C7812DF346003930885007B06E0500F70017E2F0B87
+0626973D0EB502CD5E26F963087C0130AE27772350D7412F61019D2DD927880D
+4F346C2B550D40AB1758C12847A91AFE04583E01EC5A17850034AF014A1F8C34
+129E2A0D8E01990C730199590062A30C93008504612FF310A9275B269E6C002E
+AC04BB5F2773213CBD401E01AD09E00492006C24612F7C05934A02EC531F40B5
+3912811F5D12C31A5A4022864601D12761FC004C059B12CF265A12B948336800
+BC22FD2650E237B96001DD672240500D790440C412488603F8059A0D6A048711
+E82679086C0160BE00EF05B379002F91360086043577279116B86C223FBE2749
+861A7F0DA600E04904F85026D4225137C81A3CB940217926EB2752B900497101
+860AE50140C15A0E7735008706D0581267DD82277A1F5339B214CA0AA526F816
+34982705C96F0D5AAE01F008A24E33F904B100329A219013407FB75D22770047
+E24D270DA91B77305A0592006A034F1A852F0078F6019E27AE1F5635DD155038
+621FE627BB26A51A5812AF22E23F127F1A653A1FE05B08F34912D25007C20082
+32089D006906E212C229FC27771A85385A007D0962FD004A86046B09E001500E
+991A3B9D0C3EDD31691FA5224E1AE72255FC1FA343009408310DC7004BCF0C5C
+4003831A75015BBA0041833000E81A3F652F6C3E00840D77155ACA125000BD08
+264601EB2CB41F79146CF7013BD90D9F4012AE1FA127F00D5ABD12347E17DB00
+940A8000689E0DAB50007A085A0046CA3A00834906932651D4019E4612852297
+30601F95235A11F3501FDB2F9A36750079055710C422B112C82CAE3E16820E34
+F126A71F40BD6905FD0350CE1B5A13BB500485087B00880A397F1234F526A847
+5A268632019F26ED4935D70DAD3E1166D615AE54267900C805B411E323AA26E0
+3E076CF4354979D70E711A8D0D6300A5043F9852057D1AEC4C27D9086C019A38
+1B54A30561347127F21EB8431AD10131C52040FD339D0467F03E1FD028B5003F
+850C27B4004D05BA0BE9004FD72D6401AA4A0A60044BAB143BA3400176078449
+016C05D129B8501278005C8612348C267712478605970038FA27CF32B027CA49
+01C4610E7700E603B511F2691A7E0F97005A306C1FE24709780436A10E95275A
+1D7F2C6201406A1DB42D04A227025832A750043CFE4025D11F6012AE35640086
+043A982CC51369D60827E620A6065A0179310C8626428509A464126D1D7E0C50
+049901770D86164AFA6C1B65DD6F1F6B277D3804A10E7B3D12C327ED1F3FD063
+00DD5D27EC1A32E21F9E450460009D31CC2906E75A00AB27C50036ED23447A12
+6201730D6B01792F500493276C364421790538C4005027B81BF30090042BA822
+F8611FDB490AF54000CB1F78D004920055851B66C21AF00C27CF69119E59087F
+00F24901D42D41C760167D248D00478742008611D336BD2260E4005AF4127435
+01B705DC29BF1AB134521FF42DC7053801C12D0240A5019D0CC66C1B52CD2677
+008A0DA20150227C300A9D00A9600D3D6412871FE1266C034EAA3D1AD5128022
+63A10F5CC707AA28961DF4219D1AE224B31AD2098BEF5F19A5582265E4046C44
+0C6038CB7900503E01820433772294560F8609503A20EB380BDB00418400449D
+003482013DC32FA43E228514AD0B5000E805570FFE2F04C35A2B6A2584149402
+39A71F3E9E00E3572592480E6F385A12D96303781D60AC7A1543870F33FB2666
+213FE6004104FA50276C32840BF712B2551F7D420179BD00F136AE0D9218F80D
+670185315001F6072D7902348D21DA045F385A05AB0985005122A3122700CB3E
+01860B3D85139E2DBF0E52126BB81BD0275ABF00A50438B327FD12B0700E67AB
+22941227B16C125BBE1FDE266A0F5A03BB094E209526792749BA441F6CAA3D0C
+F004AF00530ECC4D117F05602F500B790139AD00F709850030B9269D003B085A
+EA1FC450098300AD056727B56C380BB700D51994296A0138CC1134F62050306A
+18497905602D9420C64604A46C1441B21AD64E006E1150BD00D63448692D40EB
+61017940964D12FB2CBF204AD5017205861FFC2706860C9A08458612E9650679
+01623F009F2F015034FA570430E42905790B9300EF1F92276CE35B04FA0D9E01
+7809CE0150138027771F40FC2F7604BF26DA1AB313C927EA5B1B6B27A422468E
+075014E84ECD27048000932749DA1A79128D07249D5C1B7F255A04AD23E67004
+50860672039F0BC60039D922B8003E781BF0233BBC6C013D840DEF279E310C7D
+268D00F90CA00430C11BDE042F7E087704930037A622E7344F019249346323F6
+1935782E14D52750BB16D8265AE17C05740DC651018C4938B41A446E3C06CC00
+4712812F691EE03364229E27DF00B307CE5E0AA01C6B3250008427790096082C
+C510910158ED123ED3680A34116BAE376012CC013CA12CF5354FD90031F0053B
+E14015830D3E26DC1CAF29DA2582275AA00270125AE010560A8800520EE65925
+6A1A7F01E4451BB4125A2774194C8606531350BA1FA4266A12F75A08405D00BB
+6818DF01C24C006CC8019D4F008D0B3B6B079504491FB8213B7A22AD14F60057
+34D30DB25D1F8725B500C706A34800B4510D851B5B346C3D1A7F0040EE01B166
+12FA1E69354A77007F30D53E046CA8013978C27D015012EE2F4D881364035A01
+A50E49791F9662016CC80048B87900450A920E4A01ED09337F27A4320569BF34
+49CF1FA22E06C400B6355312A165043FC404B639DB0E419B3A860E5500E132AF
+271679C61295233DA50D406E1F872A0D601ACC3F1FEE2286441AC01073004AD2
+0141096C2786127F01691543F50477345A2676391686203EF300479B04E80FAE
+26D95619970D3892043FD712B81FF149056622BF1F522A9E002540F72776009A
+0740E70DBA22921E3DB502CB0943B90E502F9006276BBE60265ABA6C1D42C019
+FE01498E28009608267B01638612794B06A96C003DF079166C4600672EC700F1
+0140D45E1987004B9E032F6C07EF015A2F9E11EC05B243E33A04A75300AD01F5
+365C2AED33971A60E9821FBC04DF269F2A8C00319E12E60AA901EF5E08D70269
+32C017562965019135047D274DE123509A015A069D3C19BB0D78009609FD0E47
+A6065A04BB5026C61F592F6D400AE16913602780331BA022F91A5AED124C05FB
+004708A56300770D3EB615EA4F1DDA5630F4173FDF3B22FD152FCE2350003BE2
+0D921A7920645229AE05327B0B3DEC1E57DD1A7D288814D0005F41316E002691
+4A0D85402676127A008C0C6B03B30C48006232771C5A07EA22C0540B63276C1F
+8512309427A513780541A500C93F125CB60ECC065A00BA452786346103945031
+EA40266D1A5CD71F772796330B830179049E00D17947008625A001E956007D03
+9D3700961F792D8714D03B229526CE61076C017A3D00B00D4A97005E0A960141
+8505930DA15A1FA827FE01B20823961446A222CA6301833700A226BA043E7927
+AC04980EC45512F93B18D95A05A427DA2346C74E1F8726D612A30148C44C127B
+0439D822AE00CE3549B7004B0A53D126F9127B1F50F700276D1F862779310AC8
+00FE0ECC270085145AD801B02F028B11E11A61E614B036FA1A613B062EBD11FE
+0C761940D7345E12CF4931CD01A320794E02E7055A40208527C822A048278604
+39B41FCA2754BC275F1FD1310688015A12803279E5014FF6006D1040AE0DC850
+0C491B75FA09501AD64926630679016BB30C31C61A6108AE015E06F72E6C0593
+27FB0D7800B53549850172107F5003790E60F775214083006B30950C7845A537
+F300B00DEB631C79153E7846E00CB2043384227A4837AD0086054B396912562C
+B415EF5A1F6C345A27AD0D6605BC5008860462400DD8003198123DAC0EF400A6
+0B6B04FC1B50D5196D40038D0C6C00EA50126CF42649D74726C80D1A4178128A
+27E0055A30681F78E36900562FC1680034F41FAD279E2F04668800509C402D92
+1D803900AD55217918A9402D641AF317A72FFB3F20E227C51A4801B30437A01A
+E003BD2D0568025C3E1F8539019E2751B50022673B1F8F470BC800EE085A4026
+B51BD400AA0878009346018905A500D1048523981B2D7927E512AF6C2454F026
+68C6006D1B56339219850EAE013E9E05F24D34DC13783E04AE36027C0B6604A5
+006036B026CD04571A9626FE01B5043813AA228E01277AA30A6C00DD1A50E33F
+11E83901FC124ADC0E63C93E0AE2003B6A01DA0B9E003C6C025A05870C99008F
+26811260E50860276D185ADD13BB12D74906C35025DD045F39A306C36C00F954
+1769249F1ED063017D27852250CC263C0DC228DD267A1F5A37F70068F100A51A
+593C08913704861A502F9D38D51241E7345C2E8012693712A3005B2FC2208726
+61B41DCA27861F5094D9006C1D3BB74000771284274D924607DA0E48EB174F2C
+923E128501771FB025782753960031A304501A8B2650CB12861F772757B612CD
+26B91A3B673E12E02FCA2346890EAB00843F227C278C01772F6B04AA0D8413F3
+267E1941A21234B7277E0F72032FF1135104F43F056CE5602079129E0840B213
+49920F3F5B0C45C301F616B55C0CA901E2095F01B1056400D6084EE600BE5A1F
+7E0D99016509D9004056006C10F92D0616820D9E601269C220D2490BEF00C332
+6038A4056101C906B85322AA0D55008405CB0A3BB969228227F2013F97055A33
+B204ED0640600892004EEA04BC53066C00790432C61F50F307AE00561AAD26E8
+12901F682D97025A01E42C055C87019504DA36B2500A6BC0325D1F86124800AF
+0466304BE20177072FBF1FD3339C1F7B286A0044D22779144087274C831F9D26
+931F3B8E4004D026E51A3AFA3F169A0EEB34AD3C026AA07127F14300E7073073
+0134AD1F531189017F1250D778203A6004FB4833D06C139E2086194707E400A7
+105FC30D45EC004164259C1EE3375A328644276E219C27B21EF2540179361286
+253BFC400881005634F600CF2147B64D0F6DD51F3FED13435A00781F9E380094
+0CAC00C530942750F000841E9227DB4F017C046C00700DA122E334108D2457BC
+00F31141C40B5302C70F6021832E7800508604A75127792277135ABF3F2201A9
+04347F2753A40D9861046C9D3F21F727BF1D470C6BE814862B087D043DF42F50
+00EF723E137A2E741F52307822A413CE500E7C00A90FD92400A208F800501093
+3912A126D14801C663046CD41B40C10D76400989126B23974400820D6031AC1A
+FD105104E34F26DB2879237E0FD60A3EB3116003AA10863D26B221ED36C8017F
+06855000FA063677269A013074F13849A601FB08AD103CAF46256B0CCD01B805
+E0005009DF5C124CC40A94013DF3411CE22900D15A056C007D27A5003FAF004A
+A326BE215D05BC642703CE5126BD02DF06AD0086096C3D01C12F6B21750150CA
+38631942D66B015ADA0966008234501FB4142E66A6045E1AA5502FEC00CA0736
+A727BE007906652E80C4276C118B01600BFC01531D86215734FB3D226C00EA58
+09844812644026B21FC53E1A6AA70E651ADF6024008D08317C276C1B5BCA0B2A
+DF008C1F6D2F6827981F8531D238791F6B24D6125A0081105AA03A0D862F9F10
+F21A8C245A35D31266008B10983E0D9049119A003A84277A20D14A2FFE1D8527
+9413F9288919770CB9348C0D2CC120418823A615E6097A005A9E015027DE3D00
+C70E497E1F5AF60A6C2149D226BA0D41019807BA1A3DA54E186CA84000CA058E
+0C5ACB1AA44717952F01B705DE5D0A4704779E012DD3048B4313B94A27D95619
+B500ED2701649C125033F10D9F1B830EF34700188600FC10AC2D9B27C622B402
+4719B226DF045D345002DA059C0B50EE401ED44A01DB1AB43241F95F18A30C63
+3E049300600CDE004804A107EF295C047901A458077E0038ED046C219927E138
+0DF0128605946226860138B204309D12E003553F0078D72464334875E80439CE
+2707E963276D1FAD01457E0527C200FD60277E2F1277F262213CE74E1FAD3406
+7B04830D6B0097123E7747B73E006CA4195A3E05D0003C5F22B06727A2305801
+770984043D672DFA6B00791B3ECC13B4651F72267E2902A358043383236B0079
+0B5205C80150F41ABB1239AD50236CB554267B4711D3501FEB243FFD17B06112
+792FB5015B109248316C1FB62B08FA1ABD6111865600772A850FA56B1834A300
+F7260C582B88009F3A50129B00E3288B1538D5611279390E961A55A5004C0CC2
+005A087F0056C927FC1EB334E72B50CC04267B1EF83408C501B560246CA80491
+0AE4044508BA4022E81E50DB17880B3EC5084D9400820841A911E500BB692712
+77FE14AA2FE927C0248E2776380E7D276AE53F01980D390BC701379600319B12
+850069335003D127920E46C74B04B300CC3E01774933790627E3173ACE22B01D
+F43804EB5912491A7DC505B21250227801BC3780126108F2690031A01F55BC01
+EB0435D81B9D27861EA525EB3A0C6A007949016505860F4FDB0D61054979217E
+4012F63919C74934125AC86F1463950040A0056F00B21F5732E9184823FD2E00
+85305A3F0F79CD39006A0973058501690FE41BB75A00A603511FCB275EF1711F
+5ADC1F68BE065F2FB412C8229E1B4A00FA26641A7F22780C5AE510AD0050A241
+0072A8044F0979005A9D260681CE5F003F501F6AF308D3266C0449C6239E2F0E
+894B04DB0B45752585492770015811D03167126CAE22C337129E27BE40249801
+41BE2FAC00EB2700964603863E017D9F27003DF4043AC26C0D39CA4026790E85
+0160B66C0160C94B0A9B04F623015BA526D61FAF163DD85000840634EA268415
+8C04A5093B00AE2F02820E4E3AE104446C00830D5DBB73147901D32EF818AB40
+267E23EB390BD06A21502EE76126C4142F6AC03D012FA714E179013E612F980D
+F92E05710057B11FF03F24860038AC14C90DB439FC490579019E2F03860850EE
+480A7900F953288213742284154BD8500DD15012EE1F02D9781D509112521FF8
+5A1261EE04CF27A50C3811B9263C13DF206C3749C02D0D82005A354B95122DAD
+224499126808D333501F79BC58166CAC22F60078268B1FD92B49F50141074FB8
+440D97013C6900BE05551288275302FC0C960134930D4BDA00501273F1216C02
+31BB10A40056401A79AB34DE4006740166AD1ACF5A087A006241046C1AB627F3
+2250E1412C840031D4136B3A1AB40CE801CD093D91052D8527009A2F546B350D
+B70131D8058A0028AF013A97147B2250D9417B0476A50146AE00840850E73441
+B908F001417D045BCF0150C1385A00F76A014905E941085233931AAA0E620496
+08369E26DD1F5A27822453D712921F66A13E00C11A9E277A1F47B8013D850B7E
+22AA3404840E9C5A26801FE712B16900500B7915C827BC0D3582112BF9203EE0
+0F9E2685005A0A9100620FD71AAF6C2052A5068F005A366A2B50B1125FA91A65
+B94106C00C9860267B4926AE34497923851E5A3F00F8076F0031F41E5234861A
+DB27B11F610497177E2765BC0DF53E1F792F008625941230D8269F2D1278BB04
+48D80150F14014C051126C007C0AEE00B309783704F22E04DA582F84086A00DD
+5F186CFA1FA529E9014B9926D13806DF005B34830127EB26BE205000952650E4
+044B80016098226B2FE61240CB3B1CC2279E015B3F0594013CE34430D31C9F04
+8600E23B04FD0857178527FA4100E308A000690AE101BD0CD604B86727911BB1
+5A129200EB05600D6C017812CB275F00C90A50317400B20AFD610EDD05409B1A
+810D64D000288410359D27007A346800E729A7328C1B3D6C2748A64C15865012
+950D4AD51FAC3205CF44086600710F3FBE0854004FA11345C40548CB4C0A8501
+63FC3B107E016033B51EC63205BF00A5045AAE01864C0D7D2450BB12F628C01F
+611786046212F227416B2678228B30DE004C052AA71F5915EF2A96145F32466C
+2D5012C6016A2706D32E66218A27A42FEF26914907FB401D85259F1256268F13
+369D1F4FC4005A04C13F1D5EF922B25A096CB11AD223901F7905CA0160C104E6
+0026D83B00C52748F704297F1140851230AD27CC1FAE68193BFE791A65357B1F
+862C11923E1FB42F046CD722A7198D00480C8E4C1A77279235186D21F53D04E5
+07336F008D0D7700A80E4EBB39490DC81A9E00B04D016C37AD6385104ABC3E76
+0D54399E04FA099B00841F50EC407E420DBE3D0BD1006909B300377B206AAB04
+E1013FD56C0153BD043E791249F0387700923606790039EA1230830C5E05B510
+5A2595203F50139D680A8E601F7C00346BA50150F000B45B017C05574000D66C
+0C28BA00EF0CAA04F75D01DB760F48A01C405A05ED266ADB5A1FF03C09D20E50
+EB079D00AD611A6BA62280274BDF4827FE236C0079A5016010ED3F0DD1139422
+0133D40179042FB400DB1A7F23641AE22FAB0A3804B60177189C50337F12981B
+50D8019E0D3C571F4EA4053AEC1B2C63E901AD256C1848E012B04913CB6C0355
+C6014BFE3A5039D64906F60CAE6C311ABC4106EC0DB3771239CD2065364E22E3
+1C3EF50D862D02AF411278275A276D16419E27005AD1087A00B13E11A3084401
+7A0495571F7B00633349791245953801D609C5045D0B87019C15E921532F9336
+571F86264907E95098266819CB5C1F8127A6003EAD5305722260C16C264DE447
+00FC0642C8314587145B2BE400BF77086427860EA8780B27841A930CBC032679
+018631501F8E263FA412710292006A1E802B752700FB5401339822603E01E25A
+0D9F07C804A10C986025771A9F5A2364CB04AE06D600B5300869AC33149829F3
+22864A2D7714AE25BF4200F62BB223CE0C2CE02700FA49125A307822B41F3A5A
+4104710BDB06C204A5015AB3731ABA430BF1375001F5076C0E50CB02319410D2
+00490E921A5D128522951F5A01F5043EC6114A83192FF815C4015A4000C74934
+D5005B2799502FC71AF20CAB05DD00792747BD19EA0EAB009A04CD40801078DB
+0346CC1F9E31007927862479276C3601B304E14515ED01316C208338601B79E1
+3E1AEB44026C0D6304CD00FE5127701134A1266A108203A56604B35B0D8336A2
+01F03C0065DD12AE32BE3D1B7A266C2CF70E48003B042979008811842248BE35
+781248E8227B279F1FF200B204CD396301DB0D7B2661A500943405AC54008248
+33DA236D218004663AFB0542E90A62450072375A17641BE30B347E26612FDE12
+3C630827B11F50288810690949B71AFD015A0AED00CB4A12623D00900D49890B
+FA4912C64E0152057B0D5BC31FA530931F613D04CC00E45D068801D81B5A3A15
+883E269C1FCD177C0E50C4400677006808834C00E51285238E1FD87B65CF1AAF
+26C4279E005B08F03B9600AF0A5A047036582C6C2608BF5027A81ABC09297F1F
+EF670E38B9270D941A980CF511A616881F8634009F12B52BCF0E9831AE4104A5
+5301990679225AB51AE149006D0BAC0053F8278411712E43BD3D127A1B8930D8
+1FB75034D41F9F390086042FA526C4239700368601E60950BC0D9F1A86471CC9
+146C2F41BF00F04F01DD0869035026AF1A6C258927CD27F71FB446316100BC06
+60401D0A38820D76016212D31F9A2B046B3F1D4DFE3EC712A806ED45783E1086
+00683648DE12520126D26C0461F0055D00B03A512ECD015A0DBB692782015B26
+6C00FA048630771FF028CB129E01417C018536EE5916C43404A900DC50039C1A
+915027A3046D008406279A00790757AE2365F20C73006727F846186A277B1235
+81276E3501A52750E8049F0E6F401F7E2252B62EE860009309F501A10D90015B
+059C0ACD395432EA01A2F94F00DF2D4CFD5327750150BA12DD7F016C26007C1F
+8332009E04E52255EA0579016CBB42793F1C8D204D39CB315A0493006138DF2B
+5015D71E3DE506B25121490FDF00470D86005035F40D30BC129F042F79219440
+1A7E3A1EC40D6100D30540FB15BD2F49F6125326E51235CE173F9D34E41AA312
+57CE05AE00DA5A00EE05B85A0E83003D6248279912D20D9E340081063FD83050
+1F79346A1A50D13E1C78227D0398126C275C1F8F23A2093A00AD0DE924613A05
+27C2129E502FD70B51CC276C16AE34139626A41A3908AE00E60BAB007E127626
+E01FAD0E7907A40179044CA613873B1279C65D226CB65A1C65C11746A650206C
+2750B801E3086AC94106974730F0344AAB0E5838630A7E0169B94102A4600084
+065A01438304750734862278411D9212653F23FA30AE0CC508F8016C2F6004FD
+431594116601BD5A12E200B7300D6CFD01AC14E0274FC2040FBC04641579CA26
+7A401A8E0CA27249335F08E20448991F6801A250017E4900C80B4BFE5A1A7727
+5A34DA22A40186085632EE1E8E2649FE397100436201D441012B92084A01DD37
+0492096004E900CF0F673E2486135412E75101760F82012D851FA411D022AE3B
+178432501E9B27DA21BB1250DA24B54B0FF5320BBC2650D00C7901691A7B2686
+1E3EB000C2541B6CC622A7268638048529742260A900265935680986003E9F30
+5638E95103406805C44A00D44002F100A6401F853700B60EFA3B25C50CF73460
+2C92002FC4049D067A0F6527FB1E409312674000C6095812C02FF31FA3330D73
+B914F7279424794222D3277A30841F77059F4900F527770027C622AF26DB5E08
+E22793013E5F05E000BE0CF404790E6C278601407D00773E019E6B04992F0092
+1FB427D4125000BA51257F12369C01347900F60B48DB21AC05EE113C8044B10D
+D3521FF21678DC08A5002FB31FDB3C157C2F5A13AC1B790DC5620FF75B22405A
+098C1B5A277904DD124285226A31F31F9B00791250CC00B205D15A227E279604
+870A6B0550EC203F5600690CAE00FB5500A10DC20640FA3A18D7336104A5486C
+0B8600780C39B200771A54EC268F206C277C224D33B200F01AB3320CEC1BBD5A
+1448E11A5EF539610695005BE2346604DD0745EB0B4FD40D416027B00078124E
+2E7904D62705822C0195346A001B8312447E0B6C005AB304F90882266A278630
+00982B0579AF13D2003F9D0FBD50256CB501E00DA2015F2FD138B405733C2087
+2E0C9F01E31A6C223FC42794007D08A134BE3F1F84321282296A1BA7540160AE
+029A10BF3D19DA3443F22949921A5038C307790041CA099E0067CF155A394978
+089A5B268A0430D500387D01500EC950227F38058F119D1A5FAD26791F6A2FAA
+04781991275ABD00CA511F65F51950C04106CF5095265FC418F3268711349127
+9F31CB01EC0452D11869C03D00722764E3046C400092073C611F832650C10858
+036C4226E550016CF8375F31A50FD879025F12AE27DA1A6E045AD20560B60AF1
+02753C2290122F78267C4F0886017E045B07C30060F9126A2C49A417624712E8
+4003810B95042FD91F47C11044852268A810CF27A40334F00DAB4220F6278532
+008C05A401F11250D03E08FB013C62400A9400469A006C22A5122E05F9003193
+01A22AE5500E6C007A0D582293123687034F11E824860D5028B316F21CCE12A5
+4000D3123E861AEB0E9F007914C0264D10BA00436001274BFB461B4E019B26E7
+132E921A3A782649DB00C608E4571ACF0035F227AE21CD13991F793203880BD7
+0431FD01AE355A1FB82AF826C25D0085012C6FE700B3082E742085134077176B
+01C55A005004CD4912DF38501F962B005BA41B840DA014EA27B81033E30E8902
+5AB56A124985227749067801BD22E21D3FBA3A07DB6024F327891AA401CA1E9F
+015C2E6F375704FA50277C0149A5225128BA3061088501961B770CEE3AB60984
+0078CE5F0E84004A7901E35700C9115A2F47643F00860C459D1C710D542F6938
+E605A64B27AD1F86500D84267901930878006C0D40A812FE64053C601A4CFB00
+B90549DE00A22686300D77B73A1A7A2B5D0DBD620970E512346C27DE216D017F
+1A914D256536ED1D3EC639AE04E00C35CF1E60385A04AD64006CA03F1A8201AB
+0651305F357F0D3BD0059E0087326A08B10CF52D006CDA095A04F23E20DA2752
+CC267B135A3F1FAF2A073EEE3141C30DA335129A2786049212A420B826EB5F05
+C4003EFE01B50D426612DD005A3C01BC3F1CDD14C7315021AD27E21F7934511B
+AF0DC83F960D42603586227A2AD71261E73E1569EC01B419780027CF360551C8
+0495008630C1385704C508AD00437C01791A5A3E1363A90041F5128B2F5012FC
+205000B00E4E2078C50CFC1941EE6B12501FEB23BB1B92306E1C60BC0D36961F
+85129D4F0688003D6604A800D76C0456B41A640585216F2650BF06671AB423F8
+016C0679371480275A95197A279500882C489B0EF06C12619E043E6A0EEE6012
+85025A06D30092277E28016C279E12EA01B009470597005008A50040990A47F8
+3FA00349B120704013B547096500E0287740277516D72700EA09B57B20532F86
+08A501D1269B057912E75634CE68003E6C009005520079AE3D0C7A044700CE10
+853914944601C6346A00AD4012F71ABD5022742E16E634007A27A412D604FD00
+5E34EF3E0070328428D81248B404DC0F40BC045A1AED22B90436721B41CF0027
+50B7009F3F01CA4838BC27773E12F00453DF12C4006C27501E64FB5723B21FD3
+27881F5A348626116C317E0B8D00EB335924F81F790E5A01FC0BBC520D4C5D26
+6C2900EE04C7266A1F7D42017637C2482A04A00A27E11F9D2E4BD821B627065E
+C62763E459219F00DA4902FD265E05DE3B17D16A257F0B32EA0EB3510C6AC511
+F2005A38611E88217C0154D10C9E09680096561F6C2D80015035D14605641378
+CB01B02F0A73F611792C5A1F8F2F0C98006A0AB55021AD1679385931D806BD78
+11490181327802600CFA04CE0061B701EF1AD625470E9C017B0541AD3AC94922
+86330484B2119B01CC48366A0D9F00D84A14F04F096801D27726508E046110BB
+153C960A49E02F00A70D49067E276D227E275089127F1E5A9B0347A500559E01
+893603A0253D95452FBD15B33D08CA0DAE2640611EE727BF3408F600AE24EE1F
+85127934A552082982155B9D1F3B6803E408D0054EFB1A52E8276101872F6900
+A50C88195C3C00D228BA0DEF123BBE472F6C22961E405A2950016BC46027DA1D
+B96003277E12A1005BF11A48D734821B7712BC501B792D0BB03B22A52792153E
+00F54631A756078001603286019E691F8127AC13F004AE0DC33300E827B3012F
+820C29E2381A782660D21C86015B0A86046C009B502F761A8912BD3F01790D45
+7D2261117708A600BE0AE1003EF95024E30147C400B1401E7E263B77017E3404
+A010D94806E3501FF9023E971F7A256C1B6B275A93007810BA500CE607C104AD
+79164A028507953C1275EB006826DD1F3D710067054AA607940133F906409855
+00860DE9004EBB6A1F05D50040EB2EC11DF712541843F901CF03623A541A6805
+98410B791041FA1CB85E126CC206F30047790DF91FCC2253EA2642E10149F600
+6D0459A11F5CCE02AC30D1385A2A6D265E277E226A00970D8A30127E225AA40D
+64AE129E23C4431F8538199A350E822651B601F20CA5048500C90742E11AA000
+3583277A1F663B0DFE27BB21405A00D234154AB6460E8704C32E22FE1639E624
+41842160DE0327C51F65433184073BB27826861A6C01476D0040CA7708369222
+509B00B334EC561BD44E1FC76A04793600900440591294153BAE2C6B00A6330C
+9105279510399E27DC163DFC042E861778059D01DE0CA0039911D81AB533501D
+EC5907D6043DF10045DE086C015FF3005BBE0154CC04B3126829408B32E4389D
+21AF122F7F2664D704B3003EDA268700521169F10DA626549E076C04D0306113
+A37901955A0060D10EAE00503984053FCD0AB11ADF23510E6B0CCA239B12A929
+8C0427B15B0B7C340EDD177A002F8604A53A0048A00D5AE91FD526B12F50DE01
+5A0897501D7C4936D8521FBA5A077C23B0004F8D4100E6275B26841F6530F43A
+60018F4304CF6C0036A6278D144C871A348427AA1232790D2D8A226C2F427705
+CE096B00590B466204925001EF0A3C5E124A880AAF1B3FA477003A86197F0B2F
+F6209E4E00AF400827D32F11B3340479278F12B91AF25A0170277B049400F92B
+A1045E34D906681AE240002CED1CBF4727A10C48AD13622673E1132BC222467D
+086D008408409C27CF3E12F704B900670B7F0133E913650D95260ABA5011A200
+F7124EC600530BC338570978123DB9630C6D00C73304BC5600E70A4A9721D442
+00F50AA800EC2448A613D71FAF26FE3E1AD3344B8F1A9F30F31D6D0157E5042D
+C81F4AE101C17700633E1A790CF4568B0C45741F86471BED096C24790E2FAF20
+FE125A32AD13821F3EF0005A38BC52106CC67806690486015E37CD0150F6003E
+08875002980134AD1FFE1AC7236C007705AB2E66128527AE22CF6B0050C53549
+EC3A601E71357929AC04429324821FA814FC26A0024E17F82A831B96610D2CA2
+1F3DC6036807A5501A3D62274F91015F2F447D057100865A00790540C4006B0D
+9A27CE33155D920A79043D5D401052BC01E3279934001F63BA07F301C2650147
+DA4B009D6612840046D01B734101C0501A790D9A01269204491255A7264EFB1F
+9021772C107DC46123EE4112D3670C3E5F4701A30FF119604600DB5025EF045A
+3F1C8F2E058600279E06D901C309631F83360ED8046B00702E841FE2279D0147
+08DB243FF76C04639C1B50EE27761179BF03D50D35C01FF80150C717B50E2CA9
+22CD125A29AC400179106A9D0536F927B51BA423D81F3A83126E1B5AABEA0427
+80277818389526601DC83704E3503495016109DD3970038927D12750FD34B81F
+E62F00D633086C00E407B7671A3901A4178633522077B9049D3262385330D621
+9E350D8E174C9D00A80CD55A1FAD681A792786279314D201EC5B279B33E80DB3
+00610E792267BB56127B015018CD400582003D6004DD401F6C23854304950E86
+1B3E613649F2156B2E7F02F80850DF2EA5003FC14E12690078096C0086084FB4
+05CF013C4D934000BD0B5AD80DAF037E0B46A62707BC123EA5287F1649E511AD
+01860967004279018641129540B54927854405DB4B770D5000BE05F400277F12
+E70AC60082046E0957C401793912F327793A01FA4609E200500DF0006B2F5240
+0BB5065A267E203EC65300D90A49009F2EBF0DA54912DD26B21FC32D5900AD0C
+9D00E45A266F27A500EB0499089E01E41B9F228613660948EE1A59009F2FCE26
+EB32B02AFC2340602F87120535E052249332007D1550F727770049892353EE05
+5000B506347A225A12C61A940F50A50C65C227015A1AC90E32992704BA31DE60
+1F842F50D9075A228A1AA71FB627EA143AAA20D15F056C0EA061122C84223FC0
+64204BB402C719792F901CCC01509505308827A427ED1F6C2683340179296C0E
+7E0198147827FD336C2B0BBA01E0137F2676275F32840C3C643F00C71FB53804
+8527DF2086125B04810D64049200EF1A47C59C15620F7401F94122C3340059BF
+22F21179007726C86C2061A30049EB472DA427DD223EF43B176BEF119F045EF3
+0040861B702606B04912931947B53E017A3A5B0D7800865D086F0031B426DE31
+0476CE01B17804339E05387E269F00F8046C123FE31348F41A791271048608D7
+005AFA22AD00F2335038E8078C017B12C9493963335607B80BDC00C82350B904
+D4502779015FA10F6C08760150AA3F1FC627A2206B0E7F005042B400CC2BAA12
+A153056C9E1A3F6306A138D40D5A3D0EF54019D50C6905790062057F005902AF
+0D4586237E391254AF0AFD01A5693700CB043C850068E22704F65026C2331AFB
+268C470A7F0051BE23405A3D1160D6125AFE086B1060224ABA448A0639A40064
+04CE39B4325A1F98390F9015415A0BCC1A5F3F20A52560008305A011D0473564
+217D14780159346C129D25FC1B34CE26AE34F72D00DA4C016D0AC933AE27D91F
+0430792585053B681EDC2C0CD304982F5501672CA80086260185319E1FBB25F8
+35B31FCD269421790036DB01B2781F6C284983240BE774225AF91DC9270D6C9E
+41018805964901A512E7671F993808850DA01BF62A007D3A15A327DF34860968
+003BBD6C1D50B233520E6101E54605BD61046ABC1DA101850DD24D05EA29AE16
+F22793008702A9400D942DF410AD06EA0053089149007C03630B945A119E3CF4
+49137601790B8FF75013E81B4EE20D7801874C336C12E026B01F8615E13250AF
+4D0D6C3D01830A730E5E306C06E12FB7511B6D3108E300C1113CC850280EAD30
+05770C41B149092AD01F6312CA355A3F042CC510F45A1FE5006B0549871FAE55
+047000AA13D127F1105201E92A0B9201FE22931A7B305025EC360083266431B0
+008D41127E21754A04683D22FC1C5AE204AD1D6C277C203DBB6612E54018DB23
+B916367927065A009C26EB205B38670A98013E810048BE4212F100B43D01710B
+FD04416202C50728F704CA59279C26DA04A71285490962049B12CC4927643492
+045D00B56C0160A01F95650022C16C0F3DE550079E00D7794D0086270196492F
+A737B80CE20136D51D88246C01491A9727821260D721406A3C00A80CD1009F0D
+52D51240E512553C1AC05A04D00931C21FDA4F0886003475268600C40B4B9803
+2C86049E522784064AE800C3841AD52E6A0540BA0026CC2753BA179E26601FA4
+277E1F5BA418834A34BD12911B429619654011E50053158929EC0039C327F822
+50007905A50C4FF21F841439EE123FDA023AED794601A178002F7B246C2812B6
+3D1864BB3D12D2037C1F6F265097274F05EC2D84B95A01CF05B046006CB607C7
+5526771B6E1F852E065AAD019B06FA73012F943A508500790D9B4027BB5005D2
+125D3041DD135AD01E3A690DA6003F7D1D690D4061048612A5581B85A401890E
+613A04FC0878015A09E60545CB270097076C27EC6F003BA9007C1B41B73A0176
+1D558F0D79015BAC2BEA3F1FD2253FA306D64C1F9D0050B323530427FC33195A
+BA0EEF1AAB41056CD90656008A27530FF0009E0A6500A55E0D7804470D7C2476
+341A9A2E12791F40F004B337DB01B976223C791F7F270D66E21D00F626B0195A
+00C6126A1A9A4A38F801920585320050BE01F42750CC109A2BA922F13D1FCD36
+02DC0D31791FF204C46C2448CD38B5492788300D61E91F58D600520FC15A22DB
+27AC65086CCF27A50434B025D8350D76159E5A007B016A335A0079277F300786
+11A66B1360D405268504720160FE3A237A1FEA4D09C26922502FCD12F43F26B5
+1BCA1FFA2FA2135CF70458E10086096C335812465E3E00F50949C90057B6223F
+A578470E6337E729467801ED3E00860EA91A5126F6790D6C3E12871A6C3B01D4
+09710150AD00497C2763E5093F6B2950118F005A0E7912D1006BB90147841140
+85219C3105830A710339F5401A6B12FE5A0075074BC800860440B112E0169626
+AB0AC911F4431BD03406BC003E994627B034C80E5100A90C94411EA3330177BC
+0D7934580893004C386B007808DA003EAD153AA126D212AC00FB079E1A852795
+152F9F3808860152072DCD0195048607D9305A0CCB27732265C7004416D625AD
+6000B00DFD4E1F852794136C26FE10AE00>
>>
/Yellow <<
@@ -2387,782 +2673,878 @@ d92ded53ff04f861e57ad86aead060c7f779feadf8d232fe6afb79f826cfa5f334d88cdd
/Width 167
/Height 167
/Thresholds <
-1ace5bd99808fbbd63fab215e074d886dd9828eea2ff863995fa6ae423cff0a306f59afb
-45affe9cfa05f394fd60ed1b98e72da3fe8ee926c9e51adcad0ec5ec21bfd810bbfca5f2
-7dfea0fb88dd9ed00fd833e5c8fe65f72b93e1aa3bfb58e564ed19e05dd1ff62f4c7ff1e
-f2c5ff15f19801fa47f12daafa20ff4df318acdf83d29eff67fb1dafd979bfff4ff7c73b
-de4cff29f57aff6dfba2bff384d188ee6dff5ef20bf9d8f686fe33f5afcf4beaca6cfb9c
-f32cfe01facb64d915e5c6ed06d97cf7a943e0b0c730d6bc67cc7ad5be67ca26d8a5fbd8
-79c7ed56d87dff4fbefe69d6fe79affb69ffa0de4ad938d852c807e862fe79f4affe8043
-a5d986dcbe23ff9dc8b72cfeacca82fba327de9332a7d9933da5dc5bffcc8ade7bfecb6d
-eac0a5d894fe61b7ed5aaadc91c8ff56f023a0e0039df48dd885db59d9afe042ed17aaff
-47fcacc721cca5e469afc0e076d867ec86ff9d1fbfd845bad06ae9b57dfe93f6a551b6ff
-a0ed5ac7fb70ff7de586f4d92bef58ff9ff287ff37ba5dff86b3fb0ef293d987b0eb51bf
-f145d0b234e686ee79ff85f691f0a5cb19e2bf5b96e9b6ef13ff4dfacc7adf0bffd98840
-edb50ae8c178fbb6f76ffeb5f87fd8aa39ee62d8b03fd9b461fb28e63fcef62ec3ef0ef7
-4a9ee586fbcd81fed158e909f98bfec11c99ff88cae666ddbf2ff6a5fe79c1ff40940df1
-acfe17da33f0adff7ff88beea5c659e433d64ac1fb7ace3bbbff169bdc20f250ff0e97fe
-b5e01cd948e2c290f7cf03e03bcbbc61e232ed09b9fa2baae081edc15afa0dcdb4e01fd9
-5eff83f7ab3cedc21eff87d0a5e46fb0f651ef6598cffa61ffd07bfeb004e151d80cd253
-e025fbc0a0fe15f799ff06ef96c790fab272aefe7cd886ebd012ddb75eed32b1ffafc665
-d03693f8d252da339bf1129eec60d83ede1dbaedd6fb9e45c1e47ad48bdb42d80ce04cff
-19f888b7ff84ec1fdd6ce781d0aeea5dd289d977c8e68643a6f784feaf0beb45a7ef94f5
-80ff9fc4fb75ff5dcda1ff5bf704fea7c796fe30acfb9cd028dc55ceff7cfaa6c84bfb30
-baf11ad893c6aff714bfdd934eed36d9c495f183e587ff93f27be65dafe486ed79b7d646
-ff52d809ffd822e243ffbb76fea535fac494e48626fba5f1afe34aacf285fec078fbd87a
-ff89f295fa8f51af3bc5e87eb1fa55fe6cf487fe79cb9fdb6bedc911df9cf388fe0cf44c
-fc86f6b3fe3beeaf34fbc1ea5fb6ce6efb9cbffe53db6bd818ed48a8d892dd84e61ed988
-d379dd3be560f3c66ded7bfd95f2a20ad847df6dd993e05ec2fb79ff32ea5ae0a42af5c2
-adf867ff43bffe62ed1cc94ad909f4c84cd832c7fe6ae2a1f280edbe5cf99ccdaf29ed50
-c1e0931bf247d7ed54db14ff7cfbc60ce05bf4b23abde509cb5ae064c3ffee93fb61ff1d
-c4ed06cda5e73db8fb2ebefe4395fbac56cab65dd993e0bf35c5029dd87bfea3d08910ff
-d927edc56add88d229feacf896bfe51fef35f478cd95fb40f49aff81d9a34dff02df51d8
-34c6fb88f391fe05f57afe9741e5a0d486fc80ffba61de209fe588eea428dcc0a9f6bc9e
-ffb77aff93faaf27f3be12b9d03388e9c166f179fdc68ff778ffc0a4fcb67aff98cb5ede
-309eff93d81fceff9350f79eff17b6e52470db03d9b7f2975ebeff27c79ae486f17bccaf
-f238d0ff30f9d578ff2497d9ffaced61dd0ae04bf2d59651faad3dff17f664edc25bcf3d
-ff69fabf9cc2ff50ed6cdfc21baff012bfeb93cb86f993ffb668e02ecb61edadce10e8af
-c806edb71eda4bd2fb84ffc94bd812cffa964ffc2de559c635e01ad060e89fcb86fe79fb
-a5ffaf3bfb05d9ab44e508d95fe76acb0be1c13aec95bff3d861ed7ee6a369edd17fdd6c
-cefe86d3ffb7f79f4187e1acdd82f26afe12d851de06e460d979bee1871aeea5c3fa8552
-d82cffb7f87effab69f5cb75e093bfe17bd8a50cf28cdf88d9a551fe13b4d808ffb57afb
-d868b6fc35db49e5af12d944eec0a9ff9fc551ffb768fe72f863ffcd79f29a08e4b679f2
-86feb860f3cc91d887fe91f29cfb83dc0bff50e53cdc54e018d995c5e369f396b8ff9fd5
-28fe92f66da7f876fe0586b6cc2bfe5af7bc04b8fb2cf2a738ed50a53287e0bdfe23fa3c
-ea50d9b8f670ff9ff986ff95f70a9ffeafcb4cea3bbff28ae0a44193d824c6eb1eb6ff07
-f25faffb39ffbe67fe2ded01cff27ce161e9a5c82aec9347ffca7cf59eff79f5bf9dfe87
-1bf24ddb2be086edd136dab5e046a9fa38e6afcb3efb19e2aa41e7bd03ff4def0edd66d8
-52edb6f67ed988f2c293bff76efe79b4ff1dec63c956edaf51db40edd220dfa1c4ff46f7
-a5c1dd32d8fe9c58d987c7f97bd8f1c7fe5bed78d393cbaffc9f2593edaf21bfd227e05a
-edc742f16efb83b5e516fe65f7caf159e561a0fe86d7a5c6fa24c2dd7ee39ecbb67bfe97
-37c8a8fc86f759fe61bbe4a528e55ad01cd83be05ecdb0d993e683fb79f8169ffa93249f
-f0c67cd886fe6aed88d875ceff9d6de086d97ad0a5f926feab3aa3d324fea90cff479fe6
-23f242c587cefe25f879fbd082ffba5cfeaf53ed8edd6be41097fb8d47c5f579ff0cb2e2
-12864aa5d80eb3f361ff0881e2b4db46c6fc67f4b582fe74a5dd93d806d0ff71dbafd40f
-87afff80fbcd42dc50ed3590e8984bef1dfb52f4d84ae0afff22d039bfdd8dd2f30ccff2
-8ad983efa5fe85fa26f652fe0ad0aacb59bfdd4cebcbfe8811ff56ed15dba5ff55f7962d
-c3fb3bf2b4fe3deb75c988deb9ec58e06ccbee7fecc461b8d293fabe469eddb5e206bef2
-169ae182c7fa39d81bfb80ffbe60e0adec23d0a1e769c2feedb6f681ffcc2ce5a6d8f437
-ff86e57bd8aa4febbd2ed0fb1dff60f7a52bf39e45fbc4ed34c1dc05b9f37afe9ebfff77
-d2fda5d693e010b2fb87f35de593eda218fa409fff9352fe07faaf4bc1ec6adb7be080b6
-ea26ff99f46cffbe8043c0f29bd093fdb32dc0dd0bedafec7ed8a5169fe093ff5af402ff
-79fc94f936afdd28faa5ff58dd17e0aeed864f93ff9e60cdfb35f40ca6da84edafc942d9
-f218ff62b0fd51befb42972ed819e04b93fbc04088b9c862f10dfa3affc40ffed9af52e2
-85ce7decbf5dc5ed9469b7fd529bf69329e1c511d94df405b85fff62acff6dc71cb6d982
-f86affcb79f1c76fe0c1a4e96cd8ff9604d0a5ff16c9fb65f08be01ed8a702fbaedd65e0
-27d94cc7f29363fe69d41dff51f5b9fa5bcd19d984d59acb1cd87dc7fe79d886d901f195
-fe7ef60ffec5d93ec2e984b7dd6dcfff74fe9d5af5ae6db4cd93c0e47ded27ceadddff77
-faa4c2ed679cddff59fb99d0a5c0e079ddb08964ed9bc0f234d953fd8dfa22c0ff17ceac
-e564d2fba568fb86e0c194e6c52ec0ee3cb9ec96e445d710dc44b0e0ad34fb1dee45cbb5
-2c86f2affc39c0ed9533d6ba40c3fe86f2c58ded1fff84fb79f69e5ffaafcb93e5b786df
-6dd82eed76fbb8f239fa61f04de5a407f249ff6ae586d036d96dd8992efaa5f528fe4ea5
-f1944be329d0e902d6fe37f84ef20ad995ff88f56794cfba5bfe1fd0f90db6d81ced50fe
-329af25af6c8fa03ff45a7fe95e40eb6d880e250dd6bfa1dffaf47c0eb30f1a83aff4df2
-a5de76cdf855ff8afb77fec297fe03ed86d4b899ff67fddcc359e477dd9f4af4aeff7ef7
-a163dc51e238bad352caafe004e5cf1dea44fb37f8cd07fe94fd86dda54696d881e0a5fe
-68edc094d5accc3dfe5ef4afff4aeebb69e07bd892caff23d9aec0f763bcff81b8e579dc
-9ffe6fd75dd905e046f234e78ed9aa5eee76f8af7bdf8ff5bc16d8973d86df93c5dd13d8
-86ffcc3dfeb2f584ef8dd07bed98ff84d87acdf786d979fa08fe9f25dda905c1eba55ae7
-6dd894ff57f629bed81392edb624f988ffcb79e256db0fe4bf2ef99aff77f4a5f931a4ff
-7bb6ff89d8a4c55eaee9be3db3d00fffb4f31fffc010cdb62cff51f81beea0c0e99d22bf
-e579fed012ff5aed06bee661fb139fdd9050ef279affc542bfeb1ff086fbc1fe9ed87cf4
-4ffec786dc43cbff01d84eceff6dfeb7edaf5ff86cfb79f259a0ed9301a5d82ddd54e039
-d807dd5afe16b2e420d093d880c7f171d0f6862fd0f220b6f947afdd87ea7cfaacf43fff
-c75ad81fb6fe07c7a5fb5cfea5cb6ad8b510e461dcc14bed36d952f50dff96f277daa7ed
-67e179d763dfaf52fb7af5d06ee09bc887fa0d84d5fb64cbb134adf286d39ffa7cb4f293
-c4fe3dface93dfc10caafb7eb2fa4ccbaf6cb816ffb502e0982bffaced6ab9ed84e57bb1
-ea2dd518ffc024edadcf3abff761d9c1fb60ff9ff5affe6ef8aff39fe76bc1fb60ff40ed
-5bb7fe3eafd8ff61bffecb79e4c107fb51cf36e072d89e79f386ed64d896ec73b9d088ee
-06fd46f7c693ff82fb95bdf999c7aee050dc26ff4cf722ffbaf631fec26ded9ed842adfb
-c134ff56d8bcff3faaf103fbdd67c1eb24dc51e039cc54e57aedb61eff6efa87f22ae061
-d0a2ff28e57be068cbfb79d3f28811c1fe2fa5fb20f844c188fba94fe59fc92eff9de01d
-afff388fe0b63ec71395e49026c749b7ff33a2ef82e2affa14d897e553a0ee913d9cf32f
-fe9ec9abff90bffe0bf8d011e0affb2bf84bf320ff44afe08bd9a052ee29d40de45ace16
-fe6bbffa81d69fcb8bd8a14993eda306f9af24ff88f115a7dc8ae1af48db92e088d87ab7
-ff43affc93ff8af59bff2cafcb74e05ad735e9ca93c1fe14e25ff3c5eea7f842beea57a5
-d9fa5a9ee4cd6bdcc495ffd95fcbf17ddb78e767f07afbd083edc90df193fbbfd84effbe
-ee93dc7deccb0dd8b8289ee885ff29fbbe13e0b3dc65d87de05ed917f24a96e253a6ff94
-46bed0a0de87d881ebc878f22bffd084d96cf0afff7cee93e52ca5ec61f119fb5ff0b6dd
-7ecbe879d3e55bb9d982ea4cf21ffb7ec4f62afe4df41ecba5df5cce32d80fd968d6f405
-fdacf686dda551fc3fa0f280d8ab52bf2993ed9d1effc237afd7f68c52ffae4de00aaff5
-31b1fe0cfc96d408c8b728e057a7ff6dd94981f9a5ce8446fe02f74bafe55af387feb05c
-cbb667cefa78ff09f7a5fb24f186e5a5c6fb6dc1dd60c9f685ff6bc0fe3cfa9912ff5ec6
-b71afb93fec241a5de33d863ffc901fe87d97de00afe39fa28b7ff4093fac83bfeb1f876
-cfa4ed0ab3d36be288d97efb06f786f2a6fe80f9bb5de0963ac3ee12ffbf79e5c649bafe
-0bfb7affd86efdcd79f193ff8022beec06f187fab971d897df54d8b03ffaa4ff66f47cf9
-d34de5b2febd2ced0bfbd99fd1be9afd73ff94df36d3f50bd9f1914dd593e6ba40ccb66a
-ffc051ed22aff130feab16e53aed03b0cc6fe5aed39fe97ae05bdd2f86f7d579fc88f2ac
-59df96cf52fe98c7a5d973e267c7aaed03a1e4930ec99eff52beff68f9bda1ff3bef60d9
-6de0bf45c5ec1da3fe79c7ff649dd87bedaf01ff97ed68b3d3dead13e43aafd90adf4ae9
-c6fe7dd494d92acefb1eff87f976eec286dd49e0aecd1293fba21b88f2d16de189c336ff
-56e025dbc017c5f96d93e09c3bffbcf237ca79ff88f5d8379afe7eb8ff7bd885eccc79db
-aefd68f4b632fb4cf538fea8f39fbfe1a81ff255cd11c1fa78f330e6af3af960beff9af3
-15fb61cfff6dd8fd5ee02ee786d0af40ed17c3e097d283ff1c9fff9357c2f040b7eb1abf
-f72efb44d9f586d825c1e93163f090bdf850febf9ef9b68f3fe05ef379ff589ee0c13aae
-e517ff50bff19733ffbad932edb8e74199ffad5aecb47aee8dfaa550eb9f47c1ff52f9aa
-d91c9ffe87ed5add0aa5fad00fe0d746e701fa4e9eff935ac4df1aedce81dd91d8bb08cb
-4efa03ffc190bcff99eb3ed8b8ff6ccced79e00eca47afdf87dcaf4bed31b6f193d862fa
-1ee4c493fb8650fe21e8a8c2f675e5afdd6dd3fa69afda79e0a5ce91bf4dfe9df775fece
-3eff69d7b27ae65ccb1afcafc1fb35e5bfa9ef6293f3cf5bdb8deca505fed86187f7c67a
-ff63c2de14cbfe20f5cf1ad963caff79fbaced22d886ed6ec5e562d116fb6bbfe24b93f7
-a26cf988cda5bff21ebced2d9fff935bfeb525f970ff93e67cd965ed4ce02ada85fe9122
-a5dd15bbff93f485fcd05bff2cf59bbffb86c505fec09aed74fe55aff2bf9ff3b84aed3a
-d704fb2fff9a0dc2f248febe5cff20f180c2e03cdaaffaa5c4e608f2ce2aff85ee76e50f
-a1dc9314f844d1ff03a0fe79d82df6c45d93fbc1409cdd03aff475fa79b9df64a5ff81f4
-2cb5d404dd7ae561fe06b5fb33b0eb9ac7a9ff80eec15dedc428b9ff34e262d0fb79f8d0
-47bfe40bed98c2eb51d837ffa2ca94fbaaf1b548bee5b3fb82f89d4bd82ed9a51fec94d7
-71e819cb48ffb557f22aacd811cde607d934ca86fb93d985ed96ce7aedacfe80e5a608ec
-6de5affb1688ff94057cdd569afb9361f3b6dd52d886ffcb64fed17feab46fe6ca35f29b
-ff73daafe91aefaffe6af9cc2ed89fe55193fbc044d6afed5cf7b755feafd094c4f258c0
-ff2af94cf034d31cffb13cfe9ce57ad887fe9742e5b570d8fb7ac961ff3da5dd88edaf1f
-e83ed8087ffea2f20bd852ed62c0ee89fe7bf1bf7af854fec38ee0b079edd96dbbff7df0
-a370fa82ff6add13e55bffaf60f3b637dd51d82bccfb88d9c444a5d4f24cc8edf524ffbf
-35c2e09614a5fe2ef2a526edb83efec327fabe80e1af1cc0e43afe51dd79d824e0bd80ff
-5bf224ffc809f096fd1199d982ccf2881cfb4ce77aace072d886d879e09ddc7bcce561d9
-17fb4ced0edbacc906ff9d24b8f393d1affe10f778c8f96ffeb6f6d037dd6dff86de26d2
-fa04c644e559ffcb09d9af36ff63f7ce3599fbcb44e05effbd4ce0b0ef53fe7acc27c0e2
-15ffca87fa91ff984ced2684ffdb66ace49f5d8ed883eea6fe44fab8ed79d865c7f95692
-e29f69dead11f260d7fb62a5f381cbaaff57f2a537ed96d093d87bb6dc86d85cbfff41fb
-2faae0c099f326bfff11f4affe02f687fe55f206a5ff83f2c39ec0f66afe7ef154ecaed9
-46fb1af079cf5dda32bedfa24a89b1ed86d55ae89dffaf77b6ff9ecfb93aa1e486ea9abe
-e510acfed51787f8b5dc37d2f59326d0a4c7acfa89fe52d89e4eef1ed861e0bfa1f8d896
-0dfbcd1fffd0fc53e41ad87cda86d239f6affe4397d6ff08cdf549ff94c4fe4c93f0d808
-b6ec1597e584fece67f610fe4ef73ffe32eda7e174dec293ff4fee77cea5d952ddc4449d
-edaf2fbfd988fbbf39d5b65fe83cb1e02cd892dd83f568e6a4e068d893fe86fb970cf2b9
-ff26c2fe19f7af3bc74eedd861f016fbaef475fe23fb43d694ed5c84f3d89f0a93fc9d19
-c1fe76f80eee41d1aaf26cf8ba77e5aff512ff52c238f4c15793ecba33c69abeff63f507
-ff5be59802d9ade573bfed79b6d886ed2fa3e9bf4286cbff69fac943d90abae44cd987e0
-afd2a4c688fb2befa20bec7bda17ff39fa89fe7994e9c04fc5fb951fea4edd97f826fb93
-ff79c6fa5bff3bce0affbc2dc1ff42eb19e54cc3ff6adc7ce29e58e07acef283fe9531e0
-7ad886db27d061d9a6f185ff46c7e7a741ffc6eb79e2afdd4be395d866bbe80999de2dcf
-fc9442c9a5d48dfdb079e0abfe8661f00af748acd98cca9dd86bffcb6def1dfb35abfe1f
-f951affad10dffaffb9f37d986b7f69efb78afff6eed9e18f25aff01ccb567fad061fa87
-c6afe55bed0abbf827ff8fdf6de2c1a5ff79ed66b0cc08d8bb179ee5c195fba5ca79fc86
-b6f49fcdb9a5ec88d516fb45f5d092ff1fa5dd0fcbfbabff40f35dff80efb751c802b6df
-9720fbc060b726f35aff80fab138ffa2f66dffc986fea502c1ff76fb64eb04d0ff3ef218
-b8e0a5bf93c5ea25f14cfa22f0bd47fb93bfd888e761d0a1c2e06190e36dda22d3f45bfe
-21d65ac1eb27c8b634fbcb7dd995eb7cfec143afdf34d8fe639ed885c9e56ad960f114ff
-4bf835cdb911c3ff7df155fdaef4871ced4edc35e454ef02c85cff69f329d956ed98cbb5
-07ed5bc5fb71f5b7891cc2e69ac9afe013fe93faa3f472fed079ed94fbcb88d831cf01ed
-c65bd823e0b53be55df2afed86dc1de09eef68b8dd7dcbfb46ffe530fe76fba1e080ddaf
-86e0b639ff4ef7bc96ff39f314ffc831f893ed6db4e593ed80ff39a4fe84f8d868beff29
-f655dc24f29bff79f5ac03bff725ffa33ffba5d098c7aad293ed65fea4e041d997d46fdc
-44d9bfabff93f285d89cdd80e136db93fc7bffad5ff878fdbfa0ea42b2d052daf960ba08
-f74593eb7bdc29e257cc30a5dd07d93ea7fe68f086da9f79f988fec17efa93d827d93ad0
-58f2c43fbefa2baeea609eda7994d889d658cf32ffc15afe19ed87d3a4c906e058d885dc
-78a8edc34abdff01c644ade06beed461df04a0e846a5e08cd094e56fd810e6c469edd251
-dc73d5efb61efe54f47afb0bafde2ef28af669fe29f793fe6bf95ed013affe23f84bfeaf
-faab06c1e033cde721d89335fe86bfff25e582c6a5ffd86dd3fbc349affdc392ffaff368
-ff82f6d012e0b6fb57ffcc16ebab48d919ed63ff7df794fea96dff86cf95fe12f2c422fa
-ed5ae213ed93d9a60bf379d0aaf912f46dfe7ef29cfb44cdfb5a9efe7ad0a5f7bdfe10cb
-b51bf295bfff81f7ca50fa16ff4bb6fc8db846ffb56dfeb9f3128ce083afdd24e45dcaff
-6fd879d119e086e8bf05c3e225de79fac66dea94d1bf1d86edc661affa79bdff63f3c4d8
-01e45df16cfe2eed5194fda51d84ffd8864ced11d847e1b6c74d93e8a53696e02ba5dd86
-cdf475ffbfa2c1e04fd816e5ba20e347de6fd585ffb26a01fbaaff7af96bfdc49abeff58
-96e383dd30d8b61bb8e49505bfe01fdd3be55186d998fa7cffc354e236d80fb4e97ad886
-cdee31c1f896ce23e2a13894ccff47facb6bff99d8b642ec9efb52ffaecb3ea0ed78a8ff
-89eda351dbae39ff61f5d455ff96ed13dd4d9de0af4ba9fa87d89dd990d787f5c02eecb7
-dd9d0cf6bfaef86dfd9e1bf1affb6effb9f46abef251ff309fe19343f906a7fb8ef083cb
-f578feb6f74ee03bd9c0a5cb70c6b61ede50e83ded29d9fb40cbaffc53f9a6ff6df7afff
-7cf295fb88ffc02df153e640a8fb7af59afe6ac2fe3ff4be65aeec1bdd5cf17ff9b1fc68
-b5de8b05edbe3dfd86f7bf03c3e9995df2afff4df3c959d829cbff0af1be7ce38ab9e524
-d988fe84f2c10dfb86de62ec3bff0bfa49e00fd9af61fe3af3cc69e03899de7dcbff5edd
-27d84dd90dd0fe88e57cbdfb0cc4db81eccb31d869ff52a5d997088aeb9bfc77e6ff4ff2
-3cf6d086f294d86accb179b8f1649dec81de31cf4ed82cd95dce62d819e393c7abd088e0
-1edaaf43beed2796dbad06ffd985ff7dfb9cc608e04ce52dc4f2a8d87be5a728d980ff87
-39d9fb11e07fd89d0ef896fdb67ae168fbcd10ff419ff9b73eb4d839ff81c6ee2bfeb0ce
-93c7a9ee67ff79f7c593e55ca5fa88ffd22bef3da8d87aed88f77ffbaf3cd905caed6bb0
-f758feb968ffb6e407bffd32f2b9ffad1cbfef2f8ada86d89d48ffba10febff704fed822
-ffc50fd860ef91f383edaffe0cf9a5f472fb46ff07f7b1fe60cef282d2aff071faa0c542
-d158d8af36ffd178f39ffe8539fb4eff0fcdf1b948b3edcf6db5c864fa31fcdfbf62dc3c
-f699c730a4d981edcb6de0a7ec6de5a4d946afd89415fc60e679bdcb9ede4bed01adffc0
-21ed5bbbfb96bff904feb0c61fecb876ee65feb241ffd42adf9f22f394469ef9ce5dd862
-d93fd0f95a9fd8f827fe07fbaec979eea54a93e0a15ee84cabfb92ff7ae30afec13ea0e0
-85cb54df9ed87dea9b5bc0ed8b0afb52ff1bd837e77bfd8bef0de5c15293d9b716beddae
-cf93bbf3588efea2fa20a5ff2af4bd93d0b68644f1c1a5d01dffaff34cfabd16fe4ffb03
-f9bf26fa96ff6ff4bfa0f223f939fe1db7ff90c1da44e084cfaf08d964e683e4a344ff9c
-cd37ffc39cd77be3985beb79cfe679ddafed2a89eda0fb7bed83c6affe65b4caa4dd64e4
-24dc60e5b6ff6fc8f385cbe551dd25c69fd2b679f7d064f025ffb20ff2b73bd8fa2aa9ff
-c1a4dd7be489fe5cd820e0a0fe74f5aafa29ff7df652fe1bed62d8afe514dd64cbe588d8
-56e616ff60d9fe8f05ff5bed6fd87be0a55add9acf8ed8a558f168d21be052dd42c2df93
-d989e46dcf33fb63f29efe46fbc386fe23d75ec8f26ce57ddfad14fa50f21bccf6abfe4a
-befa17fe85c2ffb318b7de0cff4ae50fdf37f253afed92fe81fb36d81bde32b7ff1397f2
-81b6eb43ff5ae5a72eff9add81c6fa6bccfe79c593d94de030bbf948c7aff385f9ad3cc0
-d91dde6ced9de093eb73d6a4ff30fb72d388ed9f51f67afea5d795ed23a1ceea7fd987e0
-3dfe07c0ff75f525f261fec590bbea9fc1f787ffa54cff7ff344fba0e97cd8b511b8e36f
-f2b452f49fff26b7d00bfc57ed86d8ba93fbb7860fc5f29161b7d05ae03ad986ff51cf94
-d886f198ff89d4ff33ce4dc6a1f17af888fe52d0a9fa3cd8fd6bf293dd14fcc786d85bed
-34a2e525a5f113fe70f586fe66cba5f10b9cdf52cff268afff86d85ccd43d809b6fa41cb
-96c3f24bff30fcc20adeb636f24acaaff438b6f72afe9fefc394ec33df86d67ce033ed09
-ff40fb7a32d804e4b3cb14c5acd50fbff929ff94f688d917e9c68ed872ec51fea4bdca93
-ff48ed31d153ffd99733c2ffd93ff79dfb60f3afe465f223fe56c379ea1586b6f787ed0c
-cdbb48d3afec79e467ccaf02b9c925aef1934bed04fe89ceff67dcbf57e4acec02d0afed
-15ff82e5c12eff87bafa34c4e704fe88fb79ffc786e07dee019ce0b8d96ce0af5dfb86c3
-ff68fb75e557c6abcc15b849fb64c9b0fb4dffaace93b8d888cfaffe9bf17efb78f192fe
-69ef5aa5df71d835d456ffa540ee0efa88db79e740f81fd3a7c0fe81eea546fbadea0293
-edaf0cc6e89329c0fe79e7bea2d9fb61c0fad81ce0abff66fa98ef099dfb2bbeff76d9fe
-69f6d760bdfaafe179d9a54ff392ff87d342c99eff3e97d959d844fbb579dd13a5ed9556
-f2b7e320eda84bf421fe61bfff861da5f73dfec598ea02afd81bdd88ff7cfa67d8ff92d7
-a6f71993edbf0ef74bfb5bf319e864cc58d72edc51d928e086ffca49edaffe7cf385cdfc
-7ede9acf30f294d8afed60fa0997da20cbe56dd87ef8c96ad8ff8648c4eda038ddab42f6
-04bfa5e05a9bff9350bfd824e582ffd95ab1f417eda139e0a545ffd98c33bff71ffbc50a
-de38f49cfb62f179c7f77bfc95ed6cd0f65bffcc79febf873ba5d980cbe56cd9c2a6da5a
-ebb2ed7ad086e227bef979edc098f20cd843e3a653f222e95fdac43b9fda80e096caa8d8
-92f610ff86f49fff7af7a5d11d96f7c1049fe026dc60b6c838ff5afabf02ff4fa0e079c4
-f271fe65b3ff29dd59b6fc3596dfabf505fbd07effcc6de04eff2df3cb3ed7f579fbb4c6
-3bc18cc5e086d880facb7afbcf861ac3ff6ca9e06caeee7fb6d816c1e022daa52ceaae1a
-c6ff0193ecbe4de025d2ffb3f860fe2cbbff953cf72efb93d846ff13f353ff6dd9a72dfe
-4ab0e095ee84fec09ccf7bff86feadf569fec221ff3bfa50afdd94eb61cd07bac743feaf
-e05c86ffd06aed88ff1bf6af7be0a862e07fc9fb27afff3be3b7f607c1f093ff23d1a7f1
-1cfe7bd98856f21798f993ed84dab06deeb602e44588fe9ef71eff38ef4ce12195ed0d9e
-ebafdf4dedcd52ffd159fbcb7bfe86b0fa6bffcc73e0c0529fe2c2319bfb88f49b4aed15
-d596f29110f0d080e0c008f2b784d88cddadcf3bfbbf6bd3f978ff31d910ec38fbb704e0
-51d829e040a4ed7de49dc0fe78d823b6fb99ed80e86df230fbdaa542f8afcb50e46dd3f0
-14d0fe9bf6198eedce7bd8a04d93e89f45d962e588fa60d8b94ab1ffc1a5c5dd31d01ffe
-c00dfbc37cfe8fcef25bdc78ecb795befea5c4ff62c1f73ffe78fa9811f19e32e9992ae5
-52ed3bbfed08affb34feaff37afeafda12d861e5ca84dd73ea4dc3e0a55bff9f67fe56cc
-f969fe9a0eedb95aeedbaa24c75dcd8af77add67e5c96eedb5ff79bbf96bd9b413ef31e5
-5afec637e053fe0bcdb88bbf18c2e1930bfbbb98fe4bbcfb9229d953d5ffbe47e512edbb
-d96dfbcd83f3c03bafe27ded9de521ee4cfb72ffa8e9955ce0a237db5ad921afe811afd4
-5ffb05d064e852b0df7ad993d12ebfe186c7fe77c5ff6cdab6ff64cf95e05ad867dc21d8
-3ef163f9a8ff0cb6fb3fffbca2f96dfcc10dedadc4e4971fe941c0f67dffaf860bff87f3
-a5fbba46cbafff4aa5fa931199f1d305e749ff86d0af84f2a569f993d0bea2e54dffd881
-fb5fffcf62e02dc3e79442c3e56feeb56186f8a4fc86ff32f21da5fe0a9fffc510fe31f9
-63b6d893b8e545bf69ccf97bffaff496f99fff79befd3df286e37dfc2ebff925feb207f3
-a5ff71f820a5e004a4f3930fa5e527fe86f6a1f293ff6bd083e1bf49c3e87ac6abce0ae0
-33d844ddb651fa2688ffafc9a3df61d825d7fcc19fed4ddd01e7a2fe1796f2d827d0fbc4
-4886fec192c5f343ffd80acbedaf16ff39fa7af19d3ee7aced38b2f28afda506ffacf384
-ffc136f5d8b62cc754b2e081bedd73d2ed4feb87c1dc79cdf43cff12d287f3d9a529eb4a
-d718c84fe041cced67dda5c947f3b895ed77d869efc860dd39d95bd4f279fad843e7c7fb
-7ed9b643c40ec64ab7ec94ff1c9fed9358fe27f461fb78ff93f67afeca82f2cf43f05aff
-1afbaaf2934be039d2b895ff6dd886dfc23784ffbe74e4a5deaf55fa29ace568b8fb803e
-d8f18fdf61d912cafa9327c8a5dd1bd674edcc79d85adc0f9cde930bff90f4a6fa68cbff
-3ff8b866de9bfb45a5ff099cd97eedaffe0354ffb3c693f18bffb67bfaad2cfeb916ffa1
-d65ada08ffade445a0fe81f6b6feaf44cbbd66fcb7883ef260faa7ff8ef4abfb06de56c8
-f732fdd08ddd9ced88dab81cb1eb2b9be560a5dd8fd87be4c33a8acff57afa82fe26bff0
-2bf850ffaceeb14df435ff1ff09ad6b978c6f02f9fddff87c24bb6ed84ffaf63d8ff86f7
-79ff57f53ab6f820febfaff25dfecc6ce03fde03d92a9ee4931afebe21cdb0e581c7fb62
-f8974bc2e4f586e011fe52dd34edd00bdf98cb82e06fed1dff80e5c23388ffce1cd8a701
-86ea96ff16afd91fffc09bd216e951e038d95ed78af0a56dd9a504ef51d819cb4aeda4df
-52d2ff13bffa02fe35f6b578d9ff05b6c81bde62e358cbaf79e98ad61ae094d88dc0db5b
-ff15e1fe0296fac250bc1ef7a5fd24b3d52cf5b70dd84ce49cd987dd68c0eb9351fb2de6
-a549efb1d095fe86f2c35ef1aed086f778ff28f35bb5e02fcbf26c9d36d862ed9fcfa5fb
-6cafff88f352f72afb93c7aaf44299d9f3bc5ae569edc6fb28d860f5d086ed6de22fedbe
-93d0a5fe84f876fe26cdff46fac080ff93f5a5ff7efb6af4be79b3ed6dd981edc10afe4f
-a5ee62ffaf88f49dfe86fab908da5afe68f60dfd62b4e97ed89361c4db79e993fbd769dd
-7acbf95dedc16fee7bfeaf04c1fb26ff9f43c4e083d877c7fb8815ff52afe26bfeb54bff
-39ed5add8cd893dd1bbfffa61cfec8ee80ffc05ffa06c3e626d846c1e092d9bf3de561cd
-affb84119ff093fb3f8eb3e17ded9d38fe4fc9a1ff87f753fd23c8b810e6afdb79b1e578
-dfaf31e056d938d005d9af38fbd851ffafd04c9cdf86eccb79da30edd03fd90fd839cef2
-7deda7c99ed1aeed2ec5f545fcb6f750ff10d149afed06ff429fe09334fe9ee03ccef29f
-5ee57af1afff06f7b0ff1badd8eb79c6f539d60fe0c193e06dd501f04afe73f69157ead2
-79a50bcfaf25e088e27ab8f880fba001ff4ea6f987fe15dd57ecc5fe27dd78d0ff59c2fe
-4abae579b6f906d744addd7de069eed68835ffbb15c4f31dfcca7afe89f996f286ff9fc5
-26e0951df4abff6af7be21fbadf877b4fd6bf681ffa360fbc221ff51f94293ff9e6fe0c2
-299fe080b4f299ff82cd93e4c002ffc5d949bff78853ffd393d817e060db9f37d994f242
-b8f9229edb93ee73fb16abfa85ffa3caabe043d5fa933bdafbbcf84cfd6af336ff4aa5ed
-62b8e57bd0ed0cd976f18bffa549d886c0f50cbcec1aa4d4ff0dceec86dd7bfbcc09f197
-ff2ca3f3c75dd8fb9866d886b6ed10c65ce161d817e967f75efcc878e22cce3f99e49143
-c1e012bdca99ed54e3bf3e9be58aec7bbfe008bbfe1c95edbe3bf4c823d937e061f675fb
-b0865296fba724eccaac11f96dfe87d37bf2c86afe7ce564ccaffc7aff5ad09ac4ed35d8
-be59ea14c3ff9f06bffeae5be479dcc59abed897c1dd18cdfe38f7af6bff9fc94cd128c0
-f6b4fd3b94e09d78f9d9308df3af34ff4defb76cffb141ceaffb469cf79143c1ff3af148
-cfa1e9b71ffeb6fa82d393d8b046f9be91efafff61d0fe935fff52e52cafd918feaff762
-dc03d8fb6af3cb68d7f974ffd05aa5fe6df7a1ed29d84ed1efb7e414d0fe9538e6be50cb
-aaed20fe4ba5ed28d2a9ff32ed51e509b6f62bff79affe25f596fb5e86e5afed6bd8952f
-eeac12ff4ef21dfe75f59d5cdcbf21eab82dfcaee993e07b04a0d8fa5cfec44d93f1c854
-e093c6a5ca27e587c5f964e086cbe607deaced70e59fff6bf779ffcc8745a8db3afe0fe5
-9fd90bff50d816eaa00af1c5acf276fbcc7fef87dd25d084fead31ceaf38e6af4be30c89
-fbd786dcae54c1fe86f2991eff7df3904cc1fa7effa5f136c0df86cffb62b7f90298d98d
-d886caea78dd53c6e568b9ce6fd9b8f136d951f721ffcb59fb86ddb693d885e539c7f093
-63fec486e35ff319fb50ffb9ed6bafcc2bedaeff67a5fa71fc15f662fe55d91ea0ed14fe
-73bdff63f91fd9b708b4d828df4b9bf6bbf072ec65f27afe68b5cc94fbb779fad77ae520
-95d9a206ff5cd779ff52f3c478b8ff7efa85fea1cbaee5ba2ded14ffd80bb6e53efec960
-d831ddafe064d91ed886fb9d5af3990fc4e979c1e44dff1dfba543fdbfa2fa07afee41fe
-2b91c1ff7bd088e0a8f994d8b93ef661fbc558ffac0effd8a551f279da95cba9d587e451
-ff13f2be86de05cee822d9aaed93d8aff174fbd07adb5bf229afd893d07efe8af55afdc1
-aedd31e001ff96c7a5d022c2fb34ed63c7f24cb6ff51bffe38f7c0afe72fed9fe5b23af0
-da10ed50d214f23aff5298fa7acc5eafeb62c4dd7ab4e0a4fb6bff01f5a1ed5be008cdff
-3bd9adff40b1fe69f3aec86cf2d6871ff288c0ff7ce099d2f40da6e328fec06e43ec03fe
-93d5be09a4e07dcfe68830f7d306fec23aff4bf831b1d882df8cfe39b6fb519bffc039cf
-4eff0e9de0bb4bffc0a7d394ef4dff35ed4cdeacec960cf261fe93d0b829e442ff98f16e
-d885e126a5dd2ecba5ed71d061e04697fab608c86dffa459d898d98ce093d987edc346be
-f193f880ff9d33fa08f651c1ed93d6b942c3fe7cf678b5e56bed75bce025d99734e6be16
-9bffb3cc49e155d817fa5087cafb78ee9f14ddff9fcc5ef02ffeaff249fb299ffac16894
-e0a46aee85e5c1a0fe25f7c046d4a2f079bee4865bfe7ce585bffb2693ed9602f83efe6c
-e186dc9ffbbf2e87cdff7ad8af55fb78f7abed87dd4ae6adff5acffe84f56dfb02db85f2
-8ffecb67df93fbbf1ac2f986ff28f75ffd66d308fba5ff1fdf3dd917beedaacf94d918b6
-58fa7dff952ed0a5ed19c2fb2ed1fa86f180cefa62feafde3deb73fe9bf792f07edbffa5
-3bda57b7f57ec12be687c2e077d987d891deb954edafff33f5ba0dd89b11f164e55ea9eb
-6ddd20cffb1cd8edb4f32dcbeb69d4ff37cce881dfa5c60dfbb91ac87cd9fa3fb8e420ec
-c23cbdd85ccb09bffd9113c0f29406e45cd887e5afff2bd81abaff36ec4cd995e525de5c
-edaac91eeb7add85e06bcb9ffe71d6fb875afd67ff87e4c523e562f0affb48beff5d93dd
-9e0dca50fe10a5db46f069f893d90bdd30ce45c6b51dd8f381ffd34ae266faa5ff1a9cfa
-3dff15f661ffd108e259dd79d0ff5bface7bd991cbff08f793ff885af4b88e01a1dc973f
-f7b67cddaf4fffbe25edabcd76f75fff06bee864a4ff7ff3a5ff19fa81feaf32c5fa9a3d
-ddafc2ff23f39e3bc1e979f05989d6acfe79f56afea5ccb878ffa6c0fe50f335b6ec5aab
-ef9343c3e523cba1f03dfe9ed0bc0ae06ddc81cbacf454feafed93c6b0ea7ed086d825d2
-58fb7abcffa2fb6fed68b7c80887fbafb9d945d0afed69cc79eba8ca2499fb83ccacfb42
-a5ed7abeff18fb4196d8b549b8e0accb42fdc5fa6fffaec90af261fc9ec777f65efe39f1
-9fe594ed5aa9fbcb4cd80fd479df9ee861f2a1e54dd5ff7cfb43a0d960cffb934efba5da
-c2f60d9fe02bd0be4aea0ad94cf2309fd992d0f603ffce20e0afff6db2ea2ed4bf85f24e
-fb93c4ff20f83aeb05d883e061ff3cf557ff03fbafff79f1c4a5ed61e702d797fd2cf7a9
-edc31ed87af184f835b6e5a2c53bf2afed46b6f31593eac729de3cb5eca5c0f36bfea5f2
-0ffe81e66daf4ae018ed61fea2e42eed12dc99d986e054d81fcf84ffd61793f888fb95ee
-59cb24d886d96aefb41ce55bbff786fea913e0afc70dfe4786bef364b0ff7bfb93f58de3
-7eb8fa1cff5586deb978fa61f206d9f679ff60f90eb1da70ec3fafd886de95ff64f62dcf
-a3dd7ad895e1c13890e09f3afe1ed885b6f24bafdd84e04195ff4ffb10db61cafe04f755
-fe71da7affc96ed9ff4c9efb90f286d12de051db22e379d766d915ffc6ef86d693d9be44
-b5d886fb59ff2ec9afff92fc6ae0369af0c231e050da2cf98eff51fb06feba71f6c48ae0
-0ed843c9f46aff88ed7db6fad83bcbed01dd32c753ff38c3ed6cd5a5c0fb9949e7c1a5d0
-8abb42d89db8d888ed37ffc1a0f36bfdb646b9d988b5fa19c0fc21f34e9cecbd10f9c093
-e552ffcb79fec75aff6bcff387cb8de593ffa55ad990df86e810d89827fabd64c2e102d9
-5cfe6dfa7bff86c89aff34f99ef19529a5fa58ff22f88cff6dd093ea7db7ed0c7be742f3
-afc0fe51e5a1bfff7bc9a5d86be0bf9ccc2ddbaf33ffa5ee7beb82b6de26d942d0e51a93
-ff779bf883b6f29cd1a5fb0fb0e54bed2ac4fe9330ff51dafe83fa12f34bff99cbb615e2
-56d60ce0a7f113fec779ed86b5e06dceff6bf6d06fdd5daef39b34e2149eed25d8af0de8
-37fe54d728c0ed73ff2ec6b3fb51f4add81eaff777ffafca1ce59fcd04bdfb3eafed86d0
-54e1b6da35cd83e0b0eb05f14ade19cbfe79f8c0a5d28708ed6ed980f503aceb42fe0df5
-a93bf75dff7afa93cf48bffa22ff50c2fd7af25e9cfbd458dfba43d9ff61e623db61bcff
-85f979b3dc0ecbf285eb9b28c7a6e793bdd226f077fa8dff97f779fe7ee5a236e351ff38
-bffaae29c945acff29fbcd15b9fa8ad4fb63b7f875feb6f19fbeed86fb18b8cea0ed62a5
-dd80e06afed035dea140eda8c549edaadd6de8ca61dd21ff7ff96afe73f5a54786d9b9fe
-66f6af39da51dd22fabaffa3ca26ff5fd0f16bdd86e17fcaed83dd93ed01e277fd9860dc
-86e4983dcdabffc02eb7f611fecfae14c994fe81f3ce40d816cafe7ee5ad4cd816f8affc
-3ecd5cfe69fb85e05dd928cc4ed331d84ecafb7bd998ec9311eda4fe93ed84e6bb66efd8
-61e940a7e5cd3ce0c466ae01fa49b2d398f54bfa0cffc030fe45efb689f283cbf965ff87
-f57dff2cf6b90bfea5ed65d409df9fe411d8bbfe9b38a4d885e09cc4ff83ec975ad849fb
-a9bfe38933fd9fce47ff22b7fe17c556d2b0f218e6c3a5f808f4b0f90587d9ef66a5ed93
-5cfba1ef3eafdf069ef792edaf43f164ff93f5b771e087ee7ce003ddafc61efeabf180e5
-88ed9dff69b6ed09d25bfdcc7bd960d809db4f9cff9343febe86ff0993ff9d21dfffc593
-c2ff3ae080d993d857e394cca5c609e551fe1098d836d90ed65ed89f59f2be4ac3fb8af3
-c03ec2ff7df22ce5b4ef1eff4bfb03a9d844fdc892f182e61194fbb2c61bf3bc97ea79cf
-a6e69ffe3ca3d853fe34bed167dd85e8b93693fec646c0e028d864ffcc79fbc75bdd72fb
-96cebf2cdf5bc9ff4cd81cffabf79a45eba5cd36bfff01f6c01aaff226c0ff87deb049ff
-1df8aff47afed706e0abca1bedc3afed4cbbf58656dc26e779ef66ff21f186f370ff16f8
-61ff76d9abc1e579eeb6fd95f285fbafcf83e59c32d851affb934cdb68d180fb6dc7a5eb
-93bfe573eda30ce033d868fecd40ee58ff79e561affc51f830f368c9ff6eed93d976ffae
-25fe53d8fbc41fe28dff71f27fe5be1eed48a7ff27d13be00afd9fbdfa04a8dc7bebc255
-89d0ff6cf883ed9f52dca55ffad87bdda54bf02bf6a5c3e58a40cab63bbff270fb86f79b
-5bdb79fad077d9f385f99bd80bc7aece5fc52ad1afec83d892edbf2eff4bfba5248ae43d
-cf16df43fe1ef7bfff93ec19d8f6acfe07dd4cb7f261d12bf752fe28c1ff79f9b2f24eaf
-d980e0a5d92ef2c707d879de8fd8b627dab00efbb648e3be79f19f4cec80b8f405d1a5fe
-3499fa88b9e77cf288ffa5f26ae979d097e532fbb339d9f128b4dd0ed862fec76dfbd087
-37fe57fbc899d886ea5d9dd4ff6afad964afce25df4cd1f32ae4950ffc346be0a944fea5
-f741fb9efea5fa3a9adc23fb429ef38fdc6dd0ffc358f97bff93ed7ab6d87f04ce62ffb7
-8728c3e787ffce0ffe99e47ed988b6e04fd8a51ec799ff25fac10bbdfe549dfa88ffb511
-fe5ee479f3cb61d6f27dfacf19e0c096ff5acb87e546c9afe06ad0fe18d861d9b84bb5d9
-21ff45fb5ff2c569fe79bffa60c0ff87df14b7ed21b1e6aac2e09418f952ff01bffb22b7
-ed0faaff30f9b579ff83b5fe57c0edaacbbe15ffc269e07adc89ed05e079caf24fe9a6c0
-e161cd07edb839ddabbfe030d860c9ff4eefabe597d959c8ed9654f33393edaf59bfff17
-d0f97af286ffdc6ded7be59f61ed7aceafe065dc38ed94bdf19dfb429fe79412c93aa6ff
-84fb0facee38fc95f361ff10f64c86e2aefe01e493fe7cd587edc18eb816d8aded07a5e5
-9651ee9ef57cd793ff4bf70586eecf7de375b3f27ae585c6a0e087ed7fe7c238ea11cca4
-ff8a4afee1b275edb61af2bf31d3b952ffb66affc25efe18f67bfe5b9bf76ffe0588f0af
-fb1192e087fe43f527b3fb6dffbfa5c1e079d8fb3ea9ed943cc614ce45affb05d84cd0ff
-8bf63aff19f2afcd62fa41d01dc6afff2cf6afff89ea5cd96ec3dd7bd9b61cb8d883dca4
-c3f0953abeed60f42eec5dddaf0ccbff86f83894ffd23bfbc92ad84cff39f274dd89ceff
-5fb6fe3cc2df31d84dfe35f354d860d304fe9fbffa62d92fe5d67f5cf6d82dd0ff5fa5fe
-7bf697d813d9b003e086d897d793dfc01bed9fc5fa9847d0a6f4af24ccbe71c4ea0de041
-d91afe49fa21a1f2cb6ffbaffe9cf5ba65c0e186ecaf1cca5bdf85d89528fea4c1e88cff
-86dd6bd85ad843e0aff231b5f826fe50f59ffe2ff9b543ff20c0fb81c7a7cc9ac0f737fe
-9ff347e69fc1de4e88edb77afe6be19acca9c715f042afda27d8a5f583ff95f0a5dc6dff
-22fb8ad96fe04593f07af8b103fbcc3dacfc5894e4c24edd1de561c5f572fba3f240ff27
-f947ffa8d051e760c1fe86e953d7fc67f99fff79d199fa81ef88d46bc2e58909e055da61
-e337d8fe2896ff36f4a8fe9bbff744fbbe58e0087af34ae504ef87fe7df7c10297fccf62
-edafd286e95ce36deb93cda5e852f21dff50fa11a5d87be06ab2d023ff81f2afcb17e493
-f4b00afb5cfe9ebdf971febf8bed13d65bcc19d880ec88c9afed51f2acffd21fdec36bed
-a1fe96f083c8fa09ee87c0ff86f99f45bed131bacb69ed86d979e587fd28b6db1cde3bff
-77b9dd13e03aaffb5eaadc52b6f79dff5abfff97f222d886ff79a5edca69d886da48ed02
-a5d978d0f486ffd9a5cf75fea5c51dedb779fed83d91de9f44ff0cafd992d003f261fe86
-d979dd7ee285d8fd62ed1abefe75ed5fd809f971ff53d827c6f17ddd32ea65d8b30ee050
-adfc96f792fe5afa08b7e5409dfec41884b8fe983effbb2688dd0fe047b6d59ffb3fafd8
-26e1afff79fd82f7a9b7c814f330d965ccff79f76bcbacef339ff283d8ed25c1ed14ffcc
-05d938aff630d27bfbaeea01cbf947b5f715fe6dfa92ccff5aee9e37c94cc020fa9cca51
-f9a8cb2fe54daac6ff0be5bf94c4f72afb7affa8de2fd50cfe9fcf26f0af3cca85ffd632
-df93fbafe55adca3f280ffa449e5afd095fb28cbf67affc92dd83fe075dd8bcff67affbe
-2f8fd9f15487ecacd05fe843afff90f378ff29cc9bf279fe8eee19e853dd09e04beba0ba
-ff83ef9e0aec95bffb0796e0c14cffb76aa7ff77c6af86e579f1d076de68eca04ac1f19e
-62e088d3a4c6b723e262b9e517feaffb93f0b55fed32dd6be284ff88d5fb67a5f27efb69
-ec79d855e0bf50c2f393e0af44fab759ff88f5bb4a98faab12c84a9dfdb532b9da60d1fb
-931bff4ec0ed9346eab686e579f1a6c832ffa448da11e4c8f94abffbd70dfd81f8c1f2d0
-61d91de082ed61df0fd83cca5dd887cf9eff93fb7ffa62cab040fbd8ab36e556d8f661fe
-88cb08f2d03ed8f45df942feb613edb8fd0cc6ff8733fcc30eff3ae452f1d681fb35a7d9
-62e00add67ffc194ffb0fc0ad85beba113eecb5ada19d84affacf49f24fb9a5cff73eec2
-70eac695e008d9ade46ccef67bffd81bec89fe04edb138c1ed84e5a25effa8d109fa4bff
-c003fbbe68e8ba68fa9752a5e6932cb2e559dd199f8632f5affe51c5a5fab4ff6cf686ff
-a4fa2eee51d223d83be30df7c25a88edbe81ff7bb6ce1ded94fbb57be5ac2fbed89ec781
-ff9449a5d95cddb9d86be6b680ef94ff9040f398c5ed86d27ef29ed03ce513d54aa1ee93
-fb27bcdd952dfaafff86e1c01487edc579edcf39d818ffad04fb33c4ff5cfb1ff14eb6ea
-2cbc84c7f35bcd77fe99f956db08fecb1ee062ed9fd0b587e87cf3b117fecc85efb6fe02
-d0ff7cc0f270d8ffcbed9a68c9aaea01c74b94eb9cd608d962c788db7ff0a5ff8ed879e6
-b7ff18f9c523ee48ffa5c65ad62af761fd95ff1cee4de035dcb2fe81f9981fffaf44facf
-6ed808c7e5af0fff50f726ffb02aecb67af786f3cc72d97bc7f859fed09247c2ed3798fe
-d13cfeb40e9ffb8adb65e0c07ce7a374de93d28bff7acaa4edc13faee096d916e086cf9d
-f279b1f781fec352f423fe47dc29d7ed9e3be01fd881f2a550ed38a3fbb84ea70bffd82a
-fb5cf781fdd02de053ed7bfea5f711febf6ac1f251fe2593d8ae68e1af8ee586f232fe80
-e095d803de8de879fba5f868f01be63cc4f37acef2992afe5bf6a54efbc17cdd93d85ec7
-fa85fec756d9af35fe1bf19c3fedb761f1d9956dfad85cafe469d8ffbe4df1b7f63afeb0
-43f9be28f352da02e444fe61f894fb24ff86f6bf30ff49bfde3ad8be3494d980e06bcdaf
-ff864fc2fb93ff5dd93ce0c395fed90793e5f7c05ab0e28fd894d938adfe7cfbb1e021d5
-59e0af43e601abde81cbf439feb83bfcd102d860dfafee53ff85f3af57c5a9cf09c9bb92
-d3be93e04deb1587ddc1a7dd7aedcb66e0b61dfe77e5974ede10a8fb21ff93c0e367ffac
-cc1effa607f7be22b5f106bbf64687e5d58229a0d886f2d169edca78feb7ef85d895d80e
-dc56d463eb45a5edafd968fcac6cefa7ff15fac1a3f25b98f7adf16cd079f4a9fe65f71a
-bc60c2fe3a6cd9a1fa77ff20ef60e6bf13c9bd399af392ff7acafb85fed032fbbc79dd89
-cff263bcfe79f89a0fbfcd22e069d1fb31ff62f558ff2afa5dff70fba5bfff40fb12b9ff
-26adfe2ff9c09ff206fdce7bedd779e060ec43b2d104e679e086c6e566d7ff7ac3fe73cb
-aef81d99fab4fe6ddd19b7fb0fafe09341aaff25f366ffb0f188da72cbfe890efab621cc
-ff04dd60e3af3fff09e5bf37e00cd930e7c114bedd7ad6f08fec79ddff4af213db55cb9f
-ff86f4a4f16cffcf5fd941ed2ea5d84a96eca40dff50f00f9ee542a5db37c9ff7afaa0b8
-fe18b0dd88ed93d87de0a3ed06b8cc27d969e093ed71cf9ce088d76ced41b0daa538ffa0
-2cf2bfa5c4fe6dfab787fc56f940b6fd3397e03e9fe82cdf5fcaed4bdd0cee5aff79cc9e
-fe30f8c6e85dd091e1c23ea0fe0afbad29c8e67fd3f379b6d793f6b979ed66d978fe93c4
-ff87fb4ea0ed932effaf43ff2acf9eb3e487d293ec79dd07d04ad827dbac0bfca1f586b9
-e56af2c766f8d687d97dcbff6ec2f586fbb14bed30e747cb9ef64fd51fde41f2c078cbab
-f47bfe92f6ad57c1f846fc0bf24ad980ffcb5ef8bf59c1fb9347f90d9bdc3af2c82ed99e
-ed7fcaaff365fbce85ff93fca96aff85cea6c697ed38da61d8a60a98f777fb1886edd079
-e580ddf59f50ff34a1e042f24cc62cfbbf99c5f51cd851a5df73cbff60f9d280e098c7ad
-f91ec735fb7bfe2ef6b5fb6ff964fb7df4c566d81ecbfa12ffbd19e03cb6f324feb52caf
-ed12d85edda4cfbb93fe6cd986e27afcb6ff9f12fe48e837dd4fe502d5fe2cafd987d279
-ffaee51093ed22dc95e161d3e480edcf8bea62a5ff84d818ff52ea0bd8a620f251d402dc
-c130bbfd45f724afff90f482ffb6d93ae0a9bfffa524f84dc63e87d8f06cc6f962fec08a
-ff9ed10eff3aafe480edb81ef3ab0add9e47f304fb5be47eed94e0b846b6d8974593e3a5
-cc94e03c9fee81ff5a9bdd7799fa86ff6dc6a1d254fad885ff93f31cfe52f705c2f23bff
-0bf0aa2d86ceec6ad896ff85d0a3f161c697eb62e238e9c02b9afad469ff88f501ffaf1e
-feb658ff22bcdd0fed6be498da91f980fec779d988f46eeb9fe079d88ae6c94de01eec5a
-e579fec055d935e0c095d9ffa5fb1eafe3950cd89b17ec62d970ee86e67ac1ff44facd58
-e2c06cfec1a8cc76d816fe52ff05f2a5e50effbbed33d917ff57c7fe27ddc1adec46d3ed
-59cd9fe54df77af1bf5ce434c967e383d899e07ab4eba5c75ac0d9f953bcfb81db11b7fd
-28b8ff87f517ff9ffab57afec54caae6c247cfb578ea9ec832dd79cbfb6ff7afcc4cfb2a
-d157e041b2ed17e59cff14fa4ef319fe5aa5fa7ec5a5d030f1a310fa86f57bfe5eb713bf
-da84ff45cefe79e5c4aef822fea5d953fc27a0dd7999fe80f7b425ee60ffa5f596caaf87
-d083fe68efc475c0fe81f28feba870e59506f787fbb722b4fc06afff1de0a704fb76b5fe
-9fc1fa33ff5af425d062fb94ff459ae5a525f060f7c874e059da3dcbb1c453c705f361e0
-86f216affe80f0be51f67cfd96f5a54ad89e32fe93c1f271ffbfa0f686ffc344b9d093c8
-a5df7bcded07b6f76bffbd52c3dd96e463ce02c4ec8ff15ad09fed68b8ee3afd4a94e1b6
-3dbbed86c5f802b7ed2bd93febd091d920e04ded39ddf75ddb30d8ad42f91cafdf4cd103
-f6bc4affafd634c964ffd877edc788d85bc7ea92cfed4cda0aa8e08ed681ff95d914e787
-f2d102ffc98de1a552ee88f9bf82ee32f785fe93d8b91fffbf94e03add24fbd010d953e0
-07c0ff86f3bf63ee01afe59412dd37d953aeed7ee230ff61befb3b93ffd848dd14f389fc
-79ff20b5f3a5ff69fa32b4f405bffa28a5d885ddbe5cf593fa12b5e06ad2ff64caacff88
-55fe79f9c08cc4fc6a25ec89fa7dfe93c6ec6ac1ff7bd987fbcc68db7dfe8df1a552f495
-3ce56cee9c42ff279dfb88f2bf51f016ddaf3ff9a6cb28be7fef874dfc2fbfff1ed8a508
-fe94d8a5ea3ee44beda4d054fe76f7a4cb5cadff91f384b5ed3cd619dfabd08bfb3ecafe
-7cfac193fe21fb65f1afe704d8afe4679efe80cc9ae02dd85bc9eb48d83bdd9bc1e452ff
-7acaafff53f701ffcb1bdb79cafe31f29847befb1296e5bf0cedb262ff0fa5d8ffa3cb4f
-ed16e25bb7fa399ee05fed30aff21cea4fe40fc3e028d3f8abfe2ff5d07be0c21ee579ff
-97c0fe55edc27eed5cdbfe3baee0afd09cd979e569fbd8af51fb15bcd29aff7af76ee82c
-d9c36cff9ded67d831cdff79d993fb5aff36e079d9b14cedb507e061d9c5a5d8558cfe86
-f21ec7ed25b7ed4daff894ef739eff86f7af18fe74d997e81de07dcf91eaa366edafff4e
-9ed884dbaae16dcef142dca4d32be99cbef379c108e5b99fd5afff0bcfacf11dfdc293e2
-75fea4d0be93fe79fbb68613c1dd81b6f948ffba60d229e641b4cb8cfe31b6ff9b67d8fb
-61f50efe4afa9ecc4489edc87fe078fd22b2dd0cc9a7fbaf09ed43d81ce5b9fa8813e661
-ed7ec69bf2a5ff1ee797ce6dffa3ee8642ff0df9cfa843bffd5c88d6f678feca41d80bfb
-c726d752e0c593ed2dd864fc5ff131dd4bd5fe9738d2aef45efb15fe39f7b679fb86ff5a
-f6c649d939df52fb65ff28f44d9be577ff86d8b146ff13cfb862f530ed43afce5bffd9a0
-51fe09d8af6feaa5fd93c4f766fb0ed0a0e508ccf8931cc794ec82e4b419f4afff119fff
-3bf0bf90fa68b6ff3e87e196bff990fe85439fdfc2a5fe25b7fa0aca4abfef5ffe26f2c2
-3aaff8bf9aecb628f0db75d1adfb9f3cde02a5ff92e64fabfd93f26bff48affe8cf5a5d0
-86feaffb8626c1f962ea0dd073edc087d824e5c331bee19476fe85faafeaa7d193de6dcc
-fb86d826dd62e89cc9a6ed3be08cff9ec0f202e8be70fac496ed65cbf212dc50f301abd9
-7bde58ff82d9b745eeb0ff3faed82bc6eb7cd965d0ed6cafcc5ae045cfed79d7f35ffe34
-c650b7f1b3ff2bf948b3d0e252e992f86ba5d888de9f5bfbd51ae05ccb7aff69b8ff39e0
-11beff81c1e47af26dbedd7ae008cf9fbfe50ecb42da0ae59d15c6f3ace57edd92fe88de
-af4bf494ff5aa5f89b03fbc123e5b871c51eed49bffead31ed5bf598fe07f359f881ffc4
-09d861e37bfe9d35df1fe846acff2bb6fe9bbed786ff2ef193ebc03af38ae574d96bcdfb
-7aff964ffe39f8b233d8f604fe94f49f2dfbb81db4d093f2a5d905e468b0d592ed6a96ff
-7adb23ccfc0ff446bae59370ff8af335e596d80e9feb86f7d84bb1f358d826cbfe1bf65a
-baf936fb74d885f27aff6ebfee934dd905ff33c951f22eff9fd106b0eed06edfc46aeca1
-d016fd5eff86f89501f1c68ed8b644b8d592d829dd4e97eeaffb22d951b8f693ff7bbed9
-86e076ce34ed45e5b0c763fd1eaffaa717c2fe24f3a20bdd55edc986e0bf77feb67cd962
-d816e0afca56ffd94ce614ff61fb93c4f45bff03f5c729d89fff86b9e47cceff0df5c92f
-dc79fec34afbbef557c93184eed01effa1f95f9ad986afed6ddc95f04bffb7ea3fd5fb5a
-b8fe7bf2a5b9e99ec0d966e079fdcb861aff4df2b33cff80f299d979e038c3dd9e4bfb12
-ffa9f77cff72fba5bffc8648c1eb86caed61d841cdfd1af860f493fb87ff9a5ef9a5ce86
-e04dd4fb5a9fd753e0c0aff7a905fba618ecc325ff99f382ff6af888e5799ff67ad880e0
-af4ad917e39bdd50b8fa69ed5ae039a5fe6199dd52a9eeafd30999ed9161d193ffaefcb9
-62e5bf76d4afed3affd42bffc417c1e093259fddaa28c4e632bece66fb45ff17b3fa25f2
-a336f9d891db86fecd60e047ba2df6bfaaff6cfecd79e060ed24e438ebc25be11bd3ff95
-38fea517ff83f3af5beda8c605df51d810caec20d944fe95ed77c6b1f486ff79fa3387d3
-e561d0f29b5ee552de39c7b0dc3dd801f2c726febbed1fccf67afec165affb86cfb115f4
-72fbd82dc5f079d0fb8647ffb9fa26c0ff1bdc4ee30593fa9c4aef13fe85c8b779e7a060
-fda55bfab1fe5ff687ff6cafed1ee087d88be47cc2dc5ac7e6af47ed2ed80aa5ef8dcbfe
-ed930fd957e51aa5f793d184db69ccb30ef281f7a560f1ce6ce0bf98dd0be19fca51ffb6
-7cf9a5f384baff7fefc10cafff31e703dc3aed93d9ff4b9eff9245fcd386fac093fb28a5
-ff6efbbd68e0a54198ff943adfa82ff2d61de041fed99cc9b682f7ae1fff9e01c0e39353
-d8a6df79eba5f899c1dd34cdff89dead51fb06f54ebbe37ef3cd3ded11cc96df07d1f879
-ff5cf60ef15afe3eafff9367ff96c1fe79fabf34fb129f53ccfb88f384b9e028d940fec0
-9efb78ff9bd92fe0c011aff747fc30b2fb64ff31dc79edc729d855e03ba4e05b9ef7dd60
-d893fe81cfb71ac36ceac42ebfdda50aed9819e45ed2ee7de9a72cff86eeb6dd54c9fd86
-d0fb9f57ff79ef8fbe4dff05ec4be0c751e9affe33f6cb81f23ffbc335ce5ffe7bf4af0e
-ec43cbf188db93d0fe34d803b6d96abfff43acf39348dcc394b7d8a5bccc94e008ecca14
-e061afe550ea87d4afddffa74ce42ecffa67ff7cf2af08f243e5ba51c4fa70fe9fde87d5
-7eeacc86d87be89afb399fff92fb79facb18ffd02c87c5f857acf06bff9ff2b910f986f5
-6dfeca72d8ffadf19b0ccd47c1e05bd907fb6af4a50eed4c8be7bd80ddab11f9d288dd96
-fe6da4fa80d96adeb217fe66d8a46cfe86e823d651e186c2fea423e558fb1b86f1afff79
-f99fe579d8ed5ecbfead29fb4eff3cf420fb6af752a6fbb6f123d0b89aff5ef37d04edc8
-91ffaf42c6a5cb5ae793d3a9cb21ed88b1d035ed52ff07f4a54df125f9c00dd0b1e44ae9
-08d3b77ceda967d9feaf16bfe229d850df3dfea5d1b81ee15ab0f84abe3284feaff793fe
-82f093d17cd830e0c07dffc50bfac42cffc58635f254d825cbed12d541f8c279ed9fe104
-edbe16d8b3f26dff94f9507fd8ff6dd3a5c2ea9e4593ed2fcf1bfab220fbb610ed9fd0bf
-91e179d59dd884cfed864ba2ff7ef70bc4e037d8f8b924e060da9ef005feb632fb5dff7b
-f761fe04f3b77ad893d96ac6ff93dea562f35afe86cfbea2ee34fe4ebff29343ed9cff79
-f5affb86d776e042ff96c2f126db93fbd9c255e062dd13ce38ff4df7a4ff6ff9b02ae2af
-69f2af60edb7fea6e67ef5ab58ff86edaa25ffbe59c4ff7df491ff46a5ddc031d9baf537
-97c6f63bff52bffcc565bcfe93c769e3c17fe086f960ef02c4fe4bf219feb92dd8fac241
-dd66ed54a8fe9161a1fe7af213fb6fdd86edbf9ce018d893dc81e567c7fd1df23dfbb60f
-d844fecb8cd9ad1ef761fe6db3d896e506fbc864d835dec10f99ed22fa93ee79ec4ab6ff
-62c70588edb524ffc0a5fbb99feabc18c4d943edb86cfece4bd8e59545d917c0ff3ee3bf
-94db5cfc9ad82efb973cda51e0c180fb06affd9d15ddaee90884b7d880e012dda7e05aec
-3affa436fe4fd832df93fb83afdd7de5a55fff9f10e493c6fb90bfde74d8e5c146d1adc9
-95ea52d622fa63c2f555fe3bcbadff43a5e0bfa2d087e579edbc1bff3bfac196d824c1f5
-14ff86d1b67fff92faa84cffcf61d95acb01da9ffd86cea3f4afff3cf5d09641e85ade23
-cb86f2629bfe86d3ed1ba5ff8908fecc7bed64a2d97cf32bafe507d089f375e7b886fba6
-2bedc589e071e5c286fb62fecaf222fb9af361fe09f79eda86f4d06df2a5ff7ad75be530
-beff43c0f17bccf561fe1fb63cfe17f52f7aff89f92aff43beff93d97de439b5eda0bcfb
-1795d8f98657ff26f74cfeaf7ce598dc84e553ff89e07ad9af54fa39ed1ce071cbee7bb4
-f785ffa5f35fd834e00fe448d875d89f65f9d87af193fa6bfe40e5be04e65094f7d83fca
-f4b95bf893fbcd08fe61c4ff70b7ed46addc11fecc1ad3faaf4aff27f350ff3fb5db944a
-92ddaf43b8d890cb83d672e60aa8e5c517c0ed26ffb6f76acd93da04e94cbb87d3a4e8c3
-95d0afeed80adda5ed7ce2a50df14dffaffc68cd0ce05fd8f5882ccbed7ae065cdbf25fb
-5cd868f214cca5f04bfe41f4cb8edc9ed752f3049fe11dbfe02ed889fe7ff669fa80ff93
-f212fbc91db6ff09c64cd8a1db77f3ca7fffc0269bfb932fa5e423dc3b86eabfa5dd51d0
-f979ffce61eea14fe49561e593d8accb93d8a3ed2af7c5ff5ff886ff28f24fff24f154b8
-ff3993f89c61dca30f95e021fc5ef8c196d9ff33f372ff59fa449d6af6c352bfd95ef4cc
-81e0c21197de86ff7aef9e4ac1ffae01feb8a4f382db8aed07ffa4bbeb2eb7d09cdf8621
-ff61f774fea5c2fc6dfe4da5fb52e616ccbc9dc4da2acd5de0b48aed79cba9f58cff0db8
-fc30a1e036dbafeb51bdf1d879ffabc2ff9c4afb1ceeae2fc9b51efe87c6f779ffca0df2
-5cfe66f710fb61d8af1db7d60ced99e07cd894e08afbd360bfec51cefe79f3c7fe79f0b3
-dea03ffb0eb0e05bd801d979c9fdeab686fe1a9bfe33affe3c9fd8f82bf2a4c726feafed
-6de49bd33ed913ff4af8a8b9c93cfd67f75ffb03afeabfa8d00deaba34dd55d888ecc87a
-f2bfa9e446fe1ea5e67bfec054ff3de550db34e0afed5dd0adff79f688fb70d0ff8641ed
-bf5fe00ed6f18fe47afe99f568e07ad926b6ed36bbfba5c520eda9d08abfff79ee6ce5a5
-ca3eacfe14f958c82c9bfbd975ff06afd837af49d8a53a86ffd06bed79befe9eed86e5b1
-1fd036e064edce7ae5c767d2fb895abdd241e6b778de0fd850fa90ef75e488b4cb31e779
-e093d685e393c4ff37f94ef196c781e593ef24f8b608dc9928ff5ff193bffb6bf4af2feb
-86d680fe95fa834ac3fb84ed11cd56d815de9f02c2fd9f13fa93f677be37b6d815d94dec
-a6fa56ff74d7af65d93ae7a0c73ce449ed02cd9cfe54f574fbd06bddc0a5feafed861db1
-d996ee58fbc5f566ffc6ec1cb5d995fa21cf40acf82eff9660ff80f9aa4ff2a017eba622
-eeafff75fe65f9d052fb81f2c318bbfb42c1f079fa95fe5af20cffbf28ef6ad88be076ff
-2afa5bff79b0d06dff67facb82ddaf37ea52d608dd9cc4fa03f2b527b9d3ff9820df53d9
-8af17ffe66f2afe06ccce977d957cbfb94ff65f384ffc30ac1ed90e101fecf92ff7bf66d
-fc96ffa2b9f935c8b52fe7bb1aefb34bf301e44abcf3cb55fa86e28e1c9fe009b791f45a
-fe31aee082f2c968dd7df0c7a8d805c3ff2dc0f887ffbf86e50addabca1c96e9acd7379f
-ff7acfa5fe0add51d819cf9cdd4ea5dd81d943fe0fb4ce9ed8b815c2fe40f097e443a1fc
-06d0ff7cdc95ed83ff5ca8d859e0a5f01088f3cb6dffb8fa39e5afc84cff27f847b6ff2e
-f2b11dda48e0a5cb3f93e59f36da6bed9d2df253d209e0b318cf5be088dd7affd49e5bff
-c47ae088d87eceff8d3be0b627beffb2ed85d0fa46d6be93c5ef4affb917feafd712f749
-f28ce572b2df73d852e040c2f59333f1afff8620fec0e54cdd2aeb61cd87ff84f66cfb79
-c1fa58feaff299c0fb5fed3de8a7d983e0c00ed2afed62e56fb7f219fe4dcf22bfef88ff
-73fb7be6c144afe39928a7dd9623edba94d988e183c7a5d36bff9ff7ba03fbaff570feaf
-c0ff4cbcde86d99dfe84c8f985f222fe50ed0b89fad8af43fa23ff64f29f15c1f77dffa5
-dc4dd72ffe52a6e57ff612fc78d9669ded9348fba279dd99fe3fbefa5afe02f393fc9d57
-d0fb7de05ac7ed9369b3f797ffb794f4be25edafe032b5ee12e69f1bca52db24e086ff6a
-f64dfb2ca4ff86f730c8a5f947c18fc7aaf5a2fe3be51fcb4ada37fea5fb02f2b6fe78cf
-ff61f73cc0fb1af353fe07edc134ce7eed6bdf21d651f2228ecdfb60fe1cea67dc52a5e5
-6ad87dd094e0c13880eb94d8bf9ce736fbaee562d810f183f974e97bcaff26d961df99e7
-06cdfb39dbbe63e0fec01dd0a5ed15da84cc62dc2ad8ffbd4cd906f3a63bd8f204d157c7
-1efb43e2a5ca439effd25cd972ccfb7de579f4aac602d07bde93ccf35ad879b6ff12d886
-d9fb33e062d889dd7ab6ed9ac0f265de7bd760d849ea0da5d886e4a56fdd99d87ae0b05d
-e592ff55d09bff88e47ed1f69f13eca7cb94f527ffbf3affb0f540fb65ffaaf704fe5af5
-47b6d771da2efe9fe460cf0bddb8f71396ee89ffc34cbfff86b8e470ffce28ad5ae26bfb
-81d69fed93ff7af2b01388edaefd77ceff61bdff8bef82e566d96dff7ef2c20188f795ff
-4ab4ee30ffba43f19ffeb712ff63bae51afbce69ed94ff23afee82ff13f84ec7fb61ff16
-a7d82ced93ff8ef585beee3afa06fece4bfe31f8c586fe77f026befb39afd810fcb645e0
-afc73df14aafd780e096ca13a0eab6d929e087cdbc91d0a5f90bff94edbe47c3ff8ffca5
-3d9ce0c057d137abfaa354f221a5f40c9fedf887ffc52fde51ff36d41bbcca6edbfa9749
-c1e62793ed9f46df30fea1d0afed11d860fbaeebbb24b7e17fd4a5c78afe69d848edc98f
-e03ca6ed9d32e0b341bae379cbbd56e57beda507d593dbf779ff5ac71ce03ccffe6bcb9c
-de65b0ea81d7a647f213b6d2a5dd7ac9f962efbf79ff86fa79ff83c0fe5dfa0ff358fbd6
-87199ff2c152ee3aff1ee079d9b63fc985fa932ce579f0b5fe6df3a9fe84f01bc4da7aea
-cb7ad9c143d2b809aff68ae97cb6f4a5fb3ffeb731d6fe68a3f9d815cafa7ad8af0aff2f
-9afa91e533d851fea5f339fe06f753da14e581fa9b37f284fec350bffe86fa9ff550f909
-fe9fcdb637ffaff24ebf3ab9cda0e9b572fbaf28b5ff79b8f220c0f60cffbf96c3fb4cfe
-0ae89f29e0a54aed07d843dd25b5e406eda5d97be0a962f0c4fe4aadff84d899f187fd5c
-f489fe03aef1cc51d81fd94cd831db03b7d993fb3bff9929fb52ff9332f1d97aceb50dfa
-c645d96ae0a059f6bf0de0c342affe79b6ec5bf1c66df3c047ca79ff8fda85e071cd9fdf
-85eb7afbaad021bffe5ed709f793f25cd204d96dd68ddf86f21dfed382d971cafa87fd0d
-f34dfec0d95af9d818e04ec6ff9a68d989ec2be56bdc92f259fec670ffcb87dd7bf388cf
-fb61dbc375b9ff29c0fe3991dc7fd81ced61e566c62fd0aaea53c1de5abafb84ff94f788
-ff7ef9cb44ed87e05dd3f1afe384ebfe9c4fff3dfbd85f9cfe90f107d0ec9474f385ff87
-e14fdd21bffc369ee086dca5feb81bee40fb0fb3fa67c1ff36b6ca5aeda2d980dd95e96e
-db27df78ffa5f125fcaf42c2e09351f62bfea11aec96e07bd8950592ed9a61f5bdfc862f
-c3ed3cfb60d8a4f732cc75d887b7f21b98fb36feafe65193ed9e34fe48cc9be87acefa05
-b4fd9ebefb0eb7ff9cf816cba2f371ff189eed63cd07c861e0ac5dffbe0eaff8bf8d47c7
-02b66ac8e686e0976ceecc1fd879febb28ffcd5ada2dee9bf685ff88cbaff94bfe05f15a
-e3a2cbbd6ac3e540dd1f9df2d827ff88f54df91cff4ac8abff86ebb845b5da60cfff9b61
-fac19ddd66e1afd045adff2ff7c6ff40cbe9a24493e5adfb87dd7dc6ff5aafed95ff16f7
-40d9b0e36dd9c00fa2ffc219f9d886f16afb0bdd52bbeed057e032caa5de43d878e586fe
-27d886e0c32abce593edb42af19ed075fed88614ffaafd94dafb18a5f225c2ff2fa9ec5a
-e4af82e0a61bfb93d7b604b8d55de80fdd6ad896cf7cd836f95effa8f688ff94f0be4b8f
-e4b30db8e07acbbba3fb0fceb12ff793fe7df4950eedba2ee902aef340ff6dfac061e5b7
-74b0e4860fffb2ee03d951d31df2af07c1fd21d97ce069d08bfe52f6a55df1cc33f4b26c
-bee51fd9b4f286ff984492f293f77dfe70f4a8ff52db6aeda5fa45fea6f53efb4bffc253
-fa23e59f36c3e561eb2af24a79d6ff64b0dd78b8f880ffc138fa50f4c77ae445fea8fa28
-d994f280ff2be551ffafeb77d909e02dd85ad061fbc6fe62f39dfb3aafef2df379d967fd
-c45ae212d839e7c978fbd67dffc88cd883dd0eed8ad053ed1fc2fbd668dd79ff9ef485fe
-56e78edf81d052fba3beff02a8dd1ed1ff9a64e07ad2ff3cafff884ca2d82be6c1ff13dd
-50d724e2c206bfed33d5b810b6ed7fd96bdd9ad079e694d8b66bf6aefb88dd7fcfabe0f8
-b939bff703fdca47d9149ee88ed9b962ff94f27edc68ed79fe54c7a4ed84f3c21793fe95
-d484f16dfb19d99303a7d83dde88c1ff72d856e597ed18dd9cbdf6a5ffb651e09f47f1b5
-37fe20f8a5cb9bff16f593fe9f37aff132d8b741b5e06ecaa5fe42f16fe1af35ed58e5c9
-83eb932fc1fa91ee03a1ec5bc5edb8fe6bf9b577d8af73fe8df05d95fb6c9ffb80ff95da
-5fce08ffaf1ef8b210fd61fec94fd91aed3ebfff59992687edd879e3569bf489fbc94aff
-019dde36d810cd4dff9ecf3abdfa1dafd93a9dfbd027ef4dffafcaa5ed7ae5b6ee79ffc3
-61e505db86feaf39c2fa6aff3fcc5fc686f21effafcb79e566edb951fb5cbfe086d86cd0
-f87abffe62f78afb11bced1cd29ec0ff0ef5c293f8b638ff63fbaedd1bd859fdcb7dfa95
-12e039afcc1cfb40c9ed37d9b6ffc63bc4d921e14cf238fe9ce083c6ed67dac18fec0698
-f28bff7bb0f30cbceccffe9544ffa5bfde23d866b6f179c1fb50f8a5ed87e0af18f2a5df
-70cbff79f7b760bee47ddc9c14e751bfff49fa2fe1a518fe95f9a8eb1dd0ff53a5d988e6
-80fd26fa6dd962ed0efbc3a6d081dd2ae4a53ffe25ef49c0eb139fdc21e3c599ff4ff788
-fa2f96d879dd27cf60edafc748f075ff7fe3b151de2bd8fb84c3f063f39de986bef88117
-86dba5f279f7ac88c2e67af155fa33a5ff3af24bceafe138d84dcbe466d2fb6ea512e5af
-cb1df282ffa0f70dd3a5e56dedbd6cc4fd2cf7c188ff09ee9945e107d8f140a5fc31ccf8
-92fe34a5d886ce5af7b1d258c943bff66292f1bf31f201d88fdd9fe793ce87d99446ff09
-f560ff88f3c87eda9bff935cfbcb79edaf3bde80d8ac61daafed4cfe9efb81ff9612e19f
-cfb93ff3be23ff94f4b647afff05d97bd75bff01a2e0b0fa4efe0de059c8fb05afd325d8
-87e4cb79df9bfb7bff77f59cfab821fe9f41ddf3c165fa8afb6beb37cd61ea56ff2cafd0
-1eff419fd85aea48afd862fbaec1fe6690ffc55af3b662de79c4f50cfe98da80e02cf188
-ff78a0c7e40bdf9ec1fe5bed47d207fc33ff58f6bf9de487d579d903b0fa4fe50bbce1a8
-2affc186fe6bfa27f0bf01fd6de5ae1bc1e040d2fe5af709fe98cb86edc260ce74edd579
-e5acff27dc6ed2fc5aef93e5bf93b9ff3cd998ff74f66affae0af9ba1dd5bf28dea811d9
-87ed82c6f97a34ffb52dd952d287dc7bfe94dd86cbfe80e587b8f377ff96c5fb7ae522da
-4f93edbf0fea99d386ff0ab3e36edd61ed14ff52fb9ad90cd8fe2aa9ff7af849b6cda5ff
-6bf2b1d6a3e01fde5cc1fe23f0b6fe67cdb683f4ca3ff2d8974af209d0a5e55affd086d8
-3cccf368acf174bdeb86d86be914fb48a6f70effbf24fa9744bfec88f4af3fbed026ca33
-ed63d3af7cec50dda3cb42ec95d76cfe52efaf64fec16fff5ada04abe6d879c7ed79e20b
-feaff31bd132fab410d95fefd005e0bf13e532cda0f880ffd02de0b077fb1fed52c2f23d
-ffafd093c5a9cb74e565eeb34eedcc59d893ea71fa1fc1df9855f979bffe86f332a9d895
-47a5eb1cffd665a4ff8c61e6c47abaec51c8b38f32f59cff85b8fe0ac2fa2eaddc37f9b6
-db6ed0e77edd9f66e05acbfe934ffb1fe39cff7af982ffb3f41ffcc02df9ba13fdbf86fe
-46f2b2e57afbcb39edb22be693ffc95c8cf107a2ff93efa646c3e480edbf70f59bff4593
-fba566fe85b6ff52baed3d9ff281fec14cd8ba9efb82d89d1efc51f336f9bc20febe7cfa
-be6df437fe15d796ef8739fec218ed42afd96ccbf96fffb9f67cd99930f9d805b8fb1bf6
-a6ff6afb17d9f9ba5de70eef49d9b465d893ff7be59f5090ffa32dfe42b9fe8ef6a911e4
-c2a5ce86f20ce960dda34697e067eda5cc5ae892f220c5e088179ed901b7d873fbc466f5
-449efddd56fecf3bd852cbfb9b60fda53be5c328caafdd31cbf54bd4ed73d914c9abfb61
-dd22d9a4ff6ae51adb61f0be79dd95d884ec9fcf3be09b18e694dd85b0ff40a9e4b97ae5
-a5cb96f114ffa43fe310d838e54cfbc25c93edce70d858e034d986e69f48edcb7bd879e2
-86cbff23ed4dcf18fec6ed09e5c686f0d207d838edd160f234ff51afd886d815fbb6ff7e
-d019ff7afbaf62d8b65ea5edc5ff5af679ffab51e1a4bfd8ee199ae56dbef483f9932bc0
-dd07d6ff60a1fb7cf369ff79b8e6a220fa86f463e402cbadf763f205c794f8affe28d3f7
-3cff03fb46db8bf462ffcb7afb5fc2e269cbf50ffbce2aff73fa66d87adfc083f287fe9e
-c774eeaefe2fa5ff92fa81cba1f15dc7fe8821fba6ff1ff65098e0b6f86af2b23aaffa5c
-abe0619af380ff669afe82d894c1fa3ffea9ee79e209d99fe490d903c7ff33f7caff3a86
-b8ed94e020cdf30efb277fb6cb38aefa22b4df15edafff79f75394cfed4cd819e19ed907
-87f2c75be0b0fe93bcff4996e07cb6fe59cc44a4e57bafc886e17cb5ff0eacd929a3f103
-b7ff25f7b677dc5bafed54d902e5adfb24f6b548ddaf07f7b519df55bee543ed08b5fe24
-beff0d96e0afd445c69fd1affa883ea4d880df93d97acdfe1bf8c854e0a5c3e627beed05
-dd72e0c551bace54f85cfe41f567f14f9fde8d1093d8fa24d046affa61b6d595ddff4df2
-ffd97aec67c2ff62d838ecafbff20cb5ff85f8bf48eec0ff42affe952bcb39ea7ed1fc32
-c9ed29dd90edc050ff11edb64cf2d872c7fd6cf7d151e4d84fa9d930ffc493fe7fd888fc
-c4469ee55bcefd79caed61d6ff83cff46bdc9fc1eb51f379ceadf730ff6bf483fe37dc13
-edb9ff05fb55ff1df64393d9a82ffdbf18fb52b2f84dffa7f51a96ff24f389c0df79cb9b
-d886d6f360febef44daee46bfec986ed7cfe40c288d793bb09cda5fc44acda86e09920fe
-65e277c1e03ea5fe935fd89de00ed0f286dd6bf917afe85da5f67fff09fa93ceb761fecb
-9426f7b638e0b17ffeaf79f2cf84e0ad43eb09dd3aedaf62ffd086ff9c17e051befb9340
-ec9911ffb927fe7bd888de34e461d9a0ed07df5feb79fe85d76de8c296bbeba0c0ed78ff
-d86493f27fc8e179afcf5b92e4c06bd89dfc2fafed1cfa38ffb521afd92fcc9fff81f2a5
-0fdb2de058b5f615fa5ae986ff2fd399f703fe4af6d186d892f52599fbd610cefc30f669
-ed55beff58eec09fd983fecf3ad872d76bdf2bf5d89a18ffa9ce59f0c419edc12afbb50b
-fe5df193bef89cffb831f3b60cdb3ac5f292ffa221e4bd69faacc873e259d517ff9dfb7f
-f1b44fc48cbdfba5c74de52bdaaf46ef30cf5aff01d04bafe8c445b9ff0ac1fb26d8fe3b
-f2a5e64ccaa5ff7dd885e0c26dfbd072ed7ae00cd93dc1fb8bff93cded66e0a0c329f2af
-e179ed6ee4a0c7b75aef31fe50d9c452afe581b6c98fd4affb9f09d99927ff50f10f87fb
-b4f23ffeadec8641fad468e683fe9f71ff9661e6c668e89cd119fe4dd25ec979e4c18eef
-7cfaab4bd92fedcc79f2d02ddb46fb86f093e0ac43bfd804fc86e4ff42cf1bed9fc0fa5b
-fe86c5fb7be486b6f299fa11ff9cee6dacf36aec7db6cc5ffe02f068da13dd4afea20eec
-bf3aff97f753fcbc93df64d84df3069effad4bfeda9341c5fb1ab6cb5efb11ff95cca8e4
-78f286fe29f44efa1aff2f87d8f479fecf6ce5afc3dda22088e0c35a94ffbf79afed4ad8
-04debf41c8fa924bffc079f9a6c2e586f012faa522fe56e08ad0fe78f965b3ff0ca7fe7e
-edb0cb38fe62f9c569ff95ccb826afd893f862ff078be09af30eafd921fac635d87adc6f
-e020d2e53bd9a0ff10f693c7b686ff80f7aff260bdf7955ae5ad02c6a5d061eb1cf2a5e6
-7fd9bf33c6e18652c1fe9661bfff31f07ae5c062ea1ac0ff01e994da72dfaeeda4c1e64f
-b7c742aff6933bff4bf4b7ff9e1cf9c506dbf033c1ff93f77cfba5ed0dbfe0a120ed3bda
-7b29fda3dc68ecce79d82dea05b6c69fdd3bd892f34bdf9801ffa4bfd90fecaf28e548d9
-fe7df253addd7bccf2ad39d8a5ff61f150a2ff89f659cbaefa9652feb72fb1d977e033ed
-d227e3c23593d2e545cdff83d8fb62f22dff99fbbe31c4fe71f991f41afb9fed0bf2ade7
-83d993d8a63efaa2fb5badd8b53bb8ff8f37cb5bf76eff24fba5e00adabf9ae078d857e8
-bb70e5ac67b0fb8812e452d12fe05cb2fc35f5c486ff95f2b1cb38bbff4496f5a4ff6df7
-5bf114ffb85ae7afca66f8d260e02a9af284d0f66efa8dc40fb6fed130e9af26ffcd76e1
-80d887cbec62df28b8fe3887eacb79dd8fed47fa9eff539ffb5795d8fe098cfbab1df044
-afdc8ad8b648c870ff9515df48e562b3cfff78d859d824fc51f720ffb1c96dd288ee44fd
-9ff114bffb93e404d887de7aed86fe76f922c5fe01f179cfff4bd7fe24d9b8d8a4ef87d9
-81ffcb72d869ddb449e510ff72f885c7afe01ad986cb9fda93d886c7fc8616ffbf25acf1
-86fbc25eff52bee0a738eea5e03f98ff78fb86bf52fb19f531feaf13fbbea5e57dd7ff05
-bdf718fc62d0bc20cbaff279beff62a1edba65e194c8a4fe35f916ee87e5b443edc0a5ff
-95d8f8274fe5afff7bdc9ccb89df60ed06f537ff96de7ad863ccec6ad87bfea5ed53d61d
-cb5ed888eda563dcb1fb2ca5f37dbef28448fe35c3ff1af2a423f3abfe02f9ca80d891de
-55ed05fb5afe61f238ff1ffb4ff326a5d5ed77e588fe3ad969e6af32dd9909ffd867fc84
-f7c916d95ad6ed95b8d29fea6de096d047ff0af455afef935fe2c3a5fe86f182dd0dcde1
-18ebc82bfecf35ff6ee67bd083e09afe04f7d979fa59cc0ebd87ddf29333c0f946f408fe
-79d096d886e0c50ebff825fea64aff21f2c342b1fa8bff95f232ff51beea93449de3c917
-ec419ee1c19bf450afe566d0ec9343beea56acfe61ee25d79dd87addbf93c2e785d077e0
-7bccf84d9ffb58b6d894bfff11ccf773fbd379b0ce20eb55bcf188e5a50cf63eff4bb5d8
-57f488ed6bdac29edf40d3ff9f4bf303d83ffa5dffaa4ff8b586dd7bb1ed5bd806f15fff
-af51c7b86aaed024eb85d9fe5dab02c4ef82b5e96bd2afed31ff4afbb579f2a56ae284db
-b879de5f9dffd111dd48e56fd897cdfb16ffc6ed6095fe8bd0fa07ff63d5b979c5fe3d87
-ffd87ad093ed1bceaffb69fe30f7b13eff0fb0db3dedafff4293e0c12dc5fe0be951a5ed
-81b8e34bbcf350feb579dca14afa32ffc87adfc293fa03fec623aafc9330fa86feb723db
-bf93e76de3afca79ed9ad43cff51f913c3f686fbb6dd25d4f57dfbd838feb66cffaf3fc5
-fbb1fe65e217c9a5ff55a4d987e4c21ee659ffc346fa07f6cf92ebbf3586ee9fcfaffe08
-f7418ede86b60dfbd432dd53b6cb93ed20dafb059adfc115a0fa31ff5ebaf342a0e28ccd
-84e5a5d19afa79fea509d8befd04f297e250f37bfad045fe20a1ff9418dd88cafb02ffc3
-93d8b64dfba523e574edb079bfe041d0ecb616c86cf67bfb2ac5ff971cfeba26fc6bed82
-d0ace59b29dfa54b93fa9f3fea1f9fe586f3cb2fe09ced70e02bd496ff86ee25c0fb14f6
-5ba2fe80d92ded9fbee09a3efe15f5aefbc356f22ea4e07cc2f4ac5af2d879aff67bff86
-f75bafff9458c0f678fbafe06cdcc29ae482ffc70bf24fff18f153eb2adf4ccaf25b87d9
-b16aff78cfaddc1e9de48adac12ec5ed61f83593ed86e21df26cec81d0f35fdbc14fd9ff
-6af8af79ff93f2b059e088eda943d5ea59d992c1de04b6f22f89feb970ffbbed63c1e088
-c9ff53db0ba4f760fb14ba7af656f23cd861b3e07ecd93dcbf3ef4abcb8afc5286ffc780
-d86be0297fff93c1fa4bb3e424d0fe37beff4ec2ea14de3ae6cc73f3aee926d951ed2ef2
-af0ffb4bd929a5de94d877dd88fb7cd6aef76398ffcd38ebc424baed3193ffc663fb79f5
-a6fe87d97de8d0a85cb8fe9ccf07ff47bbff972efb9f11bbca1ee04dd832e4c207ff50bf
-fa7aa5f56efe38affbca69ffd754eeca3cd912b1ff09f24abded7ac6ed84d888ccffd88e
-ddbf7bf9c3fe39f24fff27ef88d061ea14d8c5f11fa8e547ff9ad8bbd902e363b9ff85f9
-6c9fe5941ded6eb4d881fea50ee032d865ff9ec993ce5eff86c0ed72cbfa62fe35f5aaca
-44befd0d93e0c11aaff77efea4f683fbc05aedb404ed52e041d70effbe24d9fe3bc84fe6
-a5c0e18715c4e585eeafe562ff6ff69cfa79fea5cb9dd915edca0de0c495f1884ae5bf79
-e00797f77efbcc85da93fb9b1cfca745ff23f3aa3b6bfe0e9ee5a50b92d89bd579e0adff
-09f8b5ff8136a5d7fb6eefb90afa4ea6fe87f5ce1ad93dc9ef61d9c4a0fa27ffbf4ac1f2
-92fe86f1bf4bfd0bf9a5c4e93ba5ffb754e586b6c603ffa0ee67b8ff34f186e060d849d7
-15d863ddad37ffd89ed291f86cf2af67fb73bfed86f96efe3797f7affd78d959fe3bf094
-dcb90ab6d646ed30f777fe538fffa84ae421d8fe9f16fab4fed45de0a551ec78d863e4cb
-81e6d070dd5ac6f8ecafc2fb2affb6f55dfb03f7c5439cdf934997edb6fe883ab2cc65e6
-7df2ca53dd329eed93fba812ff87fb56d2af69ed9ffa60d047dd14a9e283d977e01d93fb
-d80696f61dd0fe80e078d821c9ea6fd9aafe2cfbb8f36dffa9ed08f4c261b943ff15ade0
-c44be5b3f10caed821da83d1ed50dc42ed07d097d884cb2beda7fe87dd80d861e0a4bfde
-65ccf884ffa540cff2a44587b0f12ec7fe1af937ffb65dff31b9fa93ee9f1c9352e079d1
-63ec36df6ddcb07cfec161fbb9d95edd03bff7da1cffafd32c97eb82c6ff7ad35ae0c04f
-dd02e57af2b909db2fe497fa88cbff35f4b6fe57f2b9498bf3d27adbaf3bed5cf98cfeae
-43fabf5a9bdd930c9fe0934ec1fe6ee58ff2c697c1fb2f93ff9a39d89ff365ffaff518b6
-ff93cca6ff68f31ef95cfe7ada52f21bff94fbc33cf224fb9418d256c2ed9360ddb9e91e
-beff619bdec29ed111f3afd98706d847ffcfd9ff32ed95d989cc94ffbf4bed1ce5b12ff1
-22ff79f4d8529af1933ffeadf61ffcab43dc08fe79f2b274f79ad82efcc693ff7cd81fec
-5293d89928a5d86dffc6e65fbfff4cfb9ecbbc2fde60e387d104f5ce47eeb6fe36d0f97b
-b2d52afd1cec5edd70b9ef09cbf978ff31de9543c1e562c80efb52bfe086d890dd97d036
-e5afcf5bea0d86ffabd778edaff59dfb09b8fa27ff5bf77acfaff28947f070e99752f1c2
-fe79e4a96301b6c95afa14fe51f1109ffa91d886ffcf78e0a4cc438affc976ddbe6ae079
-d867cdf971f1a5d92efecfa846ffaf79e657c3f167ffa5c3ef79fbb8ed01e59824b3fb14
-aee56cf10affa7c3f313ffa3ed7ab3ff70d881deaf18eb44e399cab679f634fecf7fe0a8
-51d290e57acbfb5aa3fb80f279e79c34fb4dff03f272ffa264fb93c9afdd9960eebc4bd8
-37e062d0eb81d992d896dd36e60cffbfabfe42c0fb933db6f428bffbef83fda7bfdf86d8
-80e5d030e466f3509efbc20efbade9bc12fd5af9cb0dffb0ed159fe0b74cb6ec9321e8be
-65edc138fba00ce0af40fd06e05ad97ffe86d1f179cf9edd2dd888d96bed4294d8b63bb9
-fb1ec3e627f260ff95beff86f84affd887e4a520fa57fec3ef27b0fe05abedd626e09fd1
-21f4c3aded9fc5a7d612edc228f150fe2bf9c102ff87fec57dff9951fd68f410fe6afb86
-d879dd21cba5e028d0ed7ccd9dea8851d823e445a4f426ffb878fea5cb0bbfec3c8ee57b
-f22883e2a5ed3095e9c13d93febf27ff8cf86bc8ff7af9d011feb66eddb87af6c095d2af
-ff37cd4ddf38bef93efe5cf693ff57f798bfff78f993da6ae09f57fbaecd3ded52cf0eaf
-de9302fb49c0d993dd89119efbd85bd0f83892feaf41ffb560fe0fce59f73bfdb66de09b
-bed88de555e895cfb510adf227e5c01ccbace54dc9a8ee5af993fe7af781ffb013fa4cfe
-38ddff9cf27affc770e0af3aedc354ffa9f75cd1ffb74db3d8fec14ad1afff8760fbd85d
-e284c4e516dd52b3d83fabe082cbf54fffce20dd5ff96b9ff286f79bff64ace486ed74c9
-19b8ce22e14dd428ef51ff86f7be8e01e5a1c2fc6bf3d875f1afcc9aff78f33ab8ecbe4a
-87ea9d67bce06ac7eb7ddabf93e580de89d97acaf945ff08f338b9d384f53efadc6ad8b5
-78fea5ef72c5a3ec01b9cd2de051d904db4de1a0d893c7b67b
- >
+E531A42667F704429C054DEA1F8B27792267D7115D0079C66A05951BDC300F5C
+F90A6504BA50016305FA0C6B029F12E46718D25C017116D9361AE52352F13A13
+DE4027EF44035A0D82015F047722612FF027CC1A37019A08D46C1E55C404A71A
+9B12E61FA22E009D0B3800E10D3A00EA0E67FE05B80ED25505DF00B20CE75320
+7C2D61009804E25026864000B00838C421B300D60A850092045D400C7B2E7711
+9200A10DF40627097901CC0A5030B415359304630CD301FE05349B26EA1A3912
+F926830856BC1F4F38CF29439833852A419835D9275A0427863812A9278200B0
+410196290186500496005F21B526C727AD37F8179D01860B50017FBC5A267923
+41DC00623748D30153357D045CD8216CCD58266CC25A23A40033752184013492
+153F5A276B019E4812A555236E3700A90FDC5F1FFC620B72277A24A626501FBD
+12E85500B8035338DE335A1B96503F1F89279813790062E04027BA452F95164A
+82016C095AAE49005F12A538048F00821A790B26D410A700600D7800C845A200
+794C04F10D6C26784F14AE400EBA2F4DCB19791186007A096E0F5A34E61D40A4
+69164910EC00B205338520F4002677BF124AF5173E8704490890014A07802755
+C6119D274FC0264B9E04D719C03109D13C10F108B5611A7904327E012EA716F6
+0674013EE36600773519992240D0095A01863E00BF6BF20E5301E825CC0F5200
+800774115A39A61BCC29B53E048531C44400E96423DF0DAF00F168014A1FE326
+B71D3D6F0830FC1FC434439E1DCD12F64605D4551F7E123EA505F2324B1FE026
+A1007C0854C3123DE100782F5A1B904F09AE109A6730059E002F84014FFB1EAE
+27F32DAC1FDA043F5F01EA086600F91069386F054D8D5101832779142FED2248
+A112CD4E0050399A2FC96C072DAD25CC640EED61139F27C121E24512290461BA
+3E1B852B7424BD27F31FB300E6077748007B13E02293187E2F5115A22D762688
+371979BC59087B0150F414BA58106B0A7F00603B048A00A2325E00A408FB0158
+386901CF5304632FD723AA310083055937B404CF450EE5276C395008EB40226C
+B112C9263B6A0E7C1A78006C0D8419A2501B7912864829B900AD27F60027DD1D
+BC004489015ACA053B6B1B79D9045A0E501CB5530D7A013F8704278500760D6A
+0570AE50C43A17814E05AA01930B780186346024941236EE20630C7701F30BB3
+0379094C01C41150CB043E15A049319104634001AC249427E712B757276D227B
+19E126772C8622C41A9F0C39921284026A0D5DF527B82092266C1FA13D048600
+CD15A51F5BD50A3D52079800BC40019D12E336B526F60B37B327CD3801951D5E
+0D7F1241A306633250D612AF3E1F6CE40DB82812AB24EB00830439F31FA40B4D
+C5421AF634A51F9B3C00116C049E00E23B12F9325A18C24704D14101BC6A0453
+A93549A2266C1F40CA3AFD622784015C2F76EF0026D8123A9522772DD6015307
+69401AE010CA0B87326A04BF0B65007E265CB200FD20AE27CB3904770C6E01FA
+0A850168BE1A5F2B79037F00459E21DF601A77115BD7233F5609436100488500
+6C0550D80C41ED462FCC77163E990E860239700887003F5B034985006734A121
+CF61006C27E031006CAF086100E8491ADB8F24FC26480D68A14100D838651B79
+0E8433500DC72F00CF062A8700DB68260053129E22F51FB40D2A69AE0552C200
+E8099B123DA430C200960540633D00AF1293203DE4500FED40146C3479066C00
+49971FD1349E125231EF175037F91248E125B42D047B0036B427ED300569B003
+D21AA639CA1FE52F9F176034790186045A0050C404FA2654BB1AF726A0189534
+F41E3EC5136A400C279E1281195C96122E8022933101792C00480860BE781E53
+227D0D9501ED27AE21F91B9F2686411E78E5115A3C057AAD27D3004807810054
+960A348A1F6C401E84275AF30D732077265AAE01EC4B27F7004A850427974903
+CA24B61A50ED26BB113F5600603AAE004897018D079C0032860D65F71B49860D
+7901479F0C336E2778016E0D63047C23F400AF1AC323AB1FE7266A3A1C960C69
+4700602AD7016D099258078901FA794933D401A50843FB4704D30D58C712AF5A
+CD781F4201DC05C315AF2647098F00600679006A08F560015034B315C4400D75
+1F5BBE6C27DB3914E14900F80DA05004C600419801D212FE300D831E9E165A37
+D5136CB80035830A6100860A40620178E40DB224D41F79122EC9254A1FB95605
+C7195034C104E61D55BE1842FC00B210F1229927AD1249098126770D3D6C4008
+9101864B00E2139C36A91250AE24BF122DDF205E3B00B9085A3E22CD270163A7
+2678380684270E3801A412872C6C34500360DA6C1250DE402DD81FA51238BD0E
+91047C4A1AE9019A08350EA61A9E5F0179285A3905DB3D22811C613449840168
+C83757037908A6019E441B5AD71AA52FE327C41FA1324F266C197C048607E960
+056CDB600F3983277901951277278A310062921F7926852F5A06D90154C55C2C
+DB0156F300B86019DC0DBD3A783101DA0786042F7D0045A30150AC127122941B
+EF680472B83A0A8600F34D1DED79B55A27F14C0C9E00F77E1D4B24B93903980B
+4A7D018B5A226C27F92F008E24502BF07850007F0432BD23AF12CA6F1767B410
+E204AD0B27B51F5000DD2FC64022722D0CF3300D75267C105A017A05D909AD01
+F52F5534A64022B314340177EE00A912EA245A00AA0869D23C04C40D4B01C214
+8A3677214613A71F93341180133B9E472D6C0541B961224A1DF9410DE9651E7D
+3805C627E4047F00419F1F5213DC2F5E18963D011249097E0033D31A59270BC8
+00791A842755B01442D12F04E2009F085AD40C61BA043B12CB3E23FA460C8501
+614000882D025A296C1FEF4D04780CA21A6C125DE705BF60006CAD01F80550B4
+3E139524841F7F4915D900660B9300417FBC3F0D642F6C024CD23F22F4125013
+81275AE9601F6C00A50BFD0086036B06C95022D7055A00A722E81F511279B06C
+00619F3204CA0BF359257B125036BD260DE7009D4F02AE4104BD68D127E61FB4
+6C043FBF7746379D0EF205C5003BF0012650AD1D7A31821340A23A126B964802
+AD64096CD61E3AEE26B20BFA47A0009D53009238E349267D07950034860E3890
+1F3E5B1693270069FB2F5A00E936049A0F741FE12758FD0451229A1FD826B338
+0D6C9C01962BE200AE0A4605A432E6267B2A6534E32782380186277926FE0E6A
+018109F0013A26C13D167B48229230008B0162A50A51924B326C3F1B8212D831
+52220088055B3D1298632200A604662F5A3F1F86224F769B12643F0DCB26AC02
+7205DD3F00E831531A9B2D045A9704791F3E6B193AD13F11C34613691BBA28EF
+23BB4F1F52CB04E211BA344AD3790D5003C63F126ACC2945BF3C01790D3A7212
+E0007B04860961A00550346C1A4879209227D1128904470DC6059E0FB21A5BF8
+0DB600951A792FC926922766D1055A0AD701B15A0E6BB41CD62F16FD2901C807
+B10DF5266A00770A986B3045A401E02F06F24927E312AF01CD650DA5093705FC
+00BA58016A1BF149277F1DAF229405E20050B83F14CF0E57C500B20D5A218932
+07AA00750488013D6801FC12792B4766009802233CA61B882260B50B51008108
+5E9C23AE1DC7452CAD35501FFB1A30E215BB04C80732F8016B0279225AB96927
+7E1F5A0197123F6B2A5333C201A10B5000B51144961F84276D3500DC26513F08
+9C43007E471A862360019028A226FA1FB90DCB18712655A1118907508420700A
+43E92768C279206C3A22EC27790033C2014D0A7B10722F841267007B27853208
+79268605F70160DA2256FA3E145AA51892276B00A809D64127EC6D1249DB0677
+0034861DA924F01B40D1066500880B5A06CE5B0084490076275B3AA1511641C2
+4C2FF0004B0CE0003FEF3249D300AE07E4115F3F1662DD401A86012FED00A512
+F941199E04EC60226FAF10D865003ABD4014E00F79043E016127830BB0013879
+23BC3400FE27B131009201481250A0079304860DA65F126CFE5A27D222AB1FC6
+27F822A501E94D1BDF2F6C277F380E8E2F0979D02F0DDF4906B8502278158305
+530BC00038A527E04901F8385A04A3015A3495274AEF1B9E233EB412C926AD0A
+F200690D88255812981E86289C2050AD04850A2F911F64377805F27B2A049B34
+4ECB520D792C6005834B0D6C3B01C205316C203EF35504814D05B334509347E9
+004AFD1F67D40053129546127B1A844E15D22AE7003FDB125230C540089E263E
+049F00600A50019107500C6018943E049F00BF12A44801C15027009E40013486
+1B3EF804AE30C91F8D2761860C79129B2769138C462F7711F902B908396C007D
+046A42066638511FAF23D900B308DD004509CE013D92126127BD52043ECB00A9
+274300C0550EFC0422983E14DB23AE1FC633AB1A851249E1009105780DD51F9E
+2F5D00D71A841F973404862C0D77EE3E01D05A04DF07BB3E770456B01A6036D1
+00621FE25000C7701F49C138EC6A1B6FD938B64800CC5D107D1D5005EB27681A
+AC5F116EC2630CD001613654006F4001F4072FEE1F5004D407B40CDF00BB501F
+74265FAD11D62BF21BA531E9019440057E29603474275EB66C125CF90650DB00
+770EEA5823751E50B7246D1F7727854800BC50036C00750A6400D350348B1FA5
+28CA16356C3E01EB1DA00C3A115807BD4115A85A2605A5611B3294233B6A0026
+A0340E82248718980F85042F7C1236F20E6C044027B10041116C23821334F227
+47D761177A00D60441EC1F4C239A27821FA126E80DB5691DAC59006BB9412F5F
+2178277E1437870DD4002F7B26930F500083116C1AD35A139E0EE604A00F4922
+813417862C1AA446267D15B30DE004813B09D501B20BE1345A20A331CD27F026
+97290BFA02530979225AAE03C05F0D7F2754AD40D66C1262E1003DC850280973
+AD0051B21FF5500ACE4E01F303692BF73748D71FA858009226B67E065A317BB9
+01FD08B4501AA50C78014FA334499831058700F6085A04DB0E791A5A3904923E
+229F36097A00943F01C30566ED00A13948E5046C013DBE5A21CC279C0036FE01
+7826821FF501C605D74800BF6C0537C4014E0789305B12F54C2C941D77268104
+F908790D59017F0644A21F69C53C11ED0040861A39B64501F404850027910232
+860E6C007FDD4113F90E7805468E276820AB274FC0055B00990B83062CB21A4D
+0142D312F40426602E4165028C006B20C92C0AF4260E6EB22A6C1945BF334995
+003FAE12DD500ECF0154E91AC512FC4F33901A512C6016851FA422D079082A86
+03770D53A6206930AD0167385A268C1D98385512FC5E1B6CF1366100AD410097
+06425E00C4109F26921F40BA3A13E25C018638009B6227841250FE006812974C
+2C2152EC1BC55026F520B5163901822B6B26D53104E100780689113D7922B61F
+5132ED6C045DE4770D2E921E763CC900A91FDA243FE83A06926C1F63C400430D
+C8358600770A27C8650181470084277A133386245102970B49CD04B30AC70157
+0C60401E57E00DAA32EE3E05870CCF1950C5069F4100650CEA049E3000922702
+A11FD118792F50BF12E83C1F682D7C00E360006CA83D0FBF4814E54008D104BB
+260A7927DA3E16CE9C0F6F4207AF014061064970C01FA10C8600A7611F3EC551
+1AE800AF400E68CC004526CD124718BE660052A5134B851172055AAF1460B83E
+00AD065526E360017812A522F55A052FF01F28B918FE05B161006CA53B20E512
+317E226E2744F734B105FC003E6F43006614C1274700933312861FF135B85020
+782350B412CE490E6C279D05E11B3B6C0479AF01DE17573D098A1A5022922C05
+965025861F5A316E40B20162088A0131C10096284D8519A334E503503E04CA1A
+4056109D6C0C30A42472135AFA01279E78083985009C3D21EB3401DF0A30E526
+9C350086045312DD277912913A1A9D2EE90494401DB46C085D930677325A400D
+E14312D260006CA4014ADA068F006C1983269A12B31FD5257A016EDD5A22EA44
+006C0B7A032FA400D30A644004793AFA013F65128B01AA500D40600C47B512C5
+28FB04D00065F23D0DB70141A300DF0E7F3D1FC32550055A3B19F70D31D5007A
+11891AF05E236CEB07BB2E00FC5F018627D2093BA26C043EBF6322FC500B8A05
+8646209B5A007E0BD34A2BFB22851A9E01F94A04CC4F14653856007F113EA212
+3BD74600CB1D9D2F0486072FB8401BF412673D14AE27C8005D356B04550E4AB7
+411A4C047D0762B427D1265AE0136B288E17E634B7004AA80DD55327EE3219F8
+26CB3579046C267A126931851253017F1A59F713921A5004E977006BFA8322A9
+65046C9E0C4922AD277900349B012E80154B901935CA0D64008C255016E51050
+01950633D127601AAE6C043FBB295012A30848AA01502F6B3B0DA73F00D506B3
+0FCB2CE3004EC301631A8527780168BD1A4A8F270485369E00C25A22771250E0
+17C127F780015D0DF427AD129D3F117601840E408507AB013C711F4F86122692
+4400820F5C8F057D009522EC1AA400509F0C49C822AE27D4330477263BBB5A2B
+0DB337120ADB0040CA3D1F69EB5A01D10D5AD91247C1013CD805417F1E50E33F
+1BC501AE228627DB1F427F00A40DDB0037F60F6902EE66267D330D77E304B318
+85531F8D277927861F622384331A9E26E804B312F1245336F90062DB470C6C2E
+5001EF08873706900149092FC82292007921D92D05FB39BB1AA60034F62650C9
+009C0831CA660434BB1FA10042B31F4F10AC018533D83F1DEA003578056E0067
+B312D97B002499531B60A271277C115901BB05471286279A3806A96D1D609621
+52EE0D9F28049D5A0C7E345500A80D5AC812692F6C278449237927A34000BE04
+D0551F3F660CD94000EE0B5001FD097801AA0DF95A007C0D3C613F099501810E
+AB135126B904E50F8630A225CD41205DB5764E12792AA5176200508849006130
+46C55E1B791565411AEF53012AE878074A23C82D0A6CD92F5B3853057601AD27
+61B110E1279E1F405E072769F20432E0002F03AC1BE5278325792DC6095001BC
+682900F7320AB6006B3B01B36C0F27F74913EA681A7B01319809EF01B108C001
+CD12581E8B213D6C00B01188315A26AD223BBB621250D04026770440C62A49A0
+17C34E1FD3276D227C0A97195B1F97276C01790468F30D4600D93D01E60850C4
+38B112279E0FE904510B8A01DC04BC296B12A37B0C2760F56C0362E63E018907
+F111BE2E550D930745881A500AED00AD3DC70B3EA86C1345CC396541009C0AF8
+00A41A67FD26521A8C40128649277912D05C1640BD793400960536BC26F5451B
+B326781F502D5B397704D4105DF4138425E800C6057601866B163FB03A046AE0
+15B1226807D9046C00863905A400C431F50043D23E00BD14E61AB33C00952383
+1D61A71F85310D7C016ACE1F85277924D82F9E26590E7A00B9381858BE003914
+861D5022B41C6A27994417F66621D230036BBD365A2B72024F861F5401799E0F
+F508B75326733562279400349210E204CA5401E006AE50052EF200500460C826
+7948096104875000911261E70DA500FE334A98052F9E057839501AA412F54407
+D8007020921D3E5A008612994F33F72744E8611A3E6A045A35860379490B6032
+465A13772AE904BA0A2F6D00E05A22F034045400BF0CA2007F1048AE37FD4920
+68DF043F9F48D90CA5007F054EC7005D0992003679015AFD3E0089049B14FB2F
+00C10DE7471F5A406C3A15DA0EB305DD0F42B8046C402777189E2F5E3D1F9E6F
+1C9225DD2C0BA401DE29A53E14D83749CB043482266A1483013EBC5020CB2701
+9C61277A361A95269F0EEB00B407CA3246EE3C00820EAA02510B78E312B123CA
+1BAB10FD37A300960CD626A91267344AF812A43A048E0A4876E33D196536501F
+EC016C055C0B8D012F86126B04347727CE30FE1239A427DC1F4AC41AA20D5012
+7923E21F6110974722823404B9001ACF0189045E1F7F2250791F49C600B10843
+6900C60CEB0037CE076C12924B1A6C127F00C65B017B0727974100D609AA23DB
+0D6400860A53FC4008DA005CC0045A2F6738552D6C129A015B1FBE26682B9023
+BB264054006C0D7A2763227F1EC9246C03840052A0078702405F15BD4D2FAD25
+069F45F708BA6C148423D61DA833CF5A22F826C15801970F792560860677013E
+81056C27D826C52FA70D3BC04105D451159F6125866B277629A730CD003EA501
+E612782C5B36F91FA7277A238757123CB54200FE39BB521F94112B9E20FB5F17
+B95A1F732F6B1A9027EF193B96122DAE238C2A1049E101AB0B8504F45021D10D
+75099601D6086C019406A12FEC5001DC07B401500554F93E1FCC3218DE276CCA
+01794000DA1A7D395A0027922C043CB650023C6D00500C97007D092FED1F4904
+A80033E91454B726E6129C0082086B0156920079306A01ED0D3BDD0512A51DEC
+126C2659F40C862F5506ED0B9201810D6304BB3204A56101852F5A084201EF34
+4AE40D6A40007E0835AF05E900B449037247B9004A9201460CED731F7C5022DB
+1BA235009027862EE61F791740FA3C1DDA2186053992156B2E40E27912399E50
+058642009C0C3B27FE1BA20E9301D112AE6B025AE27B002779B312EE27B81E49
+38B26C175AC9691FD45A2279320B8A00405D3E1FB027E91A45DF1CB821902A7A
+004D95FE045500850694023B654100A7691C7C22CF2749E4471B6AFA401FE022
+C41AAE7926670583003CAB1DC927F04B168527793211CE3E076931DC1D5EC76B
+3300B805349400662749BD136104AD005134C15F1287570076125CAE2451C600
+9E0A2BAA006912EC22B2621F50B45605782762266F28780A3FD113482262F309
+405107920261E40E50049100460B95410DAE00CF601E6CBC06F95804710F7C34
+0A87014908B11FC4263F5A348F3949E121AF17C212D62604BF345003AC065900
+92085000830D6A0477003FD20EAC19BF5704850A6501953D01C00B419A5113E4
+22A30E80064E03974A2174FA1241C202790840FC3C1666A20D5000B20C36A627
+D63400F50E41831C75461ADB2677017B0D3EF20479219D13C400F405B61FF026
+509E01C50C33961FC76621823400A122D827B226F22F01771A834204F33B247E
+1334CE279600AD5A2668F775146403881900B00DC3092F790D6B2795334E8647
+0E9B62137E21CE30B127D326A2319D27E61C6C38542F771FE12550BC4112D869
+2452F900267A0082046339F71FB31AD23B0D5727841A58D7267F0078C62604EE
+1F802762F107690249851E970432EF00BE600648C14B27C6007E3911D4014F31
+6C385611980086083A6C1AA35A0577002DD410C2572785127708800450C326FA
+3512944F08A701469700491BF84002CD0D460052E34010D07525792762B70045
+EF014008FB0127DD003AF0279F106E0C7C125001F3065A0B8D04B900F8084E01
+9F310D7D2D500F8E055F3ABD2EA72750C9002E870C60017AC604B100F0320E46
+B74C1230924A379B05CE0320409D23C3096638CF5B267E1234921F5813921A5B
+26B950276BEA039F198642346121B412FE52003FDE12A44404694006FB014F39
+E0134789119A014DBE002BD52060DD0C6BB9610631A2279D26C02F06A5602707
+D801F804513686115AB56C1F5EA117B354046D00851CF5013EC15F1F7A34AB20
+6127821564A43F1274F504AD00E427C81884027410F21A3EAD6C2648E9412251
+306C440CA771015D05DF5A00D50B426C2F4979BB0E3E5A2FE200500CB30542E9
+01B004FC0640D9056900900B405F0DDC06C601E248006F3E25BB1F7B3050F726
+9B197C1B5CBB006332C8003C6328841C67A41486301986225012D576125F0484
+127C3950019A4B355B229B1BDB239F1A490090370C7A341AAE22DA39602D4986
+082F9B0FDA004DF00D48C42705D556003E5B22841B7601A327DF1F5F018B0A55
+05D6008209AD01E4129D27501AEB229B341A7727A919E9009F260170FA00A412
+9027841F5AA522653071275AA70E972DE41FAD22BD3D206C26761B9230CC049C
+0D6101B9043C7901DC28A1370D931A822052EB05AF0DE433095401B54105E801
+7A3D004CE74821F300B51AF020C80DAC50126D017E04C927E421CD4800EC680D
+7E4914BC00A51A58D10065227E3905943301863A6C26B21FCF4406B738500C7A
+0652C33F26E2219312621F6C148C295B00CF048D2C771260AE0985015A286A12
+DC5E31158026781FC201F83F008A0ADA0D9E013A6F4415603E0878005AB30080
+0CBB045F1683274AEE471C900D4BAD0B6000D9482FF403A8127927456C044879
+F03A0D6E9E482FA51FC5267900AE306B27790E6700762B00CC31B2395E0E8507
+7701AD2F5605C32702940D6C22EB03387927A412CB5D1ADA5A0EEC018F0A7901
+99345A0EF46320AD300D9750007927A332BC27F64905BE34693C0DB400CF033D
+F52149C90DB535500BC74908D50160103C6B13CC207929831FCC12F600BF0485
+CD27FB1B4C34EB3A532AF04006D6006B097726E8163971278D13AE015B42356C
+00B712CE2EAC002668CC3D0026C00862049F0C501B9A0DDC01A93C8615EA7949
+087812F33244B72C5013861B983350FD4636DA510E6CB412FB01763100982340
+A81B5313FD2F5012EA007D1A3ED100784505CB3B18FB017704860038791F8211
+FE631F4726931F50A204793C0097048A1AA8395433EA47B6049B364F04B20055
+316C472777305001640E8104870E6D019610A55A208E27CA2BA9005ABF11F105
+77248618BF07E02C583F017E115AB9045215FD6C1250F339176CD63F01861841
+5D26049E3F0527E31F540099056710F66204D441008926019609289F4205501E
+86265AB00C6D00782CBD366100C16826A627BB044A8622EC5A126AA90D481CDF
+1257B40BDE019E400079E25A08C2013A6715FD5027E422770083059827006D28
+5908E66C1240F108B404A40CE6179B33A728D123AE26D71F790035B612500183
+0C7A320381216530CF0D6B2750129F05F66825DF341A922781073695270079B7
+3B125FC72254BD09FB405A1FA564006CAF4027DB1A7D0026A54E0BE8125EC61F
+5ABA002673CC4008E0043AF521C70B63049D0E86380884036A12932F09A40033
+86014078C45A267F341A93263D5925A5144D12852F791DD8410686123F670DF3
+27BC1C59AC0DDD16A0253BC460257F1F693557276D09EF00790B600085085A2E
+E269083EFB601FD9239F4937C700A50540FD00B05F1F863B0D8E019A4C00D622
+A64903CA6920540AFA042F810033921FB100D20C34C1280A86044B39C43E733A
+1F79277F053485043079E53C0093561F935111804927E93E1FDD255AD31551E5
+3900FE6C1341B21FDA2D004C079F01D344006AC308D1046C27B900EC0CAC0092
+2658D201B54F1F6A117B013F633084007901520A96013DDE00C405AF50226B14
+9E32F84538BC01501FA379002F95127700E40950841F579D1F803604D85000C4
+1C4809F83E0F6C00DC2E580EE301842677A90DE867066C127B254F921149FD1B
+BA77016108E100C710B31EDE6A12F261145020B21232AD002EA604348401794F
+059400338C1F3FAD601D3DCE6404770B64B512EA2A690D6EEF0F2F7F1F3FF70D
+487B2773225230C40440942C068700CE26EF13C70448FB1FAE27D61FBF5B1282
+1B623F018727DC490466127F17920DCF04255ABD075034AF1B922C0FEB2F0164
+09E671123184275FB26C1760BA269D1A77059F2746B54E003E5A3A22CE2FE001
+3FF2043C830170310DA4238713486A41015A3B009D3E08C001870567EE0E61CD
+1666D51AAD12C44012F75004CB01500C85015025ED279E1A357B228C15B23C1F
+5AA400609801A93306960165F11246A5112455DB38A23275088522981A369112
+4A0086440694264BEC10CE1AA50139C81FAC01F432477440E73D1E6CF4044467
+01B443046DD626AC2A0041B81AED1244269204327C0C3FC4501D8212621ADE11
+B3048D0057166AA31F5DC824A526DE5017EE502BA004FA2F9B17AD4F2085266C
+2ED1401E793801883A00932549009B306A1FA5279823DE27C10E9C065700F349
+04C000435D0692033EF212523B1B68E016BE3F0982005079F400780C5A0445B9
+345000B55A056CEE660E2CFA18B600792F507B0D5A96066C2F415D1AB200277E
+04A000309D1FD23C186BBD3C1A90114A9E79075B037900CD0DE25A01F560003A
+EF01CE069C49276C471ABA409633068400500B69066000864102C20D791C8203
+D14006DA014DF80C5A008E07DF5A1FFB5B0C6CF05A1AD80179095E0D6C00942F
+7C1E40B63C1785395431F51FCC27BB2249AE05D9770050365C209E27DA28033E
+6012B222FE185D01E8690D27D82F043BB779013E6D3A0CBC0027F5341250E900
+C605850E62C1185312C74D0D75025AF900530C7B003EC90A2749D338AB4D1F7E
+41228C2D12B014783E2386320BC300ED2D780C265AD614B528E737B01FBE3312
+98225A36B80C476A1288279610379F22C626A42B0D860527BC183804812649BC
+3BF139B548136B00E360126CA701D80B9E0487006C098501357D0D30BC0FA500
+E504550D6CB41FC62D476A00922779203DC87B00418B1B5A2150AA05D6531A97
+47047FC1270E70209E26ED35056CD8375A22E4298B12338627A523F063216CF4
+006F0B5905973400C0074799216404BA5A00F6632681125001FCAB004C396C0E
+740049840552D30146E9005E29A525F700521BBA5F017E09490150BB34429903
+4877C10D9F055800710B5404F921A93708CD022F72226312772547E34E14D464
+1A9F5A227027841B3CC575300A85057D01D9400FD407AF0053114EB20BCA00E0
+0F65294687390FD0602200783DB449127B00509C270079088600A80AC54907DF
+0140500DA20133931FC021FC26D5611B6CE50141DE324F1A7E38049D0768B43D
+1B0A791FEE01AD22CB122FF42067347D1F9012E2007F1A3DCC770031E32758FE
+79156900E95026E0003F642DE916AE1FC726A128750F5A92265AFB10AE27E634
+B5125B20AD2D00EC4005FD01CA094A872600FA4937E4219D1CA7345086167529
+E51F6B27723F24A400EA1E01FD69053DAF43E1085A02DB4C2AD30A48F227B31B
+63267822973F146CAE04D2195AB6104E2F6A01790D3CA10E512F79088700D70C
+A44A1FD0340D9362C9279D1260305A04935000770CAD08D5046C38550BBD6626
+0C43A51A96123904D7279F0A2F7912921DD012416C2F5A017B078901D93200B9
+053F7F006C0A5A008104950B41864C1292267E123EF501B05A119D0050770B62
+01790546F725A5019709F2029D4B1681276C9E3B2486166C04289622853406A2
+123E9011840150FB3E04D90060BC3B1F7C2788380477EA00AD501D94014AB400
+C612A52273276C22E4400059E30137117F003FA005F93C19D927B93E1F6D2640
+C21A9E3250047BEE600F6C04C0714C1E821262C701B0365E007808AC02DC3747
+EF195024864E1A872050CE1FA926C72FFA2650C70427AE00502FB36320791334
+8625CF122FC026F027C6310D82125836612E5112D13A0ABA034908AF00EF2EB6
+5012F900BD601F6CCB01611FC3310D60A11A850E5000F9084F00E45227148639
+0AC629F01F3E6C1F922AFE0FB5018C096EA8152D865AF43050DA1F771D854707
+7F045FFE00B159067801EA22A8133A01D822872F00A63D01B5451A864906F928
+BB5222821F96112977CA0044EA3B0CE2033585017606690D7900603AD91F6AE2
+0B5400950841DE045207884B0294097E005C9F043DDE00AE06BD6C0061901F3D
+D6601F7F4B0D66007D326C1B3FFD003A26B6400877AC002C6C27E81F9F2460C8
+266B0DBD4706DD61246C118C04E954057A005C35541FBC2A056CC425044307B3
+02950CC900B55A129D471A842F12F326890E74005AB627793F0AF34313E55B2B
+00F231137922840433F60E6800D35C0C38A22704679927794912EF39A31E9E27
+E8169808A10337871DD331C0661B6EBC3E1FED42356612AB1C40C1641A751384
+401FF74401E36A1241C40B37DC26C81F9E098A044F79AD690458DB133553EE06
+9201782C840D379501831A9B3350038500A52F653B12CA2741A615EB3C0060F9
+400151A41B86233A654127683E22E73201C7085094006036B32ED73F094B02C4
+6B1F62870626CF720C50CB00B2104893004EBE315004B963086EBC3E00C50EB7
+305E1648E00149057D2C6C274FB906416E1050009E2F016CA000AD1AD35026E7
+0150089D23FC2704950C349728068B002FA55A0192085E12D627B12E10481BEB
+2F016AC71941AF345512DF01B45A12D72D5600CD12AE1AF64909D400865001DA
+0A6904A1791A501294276AD01153ED00B10DE2018A0A62A32340DE1547D20351
+166C1F84FB5F2705A3013BB26C0E37AB1F6C395A35D81A783A069B1F793419F8
+2153128F1A6000940886003378BA5724C501F01A6026F400AF27E9155FF50E3A
+530D89043380107822DA2F7B0152CE3150C71950B41CF3760428792351AB3E01
+790D66E100820C6FB33E0581005A0EC93F207930049D4806FD67267227793515
+8722AC391A9746319026470EC926AE08DE0034A6047922496C277A1AC6380F6C
+9C013B791CA00CE604AF004612945033D4125100985A058E03EA099D01AA26E1
+5F12EB018C42009C06E02648F74B27D720B46409440F8D139A0D8501974A336B
+0448860528851ADF6A265DF900A3288600AD0C3B87470081057A015E34511A45
+D212EB0027F4491AC101369F27CE22501F9B26E127790462A50C66F03B16863E
+1BB200E2045ABC02405D05F85011BE01D46E3E00842F771F57066B2746C1099E
+043AA70053F100275AAE0D86256A34562A781BAE00EC0D417921FA3117DD2655
+126C27500E8B042F8524A40DD650276C2F8101750AA5023E5122CE1FFE006938
+5A2FDD3D04CB129C380DB34900AE4001C7083F5018D012601A4DC50F25EF12AF
+2DEB0DC500AD67058533A150149D3B22854B1F5B049400FE0A5E12A41FF73200
+C4265200BF4E01960C5137930D2978E00D773F00831F662D0BF2591CD7013F91
+BC13FC016C2A41F65B1F82301977CF082CF9013DC500B407CE4E277D207301C6
+4904AE64003FC630B100F1621F44B4003F582C6B10B200CA12B321531369F30D
+9E016C2F47D61BBD00670E91277A1ED95A22D1345A128E2F9E1FB9680549F737
+92005BA6276726731F6C2678123CB9410E6C077F0062CC05F709AE3E126C2946
+BD3C018309874A1A94128A431FDA2668CB1941E964004C33B61EAA27E805AF78
+3504871160EB22006033A10FD001500DB604D660053E976B1F5B95117A1A3E5F
+01DA083FB92B5D0F86411B79A401831A7A4004D96C1269FD07C101931E792360
+0440D1783200852750AA04870854127822B5195200A530017B0A9204FD247A0D
+70013498206C0440E53D067900D708A002992CF7045A00E020C226E841125530
+6B26E749A70582006AD12F5A12E63D04D12E05790E7F31059D015021C2148C01
+64086D0F8124005AC425A8480A813ED419783D1F882678276E2146AB125000CC
+0A45F22764EE0E9B1AA156149222DF3004E327124B0CD23414962B00C833177E
+205A39F20446E537832605C0471BDF133DC34227A334F640026EEC3F0D6BF91B
+A327781A5000D427E54500C913B3266A1ADA21A3125536E11485227A1F943460
+018E290478A5029800781B3ADC1A9D0F5004B74100A26C2261F235AF01EF5A24
+B90F96076C26F422CF31BA394AE2270C7E002CB51D99055A00E56305C200EA09
+9E002EF71DA622862F00A4053184266E3400F7086C0077A50B4771FE5E2368C0
+0849832250B00041DA1254328908A000F941179B5B00800C5A00E6057E0150CD
+3A0565C222503D00DC0C61C43E16860FA676295301860A95015A33478700593F
+01AF0CCA4913A554106CBC3C1ADC345E0FC201612F43F51F92237E34530BAB01
+50126C394F15812F7927DA2DA7048543005D049012974837F77804504626BA2F
+5012963386145735DB66047C335304BD5A12854100E704BE69274AB6471F5334
+BD023A0590005136F50D9E0361388809A101C60E601A6B12A5560434B327F02B
+862061179E0D5E1AB22A008304BC5F269F30046CB1045A253D09F2601FD42F41
+B515F526B30DCF60266D2F09FC0031DF1F5000924D15D12B407A0DB1046C3B00
+DF07C514FA277C1F9E00C30AA800FC045000860E3B5A129E18FD286802D30856
+123CE127850E7B07CA491A5D3AC40D5012B9490CEA6C1538D621C34A135A3F0C
+94015A0DF0017E199250B51FE7129E015D1BD112ED236626791FAB27E0307B00
+29E86C0777046A11A634DB27792695104BE31AA44008790156EC1F5038F201B8
+79410C9B4F0084046C0A721C814705E300AA79214687059E0DF9260986009F06
+F14E258F13C0502779216A009B09D2305C2285276A1E3EC76F1F60C501E1277A
+490DB450227B1FBE6A00B004EF249E3501FB08AA018E25850036912600B36104
+6F0D792ED21FAE24DD1C86289926EA00391079296C2641BB4A277904A600D136
+50006D03951FC9650F3DCE1FAF25D3067100AE04F901458E093B751FF127BC36
+0B9500771282490527C43412FE22CD38AC00C73C12932A5A3F0466B6183E5A2F
+7544BD276247277712C8003E5F0C940249B94626774A05E63F03DE0CB1631342
+EF063F6C1AAD0034860138A50094300C7834721A6C005AA5266F207917EF2767
+D805429B3D1EFD26A3019205840079376500CB06610E6AD65A05A700DD077300
+922F6C15824812F38418BD0C503F01AE1A5E400084365A27941F406333D22450
+CC005A1184147D4921D926BD2F1AE56C008864077C490D632E5A04F04F1AB412
+D53B016CCF00AE25017C05ED0CB400663449EA1DA929F31F580EEC0138861279
+4A1F92310094092F9022A2510C64CB1DEB6112DA2750F217C801AB28D73F128C
+00D1394C04AE0B5227E1500888005035E31A6032FB4204C15012792FAB1E4925
+CA327C1F4F14FA0EB521E6340186073F5A2D78F71291267F0AFC5314BD01F20A
+56C408A20085056C30B74005DD00AF3D02850DA163042BA72045BC26009E19DC
+249E43007A06864C23F1340D7A1464D73859186C422DD90F8805720068088601
+811A5DC91CAE00C7400551D636BA5300D60432EA4605752B049C48078A01490E
+6041127904E747315F129D5A227F1F95012FCA215EBF12573AB6125522921735
+9E22DE00800695018C0A5AB879264601990950C625AE22DD0545005C35D900A0
+2F0E9422791E8035127C226C12FE1D8802679F23791B67C23254003FD14809EE
+013051EB366B017E0C31BF27E93501811A52B327E9075003C132A30196047A1F
+A226D733B12CCE27B13504842667136CEE125B016C127B19449910279E16BF58
+1A32C31F3B9951FE05B64D2C670AB405F3003FCF01BA1049760D7C34069A0078
+0A8200D30946F4015A129A2BF620601BEE27440164C75B277A1F633B007C1368
+A527B60456401C76CC026031B800DD4801E83AA92D4F0DE7193C5A07F70B4F06
+FA782610995A126CA3045E10C15020F961086D1250BC0E9B006C0A488E1F7811
+831FFC225039E101540E7F1A77126200964912F62DA4023384269F27F624B063
+006CBC01417900F66C0062DE20003A6C3D00C51F7F266C27A81C6B335A39F61A
+AE01EF6727C926F129A12760A60D41B53C04750C3FC13D00820DD31A4B10E100
+B404FC5627BB02376D0E7D19EE6B044D39E40C436815863059196001C35C27AC
+01CB412E98227A1746C96C0139B93F1FD7279B0033860438A4228D04693140D3
+20A43600B327E300540865BA145A32C94000FE093FE5500DD93F0078214FB600
+E207500B850128F91F5435E4123C5012B3440A79A923D91886109900DE0E790C
+8F00E9079E008926543E1A861149026A0D7A0450307C1A63CD27AE50046CB324
+972E7F0492385A146C401A8C125CF31FCC27970132BF11A700861A9E5003AE07
+CF0C97360091126C26890051DA01AC27043BE01D72008E0D801A41E112B75800
+D82EC41FF502604205FB572384143DAA762F0093077C1260AD235AA005278422
+5AB40FD4095A3C1A75BF3549C4400D8F04790864A42486052F88260C7A066427
+F4385131A03AD52E50137C276D1240D100B4045ADB751BC230E920BC01E10840
+006C13E627095301F822B3480D9E2ED408AD01D73E0086064D0DB150267F1F5A
+26D10D38F8278621702749D8254FF10449B71C41860E60B3137F470BFA2E5A01
+CB6605774618830D77005A0D9516862F681ACD044CC6260ED74B22F1279D0138
+92042F78C801A8043766277915A2622B009505269B5031DA20B32E0CD51B6AF0
+03CB941F56BB015A08BE0461015A05C56523DC04BD610C7023922F003CA70684
+006C1285492780FB319D004878D73C18780031F001661B812677491FB0275AE1
+386600DA053EF44201AB620577004AEE01A11B860C349E290D820530E61F3F69
+00A534781AB936501F952F01E7279E2647B44A26DE00BA04A00D3A9601864005
+9F3F007820EB4812DE4E19553D1F6BE706AD00FE4004DD4812F05500CF064A86
+007C4A01A83F12553441EA003D961F85237612FA1F86350DB016593F1E9E32F8
+1247C62254401FCF279F3600B110541A6826A6371269AB0CCC6C1250A64000E8
+2F06850D7900239212841A609E128531501F9A23C7126B420E6204BD60186BED
+36C559007B04F05311C7036A0C9E00EF09B3791D5101FE1B6C01832A78123E71
+47E9275212F85A1A69AE11610A83286C00B408FA791130821C8A4C0D851A7A39
+5F1F781280183DC715EE335B0075B5011E4D8A1249E50D40CE2C46AD00499500
+3DA101E7098401A464089001FA770F5004EE6D1F7801BC0AD84C049200405A3E
+1F862704C156126BC339EB31BA5004FA27B32F007409C500E60D50329D05BE2F
+E2395000D30950007615A326913C22842649E347277C235B3C0F6AC541129F0B
+D113A22250F334007907C76B002DC40436D527B300C60D8B22763100A04901C3
+3D20CE27B201CA0CAB279F2CFB016040059D26D01A2980A30927D22F00A05A01
+84096827EC264FFC1F792768286C203FE412603A0567B82F590B50DB33418E3B
+15F21FBE26E501B605DE5E0D3490045001630A459A3F1E791350E335A4207A27
+6AD7015B3E17730079229427A527BC1F500DCE4A07D901AF0A6001D0064ABC00
+DF3F047E385833653F08C801600CB819603E21B17712488501941E65335638EA
+0FBD5025D8275A0A7C006A0F5A239200DD047526901FBA6C0F85074EFC0433C2
+5303A76B1B3DB122E21A9E3A0A8D045C0DBF00D806B800572FAE189F3E017916
+AC280398066000862E66057E10772B943D1A76F61FAA259E1CC82701D76900C9
+0B5701644008BB0441A71FF7850CB51AFB10780182083EFD6803309D12502D79
+16A31C92146C325A17AD0DE200AF05EE5A27841F954D2FDC007E0D5034E81B6C
+0B4FF504A3016142068E01407412EC29A433E6277F1377365012AE0D53002DE0
+213C94125E01690F7C3705F611783F00790660BA412ECE453496127926861A78
+02D74924E321C400884622EC1FC55004A15523AD49086200A54000680DDD2779
+00865A123596277925B712FD5A26872F0B7900265A308A015A3AE21248860127
+C26E2160BB00F350266D2FFC0D9E0179268622811D7A27029D12E541018A12A0
+27F6068E00AC27D8390E8222CD159A274CF11FAF520369086D01A505F7481ABF
+62013BE77B470167C10044D97722F01FB8492A6004C05027D91E500086027D08
+564837EB0CCF269A3300860894345310CC600D7C2712DA3E12EB0033FA26C750
+09CF2D84045115FE3406B84A08EA0192056D3300A51161C836B33FDF056335AE
+065734D01AB2553900F41A406B3B08D50485005721D02AF3016030D90F50C335
+7A0029CD206C04501AA5235C0D7F005BB61A502F6A04D73409850036D227C01F
+8A22743009850041D070260EAB7813532FA017BC50006F0C8700D633640D8601
+7111E617AC22F61FB4145F45007C1061F5136A4004F8691F3EB3004895580088
+3950791A860E2F892197135FB53E0E619D1F772C5B3948DC1D9D461AE8015004
+6C0F4AA012CD22941D7B00772A04985A0D810496138627AA1F40AF3D0C6C1F50
+BB0548A600770A44B5670554ED37B562024ACD46259F2E046CE400B13F126CB9
+1549791A860E5937CD005BB725EE1B3706B5400428F2027E073E0D2F9E26E21F
+7D129E20F027C335A227783061006C0480059D354FBF042754C91AA927099E01
+7734F70D2FC1270BA206BD0149EC124702F3390078CC033CF100C51BAD0E297E
+04CA58269D1FF52298003E6B004F03F527A4145EEC1134A525E627B500530B60
+DB0465A3008C113D8F15396A1FF726521B933109840027E4137601FB124EC73E
+127B1A5DA100572EF605B4003FFC0441971745970568AD5A196CD34D1AA622E6
+6079CD0A5001AE3A5A054B00930979005B05D111AE2DDC27C41CF2083DA57712
+417E00844931E2126B044A841A53D0412761387E006BB65A26A3224627941949
+7F106B006FBF0C673A12792D810D612FC31AEC2AB55E116C04D843226AD20550
+00791E3FEB78123A861230C627E70052FB04CC3B00A304E00EB14915D3437B38
+0CA43288016606A924F70134E11F9D12602F4A7817830C4EE801337A104901FD
+2F00833F0D8F270034126597365515FE38B46B146329F7269D387724800F5A00
+712786194800E7063ADC11B7005A39A529D5089E026A00E311B21FCA234D017E
+0667E00050BB05309127F7381A50F000AF08D9004FD513498508790C338D2684
+3807A6012F6DB83D12C867012EC3014BF1600475249A1F3F83185C8B216C2D74
+0085355B123EC0511F6926E91F7930620D864E087E013CAD0BDC01B823D62812
+61C41FE0277E0D5AAF12C75C0447B158F40027D504A3087E022FD21FAC128401
+5A08EE0140953E0DAE01DA6C2751971E50711A790DCD017F1F6A27FC21721786
+045A07970FE419C33B0C85310D66D501A4095AB1043E83226C27A138057A0138
+A92650CA01E40E63C012489E0E266A920527A3501B96270041B20E4809C5014F
+BC0641D70CAD25FD1BBB019E076B04DB00790940CF00B64021C52741CB6B267F
+1F9432500079B03D046C00A226C31F3C6A0126F86C1A083FA54F1D70276B26C7
+520183044E1FDE2AA61F50BC19FE54217E340BC60147C4032EFD279F205011AC
+007A0C50A83A5630F636446D2C416C1FB214EA78223E5822851234991F49E201
+881A68B121EF5704DE006C3F1C98005333E10059F80841DD4A0EF94409B9781A
+2A7DD65F27790D2E961235870148107A276A27F123A92B9C14BA5A1250269703
+5393105800EA053E5C0DA46708520E932F860B56019A08E5439F3D01C593265E
+058800DF109F1940EC3642C6650C6D008535047A012FCD0443862276300D9C43
+01860765F04032DD1F962E04CE009D0AA700D505A2008F045A4000BF04ED4600
+D95201D0063F600DF90231841228861F9F13BC4D2EFB19861F79391A99280085
+3C018C345107E266054B019222E64804F0501F6CBE5500DA0C99004F0E77258D
+340176F10549DE3300FB229F1C50C000F61A40C81FF326CF183EEB412285290F
+7013862200B50DEC24AA346000790B5B0E930030A026BE12D15A27B569135BF2
+00AF0FF0611ABD5A24C8360085055F4701E74F2277126C27821F5C12F94733D8
+26961F6C128E30631F77289312BE4F255AC7005FD30D405A3B019205487803A9
+06BF4902CC681FC16017D320A03512B422F311A50086336101CF073917A22F6E
+1E3DC15F01F50452D63719802C0C8649286C09468612992687016C3B007804B1
+5F126CD10050BC00D530614C1B782D6C138622F82FB527D82453F4035E0A7946
+1A950D389907297826823400913D0A79044EB412CF18B8346109B02AE021BE0D
+3F8734540B84016D0952A83E07B903F40DB5267F0034A10740A63E046CB806F2
+6423C50D37D12661128035500C9A04317A006C035695007A3159396812C7259E
+2759F567088804E779122F861A7F220A60AF00CB5E1FBD0DB339D30440663A0A
+E327AE5A208C34009F062D7F1F67385206E138CA048401D1094A0490069B0482
+0B3A9927E13405ED0042E61FC3490CDB014AD35012ED27A1225B30446C019326
+791D8503490060ED01B717C822B01AFD2A01D35026782D8600511AEF6C12DD23
+6A1E9E2C1B7F123074159D5A007B27E700AD15F42759DF0DAE2BFD233ECF4402
+BA08DB50006F0B7D004926C51F5640005ADB07B239C178270F9339069D013F75
+00612EF100C5501B7F1247E10C54F52261B80CFB04A41B81126B1F47B9492768
+BA6C1C5A336B1FC360117E00A56422886605790092395E2DAB05277A006C0CE3
+01AD08FA3D0DC400F40F55D2793113952769007A2F5C0E9E3968149D1DC7163F
+D465052B9600770AFE0050E10149A700DD4322F012941B67256E067F01388626
+770B9114601F8627751936B21FE113A51A86013FAA26CA1F3F6A26005A04E150
+1C6AF32764E8139D268F117919853E00BB0532A71D3F93013E57338927E901AD
+00FA0D5A1AF1004412CC26E800A83801D8223E5213B92C12A632601AB208850E
+40A31BCB36981C7C27661F854B145A38A53F2606AC43047E24EE4802D7470078
+0AE80060054A85013AB355193DB8304A87156137CD2286340490085033B304D5
+2EA81FBE4D12E81A6300EB05B10CE601A55A05813A5A2FCF0E5CEF05790A8401
+A148EC40257B00BA3101861A3B5107DD015A26AC03D85F228666017F084BDA11
+9F005A0A693550782F7C0197103B8A3F017E0D7014578F1A6AF908780448DD4B
+03F95000E21F58FB04894A01603E05CC00A50BDA2F9D046B00BA651A5ADA0F9F
+08378B1FA625C2344E3BAC38FA0C9E1F790DE950017F0F41AE098302690A5AB5
+2761CD016C3E0D8E00405F0979003CBB462F6C375A20843212F84908940042AD
+3C22691B9C31FD3B13700EA52F6012974711C502B56B1E49C24412793A07FD48
+12D426C0142F6E26DF1FB212C62208A224CF2752BD06E35020B32EFC0943B500
+5029CB369B00278812387727A438156D3012B325F5571F71297E006A26EB1878
+0D2EFD0036721E5AAD117706407D11CD087A016C2746E000406B1FC522DB042F
+EF26AC1FF83F00790C409C11FE501A6BED22C826AC5112811DCF009E4104C46C
+0027B722EB0C76038600DF4A0C5A009605CD4B0BFA4005D75A277A2241A30A6C
+05ED4A1F952D009B35530077AA0186063F733B0395DA13760582016C3913953E
+00842678043397248201720E5AAD0B6AC31A931163BD00D86204770D40AE0FE9
+2250C0065934D741801078B203D04000E1275AF7016B275A15C11BB4125B2FAB
+0189085B34A352006E0C7B4A12C329E620542F7404C1350183053E6C01DE049A
+0E5018FB27501B9861017F33651FD227A43614B727C422643E1BAD0085355000
+AC08FE0034E424863501CE0D67B84104ED691A40F3124D9D00F05A27005C34B0
+12E91DA44805C6611FA012CF500DE315B01BF03C1FD72C075401D00A2F841F3D
+E11A8600683F01AA123D8112A32401C4511F502F6326861A96042750AE04EA43
+2D650085089117D3263C930062129827CE320086266C04A500C91F86264EB312
+4AF81F9E263A5A27AA7301790DE13812DA4812B250076B108C6100790850E701
+8B266817E21F82306E155C99125000B161277B24551E92310EBD235B2CD41663
+410C863EF71A46602A5000F430530EE2023D6C1D8A015B2F416C0186044979EC
+3E227E4906B700459F2DD619BE4B347301CE4900649827049E0AF101B5056133
+BB761237801F8702DD4D22F336580450F612BC27E31A460577EC199E12813964
+0D5A00E118683192005C1179BD00F2063057BC4002A3772909870135BE27F404
+38D928AD1F3A6C12D2279B03A00ECE22B42A0168C72D510BA104EA01C6084986
+047900A50939B626C620AD049A00D70BB2641A880079274EB900EC30479D0ACF
+12BC5031A400265FAE01F6275090155A026C3B089904F12F5F1AF733076CE338
+6B137D1B4BE60B5000EE6000C40F406F05974900C1781E6940066F017ABC6020
+3D5A01DA4805F535B54010A001D90D3DC5500740651349D70F248A2E520460C3
+21FD5A006D19B054026C0D9400B75001730A5A2F7901500479D93E069D15F22F
+8C123F7827DB1A3CCE411E6B89017A055015582E6C219233047927D9229D1763
+365912C41F7300613F0DFD17418F053B69129A340DED23AF0CFE54268421A700
+7D2648BA114F00C05127D4391483269A2F12935033A51FBA301286280CA001CB
+39AF480E4C00D406B74C2F1DAD166D07945A27772160A4042AE51FA334850096
+4700C61FEE41007E3E1B850D924122851FF73060401AF134BD25F51A62EA390C
+531A81226D01772150B40B6B00A55A0764FC043EDC1A478E3AE112B6400152CE
+12A40A6701F80CA6077E003BF6279E1C840162CA20E017B95300D44901644128
+7900D10E6C143FC50C751A8B26943204850069B001C6074DCC2709FB016B0B60
+D20447E24B2F6C0D5A26FA1B974F2A6D129569008524DC3303F00BB9451A6C8F
+00750CCA1A6927F16014790827B44E0CA727D93401E409A54506C9048B277A0D
+85009140116CB226FA00CC36AE0DD100602EF94F112F91203B95135E2FE902A1
+0079076AFE0E39712749BB472A6D27D622B168115004DD26AE47096C00844126
+791F8931CB12BA1A4F389C02E1500558E83D01DB0C5DF422AA1236791F408801
+4983269D27E91F5035A90026B319EB009E046C3B0BA400FC0A38D62760007946
+1B833100F20A36D02386013CB504410AA836CE7B112FE1005E06A06526795012
+92236A0FB4004815C02A04A54701840D5A4616613F26991F86023479E500B20D
+4CC3007F0D6626861FC73C2261B404ED00560883008D045A400379B73E147935
+129E27BE3202E5079F0B6C04780065A1065A31791FB22B04A56028AC1F3F5008
+56FA0459E7133CDA00660C7D009507771A86600985277F1F50B526E81C6422AF
+47059612A51FC65A019E6622AD5611502CF666126E9E2E6C005103469D1A4089
+2B5012C5002BD4003BE83E1F6CDA602255D73B19CD41319904BA00E84C05DA0D
+5CC906276E247901329F1FB845D209405500930132861F9F12DB1BC7143DA41E
+E42C006AC7015AE8007C0C50A4125739FA20AE27EF3513DF26BB016A1288394E
+0B79008605CC782C1A9E2F0D64A11AAD21C6384F23C227FE0D38D9014412E033
+0985013E9A500479304EEA0B8D0427D23A0F862F0479B8004605D93F00E423B1
+1CFA6C0563B510EC017A374886185F9F025AA4054E01A0097800935012E11F78
+27741B833D23A5381950B812D127F55A10723401126CF026A81AE55A086C2E7B
+2496334CF10D7E085A9F0E31931F406722F41E6035AE004983065A0C7B450080
+103EF35000CE18FC23C5126C2600B461006DBA032C79053F6C04D75A00910442
+971F5ABE67006BC52057D00D29E21FBE01266336497D0851E00061FE3F1C6CAC
+27592086145A07663E22CB3200762152AE04F90AB1441C810C32C212EE336920
+F82E078600A309F10EA501C150006C9800693E01860540CB04ED60AC3304770C
+7B461FD726BF013F610487006426D01F3FEE5008B803CF4D049B00CE23861238
+D627AA1FC45B1FA46108229F276C017E3048E53C93153BD140225AF51267E61B
+A12D11821658D30079114922AB3602792F0460A80086107041B200FA13B41F38
+AE165001CC09347E0DC0043CCA31A001840B50F113BC340E77246C2F01CB27FC
+4926954000BC530C6CB7233C6B48275A43336B1FF71335EB1F9E501AAF15782B
+50220058B31BD130059800830D50F70DBC1A45AE3B058F016021782A81153379
+2784176504C660006D04860534E7002FD3783A07A8530F9400600D46EF06790A
+9201358D2700520E64F332B83E1FA426F804950B5AF112B37418427F2254EE06
+2D77226901925B057F2695214DE80199275B93017917DC29AE1E793D015BDC1A
+A704E4790E50008606601A862712A1340152D604B100C30BDF049508AD590449
+0EDC2F476500A10C82FB12376E0050BD395A34A5186C2C5634DE12774E2FCA12
+AD00F80B5AB20EDA063FF22F4E1BB516F72C4883125698260150E9401DD627AF
+20C2015A2E47E11EA54F07B541CD7B0150086C017D0F6C2E8327CF1F3F82003A
+F4053BD3003A79CA0DAB27DA3412ED2ABE073D8612601EFB1241E9274C0D9200
+6B06AF802700922C5A3D1561BA6C12D030E4054DDF0449EF12602F406E1E862A
+62277B301279B45D008108F43B1FC8270746DB1F9F25610FFA0149CD04A20084
+089E01FB0C4885276C269539006C215A9D0CA5017930415D11CB01B1400D6CBC
+126300860A50047928891FBD00693D0ED9246C04263DAA1F9D22EC31C700B208
+5B0090064FD51D50960D509F1248015919810A54A700791255DA0041A63B0082
+0B6E00B95A223FCE26450AC8683909C400AD40033A9A43016C38961C3E801F79
+069F10FD3B01B40DE60146D227053DBE229912AB57016E9E5E01850DEC049022
+791240631FE7276C237E1A983802E20DC20449F027BB0134732652E1089E0192
+4C27691AF904379B27CA213EF06612DD056C118613B549009D38FA77124ADB00
+3F5A0446601543E73B26BC1247930131B4271A6ABA26E83F00C11C406B24A303
+6527D10468C325AE1F3E7F04F9500262EA225116F77B48277F1FED22581FA513
+C5005BC901B027CD206C047C5022821A5AA00060EF1B6C39046F40218B271A3E
+B92E52366A15AD29DD059C3D0AAA01C4345200BC5A1F405D2F781A861243E400
+C4053E6927DB3E0AEB00792E4980006D0557B300309E26A534FE25600279315C
+0B5000C30A2F69BE17A521DC34790D9D6401792C12E45A0076F7013384129B5D
+26830CD4501AF82F760C8A1847790459D4123A761F8E1A3D79049D01350DDD04
+650C9E01F6086125790B2F920D5A008528A41ACF4100BC3F0E84330A9E01E049
+C301E80AD085007606D500BC41006C26821BC64A125F4304E86A270679A800D9
+08B30150831A67237B1AAC00761F852650AB05C612E31F8E3411844B087A005A
+0CA027CB1FF01BB7278A27609A0627850E6C059401BF1A41FB19AF6B0827C035
+0B46A4076C0432F7019E3B008F4812B95223EE0133E52C0550B500D80CAF00C0
+4A246BB56D2250BC47276F347C298D19F5571A3AE83F12D900490895326C25FB
+16B344782C5B173C6A2F501127F5225A12831D5AF20EB20050039732F31FA027
+0A77D33412851F9A3240DA04A327970DEB335A0FB401BE0B3471236128AD0CFB
+601EE2401FD1277601800996057F006C0DED0436E24900F639B3275E24880C35
+80003FD964046CD05A1BDC23C47915405A22AE2F068600319E115EB01B6A9E1A
+6C2753346C275C12D5083A00A0077900D70DB000DB0EAB4700C66C07639E235C
+F06A1FDE03A1073E692600CC0C8D00A605BB6295093CAD4026A10B337E1F3DEE
+68217900851061B53E0051FE01475B0C7D247512F8005B4414D1482F632079DE
+009E088B015A3D039201B25A04AD19E93343623B25D532A21F4B75128634560A
+7300F24703CF5E1FC9245014AE420E278600543D0063B504E31151D0364AE101
+783908860035F20DA3019908EF049E2750E24829F312661F83276B1F75042C9F
+4013AE3101860C3801860F4C215FC004F14F1FA427FE2686360215497901E564
+01CC5001C3602707D40D5B38D9015012921B642CC126EC00B507574636C30298
+08A004FC501540572FF21545CB22AA27771337850D40561BB901E15A1984013F
+AB00C21AAF24CB1F5012A22F5200860977048F2F0079BE1240A01FF1290E701B
+8501660A971F8526D94912C944045A3ADF12562F7540008611931A5A35C15301
+EB06A737D36404268A00F95027C850B6275AC579002F94128641016112791A4E
+E02FC91F9B1231851A38982D0476A5422DBE19488721F027AF056F108A1B774B
+34CE18861F6C297A1C6C3B00C806B10E69387E1A6C10DB0749F72366D700A00E
+6C4004940B50D01479297F016A057CB53C047B12EE32A927EA2160FD3D0260EC
+056C098841C84927EA26B2135905A9008B28509A26C5185F38C31BB612FD3263
+01AB0A8B042F94223F5A01501279E24E266911A7043A0A99003913E34A266A05
+DE30BF5307D100699F007F0655B00D5FE81459DD1150008A019A062FAD047E0D
+3CE74404BD3E0F86056A01A50DF30040D7109527741F8900D505A400864F2F92
+009805347D2250C815AD29F722633B05FC0D4AD8462C0067DF20AC26750E8001
+990D501F9333168826A834046B009A0C7B003CF53E126F1EFE01306D00840992
+0369005D4606CA374AD01844E5104CB40CFE1BB5430C34AA05791D71E3601FF6
+486E0BA501CE511F7D0D369722820F385727FA3C00D23F07780040791AF52254
+35E369165328C8600085305A01F522AE27E6306322B15A227E26BC01F04B3161
+2747EA3D01BF0F681BBC5E03F92F0083236A127C00A35727A61F5A0FEF770C34
+92004705C61A5037B300D807B84900D10D4EE225B71F5A34C06C1A60C9259412
+62D20DAC2DF61F4CE730A41F772285002B61A4003B851F772781310072C41F49
+D841004D127A2F05B929416C3A10B50046E8015028ED08B60D731A8D4D208C27
+AD1FBF3D0A6CCC0E500079DF013F1AB322D5149E3278007B099304863E05A701
+500D663F04A012C21758267C1F3FF12D50129D1A90480DE601B230DD40107700
+8C0484193EBB501C66D7582269DC12456B26771E7C385A2C9400600845FC0450
+0A8F01503F00B34321792662017B37067A0DDD01AF12F476052750BC05DC009B
+0D60EA3E0882005A23B228D001AD591A8009ED0387269962126CB7045D862266
+01C04105A501FD0C6C0362A82F04821FA538126C964C086800486B0B41DA1250
+1FCD4A11ED1960E435AD24DB1F79009509B204D35B007908CF375A06B83E7038
+550A5D01C41AE034B525C8015A04FD0D49018730009E08C33F04E50CAC01F812
+3ECB3181129420DE29AE0DDD7132049F01E3159823AD5A1A9527822F6B1F3EC7
+7F146B27406318C904511A9D27EF0E7C068B16843500D9269E206618F93204C6
+24419C1F013FE22F5A12EA257B339D23D5270042B326F90C59C4270DFB2EA838
+E104BC1D5A35BC61002DA3268D3304821A860B5539FD2F84216C330CA5278649
+00ED27792604CC1F9D277622854912653F0D9A2184289F27B615F25A27791B5A
+90226627851F4FA21A6D00AA2F6400771B812E0960EC1358346B0AD80040C500
+4F0ABF049A005508FB01A50AB849288E25D101601B9F30F4224708EC69117600
+3CB3400079471B8F0031D752A51D94047E2960126C00850D4FEC771251028831
+009E420074107D1A99269200810D3DFE77086A00B54B11CF0045BC0E600148ED
+009C451AE5043196126B00DC50117D00EC07B138049E00E95827D3126C00710A
+7A4111C505F90131B401CE073A7901880FD94104C65027EF0349BA1F5038C20E
+B550287F1F6935EC5F154926D61F7832436E2F5A06F4006B1241B83C0070035A
+C2631F3FA82EC854055CAB0DDE5A0BF360120778003AD021AE00C92BE4433591
+240568B63E19D86C1260B920CF015E2F5012EE279F04511444DB481E802B5A38
+75019627B71236701FC3591262CD1F4CBE451C863442A91A84125AF82A6C2408
+8600A538E31FC33001943463219A4F157E2859B80DEC492D5A228536069D1040
+8600790586007C3F01A205F00CA7042978E6600D3EAD11C500E11F862649C036
+7A056CD31A860F4A01920C56017B0FE43B2585153485263EBC2D47F650097516
+83490B5A04C00148CE2901975C0627EA3505852750F500D065056E1ACC27AE01
+5A0CC601F908AC25EB1A7E0564C80D7B013CAF40017905600AAF06F601603249
+C800500DB140C546325F164A8D0450D74A0086470DDF3F09F30040693C04B301
+F51760D61F5AB512F827BC22DA4A1BF9125A26841F569D0F3B01B552007B2766
+0E7802A30B7601FC510E33AE27E026B327CE24FC48266C04C40066D604AD006C
+CD0E2685314AF20539BA26951F5FA60940F21F3CBD5001864913A40E39920C3F
+B835860070257A1F8E3260207A148504552FDE4001A128F6086C0DA32DFB2692
+297220790DE2012C7D268E35057802F20CB2013F26A50627E71FB13900659726
+7613D41A94236D0DA601398F00347822840C7730049E243C8A4600D63F01C66E
+238027E3129E1A9939D02F5515AC3E21A545047B006B087700810634BB12781F
+A22C0E501C7B140163B000C20427A063016F0EF82F136B8B0C7A00781EB022DE
+4003C9611F79235A0147E411BF04F04C05983E00C94935A5125D267F226A1691
+24D82087005A0EDA0350BD3D1F6CAE09D4015EE513691F84276AFA6D12659E0A
+420379D03C12C3049F275B08CD338A2778480DE46704C9015019AE6C1261CB01
+B7336417853105FA4B02614104F148006307E9345D0C8E00E761129C32F8379E
+1F53A20041F150074072B838FD49953719791F68931133E027860144D70032A5
+25D21164097A0077345006B401FA0EA51C5D3442953C1ABF22E0620D27D80077
+0AB206E300B5375400791447BA4A259F3000649E053E6222991E502FBA5200D0
+083900BF34165DBB6C1A52047822823900A550126A00E908BF264F1C92263FF0
+5D003DE60627790E9504F422AD44112FA81FCD355A21BC27871A7901D827791F
+3CD5431A6C124BD50E612F8A012779EB0055026B2504E75A0DDA3D00D05613A5
+1B507D1F59E4046C2849FB472AA217F022952769308327C906A100570977006B
+0F41B4701B4CF2471F8534445C04F0314ED0086C01820B6AF11245D116FD510C
+BF0092053F9E1A488B4F1B79F0004D11FC26AE2CE20D50F83E02DE26831F962F
+7401AD095AA20E33CC0B4D93411AE0264B0D790067BB6D0D6C0882018F0B5700
+AD2495125A05BA01590AC104B4003DAC05DC1A60C93C1A9E14D50DB58629009B
+4F228747077F003EC705AF0B38851BBA015705D7266B0D7F00D41AAE00501488
+26F61FD227A52F9E0439019D0C6204C55010D20C862698023BA51DED27C61836
+87042982003773277C22F112752FAC12E03D042997228600610B7A01A9187120
+7E2FAD045C4100FD5722E12E00659B1F852D00C3500077B35D27D4193E00EC22
+AF28DB1D3DF94012CC2A47EF491280269422652F86196B274994095104772280
+30541F0746C64008FC0235B826EB61177126469D006B0D812397128601AB385B
+127B0C3DE86C016A2B7B0E9204E6266CFC5827C221773E008D27A91A6812E722
+6342095A0049AE1F60B80E4AC801DF075A346400E90A6C0160C8500ECD2748BE
+4A1F91355A01BD0E901E50CA12A71A367C146CD03E056E11FC5E13A43A124701
+94064A8827508C01720FA26A049360047F006A25A031F70050E1074DEF029E01
+36B026E512C14000A666D9781227861CA9640B760436B500FE6221C927EF32B2
+006130C54205E25026C562042FD810B20050355A12851A491186003C9E1AFA24
+790150C63D059500C033A039790DE1005034861A991246AE04A3401F7927932F
+078540019D087504EE4312E32D613F00F10A3D6C0749C7009C045122E427A602
+3482056AED1FC65033E304BF3612C826490039C43B26DE1EB30DC701631F7C39
+1298253E7013F9670D7400844F0CF3431330016ABB005A4021DC2799490E863E
+04AF075A12781F50E70D5A208F34008608489F411B822363EB18AE4000B605D0
+1E5AE7016A065714E22F00AC5A2677197F02D90592269D12F1043C592F7E22D5
+1B5AC001DA10B63F14EC6023DE1C3A6600B0087705D069278622D8309F125038
+B70F8A00801C4EAE21D427047B3C0F9C0C62167941077EE879245A0D86085377
+3D19850EAA05CC5A00C50DB431501EC727B2341B992D04915AED1A5034E20D7D
+005F08F22C5A1A921242933B02D3083E7700F61166BA1EF8270EBF5A03CE3307
+6D01CB5A277931A5084E2DA736BC40099D6D0E40CE0DFE27702260186C317826
+6BB900F60A9F00770C37812564006CA30434861250C4217F27539E255012B301
+61047E0069ED1E603046C00C41DC006B0B49B85000FA268428A400FE5D1F4F05
+B101F21FA63704FA502CDA27781B34862064048400880A630547DE0160BE220C
+3E9A0575049414C8329E15A900D3502FE100BE6027A515B750279D04513E0199
+6F003AA50C499D21863B0AF30167257F1FD30E7700875F381BF420613E01A412
+B82DF803CC00A70940621B782A8626FC4F05B01AF4431E57D5003E79019405D8
+0F40FE02921A51E43E1FBF2D01A508F601673479123D9F318B122A861A5300D8
+23912D03A5106C1A406C4600C32667008B09950051F50645E22A40D72157EE26
+78127D390685CB004AD226AD2D782384016B227934017F1A78470C8800693A04
+851ADD25B06C1240F015662C7900F54C1C91229E12EB00AD046526F32701D556
+008507B649325A00940D4E295C1FE021A33E01DC0F49019832497C0B35C00D27
+68B50DF62F5A1AA5002F7927C3330C97530E8B421479279416EB04B75908F100
+40DB0568BB4013770B50C0412FD935CC129C2C508313AF225C34BD136A289301
+AD10509B013E9000A525FB541927863812861DF401500CE42ECD054BEF26A010
+2FFA1F40EC1ACD325F077F002FD21F4F8804E012AD3D0DC200502F6C3A56348B
+1A9A114CB11233A6276C158E05E03E2067AA06864001790CCD56276AB85A14E3
+00299A5B00739E193B854513AE374C70CD0A63007A4701F53D05D15223C80649
+24912F18812260991FA534016CB004E01C630085067D004C0BE0033FD20645EC
+02407901B90D4D1A850434C6124DD4196C0036A3730EF85D006C1059B93C1B7F
+12408F0A6400BA6C045A99017A4900AD4512C2600D7E013EB3274561047D2762
+E103AE0CC90643DF0141830541920BC801EA28691078C6013DE712BD50269334
+0690004609832666CF0627FA4704E40959009504E8260645A218F110B6264B9A
+276C00841A60AF6F005CD201BD4601710956EE1B3D5A31790DF3169F225CB968
+1F98125A33A5176D0DDF3A1F77E86126FE48278C043B990ABB610222A90130C4
+27AD3404649F025AC41A3CD7355022CE340AB42B128C26EB3654049E22DD265B
+00951AE5249E0F4186226A277B136030C41F64E7196B227A4F00BF561B46851A
+5A34690EEB005BC01CEF27C71AB3043DA36C12318F27A71FCB26791960B71234
+8427861D793400DC12B230E7013912F61A39790F2DF827C7122E9F0DCB00AE50
+277927EA044900812FE6008504509D2749A15A123A00A509860054AE1E5B4027
+11E6651A92410B7C066CD43F22F829009F5E04830C96008647195DDF05790B9C
+1BFD3452089C0DFA386B075001D72C08C300FC04B924740B9D00348504A03D1D
+96340AF00431D5008C05992785203F7C0D780161388B115101D05A006D057E34
+5E0EA2380177DE045900E009AF671F4907950D4DC55005A3541F9E650C7F0099
+65017D276B3E05C0015611861DF626601B6F26FC3800CC083500C57947126B1F
+DF320CF104D8804934C75105DD4B20EA1250008608AC6B3012B327E61E6126F8
+780D38A41F4F016C4300B6691F834901A633BB5B1A845037791E834A00F15326
+D65C0EFC4800DA08498823A45012AB26FD1A5204DB094AB72250F8084AE620AA
+411ABC12F74A01DB4100F2691F502BBA39602E500577C15B277F206C26853201
+E40737AB1F5A3C19D84112FA228D1F3AAE4531AB07A301BE0A980EB0602172EF
+6C2705DB2FB950059E492A6A2200B20D00268513983D009D27C71350400DF34A
+007A0740B7113F00BD50016AD434C615812E03CD3612D6226F123FAF00EE1249
+B30D278D380293082EAE1B27B05626CF003B6C01802777033BB9611AA4310286
+35129E29007C300B9423603E14AE0C86315208CF00940B7C01C823EC124600FA
+04AA00E209BC6C2657D00240E704AD4D07B200580AE56900DB0C763F20863464
+2779290C9F01410BB2511B94013679128301BF3D77286C44F6325A03BB532579
+1F66DF019A1D883E1FC15A016CA027621FF12F0D79229406E85017A25A098000
+F6056C31489E01346BD90849C71F4E800150860D307B1F52BC14F622C512509D
+002F790063E81FAE41046CBF1366EE0046D80184277721CB1B9E265F12F820A0
+1486017A2892173D6944145F3F128700279B6C0D80371E865030A46D1B3F9427
+6203D05012E305C7004ADE5026D03360007E0D5AF024D21FA74A09EA05A51679
+00D02C6608FC01B5092E79276D0ADA660429EF3103CF099612AA4100A7113F60
+267C0130C5278D289420D40A2765E7005631A60F3BE6123ED5044AF401A20E6C
+4107630047CE0C49F324C53A0D6D005DDE1B42960553378C1DA62AE800620480
+0E4BB03B7342045A38B21AD42550B910CF30A500FE2FB450173BBA4600F53E04
+D92701C40D5A19B3355A0082277A1F3D92042F8D12851FF326C23E0474006C32
+12991F5F3CD60D501E8612911B5F3848A510CE01AF263BAD501A7E4936702B50
+0460F62666D800AF0EF078044B0DC001521379BE052B97197C01608E00699E19
+399717632EE601B22DA136861B3E7110830554B426D01233860D2FD224B90479
+0F6C1F53BC4027FB03791B00BD30E412603F05A401793A04841B79490D6605EE
+00631192530C9513824933A001FD0F9725EC22B5015DF11340C5006808AC0343
+6C209B27B20CF9610052B401256CBE3A04E54934A104EE006A33571B870D7901
+D60BB105E500D078270B860130931A503C225DDF771F3CA56B0040865012B527
+FB2140BE37056DB4003F8606593D1A790FED055ADD01A91F752F0187069A4C00
+F3580181124F34C7019D063A96006A3347D950276C079D00F8741F650CF15026
+DE0539CA278523901FDF2D1AC4265F00EF096C384979007F08500D9F42086AA5
+1A52FD395A2F9E14E30D5A19802640CC391E79AD3E01699E4000CE0F851A3F9D
+15E53F00FE166B258D2051125B3E19B04838BD50096CC400B40B480061E3063A
+F9240FCC3E006C0883045A12F2401F5EDF12C42584D6025C239713318627D215
+FA49396022C4276D0CB42067FE005B4026F01350D71AB72601820DAC52228433
+0D52C6275A009E0EAF5D007609A634510569AD0148D04E26881FCC122DD81C3D
+CA6C2D1ABA32007C27049D0DD200660441CE3B018E066E0BE5046012F40D5218
+7C266C2759C1055D04A452274AC4470070C834A4089100DB045A1FF52540651F
+8727A817448F1A53984F0477ED1BAD2ED01FA34D03CA0A3B79006A0D4E34C744
+00BB690A5B009208A40EEB0047A518503599072D9F1FD5650D7B2F099105723B
+F049012ECF1650D90032891E7F277834139D20D74701C778153486227012B805
+6100AC6004A86A2701F6730454E20FBB5023752749B7378F006AEA20B71A9D4C
+30008727A627DB03AE08DF004E36922D7711BB02600EEB40046C1BFB27782185
+1279018906DD3A01FE0E863000B42801DB2647275B1078267E00348D2796224B
+B61AEF008D077A38501FE526793460256C2779380379E90040DA530E79043DA1
+00AD411F58C7115A1FC0670087047940AD04E60ACE0150EC04415A1A822800FA
+4208E7039D2F43DF34500D8641009D5E12459A1E6B375B01CA06E911781A4BBC
+123F5A006A2707D8B01A50008423633476209F12F90AC800692185279C331395
+2784015A12AC29E234A12777125A9C234E04D35A0C82410D7BB701CA3C00E50D
+5BDC0C5401FD06357F276E21AA12FA04A5019E0DC700E004B00CD95A2A12881A
+7701C526961950CD2266F6002798037B0836E926A529126A472D6015921F692F
+B800F50BAA50106CA01D3C5A01790E7D22F2321EE71437D40130CA009119842F
+7C1F6501FB08268605A633F14278220D6CCC3F06B90BF701862F6927791F3AF1
+4007DA0159B500DE0D3CBD4E0574006A0DCD00AE41156CBB621C36E813BE611E
+3E640BAF501A992F136CBC4115A953019E11DA2862278522406C3D187A2F881F
+843307B26004A749276B4000EE33088C042C864F31DF14AA430E771A5AF309C1
+00B44A27A80B771294253D6120BF2C0060B40CFC27C005A20055B0074A792284
+4E12A427F90EA00050AE384795512FDB147A2601A254FD3B107D4A16942D5012
+CE00B5044A860D5A951D7B24478621A062002EEE22B71A9027683204E9003912
+9F6A01742F05F8009C2A46863A01C2780027852F6C12E43150049601CF084EC1
+00F04F24C2125000BD6C1F3ED23A01F416AE5A127E471CB4430CAF014A86235E
+B505CD003785203D6C05FC0139DC55036CCF05790148DC24406C18921C503586
+12652BC300AE06EC3C0979044922DA2B0A820427C70149930050C03A044E019A
+1DE8365A00AA5B26781B3DE119A6003CB905F809306D1440CA791160305001F7
+08BE71217949F2042BCD22AC49346C12DF2504FA65203EEA5F05CE00A1450CBD
+5F1D73327B1A5A2E650586015AF6274102FB0D681DAF0C84052FBA01DF5E006B
+E722773504FD003C6C2749B2045ADC1A8B124F86401FBE2F1349E93793098404
+D53A0068E30145D90394127D2F531A64D6205AB46C0560C015E0601A790C34D0
+1F63128F1FD42B69007911DA3F04EB09A45D017F26D21260411F65C101EA0A51
+043CA90DD15B1F833D0B53A50D2786500984007908A450006BA73F098704501F
+93233D651B7D0038F40DB000E70EAC14D520B3350DA478264E950087305223E1
+621B75253ED13A129E07CA6C12791DE20D93137E2F0CA0243EB0260095075086
+006C0D4FA61F771256BC2A15A6266D3E21FB490DD07601468F0044129C3E1F77
+3600AC24F45B089F04EB458509A90DC3279E4C1F81326C2340C10B54347503AD
+7900387F27941FD680006C3E05B44C1BDB2F01C84100B13D15EB21C519338C0C
+5116D926AE12D10D50F004B426D65A216B2788227704832951089C670032C714
+3BDB4512CE6C00399C04860A5901782682172F57A347016330F800B8440068D1
+0460EE4435E11FB227CD1B3DF800AF4005855A0A9101C7500435960028AB1135
+C326ED4E00F60DB542128539127B277733002771224084063C01C60DB000D810
+772F9E15EB273A0EE0571AB80065274426FD1C9C46007A0693601A6BE212914B
+277E015AF11FCD279A0061366C31A100793F128D34059D01CA0A5535BB4102F2
+6C1F3EE5500881015B097C043FA5124BFB12AD1FBE28F10041DB2601C437B019
+5A3F1E78EA3B1A7A11501A9D009009630586015A346226EA1235F21F3B6A0E77
+B51A40861FF868088104337A256C0464E30358BA00DC0C55C49401F1611A5AF4
+6D27642A861F5200F6074A007EC95A2804911046F505B15901780A31E526C236
+109E263B5F05D80040B53E0D6D01790E40B402F4065A3B16C45A0048AB1A7949
+39FC005F11984700CB0E791F9F27B628EA279C2252C80027612D6E07930D5098
+048C401279069101C8680850028726A601C40F6B2346F54929B912CF088801AC
+700057B51BDE270160E9054B012BA21F5AAE1387279C1B347E192F8F22A53907
+13503D04D500490AA204FC083ABC63206CB66812490177C54D339A19820D35AC
+22CD61126C0457ED007804A92D50961260059F2FB822EB561D7C26881FE26C04
+27F96909E22F017F1F8727DE361590265501D304470C92005612F70B3D9E46BC
+00EA521F3BB41A4C0EF35127DE257C2E12AF23BD12F82F68277B34D412580178
+227F279E1F5B40219A33077B005ABF300D5BBA784F0ED13801E506C80049A200
+CE46056C1160E36CAD1F862E9C13C92092234F83013E9E044626A122FC400825
+E300502CD368147D3900852CA51F3FB022FD1A850D46F624D01B6805773400CA
+0B4901A80D46B6740C2D852450C412A306730151BC0540A564226CF3601F6CB1
+3E01911A700D39683E04D06C0065C627600C9A00500AE749006C335900970CE1
+06A3018525AD0DE4006B043CC30DDB046BE72DA93D126C9F224616E141009E64
+213D612EEE0C502678F927B800302600CD126A2676336B0040B412E31A4ED00E
+DD00860B27AD650E6CC0015209E00354BC23F701860D4D8B086527D103396C00
+8327E013AD6C2766D75A2792003919A04000B304613443D0219F1C782EFB0A31
+B8114901C92F06844D2AD502E313A1228F4610F634068700CE216ABC3E1A9D37
+F104AD401F79276F22682FC91A5030A415F2790054288712500A6204F64705D8
+00A4088530500D76B80F8F1668AD0E3D01861B569CFE4936A505EB01AE0EEF60
+056E27790030871F5B33BC750036892241951F86279832068E0E5A26D1013057
+B900508619A83C0E98005A3C1086044712FE1A67DB4C04EB511A930EF500583C
+0CEC005C12854C008F277E2150E714BB1C6635498609CB0130801F57AE2D6F1A
+853404A55C047F0D861863CB04B200FC0D8D005D9B046C365022669F1143B427
+C81F9D2F147E266D276922C919F300405401BD3F046CC2490BD74004107C0258
+402079277F1A2FCF1B990CAF61043DF104521643ED02A50634F2004F12EA601F
+48B349136CDE17419A123EC7045FF31F50BF02F91FA5268001792E0E86306122
+D22777269412BD6B2749C44604E13C19D80D9F006A41007907B50027781B5ADF
+05A8013C10D84F01FA541229D91F602EDE0B3C5212603A5829ED123DD70EAF01
+D4063EFD0078013A820066AE02970BEF01950479278622DE345A1FD72F128332
+621577AE27DC1BBA5B0BD9004787015A34F44013C3711A840DD77C1D5A12CF6A
+163EC26C0140D800730794370085062FEE014991224785093F6A2D5000C832B2
+20C74106C101A3096C00A80867400087066C25951F60A8045132C212AD30F150
+216CFD04B63F266C2276EE610427A42F07C76D0150BE004A9F01F031A608C402
+49921F644127721AAA176A304AEF520DD81A3FE334531AB2365711A5066C0185
+087E004FEC05B301C72200630D8500388F1F50C5123CAB005608A32E0048B24C
+27013EB52E5000789F0427A21D7B3B1AE922AD4C27C0541F7D340AB00031DF22
+A00694600D790864009B531B79128B36E64731DD1EB22BD710AE0079084171FE
+1A5E3D03940C278A0E50336500870CC5471341B578156298431F953814822540
+6C1A7F217626853506BA00F70CC7462C7B0AC1052395274A87015A108D3A5C13
+FE4632D21FAE26FB24B21E5F276C384984>
>>
>>
diff --git a/Master/tlpkg/tlgs/lib/opdfread.ps b/Master/tlpkg/tlgs/lib/opdfread.ps
index 571cd2a7cb9..5e42816f093 100644
--- a/Master/tlpkg/tlgs/lib/opdfread.ps
+++ b/Master/tlpkg/tlgs/lib/opdfread.ps
@@ -15,7 +15,7 @@
% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
-% $Id: opdfread.ps 8101 2007-07-04 19:52:15Z ray $
+% $Id: opdfread.ps 8296 2007-10-16 07:54:08Z ken $
% pdfread.ps - A procset for interpreting an ordered PDF 1.3 file.
% This module defines routines for interpreting a PDF file with
@@ -925,6 +925,35 @@ currentdict end readonly def
/Subtype get 1 index exch /FontFileType exch put
} bind def
+/UnPDFEscape { % <namepdf> UnPDFEscape <nameps>
+ dup dup length string cvs % /namepdf (name)
+ dup (#) search {
+ % name contains PDF-style escapes ("#hh") that need to be removed
+ { % ... (po..st) (#) (pre)
+ pop % ... (po..st) (#)
+ (16#--) 2 index 0 2 getinterval % ... (po..st) (#) (16#--) (po)
+ 1 index 3 2 getinterval copy pop % ... (po..st) (#) (16#po)
+ cvi % ... (po..st) (#) 16#po
+ 0 exch put % ... (po..st); 16#po patched into (#)
+ 0 % ... (po..st) 0
+ 1 index 2 1 index length 2 sub getinterval % ... (po..st) 0 (..st)
+ 3 copy putinterval % ... (..stst) 0 (XXst)
+ length % ... (..stst) 0 LEN_OF_(po..st)-2
+ 3 copy exch put % ... (..st\0t) 0 LEN_OF_(po..st)-2
+ getinterval % ... (..st), stored at begining of old (po..st)
+ (#) search not {
+ pop exit % /namepdf (nameps\0..)
+ } if
+ } loop
+ % we have a '\0' marker (not allowed in PDF names) after all usefull characters
+ (\0) search pop exch pop exch pop
+ cvn
+ exch pop
+ } {
+ pop pop
+ } ifelse
+} bind def
+
/TypeDaemons << % <id> <obj> proc <id> <obj>
/Page
{ //PDFR_DEBUG {
@@ -944,6 +973,9 @@ currentdict end readonly def
{ //PDFR_DEBUG {
(Recognized a font descriptor.) =
} if
+ dup /FontName //knownget exec {
+ 1 index /FontName 3 -1 roll //UnPDFEscape exec put
+ } if
{
dup dup /FontFile known {/FontFile} {/FontFile2} ifelse
//knownget exec { % id obj ff
@@ -963,6 +995,7 @@ currentdict end readonly def
(Recognized a font resource.) =
} if
dup /BaseFont //knownget exec {
+ //UnPDFEscape exec 2 copy /BaseFont exch put
% cache the installed font (if any) before replacing it.
//PDFReader /RemoveFontNamePrefix get exec
currentglobal exch % A hack against HP LaserJet 1320 bug :
@@ -1342,8 +1375,15 @@ end
/Encoding exch put % s fr f
1 index /Metrics //knownget exec { % s fr f M
2 index /Subtype get /TrueType ne {
- % Adjust Metrics for fonts converted from TrueTypes by 3d party.
- 1 index /FontMatrix get 0 get 0.001 div
+ 1 index /FontMatrix get 0 get
+ dup 0 eq {
+ % FontMatrix[0] == 0, so cannot downscale by it
+ % HACK: downscale by FontMatrix[1], and will get the target value of wx as wy
+ pop
+ 1 index /FontMatrix get 1 get
+ dup 0 eq { pop 1 } if % sorry, FontMatrix is singular so cannot enforce the PDF metrics
+ } if
+ 0.001 div
//ScaleMetrics exec
} if
1 index exch /Metrics exch put % s fr f
@@ -3130,6 +3170,7 @@ currentdict end readonly def
/SetFont % <resource_name> <size> SetFont -
{ dup //GraphicState exch /FontSize exch put
//ResolveAndSetFont exec
+ //GraphicState /FontMatrixNonHV currentfont /FontMatrix get 1 get 0 ne put
} bind def
/ShowText % <string> ShowText -
@@ -3137,15 +3178,42 @@ currentdict end readonly def
//GraphicState /WordSpacing get 0
32
//GraphicState /CharacterSpacing get 0
- 6 5 roll awidthshow
+ 6 5 roll
+ //GraphicState /FontMatrixNonHV get {
+ % Use xshow to force wy in text space to be 0 (PDF1.7 5.3.3 "Text Space Details")
+ %stack: wordspacing_wx wordspacing_wy space_char charspacing_wx charspacing_wy string
+ [ % wwx wwy sp cwx cwy str [
+ 7 -2 roll pop % sp cwx cwy str [ ww
+ 5 -2 roll pop % sp str [ ww cw
+ 5 -1 roll % str [ ww cw sp
+ { % str [ ... ww cw sp c wx wy
+ exch % will be removed, unless FontMatrix.xx == 0 (FontMatrixNonHV already true)
+ pop % str [ ... ww cw sp c w
+ 3 index add % str [ ... ww cw sp c w+cw
+ exch 2 index eq { 3 index add } if % str [ ... ww cw sp w+cw[+ww]
+ 4 1 roll % str [ ... w+cw[+ww] ww cw sp
+ }
+ currentfont /FontMatrix get 0 get 0 ne {
+ 1 1 index length 1 sub getinterval cvx % drop the "exch"
+ } if
+ 5 index % str [ ww cw sp {cshowproc} str
+ cshow % str [ widths... ww cw sp
+ pop pop pop ] % str [widths...]
+ xshow
+ } {
+ awidthshow
+ } ifelse
} {
//GraphicState /CharacterSpacing get 0 eq
+ //GraphicState /FontMatrixNonHV get not and
//GraphicState /WordSpacing get 0 eq and {
true charpath
} {
% Emulate with "{ charpath } cshow".
% Not sure how it works with CID fonts.
{ % c wx wy
+ exch % will be removed, unless FontMatrixNonHV && FontMatrix.xx == 0
+ pop 0 % (PDF1.7 5.3.3 "Text Space Details")
currentpoint 5 4 roll % wx wy x y c
( ) dup 0 3 index put true charpath % wx wy x y c
5 1 roll % c wx wy x y
@@ -3155,6 +3223,11 @@ currentdict end readonly def
//GraphicState /WordSpacing get 0 rmoveto
} if
}
+ //GraphicState /FontMatrixNonHV get dup not exch {
+ pop currentfont /FontMatrix get 0 get 0 ne
+ } if {
+ 1 1 index length 1 sub getinterval cvx
+ } if
exch cshow
} ifelse
} ifelse
diff --git a/Master/tlpkg/tlgs/lib/pdf2dsc.ps b/Master/tlpkg/tlgs/lib/pdf2dsc.ps
index a18d82f72ef..97d47ba1c65 100644
--- a/Master/tlpkg/tlgs/lib/pdf2dsc.ps
+++ b/Master/tlpkg/tlgs/lib/pdf2dsc.ps
@@ -13,7 +13,7 @@
% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
-% $Id: pdf2dsc.ps 7838 2007-04-09 20:50:20Z alexcher $
+% $Id: pdf2dsc.ps 8546 2008-02-25 05:48:45Z alexcher $
% pdf2dsc.ps
% read pdf file and produce DSC "index" file.
%
@@ -116,6 +116,7 @@ systemdict /.setsafe known { .setsafe } if
DSCfile PDFname write==only
( \(r\) file { DELAYSAFER { .setsafe } if } stopped pop\n) puts
( pdfopen begin\n) puts
+ ( copy_trailer_attrs\n) puts
(%%EndSetup\n) puts
/.hasPageLabels false def % see "Page Labels" in the PDF Reference
@@ -199,7 +200,9 @@ systemdict /.setsafe known { .setsafe } if
% output the page label
(\() .pagePrefix
- PageToString .pageCounterType known { % format the page number
+ .pageCounterType //null ne dup {
+ PageToString .pageCounterType known and
+ } if { % format the page number
.pageCounter dup 0 gt { % don't try to format nonpositive numbers
PageToString .pageCounterType get exec
} {
diff --git a/Master/tlpkg/tlgs/lib/pdf_base.ps b/Master/tlpkg/tlgs/lib/pdf_base.ps
index fa82ba31612..b65f0bf1fcb 100644
--- a/Master/tlpkg/tlgs/lib/pdf_base.ps
+++ b/Master/tlpkg/tlgs/lib/pdf_base.ps
@@ -13,7 +13,7 @@
% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
-% $Id: pdf_base.ps 8022 2007-06-05 22:23:38Z giles $
+% $Id: pdf_base.ps 8358 2007-11-10 17:20:49Z alexcher $
% pdf_base.ps
% Basic parser for PDF reader.
@@ -177,10 +177,18 @@ pdfdict begin
} ifelse
} ifelse
} bind def
+/PDFScanRules_true << /PDFScanRules true >> def
+/PDFScanRules_null << /PDFScanRules null >> def
/.pdfrun { % <file> <opdict> .pdfrun -
% Construct a procedure with the stack depth, file and opdict
% bound into it.
- 1 index cvlit count 2 sub 3 1 roll mark mark 5 2 roll
+ 1 index cvlit count 2 sub 3 1 roll mark
+ /PDFScanRules .getuserparam //null eq {
+ //PDFScanRules_true { setuserparams } 0 get % force PDF scanning mode
+ mark 7 4 roll
+ } {
+ mark 5 2 roll
+ } ifelse
{ % Stack: ..operands.. count opdict file
{ token } stopped {
dup type /filetype eq { pop } if % pop the operand if it is restored
@@ -211,12 +219,17 @@ pdfdict begin
} ifelse
}
aload pop .packtomark cvx
- /loop cvx 2 packedarray cvx
- { stopped /PDFsource } aload pop
- PDFsource
+ { loop } 0 get 2 packedarray cvx
+ { stopped } 0 get
+ /PDFScanRules .getuserparam //null eq {
+ //PDFScanRules_null { setuserparams } 0 get % reset PDF scannig mode if it was off
+ } if
+ /PDFsource PDFsource
{ store { stop } if } aload pop .packtomark cvx
/PDFsource 3 -1 roll store exec
} bind def
+currentdict /PDFScanRules_true undef
+currentdict /PDFScanRules_null undef
% Execute a file, like .pdfrun, for a marking context.
% This temporarily rebinds LocalResources and DefaultQstate.
@@ -241,20 +254,48 @@ pdfdict begin
% Read a token, but simply return false (no token read) in the case of an
% error. This is messy because 'token' either may or may not pop its operand
% if an error occurs, and because the return values are different depending
-% on whether the source is a file or a string.
+% on whether the source is a file or a string. To avoid closing the file
+% check for '{' before trying 'token'.
+/token_nofail_dict mark
+ ( ) { dup ( ) readstring pop pop } bind
+ (\t) 1 index
+ (\r) 1 index
+ (\n) 1 index
+ (\000) 1 index
+ ({) { //null //true exit } bind
+.dicttomark def
+
/token_nofail { % <file|string> token_nofail false
% <file> token_nofail <token> true
% <string> token_nofail <post> <token> true
- null 1 index % stack: source null source
- { token } .internalstopped { % stack: source null [source]
- null ne { pop } if pop false
- } { % stack: source null ([post] token true | false)
- { 1 index null eq { 3 1 } { 4 2 } ifelse roll pop pop true }
- { pop pop false }
- ifelse
- } ifelse
+ dup type /filetype eq {
+ { dup ( ) .peekstring not { ({) } if
+ //token_nofail_dict exch .knownget not {
+ //null 1 index { token } .internalstopped exit
+ } if
+ exec
+ } loop
+ { % stack: source null [source]
+ //null ne { pop } if pop //false
+ } { % stack: source null ([post] token true | false)
+ { 3 1 roll pop pop //true }
+ { pop pop //false }
+ ifelse
+ } ifelse
+ } {
+ //null 1 index % stack: source null source
+ { token } .internalstopped { % stack: source null [source]
+ //null ne { pop } if pop //false
+ } { % stack: source null ([post] token true | false)
+ { 4 2 roll pop pop //true }
+ { pop pop //false }
+ ifelse
+ } ifelse
+ } ifelse
} bind def
+currentdict /token_nofail_dict .undef
+
% ================================ Objects ================================ %
% Since we may have more than 64K objects, we have to use a 2-D array to
@@ -739,14 +780,19 @@ pdfdict begin
dup /File PDFfile put
% make sure that we are just past the EOL \n character
PDFfile dup fileposition 1 sub setfileposition % back up one
- { PDFfile read pop dup 13 eq {
- % If there had been a \n, token would have advanced over it
- % thus, if the terminator was \r, we have a format error!
- ( **** Warning: stream operator not terminated by valid EOL.\n) pdfformaterror
- pop exit % fileposition is OK (just past the \r).
- } if
- 10 eq { exit } if
- } loop % scan past \n
+
+ PDFfile read pop
+ dup 13 eq {
+ % If there had been a \n, token would have advanced over it
+ % thus, if the terminator was \r, we have a format error!
+ ( **** Warning: stream operator not terminated by valid EOL.\n) pdfformaterror
+ pop % fileposition is OK (just past the \r).
+ } {
+ % Otherwise, scan past \n
+ { 10 eq { exit } if
+ PDFfile read pop
+ } loop
+ } ifelse
dup /FilePosition PDFfile fileposition put
PDFDEBUG {
PDFSTEPcount 1 le {
diff --git a/Master/tlpkg/tlgs/lib/pdf_cslayer.ps b/Master/tlpkg/tlgs/lib/pdf_cslayer.ps
new file mode 100644
index 00000000000..7178d5eb4e3
--- /dev/null
+++ b/Master/tlpkg/tlgs/lib/pdf_cslayer.ps
@@ -0,0 +1,121 @@
+% Copyright (C) 2007 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied, modified
+% or distributed except as expressly authorized under the terms of that
+% license. Refer to licensing information at http://www.artifex.com/
+% or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
+% San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+% $Id: pdf_cslayer.ps 8284 2007-10-10 17:40:38Z giles $
+%
+% Layer data extraction from Illustator CS2/CS3 files
+%
+
+.languagelevel dup 2 .max .setlanguagelevel
+.currentglobal //true .setglobal
+/pdfdict load dup /pdfopdict get dup length dict copy dup begin /pdfopdict exch put
+
+/BMC {
+ currentdevice //null //false mark
+ /MarkType (BMC)
+ /BMC_Tag 8 1 roll 256 string cvs
+ //systemdict /CSLAYERDEBUG .knownget {
+ { (### BMC to deviceparams, tag: ) print dup = flush } if
+ } if
+ .putdeviceparamsonly dup type /booleantype ne {
+ cleartomark pop
+ } if
+ pop pop % discard the device and flag
+ pop pop % discard /BMC_Tag and the tag name
+} bind def
+
+/BDC { % send selected BDC info to the device as properties
+ 10 dict begin % private working dictionary
+ /MarkType (BDC) def % BDC code
+ % process the tag and Title for now
+ exch 256 string cvs /BDC_Tag exch def % convert tag to a string
+ dup type /nametype eq {
+ dup Page /Properties rget not {
+ pop 0 dict % empty dict in case missing Properties Resource
+ } if
+ exch pop % discard the resource name
+ } if
+
+ dup /Type knownoget { /OCG eq } { //false } ifelse {
+ % Illustrator CS3 and higher
+ dup /Name knownoget not { () } if % no Name, use an empty string
+ /BDC_Title exch def
+
+ dup /Usage knownoget not { 0 dict } if
+ dup /View knownoget { /ViewState knownoget { /OFF ne } { //true } ifelse } { //true } ifelse
+ /BDC_Visible exch def
+ dup /Print knownoget { /PrintState knownoget { /OFF ne } { //true } ifelse } { //true } ifelse
+ /BDC_Printed exch def
+ pop % Usage dict
+
+ dup /Intent knownoget {
+ dup type /nametype eq {
+ /Design eq
+ } {
+ //false exch { oforce /Design eq or } forall
+ } ifelse
+ } {
+ //false
+ } ifelse
+ /BDC_Editable exch def
+
+ /BDC_Preview //true def
+ /BDC_Dimmed //false def
+ /BDC_Transparency //true def
+ /BDC_FlatLayer //true def
+ } {
+ % Illustrator CS2
+ dup /Title knownoget not { () } if % no Title, use an empty string
+ /BDC_Title exch def
+ dup /Visible knownoget not { //true } if % no Visible flag, set true
+ /BDC_Visible exch def
+ dup /Preview knownoget not { //true } if % no preview flag, set true
+ /BDC_Preview exch def
+ dup /Editable knownoget not { //true } if % no Editable flag, set true
+ /BDC_Editable exch def
+ dup /Printed knownoget not { //true } if % no printed flag, set true
+ /BDC_Printed exch def
+ dup /Dimmed knownoget not { //true } if % no dimmed flag, set true
+ /BDC_Dimmed exch def
+ dup /Transparency knownoget not { //true } if % no Transparency flag, set true
+ /BDC_Transparency exch def
+ dup /FlatLayer knownoget not { //true } if % no flat layer flag, set true
+ /BDC_FlatLayer exch def
+ } ifelse
+
+ % now send the collected info to the device
+ //systemdict /CSLAYERDEBUG .knownget {
+ { (### BDC info to deviceparams: ) print currentdict === flush } if
+ } if
+ currentdevice //null //false mark currentdict { } forall
+ .putdeviceparamsonly dup type /booleantype ne {
+ cleartomark pop
+ } if
+ pop pop % discard the device and flag
+ end % discard private dict
+ pop % done with properties dict
+} bind def
+
+/EMC {
+ currentdevice //null //false mark /MarkType (EMC)
+ //systemdict /CSLAYERDEBUG .knownget {
+ { (### EMC to deviceparams) = flush } if
+ } if
+ .putdeviceparamsonly dup type /booleantype ne {
+ cleartomark pop
+ } if
+ pop pop % discard the device and flag
+} bind def
+
+currentdict readonly pop end
+.setglobal
+.setlanguagelevel
diff --git a/Master/tlpkg/tlgs/lib/pdf_draw.ps b/Master/tlpkg/tlgs/lib/pdf_draw.ps
index 68789c37de9..538c9f57614 100644
--- a/Master/tlpkg/tlgs/lib/pdf_draw.ps
+++ b/Master/tlpkg/tlgs/lib/pdf_draw.ps
@@ -13,7 +13,7 @@
% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
-% $Id: pdf_draw.ps 8061 2007-06-19 02:39:15Z alexcher $
+% $Id: pdf_draw.ps 8554 2008-02-27 19:36:18Z leonardo $
% pdf_draw.ps
% PDF drawing operations (graphics, text, and images).
@@ -433,7 +433,6 @@ end
gsave //nodict begin
null SMask
1 .setopacityalpha 1 .setshapealpha
- 0 .inittransparencymask 1 .inittransparencymask
/Compatible .setblendmode
% Execute the body of the Form, similar to DoForm.
pdfopdict .pdfruncontext
@@ -739,16 +738,27 @@ end
% so for simplicity, we always do it.
PDFfile fileposition 3 1 roll
q
- null sc1 null SC1
+ //null sc1 //null SC1
% save old value of pdfemptycount on opstack, set to new value
pdfemptycount /pdfemptycount count 3 sub def 3 1 roll
- exch false resolvestream pdfopdict .pdfruncontext
+ countdictstack 3 1 roll
+
+ exch //false resolvestream pdfopdict .pdfruncontext
+
+ countdictstack exch sub dup 0 gt {
+ ( **** Warning: Pattern stream has imbalanced q/Q operators (too many q's)\n)
+ pdfformaterror
+ { Q } repeat
+ } {
+ pop
+ } ifelse
+
% restore pdfemptycount
/pdfemptycount exch def
Q
- PDFDEBUG { pdfdict /PDFSTEPcount .knownget { 1 le } { true } ifelse { (%End PaintProc) print dup === flush } if } if
+ PDFDEBUG { pdfdict /PDFSTEPcount .knownget { 1 le } { //true } ifelse { (%End PaintProc) print dup === flush } if } if
PDFfile exch setfileposition
} bdef
@@ -787,22 +797,93 @@ end
PDFDEBUG { pdfdict /PDFSTEPcount .knownget { 1 le } { true } ifelse { (%Pattern: ) print dup === flush } if } if
} bdef
+/ignore_color_op ( **** Warning: Ignoring a color operation in a cached context.\n) readonly def
+
drawopdict begin
- /g { /DeviceGray cssubst { cs sc1 } { g } ifelse } bdef
- /rg { /DeviceRGB cssubst { cs sc* } { rg } ifelse } bdef
- /k { k } bdef
- /cs { csresolve cs } bdef
- /sc { scresolve { sc* } { sc1 } ifelse } bdef
+ /g { .incachedevice { % Bug 689302
+ pop //ignore_color_op pdfformaterror
+ } {
+ /DeviceGray cssubst { cs sc1 } { g } ifelse
+ } ifelse
+ } bdef
+
+ /rg { .incachedevice {
+ pop pop pop //ignore_color_op pdfformaterror
+ } {
+ /DeviceRGB cssubst { cs sc* } { rg } ifelse
+ } ifelse
+ } bdef
+
+ /k { .incachedevice {
+ pop pop pop pop //ignore_color_op pdfformaterror
+ } {
+ k
+ } ifelse
+ } bdef
+
+ /cs { .incachedevice {
+ pop //ignore_color_op pdfformaterror
+ } {
+ csresolve cs
+ } ifelse
+ } bdef
+
+ /sc { .incachedevice {
+ .pdfcount { pop } repeat //ignore_color_op pdfformaterror
+ } {
+ scresolve { sc* } { sc1 } ifelse
+ } ifelse
+ } bdef
+
/scn /sc load def
- /G { /DeviceGray cssubst { CS SC1 } { G } ifelse } bdef
- /RG { /DeviceRGB cssubst { CS SC* } { RG } ifelse } bdef
- /K { K } bdef
- /CS { csresolve CS } bdef
- /ri { ri } bdef
- /SC { scresolve { SC* } { SC1 } ifelse } bdef
+
+ /G { .incachedevice {
+ pop //ignore_color_op pdfformaterror
+ } {
+ /DeviceGray cssubst { CS SC1 } { G } ifelse
+ } ifelse
+ } bdef
+
+ /RG { .incachedevice {
+ pop pop pop //ignore_color_op pdfformaterror
+ } {
+ /DeviceRGB cssubst { CS SC* } { RG } ifelse
+ } ifelse
+ } bdef
+
+ /K { .incachedevice {
+ pop pop pop pop //ignore_color_op pdfformaterror
+ } {
+ K
+ } ifelse
+ } bdef
+
+ /CS { .incachedevice {
+ pop //ignore_color_op pdfformaterror
+ } {
+ csresolve CS
+ } ifelse
+ } bdef
+
+ /ri { .incachedevice {
+ pop //ignore_color_op pdfformaterror
+ } {
+ ri
+ } ifelse
+ } bdef
+
+ /SC { .incachedevice {
+ .pdfcount { pop } repeat //ignore_color_op pdfformaterror
+ } {
+ scresolve { SC* } { SC1 } ifelse
+ } ifelse
+ } bdef
+
/SCN /SC load def
end
+currentdict /ignore_color_op undef
+
% ---------------- Paths ---------------- %
drawopdict begin
@@ -956,16 +1037,15 @@ end
} if
% Check elements of array are within 0::(2**BitsPerComponent)-1
% This is a PostScript error, but AR ignores Mask in that case
- 2 BitsPerComponent exp cvi 1 sub //false 2 index {
+ 1 BitsPerComponent bitshift 1 sub //false 2 index {
% stack: max_value result_bool value
dup 0 lt exch 3 index gt or or
} forall exch pop {
(\n **** Warning: Some elements of Mask array are out of range.\n)
pdfformaterror
- pop /ImageType 1 def % revert to non-masked image
- } {
- /MaskColor exch def
- } ifelse
+ [ exch { 0 .max 1 BitsPerComponent bitshift 1 sub .min } forall ]
+ } if
+ /MaskColor exch def
} {
% Mask is a stream, another Image XObject.
% Stack: datasource imagemask(false) maskstreamdict
@@ -999,7 +1079,6 @@ end
gsave //nodict begin
null /SoftMask gput
1 .setopacityalpha 1 .setshapealpha
- 0 .inittransparencymask 1 .inittransparencymask
/Compatible .setblendmode
DoImage
end grestore
diff --git a/Master/tlpkg/tlgs/lib/pdf_font.ps b/Master/tlpkg/tlgs/lib/pdf_font.ps
index d9cf7adb199..132c318f1e9 100644
--- a/Master/tlpkg/tlgs/lib/pdf_font.ps
+++ b/Master/tlpkg/tlgs/lib/pdf_font.ps
@@ -13,7 +13,7 @@
% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
-% $Id: pdf_font.ps 8093 2007-06-30 23:46:18Z alexcher $
+% $Id: pdf_font.ps 8509 2008-01-28 10:31:45Z mpsuzuki $
% PDF font operations.
% Finding a font by name can't give a proper result when PDF font names aren't unique.
@@ -212,7 +212,24 @@ pdfdict begin
% character space, but the FontMatrix may specify
% some other scale factor. Compensate for this here,
% by scaling the Widths if necessary.
- 0.001 2 index /FontMatrix get 0 get div
+ 0.001 2 index /FontMatrix get 0 get
+ dup 0 eq {
+ % FontMatrix.xx == 0, so we cannot scale down by xx.
+ % - FontMatrix[0] == 0 implies either FontMatrix[1] <> 0 or
+ % FontMatrix cannot be inverted. In the 1st case we have
+ % FontMatrixNonHV == true and will render text with cshow + xshow.
+ % In the 2nd case, metrics in the PDF Font object cannot be enforced
+ % [by altering metrics in PS glyph space].
+ % HACK:
+ % - we scale down by FontMatrix[1];
+ % - given the format of Metrics entries we use, wy = 0 in glyph space;
+ % - as a result, the cshow procedure receives as wy the value we
+ % need for wx (all of this in PS user space).
+ pop
+ 2 index /FontMatrix get 1 get
+ dup 0 eq { pop 1 } if % sorry, no way to enforce PDF metrics by altering the font
+ } if
+ div
% Stack: font font-res mscale
/FirstChar 2 index /FirstChar oget def
/LastChar 2 index /LastChar oget def
@@ -569,8 +586,17 @@ setglobal
% If the font isn't available, synthesize one based on
% its descriptor.
dup /Font resourcestatus {
- pop pop pdffindcachedfont
+ pop pop dup pdffindcachedfont
+ dup .isregisteredfont
+ % <font-resource> <fontname> <font> true % font preloaded from disk
+ % <font-resource> <fontname> <font> false % font preloaded from document
+ { exch pop false } { pop true } ifelse
} {
+ true
+ } ifelse
+ % <font-resource> <font> false % font preloaded from disk
+ % <font-resource> <fontname> true % font not loaded yet or embedded
+ {
1 index /FontDescriptor knownoget {
% Stack: font-res fontname fontdesc
dup /Flags oget
@@ -642,7 +668,7 @@ setglobal
% No descriptor available, use the default algorithm.
pdffindcachedfont
} ifelse
- } ifelse
+ } if
exch pop
} bdef
@@ -657,6 +683,12 @@ setglobal
0 () /SubFileDecode filter
} bdef
+% Adobe Acrobat doesn't skip space characters after eexec
+/eexec_pdf_param_dict mark
+ .eexec_param_dict {} forall
+ /keep_spaces true
+.dicttomark readonly def
+
% When Type 1 font reading procedure is executing, a copy of this dictionary is current.
% We have to do something special about embedded fonts that execute definefont
% more than once -- that is the function of topFontDict.
@@ -689,7 +721,7 @@ setglobal
/eexec {
% Assume the font dictionary is directly below the file on the stack
count 0 gt { /topFontDict 2 index cvlit store } if
- //.eexec_param_dict /eexecDecode filter
+ //eexec_pdf_param_dict /eexecDecode filter
//missing-type1-procs begin
/userdict .systemvar begin
@@ -700,12 +732,30 @@ setglobal
{ stop } if
} bdef
- currentdict dup
+ /readonly-op-dict <<
+ /stringtype 0
+ /arraytype 0
+ /packedarraytype 0
+ /dicttype 0
+ >> readonly def
+
+ /readonly { % bug 689617
+ dup type //readonly-op-dict exch known {
+ readonly
+ } {
+ ( **** Warning: Type 1 font applies operator readonly to a wrong type.\n)
+ pdfformaterror
+ } ifelse } .bind def
+
+ currentdict dup dup
/undef_proc_warning undef
/missing-type1-procs undef
+ /readonly-op-dict undef
end readonly def
+currentdict /eexec_pdf_param_dict .undef
+
/readtype1 { % <font-resource> <stream-dict> readtype1 <font>
1 index exch % res res stream
PDFfile fileposition 3 1 roll % res pos res stream
@@ -779,26 +829,37 @@ end readonly def
% Stack: font charcode
1 index begin 3 dict begin
/Font 3 -1 roll def /CharCode 1 index def
- % Make unknown characters map to /.notdef
- Encoding exch get dup CharProcs exch known
- { CharProcs exch oget }
- { pop CharProcs /.notdef oget }
- ifelse
- PDFfile fileposition exch
- false resolvestream
+ Encoding exch get CharProcs exch knownoget {
+ PDFfile fileposition exch
+ //false resolvestream
% Stack: filepos stream
% Don't let setgcolor set the color inside the BuildGlyph
% procedure, because this causes an /undefined error.
- q null /FillColor gput null /StrokeColor gput
- Font /Resources get exch pdfopdict .pdfruncontext
- Q
- PDFfile exch setfileposition
+ q //null /FillColor gput //null /StrokeColor gput
+ Font /Resources get exch pdfopdict .pdfruncontext
+ Q
+ PDFfile exch setfileposition
+ } {
+ % PDF Type 3 fonts don't use .notdef
+ % d1 implementation adjusts the width as needed
+ 0 0 0 0 0 0
+ pdfopdict /d1 get exec
+ } ifelse
end end
} bdef
dup currentdict Encoding .processToUnicode
FontName currentdict end definefont exch pop
} bdef
/.adjustcharwidth { % <wx> <wy> .adjustcharwidth <wx'> <wy'>
+ % Enforce the metrics, in glyph space, to the values found in the PDF Font object
+ % - force wy == 0 (assumed, and not stored in the PDF font)
+ % Even though PDF1.3-1.7 specifications state that this must be 0,
+ % Distiller sometimes creates Type3 fonts with non-zero wy. We set
+ % it to 0 since this is apparently what Acrobat Reader 4 and 5 do.
+ % PDF1.2 does not mention this restriction, it only says
+ % "see setcharwidth/ setcachedevice in the PostScript Reference".
+ % - get wx from the Widths array (do nothing if not present)
+ pop 0
/Widths where {
begin
CharCode FirstChar ge CharCode LastChar le and {
@@ -824,8 +885,6 @@ end readonly def
/buildTrueType { % <TrueType-font-resource> buildTrueType <font>
dup /BaseFont oget
- /Repaired true store % flag that we had warnings
- TTFWarnList 1 index true put % Add fontname to the list
dup /Font resourcestatus dup { exch pop exch pop } if not
TTfonts 2 index known and {
dup TTfonts exch get
@@ -1418,10 +1477,11 @@ end readonly def
} 2 bndef
<01000401> <01000402> <01000403> <01000404> % Type 1C
+ <01000C02>
{ exch pop
dup /Subtype get
fontloadprocs exch get exec
- } 4 bndef
+ } 5 bndef
<00010000> (true) (typ1) (ttcf) % TrueType OpenType
{ exch pop readtruetype
@@ -1519,16 +1579,6 @@ drawopdict begin
.adjustcharwidth setcharwidth
} bdef
/d1 {
- 4 index 0 ne {
- % invalid wy parameter for d1 in Type3 font (must be 0)
- % Even though the PDF 1.4 specification states that this must be 0,
- % Distiller sometimes creates Type3 fonts with non-zero wy. We set
- % it to 0 since this is apparently what Acrobat Reader 4 and 5 do,
- % but if the specification is ever changed to allow non-zero wy, this
- % will not work.
- 5 -1 roll pop 0 5 1 roll % set wy to 0
- } if
-
2 copy % ... llx lly urx ury | urx ury
0 ne exch 0 ne % ... llx lly urx ury | ury!=0 urx!=0
3 index 6 index eq and % ... llx lly urx ury | ury!=0 (urx!=0 && llx==urx)
diff --git a/Master/tlpkg/tlgs/lib/pdf_main.ps b/Master/tlpkg/tlgs/lib/pdf_main.ps
index a71a4dad5c4..efe74533d2f 100644
--- a/Master/tlpkg/tlgs/lib/pdf_main.ps
+++ b/Master/tlpkg/tlgs/lib/pdf_main.ps
@@ -13,7 +13,7 @@
% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
-% $Id: pdf_main.ps 8159 2007-08-01 17:19:50Z ray $
+% $Id: pdf_main.ps 8486 2008-01-17 03:12:45Z alexcher $
% pdf_main.ps
% PDF file- and page-level operations.
@@ -136,7 +136,7 @@ systemdict begin
currentdict /runpdfstring .undef
-/runpdfbegin { % <file> runpdf -
+/runpdfbegin { % <file> runpdfbegin -
userdict begin
% It turns out that the PDF interpreter uses memory more
% effectively if it is run under at least one level of save.
@@ -151,6 +151,9 @@ currentdict /runpdfstring .undef
GS_PDF_ProcSet begin
pdfdict begin
pdfopen begin
+} bind def
+
+/runpdfpagerange { % - runpdfpagerange <firstpage#> <lastpage#>
/FirstPage where
{ pop FirstPage dup pdfpagecount gt
{ (\nRequested FirstPage is greater than the number of pages in the file: ) print
@@ -172,15 +175,13 @@ currentdict /runpdfstring .undef
} bind def
/dopdfpages { % firstpage# lastpage# dopdfpages -
- << /PDFScanRules true >> setuserparams % set scanning rules for PDF vs. PS
- true .setaccuratecurves % unlike PS, PDF seems to need this
+ << /PDFScanRules //true >> setuserparams % set scanning rules for PDF vs. PS
1 exch
{ dup /Page# exch store
QUIET not { (Page ) print dup == flush } if
pdfgetpage pdfshowpage
} for
- false .setaccuratecurves % restore accuratecurves behaviour
- << /PDFScanRules null >> setuserparams % restore scanning rules for PS
+ << /PDFScanRules //null >> setuserparams % restore scanning rules for PS
} bind def
/runpdfend {
@@ -194,12 +195,68 @@ currentdict /runpdfstring .undef
2 vmreclaim % couldn't hurt
} bind def
+% - pdf_collection_files [temp_files] show_container
+/pdf_collection_files {
+ {} //true
+ Trailer /Root oget /Collection knownoget {
+ /D knownoget { % We have default document in the collection
+ Trailer /Root oget /Names knownoget {
+ /EmbeddedFiles knownoget {
+ exch nameoget dup //null ne {
+ /EF knownoget {
+ /F knownoget {
+ //true resolvestream % {} true strm
+ //null (w) .tempfile % {} true strm (name) file
+ 3 -1 roll % {} true (name) file strm
+ 32768 string % {} true (name) file strm (buf)
+ { 3 copy readstring % {} true (name) file strm (buf) file (data) bool
+ 3 1 roll % {} true (name) file strm (buf) bool file (data)
+ writestring % {} true (name) file strm (buf) bool
+ not { exit } if
+ } loop
+ pop closefile % {} true (name) file
+ closefile % {} true (name)
+ 3 1 roll pop pop % (name)
+ .currentglobal //true .setglobal
+ exch dup length string copy 1 array astore
+ exch .setglobal //false
+ } if
+ } if
+ } {
+ pop
+ } ifelse
+ } {
+ pop
+ } ifelse
+ } {
+ pop
+ } ifelse
+ } if
+ } if
+} bind def
+
/runpdf { % <file> runpdf -
- runpdfbegin
- dopdfpages
- runpdfend
+ //runpdfbegin exec
+ //pdf_collection_files exec {
+ copy_trailer_attrs
+ //runpdfpagerange exec
+ //dopdfpages exec
+ } if
+ //runpdfend exec
+ {
+ dup (r) file
+ //runpdfbegin exec
+ copy_trailer_attrs
+ //runpdfpagerange exec
+ //dopdfpages exec
+ //runpdfend exec
+ deletefile
+ } forall
} bind def
+currentdict /runpdfpagerange .undef
+currentdict /pdf_collection_files .undef
+
end % systemdict
% Redefine the procedure that the C code uses for running piped input.
% It is OK to use { (%stdin) run } here, because a startjob cannot occur.
@@ -215,18 +272,19 @@ pdfdict begin
% Read the cross-reference and trailer sections.
/traileropdict mark
- (<<) cvn { mark } bind
+ (<<) cvn { /dictlevelcount dictlevelcount 1 add store mark } bind
(>>) cvn { { .dicttomark } stopped {
( **** File has unbalanced >> in trailer.\n) pdfformaterror
- } if } bind
+ } if
+ /dictlevelcount dictlevelcount 1 sub def
+ dictlevelcount 0 eq { exit } if
+ } bind
([) cvn { mark } bind % ditto
(]) cvn dup load
% /true true % see .pdfexectoken in pdf_base.ps
% /false false % ibid.
% /null null % ibid.
/R { /resolveR cvx 3 packedarray cvx } bind % see Objects below
- /startxref /exit load
- /startref /exit load % Some application (unknown) misspells startxref
.dicttomark readonly def
% Because of EOL conversion, lines with fixed contents might be followed
@@ -277,11 +335,9 @@ pdfdict begin
pop % Stack: <err count> <obj#> <loc> <gen#> <tag>
dup /n eq { % xref line tag is /n
pop % pop dup of line tag
- Objects 3 index lget null eq { % later update might have set it
- 0 3 1 roll % Set ObjectStream object number = 0
- setxrefentry % Save xref entry
- 3 -1 roll pop % Remove ObjectStream object onumber
- } if
+ 0 3 1 roll % Set ObjectStream object number = 0
+ //false setxrefentry % Save xref entry, don't change existing entries
+ 3 -1 roll pop % Remove ObjectStream object onumber
}
{ % xref line tag was not /n
/f ne % verify that the tag was /f
@@ -298,6 +354,7 @@ pdfdict begin
( **** Warning: length of some xref entries is not equal to 20 bytes.\n)
pdfformaterror
} if
+ /dictlevelcount 0 def
PDFfile traileropdict .pdfrun
} bind def
@@ -341,7 +398,7 @@ pdfdict begin
% (loc: ) print 1 index pdfstring cvs print ( ) print
% (gen: ) print dup === flush
0 3 1 roll % set stream number = 0
- setxrefentry
+ //false setxrefentry
3 -1 roll pop % remove stream number
} bind
% XRef entry type 2 - compressed object type xref entry
@@ -350,7 +407,7 @@ pdfdict begin
% (obj num: ) print 2 index pdfstring cvs print ( ) print
% (field 2: ) print 1 index pdfstring cvs print ( ) print
% (field 3: ) print dup === flush
- 0 setxrefentry pop % set generation number = 0
+ 0 //false setxrefentry pop % set generation number = 0
} bind
] def
@@ -437,7 +494,14 @@ pdfdict begin
% non-compliant PDF files that we have to do this too.
PDFfile pdfstring 0 4 getinterval readstring pop
(xref) eq
- { readorigxref } % 'xref' -> original xref table
+ {
+ readorigxref % 'xref' -> original xref table
+ % if hybrid-reference PDF, also fetch the entries
+ % found in the XRef stream pointed by /XRefStm
+ dup /XRefStm knownoget {
+ readpdf15xref pop
+ } if
+ }
{ readpdf15xref } % otherwise assume PDF 1.5 xref stream
ifelse
} bind def
@@ -469,6 +533,10 @@ pdfdict begin
if
pdfopenfile begin
pdfopencache
+ currentdict end
+} bind def
+
+/copy_trailer_attrs { % - copy_trailer_attrs -
writeoutputintents
.writepdfmarks {
% Copy bookmarks (outline) to the output.
@@ -478,7 +546,6 @@ pdfdict begin
} if
} if
} if % end .writepdfmarks
- currentdict end
} bind def
% Verify that each entry in the xref table is pointing at an object with
@@ -559,7 +626,7 @@ pdfdict begin
/PDFsource PDFfile def
/Repaired false def
currentglobal true .setglobal globaldict begin
- /TTFWarnList 0 dict def /UndefProcList 0 dict def
+ /UndefProcList 0 dict def
end .setglobal
PDFfile dup 0 setfileposition
0 () /SubFileDecode filter % to avoid file closure
@@ -750,18 +817,9 @@ pdfdict begin
( <<<<\n) stderrprint
} ifelse
} bind def
-% The TTFWarnList is the list of all TrueType fonts that were not embedded.
% The UndefProcList collects noisy warnings.
% This gets rid of many multiple warnings from pdf_font.ps
/printCollectedWarnings {
- TTFWarnList length 0 gt {
- (\n **** Warning: Fonts with Subtype = /TrueType should be embedded.\n)
- stderrprint
- ( The following fonts were not embedded:\n)
- stderrprint
- [ TTFWarnList { pop .namestring (\t\t\t) exch concatstrings (\n) concatstrings } forall ]
- { lt } .sort { stderrprint } forall
- } if
UndefProcList length 0 gt {
(\n **** Embedded font uses undefined procedure\(s\): ) stderrprint
UndefProcList {
@@ -797,7 +855,26 @@ pdfdict begin
{ 2 index /Count knownoget { 0 lt { neg } if } if
/Count exch 3 index
}
- ifelse { linkdest } stopped
+ ifelse
+ {
+ dup /A knownoget {
+ dup /URI known {
+ /A mark 3 2 roll % <<>> /A [ <<action>>
+ { oforce } forall
+ .dicttomark
+ 3 2 roll
+ } {
+ dup /D knownoget {
+ exch pop exch dup length dict copy dup /Dest 4 -1 roll put
+ } {
+ /N knownoget { % Assume /S /Named
+ namedactions exch .knownget { exec } if
+ } if
+ } ifelse
+ } ifelse
+ } if
+ linkdest
+ } stopped
{
cleartomark % ignore this link
( **** Warning: Outline has invalid link that was discarded.\n)
@@ -1453,7 +1530,9 @@ currentdict /PDF2PS_matrix_key undef
} ifelse
grestore
% Draw the annotations
- /Annots knownoget { { oforce drawannot } forall } if
+ //systemdict /ShowAnnots .knownget not { //true } if {
+ /Annots knownoget { { oforce drawannot } forall } if
+ } if
//systemdict /ShowAcroForm .knownget { //true eq } { //false } ifelse {
Trailer /Root oget /AcroForm knownoget { draw_acro_form } if
} if
diff --git a/Master/tlpkg/tlgs/lib/pdf_ops.ps b/Master/tlpkg/tlgs/lib/pdf_ops.ps
index 41ca168b320..6f286041a98 100644
--- a/Master/tlpkg/tlgs/lib/pdf_ops.ps
+++ b/Master/tlpkg/tlgs/lib/pdf_ops.ps
@@ -13,7 +13,7 @@
% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
-% $Id: pdf_ops.ps 8156 2007-07-31 14:19:45Z alexcher $
+% $Id: pdf_ops.ps 8554 2008-02-27 19:36:18Z leonardo $
% Definitions for most of the PDF operators.
.currentglobal true .setglobal
@@ -25,13 +25,6 @@
systemdict /pdfmark known not
{ userdict /pdfmark { cleartomark } bind put } if
-/renderingintentdict mark
- /Perceptual 0
- /RelativeColorimetric 1
- /Saturation 2
- /AbsoluteColorimetric 3
-.dicttomark readonly def
-
userdict /GS_PDF_ProcSet 127 dict dup begin
% ---------------- Abbreviations ---------------- %
@@ -68,6 +61,8 @@ userdict /GS_PDF_ProcSet 127 dict dup begin
% TextRise
% TextRenderingMode
% WordSpacing
+% (The following is cached information derived from other graphics state params)
+% FontMatrixNonHV % TextFont.FontMatrix alters horz/vert glyph advance vector direction
/nodict 1 dict def
nodict /self { //nodict } executeonly put
@@ -83,6 +78,7 @@ nodict readonly pop
/graphicsbeginpage {
initgraphics
+ //true .setaccuratecurves
currentdict /ClipRect knownoget { aload pop rectclip } if
0 g 0 G false op false OP 0 OPM
1 ca 1 CA null SMask false AIS /Compatible BM true TK
@@ -198,7 +194,7 @@ nodict readonly pop
/K { 4 array astore cvx //csdevcmyk scput } bdef
/cs { csset fcput } bdef
/CS { csset scput } bdef
-/ri { //renderingintentdict exch .knownget { .setrenderingintent } if } bdef
+/ri { //.renderingintentdict exch .knownget { .setrenderingintent } if } bdef
% We have to break up sc according to the number of operands.
/sc1 { /FillColor gput } bdef
/SC1 { /StrokeColor gput } bdef
@@ -254,11 +250,11 @@ nodict readonly pop
% Establish a given color (and color space) as current.
/.settransparencyparams { % <alpha> <smask> .settransparencyparams -
PDFusingtransparency {
- /.inittransparencymask where {
+ /.begintransparencygroup where {
pop AlphaIsShape {
- 1 .setopacityalpha 0 .inittransparencymask exch .setshapealpha 1
+ 1 .setopacityalpha exch .setshapealpha 1
} {
- 1 .setshapealpha 1 .inittransparencymask exch .setopacityalpha 0
+ 1 .setshapealpha exch .setopacityalpha 0
} ifelse
% Set the soft mask by rendering the XObject. Doing this every time
% is obviously very inefficient; we'll improve it later.
@@ -273,7 +269,7 @@ nodict readonly pop
/.settransparencymask { % <paramdict> <masknum> .settransparencymask -
exch dup null eq {
PDFusingtransparency {
- pop .inittransparencymask
+ pop pop
} {
dup /Draw get exec
} ifelse
@@ -408,6 +404,7 @@ end readonly def
/WordSpacing 0 def % 0 Tw
/TextHScaling 1.0 def % 100 Tz
/TextFont null def
+ /FontMatrixNonHV //false def
/Show { showfirst } def
} bdef
@@ -467,6 +464,62 @@ end readonly def
% ---------------- Font control ---------------- %
+% Test if the FontMatrix could transform a horizontal/vertical (depending
+% on writing mode) advance vector in glyph space into one with a different
+% direction in text space.
+% - if FontMatrix = [a b c d tx ty], this condition translates to:
+% b != 0 for horizontal writing mode
+% c != 0 for vertical writing mode
+% - when false, we automatically have wy/x == 0 in text space whenever wy/x == 0
+% in glyph space, and can avoid the slow method that is otherwise necessary
+% to implement zeroing wy/x cf PDF Ref 5.3.3 "Text space details"
+ % Worker procedure for testing a single font matrix
+/?FontMatrixNonHV { % ?horz <<fontdict>> -- ?horz ?nonhv
+ /FontMatrix .knownget {
+ 1 index { 1 } { 2 } ifelse get 0 ne
+ } {
+ //false
+ } ifelse
+} bdef
+ % Worker procedure for recursive checking of font matrices
+/?FontMatrixNonHV { % {self} ?horz <<font>> -- {self} ?horz ?nonhv
+ 2 copy //?FontMatrixNonHV exec { % check the font's own FontMatrix
+ pop pop //true
+ } {
+ % look for descendents/ components
+ pop % {self} ?horz <<font>>
+ dup /FontType get
+ dup 0 eq { % Type 0: look into FDepVector
+ pop /FDepVector get 2 index % {self} ?horz [fonts..] {testproc}
+ } {
+ 9 eq { % Type 9 (CIDFontType 0): check FDArray
+ /FDArray get //?FontMatrixNonHV
+ } { % all others: nothing more to check
+ pop {} {}
+ } ifelse
+ } ifelse
+ %stack: {self} ?horz [fonts..] {testproc}
+ //false 5 2 roll { % {testproc} false {self} ?horz <<subfont>>
+ 4 index exec {
+ 4 -1 roll pop //true 4 1 roll
+ exit
+ } if
+ } forall
+ %stack: {testproc} ?nonhv {self} ?horz
+ 4 2 roll exch pop
+ } ifelse
+} bdef
+ % Main procedure
+/?FontMatrixNonHV { % <<rootfont>> -- ?nonhv
+ //?FontMatrixNonHV exch
+ % determine WMode
+ dup /WMode .knownget { 0 eq } { //true } ifelse % {proc} <<rootfont>> ?horz
+ exch
+ % call the worker procedure
+ //?FontMatrixNonHV exec
+ exch pop exch pop
+} bdef
+
/Tf { % <font> <scale> Tf -
dup 0 eq {
(\n **** Warning: Invalid 0.0 font scale given for Tf ****\n)
@@ -479,6 +532,12 @@ end readonly def
dup 1 eq { pop } { scalefont } ifelse
}
ifelse
+ dup ?FontMatrixNonHV dup FontMatrixNonHV ne {
+ /FontMatrixNonHV gput
+ { showfirst } /Show gput
+ } {
+ pop
+ } ifelse
/TextFont gput settextstate
} bdef
@@ -596,61 +655,122 @@ end readonly def
{ gsave tB grestore tW }
{ tW }
] readonly def
+
+/pdfwrite_textrenderingprocs [
+ { setfillstate show } bind
+ { setstrokestate show } bind
+ { gsave 0 .settextrenderingmode
+ setfillstate dup show currentpoint 3 -1 roll
+ grestore gsave setstrokestate false charpath stroke
+ grestore moveto
+ } bind
+ { setfillstate show } bind
+ { gsave 0 .settextrenderingmode
+ setfillstate dup show grestore true charpath } bind
+ { gsave 1 .settextrenderingmode
+ setstrokestate dup show grestore
+ true charpath } bind
+ { gsave 0 .settextrenderingmode
+ setfillstate dup show grestore gsave dup
+ setstrokestate false charpath stroke grestore
+ true charpath } bind
+ { true charpath } bind
+] readonly def
+
/setshowstate
- { WordSpacing 0 eq TextSpacing 0 eq and
- { TextRenderingMode 0 eq currentdevice .devicename /pdfwrite eq or {
- { setfillstate show }
- } {
- TextRenderingMode 3 eq {
- % Some PDF files execute 'tm' with a singular matrix,
- % and then use the text rendering mode 3.
- % The graphics library currently cannot handle text
- % operations when the CTM is singular.
- % Work around this here.
- {
- matrix currentmatrix dup dup
- dup 0 get 0 eq 1 index 1 get 0 eq and {
- dup dup 2 get 0 eq { 0 }{ 1 } ifelse 1 put
- } if
- dup 2 get 0 eq 1 index 3 get 0 eq and {
- dup dup 1 get 0 eq { 3 }{ 2 } ifelse 1 put
- } if
- setmatrix
- 2 index setfillstate show % Tr was set to graphic state.
- setmatrix
- % now set the currentpoint using the original matrix
- gsave nulldevice
- setmatrix
- false charpath currentpoint newpath
- grestore
- moveto
- }
- } {
- { false charpath textrenderingprocs TextRenderingMode get exec }
- } ifelse
- } ifelse
+ { WordSpacing 0 eq TextSpacing 0 eq and FontMatrixNonHV not and
+ {
+ currentdevice .devicename /pdfwrite eq
+ {
+ pdfwrite_textrenderingprocs TextRenderingMode get
+ }
+ {
+ TextRenderingMode 0 eq {
+ { setfillstate show }
+ } {
+ TextRenderingMode 3 eq {
+ % Some PDF files execute 'tm' with a singular matrix,
+ % and then use the text rendering mode 3.
+ % The graphics library currently cannot handle text
+ % operations when the CTM is singular.
+ % Work around this here.
+ {
+ matrix currentmatrix dup dup
+ dup 0 get 0 eq 1 index 1 get 0 eq and {
+ dup dup 2 get 0 eq { 0 }{ 1 } ifelse 1 put
+ } if
+ dup 2 get 0 eq 1 index 3 get 0 eq and {
+ dup dup 1 get 0 eq { 3 }{ 2 } ifelse 1 put
+ } if
+ setmatrix
+ 2 index setfillstate show % Tr was set to graphic state.
+ setmatrix
+ % now set the currentpoint using the original matrix
+ gsave nulldevice
+ setmatrix
+ false charpath currentpoint newpath
+ grestore
+ moveto
+ }
+ } {
+ { false charpath textrenderingprocs TextRenderingMode get exec }
+ } ifelse
+ } ifelse
+ } ifelse
}
- { TextRenderingMode 0 eq TextRenderingMode 3 eq or currentdevice .devicename /pdfwrite eq or
+ { TextRenderingMode 0 eq TextRenderingMode 3 eq or
% Tr was set to graphic state.
- { WordSpacing 0 eq
- { { setfillstate TextSpacing 0 Vexch 3 -1 roll ashow } }
- { TextSpacing 0 eq
- { { setfillstate WordSpacing 0 Vexch 32 4 -1 roll widthshow } }
- { { setfillstate WordSpacing 0 Vexch 32
- TextSpacing 0 Vexch 6 -1 roll awidthshow } }
- ifelse
- }
- ifelse
+ { FontMatrixNonHV {
+ {
+ setfillstate
+ [ TextSpacing WordSpacing 3 index
+ { % str [... weach wword c undef|ythis xthis|undef
+ exch % will be removed, unless FontMatrix.xx/yy == 0 (FontMatrixNonHV already true)
+ Vexch pop % str [... weach wword c wthis
+ 3 index add exch 32 eq {1 index add} if % str [... weach wword w
+ 3 1 roll % str [... w weach wword
+ }
+ % for the "exch" removed or not below, see comment in pdf_font.ps::getfontmetrics
+ currentfont /FontMatrix get 0 3 Vexch pop get 0 ne {
+ 1 1 index length 1 sub getinterval cvx
+ } if
+ cshow pop pop ]
+ { xshow } { yshow } Vexch pop exec
+ }
+ } {
+ WordSpacing 0 eq
+ { { setfillstate TextSpacing 0 Vexch 3 -1 roll ashow } }
+ { TextSpacing 0 eq
+ { { setfillstate WordSpacing 0 Vexch 32 4 -1 roll widthshow } }
+ { { setfillstate WordSpacing 0 Vexch 32
+ TextSpacing 0 Vexch 6 -1 roll awidthshow } }
+ ifelse
+ }
+ ifelse
+ } ifelse
}
{ { WordSpacing TextSpacing
% Implement the combination of t3 and false charpath.
% Note that we must use cshow for this, because we
% can't parse multi-byte strings any other way.
- % Stack: string xword xchar
- { pop pop (x) dup 0 3 index put false charpath
- % Stack: xword xchar ccode
- 3 copy 32 eq { add } { exch pop } ifelse 0 Vexch rmoveto pop
+ % Stack: string wword wchar
+ {
+ exch % will be removed, unless FontMatrixNonHV && FontMatrix.xx/yy == 0
+ % Stack: str wword wchar ccode xthis ythis
+ Vexch pop currentpoint 6 3 roll
+ % Stack: str wthis xorig yorig wword wchar ccode
+ (x) dup 0 3 index put //false charpath
+ 3 copy 32 eq { add } { exch pop } ifelse
+ % Stack: str wthis xorig yorig wword wchar ccode wextra
+ 7 -3 roll moveto add
+ 0 Vexch rmoveto pop
}
+ % for the "exch" removed or not below, see comment in pdf_font.ps::getfontmetrics
+ FontMatrixNonHV dup not exch {
+ currentfont /FontMatrix get 0 3 Vexch pop get 0 ne
+ } if {
+ 1 1 index length 1 sub getinterval cvx
+ } if
4 -1 roll cshow pop pop
textrenderingprocs TextRenderingMode get exec
}
diff --git a/Master/tlpkg/tlgs/lib/pdf_rbld.ps b/Master/tlpkg/tlgs/lib/pdf_rbld.ps
index 8732be478e3..d21b93c876d 100644
--- a/Master/tlpkg/tlgs/lib/pdf_rbld.ps
+++ b/Master/tlpkg/tlgs/lib/pdf_rbld.ps
@@ -13,7 +13,7 @@
% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
-% $Id: pdf_rbld.ps 8022 2007-06-05 22:23:38Z giles $
+% $Id: pdf_rbld.ps 8472 2008-01-01 14:28:30Z alexcher $
% pdf_rbld.ps - Rebuilding of broken PDF files (xref errors)
% This module contains routines that are used if we detect an error
@@ -31,10 +31,17 @@
% Note: This procedure is also used by non-rebuild code.
% Store a line in the xref array (Actually Objects and Generations arrays)
-% <obj num> (strm num> <obj loc> <gen num> setxrefentry <obj num> strm num>
-% <obj loc> <gen num>
+% <obj num> (strm num> <obj loc> <gen num> <rebuild>
+% setxrefentry <obj num> strm num> <obj loc> <gen num>
/setxrefentry
-{ % We store generation numbers as value + 1
+{
+ 5 1 roll
+ dup 65535 or 65535 ne {
+ ( **** Warning: Generation number out of 0..65535 range, assuming 0.\n)
+ pdfformaterror
+ pop 0
+ } if
+ % We store generation numbers as value + 1
% We reserve 0 to indicate an free xref entry
1 add % increment generation number
% To save space, generations numbers are stored in a lstring unless we
@@ -70,7 +77,7 @@
} if
% Set error flag if we have equal object and generation numbers
Generations 4 index lget 1 index eq { /dup_obj_gen_num true def } if
- } ifelse
+ } 8 -1 roll { ifelse } { pop if } ifelse % Run 'else' only when rebuilding.
} bind def
% Print the contents of the xref array. This actually consists of three
@@ -207,6 +214,7 @@
exch 2 div lt { search_start_trailer } { search_end_trailer } ifelse
% get the trailer
PDFfile exch setfileposition % set to the specified trailer location
+ /dictlevelcount 0 def
PDFfile traileropdict .pdfrun % read trailer info
/Trailer exch def
} bind def
@@ -274,7 +282,7 @@
% save xref parameters into ObjectStream, Objects and Generations
1 index 0 % rearrange parms for setxrefentry
4 index PDFoffset sub 3 index
- setxrefentry % save parameters
+ //true setxrefentry % save parameters
pop pop pop pop % clear parameters
} if % check if name is 'obj'
} if % check if we got 'obj" string
diff --git a/Master/tlpkg/tlgs/lib/pdf_sec.ps b/Master/tlpkg/tlgs/lib/pdf_sec.ps
index 32aea04275a..f6258f2e461 100644
--- a/Master/tlpkg/tlgs/lib/pdf_sec.ps
+++ b/Master/tlpkg/tlgs/lib/pdf_sec.ps
@@ -4,7 +4,7 @@
% so long as modified versions are marked as such and copyright notices are
% not removed.
-% $Id: pdf_sec.ps 7670 2007-02-02 18:54:09Z alexcher $
+% $Id: pdf_sec.ps 8329 2007-10-28 17:17:47Z alexcher $
% Implementation of security hooks for PDF reader.
% This file contains the procedures that have to take encryption into
@@ -313,9 +313,17 @@ def
} bind def
% As .pdfrun, but decrypt strings with key <key>.
+/PDFScanRules_true << /PDFScanRules true >> def
+/PDFScanRules_null << /PDFScanRules null >> def
/.decpdfrun % <file> <keystring> <opdict> .decpdfrun -
{ % Construct a procedure with the file, opdict and key bound into it.
- 2 index cvlit mark mark 5 2 roll
+ 2 index cvlit mark
+ /PDFScanRules .getuserparam //null eq {
+ //PDFScanRules_true { setuserparams } 0 get % force PDF scanning mode
+ mark 7 4 roll
+ } {
+ mark 5 2 roll
+ } ifelse
{ .pdftoken not { (%%EOF) cvn cvx } if
dup xcheck
{ PDFDEBUG { dup == flush } if
@@ -374,12 +382,17 @@ def
ifelse
}
aload pop .packtomark cvx
- /loop cvx 2 packedarray cvx
- { stopped /PDFsource } aload pop
- PDFsource
+ { loop } 0 get 2 packedarray cvx
+ { stopped } 0 get
+ /PDFScanRules .getuserparam //null eq {
+ //PDFScanRules_null { setuserparams } 0 get % reset PDF scannig mode if it was off
+ } if
+ /PDFsource PDFsource
{ store { stop } if } aload pop .packtomark cvx
/PDFsource 3 -1 roll store exec
} bind def
+currentdict /PDFScanRules_true undef
+currentdict /PDFScanRules_null undef
% Run the code to resolve an object reference.
/pdf_run_resolve
diff --git a/Master/tlpkg/tlgs/lib/pdfopt.ps b/Master/tlpkg/tlgs/lib/pdfopt.ps
index 1ed2116cbe7..bd2cbe6630a 100644
--- a/Master/tlpkg/tlgs/lib/pdfopt.ps
+++ b/Master/tlpkg/tlgs/lib/pdfopt.ps
@@ -13,7 +13,7 @@
% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
-% $Id: pdfopt.ps 8005 2007-05-26 13:13:33Z alexcher $
+% $Id: pdfopt.ps 8251 2007-09-26 04:37:20Z alexcher $
% PDF linearizer ("optimizer").
.currentglobal true .setglobal
@@ -389,7 +389,7 @@ userdict /clostreams 20 dict put % stream -> [data endproc]
dup /Threads .knownget {
omforce dup //null ne { { omvisit } forall } { pop } ifelse
} if
- dup /AcroForm .knownget { omvisit } if
+ dup /AcroForm .knownget { omvisitnopage } if
pop
} visited
} bind def
@@ -433,7 +433,7 @@ userdict /clostreams 20 dict put % stream -> [data endproc]
exch omvisit
% Visit Annots, if any.
% We don't try to defer the drawing information.
- dup /Annots .knownget { omvisit } if
+ dup /Annots .knownget { omvisitnopage } if
% Visit beads.
dup /B .knownget { omvisit } if
% Visit resources dictionaries.
diff --git a/Master/tlpkg/tlgs/lib/ps2epsi.ps b/Master/tlpkg/tlgs/lib/ps2epsi.ps
index 531e88eb05f..ce83969a731 100644
--- a/Master/tlpkg/tlgs/lib/ps2epsi.ps
+++ b/Master/tlpkg/tlgs/lib/ps2epsi.ps
@@ -13,7 +13,7 @@
% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
-% $Id: ps2epsi.ps 6300 2005-12-28 19:56:24Z giles $
+% $Id: ps2epsi.ps 8491 2008-01-18 06:17:02Z alexcher $
% Convert an arbitrary PostScript file to an EPSI file.
%
% Please do not contact these users if you have questions. They no longer
@@ -78,6 +78,7 @@ ps2edict begin
% Replace the definition of showpage
userdict /showpage { ps2edict begin epsipage end } bind put
userdict /setfont { ps2edict begin epsisetfont end } bind put
+ userdict /setpagedevice /pop load put
//systemdict /.setsafe known { .setsafe } if
} bind def
diff --git a/Master/tlpkg/tlgs/lib/rinkj-2200-setup b/Master/tlpkg/tlgs/lib/rinkj-2200-setup
new file mode 100644
index 00000000000..d3d7073a572
--- /dev/null
+++ b/Master/tlpkg/tlgs/lib/rinkj-2200-setup
@@ -0,0 +1,222 @@
+Manufacturer: EPSON
+Model: Stylus Photo 2200
+Resolution: 1440x720
+Dither: 2
+Aspect: 2
+Microdot: 16
+Unidirectional: 0
+AddLut: K
+23
+0 0
+0.041667 0.072936
+0.083333 0.144825
+0.125000 0.193066
+0.166667 0.249716
+0.208333 0.302334
+0.250000 0.342984
+0.291667 0.386044
+0.333333 0.425084
+0.375000 0.458522
+0.416667 0.520504
+0.458333 0.577275
+0.500000 0.605041
+0.541667 0.652086
+0.583333 0.679372
+0.625000 0.703745
+0.666667 0.727044
+0.708333 0.750855
+0.750000 0.765267
+0.791667 0.920270
+0.833333 0.992157
+0.875000 0.996076
+0.916667 1.000000
+AddLut: K
+4
+0 0
+0 0.5
+0.15 0.75
+0.65 1
+AddLut: k
+23
+0 0
+0.041667 0.072936
+0.083333 0.144825
+0.125000 0.193066
+0.166667 0.249716
+0.208333 0.302334
+0.250000 0.342984
+0.291667 0.386044
+0.333333 0.425084
+0.375000 0.458522
+0.416667 0.520504
+0.458333 0.577275
+0.500000 0.605041
+0.541667 0.652086
+0.583333 0.679372
+0.625000 0.703745
+0.666667 0.727044
+0.708333 0.750855
+0.750000 0.765267
+0.791667 0.920270
+0.833333 0.992157
+0.875000 0.996076
+0.916667 1.000000
+AddLut: k
+5
+0 0
+0.2 0.375
+0.35 0.5
+0.1 0.75
+0 1
+AddLut: C
+22
+0 0
+0.041667 0.088977
+0.083333 0.167638
+0.125000 0.235395
+0.166667 0.296362
+0.208333 0.359009
+0.250000 0.407284
+0.291667 0.453199
+0.333333 0.493685
+0.375000 0.528351
+0.416667 0.592415
+0.458333 0.651623
+0.500000 0.681794
+0.541667 0.742354
+0.583333 0.784790
+0.625000 0.816796
+0.666667 0.850265
+0.708333 0.873510
+0.750000 0.884950
+0.791667 0.966983
+0.833333 0.998659
+0.875000 1.000000
+AddLut: C
+4
+0 0
+0 0.5
+0.15 0.75
+0.65 1
+AddLut: c
+22
+0 0
+0.041667 0.088977
+0.083333 0.167638
+0.125000 0.235395
+0.166667 0.296362
+0.208333 0.359009
+0.250000 0.407284
+0.291667 0.453199
+0.333333 0.493685
+0.375000 0.528351
+0.416667 0.592415
+0.458333 0.651623
+0.500000 0.681794
+0.541667 0.742354
+0.583333 0.784790
+0.625000 0.816796
+0.666667 0.850265
+0.708333 0.873510
+0.750000 0.884950
+0.791667 0.966983
+0.833333 0.998659
+0.875000 1.000000
+AddLut: c
+5
+0 0
+0.2 0.375
+0.35 0.5
+0.1 0.75
+0 1
+AddLut: M
+23
+0 0
+0.041667 0.066179
+0.083333 0.127506
+0.125000 0.171801
+0.166667 0.217173
+0.208333 0.263159
+0.250000 0.299030
+0.291667 0.335471
+0.333333 0.365411
+0.375000 0.389305
+0.416667 0.439855
+0.458333 0.485691
+0.500000 0.513796
+0.541667 0.597812
+0.583333 0.657433
+0.625000 0.706738
+0.666667 0.755192
+0.708333 0.795656
+0.750000 0.826408
+0.791667 0.948840
+0.833333 0.998498
+0.875000 0.999740
+0.916667 1.000000
+AddLut: M
+4
+0 0
+0 0.5
+0.15 0.75
+0.65 1
+AddLut: m
+23
+0 0
+0.041667 0.066179
+0.083333 0.127506
+0.125000 0.171801
+0.166667 0.217173
+0.208333 0.263159
+0.250000 0.299030
+0.291667 0.335471
+0.333333 0.365411
+0.375000 0.389305
+0.416667 0.439855
+0.458333 0.485691
+0.500000 0.513796
+0.541667 0.597812
+0.583333 0.657433
+0.625000 0.706738
+0.666667 0.755192
+0.708333 0.795656
+0.750000 0.826408
+0.791667 0.948840
+0.833333 0.998498
+0.875000 0.999740
+0.916667 1.000000
+AddLut: m
+5
+0 0
+0.2 0.375
+0.35 0.5
+0.1 0.75
+0 1
+AddLut: Y
+21
+0 0
+0.041667 0.082679
+0.083333 0.173423
+0.125000 0.251594
+0.166667 0.336706
+0.208333 0.407062
+0.250000 0.459290
+0.291667 0.522042
+0.333333 0.577070
+0.375000 0.636163
+0.416667 0.683434
+0.458333 0.726899
+0.500000 0.761784
+0.541667 0.789214
+0.583333 0.810356
+0.625000 0.852995
+0.666667 0.869116
+0.708333 0.900888
+0.750000 0.925593
+0.791667 0.989315
+0.833333 1.000000
+AddLut: Y
+3
+0 0
+0.2 0.5
+0.65 1
diff --git a/Master/tlpkg/tlgs/lib/stcinfo.ps b/Master/tlpkg/tlgs/lib/stcinfo.ps
new file mode 100644
index 00000000000..8d7135935a5
--- /dev/null
+++ b/Master/tlpkg/tlgs/lib/stcinfo.ps
@@ -0,0 +1,799 @@
+% Copyright (C) 1995 Aladdin Enterprises. All rights reserved
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% For more information about licensing, please refer to
+% http://www.ghostscript.com/licensing/. For information on
+% commercial licensing, go to http://www.artifex.com/licensing/ or
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
+% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
+
+% $Id: stcinfo.ps 6300 2005-12-28 19:56:24Z giles $
+% stcinfo.ps
+% Epson Stylus-Color Printer-Driver
+
+% The purpose of this file is to print & show Parameters of the
+% stcolor-driver. If not run on ghostscript/stcolor, it prints
+% something like a color-chart.
+
+% use either existing STCinfo-dictionary, retrieve new one or create dummy
+
+statusdict begin product end
+dup (Ghostscript) eq 1 index (Aladdin Ghostscript) eq or
+exch (AFPL Ghostscript) eq or{
+
+ currentdevice getdeviceprops .dicttomark
+ dup /Name get (stcolor) eq /STCi_onstc exch def
+ /STCinfo where {/STCinfo get exch pop} if
+ /STCinfo exch def
+
+}{
+
+ /STCinfo 10 dict def
+ STCinfo begin /Name (unknown) def end
+ /STCi_onstc false def
+
+}ifelse
+
+% Next Block are procedures to generate the color-triangles.
+% you may wish to separate them, just look ahead for the name
+% given in the next line to achieve that.
+% Begin: colortri_procedures
+
+% Plot the CIE-XY-triangle (or something like that)
+
+% /colortri_mat Conversion matrix RGB -> XYZ
+% /colortri_bg procedure, that takes X/Y-Values and delivers the
+% "background color" as RGB-Values, default is:
+% {pop pop 0.85 dup dup}
+
+% The default matrix was taken from:
+% Color spaces FAQ - David Bourgin
+% Date: 15/6/94 (items 5.3 and 6 updated)
+% Last update: 29/6/94
+
+ /colortri_mat [ % RGB -> CIE XYZitu601-1 (D65)
+ 0.4306 0.3415 0.1784
+ 0.2220 0.7067 0.0713
+ 0.0202 0.1295 0.9394
+ ] def
+
+ /colortri_bg {pop pop 0.85 dup dup} bind def
+
+
+% +---------------------------------------------------------------------+
+% | Besides from fixing bugs, nothing should be changed below this line |
+% +---------------------------------------------------------------------+
+
+
+% Arbitrary operation on a pair of vectors, *CHANGES* 1st.
+% invoke: Vaccu Vop op vop
+ /vop {
+ bind 0 1 3 index length 1 sub {
+ 3 index 1 index get 3 index 2 index get 3 index exec 4 index 3 1 roll put
+ } for pop pop
+ } bind def
+
+ /vsub { {sub} vop } bind def % subtract two vectors
+ /vmul { {mul} vop } bind def % multiply two vectors
+
+% Compute sum of vectors elements
+ /vsum {0.0 exch{add}forall} bind def
+
+
+% Sum up products of elements
+ /veqn { [ 3 -1 roll {} forall ] exch vmul vsum } bind def
+
+% Find index of |maximum| in array
+ /imax {
+ dup 0 get abs 0 exch % array i v[i]
+ 1 1 4 index length 1 sub {
+ 3 index 1 index get abs dup 3 index gt {4 2 roll}if pop pop
+ } for
+ 3 -1 roll pop
+ } bind def
+
+% Procedure to *CHANGE* RGB-Values into XYZ-Values
+ /rgb2xyz {
+ 0 3 6 { colortri_mat exch 3 getinterval 1 index veqn exch } for astore
+ } bind def
+
+% Procedure to *CHANGE* transform rgb->xy
+ /rgb2xy {
+ rgb2xyz
+ dup 0 get 1 index 1 get 2 index vsum % XYZ X Y sum
+ dup 0 ne {
+ exch 1 index div 3 1 roll div % XYZ y x
+ 2 index exch 0 exch put % xYZ y
+ 1 index exch 1 exch put % xyZ
+ }{
+ pop pop pop dup 0 0 put dup 0 1 put
+ } ifelse
+ 0 2 getinterval
+ } bind def
+
+% So here we go with our procedure
+
+/colortri { %Usage: box #pixels
+ save
+ 1 index type /arraytype eq {exch 8}{3 1 roll} ifelse % Default scale
+ /colortri_scale exch def
+ /colortri_box exch def
+
+
+% Prepare some useful constants for xy -> RGB conversion
+
+ /colsum [ % Array with column-sums
+ 0 1 2{0 exch 3 1 index 6 add{colortri_mat exch get add}for}for
+ ] def
+
+ /Xrow colortri_mat 0 3 getinterval def % two rows from colortri_mat
+ /Yrow colortri_mat 3 3 getinterval def
+
+% Avoid allocating new arrays
+ /xcoeff 3 array def
+ /ycoeff 3 array def
+
+% Procedure to derive RGB-Values form X,Y
+ /xy2rgb{ aload pop
+ dup dup dup ycoeff astore colsum vmul Yrow vsub imax
+ 3 index dup dup xcoeff astore colsum vmul Xrow vsub imax
+ 3 -1 roll 1 index 1 index gt{
+ xcoeff ycoeff /xcoeff exch def /ycoeff exch def pop 3 -1 roll pop
+ }{
+ 3 1 roll pop pop
+ } ifelse
+ 1e-6 lt { % No Pivot ?
+ pop colortri_bg xcoeff astore pop
+ }{ % Have a Pivot
+ dup ycoeff exch get neg
+ 0 1 2 { dup ycoeff exch get 2 index div ycoeff 3 1 roll put} for
+ pop ycoeff 1 index 0 put
+
+ xcoeff 1 index get
+ 0 1 2 {
+ ycoeff 1 index get 2 index mul xcoeff 2 index get add
+ xcoeff 3 1 roll put
+ } for
+ pop xcoeff 1 index 0 put
+ xcoeff imax 1e-6 lt { % no Pivot ?
+ pop pop colortri_bg xcoeff astore pop
+ }{
+ dup 2 index or 3 exch sub
+ xcoeff 1 index get xcoeff 3 index get div neg
+ xcoeff exch 3 index exch put
+ xcoeff 1 index 1 put
+ ycoeff exch get ycoeff 2 index get xcoeff 4 -1 roll get mul add
+ xcoeff 3 1 roll put
+ 0 1 2 {
+ xcoeff exch get dup -0.0015 lt exch 1.0015 gt or {
+ colortri_bg xcoeff astore dup exit
+ } if
+ } for
+ pop pop xcoeff
+ } ifelse
+ } ifelse
+ } bind def
+
+% Compute the displayed range
+ [ 1 1 1 ] rgb2xy
+ dup 0 get /colortri_x0 exch def /colortri_dx colortri_x0 def
+ 1 get /colortri_y0 exch def /colortri_dy colortri_y0 def
+ [[0 0 1][0 1 0][0 1 1][1 0 0][1 0 1][1 1 0]] {
+ rgb2xy
+ dup 0 get
+ dup colortri_x0 lt {/colortri_x0 1 index def}if
+ dup colortri_dx gt {/colortri_dx 1 index def}if
+ pop 1 get
+ dup colortri_y0 lt {/colortri_y0 1 index def}if
+ dup colortri_dy gt {/colortri_dy 1 index def}if
+ pop
+ } forall
+ colortri_dx colortri_x0 sub /colortri_dx exch def
+ colortri_dy colortri_y0 sub /colortri_dy exch def
+%
+
+% determine the scale
+ colortri_box 2 get colortri_box 0 get sub colortri_dx div % fx
+ colortri_box 3 get colortri_box 1 get sub colortri_dy div % fx fy
+ gt { % fy limits
+ colortri_box 3 get colortri_box 1 get sub
+ dup colortri_dx mul colortri_dy div exch
+ }{ % fx limits
+ colortri_box 2 get colortri_box 0 get sub
+ dup colortri_dy mul colortri_dx div
+ } ifelse
+ dtransform abs colortri_scale div cvi /colortri_ny exch def
+ abs colortri_scale div cvi /colortri_nx exch def
+ colortri_nx colortri_scale mul colortri_ny colortri_scale mul
+ idtransform abs exch abs exch
+ colortri_box 0 get colortri_box 2 get 1 index sub 3 index sub 2 div add
+ colortri_box 1 get colortri_box 3 get 1 index sub 3 index sub 2 div add
+ transform .5 add cvi exch .5 add cvi exch itransform
+ translate scale
+
+% String & indices
+ /colortri_tmp colortri_nx 3 mul string def
+ /colortri_dx colortri_dx colortri_nx 1 sub div def
+ /colortri_dy colortri_dy colortri_ny 1 sub div def
+ /colortri_xy [ colortri_x0 colortri_y0 ] def
+ /colortri_ie colortri_tmp length 3 sub def
+
+ colortri_nx colortri_ny 8 [ colortri_nx 0 0 colortri_ny 0 0 ]
+ {
+ colortri_xy 0 colortri_x0 put
+ 0 3 colortri_ie {
+ colortri_tmp exch % buf ir
+ colortri_xy xy2rgb % buf ir rgb buf ib
+ 2 index 2 index 2 add 2 index 2 get 255 mul cvi put
+ 2 index 2 index 1 add 2 index 1 get 255 mul cvi put
+ 0 get 255 mul cvi put
+ colortri_xy dup 0 exch 0 get colortri_dx add put
+ }for
+ colortri_xy dup 1 exch 1 get colortri_dy add put
+ colortri_tmp
+ } bind
+ false 3 colorimage
+ restore
+} bind def
+
+% [ newpath clippath pathbbox ] colortri showpage % standalone usage
+
+% End: colortri_procedures
+
+% The next section is a group of procedures, that I for myself
+% do no more fully understand, but they do the Job.
+
+% Begin: stcinfo_procedures_1
+
+% fetch a parameter from the dictionary
+/STCiget { STCinfo exch get } bind def
+
+% action upon ProcessColorModel
+/STCimode {
+ /ProcessColorModel STCiget dup
+ /DeviceCMYK eq{pop 2}{/DeviceRGB eq{1}{0}ifelse}ifelse get exec
+} bind def
+
+% print given number of blanks
+/STCipspace {
+ dup 0 gt{ 1 exch 1 exch { pop ( ) print}for }{ pop } ifelse
+} bind def
+
+% print right or left-justified text
+/STCiprint {
+ dup 0 gt { dup 2 index length sub STCipspace } if
+ 1 index print
+ dup 0 lt { neg dup 2 index length sub STCipspace } if
+ pop pop
+} bind def
+
+% floating-point to fixed-length-string conversion
+
+/STCicvs { % number -> string
+
+% Prepare the result
+ 8 string dup 0 ( ) putinterval
+ exch
+
+% Make it unsigned
+ dup 0 lt {neg(-)}{( )}ifelse 0 get exch
+
+ dup 1000 lt 1 index 0 eq 2 index 0.001 ge or and { % floating point
+ (e+) 0
+ }{ % engineering
+ 0 {
+ 1 index 1000.0 ge
+ {3 add exch 1000 div exch}
+ {1 index 1 lt {3 sub exch 1000 mul exch}{exit}ifelse}
+ ifelse
+ }loop
+ dup 0 lt {neg(e-)}{(e+)}ifelse exch
+ }ifelse
+
+% string sign num esig e
+
+% always up to three Integer Digits plus sign
+ 2 index cvi 3 { % string sign num esig e int ind
+ 1 index 10 div cvi dup 10 mul 3 index exch sub cvi
+ (0123456789) exch get 8 index exch 3 index exch put
+ 3 -2 roll 1 sub exch pop dup 0 eq 2 index 0 eq or {exit} if
+ } loop exch pop % string sign num esig e ind
+ 5 index exch 6 -1 roll put % string num esig e
+
+% print either fraction or exponent
+ dup 0 eq { pop pop dup cvi sub % String fraction
+
+ dup 0.0 ne { % Fraction present
+ 0.0005 add 1 index 4 (.) putinterval
+ 5 1 7 { % string frac ind
+ exch 10 mul dup cvi exch 1 index sub % string ind ic nfrac
+ exch (0123456789) exch get 3 -1 roll % string nfrac chr ind
+ exch 3 index 3 1 roll put
+ } for
+ } if
+ pop
+
+ }{ 3 -1 roll pop % string esig e
+
+ exch 2 index exch 4 exch putinterval
+ 7 -1 6 { % string n i
+ 1 index 10 div cvi dup 10 mul 3 index exch sub cvi % string n i n/10
+ (0123456789) exch get 4 index exch 3 index exch put
+ exch pop exch pop
+ } for
+ pop
+ } ifelse
+
+} bind def
+
+% compute colorvalue-steps from transfer & coding
+/STCisteps { % xfer, coding => X-values, Y-Values
+% 2^nbits
+ 2 /BitsPerComponent STCiget dup 11 gt { pop 11 } if exp cvi
+
+% X & Y - Arrays (stack: xv:4 yv:3 xfer:2 coding:1 2^ni:0)
+ dup 1 add array 1 index array 5 2 roll
+
+% compute GS-Color-Value according to the coding-array
+
+ 1 index null eq { % no coding present
+
+ 0 1 2 index 1 sub {
+ dup 6 index exch dup 4 index div put
+ 4 index exch dup 3 index 1 sub div put
+ } for
+
+ }{ % coding-array given
+
+ 1.0 1 index 1 sub div % y step
+ 0 % current index
+ 0 1 4 index 1 sub { % over indices
+ dup 3 index mul
+ {
+ dup 3 index 1 add dup 8 index length ge {pop pop exit} if % i y
+ 7 index exch get le {exit} if
+ 2 index 1 add 3 1 roll 4 -1 roll pop
+ } loop
+ 5 index 3 index get sub
+ 5 index 3 index 1 add get 6 index 4 index get sub div
+ 2 index add 5 index length 1 sub div
+ 2 copy exch dup 0 eq {
+ 10 index exch 0.0 put pop
+ }{
+ dup 10 index exch 1 sub get 3 -1 roll add 2 div
+ 10 index 3 1 roll put
+ }ifelse
+ 7 index 3 1 roll put
+ } for % over indices
+ pop pop
+ } ifelse
+ 4 index 1 index 1.0 put
+
+% Replace the raw y-values by those computed from the transfer-array
+
+ 0 1 2 index 1 sub { % over indices, 2nd
+ dup 5 index exch get
+ dup 5 index length 1 sub mul cvi % -> iy
+ 5 index 1 index get
+ 1 index 1 add 7 index length lt {
+ dup 7 index 3 index 1 add get exch sub
+ 3 index 3 index 9 index length 1 sub div sub mul
+ 7 index length 1 sub mul add
+ } if
+ exch pop exch pop 5 index 3 1 roll put
+ } for % over indices, 2nd
+
+ pop pop pop
+} bind def
+
+/STCibar { % Window X-Values proc => Window
+ 0 1 3 index length 2 sub {
+ dup 3 index exch get exch
+ 1 add 3 index exch get
+ dup 2 index add 2 div 3 index exec % Color to average
+ 4 index 2 get 5 index 0 get sub exch 1 index mul 5 index 0 get add 3 1 roll
+ mul 4 index 0 get add 4 index 3 get 5 index 1 get
+ newpath
+ 2 index 1 index moveto
+ 3 index 1 index lineto
+ 3 index 2 index lineto
+ 2 index 2 index lineto
+ closepath fill
+ pop pop pop pop
+ } for
+ pop pop
+ 0 setgray
+ newpath
+ dup 0 get 1 index 1 get moveto
+ dup 2 get 1 index 1 get lineto
+ dup 2 get 1 index 3 get lineto
+ dup 0 get 1 index 3 get lineto
+ closepath stroke
+ pop
+} bind def
+
+% End: stcinfo_procedures_1
+
+% Begin: stcinfo_preparation
+
+% Compute used area from clippath
+
+/STCi_clip [
+ newpath clippath pathbbox
+ 2 sub 4 1 roll 2 sub 4 1 roll 2 add 4 1 roll 2 add 4 1 roll
+] def
+
+%
+% Perpare the texual messages, assume no stcolor if this fails
+%
+{
+ /STCi_stopped % A Special Mark
+
+% Textual Parameters (an array of pairs of strings)
+ /STCi_l1 0 def
+ /STCi_l2 0 def
+ /STCi_text [
+% Driver-Name & Version
+ (Parameters of)
+ /Name STCiget length /Version STCiget length add 1 add string
+ dup 0 /Name STCiget putinterval dup /Name STCiget length (-)putinterval
+ dup /Name STCiget length 1 add /Version STCiget putinterval
+% Dithering-Algorithm
+ (Dithering)
+ /Dithering STCiget
+ [{( \(Monochrome\))}{( \(RGB\))}{( \(CMYK\))}] STCimode
+ dup length 2 index length add string exch 1 index exch
+ 3 index length exch putinterval dup 3 1 roll exch 0 exch putinterval
+% Flags for the algorithm
+ (Flag4-0) 5 string
+ dup 0 /Flag4 STCiget {(T)}{(f)} ifelse putinterval
+ dup 1 /Flag3 STCiget {(T)}{(f)} ifelse putinterval
+ dup 2 /Flag2 STCiget {(T)}{(f)} ifelse putinterval
+ dup 3 /Flag1 STCiget {(T)}{(f)} ifelse putinterval
+ dup 4 /Flag0 STCiget {(T)}{(f)} ifelse putinterval
+
+% Bits Per Pixel & Bits Per Component
+ (BitsPerPixel) 10 string % (nn -> nxnn)
+ /BitsPerPixel STCiget 1 index cvs length % string used
+ dup 2 index exch ( -> ) putinterval 4 add dup 2 add exch 2 index exch
+ [{(1x)}{(3x)}{(4x)}] STCimode putinterval % String used
+ /BitsPerComponent STCiget 2 index 2 index 2 getinterval cvs length add
+ 0 exch getinterval
+
+ () ()
+% ColorAdjustMatrix
+ (ColorAdjustMatrix)
+ /ColorAdjustMatrix STCiget dup null eq {
+ pop (default)
+ }{
+ { STCicvs } forall
+ [{ % Monochrome
+ 26 string
+ dup 0 6 -1 roll putinterval dup 8 ( ) putinterval
+ dup 9 5 -1 roll putinterval dup 17 ( ) putinterval
+ dup 18 4 -1 roll putinterval
+ }{ % RGB
+ 26 string
+ dup 0 12 -1 roll putinterval dup 8 ( ) putinterval
+ dup 9 11 -1 roll putinterval dup 17 ( ) putinterval
+ dup 18 10 -1 roll putinterval
+
+ () 26 string
+ dup 0 11 -1 roll putinterval dup 8 ( ) putinterval
+ dup 9 10 -1 roll putinterval dup 17 ( ) putinterval
+ dup 18 9 -1 roll putinterval
+
+ () 26 string
+ dup 0 10 -1 roll putinterval dup 8 ( ) putinterval
+ dup 9 9 -1 roll putinterval dup 17 ( ) putinterval
+ dup 18 8 -1 roll putinterval
+ }{
+ 35 string
+ dup 0 19 -1 roll putinterval dup 8 ( ) putinterval
+ dup 9 18 -1 roll putinterval dup 17 ( ) putinterval
+ dup 18 17 -1 roll putinterval dup 26 ( ) putinterval
+ dup 27 16 -1 roll putinterval
+
+ () 35 string
+ dup 0 17 -1 roll putinterval dup 8 ( ) putinterval
+ dup 9 16 -1 roll putinterval dup 17 ( ) putinterval
+ dup 18 15 -1 roll putinterval dup 26 ( ) putinterval
+ dup 27 14 -1 roll putinterval
+
+ () 35 string
+ dup 0 15 -1 roll putinterval dup 8 ( ) putinterval
+ dup 9 14 -1 roll putinterval dup 17 ( ) putinterval
+ dup 18 13 -1 roll putinterval dup 26 ( ) putinterval
+ dup 27 12 -1 roll putinterval
+
+ () 35 string
+ dup 0 13 -1 roll putinterval dup 8 ( ) putinterval
+ dup 9 12 -1 roll putinterval dup 17 ( ) putinterval
+ dup 18 11 -1 roll putinterval dup 26 ( ) putinterval
+ dup 27 10 -1 roll putinterval
+
+ }
+ ] STCimode
+ } ifelse
+ () ()
+
+% Printer Model
+ (Printer-Model) /Model STCiget
+
+% Resolution
+ (Resolution) 15 string % (nnnnnxnnnnn DpI)
+ /HWResolution STCiget 0 get cvi 1 index cvs length
+ dup 2 index exch (x) putinterval 1 add dup 2 index exch 5 getinterval
+ /HWResolution STCiget 1 get cvi exch cvs length add dup 2 index
+ exch ( DpI) putinterval 4 add 0 exch getinterval
+
+% HWsize holds entire Page in Pixels,
+% .HWMargins is [left,bottom,right,top] in Points
+ (Printed Area) 18 string % (nnnnnxnnnnn Pixel)
+ /HWSize STCiget 0 get /.HWMargins STCiget dup 0 get exch 2 get add
+ /HWResolution STCiget 0 get mul 72.0 div sub cvi 1 index cvs length
+ dup 2 index exch (x) putinterval 1 add dup 2 index exch 5 getinterval
+ /HWSize STCiget 1 get /.HWMargins STCiget dup 1 get exch 3 get add
+ /HWResolution STCiget 1 get mul 72.0 div sub cvi exch cvs length add
+ dup 2 index exch ( Pixel) putinterval 6 add 0 exch getinterval
+
+ () ()
+% WeaveMode
+ (Weave-Mode)
+ /noWeave STCiget {
+ (noWeave)
+ }{
+ /Microweave STCiget {(Microweave)}{(Softweave)}ifelse
+ }ifelse
+% Unidirectional
+ (Unidirectional) /Unidirectional STCiget {(ON)}{(off)} ifelse
+% Output coding
+ (OutputCode) /OutputCode STCiget
+% number of heads
+ (escp_Band) /escp_Band STCiget 3 string cvs
+ (escp_Width) /escp_Width STCiget 5 string cvs
+ (escp_Height) /escp_Height STCiget 5 string cvs
+ (escp_Top) /escp_Top STCiget 5 string cvs
+ (escp_Bottom) /escp_Bottom STCiget 5 string cvs
+ ] def
+
+%
+% compute the Proper X & Y-Arrays
+%
+ [{ % Monochrome
+ /Ktransfer STCiget /Kcoding STCiget STCisteps
+ /STCi_yv [ 3 -1 roll ] def
+ /STCi_xv [ 3 -1 roll ] def
+ /STCi_col [[0 0 0]] def
+ /STCi_set [{1.0 exch sub setgray}] def
+ }{ % RGB
+ /Rtransfer STCiget /Rcoding STCiget STCisteps
+ /Gtransfer STCiget /Gcoding STCiget STCisteps
+ /Btransfer STCiget /Bcoding STCiget STCisteps
+ exch 4 -1 roll 6 -1 roll exch 3 -1 roll
+ /STCi_xv [ 5 2 roll ] def
+ /STCi_yv [ 5 2 roll ] def
+ /STCi_col [[1 0 0] [0 1 0] [0 0 1]] def
+ /STCi_set [
+ {1.0 exch sub 1 exch dup setrgbcolor}
+ {1.0 exch sub dup 1 exch setrgbcolor}
+ {1.0 exch sub dup 1 setrgbcolor}
+ ] def
+ }{ % CMYK
+ /Ctransfer STCiget /Ccoding STCiget STCisteps
+ /Mtransfer STCiget /Mcoding STCiget STCisteps exch 3 1 roll
+ /Ytransfer STCiget /Ycoding STCiget STCisteps exch 4 1 roll
+ /Ktransfer STCiget /Kcoding STCiget STCisteps exch 5 1 roll
+ /STCi_yv [ 6 2 roll ] def
+ /STCi_xv [ 6 2 roll ] def
+ /STCi_col [[0 1 1] [1 0 1] [1.0 0.5 0.0] [0 0 0]] def
+ /STCi_set [
+ { 0 0 0 setcmykcolor }
+ { 0 exch 0 0 setcmykcolor }
+ { 0 exch 0 exch 0 setcmykcolor }
+ { 0 exch 0 exch 0 exch setcmykcolor }
+ ] def
+ }
+ ]STCimode
+
+} stopped
+
+{ {/STCi_stopped eq {exit}if}loop true}
+{ {/STCi_stopped eq {exit}if}loop false} ifelse
+
+% End: stcinfo_preparation
+
+% The Next section does the real job
+
+% Begin: stcinfo_execution
+{
+ (%%[ stcinfo.ps: currentdevice is not supported -> colortri ]%%\n) print
+ STCi_clip colortri % The default action
+
+}{
+%
+% Print the text
+%
+ 0 2 STCi_text length 2 sub { dup 1 add exch
+ STCi_text exch get length dup STCi_l1 gt{/STCi_l1 exch def}{pop}ifelse
+ STCi_text exch get length dup STCi_l2 gt{/STCi_l2 exch def}{pop}ifelse
+ } for
+ /STCi_l2 STCi_l2 neg def
+ 0 2 STCi_text length 2 sub {
+ dup 1 add STCi_text exch get exch STCi_text exch get
+ 1 index length 0 gt {
+ dup STCi_l1 STCiprint length 0 gt {(: )}{( )}ifelse print print
+ }{
+ pop pop
+ } ifelse
+ (\n) print
+ } for
+%
+% Deactivate a present ColorAdjust Matrix, if any
+%
+ /ColorAdjustMatrix STCiget null ne STCi_onstc and {
+ mark
+ /ColorAdjustMatrix null
+ currentdevice putdeviceprops pop
+ } if
+%
+% "Show" the text
+%
+ /Times-Roman findfont 10 scalefont setfont
+ /STCi_l1 0 def
+ 0 2 STCi_text length 2 sub {
+ STCi_text exch get stringwidth pop dup STCi_l1 gt {
+ /STCi_l1 exch def
+ }{
+ pop
+ } ifelse
+ } for
+ STCi_l1 STCi_clip 0 get add /STCi_l1 exch def
+
+ STCi_clip 3 get 12 sub
+ 0 2 STCi_text length 2 sub {
+ STCi_text exch get dup length 0 gt {
+ dup stringwidth pop STCi_l1 exch sub 2 index moveto show
+ }{
+ pop
+ } ifelse
+ 12 sub
+ } for
+ pop
+
+ /Courier findfont 10 scalefont setfont
+ /STCi_l2 0 def
+ 1 2 STCi_text length 1 sub {
+ STCi_text exch get stringwidth pop dup STCi_l2 gt {
+ /STCi_l2 exch def
+ }{
+ pop
+ } ifelse
+ } for
+
+ STCi_clip 3 get 12 sub
+ 1 2 STCi_text length 1 sub {
+ STCi_text exch get dup length 0 gt {
+ STCi_l1 12 add 2 index moveto show
+ }{
+ pop
+ } ifelse
+ 12 sub
+ } for
+ pop
+
+%
+% compute the space for the graph-window
+%
+ STCi_l1 12 add STCi_l2 add 12 add dup STCi_clip 2 get exch sub % Extend
+ [ 3 -1 roll dup 3 index add STCi_clip 3 get dup 5 index sub 3 1 roll ]
+ /STCi_win exch def /STCi_l1 exch def
+
+% The "Axis"
+ newpath
+ STCi_win 0 get STCi_win 1 get 14 add moveto
+ STCi_win 2 get STCi_win 1 get 14 add lineto stroke
+
+ STCi_win 0 get 14 add STCi_win 1 get moveto
+ STCi_win 0 get 14 add STCi_win 3 get lineto stroke
+
+% The Labels
+ /Times-Roman findfont 10 scalefont setfont
+ (Postscript-color) dup stringwidth pop
+ STCi_win 2 get STCi_win 0 get sub 14 sub 1 index sub 2 div exch pop
+ STCi_win 0 get add 14 add STCi_win 1 get 4 add moveto show
+
+ gsave
+ STCi_win 0 get 10 add STCi_win 1 get 14 add translate 90 rotate
+ (Device-color) dup stringwidth pop
+ STCi_win 3 get STCi_win 1 get sub 14 sub 1 index sub 2 div exch pop
+ 0 moveto show
+ grestore
+
+% The Graphs
+ gsave
+ STCi_win 0 get 14 add STCi_win 1 get 14 add
+ STCi_win 2 get 2 index sub STCi_win 3 get 2 index sub
+ 4 2 roll translate
+ STCi_col 0 1 2 index length 1 sub {
+ 1 index 1 index get aload pop setrgbcolor
+ STCi_xv 1 index get STCi_yv 3 -1 roll get
+ newpath
+ 1 index 0 get 5 index mul 1 index 0 get 5 index mul moveto
+ 1 index 1 get 5 index mul 1 index 0 get 5 index mul lineto
+ 1 1 2 index length 1 sub {
+ 2 index 1 index get 6 index mul
+ 2 index 2 index get 6 index mul lineto
+ 2 index 1 index 1 add get 6 index mul
+ 2 index 2 index get 6 index mul lineto
+ pop
+ } for
+ stroke pop pop
+ } for
+ pop pop pop
+ grestore
+
+%
+% Find lowest Y from Text or graph
+%
+ STCi_win 1 get STCi_clip 3 get STCi_text length 2 div 12 mul sub
+ dup 2 index gt { pop } { exch pop } ifelse 12 sub
+
+%
+% compute the upper bar-window
+%
+ /STCi_win [
+ STCi_clip 0 get 4 -1 roll 36 sub STCi_clip 2 get 1 index 36 add
+ ] def
+
+%
+% Draw the required number of graphs
+%
+ [{ % Monochrome
+ STCi_win STCi_xv 0 get {setgray} STCibar
+ }{ % RGB
+ STCi_win STCi_xv 0 get {0 0 setrgbcolor} STCibar
+ STCi_win dup 1 exch 1 get 47 sub put
+ STCi_win dup 3 exch 3 get 47 sub put
+ STCi_win STCi_xv 1 get {0 0 3 1 roll setrgbcolor} STCibar
+ STCi_win dup 1 exch 1 get 47 sub put
+ STCi_win dup 3 exch 3 get 47 sub put
+ STCi_win STCi_xv 2 get {0 0 3 2 roll setrgbcolor} STCibar
+ }{ % CMYK
+ STCi_win STCi_xv 0 get {0 0 0 setcmykcolor} STCibar
+ STCi_win dup 1 exch 1 get 47 sub put
+ STCi_win dup 3 exch 3 get 47 sub put
+ STCi_win STCi_xv 1 get {0 0 0 4 1 roll setcmykcolor} STCibar
+ STCi_win dup 1 exch 1 get 47 sub put
+ STCi_win dup 3 exch 3 get 47 sub put
+ STCi_win STCi_xv 2 get {0 0 0 4 2 roll setcmykcolor} STCibar
+ STCi_win dup 1 exch 1 get 47 sub put
+ STCi_win dup 3 exch 3 get 47 sub put
+ STCi_win STCi_xv 3 get {0 0 0 4 3 roll setcmykcolor} STCibar
+ }
+ ] STCimode
+
+ STCi_win 1 STCi_clip 1 get put
+ STCi_win dup 3 exch 3 get 47 sub put
+
+%
+% Plot either one or two Color-Triangles
+%
+ /ColorAdjustMatrix STCiget null ne STCi_onstc and {
+ STCi_win 0 get STCi_win 2 get add 2 div
+ [STCi_win 0 get STCi_win 1 get 3 index STCi_win 3 get ] colortri
+ mark /ColorAdjustMatrix dup STCiget currentdevice putdeviceprops pop
+ [1 index STCi_win 1 get STCi_win 2 get STCi_win 3 get ] colortri
+ pop
+ }{
+ STCi_win colortri
+ } ifelse
+ newpath clippath stroke
+} ifelse
+showpage
diff --git a/Master/tlpkg/tlgs/lib/stcolor.ps b/Master/tlpkg/tlgs/lib/stcolor.ps
new file mode 100644
index 00000000000..c4535afce84
--- /dev/null
+++ b/Master/tlpkg/tlgs/lib/stcolor.ps
@@ -0,0 +1,171 @@
+% Copyright (C) 1995 Aladdin Enterprises. All rights reserved
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% For more information about licensing, please refer to
+% http://www.ghostscript.com/licensing/. For information on
+% commercial licensing, go to http://www.artifex.com/licensing/ or
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
+% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
+
+% $Id: stcolor.ps 6300 2005-12-28 19:56:24Z giles $
+% stcolor.ps
+% Epson Stylus-Color Printer-Driver
+
+% The purpose of this file is to configure the stcolor-printer driver
+
+%
+% It is useless and dangerous to interpret the following code with anything
+% else than Ghostscript, so this condition is verified first. If this fails
+% a message is send to the output. If this message bothers you, remove it,
+% but I prefer to know why the device-setup failed.
+
+statusdict begin product end
+dup (Ghostscript) eq 1 index (Aladdin Ghostscript) eq or
+exch (AFPL Ghostscript) eq or{
+
+% fetch the current device-parameters this is specific for Ghostscript.
+
+ /STCold currentdevice getdeviceprops .dicttomark def
+
+% Any Ghostscript-Driver has a Name, verify that the selected device is
+% stcolor, otherwise nothing than another message will be produced.
+
+ STCold /Name get (stcolor) eq {
+
+%
+% The main thing this file does, is to establish transfer-functions.
+% Here are two predefined arrays for 360x360Dpi and for 720x720DpI.
+% If resolution is 360x720 or 720x360 the average is used. You may
+% want to define other arrays here.
+%
+
+ /STCdeftransfer [ 0.0 1.0 ] def
+
+ /STCKtransfer360 [
+ 0.0000 0.0034 0.0185 0.0377 0.0574 0.0769 0.0952 0.1147
+ 0.1337 0.1540 0.1759 0.1985 0.2209 0.2457 0.2706 0.2949
+ 0.3209 0.3496 0.3820 0.4145 0.4505 0.4907 0.5344 0.5840
+ 0.6445 0.7093 0.8154 0.9816 0.9983 0.9988 0.9994 1.0000
+ ] def
+
+ /STCKtransfer720 [
+ 0.0000 0.0011 0.0079 0.0151 0.0217 0.0287 0.0354 0.0425
+ 0.0492 0.0562 0.0633 0.0700 0.0766 0.0835 0.0900 0.0975
+ 0.1054 0.1147 0.1243 0.1364 0.1489 0.1641 0.1833 0.2012
+ 0.2217 0.2492 0.2814 0.3139 0.3487 0.3996 0.4527 0.5195
+ ] def
+
+% compute the resolution
+
+ STCold /HWResolution get dup
+ 0 get exch 1 get mul sqrt /STCdpi exch def
+
+% pick the colormodel
+ STCold /ProcessColorModel get /STCcolor exch def
+
+
+ mark % prepare stack for "putdeviceprops"
+
+% warn for BitsPerPixel=30 with fsrgb
+ STCcolor /DeviceRGB eq STCold /BitsPerPixel get 32 eq and
+ {
+ (%%[ stcolor.ps: inefficient RGB-setup, recommend BitsPerPixel=24 ]%%\n)
+ print
+ } if
+
+% if the Dithering-Method is default (gscmyk), change it to fscmyk
+% this is achieved by pushing a name/value-pair onto the stack
+% if the selected algorithm uses another ProcessColorModel, it is necessary
+% to change the Value of STCcolor according to the new algorithm.
+
+ STCold /Dithering get (gscmyk) eq
+ {
+ /Dithering (hscmyk) % preferred dithering-method
+ } if % might be necessary to change STCcolor too
+
+%
+% select the array according to the resolution
+%
+ STCdpi 359.0 lt
+ { STCdeftransfer }
+ { STCdpi 361.0 lt
+ { STCKtransfer360 }
+ { STCdpi 719.0 gt
+ { STCKtransfer720 }
+ {
+ STCKtransfer360 length STCKtransfer720 length eq
+ {
+ 0 1 STCKtransfer360 length 1 sub
+ {
+ dup dup
+ STCKtransfer360 exch get
+ exch STCKtransfer720 exch get
+ add 2.0 div
+ STCKtransfer360 3 1 roll put
+ } for
+ }if
+ STCKtransfer360
+ } ifelse
+ }ifelse
+ } ifelse
+ /STCtransfer exch def
+
+%
+% Add the arrays. With Version 1.17 and above, it seems to be
+% a good idea, to use the transfer-arrays as coding-arrays too.
+%
+
+%
+% RGB-Model requires inversion of the transfer-arrays
+%
+ STCcolor /DeviceRGB eq
+ {
+ /RGBtransfer STCtransfer length array def
+ 0 1 STCtransfer length 1 sub
+ {
+ dup RGBtransfer length 1 sub exch sub exch
+ STCtransfer exch get 1.0 exch sub
+ RGBtransfer 3 1 roll put
+ } for
+
+ /Rtransfer RGBtransfer
+ /Gtransfer RGBtransfer
+ /Btransfer RGBtransfer
+
+ /Rcoding RGBtransfer
+ /Gcoding RGBtransfer
+ /Bcoding RGBtransfer
+
+ }{
+
+ /Ctransfer STCtransfer
+ /Mtransfer STCtransfer
+ /Ytransfer STCtransfer
+ /Ktransfer STCtransfer
+
+ /Ccoding STCtransfer
+ /Mcoding STCtransfer
+ /Ycoding STCtransfer
+ /Kcoding STCtransfer
+
+ } ifelse
+
+ counttomark 0 ne
+ {currentdevice putdeviceprops pop}{cleartomark}ifelse
+
+% decativate predefined correction
+
+ {} dup dup currenttransfer setcolortransfer
+
+ }{
+ (%%[ stcolor.ps: currentdevice is not stcolor - ignored ]%%\n) print
+ } ifelse
+}{
+ (%%[ stcolor.ps: not interpreted by AFPL Ghostscript - ignored ]%%\n) print
+} ifelse