JDK-8036930 : Type1 font not loaded by java.awt.Font.createFont
  • Type: Bug
  • Component: client-libs
  • Sub-Component: 2d
  • Affected Version: 7u51
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: windows_7
  • CPU: x86_64
  • Submitted: 2014-03-04
  • Updated: 2015-09-29
  • Resolved: 2014-03-12
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 8 JDK 9
8u60Fixed 9 b08Fixed
Description
FULL PRODUCT VERSION :
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) Client VM (build 24.51-b03, mixed mode, sharing)

ADDITIONAL OS VERSION INFORMATION :
6.1.7601

A DESCRIPTION OF THE PROBLEM :
The attached test program tries to load a Type1 font through java.awt.Font#createFont() and verifies its validity using java.awt.Font#getGlyphCount(). The expected glyph count is 228 and was correctly returned by java versions up to and including 1.6u43 and 1.7u17. Since JRE 1.6u45 resp. 1.7.u21, the font is not loaded and the reported number of glyphs is 1. The problem seems to be in the native fontmanager.dll (java 1.6) resp. t2k.dll (java 1.7). Manually exchanging the dll through an older version in the installed JRE "resolves" the issue.

REGRESSION.  Last worked in version 7u17

ADDITIONAL REGRESSION INFORMATION: 
java version "1.7.0_17"
Java(TM) SE Runtime Environment (build 1.7.0_17-b02)
Java HotSpot(TM) Client VM (build 23.7-b01, mixed mode)

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Run the attached test program and compare results of jre 1.6u43 x 1.6u45, resp. jre 1.7u17 x 1.7u21 and later

EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
AWT font reports 228 glyphs and can be rendered on a Graphics2D
ACTUAL -
AWT font reports 1 glyph and cannot be rendered

REPRODUCIBILITY :
This bug can be reproduced always.

---------- BEGIN SOURCE ----------
import java.awt.Font;
import java.awt.FontFormatException;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;

/**
 * 
 *
 * @author Petr Slaby
 **/
public class Type1Test {
    private final static String DATA = 
                    "%!FontType1-1.0 Frutiger-LightCn 001.000\n"
                     + "10 dict begin\n"
                     + "/FontInfo 10 dict dup begin\n"
                     + "/version (001.000) readonly def\n"
                     + "/Notice (Copyright (c) 1991 Adobe Systems Incorporated.  All Rights Reserved.Frutiger is a trademark of Linotype-Hell AG and/or its subsidiaries.) readonly def\n"
                     + "/FullName (Frutiger 47 Light Condensed) readonly def\n"
                     + "/FamilyName (Frutiger) readonly def\n"
                     + "/Weight (Light) readonly def\n"
                     + "/ItalicAngle 0 def\n"
                     + "/isFixedPitch false def\n"
                     + "/UnderlinePosition -100 def\n"
                     + "/UnderlineThickness 50 def\n"
                     + "end readonly def\n"
                     + "/FontName /Frutiger-LightCn def\n"
                     + "/PaintType 0 def\n"
                     + "/FontType 1 def\n"
                     + "/FontMatrix [0.001 0 0 0.001 0 0] readonly def\n"
                     + "/FontBBox [-100 -250 1000 913] readonly def\n"
                     + "/StrokeWidth 0 def\n"
                     + "/Encoding 256 array\n"
                     + "0 1 255 {1 index exch /.notdef put} for\n"
                     + "dup 32 /space put\n"
                     + "dup 33 /exclam put\n"
                     + "dup 34 /quotedbl put\n"
                     + "dup 35 /numbersign put\n"
                     + "dup 36 /dollar put\n"
                     + "dup 37 /percent put\n"
                     + "dup 38 /ampersand put\n"
                     + "dup 39 /quoteright put\n"
                     + "dup 40 /parenleft put\n"
                     + "dup 41 /parenright put\n"
                     + "dup 42 /asterisk put\n"
                     + "dup 43 /plus put\n"
                     + "dup 44 /comma put\n"
                     + "dup 45 /hyphen put\n"
                     + "dup 46 /period put\n"
                     + "dup 47 /slash put\n"
                     + "dup 48 /zero put\n"
                     + "dup 49 /one put\n"
                     + "dup 50 /two put\n"
                     + "dup 51 /three put\n"
                     + "dup 52 /four put\n"
                     + "dup 53 /five put\n"
                     + "dup 54 /six put\n"
                     + "dup 55 /seven put\n"
                     + "dup 56 /eight put\n"
                     + "dup 57 /nine put\n"
                     + "dup 58 /colon put\n"
                     + "dup 59 /semicolon put\n"
                     + "dup 60 /less put\n"
                     + "dup 61 /equal put\n"
                     + "dup 62 /greater put\n"
                     + "dup 63 /question put\n"
                     + "dup 64 /at put\n"
                     + "dup 65 /A put\n"
                     + "dup 66 /B put\n"
                     + "dup 67 /C put\n"
                     + "dup 68 /D put\n"
                     + "dup 69 /E put\n"
                     + "dup 70 /F put\n"
                     + "dup 71 /G put\n"
                     + "dup 72 /H put\n"
                     + "dup 73 /I put\n"
                     + "dup 74 /J put\n"
                     + "dup 75 /K put\n"
                     + "dup 76 /L put\n"
                     + "dup 77 /M put\n"
                     + "dup 78 /N put\n"
                     + "dup 79 /O put\n"
                     + "dup 80 /P put\n"
                     + "dup 81 /Q put\n"
                     + "dup 82 /R put\n"
                     + "dup 83 /S put\n"
                     + "dup 84 /T put\n"
                     + "dup 85 /U put\n"
                     + "dup 86 /V put\n"
                     + "dup 87 /W put\n"
                     + "dup 88 /X put\n"
                     + "dup 89 /Y put\n"
                     + "dup 90 /Z put\n"
                     + "dup 91 /bracketleft put\n"
                     + "dup 92 /backslash put\n"
                     + "dup 93 /bracketright put\n"
                     + "dup 94 /asciicircum put\n"
                     + "dup 95 /underscore put\n"
                     + "dup 96 /quoteleft put\n"
                     + "dup 97 /a put\n"
                     + "dup 98 /b put\n"
                     + "dup 99 /c put\n"
                     + "dup 100 /d put\n"
                     + "dup 101 /e put\n"
                     + "dup 102 /f put\n"
                     + "dup 103 /g put\n"
                     + "dup 104 /h put\n"
                     + "dup 105 /i put\n"
                     + "dup 106 /j put\n"
                     + "dup 107 /k put\n"
                     + "dup 108 /l put\n"
                     + "dup 109 /m put\n"
                     + "dup 110 /n put\n"
                     + "dup 111 /o put\n"
                     + "dup 112 /p put\n"
                     + "dup 113 /q put\n"
                     + "dup 114 /r put\n"
                     + "dup 115 /s put\n"
                     + "dup 116 /t put\n"
                     + "dup 117 /u put\n"
                     + "dup 118 /v put\n"
                     + "dup 119 /w put\n"
                     + "dup 120 /x put\n"
                     + "dup 121 /y put\n"
                     + "dup 122 /z put\n"
                     + "dup 123 /braceleft put\n"
                     + "dup 124 /bar put\n"
                     + "dup 125 /braceright put\n"
                     + "dup 126 /asciitilde put\n"
                     + "dup 161 /exclamdown put\n"
                     + "dup 162 /cent put\n"
                     + "dup 163 /sterling put\n"
                     + "dup 164 /fraction put\n"
                     + "dup 165 /yen put\n"
                     + "dup 166 /florin put\n"
                     + "dup 167 /section put\n"
                     + "dup 168 /currency put\n"
                     + "dup 169 /quotesingle put\n"
                     + "dup 170 /quotedblleft put\n"
                     + "dup 171 /guillemotleft put\n"
                     + "dup 172 /guilsinglleft put\n"
                     + "dup 173 /guilsinglright put\n"
                     + "dup 174 /fi put\n"
                     + "dup 175 /fl put\n"
                     + "dup 177 /endash put\n"
                     + "dup 178 /dagger put\n"
                     + "dup 179 /daggerdbl put\n"
                     + "dup 180 /periodcentered put\n"
                     + "dup 182 /paragraph put\n"
                     + "dup 183 /bullet put\n"
                     + "dup 184 /quotesinglbase put\n"
                     + "dup 185 /quotedblbase put\n"
                     + "dup 186 /quotedblright put\n"
                     + "dup 187 /guillemotright put\n"
                     + "dup 188 /ellipsis put\n"
                     + "dup 189 /perthousand put\n"
                     + "dup 191 /questiondown put\n"
                     + "dup 193 /grave put\n"
                     + "dup 194 /acute put\n"
                     + "dup 195 /circumflex put\n"
                     + "dup 196 /tilde put\n"
                     + "dup 197 /macron put\n"
                     + "dup 198 /breve put\n"
                     + "dup 199 /dotaccent put\n"
                     + "dup 200 /dieresis put\n"
                     + "dup 202 /ring put\n"
                     + "dup 203 /cedilla put\n"
                     + "dup 205 /hungarumlaut put\n"
                     + "dup 206 /ogonek put\n"
                     + "dup 207 /caron put\n"
                     + "dup 208 /emdash put\n"
                     + "dup 225 /AE put\n"
                     + "dup 227 /ordfeminine put\n"
                     + "dup 232 /Lslash put\n"
                     + "dup 233 /Oslash put\n"
                     + "dup 234 /OE put\n"
                     + "dup 235 /ordmasculine put\n"
                     + "dup 241 /ae put\n"
                     + "dup 245 /dotlessi put\n"
                     + "dup 248 /lslash put\n"
                     + "dup 249 /oslash put\n"
                     + "dup 250 /oe put\n"
                     + "dup 251 /germandbls put\n"
                     + "dup 256 /onesuperior put\n"
                     + "dup 257 /logicalnot put\n"
                     + "dup 258 /mu put\n"
                     + "dup 259 /trademark put\n"
                     + "dup 260 /Eth put\n"
                     + "dup 261 /onehalf put\n"
                     + "dup 262 /plusminus put\n"
                     + "dup 263 /Thorn put\n"
                     + "dup 264 /onequarter put\n"
                     + "dup 265 /divide put\n"
                     + "dup 266 /brokenbar put\n"
                     + "dup 267 /degree put\n"
                     + "dup 268 /thorn put\n"
                     + "dup 269 /threequarters put\n"
                     + "dup 270 /twosuperior put\n"
                     + "dup 271 /registered put\n"
                     + "dup 272 /minus put\n"
                     + "dup 273 /eth put\n"
                     + "dup 274 /multiply put\n"
                     + "dup 275 /threesuperior put\n"
                     + "dup 276 /copyright put\n"
                     + "dup 277 /Aacute put\n"
                     + "dup 278 /Acircumflex put\n"
                     + "dup 279 /Adieresis put\n"
                     + "dup 280 /Agrave put\n"
                     + "dup 281 /Aring put\n"
                     + "dup 282 /Atilde put\n"
                     + "dup 283 /Ccedilla put\n"
                     + "dup 284 /Eacute put\n"
                     + "dup 285 /Ecircumflex put\n"
                     + "dup 286 /Edieresis put\n"
                     + "dup 287 /Egrave put\n"
                     + "dup 288 /Iacute put\n"
                     + "dup 289 /Icircumflex put\n"
                     + "dup 290 /Idieresis put\n"
                     + "dup 291 /Igrave put\n"
                     + "dup 292 /Ntilde put\n"
                     + "dup 293 /Oacute put\n"
                     + "dup 294 /Ocircumflex put\n"
                     + "dup 295 /Odieresis put\n"
                     + "dup 296 /Ograve put\n"
                     + "dup 297 /Otilde put\n"
                     + "dup 298 /Scaron put\n"
                     + "dup 299 /Uacute put\n"
                     + "dup 300 /Ucircumflex put\n"
                     + "dup 301 /Udieresis put\n"
                     + "dup 302 /Ugrave put\n"
                     + "dup 303 /Yacute put\n"
                     + "dup 304 /Ydieresis put\n"
                     + "dup 305 /Zcaron put\n"
                     + "dup 306 /aacute put\n"
                     + "dup 307 /acircumflex put\n"
                     + "dup 308 /adieresis put\n"
                     + "dup 309 /agrave put\n"
                     + "dup 310 /aring put\n"
                     + "dup 311 /atilde put\n"
                     + "dup 312 /ccedilla put\n"
                     + "dup 313 /eacute put\n"
                     + "dup 314 /ecircumflex put\n"
                     + "dup 315 /edieresis put\n"
                     + "dup 316 /egrave put\n"
                     + "dup 317 /iacute put\n"
                     + "dup 318 /icircumflex put\n"
                     + "dup 319 /idieresis put\n"
                     + "dup 320 /igrave put\n"
                     + "dup 321 /ntilde put\n"
                     + "dup 322 /oacute put\n"
                     + "dup 323 /ocircumflex put\n"
                     + "dup 324 /odieresis put\n"
                     + "dup 325 /ograve put\n"
                     + "dup 326 /otilde put\n"
                     + "dup 327 /scaron put\n"
                     + "dup 328 /uacute put\n"
                     + "dup 329 /ucircumflex put\n"
                     + "dup 330 /udieresis put\n"
                     + "dup 331 /ugrave put\n"
                     + "dup 332 /yacute put\n"
                     + "dup 333 /ydieresis put\n"
                     + "dup 334 /zcaron put\n"
                     + "readonly def\n"
                     + "currentdict end\n"
                     + "currentfile eexec\n"
                     + "D9D66F633B846A989B9974B0179FC6CC445BC2C03103C68570A7B354A4A280AE6FBF7F98\n"
                     + "88E039AB60FCAF852EB4CE3AFEB979D5EA70FDE44A2AE5C8C0166C27BF9665EEA11C7D23\n"
                     + "29C1A211DD26BB372BE5822F5EA70D99EB578C7BEFD44CDF045A363056E5E1CC51525EA6\n"
                     + "FC061DCEBB337208EFF729802376A2801424F6700E7E6397B28F15BC10B40012B0A3EAEB\n"
                     + "2693E8F7F627C4C9C7C6C5BFF105C1E41B2B9E8F09253B61177E95EA219474796072D4FC\n"
                     + "D6DADF763E836BC32C8A64758325487280CFB598DC6E0D647D380CF92CB689E13EFE2658\n"
                     + "22D7527913674AEE77FF4EFFC88E78E980F2A03C6195F9F6F1D25A84CC58BBC5BE9D10FC\n"
                     + "49EBCC5BE5FF8C0CB3795C60609219F27B109CA20F5D6B7ED78BD93F47AAAF2CE2783C4D\n"
                     + "BDF0B87645BBEC707EC30FB099A9F63775DDA202C31C2956AC68DB67200B9496648817BD\n"
                     + "327D8854696852E057F53BBFDFC8492C4E8A6D43C2D8D28D569A6457759AC4B7C2DA4998\n"
                     + "5B519A73EABDD348294DEAFA137E26C115CCEB3246B5492386F61C3ED078839EE0350479\n"
                     + "48291604B360B02C1A73E02E52B80ACA4FD43C72819D72D4351814CCB45D924D5DB43EE0\n"
                     + "1C5C892BDAF59677663FCA14D841654D497571FDE82444C9C4DC0CEE12114787D5796F8E\n"
                     + "E2FFFAA0FD5EB73E7A7A981C9CF9975E4B96FE39952F36E725D8FDE23628B4DA22AE4C61\n"
                     + "1655716FB8B05DA385EEDDA0E6BA9BC2D7BE76C6D56B4CA4E2B656541D57004DD0410A74\n"
                     + "B3ADED7E83151E575D90174238FE669A9445B182DE460AE53F4485732AFA88DF1B90D848\n"
                     + "FAC1A1114D6C01E951B342DC77F81F8FB33E12469A20CE3D048175317409EFFFECA1A2D1\n"
                     + "C75BDBD97D72863C42886B597FB391DA5CB5E9DCCF8FC043AA6EB9DFCA7D827C7E537FD2\n"
                     + "EEA3401010DFF95D4D31DB1328D78A7BB57626086856862E097C7D17B7256F7D2AB22098\n"
                     + "28388749B956463097F5A8F603BB870CDD993869142574C27B6E7659B9C5FF8C62B894E0\n"
                     + "07F7A85722BAC2628AB21CF2AE31AB454502D30F89FEC790C00465F236E5ACF2B644DF4F\n"
                     + "042FA3D43CE0A1A5B631931F06B7F6D251FDC330F259B8862CB388DE8BA5FDB5044BD884\n"
                     + "E98F0A9C8357045B4B059ACD597A9C05B68D83ABA029E9CFADC3423B69CB48D253B77C17\n"
                     + "6808B1A3F1BA045FEC2D108476DE252783EF6AC8FBC3C9B08D4A6DDB09A137519EB96D81\n"
                     + "024A1AC93B725DE1D40B9407C3D09FFCAD1582E22AA134598C33604B22888FF16EDB5C8A\n"
                     + "D08BBC82D556DE8D1E42D3623CF21BE6AA15D9BA1C024351A7D9291E7552079F2CD55950\n"
                     + "B8BADBFAF6B851306E253E4CF65115A706A60A4E62A528972FDB36CB3D53796744E0BE6A\n"
                     + "8DDBF8BE1522ADDBDE9B9509899D2B047BBA0679BDC95BDCF2AC2175E155D57E5EF4966E\n"
                     + "F1A16B8C9B561F7568447576215FBAD2AAE847513A4D3B869A3BF3EBC4ADFE97987A4B64\n"
                     + "CCC0E8E8831C28BE115D37DC32C1A91040556858805A7E5C1F8DEF9B571894BBD316651F\n"
                     + "3F3D4A3F9C25CF6AAD8186F934608B372F54228C108DB5090DF53AB6CDA8BB32093559C9\n"
                     + "EA7610CD5CC465CEC2B6C89B7119C7F34CDBFABF886CCCCE7DA7603BF1FEEE45EE5A5230\n"
                     + "F6CEA88CC1FC86E0A7D55417808DFFA0D3423ABA9199B52A06EBF2C8068DC5BA649A9171\n"
                     + "A7AE1357F9DF4F3F02819AECD19212F04381452ACE2112E20F027548691C26A9CA90BC52\n"
                     + "B6B5ABDA37F91AFB968CE8F00947E5769F90E8E2B2FDF5890A9016B7492E36B0C85EACD0\n"
                     + "566F0CE00761FDAAB2A56B2C172B4E142DA9F835605259D87193FD25A4A7FD6224EB9433\n"
                     + "61E61D14B15644E6B4717837BF97EE2CABF5672DF460B2061E72FA80458C501A85F8F50E\n"
                     + "EAE27377738DD7C52B61C3A24EA2A6BDF1CF4487E0A932F4F4C378E64C93AE524BA81EDC\n"
                     + "F7337A3C099C69CED32E1FCB4A6FB7E6CBE3FEB1D47DDB6EEFD432329F7458708FE88EE8\n"
                     + "212B7597449EE59635F9A97401BBFC5066A24B065378E45959BD7D3CCAE9D2A2C3849BFC\n"
                     + "41EB218B6534DE3797E9967895E6D2BA216BDDA7CC4DA0736E2BAFCA0AA8E16F359D683F\n"
                     + "6AD3A5D6ECE67187538D81BCDA89DE81603A11F0FA7A7F6478B82A779FBEABE37D092A69\n"
                     + "9F1B16C86D32CA88C8CE4A45E86896D90E5B90E7961AC22E413F80E92B33FB2D026C95AE\n"
                     + "3764D6516248FFA3F9AD060AF387E4DB4E41CF52C84769D1E4176FE4C1D289FBAECE24EC\n"
                     + "408B41183E6D50093221672673EF38F38244D02198F1BDDFAB299EAB77CC0E3523665E4E\n"
                     + "BE1A9338967B943F71C3FE58B935AE929F6BB1BBD7BC73BF3DABBE3ECF535EC546A8CD1E\n"
                     + "C0136D47EE7E69553B5E6C2AA00DDF524ADA36814C97C0BFEEB103CCED325D4DD939DDB0\n"
                     + "8681787AC53FCE8977337AE6E4DC0AFADBDA0BF2A0952421D38DC1A0CE9388A66E48FB1F\n"
                     + "1C77F5014722261128C77F22F2E8A0FD085BE981DEA9548314603239B6C484A3DAD9BC88\n"
                     + "7363061170DAB65D7C22122329F08CA77DED3D22D667DFC3C84B37CB551B24B00360772D\n"
                     + "EE9056EE2CAA8537E4A3B8A89DA2E9CB78EB6985B85CCEDAD713FEF455043BD9E1AC2088\n"
                     + "ED5D37F3F1F8721A0993D2907C4589B94972A697E0AE4C8B04A94189EE0D1C78B1BAADA9\n"
                     + "E1FDAAF9F2545E0E121A74EF9C325ED8FF70E59B051C97B3322B7D4E85F68E88035C1B0D\n"
                     + "972452D590652B3DB1D6144B9B2D2E29AC0FB98407CE98E6B96BE7BF40B8F2502CE0FB00\n"
                     + "A06C6478E7B5011EC965B55C95AA0073C2A528D4A560088981FA4ECD300BD5057BA88646\n"
                     + "BAA9D6F061D8E3353E488D67D549AF2C8AC002D10DB73B7FCA88C82FD07459064E51F7B7\n"
                     + "7BE06A0AAA91A1DF06EC76A24C4F2920EAFBA2648BAC1CA090BE6ECE2E3ABE32BF9A8771\n"
                     + "32EACED31D3F6E6DFA4FD50DDED04B8C3CD047960D194B32690B287A270BCB2FB6A76F2A\n"
                     + "CD9EB361796AE689D5F82F1B449885A778022D732D073F4FCF98BF4C75B19FD6FA3711F9\n"
                     + "1A99813443F8953820B7A4E1D53E0D3032818CB597EF7BEDB91D04B9907EFBB0AC69CDA3\n"
                     + "76D5561663BCADCA7448CEEA91B821CBFD12998AD1F13CFA58D082C3E83BBAFA5A0A4EAA\n"
                     + "59CC2BE9BC71E5D593540CFD51B5906884FFDF9E69FBBAD48A00EFF0D2811F6428B6AC17\n"
                     + "453D5B3FCE03B9CF447058E5B2C1D9E03747BF238EAE6ED70B4ACAE62099CE126C6465D3\n"
                     + "869A06E9FC3BC9F67E76946A7ED2EDC9BADC4547911BFA0DABD4C7E9EA90609B4B049B0B\n"
                     + "907432395647F43C80ECAFB6DEF8F67DE190695A48E04F5145CECA1DF3C34325E904BD50\n"
                     + "44294AE7FACCC7C15A6B7A3A5F50461764CC6F8736C42985A6E0B0C7569667901C22C321\n"
                     + "F0C8A98BEDB352AB00C56723B0E8E88D0415E1371B9E28022AC1F16E98E812F9D547927E\n"
                     + "9AA1B2A3481815B5BCE5BF534FC07180E27747D3153B9694BA42F32FE0F993931930E6DF\n"
                     + "36A1EE4A2F0E27F6D71783BAD58ACFB9636F42B30B4855990EFCB7DF6566C86463A813AC\n"
                     + "5F9F94620CA78726AB66A09F0C786D54C174F2A7E3D4596EC0DF4BBF97C7025B2093FACB\n"
                     + "302F0AB4A52A5DD607C68D1B11583CCE27C285FD2C984E24C1BF8250ECFF1EFD0EBFB026\n"
                     + "C1B95A30E07AD8106F7F9D9F85886F8816CEAF452A059D502C1FE0C2542AA087F6AC93F7\n"
                     + "6E1D8058EE2CF229AE1DD9C13E4CE6A0368236BBB1C720C1773F66F7E98247FD677EF561\n"
                     + "38CF9E5E45B0397E38057C7B93CA686B5792D72097CEF84DAFB9EE7E4154F56CEC0D3A98\n"
                     + "1AC6B4CC8C43A8B05C3381AD73E532D1446D367D4C7851040C02F34ED36A4F0DA7D57B94\n"
                     + "437F82FDA35B0DB46EA62F7D74477B0C587A49036EA075980B8313D3C321C072CBB67F36\n"
                     + "62FD28140B8EAF6FDC102D7577FF84C9B082A2BD5AD0C455262042975FEB957EB44D74BD\n"
                     + "8C878552E40433EF517BD0FD04472E5AB10C4D4FE70AFCEB59A544D6DF876D003C778D11\n"
                     + "05C4F4B59A1BAE8C882A122CDFD788FA7931163007D1EEBCEF4BF28DD94C9913E22C9972\n"
                     + "5DEB8E288C7CE8D77673EAFD50E6C95D9A59CA64A57B215FF7B091426A6522077D1D208E\n"
                     + "7296DFD841A976A9CC1A122E77C0796F0794AE40F522EB1C53EF821F2FCEE1B30A75AD1B\n"
                     + "52F13FD915E205A5FD4C69A2AA45CC8C59310AEC2144E1F5AC047A8204F4E4ED87A6B634\n"
                     + "817600102857F157D73BA002D601CF58DC50CDEF29CB596A6222A2B68A318820D566D8CD\n"
                     + "95DD549F84D291DF298C3D26305E7BA5BCB11D110BC707BE575CB7088D2C6FACC729E074\n"
                     + "BBBEA40BEDB3D45409225C2F70B9A6DED4B0CC84999FA8862E836A907AF195C31A7F00F7\n"
                     + "2708BE976BB07EE9EC51307928253C7855BDF32A9A5B522F4BC37650E8A6535E8B83F4E3\n"
                     + "1559A8F08F10F8CA9C4BF12BB40A8E110BBCE2A0FECE32C8628BD859E763330B13C03E75\n"
                     + "D57E524349AB1FE8A0C7330FC29BEEB647F08C69F2F544CE8C5C086BECE5ABF59C0CA357\n"
                     + "3B0A144B04CAC2FAAF4B5DBB0B1C2950C193698DDF9A313002D1B9C93B47A22911832DAE\n"
                     + "0A78A9C2AD9446B9C964F919175ECD38A19CDAEFB7316B040EC2C62FC4E74C7E94C10334\n"
                     + "8CE08165A5E6DA82C3DE935000BD193BE3305B16C32D7500D3C78A7C759E89CFF72E4474\n"
                     + "BB28F3BD2D37A33BDCF22F186B23A2D1A8C01638EE45CAEB836F0F75646C5932B431F526\n"
                     + "66C6919DB495AEE65BA08C44AC6D13F771717504430D5C648E409E0EF22D6CD81B3F70D3\n"
                     + "D4E84FFF6B4FBEBD31E996C6A8CF0CF9F6451B298BEBCFAB2FB71908267484A09D2F5A2B\n"
                     + "A8BE7D6136C56BA83CDA699DF836076ABB2A05B04741A6CF9D8E4307B5DF84103E75E3F5\n"
                     + "CB247CBB4D35D8028AA519D3922E899DCCD2E63F321FCE40F11115560CE328711EB904A0\n"
                     + "54C44AAD579A03D62427D090EE7FC9C663B4D8335DF1DF627C094E725592F4C92D9F8ABB\n"
                     + "A1272D7C8006A2D5F3F1E28FCC6307E1F53F5BD8930492B8A82556D5E3E79776845E8DA1\n"
                     + "7118719E9309172B185889DEC30AF4119BCAC59D58B46DE5C6246BCF026CEF9CE1362B6A\n"
                     + "623DF81AE95CC55C6C59C3695371B4132A9DB57E180660617F69D64C5556CA4DA7E2FF2F\n"
                     + "0DABEC00ACE1C2EB5A1D452EE0D9F4ABF27889E40BE9CB68FAA9A236793E9D33D7787E4D\n"
                     + "02A15303B52547384C693964212E7A3C2BD73789B3CD654EAE537F765C667F8A4E790882\n"
                     + "46A8311AC9014B9704A43BD47182B4D4052FA5FF19F6E13039781017191B31BD2867C051\n"
                     + "B6D0E8127AAFF00FC949F5BE380BBF296A65E6F10F46CC75A5375320E9EFB426EC018AF6\n"
                     + "0DFD9226DA64E8851683B3D1220A6B4F1694EE05B7B0A4EF840D87313AEA108B1EE9AD9C\n"
                     + "FBA85922CEEFA06B3A16D1BC3718EEDC4A452B202C7D7CB5889D76096413FDD5D5F7C56B\n"
                     + "6CA482A0D5375A26B4D456C7CB864D4AB49F19F8D4003E95F831AE9D5EC6A5ADE4286B11\n"
                     + "1B8FE32FC8911ACBC2A9D9CA9AB0EEDECA959A90699D95C16E2D5385FCEB8801BDDFC5D6\n"
                     + "B5B44FA8CF0C647715157D945BB19ECE4CDB0A0817E972F1D7B98BECD912CC3299AE1D3F\n"
                     + "4A1E1BF9541659DB6D8F7002504274F968E7579C942EEA32C544A002379EA19479C3B802\n"
                     + "70C408390A9DF42B61718D60EEFDB3BE91807AD7DA6B43C18C92D9D6449C43AB4000BF4C\n"
                     + "ADAC6404B66C3760BB3AD1A4D141F3FDD97597FD538DBD56A819705664A5F446A514C3EA\n"
                     + "5EC147472821B8A7F49B95BD2794C727A9750749570E976AE3EEDB497BBA6BA345579FA6\n"
                     + "674349B63CF8C85FD87B5AAFBFF8DA639027C2FF5312EDE40F13E15C370563EA2D4157D9\n"
                     + "2B82200C5B0F92C0D40E157C399FDAFD5E727BBB8A8702E0B985D76D5ACB61E13DED8F0A\n"
                     + "15529EC47E6C6C0B535ABEFBBB78A9A2AD823BEF7DA8C97CB0CF6BBA59C0BA25C8D6A164\n"
                     + "4B3C134C11024736E6182F8EA5388B895CA34440DB21AAA7719E5C6141C2D21E32BA72C0\n"
                     + "60DFDA767048702C14279CBA99DD1FA2051E6CEDB472CAB6B3DEAEE67BD4FE836198EE19\n"
                     + "A9F472809C9C7FD00AB9A9F6FFCC2B39AD1E46371B4494A40C655FF43CB0003CE5413543\n"
                     + "E92F951C91C83051D40E19989D688AE4062696CEB29BA795425FB6BC8533504641BB8C92\n"
                     + "18F720457A4AB35CE8DEDD9BF0C30E2BF479E0159B9011253AB42835F8317822B6ED4601\n"
                     + "7FCF07C12BA19953194EDF62433736494A5AE2DD7AD881D57C168E702AB7911463246933\n"
                     + "D598F7C333FA09A73A22E466C0E813CB5A5A80822B5267A4D8176C3A2DB2D8A303AD186A\n"
                     + "5DDB85236165110267B75F4E2CCA1CF7F58E3DE1E75E442C64EBA4DE8DC484E6D83E1966\n"
                     + "B2AC43F6B91FF57E6946AE97FDBA8D2777D61A0060C64F72411FB308E48294BE53705014\n"
                     + "5059F2DB1FAD380ED08401ECF4770EB51B844334B13855DDEFC8DDCFCB50CE5C24A2958B\n"
                     + "FE1883DDCEB8AB22285ADC325F602CB885D95FAEF2F607A66833194D366A4CBEE96332F8\n"
                     + "91DC824AF643D72085E2F3FF05D53B05165F94DA09372F01E6047A382A26D997100D28FC\n"
                     + "E2E1028FA6D4D901D3B72E9501C70517FDC732649C98597DDCDE0D01936E82652558002C\n"
                     + "C69245BA23829F91190E7441CCA3BB2D76CA1D2ABE59E82A9D3756C6A8C2F2C785F024B4\n"
                     + "2DC9575E55E85CA6A259E8740B4A6728596E618B6BED63C6A9F1BA1D08DDCEACAB4FF158\n"
                     + "2DDAC49BB9F7C1CD049AC49AFE456986F268ADBEE6CED368E0C2FED262F14A64A996FD8F\n"
                     + "D7007D4B585B938AB1A360A980894C37C503BA6F70CD1432A16C6F622CA0E4238D7FBA86\n"
                     + "7E2CA85EC9811F74434EE12C41B46DA66F750385A672507E8A11309B3398EF042EDAB47B\n"
                     + "08BC980CB1E204E312AB4A46B1749640A761DB75DDC503EBBB793A0B71577B543944FC60\n"
                     + "2ED5CABB1C4EB1BD303B301DA857C46885E0308DECC2EF058870FD7E6ADED29BE41BF95F\n"
                     + "2A67090FAF170691FE493E75EC3E8CDC630AFB880A3E1BE02C0B51B56B43F0EA160C0BCB\n"
                     + "C1D3D5A72A771774EC4A0B099575D69059F17B76BF5E199A5406D1CFF5F6705D0F1FED5D\n"
                     + "74D40571F948225DE8A5E6EC5E7BF7D7326D72585665F7EDDDE5CFDFE0375CBA22DC55AB\n"
                     + "CE2E98E19E8044E11DB1E3C372B1E5D1A8B6C56DFDE88760C0F4E57E4B9C565F14216AA0\n"
                     + "C2B5A27F8750C7B016B54D3FB323D95CA96C9D362F1B638DCA8C65D97941C070C8C82FB5\n"
                     + "AA30CF510495D58E53D3D26518EB078BC7331BCEA4FCCC29386254DED9597F1269974289\n"
                     + "34FC5239FF87BE0235F933CFB66B1A562AE1D2F055938C8201B3658871C398A2E3BA969D\n"
                     + "D42F3ED58FFBCE20BCFA551998099986F760647367EB77762F6B475387EFEB6C10603C91\n"
                     + "9CBE5764ED505C568FD32C11891098BF29B09DF875B1A4B7440333376E9E0672257A4A4C\n"
                     + "87749BE51EA4DED86D7ACB9462B76876A93724B14F89D10A09A36AA6E0960CF0A800F1FB\n"
                     + "D952D7012A470F3798BFA403985C9B380CB5A55EF9C6EBDCC5255F9C8DF6D60C6E12974D\n"
                     + "E3C7E857FB046A6B4DE23003608E03653283400182ECA86237475371554269EADB2C659E\n"
                     + "483AFD6AAA5237F83C22F039CACA201AB53CFC09008E4CC18EC5A0F1EDBA2D278292063E\n"
                     + "B6639858D703E6DCB378878B76F5004890A6EBB25069644487B786A62AF63207F13D2968\n"
                     + "4B949453DB16FA0007231745DAB219EE45D42C5ED676CE19F017F7A1D84AADABA8B36C3C\n"
                     + "A66A1414455C1951CE5667EB0C9BFABE4BEDDE26CB2DCDAB505E6CB09870FD1352D91470\n"
                     + "4E1DBD27B241D4278FFCE8EC9F2601EAA51DCA31DD1418DA8DB48CEFB85094854B23AC1E\n"
                     + "AC7EAD98BDE60C423EABDE21AF38FA8CC19160BA68F225B55CB98B11225455A18E11BFC8\n"
                     + "F0677FF44E099C63BF965FEF78DE5831D19268E77A55B79147F8984C5B0CC416F900A608\n"
                     + "358F081122A10DA35E1616B6F6F7C5AAE9FCF2065EFCCA5DE1EF685718AD64E832E6A24E\n"
                     + "0FEF1205BA869714E1EE7B937D480771E08CED726AB326A1EB450430D4A75B81A0C277AB\n"
                     + "533935513C3F417A60361BC317E54AD644DC7D5B1C92772F14CD8EAD2BBA2EEF46F34791\n"
                     + "B6C5B00270953FC82110927B84E6ED03311451B71F926B4393A071CC6608A34AEBBA8CB2\n"
                     + "72A35D98FBB1470B540CF16990682FB917673246B37552B383EBD3C6CD4ECD99BFEF6ED2\n"
                     + "5326A20E0E0673FC851CDF0C6CB1DE30001F9F923795405F5489BD4FCC5C49462F4F9AD2\n"
                     + "0FCFE624871BE19D47F90D0D308D278729DBE1C48EAC26F7DA3B6760D6F9F6B7C3C24258\n"
                     + "55B043BF4FF70D3893C0B55A391488C4A2D2FF3DBF56E01003C7C66AEAE56D9FF63FCA3F\n"
                     + "E9BDB9A8D679DF5FCB78EA6FA5FAE193B5FD949D368896E1D475543F9050DD11C38A4A7A\n"
                     + "0EEB33485784EC5A80080331DA708B75D86D9F7C1E986CADF860651E628B74A4F11BF50B\n"
                     + "CA7B8BE96A31ABD40BDAD35F00D513B2A53238F62C2199835F499E09719FF92BEFCB055A\n"
                     + "8DE4D6DC835CC8F0792C7BFDE192D3538227804CC109124B107B980DD28C48D734D11B9A\n"
                     + "981031653E45B597D9637D5B5A8EE9524933E6E9FB3208CA2FF6A50F4B45AFECD37817B8\n"
                     + "73AF2F180EF7CBDACEBC025DA682A30748C91E06D5C2CE5A84BC08A3F8A4375B605738ED\n"
                     + "9A0781A111F638A400781D6DFDBC544A73837726C38192E8FD78B4204EE8D1EDEFA350FE\n"
                     + "0A1B5C1D7973A9EBF6FC3F6F3108C47658A448FC502A8DBF0DB8943849E3677331731443\n"
                     + "A9F9C75B1456D0FD43EE835D49B871BC349F9BCA63590BF3812804E8DE4BD0BF874707A9\n"
                     + "67B48B519B45DA92702E823CCB3835D4B4035B27E8BB82FC9B4384EE6F9A15A8C54A2CB5\n"
                     + "B963ED6C9BE1D89E3153FA2FAA9D1416D1D21EA61F217841D25D20E84156BEF7204987E8\n"
                     + "BE288DCA4B8FD4ABD1951D507EBA1C15E579485B336A9CE83601BE3DCDEDD58ECA3C2165\n"
                     + "FEE9E7FF4E1417D931318C8B37541A7A13D9A3B2C5A8DC597A840A219374F2DB247A30BF\n"
                     + "F62C084D6D5ECED9962FDAA05A61F3F59F2909585C980857CE63695835C6A3A9CE03FD8D\n"
                     + "7915649095AECF2E778AC011830270C03BDFBD22C9DF5B51241C68FA40FA1E749E6738D1\n"
                     + "BC0BF288C59CAB299BC7FE83E067BE2EA8B59BB557A0820EFF201B00A53216D88EA6C543\n"
                     + "FB1D7EDAA37888FF6ADC9A70C2DA5856A87A72762F0F2DEB23E7E7DF3F885E23B8A478F4\n"
                     + "A722298AA362B50258B853D05BE06F7D4DE8CD96B8F72A0E0F6207E7D9D890530EF3ACA7\n"
                     + "6F05C92775E4067BE22AB0C82466FBD19285B216B6E154F44C4E0F65B5B66DB1831FACCD\n"
                     + "E52332EFAC9C886CC9FDB88C51B00987A8C98C751AAADA95996A4A2439F9EFE99BF6F9ED\n"
                     + "C0EB085C0E38F3316B97D294B52B91E6300689DA5D2891F35D89CF3871D6DB80C368C55F\n"
                     + "D0BFBB7234400FDA8A4C5406C248A3B0C63248304680DEDFC5C00E3D864A59841C7C7682\n"
                     + "10DEF3ED8BE7FBA0CCE69944168169B27811AAF236A35BB4DA3F469E4BDF094F4CE2FEB7\n"
                     + "8C76F875FBD073796B2E8D85C8765798774D86D79253B141C6F29831963045A5DA5481AF\n"
                     + "34DF24978E7E48F67EF70E79106380C7A47A272F1B2A86B5E13003A402F654C7E1023852\n"
                     + "E11C9037B60BF6DA3815B7068AA78B983F5F97E5A23C7504CFE0BD193CD9A0AEACAFC0F4\n"
                     + "26C59213548C54A95DCD1219196CE727595413B18A623F0305072C9411250B484C1D373F\n"
                     + "71974F56D73865BAC55D5E5A7C126DF318C56B3D26FAB85CE144D794500CD8BEA0F55608\n"
                     + "798BEE67C66108A2BBF5543E5B9724D0EC49E34B794E80719DA622114F2343A0731A9A72\n"
                     + "435B4FF502D0C443A96089F4E2CE70C8F43FC0C63CB592407EC3F5D66F80299AF524B488\n"
                     + "6CCB22B500BF783A6A07926C88E0A0E24358EF33A162BDBD4D900E148D2A6ECADFA15BA8\n"
                     + "3514D0A25EFD91FFF7EBFC1366FD6B6EA52F155028A7F1B8BA348BE72A95770F56322664\n"
                     + "9A90F52C1AC8FAD3458CB78BD2BA315B1B8912FB248BBD7AFC925B96966086279681D838\n"
                     + "EB8B22B7C7F8984D7D964C7DF645ACF812D5A9BBEC357DBDA10E6CFB0525A5EF81FAFD69\n"
                     + "992F002CCCAFE193C0FE8D4B7E0706575FC43E5C999DD22D6676BE1070ACDBE6F038C730\n"
                     + "3FC8EA85DA6A5BAADC949DA2B80B307287E09BBE12EA89A93FD7FA79188996EB3B80A244\n"
                     + "09BFD52C91A845DAAD292CE31EC85D53E0F298E647317DD626B9ADC0E7539B335FF23658\n"
                     + "80C35E44FFB46A93CEE3E820175A9DB891E5B71076A61439679139F27F0A5DCE6D09745C\n"
                     + "24510BE1823CF97EBB24A8D1C1027EFB4ED2CC26D4A7C6AE336F7BEC01CDF21F3B89A5F6\n"
                     + "281F58DDFB147897D82A6EC2909369E09938ED01CC0468DBBF4EE9D46DF020CADE197CD6\n"
                     + "387FDBB57F03E6D7CFBA606D5B970A91655ABA6F008E3278D46B52BCF828A6A9CDD4F8DC\n"
                     + "60A7BF17B7515F7412D8695C00C2461BAC204DBAEA85982E4C8F16F919C4D5444CE6F53D\n"
                     + "C296AEF1AB49D651BA461AE0A4ADA1FDDA3ED8173950CD995AE391DD80A22FCAA24FB4D9\n"
                     + "21622F84C46CD1E6768F3381F066FD7E9DDD89FB2564F246EBEF8F3C89C690A524E53BCC\n"
                     + "95A085605DA07A4FF5A652C0727DFE340139F358D6A5D449BD456EEDB6D18CBABF9512AD\n"
                     + "166BB2EE8EDA6E0313BEBAE0570583274AE1FF49EF1C8F822E66B7A9398DD2C119E6BBC6\n"
                     + "15014FC312D61DF3E0AA3F1BB7DCBBA220042BAE6E945395940BE12CC3CEF548C0A57A08\n"
                     + "37C37024BF2211CEC9492209AD3C9743F044F364F70C874DC8F9F0ABE3C199E69853376D\n"
                     + "7600805FE69E0B71408E905671B26820F7E2238D80CCD0A3EE70A9F627FA69BCB70B63C1\n"
                     + "B33813319E58D22C88C3FBBDE83DAC23D02238A58DDC1E2FDF955449E24E7D44058DFE6F\n"
                     + "91E94548A281B3F44ED7BD070F5F2AE5FD56084CC0A1714CD78329662B004C8555F36330\n"
                     + "CF82C151B2EA1AE10082A2425227F4F9836D0B693DF57F916D392A45C692C46A29748195\n"
                     + "9AC1370CE208AAC25A0EB2C185D1A9588AB75A9E2D55C605676382EC4385D10BB1996BA6\n"
                     + "3AD6587E2831A47551D1D6C5672E553FB9C7463B5F08EC6B0FA19CB5BC2D2134080582D1\n"
                     + "8252322878DDE27D567C52B55B53E1B9BDC776BF3ED5594D726F23805EA3B70AD25F9915\n"
                     + "88DC76327CB0C318BA68FE39382C273C1362CF5C13707B1C483BA0E8FD2EC4E0F59A917D\n"
                     + "7BB89DE7E561195C68D3EFB2207D60E28B84F5CD2AB449B3C2C68C110DF1DDDBAF774BF8\n"
                     + "499D0C8468B97B7981D64E5723A33EB976631FFC85375DE6044E820153748BFA8F52F4B3\n"
                     + "CABD9D530580236ED4673768D5F5B74CDCD5B26DA6E907E12CA681D25A00AA113C1644FC\n"
                     + "A47921BAA8D2586F3D71442DBEB05E1934A545C8224852F2698F39A9B0E3979415AF7279\n"
                     + "99E357E830F0826945DCD18807F5431C973C89C9C9D7DF66A90A8636E85EB12150631276\n"
                     + "33F4A142E512067769E2BED4DB364FB2CFC2E909CCE23064D79F788A4F59BAE16DAFAB7A\n"
                     + "E1B7BDF33DC2534388E04744FA29C8F387A5287F86077F6D47766ACD248FD8F56C06159D\n"
                     + "834056533EFEA988AA3768EBBF7503047D8657368423CD0E02D3BD8695B3417620B79F3A\n"
                     + "6DEF356426ACB9A05025BA478963456546F31FDD656F4107F6E4384556A6E61B8A85935C\n"
                     + "FB62AEC50442A9A34DD5C7D5B068AAEC848769DB8DD120828A65BBE4C2539642DD8FC8D0\n"
                     + "9DE3F2DEDE54DF3FECC95E1730351D74405DEF3920CF7A9F6ABB6309F6BBA035C8C84319\n"
                     + "704219A014C199672AE49DCAC6F9F206EBB59D6324BFDAD16856860D7E974CB404D9E1FA\n"
                     + "E18F9A5BE10323B93769B6ABD2736BE7D5FE3AC6B71956FC03C641E53C63C5B809BA98E4\n"
                     + "E7BDBA011CBDC559CE83AE77E742E6ACA622275FFE1632B35500B0CDB062FDD5368528B9\n"
                     + "BDAF44F61B44828B24CBA4180D35B33F78538BE0183AF0145CC7C087E5CFF58D2144E927\n"
                     + "A3FFD3E294F8578BEB7BC2F036FA9DE59750F367A3C26DB54D8568139A06606CEB24A581\n"
                     + "288C27AD9827F8A1F7889D479E1330582425FCA0DFE84B373F15BD06337E2918400F00F3\n"
                     + "709FFA49E2689912C76EB3D4B2A14329BBA86A8776C0DE71AA26D36E42FA9EAB22D153B0\n"
                     + "F28EC88BD1B5373AE50F5829CEA43255DC6052546F5F86D7DB328CC3AC493DE8C2700C51\n"
                     + "1703B0B2899FAC6382D97748BE81649C856A85888A97569FF00FA563F2964C3B13B765FC\n"
                     + "A9C197314DFA195096B9DBADA91A730C66AFBA97AF5850184227419B27AB031BF1866628\n"
                     + "AAD0B674703958C6C5D0FA0E5F617C913F0AF8BB8DA52A22944E68B7CEEB80BBA89A31D3\n"
                     + "82E16A6B7791A6C073DF9F18437B7B3729ADF4F9AC7621009A22D3ACFCF83F06E6780DC9\n"
                     + "73766F4717FA840EC5BAF3B120093969CC68E77661A36FBBC89438C589FA3459C66E22EA\n"
                     + "9B116ED77C99155294F0CB32B4D81E326D1BC1C483257B38BE0BFA9ECDCCAD5E6E7FBF2F\n"
                     + "A8601533AD89B3D951E4D3CF47EE1031D8C0BE2D1CE64CD038BEDCE37C440B9CBCD09AB2\n"
                     + "3E7EF6734593AE39A00F3EB79058E4BE6993B564E4B5C3902EA08C8C0B7A7D9CDC8F4B18\n"
                     + "6717C86074505A40F14443163E812C0FC7433AD7974074446544E78E1873C5D9D9A70551\n"
                     + "4466FC9B9817967ACD6CC1A0572BBA6149E926B9311CD78A33DD60E1213AE4EE75E9555D\n"
                     + "BC22E1891EB3713755ABD2F6638BD84CEAE60BC5F1E271ED71C91CF9FBAC9B885E1E5554\n"
                     + "1F6E0F7D5E95A49751D73B476E8D0E0CE41F36026411D53AFA6818245C113A266F64A5EA\n"
                     + "71F223D79AE2519C921C6614D5DF9AB66F03A416F09AB1257B4A40DB20E5FF9A7D6A9024\n"
                     + "FFDDDC5B263AE2A27DE91AD7E2696326D09241995794B1C1CDB7038C409FA1E75BE56408\n"
                     + "796243531BDEB34C32B7B8CE684A8AEE13FBB6853AC7236B057B732987C00DA067ACCF0A\n"
                     + "2C65B794335FD146AAA32A4E6F1BC02E723533AB3499D6ADF3CD501FC849E0A5BAC1A74D\n"
                     + "B875BD25333D305A4CD476FD293652B2500036F13203049ED2D3A304BEFDC9A3A0467821\n"
                     + "B753885717C250A47DD0321A44CC90AA3FD7471D98A10D859A16EA84C9B4EDAC4E9387E3\n"
                     + "E188F2F542CE3AB136803E64285D21A96FFA6493C53E8C25B72B8F6332726C9120A9B762\n"
                     + "4C18ED9CCE0893BBA8F109CEE8D8568A70D2BCC0938E766C1B63D9A188961A3AF5007B95\n"
                     + "BCA1102FABF68DC9E7E96093890725D91E2C2F419F0AF8D9DDA6DB756B65042BF5B7EBE0\n"
                     + "E63DFA60EC0B38BD7AD8F38CB588C053DF306EDA28E21041FD88A46B569CC5FD074DF81C\n"
                     + "53491FC19E2AFD55D3B0FCD9C5B8CDC7D6D96576ABC98A044DFBCF064786208ADBCA891F\n"
                     + "73436736C157389504EE0930602B42FA49792EE5A2DD711DCA361EBF3D345852032A0791\n"
                     + "C97F839A573C7DCDC79B456AACA3E50F74F22B0B39BB4933D3E29FC9F49C2503F5A9267A\n"
                     + "28E44BBB2707D3F719044ABBA8B1535D3DC360B1E5492F9207B8BBF61417449FAFC67BA3\n"
                     + "FB5ECCA5A51637B690665D332896BFC2ECF9C9C5A8CB34A051C8F895AB7FC0163B503D06\n"
                     + "C82EAD50AB201903D415A7A4FD07C9754B4F26A1873719F900FDE3D669E37513CF5C9EE1\n"
                     + "3C36ED721D959AD5A0FD3999B57FACB829497800F7225E9FDE950AB00F6C68673CA88E24\n"
                     + "0BB7E6962EB757810C9AD26DB8A36A7BDC22EEB62AB470AD9BFB770B308B183D768261AB\n"
                     + "4919C19ECF4B6BBC03EA77A0CF8AD410097A3D454A365D1D402623A2A4954DBFBAE4DBB1\n"
                     + "9D8DA205F3A244FC01D8171536D35F21E96FF44437C87B3EFFBC7AE6E8718D2651320287\n"
                     + "C4A5B38D388BD3988F33600AB0C2507604A9B3C9555DE173C2E0FC8BE627D8DFCCF04C3B\n"
                     + "49A133D028B34CF76D762749A51DFECA58D6E39A905DCBA621F455472F4C61F0FC128411\n"
                     + "341AB8ED0C4B8DA9897E01B5991A0F4586AB4325CE7EA169A98C926EAEA3E98A2A1BCD60\n"
                     + "D6B0F73AB550B17F9C6CDF1B20941507C951ADB966DBD72D5A4783B89AF200192FFA1055\n"
                     + "A1BF1F5340A7AF96CFB84EDD4A8F680FA88BEE2614C8F8220B6182A1CD7493DD4BE3E2B7\n"
                     + "B15C2EE75A044C42CA80295654894DD78A5BE8718A11CAE9B6E4038F50162676F657E996\n"
                     + "7B9EEF6DF239CC9ADB4C2BAA2B56E392F13557F6E975819B83936A8228E671740408F73C\n"
                     + "47B56FC8744A0285779A8806666C7FCD34EDF6E4AAE590232CD6C8E17F7CD32777DAD0C3\n"
                     + "28557BE09B35B670E20B119758E008B4F786711B90150F8CA21EC05075C198227B80F81C\n"
                     + "441DA3E58664F1A7EC3A8B2853D00F7E8B573DB596517EF1FC4655F0E2C8999DC54F4CA7\n"
                     + "07560682E8DF1864A30B4DE04FCCC5A6C4B3A77B7BC28FB2A674E458977E23CAEB99606B\n"
                     + "C079F3A39211757663D3C1FA4F83CA09FB20455698D4224C7DFDEE9B27A96C96BDC13755\n"
                     + "36842AC34EF1091458F083441D9990AD0CF93549C1EEC9CB4C1E7696D16531255FCA1B8A\n"
                     + "A59990F426E30F3B146AB33A2F372FC2045755D1E17DB069B98EA6100BCFBA470EA66A64\n"
                     + "A283505F204F03179B6164A5D6D2903BE7A4F656E9BC0423C39DFC68781E4865F4498D12\n"
                     + "5EFC8BC7FC623E310BC46C88C12DA8F289F8C510BF99DBB194B0B823D183F9D6717A0E0F\n"
                     + "29480F23CA530CE973C9FA29A11DBEABA89BA45B7923F7E050E7F5707B70D7A7B7783DF0\n"
                     + "79207C8A4AADF28051168452879164B690EA6D3C08674F5C8AFC2CCB0F455FCECB9711FF\n"
                     + "53BA5AE502EAABE58766BB1F13BF054D081290356698DD70328761D186CC6A21B858FA00\n"
                     + "19D8F0107BE6979687C7C8D15AE1FFFE92E67FA9A6A958667657BC281B0E29F89F618B2C\n"
                     + "7065DD5A03EE446276E42D2FC16EBB749697305D78A7F37E52C819FC859F46CBDE70A6BE\n"
                     + "C106EE10681CE9C89E0D7027BD92825DD3870CED4E929F1207213DE63EDA055CF0B085A8\n"
                     + "D6AA3BE70897D914F2D1138D319EFFB34FA1F264BCF530C208B1715AA265F257FCC8E32E\n"
                     + "184EC4228A3D30CA77BE2C3E51331BC0D82335761586689430852F06983B8ADD15FE2740\n"
                     + "8CAA0FE023E38EBCA0DE934C6E36CBA83F78FC99FCFD325CDAC0DACDC0EF99E4540EBCA6\n"
                     + "A4A5E2E0AF97E12883746610F3A3BCC29754DCE235CF6D62B21466CBE78E88CF739D8193\n"
                     + "F330E3FB2C82BC76F9649C1B2756FC1955D4237D7972DB840B1ACB4363F95F8EA89137C0\n"
                     + "7301E6392C07B63AC8FFBA555B9C8AADCF9CC7340C5A08580A8D48F475D43AC6727AE5F8\n"
                     + "D7AA1B36E114B7D2F68917AD7D920A7098BA9672CAD1F969B43B0F361FDA5CF9CD36F84B\n"
                     + "B18EC30FA658C71E80610A79FCB6D7DD550FAC51859E08519B6EAB38570490E07CC72D46\n"
                     + "D7833A68D0213614EE8F42C555F37EA9695E533D75227B7C499DAD03ED214EF095BA4837\n"
                     + "2D5FB73AC6DB83C3B9D7803936C40CFD66F98FA4CB13E4793CD82A44DA02C0FCA3AD5AE3\n"
                     + "BF788D3BF00F89BFCE61C971CCF70F4ECA4EC27770D5637930B01FB2C3F67B31150BFFAD\n"
                     + "FB2718DE15D95C72C3158F8D2B59ACD972A8A95FC0141772B7411053FE2567AAF19501DE\n"
                     + "F1B6CC229014E7565B7D366FE7C832853E465444C7C6BA17EB20D58EB7623B175435F5E9\n"
                     + "BDD8C3A4A8AC829071854A9F2BF07DFF8E09CDEBF35957A4864C8B8502C292E2D67BE5EA\n"
                     + "C612072E87FBEF1ACEC0F5EE2871FF62BDC748FA0D6220B2EEC9E6311099A4862B9DAC77\n"
                     + "32904F2DAD739B678CFE07EB7B28ECC7DB26C8B1556D6BF93FBCF139F3D2EB9CAEB51D02\n"
                     + "1CCA8DDA3C599552C897825B70B405EF727F741CD2D78DEF005C11AF2E9280EF764EA858\n"
                     + "5BF507366B5351E544453B4DDCA8594293DD678B3D4EF1EE97818D90B55ACB7571E3C0A8\n"
                     + "70851B4BD0B9EFC3259E6FDAE0E4AA6C193AEA978F5B18CF221DB00B49528EAB9B93E1B2\n"
                     + "E3E9D4C533372A6E4A6262AAE877FA048BF5790DC8F68BCCC5C16DFBDFB9571834DB39D9\n"
                     + "8D5133F33F41464470EC93A09A81B0B1D00337B6CA89E60E869D2298748947F98E6C6A79\n"
                     + "D4E8BFF1C693B719CDA18092F145EC0DE942FE9F66F283C1D6E2870FFFF5AA84D61D6CB9\n"
                     + "33566B297E3E742439773F54FE18F23442D61DE90B29CA366226ED91D8F75A026F396D46\n"
                     + "5AE9A5D9FD66BD655B8CC115416397B2E75E50A42F2CF5F729E7106102A07AAE21A24A0A\n"
                     + "C523379DA0A882B08AAC792F586A1DA788CA8AB1DD1B5F61913803FD809ED4ADC4C6D8EE\n"
                     + "3BA9C36F8928FF133FA661BC056E524E9266F3EF69C2CE9B61EB8778C787B30CB6B63B39\n"
                     + "4C9701A452797D0BDAC32EB7E5384CF537A78AC87A86F3307504811DACF71C676956803A\n"
                     + "765059E0423BAD1774B7F554AA088D9BDFFF750C01A3F0B7FA898E0B9D1424F1EEAABD78\n"
                     + "BB5785B7D5B85C09327668E67CB480663574E6D89BE4033D7AF05EBFD6B3A0EC26ED6581\n"
                     + "AFA8B6559C2F80F69579A1E727DC41244F18822F4EBBDAD5ADBF718DC659D6E78973BF5E\n"
                     + "B3A4B9F0D7EC1F80CE12AD34C5C6FD930D74DC95B0CE1EF829B68F33A6E7242D5DB2246E\n"
                     + "9528687BA47AD7344543F318EB32BE1C21460057618E12D461D95E00C3CA8DB4C698527D\n"
                     + "E8B3158DE7722419C092DC84433D55AD4B04BBBB46765347944E9274E22C21CD637F4CEF\n"
                     + "63C9D25DF9EDCA0F2030CAE37FB74C31B3BEAF6554FE49F1D21D27A9C233CC88E0AF4F54\n"
                     + "2EDF05A87BFA6885B51ACAE0436045DF20DAF9F11B2D7FA1CA7DDB582AC38C2B8B9F8A9C\n"
                     + "D0695577BE11C8BDBAC9611BE44D4040620ADC3335C2E3639D2593B090DA7CE3E99252A9\n"
                     + "D854961B6568639F3D7A578BD7EE64C81F42D104CE03D8173EB1C23BAE516F590C9DC612\n"
                     + "5B060B5FCDF91F6603ADEC4B829AC93F3A21001310A29BC03409C7E5E932402D86F06583\n"
                     + "F8F845E184CC0594180D66788F4585E3F5D5D357312179BACCEA854D57E1F500DF116759\n"
                     + "89EC8A23A46F560D22FA7CFB0BD2BDAB04E5582697AD41CA82383E30E9EBDBD3FC188F42\n"
                     + "1A83788D7D89DCA1612174E191F182AB06D4B0AC15569D5389C690AE0006E7EC59036756\n"
                     + "E543844B4EE813FD12756A6170FEC6D59FAC04C797656222D2E6ACFDEC33B2C6B554B149\n"
                     + "28E48296A5670A7BA34D7C65622708DFB82FE8C0B605952449AE48CF7407F8BFA3506123\n"
                     + "B094A963F42D263E465DAB3D9AE61BD5AA0AB8F1CF2BD031AD0C81018D468D58D5E09680\n"
                     + "14920B1ECF39CDA600777C865A13A50A8053ED5E2CC2AE8AE5EBC3C115B48DFE7B91BA57\n"
                     + "378003E831D6E9DE5100B4D1DBC07C9E5AC88FE5757ED5811A03E3FEA08233EC9563F6A0\n"
                     + "45305B2BEB96FA5434FE762C76F5CC5D2D209ADBC81A3F255D9937CE55435D70824AD971\n"
                     + "D3A3F36D738D06573FBD089648409AA361CCF42DA83E7ED6F0BF319047DD9268BEA5AC61\n"
                     + "E893644F04FFAF3F14B045633CAF33564075376F993FFEA39CDF9E3C66A2988BAF3E6B55\n"
                     + "68927F6D6DF2BA3716191BCDD41C825E4D042E476AD29977BA91856D2C9C0D99A76704B2\n"
                     + "67324D2659BFDF5431E79939AA352E9799859F0026F6E1C42F96BE0E293AD940257FD6B7\n"
                     + "E60F60921B1A925D4ACEEB022D12097F78A7E5059042DBC77E39E6A3E13E00BAE5BAC734\n"
                     + "9455ECD82CDCF4B7B41FBD1419473B0634CC5A48F0B7C28946394AF91F08574158E06A0C\n"
                     + "084B165A02B7C2944864C253314BC57FBE17C15ACF4EC108101C6B84E9994C511833EBAB\n"
                     + "50F8A429629E477E45CE51E9C235F36A1876EACCA78E26C8476441404AC18D779898C140\n"
                     + "614CA9994C9F2ACA0C67246830CC4B0A8268FF0355E49C4717A2E71EFB7075790A3A9EAF\n"
                     + "1B6EFF5F18C29812AE86BDC7FFC54639F563CF0F04462B06A663F6773A03C437C988F9CA\n"
                     + "A3AD73E7ABCD0F9786E2DB1CADD80674A6A68F2E5C1F860C6CFDEBC0FD9EEDDB9B929E42\n"
                     + "3E9F02344976ACB93BC4A2E440987248C5C9672671EFB9074ED54CFD87AEA701492D8198\n"
                     + "219F7E92D2E651DA2C0F15EE1160DD65DA2C06BB863D889631F3E159C9B4F66A8E28BB80\n"
                     + "CF7ED1CF59B88A35FF588018EB335BD9ECE2D8100E5700F764E36EE5BB3DCE87FF7A0993\n"
                     + "E18BAA1D4DD166133BAE3750F783D79BCAB516AA3B5BA54686FD1D4E42D1749CE43F0C22\n"
                     + "7AAD9F1A9CF5C1519CB0867B226765E4EA7DE95FE7A65864297BEADBB4F617BC770EDC4E\n"
                     + "6FA420DC1225B98A32E05CB57079254D1FFB87B95DC198D6934E831D772A16AFB9ADD045\n"
                     + "6BC8D0730AB7F95D6B58C0F6F7967C3FC9E413E0E07EB2EB129736994F1C68BA5034ADA6\n"
                     + "9C7D1D941B33553E10367196127FAE770B3C4BB7E2003DED0EC479894946002E664F9392\n"
                     + "2E7FB568CA7A048FF999515131E7433DF64D2CAA1BB66087139FEE2CCBFAE53B96949B62\n"
                     + "AE29A507F50B52589521A3CBA42848D72157C6D0F7DC13D28C125A7BE653C29C210862B0\n"
                     + "B05F6B9D9C1D85A89EB0A1FCA0920054289363C0C983E2256E336C7ECF5FD6DB71D0F7FD\n"
                     + "8EB716D7CB2E8A7B69D0B05375B80A54767DF5F54116D4439AAC1A9C6B9F5ABED8DC770A\n"
                     + "9A433E94679EDCD77231FFF18464F7FDC1EF39116CF390804B9039E21F9AD58B46AF9996\n"
                     + "1508E183114D1E385EADC99D8C48B3AC5B8E81944B36BEB6F1C4E770A0000459381969A2\n"
                     + "6567AC612C4A7BA39F2DF721ECB1658D96FB8053643B525901CAA9838170AEA628962BA8\n"
                     + "449FDC25AE267280ACA37850B30D1B3C0EF9D5FE83C1748B0F917949528C4643226F5671\n"
                     + "D40DB8AFB542EF234DD153935415B88787F154D7C0CD92DFFA7E740B8EA3E6955FE66BF6\n"
                     + "071DAF41F59CAA7491B7A14FADA116C1E91B8CF5A13319FE9F84E693E997759A28945145\n"
                     + "E1D36223AB972791089F36CDD79CB42C629932A74141FC18DFD25C57DBAF534D93145E9B\n"
                     + "20A647DB670B79950E46C134D418BD490D4F5D948D45A4A95F3F1366F3F13DA85EE51D0F\n"
                     + "48B156902415E4F05B1D1AE5AD0F9C65662034C1E89D3C89D584DF32984302EB1804C8BC\n"
                     + "F1B11B1D7C77DB09A8395449CED13F1710544CD0C2A2B4BF6E9B3A0B16590677C759A7AD\n"
                     + "AB429232EE496E3C05AE71D24EB3A0EF522AFDFFEC9CB27CCE44BA4E961005E047785EFA\n"
                     + "AD3E7AE99E639424608225CECECC1D51AF45026A9E7989E70585BC989FB7671F3DCB141F\n"
                     + "D325D8EF2F70338723C121E2274C1170EDD24F80F5A5DC96CAAC00960D3D88A761B6BFAA\n"
                     + "3321E1FB370FD71AAF70DDB153888203057F01D9F0598E7ACD6B6DE63C014059DF1C6B05\n"
                     + "B17B5991071D3192333899EA4F9904D76650FA84B183A6819B70AE40D02C0893DBFEF768\n"
                     + "F40205A6179CB5AC53B72728CB8F4C6C5452E34A39E0DBD99AD9383A6AE0331CF05C250B\n"
                     + "C83A79CFEF90B21B50EAF4A5CD6BAFE4CBBB88C87EED7124327EF3E8D0E3CB05FC62BA82\n"
                     + "6281DDD2CA9FE54A2E474BD032C29F7428D8232E2BB8D40EE29FCB155E23D37152F66859\n"
                     + "52A73DBE890D7253643B2238937004BD72B33DA6F5499ACD0ACB8B893C408452686B9023\n"
                     + "733E41EC6847D3E7EF1DAE989C94D347D3DF456788CBE05E859023B64772C49444BC02EA\n"
                     + "0201CA3D2F073F1C099074539B1A4FB6DD902304D95992EE2A1B7F9825D651D75A2743C1\n"
                     + "E73099F05FE7E6C69985CEB750DCBBEFF992B29A7403A299F6F9FBC4DAE693D1AA3522D0\n"
                     + "F72760AE32FE0AAF658135A495C41261E121937F59C75962FF5B3C3DC034B0B48DF544E0\n"
                     + "D545EE1C04CB2CB591ABD28F1057094F0825E3589FFA66CF793E202C6E03E067595487D9\n"
                     + "1F6E74BBCB80513D7B57A5ED442D68337223764B783A3CCBD7EB1CD6CEF20C3F5ED67E5E\n"
                     + "FFC7F0FDAAA0FBFA783C5D3AD0FD968EC9D6E18C7B632EEB3C69973F2F4DD1BD6EF25A24\n"
                     + "145F121D1F35A1C400D8CCED0ECB0B4073475D7BDA3C468EA20456E1B4411E9711942960\n"
                     + "A21B16FAA2BA520C6B1949F11D4251283B1B8E58EBFEC1C95B1D40A984E6E75ABAAF6971\n"
                     + "0498F263658CDA2F9F0C1F4C9326847EA2DE4FD1B7E886822082439DAB3690CCA95AB6A9\n"
                     + "EA99916410F42CBA877276B2312C578FD13BA76EE9D4EF964889E982E48E58BBB98764AD\n"
                     + "7AFE6B7B2104F7260E9B8AE837B7DDE819293A25410B51DD70D71AE6F1A3163CFB59A786\n"
                     + "661A4BE0DDC4891CEAD6B32BA7AC2616A281D035D9E8682D1523EFDA3A67340136A7B5E0\n"
                     + "BA30922C218E502E56D5840C3201004B7566E36D0C54A3E8CFAB41B02D91995065F7C238\n"
                     + "25B868BC5F0035A7565F8AC85964BA38B1686029D3CCEBB7C0C87FEA63DFE32D2A94A5D3\n"
                     + "A331145DE67BF35DFFFAB56E62AA2DF0DE4B97B19957023B78B72B11202B68D4C2F0D211\n"
                     + "02AD0D0502AC7FD3921618825024B435E7E9BDC07749026E7382500D5AB08B207BC9B38D\n"
                     + "761E139C8C11BB121D6CBE593F9AFEC117B11F363DE4F110D4C2AEFCD26D5217FA1696F5\n"
                     + "98C68609A0AAA30052556D6B211C0AB734EAB55F915005BF761391DEED80CAEEE56DD303\n"
                     + "BF84EE9168D1C90D56F09B5520A2269DA40F1F1C40F808652FCA1E7F11647AED8952AD48\n"
                     + "431AA02E2EDB996F6D62C193EC19D9741DC6D7D35F48BDB5B3B37DF95B485013E4AAF4F7\n"
                     + "4007C8AC1A6A3F59B62BB177F5B42193883BD8C91ACAAE670015A141B9B46E6B5C5F792B\n"
                     + "229FA3E87EEA3CF61FB015C8DA37CAC2393DD9C91DDC8D11696B07E01F8021A3A86257C5\n"
                     + "F46CA0E73C86B298DEDFEFA79B2DA777177FDFD6A9AAAFB389552970ABF9D3195025A230\n"
                     + "4CBFBD40A111DEB842E0BC4E4B247C5DC1D7DFA07F08894B3810F0E0A33865A67A130BC2\n"
                     + "4A710B69A2DBEE85FCAF58296DD631A59821E3E0057B184B5DEC5270E21282F75FDFBF82\n"
                     + "F5F944457E2ACD1284190F4176F78CF2D21FFC16649F14A38436432BF5C3ECE1B33D759C\n"
                     + "BA36486365E1490071849C8EB725B915B37AC682483434C03256F6B8BBBA65E9E5A2B897\n"
                     + "2C030E422825AE97E6B834B9C27C58B85DEC74101EE3FE0DE7731A18D4B6C8DF2B4C4A29\n"
                     + "3BE607187FBBA32F88BCB5CA7773DB3E85C98936E2D6E15B4DCDF84A98F4B6A3014B2DD3\n"
                     + "35021181AF8A17CD39E6F98EFC02615205624EB0AE039D9FBA07D565E57178945665AC1F\n"
                     + "73D97869C0AF9606B85D2BFC75437B98E5B9B4812EF4D6F6B050569CAEF82D679875AA00\n"
                     + "A9A550FFF41DE464F3A7D0E30A95D12FD08AE3F5FFB0418CBA198C356B01F47A248BEC78\n"
                     + "D1E72F97C48B9A78A6C0EFA1EBCD538B1F8BD86FEFABC8DB5ED2526C14D18372749816DB\n"
                     + "8E4E3F3C8EB21079B73A235BAA7BF49510C4F55EF49A2CACE989F39A2024788F125B1698\n"
                     + "6DB54CE7CAF4D1D3AC2E8B36A49E1F421B5833F560E7F196515859B61837C195F01E4CD2\n"
                     + "D5F9B8181134CB88476E325AF124571E84953DFBD57562D9C95D614FC9CB5F11A99F434B\n"
                     + "5705E00DA0E40CB1A87A6F60787DBBBF32D18AF6C66270D21AD508CF183948ABED175741\n"
                     + "5D039069A2B6ABCAF20D166EBB9554650A5373283182F2A65622653B4B9A76EBA7C67B7C\n"
                     + "9B1A0935E789D54D0C98A19AFE429D845006B7EC23682F2A56989F4B398FD87BC2FEC2E3\n"
                     + "39EDD23FD3B428FBFF6A0D356199B298A8A5C31FE6E38DCA05B7160EA8A2377E3A113E52\n"
                     + "8323179CCC15E9AC0FD15125E468F7C6F51D7B27FF79074AC4BEC28AC613A54BF81E3899\n"
                     + "BC78032762B620A6BC76D3D65F459720A25F1D75AEDB0D1207E1E67C457F12CA77FE972A\n"
                     + "10499C0CF20BE2A03E23A2FBB6DC3017D618C75DD4AE8754887BB0CDE9A3B4D64E54ED76\n"
                     + "9AD10B621D91A72467C00DBD2C05C9948D9B2A26CE30AA4B546DAE46946E6E3061378D9F\n"
                     + "FF5FEF8BF68D6166159E46074E28627CAE768F535BA96369C7A00BE11C1990D735012D7B\n"
                     + "9C25EAD1CFF574036E13FC1CA51D914B469FAFA957B8AF4C1AB0F61E38D5219012AA00AE\n"
                     + "0AFDA7EBED9509D448C3B94CB7CD358C2BAD8BD527F86FFA12C397DF9BDFC28C7770A0C5\n"
                     + "4C7DEE3BD5D0ED56BC126EE2B757D65007C682119B9D430FFBF71FC45F57B3045BE9D19B\n"
                     + "63DE17323B0EF398BEC0B52B6A1FB2DA68A0864EC263A29399D96F2F2DC087D25E622403\n"
                     + "BDE70C68E1B4181445216C26286A14D9B0392F5709D7B20E7B5BEB04A4C42D0B3E7A4E13\n"
                     + "EB60082499E3B33405F562AA2B647AFF0572AE16FA21D7CAABC7DD0E45680DAEA7429730\n"
                     + "2813B5A480F982E1944B90413A453932C5EB6B98CC70E0AAE238A53F61C7F175780E82FA\n"
                     + "8051DB1C13D6788E9F2B679AC51C14F2F976E1D8B31553368F2C3C8EB5B10FFB799ACDBD\n"
                     + "6764C0EBD9B0959217C6B468B9F7276E65D33A883396D58F5742F192F54F1DE9FCB00943\n"
                     + "894C3E78146E15E42574FF45A95899DF0CD66B89AA33FD4512E46891AD4647A3BBB5A722\n"
                     + "26371B4A1B6800267C03E9D41490876DB2D5E362BF3AD6D6A65CC3BAF47097134022A328\n"
                     + "9480E571A1027E8572A741653B6DEF9E37BBF2E5A68526477733E6F43EABD55F9F97CAC0\n"
                     + "465BB1C5A1DAFBFE11777EAA3996DAEF61BAB889F18CF7D582D249E878EBED737061DD92\n"
                     + "2ED39581EC1199CB5E786247268E9A30EB41F7C7F1448BEF3DD3B5997BC03756FAFC1AE4\n"
                     + "A4A066A86E3E88AFE5AE1E12493E9AB21F5E97F5FD617E7E96996B193D83BD6B526DE74E\n"
                     + "0BE3F8FE5913EB4AC197EFBB92F451F1213E4AAE753E34A7410E635A72DE6B72607F15B8\n"
                     + "0834C811D182D4C6177F58FA7AEB2CFC63E1E6CF103794C29AEF7AA1DCE2C1868DDEEACD\n"
                     + "35347F110994E23DF4344BFC11B1A2F02F58C6BC26430662D26AFF1095CE62203871E6B0\n"
                     + "D26216BE6A48FF7CE5CE0F060CD72CA43F4754E28F4ECADB49ECA6A3EC6B1CD689D864A1\n"
                     + "CEBDF117DD96D20E3E966AF03C783A5E4B0E643A05643E8A0325458FFE38434DAE242820\n"
                     + "CD5FAECAC59DE5AC6BEEE84B170C95D9B4B72BF9A0BE880B8E044E46626F3B4AAF723BA5\n"
                     + "92E20A64164DACA9B5DA850A57BE38BB5527F5D94617216F436980B6D47AD18A1E0A7663\n"
                     + "FF1806DBF07F1A4F896B769E10D34CEDE699C007057DA0213D557ED2F6F284CB4FBA7463\n"
                     + "8DE3F72487F89B0C18947A085C40785BD6B65FBCB12051E3AFEC10ECA86DBCD6F5F21042\n"
                     + "8041C4B4A37F6D8E9709BE44011B574BC64A5535E1CA02BEDBC36B1AA378E1A70F783AC8\n"
                     + "A1DF31F5489EEF78488E0D0444E8F1B38FFBC49928A2DC79B9DE40B505BBA694951E1F62\n"
                     + "73290074FEB9454E4F5DB13F69F5BA38D579062540FF8C890BB7183D51F7881E19BDE936\n"
                     + "DC81E77D52A1AA48B49C06BDF90DAB15ED2A691927C9A80996116322B63602A2D25B0D61\n"
                     + "75D567B83EB879F9944E049CA411E20C61B375644ED00316AAB284751C5555295950CC3C\n"
                     + "7A30BDCC96E075DF2273900E9D4BE0C9BDC95820B54CE0BA2EF053347F9C8C8AFC991638\n"
                     + "FFF960D053A49F6F91791F50DE6922A96E81AB762A9F084BA65504BF02BDAFE5880AAA2E\n"
                     + "FE54D294768DE0A1FBDA9501EE08E36D75FCC28530F10924F0AF528C1CEC57A909E94978\n"
                     + "46216EAA9017CE2DE6A849A2E8EED8442C0EF9DEC730D3E3F4789C2C747356C34CD576A1\n"
                     + "74C6AF59E146AF5596B34DA033628B75F0502E601B4BBEB69ED1B4863A563BE4E838CA0A\n"
                     + "E3ECBB151CCD6F99AC59DB87B80504227CFE144EDE15F81074A05E533A655BE39BA8E8BE\n"
                     + "90E41624D7B94F20FFB2A908AA9E5478F6F4473CE270E5EAD414AC8FC919F3980166EE3C\n"
                     + "2C8CD046BAE8B3FD4009BAC6D68932A71FE1DCCA93489FC0E6E2431BA600CD31D0B4B773\n"
                     + "5197B04FF3E6F6542C4F9C4D8E673FB4A846D7173A6BB9D8771343CD1E0C02E783A552EF\n"
                     + "FCF7AE18923D4E4EF9A24071F4985251B6FCC5C013F8511887FFC52909B55C89047D53CE\n"
                     + "4C6157D90AAC7CEC8EEDAA0DE2FBC02D3D6B89F656C204AE5AD74784E63BEF49608C23D7\n"
                     + "79AC5A4021E7E67E6FE477126C6BD963BF6D71AFE9E1BFBDAEBF5257FB0D8A43CC0FE5DD\n"
                     + "B2AF1637B5A539E1FB5A64A48DE312F5EE4FDADF73F04F80F498200F8E2E7B621E580C83\n"
                     + "4331C60CA2906B8A5C37DEC0361F3F05223A8E298B5D1C81E99502C5065C28E067EFB35B\n"
                     + "5EBA35DFDE510CBA1F001D19BA03A187603D205C14B9F9D95817CEF3BB96515E87FC3648\n"
                     + "55997B7BE3F8C44495243DAB12E2E7B32BC1234B8CE53CFACFD44997905637BEF19792C5\n"
                     + "8B00E35EDD44C51D7639958DC38C2D5FA45832914146A33238E7500CE60FCC0743B2E73E\n"
                     + "0DADC361309B09C817D46DD13B33EB2AC1E576E11608D6DE2FB5FFA785152050F448A757\n"
                     + "F6F211E57F18321AE9CD8FE5915D52677CA6B2D7CB108F13F1CC22915C5C281FA1D52D0A\n"
                     + "04E30A5198434F2B9ABBB2493DEC9B5B79421828F5C91DB729DB0747F8E3C48C50D8ACD1\n"
                     + "9A5F43B104DB39F02F68ED3C018E7E2E30CB8374ACF3DD6AC73F14486E18496F65E7A306\n"
                     + "79D0619C08E4484F46950FD882459179BC0CBA8E81F204DFD72AF9078D0E4A2A5F5A9D17\n"
                     + "8D9C024559544330668C1A7B1E1084267AAE9D6F7BDB9E8FDD0F6A00DDDA725BDA3F0B6A\n"
                     + "9AE5FEE0AD1803E4DCAD5B83CEFABE94C5D8333F0F657A71BFB5B1CE7072BEB23DEFCB2E\n"
                     + "5487EE59A4ED486D5B06DBC103EA59E813B54BC908797908CDD066B63A496B9B0E660C2D\n"
                     + "5A28227DD79EEAD85A98CD8D71BA014AD5638699F05AFB1E3D60BDF54812BC389C9C2742\n"
                     + "A97D2C16DA9DE3224B91322336A2B09FF81F4F6014E58800ED959C61A8BCE129379CA05C\n"
                     + "4D9081212AD2284885CF556CFAAAF11A5DEAC694302766A46908AE1EEAF7D070FF3D0592\n"
                     + "E230957DFE7C557259219A685A4C4D38AF17D2750F3B23D689999584E09C0ECB9605AB93\n"
                     + "0D88E70599F3ACB8783D09A4B36CA6CB9A4F11390D58593EF2C46AC56C938E4B327CE363\n"
                     + "BF467DEC8317782228B6894E316872689D68D1EAE0138B9F70459CDD719354836259FE6C\n"
                     + "13D3C14B7744544CC58E5EC1E1E7E9CF1701F6DF625D3421F1E55CC2BD5AE1C12AA79E19\n"
                     + "15082154E4D1335A99925FFD1376410C9769AE9D4255FDFCE2108A014A9956C8D2CA359A\n"
                     + "2D4A66CEFFB33AF919B1BEA752FF66609823A3E2876BEF80C016259D5C089FFC48AE6E49\n"
                     + "CAD98E6CFAD1EA3EE9BFAEAC1CD8156EC9B0DCE6D06FCC2E3A57ACBC72775C184FCA7D45\n"
                     + "77E5B1517F1DAAF11890B49EDB610881DA7593F292832C2695E79B7AF81668BB35BAF73A\n"
                     + "AB203D56AC4CE317CA9D1AB3E013F3B10B8A1D85C822D90730AB3D0D82F7EC78C6319528\n"
                     + "0D248C810708D080ED87121BEFA366E2C9199D203AB3CBDBD54B91ADE3D96171D7FAFDE9\n"
                     + "772B5FC4D9EB07239AD8F54119F1A59FE99B0B7B77E584E6AA98CA0A2528215807BB560D\n"
                     + "91C09A69B37C1A3D3A35C5E09A887A2B1F9CBC06C80C765A7F7828B931A03A668169\n"
                     + "0000000000000000000000000000000000000000000000000000000000000000\n"
                     + "0000000000000000000000000000000000000000000000000000000000000000\n"
                     + "0000000000000000000000000000000000000000000000000000000000000000\n"
                     + "0000000000000000000000000000000000000000000000000000000000000000\n"
                     + "0000000000000000000000000000000000000000000000000000000000000000\n"
                     + "0000000000000000000000000000000000000000000000000000000000000000\n"
                     + "0000000000000000000000000000000000000000000000000000000000000000\n"
                     + "0000000000000000000000000000000000000000000000000000000000000000\n"
                     + "cleartomark\n";

    		 
    private static void checkNumGlyphs(Font font, int expected) {
        System.out.println("NumGlyphs: " + font.getNumGlyphs());
        if(font.getNumGlyphs() != expected) {
            System.out.println("The font seems to be invalid.");
        }
    }
    
    public static void main(String[] args) {
        try {
            ByteArrayOutputStream data = new ByteArrayOutputStream();
            data.write(DATA.getBytes("Cp1252"));
            Font font = Font.createFont(Font.TYPE1_FONT, new ByteArrayInputStream(data.toByteArray()));
            checkNumGlyphs(font, 228);
        }
        catch (FontFormatException e) {
            System.out.println("FontFormatException: " + e.getMessage());
        }
        catch (IOException e) {
            System.out.println("IOException: " + e.getMessage());
        }

    }
}

---------- END SOURCE ----------